# Name: smd_where_used v0.14 # Type: Admin/Client side plugin # Find which forms/pages/articles/plugins/text have been used where in your design # Author: Stef Dawson # URL: http://stefdawson.com/ # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YTo5OntzOjQ6Im5hbWUiO3M6MTQ6InNtZF93aGVyZV91c2VkIjtzOjY6ImF1dGhvciI7czox MToiU3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3 c29uLmNvbS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjE0IjtzOjExOiJkZXNjcmlwdGlvbiI7 czo4MDoiRmluZCB3aGljaCBmb3Jtcy9wYWdlcy9hcnRpY2xlcy9wbHVnaW5zL3RleHQgaGF2 ZSBiZWVuIHVzZWQgd2hlcmUgaW4geW91ciBkZXNpZ24iO3M6NDoiY29kZSI7czo5NjcwOiIv LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQppZiAoQHR4cGludGVyZmFjZSA9PSAnYWRtaW4nKSB7DQoJYWRkX3ByaXZz KCdzbWRfd3UnLCcxLDInKTsNCg0KCS8vIEV4dGVuc2lvbnMgdGFiDQoJcmVnaXN0ZXJfdGFi KCdleHRlbnNpb25zJywgJ3NtZF93dScsIHNtZF93dV9nVHh0KCdzbWRfd3UnKSk7DQoJcmVn aXN0ZXJfY2FsbGJhY2soJ3NtZF93dScsICdzbWRfd3UnKTsNCn0NCg0KLy8gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K ZnVuY3Rpb24gc21kX3d1KCRldmVudCwgJHN0ZXApIHsNCglpZighJHN0ZXAgb3IgIWluX2Fy cmF5KCRzdGVwLCBhcnJheSgNCgkJCSdzbWRfd3Vfc2VhcmNoJywNCgkJKSkpIHsNCgkJc21k X3d1X3Nob3dmb3JtKCcnKTsNCgl9IGVsc2UgJHN0ZXAoKTsNCn0NCg0KLy8gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K ZnVuY3Rpb24gc21kX3d1X3Nob3dmb3JtKCRtZXNzYWdlLCAkdGVybT0nJywgJHNlbD1hcnJh eSgpLCAkaW5jbD0wLCAkd2hvbGU9MCkgew0KCXBhZ2V0b3Aoc21kX3d1X2dUeHQoJ3NtZF93 dScpLCRtZXNzYWdlKTsNCgkkYnRuU2VhcmNoID0gZklucHV0KCdzdWJtaXQnLCAnc21kX3d1 X3NlYXJjaCcsIGdUeHQoJ3NlYXJjaCcpLCAnc21hbGxlcmJveCcpLnNJbnB1dCgnc21kX3d1 X3NlYXJjaCcpOw0KCSRidG5TdHlsZSA9ICcgc3R5bGU9ImJvcmRlcjowO2hlaWdodDoyNXB4 Iic7DQoJJHBsYWNlID0gYXJyYXkoJ3NlY3Rpb25zJywncGFnZXMnLCdmb3JtcycsJ2FydGlj bGVzJyk7DQoJJHNlbCA9IChlbXB0eSgkc2VsKSkgPyAkcGxhY2UgOiAkc2VsOw0KDQoJZWNo byAnPGZvcm0gbWV0aG9kPSJwb3N0IiBuYW1lPSJzbWRfd3VfZm9ybSI+JzsNCgllY2hvIHN0 YXJ0VGFibGUoJ2xpc3QnKTsNCgllY2hvIHRyKGZMYWJlbENlbGwoc21kX3d1X2dUeHQoJ3Nl YXJjaF9sYmwnKSkgLiB0ZGNzKGZJbnB1dCgndGV4dCcsICdzZWFyY2hfZm9yJywgc3RyaXBz bGFzaGVzKCR0ZXJtKSwgJycsICcnLCAnJywgMzApLCA0KSAuIHRkYSgkYnRuU2VhcmNoLCAk YnRuU3R5bGUpKTsNCgllY2hvIHRyKGZMYWJlbENlbGwoc21kX3d1X2dUeHQoJ2ZpbHRlcicp KS50ZGNzKHJhZGlvKCdtZXRoJywwLCgoJGluY2w9PTApPzE6MCkpLnNtZF93dV9nVHh0KCdp bmNsdXNpb24nKS4iICIgLiByYWRpbygnbWV0aCcsMSwoKCRpbmNsPT0xKT8xOjApKS5zbWRf d3VfZ1R4dCgnZXhjbHVzaW9uJykuICIgfCAiIC4gc21kX3d1X2dUeHQoJ3dob2xlX3dvcmQn KS5jaGVja2JveCgnd2hvbGUnLCAxLCAoKCR3aG9sZT09MSk/MTowKSksIDQpKTsNCgkkb3V0 ID0gJyc7DQoJZm9yZWFjaCAoJHBsYWNlIGFzICRoZXJlKSB7DQoJCSRvdXQgLj0gZkxhYmVs Q2VsbChnVHh0KCRoZXJlKSAuIGNoZWNrYm94KCdwbGFjZXNbXScsICRoZXJlLCBpbl9hcnJh eSgkaGVyZSwkc2VsKSkpOw0KCX0NCgllY2hvIHRyKGZMYWJlbENlbGwoc21kX3d1X2dUeHQo J3NlYXJjaF93aGVyZV9sYmwnKSkgLiAkb3V0KTsNCgllY2hvIGVuZFRhYmxlKCk7DQoJZWNo byAnPC9mb3JtPic7DQp9DQoNCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZnVuY3Rpb24gc21kX3d1X3NlYXJj aCgpIHsNCglleHRyYWN0KGRvU2xhc2goZ3BzYShhcnJheSgnc2VhcmNoX2ZvcicpKSkpOw0K CSR3aG9sZSA9IGdwcygnd2hvbGUnKTsNCgkkbWV0aCA9IGdwcygnbWV0aCcpOyAvLyAwID0g aW5jbHVkZSwgMSA9IGV4Y2x1ZGUNCgkkam9pbm1lID0gKCRtZXRoID09IDApID8gIiBPUiAi IDogIiBBTkQgIjsNCgkkcGxhY2VzID0gZ3BzKCdwbGFjZXMnKTsNCgkkcGxhY2VzID0gaXNf YXJyYXkoJHBsYWNlcykgPyAkcGxhY2VzIDogYXJyYXkoKTsNCglzbWRfd3Vfc2hvd2Zvcm0o JycsICRzZWFyY2hfZm9yLCAkcGxhY2VzLCAkbWV0aCwgJHdob2xlKTsNCg0KCS8vIEVudHJp ZXMgaW4gdGhlIHBsYWNlVGFibGUgYXJyYXkgYXJlOg0KCS8vICAwOiBUYWJsZSB0byBzZWFy Y2gNCgkvLyAgMTogQ29sdW1uIHRvIHNlYXJjaA0KCS8vICAyOiBDb2x1bW4gdG8gcmV0dXJu DQoJLy8gIDM6IEhlYWRpbmcgdG8gZGlzcGxheSBpZiByZXN1bHRzIGZvdW5kDQoJLy8gIDQ6 IEV2ZW50IG9mIGRlc3RpbmF0aW9uIFVSTA0KCS8vICA1OiBTdGVwIG9mIGRlc3RpbmF0aW9u IFVSTA0KCS8vICA2OiBBZGRpdGlvbmFsIFVSTCB2YXINCgkvLyAgNzogQWRkaXRpb25hbCBV UkwgdmFyIHJlcGxhY2VtZW50ICh1c2VkIGluIHN0cnRyKQ0KCSRwbGFjZVRhYmxlID0gYXJy YXkoDQoJCSdwYWdlcycgPT4gYXJyYXkoJ3R4cF9wYWdlJywgJ3VzZXJfaHRtbCcsICduYW1l JywgZ1R4dCgncGFnZXMnKSwgJ3BhZ2UnLCAnJywgJ25hbWUnLCAne25hbWV9JyksDQoJCSdm b3JtcycgPT4gYXJyYXkoJ3R4cF9mb3JtJywgJ2Zvcm0nLCAnbmFtZScsIGdUeHQoJ2Zvcm1z JyksICdmb3JtJywgJ2Zvcm1fZWRpdCcsICduYW1lJywgJ3tuYW1lfScpLA0KCQknYXJ0aWNs ZXMnID0+IGFycmF5KCd0ZXh0cGF0dGVybicsICdCb2R5LEV4Y2VycHQsb3ZlcnJpZGVfZm9y bSxzZWN0aW9uJywgJ0lELHRpdGxlJywgZ1R4dCgnYXJ0aWNsZXMnKSwgJ2FydGljbGUnLCAn ZWRpdCcsICdJRCcsICd7SUR9JyksDQoJCSdzZWN0aW9ucycgPT4gYXJyYXkoJ3R4cF9zZWN0 aW9uJywgJ3BhZ2UsY3NzJywgJ25hbWUnLCBnVHh0KCdzZWN0aW9ucycpLCAnc2VjdGlvbics ICcnLCAnIycsICdzZWN0aW9uLXtuYW1lfScpLA0KCSk7DQoNCgkkcnMgPSBhcnJheSgpOw0K CWVjaG8gbi4nPGhyIHdpZHRoPSI1MCUiIC8+JzsNCgllY2hvIHN0YXJ0VGFibGUoJ2xpc3Qn KTsNCgkkY29sSGVhZCA9IGFycmF5KCk7DQoJJGNvbEJvZHkgPSBhcnJheSgpOw0KDQoJaWYg KCRzZWFyY2hfZm9yKSB7DQoJCWVjaG8gdHIodGRjcyh0YWcoZ1R4dCgnc2VhcmNoX3Jlc3Vs dHMnKSwgJ2gyJyksIDQpKTsNCgkJZm9yZWFjaCAoJHBsYWNlcyBhcyAkcGxhY2UpIHsNCgkJ CSRjcm93ID0gJHBsYWNlVGFibGVbJHBsYWNlXTsNCgkJCSR3aGVyZSA9IGFycmF5KCk7DQoJ CQkkd2l0ZW1zID0gZG9fbGlzdCgkY3Jvd1sxXSk7DQoJCQkkbGlzdCA9IGRvX2xpc3QoJGNy b3dbMl0pOw0KDQoJCQlmb3JlYWNoICgkd2l0ZW1zIGFzICRpdGVtKSB7DQoJCQkJJHdoZXJl W10gPSAkaXRlbSAuICgoJG1ldGg9PTEpID8gJyBOT1QnIDogJycpIC4gKCgkd2hvbGU9PTEp ID8gJyBSRUdFWFAgXCdbWzo8Ol1dJy4kc2VhcmNoX2Zvci4nW1s6PjpdXVwnJyA6ICIgTElL RSAnJSRzZWFyY2hfZm9yJSciKTsNCgkJCX0NCgkJCSRycyA9IHNhZmVfcm93cygkY3Jvd1sy XSwgJGNyb3dbMF0sICcoJy5qb2luKCRqb2lubWUsICR3aGVyZSkuJykgT1JERVIgQlkgJy4k bGlzdFswXSk7DQoJCQkkY29sSGVhZFtdID0gdGQoc3Ryb25nKCRjcm93WzNdKSk7DQoJCQlp ZiAoJHJzKSB7DQoJCQkJJG91dCA9ICc8dWw+JzsNCgkJCQlmb3JlYWNoICgkcnMgYXMgJHJv dykgew0KCQkJCQkkb3AgPSAnJzsNCgkJCQkJZm9yZWFjaCAoJGxpc3QgYXMgJGNvbCkgew0K CQkJCQkJJGZyb20gPSAneycuJGNvbC4nfSc7DQoJCQkJCQlpZiAoc3RycG9zKCRjcm93Wzdd LCAkZnJvbSkgIT09IGZhbHNlKSB7DQoJCQkJCQkJaWYgKCRjcm93WzZdID09ICIjIikgew0K CQkJCQkJCQkkdmFycyA9IGpvaW5fcXMoYXJyYXkoImV2ZW50IiA9PiAkY3Jvd1s0XSwgInN0 ZXAiID0+ICRjcm93WzVdKSkuJGNyb3dbNl0uc3RydHIoJGNyb3dbN10sIGFycmF5KCRmcm9t ID0+ICRyb3dbJGNvbF0pKTsNCgkJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCQkkdmFycyA9IGpv aW5fcXMoYXJyYXkoImV2ZW50IiA9PiAkY3Jvd1s0XSwgInN0ZXAiID0+ICRjcm93WzVdLCAk Y3Jvd1s2XSA9PiBzdHJ0cigkY3Jvd1s3XSwgYXJyYXkoJGZyb20gPT4gJHJvd1skY29sXSkp KSk7DQoJCQkJCQkJfQ0KCQkJCQkJCSRvcCAuPSAnPGEgaHJlZj0iaW5kZXgucGhwJy4kdmFy cy4nIj4nLiRyb3dbJGNvbF0uJzwvYT4gJzsNCgkgICAgICAgICAgICAgICB9IGVsc2Ugew0K CQkJCQkJCSRvcCAuPSAkcm93WyRjb2xdLiIgIjsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCQkk b3V0IC49ICc8bGk+Jy4kb3AuJzwvbGk+JzsNCgkJCQl9DQoJCQkJJG91dCAuPSAnPC91bD4n Ow0KCQkJCSRjb2xCb2R5W10gPSB0ZCgkb3V0KTsNCgkJCX0gZWxzZSB7DQoJCQkJJGNvbEJv ZHlbXSA9IHRkKGdUeHQoJ25vX3Jlc3VsdHNfZm91bmQnKSk7DQoJCQl9DQoJCX0NCgkJZWNo byB0cihqb2luKCIgIiwgJGNvbEhlYWQpKTsNCgkJZWNobyB0cihqb2luKCIgIiwgJGNvbEJv ZHkpKTsNCgl9IGVsc2Ugew0KCQkvLyBObyBzZWFyY2ggY3JpdGVyaWEsIHNvIHNob3cgb3Jw aGFucw0KCQllY2hvIHRyKHRkY3ModGFnKHNtZF93dV9nVHh0KCdvcnBoYW5fcmVzdWx0cycp LCAnaDInKSwgNSkpOw0KDQoJCS8vIFJlcHJvZ3JhbSB0aGUgcGxhY2VzL3BsYWNlVGFibGUN CgkJJGFydGtleSA9IGFycmF5X3NlYXJjaCgnYXJ0aWNsZXMnLCAkcGxhY2VzKTsNCgkJaWYg KCRhcnRrZXkgIT09IGZhbHNlKSB7DQoJCQl1bnNldCgkcGxhY2VzWyRhcnRrZXldKTsNCgkJ fQ0KDQoJCS8vIHBhZ2VzL2Zvcm1zL3NlY3Rpb25zIHRvIGlnbm9yZSBiZWNhdXNlIHRoZXkg YXJlIHN0YXRpYyBhbmQgY2Fubm90IGJlIGRlbGV0ZWQNCgkJJGVzc2VudGlhbHMgPSBhcnJh eSgNCgkJCSdzZWN0aW9ucycgPT4gYXJyYXkoJ2RlZmF1bHQnKSwNCgkJCSdwYWdlcycgPT4g YXJyYXkoJ2Vycm9yX2RlZmF1bHQnKSwNCgkJCSdmb3JtcycgPT4gYXJyYXkoJ2NvbW1lbnRz JywnY29tbWVudHNfZGlzcGxheScsJ2NvbW1lbnRfZm9ybScsJ2RlZmF1bHQnLCdMaW5rcycs J2ZpbGVzJyksIC8vIGNvcGllZCBmcm9tIHR4cF9mb3Jtcw0KCQkpOw0KDQoJCSRwbGFjZXNb XSA9ICdwbHVnaW5zJzsNCgkJJHBsYWNlc1tdID0gJ3N0eWxlc2hlZXRzJzsNCg0KCQkkcGxh Y2VUYWJsZVsncGx1Z2lucyddID0gYXJyYXkoJ3R4cF9wbHVnaW4nLCAnbmFtZScsICduYW1l JywgZ1R4dCgncGx1Z2lucycpLCAncGx1Z2luJywgJycsICcjJywgJ3tuYW1lfScpOw0KCQkk cGxhY2VUYWJsZVsnc3R5bGVzaGVldHMnXSA9IGFycmF5KCd0eHBfY3NzJywgJ25hbWUnLCAn bmFtZScsIHNtZF93dV9nVHh0KCdzdHlsZXNoZWV0cycpLCAnY3NzJywgJycsICduYW1lJywg J3tuYW1lfScpOw0KDQoJCSRwbGFjZVRhYmxlWydmb3JtcyddWzBdID0gIlNFTEVDVCB0Zi5u YW1lIEZST00gIiAuc2FmZV9wZngoJ3R4cF9mb3JtJykuICIgQVMgdGYgV0hFUkUgdGYubmFt ZSBOT1QgSU4gKCIgLmRvUXVvdGUoaW1wbG9kZSgiJywnIiwkZXNzZW50aWFsc1snZm9ybXMn XSkpLiAiKSBPUkRFUiBCWSB0Zi5uYW1lIjsgLy8gV291bGQgYmUgbmljZSB0byBleGNsdWRl IGZvcm1zIHRoYXQgcmVmZXJlbmNlIGZvcm1zIGhlcmUgaW5zdGVhZCBvZiBpdGVyYXRpbmcg dGhyb3VnaCB0aGVtIGxhdGVyDQoJCSRwbGFjZVRhYmxlWydwYWdlcyddWzBdID0gIlNFTEVD VCB0cC5uYW1lIEZST00gIiAuc2FmZV9wZngoJ3R4cF9zZWN0aW9uJykuICIgQVMgdHMgUklH SFQgSk9JTiAiIC5zYWZlX3BmeCgndHhwX3BhZ2UnKS4gIiBBUyB0cCBPTiB0cy5wYWdlID0g dHAubmFtZSBXSEVSRSB0cy5wYWdlIElTIE5VTEwgQU5EIHRwLm5hbWUgTk9UIElOICgiIC5k b1F1b3RlKGltcGxvZGUoIicsJyIsJGVzc2VudGlhbHNbJ3BhZ2VzJ10pKS4gIikgT1JERVIg QlkgdHAubmFtZSI7DQoJCSRwbGFjZVRhYmxlWydwbHVnaW5zJ11bMF0gPSAiU0VMRUNUIHRn Lm5hbWUgRlJPTSAiIC5zYWZlX3BmeCgndHhwX3BsdWdpbicpLiAiIEFTIHRnIFdIRVJFIHR5 cGUgPSAwIE9SREVSIEJZIHRnLm5hbWUiOw0KCQkkcGxhY2VUYWJsZVsnc2VjdGlvbnMnXVsw XSA9ICJTRUxFQ1QgdHMubmFtZSBGUk9NICIgLnNhZmVfcGZ4KCd0eHBfc2VjdGlvbicpLiAi IEFTIHRzIExFRlQgSk9JTiAiIC5zYWZlX3BmeCgndGV4dHBhdHRlcm4nKS4gIiBBUyB0eHAg T04gdHMubmFtZSA9IHR4cC5zZWN0aW9uIFdIRVJFIElEIElTIE5VTEwgQU5EIHRzLm5hbWUg Tk9UIElOICgiIC5kb1F1b3RlKGltcGxvZGUoIicsJyIsJGVzc2VudGlhbHNbJ3NlY3Rpb25z J10pKS4gIikgT1JERVIgQlkgdHMubmFtZSI7DQoJCSRwbGFjZVRhYmxlWydzdHlsZXNoZWV0 cyddWzBdID0gIlNFTEVDVCB0Yy5uYW1lIEZST00gIiAuc2FmZV9wZngoJ3R4cF9zZWN0aW9u JykuICIgQVMgdHMgUklHSFQgSk9JTiAiIC5zYWZlX3BmeCgndHhwX2NzcycpLiAiIEFTIHRj IE9OIHRzLmNzcyA9IHRjLm5hbWUgV0hFUkUgdHMucGFnZSBJUyBOVUxMIE9SREVSIEJZIHRj Lm5hbWUiOw0KDQoJCS8vIEZvciAiYXdrd2FyZCIgcXVlcmllcyB0aGF0IGNhbid0IGJlIGRv bmUgaW4gb25lIHNob3QsIHRoZXJlIGFyZSB0aHJlZSB0aGluZ3MgcmVxdWlyZWQgcGVyICRw bGFjZToNCgkJLy8gIDE6IHR4cCB0YWJsZSBuYW1lDQoJCS8vICAyOiBsaXN0IG9mIGNvbHVt bnMgdG8gY29tcGFyZQ0KCQkvLyAgMzogbWV0aG9kIG9mIGNvbXBhcmlzb24gcGVyIGNvbHVt biAoMCA9ICJkaXJlY3QgbWF0Y2giLCAxID0gImxpa2UiKQ0KCQkkY1RhYmxlID0gYXJyYXko DQoJCQkncGx1Z2lucycgPT4gYXJyYXkoDQoJCQkJJ3R4cF9mb3JtJyA9PiBhcnJheSgnZm9y bScgPT4gMSksDQoJCQkJJ3R4cF9wYWdlJyA9PiBhcnJheSgndXNlcl9odG1sJyA9PiAxKSwN CgkJCQkndGV4dHBhdHRlcm4nID0+IGFycmF5KCdCb2R5JyA9PiAxLCAnRXhjZXJwdCcgPT4g MSksDQoJCQkpLA0KCQkJJ2Zvcm1zJyA9PiBhcnJheSgNCgkJCQkndHhwX2Zvcm0nID0+IGFy cmF5KCdmb3JtJyA9PiAxKSwNCgkJCQkndHhwX3BhZ2UnID0+IGFycmF5KCd1c2VyX2h0bWwn ID0+IDEpLA0KCQkJCSd0ZXh0cGF0dGVybicgPT4gYXJyYXkoJ0JvZHknID0+IDEsICdFeGNl cnB0JyA9PiAxLCAnb3ZlcnJpZGVfZm9ybScgPT4gMCksDQoJCQkpLA0KCQkpOw0KDQoJCS8v IFdvcmsgb24gYSBjb2x1bW4gYXQgYSB0aW1lDQoJCWZvcmVhY2ggKCRwbGFjZXMgYXMgJHBs YWNlKSB7DQoJCQkkY3JvdyA9ICRwbGFjZVRhYmxlWyRwbGFjZV07DQoJCQkkY29sUmVmcyA9 IGRvX2xpc3QoJGNyb3dbMl0pOw0KCQkJJGNvbEhlYWRbXSA9IHRkKHN0cm9uZygkY3Jvd1sz XSkpOw0KCQkJJHJzID0gc3RhcnRSb3dzKCRjcm93WzBdKTsNCgkJCWlmICgkcnMpIHsNCgkJ CQkkb3V0ID0gJzx1bD4nOw0KCQkJCXdoaWxlICgkcm93ID0gbmV4dFJvdygkcnMpKSB7DQoJ CQkJCS8vIENvdW50IHRoZSBubyBvZiByZWNvcmRzIG1hdGNoaW5nIHRoaXMgbmFtZSBpbiBl YWNoIHRhYmxlLg0KCQkJCQkvLyBBbnkgdGltZSB0aGlzIGdvZXMgYWJvdmUgemVybywgdGhl IGl0ZW0gaXMgdXNlZCBhbmQgaXQgY2FuIGJlIGlnbm9yZWQNCgkJCQkJJG9wID0gJyc7DQoJ CQkJCWlmIChhcnJheV9rZXlfZXhpc3RzKCRwbGFjZSwgJGNUYWJsZSkpIHsNCgkJCQkJCSRy ZWNzID0gMDsNCgkJCQkJCWZvcmVhY2ggKCRjVGFibGVbJHBsYWNlXSBhcyAkdGJsID0+ICRj b2xJbmZvKSB7DQoJCQkJCQkJaWYgKCRyZWNzID09IDApIHsNCgkJCQkJCQkJJHdoZXJlID0g YXJyYXkoKTsNCgkJCQkJCQkJZm9yZWFjaCAoJGNvbEluZm8gYXMgJGNvbE5hbWUgPT4gJHFy eVR5cGUpIHsNCgkJCQkJCQkJCSR3aGVyZVtdID0gJGNvbE5hbWUgLiAoKCRxcnlUeXBlPT0w KSA/ICIgPSAnIiAuJHJvd1skY29sUmVmc1swXV0uICInIiA6ICIgTElLRSAnJSIgLiRyb3db JGNvbFJlZnNbMF1dLiAiJSciKTsNCgkJCQkJCQkJfQ0KCQkJCQkJCQkkd2hlcmUgPSBqb2lu KCIgT1IgIiwgJHdoZXJlKTsNCgkJCQkJCQkJJHJlY3MgKz0gc2FmZV9jb3VudCgkdGJsLCAk d2hlcmUpOw0KCQkJCQkJCX0NCgkJCQkJCX0NCg0KCQkJCQkJLy8gSWYgdGhlIGl0ZW0gaGFz IG5vdCBiZWVuIGZvdW5kLCBmbGFnIGl0DQoJCQkJCQlpZiAoJHJlY3MgPT0gMCkgew0KCQkJ CQkJCSRjb2xOYW1lcyA9ICRjb2xSZWZzOw0KCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkkY29s TmFtZXMgPSBhcnJheSgpOw0KCQkJCQkJfQ0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJJGNvbE5h bWVzID0gJGNvbFJlZnM7DQoJCQkJCX0NCg0KCQkJCQkvLyBNYWtlIHVwIHRoZSBzdHJpbmcg dG8gZGlzcGxheSwgYW5kIGh5cGVybGluayBpdCBpZiBkaXJlY3RlZA0KCQkJCQlmb3JlYWNo ICgkY29sTmFtZXMgYXMgJGNvbCkgew0KCQkJCQkJJGZyb20gPSAneycuJGNvbC4nfSc7DQoJ CQkJCQlpZiAoc3RycG9zKCRjcm93WzddLCAkZnJvbSkgIT09IGZhbHNlKSB7DQoJCQkJCQkJ aWYgKCRjcm93WzZdID09ICIjIikgew0KCQkJCQkJCQkkdmFycyA9IGpvaW5fcXMoYXJyYXko ImV2ZW50IiA9PiAkY3Jvd1s0XSwgInN0ZXAiID0+ICRjcm93WzVdKSkuJGNyb3dbNl0uc3Ry dHIoJGNyb3dbN10sIGFycmF5KCRmcm9tID0+ICRyb3dbJGNvbF0pKTsNCgkJCQkJCQl9IGVs c2Ugew0KCQkJCQkJCQkkdmFycyA9IGpvaW5fcXMoYXJyYXkoImV2ZW50IiA9PiAkY3Jvd1s0 XSwgInN0ZXAiID0+ICRjcm93WzVdLCAkY3Jvd1s2XSA9PiBzdHJ0cigkY3Jvd1s3XSwgYXJy YXkoJGZyb20gPT4gJHJvd1skY29sXSkpKSk7DQoJCQkJCQkJfQ0KCQkJCQkJCSRvcCAuPSAn PGEgaHJlZj0iaW5kZXgucGhwJy4kdmFycy4nIj4nLiRyb3dbJGNvbF0uJzwvYT4gJzsNCgkg ICAgICAgICAgICAgICB9IGVsc2Ugew0KCQkJCQkJCSRvcCAuPSAkcm93WyRjb2xdLiIgIjsN CgkJCQkJCX0NCgkJCQkJfQ0KCQkJCQkkb3V0IC49ICc8bGk+Jy4kb3AuJzwvbGk+JzsNCgkJ CQl9DQoJCQkJJG91dCAuPSAnPC91bD4nOw0KCQkJCSRjb2xCb2R5W10gPSB0ZCgkb3V0KTsN CgkJCX0gZWxzZSB7DQoJCQkJJGNvbEJvZHlbXSA9IHRkKHNtZF93dV9nVHh0KCdub19vcnBo YW5zX2ZvdW5kJykpOw0KCQkJfQ0KCQl9DQoJCWVjaG8gdHIoam9pbigiICIsICRjb2xIZWFk KSk7DQoJCWVjaG8gdHIoam9pbigiICIsICRjb2xCb2R5KSk7DQoJfQ0KCWVjaG8gZW5kVGFi bGUoKTsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gUGx1Z2luLXNwZWNpZmljIHJlcGxhY2VtZW50 IHN0cmluZ3MgLSBsb2NhbGlzZSBhcyByZXF1aXJlZA0KLy8gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZnVuY3Rpb24g c21kX3d1X2dUeHQoJHdoYXQsICRhdHRzID0gYXJyYXkoKSkgew0KCSRsYW5nID0gYXJyYXko DQoJCSdleGNsdXNpb24nID0+ICdFeGNsdWRlJywNCgkJJ2luY2x1c2lvbicgPT4gJ0luY2x1 ZGUnLA0KCQknZmlsdGVyJyA9PiAnRmlsdGVyOicsDQoJCSdub19vcnBoYW5zX2ZvdW5kJyA9 PiAnTm8gb3JwaGFucyBmb3VuZC4nLA0KCQknb3JwaGFuX3Jlc3VsdHMnID0+ICdQb3NzaWJs ZSBvcnBoYW5zJywNCgkJJ3NlYXJjaF9sYmwnID0+ICdGaW5kOicsDQoJCSdzZWFyY2hfd2hl cmVfbGJsJyA9PiAnTG9vayBpbjonLA0KCQknc3R5bGVzaGVldHMnID0+ICdTdHlsZXNoZWV0 cycsDQoJCSdzbWRfd3UnID0+ICdXaGVyZSB1c2VkJywNCgkJJ3dob2xlX3dvcmQnID0+ICdX aG9sZSB3b3JkcycsDQoJKTsNCglyZXR1cm4gc3RydHIoJGxhbmdbJHdoYXRdLCAkYXR0cyk7 DQp9IjtzOjQ6InR5cGUiO3M6MToiMSI7czo0OiJoZWxwIjtzOjYwNjk6Igk8cD48ZGl2IGlk PSJzbWRfaGVscCI+PC9wPgoKCTxoMT5zbWRfd2hlcmVfdXNlZDwvaDE+CgoJPHA+UmVhbGx5 IHNpbXBsZSBhZG1pbi1zaWRlIHBsdWdpbiB0byBoZWxwIGZpbmQgd2hhdCB5b3UgbmVlZCB0 byBlZGl0L2RlbGV0ZS4gSWYgeW91IGhhdmUgYSB0b25uZSBvZiBmb3JtcyBvciBwYWdlcyBh bmQgd2FudCB0byB0aWR5IHN0dWZmIHVwIGl0IGNhbiBiZSBhIGJpdCBvZiBhIHBhaW4gdG8g ZmluZCB3aGF0JiM4MjE3O3MgYWN0dWFsbHkgaW4gdXNlLjwvcD4KCgk8cD5TbyB1c2UgdGhp cyBwbHVnaW4gdG8gc2VhcmNoIHlvdXIgc2VjdGlvbnMsIHBhZ2VzLCBmb3JtcyBvciBhcnRp Y2xlcyBmb3IgcmVmZXJlbmNlcyB0byBwbHVnaW5zLCBvciBvdGhlciBwYWdlcy9mb3JtcyBv ciBldmVuIGp1c3QgcGxhaW4gdGV4dCBpbiBhcnRpY2xlcy48L3A+CgoJPGgyIGNsYXNzPSJh dXRob3IiPkF1dGhvcjwvaDI+CgoJPHA+PGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29t L2NvbW1lbnRGb3JtIj5TdGVmIERhd3NvbjwvYT48L3A+CgoJPGgyIGNsYXNzPSJpbnN0YWxs Ij5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxhdGlvbjwvaDI+CgoJPHA+RG93bmxvYWQgdGhl IHBsdWdpbiBmcm9tIGVpdGhlciA8YSBocmVmPSJodHRwOi8vdGV4dHBhdHRlcm4ub3JnL3Bs dWdpbnMvOTg0L3NtZF93aGVyZV91c2VkIj50ZXh0cGF0dGVybi5vcmc8L2E+LCBvciB0aGUg PGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL3N3Ij5zb2Z0d2FyZSBwYWdlPC9hPiwg cGFzdGUgdGhlIGNvZGUgaW50byB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4g QWRtaW4gLSZndDsgUGx1Z2lucyBwYW5lLCBpbnN0YWxsIGFuZCBlbmFibGUgdGhlIHBsdWdp bi4gVmlzaXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmll d3RvcGljLnBocD9pZD0yNzQ5MyI+Zm9ydW0gdGhyZWFkPC9hPiBmb3IgbW9yZSBpbmZvIGFu ZCB0byByZXBvcnQgdGhlIHN1Y2Nlc3MgKG9yIG90aGVyd2lzZSkgb2YgdGhpcyBwbHVnaW4u PC9wPgoKCTxwPlVuaW5zdGFsbCBieSBzaW1wbHkgZGVsZXRpbmcgdGhlIHBsdWdpbiBmcm9t IHRoZSBBZG1pbi0mZ3Q7UGx1Z2lucyBwYW5lLjwvcD4KCgk8aDIgY2xhc3M9InVzYWdlIj5V c2FnZTwvaDI+CgoJPHA+VmlzaXQgdGhlIEV4dGVuc2lvbnMgdGFiIGFuZCBDbGljayAmIzgy MTY7V2hlcmUgdXNlZCYjODIxNzsgdG8gYWNjZXNzIHRoZSBzZWFyY2ggZm9ybS4gVHlwZSBz b21lIHN0dWZmIHRvIGZpbmQsIHNlbGVjdCB3aGVyZSB5b3Ugd2FudCB0byBsb29rIGFuZCBo aXQgJiM4MjE2O1NlYXJjaCYjODIxNzsgb3IgcHJlc3MgRW50ZXIuIFlvdXIgcmVxdWVzdGVk IGxvY2F0aW9ucyB3aWxsIGJlIHNlYXJjaGVkIGZvciB0aGF0IHRlcm0gYW5kIHRoZSByZXN1 bHRzIHRhYnVsYXRlZCwgd2l0aCBoeXBlcmxpbmtzIHRvIHRoZSBvZmZlbmRpbmcgaXRlbXMg c28geW91IGNhbiBxdWlja2x5IGVkaXQgdGhlbS48L3A+CgoJPHA+WW91IGNhbiBkZWNpZGUg d2hldGhlciB0byBzZWFyY2ggZm9yIHRoZSB0ZXJtICgmIzgyMjA7SW5jbHVkZSYjODIyMTsp IG9yIHRvIHNlYXJjaCBmb3Igc3R1ZmYgPHNwYW4gY2xhc3M9ImNhcHMiPk5PVDwvc3Bhbj4g Y29udGFpbmluZyB0aGF0IHRlcm0gKCYjODIyMDtFeGNsdWRlJiM4MjIxOykuIEFuZCB5b3Ug bWF5IGFsc28gY2hvb3NlIHdoZXRoZXIgeW91ciBzZWFyY2ggdGVybSBtYXRjaGVzL2RvZXMg bm90IG1hdGNoIGEgd2hvbGUgd29yZC48L3A+CgoJPHA+VGhpcyBpcyB3aGF0IHRoZSBwbHVn aW4gbG9va3MgYXQgd2hlbiB5b3Ugc2VsZWN0IGEgcGFydGljdWxhciBjaGVja2JveCBmcm9t IHRoZSAmIzgyMjA7TG9vayBpbiYjODIyMTsgcm93OjwvcD4KCgk8dWw+CgkJPGxpPiYjODIx NjtTZWN0aW9ucyYjODIxNzsgc2VhcmNoZXMgZXZlcnkgU2VjdGlvbiBmb3IgcGFnZXMgb3Ig c3R5bGVzaGVldHMgd2l0aCB0aGUgbWF0Y2hpbmcgbmFtZTwvbGk+CgkJPGxpPiYjODIxNjtQ YWdlcyYjODIxNzsgc2VhcmNoZXMgZXZlcnkgUGFnZSBmb3IgZm9ybXMgLyBwbHVnaW5zIC8g dGV4dCB3aXRoIHRoZSBtYXRjaGluZyBuYW1lPC9saT4KCQk8bGk+JiM4MjE2O0Zvcm1zJiM4 MjE3OyBzZWFyY2hlcyBldmVyeSBGb3JtIGZvciBwbHVnaW5zIC8gb3RoZXIgZm9ybXMgLyB0 ZXh0IHdpdGggdGhlIG1hdGNoaW5nIG5hbWU8L2xpPgoJCTxsaT4mIzgyMTY7QXJ0aWNsZXMm IzgyMTc7IHNlYXJjaGVzIGV2ZXJ5IEFydGljbGUgc2VjdGlvbiwgYm9keSwgZXhjZXJwdCBh bmQgb3ZlcnJpZGVfZm9ybSBmb3IgbWVudGlvbiBvZiB0aGUgdGV4dCB5b3Ugc3BlY2lmeTwv bGk+Cgk8L3VsPgoKCTxwPklmLCBob3dldmVyLCB5b3UgbGVhdmUgdGhlICYjODIxNjtGaW5k JiM4MjE3OyBib3ggZW1wdHkgYW5kIGNsaWNrICYjODIxNjtTZWFyY2gmIzgyMTc7IHRoZSBw bHVnaW4gd2lsbCBzZWFyY2ggZm9yIG9ycGhhbnMuIE9ycGhhbnMgYXJlIGRlZmluZWQgYXMg Zm9sbG93czo8L3A+CgoJPHVsPgoJCTxsaT5BbnkgUGFnZSB0aGF0IGlzIG5vdCBhc3NpZ25l ZCB0byBhIFNlY3Rpb248L2xpPgoJCTxsaT5BbnkgU3R5bGVzaGVldCB0aGF0IGlzIG5vdCBh c3NpZ25lZCB0byBhIFNlY3Rpb248L2xpPgoJCTxsaT5BbnkgU2VjdGlvbiB0aGF0IGhhcyBu byBBcnRpY2xlcyBpbiBpdCAoZXhjbHVkaW5nIOKAmGRlZmF1bHTigJkgd2hpY2ggY2Fubm90 IGhhdmUgYW4gYXJ0aWNsZSBhbnl3YXkpPC9saT4KCQk8bGk+QW55IGNsaWVudC1zaWRlIFBs dWdpbiB0aGF0IGlzIG5vdCByZWZlcmVuY2VkIGZyb20gYW4gQXJ0aWNsZSAoYm9keS9leGNl cnB0KSBvciBhbm90aGVyIEZvcm0gb3IgUGFnZTwvbGk+CgkJPGxpPkFueSBGb3JtIHRoYXQg aGFzIG5vIHJlZmVyZW5jZSB0byBpdCBpbiBhbnkgQXJ0aWNsZSAoYm9keS9leGNlcnB0L292 ZXJyaWRlX2Zvcm0pIG9yIGFub3RoZXIgRm9ybSBvciBQYWdlPC9saT4KCTwvdWw+CgoJPHA+ Tm90ZXM6PC9wPgoKCTx1bD4KCQk8bGk+T3JwaGFuZWQgYXJ0aWNsZXMgZG9uJiM4MjE3O3Qg bWFrZSBzZW5zZSBzbyB0aGV5IGFyZSBvbWl0dGVkLiBUaGUgY2hlY2tib3ggaXMgaWdub3Jl ZDwvbGk+CgkJPGxpPkVzc2VudGlhbCBzZWN0aW9ucyAvIHBhZ2VzIC8gZm9ybXMgdGhhdCBj YW5ub3QgYmUgZGVsZXRlZCBhcmUgbm90IGxpc3RlZDwvbGk+CgkJPGxpPlN0eWxlc2hlZXRz IGFuZCBQbHVnaW5zIGFyZSBhbHdheXMgZGlzcGxheWVkIGJlY2F1c2UgdGhlcmUgYXJlIG5v IGNoZWNrIGJveGVzIGZvciB0aGVtLiBUaGUgcmVhc29uIGlzIHRoYXQgdGhlIHBsdWdpbiBk b2VzIG5vdCBhbGxvdyBzZWFyY2hpbmcgd2l0aGluIGEgcGx1Z2luIG9yIGEgc3R5bGVzaGVl dCBmb3IgYSByZWZlcmVuY2UgdG8gYSB3b3JkLCBidXQgaXQgZG9lcyBjaGVjayBvdGhlciBw bGFjZXMgZm9yIHJlZmVyZW5jZXMgPGVtPnRvPC9lbT4gcGx1Z2lucyBhbmQgc3R5bGVzaGVl dHM8L2xpPgoJCTxsaT5KdXN0IGJlY2F1c2UgYW4gaXRlbSBpcyBsaXN0ZWQgYXMgb3JwaGFu ZWQgZG9lcyA8ZW0+bm90IG5lY2Vzc2FyaWx5IG1lYW4gaXQgaXMgbm90IHVzZWQ8L2VtPiEg Rm9yIGV4YW1wbGUsIHJ2bV9tYWludGVuYW5jZSBjaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ug b2YgYW4gPGNvZGU+ZXJyb3JfNTAzPC9jb2RlPiBQYWdlLiBTaW5jZSBpdCBpcyBuZXZlciBh c3NpZ25lZCB0byBhIFNlY3Rpb24gaXQgd2lsbCBiZSBsaXN0ZWQgYXMgb3JwaGFuZWQuIElm IHlvdSBoYXZlIGEgZGVkaWNhdGVkIHN0eWxlc2hlZXQgZm9yIG1haW50ZW5hbmNlIG1vZGUg dGhhdCwgdG9vLCB3aWxsIGJlIHNob3duIGFzIG9ycGhhbmVkLiBJbiBzaG9ydCwgYmUgY2Fy ZWZ1bCBhbmQgbWFrZSBhIGJhY2t1cCA6LSk8L2xpPgoJCTxsaT5QbHVnaW5zIHRoYXQgdXNl IGZ1bmN0aW9ucyBuYW1lZCBkaWZmZXJlbnRseSBmcm9tIHRoZSBwbHVnaW4gbmFtZSBpdHNl bGYgYXJlIG5vdCBjb25zaWRlcmVkIGJlY2F1c2UgaXQgd291bGQgbWVhbiB0cmF3bGluZyB0 aHJvdWdoIHRoZSBzb3VyY2UgY29kZSB0byBmaW5kIGFsbCB0aGUgZnVuY3Rpb24gbmFtZXMu IFRoaXMgaXMgYSBwb3NzaWJsZSBmdXR1cmUgZW5oYW5jZW1lbnQgYnV0IGZvciBub3cgdGhl IHVuZm9ydHVuYXRlIHNpZGUtZWZmZWN0IGlzIHRoYXQgcGx1Z2lucyBzdWNoIGFzIHplbV9j b250YWN0X3JlYm9ybiBhbmQgcGFwX2NvbnRhY3RfY2xlYW5lciBhcmUgbGlzdGVkIGFzIG9y cGhhbnMuIElmIHlvdSBhcmUgdW5zdXJlLCBjaGVjayBpdCBieSB0eXBpbmcgYSBwYXJ0aWFs IHRhZyBuYW1lIGludG8gdGhlIHNlYXJjaCBib3g8L2xpPgoJPC91bD4KCgk8aDIgY2xhc3M9 ImNoYW5nZWxvZyI+Q2hhbmdlbG9nPC9oMj4KCgk8dWw+CgkJPGxpPjE2IEp1biAwOCB8IHYw LjEgfCBJbml0aWFsIHJlbGVhc2U8L2xpPgoJCTxsaT4xNiBKdW4gMDggfCB2MC4xMSB8IEFk ZGVkIHNlY3Rpb24gc2VhcmNoIGFuZCBvdmVycmlkZV9mb3JtPC9saT4KCQk8bGk+MTYgSnVu IDA4IHwgdjAuMTIgfCBBZGRlZCBpbmNsdWRlL2V4Y2x1ZGUgKHRoYW5rcyBtcmRhbGUpPC9s aT4KCQk8bGk+MTYgSnVuIDA4IHwgdjAuMTMgfCBBZGRlZCBhYmlsaXR5IHRvIG1hdGNoIHdo b2xlIHdvcmRzICh0aGFua3MgemFuemEpPC9saT4KCQk8bGk+MTcgSnVuIDA4IHwgdjAuMTQg fCBBZGRlZCBvcnBoYW4gc2VhcmNoICh0aGFua3MgdWxpL25ldC1jYXJ2ZXIpPC9saT4KCTwv dWw+CgoJPHA+PC9kaXY+PC9wPgo8IS0tIC0tLSBCRUdJTiBQTFVHSU4gQ1NTIC0tLSAtLT4K PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS4zIDt9 CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJD b3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZG RkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3Jk ZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5 OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hl bHAgYTpsaW5rLCAjc21kX2hlbHAgYTp2aXNpdGVkIHsgY29sb3I6IGJsdWU7IHRleHQtZGVj b3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmct Ym90dG9tOjFweDt9CiNzbWRfaGVscCBhOmhvdmVyLCAjc21kX2hlbHAgYTphY3RpdmUgeyBj b2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAycHgg c29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6 ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0 LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNv bGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBH ZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjNjkzOyBmb250 OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1h cmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTt9CiNzbWRfaGVscCBo NCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6 IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQoj c21kX2hlbHAgLmF0dC1uYW1lIHsgZm9udC13ZWlnaHQ6Ym9sZDsgfQojc21kX2hlbHAgLm1h bmQgeyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IH0KI3NtZF9o ZWxwIHRhYmxlIHt3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZy1ib3R0 b206MWVtO30KI3NtZF9oZWxwIHRkLCAjc21kX2hlbHAgdGgge2JvcmRlcjoxcHggc29saWQg Izk5OTsgcGFkZGluZzouNWVtIDA7fQo8L3N0eWxlPgo8IS0tIC0tLSBFTkQgUExVR0lOIENT UyAtLS0gLS0+CiI7czozOiJtZDUiO3M6MzI6IjFiNzUwMGI0MGM1ZWNhYjE5OWQxYjIxNWIw NGQyMGViIjt9