# Name: smd_where_used v0.15 # 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 c29uLmNvbS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjE1IjtzOjExOiJkZXNjcmlwdGlvbiI7 czo4MDoiRmluZCB3aGljaCBmb3Jtcy9wYWdlcy9hcnRpY2xlcy9wbHVnaW5zL3RleHQgaGF2 ZSBiZWVuIHVzZWQgd2hlcmUgaW4geW91ciBkZXNpZ24iO3M6NDoiY29kZSI7czoxMDIyODoi Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KaWYgKEB0eHBpbnRlcmZhY2UgPT0gJ2FkbWluJykgew0KCWFkZF9wcml2 cygnc21kX3d1JywnMSwyJyk7DQoNCgkvLyBFeHRlbnNpb25zIHRhYg0KCXJlZ2lzdGVyX3Rh YignZXh0ZW5zaW9ucycsICdzbWRfd3UnLCBzbWRfd3VfZ1R4dCgnc21kX3d1JykpOw0KCXJl Z2lzdGVyX2NhbGxiYWNrKCdzbWRfd3UnLCAnc21kX3d1Jyk7DQp9DQoNCi8vIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CmZ1bmN0aW9uIHNtZF93dSgkZXZlbnQsICRzdGVwKSB7DQoJaWYoISRzdGVwIG9yICFpbl9h cnJheSgkc3RlcCwgYXJyYXkoDQoJCQknc21kX3d1X3NlYXJjaCcsDQoJCSkpKSB7DQoJCXNt ZF93dV9zaG93Zm9ybSgnJyk7DQoJfSBlbHNlICRzdGVwKCk7DQp9DQoNCi8vIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N CmZ1bmN0aW9uIHNtZF93dV9zaG93Zm9ybSgkbWVzc2FnZSwgJHRlcm09JycsICRzZWw9YXJy YXkoKSwgJGluY2w9MCwgJHdob2xlPTApIHsNCglwYWdldG9wKHNtZF93dV9nVHh0KCdzbWRf d3UnKSwkbWVzc2FnZSk7DQoJJGJ0blNlYXJjaCA9IGZJbnB1dCgnc3VibWl0JywgJ3NtZF93 dV9zZWFyY2gnLCBnVHh0KCdzZWFyY2gnKSwgJ3NtYWxsZXJib3gnKS5zSW5wdXQoJ3NtZF93 dV9zZWFyY2gnKTsNCgkkYnRuU3R5bGUgPSAnIHN0eWxlPSJib3JkZXI6MDtoZWlnaHQ6MjVw eCInOw0KCSRwbGFjZSA9IGFycmF5KCdzZWN0aW9ucycsJ3BhZ2VzJywnZm9ybXMnLCdhcnRp Y2xlcycpOw0KCSRzZWwgPSAoZW1wdHkoJHNlbCkpID8gJHBsYWNlIDogJHNlbDsNCg0KCWVj aG8gJzxmb3JtIG1ldGhvZD0icG9zdCIgbmFtZT0ic21kX3d1X2Zvcm0iPic7DQoJZWNobyBz dGFydFRhYmxlKCdsaXN0Jyk7DQoJZWNobyB0cihmTGFiZWxDZWxsKHNtZF93dV9nVHh0KCdz ZWFyY2hfbGJsJykpIC4gdGRjcyhmSW5wdXQoJ3RleHQnLCAnc2VhcmNoX2ZvcicsIHN0cmlw c2xhc2hlcygkdGVybSksICcnLCAnJywgJycsIDMwKSwgNCkgLiB0ZGEoJGJ0blNlYXJjaCwg JGJ0blN0eWxlKSk7DQoJZWNobyB0cihmTGFiZWxDZWxsKHNtZF93dV9nVHh0KCdmaWx0ZXIn KSkudGRjcyhyYWRpbygnbWV0aCcsMCwoKCRpbmNsPT0wKT8xOjApKS5zbWRfd3VfZ1R4dCgn aW5jbHVzaW9uJykuIiAiIC4gcmFkaW8oJ21ldGgnLDEsKCgkaW5jbD09MSk/MTowKSkuc21k X3d1X2dUeHQoJ2V4Y2x1c2lvbicpLiAiIHwgIiAuIHNtZF93dV9nVHh0KCd3aG9sZV93b3Jk JykuY2hlY2tib3goJ3dob2xlJywgMSwgKCgkd2hvbGU9PTEpPzE6MCkpLCA0KSk7DQoJJG91 dCA9ICcnOw0KCWZvcmVhY2ggKCRwbGFjZSBhcyAkaGVyZSkgew0KCQkkb3V0IC49IGZMYWJl bENlbGwoZ1R4dCgkaGVyZSkgLiBjaGVja2JveCgncGxhY2VzW10nLCAkaGVyZSwgaW5fYXJy YXkoJGhlcmUsJHNlbCkpKTsNCgl9DQoJZWNobyB0cihmTGFiZWxDZWxsKHNtZF93dV9nVHh0 KCdzZWFyY2hfd2hlcmVfbGJsJykpIC4gJG91dCk7DQoJZWNobyBlbmRUYWJsZSgpOw0KCWVj aG8gJzwvZm9ybT4nOw0KfQ0KDQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCmZ1bmN0aW9uIHNtZF93dV9zZWFy Y2goKSB7DQoJZXh0cmFjdChkb1NsYXNoKGdwc2EoYXJyYXkoJ3NlYXJjaF9mb3InKSkpKTsN Cgkkd2hvbGUgPSBncHMoJ3dob2xlJyk7DQoJJG1ldGggPSBncHMoJ21ldGgnKTsgLy8gMCA9 IGluY2x1ZGUsIDEgPSBleGNsdWRlDQoJJGpvaW5tZSA9ICgkbWV0aCA9PSAwKSA/ICIgT1Ig IiA6ICIgQU5EICI7DQoJJHBsYWNlcyA9IGdwcygncGxhY2VzJyk7DQoJJHBsYWNlcyA9IGlz X2FycmF5KCRwbGFjZXMpID8gJHBsYWNlcyA6IGFycmF5KCk7DQoJc21kX3d1X3Nob3dmb3Jt KCcnLCAkc2VhcmNoX2ZvciwgJHBsYWNlcywgJG1ldGgsICR3aG9sZSk7DQoNCgkvLyBFbnRy aWVzIGluIHRoZSBwbGFjZVRhYmxlIGFycmF5IGFyZToNCgkvLyAgMDogVGFibGUgdG8gc2Vh cmNoDQoJLy8gIDE6IENvbHVtbiB0byBzZWFyY2gNCgkvLyAgMjogQ29sdW1uIHRvIHJldHVy bg0KCS8vICAzOiBIZWFkaW5nIHRvIGRpc3BsYXkgaWYgcmVzdWx0cyBmb3VuZA0KCS8vICA0 OiBFdmVudCBvZiBkZXN0aW5hdGlvbiBVUkwNCgkvLyAgNTogU3RlcCBvZiBkZXN0aW5hdGlv biBVUkwNCgkvLyAgNjogQWRkaXRpb25hbCBVUkwgdmFyDQoJLy8gIDc6IEFkZGl0aW9uYWwg VVJMIHZhciByZXBsYWNlbWVudCAodXNlZCBpbiBzdHJ0cikNCgkkcGxhY2VUYWJsZSA9IGFy cmF5KA0KCQkncGFnZXMnID0+IGFycmF5KCd0eHBfcGFnZScsICd1c2VyX2h0bWwnLCAnbmFt ZScsIGdUeHQoJ3BhZ2VzJyksICdwYWdlJywgJycsICduYW1lJywgJ3tuYW1lfScpLA0KCQkn Zm9ybXMnID0+IGFycmF5KCd0eHBfZm9ybScsICdmb3JtJywgJ25hbWUnLCBnVHh0KCdmb3Jt cycpLCAnZm9ybScsICdmb3JtX2VkaXQnLCAnbmFtZScsICd7bmFtZX0nKSwNCgkJJ2FydGlj bGVzJyA9PiBhcnJheSgndGV4dHBhdHRlcm4nLCAnQm9keSxFeGNlcnB0LG92ZXJyaWRlX2Zv cm0sc2VjdGlvbicsICdJRCx0aXRsZScsIGdUeHQoJ2FydGljbGVzJyksICdhcnRpY2xlJywg J2VkaXQnLCAnSUQnLCAne0lEfScpLA0KCQknc2VjdGlvbnMnID0+IGFycmF5KCd0eHBfc2Vj dGlvbicsICdwYWdlLGNzcycsICduYW1lJywgZ1R4dCgnc2VjdGlvbnMnKSwgJ3NlY3Rpb24n LCAnJywgJyMnLCAnc2VjdGlvbi17bmFtZX0nKSwNCgkpOw0KDQoJJHJzID0gYXJyYXkoKTsN CgllY2hvIG4uJzxociB3aWR0aD0iNTAlIiAvPic7DQoJZWNobyBzdGFydFRhYmxlKCdsaXN0 Jyk7DQoJJGNvbEhlYWQgPSBhcnJheSgpOw0KCSRjb2xCb2R5ID0gYXJyYXkoKTsNCg0KCWlm ICgkc2VhcmNoX2Zvcikgew0KCQllY2hvIHRyKHRkY3ModGFnKGdUeHQoJ3NlYXJjaF9yZXN1 bHRzJyksICdoMicpLCA0KSk7DQoJCWZvcmVhY2ggKCRwbGFjZXMgYXMgJHBsYWNlKSB7DQoJ CQkkY3JvdyA9ICRwbGFjZVRhYmxlWyRwbGFjZV07DQoJCQkkd2hlcmUgPSBhcnJheSgpOw0K CQkJJHdpdGVtcyA9IGRvX2xpc3QoJGNyb3dbMV0pOw0KCQkJJGxpc3QgPSBkb19saXN0KCRj cm93WzJdKTsNCg0KCQkJZm9yZWFjaCAoJHdpdGVtcyBhcyAkaXRlbSkgew0KCQkJCSR3aGVy ZVtdID0gJGl0ZW0gLiAoKCRtZXRoPT0xKSA/ICcgTk9UJyA6ICcnKSAuICgoJHdob2xlPT0x KSA/ICcgUkVHRVhQIFwnW1s6PDpdXScuJHNlYXJjaF9mb3IuJ1tbOj46XV1cJycgOiAiIExJ S0UgJyUkc2VhcmNoX2ZvciUnIik7DQoJCQl9DQoJCQkkcnMgPSBzYWZlX3Jvd3MoJGNyb3db Ml0sICRjcm93WzBdLCAnKCcuam9pbigkam9pbm1lLCAkd2hlcmUpLicpIE9SREVSIEJZICcu JGxpc3RbMF0pOw0KCQkJJGNvbEhlYWRbXSA9IHRkKHN0cm9uZygkY3Jvd1szXSkpOw0KCQkJ aWYgKCRycykgew0KCQkJCSRvdXQgPSAnPHVsPic7DQoJCQkJZm9yZWFjaCAoJHJzIGFzICRy b3cpIHsNCgkJCQkJJG9wID0gJyc7DQoJCQkJCWZvcmVhY2ggKCRsaXN0IGFzICRjb2wpIHsN CgkJCQkJCSRmcm9tID0gJ3snLiRjb2wuJ30nOw0KCQkJCQkJaWYgKHN0cnBvcygkY3Jvd1s3 XSwgJGZyb20pICE9PSBmYWxzZSkgew0KCQkJCQkJCWlmICgkY3Jvd1s2XSA9PSAiIyIpIHsN CgkJCQkJCQkJJHZhcnMgPSBqb2luX3FzKGFycmF5KCJldmVudCIgPT4gJGNyb3dbNF0sICJz dGVwIiA9PiAkY3Jvd1s1XSkpLiRjcm93WzZdLnN0cnRyKCRjcm93WzddLCBhcnJheSgkZnJv bSA9PiAkcm93WyRjb2xdKSk7DQoJCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkJJHZhcnMgPSBq b2luX3FzKGFycmF5KCJldmVudCIgPT4gJGNyb3dbNF0sICJzdGVwIiA9PiAkY3Jvd1s1XSwg JGNyb3dbNl0gPT4gc3RydHIoJGNyb3dbN10sIGFycmF5KCRmcm9tID0+ICRyb3dbJGNvbF0p KSkpOw0KCQkJCQkJCX0NCgkJCQkJCQkkb3AgLj0gJzxhIGhyZWY9ImluZGV4LnBocCcuJHZh cnMuJyI+Jy4kcm93WyRjb2xdLic8L2E+ICc7DQoJICAgICAgICAgICAgICAgfSBlbHNlIHsN CgkJCQkJCQkkb3AgLj0gJHJvd1skY29sXS4iICI7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJ JG91dCAuPSAnPGxpPicuJG9wLic8L2xpPic7DQoJCQkJfQ0KCQkJCSRvdXQgLj0gJzwvdWw+ JzsNCgkJCQkkY29sQm9keVtdID0gdGQoJG91dCk7DQoJCQl9IGVsc2Ugew0KCQkJCSRjb2xC b2R5W10gPSB0ZChnVHh0KCdub19yZXN1bHRzX2ZvdW5kJykpOw0KCQkJfQ0KCQl9DQoJCWVj aG8gdHIoam9pbigiICIsICRjb2xIZWFkKSk7DQoJCWVjaG8gdHIoam9pbigiICIsICRjb2xC b2R5KSk7DQoJfSBlbHNlIHsNCgkJLy8gTm8gc2VhcmNoIGNyaXRlcmlhLCBzbyBzaG93IG9y cGhhbnMNCgkJZWNobyB0cih0ZGNzKHRhZyhzbWRfd3VfZ1R4dCgnb3JwaGFuX3Jlc3VsdHMn KSwgJ2gyJyksIDUpKTsNCg0KCQkvLyBSZXByb2dyYW0gdGhlIHBsYWNlcy9wbGFjZVRhYmxl DQoJCSRhcnRrZXkgPSBhcnJheV9zZWFyY2goJ2FydGljbGVzJywgJHBsYWNlcyk7DQoJCWlm ICgkYXJ0a2V5ICE9PSBmYWxzZSkgew0KCQkJdW5zZXQoJHBsYWNlc1skYXJ0a2V5XSk7DQoJ CX0NCg0KCQkvLyBwYWdlcy9mb3Jtcy9zZWN0aW9ucyB0byBpZ25vcmUgYmVjYXVzZSB0aGV5 IGFyZSBzdGF0aWMgYW5kIGNhbm5vdCBiZSBkZWxldGVkDQoJCSRlc3NlbnRpYWxzID0gYXJy YXkoDQoJCQknc2VjdGlvbnMnID0+IGFycmF5KCdkZWZhdWx0JyksDQoJCQkncGFnZXMnID0+ IGFycmF5KCdlcnJvcl9kZWZhdWx0JyksDQoJCQknZm9ybXMnID0+IGFycmF5KCdjb21tZW50 cycsJ2NvbW1lbnRzX2Rpc3BsYXknLCdjb21tZW50X2Zvcm0nLCdkZWZhdWx0JywnTGlua3Mn LCdmaWxlcycpLCAvLyBjb3BpZWQgZnJvbSB0eHBfZm9ybXMNCgkJKTsNCg0KCQkkcGxhY2Vz W10gPSAncGx1Z2lucyc7DQoJCSRwbGFjZXNbXSA9ICdzdHlsZXNoZWV0cyc7DQoNCgkJJHBs YWNlVGFibGVbJ3BsdWdpbnMnXSA9IGFycmF5KCd0eHBfcGx1Z2luJywgJ25hbWUnLCAnbmFt ZScsIGdUeHQoJ3BsdWdpbnMnKSwgJ3BsdWdpbicsICcnLCAnIycsICd7bmFtZX0nKTsNCgkJ JHBsYWNlVGFibGVbJ3N0eWxlc2hlZXRzJ10gPSBhcnJheSgndHhwX2NzcycsICduYW1lJywg J25hbWUnLCBzbWRfd3VfZ1R4dCgnc3R5bGVzaGVldHMnKSwgJ2NzcycsICcnLCAnbmFtZScs ICd7bmFtZX0nKTsNCg0KCQkkcGxhY2VUYWJsZVsnZm9ybXMnXVswXSA9ICJTRUxFQ1QgdGYu bmFtZSBGUk9NICIgLnNhZmVfcGZ4KCd0eHBfZm9ybScpLiAiIEFTIHRmIFdIRVJFIHRmLm5h bWUgTk9UIElOICgiIC5kb1F1b3RlKGltcGxvZGUoIicsJyIsJGVzc2VudGlhbHNbJ2Zvcm1z J10pKS4gIikgT1JERVIgQlkgdGYubmFtZSI7IC8vIFdvdWxkIGJlIG5pY2UgdG8gZXhjbHVk ZSBmb3JtcyB0aGF0IHJlZmVyZW5jZSBmb3JtcyBoZXJlIGluc3RlYWQgb2YgaXRlcmF0aW5n IHRocm91Z2ggdGhlbSBsYXRlcg0KCQkkcGxhY2VUYWJsZVsncGFnZXMnXVswXSA9ICJTRUxF Q1QgdHAubmFtZSBGUk9NICIgLnNhZmVfcGZ4KCd0eHBfc2VjdGlvbicpLiAiIEFTIHRzIFJJ R0hUIEpPSU4gIiAuc2FmZV9wZngoJ3R4cF9wYWdlJykuICIgQVMgdHAgT04gdHMucGFnZSA9 IHRwLm5hbWUgV0hFUkUgdHMucGFnZSBJUyBOVUxMIEFORCB0cC5uYW1lIE5PVCBJTiAoIiAu ZG9RdW90ZShpbXBsb2RlKCInLCciLCRlc3NlbnRpYWxzWydwYWdlcyddKSkuICIpIE9SREVS IEJZIHRwLm5hbWUiOw0KCQkkcGxhY2VUYWJsZVsncGx1Z2lucyddWzBdID0gIlNFTEVDVCB0 Zy5uYW1lLCB0Zy5jb2RlIEZST00gIiAuc2FmZV9wZngoJ3R4cF9wbHVnaW4nKS4gIiBBUyB0 ZyBXSEVSRSB0eXBlID0gMCBPUkRFUiBCWSB0Zy5uYW1lIjsNCgkJJHBsYWNlVGFibGVbJ3Nl Y3Rpb25zJ11bMF0gPSAiU0VMRUNUIHRzLm5hbWUgRlJPTSAiIC5zYWZlX3BmeCgndHhwX3Nl Y3Rpb24nKS4gIiBBUyB0cyBMRUZUIEpPSU4gIiAuc2FmZV9wZngoJ3RleHRwYXR0ZXJuJyku ICIgQVMgdHhwIE9OIHRzLm5hbWUgPSB0eHAuc2VjdGlvbiBXSEVSRSBJRCBJUyBOVUxMIEFO RCB0cy5uYW1lIE5PVCBJTiAoIiAuZG9RdW90ZShpbXBsb2RlKCInLCciLCRlc3NlbnRpYWxz WydzZWN0aW9ucyddKSkuICIpIE9SREVSIEJZIHRzLm5hbWUiOw0KCQkkcGxhY2VUYWJsZVsn c3R5bGVzaGVldHMnXVswXSA9ICJTRUxFQ1QgdGMubmFtZSBGUk9NICIgLnNhZmVfcGZ4KCd0 eHBfc2VjdGlvbicpLiAiIEFTIHRzIFJJR0hUIEpPSU4gIiAuc2FmZV9wZngoJ3R4cF9jc3Mn KS4gIiBBUyB0YyBPTiB0cy5jc3MgPSB0Yy5uYW1lIFdIRVJFIHRzLnBhZ2UgSVMgTlVMTCBP UkRFUiBCWSB0Yy5uYW1lIjsNCg0KCQkvLyBGb3IgImF3a3dhcmQiIHF1ZXJpZXMgdGhhdCBj YW4ndCBiZSBkb25lIGluIG9uZSBzaG90LCB0aGVyZSBhcmUgdGhyZWUgdGhpbmdzIHJlcXVp cmVkIHBlciAkcGxhY2U6DQoJCS8vICAxOiB0eHAgdGFibGUgbmFtZQ0KCQkvLyAgMjogbGlz dCBvZiBjb2x1bW5zIHRvIGNvbXBhcmUNCgkJLy8gIDM6IG1ldGhvZCBvZiBjb21wYXJpc29u IHBlciBjb2x1bW4gKDAgPSAiZGlyZWN0IG1hdGNoIiwgMSA9ICJsaWtlIikNCgkJJGNUYWJs ZSA9IGFycmF5KA0KCQkJJ3BsdWdpbnMnID0+IGFycmF5KA0KCQkJCSd0eHBfZm9ybScgPT4g YXJyYXkoJ2Zvcm0nID0+IDEpLA0KCQkJCSd0eHBfcGFnZScgPT4gYXJyYXkoJ3VzZXJfaHRt bCcgPT4gMSksDQoJCQkJJ3RleHRwYXR0ZXJuJyA9PiBhcnJheSgnQm9keScgPT4gMSwgJ0V4 Y2VycHQnID0+IDEpLA0KCQkJKSwNCgkJCSdmb3JtcycgPT4gYXJyYXkoDQoJCQkJJ3R4cF9m b3JtJyA9PiBhcnJheSgnZm9ybScgPT4gMSksDQoJCQkJJ3R4cF9wYWdlJyA9PiBhcnJheSgn dXNlcl9odG1sJyA9PiAxKSwNCgkJCQkndGV4dHBhdHRlcm4nID0+IGFycmF5KCdCb2R5JyA9 PiAxLCAnRXhjZXJwdCcgPT4gMSwgJ292ZXJyaWRlX2Zvcm0nID0+IDApLA0KCQkJKSwNCgkJ KTsNCg0KCQkvLyBXb3JrIG9uIGEgY29sdW1uIGF0IGEgdGltZQ0KCQlmb3JlYWNoICgkcGxh Y2VzIGFzICRwbGFjZSkgew0KCQkJJGNyb3cgPSAkcGxhY2VUYWJsZVskcGxhY2VdOw0KCQkJ JGNvbFJlZnMgPSBkb19saXN0KCRjcm93WzJdKTsNCgkJCSRjb2xIZWFkW10gPSB0ZChzdHJv bmcoJGNyb3dbM10pKTsNCgkJCSRycyA9IHN0YXJ0Um93cygkY3Jvd1swXSk7DQoJCQlpZiAo JHJzKSB7DQoJCQkJJG91dCA9ICc8dWw+JzsNCgkJCQl3aGlsZSAoJHJvdyA9IG5leHRSb3co JHJzKSkgew0KCQkJCQkvLyBDb3VudCB0aGUgbm8gb2YgcmVjb3JkcyBtYXRjaGluZyB0aGlz IG5hbWUgaW4gZWFjaCB0YWJsZS4NCgkJCQkJLy8gQW55IHRpbWUgdGhpcyBnb2VzIGFib3Zl IHplcm8sIHRoZSBpdGVtIGlzIHVzZWQgYW5kIGl0IGNhbiBiZSBpZ25vcmVkDQoJCQkJCSRv cCA9ICcnOw0KCQkJCQkkZm5hbGlhc2VzID0gYXJyYXkoKTsNCgkJCQkJaWYgKGFycmF5X2tl eV9leGlzdHMoJHBsYWNlLCAkY1RhYmxlKSkgew0KCQkJCQkJLy8gUGx1Z2luIGZ1bmN0aW9u cyBhcmUgbm90IG5lY2Vzc2FyaWx5IHRoZSBuYW1lIG9mIHRoZSBwbHVnaW4gaXRzZWxmLg0K CQkJCQkJLy8gRmluZCBhbGwgZnVuY3Rpb24gZGVmaW5pdGlvbnMgYW5kIGJ1aWxkIGEgbGlz dCBvZiBhbGlhc2VzDQoJCQkJCQlpZiAoJHBsYWNlID09ICdwbHVnaW5zJykgew0KCQkJCQkJ CSRyZSA9ICcvZnVuY3Rpb25ccysoW0EtWmEtejAtOV9dKylccypcKC8nOw0KCQkJCQkJCSRu dW0gPSBwcmVnX21hdGNoX2FsbCgkcmUsICRyb3dbJ2NvZGUnXSwgJGZuYWxpYXNlcyk7DQoJ CQkJCQl9DQoNCgkJCQkJCSRyZWNzID0gMDsNCgkJCQkJCWZvcmVhY2ggKCRjVGFibGVbJHBs YWNlXSBhcyAkdGJsID0+ICRjb2xJbmZvKSB7DQoJCQkJCQkJaWYgKCRyZWNzID09IDApIHsN CgkJCQkJCQkJJHdoZXJlID0gYXJyYXkoKTsNCgkJCQkJCQkJZm9yZWFjaCAoJGNvbEluZm8g YXMgJGNvbE5hbWUgPT4gJHFyeVR5cGUpIHsNCgkJCQkJCQkJCSR3aGVyZVtdID0gJGNvbE5h bWUgLiAoKCRxcnlUeXBlPT0wKSA/ICIgPSAnIiAuJHJvd1skY29sUmVmc1swXV0uICInIiA6 ICIgTElLRSAnJSIgLiRyb3dbJGNvbFJlZnNbMF1dLiAiJSciKTsNCgkJCQkJCQkJCWlmIChj b3VudCgkZm5hbGlhc2VzKSA+IDEpIHsNCgkJCQkJCQkJCQlmb3JlYWNoICgkZm5hbGlhc2Vz WzFdIGFzICRmbmFsaWFzKSB7DQoJCQkJCQkJCQkJCSR3aGVyZVtdID0gJGNvbE5hbWUgLiAo KCRxcnlUeXBlPT0wKSA/ICIgPSAnIiAuJGZuYWxpYXMuICInIiA6ICIgTElLRSAnJSIgLiRm bmFsaWFzLiAiJSciKTsNCgkJCQkJCQkJCQl9DQoJCQkJCQkJCQl9DQoJCQkJCQkJCX0NCgkJ CQkJCQkJJHdoZXJlID0gam9pbigiIE9SICIsICR3aGVyZSk7DQoJCQkJCQkJCSRyZWNzICs9 IHNhZmVfY291bnQoJHRibCwgJHdoZXJlKTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoNCgkJCQkJ CS8vIElmIHRoZSBpdGVtIGhhcyBub3QgYmVlbiBmb3VuZCwgZmxhZyBpdA0KCQkJCQkJaWYg KCRyZWNzID09IDApIHsNCgkJCQkJCQkkY29sTmFtZXMgPSAkY29sUmVmczsNCgkJCQkJCX0g ZWxzZSB7DQoJCQkJCQkJJGNvbE5hbWVzID0gYXJyYXkoKTsNCgkJCQkJCX0NCgkJCQkJfSBl bHNlIHsNCgkJCQkJCSRjb2xOYW1lcyA9ICRjb2xSZWZzOw0KCQkJCQl9DQoNCgkJCQkJLy8g TWFrZSB1cCB0aGUgc3RyaW5nIHRvIGRpc3BsYXksIGFuZCBoeXBlcmxpbmsgaXQgaWYgZGly ZWN0ZWQNCgkJCQkJZm9yZWFjaCAoJGNvbE5hbWVzIGFzICRjb2wpIHsNCgkJCQkJCSRmcm9t ID0gJ3snLiRjb2wuJ30nOw0KCQkJCQkJaWYgKHN0cnBvcygkY3Jvd1s3XSwgJGZyb20pICE9 PSBmYWxzZSkgew0KCQkJCQkJCWlmICgkY3Jvd1s2XSA9PSAiIyIpIHsNCgkJCQkJCQkJJHZh cnMgPSBqb2luX3FzKGFycmF5KCJldmVudCIgPT4gJGNyb3dbNF0sICJzdGVwIiA9PiAkY3Jv d1s1XSkpLiRjcm93WzZdLnN0cnRyKCRjcm93WzddLCBhcnJheSgkZnJvbSA9PiAkcm93WyRj b2xdKSk7DQoJCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkJJHZhcnMgPSBqb2luX3FzKGFycmF5 KCJldmVudCIgPT4gJGNyb3dbNF0sICJzdGVwIiA9PiAkY3Jvd1s1XSwgJGNyb3dbNl0gPT4g c3RydHIoJGNyb3dbN10sIGFycmF5KCRmcm9tID0+ICRyb3dbJGNvbF0pKSkpOw0KCQkJCQkJ CX0NCgkJCQkJCQkkb3AgLj0gJzxhIGhyZWY9ImluZGV4LnBocCcuJHZhcnMuJyI+Jy4kcm93 WyRjb2xdLic8L2E+ICc7DQoJICAgICAgICAgICAgICAgfSBlbHNlIHsNCgkJCQkJCQkkb3Ag Lj0gJHJvd1skY29sXS4iICI7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJJG91dCAuPSAnPGxp PicuJG9wLic8L2xpPic7DQoJCQkJfQ0KCQkJCSRvdXQgLj0gJzwvdWw+JzsNCgkJCQkkY29s Qm9keVtdID0gdGQoJG91dCk7DQoJCQl9IGVsc2Ugew0KCQkJCSRjb2xCb2R5W10gPSB0ZChz bWRfd3VfZ1R4dCgnbm9fb3JwaGFuc19mb3VuZCcpKTsNCgkJCX0NCgkJfQ0KCQllY2hvIHRy KGpvaW4oIiAiLCAkY29sSGVhZCkpOw0KCQllY2hvIHRyKGpvaW4oIiAiLCAkY29sQm9keSkp Ow0KCX0NCgllY2hvIGVuZFRhYmxlKCk7DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIFBsdWdpbi1z cGVjaWZpYyByZXBsYWNlbWVudCBzdHJpbmdzIC0gbG9jYWxpc2UgYXMgcmVxdWlyZWQNCi8v IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCmZ1bmN0aW9uIHNtZF93dV9nVHh0KCR3aGF0LCAkYXR0cyA9IGFycmF5KCkp IHsNCgkkbGFuZyA9IGFycmF5KA0KCQknZXhjbHVzaW9uJyA9PiAnRXhjbHVkZScsDQoJCSdp bmNsdXNpb24nID0+ICdJbmNsdWRlJywNCgkJJ2ZpbHRlcicgPT4gJ0ZpbHRlcjonLA0KCQkn bm9fb3JwaGFuc19mb3VuZCcgPT4gJ05vIG9ycGhhbnMgZm91bmQuJywNCgkJJ29ycGhhbl9y ZXN1bHRzJyA9PiAnUG9zc2libGUgb3JwaGFucycsDQoJCSdzZWFyY2hfbGJsJyA9PiAnRmlu ZDonLA0KCQknc2VhcmNoX3doZXJlX2xibCcgPT4gJ0xvb2sgaW46JywNCgkJJ3N0eWxlc2hl ZXRzJyA9PiAnU3R5bGVzaGVldHMnLA0KCQknc21kX3d1JyA9PiAnV2hlcmUgdXNlZCcsDQoJ CSd3aG9sZV93b3JkJyA9PiAnV2hvbGUgd29yZHMnLA0KCSk7DQoJcmV0dXJuIHN0cnRyKCRs YW5nWyR3aGF0XSwgJGF0dHMpOw0KfSI7czo0OiJ0eXBlIjtzOjE6IjEiO3M6NDoiaGVscCI7 czo1OTg5OiIJPHA+PGRpdiBpZD0ic21kX2hlbHAiPjwvcD4KCgk8aDE+c21kX3doZXJlX3Vz ZWQ8L2gxPgoKCTxwPlJlYWxseSBzaW1wbGUgYWRtaW4tc2lkZSBwbHVnaW4gdG8gaGVscCBm aW5kIHdoYXQgeW91IG5lZWQgdG8gZWRpdC9kZWxldGUuIElmIHlvdSBoYXZlIGEgdG9ubmUg b2YgZm9ybXMgb3IgcGFnZXMgYW5kIHdhbnQgdG8gdGlkeSBzdHVmZiB1cCBpdCBjYW4gYmUg YSBiaXQgb2YgYSBwYWluIHRvIGZpbmQgd2hhdCYjODIxNztzIGFjdHVhbGx5IGluIHVzZS48 L3A+CgoJPHA+U28gdXNlIHRoaXMgcGx1Z2luIHRvIHNlYXJjaCB5b3VyIHNlY3Rpb25zLCBw YWdlcywgZm9ybXMgb3IgYXJ0aWNsZXMgZm9yIHJlZmVyZW5jZXMgdG8gcGx1Z2lucywgb3Ig b3RoZXIgcGFnZXMvZm9ybXMgb3IgZXZlbiBqdXN0IHBsYWluIHRleHQgaW4gYXJ0aWNsZXMu PC9wPgoKCTxoMiBjbGFzcz0iYXV0aG9yIj5BdXRob3I8L2gyPgoKCTxwPjxhIGhyZWY9Imh0 dHA6Ly9zdGVmZGF3c29uLmNvbS9jb21tZW50Rm9ybSI+U3RlZiBEYXdzb248L2E+PC9wPgoK CTxoMiBjbGFzcz0iaW5zdGFsbCI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2gy PgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDov L3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzk4NC9zbWRfd2hlcmVfdXNlZCI+dGV4dHBhdHRl cm4ub3JnPC9hPiwgb3IgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+ c29mdHdhcmUgcGFnZTwvYT4sIHBhc3RlIHRoZSBjb2RlIGludG8gdGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5UWFA8L3NwYW4+IEFkbWluIC0mZ3Q7IFBsdWdpbnMgcGFuZSwgaW5zdGFsbCBh bmQgZW5hYmxlIHRoZSBwbHVnaW4uIFZpc2l0IHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0u dGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9Mjc0OTMiPmZvcnVtIHRocmVhZDwv YT4gZm9yIG1vcmUgaW5mbyBhbmQgdG8gcmVwb3J0IHRoZSBzdWNjZXNzIChvciBvdGhlcndp c2UpIG9mIHRoaXMgcGx1Z2luLjwvcD4KCgk8cD5Vbmluc3RhbGwgYnkgc2ltcGx5IGRlbGV0 aW5nIHRoZSBwbHVnaW4gZnJvbSB0aGUgQWRtaW4tJmd0O1BsdWdpbnMgcGFuZS48L3A+CgoJ PGgyIGNsYXNzPSJ1c2FnZSI+VXNhZ2U8L2gyPgoKCTxwPlZpc2l0IHRoZSBFeHRlbnNpb25z IHRhYiBhbmQgQ2xpY2sgJiM4MjE2O1doZXJlIHVzZWQmIzgyMTc7IHRvIGFjY2VzcyB0aGUg c2VhcmNoIGZvcm0uIFR5cGUgc29tZSBzdHVmZiB0byBmaW5kLCBzZWxlY3Qgd2hlcmUgeW91 IHdhbnQgdG8gbG9vayBhbmQgaGl0ICYjODIxNjtTZWFyY2gmIzgyMTc7IG9yIHByZXNzIEVu dGVyLiBZb3VyIHJlcXVlc3RlZCBsb2NhdGlvbnMgd2lsbCBiZSBzZWFyY2hlZCBmb3IgdGhh dCB0ZXJtIGFuZCB0aGUgcmVzdWx0cyB0YWJ1bGF0ZWQsIHdpdGggaHlwZXJsaW5rcyB0byB0 aGUgb2ZmZW5kaW5nIGl0ZW1zIHNvIHlvdSBjYW4gcXVpY2tseSBlZGl0IHRoZW0uPC9wPgoK CTxwPllvdSBjYW4gZGVjaWRlIHdoZXRoZXIgdG8gc2VhcmNoIGZvciB0aGUgdGVybSAoJiM4 MjIwO0luY2x1ZGUmIzgyMjE7KSBvciB0byBzZWFyY2ggZm9yIHN0dWZmIDxzcGFuIGNsYXNz PSJjYXBzIj5OT1Q8L3NwYW4+IGNvbnRhaW5pbmcgdGhhdCB0ZXJtICgmIzgyMjA7RXhjbHVk ZSYjODIyMTspLiBBbmQgeW91IG1heSBhbHNvIGNob29zZSB3aGV0aGVyIHlvdXIgc2VhcmNo IHRlcm0gbWF0Y2hlcy9kb2VzIG5vdCBtYXRjaCBhIHdob2xlIHdvcmQuPC9wPgoKCTxwPlRo aXMgaXMgd2hhdCB0aGUgcGx1Z2luIGxvb2tzIGF0IHdoZW4geW91IHNlbGVjdCBhIHBhcnRp Y3VsYXIgY2hlY2tib3ggZnJvbSB0aGUgJiM4MjIwO0xvb2sgaW4mIzgyMjE7IHJvdzo8L3A+ CgoJPHVsPgoJCTxsaT4mIzgyMTY7U2VjdGlvbnMmIzgyMTc7IHNlYXJjaGVzIGV2ZXJ5IFNl Y3Rpb24gZm9yIHBhZ2VzIG9yIHN0eWxlc2hlZXRzIHdpdGggdGhlIG1hdGNoaW5nIG5hbWU8 L2xpPgoJCTxsaT4mIzgyMTY7UGFnZXMmIzgyMTc7IHNlYXJjaGVzIGV2ZXJ5IFBhZ2UgZm9y IGZvcm1zIC8gcGx1Z2lucyAvIHRleHQgd2l0aCB0aGUgbWF0Y2hpbmcgbmFtZTwvbGk+CgkJ PGxpPiYjODIxNjtGb3JtcyYjODIxNzsgc2VhcmNoZXMgZXZlcnkgRm9ybSBmb3IgcGx1Z2lu cyAvIG90aGVyIGZvcm1zIC8gdGV4dCB3aXRoIHRoZSBtYXRjaGluZyBuYW1lPC9saT4KCQk8 bGk+JiM4MjE2O0FydGljbGVzJiM4MjE3OyBzZWFyY2hlcyBldmVyeSBBcnRpY2xlIHNlY3Rp b24sIGJvZHksIGV4Y2VycHQgYW5kIG92ZXJyaWRlX2Zvcm0gZm9yIG1lbnRpb24gb2YgdGhl IHRleHQgeW91IHNwZWNpZnk8L2xpPgoJPC91bD4KCgk8cD5JZiwgaG93ZXZlciwgeW91IGxl YXZlIHRoZSAmIzgyMTY7RmluZCYjODIxNzsgYm94IGVtcHR5IGFuZCBjbGljayAmIzgyMTY7 U2VhcmNoJiM4MjE3OyB0aGUgcGx1Z2luIHdpbGwgc2VhcmNoIGZvciBvcnBoYW5zLiBPcnBo YW5zIGFyZSBkZWZpbmVkIGFzIGZvbGxvd3M6PC9wPgoKCTx1bD4KCQk8bGk+QW55IFBhZ2Ug dGhhdCBpcyBub3QgYXNzaWduZWQgdG8gYSBTZWN0aW9uPC9saT4KCQk8bGk+QW55IFN0eWxl c2hlZXQgdGhhdCBpcyBub3QgYXNzaWduZWQgdG8gYSBTZWN0aW9uPC9saT4KCQk8bGk+QW55 IFNlY3Rpb24gdGhhdCBoYXMgbm8gQXJ0aWNsZXMgaW4gaXQgKGV4Y2x1ZGluZyDigJhkZWZh dWx04oCZIHdoaWNoIGNhbm5vdCBoYXZlIGFuIGFydGljbGUgYW55d2F5KTwvbGk+CgkJPGxp PkFueSBjbGllbnQtc2lkZSBQbHVnaW4gdGhhdCBpcyBub3QgcmVmZXJlbmNlZCBmcm9tIGFu IEFydGljbGUgKGJvZHkvZXhjZXJwdCkgb3IgYW5vdGhlciBGb3JtIG9yIFBhZ2U8L2xpPgoJ CTxsaT5BbnkgRm9ybSB0aGF0IGhhcyBubyByZWZlcmVuY2UgdG8gaXQgaW4gYW55IEFydGlj bGUgKGJvZHkvZXhjZXJwdC9vdmVycmlkZV9mb3JtKSBvciBhbm90aGVyIEZvcm0gb3IgUGFn ZTwvbGk+Cgk8L3VsPgoKCTxwPk5vdGVzOjwvcD4KCgk8dWw+CgkJPGxpPk9ycGhhbmVkIGFy dGljbGVzIGRvbiYjODIxNzt0IG1ha2Ugc2Vuc2Ugc28gdGhleSBhcmUgb21pdHRlZC4gVGhl IGNoZWNrYm94IGlzIGlnbm9yZWQ8L2xpPgoJCTxsaT5Fc3NlbnRpYWwgc2VjdGlvbnMgLyBw YWdlcyAvIGZvcm1zIHRoYXQgY2Fubm90IGJlIGRlbGV0ZWQgYXJlIG5vdCBsaXN0ZWQ8L2xp PgoJCTxsaT5TdHlsZXNoZWV0cyBhbmQgUGx1Z2lucyBhcmUgYWx3YXlzIGRpc3BsYXllZCBi ZWNhdXNlIHRoZXJlIGFyZSBubyBjaGVjayBib3hlcyBmb3IgdGhlbS4gVGhlIHJlYXNvbiBp cyB0aGF0IHRoZSBwbHVnaW4gZG9lcyBub3QgYWxsb3cgc2VhcmNoaW5nIHdpdGhpbiBhIHBs dWdpbiBvciBhIHN0eWxlc2hlZXQgZm9yIGEgcmVmZXJlbmNlIHRvIGEgd29yZCwgYnV0IGl0 IGRvZXMgY2hlY2sgb3RoZXIgcGxhY2VzIGZvciByZWZlcmVuY2VzIDxlbT50bzwvZW0+IHBs dWdpbnMgYW5kIHN0eWxlc2hlZXRzPC9saT4KCQk8bGk+SnVzdCBiZWNhdXNlIGFuIGl0ZW0g aXMgbGlzdGVkIGFzIG9ycGhhbmVkIGRvZXMgPGVtPm5vdCBuZWNlc3NhcmlseSBtZWFuIGl0 IGlzIG5vdCB1c2VkPC9lbT4hIEZvciBleGFtcGxlLCBydm1fbWFpbnRlbmFuY2UgY2hlY2tz IGZvciB0aGUgZXhpc3RlbmNlIG9mIGFuIDxjb2RlPmVycm9yXzUwMzwvY29kZT4gUGFnZS4g U2luY2UgaXQgaXMgbmV2ZXIgYXNzaWduZWQgdG8gYSBTZWN0aW9uIGl0IHdpbGwgYmUgbGlz dGVkIGFzIG9ycGhhbmVkLiBJZiB5b3UgaGF2ZSBhIGRlZGljYXRlZCBzdHlsZXNoZWV0IGZv ciBtYWludGVuYW5jZSBtb2RlIHRoYXQsIHRvbywgd2lsbCBiZSBzaG93biBhcyBvcnBoYW5l ZC4gSW4gc2hvcnQsIGJlIGNhcmVmdWwgYW5kIG1ha2UgYSBiYWNrdXAgOi0pPC9saT4KCQk8 bGk+UGx1Z2lucyBzdWNoIGFzIHBhcF9jb250YWN0X2NsZWFuZXIgYW5kIHJ2bV9tYWludGVu YW5jZSBhcmUgbGlzdGVkIGFzIG9ycGhhbnMgZXZlbiB0aG91Z2ggdGhleSBhcmUgdXNlZCBi eSBvdGhlciBwbHVnaW5zIC8gdXN1YWxseSBkaXNhYmxlZC4gSWYgeW91IGFyZSB1bnN1cmUg YWJvdXQgYSBwbHVnaW4sIGNoZWNrIGl0IGJ5IHR5cGluZyBhIHBhcnRpYWwgdGFnIG5hbWUg aW50byB0aGUgc2VhcmNoIGJveDwvbGk+Cgk8L3VsPgoKCTxoMiBjbGFzcz0iY2hhbmdlbG9n Ij5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+MTYgSnVuIDA4IHwgdjAuMSB8IEluaXRp YWwgcmVsZWFzZTwvbGk+CgkJPGxpPjE2IEp1biAwOCB8IHYwLjExIHwgQWRkZWQgc2VjdGlv biBzZWFyY2ggYW5kIG92ZXJyaWRlX2Zvcm08L2xpPgoJCTxsaT4xNiBKdW4gMDggfCB2MC4x MiB8IEFkZGVkIGluY2x1ZGUvZXhjbHVkZSAodGhhbmtzIG1yZGFsZSk8L2xpPgoJCTxsaT4x NiBKdW4gMDggfCB2MC4xMyB8IEFkZGVkIGFiaWxpdHkgdG8gbWF0Y2ggd2hvbGUgd29yZHMg KHRoYW5rcyB6YW56YSk8L2xpPgoJCTxsaT4xNyBKdW4gMDggfCB2MC4xNCB8IEFkZGVkIG9y cGhhbiBzZWFyY2ggKHRoYW5rcyB1bGkvbmV0LWNhcnZlcik8L2xpPgoJCTxsaT4xOCBKdW4g MDggfCB2MC4xNSB8IEZpeGVkIHBsdWdpbiBsaXN0IHNvIGl0IGRvZXMgYSBkZWVwIHNlYXJj aCBpbnNpZGUgdGhlIHNvdXJjZSBjb2RlIGZvciB0YWcgbmFtZXM8L2xpPgoJPC91bD4KCgk8 cD48L2Rpdj48L3A+CjwhLS0gLS0tIEJFR0lOIFBMVUdJTiBDU1MgLS0tIC0tPgo8c3R5bGUg dHlwZT0idGV4dC9jc3MiPgojc21kX2hlbHAgeyBsaW5lLWhlaWdodDoxLjMgO30KI3NtZF9o ZWxwIGNvZGUgeyBmb250LXdlaWdodDpib2xkOyBmb250OiAxMDUlLzEzMCUgIkNvdXJpZXIg TmV3IiwgY291cmllciwgbW9ub3NwYWNlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO30K I3NtZF9oZWxwIGNvZGUuYmxvY2sgeyBmb250LXdlaWdodDpub3JtYWw7IGJvcmRlcjoxcHgg ZG90dGVkICM5OTk7IGJhY2tncm91bmQtY29sb3I6ICNmMGU2OGM7IGRpc3BsYXk6YmxvY2s7 IG1hcmdpbjoxMHB4IDEwcHggMjBweDsgcGFkZGluZzoxMHB4OyB9CiNzbWRfaGVscCBhOmxp bmssICNzbWRfaGVscCBhOnZpc2l0ZWQgeyBjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9u OiBub25lOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206 MXB4O30KI3NtZF9oZWxwIGE6aG92ZXIsICNzbWRfaGVscCBhOmFjdGl2ZSB7IGNvbG9yOiBi bHVlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBi bHVlOyBwYWRkaW5nLWJvdHRvbToxcHg7fQojc21kX2hlbHAgaDEgeyBjb2xvcjogIzM2OTsg Zm9udDogMjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7IHRleHQtYWxpZ246 IGNlbnRlcjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxh Y2s7IHBhZGRpbmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250OiAxN3B4IEdlb3JnaWEs IHNhbnMtc2VyaWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICM2OTM7IGZvbnQ6IGJvbGQg MTJweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAx MHB4IDAgMDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO30KI3NtZF9oZWxwIGg0IHsgZm9u dDogYm9sZCAxMXB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBt YXJnaW46IDEwcHggMCAwIDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9CiNzbWRfaGVs cCAuYXR0LW5hbWUgeyBmb250LXdlaWdodDpib2xkOyB9CiNzbWRfaGVscCAubWFuZCB7IGJh Y2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgfQojc21kX2hlbHAgdGFi bGUge3dpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbToxZW07 fQojc21kX2hlbHAgdGQsICNzbWRfaGVscCB0aCB7Ym9yZGVyOjFweCBzb2xpZCAjOTk5OyBw YWRkaW5nOi41ZW0gMDt9Cjwvc3R5bGU+CjwhLS0gLS0tIEVORCBQTFVHSU4gQ1NTIC0tLSAt LT4KIjtzOjM6Im1kNSI7czozMjoiZTZhYmU2YWQ5MDUyZjI3ZDZkOGNmYzMyMTgwZmY2MGYi O30=