### SYNC-TRANSFER 6/7 -- mit sync-entpacken.bat entpacken ### Base64 ### FILE: server.ps1 | 253354 77u/cGFyYW0oDQogICAgW2ludF0kUG9ydCA9IDgwODEsDQogICAgW3N0cmluZ10kUm9vdFBhdGgg PSAnJywNCiAgICBbc3dpdGNoXSREZWJ1ZywNCiAgICBbc3dpdGNoXSROb0Jyb3dzZXINCikNCg0K IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KIyBGTEQtUGxhbnVuZyAtIExva2FsZXIgSFRUUC1TZXJ2 ZXIgKFBvd2VyU2hlbGwpDQojIFNwaWVnZWx0IGRpZSBGdW5rdGlvbmFsaXRhZXQgdm9uIHNlcnZl ci5weSAxOjEgd2lkZXIuDQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCiRFcnJvckFjdGlvblBy ZWZlcmVuY2UgPSAnU3RvcCcNCg0KIyBTeXN0ZW0uV2ViIGZ1ZXIgVXJsRGVjb2RlIGluIEJhY2t1 cC1Eb3dubG9hZA0KdHJ5IHsgQWRkLVR5cGUgLUFzc2VtYmx5TmFtZSBTeXN0ZW0uV2ViIC1FcnJv ckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIH0gY2F0Y2gge30NCg0KIyAtLS0gQXJiZWl0c3Zlcnpl aWNobmlzIGJlc3RpbW1lbiAtLS0NCiMgUHJpb3JpdGFldDoNCiMgICAxKSAtUm9vdFBhdGggYWxz IFBhcmFtZXRlciAod2VubiBnZXNldHp0IHVuZCBQZmFkIGV4aXN0aWVydCkNCiMgICAyKSBhcHBf cm9vdC50eHQgYWxzIFNpZGVjYXItRGF0ZWkgbmViZW4gc2VydmVyLnBzMSAodm9uIGRlciBCYXQg Z2VzY2hyaWViZW4pLg0KIyAgICAgIFJvYnVzdCBnZWdlbiBjbWQtUXVvdGUtVmVyc2NoYWNodGVs dW5nIGJlaSBVTkMtUGZhZGVuLCBkaWUgZGVuDQojICAgICAgLVJvb3RQYXRoLVBhcmFtZXRlciBz b25zdCB2ZXJzY2hsdWNrZW4ga2Fubi4NCiMgICAzKSAkUFNTY3JpcHRSb290IGFscyBGYWxsYmFj ayAobnVyIHNpbm52b2xsIGJlaSBMb2thbC1TdGFydCkuDQokX3Jvb3RTcmMgPSAnJw0KaWYgKCRS b290UGF0aCAtYW5kIChUZXN0LVBhdGggJFJvb3RQYXRoKSkgew0KICAgICRSb290ID0gKFJlc29s dmUtUGF0aCAkUm9vdFBhdGgpLlBhdGgNCiAgICAkX3Jvb3RTcmMgPSAnLVJvb3RQYXRoLVBhcmFt ZXRlcicNCn0gZWxzZSB7DQogICAgJF9zaWRlY2FyID0gSm9pbi1QYXRoICRQU1NjcmlwdFJvb3Qg J2FwcF9yb290LnR4dCcNCiAgICBpZiAoVGVzdC1QYXRoICRfc2lkZWNhcikgew0KICAgICAgICB0 cnkgew0KICAgICAgICAgICAgJF9wZmFkID0gKEdldC1Db250ZW50ICRfc2lkZWNhciAtUmF3IC1F bmNvZGluZyBVVEY4KS5UcmltKCkNCiAgICAgICAgICAgIGlmICgkX3BmYWQgLWFuZCAoVGVzdC1Q YXRoICRfcGZhZCkpIHsNCiAgICAgICAgICAgICAgICAkUm9vdCA9IChSZXNvbHZlLVBhdGggJF9w ZmFkKS5QYXRoDQogICAgICAgICAgICAgICAgJF9yb290U3JjID0gIlNpZGVjYXIgYXBwX3Jvb3Qu dHh0ICgkX3NpZGVjYXIpIg0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGNhdGNoIHt9DQogICAg fQ0KICAgIGlmICgtbm90ICRSb290KSB7DQogICAgICAgICRSb290ID0gJFBTU2NyaXB0Um9vdA0K ICAgICAgICAkX3Jvb3RTcmMgPSAnUFNTY3JpcHRSb290LUZhbGxiYWNrJw0KICAgIH0NCn0NCiRE YXRhRGlyID0gSm9pbi1QYXRoICRSb290ICdkYXRhJw0KDQojIC0tLSBGZWhsZXItTG9nIChkYW1p dCBtYW4gYmVpIEVSUl9DT05ORUNUSU9OX1JFRlVTRUQgc2VoZW4ga2Fubiwgd2FzIHdhcikgLS0t DQokc2NyaXB0OkxvZ0ZpbGUgPSBKb2luLVBhdGggJGVudjpURU1QICdGTERfc2VydmVyLmxvZycN CmZ1bmN0aW9uIFdyaXRlLVN0YXJ0dXBMb2coJE1lc3NhZ2UpIHsNCiAgICAkTGluZSA9ICJbJChH ZXQtRGF0ZSAtRm9ybWF0ICd5eXl5LU1NLWRkIEhIOm1tOnNzJyldICRNZXNzYWdlIg0KICAgIHRy eSB7IEFkZC1Db250ZW50IC1QYXRoICRzY3JpcHQ6TG9nRmlsZSAtVmFsdWUgJExpbmUgLUVuY29k aW5nIFVURjggfSBjYXRjaCB7fQ0KICAgIFdyaXRlLUhvc3QgJExpbmUNCn0NCg0KV3JpdGUtU3Rh cnR1cExvZyAiPT09IFNlcnZlci1TdGFydCAoUElEICRQSUQpID09PSINCldyaXRlLVN0YXJ0dXBM b2cgIlJvb3Q6ICRSb290ICAoUXVlbGxlOiAkX3Jvb3RTcmMpIg0KV3JpdGUtU3RhcnR1cExvZyAi Um9vdFBhdGgtUGFyYW06ICRSb290UGF0aCINCldyaXRlLVN0YXJ0dXBMb2cgIlBTU2NyaXB0Um9v dDogJFBTU2NyaXB0Um9vdCINCldyaXRlLVN0YXJ0dXBMb2cgIkRhdGFEaXI6ICREYXRhRGlyIg0K V3JpdGUtU3RhcnR1cExvZyAiUG9ydDogJFBvcnQiDQpXcml0ZS1TdGFydHVwTG9nICJQb3dlclNo ZWxsOiAkKCRQU1ZlcnNpb25UYWJsZS5QU1ZlcnNpb24pIg0KDQojIEZyw7xod2FybnVuZyB3ZW5u IGRpZSBGcm9udGVuZC1EYXRlaWVuIG5pY2h0IGRhIHNpbmQsIHdvIGRlciBTZXJ2ZXIgc3VjaHQu DQojIFNwYXJ0IDQwNC1TdG9jaGVybiBpbSBCcm93c2VyICgiaW5kZXguaHRtbCB3aXJkIG5pY2h0 IGdlZnVuZGVuIikgLSBVcnNhY2hlDQojIHN0ZWh0IGRpcmVrdCBpbSBTZXJ2ZXItTG9nIChzaWVo ZSBGTERfRkVITEVSLmxvZyBhdWYgZGVtIERlc2t0b3ApLg0KJF9pZHggPSBKb2luLVBhdGggJFJv b3QgJ2luZGV4Lmh0bWwnDQppZiAoLW5vdCAoVGVzdC1QYXRoICRfaWR4KSkgew0KICAgIFdyaXRl LVN0YXJ0dXBMb2cgIkZFSExFUjogaW5kZXguaHRtbCBmZWhsdCB1bnRlciBSb290ICckUm9vdCcg LSBwcnVlZmUgb2IgLVJvb3RQYXRoIGJlaW0gU2VydmVyIGFua2FtLiINCiAgICB0cnkgew0KICAg ICAgICAkX2R1bXAgPSBHZXQtQ2hpbGRJdGVtIC1QYXRoICRSb290IC1Gb3JjZSAtRXJyb3JBY3Rp b24gU2lsZW50bHlDb250aW51ZSB8IFNlbGVjdC1PYmplY3QgLUZpcnN0IDE1IC1FeHBhbmRQcm9w ZXJ0eSBOYW1lDQogICAgICAgIFdyaXRlLVN0YXJ0dXBMb2cgIkluaGFsdCBSb290IChlcnN0ZSAx NSBFaW50cmFlZ2UpOiAkKCRfZHVtcCAtam9pbiAnLCAnKSINCiAgICB9IGNhdGNoIHt9DQp9DQoN CmlmICgtbm90IChUZXN0LVBhdGggJERhdGFEaXIpKSB7DQogICAgdHJ5IHsNCiAgICAgICAgTmV3 LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAkRGF0YURpciAtRm9yY2UgfCBPdXQtTnVs bA0KICAgICAgICBXcml0ZS1TdGFydHVwTG9nICJEYXRlbnZlcnplaWNobmlzIGVyc3RlbGx0LiIN CiAgICB9IGNhdGNoIHsNCiAgICAgICAgV3JpdGUtU3RhcnR1cExvZyAiRkVITEVSOiBEYXRlbnZl cnplaWNobmlzIGtvbm50ZSBuaWNodCBlcnN0ZWxsdCB3ZXJkZW46ICRfIg0KICAgIH0NCn0NCg0K IyAtLS0gR2xvYmFsZXIgU3RhdGUgLS0tDQokc2NyaXB0OkNvcnNPcmlnaW4gPSAiaHR0cDovL2xv Y2FsaG9zdDokUG9ydCINCiRzY3JpcHQ6TGFzdEhlYXJ0YmVhdCA9IEdldC1EYXRlDQokc2NyaXB0 OkhlYXJ0YmVhdFRpbWVvdXRTZWMgPSAzMA0KJHNjcmlwdDpEZWJ1Z0xvZyA9ICREZWJ1Zy5Jc1By ZXNlbnQNCiRzY3JpcHQ6TWF4Qm9keSA9IDUwICogMTAyNCAqIDEwMjQgICMgNTAgTUIgKEV4Y2Vs LUltcG9ydCBrYW5uIGdyb3NzZSBwYXJzZWREYXRlbiBlbnRoYWx0ZW4pDQoNCiRzY3JpcHQ6TWlt ZVR5cGVzID0gQHsNCiAgICAnLmh0bWwnID0gJ3RleHQvaHRtbDsgY2hhcnNldD11dGYtOCcNCiAg ICAnLmNzcycgID0gJ3RleHQvY3NzOyBjaGFyc2V0PXV0Zi04Jw0KICAgICcuanMnICAgPSAnYXBw bGljYXRpb24vamF2YXNjcmlwdDsgY2hhcnNldD11dGYtOCcNCiAgICAnLmpzb24nID0gJ2FwcGxp Y2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnDQogICAgJy5pY28nICA9ICdpbWFnZS94LWljb24n DQogICAgJy5wbmcnICA9ICdpbWFnZS9wbmcnDQogICAgJy5qcGcnICA9ICdpbWFnZS9qcGVnJw0K ICAgICcuanBlZycgPSAnaW1hZ2UvanBlZycNCiAgICAnLmdpZicgID0gJ2ltYWdlL2dpZicNCiAg ICAnLndlYnAnID0gJ2ltYWdlL3dlYnAnDQogICAgJy5zdmcnICA9ICdpbWFnZS9zdmcreG1sJw0K ICAgICcucGRmJyAgPSAnYXBwbGljYXRpb24vcGRmJw0KfQ0KDQojIE1lZGllbi1WZXJ3YWx0dW5n IChBZG1pbi1UYWIgIk1lZGllbiIpDQojIERlZmF1bHQtS2F0ZWdvcmllbiAtIFNvdXJjZS1vZi1U cnV0aCBpc3QgYWRtaW4uanNvbjptZWRpZW5LYXRlZ29yaWVuIChzaWVoZQ0KIyBHZXQtTWVkaWVu S2F0ZWdvcmllS2V5cykuIERpZXNlIERlZmF1bHRzIHdlcmRlbiBudXIgYWxzIEZhbGxiYWNrIGdl bnV0enQsDQojIHdlbm4gZGllIExpc3RlIGluIGFkbWluLmpzb24gZmVobHQgb2RlciBsZWVyIGlz dCAoQXVkaXQtSXRlci1CLCBTeW5jIG1pdA0KIyBzZXJ2ZXIucHk6TUVESUVOX0tBVEVHT1JJRU5f REVGQVVMVFMpLg0KJHNjcmlwdDpNZWRpZW5LYXRlZ29yaWVuRGVmYXVsdHMgPSBAKCdmdXNzYmFs bCcsJ3Nwb3J0Jywnb2ZmaWNlJywncG9saXplaScsJ21pc2MnLCdldmVudHMnLCdwZGYnLCdiYW8n LCdzb25zdGlnZXMnKQ0KJHNjcmlwdDpNZWRpZW5NYXhCeXRlcyA9IDUgKiAxMDI0ICogMTAyNA0K JHNjcmlwdDpNZWRpZW5FcmxhdWJ0ZU1pbWVzID0gQHsNCiAgICAnaW1hZ2UvcG5nJyA9ICcucG5n JzsgJ2ltYWdlL2pwZWcnID0gJy5qcGcnOyAnaW1hZ2UvZ2lmJyA9ICcuZ2lmJw0KICAgICdpbWFn ZS93ZWJwJyA9ICcud2VicCc7ICdpbWFnZS9zdmcreG1sJyA9ICcuc3ZnJzsgJ2FwcGxpY2F0aW9u L3BkZicgPSAnLnBkZicNCn0NCiRzY3JpcHQ6TWVkaWVuU3VmZml4WnVNaW1lID0gQHsNCiAgICAn LnBuZycgPSAnaW1hZ2UvcG5nJzsgJy5qcGcnID0gJ2ltYWdlL2pwZWcnOyAnLmpwZWcnID0gJ2lt YWdlL2pwZWcnDQogICAgJy5naWYnID0gJ2ltYWdlL2dpZic7ICcud2VicCcgPSAnaW1hZ2Uvd2Vi cCc7ICcuc3ZnJyA9ICdpbWFnZS9zdmcreG1sJw0KICAgICcucGRmJyA9ICdhcHBsaWNhdGlvbi9w ZGYnDQp9DQoNCiMgU3lzdGVtLUJpbGRlciBhdXMgL2ltYWdlcy8gLSB3ZXJkZW4gYmVpbSBlcnN0 ZW4gR0VUIC9hcGkvbWVkaWVuIGVpbm1hbGlnDQojIGluIG1lZGllbi5qc29uIGltcG9ydGllcnQg KG1pdCBgcGZhZGAtRmVsZCwgb2huZSBEYXRlbi1Lb3BpZSkuIERhbmFjaCBzaW5kDQojIGRpZSBF aW50cmFlZ2UgZ2FueiBub3JtYWwgZWRpdGllcmJhciAodW1iZW5lbm5lbiwgS2F0ZWdvcmllIGFl bmRlcm4sIGxvZXNjaGVuKS4NCiMgU3BpZWdlbCB2b24gc2VydmVyLnB5OlNZU1RFTV9NRURJRU5f SU5WRU5UQVIgKDYwKyBFaW50cmFlZ2UpLg0KJHNjcmlwdDpTeXN0ZW1NZWRpZW5JbnZlbnRhciA9 IEAoDQogICAgIyBGdXNzYmFsbCAtIEJ1bmRlc2xpZ2EgKyAyLiBMaWdhIFZlcmVpbnNsb2dvcyAo MTgpDQogICAgQCgnc3lzLWZiLTFmY2hlaWRlbmhlaW0nLCAnZnVzc2JhbGwnLCAnMS4gRkMgSGVp ZGVuaGVpbScsICcvaW1hZ2VzL2Z1c3NiYWxsLzEuX0ZDX0hlaWRlbmhlaW0uc3ZnJyksDQogICAg QCgnc3lzLWZiLTFmY2tvZWxuJywgJ2Z1c3NiYWxsJywgJzEuIEZDIEvDtmxuJywgJy9pbWFnZXMv ZnVzc2JhbGwvMS5fRkNfS29lbG4uc3ZnJyksDQogICAgQCgnc3lzLWZiLTFmY3VuaW9uYmVybGlu JywgJ2Z1c3NiYWxsJywgJzEuIEZDIFVuaW9uIEJlcmxpbicsICcvaW1hZ2VzL2Z1c3NiYWxsLzEu X0ZDX1VuaW9uX0Jlcmxpbi5zdmcnKSwNCiAgICBAKCdzeXMtZmItMWZzdm1haW56MDUnLCAnZnVz c2JhbGwnLCAnMS4gRlNWIE1haW56IDA1JywgJy9pbWFnZXMvZnVzc2JhbGwvMS5fRlNWX01haW56 XzA1LnN2ZycpLA0KICAgIEAoJ3N5cy1mYi1iYXllcjA0JywgJ2Z1c3NiYWxsJywgJ0JheWVyIDA0 IExldmVya3VzZW4nLCAnL2ltYWdlcy9mdXNzYmFsbC9CYXllcl8wNF9MZXZlcmt1c2VuLnN2Zycp LA0KICAgIEAoJ3N5cy1mYi1idmInLCAnZnVzc2JhbGwnLCAnQm9ydXNzaWEgRG9ydG11bmQnLCAn L2ltYWdlcy9mdXNzYmFsbC9Cb3J1c3NpYV9Eb3J0bXVuZC5zdmcnKSwNCiAgICBAKCdzeXMtZmIt bWdsYWRiYWNoJywgJ2Z1c3NiYWxsJywgJ0JvcnVzc2lhIE3Dtm5jaGVuZ2xhZGJhY2gnLCAnL2lt YWdlcy9mdXNzYmFsbC9Cb3J1c3NpYV9Nb2VuY2hlbmdsYWRiYWNoLnN2ZycpLA0KICAgIEAoJ3N5 cy1mYi1laW50cmFjaHQnLCAnZnVzc2JhbGwnLCAnRWludHJhY2h0IEZyYW5rZnVydCcsICcvaW1h Z2VzL2Z1c3NiYWxsL0VpbnRyYWNodF9GcmFua2Z1cnQucG5nJyksDQogICAgQCgnc3lzLWZiLWZj YXVnc2J1cmcnLCAnZnVzc2JhbGwnLCAnRkMgQXVnc2J1cmcnLCAnL2ltYWdlcy9mdXNzYmFsbC9G Q19BdWdzYnVyZy5wbmcnKSwNCiAgICBAKCdzeXMtZmItZmNiYXllcm4nLCAnZnVzc2JhbGwnLCAn RkMgQmF5ZXJuIE3DvG5jaGVuJywgJy9pbWFnZXMvZnVzc2JhbGwvRkNfQmF5ZXJuX011ZW5jaGVu LnN2ZycpLA0KICAgIEAoJ3N5cy1mYi1mY3N0cGF1bGknLCAnZnVzc2JhbGwnLCAnRkMgU3QuIFBh dWxpJywgJy9pbWFnZXMvZnVzc2JhbGwvRkNfU3QuX1BhdWxpLnBuZycpLA0KICAgIEAoJ3N5cy1m Yi1oc3YnLCAnZnVzc2JhbGwnLCAnSGFtYnVyZ2VyIFNWJywgJy9pbWFnZXMvZnVzc2JhbGwvSGFt YnVyZ2VyX1NWLnN2ZycpLA0KICAgIEAoJ3N5cy1mYi1yYmxlaXB6aWcnLCAnZnVzc2JhbGwnLCAn UkIgTGVpcHppZycsICcvaW1hZ2VzL2Z1c3NiYWxsL1JCX0xlaXB6aWcucG5nJyksDQogICAgQCgn c3lzLWZiLXNjZnJlaWJ1cmcnLCAnZnVzc2JhbGwnLCAnU0MgRnJlaWJ1cmcnLCAnL2ltYWdlcy9m dXNzYmFsbC9TQ19GcmVpYnVyZy5wbmcnKSwNCiAgICBAKCdzeXMtZmItd2VyZGVyJywgJ2Z1c3Ni YWxsJywgJ1NWIFdlcmRlciBCcmVtZW4nLCAnL2ltYWdlcy9mdXNzYmFsbC9TVl9XZXJkZXJfQnJl bWVuLnN2ZycpLA0KICAgIEAoJ3N5cy1mYi10c2dob2ZmZW5oZWltJywgJ2Z1c3NiYWxsJywgJ1RT RyBIb2ZmZW5oZWltJywgJy9pbWFnZXMvZnVzc2JhbGwvVFNHX0hvZmZlbmhlaW0ucG5nJyksDQog ICAgQCgnc3lzLWZiLXZmYnN0dXR0Z2FydCcsICdmdXNzYmFsbCcsICdWZkIgU3R1dHRnYXJ0Jywg Jy9pbWFnZXMvZnVzc2JhbGwvVmZCX1N0dXR0Z2FydC5zdmcnKSwNCiAgICBAKCdzeXMtZmItdmZs d29sZnNidXJnJywgJ2Z1c3NiYWxsJywgJ1ZmTCBXb2xmc2J1cmcnLCAnL2ltYWdlcy9mdXNzYmFs bC9WZkxfV29sZnNidXJnLnN2ZycpLA0KICAgICMgU3BvcnQgKDkpDQogICAgQCgnc3lzLXNwb3J0 LWZvb3RiYWxsJywgJ3Nwb3J0JywgJ0Z1w59iYWxsLVN5bWJvbCcsICcvaW1hZ2VzL3Nwb3J0L2Zv b3RiYWxsLnN2ZycpLA0KICAgIEAoJ3N5cy1zcG9ydC1oYW5kYmFsbCcsICdzcG9ydCcsICdIYW5k YmFsbC1TeW1ib2wnLCAnL2ltYWdlcy9zcG9ydC9oYW5kYmFsbC5zdmcnKSwNCiAgICBAKCdzeXMt c3BvcnQtamVyc2V5JywgJ3Nwb3J0JywgJ1RyaWtvdCcsICcvaW1hZ2VzL3Nwb3J0L2plcnNleS5z dmcnKSwNCiAgICBAKCdzeXMtc3BvcnQtbWVkaWMtc3BvcnQnLCAnc3BvcnQnLCAnU3BvcnQtU2Fu aXTDpHRlcicsICcvaW1hZ2VzL3Nwb3J0L21lZGljLXNwb3J0LnN2ZycpLA0KICAgIEAoJ3N5cy1z cG9ydC1ydW5uaW5nJywgJ3Nwb3J0JywgJ0xhdWYgLyBKb2dnZW4nLCAnL2ltYWdlcy9zcG9ydC9y dW5uaW5nLnN2ZycpLA0KICAgIEAoJ3N5cy1zcG9ydC1zY29yZWJvYXJkJywgJ3Nwb3J0JywgJ0Fu emVpZ2V0YWZlbCcsICcvaW1hZ2VzL3Nwb3J0L3Njb3JlYm9hcmQuc3ZnJyksDQogICAgQCgnc3lz LXNwb3J0LXN0b3B3YXRjaCcsICdzcG9ydCcsICdTdG9wcHVocicsICcvaW1hZ2VzL3Nwb3J0L3N0 b3B3YXRjaC5zdmcnKSwNCiAgICBAKCdzeXMtc3BvcnQtdHJvcGh5JywgJ3Nwb3J0JywgJ1Bva2Fs JywgJy9pbWFnZXMvc3BvcnQvdHJvcGh5LnN2ZycpLA0KICAgIEAoJ3N5cy1zcG9ydC13aGlzdGxl JywgJ3Nwb3J0JywgJ1RyaWxsZXJwZmVpZmUnLCAnL2ltYWdlcy9zcG9ydC93aGlzdGxlLnN2Zycp LA0KICAgICMgTWlzYyAtIGFsbGdlbWVpbmUgU3ltYm9sZSAodm9ybWFscyBpY29ucy1LYXRlZ29y aWUpICgxMykNCiAgICBAKCdzeXMtbWlzYy1iYWdnZXInLCAnbWlzYycsICdCYWdnZXInLCAnL2lt YWdlcy9taXNjL2JhZ2dlci5wbmcnKSwNCiAgICBAKCdzeXMtbWlzYy1mYWhycmFkJywgJ21pc2Mn LCAnRmFocnJhZCcsICcvaW1hZ2VzL21pc2MvZmFocnJhZC5wbmcnKSwNCiAgICBAKCdzeXMtbWlz Yy1mbHVnemV1ZycsICdtaXNjJywgJ0ZsdWd6ZXVnJywgJy9pbWFnZXMvbWlzYy9mbHVnemV1Zy5w bmcnKSwNCiAgICBAKCdzeXMtbWlzYy1nbHVlaGJpcm5lJywgJ21pc2MnLCAnR2zDvGhiaXJuZSAv IElkZWUnLCAnL2ltYWdlcy9taXNjL2dsdWVoYmlybmUucG5nJyksDQogICAgQCgnc3lzLW1pc2Mt a29uemVwdCcsICdtaXNjJywgJ0tvbnplcHQnLCAnL2ltYWdlcy9taXNjL2tvbnplcHQucG5nJyks DQogICAgQCgnc3lzLW1pc2Mtbm90aXonLCAnbWlzYycsICdOb3RpeicsICcvaW1hZ2VzL21pc2Mv bm90aXoucG5nJyksDQogICAgQCgnc3lzLW1pc2Mtb3JnYW5pZ3JhbW0nLCAnbWlzYycsICdPcmdh bmlncmFtbScsICcvaW1hZ2VzL21pc2Mvb3JnYW5pZ3JhbW0ucG5nJyksDQogICAgQCgnc3lzLW1p c2MtdGFzY2hlbnJlY2huZXInLCAnbWlzYycsICdUYXNjaGVucmVjaG5lcicsICcvaW1hZ2VzL21p c2MvdGFzY2hlbnJlY2huZXIucG5nJyksDQogICAgQCgnc3lzLW1pc2MtdGVhbScsICdtaXNjJywg J1RlYW0nLCAnL2ltYWdlcy9taXNjL3RlYW0ucG5nJyksDQogICAgQCgnc3lzLW1pc2MtdGVybWlu LXdhcm51bmcnLCAnbWlzYycsICdUZXJtaW4tV2FybnVuZycsICcvaW1hZ2VzL21pc2MvdGVybWlu LXdhcm51bmcucG5nJyksDQogICAgQCgnc3lzLW1pc2MtdHJpYXRobG9uJywgJ21pc2MnLCAnVHJp YXRobG9uJywgJy9pbWFnZXMvbWlzYy90cmlhdGhsb24ucG5nJyksDQogICAgQCgnc3lzLW1pc2Mt dXJrdW5kZScsICdtaXNjJywgJ1Vya3VuZGUnLCAnL2ltYWdlcy9taXNjL3Vya3VuZGUucG5nJyks DQogICAgQCgnc3lzLW1pc2MtdmVyZ2xlaWNoJywgJ21pc2MnLCAnVmVyZ2xlaWNoJywgJy9pbWFn ZXMvbWlzYy92ZXJnbGVpY2gucG5nJyksDQogICAgIyBPZmZpY2UgLSBWZXJ3YWx0dW5nIC8gQnVl cm8gLyBQcmFlc2VudGF0aW9uICgzNSkNCiAgICBAKCdzeXMtb2ZmaWNlLXB1enpsZScsICdvZmZp Y2UnLCAnUHV6emxlJywgJy9pbWFnZXMvb2ZmaWNlLzAxX3B1enpsZS5wbmcnKSwNCiAgICBAKCdz eXMtb2ZmaWNlLWRhc2hib2FyZC1jaGFydCcsICdvZmZpY2UnLCAnRGFzaGJvYXJkIC8gQ2hhcnQn LCAnL2ltYWdlcy9vZmZpY2UvMDJfZGFzaGJvYXJkLWNoYXJ0LnBuZycpLA0KICAgIEAoJ3N5cy1v ZmZpY2UtZG9jdW1lbnQtYXBwcm92ZWQnLCAnb2ZmaWNlJywgJ0dlbmVobWlndGVzIERva3VtZW50 JywgJy9pbWFnZXMvb2ZmaWNlLzAzX2RvY3VtZW50LWFwcHJvdmVkLnBuZycpLA0KICAgIEAoJ3N5 cy1vZmZpY2UtcHJlc2VudGVyLWF1ZGllbmNlJywgJ29mZmljZScsICdWb3J0cmFnIC8gUHVibGlr dW0nLCAnL2ltYWdlcy9vZmZpY2UvMDRfcHJlc2VudGVyLWF1ZGllbmNlLnBuZycpLA0KICAgIEAo J3N5cy1vZmZpY2UtdGVhbS1oaWVyYXJjaHknLCAnb2ZmaWNlJywgJ1RlYW0tSGllcmFyY2hpZScs ICcvaW1hZ2VzL29mZmljZS8wNV90ZWFtLWhpZXJhcmNoeS5wbmcnKSwNCiAgICBAKCdzeXMtb2Zm aWNlLWluZm8tY2hhdCcsICdvZmZpY2UnLCAnSW5mby1DaGF0JywgJy9pbWFnZXMvb2ZmaWNlLzA2 X2luZm8tY2hhdC5wbmcnKSwNCiAgICBAKCdzeXMtb2ZmaWNlLXByZXNlbnRhdGlvbi10ZWFtJywg J29mZmljZScsICdUZWFtLVByw6RzZW50YXRpb24nLCAnL2ltYWdlcy9vZmZpY2UvMDdfcHJlc2Vu dGF0aW9uLXRlYW0ucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1leGNoYW5nZS1kaWFsb2cnLCAn b2ZmaWNlJywgJ0RpYWxvZyAvIEF1c3RhdXNjaCcsICcvaW1hZ2VzL29mZmljZS8wOF9leGNoYW5n ZS1kaWFsb2cucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1kb2N1bWVudC1zZWFyY2gnLCAnb2Zm aWNlJywgJ0Rva3VtZW50IHN1Y2hlbicsICcvaW1hZ2VzL29mZmljZS8wOV9kb2N1bWVudC1zZWFy Y2gucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1nbG9iZScsICdvZmZpY2UnLCAnR2xvYnVzJywg Jy9pbWFnZXMvb2ZmaWNlLzEwX2dsb2JlLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtbGlnaHRi dWxiLWlkZWEnLCAnb2ZmaWNlJywgJ0dsw7xoYmlybmUgLyBJZGVlJywgJy9pbWFnZXMvb2ZmaWNl LzExX2xpZ2h0YnVsYi1pZGVhLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtZ2F2ZWwtanVkZ2Vt ZW50JywgJ29mZmljZScsICdIYW1tZXIgLyBVcnRlaWwnLCAnL2ltYWdlcy9vZmZpY2UvMTJfZ2F2 ZWwtanVkZ2VtZW50LnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2Utc2NhbGVzLWJhbGFuY2UnLCAn b2ZmaWNlJywgJ1dhYWdlIC8gQmFsYW5jZScsICcvaW1hZ2VzL29mZmljZS8xM19zY2FsZXMtYmFs YW5jZS5wbmcnKSwNCiAgICBAKCdzeXMtb2ZmaWNlLW1lZ2FwaG9uZS1hbm5vdW5jZScsICdvZmZp Y2UnLCAnTWVnYWZvbiAvIEFuc2FnZScsICcvaW1hZ2VzL29mZmljZS8xNF9tZWdhcGhvbmUtYW5u b3VuY2UucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1ncm93dGgtY2hhcnQnLCAnb2ZmaWNlJywg J1dhY2hzdHVtcy1DaGFydCcsICcvaW1hZ2VzL29mZmljZS8xNV9ncm93dGgtY2hhcnQucG5nJyks DQogICAgQCgnc3lzLW9mZmljZS1jbGlwYm9hcmQtY2hlY2tsaXN0JywgJ29mZmljZScsICdLbGVt bWJyZXR0IC8gQ2hlY2tsaXN0ZScsICcvaW1hZ2VzL29mZmljZS8xNl9jbGlwYm9hcmQtY2hlY2ts aXN0LnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtbW9iaWxlLXRhc2tzJywgJ29mZmljZScsICdN b2JpbGUgLyBBdWZnYWJlbicsICcvaW1hZ2VzL29mZmljZS8xN19tb2JpbGUtdGFza3MucG5nJyks DQogICAgQCgnc3lzLW9mZmljZS1tb25pdG9yLW9wdGlvbnMnLCAnb2ZmaWNlJywgJ01vbml0b3Ig LyBPcHRpb25lbicsICcvaW1hZ2VzL29mZmljZS8xOF9tb25pdG9yLW9wdGlvbnMucG5nJyksDQog ICAgQCgnc3lzLW9mZmljZS1uZXdzcGFwZXInLCAnb2ZmaWNlJywgJ1plaXR1bmcnLCAnL2ltYWdl cy9vZmZpY2UvMTlfbmV3c3BhcGVyLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtbGFwdG9wLXNo YXJlJywgJ29mZmljZScsICdMYXB0b3AgLyBUZWlsZW4nLCAnL2ltYWdlcy9vZmZpY2UvMjBfbGFw dG9wLXNoYXJlLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtbG9jYXRpb24tcGluJywgJ29mZmlj ZScsICdTdGFuZG9ydC1QaW4nLCAnL2ltYWdlcy9vZmZpY2UvMjFfbG9jYXRpb24tcGluLnBuZycp LA0KICAgIEAoJ3N5cy1vZmZpY2UtcGFwZXItcGxhbmUnLCAnb2ZmaWNlJywgJ1BhcGllcmZsaWVn ZXInLCAnL2ltYWdlcy9vZmZpY2UvMjJfcGFwZXItcGxhbmUucG5nJyksDQogICAgQCgnc3lzLW9m ZmljZS1zb2NpYWwtbmV0d29yaycsICdvZmZpY2UnLCAnU296aWFsZXMgTmV0endlcmsnLCAnL2lt YWdlcy9vZmZpY2UvMjNfc29jaWFsLW5ldHdvcmsucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1t ZWV0aW5nLXRhYmxlJywgJ29mZmljZScsICdCZXNwcmVjaHVuZ3N0aXNjaCcsICcvaW1hZ2VzL29m ZmljZS8yNF9tZWV0aW5nLXRhYmxlLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtdGVhbS1jb25u ZWN0aW9uJywgJ29mZmljZScsICdUZWFtLVZlcmJpbmR1bmcnLCAnL2ltYWdlcy9vZmZpY2UvMjVf dGVhbS1jb25uZWN0aW9uLnBuZycpLA0KICAgIEAoJ3N5cy1vZmZpY2UtaG91cmdsYXNzJywgJ29m ZmljZScsICdTYW5kdWhyJywgJy9pbWFnZXMvb2ZmaWNlLzI2X2hvdXJnbGFzcy5wbmcnKSwNCiAg ICBAKCdzeXMtb2ZmaWNlLWNvaW5zLXN0YWNrJywgJ29mZmljZScsICdNw7xuemVuLVN0YXBlbCcs ICcvaW1hZ2VzL29mZmljZS8yN19jb2lucy1zdGFjay5wbmcnKSwNCiAgICBAKCdzeXMtb2ZmaWNl LWNoYXJ0cy11cC1kb3duJywgJ29mZmljZScsICdDaGFydHMgKGF1Zi9hYiknLCAnL2ltYWdlcy9v ZmZpY2UvMjhfY2hhcnRzLXVwLWRvd24ucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1nZWFycy1j b2dzJywgJ29mZmljZScsICdaYWhucsOkZGVyJywgJy9pbWFnZXMvb2ZmaWNlLzI5X2dlYXJzLWNv Z3MucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1saW5lLWNoYXJ0LXBvaW50cycsICdvZmZpY2Un LCAnTGluaWVuZGlhZ3JhbW0nLCAnL2ltYWdlcy9vZmZpY2UvMzBfbGluZS1jaGFydC1wb2ludHMu cG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1kb2N1bWVudC1lZGl0JywgJ29mZmljZScsICdEb2t1 bWVudCBiZWFyYmVpdGVuJywgJy9pbWFnZXMvb2ZmaWNlLzMxX2RvY3VtZW50LWVkaXQucG5nJyks DQogICAgQCgnc3lzLW9mZmljZS1wZW9wbGUtY2hhdC1idWJibGVzJywgJ29mZmljZScsICdDaGF0 LUJ1YmJsZXMnLCAnL2ltYWdlcy9vZmZpY2UvMzJfcGVvcGxlLWNoYXQtYnViYmxlcy5wbmcnKSwN CiAgICBAKCdzeXMtb2ZmaWNlLW1hZ25pZmllcicsICdvZmZpY2UnLCAnTHVwZScsICcvaW1hZ2Vz L29mZmljZS8zM19tYWduaWZpZXIucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS1wZW9wbGUtZXhj aGFuZ2UnLCAnb2ZmaWNlJywgJ1BlcnNvbmVuLUF1c3RhdXNjaCcsICcvaW1hZ2VzL29mZmljZS8z NF9wZW9wbGUtZXhjaGFuZ2UucG5nJyksDQogICAgQCgnc3lzLW9mZmljZS10YXJnZXQtY3Jvc3No YWlyJywgJ29mZmljZScsICdaaWVsc2NoZWliZScsICcvaW1hZ2VzL29mZmljZS8zNV90YXJnZXQt Y3Jvc3NoYWlyLnBuZycpLA0KICAgICMgUG9saXplaSAtIGVpbnNhdHotL2xhZ2UtL3ZlcnNhbW1s dW5ncy1zcGV6aWZpc2NoZSBTeW1ib2xlICgzMikNCiAgICBAKCdzeXMtcG9saXplaS1sYXB0b3At bWVnYWZvbicsICdwb2xpemVpJywgJ0xhcHRvcCAmIE1lZ2Fmb24nLCAnL2ltYWdlcy9wb2xpemVp LzAxX2xhcHRvcC1tZWdhZm9uLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLXBlcnNvbi1mdW5r Z2VyYWV0JywgJ3BvbGl6ZWknLCAnUGVyc29uIG1pdCBGdW5rZ2Vyw6R0JywgJy9pbWFnZXMvcG9s aXplaS8wMl9wZXJzb24tZnVua2dlcmFldC5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1yYXVj aGdyYW5hdGUnLCAncG9saXplaScsICdSYXVjaGdyYW5hdGUnLCAnL2ltYWdlcy9wb2xpemVpLzAz X3JhdWNoZ3JhbmF0ZS5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1kZW1vbnN0cmFudC1mbGFn Z2UnLCAncG9saXplaScsICdEZW1vbnN0cmFudCBtaXQgRmxhZ2dlJywgJy9pbWFnZXMvcG9saXpl aS8wNF9kZW1vbnN0cmFudC1mbGFnZ2UucG5nJyksDQogICAgQCgnc3lzLXBvbGl6ZWktaGFlbmRl LXN0b3BwJywgJ3BvbGl6ZWknLCAnSMOkbmRlIC0gU3RvcHAnLCAnL2ltYWdlcy9wb2xpemVpLzA1 X2hhZW5kZS1zdG9wcC5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1zcHJ1ZWhkb3NlLXdhcm51 bmcnLCAncG9saXplaScsICdTcHLDvGhkb3NlIC0gV2FybnVuZycsICcvaW1hZ2VzL3BvbGl6ZWkv MDZfc3BydWVoZG9zZS13YXJudW5nLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLWhlbG0tc3By ZWNoZXInLCAncG9saXplaScsICdIZWxtIC0gU3ByZWNoZXInLCAnL2ltYWdlcy9wb2xpemVpLzA3 X2hlbG0tc3ByZWNoZXIucG5nJyksDQogICAgQCgnc3lzLXBvbGl6ZWktZGVtb25zdHJhbnQtc2No aWxkJywgJ3BvbGl6ZWknLCAnRGVtb25zdHJhbnQgbWl0IFNjaGlsZCcsICcvaW1hZ2VzL3BvbGl6 ZWkvMDhfZGVtb25zdHJhbnQtc2NoaWxkLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLWZhdXN0 ZS1wcm90ZXN0JywgJ3BvbGl6ZWknLCAnRsOkdXN0ZSAtIFByb3Rlc3QnLCAnL2ltYWdlcy9wb2xp emVpLzA5X2ZhdXN0ZS1wcm90ZXN0LnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLXNjaGxhZ3N0 b2NrLWdla3JldXp0JywgJ3BvbGl6ZWknLCAnU2NobGFnc3RvY2sgZ2VrcmV1enQnLCAnL2ltYWdl cy9wb2xpemVpLzEwX3NjaGxhZ3N0b2NrLWdla3JldXp0LnBuZycpLA0KICAgIEAoJ3N5cy1wb2xp emVpLXByb3Rlc3RzY2hpbGQtZmF1c3QnLCAncG9saXplaScsICdQcm90ZXN0c2NoaWxkICYgRmF1 c3QnLCAnL2ltYWdlcy9wb2xpemVpLzExX3Byb3Rlc3RzY2hpbGQtZmF1c3QucG5nJyksDQogICAg QCgnc3lzLXBvbGl6ZWktbWVuc2NoZW4tdHJpYnVlbmUnLCAncG9saXplaScsICdNZW5zY2hlbiBh dWYgVHJpYsO8bmUnLCAnL2ltYWdlcy9wb2xpemVpLzEyX21lbnNjaGVuLXRyaWJ1ZW5lLnBuZycp LA0KICAgIEAoJ3N5cy1wb2xpemVpLW1lZ2Fmb24tbGF1dCcsICdwb2xpemVpJywgJ01lZ2Fmb24g LSBsYXV0JywgJy9pbWFnZXMvcG9saXplaS8xM19tZWdhZm9uLWxhdXQucG5nJyksDQogICAgQCgn c3lzLXBvbGl6ZWktbWVuc2NoZW5tZW5nZS1zY2hpbGRlcicsICdwb2xpemVpJywgJ01lbnNjaGVu bWVuZ2UgbWl0IFNjaGlsZGVybicsICcvaW1hZ2VzL3BvbGl6ZWkvMTRfbWVuc2NoZW5tZW5nZS1z Y2hpbGRlci5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1zdG9wcHNjaGlsZC1ib2RlbicsICdw b2xpemVpJywgJ1N0b3Bwc2NoaWxkIGFtIEJvZGVuJywgJy9pbWFnZXMvcG9saXplaS8xNV9zdG9w cHNjaGlsZC1ib2Rlbi5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1iYW5uZXItc3RvcHAnLCAn cG9saXplaScsICdCYW5uZXIgLSBTdG9wcCcsICcvaW1hZ2VzL3BvbGl6ZWkvMTZfYmFubmVyLXN0 b3BwLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLXN0b3BwLXBpbicsICdwb2xpemVpJywgJ1N0 b3BwLVBpbicsICcvaW1hZ2VzL3BvbGl6ZWkvMTdfc3RvcHAtcGluLnBuZycpLA0KICAgIEAoJ3N5 cy1wb2xpemVpLWRlbW9uc3RyYW50LWp1YmVsJywgJ3BvbGl6ZWknLCAnRGVtb25zdHJhbnQgLSBK dWJlbCcsICcvaW1hZ2VzL3BvbGl6ZWkvMThfZGVtb25zdHJhbnQtanViZWwucG5nJyksDQogICAg QCgnc3lzLXBvbGl6ZWktbGF1dHNwcmVjaGVyYm94ZW4nLCAncG9saXplaScsICdMYXV0c3ByZWNo ZXJib3hlbicsICcvaW1hZ2VzL3BvbGl6ZWkvMTlfbGF1dHNwcmVjaGVyYm94ZW4ucG5nJyksDQog ICAgQCgnc3lzLXBvbGl6ZWktZmF1c3QtZW5lcmdpZScsICdwb2xpemVpJywgJ0ZhdXN0IC0gRW5l cmdpZScsICcvaW1hZ2VzL3BvbGl6ZWkvMjBfZmF1c3QtZW5lcmdpZS5wbmcnKSwNCiAgICBAKCdz eXMtcG9saXplaS1hdXRvLWJsb2NrYWRlJywgJ3BvbGl6ZWknLCAnQXV0by1CbG9ja2FkZScsICcv aW1hZ2VzL3BvbGl6ZWkvMjFfYXV0by1ibG9ja2FkZS5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXpl aS1mYWhuZW50cmFlZ2VyJywgJ3BvbGl6ZWknLCAnRmFobmVudHLDpGdlcicsICcvaW1hZ2VzL3Bv bGl6ZWkvMjJfZmFobmVudHJhZWdlci5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1zcHJ1ZWhk b3NlLXdpcmt1bmcnLCAncG9saXplaScsICdTcHLDvGhkb3NlIC0gV2lya3VuZycsICcvaW1hZ2Vz L3BvbGl6ZWkvMjNfc3BydWVoZG9zZS13aXJrdW5nLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVp LW1lbnNjaGVua2V0dGUnLCAncG9saXplaScsICdNZW5zY2hlbmtldHRlJywgJy9pbWFnZXMvcG9s aXplaS8yNF9tZW5zY2hlbmtldHRlLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVpLWthbGVuZGVy LXN0b3BwJywgJ3BvbGl6ZWknLCAnS2FsZW5kZXIgLSBTdG9wcCcsICcvaW1hZ2VzL3BvbGl6ZWkv MjVfa2FsZW5kZXItc3RvcHAucG5nJyksDQogICAgQCgnc3lzLXBvbGl6ZWktaGFuZC1zdG9wcCcs ICdwb2xpemVpJywgJ0hhbmQgLSBTdG9wcCcsICcvaW1hZ2VzL3BvbGl6ZWkvMjZfaGFuZC1zdG9w cC5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXplaS1tZWdhZm9uLWdyb3NzJywgJ3BvbGl6ZWknLCAn TWVnYWZvbiAtIGdyb8OfJywgJy9pbWFnZXMvcG9saXplaS8yN19tZWdhZm9uLWdyb3NzLnBuZycp LA0KICAgIEAoJ3N5cy1wb2xpemVpLWtvcGYtcnVmZXInLCAncG9saXplaScsICdLb3BmIC0gUnVm ZXInLCAnL2ltYWdlcy9wb2xpemVpLzI4X2tvcGYtcnVmZXIucG5nJyksDQogICAgQCgnc3lzLXBv bGl6ZWktZG9rdW1lbnQtc3RvcHAnLCAncG9saXplaScsICdEb2t1bWVudCAtIFN0b3BwJywgJy9p bWFnZXMvcG9saXplaS8yOV9kb2t1bWVudC1zdG9wcC5wbmcnKSwNCiAgICBAKCdzeXMtcG9saXpl aS1tZW5zY2hlbi1iYW5uZXInLCAncG9saXplaScsICdNZW5zY2hlbiAtIEJhbm5lcicsICcvaW1h Z2VzL3BvbGl6ZWkvMzBfbWVuc2NoZW4tYmFubmVyLnBuZycpLA0KICAgIEAoJ3N5cy1wb2xpemVp LWRlbW9uc3RyYW50LXBvZGVzdCcsICdwb2xpemVpJywgJ0RlbW9uc3RyYW50IC0gUG9kZXN0Jywg Jy9pbWFnZXMvcG9saXplaS8zMV9kZW1vbnN0cmFudC1wb2Rlc3QucG5nJyksDQogICAgQCgnc3lz LXBvbGl6ZWktbW9sb3Rvdy1jb2NrdGFpbCcsICdwb2xpemVpJywgJ01vbG90b3ctQ29ja3RhaWwn LCAnL2ltYWdlcy9wb2xpemVpLzMyX21vbG90b3ctY29ja3RhaWwucG5nJykNCikNCg0KZnVuY3Rp b24gRGVidWctTG9nKCRDYXRlZ29yeSwgJE1lc3NhZ2UpIHsNCiAgICBpZiAoLW5vdCAkc2NyaXB0 OkRlYnVnTG9nKSB7IHJldHVybiB9DQogICAgJHRzID0gR2V0LURhdGUgLUZvcm1hdCAnSEg6bW06 c3MuZmZmJw0KICAgIFdyaXRlLUhvc3QgIiAgWyR0c10gJCgkQ2F0ZWdvcnkuUGFkTGVmdCg4KSkg ICRNZXNzYWdlIg0KfQ0KDQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQojIEhJTEZTRlVOS1RJT05F Tg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQpmdW5jdGlvbiBBZGQtU2VjdXJpdHlIZWFkZXJz KCRSZXNwb25zZSkgew0KICAgICMgQXVkaXQtSUktMiBGMzogQUNBTyBzcGllZ2VsdCBkZW4gUmVx dWVzdC1PcmlnaW4gKHNvZmVybiBpbiBXaGl0ZWxpc3QpLA0KICAgICMgc29uc3QgRmFsbGJhY2sg YXVmIGxvY2FsaG9zdC4gJHNjcmlwdDpDb3JzT3JpZ2luRHluYW1pYyB3aXJkIHBybw0KICAgICMg UmVxdWVzdCBpbSBMaXN0ZW5lci1Mb29wIGdlc2V0enQgKHNpZWhlIG5hY2ggJFJlcS1QYXJzaW5n KS4NCiAgICAkYWNhbyA9IGlmICgkc2NyaXB0OkNvcnNPcmlnaW5EeW5hbWljKSB7ICRzY3JpcHQ6 Q29yc09yaWdpbkR5bmFtaWMgfSBlbHNlIHsgJHNjcmlwdDpDb3JzT3JpZ2luIH0NCiAgICAkUmVz cG9uc2UuSGVhZGVycy5BZGQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsICRhY2FvKQ0K ICAgICRSZXNwb25zZS5IZWFkZXJzLkFkZCgnQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcycs ICdHRVQsIFBPU1QsIFBVVCwgREVMRVRFLCBPUFRJT05TJykNCiAgICAkUmVzcG9uc2UuSGVhZGVy cy5BZGQoJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnLCAnQ29udGVudC1UeXBlJykNCiAg ICAkUmVzcG9uc2UuSGVhZGVycy5BZGQoJ1gtQ29udGVudC1UeXBlLU9wdGlvbnMnLCAnbm9zbmlm ZicpDQogICAgJFJlc3BvbnNlLkhlYWRlcnMuQWRkKCdYLUZyYW1lLU9wdGlvbnMnLCAnU0FNRU9S SUdJTicpDQp9DQoNCiMgU2NocmVpYnQgQnl0ZXMgYXVmIGRlbiBIdHRwTGlzdGVuZXItT3V0cHV0 U3RyZWFtIHVuZCBiZWhhbmRlbHQNCiMgYWJnZWJyb2NoZW5lIENsaWVudC1Db25uZWN0aW9ucyB0 b2xlcmFudC4gSGludGVyZ3J1bmQ6IGluIEhUVFAuU1lTDQojIChrZXJuZWwtZHJpdmVyIGhpbnRl ciBIdHRwTGlzdGVuZXIpIHdpcmQgZWluIHZvbSBCcm93c2VyIGdlc2NobG9zc2VuZXINCiMgU29j a2V0LVdyaXRlIGFscyBJT0V4Y2VwdGlvbiBtaXQgIkRlciBhbmdlZ2ViZW5lIE5ldHp3ZXJrbmFt ZSBpc3QNCiMgbmljaHQgbWVociB2ZXJmdWVnYmFyIiAvICJBbiBleGlzdGluZyBjb25uZWN0aW9u IHdhcyBmb3JjaWJseSBjbG9zZWQiDQojIGdlbWVsZGV0LiBEYXMgaXN0IEtFSU4gU2VydmVyLUZl aGxlciAtLSBkZXIgQ2xpZW50IGlzdCBoYWx0IHdlZy4NCiMgV2lyIGxvZ2dlbiBkYXMgZWlubWFs IGFscyBIaW53ZWlzIHVuZCByZXR1cm5lbiBzdGlsbCwgZGFtaXQgZGVyDQojIHVtZ2ViZW5kZSBS ZXF1ZXN0LUxvb3AgbmljaHQgaW4gZWluZSA1MDAtS2Fza2FkZSBsYWV1ZnQgKGRpZSBpaHJlcnNl aXRzDQojIHdpZWRlciBhbSB0b3RlbiBTdHJlYW0gc2NoZWl0ZXJuIHd1ZXJkZSkuDQpmdW5jdGlv biBXcml0ZS1SZXNwb25zZUJ1ZmZlcigkUmVzcG9uc2UsIFtieXRlW11dJEJ1ZmZlcikgew0KICAg IHRyeSB7DQogICAgICAgICRSZXNwb25zZS5PdXRwdXRTdHJlYW0uV3JpdGUoJEJ1ZmZlciwgMCwg JEJ1ZmZlci5MZW5ndGgpDQogICAgICAgICRSZXNwb25zZS5PdXRwdXRTdHJlYW0uQ2xvc2UoKQ0K ICAgIH0gY2F0Y2ggW1N5c3RlbS5OZXQuSHR0cExpc3RlbmVyRXhjZXB0aW9uXSwgW1N5c3RlbS5J Ty5JT0V4Y2VwdGlvbl0sIFtTeXN0ZW0uT2JqZWN0RGlzcG9zZWRFeGNlcHRpb25dIHsNCiAgICAg ICAgV3JpdGUtU3RhcnR1cExvZyAiQ2xpZW50LUNvbm5lY3Rpb24gYWJnZWJyb2NoZW4gd2FlaHJl bmQgUmVzcG9uc2UtV3JpdGU6ICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIg0KICAgICAgICB0cnkg eyAkUmVzcG9uc2UuT3V0cHV0U3RyZWFtLkNsb3NlKCkgfSBjYXRjaCB7fQ0KICAgIH0NCn0NCg0K ZnVuY3Rpb24gU2VuZC1Kc29uKCRSZXNwb25zZSwgJERhdGEsICRTdGF0dXNDb2RlID0gMjAwKSB7 DQogICAgQWRkLVNlY3VyaXR5SGVhZGVycyAkUmVzcG9uc2UNCiAgICAkUmVzcG9uc2UuU3RhdHVz Q29kZSA9ICRTdGF0dXNDb2RlDQogICAgJFJlc3BvbnNlLkNvbnRlbnRUeXBlID0gJ2FwcGxpY2F0 aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnDQogICAgIyBXSUNIVElHOiBBcnJheXMgbWl0IDAgb2Rl ciAxIEVsZW1lbnQgZXhwbGl6aXQgYWxzIEFycmF5IHNlcmlhbGlzaWVyZW4NCiAgICBpZiAoJG51 bGwgLWVxICREYXRhKSB7DQogICAgICAgICRKc29uID0gJ251bGwnDQogICAgfSBlbHNlaWYgKCRE YXRhIC1pcyBbc3RyaW5nXSkgew0KICAgICAgICAkSnNvbiA9ICREYXRhDQogICAgfSBlbHNlIHsN CiAgICAgICAgJEpzb24gPSAkRGF0YSB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAyNSAtQ29tcHJl c3MNCiAgICB9DQogICAgJEJ1ZmZlciA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjguR2V0 Qnl0ZXMoJEpzb24pDQogICAgJFJlc3BvbnNlLkNvbnRlbnRMZW5ndGg2NCA9ICRCdWZmZXIuTGVu Z3RoDQogICAgV3JpdGUtUmVzcG9uc2VCdWZmZXIgJFJlc3BvbnNlICRCdWZmZXINCn0NCg0KZnVu Y3Rpb24gU2VuZC1Kc29uUmF3KCRSZXNwb25zZSwgJFJhd0pzb24sICRTdGF0dXNDb2RlID0gMjAw KSB7DQogICAgQWRkLVNlY3VyaXR5SGVhZGVycyAkUmVzcG9uc2UNCiAgICAkUmVzcG9uc2UuU3Rh dHVzQ29kZSA9ICRTdGF0dXNDb2RlDQogICAgJFJlc3BvbnNlLkNvbnRlbnRUeXBlID0gJ2FwcGxp Y2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnDQogICAgJEJ1ZmZlciA9IFtTeXN0ZW0uVGV4dC5F bmNvZGluZ106OlVURjguR2V0Qnl0ZXMoJFJhd0pzb24pDQogICAgJFJlc3BvbnNlLkNvbnRlbnRM ZW5ndGg2NCA9ICRCdWZmZXIuTGVuZ3RoDQogICAgV3JpdGUtUmVzcG9uc2VCdWZmZXIgJFJlc3Bv bnNlICRCdWZmZXINCn0NCg0KZnVuY3Rpb24gU2VuZC1FcnJvcigkUmVzcG9uc2UsICRNZXNzYWdl LCAkU3RhdHVzQ29kZSA9IDUwMCkgew0KICAgIFNlbmQtSnNvbiAkUmVzcG9uc2UgQHsgZmVobGVy ID0gJE1lc3NhZ2UgfSAkU3RhdHVzQ29kZQ0KfQ0KDQpmdW5jdGlvbiBTZW5kLUZpbGUoJFJlc3Bv bnNlLCAkRmlsZVBhdGgpIHsNCiAgICBBZGQtU2VjdXJpdHlIZWFkZXJzICRSZXNwb25zZQ0KICAg ICRFeHQgPSBbU3lzdGVtLklPLlBhdGhdOjpHZXRFeHRlbnNpb24oJEZpbGVQYXRoKS5Ub0xvd2Vy KCkNCiAgICAkTWltZSA9IGlmICgkc2NyaXB0Ok1pbWVUeXBlcy5Db250YWluc0tleSgkRXh0KSkg eyAkc2NyaXB0Ok1pbWVUeXBlc1skRXh0XSB9IGVsc2UgeyAnYXBwbGljYXRpb24vb2N0ZXQtc3Ry ZWFtJyB9DQogICAgJFJlc3BvbnNlLkNvbnRlbnRUeXBlID0gJE1pbWUNCiAgICAkUmVzcG9uc2Uu SGVhZGVycy5BZGQoJ0NhY2hlLUNvbnRyb2wnLCAnbm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJl dmFsaWRhdGUnKQ0KICAgICRSZXNwb25zZS5IZWFkZXJzLkFkZCgnUHJhZ21hJywgJ25vLWNhY2hl JykNCiAgICAkUmVzcG9uc2UuSGVhZGVycy5BZGQoJ0V4cGlyZXMnLCAnMCcpDQogICAgJFJlc3Bv bnNlLlN0YXR1c0NvZGUgPSAyMDANCiAgICAkQnl0ZXMgPSBbU3lzdGVtLklPLkZpbGVdOjpSZWFk QWxsQnl0ZXMoJEZpbGVQYXRoKQ0KICAgICRSZXNwb25zZS5Db250ZW50TGVuZ3RoNjQgPSAkQnl0 ZXMuTGVuZ3RoDQogICAgV3JpdGUtUmVzcG9uc2VCdWZmZXIgJFJlc3BvbnNlICRCeXRlcw0KfQ0K DQpmdW5jdGlvbiBTZW5kLUZpbGVBdHRhY2htZW50KCRSZXNwb25zZSwgJEZpbGVQYXRoLCAkRmls ZU5hbWUpIHsNCiAgICBBZGQtU2VjdXJpdHlIZWFkZXJzICRSZXNwb25zZQ0KICAgICRSZXNwb25z ZS5Db250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04Jw0KICAgICRS ZXNwb25zZS5IZWFkZXJzLkFkZCgnQ29udGVudC1EaXNwb3NpdGlvbicsICJhdHRhY2htZW50OyBm aWxlbmFtZT1gIiRGaWxlTmFtZWAiIikNCiAgICAkUmVzcG9uc2UuU3RhdHVzQ29kZSA9IDIwMA0K ICAgICRCeXRlcyA9IFtTeXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxCeXRlcygkRmlsZVBhdGgpDQog ICAgJFJlc3BvbnNlLkNvbnRlbnRMZW5ndGg2NCA9ICRCeXRlcy5MZW5ndGgNCiAgICBXcml0ZS1S ZXNwb25zZUJ1ZmZlciAkUmVzcG9uc2UgJEJ5dGVzDQp9DQoNCmZ1bmN0aW9uIFJlYWQtQm9keSgk UmVxdWVzdCkgew0KICAgICRMZW5ndGggPSAkUmVxdWVzdC5Db250ZW50TGVuZ3RoNjQNCiAgICBp ZiAoJExlbmd0aCAtZ3QgJHNjcmlwdDpNYXhCb2R5KSB7IHJldHVybiAkbnVsbCB9DQogICAgIyBX SUNIVElHOiBleHBsaXppdCBVVEYtOCBzdGF0dCAkUmVxdWVzdC5Db250ZW50RW5jb2RpbmcuIEJy b3dzZXIgc2VuZGVuDQogICAgIyBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24gKG9obmUg Y2hhcnNldCksIEh0dHBMaXN0ZW5lciBmYWVsbHQgZGFubg0KICAgICMgYXVmIGRlbiBTeXN0ZW0t RGVmYXVsdCAoZGUtREU6IFdpbmRvd3MtMTI1MikgenVydWVjayB1bmQgbWFuZ2VsdCBVbWxhdXRl Lg0KICAgICRSZWFkZXIgPSBOZXctT2JqZWN0IFN5c3RlbS5JTy5TdHJlYW1SZWFkZXIoJFJlcXVl c3QuSW5wdXRTdHJlYW0sIFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjgpDQogICAgJEJvZHkg PSAkUmVhZGVyLlJlYWRUb0VuZCgpDQogICAgJFJlYWRlci5DbG9zZSgpDQogICAgcmV0dXJuICRC b2R5DQp9DQoNCmZ1bmN0aW9uIFJlc29sdmUtU2FmZVBhdGgoJFJlbFBhdGgpIHsNCiAgICB0cnkg ew0KICAgICAgICAkRnVsbCA9IFtTeXN0ZW0uSU8uUGF0aF06OkdldEZ1bGxQYXRoKChKb2luLVBh dGggJFJvb3QgJFJlbFBhdGgpKQ0KICAgIH0gY2F0Y2ggew0KICAgICAgICByZXR1cm4gJG51bGwN CiAgICB9DQogICAgJFJvb3ROb3JtID0gJFJvb3QuVHJpbUVuZCgnXCcsJy8nKQ0KICAgIGlmICgt bm90ICgkRnVsbC5TdGFydHNXaXRoKCRSb290Tm9ybSwgW1N5c3RlbS5TdHJpbmdDb21wYXJpc29u XTo6T3JkaW5hbElnbm9yZUNhc2UpKSkgew0KICAgICAgICByZXR1cm4gJG51bGwNCiAgICB9DQog ICAgcmV0dXJuICRGdWxsDQp9DQoNCmZ1bmN0aW9uIFJlYWQtSnNvbkZpbGUoJEZpbGVOYW1lKSB7 DQogICAgJFBhdGggPSBKb2luLVBhdGggJERhdGFEaXIgJEZpbGVOYW1lDQogICAgaWYgKC1ub3Qg KFRlc3QtUGF0aCAkUGF0aCkpIHsgcmV0dXJuICRudWxsIH0NCiAgICAkQ29udGVudCA9IFtTeXN0 ZW0uSU8uRmlsZV06OlJlYWRBbGxUZXh0KCRQYXRoLCBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpV VEY4KQ0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRDb250ZW50KSkgeyBy ZXR1cm4gJG51bGwgfQ0KICAgIHJldHVybiAkQ29udGVudCB8IENvbnZlcnRGcm9tLUpzb24NCn0N Cg0KZnVuY3Rpb24gV3JpdGUtSnNvbkZpbGUoJEZpbGVOYW1lLCAkRGF0YSkgew0KICAgICRQYXRo ID0gSm9pbi1QYXRoICREYXRhRGlyICRGaWxlTmFtZQ0KICAgICRKc29uID0gJERhdGEgfCBDb252 ZXJ0VG8tSnNvbiAtRGVwdGggMjUNCiAgICBbU3lzdGVtLklPLkZpbGVdOjpXcml0ZUFsbFRleHQo JFBhdGgsICRKc29uLCBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVVEY4KQ0KfQ0KDQojIENyb3Nz LXByb2Nlc3MgTG9jayBwZXIgTG9jay1GaWxlLiBWZXJoaW5kZXJ0LCBkYXNzIHp3ZWkgcGFyYWxs ZWxlIFNlcnZlcg0KIyAoei5CLiB6d2VpIFVzZXIgYXVmIGRlbXNlbGJlbiBOZXR6bGF1Zndlcmsp IGdsZWljaHplaXRpZyBkaWVzZWxiZSBEYXRlaQ0KIyByZWFkLW1vZGlmeS13cml0ZW4gdW5kIHNp Y2ggZGFiZWkgemVyc2NoaWVzc2VuLg0KZnVuY3Rpb24gSW52b2tlLVdpdGhGaWxlTG9jaygkTmFt ZSwgJEFjdGlvbiwgJE1heFdhaXRNcyA9IDUwMDAsICRTdGFsZUFmdGVyU2VjID0gMTApIHsNCiAg ICAkTG9ja1BhdGggPSBKb2luLVBhdGggJERhdGFEaXIgKCROYW1lICsgJy5sb2NrJykNCiAgICAk U3RhcnQgPSBHZXQtRGF0ZQ0KICAgIHdoaWxlICgkdHJ1ZSkgew0KICAgICAgICB0cnkgew0KICAg ICAgICAgICAgJFN0cmVhbSA9IFtTeXN0ZW0uSU8uRmlsZV06Ok9wZW4oJExvY2tQYXRoLCBbU3lz dGVtLklPLkZpbGVNb2RlXTo6Q3JlYXRlTmV3LCBbU3lzdGVtLklPLkZpbGVBY2Nlc3NdOjpXcml0 ZSwgW1N5c3RlbS5JTy5GaWxlU2hhcmVdOjpOb25lKQ0KICAgICAgICAgICAgdHJ5IHsNCiAgICAg ICAgICAgICAgICByZXR1cm4gJiAkQWN0aW9uDQogICAgICAgICAgICB9IGZpbmFsbHkgew0KICAg ICAgICAgICAgICAgICRTdHJlYW0uQ2xvc2UoKQ0KICAgICAgICAgICAgICAgIHRyeSB7IFJlbW92 ZS1JdGVtICRMb2NrUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfSBj YXRjaCB7fQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9IGNhdGNoIFtTeXN0ZW0uSU8uSU9FeGNl cHRpb25dIHsNCiAgICAgICAgICAgIGlmICgoKEdldC1EYXRlKSAtICRTdGFydCkuVG90YWxNaWxs aXNlY29uZHMgLWd0ICRNYXhXYWl0TXMpIHsNCiAgICAgICAgICAgICAgICB0aHJvdyAiU3BlcnJl IGF1ZiAkTmFtZSBrb25udGUgbmljaHQgZXJsYW5ndCB3ZXJkZW4iDQogICAgICAgICAgICB9DQog ICAgICAgICAgICAjIFN0YWxlLUxvY2stRXJrZW5udW5nOiBhbHRlciBhbHMgTiBTZWt1bmRlbiAt PiBlbnRmZXJuZW4NCiAgICAgICAgICAgIGlmIChUZXN0LVBhdGggJExvY2tQYXRoKSB7DQogICAg ICAgICAgICAgICAgJEFnZSA9ICgoR2V0LURhdGUpIC0gKEdldC1JdGVtICRMb2NrUGF0aCkuTGFz dFdyaXRlVGltZSkuVG90YWxTZWNvbmRzDQogICAgICAgICAgICAgICAgaWYgKCRBZ2UgLWd0ICRT dGFsZUFmdGVyU2VjKSB7DQogICAgICAgICAgICAgICAgICAgIHRyeSB7IFJlbW92ZS1JdGVtICRM b2NrUGF0aCAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfSBjYXRjaCB7fQ0K ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIFN0YXJ0LVNsZWVwIC1NaWxsaXNlY29uZHMgNTANCiAgICAgICAg fQ0KICAgIH0NCn0NCg0KZnVuY3Rpb24gV3JpdGUtTG9nRWludHJhZygkQWt0aW9uLCAkRGV0YWls cykgew0KICAgICRMb2dQYXRoID0gSm9pbi1QYXRoICREYXRhRGlyICdsb2didWNoLmpzb24nDQog ICAgJExvZyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgIGlm IChUZXN0LVBhdGggJExvZ1BhdGgpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICRMb2dD b250ZW50ID0gW1N5c3RlbS5JTy5GaWxlXTo6UmVhZEFsbFRleHQoJExvZ1BhdGgsIFtTeXN0ZW0u VGV4dC5FbmNvZGluZ106OlVURjgpLlRyaW0oKQ0KICAgICAgICAgICAgaWYgKCRMb2dDb250ZW50 Lkxlbmd0aCAtZ3QgMSkgew0KICAgICAgICAgICAgICAgICRQYXJzZWQgPSAkTG9nQ29udGVudCB8 IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkRSBpbiBAKCRQYXJz ZWQpKSB7IFt2b2lkXSRMb2cuQWRkKCRFKSB9DQogICAgICAgICAgICB9DQogICAgICAgIH0gY2F0 Y2ggew0KICAgICAgICAgICAgIyBLb3JydXB0ZSBEYXRlaTogZWlubWFsaWcgc2ljaGVybiwgbWl0 IGxlZXJlciBMaXN0ZSB3ZWl0ZXJtYWNoZW4uDQogICAgICAgICAgICB0cnkgew0KICAgICAgICAg ICAgICAgICRiayA9ICRMb2dQYXRoICsgJy5rb3JydXB0XycgKyAoR2V0LURhdGUgLUZvcm1hdCAn eXl5eU1NZGRfSEhtbXNzJykNCiAgICAgICAgICAgICAgICBDb3B5LUl0ZW0gLUxpdGVyYWxQYXRo ICRMb2dQYXRoIC1EZXN0aW5hdGlvbiAkYmsgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNv bnRpbnVlDQogICAgICAgICAgICAgICAgV3JpdGUtU3RhcnR1cExvZyAibG9nYnVjaC5qc29uIHdh ciBrYXB1dHQgLS0gZ2VzaWNoZXJ0IG5hY2ggJyRiaycsIExvZ2J1Y2ggd2lyZCBuZXUgYW5nZWxl Z3QiDQogICAgICAgICAgICB9IGNhdGNoIHt9DQogICAgICAgIH0NCiAgICB9DQogICAgJEVpbnRy YWcgPSBbb3JkZXJlZF1Aew0KICAgICAgICB6ZWl0c3RlbXBlbCA9IChHZXQtRGF0ZSAtRm9ybWF0 ICd5eXl5LU1NLWRkIEhIOm1tOnNzJykNCiAgICAgICAgYmVudXR6ZXIgICAgPSBHZXQtQWt0dWVs bGVyQmVudXR6ZXINCiAgICAgICAgYWt0aW9uICAgICAgPSAkQWt0aW9uDQogICAgfQ0KICAgIGlm ICgkRGV0YWlscykgew0KICAgICAgICBmb3JlYWNoICgkS2V5IGluICREZXRhaWxzLktleXMpIHsg JEVpbnRyYWdbJEtleV0gPSAkRGV0YWlsc1skS2V5XSB9DQogICAgfQ0KICAgIFt2b2lkXSRMb2cu QWRkKFtQU0N1c3RvbU9iamVjdF0kRWludHJhZykNCiAgICAjIFBTLTUuMS1RdWlyazogQ29udmVy dFRvLUpzb24gdW53cmFwcGVkIFNpbmdsZS1FbGVtZW50LUFycmF5cy4NCiAgICAjIERhaGVyIFNv bmRlcnBmYWQgZnVlciBDb3VudD09MS4NCiAgICBpZiAoJExvZy5Db3VudCAtZXEgMSkgew0KICAg ICAgICAkSnNvbiA9ICdbJyArIChDb252ZXJ0VG8tSnNvbiAtSW5wdXRPYmplY3QgJExvZ1swXSAt RGVwdGggMjUpICsgJ10nDQogICAgfSBlbHNlIHsNCiAgICAgICAgJEpzb24gPSBDb252ZXJ0VG8t SnNvbiAtSW5wdXRPYmplY3QgJExvZy5Ub0FycmF5KCkgLURlcHRoIDI1DQogICAgfQ0KICAgIFtT eXN0ZW0uSU8uRmlsZV06OldyaXRlQWxsVGV4dCgkTG9nUGF0aCwgJEpzb24sIFtTeXN0ZW0uVGV4 dC5FbmNvZGluZ106OlVURjgpDQp9DQoNCmZ1bmN0aW9uIEdldC1Ba3R1ZWxsZXJCZW51dHplciB7 DQogICAgJERvbWFpbiA9IGlmICgkZW52OlVTRVJET01BSU4pIHsgJGVudjpVU0VSRE9NQUlOIH0g ZWxzZSB7ICcqJyB9DQogICAgcmV0dXJuICIkRG9tYWluXCRlbnY6VVNFUk5BTUUiDQp9DQoNCiMg PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KIyBNZWRpZW4tVmVyd2FsdHVuZyAoQWRtaW4tVGFiICJNZWRpZW4iKQ0K IyBTdG9yYWdlOiBkYXRhL21lZGllbi88a2F0ZWdvcmllPi88aWQ+PGV4dD4gKyBNZXRhZGF0YSBp biBkYXRhL21lZGllbi5qc29uDQojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KZnVuY3Rpb24gR2V0LU1lZGll bkRpciB7DQogICAgJHAgPSBKb2luLVBhdGggJHNjcmlwdDpEYXRhRGlyICdtZWRpZW4nDQogICAg aWYgKC1ub3QgKFRlc3QtUGF0aCAkcCkpIHsgTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAt UGF0aCAkcCAtRm9yY2UgfCBPdXQtTnVsbCB9DQogICAgcmV0dXJuICRwDQp9DQoNCmZ1bmN0aW9u IEdldC1NZWRpZW5LYXRlZ29yaWVLZXlzIHsNCiAgICAjIFNvdXJjZS1vZi1UcnV0aDogYWRtaW4u anNvbjptZWRpZW5LYXRlZ29yaWVuLiBGYWxsYmFjazogRGVmYXVsdHMuDQogICAgIyBTcGllZ2Vs IHZvbiBzZXJ2ZXIucHk6bWVkaWVuX2thdGVnb3JpZV9rZXlzIChBdWRpdC1JdGVyLUIpLg0KICAg IHRyeSB7DQogICAgICAgICRhZG1pbiA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAg ICAgIGlmICgkbnVsbCAtbmUgJGFkbWluIC1hbmQgJGFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNb J21lZGllbkthdGVnb3JpZW4nXSkgew0KICAgICAgICAgICAgJGtleXMgPSBAKCkNCiAgICAgICAg ICAgIGZvcmVhY2ggKCRrIGluIEAoJGFkbWluLm1lZGllbkthdGVnb3JpZW4pKSB7DQogICAgICAg ICAgICAgICAgaWYgKCRrIC1hbmQgJGsuUFNPYmplY3QuUHJvcGVydGllc1sna2V5J10pIHsNCiAg ICAgICAgICAgICAgICAgICAgJGtleSA9IChbc3RyaW5nXSRrLmtleSkuVHJpbSgpLlRvTG93ZXIo KQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJGtleSkgeyAka2V5cyArPSAka2V5IH0NCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoJGtleXMuQ291bnQg LWd0IDApIHsgcmV0dXJuICRrZXlzIH0NCiAgICAgICAgfQ0KICAgIH0gY2F0Y2ggeyB9DQogICAg cmV0dXJuICRzY3JpcHQ6TWVkaWVuS2F0ZWdvcmllbkRlZmF1bHRzDQp9DQoNCmZ1bmN0aW9uIElu dm9rZS1NZWRpZW5TeXN0ZW1JbXBvcnRGYWxsc05vZXRpZyB7DQogICAgIyBTcGllZ2VsIHZvbiBz ZXJ2ZXIucHk6bWVkaWVuX3N5c3RlbV9pbXBvcnRpZXJlbl9mYWxsc19ub2V0aWcuDQogICAgIyBC ZWltIGVyc3RlbiBHRVQgL2FwaS9tZWRpZW4gd2VyZGVuIGRpZSBpbSBJbnZlbnRhciBkZWZpbmll cnRlbiAvaW1hZ2VzLy0NCiAgICAjIERhdGVpZW4gZWlubWFsaWcgaW4gbWVkaWVuLmpzb24gcmVn aXN0cmllcnQgKG1pdCBgcGZhZGAtRmVsZCwgb2huZSBEYXRlaS0NCiAgICAjIGtvcGllKS4gRGFu YWNoIG5vcm1hbCBlZGl0aWVyYmFyIC0gREVMRVRFIGVudGZlcm50IG51ciBkZW4gTWV0YS1FaW50 cmFnLA0KICAgICMgZGllIERhdGVpIGluIC9pbWFnZXMvIGJsZWlidCBsaWVnZW4uDQogICAgJG1l dGEgPSBSZWFkLU1lZGllbk1ldGENCiAgICBpZiAoJG1ldGEuUFNPYmplY3QuUHJvcGVydGllc1sn c3lzdGVtSW1wb3J0ZWRWMSddIC1hbmQgJG1ldGEuc3lzdGVtSW1wb3J0ZWRWMSkgew0KICAgICAg ICByZXR1cm4gJGZhbHNlDQogICAgfQ0KICAgICRiZXN0ZWhlbmRlID0gQHt9DQogICAgaWYgKCRt ZXRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ21lZGllbiddKSB7DQogICAgICAgIGZvcmVhY2ggKCRt IGluIEAoJG1ldGEubWVkaWVuKSkgew0KICAgICAgICAgICAgaWYgKCRtIC1hbmQgJG0uUFNPYmpl Y3QuUHJvcGVydGllc1snaWQnXSkgeyAkYmVzdGVoZW5kZVtbc3RyaW5nXSRtLmlkXSA9ICR0cnVl IH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICAkbmV1ID0gQCgpDQogICAgJGpldHp0ID0gR2V0LURh dGUgLUZvcm1hdCAneXl5eS1NTS1kZCBISDptbTpzcycNCiAgICBmb3JlYWNoICgkZWludHJhZyBp biAkc2NyaXB0OlN5c3RlbU1lZGllbkludmVudGFyKSB7DQogICAgICAgICRtaWQgPSAkZWludHJh Z1swXTsgJGthdCA9ICRlaW50cmFnWzFdOyAkYmV6ID0gJGVpbnRyYWdbMl07ICRwZmFkID0gJGVp bnRyYWdbM10NCiAgICAgICAgaWYgKCRiZXN0ZWhlbmRlLkNvbnRhaW5zS2V5KCRtaWQpKSB7IGNv bnRpbnVlIH0NCiAgICAgICAgJHJlbCA9ICRwZmFkLlRyaW1TdGFydCgnLycpDQogICAgICAgICRm dWxsID0gSm9pbi1QYXRoICRzY3JpcHQ6Um9vdCAkcmVsDQogICAgICAgIGlmICgtbm90IChUZXN0 LVBhdGggJGZ1bGwpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgJGZpID0gR2V0LUl0ZW0gJGZ1bGwg LUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUNCiAgICAgICAgaWYgKCRudWxsIC1lcSAkZmkp IHsgY29udGludWUgfQ0KICAgICAgICAkZXh0ID0gJGZpLkV4dGVuc2lvbi5Ub0xvd2VyKCkNCiAg ICAgICAgJG1pbWUgPSBpZiAoJHNjcmlwdDpNZWRpZW5TdWZmaXhadU1pbWUuQ29udGFpbnNLZXko JGV4dCkpIHsgJHNjcmlwdDpNZWRpZW5TdWZmaXhadU1pbWVbJGV4dF0gfSBlbHNlIHsgJ2FwcGxp Y2F0aW9uL29jdGV0LXN0cmVhbScgfQ0KICAgICAgICAkbmV1ICs9IFtQU0N1c3RvbU9iamVjdF1b b3JkZXJlZF1Aew0KICAgICAgICAgICAgaWQgICAgICAgICAgICAgID0gJG1pZA0KICAgICAgICAg ICAga2F0ZWdvcmllICAgICAgID0gJGthdA0KICAgICAgICAgICAgYmV6ZWljaG51bmcgICAgID0g JGJleg0KICAgICAgICAgICAgZGF0ZWluYW1lICAgICAgID0gJGZpLk5hbWUNCiAgICAgICAgICAg IG1pbWVUeXBlICAgICAgICA9ICRtaW1lDQogICAgICAgICAgICBncm9lc3NlICAgICAgICAgPSBb aW50NjRdJGZpLkxlbmd0aA0KICAgICAgICAgICAgcGZhZCAgICAgICAgICAgID0gJHBmYWQNCiAg ICAgICAgICAgIHN5c3RlbSAgICAgICAgICA9ICR0cnVlDQogICAgICAgICAgICBob2NoZ2VsYWRl bkFtICAgPSAkamV0enQNCiAgICAgICAgICAgIGhvY2hnZWxhZGVuVm9uICA9ICdzeXN0ZW0nDQog ICAgICAgIH0NCiAgICB9DQogICAgaWYgKC1ub3QgJG1ldGEuUFNPYmplY3QuUHJvcGVydGllc1sn bWVkaWVuJ10pIHsNCiAgICAgICAgJG1ldGEgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQ cm9wZXJ0eSAtTmFtZSAnbWVkaWVuJyAtVmFsdWUgQCgpDQogICAgfQ0KICAgIGlmICgkbmV1LkNv dW50IC1ndCAwKSB7DQogICAgICAgICRtZXRhLm1lZGllbiA9IEAoQCgkbWV0YS5tZWRpZW4pICsg JG5ldSkNCiAgICB9DQogICAgaWYgKCRtZXRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N5c3RlbUlt cG9ydGVkVjEnXSkgew0KICAgICAgICAkbWV0YS5zeXN0ZW1JbXBvcnRlZFYxID0gJHRydWUNCiAg ICB9IGVsc2Ugew0KICAgICAgICAkbWV0YSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy b3BlcnR5IC1OYW1lICdzeXN0ZW1JbXBvcnRlZFYxJyAtVmFsdWUgJHRydWUNCiAgICB9DQogICAg V3JpdGUtTWVkaWVuTWV0YSAkbWV0YQ0KICAgIHJldHVybiAoJG5ldS5Db3VudCAtZ3QgMCkNCn0N Cg0KZnVuY3Rpb24gUmVhZC1NZWRpZW5NZXRhIHsNCiAgICAkcCA9IEpvaW4tUGF0aCAkc2NyaXB0 OkRhdGFEaXIgJ21lZGllbi5qc29uJw0KICAgIGlmICgtbm90IChUZXN0LVBhdGggJHApKSB7IHJl dHVybiBbUFNDdXN0b21PYmplY3RdQHsgbWVkaWVuID0gQCgpIH0gfQ0KICAgIHRyeSB7DQogICAg ICAgICRjb250ZW50ID0gW1N5c3RlbS5JTy5GaWxlXTo6UmVhZEFsbFRleHQoJHAsIFtTeXN0ZW0u VGV4dC5FbmNvZGluZ106OlVURjgpDQogICAgICAgIHJldHVybiAoJGNvbnRlbnQgfCBDb252ZXJ0 RnJvbS1Kc29uKQ0KICAgIH0gY2F0Y2ggew0KICAgICAgICByZXR1cm4gW1BTQ3VzdG9tT2JqZWN0 XUB7IG1lZGllbiA9IEAoKSB9DQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBXcml0ZS1NZWRpZW5NZXRh KCRNZXRhKSB7DQogICAgJHAgPSBKb2luLVBhdGggJHNjcmlwdDpEYXRhRGlyICdtZWRpZW4uanNv bicNCiAgICAkSnNvbiA9IENvbnZlcnRUby1Kc29uIC1JbnB1dE9iamVjdCAkTWV0YSAtRGVwdGgg MTINCiAgICBbU3lzdGVtLklPLkZpbGVdOjpXcml0ZUFsbFRleHQoJHAsICRKc29uLCBbU3lzdGVt LlRleHQuRW5jb2RpbmddOjpVVEY4KQ0KfQ0KDQpmdW5jdGlvbiBHZXQtTWVkaWVuUGZhZCgkRWlu dHJhZykgew0KICAgICMgTWl0IGBwZmFkYCAoVVJMLVBmYWQgcmVsYXRpdiB6dSAvKSAtPiBhdWYg c3RhdGlzY2hlcyBBc3NldCBhdWZsw7ZzZW4uDQogICAgIyBPaG5lIGBwZmFkYCAtPiBkYXRhL21l ZGllbi88a2F0ZWdvcmllPi88aWQ+PGV4dD4uDQogICAgaWYgKCRFaW50cmFnLlBTT2JqZWN0LlBy b3BlcnRpZXNbJ3BmYWQnXSAtYW5kIC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShb c3RyaW5nXSRFaW50cmFnLnBmYWQpKSB7DQogICAgICAgICRyZWwgPSAoW3N0cmluZ10kRWludHJh Zy5wZmFkKS5UcmltU3RhcnQoJy8nKQ0KICAgICAgICByZXR1cm4gKEpvaW4tUGF0aCAkc2NyaXB0 OlJvb3QgJHJlbCkNCiAgICB9DQogICAgJGthdCA9IGlmICgkRWludHJhZy5rYXRlZ29yaWUpIHsg W3N0cmluZ10kRWludHJhZy5rYXRlZ29yaWUgfSBlbHNlIHsgJ3NvbnN0aWdlcycgfQ0KICAgICRt aW1lID0gaWYgKCRFaW50cmFnLm1pbWVUeXBlKSB7IFtzdHJpbmddJEVpbnRyYWcubWltZVR5cGUg fSBlbHNlIHsgJycgfQ0KICAgICRleHQgPSBpZiAoJHNjcmlwdDpNZWRpZW5FcmxhdWJ0ZU1pbWVz LkNvbnRhaW5zS2V5KCRtaW1lKSkgeyAkc2NyaXB0Ok1lZGllbkVybGF1YnRlTWltZXNbJG1pbWVd IH0gZWxzZSB7ICcuYmluJyB9DQogICAgJGRpciA9IEpvaW4tUGF0aCAoR2V0LU1lZGllbkRpcikg JGthdA0KICAgIGlmICgtbm90IChUZXN0LVBhdGggJGRpcikpIHsgTmV3LUl0ZW0gLUl0ZW1UeXBl IERpcmVjdG9yeSAtUGF0aCAkZGlyIC1Gb3JjZSB8IE91dC1OdWxsIH0NCiAgICByZXR1cm4gKEpv aW4tUGF0aCAkZGlyIChbc3RyaW5nXSRFaW50cmFnLmlkICsgJGV4dCkpDQp9DQoNCmZ1bmN0aW9u IEdldC1NZWRpZW5JbWFnZXNPcmRuZXIoJEthdGVnb3JpZSkgew0KICAgICMgTGllZmVydCBkZW4g UGZhZCB6dSBJbWFnZXMvPGthdGVnb3JpZT4vLCBmYWxscyBhdWYgRGlzayB2b3JoYW5kZW4sIHNv bnN0ICRudWxsLg0KICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRLYXRlZ29y aWUpKSB7IHJldHVybiAkbnVsbCB9DQogICAgJHAgPSBKb2luLVBhdGggKEpvaW4tUGF0aCAkc2Ny aXB0OlJvb3QgJ0ltYWdlcycpICRLYXRlZ29yaWUNCiAgICBpZiAoVGVzdC1QYXRoIC1MaXRlcmFs UGF0aCAkcCAtUGF0aFR5cGUgQ29udGFpbmVyKSB7IHJldHVybiAkcCB9DQogICAgcmV0dXJuICRu dWxsDQp9DQoNCmZ1bmN0aW9uIEdldC1NZWRpZW5EYXRlaW5hbWVTYW5pdGl6ZSgkTmFtZSkgew0K ICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCROYW1lKSkgeyByZXR1cm4gJycg fQ0KICAgICRuID0gJE5hbWUuVHJpbSgpDQogICAgJG4gPSAkbiAtcmVwbGFjZSAnw6QnLCdhZScg LXJlcGxhY2UgJ8O2Jywnb2UnIC1yZXBsYWNlICfDvCcsJ3VlJw0KICAgICRuID0gJG4gLXJlcGxh Y2UgJ8OEJywnQWUnIC1yZXBsYWNlICfDlicsJ09lJyAtcmVwbGFjZSAnw5wnLCdVZScgLXJlcGxh Y2UgJ8OfJywnc3MnDQogICAgJG4gPSAkbiAtcmVwbGFjZSAnW15BLVphLXowLTkuXy1dKycsJ18n DQogICAgJG4gPSAkbiAtcmVwbGFjZSAnXysnLCdfJw0KICAgICRuID0gJG4uVHJpbSgnXycpLlRy aW0oJy4nKQ0KICAgIGlmICgkbi5MZW5ndGggLWd0IDEwMCkgeyAkbiA9ICRuLlN1YnN0cmluZygw LCAxMDApIH0NCiAgICByZXR1cm4gJG4NCn0NCg0KZnVuY3Rpb24gR2V0LU1lZGllbkJhc2VuYW1l QXVzVXBsb2FkKCREYXRlaW5hbWVPZGVyQmV6ZWljaG51bmcpIHsNCiAgICBpZiAoW3N0cmluZ106 OklzTnVsbE9yV2hpdGVTcGFjZSgkRGF0ZWluYW1lT2RlckJlemVpY2hudW5nKSkgeyByZXR1cm4g J21lZGl1bScgfQ0KICAgICRiYXNlID0gR2V0LU1lZGllbkRhdGVpbmFtZVNhbml0aXplICREYXRl aW5hbWVPZGVyQmV6ZWljaG51bmcNCiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFj ZSgkYmFzZSkpIHsgcmV0dXJuICdtZWRpdW0nIH0NCiAgICAkYmFzZUxvd2VyID0gJGJhc2UuVG9M b3dlcigpDQogICAgZm9yZWFjaCAoJGUgaW4gJHNjcmlwdDpNZWRpZW5FcmxhdWJ0ZU1pbWVzLlZh bHVlcykgew0KICAgICAgICBpZiAoJGJhc2VMb3dlci5FbmRzV2l0aCgkZS5Ub0xvd2VyKCkpKSB7 DQogICAgICAgICAgICAkY3V0ID0gJGJhc2UuU3Vic3RyaW5nKDAsICRiYXNlLkxlbmd0aCAtICRl Lkxlbmd0aCkNCiAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRj dXQpKSB7IHJldHVybiAnbWVkaXVtJyB9DQogICAgICAgICAgICByZXR1cm4gJGN1dA0KICAgICAg ICB9DQogICAgfQ0KICAgIHJldHVybiAkYmFzZQ0KfQ0KDQpmdW5jdGlvbiBHZXQtTWVkaWVuRnJl aWVyRGF0ZWluYW1lKCRaaWVsb3JkbmVyLCAkQmFzZW5hbWUsICRFeHQpIHsNCiAgICAka2FuZGlk YXQgPSBKb2luLVBhdGggJFppZWxvcmRuZXIgKCRCYXNlbmFtZSArICRFeHQpDQogICAgaWYgKC1u b3QgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJGthbmRpZGF0KSkgeyByZXR1cm4gJGthbmRpZGF0 IH0NCiAgICBmb3IgKCRpID0gMDsgJGkgLWx0IDIwOyAkaSsrKSB7DQogICAgICAgICRieXRlcyA9 IE5ldy1PYmplY3QgYnl0ZVtdIDINCiAgICAgICAgKE5ldy1PYmplY3QgU3lzdGVtLlNlY3VyaXR5 LkNyeXB0b2dyYXBoeS5STkdDcnlwdG9TZXJ2aWNlUHJvdmlkZXIpLkdldEJ5dGVzKCRieXRlcykN CiAgICAgICAgJHN1ZmZpeCA9IC1qb2luICgkYnl0ZXMgfCBGb3JFYWNoLU9iamVjdCB7ICd7MDp4 Mn0nIC1mICRfIH0pDQogICAgICAgICRrYW5kaWRhdCA9IEpvaW4tUGF0aCAkWmllbG9yZG5lciAo JEJhc2VuYW1lICsgJ18nICsgJHN1ZmZpeCArICRFeHQpDQogICAgICAgIGlmICgtbm90IChUZXN0 LVBhdGggLUxpdGVyYWxQYXRoICRrYW5kaWRhdCkpIHsgcmV0dXJuICRrYW5kaWRhdCB9DQogICAg fQ0KICAgIHRocm93ICdLb25udGUga2VpbmVuIGZyZWllbiBEYXRlaW5hbWVuIGZpbmRlbicNCn0N Cg0KZnVuY3Rpb24gTmV3LU1lZGllbklkIHsgcmV0dXJuIChbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0 cmluZygnTicpKSB9DQoNCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgUk9MTEVOLUhJRVJBUkNI SUU6IHN1cGVyID4gZmFjaGF1ZnNpY2h0ID4gYWRtaW4gPiB1c2VyDQojIE5vdGZhbGwtU3VwZXJV c2VyLUxpc3RlIChzaWVoZSB1bnRlbikgaGViZWx0IGplZGUgYWRtaW4uanNvbiBhdXMsIGZhbGxz IGRpZQ0KIyBrYXB1dHQgaXN0LiBGYWNoYXVmc2ljaHRlbiBsZWJlbiBpbiBhZG1pbi5qc29uLmZh Y2hhdWZzaWNodGVuW10gdW5kIGR1ZXJmZW4NCiMgZnJlbWRlICsgUGZsaWNodC1aZWxsZW4gdWVi ZXJzY2hyZWliZW4gKHNpZWhlIFBoYXNlIEIpLg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQpm dW5jdGlvbiBUZXN0LUlzdEZhY2hhdWZzaWNodCB7DQogICAgaWYgKFRlc3QtSXN0U3VwZXJVc2Vy KSB7IHJldHVybiAkdHJ1ZSB9DQogICAgIyBBdXRvOiBQZXJzb25lbiBtaXQgRnVua3Rpb24gIjEu IEVCIiBvZGVyICIxLiBFQiBWLiINCiAgICAkVXNlckxvd2VyID0gKFtzdHJpbmddJGVudjpVU0VS TkFNRSkuVG9Mb3dlcigpDQogICAgJEJlbkxvd2VyICA9IChHZXQtQWt0dWVsbGVyQmVudXR6ZXIp LlRvTG93ZXIoKQ0KICAgICRrZW5udW5nZW4gPSBHZXQtUGVyc29uZW5LZW5udW5nZW5NaXRGdW5r dGlvbiBAKCcxLiBFQicsICcxLiBFQiBWLicpDQogICAgZm9yZWFjaCAoJGtuIGluICRrZW5udW5n ZW4pIHsNCiAgICAgICAgaWYgKCRrbiAtZXEgJFVzZXJMb3dlciAtb3IgJGtuIC1lcSAkQmVuTG93 ZXIpIHsgcmV0dXJuICR0cnVlIH0NCiAgICB9DQogICAgJEFkbWluID0gUmVhZC1Kc29uRmlsZSAn YWRtaW4uanNvbicNCiAgICBpZiAoJG51bGwgLWVxICRBZG1pbiAtb3IgJG51bGwgLWVxICRBZG1p bi5mYWNoYXVmc2ljaHRlbikgeyByZXR1cm4gJGZhbHNlIH0NCiAgICBmb3JlYWNoICgkSyBpbiBA KCRBZG1pbi5mYWNoYXVmc2ljaHRlbikpIHsNCiAgICAgICAgJEtlbm51bmcgPSBpZiAoJEsgLWlz IFtQU0N1c3RvbU9iamVjdF0pIHsgW3N0cmluZ10kSy5ud0tlbm51bmcgfSBlbHNlIHsgW3N0cmlu Z10kSyB9DQogICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRLZW5udW5n KSkgeyBjb250aW51ZSB9DQogICAgICAgIGlmICgkS2VubnVuZyAtaWVxICRlbnY6VVNFUk5BTUUg LW9yICRLZW5udW5nIC1pZXEgKEdldC1Ba3R1ZWxsZXJCZW51dHplcikpIHsgcmV0dXJuICR0cnVl IH0NCiAgICB9DQogICAgcmV0dXJuICRmYWxzZQ0KfQ0KDQpmdW5jdGlvbiBHZXQtVXNlclJvbGxl IHsNCiAgICBpZiAoVGVzdC1Jc3RTdXBlclVzZXIpICAgIHsgcmV0dXJuICdzdXBlcicgfQ0KICAg IGlmIChUZXN0LUlzdEZhY2hhdWZzaWNodCkgeyByZXR1cm4gJ2ZhY2hhdWZzaWNodCcgfQ0KICAg IGlmIChUZXN0LUlzdEFkbWluKSAgICAgICAgeyByZXR1cm4gJ2FkbWluJyB9DQogICAgcmV0dXJu ICd1c2VyJw0KfQ0KDQpmdW5jdGlvbiBUZXN0LURhcmZVZWJlcnNjaHJlaWJlbigkUm9sbGUpIHsN CiAgICByZXR1cm4gKCRSb2xsZSAtZXEgJ3N1cGVyJyAtb3IgJFJvbGxlIC1lcSAnZmFjaGF1ZnNp Y2h0JykNCn0NCg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBST0xMRU4tU1lOQzogUGVyc29u LUZ1bmt0aW9uIC0+IGFkbWluLnN1cGVyVXNlciAvIGFkbWluLmZhY2hhdWZzaWNodGVuDQojIFdp cmQgbmFjaCBQZXJzb24tQW5sZWdlbi8tQWVuZGVybiBhdWZnZXJ1ZmVuLiBFeHRlcm5lIChtYW51 ZWxsIGdlcGZsZWd0ZSkNCiMgRWludHJhZWdlIGJsZWliZW4gdW5hbmdldGFzdGV0Lg0KIyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KDQokc2NyaXB0OlJvbGxlblN5bmNNYXBwaW5nID0gQHsNCiAgICAn REdMJyAgICAgID0gJ3N1cGVyVXNlcicNCiAgICAnMS4gRUInICAgID0gJ3N1cGVyVXNlcicNCiAg ICAnMS4gRUIgVi4nID0gJ2ZhY2hhdWZzaWNodGVuJw0KfQ0KDQpmdW5jdGlvbiBHZXQtUGVyc29u TmFjaG5hbWUoJFBlcnNvbikgew0KICAgIGlmICgkbnVsbCAtZXEgJFBlcnNvbikgeyByZXR1cm4g JycgfQ0KICAgIGlmICgkUGVyc29uLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hY2huYW1lJ10gLWFu ZCAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10kUGVyc29uLm5hY2hu YW1lKSkgew0KICAgICAgICByZXR1cm4gKFtzdHJpbmddJFBlcnNvbi5uYWNobmFtZSkuVHJpbSgp DQogICAgfQ0KICAgIGlmICgkUGVyc29uLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hbWUnXSAtYW5k IC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRQZXJzb24ubmFtZSkp IHsNCiAgICAgICAgcmV0dXJuIChbc3RyaW5nXSRQZXJzb24ubmFtZSkuVHJpbSgpDQogICAgfQ0K ICAgIHJldHVybiAnJw0KfQ0KDQpmdW5jdGlvbiBHZXQtUGVyc29uVm9sbE5hbWUoJFBlcnNvbikg ew0KICAgICRuID0gR2V0LVBlcnNvbk5hY2huYW1lICRQZXJzb24NCiAgICAkdiA9IGlmICgkUGVy c29uLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Zvcm5hbWUnXSkgeyAoW3N0cmluZ10kUGVyc29uLnZv cm5hbWUpLlRyaW0oKSB9IGVsc2UgeyAnJyB9DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldo aXRlU3BhY2UoJG4pKSB7IHJldHVybiAnJyB9DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldo aXRlU3BhY2UoJHYpKSB7IHJldHVybiAkbiB9DQogICAgcmV0dXJuICIkbiwgJHYiDQp9DQoNCmZ1 bmN0aW9uIFN5bmMtUm9sbGVuQXVzUGVyc29uZW4oJFBsYW51bmcsICRBZG1pbikgew0KICAgICMg TXV0YXRlcyAkQWRtaW4gaW4tcGxhY2UuIFJldHVybnMgJHRydWUgd2VubiBzaWNoIGV0d2FzIGdl YWVuZGVydCBoYXQuDQogICAgaWYgKCRudWxsIC1lcSAkQWRtaW4pIHsgcmV0dXJuICRmYWxzZSB9 DQogICAgJFNVID0gaWYgKCRBZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWydzdXBlclVzZXInXSkg eyBAKCRBZG1pbi5zdXBlclVzZXIpIH0gZWxzZSB7IEAoKSB9DQogICAgJEZBID0gaWYgKCRBZG1p bi5QU09iamVjdC5Qcm9wZXJ0aWVzWydmYWNoYXVmc2ljaHRlbiddKSB7IEAoJEFkbWluLmZhY2hh dWZzaWNodGVuKSB9IGVsc2UgeyBAKCkgfQ0KDQogICAgJFBlcnNvbmVuQWt0aXYgPSBAKCkNCiAg ICBpZiAoJG51bGwgLW5lICRQbGFudW5nIC1hbmQgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGll c1sncGVyc29uZW4nXSkgew0KICAgICAgICBmb3JlYWNoICgkUCBpbiBAKCRQbGFudW5nLnBlcnNv bmVuKSkgew0KICAgICAgICAgICAgJEFrdGl2ID0gJHRydWUNCiAgICAgICAgICAgIGlmICgkUC5Q U09iamVjdC5Qcm9wZXJ0aWVzWydha3RpdiddKSB7ICRBa3RpdiA9IFtib29sXSRQLmFrdGl2IH0N CiAgICAgICAgICAgIGlmICgkQWt0aXYpIHsgJFBlcnNvbmVuQWt0aXYgKz0gJFAgfQ0KICAgICAg ICB9DQogICAgfQ0KDQogICAgIyBJbmRleCBuYWNoIE5hbWUgKyBud0tlbm51bmcNCiAgICAkQnlO YW1lID0gQHt9DQogICAgJEJ5S2VubnVuZyA9IEB7fQ0KICAgIGZvcmVhY2ggKCRQIGluICRQZXJz b25lbkFrdGl2KSB7DQogICAgICAgICRObSA9IChHZXQtUGVyc29uVm9sbE5hbWUgJFApLlRvTG93 ZXIoKQ0KICAgICAgICBpZiAoJE5tKSB7ICRCeU5hbWVbJE5tXSA9ICRQIH0NCiAgICAgICAgJEtu ID0gaWYgKCRQLlBTT2JqZWN0LlByb3BlcnRpZXNbJ253S2VubnVuZyddKSB7IChbc3RyaW5nXSRQ Lm53S2VubnVuZykuVHJpbSgpLlRvTG93ZXIoKSB9IGVsc2UgeyAnJyB9DQogICAgICAgIGlmICgk S24pIHsgJEJ5S2VubnVuZ1skS25dID0gJFAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIF9QYXNz dFp1UGVyc29uKCRFaW50cmFnLCAkQnlOYW1lLCAkQnlLZW5udW5nKSB7DQogICAgICAgIGlmICgk bnVsbCAtZXEgJEVpbnRyYWcpIHsgcmV0dXJuICRudWxsIH0NCiAgICAgICAgJE5tID0gaWYgKCRF aW50cmFnLlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hbWUnXSkgeyAoW3N0cmluZ10kRWludHJhZy5u YW1lKS5UcmltKCkuVG9Mb3dlcigpIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgJEtuID0gaWYgKCRF aW50cmFnLlBTT2JqZWN0LlByb3BlcnRpZXNbJ253S2VubnVuZyddKSB7IChbc3RyaW5nXSRFaW50 cmFnLm53S2VubnVuZykuVHJpbSgpLlRvTG93ZXIoKSB9IGVsc2UgeyAnJyB9DQogICAgICAgIGlm ICgkS24gLWFuZCAkQnlLZW5udW5nLkNvbnRhaW5zS2V5KCRLbikpIHsgcmV0dXJuICRCeUtlbm51 bmdbJEtuXSB9DQogICAgICAgIGlmICgkTm0gLWFuZCAkQnlOYW1lLkNvbnRhaW5zS2V5KCRObSkp ICAgIHsgcmV0dXJuICRCeU5hbWVbJE5tXSB9DQogICAgICAgIHJldHVybiAkbnVsbA0KICAgIH0N Cg0KICAgICRHZWFlbmRlcnQgPSAkZmFsc2UNCg0KICAgICMgMSkgQmVzdGVoZW5kZSBFaW50cmFl Z2UgYmVyZWluaWdlbiAoU1UpDQogICAgJFNVTmV1ID0gQCgpDQogICAgZm9yZWFjaCAoJEUgaW4g JFNVKSB7DQogICAgICAgICRQYXNzUCA9IF9QYXNzdFp1UGVyc29uICRFICRCeU5hbWUgJEJ5S2Vu bnVuZw0KICAgICAgICBpZiAoJG51bGwgLWVxICRQYXNzUCkgew0KICAgICAgICAgICAgJFNVTmV1 ICs9ICRFICAgIyBleHRlcm4gLT4gYmVoYWx0ZW4NCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg ICAgICRGdW5rID0gaWYgKCRQYXNzUC5QU09iamVjdC5Qcm9wZXJ0aWVzWydmdW5rdGlvbiddKSB7 IFtzdHJpbmddJFBhc3NQLmZ1bmt0aW9uIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICRaaWVs ID0gJHNjcmlwdDpSb2xsZW5TeW5jTWFwcGluZ1skRnVua10NCiAgICAgICAgICAgIGlmICgkWmll bCAtZXEgJ3N1cGVyVXNlcicpIHsNCiAgICAgICAgICAgICAgICAjIG53S2VubnVuZyBlcmdhZW56 ZW4gZmFsbHMgZmVobHQNCiAgICAgICAgICAgICAgICAkSGF0S2VubnVuZyA9ICRFLlBTT2JqZWN0 LlByb3BlcnRpZXNbJ253S2VubnVuZyddIC1hbmQgLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0 ZVNwYWNlKFtzdHJpbmddJEUubndLZW5udW5nKQ0KICAgICAgICAgICAgICAgICRQS2VubnVuZyA9 IGlmICgkUGFzc1AuUFNPYmplY3QuUHJvcGVydGllc1snbndLZW5udW5nJ10pIHsgW3N0cmluZ10k UGFzc1AubndLZW5udW5nIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAk SGF0S2VubnVuZyAtYW5kICRQS2VubnVuZykgew0KICAgICAgICAgICAgICAgICAgICBpZiAoJEUu UFNPYmplY3QuUHJvcGVydGllc1snbndLZW5udW5nJ10pIHsgJEUubndLZW5udW5nID0gJFBLZW5u dW5nIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICRFIHwgQWRkLU1lbWJlciAtTWVtYmVy VHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ253S2VubnVuZycgLVZhbHVlICRQS2VubnVuZyB9DQog ICAgICAgICAgICAgICAgICAgICRHZWFlbmRlcnQgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAkRUZ1bmsgPSBpZiAoJEUuUFNPYmplY3QuUHJvcGVydGllc1snZnVu a3Rpb24nXSkgeyBbc3RyaW5nXSRFLmZ1bmt0aW9uIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAg ICAgICBpZiAoJEZ1bmsgLWFuZCAkRUZ1bmsgLW5lICRGdW5rKSB7DQogICAgICAgICAgICAgICAg ICAgIGlmICgkRS5QU09iamVjdC5Qcm9wZXJ0aWVzWydmdW5rdGlvbiddKSB7ICRFLmZ1bmt0aW9u ID0gJEZ1bmsgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgJEUgfCBBZGQtTWVtYmVyIC1N ZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnZnVua3Rpb24nIC1WYWx1ZSAkRnVuayB9DQog ICAgICAgICAgICAgICAgICAgICRHZWFlbmRlcnQgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAkU1VOZXUgKz0gJEUNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAg ICAgICAgICAgICAgJEdlYWVuZGVydCA9ICR0cnVlICAgIyBGdW5rdGlvbiB2ZXJsb3JlbiAtPiBy YXVzDQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQogICAgJFNVID0gJFNVTmV1DQoN CiAgICAjIDFiKSBGYWNoYXVmc2ljaHRlbiBiZXJlaW5pZ2VuDQogICAgJEZBTmV1ID0gQCgpDQog ICAgZm9yZWFjaCAoJEUgaW4gJEZBKSB7DQogICAgICAgICRQYXNzUCA9IF9QYXNzdFp1UGVyc29u ICRFICRCeU5hbWUgJEJ5S2VubnVuZw0KICAgICAgICBpZiAoJG51bGwgLWVxICRQYXNzUCkgew0K ICAgICAgICAgICAgJEZBTmV1ICs9ICRFDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAk RnVuayA9IGlmICgkUGFzc1AuUFNPYmplY3QuUHJvcGVydGllc1snZnVua3Rpb24nXSkgeyBbc3Ry aW5nXSRQYXNzUC5mdW5rdGlvbiB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAkWmllbCA9ICRz Y3JpcHQ6Um9sbGVuU3luY01hcHBpbmdbJEZ1bmtdDQogICAgICAgICAgICBpZiAoJFppZWwgLWVx ICdmYWNoYXVmc2ljaHRlbicpIHsNCiAgICAgICAgICAgICAgICAkSGF0S2VubnVuZyA9ICRFLlBT T2JqZWN0LlByb3BlcnRpZXNbJ253S2VubnVuZyddIC1hbmQgLW5vdCBbc3RyaW5nXTo6SXNOdWxs T3JXaGl0ZVNwYWNlKFtzdHJpbmddJEUubndLZW5udW5nKQ0KICAgICAgICAgICAgICAgICRQS2Vu bnVuZyA9IGlmICgkUGFzc1AuUFNPYmplY3QuUHJvcGVydGllc1snbndLZW5udW5nJ10pIHsgW3N0 cmluZ10kUGFzc1AubndLZW5udW5nIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICBpZiAo LW5vdCAkSGF0S2VubnVuZyAtYW5kICRQS2VubnVuZykgew0KICAgICAgICAgICAgICAgICAgICBp ZiAoJEUuUFNPYmplY3QuUHJvcGVydGllc1snbndLZW5udW5nJ10pIHsgJEUubndLZW5udW5nID0g JFBLZW5udW5nIH0NCiAgICAgICAgICAgICAgICAgICAgZWxzZSB7ICRFIHwgQWRkLU1lbWJlciAt TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ253S2VubnVuZycgLVZhbHVlICRQS2VubnVu ZyB9DQogICAgICAgICAgICAgICAgICAgICRHZWFlbmRlcnQgPSAkdHJ1ZQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAkRUZ1bmsgPSBpZiAoJEUuUFNPYmplY3QuUHJvcGVydGll c1snZnVua3Rpb24nXSkgeyBbc3RyaW5nXSRFLmZ1bmt0aW9uIH0gZWxzZSB7ICcnIH0NCiAgICAg ICAgICAgICAgICBpZiAoJEZ1bmsgLWFuZCAkRUZ1bmsgLW5lICRGdW5rKSB7DQogICAgICAgICAg ICAgICAgICAgIGlmICgkRS5QU09iamVjdC5Qcm9wZXJ0aWVzWydmdW5rdGlvbiddKSB7ICRFLmZ1 bmt0aW9uID0gJEZ1bmsgfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgJEUgfCBBZGQtTWVt YmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnZnVua3Rpb24nIC1WYWx1ZSAkRnVu ayB9DQogICAgICAgICAgICAgICAgICAgICRHZWFlbmRlcnQgPSAkdHJ1ZQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAkRkFOZXUgKz0gJEUNCiAgICAgICAgICAgIH0gZWxzZSB7 DQogICAgICAgICAgICAgICAgJEdlYWVuZGVydCA9ICR0cnVlDQogICAgICAgICAgICB9DQogICAg ICAgIH0NCiAgICB9DQogICAgJEZBID0gJEZBTmV1DQoNCiAgICAjIDIpIEZlaGxlbmRlIEVpbnRy YWVnZSBlcmdhZW56ZW4NCiAgICAkU1VTZWVuID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlv bnMuR2VuZXJpYy5IYXNoU2V0W3N0cmluZ10NCiAgICBmb3JlYWNoICgkRSBpbiAkU1UpIHsNCiAg ICAgICAgaWYgKCRudWxsIC1lcSAkRSkgeyBjb250aW51ZSB9DQogICAgICAgICRObSA9IGlmICgk RS5QU09iamVjdC5Qcm9wZXJ0aWVzWyduYW1lJ10pIHsgKFtzdHJpbmddJEUubmFtZSkuVHJpbSgp LlRvTG93ZXIoKSB9IGVsc2UgeyAnJyB9DQogICAgICAgICRLbiA9IGlmICgkRS5QU09iamVjdC5Q cm9wZXJ0aWVzWydud0tlbm51bmcnXSkgeyAoW3N0cmluZ10kRS5ud0tlbm51bmcpLlRyaW0oKS5U b0xvd2VyKCkgfSBlbHNlIHsgJycgfQ0KICAgICAgICBpZiAoJE5tKSB7IFt2b2lkXSRTVVNlZW4u QWRkKCRObSkgfQ0KICAgICAgICBpZiAoJEtuKSB7IFt2b2lkXSRTVVNlZW4uQWRkKCRLbikgfQ0K ICAgIH0NCiAgICAkRkFTZWVuID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJp Yy5IYXNoU2V0W3N0cmluZ10NCiAgICBmb3JlYWNoICgkRSBpbiAkRkEpIHsNCiAgICAgICAgaWYg KCRudWxsIC1lcSAkRSkgeyBjb250aW51ZSB9DQogICAgICAgICRObSA9IGlmICgkRS5QU09iamVj dC5Qcm9wZXJ0aWVzWyduYW1lJ10pIHsgKFtzdHJpbmddJEUubmFtZSkuVHJpbSgpLlRvTG93ZXIo KSB9IGVsc2UgeyAnJyB9DQogICAgICAgICRLbiA9IGlmICgkRS5QU09iamVjdC5Qcm9wZXJ0aWVz Wydud0tlbm51bmcnXSkgeyAoW3N0cmluZ10kRS5ud0tlbm51bmcpLlRyaW0oKS5Ub0xvd2VyKCkg fSBlbHNlIHsgJycgfQ0KICAgICAgICBpZiAoJE5tKSB7IFt2b2lkXSRGQVNlZW4uQWRkKCRObSkg fQ0KICAgICAgICBpZiAoJEtuKSB7IFt2b2lkXSRGQVNlZW4uQWRkKCRLbikgfQ0KICAgIH0NCg0K ICAgIGZvcmVhY2ggKCRQIGluICRQZXJzb25lbkFrdGl2KSB7DQogICAgICAgICRGdW5rID0gaWYg KCRQLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2Z1bmt0aW9uJ10pIHsgKFtzdHJpbmddJFAuZnVua3Rp b24pLlRyaW0oKSB9IGVsc2UgeyAnJyB9DQogICAgICAgIGlmICgtbm90ICRzY3JpcHQ6Um9sbGVu U3luY01hcHBpbmcuQ29udGFpbnNLZXkoJEZ1bmspKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgJFpp ZWwgPSAkc2NyaXB0OlJvbGxlblN5bmNNYXBwaW5nWyRGdW5rXQ0KICAgICAgICAkTm0gPSBHZXQt UGVyc29uVm9sbE5hbWUgJFANCiAgICAgICAgJE5tTG93ID0gJE5tLlRvTG93ZXIoKQ0KICAgICAg ICAkS25Mb3cgPSBpZiAoJFAuUFNPYmplY3QuUHJvcGVydGllc1snbndLZW5udW5nJ10pIHsgKFtz dHJpbmddJFAubndLZW5udW5nKS5UcmltKCkuVG9Mb3dlcigpIH0gZWxzZSB7ICcnIH0NCiAgICAg ICAgJE5ldWVyRWludHJhZyA9IFtQU0N1c3RvbU9iamVjdF1Aew0KICAgICAgICAgICAgbmFtZSAg ICAgID0gJE5tDQogICAgICAgICAgICBud0tlbm51bmcgPSBpZiAoJFAuUFNPYmplY3QuUHJvcGVy dGllc1snbndLZW5udW5nJ10pIHsgW3N0cmluZ10kUC5ud0tlbm51bmcgfSBlbHNlIHsgJycgfQ0K ICAgICAgICAgICAgZnVua3Rpb24gID0gJEZ1bmsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoJFpp ZWwgLWVxICdzdXBlclVzZXInKSB7DQogICAgICAgICAgICBpZiAoJFNVU2Vlbi5Db250YWlucygk Tm1Mb3cpIC1vciAoJEtuTG93IC1hbmQgJFNVU2Vlbi5Db250YWlucygkS25Mb3cpKSkgeyBjb250 aW51ZSB9DQogICAgICAgICAgICAkU1UgKz0gJE5ldWVyRWludHJhZw0KICAgICAgICAgICAgW3Zv aWRdJFNVU2Vlbi5BZGQoJE5tTG93KQ0KICAgICAgICAgICAgaWYgKCRLbkxvdykgeyBbdm9pZF0k U1VTZWVuLkFkZCgkS25Mb3cpIH0NCiAgICAgICAgICAgICRHZWFlbmRlcnQgPSAkdHJ1ZQ0KICAg ICAgICB9IGVsc2VpZiAoJFppZWwgLWVxICdmYWNoYXVmc2ljaHRlbicpIHsNCiAgICAgICAgICAg IGlmICgkRkFTZWVuLkNvbnRhaW5zKCRObUxvdykgLW9yICgkS25Mb3cgLWFuZCAkRkFTZWVuLkNv bnRhaW5zKCRLbkxvdykpKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICRGQSArPSAkTmV1ZXJF aW50cmFnDQogICAgICAgICAgICBbdm9pZF0kRkFTZWVuLkFkZCgkTm1Mb3cpDQogICAgICAgICAg ICBpZiAoJEtuTG93KSB7IFt2b2lkXSRGQVNlZW4uQWRkKCRLbkxvdykgfQ0KICAgICAgICAgICAg JEdlYWVuZGVydCA9ICR0cnVlDQogICAgICAgIH0NCiAgICB9DQoNCiAgICBpZiAoJEdlYWVuZGVy dCkgew0KICAgICAgICBpZiAoJEFkbWluLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N1cGVyVXNlcidd KSB7ICRBZG1pbi5zdXBlclVzZXIgPSBbb2JqZWN0W11dJFNVIH0NCiAgICAgICAgZWxzZSB7ICRB ZG1pbiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdzdXBlclVz ZXInIC1WYWx1ZSAoW29iamVjdFtdXSRTVSkgfQ0KICAgICAgICBpZiAoJEFkbWluLlBTT2JqZWN0 LlByb3BlcnRpZXNbJ2ZhY2hhdWZzaWNodGVuJ10pIHsgJEFkbWluLmZhY2hhdWZzaWNodGVuID0g W29iamVjdFtdXSRGQSB9DQogICAgICAgIGVsc2UgeyAkQWRtaW4gfCBBZGQtTWVtYmVyIC1NZW1i ZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnZmFjaGF1ZnNpY2h0ZW4nIC1WYWx1ZSAoW29iamVj dFtdXSRGQSkgfQ0KICAgIH0NCiAgICByZXR1cm4gJEdlYWVuZGVydA0KfQ0KDQpmdW5jdGlvbiBH ZXQtVmVyYmluZGxpY2hrZWl0QW5rZXIoJEFkbWluRGF0YSkgew0KICAgICMgTGllZmVydCBkYXMg RGF0ZVRpbWUgZGVzIGVyc3RlbiBUYWdlcywgYW4gZGVtIHJlZ3VsYWVyZSBVc2VyIHdpZWRlciBl ZGl0aWVyZW4gZHVlcmZlbi4NCiAgICAjICRudWxsIHdlbm4gZGFzIEZlbnN0ZXIgZGVha3Rpdmll cnQgaXN0Lg0KICAgIGlmICgkbnVsbCAtZXEgJEFkbWluRGF0YSkgeyByZXR1cm4gJG51bGwgfQ0K ICAgICR2ZiA9ICRBZG1pbkRhdGEuUFNPYmplY3QuUHJvcGVydGllc1sndmVyYmluZGxpY2hrZWl0 c2ZlbnN0ZXInXSB8IEZvckVhY2gtT2JqZWN0IHsgJF8uVmFsdWUgfSB8IFNlbGVjdC1PYmplY3Qg LUZpcnN0IDENCiAgICBpZiAoJG51bGwgLWVxICR2ZikgeyByZXR1cm4gJG51bGwgfQ0KICAgICRh a3RpdiA9ICRmYWxzZQ0KICAgIGlmICgkdmYuUFNPYmplY3QuUHJvcGVydGllc1snYWt0aXYnXSkg eyAkYWt0aXYgPSBbYm9vbF0kdmYuYWt0aXYgfQ0KICAgIGlmICgtbm90ICRha3RpdikgeyByZXR1 cm4gJG51bGwgfQ0KICAgICRoZXV0ZSA9IChHZXQtRGF0ZSkuRGF0ZQ0KICAgICRlaW5oZWl0ID0g J3dvY2hlbicNCiAgICBpZiAoJHZmLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbmhlaXQnXSAtYW5k ICR2Zi5laW5oZWl0KSB7ICRlaW5oZWl0ID0gW3N0cmluZ10kdmYuZWluaGVpdCB9DQogICAgJHdl cnQgPSAyDQogICAgaWYgKCR2Zi5QU09iamVjdC5Qcm9wZXJ0aWVzWyd3ZXJ0J10gLWFuZCAkdmYu d2VydCkgeyAkd2VydCA9IFtpbnRdJHZmLndlcnQgfQ0KICAgIGlmICgkZWluaGVpdCAtZXEgJ3dv Y2hlbicpIHsNCiAgICAgICAgJHppZWwgPSAxDQogICAgICAgIGlmICgkdmYuUFNPYmplY3QuUHJv cGVydGllc1snd29jaGVuc3RhcnQnXSAtYW5kICR2Zi53b2NoZW5zdGFydCkgeyAkemllbCA9IFtp bnRdJHZmLndvY2hlbnN0YXJ0IH0NCiAgICAgICAgIyBQUyBEYXlPZldlZWs6IFN1bmRheT0wLCBN b25kYXk9MSwgLi4uLCBTYXR1cmRheT02IOKGkiBJU08gTW89MS4uU289Nw0KICAgICAgICAkaXNv VGFnID0gW2ludF0kaGV1dGUuRGF5T2ZXZWVrDQogICAgICAgIGlmICgkaXNvVGFnIC1lcSAwKSB7 ICRpc29UYWcgPSA3IH0NCiAgICAgICAgJGRpZmYgPSAoJHppZWwgLSAkaXNvVGFnICsgNykgJSA3 DQogICAgICAgIGlmICgkZGlmZiAtZXEgMCkgeyAkZGlmZiA9IDcgfQ0KICAgICAgICByZXR1cm4g JGhldXRlLkFkZERheXMoJGRpZmYgKyAkd2VydCAqIDcpDQogICAgfQ0KICAgIHJldHVybiAkaGV1 dGUuQWRkRGF5cygkd2VydCkNCn0NCg0KZnVuY3Rpb24gVGVzdC1EYXR1bUluVmVyYmluZGxpY2hr ZWl0KCREYXR1bUlzbywgJEFkbWluRGF0YSkgew0KICAgICRhbmtlciA9IEdldC1WZXJiaW5kbGlj aGtlaXRBbmtlciAkQWRtaW5EYXRhDQogICAgaWYgKCRudWxsIC1lcSAkYW5rZXIpIHsgcmV0dXJu ICRmYWxzZSB9DQogICAgdHJ5IHsgJGQgPSBbZGF0ZXRpbWVdOjpQYXJzZSgkRGF0dW1Jc28pIH0g Y2F0Y2ggeyByZXR1cm4gJGZhbHNlIH0NCiAgICByZXR1cm4gKCRkIC1sdCAkYW5rZXIpDQp9DQoN CmZ1bmN0aW9uIEdldC1FcnN0ZXJGcmVpZXJUYWdJc28oJEFkbWluRGF0YSkgew0KICAgICRhbmtl ciA9IEdldC1WZXJiaW5kbGljaGtlaXRBbmtlciAkQWRtaW5EYXRhDQogICAgaWYgKCRudWxsIC1l cSAkYW5rZXIpIHsgcmV0dXJuICRudWxsIH0NCiAgICByZXR1cm4gJGFua2VyLlRvU3RyaW5nKCd5 eXl5LU1NLWRkJykNCn0NCg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBaRUxMLUxPQ0sgU1lT VEVNIChQZXNzaW1pc3RpYyBMb2NraW5nIGF1ZiBaZWxsLUViZW5lKQ0KIyBTdG9yYWdlOiBkYXRh Ly5sb2Nrcy96ZWxsZV88WVlZWS1NTS1ERD5fPHBlcnNvbklkPi5sb2NrDQojIFN0YWxlIG5hY2gg NjBzIG9obmUgQnJvd3Nlci1IZWFydGJlYXQgKENyYXNoLVNjaHV0eikuDQojIEZvcmNlLUxvY2sg ZnVlciBGYWNoYXVmc2ljaHQvU3VwZXJVc2VyIChQaGFzZSBCNSkuDQojID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09DQoNCiRzY3JpcHQ6Q2VsbExvY2tEaXIgPSBKb2luLVBhdGggJERhdGFEaXIgJy5sb2Nr cycNCiRzY3JpcHQ6Q2VsbExvY2tTdGFsZVNlYyA9IDYwDQoNCmZ1bmN0aW9uIEluaXRpYWxpemUt Q2VsbExvY2tEaXIgew0KICAgIGlmICgtbm90IChUZXN0LVBhdGggJHNjcmlwdDpDZWxsTG9ja0Rp cikpIHsNCiAgICAgICAgdHJ5IHsgTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAk c2NyaXB0OkNlbGxMb2NrRGlyIC1Gb3JjZSB8IE91dC1OdWxsIH0gY2F0Y2gge30NCiAgICB9DQp9 DQoNCmZ1bmN0aW9uIEdldC1DZWxsTG9ja1BhdGgoJERhdHVtLCAkUGVyc29uSWQpIHsNCiAgICBJ bml0aWFsaXplLUNlbGxMb2NrRGlyDQogICAgIyBEYXR1bSArIFBlcnNvbklkIGtvZW5uZW4gbnVy IHNpY2hlcmUgWmVpY2hlbiBlbnRoYWx0ZW4gKFZhbGlkaWVydW5nIGltIEVuZHBvaW50KQ0KICAg ICRTYWZlID0gInplbGxlXyQoJERhdHVtKV8kKCRQZXJzb25JZCkubG9jayINCiAgICByZXR1cm4g Sm9pbi1QYXRoICRzY3JpcHQ6Q2VsbExvY2tEaXIgJFNhZmUNCn0NCg0KZnVuY3Rpb24gVGVzdC1M b2NrU2FmZUlkKCRXZXJ0KSB7DQogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2Uo JFdlcnQpKSB7IHJldHVybiAkZmFsc2UgfQ0KICAgIHJldHVybiAoJFdlcnQgLW1hdGNoICdeW0Et WmEtejAtOV9cLV0rJCcpDQp9DQoNCmZ1bmN0aW9uIFRlc3QtTG9ja1NhZmVEYXR1bSgkV2VydCkg ew0KICAgIHJldHVybiAoJFdlcnQgLW1hdGNoICdeXGR7NH0tXGR7Mn0tXGR7Mn0kJykNCn0NCg0K ZnVuY3Rpb24gUmVhZC1DZWxsTG9jaygkRGF0dW0sICRQZXJzb25JZCkgew0KICAgICRQYXRoID0g R2V0LUNlbGxMb2NrUGF0aCAkRGF0dW0gJFBlcnNvbklkDQogICAgaWYgKC1ub3QgKFRlc3QtUGF0 aCAkUGF0aCkpIHsgcmV0dXJuICRudWxsIH0NCiAgICB0cnkgew0KICAgICAgICAkQ29udGVudCA9 IFtTeXN0ZW0uSU8uRmlsZV06OlJlYWRBbGxUZXh0KCRQYXRoLCBbU3lzdGVtLlRleHQuRW5jb2Rp bmddOjpVVEY4KQ0KICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkQ29u dGVudCkpIHsgcmV0dXJuICRudWxsIH0NCiAgICAgICAgJExvY2sgPSAkQ29udGVudCB8IENvbnZl cnRGcm9tLUpzb24NCiAgICAgICAgJExhc3RCZWF0ID0gW0RhdGVUaW1lXTo6UGFyc2UoJExvY2su bGFzdEJlYXQpLlRvVW5pdmVyc2FsVGltZSgpDQogICAgICAgICRBZ2VTZWMgPSAoKEdldC1EYXRl KS5Ub1VuaXZlcnNhbFRpbWUoKSAtICRMYXN0QmVhdCkuVG90YWxTZWNvbmRzDQogICAgICAgIGlm ICgkQWdlU2VjIC1ndCAkc2NyaXB0OkNlbGxMb2NrU3RhbGVTZWMpIHsNCiAgICAgICAgICAgIHRy eSB7IFJlbW92ZS1JdGVtICRQYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51 ZSB9IGNhdGNoIHt9DQogICAgICAgICAgICByZXR1cm4gJG51bGwNCiAgICAgICAgfQ0KICAgICAg ICByZXR1cm4gJExvY2sNCiAgICB9IGNhdGNoIHsNCiAgICAgICAgdHJ5IHsgUmVtb3ZlLUl0ZW0g JFBhdGggLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIH0gY2F0Y2gge30NCiAg ICAgICAgcmV0dXJuICRudWxsDQogICAgfQ0KfQ0KDQpmdW5jdGlvbiBXcml0ZS1DZWxsTG9jaygk TG9jaykgew0KICAgICRQYXRoID0gR2V0LUNlbGxMb2NrUGF0aCAkTG9jay5kYXR1bSAkTG9jay5w ZXJzb25JZA0KICAgICRKc29uID0gJExvY2sgfCBDb252ZXJ0VG8tSnNvbiAtRGVwdGggNSAtQ29t cHJlc3MNCiAgICBbU3lzdGVtLklPLkZpbGVdOjpXcml0ZUFsbFRleHQoJFBhdGgsICRKc29uLCBb U3lzdGVtLlRleHQuRW5jb2RpbmddOjpVVEY4KQ0KfQ0KDQpmdW5jdGlvbiBBY3F1aXJlLUNlbGxM b2NrKCREYXR1bSwgJFBlcnNvbklkLCAkVXNlcm5hbWUsICRSb2xsZSwgJEZvcmNlID0gJGZhbHNl KSB7DQogICAgJEV4aXN0aW5nID0gUmVhZC1DZWxsTG9jayAkRGF0dW0gJFBlcnNvbklkDQogICAg aWYgKCRudWxsIC1uZSAkRXhpc3RpbmcpIHsNCiAgICAgICAgJFNlbGJzdExvY2sgPSAoJEV4aXN0 aW5nLnVzZXJuYW1lIC1pZXEgJFVzZXJuYW1lKQ0KICAgICAgICBpZiAoLW5vdCAkU2VsYnN0TG9j ayAtYW5kIC1ub3QgJEZvcmNlKSB7DQogICAgICAgICAgICByZXR1cm4gQHsgb2sgPSAkZmFsc2U7 IGV4aXN0aW5nID0gJEV4aXN0aW5nIH0NCiAgICAgICAgfQ0KICAgICAgICAjIGVpZ2VuZXIgTG9j ayBvZGVyIEZvcmNlIC0+IHVlYmVyc2NocmVpYmVuIChhbHRlciBUb2tlbiB3aXJkIHVuZ3VlbHRp ZykNCiAgICB9DQogICAgJE5vdyA9IChHZXQtRGF0ZSkuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJp bmcoJ28nKQ0KICAgICRMb2NrID0gW29yZGVyZWRdQHsNCiAgICAgICAgdG9rZW4gICAgPSBbR3Vp ZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygpDQogICAgICAgIGRhdHVtICAgID0gJERhdHVtDQogICAg ICAgIHBlcnNvbklkID0gJFBlcnNvbklkDQogICAgICAgIHVzZXJuYW1lID0gJFVzZXJuYW1lDQog ICAgICAgIHJvbGxlICAgID0gJFJvbGxlDQogICAgICAgIGxvY2tlZEF0ID0gJE5vdw0KICAgICAg ICBsYXN0QmVhdCA9ICROb3cNCiAgICB9DQogICAgV3JpdGUtQ2VsbExvY2sgJExvY2sNCiAgICBp ZiAoJG51bGwgLW5lICRFeGlzdGluZyAtYW5kIC1ub3QgKCRFeGlzdGluZy51c2VybmFtZSAtaWVx ICRVc2VybmFtZSkpIHsNCiAgICAgICAgQWRkLUNoYW5nZUxvZ0VudHJ5ICdsb2NrX2ZvcmNlJyAk RGF0dW0gJFBlcnNvbklkICRudWxsICRVc2VybmFtZSAkUm9sbGUgQHsNCiAgICAgICAgICAgIHZl cmRyYWVuZ3QgPSAkRXhpc3RpbmcudXNlcm5hbWUNCiAgICAgICAgfQ0KICAgIH0NCiAgICByZXR1 cm4gQHsgb2sgPSAkdHJ1ZTsgbG9jayA9ICRMb2NrIH0NCn0NCg0KZnVuY3Rpb24gRmluZC1DZWxs TG9ja0J5VG9rZW4oJFRva2VuKSB7DQogICAgSW5pdGlhbGl6ZS1DZWxsTG9ja0Rpcg0KICAgIGlm IChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUb2tlbikpIHsgcmV0dXJuICRudWxsIH0N CiAgICBmb3JlYWNoICgkRiBpbiBHZXQtQ2hpbGRJdGVtIC1QYXRoICRzY3JpcHQ6Q2VsbExvY2tE aXIgLUZpbHRlciAnemVsbGVfKi5sb2NrJyAtRmlsZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250 aW51ZSkgew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgJExvY2sgPSBbU3lzdGVtLklPLkZp bGVdOjpSZWFkQWxsVGV4dCgkRi5GdWxsTmFtZSwgW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRG OCkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICBpZiAoJExvY2sudG9rZW4gLWVxICRU b2tlbikgeyByZXR1cm4gQHsgbG9jayA9ICRMb2NrOyBwYXRoID0gJEYuRnVsbE5hbWUgfSB9DQog ICAgICAgIH0gY2F0Y2gge30NCiAgICB9DQogICAgcmV0dXJuICRudWxsDQp9DQoNCmZ1bmN0aW9u IFJlZnJlc2gtQ2VsbExvY2soJFRva2VuKSB7DQogICAgJEZvdW5kID0gRmluZC1DZWxsTG9ja0J5 VG9rZW4gJFRva2VuDQogICAgaWYgKCRudWxsIC1lcSAkRm91bmQpIHsgcmV0dXJuIEB7IG9rID0g JGZhbHNlIH0gfQ0KICAgICRMb2NrID0gJEZvdW5kLmxvY2sNCiAgICAkTG9jay5sYXN0QmVhdCA9 IChHZXQtRGF0ZSkuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgIFdyaXRlLUNl bGxMb2NrICRMb2NrDQogICAgcmV0dXJuIEB7IG9rID0gJHRydWU7IGxvY2sgPSAkTG9jayB9DQp9 DQoNCmZ1bmN0aW9uIFJlbGVhc2UtQ2VsbExvY2soJFRva2VuKSB7DQogICAgJEZvdW5kID0gRmlu ZC1DZWxsTG9ja0J5VG9rZW4gJFRva2VuDQogICAgaWYgKCRudWxsIC1lcSAkRm91bmQpIHsgcmV0 dXJuIEB7IG9rID0gJGZhbHNlIH0gfQ0KICAgIHRyeSB7IFJlbW92ZS1JdGVtICRGb3VuZC5wYXRo IC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB9IGNhdGNoIHt9DQogICAgcmV0 dXJuIEB7IG9rID0gJHRydWU7IGxvY2sgPSAkRm91bmQubG9jayB9DQp9DQoNCmZ1bmN0aW9uIEdl dC1BbGxBY3RpdmVDZWxsTG9ja3Mgew0KICAgIEluaXRpYWxpemUtQ2VsbExvY2tEaXINCiAgICAk UmVzdWx0ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgZm9y ZWFjaCAoJEYgaW4gR2V0LUNoaWxkSXRlbSAtUGF0aCAkc2NyaXB0OkNlbGxMb2NrRGlyIC1GaWx0 ZXIgJ3plbGxlXyoubG9jaycgLUZpbGUgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUpIHsN CiAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICRMb2NrID0gW1N5c3RlbS5JTy5GaWxlXTo6UmVh ZEFsbFRleHQoJEYuRnVsbE5hbWUsIFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjgpIHwgQ29u dmVydEZyb20tSnNvbg0KICAgICAgICAgICAgJExhc3RCZWF0ID0gW0RhdGVUaW1lXTo6UGFyc2Uo JExvY2subGFzdEJlYXQpLlRvVW5pdmVyc2FsVGltZSgpDQogICAgICAgICAgICAkQWdlU2VjID0g KChHZXQtRGF0ZSkuVG9Vbml2ZXJzYWxUaW1lKCkgLSAkTGFzdEJlYXQpLlRvdGFsU2Vjb25kcw0K ICAgICAgICAgICAgaWYgKCRBZ2VTZWMgLWd0ICRzY3JpcHQ6Q2VsbExvY2tTdGFsZVNlYykgew0K ICAgICAgICAgICAgICAgIHRyeSB7IFJlbW92ZS1JdGVtICRGLkZ1bGxOYW1lIC1Gb3JjZSAtRXJy b3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB9IGNhdGNoIHt9DQogICAgICAgICAgICAgICAgY29u dGludWUNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIFt2b2lkXSRSZXN1bHQuQWRkKFtvcmRl cmVkXUB7DQogICAgICAgICAgICAgICAgZGF0dW0gICAgPSAkTG9jay5kYXR1bQ0KICAgICAgICAg ICAgICAgIHBlcnNvbklkID0gJExvY2sucGVyc29uSWQNCiAgICAgICAgICAgICAgICB1c2VybmFt ZSA9ICRMb2NrLnVzZXJuYW1lDQogICAgICAgICAgICAgICAgcm9sbGUgICAgPSAkTG9jay5yb2xs ZQ0KICAgICAgICAgICAgICAgIGxvY2tlZEF0ID0gJExvY2subG9ja2VkQXQNCiAgICAgICAgICAg ICAgICBsYXN0QmVhdCA9ICRMb2NrLmxhc3RCZWF0DQogICAgICAgICAgICB9KQ0KICAgICAgICB9 IGNhdGNoIHt9DQogICAgfQ0KICAgIHJldHVybiAsKFtvYmplY3RbXV0kUmVzdWx0LlRvQXJyYXko KSkNCn0NCg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBDSEFOR0UtTE9HIChJbi1NZW1vcnkt UmluZ2J1ZmZlciBmdWVyIExpdmUtU3luYy1Qb2xsaW5nLCBQaGFzZSBBNCkNCiMgQnJvd3NlciBw b2xsdCAvYXBpL3BsYW51bmcvY2hhbmdlcz9zZWl0PTxpc28tdHM+IGFsbGUgfjVzIHVuZCBtZXJn ZWQgRGVsdGFzLg0KIyBEYXRlaS1QZXJzaXN0ZW56IHVubm9ldGlnIC0gYmVpIFNlcnZlci1SZXN0 YXJ0IGxhZWQgQnJvd3NlciBlaCAvYXBpL3BsYW51bmcgbmV1Lg0KIyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KDQokc2NyaXB0OkNoYW5nZUxvZyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25z LkFycmF5TGlzdA0KJHNjcmlwdDpDaGFuZ2VMb2dNYXhTaXplID0gNTAwDQokc2NyaXB0OkNoYW5n ZUxvZ0xvY2sgPSBOZXctT2JqZWN0IE9iamVjdA0KDQpmdW5jdGlvbiBBZGQtQ2hhbmdlTG9nRW50 cnkoJEtpbmQsICREYXR1bSwgJFBlcnNvbklkLCAkTmV1ZXJXZXJ0LCAkVm9uLCAkUm9sbGUsICRF eHRyYSA9ICRudWxsKSB7DQogICAgJEVpbnRyYWcgPSBbb3JkZXJlZF1Aew0KICAgICAgICB0cyAg ICAgICA9IChHZXQtRGF0ZSkuVG9Vbml2ZXJzYWxUaW1lKCkuVG9TdHJpbmcoJ28nKQ0KICAgICAg ICBraW5kICAgICA9ICRLaW5kDQogICAgICAgIGRhdHVtICAgID0gJERhdHVtDQogICAgICAgIHBl cnNvbklkID0gJFBlcnNvbklkDQogICAgICAgIG5ldSAgICAgID0gJE5ldWVyV2VydA0KICAgICAg ICB2b24gICAgICA9ICRWb24NCiAgICAgICAgcm9sbGUgICAgPSAkUm9sbGUNCiAgICB9DQogICAg aWYgKCRFeHRyYSkgew0KICAgICAgICBmb3JlYWNoICgkSyBpbiAkRXh0cmEuS2V5cykgeyAkRWlu dHJhZ1skS10gPSAkRXh0cmFbJEtdIH0NCiAgICB9DQogICAgW1N5c3RlbS5UaHJlYWRpbmcuTW9u aXRvcl06OkVudGVyKCRzY3JpcHQ6Q2hhbmdlTG9nTG9jaykNCiAgICB0cnkgew0KICAgICAgICBb dm9pZF0kc2NyaXB0OkNoYW5nZUxvZy5BZGQoJEVpbnRyYWcpDQogICAgICAgIHdoaWxlICgkc2Ny aXB0OkNoYW5nZUxvZy5Db3VudCAtZ3QgJHNjcmlwdDpDaGFuZ2VMb2dNYXhTaXplKSB7DQogICAg ICAgICAgICAkc2NyaXB0OkNoYW5nZUxvZy5SZW1vdmVBdCgwKQ0KICAgICAgICB9DQogICAgfSBm aW5hbGx5IHsNCiAgICAgICAgW1N5c3RlbS5UaHJlYWRpbmcuTW9uaXRvcl06OkV4aXQoJHNjcmlw dDpDaGFuZ2VMb2dMb2NrKQ0KICAgIH0NCn0NCg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBQ SEFTRSBHOiBUQU1QRVItU0NIVVRaIChITUFDIHBybyBFaW50cmFnKQ0KIyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KDQokc2NyaXB0OkludGVncml0eUtleUZpbGUgPSBKb2luLVBhdGggJERhdGFEaXIg Jy5pbnRlZ3JpdHlfa2V5Jw0KJHNjcmlwdDpJbnRlZ3JpdHlLZXlDYWNoZSA9ICRudWxsDQokc2Ny aXB0OkludGVncml0eVZlcmlmeUNhY2hlID0gJG51bGwNCiRzY3JpcHQ6SW50ZWdyaXR5VmVyaWZ5 VHRsUyA9IDMwDQoNCmZ1bmN0aW9uIEdldC1JbnRlZ3JpdHlLZXkgew0KICAgIGlmICgkbnVsbCAt bmUgJHNjcmlwdDpJbnRlZ3JpdHlLZXlDYWNoZSkgeyByZXR1cm4gJHNjcmlwdDpJbnRlZ3JpdHlL ZXlDYWNoZSB9DQogICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAkc2NyaXB0OkludGVncml0eUtleUZp bGUpKSB7DQogICAgICAgICRybmcgPSBOZXctT2JqZWN0IFN5c3RlbS5TZWN1cml0eS5DcnlwdG9n cmFwaHkuUk5HQ3J5cHRvU2VydmljZVByb3ZpZGVyDQogICAgICAgICRieXRlcyA9IE5ldy1PYmpl Y3QgYnl0ZVtdIDMyDQogICAgICAgICRybmcuR2V0Qnl0ZXMoJGJ5dGVzKQ0KICAgICAgICBbU3lz dGVtLklPLkZpbGVdOjpXcml0ZUFsbFRleHQoJHNjcmlwdDpJbnRlZ3JpdHlLZXlGaWxlLCBbQ29u dmVydF06OlRvQmFzZTY0U3RyaW5nKCRieXRlcyksIFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106OkFT Q0lJKQ0KICAgIH0NCiAgICB0cnkgew0KICAgICAgICAkYjY0ID0gW1N5c3RlbS5JTy5GaWxlXTo6 UmVhZEFsbFRleHQoJHNjcmlwdDpJbnRlZ3JpdHlLZXlGaWxlLCBbU3lzdGVtLlRleHQuRW5jb2Rp bmddOjpBU0NJSSkuVHJpbSgpDQogICAgICAgICRzY3JpcHQ6SW50ZWdyaXR5S2V5Q2FjaGUgPSBb Q29udmVydF06OkZyb21CYXNlNjRTdHJpbmcoJGI2NCkNCiAgICB9IGNhdGNoIHsNCiAgICAgICAg IyBLb3JydXB0IC0+IG5ldSBlcnpldWdlbg0KICAgICAgICAkcm5nID0gTmV3LU9iamVjdCBTeXN0 ZW0uU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5LlJOR0NyeXB0b1NlcnZpY2VQcm92aWRlcg0KICAgICAg ICAkYnl0ZXMgPSBOZXctT2JqZWN0IGJ5dGVbXSAzMg0KICAgICAgICAkcm5nLkdldEJ5dGVzKCRi eXRlcykNCiAgICAgICAgW1N5c3RlbS5JTy5GaWxlXTo6V3JpdGVBbGxUZXh0KCRzY3JpcHQ6SW50 ZWdyaXR5S2V5RmlsZSwgW0NvbnZlcnRdOjpUb0Jhc2U2NFN0cmluZygkYnl0ZXMpLCBbU3lzdGVt LlRleHQuRW5jb2RpbmddOjpBU0NJSSkNCiAgICAgICAgJHNjcmlwdDpJbnRlZ3JpdHlLZXlDYWNo ZSA9ICRieXRlcw0KICAgIH0NCiAgICByZXR1cm4gJHNjcmlwdDpJbnRlZ3JpdHlLZXlDYWNoZQ0K fQ0KDQokc2NyaXB0OkhtYWNJbnN0YW5jZSA9ICRudWxsDQpmdW5jdGlvbiBDb21wdXRlLUhtYWNT dHIgew0KICAgIHBhcmFtKFtzdHJpbmdbXV0kUGFydHMpDQogICAgIyBITUFDLUluc3RhbnogbnVy IGVpbm1hbCBlcnpldWdlbiAobWFzc2l2ZSBCZXNjaGxldW5pZ3VuZyBiZWltIEJ1bGstU2lnbiku DQogICAgIyBITUFDU0hBMjU2IGlzdCBuaWNodCB0aHJlYWQtc2FmZSwgYWJlciB1bnNlciBTZXJ2 ZXIgaXN0IHNpbmdsZS10aHJlYWRlZC4NCiAgICBpZiAoJG51bGwgLWVxICRzY3JpcHQ6SG1hY0lu c3RhbmNlKSB7DQogICAgICAgICRzY3JpcHQ6SG1hY0luc3RhbmNlID0gTmV3LU9iamVjdCBTeXN0 ZW0uU2VjdXJpdHkuQ3J5cHRvZ3JhcGh5LkhNQUNTSEEyNTYNCiAgICAgICAgJHNjcmlwdDpIbWFj SW5zdGFuY2UuS2V5ID0gKEdldC1JbnRlZ3JpdHlLZXkpDQogICAgfQ0KICAgICRtc2cgPSAoJFBh cnRzIC1qb2luICd8JykNCiAgICAkYnl0ZXMgPSBbU3lzdGVtLlRleHQuRW5jb2RpbmddOjpVVEY4 LkdldEJ5dGVzKCRtc2cpDQogICAgJGhhc2ggPSAkc2NyaXB0OkhtYWNJbnN0YW5jZS5Db21wdXRl SGFzaCgkYnl0ZXMpDQogICAgcmV0dXJuIChbU3lzdGVtLkJpdENvbnZlcnRlcl06OlRvU3RyaW5n KCRoYXNoKSAtcmVwbGFjZSAnLScsICcnKS5Ub0xvd2VyKCkNCn0NCg0KZnVuY3Rpb24gQ29tcHV0 ZS1QbGFudW5nSW50ZWdyaXRhZXQoJFBsYW51bmcpIHsNCiAgICAjIFBlcmZvcm1hbmNlLU9wdGlt aWVydW5nIGZ1ZXIgUFMgNS4xOiBIYXNodGFibGVzIHN0YXR0IFBTT2JqZWN0ICsgQWRkLU1lbWJl ci4NCiAgICAjIEFkZC1NZW1iZXIgaXN0IGltIGlubmVyZW4gTG9vcCBzaWduaWZpa2FudCBsYW5n c2FtZXIgKE8obl4yKS1hZWhubGljaCkuDQogICAgIyBBbSBFbmRlIGVpbm1hbGlnIHZpYSBDb252 ZXJ0VG8tSnNvbiArIENvbnZlcnRGcm9tLUpzb24genUgUFNPYmplY3QgLSBkaWVzZQ0KICAgICMg Lk5FVC1pbnRlcm5hbCBLb252ZXJ0aWVydW5nIGlzdCBkZXV0bGljaCBzY2huZWxsZXIgYWxzIEFk ZC1NZW1iZXItTG9vcHMuDQogICAgJG91dCA9IEB7DQogICAgICAgIGVpbnRyYWVnZSAgPSBAe30N CiAgICAgICAgcGZsaWNodCAgICA9IEB7fQ0KICAgICAgICBrb21tZW50YXJlID0gQHt9DQogICAg ICAgIGRzbSAgICAgICAgPSBAe30NCiAgICB9DQogICAgaWYgKCRQbGFudW5nLlBTT2JqZWN0LlBy b3BlcnRpZXNbJ2VpbnRyYWVnZSddKSB7DQogICAgICAgIGZvcmVhY2ggKCRkIGluICRQbGFudW5n LmVpbnRyYWVnZS5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAkZGF0dW0gPSAk ZC5OYW1lDQogICAgICAgICAgICAkcGVyT2JqID0gQHt9DQogICAgICAgICAgICBmb3JlYWNoICgk cCBpbiAkZC5WYWx1ZS5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgJHBl ck9ialskcC5OYW1lXSA9IENvbXB1dGUtSG1hY1N0ciBAKCd6ZWxsZScsICRkYXR1bSwgJHAuTmFt ZSwgW3N0cmluZ10kcC5WYWx1ZSkNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRvdXQuZWlu dHJhZWdlWyRkYXR1bV0gPSAkcGVyT2JqDQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKCRQbGFu dW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BmbGljaHQnXSkgew0KICAgICAgICBmb3JlYWNoICgk ZCBpbiAkUGxhbnVuZy5wZmxpY2h0LlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAg ICRkYXR1bSA9ICRkLk5hbWUNCiAgICAgICAgICAgICRwZXJPYmogPSBAe30NCiAgICAgICAgICAg IGZvcmVhY2ggKCRwIGluICRkLlZhbHVlLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAg ICAgICAgICBpZiAoW2Jvb2xdJHAuVmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgJHBlck9i alskcC5OYW1lXSA9IENvbXB1dGUtSG1hY1N0ciBAKCdwZmxpY2h0JywgJGRhdHVtLCAkcC5OYW1l LCAnMScpDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJG91 dC5wZmxpY2h0WyRkYXR1bV0gPSAkcGVyT2JqDQogICAgICAgIH0NCiAgICB9DQogICAgaWYgKCRQ bGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2tvbW1lbnRhcmUnXSkgew0KICAgICAgICBmb3Jl YWNoICgkZCBpbiAkUGxhbnVuZy5rb21tZW50YXJlLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAg ICAgICAgICAgICRkYXR1bSA9ICRkLk5hbWUNCiAgICAgICAgICAgICRwZXJPYmogPSBAe30NCiAg ICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRkLlZhbHVlLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsN CiAgICAgICAgICAgICAgICAkdmFsID0gJHAuVmFsdWUNCiAgICAgICAgICAgICAgICAkdHh0ID0g aWYgKCR2YWwgLWlzIFtzdHJpbmddKSB7IFtzdHJpbmddJHZhbCB9IGVsc2VpZiAoJHZhbC5QU09i amVjdC5Qcm9wZXJ0aWVzWyd0ZXh0J10pIHsgW3N0cmluZ10kdmFsLnRleHQgfSBlbHNlIHsgJycg fQ0KICAgICAgICAgICAgICAgIGlmICgkdHh0KSB7DQogICAgICAgICAgICAgICAgICAgICRwZXJP YmpbJHAuTmFtZV0gPSBDb21wdXRlLUhtYWNTdHIgQCgna29tbWVudGFyJywgJGRhdHVtLCAkcC5O YW1lLCAkdHh0KQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICRvdXQua29tbWVudGFyZVskZGF0dW1dID0gJHBlck9iag0KICAgICAgICB9DQogICAgfQ0KICAg IGlmICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydkc20nXSkgew0KICAgICAgICBmb3Jl YWNoICgkZCBpbiAkUGxhbnVuZy5kc20uUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAg ICAgaWYgKFtib29sXSRkLlZhbHVlKSB7DQogICAgICAgICAgICAgICAgJG91dC5kc21bJGQuTmFt ZV0gPSBDb21wdXRlLUhtYWNTdHIgQCgnZHNtJywgJGQuTmFtZSwgJzEnKQ0KICAgICAgICAgICAg fQ0KICAgICAgICB9DQogICAgfQ0KICAgICMgSGFzaHRhYmxlIC0+IFBTQ3VzdG9tT2JqZWN0IHZp YSBKU09OLVJvdW5kLVRyaXAgKG1hc3NpdiBzY2huZWxsZXIgYWxzIEFkZC1NZW1iZXIpLg0KICAg IHJldHVybiAoJG91dCB8IENvbnZlcnRUby1Kc29uIC1EZXB0aCAxMCAtQ29tcHJlc3MgfCBDb252 ZXJ0RnJvbS1Kc29uKQ0KfQ0KDQojIFNjaHJlaWJ0IHBsYW51bmcuanNvbiBtaXQgYWt0dWFsaXNp ZXJ0ZW4gSE1BQ3MuDQojICRCZXRyb2ZmZW5lID0gJG51bGwgIC0+IEFMTEUgSE1BQ3MgbmV1IChC dWxrOiBSZXNldC9EdW1teS9SZXN0b3JlKQ0KIyAkQmV0cm9mZmVuZSA9IExpc3RlICAtPiBOVVIg ZGllIGdlbmFubnRlbiBITUFDcyBha3R1YWxpc2llcmVuDQojIEZvcm1hdDogQCggQHtraW5kPSdl aW50cmFlZ2UnO2RhdHVtPScuLi4nO3BlcnNvbklkPScuLi4nfSwgLi4uICkNCmZ1bmN0aW9uIFdy aXRlLVBsYW51bmdNaXRJbnRlZ3JpdGFldCgkUGxhbnVuZywgJEJldHJvZmZlbmUgPSAkbnVsbCkg ew0KICAgIGlmICgkbnVsbCAtZXEgJEJldHJvZmZlbmUpIHsNCiAgICAgICAgJFBsYW51bmcgfCBB ZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnX2ludGVncml0YWV0JyAt VmFsdWUgKENvbXB1dGUtUGxhbnVuZ0ludGVncml0YWV0ICRQbGFudW5nKSAtRm9yY2UNCiAgICB9 IGVsc2Ugew0KICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydf aW50ZWdyaXRhZXQnXSkgew0KICAgICAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVyIC1NZW1i ZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnX2ludGVncml0YWV0JyAtVmFsdWUgKFtQU0N1c3Rv bU9iamVjdF1bb3JkZXJlZF1Aew0KICAgICAgICAgICAgICAgIGVpbnRyYWVnZSA9IE5ldy1PYmpl Y3QgUFNPYmplY3Q7IHBmbGljaHQgPSBOZXctT2JqZWN0IFBTT2JqZWN0DQogICAgICAgICAgICAg ICAga29tbWVudGFyZSA9IE5ldy1PYmplY3QgUFNPYmplY3Q7IGRzbSA9IE5ldy1PYmplY3QgUFNP YmplY3QNCiAgICAgICAgICAgIH0pDQogICAgICAgIH0NCiAgICAgICAgJGludGVnID0gJFBsYW51 bmcuX2ludGVncml0YWV0DQogICAgICAgIGZvcmVhY2ggKCRyZWYgaW4gJEJldHJvZmZlbmUpIHsN CiAgICAgICAgICAgICRraW5kID0gW3N0cmluZ10kcmVmLmtpbmQNCiAgICAgICAgICAgICRkYXR1 bSA9IFtzdHJpbmddJHJlZi5kYXR1bQ0KICAgICAgICAgICAgJHBlcnNJZCA9IFtzdHJpbmddJHJl Zi5wZXJzb25JZA0KICAgICAgICAgICAgaWYgKC1ub3QgJGludGVnLlBTT2JqZWN0LlByb3BlcnRp ZXNbJGtpbmRdKSB7DQogICAgICAgICAgICAgICAgJGludGVnIHwgQWRkLU1lbWJlciAtTWVtYmVy VHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJGtpbmQgLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0 KQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJGtpbmRPYmogPSAkaW50ZWcuJGtpbmQNCiAg ICAgICAgICAgIGlmICgka2luZCAtZXEgJ2VpbnRyYWVnZScpIHsNCiAgICAgICAgICAgICAgICAk d2VydCA9ICcnDQogICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRp ZXNbJ2VpbnRyYWVnZSddIC1hbmQgJFBsYW51bmcuZWludHJhZWdlLlBTT2JqZWN0LlByb3BlcnRp ZXNbJGRhdHVtXSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcuZWludHJhZWdl LiRkYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJzSWRdKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAkd2VydCA9IFtzdHJpbmddJFBsYW51bmcuZWludHJhZWdlLiRkYXR1bS4kcGVyc0lk DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgaWYgKCR3ZXJ0KSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRraW5kT2JqLlBT T2JqZWN0LlByb3BlcnRpZXNbJGRhdHVtXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGtp bmRPYmogfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkZGF0dW0g LVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICRoID0gQ29tcHV0ZS1IbWFjU3RyIEAoJ3plbGxlJywgJGRhdHVtLCAk cGVyc0lkLCAkd2VydCkNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRraW5kT2JqLiRkYXR1bS5Q U09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJzSWRdKSB7ICRraW5kT2JqLiRkYXR1bS4kcGVyc0lkID0g JGggfQ0KICAgICAgICAgICAgICAgICAgICBlbHNlIHsgJGtpbmRPYmouJGRhdHVtIHwgQWRkLU1l bWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJHBlcnNJZCAtVmFsdWUgJGggfQ0K ICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgka2luZE9i ai5QU09iamVjdC5Qcm9wZXJ0aWVzWyRkYXR1bV0gLWFuZCAka2luZE9iai4kZGF0dW0uUFNPYmpl Y3QuUHJvcGVydGllc1skcGVyc0lkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGtpbmRP YmouJGRhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCRwZXJzSWQpDQogICAgICAgICAg ICAgICAgICAgICAgICBpZiAoQCgka2luZE9iai4kZGF0dW0uUFNPYmplY3QuUHJvcGVydGllcyku Q291bnQgLWVxIDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAka2luZE9iai5QU09i amVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgkZGF0dW0pDQogICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9 IGVsc2VpZiAoJGtpbmQgLWVxICdwZmxpY2h0Jykgew0KICAgICAgICAgICAgICAgICRmbGFnID0g JGZhbHNlDQogICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNb J3BmbGljaHQnXSAtYW5kICRQbGFudW5nLnBmbGljaHQuUFNPYmplY3QuUHJvcGVydGllc1skZGF0 dW1dKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5wZmxpY2h0LiRkYXR1bS5Q U09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJzSWRdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAk ZmxhZyA9IFtib29sXSRQbGFudW5nLnBmbGljaHQuJGRhdHVtLiRwZXJzSWQNCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJGZsYWcp IHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJGtpbmRPYmouUFNPYmplY3QuUHJvcGVy dGllc1skZGF0dW1dKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAka2luZE9iaiB8IEFkZC1N ZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICRkYXR1bSAtVmFsdWUgKE5ldy1P YmplY3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg ICAgJGggPSBDb21wdXRlLUhtYWNTdHIgQCgncGZsaWNodCcsICRkYXR1bSwgJHBlcnNJZCwgJzEn KQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJGtpbmRPYmouJGRhdHVtLlBTT2JqZWN0LlByb3Bl cnRpZXNbJHBlcnNJZF0pIHsgJGtpbmRPYmouJGRhdHVtLiRwZXJzSWQgPSAkaCB9DQogICAgICAg ICAgICAgICAgICAgIGVsc2UgeyAka2luZE9iai4kZGF0dW0gfCBBZGQtTWVtYmVyIC1NZW1iZXJU eXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkcGVyc0lkIC1WYWx1ZSAkaCB9DQogICAgICAgICAgICAg ICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRraW5kT2JqLlBTT2JqZWN0LlBy b3BlcnRpZXNbJGRhdHVtXSAtYW5kICRraW5kT2JqLiRkYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVz WyRwZXJzSWRdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAka2luZE9iai4kZGF0dW0uUFNP YmplY3QuUHJvcGVydGllcy5SZW1vdmUoJHBlcnNJZCkNCiAgICAgICAgICAgICAgICAgICAgICAg IGlmIChAKCRraW5kT2JqLiRkYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzKS5Db3VudCAtZXEgMCkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRraW5kT2JqLlBTT2JqZWN0LlByb3BlcnRp ZXMuUmVtb3ZlKCRkYXR1bSkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZWlmICgka2lu ZCAtZXEgJ2tvbW1lbnRhcmUnKSB7DQogICAgICAgICAgICAgICAgJHR4dCA9ICcnDQogICAgICAg ICAgICAgICAgaWYgKCRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2tvbW1lbnRhcmUnXSAt YW5kICRQbGFudW5nLmtvbW1lbnRhcmUuUFNPYmplY3QuUHJvcGVydGllc1skZGF0dW1dKSB7DQog ICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5rb21tZW50YXJlLiRkYXR1bS5QU09iamVj dC5Qcm9wZXJ0aWVzWyRwZXJzSWRdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkdmFsID0g JFBsYW51bmcua29tbWVudGFyZS4kZGF0dW0uJHBlcnNJZA0KICAgICAgICAgICAgICAgICAgICAg ICAgIyBCYWNrd2FyZC1Db21wYXQ6IFN0cmluZyBvZGVyIHt0ZXh0LC4uLn0NCiAgICAgICAgICAg ICAgICAgICAgICAgICR0eHQgPSBpZiAoJHZhbCAtaXMgW3N0cmluZ10pIHsgW3N0cmluZ10kdmFs IH0gZWxzZWlmICgkdmFsLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3RleHQnXSkgeyBbc3RyaW5nXSR2 YWwudGV4dCB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgaWYgKCR0eHQpIHsNCiAgICAgICAgICAgICAgICAgICAg aWYgKC1ub3QgJGtpbmRPYmouUFNPYmplY3QuUHJvcGVydGllc1skZGF0dW1dKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAka2luZE9iaiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy b3BlcnR5IC1OYW1lICRkYXR1bSAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQogICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgJGggPSBDb21wdXRlLUhtYWNTdHIg QCgna29tbWVudGFyJywgJGRhdHVtLCAkcGVyc0lkLCAkdHh0KQ0KICAgICAgICAgICAgICAgICAg ICBpZiAoJGtpbmRPYmouJGRhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJHBlcnNJZF0pIHsgJGtp bmRPYmouJGRhdHVtLiRwZXJzSWQgPSAkaCB9DQogICAgICAgICAgICAgICAgICAgIGVsc2UgeyAk a2luZE9iai4kZGF0dW0gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFt ZSAkcGVyc0lkIC1WYWx1ZSAkaCB9DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg ICAgICAgICAgICAgaWYgKCRraW5kT2JqLlBTT2JqZWN0LlByb3BlcnRpZXNbJGRhdHVtXSAtYW5k ICRraW5kT2JqLiRkYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRwZXJzSWRdKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAka2luZE9iai4kZGF0dW0uUFNPYmplY3QuUHJvcGVydGllcy5SZW1v dmUoJHBlcnNJZCkNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChAKCRraW5kT2JqLiRkYXR1 bS5QU09iamVjdC5Qcm9wZXJ0aWVzKS5Db3VudCAtZXEgMCkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRraW5kT2JqLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCRkYXR1bSkNCiAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgIH0gZWxzZWlmICgka2luZCAtZXEgJ2RzbScpIHsNCiAgICAg ICAgICAgICAgICAkZmxhZyA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5Q U09iamVjdC5Qcm9wZXJ0aWVzWydkc20nXSAtYW5kICRQbGFudW5nLmRzbS5QU09iamVjdC5Qcm9w ZXJ0aWVzWyRkYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgJGZsYWcgPSBbYm9vbF0kUGxh bnVuZy5kc20uJGRhdHVtDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgk ZmxhZykgew0KICAgICAgICAgICAgICAgICAgICAkaCA9IENvbXB1dGUtSG1hY1N0ciBAKCdkc20n LCAkZGF0dW0sICcxJykNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRraW5kT2JqLlBTT2JqZWN0 LlByb3BlcnRpZXNbJGRhdHVtXSkgeyAka2luZE9iai4kZGF0dW0gPSAkaCB9DQogICAgICAgICAg ICAgICAgICAgIGVsc2UgeyAka2luZE9iaiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy b3BlcnR5IC1OYW1lICRkYXR1bSAtVmFsdWUgJGggfQ0KICAgICAgICAgICAgICAgIH0gZWxzZSB7 DQogICAgICAgICAgICAgICAgICAgIGlmICgka2luZE9iai5QU09iamVjdC5Qcm9wZXJ0aWVzWyRk YXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRraW5kT2JqLlBTT2JqZWN0LlByb3Bl cnRpZXMuUmVtb3ZlKCRkYXR1bSkNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBXcml0ZS1Kc29uRmls ZSAncGxhbnVuZy5qc29uJyAkUGxhbnVuZw0KICAgICMgQXVkaXQtSUktMyBGNjogQ2FjaGUgaW52 YWxpZGllcmVuLCBkYW1pdCAvYXBpL2ludGVncml0YWV0L3N0YXR1cyBuaWNodA0KICAgICMgYmlz IHp1IDMwcyBsYW5nIHZlcmFsdGV0ZSBWZXJsZXR6dW5ncy1Db3VudHMgbGllZmVydC4NCiAgICAk c2NyaXB0OkludGVncml0eVZlcmlmeUNhY2hlID0gJG51bGwNCn0NCg0KZnVuY3Rpb24gVmVyaWZ5 LVBsYW51bmdJbnRlZ3JpdGFldCgkUGxhbnVuZykgew0KICAgIGlmICgkbnVsbCAtZXEgJFBsYW51 bmcpIHsgcmV0dXJuIEAoKSB9DQogICAgaWYgKC1ub3QgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVy dGllc1snX2ludGVncml0YWV0J10pIHsNCiAgICAgICAgcmV0dXJuIEAoW1BTQ3VzdG9tT2JqZWN0 XUB7DQogICAgICAgICAgICBraW5kID0gJ21pZ3JhdGlvbicNCiAgICAgICAgICAgIG1lbGR1bmcg PSAncGxhbnVuZy5qc29uIGhhdCBub2NoIGtlaW5lIEhNQUMtU2lnbmF0dXIuIFN1cGVyVXNlciBi aXR0ZSAiSW50ZWdyaXRhZXQgbmV1IHNpZ25pZXJlbiIgYXVzZnVlaHJlbi4nDQogICAgICAgIH0p DQogICAgfQ0KICAgICRzb2xsID0gQ29tcHV0ZS1QbGFudW5nSW50ZWdyaXRhZXQgJFBsYW51bmcN CiAgICAkaXN0ID0gJFBsYW51bmcuX2ludGVncml0YWV0DQogICAgJHZlcmxldHp1bmdlbiA9IE5l dy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAgIGZvcmVhY2ggKCRraW5k IGluIEAoJ2VpbnRyYWVnZScsJ3BmbGljaHQnLCdrb21tZW50YXJlJywnZHNtJykpIHsNCiAgICAg ICAgJGlzdEtpbmQgID0gaWYgKCRpc3QuUFNPYmplY3QuUHJvcGVydGllc1ska2luZF0pICB7ICRp c3QuJGtpbmQgfSAgZWxzZSB7IE5ldy1PYmplY3QgUFNPYmplY3QgfQ0KICAgICAgICAkc29sbEtp bmQgPSBpZiAoJHNvbGwuUFNPYmplY3QuUHJvcGVydGllc1ska2luZF0pIHsgJHNvbGwuJGtpbmQg fSBlbHNlIHsgTmV3LU9iamVjdCBQU09iamVjdCB9DQogICAgICAgIGlmICgka2luZCAtZXEgJ2Rz bScpIHsNCiAgICAgICAgICAgIGZvcmVhY2ggKCRwIGluICRzb2xsS2luZC5QU09iamVjdC5Qcm9w ZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgJGlzdFYgPSBpZiAoJGlzdEtpbmQuUFNPYmplY3Qu UHJvcGVydGllc1skcC5OYW1lXSkgeyBbc3RyaW5nXSRpc3RLaW5kLigkcC5OYW1lKSB9IGVsc2Ug eyAkbnVsbCB9DQogICAgICAgICAgICAgICAgaWYgKCRpc3RWIC1uZSBbc3RyaW5nXSRwLlZhbHVl KSB7DQogICAgICAgICAgICAgICAgICAgIFt2b2lkXSR2ZXJsZXR6dW5nZW4uQWRkKFtQU0N1c3Rv bU9iamVjdF1AeyBraW5kID0gJGtpbmQ7IGRhdHVtID0gJHAuTmFtZTsgZXJ3YXJ0ZXQgPSBbc3Ry aW5nXSRwLlZhbHVlOyBnZWZ1bmRlbiA9ICRpc3RWIH0pDQogICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJGlzdEtpbmQuUFNPYmplY3Qu UHJvcGVydGllcykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90ICRzb2xsS2luZC5QU09iamVj dC5Qcm9wZXJ0aWVzWyRwLk5hbWVdKSB7DQogICAgICAgICAgICAgICAgICAgIFt2b2lkXSR2ZXJs ZXR6dW5nZW4uQWRkKFtQU0N1c3RvbU9iamVjdF1AeyBraW5kID0gJGtpbmQ7IGRhdHVtID0gJHAu TmFtZTsgZXJ3YXJ0ZXQgPSAkbnVsbDsgZ2VmdW5kZW4gPSBbc3RyaW5nXSRwLlZhbHVlOyBtZWxk dW5nID0gJ3ZlcndhaXN0ZXIgSE1BQycgfSkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICB9DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBmb3JlYWNoICgkZCBpbiAkc29sbEtp bmQuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAgICRpc3RQZXIgPSBpZiAo JGlzdEtpbmQuUFNPYmplY3QuUHJvcGVydGllc1skZC5OYW1lXSkgeyAkaXN0S2luZC4oJGQuTmFt ZSkgfSBlbHNlIHsgTmV3LU9iamVjdCBQU09iamVjdCB9DQogICAgICAgICAgICAgICAgZm9yZWFj aCAoJHAgaW4gJGQuVmFsdWUuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAg ICAgICAkaXN0ViA9IGlmICgkaXN0UGVyLlBTT2JqZWN0LlByb3BlcnRpZXNbJHAuTmFtZV0pIHsg W3N0cmluZ10kaXN0UGVyLigkcC5OYW1lKSB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAg ICAgICAgIGlmICgkaXN0ViAtbmUgW3N0cmluZ10kcC5WYWx1ZSkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgW3ZvaWRdJHZlcmxldHp1bmdlbi5BZGQoW1BTQ3VzdG9tT2JqZWN0XUB7IGtpbmQg PSAka2luZDsgZGF0dW0gPSAkZC5OYW1lOyBwZXJzb25JZCA9ICRwLk5hbWU7IGVyd2FydGV0ID0g W3N0cmluZ10kcC5WYWx1ZTsgZ2VmdW5kZW4gPSAkaXN0ViB9KQ0KICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZm9yZWFj aCAoJGQgaW4gJGlzdEtpbmQuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAg ICRzb2xsUGVyID0gaWYgKCRzb2xsS2luZC5QU09iamVjdC5Qcm9wZXJ0aWVzWyRkLk5hbWVdKSB7 ICRzb2xsS2luZC4oJGQuTmFtZSkgfSBlbHNlIHsgTmV3LU9iamVjdCBQU09iamVjdCB9DQogICAg ICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJGQuVmFsdWUuUFNPYmplY3QuUHJvcGVydGllcykg ew0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkc29sbFBlci5QU09iamVjdC5Qcm9wZXJ0 aWVzWyRwLk5hbWVdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kdmVybGV0enVu Z2VuLkFkZChbUFNDdXN0b21PYmplY3RdQHsga2luZCA9ICRraW5kOyBkYXR1bSA9ICRkLk5hbWU7 IHBlcnNvbklkID0gJHAuTmFtZTsgZXJ3YXJ0ZXQgPSAkbnVsbDsgZ2VmdW5kZW4gPSBbc3RyaW5n XSRwLlZhbHVlOyBtZWxkdW5nID0gJ3ZlcndhaXN0ZXIgSE1BQycgfSkNCiAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAg IH0NCiAgICByZXR1cm4gLChbb2JqZWN0W11dJHZlcmxldHp1bmdlbi5Ub0FycmF5KCkpDQp9DQoN CmZ1bmN0aW9uIEludm9rZS1JbnRlZ3JpdGFldFBydWVmdW5nKFtib29sXSRGb3JjZSA9ICRmYWxz ZSkgew0KICAgICRub3cgPSAoR2V0LURhdGUpLlRvVW5pdmVyc2FsVGltZSgpDQogICAgaWYgKC1u b3QgJEZvcmNlIC1hbmQgJG51bGwgLW5lICRzY3JpcHQ6SW50ZWdyaXR5VmVyaWZ5Q2FjaGUpIHsN CiAgICAgICAgJGNhY2hlVHMgPSAkc2NyaXB0OkludGVncml0eVZlcmlmeUNhY2hlLnRzDQogICAg ICAgIGlmICgoJG5vdyAtICRjYWNoZVRzKS5Ub3RhbFNlY29uZHMgLWx0ICRzY3JpcHQ6SW50ZWdy aXR5VmVyaWZ5VHRsUykgew0KICAgICAgICAgICAgcmV0dXJuICRzY3JpcHQ6SW50ZWdyaXR5VmVy aWZ5Q2FjaGUuZXJnZWJuaXMNCiAgICAgICAgfQ0KICAgIH0NCiAgICAkUGxhbnVuZyA9IFJlYWQt SnNvbkZpbGUgJ3BsYW51bmcuanNvbicNCiAgICAkdmVybGV0enVuZ2VuID0gQCgpDQogICAgaWYg KCRudWxsIC1uZSAkUGxhbnVuZykgew0KICAgICAgICAkdmVybGV0enVuZ2VuID0gVmVyaWZ5LVBs YW51bmdJbnRlZ3JpdGFldCAkUGxhbnVuZw0KICAgIH0NCiAgICAkZXJnZWJuaXMgPSBbb3JkZXJl ZF1Aew0KICAgICAgICBvayAgICAgICAgICAgICAgICA9IChAKCR2ZXJsZXR6dW5nZW4pLkNvdW50 IC1lcSAwKQ0KICAgICAgICBsZXR6dGVWZXJpZmlrYXRpb24gPSAkbm93LlRvU3RyaW5nKCdvJykN CiAgICAgICAgdmVybGV0enVuZ2VuICAgICAgPSAkdmVybGV0enVuZ2VuDQogICAgICAgIGFuemFo bCAgICAgICAgICAgID0gQCgkdmVybGV0enVuZ2VuKS5Db3VudA0KICAgIH0NCiAgICAkc2NyaXB0 OkludGVncml0eVZlcmlmeUNhY2hlID0gQHsgdHMgPSAkbm93OyBlcmdlYm5pcyA9ICRlcmdlYm5p cyB9DQogICAgaWYgKEAoJHZlcmxldHp1bmdlbikuQ291bnQgLWd0IDAgLWFuZCAoJHZlcmxldHp1 bmdlblswXS5raW5kIC1uZSAnbWlncmF0aW9uJykpIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAg ICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ21hbmlwdWxhdGlvbi5lcmthbm50JyBAew0KICAgICAgICAg ICAgICAgIGFuemFobCA9IEAoJHZlcmxldHp1bmdlbikuQ291bnQNCiAgICAgICAgICAgICAgICBi ZWlzcGllbCA9ICR2ZXJsZXR6dW5nZW5bMF0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSBjYXRj aCB7fQ0KICAgICAgICB0cnkgeyBTZW5kLUludGVncml0YWV0c0FsYXJtICR2ZXJsZXR6dW5nZW4g fSBjYXRjaCB7fQ0KICAgIH0NCiAgICByZXR1cm4gJGVyZ2VibmlzDQp9DQoNCmZ1bmN0aW9uIFNl bmQtSW50ZWdyaXRhZXRzQWxhcm0oJFZlcmxldHp1bmdlbikgew0KICAgICRBZG1pbiA9IFJlYWQt SnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgaWYgKCRudWxsIC1lcSAkQWRtaW4pIHsgcmV0dXJu IH0NCiAgICAkRW1wZmFlbmdlciA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5 TGlzdA0KICAgIGZvcmVhY2ggKCRuYW1lIGluIEAoJ3N1cGVyVXNlcicsJ2ZhY2hhdWZzaWNodGVu JykpIHsNCiAgICAgICAgaWYgKCRBZG1pbi5QU09iamVjdC5Qcm9wZXJ0aWVzWyRuYW1lXSkgew0K ICAgICAgICAgICAgZm9yZWFjaCAoJGUgaW4gQCgkQWRtaW4uJG5hbWUpKSB7DQogICAgICAgICAg ICAgICAgJG1haWwgPSBpZiAoJGUuUFNPYmplY3QgLWFuZCAkZS5QU09iamVjdC5Qcm9wZXJ0aWVz WydlbWFpbCddKSB7IFtzdHJpbmddJGUuZW1haWwgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAg ICAgIGlmICgkbWFpbCkgew0KICAgICAgICAgICAgICAgICAgICBbdm9pZF0kRW1wZmFlbmdlci5B ZGQoQHsgbmFtZSA9IFtzdHJpbmddJGUubmFtZTsgZW1haWwgPSAkbWFpbCB9KQ0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBpZiAoJEVtcGZh ZW5nZXIuQ291bnQgLWVxIDApIHsgcmV0dXJuIH0NCiAgICAkYmVpc3BpZWwgPSAkVmVybGV0enVu Z2VuWzBdIHwgQ29udmVydFRvLUpzb24gLUNvbXByZXNzIC1EZXB0aCA1DQogICAgJG5hY2hyaWNo dCA9ICI8c3Ryb25nPkFjaHR1bmc6PC9zdHJvbmc+ICQoJFZlcmxldHp1bmdlbi5Db3VudCkgbW9l Z2xpY2hlIE1hbmlwdWxhdGlvbihlbikgaW4gZGVyIFNjaGljaHRwbGFudW5nIGVya2FubnQuPGJy Pjxicj5FcnN0ZXMgQmVpc3BpZWw6IDxjb2RlPiRiZWlzcGllbDwvY29kZT48YnI+PGJyPkJpdHRl IGltIEFkbWluLVRhYiBwcnVlZmVuIHVuZCBnZ2YuIGRpZSBJbnRlZ3JpdGFldCBuZXUgc2lnbmll cmVuLiINCiAgICBmb3JlYWNoICgkZW0gaW4gJEVtcGZhZW5nZXIpIHsNCiAgICAgICAgdHJ5IHsg U2VuZC1BZW5kZXJ1bmdzTWFpbCAkZW0uZW1haWwgJGVtLm5hbWUgJ0ZMRDogTWFuaXB1bGF0aW9u IGluIGRlciBQbGFudW5nIGVya2FubnQnICRuYWNocmljaHQgfSBjYXRjaCB7fQ0KICAgIH0NCn0N Cg0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyBQSEFTRSBEOiBCYXNlbGluZS1Db21wbGlhbmNl IChXaXBlLVNjaHV0eiwgQmFja3VwLVJvdGF0aW9uLCBlcnJvcklkKQ0KIyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KDQpmdW5jdGlvbiBUZXN0LVdpcGVTY2h1dHooJEFsdGVMaXN0ZSwgJE5ldWVMaXN0 ZSwgJENvbmZpcm1SZXNldCA9ICRmYWxzZSkgew0KICAgICMgVmVyaGluZGVydCB2ZXJzZWhlbnRs aWNoZXMgTG9lc2NoZW4gZWluZXIgYmVmdWVsbHRlbiBMaXN0ZSBkdXJjaCBsZWVyZXMgUFVULg0K ICAgICMgQXVmcnVmZXIgbXVzcyBleHBsaXppdCBjb25maXJtUmVzZXQ9dHJ1ZSBtaXRnZWJlbiwg dW0gZWluZSBMaXN0ZSB6dSBsZWVyZW4uDQogICAgaWYgKEAoJE5ldWVMaXN0ZSkuQ291bnQgLWd0 IDApIHsgcmV0dXJuICR0cnVlIH0gICAjIGJlZnVlbGx0IC0+IG9rDQogICAgaWYgKEAoJEFsdGVM aXN0ZSkuQ291bnQgLWVxIDApIHsgcmV0dXJuICR0cnVlIH0gICAjIHdhciBlaCBsZWVyIC0+IG9r DQogICAgaWYgKCRDb25maXJtUmVzZXQpIHsgcmV0dXJuICR0cnVlIH0gICAgICAgICAgICAgICAj IGV4cGxpeml0IGJlc3RhZXRpZ3QgLT4gb2sNCiAgICByZXR1cm4gJGZhbHNlICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGJsb2NrDQp9DQoNCmZ1bmN0aW9uIEludm9rZS1C YWNrdXBSb3RhdGlvbigkR2xvYiwgJEJlaGFsdGVuID0gMjApIHsNCiAgICBHZXQtQ2hpbGRJdGVt IC1QYXRoICREYXRhRGlyIC1GaWx0ZXIgJEdsb2IgLUZpbGUgLUVycm9yQWN0aW9uIFNpbGVudGx5 Q29udGludWUgfA0KICAgICAgICBTb3J0LU9iamVjdCBMYXN0V3JpdGVUaW1lIC1EZXNjZW5kaW5n IHwNCiAgICAgICAgU2VsZWN0LU9iamVjdCAtU2tpcCAkQmVoYWx0ZW4gfA0KICAgICAgICBGb3JF YWNoLU9iamVjdCB7IHRyeSB7IFJlbW92ZS1JdGVtICRfLkZ1bGxOYW1lIC1Gb3JjZSAtRXJyb3JB Y3Rpb24gU2lsZW50bHlDb250aW51ZSB9IGNhdGNoIHt9IH0NCn0NCg0KZnVuY3Rpb24gTmV3LUVy cm9ySWQgeyByZXR1cm4gW0d1aWRdOjpOZXdHdWlkKCkuVG9TdHJpbmcoKSB9DQoNCmZ1bmN0aW9u IEdldC1DaGFuZ2VzU2luY2UoJElzb1RzKSB7DQogICAgW1N5c3RlbS5UaHJlYWRpbmcuTW9uaXRv cl06OkVudGVyKCRzY3JpcHQ6Q2hhbmdlTG9nTG9jaykNCiAgICB0cnkgew0KICAgICAgICBpZiAo W3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkSXNvVHMpKSB7DQogICAgICAgICAgICByZXR1 cm4gLChbb2JqZWN0W11dJHNjcmlwdDpDaGFuZ2VMb2cuVG9BcnJheSgpKQ0KICAgICAgICB9DQog ICAgICAgIHRyeSB7ICRTZWl0ID0gW0RhdGVUaW1lXTo6UGFyc2UoJElzb1RzKS5Ub1VuaXZlcnNh bFRpbWUoKSB9IGNhdGNoIHsgcmV0dXJuICwoW29iamVjdFtdXUAoKSkgfQ0KICAgICAgICAkT3V0 ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgIGZvcmVh Y2ggKCRFIGluICRzY3JpcHQ6Q2hhbmdlTG9nKSB7DQogICAgICAgICAgICB0cnkgew0KICAgICAg ICAgICAgICAgICRUID0gW0RhdGVUaW1lXTo6UGFyc2UoJEUudHMpLlRvVW5pdmVyc2FsVGltZSgp DQogICAgICAgICAgICAgICAgaWYgKCRUIC1ndCAkU2VpdCkgeyBbdm9pZF0kT3V0LkFkZCgkRSkg fQ0KICAgICAgICAgICAgfSBjYXRjaCB7fQ0KICAgICAgICB9DQogICAgICAgIHJldHVybiAsKFtv YmplY3RbXV0kT3V0LlRvQXJyYXkoKSkNCiAgICB9IGZpbmFsbHkgew0KICAgICAgICBbU3lzdGVt LlRocmVhZGluZy5Nb25pdG9yXTo6RXhpdCgkc2NyaXB0OkNoYW5nZUxvZ0xvY2spDQogICAgfQ0K fQ0KDQojIE5vdGZhbGwtU3VwZXJVc2VyOiBkaWVzZSBLZW5udW5nZW4gc2luZCBJTU1FUiBTdXBl clVzZXIsIGVnYWwgd2FzIGluDQojIGFkbWluLmpzb24gc3RlaHQuIFNjaHVldHp0IGRhdm9yLCBz aWNoIHNlbGJzdCB2ZXJzZWhlbnRsaWNoIGF1cyBkZXINCiMgU3VwZXJVc2VyLUxpc3RlIHJhdXN6 dW5laG1lbiAob2RlciBkdXJjaCBrYXB1dHRlIGFkbWluLmpzb24gYXVzenVzcGVycmVuKS4NCiRz Y3JpcHQ6Tm90ZmFsbFN1cGVyVXNlciA9IEAoJ05XMDUzNjA5JywgJ3JoaW5vJykNCg0KZnVuY3Rp b24gR2V0LVBlcnNvbmVuS2VubnVuZ2VuTWl0RnVua3Rpb24oW3N0cmluZ1tdXSRGdW5rdGlvbmVu KSB7DQogICAgJG91dCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuSGFz aFNldFtzdHJpbmddDQogICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24n DQogICAgaWYgKCRudWxsIC1lcSAkUGxhbnVuZyAtb3IgJG51bGwgLWVxICRQbGFudW5nLnBlcnNv bmVuKSB7IHJldHVybiAkb3V0IH0NCiAgICAkZnVua1NldCA9IEB7fQ0KICAgIGZvcmVhY2ggKCRm IGluICRGdW5rdGlvbmVuKSB7ICRmdW5rU2V0WyRmLlRvTG93ZXIoKV0gPSAkdHJ1ZSB9DQogICAg Zm9yZWFjaCAoJHAgaW4gQCgkUGxhbnVuZy5wZXJzb25lbikpIHsNCiAgICAgICAgJGFrdGl2ID0g aWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10pIHsgW2Jvb2xdJHAuYWt0aXYgfSBl bHNlIHsgJHRydWUgfQ0KICAgICAgICBpZiAoLW5vdCAkYWt0aXYpIHsgY29udGludWUgfQ0KICAg ICAgICAkZnVuayA9IGlmICgkcC5mdW5rdGlvbikgeyAoW3N0cmluZ10kcC5mdW5rdGlvbikuVG9M b3dlcigpLlRyaW0oKSB9IGVsc2UgeyAnJyB9DQogICAgICAgIGlmICgkZnVua1NldFskZnVua10p IHsNCiAgICAgICAgICAgICRrbiA9IGlmICgkcC5ud0tlbm51bmcpIHsgKFtzdHJpbmddJHAubndL ZW5udW5nKS5Ub0xvd2VyKCkuVHJpbSgpIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgIGlmICgk a24pIHsgW3ZvaWRdJG91dC5BZGQoJGtuKSB9DQogICAgICAgIH0NCiAgICB9DQogICAgcmV0dXJu ICRvdXQNCn0NCg0KZnVuY3Rpb24gVGVzdC1Jc3RTdXBlclVzZXIgew0KICAgICRVc2VyID0gJGVu djpVU0VSTkFNRQ0KICAgIGlmICgkVXNlcikgew0KICAgICAgICAkVXNlckxvd2VyID0gJFVzZXIu VG9Mb3dlcigpDQogICAgICAgICMgMSkgTm90ZmFsbC1IYXJkY29kZQ0KICAgICAgICBmb3JlYWNo ICgkayBpbiAkc2NyaXB0Ok5vdGZhbGxTdXBlclVzZXIpIHsNCiAgICAgICAgICAgIGlmICgkay5U b0xvd2VyKCkgLWVxICRVc2VyTG93ZXIpIHsgcmV0dXJuICR0cnVlIH0NCiAgICAgICAgfQ0KICAg ICAgICAjIDIpIEF1dG86IFBlcnNvbmVuIG1pdCBGdW5rdGlvbiBER0wNCiAgICAgICAgJGtlbm51 bmdlbiA9IEdldC1QZXJzb25lbktlbm51bmdlbk1pdEZ1bmt0aW9uIEAoJ0RHTCcpDQogICAgICAg ICRCZW51dHplciA9IEdldC1Ba3R1ZWxsZXJCZW51dHplcg0KICAgICAgICBmb3JlYWNoICgka24g aW4gJGtlbm51bmdlbikgew0KICAgICAgICAgICAgaWYgKCRrbiAtZXEgJFVzZXJMb3dlciAtb3Ig JGtuIC1lcSAkQmVudXR6ZXIuVG9Mb3dlcigpKSB7IHJldHVybiAkdHJ1ZSB9DQogICAgICAgIH0N CiAgICB9DQogICAgIyAzKSBFeHBsaXppdGUgYWRtaW4uc3VwZXJVc2VyW10tTGlzdGUNCiAgICAk QWRtaW4gPSBSZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0KICAgIGlmICgkbnVsbCAtZXEgJEFk bWluIC1vciAkbnVsbCAtZXEgJEFkbWluLnN1cGVyVXNlcikgeyByZXR1cm4gJGZhbHNlIH0NCiAg ICAkQmVudXR6ZXIgPSBHZXQtQWt0dWVsbGVyQmVudXR6ZXINCiAgICBmb3JlYWNoICgkU1UgaW4g QCgkQWRtaW4uc3VwZXJVc2VyKSkgew0KICAgICAgICAkS2VubnVuZyA9IFtzdHJpbmddJFNVLm53 S2VubnVuZw0KICAgICAgICBpZiAoJEtlbm51bmcgLWllcSAkZW52OlVTRVJOQU1FIC1vciAkS2Vu bnVuZyAtaWVxICRCZW51dHplcikgeyByZXR1cm4gJHRydWUgfQ0KICAgIH0NCiAgICByZXR1cm4g JGZhbHNlDQp9DQoNCmZ1bmN0aW9uIFRlc3QtSXN0QWRtaW4gew0KICAgICMgU3VwZXJVc2VyIGRh cmYgaW1tZXIgKE5vdGZhbGwtV2hpdGVsaXN0IE5XMDUzNjA5L3JoaW5vIGZhZWxsdCBuaWNodCBk dXJjaCkuDQogICAgaWYgKFRlc3QtSXN0U3VwZXJVc2VyKSB7IHJldHVybiAkdHJ1ZSB9DQogICAg IyBILjM6IGJlaSBrYXB1dHRlciAvIGZlaGxlbmRlciBhZG1pbi5qc29uIHdpcmQgZGllIFR1ZXIg TklDSFQgbWVociBhdXRvbWF0aXNjaA0KICAgICMgZ2VvZWZmbmV0LiBOb3RmYWxsLVN1cGVyVXNl ciBibGVpYnQgZGVyIGVpbnppZ2UgV2VnIHJlaW4uDQogICAgJEFkbWluID0gUmVhZC1Kc29uRmls ZSAnYWRtaW4uanNvbicNCiAgICBpZiAoJG51bGwgLWVxICRBZG1pbiAtb3IgJG51bGwgLWVxICRB ZG1pbi5hZG1pbktlbm51bmdlbikgeyByZXR1cm4gJGZhbHNlIH0NCiAgICAkQmVudXR6ZXIgPSBH ZXQtQWt0dWVsbGVyQmVudXR6ZXINCiAgICBmb3JlYWNoICgkSyBpbiAkQWRtaW4uYWRtaW5LZW5u dW5nZW4pIHsNCiAgICAgICAgaWYgKCRLIC1pZXEgJEJlbnV0emVyKSB7IHJldHVybiAkdHJ1ZSB9 DQogICAgfQ0KICAgIHJldHVybiAkZmFsc2UNCn0NCg0KIyA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K IyBFLU1BSUwtQkVOQUNIUklDSFRJR1VORw0KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQpmdW5j dGlvbiBTdHJpcC1NYWlsSGVhZGVyKFtzdHJpbmddJFdlcnQpIHsNCiAgICAjIENSL0xGIGF1cyBI ZWFkZXItV2VydGVuIGVudGZlcm5lbiAtIFNjaHV0eiB2b3IgRS1NYWlsLUhlYWRlci1JbmplY3Rp b24uDQogICAgIyAuTkVUIE1haWxBZGRyZXNzIHdpcmZ0IHp3YXIgYmVpIENSTEYsIGFiZXIgRGVm ZW5zZS1pbi1EZXB0aC4NCiAgICBpZiAoJG51bGwgLWVxICRXZXJ0KSB7IHJldHVybiAnJyB9DQog ICAgcmV0dXJuICgkV2VydCAtcmVwbGFjZSAiW1xyXG5dIiwgJyAnKS5UcmltKCkNCn0NCg0KZnVu Y3Rpb24gU2VuZC1BZW5kZXJ1bmdzTWFpbCgkRW1wZmFlbmdlckVtYWlsLCAkRW1wZmFlbmdlck5h bWUsICRCZXRyZWZmLCAkTmFjaHJpY2h0KSB7DQogICAgdHJ5IHsNCiAgICAgICAgJEFkbWluID0g UmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgaWYgKCRudWxsIC1lcSAkQWRtaW4p IHsgcmV0dXJuIH0NCiAgICAgICAgJENmZyA9ICRBZG1pbi5lbWFpbEJlbmFjaHJpY2h0aWd1bmcN CiAgICAgICAgaWYgKCRudWxsIC1lcSAkQ2ZnIC1vciAtbm90ICRDZmcuYWt0aXYpIHsgcmV0dXJu IH0NCiAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJENmZy5zbXRwU2Vy dmVyKSAtb3IgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkRW1wZmFlbmdlckVtYWlsKSkg eyByZXR1cm4gfQ0KDQogICAgICAgICRTbXRwUG9ydCAgICAgPSBpZiAoJENmZy5zbXRwUG9ydCkg eyBbaW50XSRDZmcuc210cFBvcnQgfSBlbHNlIHsgNTg3IH0NCiAgICAgICAgJEFic2VuZGVyICAg ICA9IFN0cmlwLU1haWxIZWFkZXIgKFtzdHJpbmddJENmZy5hYnNlbmRlckFkcmVzc2UpDQogICAg ICAgICRBYnNlbmRlck5hbWUgPSBTdHJpcC1NYWlsSGVhZGVyICQoaWYgKCRDZmcuYWJzZW5kZXJO YW1lKSB7IFtzdHJpbmddJENmZy5hYnNlbmRlck5hbWUgfSBlbHNlIHsgJ1BsYW51bmcnIH0pDQog ICAgICAgICRFbXBmYWVuZ2VyRW1haWwgPSBTdHJpcC1NYWlsSGVhZGVyICRFbXBmYWVuZ2VyRW1h aWwNCiAgICAgICAgJEJldHJlZmYgICAgICA9IFN0cmlwLU1haWxIZWFkZXIgJEJldHJlZmYNCg0K ICAgICAgICAkSHRtbCA9IEAiDQo8aHRtbD48Ym9keSBzdHlsZT0iZm9udC1mYW1pbHk6U2Vnb2Ug VUksQXJpYWwsc2Fucy1zZXJpZjtjb2xvcjojMkMzRTUwIj4NCjxoMyBzdHlsZT0iY29sb3I6IzJD M0U1MCI+RkxELVBsYW51bmcgJm1kYXNoOyAmQXVtbDtuZGVydW5nc21pdHRlaWx1bmc8L2gzPg0K PHA+SGFsbG8gJEVtcGZhZW5nZXJOYW1lLDwvcD4NCjxwPiROYWNocmljaHQ8L3A+DQo8cCBzdHls ZT0iY29sb3I6Izk1QTVBNjtmb250LXNpemU6MTJweDttYXJnaW4tdG9wOjI0cHgiPg0KRGllc2Ug TmFjaHJpY2h0IHd1cmRlIGF1dG9tYXRpc2NoIGdlbmVyaWVydC4gQmVpIEZyYWdlbiB3ZW5kZW4g U2llIHNpY2ggYml0dGUgYW4gZGllIERpZW5zdHBsYW51bmcuPC9wPg0KPC9ib2R5PjwvaHRtbD4N CiJADQoNCiAgICAgICAgJFNtdHAgPSBOZXctT2JqZWN0IFN5c3RlbS5OZXQuTWFpbC5TbXRwQ2xp ZW50KCRDZmcuc210cFNlcnZlciwgJFNtdHBQb3J0KQ0KICAgICAgICAkU210cC5UaW1lb3V0ID0g NTAwMCAgIyA1IFNla3VuZGVuLCBkYW1pdCBlaW4gdG90ZXIgU01UUC1TZXJ2ZXIgZGVuIFNlcnZl ciBuaWNodCBibG9ja2llcnQNCiAgICAgICAgaWYgKCRTbXRwUG9ydCAtZXEgNTg3KSB7ICRTbXRw LkVuYWJsZVNzbCA9ICR0cnVlIH0NCiAgICAgICAgJEJlbnV0emVyID0gW3N0cmluZ10kQ2ZnLnNt dHBCZW51dHplcg0KICAgICAgICAkUGFzc3dvcnQgPSBbc3RyaW5nXSRDZmcuc210cFBhc3N3b3J0 DQogICAgICAgIGlmICgkQmVudXR6ZXIgLWFuZCAkUGFzc3dvcnQpIHsNCiAgICAgICAgICAgICRT bXRwLkNyZWRlbnRpYWxzID0gTmV3LU9iamVjdCBTeXN0ZW0uTmV0Lk5ldHdvcmtDcmVkZW50aWFs KCRCZW51dHplciwgJFBhc3N3b3J0KQ0KICAgICAgICB9DQogICAgICAgICRNc2cgPSBOZXctT2Jq ZWN0IFN5c3RlbS5OZXQuTWFpbC5NYWlsTWVzc2FnZQ0KICAgICAgICAkTXNnLkZyb20gPSBOZXct T2JqZWN0IFN5c3RlbS5OZXQuTWFpbC5NYWlsQWRkcmVzcygkQWJzZW5kZXIsICRBYnNlbmRlck5h bWUpDQogICAgICAgICRNc2cuVG8uQWRkKCRFbXBmYWVuZ2VyRW1haWwpDQogICAgICAgICRNc2cu U3ViamVjdCA9ICRCZXRyZWZmDQogICAgICAgICRNc2cuQm9keSA9ICRIdG1sDQogICAgICAgICRN c2cuSXNCb2R5SHRtbCA9ICR0cnVlDQogICAgICAgICRNc2cuU3ViamVjdEVuY29kaW5nID0gW1N5 c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOA0KICAgICAgICAkTXNnLkJvZHlFbmNvZGluZyA9IFtT eXN0ZW0uVGV4dC5FbmNvZGluZ106OlVURjgNCiAgICAgICAgJFNtdHAuU2VuZCgkTXNnKQ0KICAg ICAgICBEZWJ1Zy1Mb2cgJ01BSUwnICJFLU1haWwgYW4gJEVtcGZhZW5nZXJFbWFpbCBnZXNlbmRl dCINCiAgICB9IGNhdGNoIHsNCiAgICAgICAgRGVidWctTG9nICdNQUlMJyAiRmVobGVyOiAkXyIN CiAgICB9DQp9DQoNCmZ1bmN0aW9uIE5vdGlmeS1BZW5kZXJ1bmcoJFBsYW51bmcsICRQZXJzb25J ZCwgJERhdHVtLCAkQWx0ZXJXZXJ0LCAkTmV1ZXJXZXJ0KSB7DQogICAgJFBlcnNvbiA9ICRudWxs DQogICAgZm9yZWFjaCAoJFAgaW4gJFBsYW51bmcucGVyc29uZW4pIHsNCiAgICAgICAgaWYgKFtz dHJpbmddJFAuaWQgLWVxIFtzdHJpbmddJFBlcnNvbklkKSB7ICRQZXJzb24gPSAkUDsgYnJlYWsg fQ0KICAgIH0NCiAgICBpZiAoJG51bGwgLWVxICRQZXJzb24pIHsgcmV0dXJuIH0NCiAgICAkRW1h aWwgPSBbc3RyaW5nXSRQZXJzb24uZW1haWwNCiAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hp dGVTcGFjZSgkRW1haWwpKSB7IHJldHVybiB9DQoNCiAgICB0cnkgew0KICAgICAgICAkRGF0dW1E ZSA9IFtEYXRlVGltZV06OlBhcnNlRXhhY3QoJERhdHVtLCAneXl5eS1NTS1kZCcsICRudWxsKS5U b1N0cmluZygnZGQuTU0ueXl5eScpDQogICAgfSBjYXRjaCB7DQogICAgICAgICREYXR1bURlID0g JERhdHVtDQogICAgfQ0KICAgICROYW1lID0gaWYgKCRQZXJzb24udm9ybmFtZSkgeyBbc3RyaW5n XSRQZXJzb24udm9ybmFtZSB9IGVsc2UgeyBbc3RyaW5nXSRQZXJzb24ubmFtZSB9DQogICAgJEJl dHJlZmYgPSAiRGllbnN0cGxhbmFlbmRlcnVuZyBhbSAkRGF0dW1EZSINCiAgICAkQWx0ID0gaWYg KFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJEFsdGVyV2VydCkpIHsgJyhsZWVyKScgfSBl bHNlIHsgJEFsdGVyV2VydCB9DQogICAgJE5ldSA9IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0 ZVNwYWNlKCROZXVlcldlcnQpKSB7ICcobGVlciknIH0gZWxzZSB7ICROZXVlcldlcnQgfQ0KICAg ICRCZW51dHplciA9IEdldC1Ba3R1ZWxsZXJCZW51dHplcg0KDQogICAgJE5hY2hyaWNodCA9IEAi DQpJaHIgRGllbnN0IGFtIDxzdHJvbmc+JERhdHVtRGU8L3N0cm9uZz4gd3VyZGUgZ2UmYXVtbDtu ZGVydDo8YnI+PGJyPg0KPHRhYmxlIHN0eWxlPSdib3JkZXItY29sbGFwc2U6Y29sbGFwc2UnPg0K PHRyPjx0ZCBzdHlsZT0ncGFkZGluZzo0cHggMTJweDtjb2xvcjojOTVBNUE2Jz5Wb3JoZXI6PC90 ZD48dGQgc3R5bGU9J3BhZGRpbmc6NHB4IDEycHg7Zm9udC13ZWlnaHQ6NjAwJz4kQWx0PC90ZD48 L3RyPg0KPHRyPjx0ZCBzdHlsZT0ncGFkZGluZzo0cHggMTJweDtjb2xvcjojOTVBNUE2Jz5OYWNo aGVyOjwvdGQ+PHRkIHN0eWxlPSdwYWRkaW5nOjRweCAxMnB4O2ZvbnQtd2VpZ2h0OjYwMDtjb2xv cjojQjcxQzFDJz4kTmV1PC90ZD48L3RyPg0KPC90YWJsZT48YnI+DQpHZSZhdW1sO25kZXJ0IHZv bjogPHN0cm9uZz4kQmVudXR6ZXI8L3N0cm9uZz4NCiJADQoNCiAgICAjIFN5bmNocm9uIHNlbmRl biAobWl0IDVzIFNNVFAtVGltZW91dCkuIEUtTWFpbC1CZW5hY2hyaWNodGlndW5nIGlzdCBwZXIg RGVmYXVsdA0KICAgICMgZGVha3RpdmllcnQ7IHdlbm4gYWt0aXYgdW5kIFNNVFAgYW50d29ydGV0 IGxhbmdzYW0sIGthbm4gZGFzIGRlbiBSZXF1ZXN0IGxlaWNodA0KICAgICMgdmVyem9lZ2VybiAt IGFremVwdGFiZWwgZnVlciBkaWVzZW4gTG9rYWwtU2VydmVyLg0KICAgIFNlbmQtQWVuZGVydW5n c01haWwgJEVtYWlsICROYW1lICRCZXRyZWZmICROYWNocmljaHQNCn0NCg0KIyA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KIyBQRVJTT05FTiAtIEhlbHBlcg0KIyA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K DQpmdW5jdGlvbiBHZXQtUGVyc29uZW5BcnJheSgkUGxhbnVuZykgew0KICAgIGlmICgkbnVsbCAt ZXEgJFBsYW51bmcucGVyc29uZW4pIHsgcmV0dXJuIEAoKSB9DQogICAgcmV0dXJuIEAoJFBsYW51 bmcucGVyc29uZW4pDQp9DQoNCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgU1RBVElTVElLDQoj ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQoNCmZ1bmN0aW9uIEhhbmRsZS1TdGF0aXN0aWsoJFJlc3Bv bnNlKSB7DQogICAgdHJ5IHsNCiAgICAgICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdwbGFu dW5nLmpzb24nDQogICAgICAgICRBZG1pbiA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQoN CiAgICAgICAgIyBOdXIgYWt0aXZlIEZlaWVydGFnZSB6YWVobGVuIChkZWZhdWx0IGFrdGl2PXRy dWUgd2VubiBGZWxkIGZlaGx0KSAtLSAxOjEgenUgc2VydmVyLnB5Lg0KICAgICAgICAkRmVpZXJ0 YWdlU2V0ID0gQHt9DQogICAgICAgIGlmICgkQWRtaW4gLWFuZCAkQWRtaW4uZmVpZXJ0YWdlKSB7 DQogICAgICAgICAgICBmb3JlYWNoICgkRiBpbiAkQWRtaW4uZmVpZXJ0YWdlKSB7DQogICAgICAg ICAgICAgICAgaWYgKC1ub3QgJEYgLW9yIC1ub3QgJEYuZGF0dW0pIHsgY29udGludWUgfQ0KICAg ICAgICAgICAgICAgICRha3RpdiA9ICR0cnVlDQogICAgICAgICAgICAgICAgaWYgKCRGLlBTT2Jq ZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10pIHsgJGFrdGl2ID0gW2Jvb2xdJEYuYWt0aXYgfQ0KICAg ICAgICAgICAgICAgIGlmICgkYWt0aXYpIHsgJEZlaWVydGFnZVNldFtbc3RyaW5nXSRGLmRhdHVt XSA9ICR0cnVlIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgICRTb3J0aWVy dGVEYXRlbiA9IEAoKQ0KICAgICAgICBpZiAoJFBsYW51bmcgLWFuZCAkUGxhbnVuZy5laW50cmFl Z2UpIHsNCiAgICAgICAgICAgICROYW1lcyA9IEAoJFBsYW51bmcuZWludHJhZWdlLlBTT2JqZWN0 LlByb3BlcnRpZXMgfCBGb3JFYWNoLU9iamVjdCB7ICRfLk5hbWUgfSkNCiAgICAgICAgICAgICRT b3J0aWVydGVEYXRlbiA9IEAoJE5hbWVzIHwgU29ydC1PYmplY3QpDQogICAgICAgIH0NCg0KICAg ICAgICAjIEZMRC1TY2hpY2h0Y29kZXMgKFNvdXJjZS1vZi1UcnV0aDogc2VydmVyLnB5Ol9oYW5k bGVfc3RhdGlzdGlrKToNCiAgICAgICAgIyAgIEZydWVoOiBGLCBGL0EsIEYvQiwgRi9DLCBGTCAg ICBTcGFldDogUywgUy9BLCBTL0IsIFMvQywgU0wgICAgTmFjaHQ6IE4sIE4vQSwgTi9CLCBOL0MN CiAgICAgICAgIyAgIFNEIHphZWhsdCBhbHMgRGllbnN0IChnZXNhbXQpLCBhYmVyIGtlaW5lIFNj aGljaHQtS2F0ZWdvcmllLg0KICAgICAgICAkRnJ1ZWhDb2RlcyA9IEAoJ0YnLCdGL0EnLCdGL0In LCdGL0MnLCdGTCcpDQogICAgICAgICRTcGFldENvZGVzID0gQCgnUycsJ1MvQScsJ1MvQicsJ1Mv QycsJ1NMJykNCiAgICAgICAgJE5hY2h0Q29kZXMgPSBAKCdOJywnTi9BJywnTi9CJywnTi9DJykN Cg0KICAgICAgICAkU3RhdGlzdGlrZW4gPSBAKCkNCiAgICAgICAgJFBlcnNvbmVuID0gQChHZXQt UGVyc29uZW5BcnJheSAkUGxhbnVuZykNCg0KICAgICAgICBmb3JlYWNoICgkUGVyc29uIGluICRQ ZXJzb25lbikgew0KICAgICAgICAgICAgaWYgKC1ub3QgJFBlcnNvbi5ha3RpdikgeyBjb250aW51 ZSB9DQogICAgICAgICAgICAkUGVyc0lkID0gW3N0cmluZ10kUGVyc29uLmlkDQoNCiAgICAgICAg ICAgICRmcnVlaCA9IDA7ICRzcGFldCA9IDA7ICRuYWNodCA9IDA7ICRnZXNhbXQgPSAwDQogICAg ICAgICAgICAka3JhbmsgPSAwOyAkdXJsYXViID0gMDsgJGxlaHJnYW5nID0gMDsgJHNvbmRlclUg PSAwDQogICAgICAgICAgICAkd2VUYWdlID0gMDsgJGZ0VGFnZSA9IDA7ICR2b3JGdFRhZ2UgPSAw DQogICAgICAgICAgICAka3JhbmtQZXJpb2RlbiA9IEAoKQ0KDQogICAgICAgICAgICAkS3JhbmtT dGFydCA9ICRudWxsDQogICAgICAgICAgICAkTGV0enRlcktyYW5rVGFnID0gJG51bGwNCg0KICAg ICAgICAgICAgZm9yZWFjaCAoJERhdHVtIGluICRTb3J0aWVydGVEYXRlbikgew0KICAgICAgICAg ICAgICAgICRFaW50cmFnID0gJFBsYW51bmcuZWludHJhZWdlLiREYXR1bQ0KICAgICAgICAgICAg ICAgICRIYXNQaWQgPSAkZmFsc2UNCiAgICAgICAgICAgICAgICBpZiAoJEVpbnRyYWcpIHsNCiAg ICAgICAgICAgICAgICAgICAgJEhhc1BpZCA9IFtib29sXSgkRWludHJhZy5QU09iamVjdC5Qcm9w ZXJ0aWVzLk5hbWUgLWNvbnRhaW5zICRQZXJzSWQpDQogICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgIGlmICgtbm90ICRIYXNQaWQpIHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRu dWxsIC1uZSAkS3JhbmtTdGFydCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGtyYW5rUGVy aW9kZW4gKz0gLChbUFNDdXN0b21PYmplY3RdQHsgdm9uID0gJEtyYW5rU3RhcnQ7IGJpcyA9ICRM ZXR6dGVyS3JhbmtUYWcgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICRLcmFua1N0YXJ0ID0g JG51bGwNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICBjb250aW51 ZQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICRXZXJ0ID0gW3N0cmluZ10k RWludHJhZy4kUGVyc0lkDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAg ICAgJERhdHVtT2JqID0gW0RhdGVUaW1lXTo6UGFyc2VFeGFjdCgkRGF0dW0sICd5eXl5LU1NLWRk JywgJG51bGwpDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7IGNvbnRpbnVlIH0NCg0KICAgICAg ICAgICAgICAgICREb3cgPSAkRGF0dW1PYmouRGF5T2ZXZWVrDQogICAgICAgICAgICAgICAgJElz dFdlID0gKCREb3cgLWVxIFtTeXN0ZW0uRGF5T2ZXZWVrXTo6U2F0dXJkYXkgLW9yICREb3cgLWVx IFtTeXN0ZW0uRGF5T2ZXZWVrXTo6U3VuZGF5KQ0KICAgICAgICAgICAgICAgICRJc3RGdCA9ICRG ZWllcnRhZ2VTZXQuQ29udGFpbnNLZXkoJERhdHVtKQ0KICAgICAgICAgICAgICAgICRNb3JnZW4g PSAkRGF0dW1PYmouQWRkRGF5cygxKS5Ub1N0cmluZygneXl5eS1NTS1kZCcpDQogICAgICAgICAg ICAgICAgJElzdFZvckZ0ID0gJEZlaWVydGFnZVNldC5Db250YWluc0tleSgkTW9yZ2VuKQ0KDQog ICAgICAgICAgICAgICAgJElzdEZydWVoICA9ICRGcnVlaENvZGVzIC1jb250YWlucyAkV2VydA0K ICAgICAgICAgICAgICAgICRJc3RTcGFldCAgPSAkU3BhZXRDb2RlcyAtY29udGFpbnMgJFdlcnQN CiAgICAgICAgICAgICAgICAkSXN0TmFjaHQgID0gJE5hY2h0Q29kZXMgLWNvbnRhaW5zICRXZXJ0 DQogICAgICAgICAgICAgICAgJElzdERpZW5zdCA9ICRJc3RGcnVlaCAtb3IgJElzdFNwYWV0IC1v ciAkSXN0TmFjaHQgLW9yICgkV2VydCAtZXEgJ1NEJykNCg0KICAgICAgICAgICAgICAgIGlmICAg ICAoJElzdEZydWVoKSAgICAgIHsgJGZydWVoKys7ICRnZXNhbXQrKyB9DQogICAgICAgICAgICAg ICAgZWxzZWlmICgkSXN0U3BhZXQpICAgICAgeyAkc3BhZXQrKzsgJGdlc2FtdCsrIH0NCiAgICAg ICAgICAgICAgICBlbHNlaWYgKCRJc3ROYWNodCkgICAgICB7ICRuYWNodCsrOyAkZ2VzYW10Kysg fQ0KICAgICAgICAgICAgICAgIGVsc2VpZiAoJFdlcnQgLWVxICdTRCcpIHsgJGdlc2FtdCsrIH0N Cg0KICAgICAgICAgICAgICAgIGlmICgkV2VydCAtZXEgJ0snKSB7DQogICAgICAgICAgICAgICAg ICAgICRrcmFuaysrDQogICAgICAgICAgICAgICAgICAgICRMZXR6dGVyS3JhbmtUYWcgPSAkRGF0 dW0NCiAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkS3JhbmtTdGFydCkgeyAkS3Jh bmtTdGFydCA9ICREYXR1bSB9DQogICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAg ICAgICAgICAgaWYgKCRudWxsIC1uZSAkS3JhbmtTdGFydCkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgJGtyYW5rUGVyaW9kZW4gKz0gLChbUFNDdXN0b21PYmplY3RdQHsgdm9uID0gJEtyYW5r U3RhcnQ7IGJpcyA9ICRMZXR6dGVyS3JhbmtUYWcgfSkNCiAgICAgICAgICAgICAgICAgICAgICAg ICRLcmFua1N0YXJ0ID0gJG51bGwNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJFdlcnQgLWVxICdVJykgICAgICAgICAgICAgICAg ICAgICAgIHsgJHVybGF1YisrIH0NCiAgICAgICAgICAgICAgICBpZiAoJFdlcnQgLWVxICdTVScp ICAgICAgICAgICAgICAgICAgICAgIHsgJHNvbmRlclUrKyB9DQogICAgICAgICAgICAgICAgaWYg KCRXZXJ0IC1lcSAnRkInIC1vciAkV2VydCAtZXEgJ0VaJykgICB7ICRsZWhyZ2FuZysrIH0NCg0K ICAgICAgICAgICAgICAgIGlmICgkSXN0V2UgICAgLWFuZCAkSXN0RGllbnN0KSB7ICR3ZVRhZ2Ur KyB9DQogICAgICAgICAgICAgICAgaWYgKCRJc3RGdCAgICAtYW5kICRJc3REaWVuc3QpIHsgJGZ0 VGFnZSsrIH0NCiAgICAgICAgICAgICAgICBpZiAoJElzdFZvckZ0IC1hbmQgJElzdERpZW5zdCkg eyAkdm9yRnRUYWdlKysgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgaWYgKCRudWxsIC1u ZSAkS3JhbmtTdGFydCkgew0KICAgICAgICAgICAgICAgICRrcmFua1BlcmlvZGVuICs9ICwoW1BT Q3VzdG9tT2JqZWN0XUB7IHZvbiA9ICRLcmFua1N0YXJ0OyBiaXMgPSAkTGV0enRlcktyYW5rVGFn IH0pDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICRTdGF0aXN0aWtlbiArPSBbUFNDdXN0 b21PYmplY3RdQHsNCiAgICAgICAgICAgICAgICBwZXJzb25JZCAgICAgICAgPSAkUGVyc29uLmlk DQogICAgICAgICAgICAgICAgbmFtZSAgICAgICAgICAgID0gKEdldC1QZXJzb25Wb2xsTmFtZSAk UGVyc29uKQ0KICAgICAgICAgICAgICAgIGZydWVoICAgICAgICAgICA9ICRmcnVlaA0KICAgICAg ICAgICAgICAgIHNwYWV0ICAgICAgICAgICA9ICRzcGFldA0KICAgICAgICAgICAgICAgIG5hY2h0 ICAgICAgICAgICA9ICRuYWNodA0KICAgICAgICAgICAgICAgIGdlc2FtdCAgICAgICAgICA9ICRn ZXNhbXQNCiAgICAgICAgICAgICAgICBrcmFuayAgICAgICAgICAgPSAka3JhbmsNCiAgICAgICAg ICAgICAgICB1cmxhdWIgICAgICAgICAgPSAkdXJsYXViDQogICAgICAgICAgICAgICAgbGVocmdh bmcgICAgICAgID0gJGxlaHJnYW5nDQogICAgICAgICAgICAgICAgYXpBdXNnbGVpY2ggICAgID0g MA0KICAgICAgICAgICAgICAgIHNvbmRlcnVybGF1YiAgICA9ICRzb25kZXJVDQogICAgICAgICAg ICAgICAgd29jaGVuZW5kVGFnZSAgID0gJHdlVGFnZQ0KICAgICAgICAgICAgICAgIGZlaWVydGFn VGFnZSAgICA9ICRmdFRhZ2UNCiAgICAgICAgICAgICAgICB2b3JGZWllcnRhZ1RhZ2UgPSAkdm9y RnRUYWdlDQogICAgICAgICAgICAgICAga3JhbmtQZXJpb2RlbiAgID0gJGtyYW5rUGVyaW9kZW4N CiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgICMgUFMtNS4xLVF1aXJrOiBDb252 ZXJ0VG8tSnNvbiB1bndyYXBwZWQgMC0gdW5kIDEtRWxlbWVudC1BcnJheXMuDQogICAgICAgIGlm ICgkU3RhdGlzdGlrZW4uQ291bnQgLWVxIDApIHsNCiAgICAgICAgICAgICRKc29uID0gJ1tdJw0K ICAgICAgICB9IGVsc2VpZiAoJFN0YXRpc3Rpa2VuLkNvdW50IC1lcSAxKSB7DQogICAgICAgICAg ICAkSnNvbiA9ICdbJyArIChDb252ZXJ0VG8tSnNvbiAtSW5wdXRPYmplY3QgJFN0YXRpc3Rpa2Vu WzBdIC1EZXB0aCAxNSAtQ29tcHJlc3MpICsgJ10nDQogICAgICAgIH0gZWxzZSB7DQogICAgICAg ICAgICAkSnNvbiA9IENvbnZlcnRUby1Kc29uIC1JbnB1dE9iamVjdCAkU3RhdGlzdGlrZW4gLURl cHRoIDE1IC1Db21wcmVzcw0KICAgICAgICB9DQogICAgICAgIFNlbmQtSnNvblJhdyAkUmVzcG9u c2UgJEpzb24NCiAgICAgICAgRGVidWctTG9nICdBUEknICJHRVQgL2FwaS9zdGF0aXN0aWsgLT4g JCgkU3RhdGlzdGlrZW4uQ291bnQpIFBlcnNvbmVuIg0KICAgIH0gY2F0Y2ggew0KICAgICAgICAk RGV0YWlsID0gIlN0YXRpc3Rpay1GZWhsZXI6ICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIHwgWmVp bGU6ICQoJF8uSW52b2NhdGlvbkluZm8uU2NyaXB0TGluZU51bWJlcikgfCAkKCRfLkludm9jYXRp b25JbmZvLkxpbmUuVHJpbSgpKSINCiAgICAgICAgV3JpdGUtU3RhcnR1cExvZyAkRGV0YWlsDQog ICAgICAgIFNlbmQtRXJyb3IgJFJlc3BvbnNlICREZXRhaWwgNTAwDQogICAgfQ0KfQ0KDQojID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQojIERVTU1ZREFURU4NCiMgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cg0KZnVuY3Rpb24gSGFuZGxlLUR1bW15ZGF0ZW4oJFJlc3BvbnNlKSB7DQogICAgJFBsYW51bmcg PSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQogICAgJEFkbWluID0gUmVhZC1Kc29uRmls ZSAnYWRtaW4uanNvbicNCg0KICAgICRQbGFudW5nUGF0aCA9IEpvaW4tUGF0aCAkRGF0YURpciAn cGxhbnVuZy5qc29uJw0KICAgICRUcyA9IEdldC1EYXRlIC1Gb3JtYXQgJ3l5eXlNTWRkX0hIbW1z cycNCiAgICAkQmFja3VwTmFtZSA9ICJwbGFudW5nX2JhY2t1cF92b3JfZHVtbXlfJFRzLmpzb24i DQogICAgQ29weS1JdGVtIC1QYXRoICRQbGFudW5nUGF0aCAtRGVzdGluYXRpb24gKEpvaW4tUGF0 aCAkRGF0YURpciAkQmFja3VwTmFtZSkgLUZvcmNlDQogICAgSW52b2tlLUJhY2t1cFJvdGF0aW9u ICdwbGFudW5nX2JhY2t1cF8qLmpzb24nIDIwDQoNCiAgICAkUGVyc29uZW4gPSBAKEdldC1QZXJz b25lbkFycmF5ICRQbGFudW5nIHwgV2hlcmUtT2JqZWN0IHsgJF8uYWt0aXYgfSkNCg0KICAgICRG ZWllcnRhZ2VTZXQgPSBAe30NCiAgICBpZiAoJEFkbWluIC1hbmQgJEFkbWluLmZlaWVydGFnZSkg ew0KICAgICAgICBmb3JlYWNoICgkRiBpbiAkQWRtaW4uZmVpZXJ0YWdlKSB7IGlmICgkRi5kYXR1 bSkgeyAkRmVpZXJ0YWdlU2V0W1tzdHJpbmddJEYuZGF0dW1dID0gJHRydWUgfSB9DQogICAgfQ0K DQogICAgJFZvbiA9IFtEYXRlVGltZV0nMjAyNi0wMS0wMScNCiAgICAkQmlzID0gW0RhdGVUaW1l XScyMDI2LTA2LTMwJw0KICAgICRUb3RhbERheXMgPSAoJEJpcyAtICRWb24pLkRheXMgKyAxDQoN CiAgICAkRGllbnN0Q29kZXMgPSBAKCdGLURHTCcsJ1MtREdMJywnTi1ER0wnLCdGLVdERicsJ1Mt V0RGJywnTi1XREYnLCdGLUZCUCcsJ1MtRkJQJywnTi1GQlAnKQ0KICAgICRBYndlc2VuaGVpdENv ZGVzID0gQCgnVXJsJywna3InLCdLdXInLCdMRycsJ0FaQScsJ0VUTScsJ1NlbScsJ1NEJywnQkFP JywnYWJnJywnU1UnLCdITycsJ0JWJykNCiAgICAkRnJlaUNvZGVzID0gQCgnd2ZyJywnZGZyJykN Cg0KICAgICRSbmQgPSBOZXctT2JqZWN0IFN5c3RlbS5SYW5kb20NCg0KICAgICMgUGVyc29uZW4t QmxvZWNrZSBnZW5lcmllcmVuDQogICAgJFBlcnNvbkJsb2Vja2UgPSBAe30NCiAgICAkUGVyc29u UHJhZWZlcmVueiA9IEB7fQ0KICAgIGZvcmVhY2ggKCRQIGluICRQZXJzb25lbikgew0KICAgICAg ICAkUGVyc0lkID0gW3N0cmluZ10kUC5pZA0KICAgICAgICAkQmxvZWNrZSA9IE5ldy1PYmplY3Qg U3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KDQogICAgICAgICMgMi00IFVybGF1YnNibG9l Y2tlDQogICAgICAgICROVXJsID0gJFJuZC5OZXh0KDIsIDUpDQogICAgICAgIGZvciAoJGkgPSAw OyAkaSAtbHQgJE5Vcmw7ICRpKyspIHsNCiAgICAgICAgICAgICRTdGFydCA9ICRSbmQuTmV4dCgw LCAkVG90YWxEYXlzIC0gMTQpDQogICAgICAgICAgICAkTGFlbmdlID0gJFJuZC5OZXh0KDUsIDE1 KQ0KICAgICAgICAgICAgW3ZvaWRdJEJsb2Vja2UuQWRkKEAoJFN0YXJ0LCAkTGFlbmdlLCAnVXJs JykpDQogICAgICAgIH0NCiAgICAgICAgIyA0MCUgQ2hhbmNlIGF1ZiAxLTIgS3JhbmtoZWl0c2Js b2Vja2UNCiAgICAgICAgaWYgKCRSbmQuTmV4dERvdWJsZSgpIC1sdCAwLjQwKSB7DQogICAgICAg ICAgICAkTktyID0gJFJuZC5OZXh0KDEsIDMpDQogICAgICAgICAgICBmb3IgKCRpID0gMDsgJGkg LWx0ICROS3I7ICRpKyspIHsNCiAgICAgICAgICAgICAgICAkU3RhcnQgPSAkUm5kLk5leHQoMCwg JFRvdGFsRGF5cyAtIDE1KQ0KICAgICAgICAgICAgICAgICRMYWVuZ2UgPSAkUm5kLk5leHQoMiwg MTYpDQogICAgICAgICAgICAgICAgJENvZGUgPSBpZiAoJExhZW5nZSAtZ3QgMTAgLWFuZCAkUm5k Lk5leHREb3VibGUoKSAtbHQgMC4yNSkgeyAnS3VyJyB9IGVsc2UgeyAna3InIH0NCiAgICAgICAg ICAgICAgICBbdm9pZF0kQmxvZWNrZS5BZGQoQCgkU3RhcnQsICRMYWVuZ2UsICRDb2RlKSkNCiAg ICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAjIDM1JSBDaGFuY2UgYXVmIDEtMiBMZWhy Z2FlbmdlDQogICAgICAgIGlmICgkUm5kLk5leHREb3VibGUoKSAtbHQgMC4zNSkgew0KICAgICAg ICAgICAgJE5MZyA9ICRSbmQuTmV4dCgxLCAzKQ0KICAgICAgICAgICAgZm9yICgkaSA9IDA7ICRp IC1sdCAkTkxnOyAkaSsrKSB7DQogICAgICAgICAgICAgICAgJFN0YXJ0ID0gJFJuZC5OZXh0KDEw LCAkVG90YWxEYXlzIC0gMTApDQogICAgICAgICAgICAgICAgJEQgPSAkVm9uLkFkZERheXMoJFN0 YXJ0KQ0KICAgICAgICAgICAgICAgICRXdCA9IFtpbnRdJEQuRGF5T2ZXZWVrDQogICAgICAgICAg ICAgICAgaWYgKCRXdCAtZXEgMCkgeyAkV3QgPSA3IH0gICMgU289MCAtPiA3DQogICAgICAgICAg ICAgICAgJFN0YXJ0IC09ICgkV3QgLSAxKQ0KICAgICAgICAgICAgICAgIGlmICgkU3RhcnQgLWx0 IDApIHsgJFN0YXJ0ID0gMCB9DQogICAgICAgICAgICAgICAgJExhZW5nZSA9IEAoNSw1LDUsMTAp WyRSbmQuTmV4dCgwLDQpXQ0KICAgICAgICAgICAgICAgICRDb2RlID0gQCgnTEcnLCdMRycsJ1Nl bScsJ0VUTScpWyRSbmQuTmV4dCgwLDQpXQ0KICAgICAgICAgICAgICAgIFt2b2lkXSRCbG9lY2tl LkFkZChAKCRTdGFydCwgJExhZW5nZSwgJENvZGUpKQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9 DQogICAgICAgICMgMTUlIFNvbmRlcmRpZW5zdA0KICAgICAgICBpZiAoJFJuZC5OZXh0RG91Ymxl KCkgLWx0IDAuMTUpIHsNCiAgICAgICAgICAgICRTdGFydCA9ICRSbmQuTmV4dCgyMCwgJFRvdGFs RGF5cyAtIDUpDQogICAgICAgICAgICAkTGFlbmdlID0gJFJuZC5OZXh0KDIsIDYpDQogICAgICAg ICAgICAkQ29kZSA9IEAoJ1NEJywnQkFPJylbJFJuZC5OZXh0KDAsMildDQogICAgICAgICAgICBb dm9pZF0kQmxvZWNrZS5BZGQoQCgkU3RhcnQsICRMYWVuZ2UsICRDb2RlKSkNCiAgICAgICAgfQ0K ICAgICAgICAjIDEwJSBBYm9yZG51bmcNCiAgICAgICAgaWYgKCRSbmQuTmV4dERvdWJsZSgpIC1s dCAwLjEwKSB7DQogICAgICAgICAgICAkU3RhcnQgPSAkUm5kLk5leHQoMzAsICRUb3RhbERheXMg LSAyNSkNCiAgICAgICAgICAgICRMYWVuZ2UgPSAkUm5kLk5leHQoMTAsIDIxKQ0KICAgICAgICAg ICAgW3ZvaWRdJEJsb2Vja2UuQWRkKEAoJFN0YXJ0LCAkTGFlbmdlLCAnYWJnJykpDQogICAgICAg IH0NCiAgICAgICAgIyAxMiUgU29uZGVydXJsYXViDQogICAgICAgIGlmICgkUm5kLk5leHREb3Vi bGUoKSAtbHQgMC4xMikgew0KICAgICAgICAgICAgJFN0YXJ0ID0gJFJuZC5OZXh0KDAsICRUb3Rh bERheXMgLSAzKQ0KICAgICAgICAgICAgW3ZvaWRdJEJsb2Vja2UuQWRkKEAoJFN0YXJ0LCAkUm5k Lk5leHQoMSw0KSwgJ1NVJykpDQogICAgICAgIH0NCiAgICAgICAgIyAyLTggQVpBLUVpbnplbHRh Z2UNCiAgICAgICAgJE5BemEgPSAkUm5kLk5leHQoMiwgOSkNCiAgICAgICAgZm9yICgkaSA9IDA7 ICRpIC1sdCAkTkF6YTsgJGkrKykgew0KICAgICAgICAgICAgW3ZvaWRdJEJsb2Vja2UuQWRkKEAo JFJuZC5OZXh0KDAsICRUb3RhbERheXMpLCAxLCAnQVpBJykpDQogICAgICAgIH0NCiAgICAgICAg IyAxNSUgQlYtQmVyZWl0c2NoYWZ0DQogICAgICAgIGlmICgkUm5kLk5leHREb3VibGUoKSAtbHQg MC4xNSkgew0KICAgICAgICAgICAgJFN0YXJ0ID0gJFJuZC5OZXh0KDAsICRUb3RhbERheXMgLSAz KQ0KICAgICAgICAgICAgW3ZvaWRdJEJsb2Vja2UuQWRkKEAoJFN0YXJ0LCAkUm5kLk5leHQoMSw0 KSwgJ0JWJykpDQogICAgICAgIH0NCiAgICAgICAgJFBlcnNvbkJsb2Vja2VbJFBlcnNJZF0gPSAk QmxvZWNrZQ0KDQogICAgICAgICMgU2NoaWNodHByYWVmZXJlbnoNCiAgICAgICAgIyBOYWNoIEdy dXBwZW4tUmVmYWN0b3IgKENvbW1pdCBlNTZiMTU1KSBoYWJlbiBQZXJzb25lbiBrZWluICdncnVw cGUnLQ0KICAgICAgICAjIEZlbGQgbWVociAtLSAkRyBpc3QgaW1tZXIgbGVlciwgSy9MLUJyYW5j aGVzIHNpbmQgZGVhZC1wYXRocywgamVkZXINCiAgICAgICAgIyBMYXVmIGZhZWxsdCBpbiBkZW4g ZWxzZS1CcmFuY2ggKERlZmF1bHQtREdMLU1peCkuIExhc3MtRHJpbi1WYXJpYW50ZQ0KICAgICAg ICAjIGZ1ZXIgZGVuIHNlbHRlbmVuIEZhbGwsIGRhc3MgZGVyIER1bW15LUdlbmVyYXRvciByZWFr dGl2aWVydCB3aXJkLg0KICAgICAgICAkRyA9IFtzdHJpbmddJFAuZ3J1cHBlDQogICAgICAgIGlm ICgkRyAtZXEgJ0snKSB7DQogICAgICAgICAgICAkUGVyc29uUHJhZWZlcmVuelskUGVyc0lkXSA9 IEB7DQogICAgICAgICAgICAgICAgcG9vbCA9IEAoJ0YtV0RGJywnUy1XREYnLCdGLUZCUCcsJ1Mt RkJQJywnRi1ER0wnLCdTLURHTCcsJ04tV0RGJykNCiAgICAgICAgICAgICAgICBnZXdpY2h0ZSA9 IEAoMjUsMjAsMTUsMTAsMTAsMTAsMTApDQogICAgICAgICAgICB9DQogICAgICAgIH0gZWxzZWlm ICgkRyAtZXEgJ0wnKSB7DQogICAgICAgICAgICAkUGVyc29uUHJhZWZlcmVuelskUGVyc0lkXSA9 IEB7DQogICAgICAgICAgICAgICAgcG9vbCA9IEAoJ0YtREdMJywnUy1ER0wnLCdITycsJ0YtV0RG JywnRi1GQlAnLCdTRCcpDQogICAgICAgICAgICAgICAgZ2V3aWNodGUgPSBAKDQwLDEwLDIwLDEy LDEwLDgpDQogICAgICAgICAgICB9DQogICAgICAgICAgICAjIFp1c2FldHpsaWNoZSBMZWl0dW5n cy1CbG9lY2tlDQogICAgICAgICAgICAkTlNlbSA9ICRSbmQuTmV4dCgyLCA1KQ0KICAgICAgICAg ICAgZm9yICgkaSA9IDA7ICRpIC1sdCAkTlNlbTsgJGkrKykgew0KICAgICAgICAgICAgICAgICRT dGFydCA9ICRSbmQuTmV4dCgxMCwgJFRvdGFsRGF5cyAtIDEwKQ0KICAgICAgICAgICAgICAgICRE QWRqID0gJFZvbi5BZGREYXlzKCRTdGFydCkNCiAgICAgICAgICAgICAgICAkV3QgPSBbaW50XSRE QWRqLkRheU9mV2VlazsgaWYgKCRXdCAtZXEgMCkgeyAkV3QgPSA3IH0NCiAgICAgICAgICAgICAg ICAkU3RhcnQgLT0gKCRXdCAtIDEpDQogICAgICAgICAgICAgICAgaWYgKCRTdGFydCAtbHQgMCkg eyAkU3RhcnQgPSAwIH0NCiAgICAgICAgICAgICAgICAkTGFlbmdlID0gQCgzLDUsNSlbJFJuZC5O ZXh0KDAsMyldDQogICAgICAgICAgICAgICAgJENvZGUgPSBAKCdTZW0nLCdMRycsJ1NlbScsJ0VU TScpWyRSbmQuTmV4dCgwLDQpXQ0KICAgICAgICAgICAgICAgIFt2b2lkXSRCbG9lY2tlLkFkZChA KCRTdGFydCwgJExhZW5nZSwgJENvZGUpKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgJE5E ZnIgPSAkUm5kLk5leHQoMywgNykNCiAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSAtbHQgJE5E ZnI7ICRpKyspIHsNCiAgICAgICAgICAgICAgICAkQ29kZSA9IEAoJ2RmcicsJ0FaQScsJ2Rmcicp WyRSbmQuTmV4dCgwLDMpXQ0KICAgICAgICAgICAgICAgIFt2b2lkXSRCbG9lY2tlLkFkZChAKCRS bmQuTmV4dCgwLCAkVG90YWxEYXlzKSwgMSwgJENvZGUpKQ0KICAgICAgICAgICAgfQ0KICAgICAg ICB9IGVsc2Ugew0KICAgICAgICAgICAgJFBlcnNvblByYWVmZXJlbnpbJFBlcnNJZF0gPSBAew0K ICAgICAgICAgICAgICAgIHBvb2wgPSBAKCdGLURHTCcsJ1MtREdMJywnTi1ER0wnLCdGLVdERics J1MtV0RGJywnTi1XREYnLCdGLUZCUCcsJ1MtRkJQJywnTi1GQlAnKQ0KICAgICAgICAgICAgICAg IGdld2ljaHRlID0gQCgxOCwxOCwxOCw4LDgsOCw2LDYsNikNCiAgICAgICAgICAgIH0NCiAgICAg ICAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIEdldC1HZXdpY2h0ZXQoJFBvb2wsICRHZXdpY2h0 ZSwgJFJuZCkgew0KICAgICAgICAkU3VtbWUgPSAwDQogICAgICAgIGZvcmVhY2ggKCRHIGluICRH ZXdpY2h0ZSkgeyAkU3VtbWUgKz0gJEcgfQ0KICAgICAgICAkUiA9ICRSbmQuTmV4dCgwLCAkU3Vt bWUpDQogICAgICAgICRBa2sgPSAwDQogICAgICAgIGZvciAoJGkgPSAwOyAkaSAtbHQgJFBvb2wu Q291bnQ7ICRpKyspIHsNCiAgICAgICAgICAgICRBa2sgKz0gJEdld2ljaHRlWyRpXQ0KICAgICAg ICAgICAgaWYgKCRSIC1sdCAkQWtrKSB7IHJldHVybiAkUG9vbFskaV0gfQ0KICAgICAgICB9DQog ICAgICAgIHJldHVybiAkUG9vbFswXQ0KICAgIH0NCg0KICAgICRFaW50cmFlZ2UgPSBbb3JkZXJl ZF1Ae30NCiAgICAkS29tbWVudGFyZSA9IFtvcmRlcmVkXUB7fQ0KICAgICRHZW5lcmllcnQgPSAw DQoNCiAgICBmb3IgKCREYXlPZmZzZXQgPSAwOyAkRGF5T2Zmc2V0IC1sdCAkVG90YWxEYXlzOyAk RGF5T2Zmc2V0KyspIHsNCiAgICAgICAgJFRhZyA9ICRWb24uQWRkRGF5cygkRGF5T2Zmc2V0KQ0K ICAgICAgICAkRFN0ciA9ICRUYWcuVG9TdHJpbmcoJ3l5eXktTU0tZGQnKQ0KICAgICAgICAkV3Qg PSBbaW50XSRUYWcuRGF5T2ZXZWVrICAjIDA9U28gLi4gNj1TYQ0KICAgICAgICAkSXN0V2UgPSAo JFd0IC1lcSAwIC1vciAkV3QgLWVxIDYpDQogICAgICAgICRJc3RGdCA9ICRGZWllcnRhZ2VTZXQu Q29udGFpbnNLZXkoJERTdHIpDQogICAgICAgICRFaW50cmFlZ2VbJERTdHJdID0gW29yZGVyZWRd QHt9DQoNCiAgICAgICAgZm9yZWFjaCAoJFAgaW4gJFBlcnNvbmVuKSB7DQogICAgICAgICAgICAk UGVyc0lkID0gW3N0cmluZ10kUC5pZA0KICAgICAgICAgICAgJEdydXBwZSA9IFtzdHJpbmddJFAu Z3J1cHBlDQoNCiAgICAgICAgICAgICMgMSkgQWJ3ZXNlbmhlaXRzYmxvY2s/DQogICAgICAgICAg ICAkRWludHJhZyA9ICRudWxsDQogICAgICAgICAgICBmb3JlYWNoICgkQiBpbiAkUGVyc29uQmxv ZWNrZVskUGVyc0lkXSkgew0KICAgICAgICAgICAgICAgICRCU3RhcnQgPSAkQlswXTsgJEJMYWVu Z2UgPSAkQlsxXTsgJEJDb2RlID0gJEJbMl0NCiAgICAgICAgICAgICAgICBpZiAoJERheU9mZnNl dCAtZ2UgJEJTdGFydCAtYW5kICREYXlPZmZzZXQgLWx0ICgkQlN0YXJ0ICsgJEJMYWVuZ2UpKSB7 DQogICAgICAgICAgICAgICAgICAgIGlmICgkSXN0V2UgLWFuZCAkQkNvZGUgLW5vdGluIEAoJ2ty JywnS3VyJywnVXJsJykpIHsgYnJlYWsgfQ0KICAgICAgICAgICAgICAgICAgICAkRWludHJhZyA9 ICRCQ29kZQ0KICAgICAgICAgICAgICAgICAgICBicmVhaw0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIH0NCiAgICAgICAgICAgIGlmICgkRWludHJhZykgew0KICAgICAgICAgICAgICAg ICRFaW50cmFlZ2VbJERTdHJdWyRQZXJzSWRdID0gJEVpbnRyYWcNCiAgICAgICAgICAgICAgICAk R2VuZXJpZXJ0KysNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAjIDIpIFdvY2hlbmVuZGUgLyBGZWllcnRhZw0KICAgICAgICAgICAgaWYgKCRJ c3RXZSAtb3IgJElzdEZ0KSB7DQogICAgICAgICAgICAgICAgaWYgKCRSbmQuTmV4dERvdWJsZSgp IC1sdCAwLjMwKSB7DQogICAgICAgICAgICAgICAgICAgICRQcmVmID0gJFBlcnNvblByYWVmZXJl bnpbJFBlcnNJZF0NCiAgICAgICAgICAgICAgICAgICAgJEVpbnRyYWVnZVskRFN0cl1bJFBlcnNJ ZF0gPSBHZXQtR2V3aWNodGV0ICRQcmVmLnBvb2wgJFByZWYuZ2V3aWNodGUgJFJuZA0KICAgICAg ICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICRFaW50cmFlZ2VbJERTdHJd WyRQZXJzSWRdID0gQCgnd2ZyJywnd2ZyJywnd2ZyJywnZGZyJylbJFJuZC5OZXh0KDAsNCldDQog ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRHZW5lcmllcnQrKw0KICAgICAgICAg ICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgMykgV2Vya3Rh ZzogOCUgZnJlaWVyIFRhZw0KICAgICAgICAgICAgaWYgKCRSbmQuTmV4dERvdWJsZSgpIC1sdCAw LjA4KSB7DQogICAgICAgICAgICAgICAgJEVpbnRyYWVnZVskRFN0cl1bJFBlcnNJZF0gPSBAKCdk ZnInLCd3ZnInLCdBWkEnKVskUm5kLk5leHQoMCwzKV0NCiAgICAgICAgICAgICAgICAkR2VuZXJp ZXJ0KysNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgaWYgKCRHcnVwcGUgLWVxICdMJyAtYW5kICRSbmQuTmV4dERvdWJsZSgpIC1sdCAwLjIwKSB7 DQogICAgICAgICAgICAgICAgJEVpbnRyYWVnZVskRFN0cl1bJFBlcnNJZF0gPSAnSE8nDQogICAg ICAgICAgICAgICAgJEdlbmVyaWVydCsrDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAg ICAgICAgIH0NCg0KICAgICAgICAgICAgJFByZWYgPSAkUGVyc29uUHJhZWZlcmVuelskUGVyc0lk XQ0KICAgICAgICAgICAgJEVpbnRyYWVnZVskRFN0cl1bJFBlcnNJZF0gPSBHZXQtR2V3aWNodGV0 ICRQcmVmLnBvb2wgJFByZWYuZ2V3aWNodGUgJFJuZA0KICAgICAgICAgICAgJEdlbmVyaWVydCsr DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAjIEtvbW1lbnRhcmUNCiAgICAkQmVpc3BpZWxLb21t ZW50YXJlID0gQCgNCiAgICAgICAgJ1RhdXNjaCBtaXQgS29sbGVnZScsJ0FyenR0ZXJtaW4gbmFj aG1pdHRhZ3MnLCdOdXIgYmlzIDE0IFVocicsDQogICAgICAgICdUZWxlZm9uYmVyZWl0c2NoYWZ0 JywnVWViZXJzdHVuZGVuYWJiYXUnLCdWZXJ0cmV0dW5nIGZ1ZXIgVXJsYXViJywNCiAgICAgICAg J0dlcmljaHRzdGVybWluJywnQmVob2VyZGVuZ2FuZycsJ0tpbmQga3JhbmsgLSBldnRsLiBmcnVl aGVyIHdlZycsDQogICAgICAgICdQcnVlZnVuZyBpbSBSZXZpZXInLCdTcHJpbmdlcmRpZW5zdCcs J0RpZW5zdGJlc3ByZWNodW5nIDEwIFVocicsDQogICAgICAgICdGdW5rdWVidW5nJywnRWluc2F0 em5hY2hiZXJlaXR1bmcnLCdWZXJrZWhyc2tvbnRyb2xsZSBBNDUnLA0KICAgICAgICAnU2NodWx3 ZWctVWViZXJ3YWNodW5nJywnTmV1ZXIgQW53YWVydGVyIGVpbndlaXNlbicsJ0ZhaHJ6ZXVndWVi ZXJuYWhtZScsDQogICAgICAgICdXYWZmZW5yZWluaWd1bmcnLCdCZXJpY2h0IG5hY2hyZWljaGVu Jw0KICAgICkNCiAgICBmb3IgKCRpID0gMDsgJGkgLWx0IDgwOyAkaSsrKSB7DQogICAgICAgICRS YW5kRGF5ID0gJFJuZC5OZXh0KDAsICRUb3RhbERheXMpDQogICAgICAgICRUYWdEID0gJFZvbi5B ZGREYXlzKCRSYW5kRGF5KQ0KICAgICAgICAkRFN0ciA9ICRUYWdELlRvU3RyaW5nKCd5eXl5LU1N LWRkJykNCiAgICAgICAgaWYgKCRFaW50cmFlZ2UuQ29udGFpbnMoJERTdHIpIC1hbmQgJEVpbnRy YWVnZVskRFN0cl0uQ291bnQgLWd0IDApIHsNCiAgICAgICAgICAgICRQaWRzID0gQCgkRWludHJh ZWdlWyREU3RyXS5LZXlzKQ0KICAgICAgICAgICAgJFJhbmRQaWQgPSAkUGlkc1skUm5kLk5leHQo MCwgJFBpZHMuQ291bnQpXQ0KICAgICAgICAgICAgaWYgKC1ub3QgJEtvbW1lbnRhcmUuQ29udGFp bnMoJERTdHIpKSB7ICRLb21tZW50YXJlWyREU3RyXSA9IFtvcmRlcmVkXUB7fSB9DQogICAgICAg ICAgICAkS29tbWVudGFyZVskRFN0cl1bJFJhbmRQaWRdID0gJEJlaXNwaWVsS29tbWVudGFyZVsk Um5kLk5leHQoMCwgJEJlaXNwaWVsS29tbWVudGFyZS5Db3VudCldDQogICAgICAgIH0NCiAgICB9 DQoNCiAgICAjIFp1cnVlY2sgaW4gUGxhbnVuZyBlaW5mdWVnZW4NCiAgICBpZiAoJFBsYW51bmcu UFNPYmplY3QuUHJvcGVydGllc1snZWludHJhZWdlJ10pIHsNCiAgICAgICAgJFBsYW51bmcuZWlu dHJhZWdlID0gW1BTQ3VzdG9tT2JqZWN0XSRFaW50cmFlZ2UNCiAgICB9IGVsc2Ugew0KICAgICAg ICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdl aW50cmFlZ2UnIC1WYWx1ZSAoW1BTQ3VzdG9tT2JqZWN0XSRFaW50cmFlZ2UpDQogICAgfQ0KICAg IGlmICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydrb21tZW50YXJlJ10pIHsNCiAgICAg ICAgJFBsYW51bmcua29tbWVudGFyZSA9IFtQU0N1c3RvbU9iamVjdF0kS29tbWVudGFyZQ0KICAg IH0gZWxzZSB7DQogICAgICAgICRQbGFudW5nIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3Rl UHJvcGVydHkgLU5hbWUgJ2tvbW1lbnRhcmUnIC1WYWx1ZSAoW1BTQ3VzdG9tT2JqZWN0XSRLb21t ZW50YXJlKQ0KICAgIH0NCg0KICAgIFdyaXRlLVBsYW51bmdNaXRJbnRlZ3JpdGFldCAkUGxhbnVu ZyAgICMgQnVsay1PcDogYWxsZSBITUFDcyBuZXUNCiAgICBXcml0ZS1Mb2dFaW50cmFnICdkdW1t eWRhdGVuLmVpbmdlc3BpZWx0JyBAeyBlaW50cmFlZ2UgPSAkR2VuZXJpZXJ0OyBiYWNrdXAgPSAk QmFja3VwTmFtZSB9DQogICAgU2VuZC1Kc29uICRSZXNwb25zZSBAeyBzdGF0dXMgPSAnZWluZ2Vz cGllbHQnOyBlaW50cmFlZ2UgPSAkR2VuZXJpZXJ0OyBiYWNrdXAgPSAkQmFja3VwTmFtZSB9DQog ICAgRGVidWctTG9nICdBUEknICJQT1NUIC9hcGkvcGxhbnVuZy9kdW1teWRhdGVuIC0+ICRHZW5l cmllcnQgRWludHJhZWdlIg0KfQ0KDQpmdW5jdGlvbiBIYW5kbGUtUmVzZXQoJFJlc3BvbnNlKSB7 DQogICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQogICAgJFBsYW51 bmdQYXRoID0gSm9pbi1QYXRoICREYXRhRGlyICdwbGFudW5nLmpzb24nDQogICAgJFRzID0gR2V0 LURhdGUgLUZvcm1hdCAneXl5eU1NZGRfSEhtbXNzJw0KICAgICRCYWNrdXBOYW1lID0gInBsYW51 bmdfYmFja3VwX3Zvcl9yZXNldF8kVHMuanNvbiINCiAgICBDb3B5LUl0ZW0gLVBhdGggJFBsYW51 bmdQYXRoIC1EZXN0aW5hdGlvbiAoSm9pbi1QYXRoICREYXRhRGlyICRCYWNrdXBOYW1lKSAtRm9y Y2UNCiAgICBJbnZva2UtQmFja3VwUm90YXRpb24gJ3BsYW51bmdfYmFja3VwXyouanNvbicgMjAN Cg0KICAgIGlmICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydlaW50cmFlZ2UnXSkgew0K ICAgICAgICAkUGxhbnVuZy5laW50cmFlZ2UgPSBbUFNDdXN0b21PYmplY3RdQHt9DQogICAgfSBl bHNlIHsNCiAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9w ZXJ0eSAtTmFtZSAnZWludHJhZWdlJyAtVmFsdWUgKFtQU0N1c3RvbU9iamVjdF1Ae30pDQogICAg fQ0KICAgIGlmICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydrb21tZW50YXJlJ10pIHsN CiAgICAgICAgJFBsYW51bmcua29tbWVudGFyZSA9IFtQU0N1c3RvbU9iamVjdF1Ae30NCiAgICB9 IGVsc2Ugew0KICAgICAgICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVBy b3BlcnR5IC1OYW1lICdrb21tZW50YXJlJyAtVmFsdWUgKFtQU0N1c3RvbU9iamVjdF1Ae30pDQog ICAgfQ0KICAgIFdyaXRlLVBsYW51bmdNaXRJbnRlZ3JpdGFldCAkUGxhbnVuZyAgICMgQnVsay1P cDogYWxsZSBITUFDcyBuZXUgKGxlZXJlciBTdGFuZCkNCiAgICBXcml0ZS1Mb2dFaW50cmFnICdw bGFudW5nLnJlc2V0JyBAeyBiYWNrdXAgPSAkQmFja3VwTmFtZSB9DQogICAgU2VuZC1Kc29uICRS ZXNwb25zZSBAeyBzdGF0dXMgPSAnenVydWVja2dlc2V0enQnOyBiYWNrdXAgPSAkQmFja3VwTmFt ZSB9DQogICAgRGVidWctTG9nICdBUEknICdQT1NUIC9hcGkvcGxhbnVuZy9yZXNldCcNCn0NCg0K IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KIyBDLjM6IEF1dG8tSW5ha3RpdiBiZWkgYWJnZWxhdWZl bmVyIEJlZnJpc3R1bmcgKFNlcnZlci1TdGFydC1DaGVjaykNCiMgPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCnRyeSB7DQogICAgJF9QbGFudW5nSW5pdCA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcuanNv bicNCiAgICBpZiAoJF9QbGFudW5nSW5pdCAtYW5kICRfUGxhbnVuZ0luaXQuUFNPYmplY3QuUHJv cGVydGllc1sncGVyc29uZW4nXSkgew0KICAgICAgICAkSGV1dGUgPSAoR2V0LURhdGUpLkRhdGUN CiAgICAgICAgJEdlYWVuZGVydENvdW50ID0gMA0KICAgICAgICBmb3JlYWNoICgkUCBpbiBAKCRf UGxhbnVuZ0luaXQucGVyc29uZW4pKSB7DQogICAgICAgICAgICAkQmIgPSAnJw0KICAgICAgICAg ICAgaWYgKCRQLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2JlZnJpc3R1bmdCaXMnXSkgeyAkQmIgPSAo W3N0cmluZ10kUC5iZWZyaXN0dW5nQmlzKS5UcmltKCkgfQ0KICAgICAgICAgICAgaWYgKC1ub3Qg JEJiKSB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICRBa3RpdiA9ICR0cnVlDQogICAgICAgICAg ICBpZiAoJFAuUFNPYmplY3QuUHJvcGVydGllc1snYWt0aXYnXSkgeyAkQWt0aXYgPSBbYm9vbF0k UC5ha3RpdiB9DQogICAgICAgICAgICBpZiAoLW5vdCAkQWt0aXYpIHsgY29udGludWUgfQ0KICAg ICAgICAgICAgdHJ5IHsgJEVuZEQgPSBbZGF0ZXRpbWVdOjpQYXJzZSgkQmIpLkRhdGUgfSBjYXRj aCB7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgIGlmICgkRW5kRCAtbHQgJEhldXRlKSB7DQogICAg ICAgICAgICAgICAgaWYgKCRQLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10pIHsgJFAuYWt0 aXYgPSAkZmFsc2UgfQ0KICAgICAgICAgICAgICAgIGVsc2UgeyAkUCB8IEFkZC1NZW1iZXIgLU1l bWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdha3RpdicgLVZhbHVlICRmYWxzZSB9DQogICAg ICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAncGVyc29uLmF1dG9faW5ha3RpdicgQHsNCiAg ICAgICAgICAgICAgICAgICAgcGVyc29uSWQgPSAkUC5pZDsgbmFtZSA9ICRQLm5hbWU7IGJlZnJp c3R1bmdCaXMgPSAkQmINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgJEdlYWVu ZGVydENvdW50KysNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAoJEdlYWVu ZGVydENvdW50IC1ndCAwKSB7DQogICAgICAgICAgICBXcml0ZS1QbGFudW5nTWl0SW50ZWdyaXRh ZXQgJF9QbGFudW5nSW5pdA0KICAgICAgICAgICAgV3JpdGUtU3RhcnR1cExvZyAiW0lOSVRdICRH ZWFlbmRlcnRDb3VudCBQZXJzb24oZW4pIHdlZ2VuIGFiZ2VsYXVmZW5lciBCZWZyaXN0dW5nIGF1 dG9tYXRpc2NoIGRlYWt0aXZpZXJ0LiINCiAgICAgICAgfQ0KICAgIH0NCn0gY2F0Y2ggew0KICAg IFdyaXRlLVN0YXJ0dXBMb2cgIltJTklUXSBBdXRvLUluYWt0aXYtQ2hlY2sgdWViZXJzcHJ1bmdl bjogJF8iDQp9DQoNCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgVVBEQVRFLUNIRUNLDQojID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQoNCiRzY3JpcHQ6VXBkYXRlQXZhaWxhYmxlICAgID0gJGZhbHNl DQokc2NyaXB0OlJlbW90ZVZlcnNpb24gICAgICA9ICcnDQokc2NyaXB0OlVwZGF0ZUxhc3RDaGVj a1V0YyA9IFtkYXRldGltZV06Ok1pblZhbHVlDQoNCmZ1bmN0aW9uIFJlZnJlc2gtVXBkYXRlQ2hl Y2sgew0KICAgIGlmICgoW2RhdGV0aW1lXTo6VXRjTm93IC0gJHNjcmlwdDpVcGRhdGVMYXN0Q2hl Y2tVdGMpLlRvdGFsTWludXRlcyAtbHQgNjApIHsgcmV0dXJuIH0NCiAgICAkc2NyaXB0OlVwZGF0 ZUxhc3RDaGVja1V0YyA9IFtkYXRldGltZV06OlV0Y05vdw0KICAgICRsb2NhbFZlciA9ICcwLjAu MCcNCiAgICAkX3ZmID0gSm9pbi1QYXRoICRSb290ICdWRVJTSU9OJw0KICAgIGlmIChUZXN0LVBh dGggLUxpdGVyYWxQYXRoICRfdmYpIHsgJGxvY2FsVmVyID0gKEdldC1Db250ZW50IC1MaXRlcmFs UGF0aCAkX3ZmIC1SYXcpLlRyaW0oKSB9DQogICAgdHJ5IHsNCiAgICAgICAgJHJ2ID0gKEludm9r ZS1XZWJSZXF1ZXN0IC1VcmkgJ2h0dHBzOi8vdXBkYXRlcy5yaGluby5ucncvcmhpbm8vU3RhdHVz UXVvX1VwZGF0ZXMvcmF3L2JyYW5jaC9tYWluL0ZMRC1TY2hpY2h0cGxhbnVuZy9WRVJTSU9OJyBg DQogICAgICAgICAgICAgICAtVXNlQmFzaWNQYXJzaW5nIC1UaW1lb3V0U2VjIDMgLUVycm9yQWN0 aW9uIFN0b3ApLkNvbnRlbnQuVHJpbSgpDQogICAgICAgICRzY3JpcHQ6UmVtb3RlVmVyc2lvbiAg ID0gJHJ2DQogICAgICAgICRzY3JpcHQ6VXBkYXRlQXZhaWxhYmxlID0gKFtTeXN0ZW0uVmVyc2lv bl0kcnYgLWd0IFtTeXN0ZW0uVmVyc2lvbl0kbG9jYWxWZXIpDQogICAgICAgIFdyaXRlLUhvc3Qg IiAgW1VQREFURS1DSEVDS10gbG9rYWw9JGxvY2FsVmVyIHJlbW90ZT0kcnYgYXZhaWxhYmxlPSQo JHNjcmlwdDpVcGRhdGVBdmFpbGFibGUpIg0KICAgIH0gY2F0Y2ggew0KICAgICAgICBXcml0ZS1I b3N0ICIgIFtVUERBVEUtQ0hFQ0tdIG5pY2h0IGVycmVpY2hiYXIgKCQoJF8uRXhjZXB0aW9uLk1l c3NhZ2UpKSINCiAgICB9DQp9DQpSZWZyZXNoLVVwZGF0ZUNoZWNrDQoNCiMgPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCiMgSFRUUC1MSVNURU5FUiBTVEFSVEVODQojID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQoNCiRMaXN0ZW5lciA9ICRudWxsDQp0cnkgew0KICAgICRMaXN0ZW5lciA9IE5ldy1PYmplY3Qg U3lzdGVtLk5ldC5IdHRwTGlzdGVuZXINCiAgICAkTGlzdGVuZXIuUHJlZml4ZXMuQWRkKCJodHRw Oi8vbG9jYWxob3N0OiRQb3J0LyIpDQogICAgJExpc3RlbmVyLlN0YXJ0KCkNCiAgICBXcml0ZS1T dGFydHVwTG9nICJMaXN0ZW5lciBsYWV1ZnQgYXVmIGh0dHA6Ly9sb2NhbGhvc3Q6JFBvcnQiDQp9 IGNhdGNoIHsNCiAgICBXcml0ZS1TdGFydHVwTG9nICJGQVRBTDogTGlzdGVuZXIga29ubnRlIG5p Y2h0IGdlc3RhcnRldCB3ZXJkZW46ICRfIg0KICAgIFdyaXRlLVN0YXJ0dXBMb2cgIk3DtmdsaWNo ZSBVcnNhY2hlbjogUG9ydCBiZWxlZ3QsIGZlaGxlbmRlIFVSTC1BQ0wsIEZpcmV3YWxsLiINCiAg ICBleGl0IDENCn0NCg0KV3JpdGUtSG9zdCAiRkxELVBsYW51bmcgU2VydmVyIGF1ZiBodHRwOi8v bG9jYWxob3N0OiRQb3J0Ig0KV3JpdGUtSG9zdCAiUm9vdDogJFJvb3QiDQpXcml0ZS1Ib3N0ICJE YXRlbjogJERhdGFEaXIiDQoNCiMgLS0tIEJyb3dzZXIgb2VmZm5lbiAtLS0NCmlmICgtbm90ICRO b0Jyb3dzZXIpIHsNCiAgICBTdGFydC1TbGVlcCAtTWlsbGlzZWNvbmRzIDMwMA0KICAgIHRyeSB7 IFN0YXJ0LVByb2Nlc3MgImh0dHA6Ly9sb2NhbGhvc3Q6JFBvcnQiIH0gY2F0Y2ggeyBXcml0ZS1T dGFydHVwTG9nICJCcm93c2VyLVN0YXJ0IGZlaGxnZXNjaGxhZ2VuOiAkXyIgfQ0KfQ0KDQojID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQojIFJFUVVFU1QtTE9PUA0KIyA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KDQp0cnkgew0KICAgIHdoaWxlICgkTGlzdGVuZXIuSXNMaXN0ZW5pbmcpIHsNCiAgICAgICAg JEFzeW5jUmVzdWx0ID0gJExpc3RlbmVyLkJlZ2luR2V0Q29udGV4dCgkbnVsbCwgJG51bGwpDQog ICAgICAgIHdoaWxlICgtbm90ICRBc3luY1Jlc3VsdC5Bc3luY1dhaXRIYW5kbGUuV2FpdE9uZSgy MDAwKSkgew0KICAgICAgICAgICAgIyBTZWxmLUtpbGw6IDMwcyBvaG5lIEhlYXJ0YmVhdCA9IFRh YiBvZGVyIEJyb3dzZXIgenUgPSBTZXJ2ZXIgYmVlbmRlbg0KICAgICAgICAgICAgJEVsYXBzZWQg PSAoKEdldC1EYXRlKSAtICRzY3JpcHQ6TGFzdEhlYXJ0YmVhdCkuVG90YWxTZWNvbmRzDQogICAg ICAgICAgICBpZiAoJEVsYXBzZWQgLWd0ICRzY3JpcHQ6SGVhcnRiZWF0VGltZW91dFNlYykgew0K ICAgICAgICAgICAgICAgIFdyaXRlLUhvc3QgJycNCiAgICAgICAgICAgICAgICBXcml0ZS1Ib3N0 ICc9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0nDQogICAgICAgICAgICAgICAgV3JpdGUtSG9zdCAiICBLZWluIEhlYXJ0YmVhdCBzZWl0 ICQoW2ludF0kRWxhcHNlZClzIC0gU2VydmVyIHdpcmQgYmVlbmRldC4iDQogICAgICAgICAgICAg ICAgV3JpdGUtSG9zdCAnICAoQnJvd3Nlci1UYWIgb2RlciBCcm93c2VyIHd1cmRlIGdlc2NobG9z c2VuKScNCiAgICAgICAgICAgICAgICBXcml0ZS1Ib3N0ICc9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nDQogICAgICAgICAgICAgICAg V3JpdGUtU3RhcnR1cExvZyAiU2VsZi1LaWxsIG5hY2ggJChbaW50XSRFbGFwc2VkKXMgb2huZSBI ZWFydGJlYXQiDQogICAgICAgICAgICAgICAgJExpc3RlbmVyLlN0b3AoKQ0KICAgICAgICAgICAg ICAgICRMaXN0ZW5lci5DbG9zZSgpDQogICAgICAgICAgICAgICAgZXhpdCAwDQogICAgICAgICAg ICB9DQogICAgICAgIH0NCg0KICAgICAgICAkQ29udGV4dCA9ICRMaXN0ZW5lci5FbmRHZXRDb250 ZXh0KCRBc3luY1Jlc3VsdCkNCiAgICAgICAgJFJlcSA9ICRDb250ZXh0LlJlcXVlc3QNCiAgICAg ICAgJFJlcyA9ICRDb250ZXh0LlJlc3BvbnNlDQogICAgICAgICRNZXRob2QgPSAkUmVxLkh0dHBN ZXRob2QNCiAgICAgICAgJFJhd1BhdGggPSAkUmVxLlVybC5BYnNvbHV0ZVBhdGgNCiAgICAgICAg JFBhdGggPSAkUmF3UGF0aCAgIyBRdWVyeSB3aXJkIHZvbiBIdHRwTGlzdGVuZXIgc2VwYXJhdCBi ZXJlaXRnZXN0ZWxsdA0KDQogICAgICAgICMgQXVkaXQtSUktMiBGMzogZHluYW1pc2NoZSBBQ0FP LVF1ZWxsZSBwcm8gUmVxdWVzdCBzZXR6ZW4uIEFkZC1TZWN1cml0eUhlYWRlcnMNCiAgICAgICAg IyBsaWVzdCAkc2NyaXB0OkNvcnNPcmlnaW5EeW5hbWljLiBXaGl0ZWxpc3QgcGFzc2VuZCB6dW0g Q1NSRi1GaWx0ZXIgdW50ZW4uDQogICAgICAgICRzY3JpcHQ6UmVxT3JpZ2luSGVhZGVyID0gJFJl cS5IZWFkZXJzWydPcmlnaW4nXQ0KICAgICAgICAkT3JpZ2luV2hpdGVsaXN0ID0gQCgiaHR0cDov L2xvY2FsaG9zdDokUG9ydCIsICJodHRwOi8vMTI3LjAuMC4xOiRQb3J0IikNCiAgICAgICAgaWYg KCRzY3JpcHQ6UmVxT3JpZ2luSGVhZGVyIC1hbmQgKCRPcmlnaW5XaGl0ZWxpc3QgLWNvbnRhaW5z ICRzY3JpcHQ6UmVxT3JpZ2luSGVhZGVyKSkgew0KICAgICAgICAgICAgJHNjcmlwdDpDb3JzT3Jp Z2luRHluYW1pYyA9ICRzY3JpcHQ6UmVxT3JpZ2luSGVhZGVyDQogICAgICAgIH0gZWxzZSB7DQog ICAgICAgICAgICAkc2NyaXB0OkNvcnNPcmlnaW5EeW5hbWljID0gJHNjcmlwdDpDb3JzT3JpZ2lu DQogICAgICAgIH0NCg0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09 PT09PT09PT0gQ09SUyBQUkVGTElHSFQgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAg ICBpZiAoJE1ldGhvZCAtZXEgJ09QVElPTlMnKSB7DQogICAgICAgICAgICAgICAgQWRkLVNlY3Vy aXR5SGVhZGVycyAkUmVzOyAkUmVzLlN0YXR1c0NvZGUgPSAyMDQ7ICRSZXMuQ2xvc2UoKTsgY29u dGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyBDU1JGLVNjaHV0eiBmdWVyIHdy aXRpbmcgbWV0aG9kczogT3JpZ2luIG11c3MgbWF0Y2hlbiBvZGVyIGZlaGxlbi4NCiAgICAgICAg ICAgICMgQnJvd3NlciBzZW5kZW4gT3JpZ2luIGJlaSBDcm9zcy1TaXRlLVBPU1QgendpbmdlbmQ7 IGJlaSBTYW1lLVNpdGUNCiAgICAgICAgICAgICMgUmVxdWVzdHMgaXN0IGVyIGdsZWljaCBvZGVy IGZlaGx0IChDTEkvY3VybCkuIEFid2VpY2hlbmRlciBPcmlnaW4NCiAgICAgICAgICAgICMgPSBD cm9zcy1TaXRlLUFuZ3JpZmYgdm9uIGVpbmVtIGFuZGVyZW4gbG9rYWxlbiBTZXJ2aWNlIGFibGVo bmVuLg0KICAgICAgICAgICAgIyBNaXJyb3IgenUgc2VydmVyLnB5OjIyMTctMjIyOC4NCiAgICAg ICAgICAgIGlmICgkTWV0aG9kIC1pbiBAKCdQT1NUJywnUFVUJywnREVMRVRFJywnUEFUQ0gnKSkg ew0KICAgICAgICAgICAgICAgICRPcmlnaW4gPSAkUmVxLkhlYWRlcnNbJ09yaWdpbiddDQogICAg ICAgICAgICAgICAgIyBUb2xlcmFudGVzIE1hdGNoaW5nOiBsb2NhbGhvc3QgVU5EIDEyNy4wLjAu MSAoVXNlciBrb2VubmVuDQogICAgICAgICAgICAgICAgIyB2aWEgQm9va21hcmsgYXVmIGRpZSBM b29wYmFjay1JUCBnZWxhbmRldCBzZWluKS4gQmVpZGUNCiAgICAgICAgICAgICAgICAjIFZhcmlh bnRlbiB6ZWlnZW4gYXVmIGRlbnNlbGJlbiBMaXN0ZW5lciwga2VpbiBDU1JGLVJpc2lrby4NCiAg ICAgICAgICAgICAgICAkT3JpZ2luRXJsYXVidCA9IEAoDQogICAgICAgICAgICAgICAgICAgICJo dHRwOi8vbG9jYWxob3N0OiRQb3J0IiwNCiAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly8xMjcu MC4wLjE6JFBvcnQiDQogICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgIGlmICgkT3Jp Z2luIC1hbmQgKCRPcmlnaW5FcmxhdWJ0IC1ub3Rjb250YWlucyAkT3JpZ2luKSkgew0KICAgICAg ICAgICAgICAgICAgICBEZWJ1Zy1Mb2cgJ1NFQycgIkNTUkY6ICRNZXRob2QgJFBhdGggdm9uIE9y aWdpbj0kT3JpZ2luIGFiZ2VsZWhudCIgJ3JlZCcNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1F cnJvciAkUmVzICdDcm9zcy1PcmlnaW4tUmVxdWVzdCBhYmdlbGVobnQnIDQwMw0KICAgICAgICAg ICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gTElGRUNZQ0xFID09PT09PT09PT09 PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9oZWFydGJlYXQnIC1h bmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAgJHNjcmlwdDpMYXN0SGVh cnRiZWF0ID0gR2V0LURhdGUNCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0 dXMgPSAnb2snIH07IGNvbnRpbnVlDQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoJFBh dGggLWVxICcvYXBpL3NodXRkb3duJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAg ICAgICAgICAgICMgQmVhY29uIHZvbSBCcm93c2VyIGJlaSBUYWIvV2luZG93LUNsb3NlLiBIZWFy dGJlYXQtVWhyIDI1cw0KICAgICAgICAgICAgICAgICMgenVydWVja2RyZWhlbiAtPiBTZXJ2ZXIg c3RpcmJ0IGluIDw9NXMgKGt1cnplIFJlbG9hZC1Ub2xlcmFueikuDQogICAgICAgICAgICAgICAg JHNjcmlwdDpMYXN0SGVhcnRiZWF0ID0gKEdldC1EYXRlKS5BZGRTZWNvbmRzKC0oJHNjcmlwdDpI ZWFydGJlYXRUaW1lb3V0U2VjIC0gNSkpDQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMg QHsgc3RhdHVzID0gJ3NodXRkb3duIGVpbmdlbGVpdGV0JyB9OyBjb250aW51ZQ0KICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBJTkZPID09PT09PT09 PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9pbmZvJyAtYW5k ICRNZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAgICAgICAgICAgUmVmcmVzaC1VcGRhdGVDaGVj aw0KICAgICAgICAgICAgICAgICRSb2xsZUFrdHVlbGwgPSBHZXQtVXNlclJvbGxlDQogICAgICAg ICAgICAgICAgU2VuZC1Kc29uICRSZXMgKFtvcmRlcmVkXUB7DQogICAgICAgICAgICAgICAgICAg IGJlbnV0emVyICAgICAgICAgICAgPSBHZXQtQWt0dWVsbGVyQmVudXR6ZXINCiAgICAgICAgICAg ICAgICAgICAgaXN0QWRtaW4gICAgICAgICAgICA9IFRlc3QtSXN0QWRtaW4NCiAgICAgICAgICAg ICAgICAgICAgaXN0U3VwZXJVc2VyICAgICAgICA9IFRlc3QtSXN0U3VwZXJVc2VyDQogICAgICAg ICAgICAgICAgICAgIGlzdEZhY2hhdWZzaWNodCAgICAgPSBUZXN0LUlzdEZhY2hhdWZzaWNodA0K ICAgICAgICAgICAgICAgICAgICByb2xsZSAgICAgICAgICAgICAgID0gJFJvbGxlQWt0dWVsbA0K ICAgICAgICAgICAgICAgICAgICBkYXJmVWViZXJzY2hyZWliZW4gID0gVGVzdC1EYXJmVWViZXJz Y2hyZWliZW4gJFJvbGxlQWt0dWVsbA0KICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIgICAgICAg ICAgICAgID0gImh0dHA6Ly9sb2NhbGhvc3Q6JFBvcnQiDQogICAgICAgICAgICAgICAgICAgIHVw ZGF0ZUF2YWlsYWJsZSAgICAgPSAkc2NyaXB0OlVwZGF0ZUF2YWlsYWJsZQ0KICAgICAgICAgICAg ICAgICAgICByZW1vdGVWZXJzaW9uICAgICAgID0gJHNjcmlwdDpSZW1vdGVWZXJzaW9uDQogICAg ICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBBRE1JTi1DT05GSUcgPT09PT09 PT09PT09PT09PT09PT09DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2FkbWluJyAt YW5kICRNZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAgICAgICAgICAgJEFkbWluID0gUmVhZC1K c29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRBZG1p bikgeyBTZW5kLUVycm9yICRSZXMgJ2FkbWluLmpzb24gbmljaHQgZ2VmdW5kZW4nIDQwNCB9IGVs c2UgeyBTZW5kLUpzb24gJFJlcyAkQWRtaW4gfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQog ICAgICAgICAgICB9DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2FkbWluJyAtYW5k ICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0 QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNvbnRp bnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAg ICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUg Z3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICREYXRhID0gJEJvZHkgfCBD b252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgV3JpdGUtSnNvbkZpbGUgJ2FkbWluLmpz b24nICREYXRhDQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnYWRtaW4uY29uZmln LmdlYWVuZGVydCcgQHsgYmVyZWljaCA9ICdhZG1pbi1rb25maWd1cmF0aW9uJyB9DQogICAgICAg ICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JyB9OyBjb250 aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09 PSBTVVBFUlVTRVItVkVSV0FMVFVORyA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAg IGlmICgkUGF0aCAtZXEgJy9hcGkvYWRtaW4vc3VwZXJ1c2VyJyAtYW5kICRNZXRob2QgLWVxICdQ VVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0U3VwZXJVc2VyKSkgeyBT ZW5kLUVycm9yICRSZXMgJ051ciBTdXBlclVzZXIgZHVlcmZlbiBTdXBlclVzZXIgdmVyd2FsdGVu JyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVx DQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMg J0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICREYXRl biA9IFtvYmplY3RbXV1AKCRCb2R5IHwgQ29udmVydEZyb20tSnNvbikgICMgQXJyYXktRXJoYWx0 IHVudGVyIFBTIDUuMSBhdWNoIGJlaSAxIEVsZW1lbnQNCiAgICAgICAgICAgICAgICAkQWRtaW4g PSBSZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0KICAgICAgICAgICAgICAgIGlmICgkQWRtaW4u UFNPYmplY3QuUHJvcGVydGllc1snc3VwZXJVc2VyJ10pIHsNCiAgICAgICAgICAgICAgICAgICAg JEFkbWluLnN1cGVyVXNlciA9ICREYXRlbg0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAg ICAgICAgICAgICAgICAgICRBZG1pbiB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3Bl cnR5IC1OYW1lICdzdXBlclVzZXInIC1WYWx1ZSAkRGF0ZW4NCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgV3JpdGUtSnNvbkZpbGUgJ2FkbWluLmpzb24nICRBZG1pbg0KICAgICAg ICAgICAgICAgICRBbnphaGwgPSBAKCREYXRlbikuQ291bnQNCiAgICAgICAgICAgICAgICBXcml0 ZS1Mb2dFaW50cmFnICdzdXBlcnVzZXIuZ2VhZW5kZXJ0JyBAeyBhbnphaGwgPSAkQW56YWhsIH0N CiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQn IH07IGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09 PT09PT09PT09IEZBQ0hBVUZTSUNIVEVOLVZFUldBTFRVTkcgKFBoYXNlIEIpID09PT09PT09PT09 PT09PT09PT09PQ0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gV09DSEVOTk9U SVogKFdvY2hlbnBsYW4tQW5zaWNodCwgcGVyc2lzdGVudCBwcm8gS1cpID09PT09PT09PT09PT09 PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5nL3dvY2hlbm5v dGl6JyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgICRCb2R5ID0g UmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7IFNl bmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAg ICAgICAgICAgdHJ5IHsgJEEgPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24gfSBjYXRjaCB7IFNl bmQtRXJyb3IgJFJlcyAnVW5ndWVsdGlnZXMgSlNPTicgNDAwOyBjb250aW51ZSB9DQogICAgICAg ICAgICAgICAgJEt3S2V5ID0gaWYgKCRBLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2t3S2V5J10pIHsg KFtzdHJpbmddJEEua3dLZXkpLlRyaW0oKSB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAg JFRleHQgPSBpZiAoJEEuUFNPYmplY3QuUHJvcGVydGllc1sndGV4dCddKSB7IFtzdHJpbmddJEEu dGV4dCB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgaWYgKCRLd0tleSAtbm90bWF0Y2gg J15cZHs0fS1XXGR7Mn0kJykgeyBTZW5kLUVycm9yICRSZXMgJ2t3S2V5IHVuZ3VlbHRpZyAoZXJ3 YXJ0ZXQ6IFlZWVktV25uKScgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgIyBWZXJn YW5nZW5lIFdvY2hlbiBzY2hyZWliZ2VzY2h1ZXR6dA0KICAgICAgICAgICAgICAgIHRyeSB7DQog ICAgICAgICAgICAgICAgICAgICRKYWhyID0gW2ludF0kS3dLZXkuU3Vic3RyaW5nKDAsIDQpDQog ICAgICAgICAgICAgICAgICAgICRLd04gID0gW2ludF0kS3dLZXkuU3Vic3RyaW5nKDYsIDIpDQog ICAgICAgICAgICAgICAgICAgICRKYW40ID0gW2RhdGV0aW1lXTo6bmV3KCRKYWhyLCAxLCA0KQ0K ICAgICAgICAgICAgICAgICAgICAkVzFNbyA9ICRKYW40LkFkZERheXMoLShbaW50XSRKYW40LkRh eU9mV2VlayAtIDEpKQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJEphbjQuRGF5T2ZXZWVrIC1l cSBbU3lzdGVtLkRheU9mV2Vla106OlN1bmRheSkgeyAkVzFNbyA9ICRKYW40LkFkZERheXMoLTYp IH0NCiAgICAgICAgICAgICAgICAgICAgJEt3U28gPSAkVzFNby5BZGREYXlzKCgkS3dOIC0gMSkg KiA3ICsgNikNCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsgU2VuZC1FcnJvciAkUmVzICdrd0tl eSB1bmd1ZWx0aWcnIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgIGlmICgkS3dTby5E YXRlIC1sdCAoR2V0LURhdGUpLkRhdGUpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJv ciAkUmVzICdXb2NoZSBiZXJlaXRzIGFiZ2VsYXVmZW4gLSBOb3RpeiBuaWNodCBlZGl0aWVyYmFy JyA0MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHRyeSB7 DQogICAgICAgICAgICAgICAgICAgIEludm9rZS1XaXRoRmlsZUxvY2sgJ3BsYW51bmcuanNvbicg ew0KICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdwbGFu dW5nLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRQbGFudW5n KSB7IHJldHVybiBAeyB0eXAgPSAnZXJyb3InOyBjb2RlID0gNDA0OyBtc2cgPSAncGxhbnVuZy5q c29uIG5pY2h0IGdlZnVuZGVuJyB9IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90 ICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3dvY2hlbm5vdGl6ZW4nXSkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBO b3RlUHJvcGVydHkgLU5hbWUgJ3dvY2hlbm5vdGl6ZW4nIC1WYWx1ZSAoTmV3LU9iamVjdCBQU09i amVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg IGlmIChbc3RyaW5nXTo6SXNOdWxsT3JFbXB0eSgkVGV4dCkpIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoJFBsYW51bmcud29jaGVubm90aXplbi5QU09iamVjdC5Qcm9wZXJ0aWVz WyRLd0tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcud29j aGVubm90aXplbi5QU09iamVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgkS3dLZXkpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcud29jaGVubm90aXplbi5QU09i amVjdC5Qcm9wZXJ0aWVzWyRLd0tleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJFBsYW51bmcud29jaGVubm90aXplbi4kS3dLZXkgPSAkVGV4dA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQ bGFudW5nLndvY2hlbm5vdGl6ZW4gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0 eSAtTmFtZSAkS3dLZXkgLVZhbHVlICRUZXh0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgIyBB dWRpdC1JdGVyLUM6IEhNQUMtUmUtU2lnbiAtIHNvbnN0IGxvZXN0IEludGVncml0YWV0cy1DaGVj ayBGZWhsYWxhcm0gYXVzLg0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtUGxhbnVuZ01p dEludGVncml0YWV0ICRQbGFudW5nIEAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IEB7IHR5cCA9ICdvaycgfQ0KICAgICAgICAgICAgICAgICAgICB9IHwgT3V0LU51bGwNCiAgICAg ICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVz ICIkXyIgNTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBX cml0ZS1Mb2dFaW50cmFnICd3b2NoZW5ub3Rpei5nZWFlbmRlcnQnIEB7IGt3S2V5ID0gJEt3S2V5 OyBsYWVuZ2UgPSAkVGV4dC5MZW5ndGggfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVz IEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQog ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IFRBR0VT REFURU4tT1ZFUlJJREUgRlVFUiBFSU5FTiBUQUcgKEIuMiBTVS1PdmVycmlkZSkgPT09PT09PT09 PT09PT09PT09PT09DQogICAgICAgICAgICAjIFBPU1QgL2FwaS9wbGFudW5nL3RhZ2VzZGF0ZW4g eyBkYXR1bSwgZGF0ZW4gfQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5n L3RhZ2VzZGF0ZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAg JFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LURh cmZVZWJlcnNjaHJlaWJlbiAkUm9sbGUpKSB7IFNlbmQtRXJyb3IgJFJlcyAnTnVyIFNVL0ZhY2hh dWZzaWNodCBkYXJmIFRhZ2VzZGF0ZW4gYW5wYXNzZW4nIDQwMzsgY29udGludWUgfQ0KICAgICAg ICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51 bGwgLWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBj b250aW51ZSB9DQogICAgICAgICAgICAgICAgdHJ5IHsgJEEgPSAkQm9keSB8IENvbnZlcnRGcm9t LUpzb24gfSBjYXRjaCB7IFNlbmQtRXJyb3IgJFJlcyAnVW5ndWVsdGlnZXMgSlNPTicgNDAwOyBj b250aW51ZSB9DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJEEuZGF0dW0gLW9yICRudWxsIC1l cSAkQS5kYXRlbikgeyBTZW5kLUVycm9yICRSZXMgJ2RhdHVtL2RhdGVuIGZlaGx0JyA0MDA7IGNv bnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkRGF0dW0gPSBbc3RyaW5nXSRBLmRhdHVtDQogICAg ICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgSW52b2tlLVdpdGhGaWxlTG9j ayAncGxhbnVuZy5qc29uJyB7DQogICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZyA9IFJl YWQtSnNvbkZpbGUgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk bnVsbCAtZXEgJFBsYW51bmcpIHsgcmV0dXJuIEB7IHR5cCA9ICdlcnJvcic7IGNvZGUgPSA0MDQ7 IG1zZyA9ICdwbGFudW5nLmpzb24gbmljaHQgZ2VmdW5kZW4nIH0gfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGllc1sndGFnZXNkYXRl biddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVy IC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAndGFnZXNkYXRlbicgLVZhbHVlIChOZXct T2JqZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCRQbGFudW5nLnRhZ2VzZGF0ZW4uUFNPYmplY3QuUHJvcGVydGllc1sk RGF0dW1dKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcudGFnZXNkYXRl bi4kRGF0dW0gPSAkQS5kYXRlbg0KICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy50YWdlc2RhdGVuIHwgQWRkLU1lbWJl ciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJERhdHVtIC1WYWx1ZSAkQS5kYXRlbg0K ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUt UGxhbnVuZ01pdEludGVncml0YWV0ICRQbGFudW5nIEAoIEB7IGtpbmQgPSAndGFnZXNkYXRlbic7 IGRhdHVtID0gJERhdHVtIH0gKQ0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IHR5 cCA9ICdvaycgfQ0KICAgICAgICAgICAgICAgICAgICB9IHwgT3V0LU51bGwNCiAgICAgICAgICAg ICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICIkXyIg NTAzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBXcml0ZS1M b2dFaW50cmFnICd0YWdlc2RhdGVuLm92ZXJyaWRlJyBAeyBkYXR1bSA9ICREYXR1bTsgcm9sbGUg PSAkUm9sbGUgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdn ZXNwZWljaGVydCcgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IFJPVEFUSU9OLVNMT1QgKEIuMjog a3VlbmZ0aWdlIFRlcm1pbmUgaW0gWnlrbHVzKSA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAg ICAgICAgICMgUE9TVCAvYXBpL2FkbWluL3JvdGF0aW9uLXNsb3QgeyBkYXR1bSwgZGF0ZW4gfQ0K ICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9hZG1pbi9yb3RhdGlvbi1zbG90JyAtYW5k ICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgICRSb2xsZSA9IEdldC1Vc2Vy Um9sbGUNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1EYXJmVWViZXJzY2hyZWliZW4g JFJvbGxlKSkgeyBTZW5kLUVycm9yICRSZXMgJ051ciBTVS9GYWNoYXVmc2ljaHQgZGFyZiBSb3Rh dGlvbiBhZW5kZXJuJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJl YWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5k LUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgIHRyeSB7ICRBID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uIH0gY2F0Y2ggeyBTZW5k LUVycm9yICRSZXMgJ1VuZ3VlbHRpZ2VzIEpTT04nIDQwMDsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgIGlmICgtbm90ICRBLmRhdHVtIC1vciAkbnVsbCAtZXEgJEEuZGF0ZW4pIHsgU2VuZC1F cnJvciAkUmVzICdkYXR1bS9kYXRlbiBmZWhsdCcgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAg ICAgICAgJEFkbWluID0gUmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAg ICAkUm90ID0gJG51bGwNCiAgICAgICAgICAgICAgICBpZiAoJEFkbWluLlBTT2JqZWN0LlByb3Bl cnRpZXNbJ3RhZ2VzZGF0ZW5Sb3RhdGlvbiddKSB7ICRSb3QgPSAkQWRtaW4udGFnZXNkYXRlblJv dGF0aW9uIH0NCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRSb3QgLW9yIC1ub3QgJFJv dC5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0YWdlJ10gLW9yIEAoJFJvdC50YWdlKS5Db3VudCAtZXEg MCkgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgJ1JvdGF0aW9uIGhhdCBr ZWluZSBUYWdlJyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICRXb2NoZW4gPSBpZiAoJFJvdC5QU09iamVjdC5Qcm9wZXJ0aWVzWyd3b2NoZW5BbnphaGwn XSkgeyBbaW50XSRSb3Qud29jaGVuQW56YWhsIH0gZWxzZSB7IDMgfQ0KICAgICAgICAgICAgICAg ICRTdGFydFN0ciA9IGlmICgkUm90LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N0YXJ0RGF0dW0nXSkg eyBbc3RyaW5nXSRSb3Quc3RhcnREYXR1bSB9IGVsc2UgeyAnMjAyNi0wMS0wNScgfQ0KICAgICAg ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRTdGFydEQgPSBbZGF0ZXRpbWVd OjpQYXJzZSgkU3RhcnRTdHIpDQogICAgICAgICAgICAgICAgICAgICRaaWVsRCA9IFtkYXRldGlt ZV06OlBhcnNlKFtzdHJpbmddJEEuZGF0dW0pDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQog ICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAnRGF0dW0gdW5ndWVsdGlnJyA0MDA7 IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRNb2R1bHVzID0g JFdvY2hlbiAqIDcNCiAgICAgICAgICAgICAgICBpZiAoJE1vZHVsdXMgLWxlIDApIHsgU2VuZC1F cnJvciAkUmVzICdSb3RhdGlvbiBoYXQga2VpbmUgVGFnZScgNDAwOyBjb250aW51ZSB9DQogICAg ICAgICAgICAgICAgJERpZmYgPSBbaW50XShbbWF0aF06OlJvdW5kKCgkWmllbEQgLSAkU3RhcnRE KS5Ub3RhbERheXMpKQ0KICAgICAgICAgICAgICAgICRJZHggPSAoKCREaWZmICUgJE1vZHVsdXMp ICsgJE1vZHVsdXMpICUgJE1vZHVsdXMNCiAgICAgICAgICAgICAgICAkVGFnZSA9IEAoJFJvdC50 YWdlKQ0KICAgICAgICAgICAgICAgIGlmICgkSWR4IC1nZSAkVGFnZS5Db3VudCkgeyAkSWR4ID0g JElkeCAlICRUYWdlLkNvdW50IH0NCiAgICAgICAgICAgICAgICAkVGFnZVskSWR4XSA9ICRBLmRh dGVuDQogICAgICAgICAgICAgICAgJFJvdC50YWdlID0gJFRhZ2UNCiAgICAgICAgICAgICAgICAk QWRtaW4udGFnZXNkYXRlblJvdGF0aW9uID0gJFJvdA0KICAgICAgICAgICAgICAgIFdyaXRlLUpz b25GaWxlICdhZG1pbi5qc29uJyAkQWRtaW4NCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50 cmFnICdyb3RhdGlvbi5zbG90LmdlYWVuZGVydCcgQHsgZGF0dW0gPSAkQS5kYXR1bTsgaWR4ID0g JElkeDsgcm9sbGUgPSAkUm9sbGUgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7 IHN0YXR1cyA9ICdnZXNwZWljaGVydCc7IGlkeCA9ICRJZHggfQ0KICAgICAgICAgICAgICAgIGNv bnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgTnVyIFN1cGVyVXNlciBkYXJm IGRpZSBMaXN0ZSBhZW5kZXJuIC0gc29uc3Qga29lbm50ZW4gRmFjaGF1ZnNpY2h0ZW4NCiAgICAg ICAgICAgICMgc2ljaCBnZWdlbnNlaXRpZyBoaW56dWZ1ZWdlbiBvaG5lIFN1cGVyVXNlci1adXN0 aW1tdW5nLg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9hZG1pbi9mYWNoYXVmc2lj aHRlbicgLWFuZCAkTWV0aG9kIC1lcSAnUFVUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90 IChUZXN0LUlzdFN1cGVyVXNlcikpIHsgU2VuZC1FcnJvciAkUmVzICdOdXIgU3VwZXJVc2VyIGR1 ZXJmZW4gRmFjaGF1ZnNpY2h0ZW4gdmVyd2FsdGVuJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAg ICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxs IC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29u dGludWUgfQ0KICAgICAgICAgICAgICAgICREYXRlbiA9IFtvYmplY3RbXV1AKCRCb2R5IHwgQ29u dmVydEZyb20tSnNvbikNCiAgICAgICAgICAgICAgICAkQWRtaW4gPSBSZWFkLUpzb25GaWxlICdh ZG1pbi5qc29uJw0KICAgICAgICAgICAgICAgIGlmICgkQWRtaW4uUFNPYmplY3QuUHJvcGVydGll c1snZmFjaGF1ZnNpY2h0ZW4nXSkgew0KICAgICAgICAgICAgICAgICAgICAkQWRtaW4uZmFjaGF1 ZnNpY2h0ZW4gPSAkRGF0ZW4NCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAg ICAgICAgICAkQWRtaW4gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFt ZSAnZmFjaGF1ZnNpY2h0ZW4nIC1WYWx1ZSAkRGF0ZW4NCiAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgV3JpdGUtSnNvbkZpbGUgJ2FkbWluLmpzb24nICRBZG1pbg0KICAgICAgICAg ICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2ZhY2hhdWZzaWNodGVuLmdlYWVuZGVydCcgQHsgYW56 YWhsID0gQCgkRGF0ZW4pLkNvdW50IH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBA eyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnIH07IGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IEZFSUVSVEFHRSAvIEZFUklFTiAvIFNP TkRFUlRFUk1JTkUgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICBpZiAoJFBhdGgg LWVxICcvYXBpL2FkbWluL2ZlaWVydGFnZScgLWFuZCAkTWV0aG9kIC1lcSAnUFVUJykgew0KICAg ICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVycm9yICRSZXMg J0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEJv ZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkp IHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAg ICAgICAgICAgICAgICAkRGF0ZW4gPSBbb2JqZWN0W11dQCgkQm9keSB8IENvbnZlcnRGcm9tLUpz b24pICAjIEFycmF5LUVyaGFsdCB1bnRlciBQUyA1LjEgYXVjaCBiZWkgMSBFbGVtZW50DQogICAg ICAgICAgICAgICAgJEFkbWluID0gUmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAg ICAgICAgICAkQWRtaW4uZmVpZXJ0YWdlID0gJERhdGVuDQogICAgICAgICAgICAgICAgV3JpdGUt SnNvbkZpbGUgJ2FkbWluLmpzb24nICRBZG1pbg0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0Vp bnRyYWcgJ2ZlaWVydGFnZS5nZWFlbmRlcnQnIEB7fQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNv biAkUmVzIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfTsgY29udGludWUNCiAgICAgICAgICAg IH0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvYWRtaW4vZmVyaWVuJyAtYW5kICRN ZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0QWRt aW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNvbnRpbnVl IH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAg ICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jv c3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICREYXRlbiA9IFtvYmplY3RbXV1A KCRCb2R5IHwgQ29udmVydEZyb20tSnNvbikgICMgQXJyYXktRXJoYWx0IHVudGVyIFBTIDUuMSBh dWNoIGJlaSAxIEVsZW1lbnQNCiAgICAgICAgICAgICAgICAkQWRtaW4gPSBSZWFkLUpzb25GaWxl ICdhZG1pbi5qc29uJw0KICAgICAgICAgICAgICAgICRBZG1pbi5mZXJpZW4gPSAkRGF0ZW4NCiAg ICAgICAgICAgICAgICBXcml0ZS1Kc29uRmlsZSAnYWRtaW4uanNvbicgJEFkbWluDQogICAgICAg ICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnZmVyaWVuLmdlYWVuZGVydCcgQHt9DQogICAgICAg ICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JyB9OyBjb250 aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0g QkVTUFJFQ0hVTkdTVk9STEFHRU4gKEIuNCkgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAg ICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2FkbWluL2Jlc3ByZWNodW5nc3ZvcmxhZ2VuJyAtYW5k ICRNZXRob2QgLWVxICdQVVQnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0 QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNvbnRp bnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAg ICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUg Z3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICREYXRlbiA9IFtvYmplY3Rb XV1AKCRCb2R5IHwgQ29udmVydEZyb20tSnNvbikNCiAgICAgICAgICAgICAgICAkQWRtaW4gPSBS ZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0KICAgICAgICAgICAgICAgIGlmICgkQWRtaW4uUFNP YmplY3QuUHJvcGVydGllc1snYmVzcHJlY2h1bmdzVm9ybGFnZW4nXSkgew0KICAgICAgICAgICAg ICAgICAgICAkQWRtaW4uYmVzcHJlY2h1bmdzVm9ybGFnZW4gPSAkRGF0ZW4NCiAgICAgICAgICAg ICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAkQWRtaW4gfCBBZGQtTWVtYmVyIC1N ZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnYmVzcHJlY2h1bmdzVm9ybGFnZW4nIC1WYWx1 ZSAkRGF0ZW4NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgV3JpdGUtSnNvbkZp bGUgJ2FkbWluLmpzb24nICRBZG1pbg0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcg J2Jlc3ByZWNodW5nc3ZvcmxhZ2VuLmdlYWVuZGVydCcgQHsgYW56YWhsID0gQCgkRGF0ZW4pLkNv dW50IH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnZ2VzcGVp Y2hlcnQnIH07IGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICgkUGF0 aCAtZXEgJy9hcGkvYWRtaW4vc29uZGVydGVybWluZScgLWFuZCAkTWV0aG9kIC1lcSAnUFVUJykg ew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVycm9y ICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAg ICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEg JEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVl IH0NCiAgICAgICAgICAgICAgICAkUm9oID0gW29iamVjdFtdXUAoJEJvZHkgfCBDb252ZXJ0RnJv bS1Kc29uKSAgIyBBcnJheS1FcmhhbHQgdW50ZXIgUFMgNS4xIGF1Y2ggYmVpIDEgRWxlbWVudA0K ICAgICAgICAgICAgICAgICMgV2hpdGVsaXN0IChBdWRpdC1JdGVyLUMpOiBudXIgMTEgZXJsYXVi dGUgRmVsZGVyIHBybyBFaW50cmFnIHBlcnNpc3RpZXJlbg0KICAgICAgICAgICAgICAgICRFcmxh dWJ0ID0gQCgnaWQnLCdkYXR1bScsJ2RhdHVtQmlzJywndGl0ZWwnLCd0ZXh0JywnaWNvbicsJ3R5 cCcsJ3dhcm5Nb2R1cycsJ2thdGVnb3JpZScsJ2xvZ29zJywnbG9nb0RhcnN0ZWxsdW5nJykNCiAg ICAgICAgICAgICAgICAkRGF0ZW4gPSBAKCkNCiAgICAgICAgICAgICAgICBmb3JlYWNoICgkUm9o MSBpbiAkUm9oKSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJFJvaDEpIHsg Y29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICAkU2F1YmVyID0gW29yZGVyZWRdQHt9DQog ICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRGZWxkIGluICRFcmxhdWJ0KSB7DQogICAgICAg ICAgICAgICAgICAgICAgICBpZiAoJFJvaDEuUFNPYmplY3QuUHJvcGVydGllc1skRmVsZF0pIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkU2F1YmVyWyRGZWxkXSA9ICRSb2gxLiRGZWxk DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgJERhdGVuICs9IFtwc2N1c3RvbW9iamVjdF0kU2F1YmVyDQogICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICREYXRlbiA9IFtvYmplY3RbXV0kRGF0ZW4NCiAg ICAgICAgICAgICAgICAkQWRtaW4gPSBSZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0KICAgICAg ICAgICAgICAgIGlmICgkQWRtaW4uUFNPYmplY3QuUHJvcGVydGllc1snc29uZGVydGVybWluZSdd KSB7DQogICAgICAgICAgICAgICAgICAgICRBZG1pbi5zb25kZXJ0ZXJtaW5lID0gJERhdGVuDQog ICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgJEFkbWluIHwgQWRk LU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ3NvbmRlcnRlcm1pbmUnIC1W YWx1ZSAkRGF0ZW4NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgV3JpdGUtSnNv bkZpbGUgJ2FkbWluLmpzb24nICRBZG1pbg0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRy YWcgJ3NvbmRlcnRlcm1pbmUuZ2VhZW5kZXJ0JyBAeyBhbnphaGwgPSBAKCREYXRlbikuQ291bnQg fQ0KICAgICAgICAgICAgICAgICRVc2VybmFtZSA9ICRlbnY6VVNFUk5BTUUNCiAgICAgICAgICAg ICAgICAkUm9sbGUgPSBHZXQtVXNlclJvbGxlDQogICAgICAgICAgICAgICAgQWRkLUNoYW5nZUxv Z0VudHJ5ICdzb25kZXJ0ZXJtaW5lJyAkbnVsbCAkbnVsbCAkbnVsbCAkVXNlcm5hbWUgJFJvbGxl IEB7IGFuemFobCA9IEAoJERhdGVuKS5Db3VudCB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29u ICRSZXMgQHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JyB9OyBjb250aW51ZQ0KICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICAjID09PT09PT09PT09PT09PT09PT09PSBTVEFORE9SVEUgPT09PT09 PT09PT09PT09PT09PT09DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2FkbWluL3N0 YW5kb3J0ZScgLWFuZCAkTWV0aG9kIC1lcSAnUFVUJykgew0KICAgICAgICAgICAgICAgIGlmICgt bm90IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3Vu ZycgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJl cQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVz ICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkRGF0 ZW4gPSBbb2JqZWN0W11dQCgkQm9keSB8IENvbnZlcnRGcm9tLUpzb24pICAjIEFycmF5LUVyaGFs dCB1bnRlciBQUyA1LjEgYXVjaCBiZWkgMSBFbGVtZW50DQogICAgICAgICAgICAgICAgJEFkbWlu ID0gUmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAgICBpZiAoJEFkbWlu LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N0YW5kb3J0ZSddKSB7DQogICAgICAgICAgICAgICAgICAg ICRBZG1pbi5zdGFuZG9ydGUgPSAkRGF0ZW4NCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAg ICAgICAgICAgICAgICAgICAkQWRtaW4gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9w ZXJ0eSAtTmFtZSAnc3RhbmRvcnRlJyAtVmFsdWUgJERhdGVuDQogICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxlICdhZG1pbi5qc29uJyAkQWRtaW4NCiAgICAg ICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdzdGFuZG9ydGUuZ2VhZW5kZXJ0JyBAe30NCiAg ICAgICAgICAgICAgICAkVXNlcm5hbWUgPSAkZW52OlVTRVJOQU1FDQogICAgICAgICAgICAgICAg JFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0KICAgICAgICAgICAgICAgIEFkZC1DaGFuZ2VMb2dFbnRy eSAnc3RhbmRvcnRlJyAkbnVsbCAkbnVsbCAkbnVsbCAkVXNlcm5hbWUgJFJvbGxlIEB7fQ0KICAg ICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfTsg Y29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09 PT09PT0gRUlOU1RFTExVTkdFTiA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgIGlm ICgkUGF0aCAtZXEgJy9hcGkvYWRtaW4vZWluc3RlbGx1bmdlbicgLWFuZCAkTWV0aG9kIC1lcSAn UFVUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWluKSkgeyBTZW5k LUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9DQogICAgICAg ICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgIGlmICgkbnVs bCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3NzJyA0MTM7IGNv bnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkRGF0ZW4gPSAkQm9keSB8IENvbnZlcnRGcm9tLUpz b24NCiAgICAgICAgICAgICAgICAkQWRtaW4gPSBSZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0K ICAgICAgICAgICAgICAgICMgV2hpdGVsaXN0IGFuYWxvZyB6dSBzZXJ2ZXIucHk6Mjc2MSAtIEhl YWRlci1Lb25maWcgKyBhbGxlDQogICAgICAgICAgICAgICAgIyBUb3AtTGV2ZWwtQnJhbmRpbmcv RWluc3RlbGx1bmdlbi1GZWxkZXIuDQogICAgICAgICAgICAgICAgZm9yZWFjaCAoJEtleSBpbiBA KCdqYWhyJywnaW5ha3Rpdml0YWV0TWludXRlbicsJ2luZm90ZXh0Jywnc3VwcG9ydGluZm8nLCdz Y2hsaWVzc2luZm8nLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsYW51 bmdzTmFtZScsJ3BsYW51bmdzS3VyeicsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnZXJpbm5lcnVuZycsJ2N1c3RvbUxvZ28nLCdjdXN0b21Mb2dvSG9laGUnLA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJpbmRsaWNoa2VpdHNmZW5zdGVyJywn YWxsZ2VtZWluZUhpbGZlJywnYmVkaWVudW5nc0hpbndlaXNlJywnd29jaGVucGxhbktvcGYnLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlYWRlcktvbmZpZycsJ2hlYWRl ckxhYmVscycsJ2NvdW50ZXJLb25maWcnLCdtYXJrZXJLb25maWcnLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3ZvcmdhYmVBbHNQaWxsZScsJ21lZGllbkthdGVnb3JpZW4n KSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoJERhdGVuLlBTT2JqZWN0LlByb3BlcnRpZXNb JEtleV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkQWRtaW4uUFNPYmplY3QuUHJv cGVydGllc1skS2V5XSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRBZG1pbi4kS2V5 ID0gJERhdGVuLiRLZXkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgJEFkbWluIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3Rl UHJvcGVydHkgLU5hbWUgJEtleSAtVmFsdWUgJERhdGVuLiRLZXkNCiAgICAgICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICBXcml0ZS1Kc29uRmlsZSAnYWRtaW4uanNvbicgJEFkbWluDQogICAgICAgICAg ICAgICAgV3JpdGUtTG9nRWludHJhZyAnZWluc3RlbGx1bmdlbi5nZWFlbmRlcnQnIEB7fQ0KICAg ICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfTsg Y29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09 PT09PT0gUExBTlVORyA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0 aCAtZXEgJy9hcGkvcGxhbnVuZycgLWFuZCAkTWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAg ICAgICAgICRQbGFudW5nID0gUmVhZC1Kc29uRmlsZSAncGxhbnVuZy5qc29uJw0KICAgICAgICAg ICAgICAgIGlmICgkbnVsbCAtZXEgJFBsYW51bmcpIHsgU2VuZC1FcnJvciAkUmVzICdwbGFudW5n Lmpzb24gbmljaHQgZ2VmdW5kZW4nIDQwNCB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAj IEludGVncml0YWV0cy1DaGVjayBOSUNIVCBoaWVyIGlubGluZSAtLSBkZXIgRnJvbnRlbmQtc3lu Yy1jbGllbnQNCiAgICAgICAgICAgICAgICAgICAgIyBwb2xsdCAvYXBpL2ludGVncml0YWV0L3N0 YXR1cyBzZXBhcmF0LiBJbmxpbmUtQ2hlY2sgdmVyZG9wcGVsdA0KICAgICAgICAgICAgICAgICAg ICAjIGJlaSBqZWRlbSBQYWdlLUxvYWQgZGFzIFJlYWQrSXRlcmF0ZS1Wb2x1bWVuLCB3YXMgYXVm IFNNQi0NCiAgICAgICAgICAgICAgICAgICAgIyBTaGFyZSAoUTopIG1lcmtsaWNoIGJsb2NraWVy dCB1bmQgaW0gV29yc3QtQ2FzZSBkZW4NCiAgICAgICAgICAgICAgICAgICAgIyBPdXRwdXRTdHJl YW0tV3JpdGUgdGltZW91dGV0IChIVFRQLlNZUyAvIEJyb3dzZXItQWJvcnQpLg0KICAgICAgICAg ICAgICAgICAgICBTZW5kLUpzb24gJFJlcyAkUGxhbnVuZw0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09 PT09PT09PT09PT09PT09PT09PSBJTlRFR1JJVEFFVCAoUGhhc2UgRykgPT09PT09PT09PT09PT09 PT09PT09DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2ludGVncml0YWV0L3N0YXR1 cycgLWFuZCAkTWV0aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAgICRlcmcgPSAkbnVs bA0KICAgICAgICAgICAgICAgIHRyeSB7ICRlcmcgPSBJbnZva2UtSW50ZWdyaXRhZXRQcnVlZnVu ZyAkZmFsc2UgfSBjYXRjaCB7ICRlcmcgPSBAeyBvayA9ICRmYWxzZTsgZmVobGVyID0gIiRfIjsg dmVybGV0enVuZ2VuID0gQCgpIH0gfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzICRl cmcNCiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAg aWYgKCRQYXRoIC1lcSAnL2FwaS9pbnRlZ3JpdGFldC9uZXUtc2lnbmllcmVuJyAtYW5kICRNZXRo b2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdFN1cGVy VXNlcikpIHsgU2VuZC1FcnJvciAkUmVzICdOdXIgU3VwZXJVc2VyIGRhcmYgbmV1IHNpZ25pZXJl bicgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgIyBWZXJpZnkgaXN0IFJFQUQtT05M WSB1bmQgbGFldWZ0IFZPUiBkZW0gTG9jaywgZGFtaXQgZGVyIExvY2sNCiAgICAgICAgICAgICAg ICAjIHNvIGt1cnogd2llIG1vZWdsaWNoIGdlaGFsdGVuIHdpcmQuIFJlc3VsdGF0IGFscw0KICAg ICAgICAgICAgICAgICMgdmVybGV0enVuZ2VuWnV2b3IgaW4gUmVzcG9uc2Ug4oCUIEZyb250ZW5k IHplaWd0IGRhcyBpbSBUb2FzdA0KICAgICAgICAgICAgICAgICMgKHN5bmMtY2xpZW50LmpzOjI1 MiAiSW50ZWdyaXRhZXQgbmV1IHNpZ25pZXJ0IChOIFZlcmxldHp1bmdlbg0KICAgICAgICAgICAg ICAgICMgYXVmZ2Vsb2VzdCkiKS4gTWlycm9yIHp1IHNlcnZlci5weToyMjYzLTIyODUuDQogICAg ICAgICAgICAgICAgJFBsYW51bmdQcmUgPSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQog ICAgICAgICAgICAgICAgJFZlcmxldHp1bmdlblp1dm9yID0gQCgpDQogICAgICAgICAgICAgICAg aWYgKCRudWxsIC1uZSAkUGxhbnVuZ1ByZSkgew0KICAgICAgICAgICAgICAgICAgICB0cnkgeyAk VmVybGV0enVuZ2VuWnV2b3IgPSBWZXJpZnktUGxhbnVuZ0ludGVncml0YWV0ICRQbGFudW5nUHJl IH0gY2F0Y2ggeyAkVmVybGV0enVuZ2VuWnV2b3IgPSBAKCkgfQ0KICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAkU3RhcnRUcyA9IEdldC1EYXRlDQogICAgICAgICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgICAgICAgICAgSW52b2tlLVdpdGhGaWxlTG9jayAncGxhbnVuZy5qc29u JyB7DQogICAgICAgICAgICAgICAgICAgICAgICAkUCA9IFJlYWQtSnNvbkZpbGUgJ3BsYW51bmcu anNvbicNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJFApIHsgV3JpdGUt UGxhbnVuZ01pdEludGVncml0YWV0ICRQIH0NCiAgICAgICAgICAgICAgICAgICAgfSA2MDAwMCB8 IE91dC1OdWxsDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAg IFdyaXRlLVN0YXJ0dXBMb2cgIkZFSExFUiBuZXUtc2lnbmllcmVuOiAkXyAoJCgkXy5TY3JpcHRT dGFja1RyYWNlKSkiDQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAiTmV1LVNp Z25pZXJlbiBmZWhsZ2VzY2hsYWdlbjogJF8iIDUwMzsgY29udGludWUNCiAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgJERhdWVyTXMgPSBbaW50XSgoR2V0LURhdGUpIC0gJFN0YXJ0 VHMpLlRvdGFsTWlsbGlzZWNvbmRzDQogICAgICAgICAgICAgICAgJHNjcmlwdDpJbnRlZ3JpdHlW ZXJpZnlDYWNoZSA9ICRudWxsDQogICAgICAgICAgICAgICAgJFZ6Q291bnQgPSBAKCRWZXJsZXR6 dW5nZW5adXZvcikuQ291bnQNCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdpbnRl Z3JpdGFldC5uZXVfc2lnbmllcnQnIEB7IHJvbGxlID0gKEdldC1Vc2VyUm9sbGUpOyBkYXVlck1z ID0gJERhdWVyTXM7IHZlcmxldHp1bmdlblp1dm9yID0gJFZ6Q291bnQgfQ0KICAgICAgICAgICAg ICAgIFNlbmQtSnNvbiAkUmVzIEB7IG9rID0gJHRydWU7IGRhdWVyTXMgPSAkRGF1ZXJNczsgdmVy bGV0enVuZ2VuWnV2b3IgPSAkVnpDb3VudCB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gWkVMTC1M T0NLIChQaGFzZSBBMSkgPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICAjIFBPU1Qg L2FwaS9sb2NrL3plbGxlICB7IGRhdHVtLCBwZXJzb25JZCB9IC0+IHsgb2ssIHRva2VuLCBleHBp cmVzQXQgfSBvZGVyIDQyMyB7IHNwZXJyZXIsIHNlaXQsIHJvbGxlIH0NCiAgICAgICAgICAgIGlm ICgkUGF0aCAtZXEgJy9hcGkvbG9jay96ZWxsZScgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsN CiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAg aWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3Mn IDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRBID0gJEJvZHkgfCBDb252ZXJ0RnJv bS1Kc29uDQogICAgICAgICAgICAgICAgJERhdHVtID0gW3N0cmluZ10kQS5kYXR1bQ0KICAgICAg ICAgICAgICAgICRQZXJzb25JZCA9IFtzdHJpbmddJEEucGVyc29uSWQNCiAgICAgICAgICAgICAg ICBpZiAoLW5vdCAoVGVzdC1Mb2NrU2FmZURhdHVtICREYXR1bSkgLW9yIC1ub3QgKFRlc3QtTG9j a1NhZmVJZCAkUGVyc29uSWQpKSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJl cyAnVW5ndWVsdGlnZSBkYXR1bS9wZXJzb25JZCcgNDAwOyBjb250aW51ZQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAkVXNlcm5hbWUgPSAkZW52OlVTRVJOQU1FDQogICAgICAg ICAgICAgICAgJFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0KICAgICAgICAgICAgICAgICRSZXN1bHQg PSBBY3F1aXJlLUNlbGxMb2NrICREYXR1bSAkUGVyc29uSWQgJFVzZXJuYW1lICRSb2xsZSAkZmFs c2UNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUmVzdWx0Lm9rKSB7DQogICAgICAgICAgICAg ICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7DQogICAgICAgICAgICAgICAgICAgICAgICBmZWhsZXIg ICA9ICdnZXNwZXJydCcNCiAgICAgICAgICAgICAgICAgICAgICAgIG1lbGR1bmcgID0gIldpcmQg YmVhcmJlaXRldCB2b24gJCgkUmVzdWx0LmV4aXN0aW5nLnVzZXJuYW1lKSINCiAgICAgICAgICAg ICAgICAgICAgICAgIHNwZXJyZXIgID0gJFJlc3VsdC5leGlzdGluZy51c2VybmFtZQ0KICAgICAg ICAgICAgICAgICAgICAgICAgcm9sbGUgICAgPSAkUmVzdWx0LmV4aXN0aW5nLnJvbGxlDQogICAg ICAgICAgICAgICAgICAgICAgICBzZWl0ICAgICA9ICRSZXN1bHQuZXhpc3RpbmcubG9ja2VkQXQN CiAgICAgICAgICAgICAgICAgICAgICAgIGthbm5Gb3JjZSA9IChUZXN0LURhcmZVZWJlcnNjaHJl aWJlbiAkUm9sbGUpDQogICAgICAgICAgICAgICAgICAgIH0gNDIzDQogICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNv biAkUmVzIEB7DQogICAgICAgICAgICAgICAgICAgIG9rICAgICAgID0gJHRydWUNCiAgICAgICAg ICAgICAgICAgICAgdG9rZW4gICAgPSAkUmVzdWx0LmxvY2sudG9rZW4NCiAgICAgICAgICAgICAg ICAgICAgZGF0dW0gICAgPSAkRGF0dW0NCiAgICAgICAgICAgICAgICAgICAgcGVyc29uSWQgPSAk UGVyc29uSWQNCiAgICAgICAgICAgICAgICAgICAgcm9sbGUgICAgPSAkUm9sbGUNCiAgICAgICAg ICAgICAgICAgICAgbG9ja2VkQXQgPSAkUmVzdWx0LmxvY2subG9ja2VkQXQNCiAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgIyBQT1NUIC9hcGkvbG9jay96ZWxsZS9mb3JjZSAgeyBkYXR1bSwgcGVyc29uSWQgfSAt PiB1ZWJlcnNjaHJlaWJ0IGZyZW1kZW4gTG9jaw0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAn L2FwaS9sb2NrL3plbGxlL2ZvcmNlJyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAg ICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51 bGwgLWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBj b250aW51ZSB9DQogICAgICAgICAgICAgICAgJEEgPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24N CiAgICAgICAgICAgICAgICAkRGF0dW0gPSBbc3RyaW5nXSRBLmRhdHVtDQogICAgICAgICAgICAg ICAgJFBlcnNvbklkID0gW3N0cmluZ10kQS5wZXJzb25JZA0KICAgICAgICAgICAgICAgIGlmICgt bm90IChUZXN0LUxvY2tTYWZlRGF0dW0gJERhdHVtKSAtb3IgLW5vdCAoVGVzdC1Mb2NrU2FmZUlk ICRQZXJzb25JZCkpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICdVbmd1 ZWx0aWdlIGRhdHVtL3BlcnNvbklkJyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICRVc2VybmFtZSA9ICRlbnY6VVNFUk5BTUUNCiAgICAgICAgICAgICAg ICAkUm9sbGUgPSBHZXQtVXNlclJvbGxlDQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3Qt RGFyZlVlYmVyc2NocmVpYmVuICRSb2xsZSkpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1F cnJvciAkUmVzICdGb3JjZS1Mb2NrIG51ciBmdWVyIEZhY2hhdWZzaWNodC9TdXBlclVzZXInIDQw MzsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIyBPcmlnaW5h bC1Pd25lciB2b3IgRm9yY2UgbGVzZW4gLS0gZnVlciBBdWRpdC1UcmFpbCBpbSBMb2didWNoLg0K ICAgICAgICAgICAgICAgICRFeGlzdGluZ0xvY2tGdWVyTG9nID0gUmVhZC1DZWxsTG9jayAkRGF0 dW0gJFBlcnNvbklkDQogICAgICAgICAgICAgICAgJE9yaWdpbmFsT3duZXIgPSBpZiAoJG51bGwg LW5lICRFeGlzdGluZ0xvY2tGdWVyTG9nKSB7ICRFeGlzdGluZ0xvY2tGdWVyTG9nLnVzZXJuYW1l IH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAkUmVzdWx0ID0gQWNxdWlyZS1DZWxs TG9jayAkRGF0dW0gJFBlcnNvbklkICRVc2VybmFtZSAkUm9sbGUgJHRydWUNCiAgICAgICAgICAg ICAgICBXcml0ZS1Mb2dFaW50cmFnICdsb2NrLmZvcmNlJyBAew0KICAgICAgICAgICAgICAgICAg ICBkYXR1bSAgICAgICAgID0gJERhdHVtDQogICAgICAgICAgICAgICAgICAgIHBlcnNvbklkICAg ICAgPSAkUGVyc29uSWQNCiAgICAgICAgICAgICAgICAgICAgcm9sbGUgICAgICAgICA9ICRSb2xs ZQ0KICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbE93bmVyID0gJE9yaWdpbmFsT3duZXINCiAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsNCiAgICAg ICAgICAgICAgICAgICAgb2sgICAgICAgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICB0b2tl biAgICA9ICRSZXN1bHQubG9jay50b2tlbg0KICAgICAgICAgICAgICAgICAgICBkYXR1bSAgICA9 ICREYXR1bQ0KICAgICAgICAgICAgICAgICAgICBwZXJzb25JZCA9ICRQZXJzb25JZA0KICAgICAg ICAgICAgICAgICAgICByb2xsZSAgICA9ICRSb2xsZQ0KICAgICAgICAgICAgICAgICAgICBsb2Nr ZWRBdCA9ICRSZXN1bHQubG9jay5sb2NrZWRBdA0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjIFBPU1QgL2Fw aS9sb2NrL3plbGxlL2hlYXJ0YmVhdCAgeyB0b2tlbiB9IC0+IGFrdHVhbGlzaWVydCBsYXN0QmVh dA0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9sb2NrL3plbGxlL2hlYXJ0YmVhdCcg LWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQt Qm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVy cm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAg ICAgICRBID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgJFRva2Vu ID0gaWYgKCRBLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Rva2VuJ10pIHsgW3N0cmluZ10kQS50b2tl biB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldo aXRlU3BhY2UoJFRva2VuKSkgeyBTZW5kLUVycm9yICRSZXMgJ1Rva2VuIGZlaGx0JyA0MDA7IGNv bnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkUmVzdWx0ID0gUmVmcmVzaC1DZWxsTG9jayAkVG9r ZW4NCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUmVzdWx0Lm9rKSB7DQogICAgICAgICAgICAg ICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IGZlaGxlciA9ICd1bmJla2FubnRlcl9sb2NrJzsgbWVs ZHVuZyA9ICdMb2NrIGV4aXN0aWVydCBuaWNodCAobWVocikuJyB9IDQwNA0KICAgICAgICAgICAg ICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBTZW5k LUpzb24gJFJlcyBAeyBvayA9ICR0cnVlOyBsYXN0QmVhdCA9ICRSZXN1bHQubG9jay5sYXN0QmVh dCB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgIyBERUxFVEUgL2FwaS9sb2NrL3plbGxlICB7IHRva2VuIH0gLT4gTG9jayBmcmVpZ2ViZW4N CiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvbG9jay96ZWxsZScgLWFuZCAkTWV0aG9k IC1lcSAnREVMRVRFJykgew0KICAgICAgICAgICAgICAgICMgREVMRVRFLUJvZHkgbGVzZW4gKEh0 dHBMaXN0ZW5lciB1bnRlcnN0dWV0enQgZGFzKQ0KICAgICAgICAgICAgICAgICRCb2R5ID0gUmVh ZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICAkVG9rZW4gPSAkbnVsbA0KICAgICAgICAgICAg ICAgIGlmICgkQm9keSkgew0KICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAg ICAgICAgICAgICAgJEEgPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgkQS5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0b2tlbiddKSB7ICRUb2tlbiA9 IFtzdHJpbmddJEEudG9rZW4gfQ0KICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHt9DQogICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICMgQXVjaCBRdWVyeS1TdHJpbmcgdW50ZXJz dHVldHplbiwgZnVlciBzZW5kQmVhY29uLUZhZWxsZQ0KICAgICAgICAgICAgICAgIGlmIChbc3Ry aW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRUb2tlbikgLWFuZCAkUmVxLlVybC5RdWVyeSkgew0K ICAgICAgICAgICAgICAgICAgICAkUSA9IFtTeXN0ZW0uV2ViLkh0dHBVdGlsaXR5XTo6UGFyc2VR dWVyeVN0cmluZygkUmVxLlVybC5RdWVyeSkNCiAgICAgICAgICAgICAgICAgICAgJFRva2VuID0g W3N0cmluZ10kUVsndG9rZW4nXQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBp ZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkVG9rZW4pKSB7IFNlbmQtRXJyb3IgJFJl cyAnVG9rZW4gZmVobHQnIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRSZXN1bHQg PSBSZWxlYXNlLUNlbGxMb2NrICRUb2tlbg0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVz IEB7IG9rID0gJFJlc3VsdC5vayB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgIyBHRVQgL2FwaS9sb2NrL3plbGxlbiAtPiBMaXN0ZSBhbGxl ciBha3RpdmVuIExvY2tzIChmdWVyIExpdmUtSW5kaWNhdG9yLVJlbmRlcikNCiAgICAgICAgICAg IGlmICgkUGF0aCAtZXEgJy9hcGkvbG9jay96ZWxsZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcp IHsNCiAgICAgICAgICAgICAgICAkTG9ja3MgPSBHZXQtQWxsQWN0aXZlQ2VsbExvY2tzDQogICAg ICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgbG9ja3MgPSAkTG9ja3MgfQ0KICAgICAgICAg ICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgR0VUIC9hcGkv cGxhbnVuZy9jaGFuZ2VzP3NlaXQ9PGlzby10cz4gLT4gRGVsdGEtTGlzdGUgZnVlciBMaXZlLVN5 bmMgKFBoYXNlIEE0KQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5nL2No YW5nZXMnIC1hbmQgJE1ldGhvZCAtZXEgJ0dFVCcpIHsNCiAgICAgICAgICAgICAgICAkUSA9IFtT eXN0ZW0uV2ViLkh0dHBVdGlsaXR5XTo6UGFyc2VRdWVyeVN0cmluZygkUmVxLlVybC5RdWVyeSkN CiAgICAgICAgICAgICAgICAkU2VpdCA9IFtzdHJpbmddJFFbJ3NlaXQnXQ0KICAgICAgICAgICAg ICAgICRDaGFuZ2VzID0gR2V0LUNoYW5nZXNTaW5jZSAkU2VpdA0KICAgICAgICAgICAgICAgIFNl bmQtSnNvbiAkUmVzIEB7DQogICAgICAgICAgICAgICAgICAgIHNlcnZlclRzID0gKEdldC1EYXRl KS5Ub1VuaXZlcnNhbFRpbWUoKS5Ub1N0cmluZygnbycpDQogICAgICAgICAgICAgICAgICAgIGNo YW5nZXMgID0gJENoYW5nZXMNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgY29u dGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyBaZWxsZSBhZW5kZXJuDQogICAg ICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcvemVsbGUnIC1hbmQgJE1ldGhvZCAt ZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAg ICAgICAgICAgICAgIGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZy YWdlIHp1IGdyb3NzJyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQSA9ICRCb2R5 IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgICREYXR1bSA9IFtzdHJpbmddJEEu ZGF0dW0NCiAgICAgICAgICAgICAgICAkUGVyc29uSWQgPSBbc3RyaW5nXSRBLnBlcnNvbklkDQog ICAgICAgICAgICAgICAgJFdlcnQgPSBpZiAoJEEud2VydCkgeyBbc3RyaW5nXSRBLndlcnQgfSBl bHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICRIYXRQZmxpY2h0ID0gJEEuUFNPYmplY3QuUHJv cGVydGllc1sncGZsaWNodCddDQogICAgICAgICAgICAgICAgJFBmbGljaHROZXUgPSBpZiAoJEhh dFBmbGljaHQpIHsgW2Jvb2xdJEEucGZsaWNodCB9IGVsc2UgeyAkZmFsc2UgfQ0KICAgICAgICAg ICAgICAgICRIYXRFcndhcnRldCA9ICRBLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2Vyd2FydGV0ZXJB bHRlcldlcnQnXQ0KICAgICAgICAgICAgICAgICRFcndhcnRldCA9IGlmICgkSGF0RXJ3YXJ0ZXQp IHsgW3N0cmluZ10kQS5lcndhcnRldGVyQWx0ZXJXZXJ0IH0gZWxzZSB7ICRudWxsIH0NCiAgICAg ICAgICAgICAgICAkTG9ja1Rva2VuID0gaWYgKCRBLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2xvY2tU b2tlbiddKSB7IFtzdHJpbmddJEEubG9ja1Rva2VuIH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAg ICAgICAgICAkVXNlcm5hbWUgPSAkZW52OlVTRVJOQU1FDQogICAgICAgICAgICAgICAgJFJvbGxl ID0gR2V0LVVzZXJSb2xsZQ0KICAgICAgICAgICAgICAgICREYXJmVWViZXJzY2hyZWliZW4gPSBU ZXN0LURhcmZVZWJlcnNjaHJlaWJlbiAkUm9sbGUNCg0KICAgICAgICAgICAgICAgICRBZG1pbkZ1 ZXJWRiA9IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQoNCiAgICAgICAgICAgICAgICAjIFdo aXRlbGlzdCBnZWdlbiBhZG1pbi5zY2hpY2h0Y29kZXMgLS0gdmVyaGluZGVydCBPcnBoYW4tQ29k ZXMgd2llDQogICAgICAgICAgICAgICAgIyBkaWUgJ2RmclUnLydkZnIvVScvJ2FiZyctVmFyaWFu dHMsIGRpZSBoaXN0b3Jpc2NoIGR1cmNoIFRpcHBmZWhsZXINCiAgICAgICAgICAgICAgICAjIGlu IGRpZSBEYXRlbiBnZWxhbmd0IHdhcmVuIChNaWdyYXRpb24gaW4gQXVkaXQtUGhhc2UtMikuIE1p cnJvcg0KICAgICAgICAgICAgICAgICMgenUgc2VydmVyLnB5OjI5NDQtMjk1Mi4NCiAgICAgICAg ICAgICAgICAkVmFsaWRDb2RlcyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVy aWMuSGFzaFNldFtzdHJpbmddDQogICAgICAgICAgICAgICAgW3ZvaWRdJFZhbGlkQ29kZXMuQWRk KCcnKQ0KICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJEFkbWluRnVlclZGIC1hbmQgJEFk bWluRnVlclZGLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NjaGljaHRjb2RlcyddKSB7DQogICAgICAg ICAgICAgICAgICAgIGZvcmVhY2ggKCRTYyBpbiAkQWRtaW5GdWVyVkYuc2NoaWNodGNvZGVzKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRTYyAtYW5kICRTYy5QU09i amVjdC5Qcm9wZXJ0aWVzWydjb2RlJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBb dm9pZF0kVmFsaWRDb2Rlcy5BZGQoW3N0cmluZ10kU2MuY29kZSkNCiAgICAgICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICBpZiAoLW5vdCAkVmFsaWRDb2Rlcy5Db250YWlucygkV2VydCkpIHsNCiAgICAg ICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICJVbmJla2FubnRlciBTY2hpY2h0Y29kZTog JyRXZXJ0JyIgNDAwDQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgIyBWZXJiaW5kbGljaGtlaXRzZmVuc3RlciAoRC4xKTog cmVndWxhZXJlIFVzZXIga29lbm5lbiBUYWdlIGRhdm9yIG5pY2h0IGVkaXRpZXJlbg0KICAgICAg ICAgICAgICAgIGlmICgkUm9sbGUgLWVxICd1c2VyJykgew0KICAgICAgICAgICAgICAgICAgICBp ZiAoVGVzdC1EYXR1bUluVmVyYmluZGxpY2hrZWl0ICREYXR1bSAkQWRtaW5GdWVyVkYpIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmVobGVyICAgICAgICAgID0gJ3ZlcmJpbmRsaWNoa2VpdHNmZW5zdGVyJw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbGR1bmcgICAgICAgICA9ICdEYXR1bSBsaWVn dCBpbSBWZXJiaW5kbGljaGtlaXRzZmVuc3RlciAtIGZ1ZXIgcmVndWxhZXJlIFVzZXIgbm9jaCBn ZXNwZXJydC4nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJzdGVyRnJlaWVyVGFnID0g KEdldC1FcnN0ZXJGcmVpZXJUYWdJc28gJEFkbWluRnVlclZGKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgfSA0MDMNCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAjIFBlc3Np bWlzdGljIENlbGwtTG9jayBwcnVlZmVuIChQaGFzZSBBKQ0KICAgICAgICAgICAgICAgICRFeGlz dGluZ0xvY2sgPSBSZWFkLUNlbGxMb2NrICREYXR1bSAkUGVyc29uSWQNCiAgICAgICAgICAgICAg ICBpZiAoJG51bGwgLW5lICRFeGlzdGluZ0xvY2spIHsNCiAgICAgICAgICAgICAgICAgICAgJFRv a2VuUGFzc3QgPSAoJExvY2tUb2tlbiAtYW5kICRFeGlzdGluZ0xvY2sudG9rZW4gLWVxICRMb2Nr VG9rZW4pDQogICAgICAgICAgICAgICAgICAgICRTZWxic3RMb2NrID0gKCRFeGlzdGluZ0xvY2su dXNlcm5hbWUgLWllcSAkVXNlcm5hbWUpDQogICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRU b2tlblBhc3N0IC1hbmQgLW5vdCAkU2VsYnN0TG9jayAtYW5kIC1ub3QgJERhcmZVZWJlcnNjaHJl aWJlbikgew0KICAgICAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmZWhsZXIgID0gJ2dlc3BlcnJ0Jw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1lbGR1bmcgPSAiRGllc2UgWmVsbGUgd2lyZCBnZXJhZGUgdm9uICQo JEV4aXN0aW5nTG9jay51c2VybmFtZSkgYmVhcmJlaXRldC4iDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3BlcnJlciA9ICRFeGlzdGluZ0xvY2sudXNlcm5hbWUNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICByb2xsZSAgID0gJEV4aXN0aW5nTG9jay5yb2xsZQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlaXQgICAgPSAkRXhpc3RpbmdMb2NrLmxvY2tlZEF0DQogICAgICAg ICAgICAgICAgICAgICAgICB9IDQyMw0KICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUN CiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg ICAgICRMb2NrUmVzdWx0ID0gJG51bGwNCiAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAg ICAgICAgICAgICAkTG9ja1Jlc3VsdCA9IEludm9rZS1XaXRoRmlsZUxvY2sgJ3BsYW51bmcuanNv bicgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdw bGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRQbGFu dW5nKSB7IHJldHVybiBAeyB0eXAgPSAnZXJyb3InOyBjb2RlID0gNDA0OyBtc2cgPSAncGxhbnVu Zy5qc29uIG5pY2h0IGdlZnVuZGVuJyB9IH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgJEFs dGVyV2VydCA9ICcnDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5Q U09iamVjdC5Qcm9wZXJ0aWVzWydlaW50cmFlZ2UnXSkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRQbGFudW5nIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5h bWUgJ2VpbnRyYWVnZScgLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcu ZWludHJhZWdlLlBTT2JqZWN0LlByb3BlcnRpZXNbJERhdHVtXSkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRQbGFudW5nLmVpbnRyYWVnZSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUg Tm90ZVByb3BlcnR5IC1OYW1lICREYXR1bSAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQog ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkUGxhbnVuZy5laW50cmFlZ2UuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJFBl cnNvbklkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQWx0ZXJXZXJ0ID0g W3N0cmluZ10kUGxhbnVuZy5laW50cmFlZ2UuJERhdHVtLiRQZXJzb25JZA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgICAgICAgICAgIyBPcHRpbWlzdGljLUNvbmN1cnJlbmN5DQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoJEhhdEVyd2FydGV0IC1hbmQgJEVyd2FydGV0IC1uZSAkQWx0ZXJXZXJ0KSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IHR5cCA9ICdrb25mbGlrdCc7 IGFrdHVlbGwgPSAkQWx0ZXJXZXJ0IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgICAgICAgICAgICAgIyBQZmxpY2h0LU92ZXJyaWRlLUNoZWNrIChQaGFzZSBCKTog YmVzdGVoZW5kZXMgcGZsaWNodD10cnVlIG51ciBTVS9GYWNoYXVmc2ljaHQNCiAgICAgICAgICAg ICAgICAgICAgICAgICRBbHRlclBmbGljaHQgPSAkZmFsc2UNCiAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydwZmxpY2h0J10gLWFuZCAkUGxh bnVuZy5wZmxpY2h0LlBTT2JqZWN0LlByb3BlcnRpZXNbJERhdHVtXSkgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5wZmxpY2h0LiREYXR1bS5QU09iamVjdC5Qcm9w ZXJ0aWVzWyRQZXJzb25JZF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFs dGVyUGZsaWNodCA9IFtib29sXSRQbGFudW5nLnBmbGljaHQuJERhdHVtLiRQZXJzb25JZA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgIGlmICgkQWx0ZXJQZmxpY2h0IC1hbmQgLW5vdCAkRGFyZlVl YmVyc2NocmVpYmVuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IHR5 cCA9ICdwZmxpY2h0Z2VzcGVycnQnOyBhbHRlcldlcnQgPSAkQWx0ZXJXZXJ0IH0NCiAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICMgUGZsaWNodC1ORVUt U2V0emVuOiBudXIgU1UvRmFjaGF1ZnNpY2h0DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAo JEhhdFBmbGljaHQgLWFuZCAkUGZsaWNodE5ldSAtYW5kIC1ub3QgJERhcmZVZWJlcnNjaHJlaWJl bikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBAeyB0eXAgPSAncGZsaWNo dHNldHp1bmdWZXJib3RlbicgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgICAgICAgICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkV2VydCkp IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcuZWludHJhZWdlLiRE YXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRQZXJzb25JZF0pIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJFBsYW51bmcuZWludHJhZWdlLiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0 aWVzLlJlbW92ZSgkUGVyc29uSWQpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoJFBsYW51bmcuZWludHJhZWdlLiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRQZXJz b25JZF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcuZWludHJh ZWdlLiREYXR1bS4kUGVyc29uSWQgPSAkV2VydA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLmVpbnRy YWVnZS4kRGF0dW0gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAk UGVyc29uSWQgLVZhbHVlICRXZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAjIFBmbGlj aHQtRmxhZyBzZXBhcmF0IHZlcndhbHRlbg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1u b3QgJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGllc1sncGZsaWNodCddKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQ cm9wZXJ0eSAtTmFtZSAncGZsaWNodCcgLVZhbHVlIChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgJFdlcnRWb3Jo YW5kZW4gPSAtbm90IFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFdlcnQpDQogICAgICAg ICAgICAgICAgICAgICAgICAkU29sbFNldHplbiA9ICRIYXRQZmxpY2h0IC1hbmQgJFBmbGljaHRO ZXUgLWFuZCAkV2VydFZvcmhhbmRlbg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRTb2xs U2V0emVuKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmcu cGZsaWNodC5QU09iamVjdC5Qcm9wZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJFBsYW51bmcucGZsaWNodCB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUg Tm90ZVByb3BlcnR5IC1OYW1lICREYXR1bSAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmICgkUGxhbnVuZy5wZmxpY2h0LiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRQZXJzb25J ZF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGZsaWNodC4k RGF0dW0uJFBlcnNvbklkID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5wZmxpY2h0LiRE YXR1bSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICRQZXJzb25J ZCAtVmFsdWUgJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICB9IGVsc2VpZiAoJEhhdFBmbGljaHQgLW9yIC1ub3QgJFdlcnRWb3JoYW5k ZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcucGZsaWNodC5Q U09iamVjdC5Qcm9wZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRQbGFudW5nLnBmbGljaHQuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJFBl cnNvbklkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcu cGZsaWNodC4kRGF0dW0uUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJFBlcnNvbklkKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIChAKCRQbGFudW5nLnBmbGljaHQuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXMp LkNvdW50IC1lcSAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxh bnVuZy5wZmxpY2h0LlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCREYXR1bSkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgV3Jp dGUtUGxhbnVuZ01pdEludGVncml0YWV0ICRQbGFudW5nIEAoDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQHsga2luZCA9ICdlaW50cmFlZ2UnOyBkYXR1bSA9ICREYXR1bTsgcGVyc29uSWQg PSAkUGVyc29uSWQgfSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAeyBraW5kID0gJ3Bm bGljaHQnOyAgIGRhdHVtID0gJERhdHVtOyBwZXJzb25JZCA9ICRQZXJzb25JZCB9DQogICAgICAg ICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQHsgdHlw ID0gJ29rJzsgYWx0ZXJXZXJ0ID0gJEFsdGVyV2VydDsgYWx0ZXJQZmxpY2h0ID0gJEFsdGVyUGZs aWNodDsgcGxhbnVuZyA9ICRQbGFudW5nIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMg IiRfIiA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg aWYgKCRMb2NrUmVzdWx0LnR5cCAtZXEgJ2Vycm9yJykgeyBTZW5kLUVycm9yICRSZXMgJExvY2tS ZXN1bHQubXNnICRMb2NrUmVzdWx0LmNvZGU7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBp ZiAoJExvY2tSZXN1bHQudHlwIC1lcSAna29uZmxpa3QnKSB7DQogICAgICAgICAgICAgICAgICAg IFNlbmQtSnNvbiAkUmVzIEB7DQogICAgICAgICAgICAgICAgICAgICAgICBmZWhsZXIgICAgICAg ID0gJ2tvbmZsaWt0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgbWVsZHVuZyAgICAgICA9ICdE aWVzZSBaZWxsZSB3dXJkZSBpbnp3aXNjaGVuIGdlYWVuZGVydC4nDQogICAgICAgICAgICAgICAg ICAgICAgICBha3R1ZWxsZXJXZXJ0ID0gJExvY2tSZXN1bHQuYWt0dWVsbA0KICAgICAgICAgICAg ICAgICAgICB9IDQwOQ0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJExvY2tSZXN1bHQudHlwIC1lcSAncGZsaWNodGdl c3BlcnJ0Jykgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAew0KICAgICAg ICAgICAgICAgICAgICAgICAgZmVobGVyICAgICAgICA9ICdwZmxpY2h0Z2VzcGVycnQnDQogICAg ICAgICAgICAgICAgICAgICAgICBtZWxkdW5nICAgICAgID0gJ0RpZXNlIFplbGxlIGlzdCBhbHMg UGZsaWNodC1TZXR6dW5nIG1hcmtpZXJ0LiBOdXIgRmFjaGF1ZnNpY2h0L1N1cGVyVXNlciBkYXJm IHNpZSBhZW5kZXJuLicNCiAgICAgICAgICAgICAgICAgICAgICAgIGFrdHVlbGxlcldlcnQgPSAk TG9ja1Jlc3VsdC5hbHRlcldlcnQNCiAgICAgICAgICAgICAgICAgICAgfSA0MDMNCiAgICAgICAg ICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg aWYgKCRMb2NrUmVzdWx0LnR5cCAtZXEgJ3BmbGljaHRzZXR6dW5nVmVyYm90ZW4nKSB7DQogICAg ICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7DQogICAgICAgICAgICAgICAgICAgICAg ICBmZWhsZXIgID0gJ3BmbGljaHRzZXR6dW5nVmVyYm90ZW4nDQogICAgICAgICAgICAgICAgICAg ICAgICBtZWxkdW5nID0gJ1BmbGljaHQtU2V0enVuZ2VuIGtvZW5uZW4gbnVyIEZhY2hhdWZzaWNo dC9TdXBlclVzZXIgdm9ybmVobWVuLicNCiAgICAgICAgICAgICAgICAgICAgfSA0MDMNCiAgICAg ICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICAkQWx0ZXJXZXJ0ICAgID0gJExvY2tSZXN1bHQuYWx0ZXJXZXJ0DQogICAgICAgICAgICAg ICAgJEFsdGVyUGZsaWNodCA9ICRMb2NrUmVzdWx0LmFsdGVyUGZsaWNodA0KICAgICAgICAgICAg ICAgICRQbGFudW5nICAgICAgPSAkTG9ja1Jlc3VsdC5wbGFudW5nDQogICAgICAgICAgICAgICAg JElzdE92ZXJyaWRlICA9ICgkQWx0ZXJQZmxpY2h0IC1hbmQgJERhcmZVZWJlcnNjaHJlaWJlbikg LW9yIGANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCRudWxsIC1uZSAkRXhpc3Rp bmdMb2NrIC1hbmQgLW5vdCAoJEV4aXN0aW5nTG9jay51c2VybmFtZSAtaWVxICRVc2VybmFtZSkg LWFuZCAkRGFyZlVlYmVyc2NocmVpYmVuKQ0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRy YWcgJ3plbGxlLmdlYWVuZGVydCcgQHsNCiAgICAgICAgICAgICAgICAgICAgZGF0dW0gICAgID0g JERhdHVtDQogICAgICAgICAgICAgICAgICAgIHBlcnNvbklkICA9ICRQZXJzb25JZA0KICAgICAg ICAgICAgICAgICAgICBhbHRlcldlcnQgPSAkQWx0ZXJXZXJ0DQogICAgICAgICAgICAgICAgICAg IG5ldWVyV2VydCA9ICRXZXJ0DQogICAgICAgICAgICAgICAgICAgIHBmbGljaHQgICA9IGlmICgk SGF0UGZsaWNodCkgeyAkUGZsaWNodE5ldSB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAg ICAgICAgIHJvbGxlICAgICA9ICRSb2xsZQ0KICAgICAgICAgICAgICAgICAgICBvdmVycmlkZSAg PSAkSXN0T3ZlcnJpZGUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgQWRkLUNo YW5nZUxvZ0VudHJ5ICd6ZWxsZScgJERhdHVtICRQZXJzb25JZCAkV2VydCAkVXNlcm5hbWUgJFJv bGxlIEB7DQogICAgICAgICAgICAgICAgICAgIGFsdGVyV2VydCA9ICRBbHRlcldlcnQNCiAgICAg ICAgICAgICAgICAgICAgcGZsaWNodCAgID0gaWYgKCRIYXRQZmxpY2h0KSB7ICRQZmxpY2h0TmV1 IH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAgICAgb3ZlcnJpZGUgID0gJElzdE92 ZXJyaWRlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkQWx0ZXJXZXJ0 IC1uZSAkV2VydCkgew0KICAgICAgICAgICAgICAgICAgICB0cnkgeyBOb3RpZnktQWVuZGVydW5n ICRQbGFudW5nICRQZXJzb25JZCAkRGF0dW0gJEFsdGVyV2VydCAkV2VydCB9IGNhdGNoIHsgRGVi dWctTG9nICdNQUlMJyAiRmVobGVyOiAkXyIgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnOyBhbHRlcldl cnQgPSAkQWx0ZXJXZXJ0OyByb2xsZSA9ICRSb2xsZTsgb3ZlcnJpZGUgPSAkSXN0T3ZlcnJpZGUg fQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICMgRkxEOiBEU00tVG9nZ2xlIChQaGFzZSBBNTogRmlsZS1Mb2NrICsgQ2hhbmdlLUxvZykNCiAg ICAgICAgICAgICMgV2FyIGluIHNlcnZlci5wczEgYmlzaGVyIGdhciBuaWNodCB2b3JoYW5kZW4g LSBudXIgc2VydmVyLnB5IGhhdHRlIGVzLg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2Fw aS9wbGFudW5nL2RzbScgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAg ICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzICdLZWluZSBCZXJl Y2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCb2R5ID0gUmVhZC1C b2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7IFNlbmQtRXJy b3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAg ICAgJEEgPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAkRGF0dW0g PSBbc3RyaW5nXSRBLmRhdHVtDQogICAgICAgICAgICAgICAgJEZsYWcgPSBbYm9vbF0kQS5ha3Rp dg0KICAgICAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCREYXR1 bSkpIHsgU2VuZC1FcnJvciAkUmVzICdkYXR1bSBmZWhsdCcgNDAwOyBjb250aW51ZSB9DQogICAg ICAgICAgICAgICAgJFVzZXJuYW1lID0gJGVudjpVU0VSTkFNRQ0KICAgICAgICAgICAgICAgICRS b2xsZSA9IEdldC1Vc2VyUm9sbGUNCiAgICAgICAgICAgICAgICAkTG9ja1Jlc3VsdCA9ICRudWxs DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJExvY2tSZXN1bHQg PSBJbnZva2UtV2l0aEZpbGVMb2NrICdwbGFudW5nLmpzb24nIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICRQbGFudW5nID0gUmVhZC1Kc29uRmlsZSAncGxhbnVuZy5qc29uJw0KICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkUGxhbnVuZykgeyByZXR1cm4gQHsgdHlwID0g J2Vycm9yJzsgY29kZSA9IDQwNDsgbXNnID0gJ3BsYW51bmcuanNvbiBuaWNodCBnZWZ1bmRlbicg fSB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5QU09iamVjdC5Q cm9wZXJ0aWVzWydkc20nXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5n IHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ2RzbScgLVZhbHVl IChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgJEFsdCA9ICRmYWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCRQbGFudW5nLmRzbS5QU09iamVjdC5Qcm9wZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkQWx0ID0gW2Jvb2xdJFBsYW51bmcuZHNtLiREYXR1bQ0KICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRGbGFn KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLmRzbS5QU09iamVj dC5Qcm9wZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JFBsYW51bmcuZHNtLiREYXR1bSA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcuZHNtIHwg QWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJERhdHVtIC1WYWx1ZSAk dHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLmRz bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyREYXR1bV0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJFBsYW51bmcuZHNtLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCREYXR1bSkN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1QbGFudW5nTWl0SW50ZWdyaXRhZXQgJFBs YW51bmcgQCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAeyBraW5kID0gJ2RzbSc7IGRh dHVtID0gJERhdHVtIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiBAeyB0eXAgPSAnb2snOyBhbHQgPSAkQWx0IH0NCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAg ICBTZW5kLUVycm9yICRSZXMgIiRfIiA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgIGlmICgkTG9ja1Jlc3VsdC50eXAgLWVxICdlcnJvcicpIHsgU2VuZC1F cnJvciAkUmVzICRMb2NrUmVzdWx0Lm1zZyAkTG9ja1Jlc3VsdC5jb2RlOyBjb250aW51ZSB9DQog ICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnZHNtLmdlYWVuZGVydCcgQHsgZGF0dW0g PSAkRGF0dW07IGFrdGl2ID0gJEZsYWc7IHJvbGxlID0gJFJvbGxlIH0NCiAgICAgICAgICAgICAg ICBBZGQtQ2hhbmdlTG9nRW50cnkgJ2RzbScgJERhdHVtICRudWxsIChbc3RyaW5nXSRGbGFnLlRv U3RyaW5nKCkuVG9Mb3dlcigpKSAkVXNlcm5hbWUgJFJvbGxlIEB7DQogICAgICAgICAgICAgICAg ICAgIGFrdGl2ID0gJEZsYWcNCiAgICAgICAgICAgICAgICAgICAgYWx0ICAgPSAkTG9ja1Jlc3Vs dC5hbHQNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMg QHsgc3RhdHVzID0gJ2dlc3BlaWNoZXJ0JzsgZGF0dW0gPSAkRGF0dW07IGFrdGl2ID0gJEZsYWcg fQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICMgPT09PT09PT09PT09PT09PT09PT09IFpFTExFTi1CVUxLIChQaGFzZSBDOiBBdXRvRmlsbC1E bkQpID09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgIyBQVVQgL2FwaS9wbGFudW5n L3plbGxlbi1idWxrIHsgemVsbGVuOiBbe2RhdHVtLCBwZXJzb25JZCwgd2VydCwgZXJ3YXJ0ZXQs IGxvY2tUb2tlbj99LCAuLi5dIH0NCiAgICAgICAgICAgICMgMjA3IE11bHRpLVN0YXR1czogeyBl cmZvbGdyZWljaDpbXSwga29uZmxpa3RlOltdLCBnZXNwZXJydDpbXSwgdmVyYm90ZW46W10sIGZl aGxlcjpbXSB9DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcvemVsbGVu LWJ1bGsnIC1hbmQgJE1ldGhvZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAgICAgICAgICAkQm9keSA9 IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBT ZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAg ICAgICAgICAgICRBID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAg aWYgKC1ub3QgJEEuemVsbGVuIC1vciBAKCRBLnplbGxlbikuQ291bnQgLWVxIDApIHsNCiAgICAg ICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICd6ZWxsZW4tQXJyYXkgZmVobHQgb2RlciBs ZWVyJyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlm IChAKCRBLnplbGxlbikuQ291bnQgLWd0IDUwMCkgew0KICAgICAgICAgICAgICAgICAgICBTZW5k LUVycm9yICRSZXMgJ01heGltYWwgNTAwIFplbGxlbiBwcm8gQnVsay1SZXF1ZXN0JyA0MTM7IGNv bnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRVc2VybmFtZSA9ICRl bnY6VVNFUk5BTUUNCiAgICAgICAgICAgICAgICAkUm9sbGUgPSBHZXQtVXNlclJvbGxlDQogICAg ICAgICAgICAgICAgJERhcmZVZWJlciA9IFRlc3QtRGFyZlVlYmVyc2NocmVpYmVuICRSb2xsZQ0K DQogICAgICAgICAgICAgICAgIyBQcmUtQ2hlY2sgQ2VsbC1Mb2Nrcw0KICAgICAgICAgICAgICAg ICRHZXNwZXJydCA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdA0KICAg ICAgICAgICAgICAgIGZvcmVhY2ggKCR6IGluICRBLnplbGxlbikgew0KICAgICAgICAgICAgICAg ICAgICAkZCA9IFtzdHJpbmddJHouZGF0dW07ICRwID0gW3N0cmluZ10kei5wZXJzb25JZA0KICAg ICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkZCAtb3IgLW5vdCAkcCkgeyBjb250aW51ZSB9DQog ICAgICAgICAgICAgICAgICAgICRMID0gUmVhZC1DZWxsTG9jayAkZCAkcA0KICAgICAgICAgICAg ICAgICAgICBpZiAoJG51bGwgLW5lICRMKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkb3du ID0gKCRMLnVzZXJuYW1lIC1pZXEgJFVzZXJuYW1lKQ0KICAgICAgICAgICAgICAgICAgICAgICAg JHRva09rID0gJHouUFNPYmplY3QuUHJvcGVydGllc1snbG9ja1Rva2VuJ10gLWFuZCAkTC50b2tl biAtZXEgW3N0cmluZ10kei5sb2NrVG9rZW4NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgt bm90ICRvd24gLWFuZCAtbm90ICR0b2tPayAtYW5kIC1ub3QgJERhcmZVZWJlcikgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFt2b2lkXSRHZXNwZXJydC5BZGQoQHsgZGF0dW0gPSAkZDsg cGVyc29uSWQgPSAkcDsgc3BlcnJlciA9ICRMLnVzZXJuYW1lIH0pDQogICAgICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgICAgICAkRXJmb2xncmVpY2ggPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9u cy5BcnJheUxpc3QNCiAgICAgICAgICAgICAgICAkS29uZmxpa3RlICAgPSBOZXctT2JqZWN0IFN5 c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QNCiAgICAgICAgICAgICAgICAkVmVyYm90ZW4gICAg PSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QNCiAgICAgICAgICAgICAg ICAkRmVobGVyICAgICAgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QN Cg0KICAgICAgICAgICAgICAgICRMb2NrUmVzdWx0ID0gJG51bGwNCiAgICAgICAgICAgICAgICB0 cnkgew0KICAgICAgICAgICAgICAgICAgICAkTG9ja1Jlc3VsdCA9IEludm9rZS1XaXRoRmlsZUxv Y2sgJ3BsYW51bmcuanNvbicgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgPSBS ZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAo JG51bGwgLWVxICRQbGFudW5nKSB7IHJldHVybiBAeyB0eXAgPSAnZXJyb3InOyBjb2RlID0gNDA0 OyBtc2cgPSAncGxhbnVuZy5qc29uIG5pY2h0IGdlZnVuZGVuJyB9IH0NCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbnRyYWVn ZSddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVy IC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnZWludHJhZWdlJyAtVmFsdWUgKE5ldy1P YmplY3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICAkQWRtaW5GdWVyVkYgPSBSZWFkLUpzb25GaWxlICdhZG1pbi5qc29uJw0KICAg ICAgICAgICAgICAgICAgICAgICAgJFBydWVmZVZlcmIgPSAoJFJvbGxlIC1lcSAndXNlcicpDQog ICAgICAgICAgICAgICAgICAgICAgICAjIFdoaXRlbGlzdCBnZWdlbiBhZG1pbi5zY2hpY2h0Y29k ZXMgKE1pcnJvciBzZXJ2ZXIucHk6MzEyMC0zMTIyKQ0KICAgICAgICAgICAgICAgICAgICAgICAg JFZhbGlkQ29kZXMgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkhhc2hT ZXRbc3RyaW5nXQ0KICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJFZhbGlkQ29kZXMuQWRk KCcnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkQWRtaW5GdWVyVkYg LWFuZCAkQWRtaW5GdWVyVkYuUFNPYmplY3QuUHJvcGVydGllc1snc2NoaWNodGNvZGVzJ10pIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkU2MgaW4gJEFkbWluRnVlclZG LnNjaGljaHRjb2Rlcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51 bGwgLW5lICRTYyAtYW5kICRTYy5QU09iamVjdC5Qcm9wZXJ0aWVzWydjb2RlJ10pIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2b2lkXSRWYWxpZENvZGVzLkFkZChbc3Ry aW5nXSRTYy5jb2RlKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgJEJldHJvZmZlbmUgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0 aW9ucy5BcnJheUxpc3QNCiAgICAgICAgICAgICAgICAgICAgICAgICRHZXNwZXJydFNldCA9IEB7 fQ0KICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGcgaW4gJEdlc3BlcnJ0KSB7ICRH ZXNwZXJydFNldFsoJGcuZGF0dW0gKyAnfCcgKyAkZy5wZXJzb25JZCldID0gJHRydWUgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHogaW4gJEEuemVsbGVuKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgJGQgPSBbc3RyaW5nXSR6LmRhdHVtOyAkcCA9IFtzdHJpbmdd JHoucGVyc29uSWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2VydCA9IGlmICgkei53 ZXJ0KSB7IFtzdHJpbmddJHoud2VydCB9IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGVyd2FydGV0ID0gaWYgKCR6LlBTT2JqZWN0LlByb3BlcnRpZXNbJ2Vyd2FydGV0 J10pIHsgW3N0cmluZ10kei5lcndhcnRldCB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKC1ub3QgJGQgLW9yIC1ub3QgJHApIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgW3ZvaWRdJEZlaGxlci5BZGQoQHsgZGF0dW0gPSAkZDsgcGVyc29u SWQgPSAkcDsgZmVobGVyID0gJ2RhdHVtL3BlcnNvbklkIGZlaGx0JyB9KTsgY29udGludWUNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKC1ub3QgJFZhbGlkQ29kZXMuQ29udGFpbnMoJHdlcnQpKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFt2b2lkXSRGZWhsZXIuQWRkKEB7IGRhdHVtID0gJGQ7IHBlcnNvbklk ID0gJHA7IGZlaGxlciA9ICJVbmJla2FubnRlciBTY2hpY2h0Y29kZTogJyR3ZXJ0JyIgfSk7IGNv bnRpbnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgkR2VzcGVycnRTZXRbKCRkICsgJ3wnICsgJHApXSkgeyBjb250aW51ZSB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQcnVlZmVWZXJiIC1hbmQgKFRlc3Qt RGF0dW1JblZlcmJpbmRsaWNoa2VpdCAkZCAkQWRtaW5GdWVyVkYpKSB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFt2b2lkXSRWZXJib3Rlbi5BZGQoQHsgZGF0dW0gPSAkZDsgcGVy c29uSWQgPSAkcDsgZ3J1bmQgPSAndmVyYmluZGxpY2hrZWl0c2ZlbnN0ZXInIH0pOyBjb250aW51 ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoLW5vdCAkUGxhbnVuZy5laW50cmFlZ2UuUFNPYmplY3QuUHJvcGVydGllc1skZF0p IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcuZWludHJhZWdlIHwg QWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJGQgLVZhbHVlIChOZXct T2JqZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkYWx0ID0gJycNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoJFBsYW51bmcuZWludHJhZWdlLiRkLlBTT2JqZWN0LlByb3BlcnRpZXNbJHBdKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhbHQgPSBbc3RyaW5nXSRQbGFudW5nLmVp bnRyYWVnZS4kZC4kcA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRlcndhcnRldCAtYW5kICRlcndhcnRldCAt bmUgJGFsdCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kS29uZmxp a3RlLkFkZChAeyBkYXR1bSA9ICRkOyBwZXJzb25JZCA9ICRwOyBha3R1ZWxsID0gJGFsdCB9KTsg Y29udGludWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgJGFsdFBmID0gJGZhbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BmbGljaHQnXSAtYW5kICRQbGFudW5n LnBmbGljaHQuUFNPYmplY3QuUHJvcGVydGllc1skZF0pIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCRQbGFudW5nLnBmbGljaHQuJGQuUFNPYmplY3QuUHJvcGVydGllc1sk cF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhbHRQZiA9IFtib29s XSRQbGFudW5nLnBmbGljaHQuJGQuJHANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoJGFsdFBmIC1hbmQgLW5vdCAkRGFyZlVlYmVyKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFt2b2lkXSRWZXJib3Rlbi5BZGQoQHsgZGF0dW0gPSAkZDsgcGVyc29u SWQgPSAkcDsgZ3J1bmQgPSAncGZsaWNodCcgfSk7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChbc3RyaW5nXTo6 SXNOdWxsT3JXaGl0ZVNwYWNlKCR3ZXJ0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoJFBsYW51bmcuZWludHJhZWdlLiRkLlBTT2JqZWN0LlByb3BlcnRpZXNbJHBdKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5laW50cmFlZ2Uu JGQuUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJHApDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcuZWludHJhZWdlLiRkLlBTT2Jq ZWN0LlByb3BlcnRpZXNbJHBdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkUGxhbnVuZy5laW50cmFlZ2UuJGQuJHAgPSAkd2VydA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JFBsYW51bmcuZWludHJhZWdlLiRkIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVy dHkgLU5hbWUgJHAgLVZhbHVlICR3ZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgW3ZvaWRdJEJldHJvZmZlbmUuQWRkKEB7IGtpbmQgPSAnZWludHJhZWdlJzsgZGF0dW0g PSAkZDsgcGVyc29uSWQgPSAkcCB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2b2lk XSRFcmZvbGdyZWljaC5BZGQoQHsgZGF0dW0gPSAkZDsgcGVyc29uSWQgPSAkcDsgd2VydCA9ICR3 ZXJ0OyBhbHRlcldlcnQgPSAkYWx0IH0pDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICAgICBpZiAoQCgkQmV0cm9mZmVuZSkuQ291bnQgLWd0IDApIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1QbGFudW5nTWl0SW50ZWdyaXRhZXQgJFBs YW51bmcgQCgkQmV0cm9mZmVuZSkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBAeyB0eXAgPSAnb2snIH0NCiAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBTZW5k LUVycm9yICRSZXMgIiRfIiA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgIGlmICgkTG9ja1Jlc3VsdC50eXAgLWVxICdlcnJvcicpIHsgU2VuZC1FcnJvciAk UmVzICRMb2NrUmVzdWx0Lm1zZyAkTG9ja1Jlc3VsdC5jb2RlOyBjb250aW51ZSB9DQoNCiAgICAg ICAgICAgICAgICBmb3JlYWNoICgkb2sgaW4gJEVyZm9sZ3JlaWNoKSB7DQogICAgICAgICAgICAg ICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ3plbGxlLmdlYWVuZGVydCcgQHsNCiAgICAgICAgICAg ICAgICAgICAgICAgIGRhdHVtID0gJG9rLmRhdHVtOyBwZXJzb25JZCA9ICRvay5wZXJzb25JZA0K ICAgICAgICAgICAgICAgICAgICAgICAgYWx0ZXJXZXJ0ID0gJG9rLmFsdGVyV2VydDsgbmV1ZXJX ZXJ0ID0gJG9rLndlcnQNCiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGxlID0gJFJvbGxlOyBv dmVycmlkZSA9ICRmYWxzZTsgYnVsayA9ICR0cnVlDQogICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgQWRkLUNoYW5nZUxvZ0VudHJ5ICd6ZWxsZScgJG9rLmRhdHVtICRv ay5wZXJzb25JZCAkb2sud2VydCAkVXNlcm5hbWUgJFJvbGxlIEB7DQogICAgICAgICAgICAgICAg ICAgICAgICBhbHRlcldlcnQgPSAkb2suYWx0ZXJXZXJ0OyBidWxrID0gJHRydWUNCiAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkc3RhdHVz Q29kZSA9IGlmICgoQCgkS29uZmxpa3RlKS5Db3VudCArIEAoJFZlcmJvdGVuKS5Db3VudCArIEAo JEdlc3BlcnJ0KS5Db3VudCArIEAoJEZlaGxlcikuQ291bnQpIC1ndCAwKSB7IDIwNyB9IGVsc2Ug eyAyMDAgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7DQogICAgICAgICAgICAg ICAgICAgIHN0YXR1cyAgICAgID0gJ3ZlcmFyYmVpdGV0Jw0KICAgICAgICAgICAgICAgICAgICBl cmZvbGdyZWljaCA9IEAoJEVyZm9sZ3JlaWNoKQ0KICAgICAgICAgICAgICAgICAgICBrb25mbGlr dGUgICA9IEAoJEtvbmZsaWt0ZSkNCiAgICAgICAgICAgICAgICAgICAgZ2VzcGVycnQgICAgPSBA KCRHZXNwZXJydCkNCiAgICAgICAgICAgICAgICAgICAgdmVyYm90ZW4gICAgPSBAKCRWZXJib3Rl bikNCiAgICAgICAgICAgICAgICAgICAgZmVobGVyICAgICAgPSBAKCRGZWhsZXIpDQogICAgICAg ICAgICAgICAgICAgIHJvbGxlICAgICAgID0gJFJvbGxlDQogICAgICAgICAgICAgICAgfSAkc3Rh dHVzQ29kZQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICMgS29tbWVudGFyIHNldHplbi9sb2VzY2hlbiAoUGhhc2UgQTU6IEZpbGUtTG9jayAr IE9wdGltaXN0aWMtQ29uY3VycmVuY3kgKyBDaGFuZ2UtTG9nKQ0KICAgICAgICAgICAgaWYgKCRQ YXRoIC1lcSAnL2FwaS9wbGFudW5nL2tvbW1lbnRhcicgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcp IHsNCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAg ICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUgZ3Jv c3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRBID0gJEJvZHkgfCBDb252ZXJ0 RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgJERhdHVtID0gW3N0cmluZ10kQS5kYXR1bQ0KICAg ICAgICAgICAgICAgICRQZXJzb25JZCA9IFtzdHJpbmddJEEucGVyc29uSWQNCiAgICAgICAgICAg ICAgICAkVGV4dCA9IGlmICgkQS50ZXh0KSB7IChbc3RyaW5nXSRBLnRleHQpLlRyaW0oKSB9IGVs c2UgeyAnJyB9DQogICAgICAgICAgICAgICAgJEhhdEVyd2FydGV0ID0gJEEuUFNPYmplY3QuUHJv cGVydGllc1snZXJ3YXJ0ZXRlckFsdGVyVGV4dCddDQogICAgICAgICAgICAgICAgJEVyd2FydGV0 ID0gaWYgKCRIYXRFcndhcnRldCkgeyBbc3RyaW5nXSRBLmVyd2FydGV0ZXJBbHRlclRleHQgfSBl bHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAgICRVc2VybmFtZSA9ICRlbnY6VVNFUk5BTUUN CiAgICAgICAgICAgICAgICAkUm9sbGUgPSBHZXQtVXNlclJvbGxlDQoNCiAgICAgICAgICAgICAg ICAkTG9ja1Jlc3VsdCA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAg ICAgICAgICAgJExvY2tSZXN1bHQgPSBJbnZva2UtV2l0aEZpbGVMb2NrICdwbGFudW5nLmpzb24n IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nID0gUmVhZC1Kc29uRmlsZSAncGxh bnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkUGxhbnVu ZykgeyByZXR1cm4gQHsgdHlwID0gJ2Vycm9yJzsgY29kZSA9IDQwNDsgbXNnID0gJ3BsYW51bmcu anNvbiBuaWNodCBnZWZ1bmRlbicgfSB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgt bm90ICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2tvbW1lbnRhcmUnXSkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBO b3RlUHJvcGVydHkgLU5hbWUgJ2tvbW1lbnRhcmUnIC1WYWx1ZSAoTmV3LU9iamVjdCBQU09iamVj dCkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgtbm90ICRQbGFudW5nLmtvbW1lbnRhcmUuUFNPYmplY3QuUHJvcGVydGllc1skRGF0dW1dKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcua29tbWVudGFyZSB8IEFkZC1N ZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICREYXR1bSAtVmFsdWUgKE5ldy1P YmplY3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICAgICAgICAgICRBbHRlclRleHQgPSAnJw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYg KCRQbGFudW5nLmtvbW1lbnRhcmUuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJFBlcnNvbklk XSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRBbHRlckVpbnRyYWcgPSAkUGxhbnVu Zy5rb21tZW50YXJlLiREYXR1bS4kUGVyc29uSWQNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIEJhY2t3YXJkLUNvbXBhdDogYWx0ZXIgRWludHJhZyBrYW5uIFN0cmluZyBPREVSIHt0ZXh0 LCBnZWFlbmRlcnRBbSwgZ2VhZW5kZXJ0Vm9ufSBzZWluDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRBbHRlckVpbnRyYWcgLWlzIFtzdHJpbmddKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRBbHRlclRleHQgPSAkQWx0ZXJFaW50cmFnDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSBlbHNlaWYgKCRBbHRlckVpbnRyYWcuUFNPYmplY3QuUHJvcGVydGll c1sndGV4dCddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRBbHRlclRleHQg PSBbc3RyaW5nXSRBbHRlckVpbnRyYWcudGV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgkSGF0RXJ3YXJ0ZXQgLWFuZCAkRXJ3YXJ0ZXQgLW5lICRBbHRlclRleHQpIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gQHsgdHlwID0gJ2tvbmZsaWt0JzsgYWt0dWVsbCA9 ICRBbHRlclRleHQgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgICAgICAgICBpZiAoJFRleHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTmV1 T2JqID0gW1BTQ3VzdG9tT2JqZWN0XUB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRleHQgICAgICAgICA9ICRUZXh0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdl YWVuZGVydEFtICA9IChHZXQtRGF0ZSAtRm9ybWF0ICd5eXl5LU1NLWRkIEhIOm1tOnNzJykNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VhZW5kZXJ0Vm9uID0gKEdldC1Ba3R1ZWxs ZXJCZW51dHplcikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLmtvbW1lbnRhcmUuJERhdHVtLlBTT2JqZWN0LlBy b3BlcnRpZXNbJFBlcnNvbklkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk UGxhbnVuZy5rb21tZW50YXJlLiREYXR1bS4kUGVyc29uSWQgPSAkTmV1T2JqDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJFBsYW51bmcua29tbWVudGFyZS4kRGF0dW0gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5v dGVQcm9wZXJ0eSAtTmFtZSAkUGVyc29uSWQgLVZhbHVlICROZXVPYmoNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5rb21tZW50YXJlLiREYXR1bS5QU09i amVjdC5Qcm9wZXJ0aWVzWyRQZXJzb25JZF0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJFBsYW51bmcua29tbWVudGFyZS4kRGF0dW0uUFNPYmplY3QuUHJvcGVydGllcy5SZW1v dmUoJFBlcnNvbklkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoQCgkUGxhbnVuZy5rb21tZW50YXJlLiREYXR1bS5QU09iamVj dC5Qcm9wZXJ0aWVzKS5Db3VudCAtZXEgMCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkUGxhbnVuZy5rb21tZW50YXJlLlBTT2JqZWN0LlByb3BlcnRpZXMuUmVtb3ZlKCREYXR1 bSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1QbGFudW5nTWl0SW50ZWdyaXRhZXQg JFBsYW51bmcgQCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAeyBraW5kID0gJ2tvbW1l bnRhcmUnOyBkYXR1bSA9ICREYXR1bTsgcGVyc29uSWQgPSAkUGVyc29uSWQgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEB7IHR5cCA9 ICdvayc7IGFsdGVyVGV4dCA9ICRBbHRlclRleHQgfQ0KICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3Ig JFJlcyAiJF8iIDUwMzsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICBpZiAoJExvY2tSZXN1bHQudHlwIC1lcSAnZXJyb3InKSB7IFNlbmQtRXJyb3IgJFJlcyAk TG9ja1Jlc3VsdC5tc2cgJExvY2tSZXN1bHQuY29kZTsgY29udGludWUgfQ0KICAgICAgICAgICAg ICAgIGlmICgkTG9ja1Jlc3VsdC50eXAgLWVxICdrb25mbGlrdCcpIHsNCiAgICAgICAgICAgICAg ICAgICAgU2VuZC1Kc29uICRSZXMgQHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGZlaGxlciAg ICAgICAgID0gJ2tvbmZsaWt0Jw0KICAgICAgICAgICAgICAgICAgICAgICAgbWVsZHVuZyAgICAg ICAgPSAnS29tbWVudGFyIHd1cmRlIGluendpc2NoZW4gZ2VhZW5kZXJ0LicNCiAgICAgICAgICAg ICAgICAgICAgICAgIGFrdHVlbGxlclRleHQgID0gJExvY2tSZXN1bHQuYWt0dWVsbA0KICAgICAg ICAgICAgICAgICAgICB9IDQwOQ0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICRLdXJ6ID0gaWYgKCRUZXh0Lkxlbmd0aCAt Z3QgMTAwKSB7ICRUZXh0LlN1YnN0cmluZygwLCAxMDApIH0gZWxzZSB7ICRUZXh0IH0NCiAgICAg ICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdrb21tZW50YXIuZ2VhZW5kZXJ0JyBAew0KICAg ICAgICAgICAgICAgICAgICBkYXR1bSAgICA9ICREYXR1bQ0KICAgICAgICAgICAgICAgICAgICBw ZXJzb25JZCA9ICRQZXJzb25JZA0KICAgICAgICAgICAgICAgICAgICB0ZXh0ICAgICA9ICRLdXJ6 DQogICAgICAgICAgICAgICAgICAgIHJvbGxlICAgID0gJFJvbGxlDQogICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgIEFkZC1DaGFuZ2VMb2dFbnRyeSAna29tbWVudGFyJyAkRGF0dW0g JFBlcnNvbklkICRUZXh0ICRVc2VybmFtZSAkUm9sbGUgQHsNCiAgICAgICAgICAgICAgICAgICAg YWx0ZXJUZXh0ID0gJExvY2tSZXN1bHQuYWx0ZXJUZXh0DQogICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdnZXNwZWljaGVydCcgfQ0K ICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMg PT09PT09PT09PT09PT09PT09PT09IEJBQ0tVUFMgPT09PT09PT09PT09PT09PT09PT09DQogICAg ICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL3BsYW51bmcvYmFja3VwcycgLWFuZCAkTWV0aG9k IC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWluKSkg eyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9DQog ICAgICAgICAgICAgICAgJEVpbnRyYWVnZSA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25z LkFycmF5TGlzdA0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRGIGluIEdldC1DaGlsZEl0ZW0g LVBhdGggJERhdGFEaXIgLUZpbHRlciAncGxhbnVuZ19iYWNrdXBfKi5qc29uJyAtRmlsZSkgew0K ICAgICAgICAgICAgICAgICAgICAkTmFtZSA9ICRGLk5hbWUNCiAgICAgICAgICAgICAgICAgICAg JFR5cCA9IGlmICgkTmFtZSAtbGlrZSAnKmJhY2t1cF92b3JfZHVtbXlfKicpIHsgJ3ZvciBEdW1t eWRhdGVuJyB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlaWYgKCROYW1lIC1saWtl ICcqYmFja3VwX3Zvcl9yZXNldF8qJykgeyAndm9yIFJlc2V0JyB9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICBlbHNlaWYgKCROYW1lIC1saWtlICcqYmFja3VwX3Zvcl93aWVkZXJoZXJzdGVs bHVuZ18qJykgeyAndm9yIFdpZWRlcmhlcnN0ZWxsdW5nJyB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICBlbHNlIHsgJ21hbnVlbGwnIH0NCiAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJEVp bnRyYWVnZS5BZGQoW29yZGVyZWRdQHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVpbmFt ZSAgPSAkTmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgZ3JvZXNzZSAgICA9ICRGLkxlbmd0 aA0KICAgICAgICAgICAgICAgICAgICAgICAgZXJzdGVsbHRBbSA9ICRGLkxhc3RXcml0ZVRpbWUu VG9TdHJpbmcoJ3l5eXktTU0tZGRUSEg6bW06c3MuZmZmZmZmZicpDQogICAgICAgICAgICAgICAg ICAgICAgICB0eXAgICAgICAgID0gJFR5cA0KICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkU29ydGllcnQgPSBAKCRFaW50cmFlZ2UgfCBT b3J0LU9iamVjdCAtUHJvcGVydHkgZXJzdGVsbHRBbSAtRGVzY2VuZGluZykNCiAgICAgICAgICAg ICAgICAkSnNvbiA9IENvbnZlcnRUby1Kc29uIC1JbnB1dE9iamVjdCBAKCRTb3J0aWVydCkgLURl cHRoIDUgLUNvbXByZXNzDQogICAgICAgICAgICAgICAgU2VuZC1Kc29uUmF3ICRSZXMgJEpzb24N CiAgICAgICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBp ZiAoJFBhdGggLWxpa2UgJy9hcGkvcGxhbnVuZy9iYWNrdXAvZG93bmxvYWQvKicgLWFuZCAkTWV0 aG9kIC1lcSAnR0VUJykgew0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWlu KSkgeyBTZW5kLUVycm9yICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9 DQogICAgICAgICAgICAgICAgJE5hbWUgPSBbU3lzdGVtLldlYi5IdHRwVXRpbGl0eV06OlVybERl Y29kZSgkUGF0aC5TdWJzdHJpbmcoJy9hcGkvcGxhbnVuZy9iYWNrdXAvZG93bmxvYWQvJy5MZW5n dGgpKQ0KICAgICAgICAgICAgICAgIGlmICgtbm90ICgkTmFtZS5TdGFydHNXaXRoKCdwbGFudW5n X2JhY2t1cF8nKSAtYW5kICROYW1lLkVuZHNXaXRoKCcuanNvbicpKSAtb3IgJE5hbWUuQ29udGFp bnMoJy8nKSAtb3IgJE5hbWUuQ29udGFpbnMoJ1wnKSAtb3IgJE5hbWUuQ29udGFpbnMoJy4uJykp IHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICdVbmd1ZWx0aWdlciBEYXRl aW5hbWUnIDQwMDsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg JEZQYXRoID0gSm9pbi1QYXRoICREYXRhRGlyICROYW1lDQogICAgICAgICAgICAgICAgaWYgKC1u b3QgKFRlc3QtUGF0aCAkRlBhdGgpKSB7IFNlbmQtRXJyb3IgJFJlcyAnQmFja3VwIG5pY2h0IGdl ZnVuZGVuJyA0MDQ7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBTZW5kLUZpbGVBdHRhY2ht ZW50ICRSZXMgJEZQYXRoICROYW1lDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5nL2JhY2t1cCcg LWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVz dC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJvciAkUmVzICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsg Y29udGludWUgfQ0KICAgICAgICAgICAgICAgICRQbGFudW5nUGF0aCA9IEpvaW4tUGF0aCAkRGF0 YURpciAncGxhbnVuZy5qc29uJw0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGgg JFBsYW51bmdQYXRoKSkgeyBTZW5kLUVycm9yICRSZXMgJ3BsYW51bmcuanNvbiBuaWNodCBnZWZ1 bmRlbicgNDA0OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJFRzID0gR2V0LURhdGUgLUZv cm1hdCAneXl5eU1NZGRfSEhtbXNzJw0KICAgICAgICAgICAgICAgICRCYWNrdXBOYW1lID0gInBs YW51bmdfYmFja3VwXyRUcy5qc29uIg0KICAgICAgICAgICAgICAgIENvcHktSXRlbSAtUGF0aCAk UGxhbnVuZ1BhdGggLURlc3RpbmF0aW9uIChKb2luLVBhdGggJERhdGFEaXIgJEJhY2t1cE5hbWUp IC1Gb3JjZQ0KICAgICAgICAgICAgICAgIEludm9rZS1CYWNrdXBSb3RhdGlvbiAncGxhbnVuZ19i YWNrdXBfKi5qc29uJyAyMCAgIyBQaGFzZSBEMzogbWF4IDIwIGJlaGFsdGVuDQogICAgICAgICAg ICAgICAgV3JpdGUtTG9nRWludHJhZyAnYmFja3VwLmVyc3RlbGx0JyBAeyBkYXRlaW5hbWUgPSAk QmFja3VwTmFtZSB9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0g J2Vyc3RlbGx0JzsgZGF0ZWluYW1lID0gJEJhY2t1cE5hbWUgfQ0KICAgICAgICAgICAgICAgIGNv bnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkv cGxhbnVuZy9iYWNrdXAvd2llZGVyaGVyc3RlbGxlbicgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcp IHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJv ciAkUmVzICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAg ICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVx ICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51 ZSB9DQogICAgICAgICAgICAgICAgJERhdGVuID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQog ICAgICAgICAgICAgICAgJE5hbWUgPSBbc3RyaW5nXSREYXRlbi5kYXRlaW5hbWUNCiAgICAgICAg ICAgICAgICBpZiAoLW5vdCAoJE5hbWUuU3RhcnRzV2l0aCgncGxhbnVuZ19iYWNrdXBfJykgLWFu ZCAkTmFtZS5FbmRzV2l0aCgnLmpzb24nKSkgLW9yICROYW1lLkNvbnRhaW5zKCcvJykgLW9yICRO YW1lLkNvbnRhaW5zKCdcJykgLW9yICROYW1lLkNvbnRhaW5zKCcuLicpKSB7DQogICAgICAgICAg ICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAnVW5ndWVsdGlnZXIgRGF0ZWluYW1lJyA0MDA7IGNv bnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRRdWVsbFBhdGggPSBK b2luLVBhdGggJERhdGFEaXIgJE5hbWUNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Q YXRoICRRdWVsbFBhdGgpKSB7IFNlbmQtRXJyb3IgJFJlcyAnQmFja3VwIG5pY2h0IGdlZnVuZGVu JyA0MDQ7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkUGxhbnVuZ1BhdGggPSBKb2luLVBh dGggJERhdGFEaXIgJ3BsYW51bmcuanNvbicNCiAgICAgICAgICAgICAgICAkVHMgPSBHZXQtRGF0 ZSAtRm9ybWF0ICd5eXl5TU1kZF9ISG1tc3MnDQogICAgICAgICAgICAgICAgJFNpY2hlck5hbWUg PSAicGxhbnVuZ19iYWNrdXBfdm9yX3dpZWRlcmhlcnN0ZWxsdW5nXyRUcy5qc29uIg0KICAgICAg ICAgICAgICAgIGlmIChUZXN0LVBhdGggJFBsYW51bmdQYXRoKSB7DQogICAgICAgICAgICAgICAg ICAgIENvcHktSXRlbSAtUGF0aCAkUGxhbnVuZ1BhdGggLURlc3RpbmF0aW9uIChKb2luLVBhdGgg JERhdGFEaXIgJFNpY2hlck5hbWUpIC1Gb3JjZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICBDb3B5LUl0ZW0gLVBhdGggJFF1ZWxsUGF0aCAtRGVzdGluYXRpb24gJFBsYW51bmdQ YXRoIC1Gb3JjZQ0KICAgICAgICAgICAgICAgIEludm9rZS1CYWNrdXBSb3RhdGlvbiAncGxhbnVu Z19iYWNrdXBfKi5qc29uJyAyMA0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2Jh Y2t1cC53aWVkZXJoZXJnZXN0ZWxsdCcgQHsgcXVlbGxlID0gJE5hbWU7IHNpY2hlcnVuZyA9ICRT aWNoZXJOYW1lIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAn d2llZGVyaGVyZ2VzdGVsbHQnOyBzaWNoZXJ1bmcgPSAkU2ljaGVyTmFtZSB9DQogICAgICAgICAg ICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1l cSAnL2FwaS9wbGFudW5nL2JhY2t1cC9sb2VzY2hlbicgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcp IHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2VuZC1FcnJv ciAkUmVzICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAg ICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVx ICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51 ZSB9DQogICAgICAgICAgICAgICAgJERhdGVuID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQog ICAgICAgICAgICAgICAgJE5hbWUgPSBbc3RyaW5nXSREYXRlbi5kYXRlaW5hbWUNCiAgICAgICAg ICAgICAgICBpZiAoLW5vdCAoJE5hbWUuU3RhcnRzV2l0aCgncGxhbnVuZ19iYWNrdXBfJykgLWFu ZCAkTmFtZS5FbmRzV2l0aCgnLmpzb24nKSkgLW9yICROYW1lLkNvbnRhaW5zKCcvJykgLW9yICRO YW1lLkNvbnRhaW5zKCdcJykgLW9yICROYW1lLkNvbnRhaW5zKCcuLicpKSB7DQogICAgICAgICAg ICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAnVW5ndWVsdGlnZXIgRGF0ZWluYW1lJyA0MDA7IGNv bnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICRGUGF0aCA9IEpvaW4t UGF0aCAkRGF0YURpciAkTmFtZQ0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGgg JEZQYXRoKSkgeyBTZW5kLUVycm9yICRSZXMgJ0JhY2t1cCBuaWNodCBnZWZ1bmRlbicgNDA0OyBj b250aW51ZSB9DQogICAgICAgICAgICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggJEZQYXRoIC1Gb3Jj ZQ0KICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ2JhY2t1cC5nZWxvZXNjaHQnIEB7 IGRhdGVpbmFtZSA9ICROYW1lIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBz dGF0dXMgPSAnZ2Vsb2VzY2h0JyB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gUEVSU09ORU4gPT09 PT09PT09PT09PT09PT09PT09DQoNCiAgICAgICAgICAgICMgUGVyc29uIGFubGVnZW4NCiAgICAg ICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGVyc29uZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BP U1QnKSB7DQogICAgICAgICAgICAgICAgaWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQt RXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNodGlndW5nJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAg ICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAgICAgICAgJE5ldSA9ICRC b2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgICRQbGFudW5nID0gUmVhZC1K c29uRmlsZSAncGxhbnVuZy5qc29uJw0KDQogICAgICAgICAgICAgICAgJEFsbGUgPSBAKEdldC1Q ZXJzb25lbkFycmF5ICRQbGFudW5nKQ0KICAgICAgICAgICAgICAgICRNYXhJZCA9IDANCiAgICAg ICAgICAgICAgICBmb3JlYWNoICgkUCBpbiAkQWxsZSkgeyBpZiAoW2ludF0kUC5pZCAtZ3QgJE1h eElkKSB7ICRNYXhJZCA9IFtpbnRdJFAuaWQgfSB9DQogICAgICAgICAgICAgICAgJE5ldWVJZCA9 ICRNYXhJZCArIDENCg0KICAgICAgICAgICAgICAgICMgRWlucmVpaGVuOiB2b3IvbmFjaC91bnRl bg0KICAgICAgICAgICAgICAgICRFaW5yZWloZW4gPSBpZiAoJE5ldS5laW5yZWloZW4pIHsgKFtz dHJpbmddJE5ldS5laW5yZWloZW4pLlRvTG93ZXIoKSB9IGVsc2UgeyAndW50ZW4nIH0NCiAgICAg ICAgICAgICAgICAkUmVmSWQgPSAkTmV1LnJlZmVyZW56SWQNCiAgICAgICAgICAgICAgICAkWmll bFBvcyA9ICRudWxsDQoNCiAgICAgICAgICAgICAgICAkQWxsZVNvcnRpZXJ0ID0gQCgkQWxsZSB8 IFNvcnQtT2JqZWN0IC1Qcm9wZXJ0eSBAe0V4cHJlc3Npb249e1tpbnRdKCRfLnBvc2l0aW9uKX07 IEFzY2VuZGluZz0kdHJ1ZX0pDQoNCiAgICAgICAgICAgICAgICBpZiAoKCRFaW5yZWloZW4gLWVx ICd2b3InIC1vciAkRWlucmVpaGVuIC1lcSAnbmFjaCcpIC1hbmQgJG51bGwgLW5lICRSZWZJZCkg ew0KICAgICAgICAgICAgICAgICAgICAkUmVmUG9zID0gJG51bGwNCiAgICAgICAgICAgICAgICAg ICAgZm9yZWFjaCAoJFAgaW4gJEFsbGVTb3J0aWVydCkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKFtpbnRdJFAuaWQgLWVxIFtpbnRdJFJlZklkKSB7ICRSZWZQb3MgPSBbaW50XSRQLnBv c2l0aW9uOyBicmVhayB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg ICAgaWYgKCRudWxsIC1uZSAkUmVmUG9zKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkWmll bFBvcyA9IGlmICgkRWlucmVpaGVuIC1lcSAndm9yJykgeyAkUmVmUG9zIH0gZWxzZSB7ICRSZWZQ b3MgKyAxIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRQIGluICRBbGxlU29y dGllcnQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoW2ludF0kUC5wb3NpdGlv biAtZ2UgJFppZWxQb3MpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFAucG9z aXRpb24gPSBbaW50XSRQLnBvc2l0aW9uICsgMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRaaWVsUG9zKSB7 DQogICAgICAgICAgICAgICAgICAgICRNYXhQb3MgPSAwDQogICAgICAgICAgICAgICAgICAgIGZv cmVhY2ggKCRQIGluICRBbGxlKSB7IGlmIChbaW50XSRQLnBvc2l0aW9uIC1ndCAkTWF4UG9zKSB7 ICRNYXhQb3MgPSBbaW50XSRQLnBvc2l0aW9uIH0gfQ0KICAgICAgICAgICAgICAgICAgICAkWmll bFBvcyA9ICRNYXhQb3MgKyAxDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg IyBBdWRpdC1JdGVyLUI6IG5hY2huYW1lIGlzdCBTb3VyY2Utb2YtVHJ1dGgsIG5hbWUgbnVyIEJh Y2t3YXJkLUNvbXBhdC1GYWxsYmFjay4NCiAgICAgICAgICAgICAgICAkTmFjaG5hbWVOZXUgPSBp ZiAoJE5ldS5QU09iamVjdC5Qcm9wZXJ0aWVzWyduYWNobmFtZSddIC1hbmQgLW5vdCBbc3RyaW5n XTo6SXNOdWxsT3JXaGl0ZVNwYWNlKFtzdHJpbmddJE5ldS5uYWNobmFtZSkpIHsNCiAgICAgICAg ICAgICAgICAgICAgW3N0cmluZ10kTmV1Lm5hY2huYW1lDQogICAgICAgICAgICAgICAgfSBlbHNl aWYgKCROZXUuUFNPYmplY3QuUHJvcGVydGllc1snbmFtZSddKSB7DQogICAgICAgICAgICAgICAg ICAgIFtzdHJpbmddJE5ldS5uYW1lDQogICAgICAgICAgICAgICAgfSBlbHNlIHsgJycgfQ0KDQog ICAgICAgICAgICAgICAgJFBlcnNvbiA9IFtQU0N1c3RvbU9iamVjdF1Aew0KICAgICAgICAgICAg ICAgICAgICBpZCAgICAgICAgICAgPSAkTmV1ZUlkDQogICAgICAgICAgICAgICAgICAgIGFrdGl2 ICAgICAgICA9IGlmICgkbnVsbCAtbmUgJE5ldS5ha3RpdikgeyBbYm9vbF0kTmV1LmFrdGl2IH0g ZWxzZSB7ICR0cnVlIH0NCiAgICAgICAgICAgICAgICAgICAgbmFjaG5hbWUgICAgID0gJE5hY2hu YW1lTmV1DQogICAgICAgICAgICAgICAgICAgIHZvcm5hbWUgICAgICA9IGlmICgkTmV1LnZvcm5h bWUpIHsgW3N0cmluZ10kTmV1LnZvcm5hbWUgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAg ICAgICBkaWVuc3RncmFkICAgPSBpZiAoJE5ldS5kaWVuc3RncmFkKSB7IFtzdHJpbmddJE5ldS5k aWVuc3RncmFkIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgZnVua3Rpb24gICAg ID0gaWYgKCROZXUuZnVua3Rpb24pIHsgW3N0cmluZ10kTmV1LmZ1bmt0aW9uIH0gZWxzZSB7ICcn IH0NCiAgICAgICAgICAgICAgICAgICAgb2UgICAgICAgICAgID0gaWYgKCROZXUub2UpIHsgW3N0 cmluZ10kTmV1Lm9lIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgZGllbnN0bnVt bWVyID0gaWYgKCROZXUuZGllbnN0bnVtbWVyKSB7IFtzdHJpbmddJE5ldS5kaWVuc3RudW1tZXIg fSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICB0ZWxlZm9uICAgICAgPSBpZiAoJE5l dS50ZWxlZm9uKSB7IFtzdHJpbmddJE5ldS50ZWxlZm9uIH0gZWxzZSB7ICcnIH0NCiAgICAgICAg ICAgICAgICAgICAgcG9zaXRpb24gICAgID0gJFppZWxQb3MNCiAgICAgICAgICAgICAgICAgICAg ZW1haWwgICAgICAgID0gaWYgKCROZXUuZW1haWwpIHsgW3N0cmluZ10kTmV1LmVtYWlsIH0gZWxz ZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgbndLZW5udW5nICAgID0gaWYgKCROZXUubndL ZW5udW5nKSB7IFtzdHJpbmddJE5ldS5ud0tlbm51bmcgfSBlbHNlIHsgJycgfQ0KICAgICAgICAg ICAgICAgICAgICAjIEF1ZGl0LUZpbmRpbmcgRDE6IG9wdGlvbmFsZSBGZWxkZXIgbWl0IG51bGwt RGVmYXVsdA0KICAgICAgICAgICAgICAgICAgICAjIHN0YXR0ICIiIChNaXJyb3Igc2VydmVyLnB5 OjM0MDEtMzQwNSkuDQogICAgICAgICAgICAgICAgICAgIGdlYnVydHNkYXR1bSA9IGlmICgkTmV1 LmdlYnVydHNkYXR1bSkgeyBbc3RyaW5nXSROZXUuZ2VidXJ0c2RhdHVtIH0gZWxzZSB7ICRudWxs IH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAkUGxhbnVuZy5wZXJzb25l biA9IEAoJEFsbGUgKyAkUGVyc29uKQ0KICAgICAgICAgICAgICAgIFdyaXRlLUpzb25GaWxlICdw bGFudW5nLmpzb24nICRQbGFudW5nDQogICAgICAgICAgICAgICAgIyBBdXRvLVJvbGxlbi1TeW5j IChER0wvMS5FQiAtPiBzdXBlclVzZXIsIDEuRUIgVi4gLT4gZmFjaGF1ZnNpY2h0ZW4pDQogICAg ICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJEFkbWluID0gUmVhZC1Kc29u RmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAgICAgICAgaWYgKFN5bmMtUm9sbGVuQXVz UGVyc29uZW4gJFBsYW51bmcgJEFkbWluKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBXcml0 ZS1Kc29uRmlsZSAnYWRtaW4uanNvbicgJEFkbWluDQogICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICB9IGNhdGNoIHsgV3JpdGUtV2FybmluZyAiUm9sbGVuLVN5bmMgbmFjaCBQ ZXJzb24tQW5sYWdlIGZlaGxnZXNjaGxhZ2VuOiAkXyIgfQ0KICAgICAgICAgICAgICAgIFdyaXRl LUxvZ0VpbnRyYWcgJ3BlcnNvbi5hbmdlbGVndCcgQHsgcGVyc29uSWQgPSAkTmV1ZUlkOyBuYWNo bmFtZSA9ICIkKCROZXUudm9ybmFtZSkgJE5hY2huYW1lTmV1Ii5UcmltKCkgfQ0KICAgICAgICAg ICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICdhbmdlbGVndCc7IGlkID0gJE5ldWVJ ZDsgcG9zaXRpb24gPSAkWmllbFBvcyB9DQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAg ICAgICAgIH0NCg0KICAgICAgICAgICAgIyBQZXJzb24gYWt0dWFsaXNpZXJlbg0KICAgICAgICAg ICAgJFBlcnNvbk1hdGNoID0gW3JlZ2V4XTo6TWF0Y2goJFBhdGgsICdeL2FwaS9wZXJzb25lbi8o XGQrKSQnKQ0KICAgICAgICAgICAgaWYgKCRQZXJzb25NYXRjaC5TdWNjZXNzIC1hbmQgJE1ldGhv ZCAtZXEgJ1BVVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikp IHsgU2VuZC1FcnJvciAkUmVzICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0K ICAgICAgICAgICAgICAgICRJZCA9IFtpbnRdJFBlcnNvbk1hdGNoLkdyb3Vwc1sxXS5WYWx1ZQ0K ICAgICAgICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICAk VXBkYXRlID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgJFBsYW51 bmcgPSBSZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQoNCiAgICAgICAgICAgICAgICAjIEF1 ZGl0LUl0ZXItQjogTGVnYWN5LW5hbWUgLT4gbmFjaG5hbWUgbWFwcGVuLCBkYW5uIG5hbWUgYXVz IFVwZGF0ZSBlbnRmZXJuZW4NCiAgICAgICAgICAgICAgICBpZiAoJFVwZGF0ZS5QU09iamVjdC5Q cm9wZXJ0aWVzWyduYW1lJ10gLWFuZCAtbm90ICRVcGRhdGUuUFNPYmplY3QuUHJvcGVydGllc1sn bmFjaG5hbWUnXSkgew0KICAgICAgICAgICAgICAgICAgICAkVXBkYXRlIHwgQWRkLU1lbWJlciAt TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ25hY2huYW1lJyAtVmFsdWUgKFtzdHJpbmdd JFVwZGF0ZS5uYW1lKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJFVw ZGF0ZS5QU09iamVjdC5Qcm9wZXJ0aWVzWyduYW1lJ10pIHsNCiAgICAgICAgICAgICAgICAgICAg JFVwZGF0ZS5QU09iamVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgnbmFtZScpDQogICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgIyBBdWRpdC1GaW5kaW5nIEQxOiBvcHRpb25hbGUgRGF0 dW1zLS9Ob3Rpei1GZWxkZXIgYXVmIG51bGwNCiAgICAgICAgICAgICAgICAjIG5vcm1hbGlzaWVy ZW4gKE1pcnJvciBzZXJ2ZXIucHk6MzQzNS0zNDM4KS4NCiAgICAgICAgICAgICAgICBmb3JlYWNo ICgkT3B0RmVsZCBpbiBAKCdnZWJ1cnRzZGF0dW0nLCdlbmREYXR1bScsJ2VyaW5uZXJ1bmdzTm90 aXonKSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoJFVwZGF0ZS5QU09iamVjdC5Qcm9wZXJ0 aWVzWyRPcHRGZWxkXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJFYgPSAkVXBkYXRlLigk T3B0RmVsZCkNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkViAtaXMgW3N0cmluZ10gLWFu ZCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRWKSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRVcGRhdGUuKCRPcHRGZWxkKSA9ICRudWxsDQogICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAkR2VmdW5kZW4gPSAkZmFsc2UNCiAgICAgICAgICAgICAgICBmb3IgKCRpID0g MDsgJGkgLWx0ICRQbGFudW5nLnBlcnNvbmVuLkNvdW50OyAkaSsrKSB7DQogICAgICAgICAgICAg ICAgICAgIGlmIChbaW50XSRQbGFudW5nLnBlcnNvbmVuWyRpXS5pZCAtZXEgJElkKSB7DQogICAg ICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkUHJvcCBpbiAkVXBkYXRlLlBTT2JqZWN0LlBy b3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFByb3AuTmFtZSAt bmUgJ2lkJykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcu cGVyc29uZW5bJGldLlBTT2JqZWN0LlByb3BlcnRpZXNbJFByb3AuTmFtZV0pIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBlcnNvbmVuWyRpXS4oJFByb3Au TmFtZSkgPSAkUHJvcC5WYWx1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGVyc29u ZW5bJGldIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJFByb3Au TmFtZSAtVmFsdWUgJFByb3AuVmFsdWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICMgTGVnYWN5LW5hbWUtRmVsZCBlbmRndWVsdGln IGF1cyBQZXJzb24gZW50ZmVybmVuLCBmYWxscyBub2NoIHZvcmhhbmRlbg0KICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCRQbGFudW5nLnBlcnNvbmVuWyRpXS5QU09iamVjdC5Qcm9wZXJ0aWVz WyduYW1lJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTGVnYWN5TmFtZSA9IFtz dHJpbmddJFBsYW51bmcucGVyc29uZW5bJGldLm5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoLW5vdCBbc3RyaW5nXTo6SXNOdWxsT3JXaGl0ZVNwYWNlKCRMZWdhY3lOYW1lKSAt YW5kIGANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFtzdHJpbmddOjpJc051bGxP cldoaXRlU3BhY2UoW3N0cmluZ10kUGxhbnVuZy5wZXJzb25lblskaV0ubmFjaG5hbWUpKSkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmcucGVyc29uZW5bJGld LlBTT2JqZWN0LlByb3BlcnRpZXNbJ25hY2huYW1lJ10pIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRQbGFudW5nLnBlcnNvbmVuWyRpXS5uYWNobmFtZSA9ICRMZWdhY3lO YW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5wZXJzb25lblskaV0gfCBBZGQtTWVt YmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnbmFjaG5hbWUnIC1WYWx1ZSAkTGVn YWN5TmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnBl cnNvbmVuWyRpXS5QU09iamVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgnbmFtZScpDQogICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAkR2VmdW5kZW4gPSAkdHJ1 ZTsgYnJlYWsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICBpZiAoLW5vdCAkR2VmdW5kZW4pIHsgU2VuZC1FcnJvciAkUmVzICJQZXJzb24g JElkIG5pY2h0IGdlZnVuZGVuIiA0MDQ7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBXcml0 ZS1Kc29uRmlsZSAncGxhbnVuZy5qc29uJyAkUGxhbnVuZw0KICAgICAgICAgICAgICAgICMgQXV0 by1Sb2xsZW4tU3luYyBuYWNoIEVkaXQgKEZ1bmt0aW9uIGthbm4gc2ljaCBnZWFlbmRlcnQgaGFi ZW4pDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJEFkbWluID0g UmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAgICAgICAgaWYgKFN5bmMt Um9sbGVuQXVzUGVyc29uZW4gJFBsYW51bmcgJEFkbWluKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICBXcml0ZS1Kc29uRmlsZSAnYWRtaW4uanNvbicgJEFkbWluDQogICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsgV3JpdGUtV2FybmluZyAiUm9sbGVuLVN5 bmMgbmFjaCBQZXJzb24tRWRpdCBmZWhsZ2VzY2hsYWdlbjogJF8iIH0NCiAgICAgICAgICAgICAg ICBXcml0ZS1Mb2dFaW50cmFnICdwZXJzb24uZ2VhZW5kZXJ0JyBAeyBwZXJzb25JZCA9ICRJZCB9 DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0gJ2FrdHVhbGlzaWVy dCcgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICMgUmVpaGVuZm9sZ2UgYWVuZGVybg0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2Fw aS9wZXJzb25lbi9yZWloZW5mb2xnZScgLWFuZCAkTWV0aG9kIC1lcSAnUFVUJykgew0KICAgICAg ICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVycm9yICRSZXMgJ0tl aW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEJvZHkg PSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAgICRSZWloZW5mb2xnZSA9ICRCb2R5IHwg Q29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAgICAgICRQbGFudW5nID0gUmVhZC1Kc29uRmls ZSAncGxhbnVuZy5qc29uJw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRSIGluICRSZWloZW5m b2xnZSkgew0KICAgICAgICAgICAgICAgICAgICBmb3IgKCRpID0gMDsgJGkgLWx0ICRQbGFudW5n LnBlcnNvbmVuLkNvdW50OyAkaSsrKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoW2lu dF0kUGxhbnVuZy5wZXJzb25lblskaV0uaWQgLWVxIFtpbnRdJFIuaWQpIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkUGxhbnVuZy5wZXJzb25lblskaV0ucG9zaXRpb24gPSBbaW50XSRS LnBvc2l0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsNCiAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICBXcml0ZS1Kc29uRmlsZSAncGxhbnVuZy5qc29uJyAkUGxhbnVuZw0K ICAgICAgICAgICAgICAgIFdyaXRlLUxvZ0VpbnRyYWcgJ3BlcnNvbmVuLnJlaWhlbmZvbGdlLmdl YWVuZGVydCcgQHt9DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsgc3RhdHVzID0g J2FrdHVhbGlzaWVydCcgfQ0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IFNUQVRJU1RJSyA9PT09PT09 PT09PT09PT09PT09PT0NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvc3RhdGlzdGlr JyAtYW5kICRNZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAgICAgICAgICAgSGFuZGxlLVN0YXRp c3RpayAkUmVzDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gRFVNTVlEQVRFTiAvIFJFU0VUID09PT09 PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgaWYgKCRQYXRoIC1lcSAnL2FwaS9wbGFudW5n L2R1bW15ZGF0ZW4nIC1hbmQgJE1ldGhvZCAtZXEgJ1BPU1QnKSB7DQogICAgICAgICAgICAgICAg aWYgKC1ub3QgKFRlc3QtSXN0QWRtaW4pKSB7IFNlbmQtRXJyb3IgJFJlcyAnS2VpbmUgQmVyZWNo dGlndW5nJyA0MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICBIYW5kbGUtRHVtbXlkYXRl biAkUmVzDQogICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgIH0NCiAgICAgICAg ICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvcGxhbnVuZy9yZXNldCcgLWFuZCAkTWV0aG9kIC1lcSAn UE9TVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RBZG1pbikpIHsgU2Vu ZC1FcnJvciAkUmVzICdLZWluZSBCZXJlY2h0aWd1bmcnIDQwMzsgY29udGludWUgfQ0KICAgICAg ICAgICAgICAgIEhhbmRsZS1SZXNldCAkUmVzDQogICAgICAgICAgICAgICAgY29udGludWUNCiAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09PT09PT0gRkxEOiBT Q0hJQ0hULUlNUE9SVCAoUGFzdGUtYmFzaWVydCkgPT09PT09PT09PT09PT09PT09PT09DQogICAg ICAgICAgICAjIFNwaWVnZWwgenUgc2VydmVyLnB5IFBPU1QgL2FwaS9pbXBvcnQvc2NoaWNodGVu L3VlYmVybmVobWVuLg0KICAgICAgICAgICAgIyBDbGllbnQgcGFyc3QgZGllIGdlcGFzdGV0ZW4g RXhjZWwtRGF0ZW4gY2xpZW50c2VpdGlnIHVuZCBzY2hpY2t0DQogICAgICAgICAgICAjIGVpbnRy YWVnZSArIHBmbGljaHQtRmxhZ3MgenVtIFNjaHJlaWJlbi4NCiAgICAgICAgICAgIGlmICgkUGF0 aCAtZXEgJy9hcGkvaW1wb3J0L3NjaGljaHRlbi91ZWJlcm5laG1lbicgLWFuZCAkTWV0aG9kIC1l cSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RTdXBlclVzZXIp KSB7IFNlbmQtRXJyb3IgJFJlcyAnTnVyIFN1cGVyVXNlciBkdWVyZmVuIGltcG9ydGllcmVuJyA0 MDM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQog ICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0Fu ZnJhZ2UgenUgZ3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgIHRyeSB7DQog ICAgICAgICAgICAgICAgICAgICRQYXJhbSA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAg ICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRS ZXMgJ1VuZ3VlbHRpZ2VzIEpTT04nIDQwMDsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICAgICAkTG9ja1Jlc3VsdCA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgICAgICAgICAgJExvY2tSZXN1bHQgPSBJbnZva2UtV2l0aEZpbGVMb2Nr ICdwbGFudW5nLmpzb24nIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nID0gUmVh ZC1Kc29uRmlsZSAncGxhbnVuZy5qc29uJw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRu dWxsIC1lcSAkUGxhbnVuZykgeyByZXR1cm4gQHsgdHlwID0gJ2Vycm9yJzsgY29kZSA9IDQwNDsg bXNnID0gJ3BsYW51bmcuanNvbiBuaWNodCBnZWZ1bmRlbicgfSB9DQoNCiAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbnRyYWVn ZSddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcgfCBBZGQtTWVtYmVy IC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnZWludHJhZWdlJyAtVmFsdWUgKE5ldy1P YmplY3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydwZmxpY2h0 J10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIg LU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdwZmxpY2h0JyAtVmFsdWUgKE5ldy1PYmpl Y3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAg ICAgICAgICAgICMgQXVkaXQtSUktMSBGMTogU2NoaWNodGNvZGUtV2hpdGVsaXN0IGF1Y2ggaW0g SW1wb3J0LVBmYWQuDQogICAgICAgICAgICAgICAgICAgICAgICAjIE1pcnJvciB6dSBzZXJ2ZXIu cHk6MzU2NC0zNTY4Lg0KICAgICAgICAgICAgICAgICAgICAgICAgJEFkbWluRnVlckltcG9ydCA9 IFJlYWQtSnNvbkZpbGUgJ2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICAkVmFs aWRDb2RlcyA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuSGFzaFNldFtz dHJpbmddDQogICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kVmFsaWRDb2Rlcy5BZGQoJycp DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRBZG1pbkZ1ZXJJbXBvcnQg LWFuZCAkQWRtaW5GdWVySW1wb3J0LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3NjaGljaHRjb2Rlcydd KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJFNjIGluICRBZG1pbkZ1 ZXJJbXBvcnQuc2NoaWNodGNvZGVzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmICgkbnVsbCAtbmUgJFNjIC1hbmQgJFNjLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2NvZGUnXSkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJFZhbGlkQ29kZXMu QWRkKFtzdHJpbmddJFNjLmNvZGUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICRBbnogPSAwOyAkTk9ycGhhbiA9IDANCiAgICAg ICAgICAgICAgICAgICAgICAgIGlmICgkUGFyYW0uUFNPYmplY3QuUHJvcGVydGllc1snZWludHJh ZWdlJ10gLWFuZCAkbnVsbCAtbmUgJFBhcmFtLmVpbnRyYWVnZSkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZvcmVhY2ggKCREYXR1bVByb3AgaW4gJFBhcmFtLmVpbnRyYWVnZS5QU09i amVjdC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICREYXR1 bSA9ICREYXR1bVByb3AuTmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGlk TWFwID0gJERhdHVtUHJvcC5WYWx1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoLW5vdCAkUGxhbnVuZy5laW50cmFlZ2UuUFNPYmplY3QuUHJvcGVydGllc1skRGF0dW1dKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5laW50cmFlZ2Ug fCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkRGF0dW0gLVZhbHVl IChOZXctT2JqZWN0IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRQaWRQcm9wIGluICRQ aWRNYXAuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJFBlcnNvbklkID0gW3N0cmluZ10kUGlkUHJvcC5OYW1lDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkV2VydCA9IFtzdHJpbmddJFBpZFByb3AuVmFsdWUNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRWYWxpZENvZGVzLkNv bnRhaW5zKCRXZXJ0KSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICROT3JwaGFuKysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250 aW51ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRQbGFudW5nLmVpbnRyYWVnZS4kRGF0dW0uUFNP YmplY3QuUHJvcGVydGllc1skUGVyc29uSWRdKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJFBsYW51bmcuZWludHJhZWdlLiREYXR1bS4kUGVyc29uSWQgPSAkV2Vy dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5laW50cmFlZ2UuJERhdHVt IHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJFBlcnNvbklkIC1W YWx1ZSAkV2VydA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFueisrDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGFyYW0uUFNP YmplY3QuUHJvcGVydGllc1sncGZsaWNodCddIC1hbmQgJG51bGwgLW5lICRQYXJhbS5wZmxpY2h0 KSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJERhdHVtUHJvcCBpbiAk UGFyYW0ucGZsaWNodC5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICREYXR1bSA9ICREYXR1bVByb3AuTmFtZQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkUGlkTWFwID0gJERhdHVtUHJvcC5WYWx1ZQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5wZmxpY2h0LlBTT2JqZWN0LlByb3Bl cnRpZXNbJERhdHVtXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBs YW51bmcucGZsaWNodCB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1l ICREYXR1bSAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3QpDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAo JFBpZFByb3AgaW4gJFBpZE1hcC5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkUGVyc29uSWQgPSBbc3RyaW5nXSRQaWRQcm9wLk5hbWUN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRGbGFnID0gJFBpZFByb3AuVmFs dWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkRmxhZykgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5wZmxpY2h0 LiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRQZXJzb25JZF0pIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGZsaWNodC4kRGF0dW0uJFBl cnNvbklkID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxh bnVuZy5wZmxpY2h0LiREYXR1bSB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5 IC1OYW1lICRQZXJzb25JZCAtVmFsdWUgJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVu Zy5wZmxpY2h0LiREYXR1bS5QU09iamVjdC5Qcm9wZXJ0aWVzWyRQZXJzb25JZF0pIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGZsaWNodC4k RGF0dW0uUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJFBlcnNvbklkKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgICAgICAgICAgV3JpdGUtUGxhbnVuZ01pdEludGVncml0YWV0ICRQbGFudW5nICAg IyBCdWxrLU9wOiBhbGxlIEhNQUNzIG5ldQ0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IEB7IHR5cCA9ICdvayc7IGVpbnRyYWVnZSA9ICRBbno7IHVuYmVrYW5udGVDb2RlcyA9ICROT3Jw aGFuIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0K ICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgIlVlYmVybmFobWUtRmVobGVyOiAk XyIgNTAwOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIGlm ICgkTG9ja1Jlc3VsdC50eXAgLWVxICdlcnJvcicpIHsgU2VuZC1FcnJvciAkUmVzICRMb2NrUmVz dWx0Lm1zZyAkTG9ja1Jlc3VsdC5jb2RlOyBjb250aW51ZSB9DQoNCiAgICAgICAgICAgICAgICBX cml0ZS1Mb2dFaW50cmFnICdzY2hpY2h0ZW4uaW1wb3J0aWVydCcgQHsgZWludHJhZWdlID0gJExv Y2tSZXN1bHQuZWludHJhZWdlOyB1bmJla2FubnRlQ29kZXMgPSAkTG9ja1Jlc3VsdC51bmJla2Fu bnRlQ29kZXMgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IHN0YXR1cyA9ICd1 ZWJlcm5vbW1lbic7IGVpbnRyYWVnZSA9ICRMb2NrUmVzdWx0LmVpbnRyYWVnZTsgdW5iZWthbm50 ZUNvZGVzID0gJExvY2tSZXN1bHQudW5iZWthbm50ZUNvZGVzIH0NCiAgICAgICAgICAgICAgICBE ZWJ1Zy1Mb2cgJ0FQSScgIlBPU1QgL2FwaS9pbXBvcnQvc2NoaWNodGVuL3VlYmVybmVobWVuIC0+ ICQoJExvY2tSZXN1bHQuZWludHJhZWdlKSBFaW50cmFlZ2UgZ2VzY2hyaWViZW4sICQoJExvY2tS ZXN1bHQudW5iZWthbm50ZUNvZGVzKSB1bmJla2FubnRlIENvZGVzIHZlcndvcmZlbiINCiAgICAg ICAgICAgICAgICBjb250aW51ZQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAjID09PT09 PT09PT09PT09PT09PT09PSBGTEQ6IEVYQ0VMLUlNUE9SVCAoVm9yc2NoYXUpID09PT09PT09PT09 PT09PT09PT09PQ0KICAgICAgICAgICAgIyBTcGllZ2VsIHp1IHNlcnZlci5weSBQT1NUIC9hcGkv aW1wb3J0L2V4Y2VsL3ZvcnNjaGF1Lg0KICAgICAgICAgICAgIyBDbGllbnQgKEJyb3dzZXIsIG1p dCB4bHN4LmZ1bGwubWluLmpzIC8gU2hlZXRKUykgcGFyc3QgZGllDQogICAgICAgICAgICAjIEV4 Y2VsLVZvcmxhZ2UgdW5kIHNjaGlja3QgZGFzIGZlcnRpZy1nZXBhcnN0ZSBTY2hlbWEuDQogICAg ICAgICAgICAjIFNlcnZlciBsaWVmZXJ0IG51ciBkZW4gUGVyc29uZW4tRGlmZiB6dXIgYWt0dWVs bGVuIHBsYW51bmcuanNvbi4NCiAgICAgICAgICAgIGlmICgkUGF0aCAtZXEgJy9hcGkvaW1wb3J0 L2V4Y2VsL3ZvcnNjaGF1JyAtYW5kICRNZXRob2QgLWVxICdQT1NUJykgew0KICAgICAgICAgICAg ICAgIGlmICgtbm90IChUZXN0LUlzdFN1cGVyVXNlcikpIHsgU2VuZC1FcnJvciAkUmVzICdOdXIg U3VwZXJVc2VyIGR1ZXJmZW4gaW1wb3J0aWVyZW4nIDQwMzsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXENCiAgICAgICAgICAgICAgICBpZiAoJG51bGwg LWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAnQW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250 aW51ZSB9DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJFBhcmFt ID0gJEJvZHkgfCBDb252ZXJ0RnJvbS1Kc29uDQogICAgICAgICAgICAgICAgfSBjYXRjaCB7DQog ICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAnVW5ndWVsdGlnZXMgSlNPTicgNDAw OyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAk UGFyYW0uUFNPYmplY3QuUHJvcGVydGllc1sncGVyc29uZW5FeGNlbCddIC1vciAkbnVsbCAtZXEg JFBhcmFtLnBlcnNvbmVuRXhjZWwpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1FcnJvciAk UmVzICdwZXJzb25lbkV4Y2VsIChBcnJheSkgZmVobHQnIDQwMDsgY29udGludWUNCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgJFBlcnNvbmVuRXhjZWwgPSBAKCRQYXJhbS5wZXJz b25lbkV4Y2VsKQ0KDQogICAgICAgICAgICAgICAgJFBsYW51bmcgPSBSZWFkLUpzb25GaWxlICdw bGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgJFBlcnNvbmVuUGxhbnVuZyA9IEAoKQ0KICAg ICAgICAgICAgICAgIGlmICgkUGxhbnVuZyAtYW5kICRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRp ZXNbJ3BlcnNvbmVuJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgJFBlcnNvbmVuUGxhbnVuZyA9 IEAoJFBsYW51bmcucGVyc29uZW4pDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgIyBNYXRjaC1IZXVyaXN0aWs6IE5hY2huYW1lIHp1ZXJzdCwgZGFubiBWb3JuYW1lLCBtaXQg RGllbnN0Z3JhZCBhbHMNCiAgICAgICAgICAgICAgICAjIFRpZWJyZWFrZXIuIEhhcmQtRmFpbCB3 ZW5uIGJlaWRlIE5hY2huYW1lbiBnZXNldHp0IGFiZXIgdW50ZXJzY2hpZWRsaWNoLg0KICAgICAg ICAgICAgICAgICMgR3JlZWR5LTE6MS1adW9yZG51bmcgKHZlcmhpbmRlcnQgZGFzcyB6d2VpIEV4 Y2VsLSdMZW5hJyBiZWlkZSBhdWYNCiAgICAgICAgICAgICAgICAjIGRpZSBnbGVpY2hlIHBsYW51 bmctTGVuYSBsYW5kZW4pLg0KICAgICAgICAgICAgICAgICMgSW5ha3RpdmUgUGVyc29uZW4gd2Vy ZGVuIGViZW5mYWxscyBiZXJ1ZWNrc2ljaHRpZ3QsIHNvbnN0IHd1ZXJkZW4NCiAgICAgICAgICAg ICAgICAjIHp1dm9yIGRlYWt0aXZpZXJ0ZSBQZXJzb25lbiBiZWkgUmUtSW1wb3J0IGFscyAnbmV1 JyBhbmdlbGVndCBzdGF0dA0KICAgICAgICAgICAgICAgICMgcmVha3RpdmllcnQuIEFrdGl2ZSBi ZWtvbW1lbiArMC41IFNjb3JlLUJvbnVzLg0KICAgICAgICAgICAgICAgICRBbGxlUGxhbnVuZyA9 IEAoJFBlcnNvbmVuUGxhbnVuZykNCg0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIEdldC1OYW1l VG9rZW5zKCROYW1lKSB7DQogICAgICAgICAgICAgICAgICAgICMgU3BsaXQgYmVpIEJpbmRlc3Ry aWNoICsgV2hpdGVzcGFjZSwgbG93ZXJjYXNlLCBsZWVyZSByYXVzLg0KICAgICAgICAgICAgICAg ICAgICAjICdSZW11cy1BcnRodXInIC0+IEAoJ3JlbXVzJywgJ2FydGh1cicpDQogICAgICAgICAg ICAgICAgICAgICMgVW1sYXV0ZSArIHNzLU5vcm06ICdNdWVsbGVyJyBtYXRjaGVkICdNw7xsbGVy JywgJ01hcmlzcycgJ01hcmnDnycuDQogICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICROYW1l KSB7IHJldHVybiBAKCkgfQ0KICAgICAgICAgICAgICAgICAgICAkcyA9IChbc3RyaW5nXSROYW1l KS5UcmltKCkuVG9Mb3dlcigpDQogICAgICAgICAgICAgICAgICAgICRzID0gJHMgLXJlcGxhY2Ug J8OkJywnYWUnIC1yZXBsYWNlICfDticsJ29lJyAtcmVwbGFjZSAnw7wnLCd1ZScgLXJlcGxhY2Ug J8OfJywnc3MnDQogICAgICAgICAgICAgICAgICAgIHJldHVybiBAKCRzIC1zcGxpdCAnWy1cc10r JyB8IFdoZXJlLU9iamVjdCB7ICRfIH0pDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICAgICAgZnVuY3Rpb24gVGVzdC1OYW1lc01hdGNoKCRBLCAkQikgew0KICAgICAgICAgICAgICAg ICAgICAjIFRydWUgd2VubiBkaWUgVG9rZW4tU2V0cyBzaWNoIHVlYmVybGFwcGVuLg0KICAgICAg ICAgICAgICAgICAgICAkdGEgPSBHZXQtTmFtZVRva2VucyAkQQ0KICAgICAgICAgICAgICAgICAg ICAkdGIgPSBHZXQtTmFtZVRva2VucyAkQg0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAk dGEgLW9yIC1ub3QgJHRiKSB7IHJldHVybiAkZmFsc2UgfQ0KICAgICAgICAgICAgICAgICAgICBm b3JlYWNoICgkdCBpbiAkdGEpIHsgaWYgKCR0YiAtY29udGFpbnMgJHQpIHsgcmV0dXJuICR0cnVl IH0gfQ0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGZhbHNlDQogICAgICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICAgICAgZnVuY3Rpb24gR2V0LVBlcnNvblNjb3JlKCRFeGNlbCwgJFBs YW51bmcpIHsNCiAgICAgICAgICAgICAgICAgICAgJGVOID0gKFtzdHJpbmddJEV4Y2VsLm5hY2hu YW1lKS5UcmltKCkNCiAgICAgICAgICAgICAgICAgICAgJGVWID0gKFtzdHJpbmddJEV4Y2VsLnZv cm5hbWUpLlRyaW0oKQ0KICAgICAgICAgICAgICAgICAgICAkZUQgPSAoW3N0cmluZ10kRXhjZWwu ZGllbnN0Z3JhZCkuVHJpbSgpLlRvTG93ZXIoKQ0KICAgICAgICAgICAgICAgICAgICAkcE4gPSBp ZiAoJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGllc1snbmFjaG5hbWUnXSkgeyAoW3N0cmluZ10k UGxhbnVuZy5uYWNobmFtZSkuVHJpbSgpIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAg ICAgJHBWID0gaWYgKCRQbGFudW5nLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Zvcm5hbWUnXSkgeyAo W3N0cmluZ10kUGxhbnVuZy52b3JuYW1lKS5UcmltKCkgfSBlbHNlIHsgJycgfQ0KICAgICAgICAg ICAgICAgICAgICAkcEQgPSBpZiAoJFBsYW51bmcuUFNPYmplY3QuUHJvcGVydGllc1snZGllbnN0 Z3JhZCddKSB7IChbc3RyaW5nXSRQbGFudW5nLmRpZW5zdGdyYWQpLlRyaW0oKS5Ub0xvd2VyKCkg fSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAjIEhhcmQtRmFpbDogYmVpZGUgTmFj aG5hbWVuIGdlc2V0enQsIGFiZXIga2VpbmUgVG9rZW4tVWViZXJsYXBwdW5nDQogICAgICAgICAg ICAgICAgICAgIGlmICgkZU4gLWFuZCAkcE4gLWFuZCAtbm90IChUZXN0LU5hbWVzTWF0Y2ggJGVO ICRwTikpIHsgcmV0dXJuIDAgfQ0KICAgICAgICAgICAgICAgICAgICAkbk0gPSAoVGVzdC1OYW1l c01hdGNoICRlTiAkcE4pDQogICAgICAgICAgICAgICAgICAgICR2TSA9IChUZXN0LU5hbWVzTWF0 Y2ggJGVWICRwVikNCiAgICAgICAgICAgICAgICAgICAgJGRNID0gKCRlRCAtYW5kICRwRCAtYW5k ICRlRCAtZXEgJHBEKQ0KICAgICAgICAgICAgICAgICAgICBpZiAoJG5NIC1hbmQgJHZNIC1hbmQg JGRNKSB7IHJldHVybiA1IH0gICAjIHBlcmZla3QNCiAgICAgICAgICAgICAgICAgICAgaWYgKCRu TSAtYW5kICR2TSkgeyByZXR1cm4gNCB9ICAgICAgICAgICAgIyBzZWhyIHN0YXJrDQogICAgICAg ICAgICAgICAgICAgIGlmICgkbk0gLWFuZCAkZE0pIHsgcmV0dXJuIDMgfQ0KICAgICAgICAgICAg ICAgICAgICBpZiAoJG5NKSB7IHJldHVybiAzIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKC1u b3QgJHBOIC1hbmQgJHZNIC1hbmQgJGRNKSB7IHJldHVybiAzIH0NCiAgICAgICAgICAgICAgICAg ICAgaWYgKC1ub3QgJHBOIC1hbmQgJHZNKSB7IHJldHVybiAyIH0NCiAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIDANCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBmdW5jdGlv biBHZXQtUGVyc29uS29tcGFrdCgkUCkgew0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gQHsN CiAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJFAuaWQNCiAgICAgICAgICAgICAgICAgICAg ICAgIHZvcm5hbWUgPSBpZiAoJFAuUFNPYmplY3QuUHJvcGVydGllc1sndm9ybmFtZSddKSB7ICRQ LnZvcm5hbWUgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgbmFjaG5hbWUg PSBpZiAoJFAuUFNPYmplY3QuUHJvcGVydGllc1snbmFjaG5hbWUnXSkgeyAkUC5uYWNobmFtZSB9 IGVsc2UgeyAnJyB9DQogICAgICAgICAgICAgICAgICAgICAgICBkaWVuc3RncmFkID0gaWYgKCRQ LlBTT2JqZWN0LlByb3BlcnRpZXNbJ2RpZW5zdGdyYWQnXSkgeyAkUC5kaWVuc3RncmFkIH0gZWxz ZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmt0aW9uID0gaWYgKCRQLlBTT2Jq ZWN0LlByb3BlcnRpZXNbJ2Z1bmt0aW9uJ10pIHsgJFAuZnVua3Rpb24gfSBlbHNlIHsgJycgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgYWt0aXYgPSBpZiAoJFAuUFNPYmplY3QuUHJvcGVydGll c1snYWt0aXYnXSkgeyAkUC5ha3RpdiB9IGVsc2UgeyAkdHJ1ZSB9DQogICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAjIFBoYXNlIDE6IGFs bGUgKHNjb3JlLCBlaSwgcGkpLVBhYXJlLiBBa3RpdmUgKzAuNSBCb251cy4NCiAgICAgICAgICAg ICAgICAkUGFhcmUgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QNCiAg ICAgICAgICAgICAgICBmb3IgKCRlaSA9IDA7ICRlaSAtbHQgJFBlcnNvbmVuRXhjZWwuQ291bnQ7 ICRlaSsrKSB7DQogICAgICAgICAgICAgICAgICAgIGZvciAoJHBpID0gMDsgJHBpIC1sdCAkQWxs ZVBsYW51bmcuQ291bnQ7ICRwaSsrKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkcyA9IEdl dC1QZXJzb25TY29yZSAkUGVyc29uZW5FeGNlbFskZWldICRBbGxlUGxhbnVuZ1skcGldDQogICAg ICAgICAgICAgICAgICAgICAgICBpZiAoJHMgLWd0IDApIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkaXN0QWt0aXYgPSAtbm90ICRBbGxlUGxhbnVuZ1skcGldLlBTT2JqZWN0LlByb3Bl cnRpZXNbJ2FrdGl2J10gLW9yICRBbGxlUGxhbnVuZ1skcGldLmFrdGl2IC1lcSAkdHJ1ZQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaXN0QWt0aXYpIHsgJHMgKz0gMC41IH0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kUGFhcmUuQWRkKEB7IHM9JHM7IGVpPSRl aTsgcGk9JHBpIH0pDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIyBQaGFzZSAyOiBncmVl ZHkgbmFjaCBTY29yZSBhYnN0ZWlnZW5kDQogICAgICAgICAgICAgICAgJFNvcnRlZCA9IEAoJFBh YXJlIHwgU29ydC1PYmplY3QgLVByb3BlcnR5IEB7RXhwcmVzc2lvbj17IC0kXy5zIH19KQ0KICAg ICAgICAgICAgICAgICRFeGNlbFp1UGxhbnVuZyA9IEB7fQ0KICAgICAgICAgICAgICAgICRQbGFu dW5nVXNlZCA9IEB7fQ0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwcCBpbiAkU29ydGVkKSB7 DQogICAgICAgICAgICAgICAgICAgIGlmICgkRXhjZWxadVBsYW51bmcuQ29udGFpbnNLZXkoJHBw LmVpKSkgeyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZ1VzZWQu Q29udGFpbnNLZXkoJHBwLnBpKSkgeyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgICRF eGNlbFp1UGxhbnVuZ1skcHAuZWldID0gQHsgcGkgPSAkcHAucGk7IHMgPSAkcHAucyB9DQogICAg ICAgICAgICAgICAgICAgICRQbGFudW5nVXNlZFskcHAucGldID0gJHRydWUNCiAgICAgICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgICAgICAkTWF0Y2ggPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xs ZWN0aW9ucy5BcnJheUxpc3QNCiAgICAgICAgICAgICAgICAkTmV1ID0gTmV3LU9iamVjdCBTeXN0 ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgICAgICAgICAgJFVuc2ljaGVyID0gTmV3 LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgICAgICAgICAgJEVu dGZlcm50ID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQoNCiAgICAg ICAgICAgICAgICAjIFBoYXNlIDM6IE1laHJkZXV0aWdrZWl0cy1DaGVjaw0KICAgICAgICAgICAg ICAgIGZvciAoJGVpID0gMDsgJGVpIC1sdCAkUGVyc29uZW5FeGNlbC5Db3VudDsgJGVpKyspIHsN CiAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJEV4Y2VsWnVQbGFudW5nLkNvbnRhaW5zS2V5 KCRlaSkpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICAkZyA9ICRFeGNlbFp1UGxh bnVuZ1skZWldDQogICAgICAgICAgICAgICAgICAgIGlmICgkZy5zIC1sZSAzKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAkQW5kZXJlID0gQCgpDQogICAgICAgICAgICAgICAgICAgICAgICBm b3IgKCRwaSA9IDA7ICRwaSAtbHQgJEFsbGVQbGFudW5nLkNvdW50OyAkcGkrKykgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmICgkcGkgLWVxICRnLnBpKSB7IGNvbnRpbnVlIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBsYW51bmdVc2VkLkNvbnRhaW5zS2V5KCRw aSkpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzayA9IEdldC1Q ZXJzb25TY29yZSAkUGVyc29uZW5FeGNlbFskZWldICRBbGxlUGxhbnVuZ1skcGldDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgJGlzdEEgPSAtbm90ICRBbGxlUGxhbnVuZ1skcGldLlBTT2Jq ZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10gLW9yICRBbGxlUGxhbnVuZ1skcGldLmFrdGl2IC1lcSAk dHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc2sgLWd0IDAgLWFuZCAkaXN0 QSkgeyAkc2sgKz0gMC41IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHNrIC1l cSAkZy5zKSB7ICRBbmRlcmUgKz0gJHBpIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgIGlmICgkQW5kZXJlLkNvdW50IC1ndCAwKSB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgJEthbmRJZHggPSBAKCRnLnBpKSArICRBbmRlcmUNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkS2FuZE9iaiA9IEAoKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZvcmVhY2ggKCRwaSBpbiAkS2FuZElkeCkgeyAkS2FuZE9iaiArPSAoR2V0LVBl cnNvbktvbXBha3QgJEFsbGVQbGFudW5nWyRwaV0pIH0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbdm9pZF0kVW5zaWNoZXIuQWRkKEB7IGV4Y2VsID0gJFBlcnNvbmVuRXhjZWxbJGVpXTsg a2FuZGlkYXRlbiA9ICRLYW5kT2JqIH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJEV4 Y2VsWnVQbGFudW5nLlJlbW92ZSgkZWkpIHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgICMgUGhhc2UgNDogbWF0Y2ggKyBuZXUga2xhc3NpZml6aWVyZW4NCiAgICAgICAg ICAgICAgICBmb3IgKCRlaSA9IDA7ICRlaSAtbHQgJFBlcnNvbmVuRXhjZWwuQ291bnQ7ICRlaSsr KSB7DQogICAgICAgICAgICAgICAgICAgIGlmICgkRXhjZWxadVBsYW51bmcuQ29udGFpbnNLZXko JGVpKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJGcgPSAkRXhjZWxadVBsYW51bmdbJGVp XQ0KICAgICAgICAgICAgICAgICAgICAgICAgJGNvbmZpZGVuY2UgPSBpZiAoJGcucyAtZ2UgNCkg eyAnaG9jaCcgfSBlbHNlIHsgJ21pdHRlbCcgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgW3Zv aWRdJE1hdGNoLkFkZChAew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsID0gJFBl cnNvbmVuRXhjZWxbJGVpXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW51bmcgPSAo R2V0LVBlcnNvbktvbXBha3QgJEFsbGVQbGFudW5nWyRnLnBpXSkNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25maWRlbmNlID0gJGNvbmZpZGVuY2UNCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pDQogICAgICAgICAgICAgICAgICAgIH0gZWxzZWlmICgtbm90ICgkVW5zaWNoZXIgfCBX aGVyZS1PYmplY3QgeyAkXy5leGNlbCAtZXEgJFBlcnNvbmVuRXhjZWxbJGVpXSB9KSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJE5ldS5BZGQoQHsgZXhjZWwgPSAkUGVyc29uZW5F eGNlbFskZWldIH0pDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICAgICAjIFBoYXNlIDU6IGVudGZlcm50ID0gQUtUSVZFIHBsYW51bmcgb2hu ZSBNYXRjaCAoaW5ha3RpdmUgYmxlaWJlbiBlaW5mYWNoIGluYWt0aXYpDQogICAgICAgICAgICAg ICAgZm9yICgkcGkgPSAwOyAkcGkgLWx0ICRBbGxlUGxhbnVuZy5Db3VudDsgJHBpKyspIHsNCiAg ICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJFBsYW51bmdVc2VkLkNvbnRhaW5zS2V5KCRwaSkp IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRpc3RBa3RpdiA9IC1ub3QgJEFsbGVQbGFudW5n WyRwaV0uUFNPYmplY3QuUHJvcGVydGllc1snYWt0aXYnXSAtb3IgJEFsbGVQbGFudW5nWyRwaV0u YWt0aXYgLWVxICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGlzdEFrdGl2KSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZvaWRdJEVudGZlcm50LkFkZChAeyBwbGFu dW5nID0gKEdldC1QZXJzb25Lb21wYWt0ICRBbGxlUGxhbnVuZ1skcGldKSB9KQ0KICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMgQHsNCiAgICAgICAgICAgICAgICAg ICAgamFociA9IGlmICgkUGFyYW0uUFNPYmplY3QuUHJvcGVydGllc1snamFociddKSB7ICRQYXJh bS5qYWhyIH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAgICAgcGVyc29uZW4gPSBA ew0KICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSBAKCRNYXRjaCkNCiAgICAgICAgICAg ICAgICAgICAgICAgIG5ldSA9IEAoJE5ldSkNCiAgICAgICAgICAgICAgICAgICAgICAgIGVudGZl cm50ID0gQCgkRW50ZmVybnQpDQogICAgICAgICAgICAgICAgICAgICAgICB1bnNpY2hlciA9IEAo JFVuc2ljaGVyKQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGFu emFobCA9IEB7DQogICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25lbkV4Y2VsID0gJFBlcnNv bmVuRXhjZWwuQ291bnQNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICBEZWJ1Zy1Mb2cgJ0FQSScgIlBPU1QgL2FwaS9pbXBvcnQvZXhjZWwv dm9yc2NoYXUgLT4gJCgkUGVyc29uZW5FeGNlbC5Db3VudCkgUGVyc29uZW4sIG1hdGNoPSQoJE1h dGNoLkNvdW50KSBuZXU9JCgkTmV1LkNvdW50KSBlbnRmZXJudD0kKCRFbnRmZXJudC5Db3VudCkg dW5zaWNoZXI9JCgkVW5zaWNoZXIuQ291bnQpIg0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQog ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IEZMRDog RVhDRUwtSU1QT1JUIChVZWJlcm5haG1lKSA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAg ICAgICMgU3BpZWdlbCB6dSBzZXJ2ZXIucHkgUE9TVCAvYXBpL2ltcG9ydC9leGNlbC91ZWJlcm5l aG1lbi4NCiAgICAgICAgICAgICMgQm9keSBlbnRoYWVsdCBnZXBhcnN0ZSBFeGNlbC1EYXRlbiAr IFVzZXItQWt0aW9uZW4gYXVzIGRlbSBXaXphcmQuDQogICAgICAgICAgICBpZiAoJFBhdGggLWVx ICcvYXBpL2ltcG9ydC9leGNlbC91ZWJlcm5laG1lbicgLWFuZCAkTWV0aG9kIC1lcSAnUE9TVCcp IHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RTdXBlclVzZXIpKSB7IFNlbmQt RXJyb3IgJFJlcyAnTnVyIFN1cGVyVXNlciBkdWVyZmVuIGltcG9ydGllcmVuJyA0MDM7IGNvbnRp bnVlIH0NCiAgICAgICAgICAgICAgICAkQm9keSA9IFJlYWQtQm9keSAkUmVxDQogICAgICAgICAg ICAgICAgaWYgKCRudWxsIC1lcSAkQm9keSkgeyBTZW5kLUVycm9yICRSZXMgJ0FuZnJhZ2UgenUg Z3Jvc3MnIDQxMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAg ICAgICAgICAgICRQYXJhbSA9ICRCb2R5IHwgQ29udmVydEZyb20tSnNvbg0KICAgICAgICAgICAg ICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgJ1VuZ3Vl bHRpZ2VzIEpTT04nIDQwMDsgY29udGludWUNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICAgICAkUGFyc2VkID0gJFBhcmFtLnBhcnNlZERhdGVuDQogICAgICAgICAgICAgICAgJEFr dGlvbmVuID0gQCgkUGFyYW0ucGVyc29uZW5Ba3Rpb25lbikNCiAgICAgICAgICAgICAgICAkT3B0 cyA9ICRQYXJhbS51ZWJlcm5laG1lbg0KICAgICAgICAgICAgICAgICRPcHRTY2hpY2h0ZW4gPSBp ZiAoJE9wdHMuUFNPYmplY3QuUHJvcGVydGllc1snc2NoaWNodGVuJ10pIHsgW2Jvb2xdJE9wdHMu c2NoaWNodGVuIH0gZWxzZSB7ICR0cnVlIH0NCiAgICAgICAgICAgICAgICAkT3B0S29tbWVudGFy ZSA9IGlmICgkT3B0cy5QU09iamVjdC5Qcm9wZXJ0aWVzWydrb21tZW50YXJlJ10pIHsgW2Jvb2xd JE9wdHMua29tbWVudGFyZSB9IGVsc2UgeyAkdHJ1ZSB9DQogICAgICAgICAgICAgICAgJE9wdFNv bmRlcnRlcm1pbmUgPSBpZiAoJE9wdHMuUFNPYmplY3QuUHJvcGVydGllc1snc29uZGVydGVybWlu ZSddKSB7IFtib29sXSRPcHRzLnNvbmRlcnRlcm1pbmUgfSBlbHNlIHsgJHRydWUgfQ0KICAgICAg ICAgICAgICAgICRPcHRUYWdlc2RhdGVuID0gaWYgKCRPcHRzLlBTT2JqZWN0LlByb3BlcnRpZXNb J3RhZ2VzZGF0ZW4nXSkgeyBbYm9vbF0kT3B0cy50YWdlc2RhdGVuIH0gZWxzZSB7ICR0cnVlIH0N CiAgICAgICAgICAgICAgICAkT3B0UmVpaGVuZm9sZ2UgPSBpZiAoJE9wdHMuUFNPYmplY3QuUHJv cGVydGllc1sncmVpaGVuZm9sZ2UnXSkgeyBbYm9vbF0kT3B0cy5yZWloZW5mb2xnZSB9IGVsc2Ug eyAkdHJ1ZSB9DQoNCiAgICAgICAgICAgICAgICAkRXhjZWxQZXJzb25lbiA9IGlmICgkUGFyc2Vk LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BlcnNvbmVuJ10pIHsgQCgkUGFyc2VkLnBlcnNvbmVuKSB9 IGVsc2UgeyBAKCkgfQ0KICAgICAgICAgICAgICAgICRFeGNlbEVpbnRyYWVnZSA9IGlmICgkUGFy c2VkLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2VpbnRyYWVnZSddKSB7ICRQYXJzZWQuZWludHJhZWdl IH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAkRXhjZWxQZmxpY2h0ID0gaWYgKCRQ YXJzZWQuUFNPYmplY3QuUHJvcGVydGllc1sncGZsaWNodCddKSB7ICRQYXJzZWQucGZsaWNodCB9 IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAgICAgJEV4Y2VsS29tbWVudGFyZSA9IGlmICgk UGFyc2VkLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2tvbW1lbnRhcmUnXSkgeyAkUGFyc2VkLmtvbW1l bnRhcmUgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAgICRFeGNlbFRlcm1pbmUgPSBp ZiAoJFBhcnNlZC5QU09iamVjdC5Qcm9wZXJ0aWVzWyd0ZXJtaW5lJ10pIHsgJFBhcnNlZC50ZXJt aW5lIH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAkRXhjZWxUYWdlc2RhdGVuID0g aWYgKCRQYXJzZWQuUFNPYmplY3QuUHJvcGVydGllc1sndGFnZXNkYXRlbiddKSB7ICRQYXJzZWQu dGFnZXNkYXRlbiB9IGVsc2UgeyAkbnVsbCB9DQoNCiAgICAgICAgICAgICAgICAjIEV4Y2VsLVJv dyAtPiBFeGNlbC1QZXJzb24gSGFzaG1hcA0KICAgICAgICAgICAgICAgICRFeGNlbEJ5Um93ID0g QHt9DQogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJEV4Y2VsUGVyc29uZW4pIHsNCiAg ICAgICAgICAgICAgICAgICAgaWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2V4Y2VsUm93J10p IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRFeGNlbEJ5Um93W1tpbnRdJHAuZXhjZWxSb3dd ID0gJHANCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgICRKZXR6dCA9IEdldC1EYXRlIC1Gb3JtYXQgJ3l5eXktTU0tZGQgSEg6bW06c3Mn DQogICAgICAgICAgICAgICAgJFRzID0gR2V0LURhdGUgLUZvcm1hdCAneXl5eU1NZGRfSEhtbXNz Jw0KICAgICAgICAgICAgICAgICRCYWNrdXBOYW1lID0gInBsYW51bmdfYmFja3VwX3Zvcl9leGNl bF9pbXBvcnRfJFRzLmpzb24iDQoNCiAgICAgICAgICAgICAgICAkTG9ja1Jlc3VsdCA9ICRudWxs DQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgJExvY2tSZXN1bHQg PSBJbnZva2UtV2l0aEZpbGVMb2NrICdwbGFudW5nLmpzb24nIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICRQbGFudW5nID0gUmVhZC1Kc29uRmlsZSAncGxhbnVuZy5qc29uJw0KICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRudWxsIC1lcSAkUGxhbnVuZykgeyByZXR1cm4gQHsgdHlwID0g J2Vycm9yJzsgY29kZSA9IDQwNDsgbXNnID0gJ3BsYW51bmcuanNvbiBuaWNodCBnZWZ1bmRlbicg fSB9DQogICAgICAgICAgICAgICAgICAgICAgICAjIEJhY2t1cCB1bnRlciBkZW0gTG9jaw0KICAg ICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmdQYXRoID0gSm9pbi1QYXRoICREYXRhRGlyICdw bGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICBDb3B5LUl0ZW0gLVBhdGggJFBs YW51bmdQYXRoIC1EZXN0aW5hdGlvbiAoSm9pbi1QYXRoICREYXRhRGlyICRCYWNrdXBOYW1lKSAt Rm9yY2UNCiAgICAgICAgICAgICAgICAgICAgICAgIEludm9rZS1CYWNrdXBSb3RhdGlvbiAncGxh bnVuZ19iYWNrdXBfKi5qc29uJyAyMA0KDQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5v dCAkUGxhbnVuZy5QU09iamVjdC5Qcm9wZXJ0aWVzWydwZXJzb25lbiddKSB7ICRQbGFudW5nIHwg QWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ3BlcnNvbmVuJyAtVmFs dWUgQCgpIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRQbGFudW5nLlBTT2Jq ZWN0LlByb3BlcnRpZXNbJ2VpbnRyYWVnZSddKSB7ICRQbGFudW5nIHwgQWRkLU1lbWJlciAtTWVt YmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ2VpbnRyYWVnZScgLVZhbHVlIChOZXctT2JqZWN0 IFBTT2JqZWN0KSB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5Q U09iamVjdC5Qcm9wZXJ0aWVzWydwZmxpY2h0J10pIHsgJFBsYW51bmcgfCBBZGQtTWVtYmVyIC1N ZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAncGZsaWNodCcgLVZhbHVlIChOZXctT2JqZWN0 IFBTT2JqZWN0KSB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUGxhbnVuZy5Q U09iamVjdC5Qcm9wZXJ0aWVzWydrb21tZW50YXJlJ10pIHsgJFBsYW51bmcgfCBBZGQtTWVtYmVy IC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAna29tbWVudGFyZScgLVZhbHVlIChOZXct T2JqZWN0IFBTT2JqZWN0KSB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICMgUGVyc29uZW4t TGlzdGUgbXV0aWVyZW4NCiAgICAgICAgICAgICAgICAgICAgICAgICRQZXJzb25lbkxpc3RlID0g TmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuQXJyYXlMaXN0DQogICAgICAgICAgICAgICAg ICAgICAgICBmb3JlYWNoICgkcCBpbiBAKCRQbGFudW5nLnBlcnNvbmVuKSkgeyBbdm9pZF0kUGVy c29uZW5MaXN0ZS5BZGQoJHApIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICROZXh0SWQgPSAx DQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcCBpbiAkUGVyc29uZW5MaXN0ZSkg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcC5QU09iamVjdC5Qcm9wZXJ0aWVz WydpZCddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpID0gW2ludF0kcC5p ZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGkgLWdlICROZXh0SWQpIHsg JE5leHRJZCA9ICRpICsgMSB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAkRXhjZWxSb3dU b1BpZCA9IEB7fQ0KICAgICAgICAgICAgICAgICAgICAgICAgJE5QZXJzb25lbk5ldSA9IDA7ICRO UGVyc29uZW5EZWFrdCA9IDA7ICROUGVyc29uZW5Ba3R1YWxpc2llcnQgPSAwDQogICAgICAgICAg ICAgICAgICAgICAgICAjIHBsYW51bmctUGVyc29uZW4tTG9va3VwIG5hY2ggaWQgKGZ1ZXIgbWF0 Y2gtVXBkYXRlcykNCiAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nQnlJZCA9IEB7fQ0K ICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJFBlcnNvbmVuTGlzdGUpIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHAuUFNPYmplY3QuUHJvcGVydGllc1sn aWQnXSkgeyAkUGxhbnVuZ0J5SWRbW2ludF0kcC5pZF0gPSAkcCB9DQogICAgICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkYSBpbiAkQWt0aW9u ZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWt0ID0gW3N0cmluZ10kYS5ha3Rp b24NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGFrdCAtZXEgJ21hdGNoJykgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXIgPSBbaW50XSRhLmV4Y2VsUm93DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtYXRjaFBpZCA9IFtpbnRdJGEucGxhbnVu Z3NJZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFNjaGljaHRlbiArIEtvbW1l bnRhcmUgd2VyZGVuIElNTUVSIGltcG9ydGllcnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyAoYXVjaCBmdWVyIGluYWt0aXZlIFBlcnNvbmVuIC0gRGF0ZW4gdmVyZnVlZ2Jhcg0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZhbGxzIGRpZSBQZXJzb24gc3BhZXRl ciByZWFrdGl2aWVydCB3aXJkKS4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHJl YWt0ID0gJGZhbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkYS5QU09i amVjdC5Qcm9wZXJ0aWVzWydyZWFrdGl2aWVyZW4nXSkgeyAkcmVha3QgPSBbYm9vbF0kYS5yZWFr dGl2aWVyZW4gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkRXhjZWxSb3dUb1Bp ZFskZXJdID0gJG1hdGNoUGlkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXhj ZWwtRmVsZGVyIHNwaWVnZWxuLCBhYmVyIE5VUiBsZWVyZSBGZWxkZXIgdWViZXJzY2hyZWliZW4N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRFeGNlbEJ5Um93LkNvbnRhaW5z S2V5KCRlcikgLWFuZCAkUGxhbnVuZ0J5SWQuQ29udGFpbnNLZXkoJG1hdGNoUGlkKSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVwID0gJEV4Y2VsQnlSb3dbJGVyXQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRhcmdldCA9ICRQbGFudW5nQnlJ ZFskbWF0Y2hQaWRdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2VhZW5k ZXJ0ID0gJGZhbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFJlYWt0 aXZpZXJlbiBOVVIgd2VubiBVc2VyIGV4cGxpeml0IGFuZ2Vmb3JkZXJ0DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkaXN0QWt0aXYgPSAtbm90ICR0YXJnZXQuUFNPYmplY3Qu UHJvcGVydGllc1snYWt0aXYnXSAtb3IgJHRhcmdldC5ha3RpdiAtZXEgJHRydWUNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRpc3RBa3RpdiAtYW5kICRyZWFr dCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdGFyZ2V0 LlBTT2JqZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10pIHsgJHRhcmdldC5ha3RpdiA9ICR0cnVlIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgJHRhcmdldCB8 IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdha3RpdicgLVZhbHVl ICR0cnVlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ2VhZW5k ZXJ0ID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmZWxkIGluIEAoJ25hY2hu YW1lJywgJ2RpZW5zdGdyYWQnLCAnZnVua3Rpb24nKSkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRuZXUgPSBpZiAoJGVwLlBTT2JqZWN0LlByb3BlcnRpZXNbJGZl bGRdKSB7IChbc3RyaW5nXSRlcC4kZmVsZCkuVHJpbSgpIH0gZWxzZSB7ICcnIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYWx0ID0gaWYgKCR0YXJnZXQuUFNPYmpl Y3QuUHJvcGVydGllc1skZmVsZF0pIHsgKFtzdHJpbmddJHRhcmdldC4kZmVsZCkuVHJpbSgpIH0g ZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo JG5ldSAtYW5kIC1ub3QgJGFsdCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoJHRhcmdldC5QU09iamVjdC5Qcm9wZXJ0aWVzWyRmZWxkXSkgeyAkdGFy Z2V0LiRmZWxkID0gJG5ldSB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVsc2UgeyAkdGFyZ2V0IHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVy dHkgLU5hbWUgJGZlbGQgLVZhbHVlICRuZXUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkZ2VhZW5kZXJ0ID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIExlZ2FjeS1GZWxkICdu YW1lJyBhdXMgYWx0ZW4gRGF0ZW5zdGFlbmRlbiBlbnRmZXJuZW4gKEF1ZGl0LUl0ZXItQikNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdGFyZ2V0LlBTT2JqZWN0LlBy b3BlcnRpZXNbJ25hbWUnXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICR0YXJnZXQuUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJ25hbWUnKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRnZWFlbmRlcnQgPSAkdHJ1ZQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCRnZWFlbmRlcnQpIHsgJE5QZXJzb25lbkFrdHVhbGlzaWVydCsrIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0gZWxzZWlmICgkYWt0IC1lcSAnbmV1Jykgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkZXIgPSBbaW50XSRhLmV4Y2VsUm93DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICgtbm90ICRFeGNlbEJ5Um93LkNvbnRhaW5zS2V5KCRlcikpIHsgY29udGlu dWUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXAgPSAkRXhjZWxCeVJvd1sk ZXJdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRleE5hY2ggPSBpZiAoJGVwLlBT T2JqZWN0LlByb3BlcnRpZXNbJ25hY2huYW1lJ10pIHsgJGVwLm5hY2huYW1lIH0gZWxzZSB7ICcn IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBXaXphcmQtUmFkaW8gImluYWt0 aXYgaW1wb3J0aWVyZW4iIHJlc3Bla3RpZXJlbiAoQXVkaXQtSXRlci1CKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkQWt0aXZGbGFnID0gJHRydWUNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRhLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10gLWFuZCAk bnVsbCAtbmUgJGEuYWt0aXYpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRBa3RpdkZsYWcgPSBbYm9vbF0kYS5ha3Rpdg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXVQZXJzb24gPSBbUFND dXN0b21PYmplY3RdQHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0g JE5leHRJZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWt0aXYgPSAkQWt0 aXZGbGFnDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b3JuYW1lID0gaWYg KCRlcC5QU09iamVjdC5Qcm9wZXJ0aWVzWyd2b3JuYW1lJ10pIHsgJGVwLnZvcm5hbWUgfSBlbHNl IHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFjaG5hbWUgPSAk ZXhOYWNoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWVuc3RncmFkID0g aWYgKCRlcC5QU09iamVjdC5Qcm9wZXJ0aWVzWydkaWVuc3RncmFkJ10pIHsgJGVwLmRpZW5zdGdy YWQgfSBlbHNlIHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVu a3Rpb24gPSBpZiAoJGVwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2Z1bmt0aW9uJ10pIHsgJGVwLmZ1 bmt0aW9uIH0gZWxzZSB7ICcnIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kUGVyc29uZW5MaXN0ZS5BZGQo JE5ldVBlcnNvbikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmdCeUlk WyROZXh0SWRdID0gJE5ldVBlcnNvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk RXhjZWxSb3dUb1BpZFskZXJdID0gJE5leHRJZA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkTmV4dElkKysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5QZXJzb25l bk5ldSsrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgKCRha3QgLWVxICdk ZWFrdGl2aWVyZW4nKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkZWFrdElk ID0gW2ludF0kYS5wbGFudW5nc0lkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv cmVhY2ggKCRwIGluICRQZXJzb25lbkxpc3RlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoJHAuUFNPYmplY3QuUHJvcGVydGllc1snaWQnXSAtYW5kIFtpbnRdJHAu aWQgLWVxICRkZWFrdElkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10pIHsgJHAuYWt0aXYgPSAkZmFs c2UgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyAkcCB8 IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdha3RpdicgLVZhbHVl ICRmYWxzZSB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5QZXJz b25lbkRlYWt0KysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh aw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAjIFNjaGljaHRl biArIFBmbGljaHQNCiAgICAgICAgICAgICAgICAgICAgICAgICRORWludHJhZWdlID0gMDsgJE5Q ZmxpY2h0ID0gMDsgJE5PcnBoYW4gPSAwDQogICAgICAgICAgICAgICAgICAgICAgICAjIEF1ZGl0 LUlJLTEgRjE6IFNjaGljaHRjb2RlLVdoaXRlbGlzdCBhdWNoIGltIEV4Y2VsLUltcG9ydC4NCiAg ICAgICAgICAgICAgICAgICAgICAgICMgTWlycm9yIHp1IHNlcnZlci5weTozNzY2LTM3NzAuDQog ICAgICAgICAgICAgICAgICAgICAgICAkRXhjZWxWYWxpZENvZGVzID0gTmV3LU9iamVjdCBTeXN0 ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYy5IYXNoU2V0W3N0cmluZ10NCiAgICAgICAgICAgICAgICAg ICAgICAgIFt2b2lkXSRFeGNlbFZhbGlkQ29kZXMuQWRkKCcnKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRudWxsIC1uZSAkQWRtaW4gLWFuZCAkQWRtaW4uUFNPYmplY3QuUHJvcGVydGll c1snc2NoaWNodGNvZGVzJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNo ICgkU2MgaW4gJEFkbWluLnNjaGljaHRjb2Rlcykgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAoJG51bGwgLW5lICRTYyAtYW5kICRTYy5QU09iamVjdC5Qcm9wZXJ0aWVzWydj b2RlJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2b2lkXSRFeGNl bFZhbGlkQ29kZXMuQWRkKFtzdHJpbmddJFNjLmNvZGUpDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJE9wdFNjaGljaHRlbiAt YW5kICRudWxsIC1uZSAkRXhjZWxFaW50cmFlZ2UpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb3JlYWNoICgkRGF0dW1Qcm9wIGluICRFeGNlbEVpbnRyYWVnZS5QU09iamVjdC5Qcm9w ZXJ0aWVzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICREYXR1bSA9ICREYXR1 bVByb3AuTmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkUGxh bnVuZy5laW50cmFlZ2UuUFNPYmplY3QuUHJvcGVydGllc1skRGF0dW1dKSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5laW50cmFlZ2UgfCBBZGQtTWVtYmVy IC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkRGF0dW0gLVZhbHVlIChOZXctT2JqZWN0 IFBTT2JqZWN0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRQaWRQcm9wIGluICREYXR1bVByb3AuVmFs dWUuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJGVyID0gW2ludF0kUGlkUHJvcC5OYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoLW5vdCAkRXhjZWxSb3dUb1BpZC5Db250YWluc0tleSgkZXIpKSB7IGNv bnRpbnVlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwaWRTdHIgPSBb c3RyaW5nXSRFeGNlbFJvd1RvUGlkWyRlcl0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICR3ZXJ0ID0gW3N0cmluZ10kUGlkUHJvcC5WYWx1ZQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJEV4Y2VsVmFsaWRDb2Rlcy5Db250YWlucygkd2Vy dCkpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTk9ycGhhbisr DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgkUGxhbnVuZy5laW50cmFlZ2UuJERhdHVtLlBTT2JqZWN0LlByb3Bl cnRpZXNbJHBpZFN0cl0pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkUGxhbnVuZy5laW50cmFlZ2UuJERhdHVtLiRwaWRTdHIgPSAkd2VydA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkUGxhbnVuZy5laW50cmFlZ2UuJERhdHVtIHwgQWRkLU1lbWJlciAt TWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJHBpZFN0ciAtVmFsdWUgJHdlcnQNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRORWludHJhZWdlKysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAoJG51bGwgLW5lICRFeGNlbFBmbGljaHQpIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZm9yZWFjaCAoJERhdHVtUHJvcCBpbiAkRXhjZWxQZmxpY2h0LlBTT2Jq ZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRE YXR1bSA9ICREYXR1bVByb3AuTmFtZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKC1ub3QgJFBsYW51bmcucGZsaWNodC5QU09iamVjdC5Qcm9wZXJ0aWVzWyREYXR1bV0p IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5wZmxp Y2h0IHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJERhdHVtIC1W YWx1ZSAoTmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRQ aWRQcm9wIGluICREYXR1bVByb3AuVmFsdWUuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlciA9IFtpbnRdJFBpZFByb3AuTmFt ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRFeGNl bFJvd1RvUGlkLkNvbnRhaW5zS2V5KCRlcikpIHsgY29udGludWUgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICRwaWRTdHIgPSBbc3RyaW5nXSRFeGNlbFJvd1RvUGlk WyRlcl0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBpZFBy b3AuVmFsdWUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCRQbGFudW5nLnBmbGljaHQuJERhdHVtLlBTT2JqZWN0LlByb3BlcnRpZXNbJHBpZFN0cl0p IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFu dW5nLnBmbGljaHQuJERhdHVtLiRwaWRTdHIgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGZsaWNodC4kRGF0dW0gfCBBZGQtTWVt YmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkcGlkU3RyIC1WYWx1ZSAkdHJ1ZQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROUGZsaWNodCsrDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgICAgICAgICAjIEtvbW1lbnRhcmUNCiAgICAgICAgICAgICAgICAgICAgICAg ICROS29tbWVudGFyZSA9IDANCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkT3B0S29tbWVu dGFyZSAtYW5kICRudWxsIC1uZSAkRXhjZWxLb21tZW50YXJlKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm9yZWFjaCAoJERhdHVtUHJvcCBpbiAkRXhjZWxLb21tZW50YXJlLlBTT2Jq ZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJERhdHVt ID0gJERhdHVtUHJvcC5OYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgt bm90ICRQbGFudW5nLmtvbW1lbnRhcmUuUFNPYmplY3QuUHJvcGVydGllc1skRGF0dW1dKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZy5rb21tZW50YXJlIHwg QWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJERhdHVtIC1WYWx1ZSAo TmV3LU9iamVjdCBQU09iamVjdCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkUGlkUHJvcCBpbiAkRGF0 dW1Qcm9wLlZhbHVlLlBTT2JqZWN0LlByb3BlcnRpZXMpIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICRlciA9IFtpbnRdJFBpZFByb3AuTmFtZQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJEV4Y2VsUm93VG9QaWQuQ29udGFpbnNLZXko JGVyKSkgeyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk cGlkU3RyID0gW3N0cmluZ10kRXhjZWxSb3dUb1BpZFskZXJdDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkS29tT2JqID0gW1BTQ3VzdG9tT2JqZWN0XUB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IFtzdHJpbmddJFBpZFByb3AuVmFs dWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZWFlbmRlcnRBbSA9 ICRKZXR6dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlYWVuZGVy dFZvbiA9IChHZXQtQWt0dWVsbGVyQmVudXR6ZXIpDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJFBs YW51bmcua29tbWVudGFyZS4kRGF0dW0uUFNPYmplY3QuUHJvcGVydGllc1skcGlkU3RyXSkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLmtvbW1lbnRh cmUuJERhdHVtLiRwaWRTdHIgPSAkS29tT2JqDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICRQbGFudW5nLmtvbW1lbnRhcmUuJERhdHVtIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3Rl UHJvcGVydHkgLU5hbWUgJHBpZFN0ciAtVmFsdWUgJEtvbU9iag0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JE5Lb21tZW50YXJlKysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgICAgICAgICAgICAgIyBSZWloZW5mb2xnZQ0KICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCRPcHRSZWloZW5mb2xnZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRF eGNlbE9yZGVyUm93cyA9IEAoJEFrdGlvbmVuIHwgV2hlcmUtT2JqZWN0IHsgQCgnbWF0Y2gnLCdu ZXUnKSAtY29udGFpbnMgJF8uYWt0aW9uIC1hbmQgJF8uUFNPYmplY3QuUHJvcGVydGllc1snZXhj ZWxSb3cnXSB9IHwgU29ydC1PYmplY3QgeyBbaW50XSRfLmV4Y2VsUm93IH0pDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJFNvcnRQaWRzID0gTmV3LU9iamVjdCBTeXN0ZW0uQ29sbGVjdGlv bnMuQXJyYXlMaXN0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGEgaW4g JEV4Y2VsT3JkZXJSb3dzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlciA9 IFtpbnRdJGEuZXhjZWxSb3cNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRF eGNlbFJvd1RvUGlkLkNvbnRhaW5zS2V5KCRlcikpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRzb3J0SWQgPSAkRXhjZWxSb3dUb1BpZFskZXJdDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkU29ydFBpZHMuQ29udGFpbnMoJHNvcnRJ ZCkpIHsgW3ZvaWRdJFNvcnRQaWRzLkFkZCgkc29ydElkKSB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJEJ5SWQgPSBAe30NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmb3JlYWNoICgkcCBpbiAkUGVyc29uZW5MaXN0ZSkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoJHAuUFNPYmplY3QuUHJvcGVydGllc1snaWQnXSkgeyAkQnlJZFtbaW50 XSRwLmlkXSA9ICRwIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgJE5ldWVMaXN0ZSA9IE5ldy1PYmplY3QgU3lzdGVtLkNvbGxlY3Rp b25zLkFycmF5TGlzdA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwZXJz SWQgaW4gJFNvcnRQaWRzKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgk QnlJZC5Db250YWluc0tleSgkcGVyc0lkKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW3ZvaWRdJE5ldWVMaXN0ZS5BZGQoJEJ5SWRbJHBlcnNJZF0pDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkQnlJZC5SZW1vdmUoJHBlcnNJZCkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFJlc3RsaWNoZSBQZXJzb25lbjogYWt0aXZl IHp1ZXJzdA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRSZXN0QWt0aXZlID0gQCgkQnlJ ZC5WYWx1ZXMgfCBXaGVyZS1PYmplY3QgeyAtbm90ICRfLlBTT2JqZWN0LlByb3BlcnRpZXNbJ2Fr dGl2J10gLW9yICRfLmFrdGl2IC1lcSAkdHJ1ZSB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRSZXN0SW5ha3RpdmUgPSBAKCRCeUlkLlZhbHVlcyB8IFdoZXJlLU9iamVjdCB7ICRfLlBT T2JqZWN0LlByb3BlcnRpZXNbJ2FrdGl2J10gLWFuZCAkXy5ha3RpdiAtZXEgJGZhbHNlIH0pDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJFJlc3RBa3RpdmUpIHsg W3ZvaWRdJE5ldWVMaXN0ZS5BZGQoJHApIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBm b3JlYWNoICgkcCBpbiAkUmVzdEluYWt0aXZlKSB7IFt2b2lkXSROZXVlTGlzdGUuQWRkKCRwKSB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAncG9zaXRpb24nIGZvcnRsYXVmZW5kIG5l dSB2ZXJnZWJlbiAoRnJvbnRlbmQgc29ydGllcnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIG5hY2ggcC5wb3NpdGlvbiwgTklDSFQgbmFjaCBBcnJheS1SZWloZW5mb2xnZSkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkcG9zQ291bnRlciA9IDENCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmb3JlYWNoICgkcCBpbiAkTmV1ZUxpc3RlKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICgkcC5QU09iamVjdC5Qcm9wZXJ0aWVzWydwb3NpdGlvbiddKSB7 ICRwLnBvc2l0aW9uID0gJHBvc0NvdW50ZXIgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlbHNlIHsgJHAgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFt ZSAncG9zaXRpb24nIC1WYWx1ZSAkcG9zQ291bnRlciB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRwb3NDb3VudGVyKysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgJFBsYW51bmcucGVyc29uZW4gPSBAKCROZXVlTGlz dGUpDQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgQXVjaCBvaG5lIFJlaWhlbmZvbGdlLVVwZGF0ZTogbmV1ZSBQZXJzb25lbiBi cmF1Y2hlbiAncG9zaXRpb24nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1heFBvcyA9 IDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcCBpbiAkUGVyc29uZW5M aXN0ZSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHAuUFNPYmplY3Qu UHJvcGVydGllc1sncG9zaXRpb24nXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJHBwID0gW2ludF0oJHAucG9zaXRpb24gfCBGb3JFYWNoLU9iamVjdCB7IGlmICgkXykg eyAkXyB9IGVsc2UgeyAwIH0gfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmICgkcHAgLWd0ICRtYXhQb3MpIHsgJG1heFBvcyA9ICRwcCB9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHAgaW4gJFBlcnNvbmVuTGlzdGUpIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGhhdFBvcyA9ICRmYWxzZQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHAuUFNPYmplY3QuUHJvcGVydGllc1sncG9zaXRp b24nXSAtYW5kICRwLnBvc2l0aW9uKSB7ICRoYXRQb3MgPSAkdHJ1ZSB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRoYXRQb3MpIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICRtYXhQb3MrKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCRwLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3Bvc2l0aW9uJ10pIHsgJHAucG9z aXRpb24gPSAkbWF4UG9zIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs c2UgeyAkcCB8IEFkZC1NZW1iZXIgLU1lbWJlclR5cGUgTm90ZVByb3BlcnR5IC1OYW1lICdwb3Np dGlvbicgLVZhbHVlICRtYXhQb3MgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICRQbGFudW5nLnBlcnNvbmVuID0gQCgkUGVyc29uZW5MaXN0ZSkNCiAgICAgICAgICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgIyAtLS0tIFRhZ2VzZGF0ZW4g LyBTY2hpY2h0cm90YXRpb24gYXVzIEV4Y2VsLVI0LVI5IC0tLS0NCiAgICAgICAgICAgICAgICAg ICAgICAgICROUm90YXRpb25TbG90cyA9IDANCiAgICAgICAgICAgICAgICAgICAgICAgICROVGFn ZXNkYXRlbk92ZXJyaWRlcyA9IDANCiAgICAgICAgICAgICAgICAgICAgICAgICRBZG1pbk11dGF0 ZWQgPSAkbnVsbA0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRPcHRUYWdlc2RhdGVuIC1h bmQgJG51bGwgLW5lICRFeGNlbFRhZ2VzZGF0ZW4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkdGRQcm9wcyA9IEAoJEV4Y2VsVGFnZXNkYXRlbi5QU09iamVjdC5Qcm9wZXJ0aWVzKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdGRQcm9wcy5Db3VudCAtZ3QgMCkgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc29ydGVkRGF0ZXMgPSBAKCR0ZFByb3Bz IHwgRm9yRWFjaC1PYmplY3QgeyAkXy5OYW1lIH0gfCBTb3J0LU9iamVjdCkNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJGVyc3Rlc0QgPSBbZGF0ZXRpbWVdOjpQYXJzZUV4YWN0KCRz b3J0ZWREYXRlc1swXSwgJ3l5eXktTU0tZGQnLCAkbnVsbCkNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJGRvdyA9IFtpbnRdJGVyc3Rlc0QuRGF5T2ZXZWVrDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICgkZG93IC1lcSAwKSB7ICRvZmZzZXRNbyA9IDEgfSBlbHNl IHsgJG9mZnNldE1vID0gKDggLSAkZG93KSAlIDcgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkbW9JZHggPSAkb2Zmc2V0TW8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJHdvY2hlbkFuemFobCA9IDMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNs b3RDb3VudCA9ICR3b2NoZW5BbnphaGwgKiA3DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICgkbW9JZHggKyAkc2xvdENvdW50IC1sZSAkc29ydGVkRGF0ZXMuQ291bnQpIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyb3RhdGlvbnNUYWdlID0gQCgpDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKCRpID0gMDsgJGkgLWx0ICRz bG90Q291bnQ7ICRpKyspIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkcm90YXRpb25zVGFnZSArPSAkRXhjZWxUYWdlc2RhdGVuLigkc29ydGVkRGF0ZXNbJG1vSWR4 ICsgJGldKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFkbWluTXV0YXRlZCA9IFJlYWQtSnNvbkZpbGUg J2FkbWluLmpzb24nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51 bGwgLW5lICRBZG1pbk11dGF0ZWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAoLW5vdCAkQWRtaW5NdXRhdGVkLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3RhZ2Vz ZGF0ZW5Sb3RhdGlvbiddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICRBZG1pbk11dGF0ZWQgfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0 eSAtTmFtZSAndGFnZXNkYXRlblJvdGF0aW9uJyAtVmFsdWUgKE5ldy1PYmplY3QgUFNPYmplY3Qp DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyb3QgPSAkQWRtaW5NdXRhdGVkLnRhZ2VzZGF0 ZW5Sb3RhdGlvbg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyb3RT dGFydElzbyA9ICRzb3J0ZWREYXRlc1skbW9JZHhdDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKCRyb3QuUFNPYmplY3QuUHJvcGVydGllc1snd29jaGVuQW56YWhs J10pIHsgJHJvdC53b2NoZW5BbnphaGwgPSAkd29jaGVuQW56YWhsIH0gZWxzZSB7ICRyb3QgfCBB ZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnd29jaGVuQW56YWhsJyAt VmFsdWUgJHdvY2hlbkFuemFobCB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRyb3QuUFNPYmplY3QuUHJvcGVydGllc1snc3RhcnREYXR1bSddKSB7ICRyb3Qu c3RhcnREYXR1bSA9ICRyb3RTdGFydElzbyB9IGVsc2UgeyAkcm90IHwgQWRkLU1lbWJlciAtTWVt YmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUgJ3N0YXJ0RGF0dW0nIC1WYWx1ZSAkcm90U3RhcnRJ c28gfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkcm90LlBT T2JqZWN0LlByb3BlcnRpZXNbJ3RhZ2UnXSkgeyAkcm90LnRhZ2UgPSBAKCRyb3RhdGlvbnNUYWdl KSB9IGVsc2UgeyAkcm90IHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5h bWUgJ3RhZ2UnIC1WYWx1ZSBAKCRyb3RhdGlvbnNUYWdlKSB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJE5Sb3RhdGlvblNsb3RzID0gJHNsb3RDb3VudA0KDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBPdmVycmlkZS1QcnVlZnVuZw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRQbGFudW5n LlBTT2JqZWN0LlByb3BlcnRpZXNbJ3RhZ2VzZGF0ZW4nXSkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkUGxhbnVuZyB8IEFkZC1NZW1iZXIgLU1lbWJlclR5 cGUgTm90ZVByb3BlcnR5IC1OYW1lICd0YWdlc2RhdGVuJyAtVmFsdWUgKE5ldy1PYmplY3QgUFNP YmplY3QpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhbHRlUHJvcHMgPSBAKCRQbGFudW5n LnRhZ2VzZGF0ZW4uUFNPYmplY3QuUHJvcGVydGllcyB8IFdoZXJlLU9iamVjdCB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfLlZhbHVlLlBTT2JqZWN0LlBy b3BlcnRpZXNbJ19zcmMnXSAtYW5kICRfLlZhbHVlLl9zcmMgLWVxICdleGNlbCcNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwciBpbiAkYWx0ZVByb3BzKSB7ICRQbGFudW5n LnRhZ2VzZGF0ZW4uUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJHByLk5hbWUpIH0NCg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyb3RTdGFydEQgPSBbZGF0ZXRp bWVdOjpQYXJzZUV4YWN0KCRyb3RTdGFydElzbywgJ3l5eXktTU0tZGQnLCAkbnVsbCkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkcHJvcCBpbiAkdGRQ cm9wcykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGF0 dW1Jc28gPSAkcHJvcC5OYW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICR0ZCA9ICRwcm9wLlZhbHVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICRkYXR1bUQgPSBbZGF0ZXRpbWVdOjpQYXJzZUV4YWN0KCRkYXR1bUlzbywg J3l5eXktTU0tZGQnLCAkbnVsbCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJGRpZmZEYXlzID0gKCRkYXR1bUQgLSAkcm90U3RhcnREKS5EYXlzDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpc3RPdmVycmlkZSA9ICRmYWxz ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGRpZmZE YXlzIC1sdCAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAkaXN0T3ZlcnJpZGUgPSAkdHJ1ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJHNsb3RJZHggPSAkZGlmZkRheXMgJSAkc2xvdENvdW50DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2xvdFRkID0gJHJvdGF0 aW9uc1RhZ2VbJHNsb3RJZHhdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkanNvblRkID0gJHRkIHwgQ29udmVydFRvLUpzb24gLUNvbXByZXNzIC1EZXB0 aCA2DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkanNv blNsb3QgPSAkc2xvdFRkIHwgQ29udmVydFRvLUpzb24gLUNvbXByZXNzIC1EZXB0aCA2DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGpzb25UZCAt bmUgJGpzb25TbG90KSB7ICRpc3RPdmVycmlkZSA9ICR0cnVlIH0NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoJGlzdE92ZXJyaWRlKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGRNYXJrZWQgPSAkdGQgfCBDb252ZXJ0VG8t SnNvbiAtRGVwdGggNiB8IENvbnZlcnRGcm9tLUpzb24NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICR0ZE1hcmtlZCB8IEFkZC1NZW1iZXIgLU1lbWJlclR5 cGUgTm90ZVByb3BlcnR5IC1OYW1lICdfc3JjJyAtVmFsdWUgJ2V4Y2VsJyAtRm9yY2UNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkUGxhbnVuZy50 YWdlc2RhdGVuLlBTT2JqZWN0LlByb3BlcnRpZXNbJGRhdHVtSXNvXSkgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnRhZ2VzZGF0 ZW4uJGRhdHVtSXNvID0gJHRkTWFya2VkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRQbGFudW5nLnRhZ2VzZGF0ZW4gfCBBZGQtTWVtYmVyIC1N ZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAkZGF0dW1Jc28gLVZhbHVlICR0ZE1hcmtlZA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5UYWdlc2RhdGVuT3Zl cnJpZGVzKysNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtUGxhbnVuZ01pdEludGVncml0YWV0 ICRQbGFudW5nICAgIyBCdWxrLU9wOiBhbGxlIEhNQUNzIG5ldQ0KDQogICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gQHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXAgPSAnb2sn DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja3VwID0gJEJhY2t1cE5hbWUNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25lbk5ldSA9ICROUGVyc29uZW5OZXUNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25lbkFrdHVhbGlzaWVydCA9ICROUGVyc29uZW5B a3R1YWxpc2llcnQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25lbkRlYWt0aXZp ZXJ0ID0gJE5QZXJzb25lbkRlYWt0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWludHJh ZWdlID0gJE5FaW50cmFlZ2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZmxpY2h0ID0g JE5QZmxpY2h0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAga29tbWVudGFyZSA9ICROS29t bWVudGFyZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuYmVrYW5udGVDb2RlcyA9ICRO T3JwaGFuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb25TbG90cyA9ICROUm90 YXRpb25TbG90cw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ2VzZGF0ZW5PdmVycmlk ZXMgPSAkTlRhZ2VzZGF0ZW5PdmVycmlkZXMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBh ZG1pbk11dGF0ZWQgPSAkQWRtaW5NdXRhdGVkDQogICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAg ICAgICAgICAgICAgU2VuZC1FcnJvciAkUmVzICJVZWJlcm5haG1lLUZlaGxlcjogJF8iIDUwMDsg Y29udGludWUNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBpZiAoJExvY2tS ZXN1bHQudHlwIC1lcSAnZXJyb3InKSB7IFNlbmQtRXJyb3IgJFJlcyAkTG9ja1Jlc3VsdC5tc2cg JExvY2tSZXN1bHQuY29kZTsgY29udGludWUgfQ0KDQogICAgICAgICAgICAgICAgIyBTb25kZXJ0 ZXJtaW5lIHNlcGFyYXQgaW4gYWRtaW4uanNvbiBzY2hyZWliZW4gKGtlaW4gSE1BQykuDQogICAg ICAgICAgICAgICAgIyBFcnN0IGFsbGUgdm9yaGFuZGVuZW4gJ3N0X2V4Y2VsXyctRWludHJhZWdl IGxvZXNjaGVuLCBkYW5uIG5ldWUNCiAgICAgICAgICAgICAgICAjIGFubGVnZW4gLSBzb2Rhc3Mg UmUtSW1wb3J0IGlkZW1wb3RlbnQgaXN0IHVuZCBuaWNodCBkb3BwZWx0Lg0KICAgICAgICAgICAg ICAgICMgVXNlci1Wb3JnYWJlIChBdWRpdC1JdGVyLUQsIHN5bmMgbWl0IHNlcnZlci5weTozODI3 KTogRXhjZWwtWmVpbGUNCiAgICAgICAgICAgICAgICAjICgyNS0yOSkgd2lyZCBOSUNIVCBtZWhy IGFscyBLYXRlZ29yaWUgYXVzZ2V3ZXJ0ZXQgLSBhbGxlIFRlcm1pbmUNCiAgICAgICAgICAgICAg ICAjIHNpbmQgJ2hpbndlaXMnIG1pdCBJY29uICdpbmZvJywgVXNlciBrbGFzc2lmaXppZXJ0IHNw YWV0ZXIgbWFudWVsbA0KICAgICAgICAgICAgICAgICMgaW0gVGVybWluZS1UYWIuIFJlLUltcG9y dCBibGVpYnQgZGFtaXQgc3RydWt0dXItc3RhYmlsLg0KICAgICAgICAgICAgICAgICROVGVybWlu ZSA9IDANCiAgICAgICAgICAgICAgICBpZiAoJE9wdFNvbmRlcnRlcm1pbmUpIHsNCiAgICAgICAg ICAgICAgICAgICAgJEFkbWluID0gaWYgKCRudWxsIC1uZSAkTG9ja1Jlc3VsdC5hZG1pbk11dGF0 ZWQpIHsgJExvY2tSZXN1bHQuYWRtaW5NdXRhdGVkIH0gZWxzZSB7IFJlYWQtSnNvbkZpbGUgJ2Fk bWluLmpzb24nIH0NCiAgICAgICAgICAgICAgICAgICAgaWYgKCRudWxsIC1uZSAkQWRtaW4pIHsN CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRBZG1pbi5QU09iamVjdC5Qcm9wZXJ0 aWVzWydzb25kZXJ0ZXJtaW5lJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQWRt aW4gfCBBZGQtTWVtYmVyIC1NZW1iZXJUeXBlIE5vdGVQcm9wZXJ0eSAtTmFtZSAnc29uZGVydGVy bWluZScgLVZhbHVlIEAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICAgICAgIyBBbHRlIEV4Y2VsLUltcG9ydGUgZmlsdGVybg0KICAgICAgICAgICAgICAg ICAgICAgICAgJFN0TGlzdGUgPSBOZXctT2JqZWN0IFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxp c3QNCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRzIGluIEAoJEFkbWluLnNvbmRl cnRlcm1pbmUpKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNpZCA9IGlmICgkcy5Q U09iamVjdC5Qcm9wZXJ0aWVzWydpZCddKSB7IFtzdHJpbmddJHMuaWQgfSBlbHNlIHsgJycgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90ICRzaWQuU3RhcnRzV2l0aCgnc3Rf ZXhjZWxfJykpIHsgW3ZvaWRdJFN0TGlzdGUuQWRkKCRzKSB9DQogICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG51bGwgLW5lICRFeGNlbFRlcm1p bmUpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkRGF0dW1Qcm9wIGlu ICRFeGNlbFRlcm1pbmUuUFNPYmplY3QuUHJvcGVydGllcykgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAkRGF0dW0gPSAkRGF0dW1Qcm9wLk5hbWUNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZm9yZWFjaCAoJHQgaW4gQCgkRGF0dW1Qcm9wLlZhbHVlKSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGlzdFNraXAgPSAkZmFsc2UNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdC5QU09iamVjdC5Qcm9wZXJ0aWVz Wydza2lwJ10pIHsgJGlzdFNraXAgPSBbYm9vbF0kdC5za2lwIH0NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmICgkaXN0U2tpcCkgeyBjb250aW51ZSB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkdGl0ZWwgPSBpZiAoJHQuUFNPYmplY3QuUHJvcGVy dGllc1sndGl0ZWwnXSkgeyAoW3N0cmluZ10kdC50aXRlbCkuVHJpbSgpIH0gZWxzZSB7ICcnIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0ZXh0ID0gaWYgKCR0LlBTT2Jq ZWN0LlByb3BlcnRpZXNbJ3RleHQnXSkgeyAoW3N0cmluZ10kdC50ZXh0KS5UcmltKCkgfSBlbHNl IHsgJycgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC1ub3QgJHRp dGVsIC1hbmQgLW5vdCAkdGV4dCkgeyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAoLW5vdCAkdGl0ZWwpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkZXJzdGUgPSAoJHRleHQgLXNwbGl0ICJgbiIsIDIpWzBdDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRpdGVsID0gaWYgKCRlcnN0ZS5M ZW5ndGggLWd0IDYwKSB7ICRlcnN0ZS5TdWJzdHJpbmcoMCwgNjApIH0gZWxzZSB7ICRlcnN0ZSB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIFJhbmRvbS1IZXgtSUQgYW5hbG9nIHp1IFB5dGhvbiBzZWNy ZXRzLnRva2VuX2hleCg2KSAtIDEyIEhleC1aZWljaGVuLg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJFJhbmRIZXggPSBbZ3VpZF06Ok5ld0d1aWQoKS5Ub1N0cmluZygnTicp LlN1YnN0cmluZygwLCAxMikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRO ZXUgPSBbUFNDdXN0b21PYmplY3RdQHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZCA9ICdzdF9leGNlbF8nICsgJFJhbmRIZXgNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXR1bSA9ICREYXR1bQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRpdGVsID0gJHRpdGVsDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGV4dCA9ICR0ZXh0DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWNvbiA9ICdpbmZvJyAgICAgICAgIyBnZW5lcmlzY2hlcyBIaW53ZWlz LUljb24sIEtFSU4gRW1vamkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0eXAgPSAnaGlud2VpcycNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjIEtFSU4gJ2thdGVnb3JpZSctRmVsZCAtIEV4Y2VsLVplaWxlbi1NYXBwaW5nIHdpcmQgaWdu b3JpZXJ0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbdm9pZF0kU3RMaXN0ZS5BZGQoJE5ldSkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICROVGVybWluZSsrDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAkQWRtaW4uc29u ZGVydGVybWluZSA9IEAoJFN0TGlzdGUpDQogICAgICAgICAgICAgICAgICAgICAgICBXcml0ZS1K c29uRmlsZSAnYWRtaW4uanNvbicgJEFkbWluDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICB9IGVsc2VpZiAoJG51bGwgLW5lICRMb2NrUmVzdWx0LmFkbWluTXV0YXRlZCAt YW5kICRMb2NrUmVzdWx0LnJvdGF0aW9uU2xvdHMgLWd0IDApIHsNCiAgICAgICAgICAgICAgICAg ICAgIyBUYWdlc2RhdGVuIGhhdCBBZG1pbiBtdXRpZXJ0LCBhYmVyIGtlaW4gU29uZGVydGVybWlu ZS1CbG9jayBoYXQgZ2VzY2hyaWViZW4uDQogICAgICAgICAgICAgICAgICAgIFdyaXRlLUpzb25G aWxlICdhZG1pbi5qc29uJyAkTG9ja1Jlc3VsdC5hZG1pbk11dGF0ZWQNCiAgICAgICAgICAgICAg ICB9DQoNCiAgICAgICAgICAgICAgICAjIEF1dG8tUm9sbGVuLVN5bmMgbmFjaCBFeGNlbC1JbXBv cnQgKG5ldWUgUGVyc29uZW4gbWl0IERHTC8xLkVCLzEuRUIgVi4gLT4gTGlzdGVuKQ0KICAgICAg ICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgICAgICRQbGFudW5nRnVlclN5bmMgPSBS ZWFkLUpzb25GaWxlICdwbGFudW5nLmpzb24nDQogICAgICAgICAgICAgICAgICAgICRBZG1pbkZ1 ZXJTeW5jID0gUmVhZC1Kc29uRmlsZSAnYWRtaW4uanNvbicNCiAgICAgICAgICAgICAgICAgICAg aWYgKFN5bmMtUm9sbGVuQXVzUGVyc29uZW4gJFBsYW51bmdGdWVyU3luYyAkQWRtaW5GdWVyU3lu Yykgew0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtSnNvbkZpbGUgJ2FkbWluLmpzb24n ICRBZG1pbkZ1ZXJTeW5jDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9 IGNhdGNoIHsgV3JpdGUtV2FybmluZyAiUm9sbGVuLVN5bmMgbmFjaCBFeGNlbC1JbXBvcnQgZmVo bGdlc2NobGFnZW46ICRfIiB9DQoNCiAgICAgICAgICAgICAgICBXcml0ZS1Mb2dFaW50cmFnICdl eGNlbC5pbXBvcnRpZXJ0JyBAew0KICAgICAgICAgICAgICAgICAgICBiYWNrdXAgPSAkTG9ja1Jl c3VsdC5iYWNrdXANCiAgICAgICAgICAgICAgICAgICAgcGVyc29uZW5OZXUgPSAkTG9ja1Jlc3Vs dC5wZXJzb25lbk5ldQ0KICAgICAgICAgICAgICAgICAgICBwZXJzb25lbkFrdHVhbGlzaWVydCA9 ICRMb2NrUmVzdWx0LnBlcnNvbmVuQWt0dWFsaXNpZXJ0DQogICAgICAgICAgICAgICAgICAgIHBl cnNvbmVuRGVha3RpdmllcnQgPSAkTG9ja1Jlc3VsdC5wZXJzb25lbkRlYWt0aXZpZXJ0DQogICAg ICAgICAgICAgICAgICAgIGVpbnRyYWVnZSA9ICRMb2NrUmVzdWx0LmVpbnRyYWVnZQ0KICAgICAg ICAgICAgICAgICAgICBwZmxpY2h0ID0gJExvY2tSZXN1bHQucGZsaWNodA0KICAgICAgICAgICAg ICAgICAgICBrb21tZW50YXJlID0gJExvY2tSZXN1bHQua29tbWVudGFyZQ0KICAgICAgICAgICAg ICAgICAgICB1bmJla2FubnRlQ29kZXMgPSAkTG9ja1Jlc3VsdC51bmJla2FubnRlQ29kZXMNCiAg ICAgICAgICAgICAgICAgICAgc29uZGVydGVybWluZSA9ICROVGVybWluZQ0KICAgICAgICAgICAg ICAgICAgICByb3RhdGlvblNsb3RzID0gJExvY2tSZXN1bHQucm90YXRpb25TbG90cw0KICAgICAg ICAgICAgICAgICAgICB0YWdlc2RhdGVuT3ZlcnJpZGVzID0gJExvY2tSZXN1bHQudGFnZXNkYXRl bk92ZXJyaWRlcw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFNlbmQtSnNv biAkUmVzIEB7DQogICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9ICdvaycNCiAgICAgICAgICAg ICAgICAgICAgYmFja3VwID0gJExvY2tSZXN1bHQuYmFja3VwDQogICAgICAgICAgICAgICAgICAg IGFuemFobCA9IEB7DQogICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25lbk5ldSA9ICRMb2Nr UmVzdWx0LnBlcnNvbmVuTmV1DQogICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25lbkFrdHVh bGlzaWVydCA9ICRMb2NrUmVzdWx0LnBlcnNvbmVuQWt0dWFsaXNpZXJ0DQogICAgICAgICAgICAg ICAgICAgICAgICBwZXJzb25lbkRlYWt0aXZpZXJ0ID0gJExvY2tSZXN1bHQucGVyc29uZW5EZWFr dGl2aWVydA0KICAgICAgICAgICAgICAgICAgICAgICAgZWludHJhZWdlID0gJExvY2tSZXN1bHQu ZWludHJhZWdlDQogICAgICAgICAgICAgICAgICAgICAgICBwZmxpY2h0ID0gJExvY2tSZXN1bHQu cGZsaWNodA0KICAgICAgICAgICAgICAgICAgICAgICAga29tbWVudGFyZSA9ICRMb2NrUmVzdWx0 LmtvbW1lbnRhcmUNCiAgICAgICAgICAgICAgICAgICAgICAgIHVuYmVrYW5udGVDb2RlcyA9ICRM b2NrUmVzdWx0LnVuYmVrYW5udGVDb2Rlcw0KICAgICAgICAgICAgICAgICAgICAgICAgc29uZGVy dGVybWluZSA9ICROVGVybWluZQ0KICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb25TbG90 cyA9ICRMb2NrUmVzdWx0LnJvdGF0aW9uU2xvdHMNCiAgICAgICAgICAgICAgICAgICAgICAgIHRh Z2VzZGF0ZW5PdmVycmlkZXMgPSAkTG9ja1Jlc3VsdC50YWdlc2RhdGVuT3ZlcnJpZGVzDQogICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgRGVi dWctTG9nICdBUEknICJQT1NUIC9hcGkvaW1wb3J0L2V4Y2VsL3VlYmVybmVobWVuIC0+ICQoJExv Y2tSZXN1bHQuZWludHJhZWdlKSBFaW50cmFlZ2UsICQoJExvY2tSZXN1bHQua29tbWVudGFyZSkg S29tbWVudGFyZSwgJE5UZXJtaW5lIFRlcm1pbmUsIEJhY2t1cDogJCgkTG9ja1Jlc3VsdC5iYWNr dXApIg0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICMgPT09PT09PT09PT09PT09PT09PT09IExPR0JVQ0ggPT09PT09PT09PT09PT09PT09PT09 DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL2xvZ2J1Y2gnIC1hbmQgJE1ldGhvZCAt ZXEgJ0dFVCcpIHsNCiAgICAgICAgICAgICAgICAjIEFkbWluLUd1YXJkOiBMb2didWNoIGVudGhh ZWx0IHBlcnNvbmVuYmV6b2dlbmUgRGF0ZW4NCiAgICAgICAgICAgICAgICAjIChTY2hpY2h0YWVu ZGVydW5nZW4gcHJvIFVzZXIgbWl0IGFsdGVtL25ldWVtIFdlcnQpLiBJbQ0KICAgICAgICAgICAg ICAgICMgRnJvbnRlbmQgbnVyIGZ1ZXIgU3VwZXJVc2VyIG9kZXIgQWRtaW4gc2ljaHRiYXINCiAg ICAgICAgICAgICAgICAjIChkYXJmTG9nYnVjaFRhYigpIGluIGpzL2NvcmUvcGVybWlzc2lvbnMu anM6MjUzKS4gTWlycm9yDQogICAgICAgICAgICAgICAgIyB6dSBzZXJ2ZXIucHk6MjEzNC0yMTM5 Lg0KICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LUlzdEFkbWluKSkgeyBTZW5kLUVycm9y ICRSZXMgJ0tlaW5lIEJlcmVjaHRpZ3VuZycgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAg ICAgJExvZ1BhdGggPSBKb2luLVBhdGggJERhdGFEaXIgJ2xvZ2J1Y2guanNvbicNCiAgICAgICAg ICAgICAgICAkRWludHJhZWdlID0gQCgpDQogICAgICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAk TG9nUGF0aCkgew0KICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAgICAgICAg ICAgICAgJExvZ0NvbnRlbnQgPSBbU3lzdGVtLklPLkZpbGVdOjpSZWFkQWxsVGV4dCgkTG9nUGF0 aCwgW1N5c3RlbS5UZXh0LkVuY29kaW5nXTo6VVRGOCkuVHJpbSgpDQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoJExvZ0NvbnRlbnQuTGVuZ3RoIC1ndCAxKSB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgJFBhcnNlZCA9ICRMb2dDb250ZW50IHwgQ29udmVydEZyb20tSnNvbg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJFBhcnNlZCkgeyAkRWludHJh ZWdlID0gQCgkUGFyc2VkKSB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtU3RhcnR1 cExvZyAiTG9nYnVjaC1SZWFkLUZlaGxlcjogJF8gLS0gbGllZmVyZSBsZWVyZSBMaXN0ZSINCiAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAj IFBTIDUuMSB1bndyYXBwZWQgQCgpIHVuZCBTaW5nbGUtRWxlbWVudC1BcnJheXMgaW4gQ29udmVy dFRvLUpzb24gLS0NCiAgICAgICAgICAgICAgICAjIGRhaGVyIFNvbmRlcnBmYWRlLiBGcm9udGVu ZCBlcndhcnRldCBpbW1lciBlaW4gSlNPTi1BcnJheS4NCiAgICAgICAgICAgICAgICBpZiAoJEVp bnRyYWVnZS5Db3VudCAtZXEgMCkgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUpzb25SYXcg JFJlcyAnW10nDQogICAgICAgICAgICAgICAgfSBlbHNlaWYgKCRFaW50cmFlZ2UuQ291bnQgLWVx IDEpIHsNCiAgICAgICAgICAgICAgICAgICAgU2VuZC1Kc29uUmF3ICRSZXMgKCdbJyArIChDb252 ZXJ0VG8tSnNvbiAtSW5wdXRPYmplY3QgJEVpbnRyYWVnZVswXSAtRGVwdGggMjUgLUNvbXByZXNz KSArICddJykNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICBT ZW5kLUpzb25SYXcgJFJlcyAoQ29udmVydFRvLUpzb24gLUlucHV0T2JqZWN0ICRFaW50cmFlZ2Ug LURlcHRoIDI1IC1Db21wcmVzcykNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg Y29udGludWUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgIyA9PT09PT09PT09PT09PT09 PT09PT0gTUVESUVOOiBMaXN0ZSA9PT09PT09PT09PT09PT09PT09PT0NCiAgICAgICAgICAgIGlm ICgkUGF0aCAtZXEgJy9hcGkvbWVkaWVuJyAtYW5kICRNZXRob2QgLWVxICdHRVQnKSB7DQogICAg ICAgICAgICAgICAgIyBCZWltIGVyc3RlbiBBdWZydWYgU3lzdGVtLU1lZGllbiBhdXMgL2ltYWdl cy8gZWlubWFsaWcgaW1wb3J0aWVyZW4uDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAg ICAgICAgICAgICAgSW52b2tlLVdpdGhGaWxlTG9jayAnbWVkaWVuLmpzb24nIHsgSW52b2tlLU1l ZGllblN5c3RlbUltcG9ydEZhbGxzTm9ldGlnIHwgT3V0LU51bGwgfSB8IE91dC1OdWxsDQogICAg ICAgICAgICAgICAgfSBjYXRjaCB7DQogICAgICAgICAgICAgICAgICAgIERlYnVnLUxvZyAnQVBJ JyAic3lzdGVtLWltcG9ydCBza2lwcGVkOiAkXyINCiAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgJE1ldGEgPSBSZWFkLU1lZGllbk1ldGENCiAgICAgICAgICAgICAgICAkTWVkaWVu TGlzdGUgPSBpZiAoJE1ldGEubWVkaWVuKSB7IEAoJE1ldGEubWVkaWVuKSB9IGVsc2UgeyBAKCkg fQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7IG1lZGllbiA9ICRNZWRpZW5MaXN0 ZTsga2F0ZWdvcmllbiA9IChHZXQtTWVkaWVuS2F0ZWdvcmllS2V5cykgfQ0KICAgICAgICAgICAg ICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09 PT09PT09PT09IE1FRElFTjogRGF0ZWkgYXVzbGllZmVybiA9PT09PT09PT09PT09PT09PT09PT0N CiAgICAgICAgICAgIGlmICgkUGF0aC5TdGFydHNXaXRoKCcvYXBpL21lZGllbi9kYXRlaS8nKSAt YW5kICRNZXRob2QgLWVxICdHRVQnKSB7DQogICAgICAgICAgICAgICAgJE1pZCA9ICRQYXRoLlN1 YnN0cmluZygkUGF0aC5MYXN0SW5kZXhPZignLycpICsgMSkNCiAgICAgICAgICAgICAgICAkTWV0 YSA9IFJlYWQtTWVkaWVuTWV0YQ0KICAgICAgICAgICAgICAgICRFaW50cmFnID0gJG51bGwNCiAg ICAgICAgICAgICAgICBpZiAoJE1ldGEubWVkaWVuKSB7DQogICAgICAgICAgICAgICAgICAgIGZv cmVhY2ggKCRtIGluIEAoJE1ldGEubWVkaWVuKSkgeyBpZiAoJG0uaWQgLWVxICRNaWQpIHsgJEVp bnRyYWcgPSAkbTsgYnJlYWsgfSB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IGlmICgkbnVsbCAtZXEgJEVpbnRyYWcpIHsgU2VuZC1FcnJvciAkUmVzICdOaWNodCBnZWZ1bmRl bicgNDA0OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJERhdGVpID0gR2V0LU1lZGllblBm YWQgJEVpbnRyYWcNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICREYXRlaSkp IHsgU2VuZC1FcnJvciAkUmVzICdEYXRlaSBuaWNodCB2b3JoYW5kZW4nIDQwNDsgY29udGludWUg fQ0KICAgICAgICAgICAgICAgIFNlbmQtRmlsZSAkUmVzICREYXRlaQ0KICAgICAgICAgICAgICAg IGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09 PT09PT09IE1FRElFTjogVXBsb2FkIChCYXNlNjQtSlNPTikgPT09PT09PT09PT09PT09PT09PT09 DQogICAgICAgICAgICBpZiAoJFBhdGggLWVxICcvYXBpL21lZGllbicgLWFuZCAkTWV0aG9kIC1l cSAnUE9TVCcpIHsNCiAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1Jc3RTdXBlclVzZXIp KSB7IFNlbmQtRXJyb3IgJFJlcyAnTnVyIFN1cGVyVXNlciBkYXJmIE1lZGllbiBob2NobGFkZW4n IDQwMzsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCb2R5ID0gUmVhZC1Cb2R5ICRSZXEN CiAgICAgICAgICAgICAgICBpZiAoJG51bGwgLWVxICRCb2R5KSB7IFNlbmQtRXJyb3IgJFJlcyAn QW5mcmFnZSB6dSBncm9zcycgNDEzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgdHJ5IHsg JEEgPSAkQm9keSB8IENvbnZlcnRGcm9tLUpzb24gfSBjYXRjaCB7IFNlbmQtRXJyb3IgJFJlcyAn VW5ndWVsdGlnZXMgSlNPTicgNDAwOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgJEthdGVn b3JpZSA9IChbc3RyaW5nXSRBLmthdGVnb3JpZSkuVG9Mb3dlcigpLlRyaW0oKQ0KICAgICAgICAg ICAgICAgIGlmICgtbm90ICgoR2V0LU1lZGllbkthdGVnb3JpZUtleXMpIC1jb250YWlucyAkS2F0 ZWdvcmllKSkgeyBTZW5kLUVycm9yICRSZXMgJ1VuZ3VlbHRpZ2UgS2F0ZWdvcmllJyA0MDA7IGNv bnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkTWltZSA9IChbc3RyaW5nXSRBLm1pbWVUeXBlKS5U b0xvd2VyKCkuVHJpbSgpDQogICAgICAgICAgICAgICAgaWYgKC1ub3QgJHNjcmlwdDpNZWRpZW5F cmxhdWJ0ZU1pbWVzLkNvbnRhaW5zS2V5KCRNaW1lKSkgeyBTZW5kLUVycm9yICRSZXMgJ0RhdGVp dHlwIG5pY2h0IGVybGF1YnQnIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICRCZXpl aWNobnVuZyA9IChbc3RyaW5nXSRBLmJlemVpY2hudW5nKS5UcmltKCkNCiAgICAgICAgICAgICAg ICBpZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkQmV6ZWljaG51bmcpKSB7IFNlbmQt RXJyb3IgJFJlcyAnQmV6ZWljaG51bmcgZmVobHQnIDQwMDsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgICREYXRhQjY0ID0gaWYgKCRBLmRhdGEpIHsgW3N0cmluZ10kQS5kYXRhIH0gZWxzZSB7 ICcnIH0NCiAgICAgICAgICAgICAgICBpZiAoJERhdGFCNjQuU3RhcnRzV2l0aCgnZGF0YTonKSkg ew0KICAgICAgICAgICAgICAgICAgICAkaWR4ID0gJERhdGFCNjQuSW5kZXhPZignLCcpDQogICAg ICAgICAgICAgICAgICAgIGlmICgkaWR4IC1nZSAwKSB7ICREYXRhQjY0ID0gJERhdGFCNjQuU3Vi c3RyaW5nKCRpZHggKyAxKSB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIHRy eSB7ICRSb2hCeXRlcyA9IFtTeXN0ZW0uQ29udmVydF06OkZyb21CYXNlNjRTdHJpbmcoJERhdGFC NjQpIH0gY2F0Y2ggeyBTZW5kLUVycm9yICRSZXMgJ0Jhc2U2NCB1bmd1ZWx0aWcnIDQwMDsgY29u dGludWUgfQ0KICAgICAgICAgICAgICAgIGlmICgkUm9oQnl0ZXMuTGVuZ3RoIC1ndCAkc2NyaXB0 Ok1lZGllbk1heEJ5dGVzKSB7DQogICAgICAgICAgICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAi RGF0ZWkgenUgZ3Jvc3MgKG1heCAkKFtNYXRoXTo6Rmxvb3IoJHNjcmlwdDpNZWRpZW5NYXhCeXRl cyAvIDFNQikpIE1CKSIgNDEzOyBjb250aW51ZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAkRXh0ID0gJHNjcmlwdDpNZWRpZW5FcmxhdWJ0ZU1pbWVzWyRNaW1lXQ0KICAgICAg ICAgICAgICAgICRNaWQgPSBOZXctTWVkaWVuSWQNCiAgICAgICAgICAgICAgICAjIFJvdXRpbmc6 IFdlbm4gSW1hZ2VzLzxrYXQ+LyBhbHMgRGlzay1PcmRuZXIgZXhpc3RpZXJ0IC0+IGRvcnQgaGlu c2NocmVpYmVuDQogICAgICAgICAgICAgICAgIyBtaXQgc2FuaXRpc2llcnRlbSBPcmlnaW5hbC1E YXRlaW5hbWVuICsgYHBmYWRgIGltIEVpbnRyYWcgc2V0emVuLg0KICAgICAgICAgICAgICAgICMg U29uc3QgRmFsbGJhY2sgYXVmIGRhdGEvbWVkaWVuLzxrYXQ+LzxpZD4uPGV4dD4uDQogICAgICAg ICAgICAgICAgJEltYWdlc0RpciA9IEdldC1NZWRpZW5JbWFnZXNPcmRuZXIgJEthdGVnb3JpZQ0K ICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJEltYWdlc0Rpcikgew0KICAgICAgICAgICAg ICAgICAgICAkVXBsb2FkTmFtZSA9IGlmICgkQS5kYXRlaW5hbWUpIHsgW3N0cmluZ10kQS5kYXRl aW5hbWUgfSBlbHNlIHsgJEJlemVpY2hudW5nIH0NCiAgICAgICAgICAgICAgICAgICAgJEJhc2Ug PSBHZXQtTWVkaWVuQmFzZW5hbWVBdXNVcGxvYWQgJFVwbG9hZE5hbWUNCiAgICAgICAgICAgICAg ICAgICAgJFppZWwgPSBHZXQtTWVkaWVuRnJlaWVyRGF0ZWluYW1lICRJbWFnZXNEaXIgJEJhc2Ug JEV4dA0KICAgICAgICAgICAgICAgICAgICBbU3lzdGVtLklPLkZpbGVdOjpXcml0ZUFsbEJ5dGVz KCRaaWVsLCAkUm9oQnl0ZXMpDQogICAgICAgICAgICAgICAgICAgICRaaWVsTmFtZSA9IFtTeXN0 ZW0uSU8uUGF0aF06OkdldEZpbGVOYW1lKCRaaWVsKQ0KICAgICAgICAgICAgICAgICAgICAkRWlu dHJhZyA9IFtvcmRlcmVkXUB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZCA9ICRNaWQNCiAg ICAgICAgICAgICAgICAgICAgICAgIGthdGVnb3JpZSA9ICRLYXRlZ29yaWUNCiAgICAgICAgICAg ICAgICAgICAgICAgIGJlemVpY2hudW5nID0gJEJlemVpY2hudW5nDQogICAgICAgICAgICAgICAg ICAgICAgICBkYXRlaW5hbWUgPSAkWmllbE5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgIG1p bWVUeXBlID0gJE1pbWUNCiAgICAgICAgICAgICAgICAgICAgICAgIGdyb2Vzc2UgPSAkUm9oQnl0 ZXMuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICBwZmFkID0gJy9pbWFnZXMvJyArICRL YXRlZ29yaWUgKyAnLycgKyAkWmllbE5hbWUNCiAgICAgICAgICAgICAgICAgICAgICAgIGhvY2hn ZWxhZGVuQW0gPSAoR2V0LURhdGUgLUZvcm1hdCAneXl5eS1NTS1kZCBISDptbTpzcycpDQogICAg ICAgICAgICAgICAgICAgICAgICBob2NoZ2VsYWRlblZvbiA9IChHZXQtQWt0dWVsbGVyQmVudXR6 ZXIpDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAg ICAgICAgICAgICAgICAgICAkS2F0RGlyID0gSm9pbi1QYXRoIChHZXQtTWVkaWVuRGlyKSAkS2F0 ZWdvcmllDQogICAgICAgICAgICAgICAgICAgIGlmICgtbm90IChUZXN0LVBhdGggJEthdERpcikp IHsgTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAtUGF0aCAkS2F0RGlyIC1Gb3JjZSB8IE91 dC1OdWxsIH0NCiAgICAgICAgICAgICAgICAgICAgJFppZWwgPSBKb2luLVBhdGggJEthdERpciAo JE1pZCArICRFeHQpDQogICAgICAgICAgICAgICAgICAgIFtTeXN0ZW0uSU8uRmlsZV06OldyaXRl QWxsQnl0ZXMoJFppZWwsICRSb2hCeXRlcykNCiAgICAgICAgICAgICAgICAgICAgJEVpbnRyYWcg PSBbb3JkZXJlZF1Aew0KICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAkTWlkDQogICAgICAg ICAgICAgICAgICAgICAgICBrYXRlZ29yaWUgPSAkS2F0ZWdvcmllDQogICAgICAgICAgICAgICAg ICAgICAgICBiZXplaWNobnVuZyA9ICRCZXplaWNobnVuZw0KICAgICAgICAgICAgICAgICAgICAg ICAgZGF0ZWluYW1lID0gaWYgKCRBLmRhdGVpbmFtZSkgeyAoW3N0cmluZ10kQS5kYXRlaW5hbWUp LlRyaW0oKS5TdWJzdHJpbmcoMCwgW01hdGhdOjpNaW4oKFtzdHJpbmddJEEuZGF0ZWluYW1lKS5M ZW5ndGgsIDIwMCkpIH0gZWxzZSB7ICgkTWlkICsgJEV4dCkgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgbWltZVR5cGUgPSAkTWltZQ0KICAgICAgICAgICAgICAgICAgICAgICAgZ3JvZXNzZSA9 ICRSb2hCeXRlcy5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgIGhvY2hnZWxhZGVuQW0g PSAoR2V0LURhdGUgLUZvcm1hdCAneXl5eS1NTS1kZCBISDptbTpzcycpDQogICAgICAgICAgICAg ICAgICAgICAgICBob2NoZ2VsYWRlblZvbiA9IChHZXQtQWt0dWVsbGVyQmVudXR6ZXIpDQogICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgdHJ5 IHsNCiAgICAgICAgICAgICAgICAgICAgSW52b2tlLVdpdGhGaWxlTG9jayAnbWVkaWVuLmpzb24n IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICRNZXRhID0gUmVhZC1NZWRpZW5NZXRhDQogICAg ICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAkTWV0YS5tZWRpZW4pIHsgJE1ldGEgPSBbUFND dXN0b21PYmplY3RdQHsgbWVkaWVuID0gQCgpIH0gfQ0KICAgICAgICAgICAgICAgICAgICAgICAg JExpc3RlID0gQCgkTWV0YS5tZWRpZW4pICsgW1BTQ3VzdG9tT2JqZWN0XSRFaW50cmFnDQogICAg ICAgICAgICAgICAgICAgICAgICAkTWV0YSA9IFtQU0N1c3RvbU9iamVjdF1AeyBtZWRpZW4gPSAk TGlzdGUgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUtTWVkaWVuTWV0YSAkTWV0YQ0K ICAgICAgICAgICAgICAgICAgICB9IHwgT3V0LU51bGwNCiAgICAgICAgICAgICAgICB9IGNhdGNo IHsNCiAgICAgICAgICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAkWmllbCkgeyBSZW1vdmUtSXRl bSAkWmllbCAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB9DQogICAgICAgICAgICAgICAg ICAgIFNlbmQtRXJyb3IgJFJlcyAiJF8iIDUwMzsgY29udGludWUNCiAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnbWVkaWVuLmhvY2hnZWxhZGVuJyBA eyBpZCA9ICRNaWQ7IGthdGVnb3JpZSA9ICRLYXRlZ29yaWU7IGJlemVpY2hudW5nID0gJEJlemVp Y2hudW5nOyBncm9lc3NlID0gJFJvaEJ5dGVzLkxlbmd0aDsgbWltZVR5cGUgPSAkTWltZSB9DQog ICAgICAgICAgICAgICAgJFVzZXJuYW1lID0gJGVudjpVU0VSTkFNRQ0KICAgICAgICAgICAgICAg ICRSb2xsZSA9IEdldC1Vc2VyUm9sbGUNCiAgICAgICAgICAgICAgICBBZGQtQ2hhbmdlTG9nRW50 cnkgJ21lZGllbicgJG51bGwgJG51bGwgJG51bGwgJFVzZXJuYW1lICRSb2xsZSBAeyBha3Rpb24g PSAnaG9jaGdlbGFkZW4nOyBpZCA9ICRNaWQ7IGthdGVnb3JpZSA9ICRLYXRlZ29yaWU7IGJlemVp Y2hudW5nID0gJEJlemVpY2hudW5nIH0NCiAgICAgICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBA eyBzdGF0dXMgPSAnZ2VzcGVpY2hlcnQnOyBtZWRpdW0gPSAkRWludHJhZyB9IDIwMQ0KICAgICAg ICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICMgPT09PT09 PT09PT09PT09PT09PT09IE1FRElFTjogVW1iZW5lbm5lbiAvIFZlcnNjaGllYmVuIC8gRGF0ZWkg ZXJzZXR6ZW4gPT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICBpZiAoJFBhdGguU3Rh cnRzV2l0aCgnL2FwaS9tZWRpZW4vJykgLWFuZCAkTWV0aG9kIC1lcSAnUEFUQ0gnIC1hbmQgLW5v dCAkUGF0aC5TdGFydHNXaXRoKCcvYXBpL21lZGllbi9kYXRlaS8nKSkgew0KICAgICAgICAgICAg ICAgIGlmICgtbm90IChUZXN0LUlzdFN1cGVyVXNlcikpIHsgU2VuZC1FcnJvciAkUmVzICdOdXIg U3VwZXJVc2VyIGRhcmYgTWVkaWVuIGFlbmRlcm4nIDQwMzsgY29udGludWUgfQ0KICAgICAgICAg ICAgICAgICRNaWQgPSAkUGF0aC5TdWJzdHJpbmcoJFBhdGguTGFzdEluZGV4T2YoJy8nKSArIDEp DQogICAgICAgICAgICAgICAgJEJvZHkgPSBSZWFkLUJvZHkgJFJlcQ0KICAgICAgICAgICAgICAg IGlmICgkbnVsbCAtZXEgJEJvZHkpIHsgU2VuZC1FcnJvciAkUmVzICdBbmZyYWdlIHp1IGdyb3Nz JyA0MTM7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICB0cnkgeyAkQSA9ICRCb2R5IHwgQ29u dmVydEZyb20tSnNvbiB9IGNhdGNoIHsgU2VuZC1FcnJvciAkUmVzICdVbmd1ZWx0aWdlcyBKU09O JyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAkTmV1ZUJleiA9IGlmICgkQS5QU09i amVjdC5Qcm9wZXJ0aWVzWydiZXplaWNobnVuZyddKSB7IFtzdHJpbmddJEEuYmV6ZWljaG51bmcg fSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAgICROZXVlS2F0ID0gaWYgKCRBLlBTT2Jq ZWN0LlByb3BlcnRpZXNbJ2thdGVnb3JpZSddKSB7IChbc3RyaW5nXSRBLmthdGVnb3JpZSkuVG9M b3dlcigpLlRyaW0oKSB9IGVsc2UgeyAkbnVsbCB9DQogICAgICAgICAgICAgICAgaWYgKCRudWxs IC1uZSAkTmV1ZUthdCAtYW5kIC1ub3QgKChHZXQtTWVkaWVuS2F0ZWdvcmllS2V5cykgLWNvbnRh aW5zICROZXVlS2F0KSkgew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgJ1Vu Z3VlbHRpZ2UgS2F0ZWdvcmllJyA0MDA7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICMgT3B0aW9uYWw6IERhdGVpLUluaGFsdCBhdXN0YXVzY2hlbiAoIkRhdGVp IGVyc2V0emVuIi1Ba3Rpb24pDQogICAgICAgICAgICAgICAgJE5ldWVEYXRhQjY0ID0gaWYgKCRB LlBTT2JqZWN0LlByb3BlcnRpZXNbJ2RhdGEnXSkgeyBbc3RyaW5nXSRBLmRhdGEgfSBlbHNlIHsg JG51bGwgfQ0KICAgICAgICAgICAgICAgICROZXVlTWltZSAgICA9IGlmICgkQS5QU09iamVjdC5Q cm9wZXJ0aWVzWydtaW1lVHlwZSddKSB7IChbc3RyaW5nXSRBLm1pbWVUeXBlKS5Ub0xvd2VyKCku VHJpbSgpIH0gZWxzZSB7ICRudWxsIH0NCiAgICAgICAgICAgICAgICAkTmV1ZXJEYXRlaW5hbWUg PSBpZiAoJEEuUFNPYmplY3QuUHJvcGVydGllc1snZGF0ZWluYW1lJ10pIHsgKFtzdHJpbmddJEEu ZGF0ZWluYW1lKS5UcmltKCkgfSBlbHNlIHsgJG51bGwgfQ0KICAgICAgICAgICAgICAgICROZXVl Qnl0ZXMgPSAkbnVsbA0KICAgICAgICAgICAgICAgIGlmICgtbm90IFtzdHJpbmddOjpJc051bGxP cldoaXRlU3BhY2UoJE5ldWVEYXRhQjY0KSkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5v dCAkTmV1ZU1pbWUpIHsgU2VuZC1FcnJvciAkUmVzICdtaW1lVHlwZSBmZWhsdCB6dW0gRGF0ZWkt RXJzZXR6ZW4nIDQwMDsgY29udGludWUgfQ0KICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAk c2NyaXB0Ok1lZGllbkVybGF1YnRlTWltZXMuQ29udGFpbnNLZXkoJE5ldWVNaW1lKSkgeyBTZW5k LUVycm9yICRSZXMgJ0RhdGVpdHlwIG5pY2h0IGVybGF1YnQnIDQwMDsgY29udGludWUgfQ0KICAg ICAgICAgICAgICAgICAgICBpZiAoJE5ldWVEYXRhQjY0LlN0YXJ0c1dpdGgoJ2RhdGE6JykpIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICRpZHggPSAkTmV1ZURhdGFCNjQuSW5kZXhPZignLCcp DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGlkeCAtZ2UgMCkgeyAkTmV1ZURhdGFCNjQg PSAkTmV1ZURhdGFCNjQuU3Vic3RyaW5nKCRpZHggKyAxKSB9DQogICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgdHJ5IHsgJE5ldWVCeXRlcyA9IFtTeXN0ZW0uQ29udmVy dF06OkZyb21CYXNlNjRTdHJpbmcoJE5ldWVEYXRhQjY0KSB9IGNhdGNoIHsgU2VuZC1FcnJvciAk UmVzICdCYXNlNjQgdW5ndWVsdGlnJyA0MDA7IGNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAg ICAgaWYgKCROZXVlQnl0ZXMuTGVuZ3RoIC1ndCAkc2NyaXB0Ok1lZGllbk1heEJ5dGVzKSB7DQog ICAgICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRSZXMgIkRhdGVpIHp1IGdyb3NzICht YXggJChbTWF0aF06OkZsb29yKCRzY3JpcHQ6TWVkaWVuTWF4Qnl0ZXMgLyAxTUIpKSBNQikiIDQx MzsgY29udGludWUNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAkc2NyaXB0OlVwZGF0ZWRFaW50cmFnID0gJG51bGw7ICRzY3JpcHQ6Rm91 bmQgPSAkZmFsc2U7ICRzY3JpcHQ6QWVuZGVydW5nZW4gPSBAe30NCiAgICAgICAgICAgICAgICB0 cnkgew0KICAgICAgICAgICAgICAgICAgICBJbnZva2UtV2l0aEZpbGVMb2NrICdtZWRpZW4uanNv bicgew0KICAgICAgICAgICAgICAgICAgICAgICAgJE1ldGEgPSBSZWFkLU1lZGllbk1ldGENCiAg ICAgICAgICAgICAgICAgICAgICAgICROZXVlTGlzdGUgPSBAKCkNCiAgICAgICAgICAgICAgICAg ICAgICAgIGZvcmVhY2ggKCRtIGluIEAoJE1ldGEubWVkaWVuKSkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgkbS5pZCAtZXEgJE1pZCkgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkc2NyaXB0OkZvdW5kID0gJHRydWUNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJEFsdEthdCA9ICRtLmthdGVnb3JpZQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAoJG51bGwgLW5lICROZXVlQmV6IC1hbmQgJE5ldWVCZXouVHJpbSgpIC1uZSAk bS5iZXplaWNobnVuZykgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGJl eiA9ICROZXVlQmV6LlRyaW0oKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCRiZXouTGVuZ3RoIC1ndCAyMDApIHsgJGJleiA9ICRiZXouU3Vic3RyaW5nKDAsIDIwMCkg fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0uYmV6ZWljaG51bmcgPSAk YmV6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2NyaXB0OkFlbmRlcnVu Z2VuWydiZXplaWNobnVuZyddID0gJGJleg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVsbCAtbmUgJE5ldWVL YXQgLWFuZCAkTmV1ZUthdCAtbmUgJEFsdEthdCkgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJElzdFN5c3RlbSA9ICRtLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BmYWQnXSAt YW5kIC1ub3QgW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZShbc3RyaW5nXSRtLnBmYWQpDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJElzdFN5c3RlbSkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgU3lzdGVtLU1lZGl1bTogbnVy IE1ldGEtS2F0ZWdvcmllIHdlY2hzZWxuLCBEYXRlaSBibGVpYnQgaW0gL2ltYWdlcy8tT3JkbmVy DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0ua2F0ZWdvcmllID0g JE5ldWVLYXQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJEFsdCA9IEdldC1NZWRpZW5Q ZmFkICRtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0ua2F0ZWdv cmllID0gJE5ldWVLYXQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk TmV1ID0gR2V0LU1lZGllblBmYWQgJG0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkTmV1RGlyID0gU3BsaXQtUGF0aCAtUGFyZW50ICROZXUNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoIC1MaXRlcmFsUGF0 aCAkTmV1RGlyKSkgeyBOZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5IC1QYXRoICROZXVEaXIg LUZvcmNlIHwgT3V0LU51bGwgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRBbHQpIHsgTW92ZS1JdGVtIC1MaXRlcmFs UGF0aCAkQWx0IC1EZXN0aW5hdGlvbiAkTmV1IC1Gb3JjZSB9DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk c2NyaXB0OkFlbmRlcnVuZ2VuWydrYXRlZ29yaWUnXSA9ICIkQWx0S2F0IC0+ICROZXVlS2F0Ig0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMgRGF0ZWktUmVwbGFjZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoJG51bGwgLW5lICROZXVlQnl0ZXMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICROZXVlckV4dCA9ICRzY3JpcHQ6TWVkaWVuRXJsYXVidGVNaW1lc1skTmV1ZU1p bWVdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkS2F0ID0gaWYgKCRtLmth dGVnb3JpZSkgeyBbc3RyaW5nXSRtLmthdGVnb3JpZSB9IGVsc2UgeyAnc29uc3RpZ2VzJyB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkSW1hZ2VzRGlyMiA9IEdldC1NZWRp ZW5JbWFnZXNPcmRuZXIgJEthdA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JEhhdFBmYWQgPSAkbS5QU09iamVjdC5Qcm9wZXJ0aWVzWydwZmFkJ10gLWFuZCAtbm90IFtzdHJp bmddOjpJc051bGxPcldoaXRlU3BhY2UoW3N0cmluZ10kbS5wZmFkKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJFppZWxJbkltYWdlcyA9ICRIYXRQZmFkIC1vciAoJG51bGwg LW5lICRJbWFnZXNEaXIyKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KCRaaWVsSW5JbWFnZXMgLWFuZCAkbnVsbCAtbmUgJEltYWdlc0RpcjIpIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEFsdGUgRGF0ZWkgYmVzZWl0aWdlbg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkSGF0UGZhZCkgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQWx0RCA9IEpvaW4tUGF0 aCAkc2NyaXB0OlJvb3QgKChbc3RyaW5nXSRtLnBmYWQpLlRyaW1TdGFydCgnLycpKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRBbHREID0gR2V0LU1lZGllblBmYWQgJG0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJhbFBhdGggJEFsdEQgLVBh dGhUeXBlIExlYWYpIHsgUmVtb3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICRBbHREIC1Gb3JjZSAtRXJy b3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSBjYXRjaCB7fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgTmV1ZW4gWmllbG5hbWVuIHfDpGhsZW4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoJEhhdFBmYWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJFN0ZW0gPSBbU3lzdGVtLklPLlBhdGhdOjpHZXRGaWxlTmFt ZVdpdGhvdXRFeHRlbnNpb24oW3N0cmluZ10kbS5wZmFkKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkWmllbEQgPSBKb2luLVBhdGggJEltYWdlc0RpcjIgKCRT dGVtICsgJE5ldWVyRXh0KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRV cGxvYWROYW1lMiA9IGlmICgkTmV1ZXJEYXRlaW5hbWUpIHsgJE5ldWVyRGF0ZWluYW1lIH0gZWxz ZSB7IFtzdHJpbmddJG0uYmV6ZWljaG51bmcgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkQmFzZTIgPSBHZXQtTWVkaWVuQmFzZW5hbWVBdXNVcGxvYWQgJFVw bG9hZE5hbWUyDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRa aWVsRCA9IEdldC1NZWRpZW5GcmVpZXJEYXRlaW5hbWUgJEltYWdlc0RpcjIgJEJhc2UyICROZXVl ckV4dA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbU3lzdGVtLklPLkZpbGVdOjpXcml0ZUFs bEJ5dGVzKCRaaWVsRCwgJE5ldWVCeXRlcykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkWmllbE5hbWUyID0gW1N5c3RlbS5JTy5QYXRoXTo6R2V0RmlsZU5hbWUoJFpp ZWxEKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbS5QU09i amVjdC5Qcm9wZXJ0aWVzWydwZmFkJ10pIHsgJG0ucGZhZCA9ICcvaW1hZ2VzLycgKyAkS2F0ICsg Jy8nICsgJFppZWxOYW1lMiB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZWxzZSB7ICRtIHwgQWRkLU1lbWJlciAtTWVtYmVyVHlwZSBOb3RlUHJvcGVydHkgLU5hbWUg J3BmYWQnIC1WYWx1ZSAoJy9pbWFnZXMvJyArICRLYXQgKyAnLycgKyAkWmllbE5hbWUyKSB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0uZGF0ZWluYW1lID0gaWYg KCROZXVlckRhdGVpbmFtZSkgeyAkTmV1ZXJEYXRlaW5hbWUuU3Vic3RyaW5nKDAsIFtNYXRoXTo6 TWluKCROZXVlckRhdGVpbmFtZS5MZW5ndGgsIDIwMCkpIH0gZWxzZSB7ICRaaWVsTmFtZTIgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtLm1pbWVUeXBlID0gJE5l dWVNaW1lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0uZ3JvZXNz ZSA9ICROZXVlQnl0ZXMuTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCRtLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3N5c3RlbSddKSB7ICRtLlBTT2JqZWN0 LlByb3BlcnRpZXMuUmVtb3ZlKCdzeXN0ZW0nKSB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJG0uaG9jaGdlbGFkZW5BbSA9IChHZXQtRGF0ZSAtRm9ybWF0ICd5eXl5 LU1NLWRkIEhIOm1tOnNzJykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkbS5ob2NoZ2VsYWRlblZvbiA9IChHZXQtQWt0dWVsbGVyQmVudXR6ZXIpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNjcmlwdDpBZW5kZXJ1bmdlblsnZGF0ZWkn XSA9ICIkTmV1ZU1pbWUgJCgkTmV1ZUJ5dGVzLkxlbmd0aCkgQiINCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyBkYXRhL21lZGllbi1QZmFkDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKC1ub3QgJEhhdFBmYWQpIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJEFsdEQgPSBHZXQtTWVkaWVuUGZhZCAkbQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFRlc3QtUGF0aCAtTGl0ZXJh bFBhdGggJEFsdEQgLVBhdGhUeXBlIExlYWYpIHsgUmVtb3ZlLUl0ZW0gLUxpdGVyYWxQYXRoICRB bHREIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZSB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge30NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCRtLlBTT2JqZWN0LlByb3BlcnRpZXNbJ3BmYWQnXSkgeyAkbS5QU09i amVjdC5Qcm9wZXJ0aWVzLlJlbW92ZSgncGZhZCcpIH0NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoJG0uUFNPYmplY3QuUHJvcGVydGllc1snc3lzdGVtJ10pIHsg JG0uUFNPYmplY3QuUHJvcGVydGllcy5SZW1vdmUoJ3N5c3RlbScpIH0NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkbS5taW1lVHlwZSA9ICROZXVlTWltZQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkTmV1ZXJEYXRlaW5hbWUpIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG0uZGF0ZWluYW1l ID0gJE5ldWVyRGF0ZWluYW1lLlN1YnN0cmluZygwLCBbTWF0aF06Ok1pbigkTmV1ZXJEYXRlaW5h bWUuTGVuZ3RoLCAyMDApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbS5ncm9lc3NlID0g JE5ldWVCeXRlcy5MZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkbS5ob2NoZ2VsYWRlbkFtID0gKEdldC1EYXRlIC1Gb3JtYXQgJ3l5eXktTU0tZGQgSEg6bW06 c3MnKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtLmhvY2hnZWxh ZGVuVm9uID0gKEdldC1Ba3R1ZWxsZXJCZW51dHplcikNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAkWmllbEQgPSBHZXQtTWVkaWVuUGZhZCAkbQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRaaWVsRGlyID0gU3BsaXQtUGF0aCAtUGFyZW50 ICRaaWVsRA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtbm90 IChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRaaWVsRGlyKSkgeyBOZXctSXRlbSAtSXRlbVR5cGUg RGlyZWN0b3J5IC1QYXRoICRaaWVsRGlyIC1Gb3JjZSB8IE91dC1OdWxsIH0NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbU3lzdGVtLklPLkZpbGVdOjpXcml0ZUFsbEJ5 dGVzKCRaaWVsRCwgJE5ldWVCeXRlcykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkc2NyaXB0OkFlbmRlcnVuZ2VuWydkYXRlaSddID0gIiROZXVlTWltZSAkKCROZXVl Qnl0ZXMuTGVuZ3RoKSBCIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICRzY3JpcHQ6VXBkYXRlZEVpbnRyYWcgPSAkbQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTmV1ZUxpc3RlICs9ICRt DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAo JHNjcmlwdDpGb3VuZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdyaXRlLU1lZGll bk1ldGEgKFtQU0N1c3RvbU9iamVjdF1AeyBtZWRpZW4gPSAkTmV1ZUxpc3RlIH0pDQogICAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0gfCBPdXQtTnVsbA0KICAg ICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBTZW5kLUVycm9yICRS ZXMgIiRfIiA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg IGlmICgtbm90ICRzY3JpcHQ6Rm91bmQpIHsgU2VuZC1FcnJvciAkUmVzICdOaWNodCBnZWZ1bmRl bicgNDA0OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgV3JpdGUtTG9nRWludHJhZyAnbWVk aWVuLmdlYWVuZGVydCcgQHsgaWQgPSAkTWlkOyBiZXplaWNobnVuZyA9ICRzY3JpcHQ6VXBkYXRl ZEVpbnRyYWcuYmV6ZWljaG51bmc7IGthdGVnb3JpZSA9ICRzY3JpcHQ6VXBkYXRlZEVpbnRyYWcu a2F0ZWdvcmllIH0NCiAgICAgICAgICAgICAgICAkVXNlcm5hbWUgPSAkZW52OlVTRVJOQU1FDQog ICAgICAgICAgICAgICAgJFJvbGxlID0gR2V0LVVzZXJSb2xsZQ0KICAgICAgICAgICAgICAgIEFk ZC1DaGFuZ2VMb2dFbnRyeSAnbWVkaWVuJyAkbnVsbCAkbnVsbCAkbnVsbCAkVXNlcm5hbWUgJFJv bGxlIEB7IGFrdGlvbiA9ICdnZWFlbmRlcnQnOyBpZCA9ICRNaWQ7IGJlemVpY2hudW5nID0gJHNj cmlwdDpVcGRhdGVkRWludHJhZy5iZXplaWNobnVuZzsga2F0ZWdvcmllID0gJHNjcmlwdDpVcGRh dGVkRWludHJhZy5rYXRlZ29yaWUgfQ0KICAgICAgICAgICAgICAgIFNlbmQtSnNvbiAkUmVzIEB7 IHN0YXR1cyA9ICdnZXNwZWljaGVydCc7IG1lZGl1bSA9ICRzY3JpcHQ6VXBkYXRlZEVpbnRyYWcg fQ0KICAgICAgICAgICAgICAgICRzY3JpcHQ6Rm91bmQgPSAkZmFsc2U7ICRzY3JpcHQ6VXBkYXRl ZEVpbnRyYWcgPSAkbnVsbA0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IE1FRElFTjogTG9lc2NoZW4g PT09PT09PT09PT09PT09PT09PT09DQogICAgICAgICAgICBpZiAoJFBhdGguU3RhcnRzV2l0aCgn L2FwaS9tZWRpZW4vJykgLWFuZCAkTWV0aG9kIC1lcSAnREVMRVRFJyAtYW5kIC1ub3QgJFBhdGgu U3RhcnRzV2l0aCgnL2FwaS9tZWRpZW4vZGF0ZWkvJykpIHsNCiAgICAgICAgICAgICAgICBpZiAo LW5vdCAoVGVzdC1Jc3RTdXBlclVzZXIpKSB7IFNlbmQtRXJyb3IgJFJlcyAnTnVyIFN1cGVyVXNl ciBkYXJmIE1lZGllbiBsb2VzY2hlbicgNDAzOyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAg JE1pZCA9ICRQYXRoLlN1YnN0cmluZygkUGF0aC5MYXN0SW5kZXhPZignLycpICsgMSkNCiAgICAg ICAgICAgICAgICAkc2NyaXB0OkZvdW5kID0gJGZhbHNlOyAkc2NyaXB0OkdlbG9lc2NodGVyRWlu dHJhZyA9ICRudWxsDQogICAgICAgICAgICAgICAgdHJ5IHsNCiAgICAgICAgICAgICAgICAgICAg SW52b2tlLVdpdGhGaWxlTG9jayAnbWVkaWVuLmpzb24nIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICRNZXRhID0gUmVhZC1NZWRpZW5NZXRhDQogICAgICAgICAgICAgICAgICAgICAgICAkTmV1 ZUxpc3RlID0gQCgpDQogICAgICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkbSBpbiBAKCRN ZXRhLm1lZGllbikpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG0uaWQgLWVx ICRNaWQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHNjcmlwdDpGb3VuZCA9 ICR0cnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzY3JpcHQ6R2Vsb2VzY2h0 ZXJFaW50cmFnID0gJG0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEaXNrLURh dGVpIG51ciBzY2hvbmVuLCB3ZW5uIE9yaWdpbmFsLVN5c3RlbS1Bc3NldCAoc3lzdGVtPSR0cnVl KS4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBVc2VyLVVwbG9hZHMgbWl0IGBw ZmFkYCAoaW4gSW1hZ2VzLzxrYXQ+Lykgd2VyZGVuIG1pdCBnZWxvZXNjaHQuDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICRJc3RTeXN0ZW1Bc3NldCA9ICRtLlBTT2JqZWN0LlByb3Bl cnRpZXNbJ3N5c3RlbSddIC1hbmQgW2Jvb2xdJG0uc3lzdGVtDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmICgtbm90ICRJc3RTeXN0ZW1Bc3NldCkgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJERhdGVpID0gR2V0LU1lZGllblBmYWQgJG0NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChUZXN0LVBhdGggLUxpdGVyYWxQYXRoICRE YXRlaSAtUGF0aFR5cGUgTGVhZikgeyBSZW1vdmUtSXRlbSAtTGl0ZXJhbFBhdGggJERhdGVpIC1F cnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICROZXVlTGlzdGUgKz0gJG0NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgICAgICBpZiAoJHNjcmlwdDpGb3VuZCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IFdyaXRlLU1lZGllbk1ldGEgKFtQU0N1c3RvbU9iamVjdF1AeyBtZWRpZW4gPSAkTmV1ZUxpc3Rl IH0pDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0gfCBP dXQtTnVsbA0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggew0KICAgICAgICAgICAgICAgICAgICBT ZW5kLUVycm9yICRSZXMgIiRfIiA1MDM7IGNvbnRpbnVlDQogICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgIGlmICgtbm90ICRzY3JpcHQ6Rm91bmQpIHsgU2VuZC1FcnJvciAkUmVzICdO aWNodCBnZWZ1bmRlbicgNDA0OyBjb250aW51ZSB9DQogICAgICAgICAgICAgICAgV3JpdGUtTG9n RWludHJhZyAnbWVkaWVuLmdlbG9lc2NodCcgQHsgaWQgPSAkTWlkOyBrYXRlZ29yaWUgPSAkc2Ny aXB0OkdlbG9lc2NodGVyRWludHJhZy5rYXRlZ29yaWU7IGJlemVpY2hudW5nID0gJHNjcmlwdDpH ZWxvZXNjaHRlckVpbnRyYWcuYmV6ZWljaG51bmcgfQ0KICAgICAgICAgICAgICAgICRVc2VybmFt ZSA9ICRlbnY6VVNFUk5BTUUNCiAgICAgICAgICAgICAgICAkUm9sbGUgPSBHZXQtVXNlclJvbGxl DQogICAgICAgICAgICAgICAgQWRkLUNoYW5nZUxvZ0VudHJ5ICdtZWRpZW4nICRudWxsICRudWxs ICRudWxsICRVc2VybmFtZSAkUm9sbGUgQHsgYWt0aW9uID0gJ2dlbG9lc2NodCc7IGlkID0gJE1p ZDsga2F0ZWdvcmllID0gJHNjcmlwdDpHZWxvZXNjaHRlckVpbnRyYWcua2F0ZWdvcmllOyBiZXpl aWNobnVuZyA9ICRzY3JpcHQ6R2Vsb2VzY2h0ZXJFaW50cmFnLmJlemVpY2hudW5nIH0NCiAgICAg ICAgICAgICAgICBTZW5kLUpzb24gJFJlcyBAeyBzdGF0dXMgPSAnZ2Vsb2VzY2h0JyB9DQogICAg ICAgICAgICAgICAgJHNjcmlwdDpGb3VuZCA9ICRmYWxzZTsgJHNjcmlwdDpHZWxvZXNjaHRlckVp bnRyYWcgPSAkbnVsbA0KICAgICAgICAgICAgICAgIGNvbnRpbnVlDQogICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICMgPT09PT09PT09PT09PT09PT09PT09IFNUQVRJU0NIRSBEQVRFSUVOID09 PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgJFJlbFBhdGggPSAkUGF0aC5UcmltU3Rh cnQoJy8nKQ0KICAgICAgICAgICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJFJl bFBhdGgpKSB7ICRSZWxQYXRoID0gJ2luZGV4Lmh0bWwnIH0NCiAgICAgICAgICAgICRTYWZlUGF0 aCA9IFJlc29sdmUtU2FmZVBhdGggJFJlbFBhdGgNCiAgICAgICAgICAgIGlmICgkbnVsbCAtZXEg JFNhZmVQYXRoKSB7IFNlbmQtRXJyb3IgJFJlcyAnWnVncmlmZiB2ZXJ3ZWlnZXJ0JyA0MDM7IGNv bnRpbnVlIH0NCiAgICAgICAgICAgIGlmICgoVGVzdC1QYXRoICRTYWZlUGF0aCkgLWFuZCAtbm90 IChHZXQtSXRlbSAkU2FmZVBhdGgpLlBTSXNDb250YWluZXIpIHsNCiAgICAgICAgICAgICAgICBT ZW5kLUZpbGUgJFJlcyAkU2FmZVBhdGgNCiAgICAgICAgICAgIH0gZWxzZWlmICgkUmVsUGF0aCAt ZXEgJ2luZGV4Lmh0bWwnKSB7DQogICAgICAgICAgICAgICAgIyBEaWFnbm9zZS1TZWl0ZSBzdGF0 dCA0MDQgLSB6ZWlndCBkaXJla3QgaW0gQnJvd3Nlciwgd2FzIGxvcyBpc3QNCiAgICAgICAgICAg ICAgICAkX2RpYWdJbmhhbHQgPSAnJw0KICAgICAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAg ICAgICAgICAgICRfZGlhZ0ZpbGVzID0gR2V0LUNoaWxkSXRlbSAtUGF0aCAkUm9vdCAtRm9yY2Ug LUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUgfCBTZWxlY3QtT2JqZWN0IC1GaXJzdCAzMCB8 IEZvckVhY2gtT2JqZWN0IHsgJzxsaT4nICsgW1N5c3RlbS5XZWIuSHR0cFV0aWxpdHldOjpIdG1s RW5jb2RlKCRfLk5hbWUpICsgJzwvbGk+JyB9DQogICAgICAgICAgICAgICAgICAgICRfZGlhZ0lu aGFsdCA9ICRfZGlhZ0ZpbGVzIC1qb2luICJgbiINCiAgICAgICAgICAgICAgICB9IGNhdGNoIHsg JF9kaWFnSW5oYWx0ID0gJzxsaT4oVmVyemVpY2huaXMgbmljaHQgbGVzYmFyKTwvbGk+JyB9DQog ICAgICAgICAgICAgICAgJF9kaWFnSHRtbCA9IEAiDQo8IWRvY3R5cGUgaHRtbD48aHRtbD48aGVh ZD48bWV0YSBjaGFyc2V0PSJ1dGYtOCI+PHRpdGxlPkZMRC1TZXJ2ZXI6IGluZGV4Lmh0bWwgbmlj aHQgZ2VmdW5kZW48L3RpdGxlPg0KPHN0eWxlPmJvZHl7Zm9udC1mYW1pbHk6U2Vnb2UgVUksc2Fu cy1zZXJpZjtiYWNrZ3JvdW5kOiNmYWZhZmE7Y29sb3I6IzIyMjtwYWRkaW5nOjMycHg7bWF4LXdp ZHRoOjc4MHB4O21hcmdpbjphdXRvfQ0KaDF7Y29sb3I6I2I3MWMxY31jb2Rle2JhY2tncm91bmQ6 I2VlZTtwYWRkaW5nOjJweCA2cHg7Ym9yZGVyLXJhZGl1czozcHh9DQouYm94e2JhY2tncm91bmQ6 I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNjY2M7cGFkZGluZzoxNnB4IDIwcHg7Ym9yZGVyLXJhZGl1 czo0cHg7bWFyZ2luOjE0cHggMH0NCi5sYWJlbHtmb250LXdlaWdodDo2MDA7Y29sb3I6IzU1NX11 bHtmb250LXNpemU6MTNweH08L3N0eWxlPjwvaGVhZD48Ym9keT4NCjxoMT5GTEQtU2VydmVyOiBp bmRleC5odG1sIG5pY2h0IGdlZnVuZGVuPC9oMT4NCjxwPkRlciBTZXJ2ZXIgbGFldWZ0LCBrYW5u IGFiZXIgdW50ZXIgZGVtIGtvbmZpZ3VyaWVydGVuIEFwcC1Sb290IGtlaW5lIDxjb2RlPmluZGV4 Lmh0bWw8L2NvZGU+IGZpbmRlbi48L3A+DQo8ZGl2IGNsYXNzPSJib3giPg0KICA8ZGl2PjxzcGFu IGNsYXNzPSJsYWJlbCI+QWt0dWVsbCBnZW51dHp0ZXIgUm9vdC1QZmFkOjwvc3Bhbj48YnI+PGNv ZGU+JFJvb3Q8L2NvZGU+PC9kaXY+DQogIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6OHB4Ij48c3Bh biBjbGFzcz0ibGFiZWwiPlF1ZWxsZTo8L3NwYW4+ICRfcm9vdFNyYzwvZGl2Pg0KICA8ZGl2IHN0 eWxlPSJtYXJnaW4tdG9wOjhweCI+PHNwYW4gY2xhc3M9ImxhYmVsIj5Sb290UGF0aC1QYXJhbTo8 L3NwYW4+IDxjb2RlPiQoW1N5c3RlbS5XZWIuSHR0cFV0aWxpdHldOjpIdG1sRW5jb2RlKCRSb290 UGF0aCkpPC9jb2RlPjwvZGl2Pg0KICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjhweCI+PHNwYW4g Y2xhc3M9ImxhYmVsIj5QU1NjcmlwdFJvb3Q6PC9zcGFuPiA8Y29kZT4kKFtTeXN0ZW0uV2ViLkh0 dHBVdGlsaXR5XTo6SHRtbEVuY29kZSgkUFNTY3JpcHRSb290KSk8L2NvZGU+PC9kaXY+DQo8L2Rp dj4NCjxkaXYgY2xhc3M9ImJveCI+DQogIDxkaXYgY2xhc3M9ImxhYmVsIj5JbmhhbHQgZGVzIFJv b3QtUGZhZHMgKG1heCAzMCBFaW50cmFlZ2UpOjwvZGl2Pg0KICA8dWw+JF9kaWFnSW5oYWx0PC91 bD4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iYm94Ij4NCiAgPGRpdiBjbGFzcz0ibGFiZWwiPk5hZWNo c3RlIFNjaHJpdHRlOjwvZGl2Pg0KICA8b2w+DQogICAgPGxpPlBydWVmZSwgb2IgaW0gZ2VuYW5u dGVuIFJvb3QtUGZhZCBkaWUgRGF0ZWkgPGNvZGU+aW5kZXguaHRtbDwvY29kZT4gbGllZ3QuPC9s aT4NCiAgICA8bGk+RmFsbHMgbmljaHQ6IEJhdCBhdXMgZGVtIGtvcnJla3RlbiBBcHAtT3JkbmVy IHN0YXJ0ZW4gKG5pY2h0IGF1cyBkZW0gTlctSG9tZSkuPC9saT4NCiAgICA8bGk+RmFsbHMgZGll IEJhdCBpbSByaWNodGlnZW4gT3JkbmVyIGxpZWd0OiBTaWRlY2FyLURhdGVpIDxjb2RlPmFwcF9y b290LnR4dDwvY29kZT4gbmViZW4gZGVtIGxva2FsZW4gPGNvZGU+c2VydmVyLnBzMTwvY29kZT4g cHJ1ZWZlbi48L2xpPg0KICAgIDxsaT5Wb2xsc3RhZW5kaWdlciBUcmFjZTogPGNvZGU+JVRFTVAl XEZMRF9zZXJ2ZXIubG9nPC9jb2RlPiBiencuIDxjb2RlPiVVU0VSUFJPRklMRSVcRGVza3RvcFxG TERfRkVITEVSLmxvZzwvY29kZT4uPC9saT4NCiAgPC9vbD4NCjwvZGl2Pg0KPC9ib2R5PjwvaHRt bD4NCiJADQogICAgICAgICAgICAgICAgJF9ieXRlcyA9IFtTeXN0ZW0uVGV4dC5FbmNvZGluZ106 OlVURjguR2V0Qnl0ZXMoJF9kaWFnSHRtbCkNCiAgICAgICAgICAgICAgICBBZGQtU2VjdXJpdHlI ZWFkZXJzICRSZXMNCiAgICAgICAgICAgICAgICAkUmVzLkNvbnRlbnRUeXBlID0gJ3RleHQvaHRt bDsgY2hhcnNldD11dGYtOCcNCiAgICAgICAgICAgICAgICAkUmVzLlN0YXR1c0NvZGUgPSA1MDMN CiAgICAgICAgICAgICAgICAkUmVzLkNvbnRlbnRMZW5ndGg2NCA9ICRfYnl0ZXMuTGVuZ3RoDQog ICAgICAgICAgICAgICAgV3JpdGUtUmVzcG9uc2VCdWZmZXIgJFJlcyAkX2J5dGVzDQogICAgICAg ICAgICAgICAgV3JpdGUtU3RhcnR1cExvZyAiRElBRy1TZWl0ZSBhdXNnZWxpZWZlcnQgKGluZGV4 Lmh0bWwgdW50ZXIgJyRSb290JyBmZWhsdCkiDQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAg ICAgICAgICAgIFNlbmQtRXJyb3IgJFJlcyAiTmljaHQgZ2VmdW5kZW46ICRSZWxQYXRoIiA0MDQN CiAgICAgICAgICAgIH0NCg0KICAgICAgICB9IGNhdGNoIHsNCiAgICAgICAgICAgICMgUGhhc2Ug RDU6IGVycm9ySWQtVVVJRCArIFN0YWNrdHJhY2UgaW5zIExvZywgTklDSFQgaW4gUmVzcG9uc2UN CiAgICAgICAgICAgICRlcnJvcklkID0gTmV3LUVycm9ySWQNCiAgICAgICAgICAgICRkZXRhaWwg ID0gIiRfIHwgWmVpbGUgJCgkXy5JbnZvY2F0aW9uSW5mby5TY3JpcHRMaW5lTnVtYmVyKSB8ICQo JF8uSW52b2NhdGlvbkluZm8uTGluZS5UcmltKCkpIg0KICAgICAgICAgICAgV3JpdGUtU3RhcnR1 cExvZyAiUkVRVUVTVC1GRUhMRVIgJE1ldGhvZCAkUGF0aCBlcnJvcklkPSRlcnJvcklkIDogJGRl dGFpbCINCiAgICAgICAgICAgIHRyeSB7DQogICAgICAgICAgICAgICAgU2VuZC1Kc29uICRSZXMg QHsNCiAgICAgICAgICAgICAgICAgICAgZmVobGVyICA9ICdpbnRlcm5lcl9zZXJ2ZXJmZWhsZXIn DQogICAgICAgICAgICAgICAgICAgIG1lbGR1bmcgPSAnSW50ZXJuZXIgU2VydmVyZmVobGVyIC0g Yml0dGUgbWl0IGRlciBlcnJvcklkIGFuIFN1cGVyVXNlciBtZWxkZW4uJw0KICAgICAgICAgICAg ICAgICAgICBlcnJvcklkID0gJGVycm9ySWQNCiAgICAgICAgICAgICAgICB9IDUwMA0KICAgICAg ICAgICAgfSBjYXRjaCB7fQ0KICAgICAgICB9DQogICAgfQ0KfSBmaW5hbGx5IHsNCiAgICBpZiAo JExpc3RlbmVyIC1hbmQgJExpc3RlbmVyLklzTGlzdGVuaW5nKSB7ICRMaXN0ZW5lci5TdG9wKCkg fQ0KICAgIFdyaXRlLVN0YXJ0dXBMb2cgJ1NlcnZlciBiZWVuZGV0LicNCn0NCg== ### FILE: style.css | 163105 LyogPT09IFZJMyBER0wtUGxhbnVuZyDigJQgU3R5bGVzaGVldCAoRXhjZWwtdHJldWVzIExheW91 dCkgPT09ICovCgoqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgYm94LXNpemluZzogYm9yZGVyLWJv eDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CgovKiA9PT09PSBDU1MtVmFyaWFibGVuID09PT09 ICovCjpyb290IHsKICAgIC8qIEdlZGVja3RlcywgcHJvZmVzc2lvbmVsbGVzIEZhcmJzY2hlbWEg Ki8KICAgIC0tYmctcHJpbWFyeTogIzJDM0U1MDsKICAgIC0tYmctcHJpbWFyeS1kYXJrOiAjMjQz MzQyOwogICAgLS1iZy1ib2R5OiAjRjBGMUYzOwogICAgLS1iZy1jYXJkOiAjRkZGRkZGOwogICAg LS1iZy1jYXJkLWFsdDogI0Y1RjZGODsKICAgIC0tYmctdG9vbGJhcjogI0U4RUFFRDsKICAgIC0t YmctaG92ZXI6ICNFOEVERjI7CiAgICAtLWJnLWFjdGl2ZTogI0Q2REVFNjsKICAgIC0tYmctaW5w dXQ6ICNGRkZGRkY7CiAgICAtLWJnLXNpZGViYXI6ICNGMEYxRjM7CgogICAgLS10ZXh0LXByaW1h cnk6ICMyQzNFNTA7CiAgICAtLXRleHQtc2Vjb25kYXJ5OiAjNUQ2RDdFOwogICAgLS10ZXh0LW11 dGVkOiAjOTVBNUE2OwogICAgLS10ZXh0LWhlYWRpbmc6ICMyQzNFNTA7CiAgICAtLXRleHQtb24t cHJpbWFyeTogI0VDRjBGMTsKCiAgICAtLWJvcmRlci1jb2xvcjogI0Q1RDhEQzsKICAgIC0tYm9y ZGVyLWxpZ2h0OiAjRTVFOEVCOwogICAgLS1ib3JkZXItc3Ryb25nOiAjQUVCNkJGOwogICAgLS1z aGFkb3ctbGlnaHQ6IHJnYmEoMCwwLDAsMC4wNCk7CiAgICAtLXNoYWRvdy1tZWRpdW06IHJnYmEo MCwwLDAsMC4xMCk7CiAgICAtLXNoYWRvdy1tb2RhbDogMCA4cHggMzJweCByZ2JhKDAsMCwwLDAu MjApOwogICAgLS10cmFuc2l0aW9uLXN0ZDogYWxsIDAuMTVzIGVhc2U7CgogICAgLyogR3JpZC1E aW1lbnNpb25lbiDigJQga29tcGFrdCB3aWUgRXhjZWwgKi8KICAgIC0temVsbGUtYnJlaXRlOiA2 MnB4OwogICAgLS16ZWxsZS1ob2VoZTogMjJweDsKICAgIC0tbmFtZW4tYnJlaXRlOiAyNjBweDsK ICAgIC0ta29wZi16ZWlsZW4taG9laGU6IDIwcHg7CgogICAgLS10YWctbm9ybWFsOiAjRkZGRkZG OwogICAgLS10YWctd29jaGVuZW5kZTogI0YyRURGNTsKICAgIC0tdGFnLWZlaWVydGFnOiAjRkRF QUVBOwogICAgLS10YWctZmVyaWVuOiAjRThGNUVDOwogICAgLS10YWctaGV1dGU6ICMyQzNFNTA7 CiAgICAtLXRhZy1zb25kZXI6ICNGRkY5RTY7CgogICAgLyogR2VkZWNrdGUgU2NoaWNodGZhcmJl biAqLwogICAgLS1mYXJiZS1mcnVlaDogI0I3MUMxQzsKICAgIC0tZmFyYmUtc3BhZXQ6ICMxQTUy NzY7CiAgICAtLWZhcmJlLW5hY2h0OiAjMUI1RTIwOwogICAgLS1mYXJiZS1lcmZvbGc6ICMyNzg5 NkQ7CiAgICAtLWZhcmJlLWZlaGxlcjogI0IwM0EyRTsKICAgIC0tZmFyYmUtd2FybnVuZzogI0NB NkYxRTsKICAgIC0tZmFyYmUtaW5mbzogIzJDM0U1MDsKCiAgICAvKiA9PT0gVGFnZXNsYWdlLVJl ZnJlc2ggKGFkZGl0aXYsIE1vY2t1cC1Ub2tlbnMpID09PSAqLwogICAgLS10bC1ha3otZHNtOiAg ICAgICAgdmFyKC0tdGV4dC1tdXRlZCk7CiAgICAtLXRsLWFrei1zb2xsOiAgICAgICAjQjA4QTNG OyAgICAgICAgICAvKiBnb2xkICovCiAgICAtLXRsLWFrei1mcnVlaDogICAgICAjQzlBOTRBOyAg ICAgICAgICAvKiBQb2xpemVpLUZydWVoIChnZWxiKSAqLwogICAgLS10bC1ha3otc3BhZXQ6ICAg ICAgIzRBOEI1RTsgICAgICAgICAgLyogUG9saXplaS1TcGFldCAoZ3J1ZW4pICovCiAgICAtLXRs LWFrei1uYWNodDogICAgICAjM0U1RThCOyAgICAgICAgICAvKiBQb2xpemVpLU5hY2h0IChibGF1 KSAqLwoKICAgIC0tZ29sZDogICAgICAgICAgICAgICNCMDhBM0Y7CiAgICAtLWdvbGQtc29mdDog ICAgICAgICAjRjRFQ0Q4OwogICAgLS1iZy1zb2Z0OiAgICAgICAgICAgI0ZCRjhFRjsKCiAgICAt LXRsLWJnLXNvbGw6ICAgICAgICB2YXIoLS1iZy1zb2Z0KTsKICAgIC0tdGwtYmctZnJ1ZWg6ICAg ICAgIHJnYmEoMjAxLDE2OSw3NCwwLjA1KTsKICAgIC0tdGwtYmctc3BhZXQ6ICAgICAgIHJnYmEo NzQsMTM5LDk0LDAuMDUpOwogICAgLS10bC1iZy1uYWNodDogICAgICAgcmdiYSg2Miw5NCwxMzks MC4wNCk7CgogICAgLS10bC1zdGF0dXMtb2stYmc6ICAgcmdiYSgzOSwxMzcsMTA5LDAuMTApOwog ICAgLS10bC1zdGF0dXMtb2stZmc6ICAgdmFyKC0tZmFyYmUtZXJmb2xnKTsKICAgIC0tdGwtc3Rh dHVzLXdhcm4tYmc6IHJnYmEoMTc2LDU4LDQ2LDAuMTApOwogICAgLS10bC1zdGF0dXMtd2Fybi1m ZzogdmFyKC0tZmFyYmUtZmVobGVyKTsKCiAgICAvKiBTdGF0dXMtUGlsbGVuIChUYWJlbGxlbi1T cGFsdGUg4oCeU3RhdHVzIiBpbiBBZG1pbikgKi8KICAgIC0tc3RhdHVzLWFrdGl2LWJnOiAgICAg cmdiYSgzOSwxMzcsMTA5LDAuMTIpOwogICAgLS1zdGF0dXMtYWt0aXYtZmc6ICAgICB2YXIoLS1m YXJiZS1lcmZvbGcpOwogICAgLS1zdGF0dXMtYWt0aXYtYm9yZGVyOiByZ2JhKDM5LDEzNywxMDks MC4zMCk7CiAgICAtLXN0YXR1cy1pbmFrdGl2LWJnOiAgIHZhcigtLWJnLWNhcmQtYWx0KTsKICAg IC0tc3RhdHVzLWluYWt0aXYtZmc6ICAgdmFyKC0tdGV4dC1tdXRlZCk7CgogICAgLS1yYWRpdXMt c206IDRweDsKICAgIC0tcmFkaXVzLW1kOiA2cHg7CiAgICAtLXJhZGl1cy1sZzogMTBweDsKICAg IC0tc2NoYXR0ZW4tc206IDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMDYpOwogICAgLS1zY2hhdHRl bi1tZDogMCAycHggOHB4IHJnYmEoMCwwLDAsMC4wOCk7Cn0KCltkYXRhLXRoZW1lPSJuaWdodCJd IHsKICAgIC0tYmctcHJpbWFyeTogIzFBMjUyRjsKICAgIC0tYmctcHJpbWFyeS1kYXJrOiAjMTQx RDI1OwogICAgLS1iZy1ib2R5OiAjMTUxRDI1OwogICAgLS1iZy1jYXJkOiAjMUMyNjMwOwogICAg LS1iZy1jYXJkLWFsdDogIzIxMzAzRDsKICAgIC0tYmctdG9vbGJhcjogIzIxMzAzRDsKICAgIC0t YmctaG92ZXI6ICMyODNBNEE7CiAgICAtLWJnLWFjdGl2ZTogIzJGNDQ1ODsKICAgIC0tYmctaW5w dXQ6ICMxQzI2MzA7CiAgICAtLWJnLXNpZGViYXI6ICMxODIyMkM7CgogICAgLS10ZXh0LXByaW1h cnk6ICNENURERTU7CiAgICAtLXRleHQtc2Vjb25kYXJ5OiAjODg5OUE2OwogICAgLS10ZXh0LW11 dGVkOiAjNUE2QTc4OwogICAgLS10ZXh0LWhlYWRpbmc6ICNBOEM0RDg7CiAgICAtLXRleHQtb24t cHJpbWFyeTogI0Q1RERFNTsKCiAgICAtLWJvcmRlci1jb2xvcjogIzI4M0E0QTsKICAgIC0tYm9y ZGVyLWxpZ2h0OiAjMjIzMDQwOwogICAgLS1ib3JkZXItc3Ryb25nOiAjM0E0RTYwOwogICAgLS1z aGFkb3ctbGlnaHQ6IHJnYmEoMCwwLDAsMC4xNSk7CiAgICAtLXNoYWRvdy1tZWRpdW06IHJnYmEo MCwwLDAsMC4zMCk7CiAgICAtLXNoYWRvdy1tb2RhbDogMCA4cHggMzJweCByZ2JhKDAsMCwwLDAu NDUpOwoKICAgIC0tdGFnLW5vcm1hbDogIzFDMjYzMDsKICAgIC0tdGFnLXdvY2hlbmVuZGU6ICMy NjFEMzI7CiAgICAtLXRhZy1mZWllcnRhZzogIzMyMUUxRTsKICAgIC0tdGFnLWZlcmllbjogIzFD MkUyMjsKICAgIC0tdGFnLXNvbmRlcjogIzJFMkExODsKCiAgICAvKiA9PT0gVGFnZXNsYWdlLVJl ZnJlc2g6IE5pZ2h0LVZhcmlhbnRlbiA9PT0gKi8KICAgIC0tdGwtYmctc29sbDogICAgICAgICMx RjI4MzI7CiAgICAtLXRsLWJnLWZydWVoOiAgICAgICByZ2JhKDIwMSwxNjksNzQsMC4wNyk7CiAg ICAtLXRsLWJnLXNwYWV0OiAgICAgICByZ2JhKDc0LDEzOSw5NCwwLjA3KTsKICAgIC0tdGwtYmct bmFjaHQ6ICAgICAgIHJnYmEoNjIsOTQsMTM5LDAuMDcpOwogICAgLS10bC1zdGF0dXMtb2stYmc6 ICAgcmdiYSgzOSwxMzcsMTA5LDAuMTgpOwogICAgLS10bC1zdGF0dXMtd2Fybi1iZzogcmdiYSgx NzYsNTgsNDYsMC4xOCk7CiAgICAtLWdvbGQtc29mdDogICAgICAgICAjMkEyNTIwOwoKICAgIC0t c3RhdHVzLWFrdGl2LWJnOiAgICAgcmdiYSgzOSwxMzcsMTA5LDAuMjApOwogICAgLS1zdGF0dXMt YWt0aXYtZmc6ICAgICAjNjZCQjZBOwogICAgLS1zdGF0dXMtYWt0aXYtYm9yZGVyOiByZ2JhKDM5 LDEzNywxMDksMC40NSk7CiAgICAtLXN0YXR1cy1pbmFrdGl2LWJnOiAgIHZhcigtLWJnLWNhcmQt YWx0KTsKICAgIC0tc3RhdHVzLWluYWt0aXYtZmc6ICAgdmFyKC0tdGV4dC1tdXRlZCk7Cn0KCmh0 bWwsIGJvZHkgewogICAgaGVpZ2h0OiAxMDAlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIGZv bnQtZmFtaWx5OiAiU2Vnb2UgVUkiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQs IFJvYm90bywgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBmb250LXNp emU6IDEycHg7CiAgICBsaW5lLWhlaWdodDogMS4zOwogICAgY29sb3I6IHZhcigtLXRleHQtcHJp bWFyeSk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ib2R5KTsKfQovKiBCb2R5IGFscyBGbGV4 LUNvbHVtbjogSGVhZGVyICh2YXJpYWJlbCBob2NoIGR1cmNoIGN1c3RvbUxvZ29Ib2VoZSkgdW5k CiAgIC5hbnNpY2h0IHRlaWxlbiBzaWNoIGRpZSBIb2VoZSBkeW5hbWlzY2guIFZlcmhpbmRlcnQg Q3JvcHBpbmcgYmVpCiAgIGdyb3NzZW0gTG9nby1IZWFkZXIuICovCmJvZHkgeyBkaXNwbGF5OiBm bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9CgovKiA9PT09PSBIZWFkZXIgPT09PT0gKi8K I2tvcGZsZWlzdGUgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7 CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBiYWNrZ3JvdW5kOiB2YXIo LS1iZy1wcmltYXJ5KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgcGFk ZGluZzogMCAyMHB4OwogICAgLyogSGVhZGVyIGlzdCBqZXR6dCAzLXplaWxpZyBhdWYgZGVyIHJl Y2h0ZW4gU2VpdGUgKFVzZXIgLyBIZXV0ZStEYXR1bSAvIEluZm8rTmFjaHQpLgogICAgICAgTWlu ZGVzdGhvZWhlIHNvLCBkYXNzIGRpZSAzIFplaWxlbiByZWlucGFzc2VuLCBhYmVyIExvZ28gbGlu a3MgbmljaHQgYWJzY2huZWlkZXQuICovCiAgICBtaW4taGVpZ2h0OiA2NHB4OwogICAgYm94LXNo YWRvdzogMCAycHggOHB4IHJnYmEoMCwwLDAsMC4xNSk7CiAgICB6LWluZGV4OiAxMDA7CiAgICBw b3NpdGlvbjogcmVsYXRpdmU7Cn0KCiNrb3BmbGVpc3RlIGgxIHsgZm9udC1zaXplOiAxNHB4OyBm b250LXdlaWdodDogNjAwOyBsZXR0ZXItc3BhY2luZzogLTAuM3B4OyB9Ci5oZWFkZXItamFociB7 IGZvbnQtd2VpZ2h0OiA0MDA7IG9wYWNpdHk6IDAuNzsgbWFyZ2luLWxlZnQ6IDhweDsgfQoKLmhl YWRlci1uYXYgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDJweDsgfQoubmF2LWJ0biB7CiAgICBiYWNr Z3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7CiAg ICBib3JkZXI6IG5vbmU7CiAgICBwYWRkaW5nOiA2cHggMTRweDsKICAgIGJvcmRlci1yYWRpdXM6 IDRweCA0cHggMCAwOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udC1zaXplOiAxMnB4Owog ICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgdHJhbnNp dGlvbjogdmFyKC0tdHJhbnNpdGlvbi1zdGQpOwp9Ci5uYXYtYnRuOmhvdmVyIHsgY29sb3I6ICNm ZmY7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IH0KLm5hdi1idG4uYWt0aXYg eyBjb2xvcjogI2ZmZjsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjE1KTsgYm9yZGVy LWJvdHRvbTogMnB4IHNvbGlkICNmZmY7IH0KCi8qIFJlY2h0ZXIgSGVhZGVyLUJlcmVpY2g6IDMt emVpbGlnIGtvbXBha3Qg4oCUIFVzZXIgb2JlbiwgSGV1dGUrRGF0dW0gbWl0dGlnLAogICBJbmZv K05hY2h0IHVudGVuLiBBbGxlIFplaWxlbiByZWNodHMgYXVzZ2VyaWNodGV0LCBnbGVpY2hlIFNw YWx0ZW5icmVpdGUuICovCi5oZWFkZXItcmVjaHRzIHsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgt ZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IGp1c3RpZnktY29u dGVudDogY2VudGVyOwogICAgZ2FwOiA0cHg7IHBhZGRpbmc6IDZweCAwOwp9Ci5oci16ZWlsZSB7 IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyB9Ci5oci16ZWls ZS11c2VyIC5iZW51dHplci1iYWRnZSB7IGZvbnQtc2l6ZTogMTFweDsgb3BhY2l0eTogMC43OyB9 Ci5oci16ZWlsZS1oZXV0ZSAuaHItaGV1dGUtZGF0dW0gewogICAgZGlzcGxheTogaW5saW5lLWZs ZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGxpbmUtaGVpZ2h0OiAxLjA1OyBtaW4td2lkdGg6 IDA7Cn0KLmhyLXplaWxlLWhldXRlIC5oci1oZXV0ZS1kYXR1bSAua2wtaGV1dGUtZGF0dW0tdHh0 IHsgZm9udC1zaXplOiAxMnB4OyBmb250LXdlaWdodDogNjAwOyB9Ci5oci16ZWlsZS1oZXV0ZSAu aHItaGV1dGUtZGF0dW0gLmtsLWhldXRlLXd0YWctdHh0ICB7IGZvbnQtc2l6ZTogMTBweDsgb3Bh Y2l0eTogMC43OyBtYXJnaW4tdG9wOiAxcHg7IH0KLmhyLXplaWxlLWFrdGlvbmVuIHsgZ2FwOiA2 cHg7IH0KLmJlbnV0emVyLWJhZGdlIHsgZm9udC1zaXplOiAxMXB4OyBvcGFjaXR5OiAwLjc7IH0K Lmljb24tYnRuIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogcmdiYSgyNTUs MjU1LDI1NSwwLjcpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMik7CiAg ICBwYWRkaW5nOiAzcHggMTBweDsgYm9yZGVyLXJhZGl1czogNHB4OyBjdXJzb3I6IHBvaW50ZXI7 IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IGluaGVyaXQ7CiAgICB0cmFuc2l0aW9uOiB2 YXIoLS10cmFuc2l0aW9uLXN0ZCk7Cn0KLmljb24tYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogcmdi YSgyNTUsMjU1LDI1NSwwLjEpOyBjb2xvcjogI2ZmZjsgfQoKLyogPT09PT0gQW5zaWNodGVuID09 PT09ICovCi8qIGZsZXg6MSArIG1pbi1oZWlnaHQ6MCBzdGF0dCBmZXN0ZXIgSG9laGUg4oCUIHBh c3N0IHNpY2ggYW4gdmFyaWFibGUKICAgSGVhZGVyLUhvZWhlIHVuZCBzaWNodGJhcmUgQmFubmVy cyAoVmlldy1BcywgSW50ZWdyaXRhZXQpIGF1dG9tYXRpc2NoIGFuLiAqLwouYW5zaWNodCB7IGZs ZXg6IDE7IG1pbi1oZWlnaHQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IGRpc3BsYXk6IGZsZXg7IGZs ZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0KLnZlcnN0ZWNrdCB7IGRpc3BsYXk6IG5vbmUgIWltcG9y dGFudDsgfQoKLyogPT09PT0gVG9vbGJhciAoUGxhbnVuZykgPT09PT0gKi8KI3BsYW51bmctdG9v bGJhciB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsK ICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctdG9vbGJhcik7 CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIGhl aWdodDogMzBweDsKfQoudG9vbGJhci1idG4gewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2Fy ZCk7IGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFy KC0tYm9yZGVyLXN0cm9uZyk7IHBhZGRpbmc6IDJweCAxMHB4OyBib3JkZXItcmFkaXVzOiAzcHg7 CiAgICBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IGluaGVy aXQ7IHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3RkKTsKfQoudG9vbGJhci1idG46aG92 ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4 dC1oZWFkaW5nKTsgfQoudG9vbGJhci10cmVubmVyIHsgd2lkdGg6IDFweDsgaGVpZ2h0OiAxNnB4 OyBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3IpOyBtYXJnaW46IDAgNHB4OyB9Ci50b29s YmFyLWluZm8geyBmb250LXNpemU6IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7 IH0KLnRvb2xiYXItY2hlY2sgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1z OiBjZW50ZXI7IGdhcDogNHB4OwogICAgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4 dC1zZWNvbmRhcnkpOyBjdXJzb3I6IHBvaW50ZXI7CiAgICBwYWRkaW5nOiAycHggNnB4OyBib3Jk ZXItcmFkaXVzOiAzcHg7Cn0KLnRvb2xiYXItY2hlY2s6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIo LS1iZy1ob3Zlcik7IH0KLnRvb2xiYXItY2hlY2sgaW5wdXQgeyBjdXJzb3I6IHBvaW50ZXI7IH0K Ci8qIFVtZ2VzZXR6dGUgUGVyc29uZW4gKG51ciB6dXIgUmVjaGVyY2hlIGVpbmdlYmxlbmRldCkg Ki8KLm5hbWVuLXplaWxlLXVtZ2VzZXR6dCB7IG9wYWNpdHk6IDAuNDU7IGZvbnQtc3R5bGU6IGl0 YWxpYzsgfQoubmFtZW4temVpbGUtdW1nZXNldHp0IC5uei1uYW1lIHsgdGV4dC1kZWNvcmF0aW9u OiBsaW5lLXRocm91Z2g7IH0KLmdyaWQtemVpbGUtdW1nZXNldHp0IHsgb3BhY2l0eTogMC40NTsg fQouZ3JpZC16ZWlsZS11bWdlc2V0enQgLmdyaWQtemVsbGUgeyBjdXJzb3I6IG5vdC1hbGxvd2Vk ICFpbXBvcnRhbnQ7IH0KLnplaWxlLXVtZ2VzZXR6dCB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhv dmVyKTsgb3BhY2l0eTogMC43OyB9Ci56ZWlsZS11bWdlc2V0enQgdGQgeyBmb250LXN0eWxlOiBp dGFsaWM7IH0KCi8qID09PT09IFBsYW51bmdzLUNvbnRhaW5lciAoRXhjZWwtTGF5b3V0KSA9PT09 PSAqLwojcGxhbnVuZy1jb250YWluZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXg6IDE7 CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7Cn0K Ci8qID09PT09IEZpeGllcnRlIGxpbmtlIFNwYWx0ZSA9PT09PSAqLwojbmFtZW4tc3BhbHRlIHsK ICAgIHdpZHRoOiB2YXIoLS1uYW1lbi1icmVpdGUpOwogICAgbWluLXdpZHRoOiB2YXIoLS1uYW1l bi1icmVpdGUpOwogICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9u Zyk7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGJh Y2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgei1pbmRleDogMTA7Cn0KCi8qIEtvcGZiZXJl aWNoIGxpbmtzICovCiNrb3BmLWxpbmtzIHsKICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2 YXIoLS1ib3JkZXItc3Ryb25nKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsK fQoKLmtvcGYtemVpbGUgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50 ZXI7CiAgICBoZWlnaHQ6IHZhcigtLWtvcGYtemVpbGVuLWhvZWhlKTsKICAgIGJvcmRlci1ib3R0 b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgZm9udC1zaXplOiAxMHB4Owog ICAgcGFkZGluZzogMCA2cHg7Cn0KCi8qIEhldXRlLUJ1dHRvbiDigJQgc2l0enQgamV0enQgb2Jl biByZWNodHMgaW4gZGVyIEtvcGZsZWlzdGUgKG5pY2h0IG1laHIKICAgYWxzIEJhbm5lci1PdmVy bGF5IHVlYmVyIGRlbSBsaW5rZW4gSGVhZGVyKS4gKi8KLmtsLWhldXRlLWJ1dHRvbiB7CiAgICBi YWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOwogICAgY29sb3I6IHZhcigtLXRleHQt b24tcHJpbWFyeSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMjgp OwogICAgcGFkZGluZzogM3B4IDEwcHg7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBmb250 LWZhbWlseTogaW5oZXJpdDsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtd2VpZ2h0OiA2 MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC40cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0 cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNl LCB0cmFuc2Zvcm0gMC4xcyBlYXNlOwp9Ci5rbC1oZXV0ZS1idXR0b246aG92ZXIgewogICAgYmFj a2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIyKTsKICAgIGJvcmRlci1jb2xvcjogcmdiYSgy NTUsMjU1LDI1NSwwLjUwKTsKfQoua2wtaGV1dGUtYnV0dG9uOmFjdGl2ZSB7CiAgICBiYWNrZ3Jv dW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzApOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFw eCk7Cn0KCi8qIExpbmtlIEhlYWRlci1aZWlsZW46IGVpbmhlaXRsaWNoIGR1bmtsZXIgQmxvY2sg b2huZSBoYXJ0ZSBUcmVubmxpbmllbgogICB6d2lzY2hlbiBkZW4gWmVpbGVuIOKAlCB3aXJrdCBh bHMgZWluZSBab25lLCBuaWNodCBnZXN0cmVpZnRlIExpc3RlLgogICBHaWx0IGpldHp0IGZ1ZXIg QUxMRSBIZWFkZXItWmVpbGVuIChWb3JnYWJlL1NvbGwvRFNNL0RhdHVtL1dvY2hlbnRhZy8KICAg RXZlbnRzL0Zlcmllbi9GLUwvUy1ML1VudC1GL1VudC1OKSBzZWl0IFJlb3JkZXIuICovCi5rei1k YXR1bSwgLmt6LXdvY2hlbnRhZywgLmt6LWV2ZW50cywgLmt6LWZlcmllbiwKLmt6LXRhZ2VzZGF0 ZW4sIC5rei1kc20gewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7CiAgICBjb2xv cjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIGJvcmRlci1ib3R0b206IG5vbmU7Cn0KLmt6 LWV2ZW50cyB7IGZvbnQtc2l6ZTogMTBweDsgb3BhY2l0eTogMC44NTsgfQoKLyogTGlua2VyIEhl YWRlciB6dXNhbW1lbnJ1ZWNrZW46IGxlZXJlIERhdHVtL1dvY2hlbnRhZy9FdmVudHMvRmVyaWVu LVplaWxlbgogICBzaW5kIGxpbmtzIG51ciBQbGF0emhhbHRlciAoSW5oYWx0ZSB3ZXJkZW4gcmVj aHRzIHBybyBUYWcgZ2VyZW5kZXJ0KS4KICAgSGFsYmUgSG9laGUgZ2lidCBlaW5lbiBhdWZnZXJh dWVtdGVyZW4gRWluZHJ1Y2sg4oCUIGRpZSBEYXRlbi1aZWlsZW4KICAgYmxlaWJlbiByZWNodHMg YXVmIHZvbGxlciBIb2VoZSAoc29uc3QgdmVycnV0c2NodCBkYXMgR3JpZCkuICovCiNrb3BmLWxp bmtzIC5rb3BmLXplaWxlLmt6LWRhdHVtLAoja29wZi1saW5rcyAua29wZi16ZWlsZS5rei13b2No ZW50YWcsCiNrb3BmLWxpbmtzIC5rb3BmLXplaWxlLmt6LWV2ZW50cywKI2tvcGYtbGlua3MgLmtv cGYtemVpbGUua3otZmVyaWVuIHsKICAgIGhlaWdodDogdmFyKC0ta29wZi16ZWlsZW4taG9laGUp OwogICAgcGFkZGluZzogMCAwIDAgOHB4OyAgIC8qIGVpbmhlaXRsaWNoIGxpbmtzYsO8bmRpZyBt aXQgZGVuIFRMLVJvd3MgKi8KfQoja29wZi1saW5rcyAua29wZi16ZWlsZS50bC1yb3cgeyBwYWRk aW5nOiAwIDAgMCA4cHg7IH0gICAvKiBnbGVpY2hlciBBYnN0YW5kIHdpZSBrei1aZWlsZW4gKi8K Ci8qIFIzOiBFdmVudHMtWmVpbGUgcmVjaHRzIGlzdCBUZWlsIGRlcyBkdW5rbGVuIEhlYWRlci1C bG9ja3MKICAg4oCUIGtlaW4gZWlnZW5lciBib3JkZXItcmlnaHQsIHNvbmRlcm4gZGVyIGRlemVu dGUgU3RhbmRhcmQtVHJlbm5lcgogICB3aWUgYmVpIERhdHVtL1dvY2hlbnRhZy9GZXJpZW4gKGtl aW4gaGVsbGVyICJ3ZWlzc2VyIiBTdHJpY2ggYW4KICAgZGVuIFRlcm1pbi1aZWxsZW4sIHNvbmRl cm4gZWluaGVpdGxpY2hlciBkdW5rbGVyIEJsb2NrKS4gKi8KI2RhdHVtLXplaWxlLWV2ZW50cy5r b3BmLWRhdGVuLXplaWxlIC5rZC16ZWxsZSB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGdhcDogMnB4OyBtaW4taGVp Z2h0OiAyNHB4OyBwYWRkaW5nOiAwOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7 CiAgICBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIGJvcmRlci1ib3R0b206IG5v bmU7CiAgICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMCk7Cn0KLyog RGF0dW0vV29jaGVudGFnL0Zlcmllbi1aZWxsZW4gcmVjaHRzOiBnbGVpY2hlIGRlemVudGUgVHJl bm5mYXJiZQogICBkYW1pdCBkZXIgSGVhZGVyLUJsb2NrIGR1cmNoZ2FlbmdpZyBhdXNzaWVodC4g Ki8KI2RhdHVtLXplaWxlLXRhZyAua2QtemVsbGUsCiNkYXR1bS16ZWlsZS13b2NoZW50YWcgLmtk LXplbGxlLAojZGF0dW0temVpbGUtZmVyaWVuIC5rZC16ZWxsZSB7CiAgICBib3JkZXItcmlnaHQt Y29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xMCk7Cn0KLyogRGF0dW0vV29jaGVudGFnL0Zlcmll bi1aZWxsZW4gcmVjaHRzIHNvbGxlbiBkaWUgQmxvY2stWm9uZSBmb3J0c2V0emVuCiAgIChEYXR1 bS0vV29jaGVudGFnLUhpbnRlcmdydW5kIGJsZWlidCBlaCBkdW5rZWwsIGhpZXIgbnVyIGtvbnNp c3RlbnRlCiAgIEJvcmRlci1CZWhhbmRsdW5nKTogendpc2NoZW4gZGVuIDQgb2JlcmVuIFplaWxl biBrZWluZSBoYXJ0ZSBMaW5pZS4gKi8KI2RhdHVtLXplaWxlLXRhZy5rb3BmLWRhdGVuLXplaWxl IC5rZC16ZWxsZSwKI2RhdHVtLXplaWxlLXdvY2hlbnRhZy5rb3BmLWRhdGVuLXplaWxlIC5rZC16 ZWxsZSwKI2RhdHVtLXplaWxlLWZlcmllbi5rb3BmLWRhdGVuLXplaWxlIC5rZC16ZWxsZSB7CiAg ICBib3JkZXItYm90dG9tOiBub25lOwp9CgovKiBJbmxpbmUtU1ZHLUljb25zIChMdWNpZGUtU3R5 bGUsIG1vbm9jaHJvbSB2aWEgY3VycmVudENvbG9yKSAqLwouaWNvbi1zdmcgewogICAgZGlzcGxh eTogaW5saW5lLWJsb2NrOwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICAgIGZsZXgtc2hy aW5rOiAwOwp9Ci5pY29uLWZhbGxiYWNrIHsKICAgIGZvbnQtZmFtaWx5OiAiQXBwbGUgQ29sb3Ig RW1vamkiLCJTZWdvZSBVSSBFbW9qaSIsIk5vdG8gQ29sb3IgRW1vamkiLGluaGVyaXQ7CiAgICBm b250LXNpemU6IGluaGVyaXQ7Cn0KLmVtb2ppLXBpY2tlci1vcHQuaWNvbi1vcHQgewogICAgd2lk dGg6IDMycHg7IGhlaWdodDogMzJweDsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1p dGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGNvbG9yOiB2YXIoLS10 ZXh0LXByaW1hcnkpOwp9Ci5lbW9qaS1waWNrZXItb3B0Lmljb24tb3B0OmhvdmVyIHsgY29sb3I6 IHZhcigtLWZhcmJlLWFremVudCwgIzE1NjVDMCk7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVy KTsgfQouZW1vamktYnRuIC5pY29uLXN2ZyB7IGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOyB9 Ci5lbW9qaS1idG4tbGVlci10ZXh0IHsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXNp emU6IDE0cHg7IH0KCi8qIFNvbmRlcnRlcm1pbi0gKyBHZWJ1cnRzdGFnLUljb25zIGluIGRlciBF dmVudHMtWmVpbGUgKi8KLmtkLWV2ZW50LWljb24gewogICAgbGluZS1oZWlnaHQ6IDE7CiAgICBk aXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5 LWNvbnRlbnQ6IGNlbnRlcjsKICAgIHVzZXItc2VsZWN0OiBub25lOwogICAgbWFyZ2luOiAwIDJw eDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgd2lkdGg6IDIycHg7IGhl aWdodDogMjJweDsKfQoua2QtZXZlbnQtaWNvbiAuaWNvbi1zdmcgeyB3aWR0aDogMThweDsgaGVp Z2h0OiAxOHB4OyB9Ci8qIEJlaSBMb2dvLUluaGFsdCAoQlZCL1Nwb3J0LVZlcmVpbnNsb2dvcykg d8OkY2hzdCBkZXIgQ29udGFpbmVyIG5hY2ggQmVkYXJmLAogICBkYW1pdCB6d2VpIExvZ29zICsg U2VwYXJhdG9yIG5lYmVuZWluYW5kZXIgcGFzc2VuLgogICBXaWNodGlnOiBgZGlzcGxheTogaW5s aW5lLWZsZXhgIHdpcmQgZXhwbGl6aXQgZXJ6d3VuZ2VuLCB3ZWlsIGVpbmUgc3DDpHRlcmUKICAg YC5rZC1ldmVudC1pY29uYC1SZWdlbCBhdWYgYGRpc3BsYXk6IGlubGluZS1ncmlkYCBvaG5lIGBn cmlkLXRlbXBsYXRlLWNvbHVtbnNgCiAgIHVtc3RlbGx0IHVuZCBkYW1pdCBiZWlkZSBMb2dvcyB2 ZXJ0aWthbCDDvGJlcmVpbmFuZGVyIHN0YXBlbHQuICovCi5rZC1ldmVudC1pY29uLmtkLWV2ZW50 LWxvZ29zIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7CiAgICB3aWR0aDog YXV0byAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICBtaW4td2lk dGg6IDIycHg7CiAgICBnYXA6IDFweDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmtkLWV2 ZW50LXNvbmRlciB7IGN1cnNvcjogcG9pbnRlcjsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4xMnM7 IH0KLmtkLWV2ZW50LXNvbmRlcjpob3ZlciB7IHRyYW5zZm9ybTogc2NhbGUoMS4yNSk7IH0KLmtk LWV2ZW50LXdhcm51bmcgeyBhbmltYXRpb246IHB1bHNJY29uT3JhbmdlIDJzIGVhc2UtaW4tb3V0 IGluZmluaXRlOyBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAycHggcmdiYSgyMzAsMTI2LDM0LDAu NSkpOyB9CkBrZXlmcmFtZXMgcHVsc0ljb25PcmFuZ2UgeyAwJSwxMDAlIHsgdHJhbnNmb3JtOiBz Y2FsZSgxKTsgfSA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMTIpOyB9IH0KLmtkLWV2ZW50LWdl YnVydHN0YWcgeyBjdXJzb3I6IGhlbHA7IH0KLmtkLWV2ZW50cy1rbGlja2JhciB7IGN1cnNvcjog cG9pbnRlcjsgfQoKLmt6LXN0YWVya2UgewogICAgYmFja2dyb3VuZDogIzM0NDk1RTsKICAgIGNv bG9yOiAjRUNGMEYxOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGZvbnQtc2l6ZTogMTBweDsK fQoKLmt6LXNjaGljaHRmb2xnZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7 CiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwogICAgZm9udC1zaXplOiAxMHB4Owp9 CgovKiBGTEQ6IFJvdGF0aW9ucy1FZGl0b3ItVGFiZWxsZSAqLwoucm90YXRpb24tdGFiZWxsZSBp bnB1dCwgLnJvdGF0aW9uLXRhYmVsbGUgc2VsZWN0IHsKICAgIHBhZGRpbmc6IDJweCA0cHg7CiAg ICBmb250LXNpemU6IDExcHg7Cn0KLnJvdGF0aW9uLXRhYmVsbGUgdHIud29jaGVuLXRyZW5uZXIg dGQgewogICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWJnLXByaW1hcnkpOwp9Ci5yb3Rh dGlvbi10YWJlbGxlIC53b2NoZW4tYmFkZ2UgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeS1kYXJrKTsKICAgIGNvbG9yOiB2YXIoLS10 ZXh0LW9uLXByaW1hcnkpOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBmb250LXdlaWdodDogNzAw OwogICAgcGFkZGluZzogMXB4IDRweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIG1hcmdp bi1yaWdodDogMnB4Owp9Ci5yb3RhdGlvbi10YWJlbGxlIC5yb3QtbWFya2VyLWxhYmVsIHsKICAg IGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDog MXB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udC1zaXplOiAxMHB4OwogICAgdXNlci1z ZWxlY3Q6IG5vbmU7Cn0KLnJvdGF0aW9uLXRhYmVsbGUgLnJvdC1tYXJrZXItbGFiZWwgaW5wdXQg ewogICAgd2lkdGg6IDEycHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgICBtYXJnaW46IDA7CiAgICBj dXJzb3I6IHBvaW50ZXI7Cn0KCi8qIEZMRDogRFNNLVplaWxlIOKAlCBUb2dnbGUgb2IgVGFnIGlu IGV4dGVybmVtIERTTSBnZXBmbGVndCB3dXJkZS4KICAgU2l0enQgaW0gZWluaGVpdGxpY2hlbiBk dW5rbGVuIEhlYWRlci1CbG9jayAoa2VpbiBFaWdlbnRvbikuICovCi5rei1kc20gewogICAgYmFj a2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmlt YXJ5KTsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGJvcmRlci1ib3R0b206IG5vbmU7Cn0KLyog RFNNLVplbGxlOiByb3QgbWl0IHdlacOfZW0gw5cgKERlZmF1bHQpIOKGkiBncsO8biBtaXQgd2Vp w59lbSDinJMgKGdlcGZsZWd0KS4KICAgRWlnZW5lIEZhcmItTG9naWssIE5JQ0hUIFRlaWwgZGVz IENELWJsYXVlbiBIZWFkZXItQmxvY2tzLiAqLwovKiBEU00tWmVsbGU6IHJvdCBtaXQgd2Vpw59l bSDDlyAoRGVmYXVsdCkg4oaSIGR1bmtlbGdyw7xuIG1pdCB3ZWnDn2VtIOKckyAoZ2VwZmxlZ3Qp LgogICBXZXJ0ZSBhdXMgYWRtaW4uanNvbi5oZWFkZXJLb25maWcuZHNtIHZpYSA6cm9vdC1DdXN0 b20tUHJvcHMgKEF1ZGl0LUl0ZXItRCwgMjAyNi0wNS0wNSkuCiAgIEhhcmRjb2RlcyBzaW5kIEZh bGxiYWNrLiAqLwoua2QtemVsbGUudGQtZHNtLXplbGxlIHsKICAgIGJhY2tncm91bmQ6IHZhcigt LWRzbS1uZ2VtLWJnLCAjOEIxQTFBKSAhaW1wb3J0YW50OwogICAgY29sb3I6IHZhcigtLWRzbS1u Z2VtLWZnLCAjRkZGRkZGKSAhaW1wb3J0YW50OwogICAgZm9udC1zaXplOiB2YXIoLS1kc20tbmdl bS1zaXplLCAxNHB4KTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1kc20tbmdlbS13ZWlnaHQsIDcw MCk7CiAgICBmb250LXN0eWxlOiB2YXIoLS1kc20tbmdlbS1zdHlsZSwgbm9ybWFsKTsKICAgIGJv cmRlci10b3A6IHZhcigtLWRzbS1uZ2VtLWJ0LCBub25lKTsKICAgIGJvcmRlci1sZWZ0OiB2YXIo LS1kc20tbmdlbS1ibCwgbm9uZSk7CiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWRzbS1uZ2VtLWJy LCAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKSk7CiAgICBqdXN0aWZ5LWNvbnRl bnQ6IGNlbnRlcjsKICAgIGJvcmRlci1ib3R0b206IG5vbmU7CiAgICBjdXJzb3I6IHBvaW50ZXI7 CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzOwogICAgLXdlYmtpdC11c2VyLXNlbGVj dDogbm9uZTsKICAgIHVzZXItc2VsZWN0OiBub25lOwp9Ci5rZC16ZWxsZS50ZC1kc20temVsbGUg LnRkLWRzbS1zeW0gewogICAgbGluZS1oZWlnaHQ6IDE7CiAgICBwb2ludGVyLWV2ZW50czogbm9u ZTsKfQoua2QtemVsbGUudGQtZHNtLXplbGxlOmhvdmVyIHsgZmlsdGVyOiBicmlnaHRuZXNzKDEu MTUpOyB9Ci5rZC16ZWxsZS50ZC1kc20temVsbGUudGQtZHNtLWFrdGl2IHsKICAgIGJhY2tncm91 bmQ6IHZhcigtLWRzbS1nZW0tYmcsICMxQjVFMjApICFpbXBvcnRhbnQ7CiAgICBjb2xvcjogdmFy KC0tZHNtLWdlbS1mZywgI0ZGRkZGRikgIWltcG9ydGFudDsKICAgIGZvbnQtc2l6ZTogdmFyKC0t ZHNtLWdlbS1zaXplLCAxNHB4KTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1kc20tZ2VtLXdlaWdo dCwgNzAwKTsKICAgIGZvbnQtc3R5bGU6IHZhcigtLWRzbS1nZW0tc3R5bGUsIG5vcm1hbCk7CiAg ICBib3JkZXItdG9wOiB2YXIoLS1kc20tZ2VtLWJ0LCBub25lKTsKICAgIGJvcmRlci1sZWZ0OiB2 YXIoLS1kc20tZ2VtLWJsLCBub25lKTsKICAgIGJvcmRlci1yaWdodDogdmFyKC0tZHNtLWdlbS1i ciwgMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCkpOwp9Ci5rZC16ZWxsZS50ZC1k c20temVsbGUudGQtZHNtLWFrdGl2OmhvdmVyIHsgZmlsdGVyOiBicmlnaHRuZXNzKDEuMTUpOyB9 CgovKiBGTEQ6IFRhZ2VzZGF0ZW4tSGVhZGVyLVplaWxlbiAoVm9yZ2FiZSAvIFNvbGwgLyBGLUwg LyBTLUwgLyBVbnQtRiAvIFVudC1OKS4KICAgS2VpbmUgaGFydGVuIFRyZW5ubGluaWVuIG1laHIg 4oCUIGFsbGUgWmVpbGVuIHdpcmtlbiBhbHMgZWluIGR1bmtsZXIgQmxvY2suICovCi5rei10YWdl c2RhdGVuIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOwogICAgY29sb3I6IHZh cigtLXRleHQtb24tcHJpbWFyeSk7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBib3JkZXItYm90 dG9tOiBub25lOwp9Ci5rZC16ZWxsZS50ZC16ZWxsZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1i Zy1wcmltYXJ5KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgZm9udC1z aXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWdu LWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm9yZGVyLXJpZ2h0 OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTsKICAgIGJvcmRlci1ib3R0b206 IG5vbmU7CiAgICBnYXA6IDNweDsKICAgIGxldHRlci1zcGFjaW5nOiAwLjJweDsKfQovKiBWb3Jn YWJlLVNjaGljaHQtWmVsbGVuOiBQb2xpemVpLVN0YW5kYXJkIEY9R2VsYiwgUz1HcnVlbiwgTj1C bGF1LgogICBEZXplbnRlciBJbnNldC1Cb3JkZXIgZ2lidCBQaWxsZW4tTG9vayBzdGF0dCBCbG9j ay1PcHRpay4gKi8KLmtkLXplbGxlLnRkLXZvcmctZiB7CiAgICBiYWNrZ3JvdW5kOiAjQzlBOTRB OyBjb2xvcjogIzJFMUYwMDsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDAs MCwwLDAuMTIpOwp9Ci5rZC16ZWxsZS50ZC12b3JnLXMgewogICAgYmFja2dyb3VuZDogIzRBOEI1 RTsgY29sb3I6ICNGRkZGRkY7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgw LDAsMCwwLjE4KTsKfQoua2QtemVsbGUudGQtdm9yZy1uIHsKICAgIGJhY2tncm91bmQ6ICMzRTVF OEI7IGNvbG9yOiAjRkZGRkZGOwogICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEo MCwwLDAsMC4xOCk7Cn0KLmtkLXplbGxlLnRkLXNvbGwgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1w cmltYXJ5KTsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtb24tcHJpbWFyeSk7 IH0KCi8qIEYtTCAvIFMtTCAvIFVudC1GIC8gVW50LU46IENvdW50ZXIgd2VyZGVuIE5JQ0hUIGVp bmdlZmFlcmJ0IOKAlCBudXIgZGllCiAgIFN0YWVya2UtU29sbC1aZWxsZSBiZWtvbW10IHJvdC9n cnVlbiAoc2llaGUgLnRkLXNvbGwudGQtZXJmdWVsbHQtdGludCB1bmQKICAgLnRkLXNvbGwudGQt dW50ZXJiZXNldHp0IHVudGVuKS4gV2ljaHRpZzogZXhwbGl6aXQgZHVua2xlciBIZWFkZXItQmcs CiAgIHNvbnN0IHNjaGVpbnQgZGVyIGhlbGxlcmUgWmVpbGVuLVRpbnQgKHJnYmEgNSUpIGFscyBm YXN0LXdlaXNzIGR1cmNoLiAqLwoua2QtemVsbGUudGQtdW50ZXJiZXNldHp0LAoua2QtemVsbGUu dGQtZXJmdWVsbHQgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7CiAgICBjb2xv cjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCi8qIERl emVudGVyIFRhYmVsbGVucmFobWVuIGluIGRlbiBMYWdlLVplaWxlbiAoRi1MLCBTLUwsIFVudC1G LCBVbnQtTikg4oCUCiAgIGxlaWNodGUgVHJlbm5saW5pZW4gendpc2NoZW4gWmVsbGVuICsgWmVp bGVuLCBkYW1pdCBkaWUgQ291bnRlci1TcGFsdGVuCiAgIHZpc3VlbGwgc2VwYXJpZXJ0IHNpbmQu ICovCiN0ZC1mcnVlaC1sLXplaWxlIC5rZC16ZWxsZS50ZC16ZWxsZSwKI3RkLXNwYWV0LWwtemVp bGUgLmtkLXplbGxlLnRkLXplbGxlLAojdGQtdW50c3R1ZXR6LWYtemVpbGUgLmtkLXplbGxlLnRk LXplbGxlLAojdGQtdW50c3R1ZXR6LW4temVpbGUgLmtkLXplbGxlLnRkLXplbGxlIHsKICAgIGJv cmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7CiAgICBib3Jk ZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEwKTsKfQovKiBLb3Jy ZXNwb25kaWVyZW5kZXIgUmFobWVuIGFtIGxpbmtlbiBMYWJlbC1Db250YWluZXIgZnVlciBkaWUg Z2xlaWNoZW4gWmVpbGVuICovCiNrb3BmLXRhZ2VzZGF0ZW4tbGlua3MgLmtvcGYtemVpbGUudGwt cm93LWZydWVoLWwsCiNrb3BmLXRhZ2VzZGF0ZW4tbGlua3MgLmtvcGYtemVpbGUudGwtcm93LXNw YWV0LWwsCiNrb3BmLXRhZ2VzZGF0ZW4tbGlua3MgLmtvcGYtemVpbGUudGwtcm93LXVudHN0dWV0 ei1mLAoja29wZi10YWdlc2RhdGVuLWxpbmtzIC5rb3BmLXplaWxlLnRsLXJvdy11bnRzdHVldHot biB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEw KTsKfQoudGQtc29sbC1kaXZpZGVyIHsKICAgIG9wYWNpdHk6IDAuNTA7CiAgICBmb250LXdlaWdo dDogNjAwOwogICAgcGFkZGluZzogMCAzcHg7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1 LCAwLjU1KTsKICAgIGZvbnQtc2l6ZTogMTBweDsKfQoudGQtc29sbC16aWVsIHsgb3BhY2l0eTog MC44NTsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKLnRkLW1hcmtlciB7CiAgICBkaXNwbGF5OiBpbmxp bmUtYmxvY2s7CiAgICBwYWRkaW5nOiAwIDNweDsKICAgIGJvcmRlci1yYWRpdXM6IDJweDsKICAg IG1hcmdpbi1sZWZ0OiAycHg7CiAgICBsaW5lLWhlaWdodDogMS4xOwp9Ci8qIE1vZGk6IElubGlu ZS1NYXJrZXIgaW0gcmVjaHRlbiBUZWlsIGRlciBIZWFkZXItWmVsbGUuCiAgIEtFSU4gcG9zaXRp b246YWJzb2x1dGUgbWVociDigJQgZGFzIGhhdHRlIGRlbiBDb3VudGVyIHVlYmVyZGVja3QuICov Ci50ZC1tYXJrZXItcGlsbCB7IHBhZGRpbmc6IDAgNHB4OyBib3JkZXItcmFkaXVzOiAzcHg7IH0K LnRkLW1hcmtlci12b2xsIHsKICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICBib3JkZXItcmFkaXVz OiA0cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsMCwwLC4xNSk7CiAgICBtYXJnaW4t bGVmdDogNHB4Owp9Ci50ZC1tYXJrZXItbnVyLWJ1Y2hzdGFiZSB7CiAgICBiYWNrZ3JvdW5kOiB0 cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgICBw YWRkaW5nOiAwIDFweDsKICAgIGJvcmRlci1yYWRpdXM6IDA7Cn0KLnRkLW1hcmtlci12ZXJzdGVj a3QgeyBkaXNwbGF5OiBub25lOyB9Cgoua3otc2YtZXJzdGUgewogICAgYm9yZGVyLXRvcDogMXB4 IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOwp9Cgoua2wtbGFiZWwgewogICAgZGlzcGxheTog aW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDcwcHg7CiAgICBtaW4td2lkdGg6IDcwcHg7CiAgICBm b250LXdlaWdodDogNjAwOwogICAgY29sb3I6IGluaGVyaXQ7CiAgICBvcGFjaXR5OiAwLjg7Cn0K Ci5rbC13ZXJ0IHsKICAgIGZsZXg6IDE7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1v dmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CgovKiBOYW1lbmxp c3RlICovCiNuYW1lbi1saXN0ZSB7CiAgICBmbGV4OiAxOwogICAgb3ZlcmZsb3cteTogYXV0bzsK ICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKfQoKLm5hbWVuLXplaWxlIHsKICAgIGRpc3BsYXk6IGZs ZXg7CiAgICBoZWlnaHQ6IHZhcigtLXplbGxlLWhvZWhlKTsKICAgIGJvcmRlci1ib3R0b206IDFw eCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAg IGZvbnQtc2l6ZTogMTFweDsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xczsKICAgIHBh ZGRpbmc6IDAgNHB4Owp9Ci5uYW1lbi16ZWlsZTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJn LWhvdmVyKTsgfQoKLm56LW5hbWUgewogICAgd2lkdGg6IDExMHB4OwogICAgbWluLXdpZHRoOiAx MTBweDsKICAgIHBhZGRpbmc6IDAgNHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIG92ZXJm bG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKICAgIHdoaXRlLXNwYWNl OiBub3dyYXA7Cn0KLm56LW9lIHsKICAgIHdpZHRoOiAyOHB4OwogICAgbWluLXdpZHRoOiAyOHB4 OwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiA5cHg7CiAgICBjb2xvcjog dmFyKC0tdGV4dC1zZWNvbmRhcnkpOwp9Ci5uei1ncnVwcGUgewogICAgd2lkdGg6IDE2cHg7CiAg ICBtaW4td2lkdGg6IDE2cHg7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBmb250LXNpemU6 IDlweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7Cn0KLm56LWRuciB7CiAgICBmbGV4OiAxOwogICAg Zm9udC1zaXplOiA5cHg7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBwYWRkaW5n OiAwIDRweDsKICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNp czsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi8qIEdydXBwZW4tQmFkZ2UgKEFkbWluLVRh YmVsbGUpICovCi5ncnVwcGVuLWJhZGdlIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgcGFk ZGluZzogMXB4IDhweDsgYm9yZGVyLXJhZGl1czogM3B4OyBmb250LXNpemU6IDEwcHg7IGZvbnQt d2VpZ2h0OiA2MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7Cn0KCgovKiA9PT09PSBTY3Jv bGxiYXJlciByZWNodGVyIEJlcmVpY2ggPT09PT0gKi8KI2dyaWQtc2Nyb2xsLWNvbnRhaW5lciB7 CiAgICBmbGV4OiAxOwogICAgb3ZlcmZsb3c6IGF1dG87CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7 Cn0KCi8qIEtvcGZiZXJlaWNoIHJlY2h0cyAoc3RpY2t5KSAqLwoja29wZi1yZWNodHMgewogICAg cG9zaXRpb246IHN0aWNreTsKICAgIHRvcDogMDsKICAgIHotaW5kZXg6IDU7CiAgICBib3JkZXIt Ym90dG9tOiAycHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBiYWNrZ3JvdW5kOiB2 YXIoLS1iZy1jYXJkKTsKfQoKLmtvcGYtZGF0ZW4temVpbGUgewogICAgZGlzcGxheTogZmxleDsK ICAgIGhlaWdodDogdmFyKC0ta29wZi16ZWlsZW4taG9laGUpOwp9CgovKiBEYXR1bS1aZWxsZW4g aW0gS29wZiAqLwoua2QtemVsbGUgewogICAgd2lkdGg6IHZhcigtLXplbGxlLWJyZWl0ZSk7CiAg ICBtaW4td2lkdGg6IHZhcigtLXplbGxlLWJyZWl0ZSk7CiAgICBkaXNwbGF5OiBmbGV4OwogICAg YWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm9y ZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGZvbnQtc2l6ZTog MTBweDsKfQoKLyogWmVpbGUgMTogRGF0dW0gKi8KI2RhdHVtLXplaWxlLXRhZyAua2QtemVsbGUg ewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeSk7CiAgICBjb2xvcjogdmFyKC0tdGV4 dC1vbi1wcmltYXJ5KTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXNpemU6IDEwcHg7 CiAgICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xKTsKfQoKLyogWmVp bGUgMjogV29jaGVudGFnICovCiNkYXR1bS16ZWlsZS13b2NoZW50YWcgLmtkLXplbGxlIHsKICAg IGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnktZGFyayk7CiAgICBjb2xvcjogdmFyKC0tdGV4 dC1vbi1wcmltYXJ5KTsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgYm9yZGVyLXJpZ2h0LWNvbG9y OiByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7Cn0KCi8qIFplaWxlIDM6IEZlcmllbi9GVC1NYXJraWVy dW5nICovCiNkYXR1bS16ZWlsZS1mZXJpZW4gLmtkLXplbGxlIHsKICAgIGJhY2tncm91bmQ6IHZh cigtLWJnLXByaW1hcnkpOwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41KTsKICAgIGZv bnQtc2l6ZTogOHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGJvcmRlci1yaWdodC1jb2xv cjogcmdiYSgyNTUsMjU1LDI1NSwwLjEpOwp9Ci8qIEZlcmllbi1TdWItWmVpbGU6IFRleHQtSW5k aWthdG9yZW4gKEZUIC8gTlMpLgogICBDdXN0b20tUHJvcGVydGllcyAoLS1rZC1mZXJpZW4tZmcs IC0ta2QtZmVpZXJ0YWctZmcpIGxhc3NlbiBPdmVycmlkZSBhdXMKICAgaGVhZGVyS29uZmlnLnRh Z01hcmtlciB6dSDigJQgSGFyZGNvZGVzIHNpbmQgRmFsbGJhY2suICovCiNkYXR1bS16ZWlsZS1m ZXJpZW4gLmtkLWZlaWVydGFnIHsKICAgIGNvbG9yOiB2YXIoLS1rZC1mZWllcnRhZy1mZywgI2Zm OGE4MCk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1rZC1mZWllcnRhZy1iZywgdHJhbnNwYXJlbnQp OwogICAgZm9udC1zaXplOiB2YXIoLS1rZC1mZWllcnRhZy1zaXplLCBpbmhlcml0KTsKICAgIGZv bnQtd2VpZ2h0OiB2YXIoLS1rZC1mZWllcnRhZy13ZWlnaHQsIGluaGVyaXQpOwogICAgZm9udC1z dHlsZTogdmFyKC0ta2QtZmVpZXJ0YWctc3R5bGUsIG5vcm1hbCk7Cn0KI2RhdHVtLXplaWxlLWZl cmllbiAua2QtZmVyaWVuIHsKICAgIGNvbG9yOiB2YXIoLS1rZC1mZXJpZW4tZmcsICNhNWQ2YTcp OwogICAgYmFja2dyb3VuZDogdmFyKC0ta2QtZmVyaWVuLWJnLCB0cmFuc3BhcmVudCk7CiAgICBm b250LXNpemU6IHZhcigtLWtkLWZlcmllbi1zaXplLCBpbmhlcml0KTsKICAgIGZvbnQtd2VpZ2h0 OiB2YXIoLS1rZC1mZXJpZW4td2VpZ2h0LCBpbmhlcml0KTsKICAgIGZvbnQtc3R5bGU6IHZhcigt LWtkLWZlcmllbi1zdHlsZSwgbm9ybWFsKTsKfQoKLyogWmVpbGUgNDogU3TDpHJrZSAqLwojc3Rh ZXJrZS16ZWlsZSAua2QtemVsbGUgewogICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWln aHQ6IDcwMDsKICAgIGNvbG9yOiAjZmZmOwogICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiByZ2JhKDI1 NSwyNTUsMjU1LDAuMTUpOwp9Ci5zdGFlcmtlLW9rIHsgYmFja2dyb3VuZDogIzI3ODk2RDsgfQou c3RhZXJrZS13YXJudW5nIHsgYmFja2dyb3VuZDogI0IwM0EyRTsgYW5pbWF0aW9uOiBwdWxzUm90 IDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9CkBrZXlmcmFtZXMgcHVsc1JvdCB7IDAlLDEwMCUg eyBvcGFjaXR5OjE7IH0gNTAlIHsgb3BhY2l0eTowLjc7IH0gfQoKLyogU2NoaWNodGZvbGdlLVpl aWxlbiAqLwojc2NoaWNodGZvbGdlLXJlY2h0cyAua29wZi1kYXRlbi16ZWlsZSAua2QtemVsbGUg ewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgY29sb3I6IHZhcigtLXRl eHQtc2Vjb25kYXJ5KTsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsK ICAgIGJvcmRlci1yaWdodC1jb2xvcjogdmFyKC0tYm9yZGVyLWxpZ2h0KTsKfQojc2NoaWNodGZv bGdlLXJlY2h0cyAua29wZi1kYXRlbi16ZWlsZTpmaXJzdC1jaGlsZCAua2QtemVsbGUgewogICAg Ym9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOwp9CgovKiBUYWdlc3R5 cGVuIGltIEtvcGYg4oCUIHN0YXJrZXIgS29udHJhc3QuCiAgIFdlcnRlIGF1cyBhZG1pbi5qc29u LmhlYWRlcktvbmZpZy50YWdNYXJrZXIgd2VyZGVuIHZpYSBoZWFkZXJLb25maWdTdGlsZXNBbndl bmRlbgogICAoanMvZ3JpZC9yZW5kZXIuanMpIGFscyBDU1MtQ3VzdG9tLVByb3BlcnRpZXMgYXVm IDpyb290IGdlc2V0enQuCiAgIEhhcmRjb2RlcyBoaWVyIHNpbmQgRmFsbGJhY2stRGVmYXVsdC4g KEF1ZGl0LUl0ZXItRCwgMjAyNi0wNS0wNSkgKi8KLmtkLXdvY2hlbmVuZGUgewogICAgYmFja2dy b3VuZDogdmFyKC0ta2Qtd29jaGVuZW5kZS1iZywgIzNENTg3NCkgIWltcG9ydGFudDsKICAgIGNv bG9yOiB2YXIoLS1rZC13b2NoZW5lbmRlLWZnLCAjREZFOEYwKSAhaW1wb3J0YW50OwogICAgZm9u dC1zaXplOiB2YXIoLS1rZC13b2NoZW5lbmRlLXNpemUsIGluaGVyaXQpOwogICAgZm9udC13ZWln aHQ6IHZhcigtLWtkLXdvY2hlbmVuZGUtd2VpZ2h0LCBpbmhlcml0KTsKICAgIGZvbnQtc3R5bGU6 IHZhcigtLWtkLXdvY2hlbmVuZGUtc3R5bGUsIG5vcm1hbCk7CiAgICBib3JkZXItdG9wOiB2YXIo LS1rZC13b2NoZW5lbmRlLWJ0LCBub25lKTsKICAgIGJvcmRlci1sZWZ0OiB2YXIoLS1rZC13b2No ZW5lbmRlLWJsLCBub25lKTsKICAgIGJvcmRlci1yaWdodDogdmFyKC0ta2Qtd29jaGVuZW5kZS1i ciwgbm9uZSk7Cn0KLmtkLWZlaWVydGFnLWJnIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWtkLWZl aWVydGFnLWJnLCAjOEIxQTFBKSAhaW1wb3J0YW50OwogICAgY29sb3I6IHZhcigtLWtkLWZlaWVy dGFnLWZnLCAjRjhEMEQwKSAhaW1wb3J0YW50OwogICAgZm9udC1zaXplOiB2YXIoLS1rZC1mZWll cnRhZy1zaXplLCBpbmhlcml0KTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1rZC1mZWllcnRhZy13 ZWlnaHQsIGluaGVyaXQpOwogICAgZm9udC1zdHlsZTogdmFyKC0ta2QtZmVpZXJ0YWctc3R5bGUs IG5vcm1hbCk7CiAgICBib3JkZXItdG9wOiB2YXIoLS1rZC1mZWllcnRhZy1idCwgbm9uZSk7CiAg ICBib3JkZXItbGVmdDogdmFyKC0ta2QtZmVpZXJ0YWctYmwsIG5vbmUpOwogICAgYm9yZGVyLXJp Z2h0OiB2YXIoLS1rZC1mZWllcnRhZy1iciwgbm9uZSk7Cn0KCi8qIEtsaWNrYmFyZSBGZWllcnRh Zy9GZXJpZW4tWmVsbGU6IEN1cnNvciArIGRlemVudGVyIEhvdmVyLUVmZmVrdCAqLwoua2QtemVs bGUua2QtdGVybWluLWtsaWNrYmFyIHsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBmaWx0 ZXIgMC4xMnM7IH0KLmtkLXplbGxlLmtkLXRlcm1pbi1rbGlja2Jhcjpob3ZlciB7IGZpbHRlcjog YnJpZ2h0bmVzcygxLjE4KTsgfQoua2QtZmVpZXJ0YWctd2ljaHRpZyB7CiAgICBiYWNrZ3JvdW5k OiB2YXIoLS1rZC1mZWllcnRhZy13aWNodGlnLWJnLCAjQzAwMDAwKSAhaW1wb3J0YW50OwogICAg Y29sb3I6IHZhcigtLWtkLWZlaWVydGFnLXdpY2h0aWctZmcsICNGRkZGRTApICFpbXBvcnRhbnQ7 CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggI0ZGRDcwMCAhaW1wb3J0YW50OwogICAg Zm9udC1zaXplOiB2YXIoLS1rZC1mZWllcnRhZy13aWNodGlnLXNpemUsIGluaGVyaXQpOwogICAg Zm9udC13ZWlnaHQ6IHZhcigtLWtkLWZlaWVydGFnLXdpY2h0aWctd2VpZ2h0LCA4MDApICFpbXBv cnRhbnQ7CiAgICBmb250LXN0eWxlOiB2YXIoLS1rZC1mZWllcnRhZy13aWNodGlnLXN0eWxlLCBu b3JtYWwpOwogICAgYm9yZGVyLXRvcDogdmFyKC0ta2QtZmVpZXJ0YWctd2ljaHRpZy1idCwgbm9u ZSk7CiAgICBib3JkZXItbGVmdDogdmFyKC0ta2QtZmVpZXJ0YWctd2ljaHRpZy1ibCwgbm9uZSk7 CiAgICBib3JkZXItcmlnaHQ6IHZhcigtLWtkLWZlaWVydGFnLXdpY2h0aWctYnIsIG5vbmUpOwp9 Ci5rZC1oZXV0ZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1rZC1oZXV0ZS1iZywgdmFyKC0tdGFn LWhldXRlKSkgIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS1rZC1oZXV0ZS1mZywgI2ZmZikg IWltcG9ydGFudDsKICAgIGZvbnQtc2l6ZTogdmFyKC0ta2QtaGV1dGUtc2l6ZSwgaW5oZXJpdCk7 CiAgICBmb250LXdlaWdodDogdmFyKC0ta2QtaGV1dGUtd2VpZ2h0LCBpbmhlcml0KTsKICAgIGZv bnQtc3R5bGU6IHZhcigtLWtkLWhldXRlLXN0eWxlLCBub3JtYWwpOwogICAgYm9yZGVyLXRvcDog dmFyKC0ta2QtaGV1dGUtYnQsIG5vbmUpOwogICAgYm9yZGVyLWxlZnQ6IHZhcigtLWtkLWhldXRl LWJsLCBub25lKTsKICAgIGJvcmRlci1yaWdodDogdmFyKC0ta2QtaGV1dGUtYnIsIG5vbmUpOwp9 CgovKiBCLjYgVmVyYmluZGxpY2hrZWl0cy1GYXJibGVpc3RlIGFtIHVudGVyZW4gUmFuZCBkZXIg RGF0dW1zLUhlYWRlci1aZWxsZS4KICAgUm90ID0gaW5uZXJoYWxiIGRlcyBWZXJiaW5kbGljaGtl aXRzZmVuc3RlcnMgKGbDvHIgcmVndWxhZXJlIFVzZXIgZ2VzcGVycnQpLgogICBHcsO8biA9IGF1 w59lcmhhbGIgKGZyZWkgcGxhbmJhcikuIEtsYXNzZSB3aXJkIGF1ZiBkaWUgRmVyaWVuLVplaWxl IGdlc2V0enQuICovCi5rZC16ZWxsZS5rZC12ZXJiaW5kbGljaC1nZXNwZXJydCwKLmtkLXplbGxl LmtkLXZlcmJpbmRsaWNoLW9mZmVuIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9Ci5rZC16ZWxsZS5r ZC12ZXJiaW5kbGljaC1nZXNwZXJydDo6YWZ0ZXIsCi5rZC16ZWxsZS5rZC12ZXJiaW5kbGljaC1v ZmZlbjo6YWZ0ZXIgewogICAgY29udGVudDogJyc7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAg ICBsZWZ0OiAzcHg7IHJpZ2h0OiAzcHg7IGJvdHRvbTogMDsKICAgIGhlaWdodDogM3B4OwogICAg Ym9yZGVyLXJhZGl1czogMnB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KLmtkLXplbGxl LmtkLXZlcmJpbmRsaWNoLWdlc3BlcnJ0OjphZnRlciB7IGJhY2tncm91bmQ6IHZhcigtLXZmLXJv dCwgICAjYzAzOTJiKTsgfQoua2QtemVsbGUua2QtdmVyYmluZGxpY2gtb2ZmZW46OmFmdGVyICAg IHsgYmFja2dyb3VuZDogdmFyKC0tdmYtZ3J1ZW4sICMyN2FlNjApOyB9CgpbZGF0YS10aGVtZT0i bmlnaHQiXSAua2Qtd29jaGVuZW5kZSB7IGJhY2tncm91bmQ6ICMxRjMwNDUgIWltcG9ydGFudDsg Y29sb3I6ICNBOEMwRDggIWltcG9ydGFudDsgfQoKLyogV29jaGVuLVRyZW5uZXI6IHZlcnRpa2Fs ZXIgU3RyaWNoIHp3aXNjaGVuIFdvY2hlbi1XZWNoc2VsIChTbyAtPiBNbykg4oCUIG1hcmtpZXJ0 IFdvY2hlbi1HcmVuemUgKi8KLmtvcGYtZGF0ZW4temVpbGUgLmtkLXplbGxlLmtkLXdvY2hlbmVu ZGU6bGFzdC1jaGlsZCwKLmtkLXplaWxlIC5rZC16ZWxsZS5rZC13b2NoZW5lbmRlOmxhc3QtY2hp bGQgewogICAgLyogbGV0enRlcyBXRS1UYWcgKFNvKSBkZXIgV29jaGUgYmVrb21tdCByZWNodGVu IFN0cmljaCBhbHMgV29jaGVuLVNjaG5pdHQgKi8KICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlk IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7Cn0KLmtvcGYtZGF0ZW4temVpbGUgLmtkLXplbGxl LmtkLXdvY2hlbmVuZGUgKyAua2QtemVsbGU6bm90KC5rZC13b2NoZW5lbmRlKSwKLmtkLXplaWxl IC5rZC16ZWxsZS5rZC13b2NoZW5lbmRlICsgLmtkLXplbGxlOm5vdCgua2Qtd29jaGVuZW5kZSkg ewogICAgLyogZXJzdGUgV2Vya3RhZy1aZWxsZSBuYWNoIFdFLUJsb2NrOiBsaW5rZXIgVHJlbm5z dHJpY2ggKFdvY2hlbi1BbmZhbmcpICovCiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigt LWJvcmRlci1jb2xvcik7Cn0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmtkLWZlaWVydGFnLWJnIHsg YmFja2dyb3VuZDogIzUwMTgxOCAhaW1wb3J0YW50OyBjb2xvcjogI0U4QTBBMCAhaW1wb3J0YW50 OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5rZC1mZWllcnRhZy13aWNodGlnIHsgYmFja2dyb3Vu ZDogIzgwMjAyMCAhaW1wb3J0YW50OyBjb2xvcjogI0ZGRThBMCAhaW1wb3J0YW50OyB9CgovKiBT b25kZXJ0YWdlIOKAlCBIaW53ZWlzIChibGF1KSAvIFdhcm51bmcgKG9yYW5nZSwgcHVsc2llcmVu ZCkgKi8KLmtkLXNvbmRlcnRhZy1oaW53ZWlzIHsgYm94LXNoYWRvdzogaW5zZXQgMCAtM3B4IDAg IzRhOTBlMjsgfQoua2Qtc29uZGVydGFnLXdhcm51bmcgeyBib3gtc2hhZG93OiBpbnNldCAwIC0z cHggMCAjZTY3ZTIyOyBhbmltYXRpb246IHB1bHNPcmFuZ2UgM3MgZWFzZS1pbi1vdXQgaW5maW5p dGU7IH0KQGtleWZyYW1lcyBwdWxzT3JhbmdlIHsgMCUsMTAwJSB7IGJveC1zaGFkb3c6IGluc2V0 IDAgLTNweCAwICNlNjdlMjI7IH0gNTAlIHsgYm94LXNoYWRvdzogaW5zZXQgMCAtM3B4IDAgI2Zm OWU0MiwgMCAwIDZweCByZ2JhKDIzMCwxMjYsMzQsMC40KTsgfSB9CgovKiBGZXJpZW4tL0ZlaWVy dGFnLS9Tb25kZXJtYXJrZXIgaW4gWmVpbGUgMyAqLwojZGF0dW0temVpbGUtZmVyaWVuIC5rZC1z b25kZXItbWFyay1oaW53ZWlzIHsgY29sb3I6ICM3ZWI4ZGE7IGZvbnQtd2VpZ2h0OiA3MDA7IH0K I2RhdHVtLXplaWxlLWZlcmllbiAua2Qtc29uZGVyLW1hcmstd2FybnVuZyB7IGNvbG9yOiAjZmZi ODY2OyBmb250LXdlaWdodDogNzAwOyBhbmltYXRpb246IHB1bHNSb3QgMnMgZWFzZS1pbi1vdXQg aW5maW5pdGU7IH0KCi8qIEJhZGdlcyBpbiBLb3BmemVpbGUgKERhdHVtKSDigJQgR2VidXJ0c3Rh ZywgSGlud2VpcywgV2FybnVuZyAqLwoua2QtemVsbGUgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH0K LmtkLWJhZGdlcyB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDFweDsKICAgIHJp Z2h0OiAxcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAxcHg7CiAgICBwb2ludGVyLWV2 ZW50czogYXV0bzsKfQoua2QtYmFkZ2UgewogICAgZm9udC1zaXplOiA4cHg7CiAgICBsaW5lLWhl aWdodDogMTsKICAgIGN1cnNvcjogaGVscDsKICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHgg MXB4IHJnYmEoMCwwLDAsMC41KSk7Cn0KLmtkLWJhZGdlLWdiIHsgZm9udC1zaXplOiA5cHg7IH0K LmtkLWJhZGdlLXdhcm51bmcgeyBjb2xvcjogI2ZmOWU0MjsgZm9udC13ZWlnaHQ6IDcwMDsgfQou a2QtYmFkZ2UtaGlud2VpcyB7IGNvbG9yOiAjN2ViOGRhOyBmb250LXdlaWdodDogNzAwOyB9Cgov KiBTY2hpY2h0Zm9sZ2UtRmFyYmVuIChkZXplbnRlIEVpbmbDpHJidW5nIGplIFJvdGF0aW9uKSAq Lwojc2NoaWNodGZvbGdlLXJlY2h0cyAuc2YtYWJjIHsgYmFja2dyb3VuZDogI0U4RjFFOCAhaW1w b3J0YW50OyBjb2xvcjogIzJkNWEzZCAhaW1wb3J0YW50OyB9CiNzY2hpY2h0Zm9sZ2UtcmVjaHRz IC5zZi1iY2EgeyBiYWNrZ3JvdW5kOiAjRThFREY1ICFpbXBvcnRhbnQ7IGNvbG9yOiAjMmQ0Mzcw ICFpbXBvcnRhbnQ7IH0KI3NjaGljaHRmb2xnZS1yZWNodHMgLnNmLWNhYiB7IGJhY2tncm91bmQ6 ICNGNUU4RTggIWltcG9ydGFudDsgY29sb3I6ICM2YjJkMmQgIWltcG9ydGFudDsgfQojc2NoaWNo dGZvbGdlLXJlY2h0cyAuc2YtcG9vbCB7IGJhY2tncm91bmQ6ICNFQ0VDRUMgIWltcG9ydGFudDsg Y29sb3I6ICM2NjYgIWltcG9ydGFudDsgZm9udC1zdHlsZTogaXRhbGljOyB9CltkYXRhLXRoZW1l PSJuaWdodCJdICNzY2hpY2h0Zm9sZ2UtcmVjaHRzIC5zZi1hYmMgeyBiYWNrZ3JvdW5kOiAjMWMz MDI0ICFpbXBvcnRhbnQ7IGNvbG9yOiAjOGZkMGEwICFpbXBvcnRhbnQ7IH0KW2RhdGEtdGhlbWU9 Im5pZ2h0Il0gI3NjaGljaHRmb2xnZS1yZWNodHMgLnNmLWJjYSB7IGJhY2tncm91bmQ6ICMxYzI0 MzYgIWltcG9ydGFudDsgY29sb3I6ICM4ZmIwZTAgIWltcG9ydGFudDsgfQpbZGF0YS10aGVtZT0i bmlnaHQiXSAjc2NoaWNodGZvbGdlLXJlY2h0cyAuc2YtY2FiIHsgYmFja2dyb3VuZDogIzMwMWMx YyAhaW1wb3J0YW50OyBjb2xvcjogI2UwYTBhMCAhaW1wb3J0YW50OyB9CltkYXRhLXRoZW1lPSJu aWdodCJdICNzY2hpY2h0Zm9sZ2UtcmVjaHRzIC5zZi1wb29sIHsgYmFja2dyb3VuZDogIzJhMmEy YSAhaW1wb3J0YW50OyBjb2xvcjogIzk5OSAhaW1wb3J0YW50OyB9CgovKiBSaHl0aG11cy1Wb3Jz Y2hhdSBpbSBBZG1pbi1UYWIgKi8KLnNmLXZvcnNjaGF1IHsKICAgIGRpc3BsYXk6IGlubGluZS1i bG9jazsKICAgIHBhZGRpbmc6IDJweCA1cHg7CiAgICBtYXJnaW46IDFweDsKICAgIGZvbnQtc2l6 ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAg ICBmb250LWZhbWlseTogbW9ub3NwYWNlOwp9Ci5zZi12b3JzY2hhdS5zZi1hYmMgeyBiYWNrZ3Jv dW5kOiAjRDhFOEQ4OyBjb2xvcjogIzJkNWEzZDsgfQouc2Ytdm9yc2NoYXUuc2YtYmNhIHsgYmFj a2dyb3VuZDogI0Q4RTBGMDsgY29sb3I6ICMyZDQzNzA7IH0KLnNmLXZvcnNjaGF1LnNmLWNhYiB7 IGJhY2tncm91bmQ6ICNGMEQ4RDg7IGNvbG9yOiAjNmIyZDJkOyB9Ci5zZi12b3JzY2hhdS5zZi12 b3JzY2hhdS1wb29sIHsgYmFja2dyb3VuZDogI0UwRTBFMDsgY29sb3I6ICM2NjY7IGZvbnQtc3R5 bGU6IGl0YWxpYzsgcGFkZGluZzogM3B4IDEwcHg7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLnNm LXZvcnNjaGF1LnNmLWFiYyB7IGJhY2tncm91bmQ6ICMxYzMwMjQ7IGNvbG9yOiAjOGZkMGEwOyB9 CltkYXRhLXRoZW1lPSJuaWdodCJdIC5zZi12b3JzY2hhdS5zZi1iY2EgeyBiYWNrZ3JvdW5kOiAj MWMyNDM2OyBjb2xvcjogIzhmYjBlMDsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuc2Ytdm9yc2No YXUuc2YtY2FiIHsgYmFja2dyb3VuZDogIzMwMWMxYzsgY29sb3I6ICNlMGEwYTA7IH0KW2RhdGEt dGhlbWU9Im5pZ2h0Il0gLnNmLXZvcnNjaGF1LnNmLXZvcnNjaGF1LXBvb2wgeyBiYWNrZ3JvdW5k OiAjMmEyYTJhOyBjb2xvcjogIzk5OTsgfQoKLyogPT09PT0gRGF0ZW5ncmlkID09PT09ICovCiNn cmlkLWRhdGVuIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfQoKLmdy aWQtemVpbGUgewogICAgZGlzcGxheTogZmxleDsKICAgIGhlaWdodDogdmFyKC0temVsbGUtaG9l aGUpOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Cn0K CgouZ3JpZC16ZWxsZSB7CiAgICB3aWR0aDogdmFyKC0temVsbGUtYnJlaXRlKTsKICAgIG1pbi13 aWR0aDogdmFyKC0temVsbGUtYnJlaXRlKTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1p dGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3JkZXItcmln aHQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgZm9udC1zaXplOiA5cHg7CiAg ICBmb250LXdlaWdodDogNjAwOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlvbjog b3BhY2l0eSAwLjFzOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dy YXA7Cn0KLmdyaWQtemVsbGU6aG92ZXIgeyBvcGFjaXR5OiAwLjg7IG91dGxpbmU6IDJweCBzb2xp ZCB2YXIoLS10ZXh0LWhlYWRpbmcpOyBvdXRsaW5lLW9mZnNldDogLTJweDsgei1pbmRleDogMTsg fQovKiBQaGFzZSBIMTogcG9zaXRpb246cmVsYXRpdmUgaXN0IFZvcmF1c3NldHp1bmcgZsO8ciBk aWUga29ycmVrdGUgUG9zaXRpb25pZXJ1bmcKICAgZGVzIEF1dG9GaWxsLUhhbmRsZXMgKHNvbnN0 IGxhbmRldCBlcyBhbSBuYWVjaHN0aG9laGVyZW4gcG9zaXRpb25pZXJ0ZW4gVm9yZmFocikuICov Ci5ncmlkLXplbGxlIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9Ci5ncmlkLXplbGxlLmdlc3BlcnJ0 IHsgY3Vyc29yOiBub3QtYWxsb3dlZDsgb3BhY2l0eTogMC42OyB9CgovKiBGTEQ6IFBmbGljaHQt U2V0enVuZyBnZWdlbiBXdW5zY2gg4oCUIGdlZGFlbXBmdGVzIEVjay1EcmVpZWNrIG9iZW4gcmVj aHRzICovCi5ncmlkLXplbGxlLXBmbGljaHQgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAg Ym94LXNoYWRvdzogaW5zZXQgLTJweCAycHggMCAwICNCMDhBM0Y7Cn0KLmdyaWQtemVsbGUtcGZs aWNodDo6YWZ0ZXIgewogICAgY29udGVudDogJyc7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAg ICB0b3A6IDA7CiAgICByaWdodDogMDsKICAgIHdpZHRoOiAwOwogICAgaGVpZ2h0OiAwOwogICAg Ym9yZGVyLXN0eWxlOiBzb2xpZDsKICAgIGJvcmRlci13aWR0aDogMCA3cHggN3B4IDA7CiAgICBi b3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICNCMDhBM0YgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7 CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAuZ3JpZC16 ZWxsZS1wZmxpY2h0IHsgYm94LXNoYWRvdzogaW5zZXQgLTJweCAycHggMCAwICNDOUEzNEY7IH0K W2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmdyaWQtemVsbGUtcGZsaWNodDo6YWZ0ZXIgeyBib3JkZXIt cmlnaHQtY29sb3I6ICNDOUEzNEY7IH0KCi8qIFBoYXNlIEE6IFBlc3NpbWlzdGljIENlbGwtTG9j ayDigJQgTGl2ZS1JbmRpY2F0b3IgKG9yYW5nZSBSYW5kIG1pdCBEb3BwZWwtQWt6ZW50KSAqLwou Z3JpZC16ZWxsZS1sb2NrZWQgewogICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZhcmJlLXdh cm51bmcpOwogICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICBjdXJzb3I6IG5vdC1hbGxvd2Vk OwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5ncmlkLXplbGxlLWxvY2tlZDo6YmVmb3JlIHsK ICAgIGNvbnRlbnQ6ICcnOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiAwOyBsZWZ0 OiAwOwogICAgd2lkdGg6IDZweDsgaGVpZ2h0OiA2cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1m YXJiZS13YXJudW5nKTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgei1pbmRleDogMjsK fQouZ3JpZC16ZWxsZS1sb2NrZWQ6aG92ZXIgewogICAgb3BhY2l0eTogMTsKICAgIG91dGxpbmU6 IDJweCBzb2xpZCB2YXIoLS1mYXJiZS13YXJudW5nKTsKfQoKLyogUGhhc2UgQzogU2VsZWt0aW9u ICsgQXV0b0ZpbGwtRG5EICovCi5ncmlkLXplbGxlLXNlbGVrdGllcnQgewogICAgb3V0bGluZTog M3B4IHNvbGlkICMxNTY1QzA7CiAgICBvdXRsaW5lLW9mZnNldDogLTNweDsKICAgIHotaW5kZXg6 IDE7Cn0KLmdyaWQtemVsbGUuZG5kLXppZWwgewogICAgb3V0bGluZTogMnB4IGRhc2hlZCAjMTU2 NUMwOwogICAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5l YXItZ3JhZGllbnQocmdiYSgyMSwxMDEsMTkyLDAuMTIpLCByZ2JhKDIxLDEwMSwxOTIsMC4xMikp Owp9Ci5hdXRvZmlsbC1oYW5kbGUgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm90dG9t OiAtMnB4OyByaWdodDogLTJweDsKICAgIHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7CiAgICBi YWNrZ3JvdW5kOiAjMTU2NUMwOwogICAgYm9yZGVyOiAxcHggc29saWQgI2ZmZjsKICAgIGJvcmRl ci1yYWRpdXM6IDFweDsKICAgIGN1cnNvcjogY3Jvc3NoYWlyOwogICAgei1pbmRleDogNTsKICAg IGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKDAsMCwwLC4yNSk7CiAgICB0cmFuc2l0aW9uOiB0 cmFuc2Zvcm0gLjA4cyBlYXNlOwp9Ci5hdXRvZmlsbC1oYW5kbGU6aG92ZXIgeyB0cmFuc2Zvcm06 IHNjYWxlKDEuNSk7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmdyaWQtemVsbGUtc2VsZWt0aWVy dCB7IG91dGxpbmUtY29sb3I6ICM1QjlCRDU7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmdyaWQt emVsbGUuZG5kLXppZWwgeyBvdXRsaW5lLWNvbG9yOiAjNUI5QkQ1OyB9CltkYXRhLXRoZW1lPSJu aWdodCJdIC5hdXRvZmlsbC1oYW5kbGUgeyBiYWNrZ3JvdW5kOiAjNUI5QkQ1OyB9CgovKiBNb2Rh bC1FbnR3dXJmLVJlc3RvcmUtQmFubmVyIChhdXMgVkkzIMO8YmVybm9tbWVuKSAqLwoubW9kYWwt ZW50d3VyZi1iYW5uZXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50 ZXI7CiAgICBnYXA6IDEwcHg7CiAgICBwYWRkaW5nOiAxMHB4IDE0cHg7CiAgICBtYXJnaW4tYm90 dG9tOiAxNnB4OwogICAgYmFja2dyb3VuZDogcmdiYSg3NCwxNDQsMjI2LDAuMTApOwogICAgYm9y ZGVyOiAxcHggc29saWQgdmFyKC0tZmFyYmUtaW5mbyk7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7 CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAg IGZsZXgtd3JhcDogd3JhcDsKfQoubWViLWljb24geyBmb250LXNpemU6IDE4cHg7IGxpbmUtaGVp Z2h0OiAxOyB9Ci5tZWItdGV4dCB7IGZsZXg6IDE7IG1pbi13aWR0aDogMjAwcHg7IH0KW2RhdGEt dGhlbWU9Im5pZ2h0Il0gLm1vZGFsLWVudHd1cmYtYmFubmVyIHsgYmFja2dyb3VuZDogcmdiYSg3 NCwxNDQsMjI2LDAuMTgpOyB9CgovKiBQaGFzZSBINDogQ3VzdG9tLUtvbnRleHRtZW7DvCAqLwoj a29udGV4dG1lbnUgewogICAgcG9zaXRpb246IGZpeGVkOwogICAgei1pbmRleDogMTAwMDsKICAg IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0t Ym9yZGVyLWxpZ2h0KTsKICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLDAsMCwuMik7 CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBwYWRkaW5nOiA0cHggMDsKICAgIG1pbi13aWR0 aDogMjIwcHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KI2tvbnRleHRtZW51IGJ1dHRvbiB7CiAg ICBkaXNwbGF5OiBibG9jazsgd2lkdGg6IDEwMCU7CiAgICB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRk aW5nOiA3cHggMTRweDsKICAgIGJvcmRlcjogbm9uZTsgYmFja2dyb3VuZDogbm9uZTsgY3Vyc29y OiBwb2ludGVyOwogICAgZm9udC1zaXplOiAxM3B4OyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5 KTsKfQoja29udGV4dG1lbnUgYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHsgYmFja2dyb3Vu ZDogcmdiYSgwLDAsMCwuMDYpOyB9CiNrb250ZXh0bWVudSBidXR0b246ZGlzYWJsZWQgeyBjb2xv cjogdmFyKC0tdGV4dC1tdXRlZCk7IGN1cnNvcjogZGVmYXVsdDsgb3BhY2l0eTogLjU1OyB9CiNr b250ZXh0bWVudSAua3R4LXRyZW5uZXIgewogICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigt LWJvcmRlci1saWdodCk7CiAgICBtYXJnaW46IDRweCAwOwp9CiNrb250ZXh0bWVudSAua3R4LXNo b3J0Y3V0IHsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIG1hcmdpbi1sZWZ0OiAx MnB4OwogICAgZm9udC1zaXplOiAxMXB4Owp9CltkYXRhLXRoZW1lPSJuaWdodCJdICNrb250ZXh0 bWVudSBidXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkgeyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwy NTUsMjU1LC4wOCk7IH0KCi8qIFBoYXNlIEc6IFRhbXBlci1TY2h1dHog4oCUIHJvdGVyIEJhbm5l ciBvYmVuIGluIEFkbWluL1N0YXRpc3RpayAqLwouaW50ZWdyaXRhZXQtYmFubmVyIHsKICAgIHBv c2l0aW9uOiBzdGlja3k7CiAgICB0b3A6IDA7CiAgICB6LWluZGV4OiAxMDA7CiAgICBiYWNrZ3Jv dW5kOiAjQjcxQzFDOwogICAgY29sb3I6ICNmZmY7CiAgICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAg ICBmb250LXdlaWdodDogNjAwOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgbWFyZ2luOiA4 cHg7CiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLDAsMCwwLjMpOwp9Ci5pbnRlZ3Jp dGFldC1iYW5uZXIgYnV0dG9uIHsKICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICBjb2xvcjogI0I3 MUMxQzsKICAgIGJvcmRlcjogbm9uZTsKICAgIHBhZGRpbmc6IDRweCAxMnB4OwogICAgbWFyZ2lu LWxlZnQ6IDEycHg7CiAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7 CiAgICBmb250LXdlaWdodDogNjAwOwp9CgovKiBTcGFsdGVudHlwZW4g4oCUIGRldXRsaWNoZSBV bnRlcnNjaGVpZHVuZyAqLwouc3BhbHRlLXdvY2hlbmVuZGUgeyBiYWNrZ3JvdW5kLWNvbG9yOiAj RTJFQUYyOyBib3JkZXItcmlnaHQtY29sb3I6ICNDOEQ0RTA7IH0KLnNwYWx0ZS1mZWllcnRhZyB7 IGJhY2tncm91bmQtY29sb3I6ICNGOURFREU7IGJvcmRlci1yaWdodC1jb2xvcjogI0U4QjBCMDsg fQouc3BhbHRlLWZlcmllbiB7IGJhY2tncm91bmQtY29sb3I6ICNFMEYwRTQ7IH0KW2RhdGEtdGhl bWU9Im5pZ2h0Il0gLnNwYWx0ZS13b2NoZW5lbmRlIHsgYmFja2dyb3VuZC1jb2xvcjogIzFFMkEz QTsgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjMkQzRDUwOyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5z cGFsdGUtZmVpZXJ0YWcgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjM0ExRTFFOyBib3JkZXItcmlnaHQt Y29sb3I6ICM1MDI4Mjg7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLnNwYWx0ZS1mZXJpZW4geyBi YWNrZ3JvdW5kLWNvbG9yOiAjMUMyRTIyOyB9CgovKiBTY2hyYWZmdXJlbiAqLwouc2NocmFmZnVy LWZydWVoIHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQo NDVkZWcsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCAzcHgsIHJnYmEoMjU1LDI1NSwyNTUsMC4y NSkgM3B4LCByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpIDVweCkgIWltcG9ydGFudDsKICAgIGZvbnQt d2VpZ2h0OiA4MDAgIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsMCww LDAuMyk7Cn0KLnNjaHJhZmZ1ci1zcGFldCB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRp bmctbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDNweCwg cmdiYSgyNTUsMjU1LDI1NSwwLjI1KSAzcHgsIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSkgNXB4KSAh aW1wb3J0YW50OwogICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzog MCAxcHggMnB4IHJnYmEoMCwwLDAsMC4zKTsKfQouc2NocmFmZnVyLW5hY2h0IHsKICAgIGJhY2tn cm91bmQtaW1hZ2U6CiAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJh bnNwYXJlbnQsIHRyYW5zcGFyZW50IDNweCwgcmdiYSgyNTUsMjU1LDI1NSwwLjIpIDNweCwgcmdi YSgyNTUsMjU1LDI1NSwwLjIpIDVweCksCiAgICAgICAgcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVu dCgtNDVkZWcsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCAzcHgsIHJnYmEoMjU1LDI1NSwyNTUs MC4yKSAzcHgsIHJnYmEoMjU1LDI1NSwyNTUsMC4yKSA1cHgpICFpbXBvcnRhbnQ7CiAgICBmb250 LXdlaWdodDogODAwICFpbXBvcnRhbnQ7IHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLDAs MCwwLjMpOwp9Ci5zY2hyYWZmdXItZnJ1ZWgtMiB7IGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGlu Zy1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50LCB0cmFuc3BhcmVudCA0cHgsIHJn YmEoMjU1LDI1NSwyNTUsMC4xNSkgNHB4LCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDZweCkgIWlt cG9ydGFudDsgfQouc2NocmFmZnVyLXNwYWV0LTIgeyBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRp bmctbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDRweCwg cmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA0cHgsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNnB4KSAh aW1wb3J0YW50OyB9Ci5zY2hyYWZmdXItbmFjaHQtMiB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOgog ICAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcsIHRyYW5zcGFyZW50LCB0cmFu c3BhcmVudCA0cHgsIHJnYmEoMjU1LDI1NSwyNTUsMC4xKSA0cHgsIHJnYmEoMjU1LDI1NSwyNTUs MC4xKSA2cHgpLAogICAgICAgIHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCB0cmFu c3BhcmVudCwgdHJhbnNwYXJlbnQgNHB4LCByZ2JhKDI1NSwyNTUsMjU1LDAuMSkgNHB4LCByZ2Jh KDI1NSwyNTUsMjU1LDAuMSkgNnB4KSAhaW1wb3J0YW50Owp9CgovKiBWZXJhbnR3b3J0bGljaGtl aXRzLU1hcmtpZXJ1bmcgKFRvcC0yIHBybyBTY2hpY2h0KSAqLwouZ3JpZC16ZWxsZS52ZXJhbnR3 b3J0bGljaCB7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIC0ycHggMCAwICNGMUM0MEY7Cn0KLnZl cmFudHdvcnRsaWNoLWJhZGdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogMXB4 OwogICAgcmlnaHQ6IDFweDsKICAgIHdpZHRoOiA2cHg7CiAgICBoZWlnaHQ6IDZweDsKICAgIGJh Y2tncm91bmQ6ICNGMUM0MEY7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7Cn0KCi8qID09PT09IFpl bGwtRWRpdG9yID09PT09ICovCiN6ZWxsLWVkaXRvciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7 IHotaW5kZXg6IDIwMDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBib3JkZXI6IDJw eCBzb2xpZCB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OyBib3gt c2hhZG93OiAwIDZweCAyMHB4IHZhcigtLXNoYWRvdy1tZWRpdW0pOwp9CiNlZGl0b3ItYXVzd2Fo bCB7CiAgICBib3JkZXI6IG5vbmU7IG91dGxpbmU6IG5vbmU7IGZvbnQtZmFtaWx5OiBpbmhlcml0 OyBmb250LXNpemU6IDExcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgY29sb3I6 IHZhcigtLXRleHQtcHJpbWFyeSk7CiAgICBtaW4td2lkdGg6IDIwMHB4OyBjdXJzb3I6IHBvaW50 ZXI7IGJvcmRlci1yYWRpdXM6IDNweDsKfQojZWRpdG9yLWF1c3dhaGwgb3B0aW9uIHsgcGFkZGlu ZzogNHB4IDhweDsgfQojZWRpdG9yLWF1c3dhaGwgb3B0aW9uOmNoZWNrZWQgeyBiYWNrZ3JvdW5k OiB2YXIoLS1iZy1hY3RpdmUpOyB9CgovKiA9PT09PSBBZG1pbi1MYXlvdXQgPT09PT0gKi8KLmFk bWluLWxheW91dCB7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4OiAxOyBvdmVyZmxvdzogaGlkZGVu Owp9Ci5hZG1pbi1zaWRlYmFyIHsKICAgIHdpZHRoOiAyMjBweDsgbWluLXdpZHRoOiAyMjBweDsK ICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXNpZGViYXIpOyBib3JkZXItcmlnaHQ6IDFweCBzb2xp ZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgcGFkZGluZzogMTZweCAxMHB4OyBkaXNwbGF5OiBm bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDFweDsKICAgIG92ZXJmbG93LXk6IGF1 dG87Cn0KLyogU2VrdGlvbnMtw5xiZXJzY2hyaWZ0IGluIGRlciBTaWRlYmFyIChTVEFNTURBVEVO LCBLT05GSUdVUkFUSU9OLCDigKYpICovCi5hZG1pbi1uYXYtZ3J1cHBlIHsKICAgIGZvbnQtc2l6 ZTogMTFweDsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsK ICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjVweDsKICAg IHBhZGRpbmc6IDE0cHggMTRweCA2cHg7CiAgICBtYXJnaW46IDA7Cn0KLmFkbWluLW5hdi1ncnVw cGU6Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLXRvcDogNHB4OyB9CgouYWRtaW4tbmF2LWJ0biB7CiAg ICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiA5cHggMTRw eDsKICAgIHRleHQtYWxpZ246IGxlZnQ7IGJvcmRlci1yYWRpdXM6IDZweDsgY3Vyc29yOiBwb2lu dGVyOwogICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZh cigtLXRleHQtc2Vjb25kYXJ5KTsKICAgIHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3Rk KTsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0KLyogRG90LUluZGlr YXRvciB2b3IgamVkZW0gVGFiLUxhYmVsIChncmF1ID0gaW5ha3RpdiwgZ3LDvG4gPSBha3Rpdikg Ki8KLmFkbWluLW5hdi1idG46OmJlZm9yZSB7CiAgICBjb250ZW50OiAnJzsKICAgIGRpc3BsYXk6 IGlubGluZS1ibG9jazsKICAgIHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OwogICAgYm9yZGVyLXJh ZGl1czogNTAlOwogICAgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBvcGFjaXR5 OiAwLjQ7CiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7CiAgICBmbGV4LXNocmluazogMDsKICAgIHRy YW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3RkKTsKfQouYWRtaW4tbmF2LWJ0bjpob3ZlciB7 IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7 IH0KLmFkbWluLW5hdi1idG46aG92ZXI6OmJlZm9yZSB7IG9wYWNpdHk6IDAuNzsgfQovKiBBa3Rp dmVyIEJ1dHRvbjogS2FydGVuLU9wdGlrICh3ZWnDnyBpbSBMaWdodCwgZHVua2xlciBDYXJkLVRv biBpbSBEYXJrKSAqLwouYWRtaW4tbmF2LWJ0bi5ha3RpdiB7CiAgICBiYWNrZ3JvdW5kOiB2YXIo LS1iZy1jYXJkKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwogICAgZm9udC13ZWln aHQ6IDYwMDsKICAgIGJveC1zaGFkb3c6IHZhcigtLXNjaGF0dGVuLXNtKTsKfQouYWRtaW4tbmF2 LWJ0bi5ha3Rpdjo6YmVmb3JlIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWVyZm9sZyk7 CiAgICBvcGFjaXR5OiAxOwp9CgouYWRtaW4taW5oYWx0IHsgZmxleDogMTsgb3ZlcmZsb3cteTog YXV0bzsgcGFkZGluZzogMjRweCAzMnB4OyB9Ci5hZG1pbi1rb3BmIHsgZGlzcGxheTogZmxleDsg YWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBtYXJn aW4tYm90dG9tOiAyMHB4OyB9Ci5hZG1pbi1rb3BmIGgyIHsgZm9udC1zaXplOiAyMHB4OyBmb250 LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQouYWRtaW4taGlud2Vp cyB7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgbWFyZ2lu LWJvdHRvbTogMTZweDsgbGluZS1oZWlnaHQ6IDEuNjsgfQoKLyogU3RhdHVzLVBpbGxlIChyZWFk LW9ubHkgQW56ZWlnZSBpbiBUYWJlbGxlbiwgei4gQi4gQWt0aXYvSW5ha3RpdikgKi8KLnN0YXR1 cy1waWxsZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsK ICAgIHBhZGRpbmc6IDNweCAxMHB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBmb250 LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zdGF0 dXMtYWt0aXYtYmcpOwogICAgY29sb3I6IHZhcigtLXN0YXR1cy1ha3Rpdi1mZyk7CiAgICBib3Jk ZXI6IDFweCBzb2xpZCB2YXIoLS1zdGF0dXMtYWt0aXYtYm9yZGVyKTsKICAgIGxpbmUtaGVpZ2h0 OiAxLjQ7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9Ci5zdGF0dXMtcGlsbGUuc3RhdHVzLWlu YWt0aXYgewogICAgYmFja2dyb3VuZDogdmFyKC0tc3RhdHVzLWluYWt0aXYtYmcpOwogICAgY29s b3I6IHZhcigtLXN0YXR1cy1pbmFrdGl2LWZnKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9y ZGVyLWNvbG9yKTsKfQoKLmFkbWluLXRhYiB7IGFuaW1hdGlvbjogZmFkZUluIDAuMTVzIGVhc2U7 IH0KQGtleWZyYW1lcyBmYWRlSW4geyBmcm9tIHsgb3BhY2l0eTogMDsgfSB0byB7IG9wYWNpdHk6 IDE7IH0gfQoKLyogPT09PT0gVGFiZWxsZW4gPT09PT0gKi8KLmFkbWluLXRhYmVsbGUgeyB3aWR0 aDogMTAwJTsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgZm9udC1zaXplOiAxM3B4OyB9Ci5h ZG1pbi10YWJlbGxlIHRoIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOyBjb2xv cjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7 IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4 OwogICAgcGFkZGluZzogMTBweCAxMnB4OyB0ZXh0LWFsaWduOiBsZWZ0OyBib3JkZXItYm90dG9t OiAycHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBwb3NpdGlvbjogc3RpY2t5OyB0 b3A6IDA7IHotaW5kZXg6IDI7Cn0KLmFkbWluLXRhYmVsbGUgdGQgeyBwYWRkaW5nOiA4cHggMTJw eDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IHZlcnRpY2Fs LWFsaWduOiBtaWRkbGU7IH0KLmFkbWluLXRhYmVsbGUgdHI6aG92ZXIgdGQgeyBiYWNrZ3JvdW5k OiB2YXIoLS1iZy1ob3Zlcik7IH0KLmFkbWluLXRhYmVsbGUgaW5wdXRbdHlwZT0idGV4dCJdLAou YWRtaW4tdGFiZWxsZSBpbnB1dFt0eXBlPSJlbWFpbCJdLAouYWRtaW4tdGFiZWxsZSBpbnB1dFt0 eXBlPSJkYXRlIl0sCi5hZG1pbi10YWJlbGxlIHNlbGVjdCB7CiAgICB3aWR0aDogMTAwJTsgcGFk ZGluZzogNHB4IDhweDsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsgYm9y ZGVyLXJhZGl1czogM3B4OwogICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IGZvbnQtc2l6ZTogMTJw eDsgYmFja2dyb3VuZDogdmFyKC0tYmctaW5wdXQpOyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5 KTsKfQouYWRtaW4tdGFiZWxsZSBpbnB1dDpmb2N1cywgLmFkbWluLXRhYmVsbGUgc2VsZWN0OmZv Y3VzIHsKICAgIG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5n KTsgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjYsNTgsOTIsMC4xNSk7Cn0KLnRhYmVsbGUt c2Nyb2xsIHsgb3ZlcmZsb3c6IGF1dG87IG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7 IH0KCi8qID09PT09IEJ1dHRvbnMgPT09PT0gKi8KLmJ0biB7CiAgICBwYWRkaW5nOiA3cHggMThw eDsgYm9yZGVyLXJhZGl1czogNHB4OyBib3JkZXI6IG5vbmU7IGN1cnNvcjogcG9pbnRlcjsKICAg IGZvbnQtZmFtaWx5OiBpbmhlcml0OyBmb250LXNpemU6IDEzcHg7IGZvbnQtd2VpZ2h0OiA1MDA7 IHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3RkKTsKfQouYnRuLXByaW1hZXIgeyBiYWNr Z3JvdW5kOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBjb2xvcjogI2ZmZjsgfQouYnRuLXByaW1hZXI6 aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMTQzMDRhOyB9Ci5idG4tZXJmb2xnIHsgYmFja2dyb3VuZDog dmFyKC0tZmFyYmUtZXJmb2xnKTsgY29sb3I6ICNmZmY7IH0KLmJ0bi1lcmZvbGc6aG92ZXIgeyBi YWNrZ3JvdW5kOiAjMWU3YTVmOyB9Ci5idG4tZ2VmYWhyIHsgYmFja2dyb3VuZDogdmFyKC0tZmFy YmUtZmVobGVyKTsgY29sb3I6ICNmZmY7IH0KLmJ0bi1nZWZhaHI6aG92ZXIgeyBiYWNrZ3JvdW5k OiAjYTUyODFiOyB9Ci5idG4tc2VrIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQpOyBj b2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJv cmRlci1zdHJvbmcpOwp9Ci5idG4tc2VrOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92 ZXIpOyBib3JkZXItY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0KLmJ0bi1rbGVpbiB7IHBh ZGRpbmc6IDRweCAxMnB4OyBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IGJvcmRl ci1yYWRpdXM6IDRweDsgfQouYnRuLWljb24geyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24t aXRlbXM6IGNlbnRlcjsgZ2FwOiA1cHg7IGxpbmUtaGVpZ2h0OiAxOyB9Ci5idG4taWNvbjo6YmVm b3JlIHsgZm9udC1zaXplOiAxM3B4OyBsaW5lLWhlaWdodDogMTsgfQouYnRuLWJlYXJiZWl0ZW46 OmJlZm9yZSB7IGNvbnRlbnQ6ICfinI4nOyB9Ci5idG4tcmh5dGhtdXM6OmJlZm9yZSB7IGNvbnRl bnQ6ICfihrsnOyB9Ci5idG4tbG9lc2NoZW4geyB3aWR0aDogMzBweDsgcGFkZGluZzogNHB4IDA7 IHRleHQtYWxpZ246IGNlbnRlcjsgfQoKLyogV2ljaHRpZy1GZWllcnRhZyBCYWRnZSAqLwouZmVp ZXJ0YWctd2ljaHRpZy1iYWRnZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6 IDJweCA4cHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWln aHQ6IDcwMDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWZlaGxlcik7IGNvbG9yOiAjZmZm OyBsZXR0ZXItc3BhY2luZzogMC40cHg7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KLmJ0 bi1zb3J0aWVydW5nIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBz b2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwog ICAgd2lkdGg6IDI2cHg7IGhlaWdodDogMjZweDsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWdu LWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm9yZGVyLXJhZGl1 czogM3B4OyBjdXJzb3I6IHBvaW50ZXI7IGZvbnQtc2l6ZTogMTRweDsgcGFkZGluZzogMDsKICAg IHRyYW5zaXRpb246IHZhcigtLXRyYW5zaXRpb24tc3RkKTsKfQouYnRuLXNvcnRpZXJ1bmc6aG92 ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1ob3Zlcik7IGJvcmRlci1jb2xvcjogdmFyKC0tdGV4 dC1oZWFkaW5nKTsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IH0KCi8qID09PT09IEZvcm11 bGFyZSA9PT09PSAqLwouZm9ybS1ncnVwcGUgeyBtYXJnaW4tYm90dG9tOiAxNHB4OyB9Ci5mb3Jt LWdydXBwZSBsYWJlbCB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2Vp Z2h0OiA2MDA7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IG1hcmdpbi1ib3R0b206IDRw eDsgfQouZm9ybS1pbnB1dCB7CiAgICBwYWRkaW5nOiA4cHggMTJweDsgYm9yZGVyOiAxcHggc29s aWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7IGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGZvbnQtZmFt aWx5OiBpbmhlcml0OyBmb250LXNpemU6IDEzcHg7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0 KTsgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7CiAgICB0cmFuc2l0aW9uOiB2YXIoLS10cmFu c2l0aW9uLXN0ZCk7Cn0KLmZvcm0taW5wdXQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXIt Y29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7IGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDI2 LDU4LDkyLDAuMTIpOyB9CgovKiA9PT09PSBJbmZvLUJveCA9PT09PSAqLwouaW5mby1ib3ggewog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXItbGVmdDogNHB4IHNvbGlk IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBwYWRkaW5nOiAxNHB4IDE4cHg7IGJvcmRlci1yYWRp dXM6IDAgNnB4IDZweCAwOyBmb250LXNpemU6IDEzcHg7IGxpbmUtaGVpZ2h0OiAxLjY7CiAgICBj b2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwp9CgovKiA9PT09PSBTY2hpY2h0Y29kZS1Wb3Jz Y2hhdSA9PT09PSAqLwouc2NoaWNodGNvZGUta2FydGUgewogICAgZGlzcGxheTogZmxleDsgYWxp Z24taXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OwogICAgcGFkZGluZzogNnB4IDhweCA2cHggNnB4 OyBib3JkZXItcmFkaXVzOiA2cHg7IGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDYwMDsK ICAgIG1pbi1oZWlnaHQ6IDQycHg7Cn0KLnNjaGljaHRjb2RlLWZhcmJmZWxkIHsKICAgIG1pbi13 aWR0aDogNDRweDsgaGVpZ2h0OiAzMHB4OyBib3JkZXItcmFkaXVzOiA0cHg7IGJvcmRlcjogMXB4 IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1p dGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMTJw eDsgZm9udC13ZWlnaHQ6IDcwMDsgcGFkZGluZzogMCA0cHg7CiAgICBmbGV4LXNocmluazogMDsK fQouc2MtZWRpdC1idG4geyBwYWRkaW5nOiAzcHggNnB4OyBmb250LXNpemU6IDExcHg7IGZsZXgt c2hyaW5rOiAwOyB9Ci5zYy1lZGl0LWJ0bjo6YmVmb3JlIHsgY29udGVudDogJ+Kcjic7IGZvbnQt c2l6ZTogMTFweDsgfQoKLyogU2NoaWNodC1SZW5kZXItTW9kaTogZ2VsdGVuIGluIGRlciBQbGFu dW5ncy1aZWxsZSAoR3JpZCkgdW5kIGluIGRlcgogICBTY2hpY2h0Y29kZS1Wb3JzY2hhdS1LYXJ0 ZS4gQmVpIE1vZHVzICd6ZWxsZScgd2lyZCBkZXIgSGludGVyZ3J1bmQKICAgZGlyZWt0IGFtIENl bGwtRWxlbWVudCBnZXNldHp0IChEZWZhdWx0KSDigJQgZGllIGZvbGdlbmRlbiBLbGFzc2VuCiAg IGdyZWlmZW4gbnVyIGbDvHIgQmxvY2sgLyBQaWxsZSAvIFRleHQuICovCi56ZWxsZS1tb2QtYmxv Y2sgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcGFkZGluZzogMnB4IDhweDsKICAg IGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAxLjE1OwogICAgZm9udC13ZWln aHQ6IDcwMDsKfQouemVsbGUtbW9kLXBpbGxlIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK ICAgIHBhZGRpbmc6IDJweCAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBsaW5l LWhlaWdodDogMS4yOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKfQouemVsbGUtbW9kLXRleHQgewog ICAgZm9udC13ZWlnaHQ6IDcwMDsKfQoKLyogSGVhZGVyLVplbGwtTW9kaSAoYXVmIC5rZC16ZWxs ZSkg4oCUIGJlZsO8bGx0IHZvbiBoZWFkZXJLb25maWdBbndlbmRlbigpLgogICBWYXJpYWJsZW4g LS1oa3otYmcgLyAtLWhrei1mZyB3ZXJkZW4gaW5saW5lIGdlc2V0enQuICovCi5rZC16ZWxsZS5o a3otYmxvY2sgewogICAgYmFja2dyb3VuZDogdmFyKC0taGt6LWJnKSAhaW1wb3J0YW50OwogICAg Y29sb3I6IHZhcigtLWhrei1mZywgI2ZmZik7Cn0KLmtkLXplbGxlLmhrei1ibG9jazo6YmVmb3Jl IHsKICAgIC8qIEJsb2NrLU1vZHVzOiBrbGVpbmVyIElubmVuLU1hcmdpbiB2aWEgcGFkZGluZy1U cmljayAqLwogICAgY29udGVudDogbm9uZTsKfQoua2QtemVsbGUuaGt6LXBpbGxlIHsKICAgIGJh Y2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7CiAgICBjb2xvcjogaW5oZXJpdDsKfQou a2QtemVsbGUuaGt6LXBpbGxlOjpiZWZvcmUgewogICAgY29udGVudDogJyc7Cn0KLmtkLXplbGxl Lmhrei1waWxsZSB7CiAgICAvKiBQaWxsZSBhbHMgSW5oYWx0LVdyYXBwZXIgdmlhIGZsZXhib3gg Ki8KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoua2QtemVsbGUuaGt6LXBpbGxlID4gKiB7CiAg ICBiYWNrZ3JvdW5kOiB2YXIoLS1oa3otYmcpOwogICAgY29sb3I6IHZhcigtLWhrei1mZywgI2Zm Zik7CiAgICBwYWRkaW5nOiAxcHggMTBweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAg Zm9udC13ZWlnaHQ6IDcwMDsKfQoua2QtemVsbGUuaGt6LXRleHQgewogICAgYmFja2dyb3VuZDog dHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS1oa3otYmcpICFpbXBvcnRh bnQ7CiAgICBmb250LXdlaWdodDogNzAwOwp9Ci8qIFRyZW5ubGluaWVuLVNjaGFsdGVyICovCiNr b3BmLXJlY2h0cy5oZWFkZXItb2huZS10cmVubmxpbmllbiAua2QtemVsbGUgewogICAgYm9yZGVy LXJpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50Owp9CgovKiA9PT09PSBIZWFkZXIt SGludGVyZ3J1bmQ6IENELUJsYXUgKHRoZW1lLXVuYWJow6RuZ2lnKSA9PT09PQogICBIYXJkY29k ZWQgIzI5Mzg0QSDigJQgYmxlaWJ0IGltIFRhZy0gdW5kIE5hY2h0bW9kdXMgaWRlbnRpc2NoLgog ICBFaW56ZWx6ZWxsZW4gbWl0IGVpZ2VuZW0gU3RhdGUgKEhldXRlL1dvY2hlbmVuZGUvRmVpZXJ0 YWcvRFNNL2VyZnVlbGx0L3VudGVyYmVzZXR6dCkKICAgw7xiZXJzY2hyZWliZW4gZGFzIHdlaXRl cmhpbiB2aWEgc3BlemlmaXNjaGVyZSBLbGFzc2VuLiAqLwoja29wZi1yZWNodHMsCiNrb3BmLWxp bmtzIHsKICAgIGJhY2tncm91bmQ6ICMyOTM4NEE7Cn0KI2tvcGYtcmVjaHRzIC5rb3BmLWRhdGVu LXplaWxlLAoja29wZi1saW5rcyAua29wZi16ZWlsZSB7CiAgICBiYWNrZ3JvdW5kOiAjMjkzODRB OwogICAgY29sb3I6ICNFOUVFRjM7Cn0KI2tvcGYtcmVjaHRzIC5rb3BmLWRhdGVuLXplaWxlLnRs LXJvdy12b3JnYWJlLAoja29wZi1yZWNodHMgLmtvcGYtZGF0ZW4temVpbGUudGwtcm93LXN0YWVy a2Vzb2xsLAoja29wZi1yZWNodHMgLmtvcGYtZGF0ZW4temVpbGUudGwtcm93LWZydWVoLWwsCiNr b3BmLXJlY2h0cyAua29wZi1kYXRlbi16ZWlsZS50bC1yb3ctc3BhZXQtbCwKI2tvcGYtcmVjaHRz IC5rb3BmLWRhdGVuLXplaWxlLnRsLXJvdy11bnRzdHVldHotZiwKI2tvcGYtcmVjaHRzIC5rb3Bm LWRhdGVuLXplaWxlLnRsLXJvdy11bnRzdHVldHotbiB7CiAgICBiYWNrZ3JvdW5kOiAjMjkzODRB Owp9CiNrb3BmLXJlY2h0cyAua2QtemVsbGUgewogICAgY29sb3I6ICNFOUVFRjM7CiAgICBib3Jk ZXItcmlnaHQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7Cn0KI2tvcGYtcmVjaHRz IC5rZC16ZWxsZS50ZC16ZWxsZTpub3QoLnRkLWVyZnVlbGx0KTpub3QoLnRkLXVudGVyYmVzZXR6 dCkgewogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogI0U5RUVGMzsKfQoK LyogPT09PT0gSGVhZGVyLUtvbmZpZy1UYWIgVGFiZWxsZW4tTGF5b3V0ID09PT09ICovCiNoZWFk ZXIta29uZmlnLWluaGFsdCB0YWJsZSB0Ym9keSB0ciB0ZCB7IHZlcnRpY2FsLWFsaWduOiBtaWRk bGU7IH0KI2hlYWRlci1rb25maWctaW5oYWx0IHRhYmxlIHRib2R5IHRyIHsgaGVpZ2h0OiA0NHB4 OyB9CgovKiBDb2xvci1QaWNrZXItWmVsbGU6IFBpY2tlciArIFJlc2V0LcOXIG5lYmVuZWluYW5k ZXIsIHZlcnRpa2FsIHplbnRyaWVydC4KICAgR3JlaWZ0IGluIEhlYWRlci1aZWlsZW4tVGFiZWxs ZSBVTkQgaW4gZGVuIFN0eWxlLUJsb2NrLURldGFpbC1TZWt0aW9uZW4KICAgKFZvcmdhYmUgLyBE U00gLyBUYWctTWFya2VyKS4gKi8KI2hlYWRlci1rb25maWctaW5oYWx0IC5oay1jb2xvci16ZWxs ZSwKLnN0eWxlLWJsb2NrIC5oay1jb2xvci16ZWxsZSB7CiAgICBwYWRkaW5nOiAwOwogICAgdGV4 dC1hbGlnbjogbGVmdDsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBkaXNwbGF5OiBpbmxp bmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDRweDsKfQojaGVhZGVy LWtvbmZpZy1pbmhhbHQgLmhrLWNvbG9yLWlucHV0LAouc3R5bGUtYmxvY2sgLmhrLWNvbG9yLWlu cHV0IHsKICAgIHdpZHRoOiAzNnB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgcGFkZGluZzogMDsK ICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBib3JkZXItcmFk aXVzOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxl Owp9Ci8qIOKAnk5pY2h0IGdlc2V0enQiLUluZGlrYXRvcjogZGV6ZW50ZSBkaWFnb25hbGUgU3Ry ZWlmZW4gdWViZXIgZGVtIFBpY2tlci4KICAgRGllIGVjaHRlIERlZmF1bHQtRmFyYmUgKHouQi4g U2NoaWNodGNvZGUtSGludGVyZ3J1bmQgZnVlciBGL1MvTikgbGllZ3QKICAgd2VpdGVyaGluIHNp Y2h0YmFyIGRhcnVudGVyIOKAlCBkaWUgU3RyZWlmZW4gc2lnbmFsaXNpZXJlbiDigJ5sZWVyID0g RGVmYXVsdAogICBncmVpZnQiLiAqLwojaGVhZGVyLWtvbmZpZy1pbmhhbHQgLmhrLWNvbG9yLWlu cHV0LmhrLWNvbG9yLWxlZXIsCi5zdHlsZS1ibG9jayAuaGstY29sb3ItaW5wdXQuaGstY29sb3It bGVlciB7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggcmdiYSgyNTUsMjU1LDI1NSww LjYpLAogICAgICAgICAgICAgICAgaW5zZXQgMCAwIDAgNHB4IHJnYmEoMCwwLDAsMC41KTsKICAg IG91dGxpbmU6IDJweCBkYXNoZWQgdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBvdXRsaW5lLW9mZnNl dDogLTFweDsKfQojaGVhZGVyLWtvbmZpZy1pbmhhbHQgLmhrLWNvbG9yLWNsZWFyLAouc3R5bGUt YmxvY2sgLmhrLWNvbG9yLWNsZWFyIHsKICAgIHdpZHRoOiAyMnB4OwogICAgaGVpZ2h0OiAyOHB4 OwogICAgcGFkZGluZzogMDsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxpbmUtaGVpZ2h0OiAx OwogICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIo LS1ib3JkZXItY29sb3IpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgY29sb3I6IHZhcigt LXRleHQtbXV0ZWQpOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdmVydGljYWwtYWxpZ246IG1p ZGRsZTsKfQojaGVhZGVyLWtvbmZpZy1pbmhhbHQgLmhrLWNvbG9yLWNsZWFyOmhvdmVyLAouc3R5 bGUtYmxvY2sgLmhrLWNvbG9yLWNsZWFyOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJn LWNhcmQtYWx0KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOwp9CgovKiBTdHlsZS1C bG9jay1QcmV2aWV3IChMaXZlLVZvcnNjaGF1IGluIFZvcmdhYmUgLyBEU00gLyBUYWctTWFya2Vy KS4KICAgWmVpZ3QgZWluZSBCZWlzcGllbC1aZWxsZSBtaXQgZGVtIGFrdHVlbGxlbiBTdGlsIOKA lCBhbmFsb2cgenVtIFBsYW4tSGVhZGVyLiAqLwouc3R5bGUtYmxvY2stcHJldmlldyB7CiAgICBt aW4taGVpZ2h0OiAzNnB4OwogICAgbWluLXdpZHRoOiA2MHB4OwogICAgcGFkZGluZzogNnB4IDEy cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgYm9yZGVy LXJhZGl1czogNHB4OwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczog Y2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBmb250LXdlaWdodDogNzAw OwogICAgZm9udC1zaXplOiAxNHB4OwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgYmFj a2dyb3VuZC1pbWFnZToKICAgICAgICBsaW5lYXItZ3JhZGllbnQoNDVkZWcsIHJnYmEoMTI4LDEy OCwxMjgsMC4wNikgMjUlLCB0cmFuc3BhcmVudCAyNSUpLAogICAgICAgIGxpbmVhci1ncmFkaWVu dCgtNDVkZWcsIHJnYmEoMTI4LDEyOCwxMjgsMC4wNikgMjUlLCB0cmFuc3BhcmVudCAyNSUpOwog ICAgYmFja2dyb3VuZC1zaXplOiA4cHggOHB4OwogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAw LCAwIDRweDsKfQouc3R5bGUtYmxvY2sgbGFiZWwgewogICAgZm9udC1zaXplOiAxMnB4OwogICAg Zm9udC13ZWlnaHQ6IDYwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7Cn0KLnN0 eWxlLWJsb2NrIC5mb3JtLWlucHV0IHsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIHBhZGRpbmc6 IDRweCA4cHg7Cn0KCi8qIOKAnuKAlCBhdXRvbWF0aXNjaCBiZWbDvGxsdCDigJQiLUhpbndlaXMg dmVydGlrYWwgbWl0dGlnIGluIGRlciBXZXJ0LVplbGxlICovCiNoZWFkZXIta29uZmlnLWluaGFs dCAuaGstYXV0by1oaW50IHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRl bXM6IGNlbnRlcjsKICAgIGhlaWdodDogMjhweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVk KTsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKfQoKLyogTW9k dXMtTWluaS1CYWRnZSBpbiBkZXIgU2NoaWNodGNvZGUtVm9yc2NoYXUgKi8KLnNjLW1vZHVzLWJh ZGdlIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAg Zm9udC13ZWlnaHQ6IDcwMDsKICAgIHBhZGRpbmc6IDFweCA2cHg7CiAgICBib3JkZXItcmFkaXVz OiA5OTlweDsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGNvbG9yOiB2 YXIoLS10ZXh0LW11dGVkKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xv cik7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6IDAu NHB4OwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQoKLyogPT09PT0gR2VuZXJhdG9yID09 PT09ICovCi5nZW5lcmF0b3ItZm9ybSB7IG1heC13aWR0aDogNTAwcHg7IH0KI2dlbmVyYXRvci1l cmdlYm5pcyB7CiAgICBtYXJnaW4tdG9wOiAxNnB4OyBwYWRkaW5nOiAxNHB4IDE4cHg7CiAgICBi b3JkZXItcmFkaXVzOiA2cHg7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDYwMDsKfQou Z2VuLWVyZm9sZyB7IGJhY2tncm91bmQ6ICNlOGY1ZTk7IGNvbG9yOiAjMmU3ZDMyOyBib3JkZXI6 IDFweCBzb2xpZCAjYTVkNmE3OyB9CltkYXRhLXRoZW1lPSJuaWdodCJdIC5nZW4tZXJmb2xnIHsg YmFja2dyb3VuZDogIzFhMzAyMDsgY29sb3I6ICM2NmJiNmE7IGJvcmRlci1jb2xvcjogIzJlN2Qz MjsgfQoKLyogPT09PT0gU3RhdGlzdGlrID09PT09ICovCi5zdGF0aXN0aWstbGF5b3V0IHsgb3Zl cmZsb3cteTogYXV0bzsgcGFkZGluZzogMjBweCAyNHB4OyBmbGV4OiAxOyB9CgovKiBLUEktS2Fj aGVsbiAqLwouc3RhdC1rcGlzIHsKICAgIGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29s dW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMTQwcHgsIDFmcikpOwogICAgZ2FwOiAxMnB4 OyBtYXJnaW4tYm90dG9tOiAyMHB4Owp9Ci5zdGF0LWtwaSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIo LS1iZy1jYXJkKTsgYm9yZGVyLXJhZGl1czogMTBweDsgcGFkZGluZzogMTZweDsKICAgIGJvcmRl cjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IHRleHQtYWxpZ246IGNlbnRlcjsKICAg IGJveC1zaGFkb3c6IDAgMXB4IDRweCB2YXIoLS1zaGFkb3ctbGlnaHQpOyB0cmFuc2l0aW9uOiB0 cmFuc2Zvcm0gMC4xNXMgZWFzZTsKfQouc3RhdC1rcGk6aG92ZXIgeyB0cmFuc2Zvcm06IHRyYW5z bGF0ZVkoLTJweCk7IGJveC1zaGFkb3c6IDAgNHB4IDEycHggdmFyKC0tc2hhZG93LW1lZGl1bSk7 IH0KLnN0YXQta3BpLXdlcnQgeyBmb250LXNpemU6IDI4cHg7IGZvbnQtd2VpZ2h0OiA4MDA7IGxp bmUtaGVpZ2h0OiAxLjE7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH0KLnN0 YXQta3BpLWxhYmVsIHsgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7 IG1hcmdpbi10b3A6IDRweDsgZm9udC13ZWlnaHQ6IDYwMDsgdGV4dC10cmFuc2Zvcm06IHVwcGVy Y2FzZTsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OyB9CgovKiBEYXNoYm9hcmQtR3JpZCAqLwouc3Rh dC1kYXNoYm9hcmQgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAx ZnI7IGdhcDogMTZweDsgbWFyZ2luLWJvdHRvbTogMTZweDsgfQpAbWVkaWEgKG1heC13aWR0aDog OTAwcHgpIHsgLnN0YXQtZGFzaGJvYXJkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH0g fQoKLnN0YXQtcGFuZWwgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJvcmRlci1y YWRpdXM6IDEwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyBi b3gtc2hhZG93OiAwIDFweCA0cHggdmFyKC0tc2hhZG93LWxpZ2h0KTsKICAgIHBhZGRpbmc6IDE2 cHggMjBweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgbWluLWhlaWdo dDogMDsKfQouc3RhdC1wYW5lbC1rb3BmIHsKICAgIGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29u dGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIG1hcmdpbi1ib3R0 b206IDEycHg7IGZsZXgtc2hyaW5rOiAwOwp9Ci5zdGF0LXBhbmVsLWtvcGYgaDMgeyBmb250LXNp emU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBt YXJnaW46IDA7IH0KLnN0YXQtY2hhcnQtYXJlYSB7IGZsZXg6IDE7IG1pbi1oZWlnaHQ6IDA7IG92 ZXJmbG93LXk6IGF1dG87IG1heC1oZWlnaHQ6IDQyMHB4OyB9CgovKiBUb2dnbGUtQnV0dG9ucyBp biBQYW5lbHMgKi8KLnN0YXQtdG9nZ2xlLWdydXBwZSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogMDsg Ym9yZGVyLXJhZGl1czogNnB4OyBvdmVyZmxvdzogaGlkZGVuOyBib3JkZXI6IDFweCBzb2xpZCB2 YXIoLS1ib3JkZXItY29sb3IpOyB9Ci5zdGF0LXRvZ2dsZSB7CiAgICBwYWRkaW5nOiA0cHggMTJw eDsgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDogNjAwOyBib3JkZXI6IG5vbmU7IGN1cnNv cjogcG9pbnRlcjsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgY29sb3I6IHZh cigtLXRleHQtbXV0ZWQpOyB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTsKfQouc3RhdC10b2dn bGUuYWt0aXYgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5KTsgY29sb3I6IHZhcigtLXRl eHQtb24tcHJpbWFyeSk7IH0KLnN0YXQtdG9nZ2xlOmhvdmVyOm5vdCguYWt0aXYpIHsgYmFja2dy b3VuZDogdmFyKC0tYmctaG92ZXIpOyB9CgovKiBCYWRnZSAqLwouc3RhdC1iYWRnZSB7CiAgICBm b250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA3MDA7IHBhZGRpbmc6IDJweCA4cHg7IGJvcmRl ci1yYWRpdXM6IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS13YXJudW5nKTsgY29s b3I6ICNmZmY7IG1pbi13aWR0aDogMjBweDsgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5zdGF0LWJh ZGdlOmVtcHR5IHsgZGlzcGxheTogbm9uZTsgfQouc3RhdC1iYWRnZS1vayB7IGJhY2tncm91bmQ6 IHZhcigtLWZhcmJlLWVyZm9sZyk7IH0KCi8qIERldGFpbC1UYWJlbGxlICovCi5zdGF0LXRhYmVs bGUgdGguemFobCwgLnN0YXQtdGFiZWxsZSB0ZC56YWhsIHsgdGV4dC1hbGlnbjogcmlnaHQ7IGZv bnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH0KLnN0YXQtdGFiZWxsZSAuZnJ1ZWgt a29wZiB7IGNvbG9yOiB2YXIoLS1mYXJiZS1mcnVlaCk7IH0KLnN0YXQtdGFiZWxsZSAuc3BhZXQt a29wZiB7IGNvbG9yOiB2YXIoLS1mYXJiZS1zcGFldCk7IH0KLnN0YXQtdGFiZWxsZSAubmFjaHQt a29wZiB7IGNvbG9yOiB2YXIoLS1mYXJiZS1uYWNodCk7IH0KLnN0YXQtdGFiZWxsZSAud2Fybi1r b3BmIHsgY29sb3I6IHZhcigtLWZhcmJlLWZlaGxlcik7IH0KLnN0YXQtZGV0YWlscyB7CiAgICBi YWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyLXJhZGl1czogMTBweDsKICAgIGJvcmRl cjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7IGJveC1zaGFkb3c6IDAgMXB4IDRweCB2 YXIoLS1zaGFkb3ctbGlnaHQpOwogICAgbWFyZ2luLWJvdHRvbTogMTZweDsKfQouc3RhdC1kZXRh aWxzLXN1bW1hcnkgewogICAgcGFkZGluZzogMTRweCAyMHB4OyBmb250LXNpemU6IDEzcHg7IGZv bnQtd2VpZ2h0OiA3MDA7IGN1cnNvcjogcG9pbnRlcjsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNl Y29uZGFyeSk7IHVzZXItc2VsZWN0OiBub25lOyBsaXN0LXN0eWxlOiBub25lOwp9Ci5zdGF0LWRl dGFpbHMtc3VtbWFyeTo6YmVmb3JlIHsgY29udGVudDogJ1wyNUI2ICAnOyBmb250LXNpemU6IDEw cHg7IHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzOyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0K LnN0YXQtZGV0YWlsc1tvcGVuXSAuc3RhdC1kZXRhaWxzLXN1bW1hcnk6OmJlZm9yZSB7IHRyYW5z Zm9ybTogcm90YXRlKDkwZGVnKTsgfQouc3RhdC1kZXRhaWxzW29wZW5dIC5zdGF0LWRldGFpbHMt c3VtbWFyeSB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyB9 Ci5zdGF0LWRldGFpbHMgLnRhYmVsbGUtc2Nyb2xsIHsgcGFkZGluZzogMCAyMHB4IDE2cHg7IH0K Ci8qIERvbnV0LUNoYXJ0ICovCi5zdGF0LWRvbnV0LXdyYXAgeyBkaXNwbGF5OiBmbGV4OyBhbGln bi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAzMnB4OyBwYWRk aW5nOiAxNnB4IDA7IGZsZXgtd3JhcDogd3JhcDsgfQouc3RhdC1kb251dC1zdmcgeyB3aWR0aDog MTgwcHg7IGhlaWdodDogMTgwcHg7IH0KLnN0YXQtZG9udXQtbGVnZW5kZSB7IGRpc3BsYXk6IGZs ZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogOHB4OyB9Ci5zdGF0LWRvbnV0LWxlZ2Vu ZGUtaXRlbSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogOHB4OyBm b250LXNpemU6IDEzcHg7IGN1cnNvcjogcG9pbnRlcjsgfQouc3RhdC1kb251dC1sZWdlbmRlLWl0 ZW06aG92ZXIgeyBvcGFjaXR5OiAwLjg7IH0KLnN0YXQtZG9udXQtZmFyYmUgeyB3aWR0aDogMTRw eDsgaGVpZ2h0OiAxNHB4OyBib3JkZXItcmFkaXVzOiAzcHg7IGZsZXgtc2hyaW5rOiAwOyB9Ci5z dGF0LWRvbnV0LXdlcnQgeyBmb250LXdlaWdodDogNzAwOyBmb250LXZhcmlhbnQtbnVtZXJpYzog dGFidWxhci1udW1zOyBtYXJnaW4tbGVmdDogYXV0bzsgcGFkZGluZy1sZWZ0OiAxMnB4OyB9Ci5z dGF0LWRvbnV0LWNlbnRlciB7IGZvbnQtc2l6ZTogMjJweDsgZm9udC13ZWlnaHQ6IDgwMDsgZmls bDogdmFyKC0tdGV4dC1oZWFkaW5nKTsgdGV4dC1hbmNob3I6IG1pZGRsZTsgZG9taW5hbnQtYmFz ZWxpbmU6IGNlbnRyYWw7IH0KLnN0YXQtZG9udXQtY2VudGVyLWxhYmVsIHsgZm9udC1zaXplOiAx MHB4OyBmaWxsOiB2YXIoLS10ZXh0LW11dGVkKTsgdGV4dC1hbmNob3I6IG1pZGRsZTsgfQoKLyog QmFsa2VuZGlhZ3JhbW0gKGltIFBhbmVsKSAqLwouc3RhdC1iYWxrZW4tY29udGFpbmVyIHsgZGlz cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA0cHg7IH0KLnN0YXQtYmFs a2VuLXplaWxlIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7 IGZvbnQtc2l6ZTogMTFweDsgcGFkZGluZzogMnB4IDA7IH0KLnN0YXQtYmFsa2VuLW5hbWUgeyB3 aWR0aDogMTIwcHg7IG1pbi13aWR0aDogMTIwcHg7IHRleHQtYWxpZ246IHJpZ2h0OyBmb250LXdl aWdodDogNTAwOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyBvdmVyZmxvdzogaGlkZGVu OyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQouc3RhdC1i YWxrZW4tYmFyLXdyYXAgeyBmbGV4OiAxOyBkaXNwbGF5OiBmbGV4OyBnYXA6IDFweDsgaGVpZ2h0 OiAxOHB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IGJvcmRlci1yYWRpdXM6IDNw eDsgb3ZlcmZsb3c6IGhpZGRlbjsgfQouc3RhdC1iYWxrZW4tc2VnbWVudCB7IGhlaWdodDogMTAw JTsgdHJhbnNpdGlvbjogd2lkdGggMC40cyBlYXNlOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZm9udC1zaXplOiA5cHg7IGNvbG9y OiAjZmZmOyBmb250LXdlaWdodDogNzAwOyB9Ci5zdGF0LWJhbGtlbi10b3RhbCB7IHdpZHRoOiAz MnB4OyB0ZXh0LWFsaWduOiByaWdodDsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLXRl eHQtc2Vjb25kYXJ5KTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfQoKLyog TXVzdGVyICovCi5zdGF0LW11c3Rlci1jb250YWluZXIgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRp cmVjdGlvbjogY29sdW1uOyBnYXA6IDZweDsgbWF4LWhlaWdodDogNDIwcHg7IG92ZXJmbG93LXk6 IGF1dG87IH0KLm11c3Rlci1rYXJ0ZSB7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczog ZmxleC1zdGFydDsgZ2FwOiAxMHB4OwogICAgcGFkZGluZzogMTBweCAxNHB4OyBib3JkZXItcmFk aXVzOiA2cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyBmb250 LXNpemU6IDEycHg7Cn0KLm11c3Rlci1pY29uIHsgZm9udC1zaXplOiAxNHB4OyBtaW4td2lkdGg6 IDIycHg7IGhlaWdodDogMjJweDsgdGV4dC1hbGlnbjogY2VudGVyOyBsaW5lLWhlaWdodDogMjJw eDsgYm9yZGVyLXJhZGl1czogNTAlOyBjb2xvcjogI2ZmZjsgZmxleC1zaHJpbms6IDA7IH0KLm11 c3Rlci10ZXh0IHsgZm9udC1zaXplOiAxMnB4OyBsaW5lLWhlaWdodDogMS41OyB9Ci5tdXN0ZXIt dGV4dCBzdHJvbmcgeyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgfQoubXVzdGVyLXdhcm51 bmcgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4wNik7IH0KLm11c3Rlci13YXJudW5n IC5tdXN0ZXItaWNvbiB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLXdhcm51bmcpOyB9Ci5tdXN0 ZXItaW5mbyB7IGJhY2tncm91bmQ6IHJnYmEoNDQsNjIsODAsMC4wNCk7IH0KLm11c3Rlci1pbmZv IC5tdXN0ZXItaWNvbiB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWluZm8pOyB9Ci5tdXN0ZXIt ZXJmb2xnIHsgYmFja2dyb3VuZDogcmdiYSgzOSwxMzcsMTA5LDAuMDYpOyB9Ci5tdXN0ZXItZXJm b2xnIC5tdXN0ZXItaWNvbiB7IGJhY2tncm91bmQ6IHZhcigtLWZhcmJlLWVyZm9sZyk7IH0KCi8q IEZhaXJuZXNzIGNvbXBhY3QgKi8KLmZhaXJuZXNzLWNvbXBhY3QgeyBkaXNwbGF5OiBmbGV4OyBm bGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDNweDsgfQouZmFpcm5lc3Mtcm93IHsKICAgIGRp c3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTEwcHggMWZyIDQwcHg7IGdhcDog NnB4OyBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZm9udC1zaXplOiAxMXB4OyBwYWRkaW5nOiAz cHggMDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7Cn0KLmZh aXJuZXNzLXJvdzpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfQouZmFpcm5lc3Mt cm93LW5hbWUgeyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsg b3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBu b3dyYXA7IH0KLmZhaXJuZXNzLXJvdy1iYXIgeyBoZWlnaHQ6IDE2cHg7IGJvcmRlci1yYWRpdXM6 IDNweDsgcG9zaXRpb246IHJlbGF0aXZlOyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7 IH0KLmZhaXJuZXNzLXJvdy1maWxsIHsgaGVpZ2h0OiAxMDAlOyBib3JkZXItcmFkaXVzOiAzcHg7 IHRyYW5zaXRpb246IHdpZHRoIDAuNHMgZWFzZTsgcG9zaXRpb246IHJlbGF0aXZlOyB9Ci5mYWly bmVzcy1yb3ctYXZnIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IC0ycHg7IGJvdHRvbTogLTJw eDsgd2lkdGg6IDJweDsgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1oZWFkaW5nKTsgb3BhY2l0eTog MC41OyB6LWluZGV4OiAxOyB9Ci5mYWlybmVzcy1yb3ctdmFsIHsgdGV4dC1hbGlnbjogcmlnaHQ7 IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IGNv bG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IH0KLmZhaXJuZXNzLW9rIHsgYmFja2dyb3VuZDog IzI3QUU2MDsgfQouZmFpcm5lc3Mtd2FybnVuZyB7IGJhY2tncm91bmQ6ICNFNjdFMjI7IH0KLmZh aXJuZXNzLWtyaXRpc2NoIHsgYmFja2dyb3VuZDogI0MwMzkyQjsgfQouZmFpcm5lc3MtbmV1dHJh bCB7IGJhY2tncm91bmQ6ICM5NUE1QTY7IH0KLmZhaXJuZXNzLWhlYWRlciB7IGZvbnQtd2VpZ2h0 OiA3MDA7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgZm9udC1zaXplOiAxMHB4OyB0ZXh0LXRy YW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC41cHg7IHBhZGRpbmc6IDhweCAw IDRweDsgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50OyB9CgovKiBBYndlc2VuaGVpdHMt Q2hhcnQgKi8KLmFidy1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z OiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTMwcHgsIDFmcikpOyBnYXA6IDhweDsgfQouYWJ3 LWthcnRlIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgYm9yZGVyLXJhZGl1 czogOHB4OyBwYWRkaW5nOiAxMnB4OwogICAgdGV4dC1hbGlnbjogY2VudGVyOyBib3JkZXI6IDFw eCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAu MTVzIGVhc2U7IGN1cnNvcjogZGVmYXVsdDsKfQouYWJ3LWthcnRlOmhvdmVyIHsgdHJhbnNmb3Jt OiB0cmFuc2xhdGVZKC0xcHgpOyB9Ci5hYncta2FydGUtaWNvbiB7IGZvbnQtc2l6ZTogMjBweDsg bWFyZ2luLWJvdHRvbTogNHB4OyB9Ci5hYncta2FydGUtd2VydCB7IGZvbnQtc2l6ZTogMjRweDsg Zm9udC13ZWlnaHQ6IDgwMDsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfQou YWJ3LWthcnRlLWxhYmVsIHsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRl ZCk7IGZvbnQtd2VpZ2h0OiA2MDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1hcmdpbi10 b3A6IDJweDsgfQouYWJ3LWthcnRlLWRldGFpbCB7IGZvbnQtc2l6ZTogMTBweDsgY29sb3I6IHZh cigtLXRleHQtc2Vjb25kYXJ5KTsgbWFyZ2luLXRvcDogNnB4OyBsaW5lLWhlaWdodDogMS40OyB9 Ci5hYnctcGVyc29uZW4geyBmb250LXNpemU6IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29u ZGFyeSk7IG1hcmdpbi10b3A6IDhweDsgdGV4dC1hbGlnbjogbGVmdDsgbWF4LWhlaWdodDogMDsg b3ZlcmZsb3c6IGhpZGRlbjsgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzIGVhc2U7IH0KLmFi dy1rYXJ0ZS5vZmZlbiAuYWJ3LXBlcnNvbmVuIHsgbWF4LWhlaWdodDogMzAwcHg7IH0KCi8qID09 PT09IFdvY2hlbnBsYW4gPT09PT0gKi8KLndwLWxheW91dCB7CiAgICBkaXNwbGF5OiBmbGV4OyBm bGV4LWRpcmVjdGlvbjogY29sdW1uOyBmbGV4OiAxOyBvdmVyZmxvdzogaGlkZGVuOwp9Ci53cC10 b29sYmFyIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4 OwogICAgcGFkZGluZzogOHB4IDE2cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy10b29sYmFy KTsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwp9Ci53 cC16ZWl0cmF1bS1hbnplaWdlIHsKICAgIGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDcw MDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBtYXJnaW4tbGVmdDogOHB4Owp9Cgov KiA9PT09PT09PT09IFdvY2hlbnBsYW4gRkxELUxheW91dCAoS1ctU2ljaHQgaW0gRXhjZWwtU3Rp bCkgPT09PT09PT09PSAqLwoud3AtcGFnZSB7IGZsZXg6IDE7IG92ZXJmbG93OiBhdXRvOyBwYWRk aW5nOiAxNnB4OyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCwgI2YzZjNmMyk7IH0KLndw LXNlaXRlIHsKICAgIGJhY2tncm91bmQ6ICNmZmY7IG1heC13aWR0aDogMTIwMHB4OyBtYXJnaW46 IDAgYXV0bzsKICAgIHBhZGRpbmc6IDE0cHggMThweDsgYm9yZGVyLXJhZGl1czogNHB4OwogICAg Ym94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4wOCk7Cn0KLndwLXNlaXRlLWtvcGYg ewogICAgbWFyZ2luLWJvdHRvbTogMTJweDsgcGFkZGluZy1ib3R0b206IDEwcHg7CiAgICBib3Jk ZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tdGV4dC1wcmltYXJ5KTsKfQoud3Ata29wZi1oYXVw dCB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFm ciBhdXRvOwogICAgZ2FwOiAxNHB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQoud3Ata29w Zi1sb2dvIHsKICAgIGhlaWdodDogNTZweDsgbWF4LXdpZHRoOiAxMjBweDsgb2JqZWN0LWZpdDog Y29udGFpbjsKfQoud3Ata29wZi10ZXh0IHsgbWluLXdpZHRoOiAwOyB9Ci53cC1rb3BmLXRleHQg aDEgewogICAgbWFyZ2luOiAwOyBmb250LXNpemU6IDIwcHg7CiAgICBjb2xvcjogdmFyKC0tdGV4 dC1oZWFkaW5nKTsgZm9udC13ZWlnaHQ6IDcwMDsgbGluZS1oZWlnaHQ6IDEuMTU7Cn0KLndwLWtv cGYtZGllbnN0c3RlbGxlIHsKICAgIGZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDcwMDsg bGV0dGVyLXNwYWNpbmc6IDAuNnB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgY29s b3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKICAgIG1hcmdpbi1ib3R0b206IDJweDsKfQoud3At a29wZi11bnRlcnRpdGVsIHsKICAgIGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRleHQt c2Vjb25kYXJ5KTsKICAgIG1hcmdpbi10b3A6IDNweDsKfQoud3Ata29wZi1rdyB7CiAgICB0ZXh0 LWFsaWduOiByaWdodDsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxp Z2h0KTsgcGFkZGluZy1sZWZ0OiAxNHB4OwogICAgbWluLXdpZHRoOiAxMjBweDsKfQoud3Ata29w Zi1rdy1uciB7IGZvbnQtc2l6ZTogMjJweDsgbGluZS1oZWlnaHQ6IDE7IGNvbG9yOiB2YXIoLS10 ZXh0LWhlYWRpbmcpOyBmb250LXdlaWdodDogNzAwOyB9Ci53cC1rb3BmLWt3LW5yIHN0cm9uZyB7 IGZvbnQtc2l6ZTogMjhweDsgfQoud3Ata29wZi1rdy1kYXR1bSB7IGZvbnQtc2l6ZTogMTFweDsg Y29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgbWFyZ2luLXRvcDogM3B4OyB9Ci53cC1rb3Bm LWt3LWphaHIgeyBmb250LXNpemU6IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgfQou d3Ata29wZi1zcGVyciB7IG1hcmdpbi10b3A6IDZweDsgfQoud3AtdmVyZ2FuZ2VuLWJhZGdlIHsK ICAgIGJhY2tncm91bmQ6ICM1YTNhMmE7IGNvbG9yOiAjZjBkOGE4OyBwYWRkaW5nOiAzcHggMTBw eDsgYm9yZGVyLXJhZGl1czogM3B4OwogICAgZm9udC1zaXplOiAxMXB4OyBmb250LXdlaWdodDog NjAwOwp9Cgoud3AtdGFiIHsgd2lkdGg6IDEwMCU7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7 IGZvbnQtc2l6ZTogMTJweDsgbWFyZ2luLWJvdHRvbTogMTJweDsgfQoud3AtdGFiIHRoLCAud3At dGFiIHRkIHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgcGFkZGluZzog NHB4IDZweDsgdGV4dC1hbGlnbjogY2VudGVyOyB9Ci53cC10YWIgdGhlYWQgdGggeyBiYWNrZ3Jv dW5kOiByZ2JhKDAsMCwwLDAuMDQpOyBmb250LXdlaWdodDogNjAwOyB9CgovKiBMaW5rZSBIZWFk ZXItWmVsbGVuICjDvGJlciBMZmQuTnIgLyBOYW1lIC8gQW10cykga29tcGxldHQgb2huZQogICBI aW50ZXJncnVuZCBVTkQgb2huZSBDZWxsLUJvcmRlcnMg4oCUIHNvbnN0IGVudHN0ZWhlbiBkaWUg Z3JhdWVuIEJhaG5lbgogICB1bmQgZGllIHZlcnRpa2FsZW4gVHJlbm5saW5pZW4gendpc2NoZW4g ZGVuIGRyZWkgU3BhbHRlbi4gRGllIHJlY2h0ZQogICBIZWFkZXItU2VpdGUgKFZvcmdhYmUtTWFy a2VyLCBXb2NoZW50YWcsIERhdHVtKSBibGVpYnQgdW52ZXLDpG5kZXJ0LiAqLwoud3AtaC1sYWJl bCwKLndwLWgtc3BhbHRlbnRpdGVsLAoud3AtaC13dCB0aDpmaXJzdC1jaGlsZCB7CiAgICBiYWNr Z3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgYm9yZGVyOiBub25lICFpbXBvcnRh bnQ7Cn0KLndwLWgtbGFiZWwgewogICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OwogICAg Zm9udC13ZWlnaHQ6IDcwMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICBw YWRkaW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50Owp9Ci53cC1oLXNwYWx0ZW50aXRlbCB7CiAgICBm b250LXNpemU6IDExcHg7CiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICBwYWRk aW5nLWxlZnQ6IDhweCAhaW1wb3J0YW50Owp9Ci53cC1oLXZvcmcgdGggeyBmb250LXNpemU6IDEz cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IH0KLndwLXZvcmctRiB7IGJhY2tncm91bmQ6IHZhcigtLWZh cmJlLWZydWVoLCAjRkZFMDgyKSAhaW1wb3J0YW50OyBjb2xvcjogIzRhMzAwMCAhaW1wb3J0YW50 OyB9Ci53cC12b3JnLVMgeyBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1zcGFldCwgI0E1RDZBNykg IWltcG9ydGFudDsgY29sb3I6ICMxYjNhMWYgIWltcG9ydGFudDsgfQoud3Atdm9yZy1OIHsgYmFj a2dyb3VuZDogdmFyKC0tZmFyYmUtbmFjaHQsICM5MENBRjkpICFpbXBvcnRhbnQ7IGNvbG9yOiAj MGUyYTQ3ICFpbXBvcnRhbnQ7IH0KCi53cC1oLXd0IHRoLCAud3AtaC1kYXR1bSB0aCB7IGZvbnQt c2l6ZTogMTFweDsgfQoud3AtY29sLWhldXRlIHsgYmFja2dyb3VuZDogcmdiYSgyNTUsMTkzLDcs MC4wNyk7IH0KLndwLWNvbC13ZSAgICB7IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wMyk7IH0K LndwLWNvbC1mdCAgICB7IGJhY2tncm91bmQ6IHJnYmEoMTgzLCAyNiwgMjYsIDAuMDYpOyB9Cgou d3AtdGFiIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB0ZCB7IGJhY2tncm91bmQ6IHJnYmEoMCww LDAsMC4wMTUpOyB9Ci53cC10YWIgdGJvZHkgdHIud3AtbGVlci1zbG90IHRkIHsgY29sb3I6IHZh cigtLXRleHQtbXV0ZWQpOyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDEpOyB9Ci53cC10YWIg dGJvZHkgdHIud3AtbGVlci1zbG90IC53cC1uciB7IG9wYWNpdHk6IDAuNTsgfQoud3AtbnIgeyB3 aWR0aDogMzBweDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXdlaWdodDogNjAwOyB9 Ci8qIExpbmtlIFNwYWx0ZW4gKExmZC5OciAvIE5hbWUgLyBBbXRzKSBvaG5lIENlbGwtQm9yZGVy cy4gRGllIFRyZW5ubGluaWUKICAgendpc2NoZW4gZGVuIERhdGVuemVpbGVuIHdpcmQgc3RhdHRk ZXNzZW4gYXVmIGRpZSA8dHI+IGdlbGVndCDigJQgZGFtaXQKICAgaXN0IHNpZSBnYXJhbnRpZXJ0 IGVpbmUgZHVyY2hsYXVmZW5kZSBMaW5pZSwgdW5hYmjDpG5naWcgdm9uIENlbGwtQnJlaXRlLAog ICBQYWRkaW5nLVVudGVyc2NoaWVkZW4gdW5kIGJvcmRlci1jb2xsYXBzZS1FaWdlbmhlaXRlbi4g Ki8KLndwLXRhYiB0Ym9keSB0ciB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0t Ym9yZGVyLWxpZ2h0KTsKfQoud3AtdGFiIHRkLndwLW5yLAoud3AtdGFiIHRkLndwLW5hbWUsCi53 cC10YWIgdGQud3AtYW10cyB7CiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7CiAg ICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFp bXBvcnRhbnQ7CiAgICBwYWRkaW5nOiA0cHggOHB4ICFpbXBvcnRhbnQ7CiAgICB2ZXJ0aWNhbC1h bGlnbjogbWlkZGxlOwp9Ci53cC10YWIgdGQud3AtbmFtZSwKLndwLXRhYiB0ZC53cC1hbXRzIHsK ICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7 CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cn0KLndw LXRhYiB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgdGQud3AtbnIsCi53cC10YWIgdGJvZHkgdHI6 bnRoLWNoaWxkKGV2ZW4pIHRkLndwLW5hbWUsCi53cC10YWIgdGJvZHkgdHI6bnRoLWNoaWxkKGV2 ZW4pIHRkLndwLWFtdHMgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9Cgov KiBSYWhtZW5saW5pZW4gYW4gZGVuIEF1w59lbmthbnRlbiBkZXIgVGFnZXNzcGFsdGVuIHVuc2lj aHRiYXIgbWFjaGVuCiAgIChsaW5rcyBuZWJlbiBNbyAvIHJlY2h0cyBuZWJlbiBTbykg4oCUIHNv bnN0IGJyaWNodCBkaWUgVHJlbm51bmcgZGVyCiAgIGxpbmtlbiBCbG9jay1TcGFsdGVuIG9wdGlz Y2ggaW4gZGllIFRhZ2VzLVRhYmVsbGUgaGluZWluLiAqLwoud3AtaC12b3JnICB0aDpudGgtY2hp bGQoMiksICAgICAgICAgICAgICAgICAgICAvKiBlcnN0ZXMgVGFnZXMtVEggKG5hY2ggY29sc3Bh bj0zIExhYmVsKSAqLwoud3AtaC13dCAgICB0aDpudGgtY2hpbGQoMiksICAgICAgICAgICAgICAg ICAgICAvKiBlcnN0ZXMgVGFnZXMtVEggaW4gZGVyIFdvY2hlbnRhZy1aZWlsZSAqLwoud3AtaC1k YXR1bSB0aDpudGgtY2hpbGQoNCksICAgICAgICAgICAgICAgICAgICAvKiBlcnN0ZXMgVGFnZXMt VEggKG5hY2ggMyBTcGFsdGVudGl0ZWxuKSAqLwoud3AtdGFiIHRib2R5IHRkLndwLWFtdHMgKyB0 ZCB7ICAgICAgICAgICAgICAgICAvKiBlcnN0ZXMgVGFnZXMtVEQgaW4gamVkZXIgRGF0ZW56ZWls ZSAqLwogICAgYm9yZGVyLWxlZnQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7Cn0KLndw LXRhYiB0aDpsYXN0LWNoaWxkLAoud3AtdGFiIHRkOmxhc3QtY2hpbGQgewogICAgYm9yZGVyLXJp Z2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50Owp9Cgoud3AtdGFiIHRkLndwLW5hbWUg ewogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGZvbnQtc2l6ZTogMTNweDsKfQoud3AtdGFiIHRk LndwLWFtdHMgewogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgZm9udC1zaXplOiAx MXB4OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKfQoKLyogTGVlcmUgU2xvdHMgYXVmIGRlbSBCaWxk c2NoaXJtIGF1c2JsZW5kZW4gKERydWNrIHplaWd0IHNpZSB3ZWl0ZXIpICovCi53cC10YWIgdHIu d3AtbGVlci1zbG90IHsgZGlzcGxheTogbm9uZTsgfQpAbWVkaWEgcHJpbnQgewogICAgLndwLXRh YiB0ci53cC1sZWVyLXNsb3QgeyBkaXNwbGF5OiB0YWJsZS1yb3c7IH0KfQoKLyogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogICBMSVZFLVNZTkMgSElHSExJR0hUIOKAlCBnZWFlbmRlcnRlIFplbGxlbiBsZXVj aHRlbiBrdXJ6IGF1Ziwgd2VubiBlaW4KICAgYW5kZXJlciBVc2VyIGVpbmUgQWVuZGVydW5nIGdl cHVzaHQgaGF0IChBdWRpdCAyMDI2LTA1LTA0IC8gTXVsdGktVXNlci1BKS4KICAgWndlaSBWYXJp YW50ZW46CiAgIC0gLnplbGxlLWZsYXNoICAgICAgZnVlciBIYXVwdGFuc2ljaHRzLVplbGxlbiAo SW5saW5lLVBpbGxlKQogICAtIC56ZWxsZS1mbGFzaC1yb3cgIGZ1ZXIgRFNNLVplbGxlbiAvIEtv bW1lbnRhci1aZWxsZW4gKFJlaWhlKQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCkBrZXlmcmFtZXMg c3luY1plbGxlRmxhc2ggewogICAgMCUgICB7IGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUs IDE2OCwgMzIsIDAuMCk7ICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE5NiwgNjQsIDAu NTUpOyB9CiAgICAzNSUgIHsgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMjU1LCAxNjgsIDMy LCAwLjU1KTsgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDE5NiwgNjQsIDAuNDApOyB9CiAg ICAxMDAlIHsgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMTY4LCAzMiwgMC4wKTsgICBi YWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfQp9Ci56ZWxsZS1mbGFzaCB7CiAgICBhbmlt YXRpb246IHN5bmNaZWxsZUZsYXNoIDkwMG1zIGVhc2Utb3V0IDE7CiAgICBib3JkZXItcmFkaXVz OiAzcHg7Cn0KQGtleWZyYW1lcyBzeW5jRHNtRmxhc2ggewogICAgMCUgICB7IG91dGxpbmU6IDJw eCBzb2xpZCByZ2JhKDI1NSwgMTY4LCAzMiwgMC4wKTsgICBvdXRsaW5lLW9mZnNldDogLTJweDsg fQogICAgMzUlICB7IG91dGxpbmU6IDJweCBzb2xpZCByZ2JhKDI1NSwgMTY4LCAzMiwgMC45NSk7 ICBvdXRsaW5lLW9mZnNldDogLTJweDsgfQogICAgMTAwJSB7IG91dGxpbmU6IDJweCBzb2xpZCBy Z2JhKDI1NSwgMTY4LCAzMiwgMC4wKTsgICBvdXRsaW5lLW9mZnNldDogLTJweDsgfQp9Ci56ZWxs ZS1mbGFzaC1yb3cgewogICAgYW5pbWF0aW9uOiBzeW5jRHNtRmxhc2ggOTAwbXMgZWFzZS1vdXQg MTsKfQoud3AtemVsbGUgeyBmb250LXdlaWdodDogNjAwOyBtaW4td2lkdGg6IDU2cHg7IH0KLndw LXplbGxlLWVkaXQgeyBjdXJzb3I6IHBvaW50ZXI7IH0KLndwLXplbGxlLWVkaXQ6aG92ZXIgeyBi b3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggdmFyKC0tdGV4dC1wcmltYXJ5KTsgfQoKLndwLW5v dGl6ZW4geyBtYXJnaW4tdG9wOiA4cHg7IHBhZGRpbmc6IDEwcHggMTJweDsgYm9yZGVyOiAxcHgg c29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsgYm9yZGVyLXJhZGl1czogM3B4OyBiYWNrZ3JvdW5k OiB2YXIoLS1iZy1jYXJkLCAjZmZmKTsgfQoud3Atbm90aXplbi10aXRlbCB7IGZvbnQtc2l6ZTog MTFweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsgbWFy Z2luLWJvdHRvbTogNHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2lu ZzogMC41cHg7IH0KLndwLW5vdGl6LXRleHRhcmVhIHsKICAgIHdpZHRoOiAxMDAlOyBtaW4taGVp Z2h0OiA5MHB4OyByZXNpemU6IHZlcnRpY2FsOwogICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IGZv bnQtc2l6ZTogMTJweDsgcGFkZGluZzogNnB4IDhweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZh cigtLWJvcmRlci1saWdodCk7IGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGJhY2tncm91bmQ6IHZh cigtLWJnLWNhcmQsICNmZmYpOyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIGJveC1z aXppbmc6IGJvcmRlci1ib3g7Cn0KLndwLW5vdGl6LXRleHRhcmVhW3JlYWRvbmx5XSB7IGJhY2tn cm91bmQ6IHJnYmEoMCwwLDAsMC4wNCk7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgY3Vyc29y OiBub3QtYWxsb3dlZDsgfQoKLndwLXNlaXRlLWZ1c3MgewogICAgZGlzcGxheTogZmxleDsganVz dGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBtYXJnaW4tdG9wOiAxMHB4OwogICAgcGFkZGlu Zy10b3A6IDZweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAg ICBmb250LXNpemU6IDEwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKfQoKLyogQWx0ZSBW STMtV29jaGVucGxhbi1LbGFzc2VuIHdlcmRlbiB2b20gbmV1ZW4gUmVuZGVyIG5pY2h0IG1laHIg Z2VudXR6dDsgYmxlaWJlbiBhbHMKICAgRmFsbGJhY2sgZXJoYWx0ZW4gKHNpZWhlIHdlaXRlciB1 bnRlbikuICovCi53cC1zY3JvbGwgewogICAgZmxleDogMTsgb3ZlcmZsb3c6IGF1dG87IHBhZGRp bmc6IDE2cHg7Cn0KLndwLXRhYmVsbGUgewogICAgd2lkdGg6IDEwMCU7CiAgICBib3JkZXItY29s bGFwc2U6IGNvbGxhcHNlOwogICAgZm9udC1zaXplOiAxMnB4OwogICAgdGFibGUtbGF5b3V0OiBm aXhlZDsKfQoud3AtdGFiZWxsZSB0aCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5 KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgcGFkZGluZzogNnB4IDZw eDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGZvbnQtc2l6ZTogMTFweDsKICAgIGZvbnQt d2VpZ2h0OiA3MDA7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUp OwogICAgcG9zaXRpb246IHN0aWNreTsKICAgIHRvcDogMDsKICAgIHotaW5kZXg6IDI7Cn0KLndw LXRoLXRhZyB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5LWRhcmspICFpbXBvcnRh bnQ7CiAgICB3aWR0aDogMTYwcHg7CiAgICBtaW4td2lkdGg6IDE2MHB4OwogICAgdGV4dC1hbGln bjogbGVmdCAhaW1wb3J0YW50OwogICAgcGFkZGluZy1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7Cn0K LndwLXRoLWdydXBwZSB7IGZvbnQtc2l6ZTogMTJweDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OyB9 Ci53cC10aC1kZ2wgeyBiYWNrZ3JvdW5kOiAjMWEzZDVjICFpbXBvcnRhbnQ7IH0KLndwLXRoLXdk ZiB7IGJhY2tncm91bmQ6ICMzZDJhMWEgIWltcG9ydGFudDsgfQoud3AtdGgtc2NoaWNodDIgeyBm b250LXNpemU6IDEwcHg7IGZvbnQtd2VpZ2h0OiA2MDA7IHBhZGRpbmc6IDNweCA0cHggIWltcG9y dGFudDsgfQoud3AtdGgtZG5yLCAud3AtdGgtZG5yLWdydXBwZSB7IGJhY2tncm91bmQ6ICNiOGEw MjAgIWltcG9ydGFudDsgY29sb3I6ICMxYTFhMWEgIWltcG9ydGFudDsgfQoud3AtdGgtdHJlbm5l ciB7IHdpZHRoOiAxMHB4OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyBib3Jk ZXI6IG5vbmUgIWltcG9ydGFudDsgfQoKLndwLXRhYmVsbGUgdGQgewogICAgcGFkZGluZzogMnB4 IDRweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICB2ZXJ0 aWNhbC1hbGlnbjogbWlkZGxlOwogICAgbWluLWhlaWdodDogMjBweDsKICAgIGZvbnQtc2l6ZTog MTFweDsKfQoud3AtdGQtdHJlbm5lciB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRh bnQ7IGJvcmRlcjogbm9uZSAhaW1wb3J0YW50OyB9Cgoud3Atc2NoaWNodC1mcnVlaCB7IGJvcmRl ci1sZWZ0OiAzcHggc29saWQgdmFyKC0tZmFyYmUtZnJ1ZWgpOyB9Ci53cC1zY2hpY2h0LXNwYWV0 IHsgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1mYXJiZS1zcGFldCk7IH0KLndwLXNjaGlj aHQtbmFjaHQgeyBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWZhcmJlLW5hY2h0KTsgfQoK LyogVGFnZXMtU3BhbHRlOiBXb2NoZW50YWcgKyBEYXR1bSArIE1ldGEgKEZlaWVydGFnLCBTb25k ZXJ0YWcsIEdlYnVydHN0YWcsIFN0w6Rya2UpICovCi53cC10ZC10YWcgewogICAgYmFja2dyb3Vu ZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50 OwogICAgcGFkZGluZzogNnB4IDEwcHggIWltcG9ydGFudDsKICAgIGJvcmRlci1yaWdodDogMnB4 IHNvbGlkIHZhcigtLWJvcmRlci1zdHJvbmcpOwp9Ci53cC10YWcta29wZiB7IGRpc3BsYXk6IGZs ZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogM3B4OyBmb250LXNpemU6IDExcHg7IH0K LndwLXRhZy13dCB7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZh cigtLXRleHQtaGVhZGluZyk7IH0KLndwLXRhZy1kYXR1bSB7IGZvbnQtd2VpZ2h0OiA2MDA7IH0K LndwLXRhZy1mdC1uYW1lIHsgY29sb3I6IHZhcigtLWZhcmJlLWZlaGxlcik7IGZvbnQtd2VpZ2h0 OiA2MDA7IGZvbnQtc2l6ZTogMTBweDsgfQoud3AtdGFnLWZlcmllbi1uYW1lIHsgY29sb3I6ICNl NjdlMjI7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMTBweDsgfQoud3AtdGFnLXNvbmRl ci1oaW53ZWlzIHsgY29sb3I6ICM0YTkwZTI7IGZvbnQtc2l6ZTogMTBweDsgfQoud3AtdGFnLXNv bmRlci13YXJudW5nIHsgY29sb3I6ICNlNjdlMjI7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWln aHQ6IDYwMDsgfQoud3AtdGFnLWdiIHsgY29sb3I6ICNkNGEwMTc7IGZvbnQtc2l6ZTogMTBweDsg fQoud3AtdGFnLW1ldGEgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgYWxpZ24taXRlbXM6IGNl bnRlcjsgbWFyZ2luLXRvcDogMnB4OyB9Ci53cC10YWctc3RhZXJrZSB7CiAgICBkaXNwbGF5OiBp bmxpbmUtYmxvY2s7IHBhZGRpbmc6IDFweCA1cHg7IGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGZv bnQtZmFtaWx5OiBtb25vc3BhY2U7IGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDcwMDsK ICAgIGNvbG9yOiAjZmZmOwp9Ci53cC10YWctc3RhZXJrZS1vayB7IGJhY2tncm91bmQ6IHZhcigt LWZhcmJlLWVyZm9sZyk7IH0KLndwLXRhZy1zdGFlcmtlLXdhcm4geyBiYWNrZ3JvdW5kOiB2YXIo LS1mYXJiZS1mZWhsZXIpOyBhbmltYXRpb246IHB1bHNSb3QgMnMgZWFzZS1pbi1vdXQgaW5maW5p dGU7IH0KLndwLXRhZy1hYncgeyBmb250LXNpemU6IDEwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11 dGVkKTsgY3Vyc29yOiBoZWxwOyB9CgovKiBUYWdlcy1CbG9jayBIaW50ZXJncnVuZC1WYXJpYW50 ZW4gKi8KLndwLXRhZy1oZXV0ZSAud3AtdGQtdGFnIHsgYmFja2dyb3VuZDogdmFyKC0tdGFnLWhl dXRlKTsgY29sb3I6ICNmZmY7IH0KLndwLXRhZy1oZXV0ZSAud3AtdGQtdGFnIC53cC10YWctd3Qs IC53cC10YWctaGV1dGUgLndwLXRkLXRhZyAud3AtdGFnLWRhdHVtIHsgY29sb3I6ICNmZmY7IH0K LndwLXRhZy1mdCAud3AtdGQtdGFnIHsgYmFja2dyb3VuZDogdmFyKC0tdGFnLWZlaWVydGFnKTsg fQoud3AtdGFnLXdlIC53cC10ZC10YWcgeyBiYWNrZ3JvdW5kOiB2YXIoLS10YWctd29jaGVuZW5k ZSk7IGNvbG9yOiAjRThEOEYwOyB9Ci53cC10YWctd2UgLndwLXRkLXRhZyAud3AtdGFnLXd0LCAu d3AtdGFnLXdlIC53cC10ZC10YWcgLndwLXRhZy1kYXR1bSB7IGNvbG9yOiAjRjBFMEY1OyB9Cgov KiBMZWljaHRlIEhpbnRlcmdydW5kLUVpbmbDpHJidW5nIGluIE5hbWVuc3plbGxlbiBhbSBGVC9X RSAqLwoud3AtdGFnLWZ0IC53cC10ZC1uYW1lLCAud3AtdGFnLWZ0IC53cC10ZC1kbnIgeyBiYWNr Z3JvdW5kOiByZ2JhKDEzOSwyNiwyNiwwLjA4KTsgfQoud3AtdGFnLXdlIC53cC10ZC1uYW1lLCAu d3AtdGFnLXdlIC53cC10ZC1kbnIgeyBiYWNrZ3JvdW5kOiByZ2JhKDkxLDQ1LDEyMiwwLjA3KTsg fQoud3AtdGFnLWhldXRlIC53cC10ZC1uYW1lLCAud3AtdGFnLWhldXRlIC53cC10ZC1kbnIgeyBi YWNrZ3JvdW5kOiByZ2JhKDIxMiwxNjAsMjMsMC4xMCk7IH0KCi8qIFRhZ2VzYmxvY2stVHJlbm5r YW50ZSAqLwoud3AtemVpbGUtdGFnLWVuZGUgdGQgeyBib3JkZXItYm90dG9tOiAycHggc29saWQg dmFyKC0tYm9yZGVyLXN0cm9uZyk7IH0KCi8qIE5hbWVuLVplbGxlbiAqLwoud3AtdGQtbmFtZSB7 IHBhZGRpbmc6IDJweCA2cHggIWltcG9ydGFudDsgdGV4dC1hbGlnbjogY2VudGVyOyB9Ci53cC1u YW1lIHsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIHBhZGRpbmc6IDAgNHB4OwogICAg Zm9udC1zaXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIHdoaXRlLXNwYWNlOiBu b3dyYXA7Cn0KLndwLW5hbWUtdmVyYW50dyB7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgY29s b3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICNENEEw MTc7CiAgICBwYWRkaW5nLWxlZnQ6IDVweDsKfQoud3AtbmFtZS1mYnAgeyBmb250LXN0eWxlOiBp dGFsaWM7IH0KLndwLW5hbWUtZmJwIHN1cCB7IGNvbG9yOiAjZDRhMDE3OyBmb250LXdlaWdodDog NzAwOyBtYXJnaW4tbGVmdDogMXB4OyB9Ci8qID09PT09IFdvY2hlbnBsYW46IFRhZ2VzYmzDtmNr ZSAoQmlsZHNjaGlybSArIEJhc2lzIGbDvHJzIERydWNrZW4pID09PT09ICovCi53cC1zZWl0ZSB7 CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgcGFkZGluZzogMTZweCAxOHB4OwogICAg bWF4LXdpZHRoOiAxMjAwcHg7IG1hcmdpbjogMTJweCBhdXRvOwogICAgYm94LXNoYWRvdzogMCAy cHggMTBweCByZ2JhKDAsMCwwLDAuMDYpOwogICAgYm9yZGVyLXJhZGl1czogNHB4Owp9Ci53cC1z ZWl0ZS1rb3BmIHsgbWFyZ2luLWJvdHRvbTogMTBweDsgcGFkZGluZy1ib3R0b206IDhweDsgYm9y ZGVyLWJvdHRvbTogMnB4IHNvbGlkIHZhcigtLWJnLXByaW1hcnkpOyB9Ci53cC1zZWl0ZS1rb3Bm IGgxIHsKICAgIGZvbnQtc2l6ZTogMTVweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigt LXRleHQtaGVhZGluZyk7CiAgICBsZXR0ZXItc3BhY2luZzogMC4zcHg7IG1hcmdpbjogMDsKfQou d3Atc2VpdGUta29wZiBoMSBzdHJvbmcgeyBjb2xvcjogdmFyKC0tYmctcHJpbWFyeSk7IH0KCi53 cC10YWdibG9jayB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5z OiAxNDBweCAxZnI7CiAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgICBib3JkZXI6IDFweCBzb2xp ZCB2YXIoLS1iZy1wcmltYXJ5KTsKICAgIGJhY2tncm91bmQ6ICNmZmY7Cn0KW2RhdGEtdGhlbWU9 Im5pZ2h0Il0gLndwLXRhZ2Jsb2NrIHsgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJvcmRl ci1jb2xvcjogIzNhNGQ2MDsgfQoKLndwLXRhZ2Jsb2NrLWxhYmVsIHsKICAgIGJhY2tncm91bmQ6 IHZhcigtLWJnLXByaW1hcnkpOyBjb2xvcjogI2ZmZjsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgt ZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBzdHJldGNoOyBqdXN0aWZ5LWNvbnRlbnQ6 IGZsZXgtc3RhcnQ7CiAgICBwYWRkaW5nOiA2cHggOHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyBnYXA6 IDA7Cn0KLndwLXRsLWtvcGYgewogICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGJhc2Vs aW5lOyBnYXA6IDZweDsKICAgIHBhZGRpbmctYm90dG9tOiA0cHg7CiAgICBib3JkZXItYm90dG9t OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpOwp9Ci53cC10bC13dCB7IGZvbnQtc2l6 ZTogMTNweDsgZm9udC13ZWlnaHQ6IDcwMDsgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OyB9Ci53cC10 bC1kYXR1bSB7IGZvbnQtc2l6ZTogMTFweDsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgb3BhY2l0 eTogMC45OyB9Ci53cC10bC16dXNhdHotYm94IHsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGly ZWN0aW9uOiBjb2x1bW47IGdhcDogM3B4OyBtYXJnaW4tdG9wOiAxNHB4OyB3aWR0aDogMTAwJTsK fQoud3AtdGwtenVzYXR6IHsKICAgIGZvbnQtc2l6ZTogMTBweDsgcGFkZGluZzogMnB4IDVweDsg Ym9yZGVyLXJhZGl1czogMnB4OwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjE1 KTsgbGluZS1oZWlnaHQ6IDEuMzsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IG92ZXJmbG93OiBo aWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogbGVmdDsKfQou d3AtdGwtei1mdCB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDIwMCwyMDAsMC4yNSk7IGZvbnQtd2Vp Z2h0OiA3MDA7IH0KLndwLXRsLXotd2FybnVuZyB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDE4MCwx MDAsMC4zKTsgfQoKLndwLXRhZ2Jsb2NrLWluaGFsdCB7IHBhZGRpbmc6IDA7IH0KCi53cC10YWdi bG9jay10YWJlbGxlIHsKICAgIHdpZHRoOiAxMDAlOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNl OyB0YWJsZS1sYXlvdXQ6IGZpeGVkOwogICAgZm9udC1zaXplOiAxMnB4Owp9Ci53cC10YWdibG9j ay10YWJlbGxlIHRoLAoud3AtdGFnYmxvY2stdGFiZWxsZSB0ZCB7CiAgICBib3JkZXI6IDFweCBz b2xpZCAjYzhjZWQ0OwogICAgcGFkZGluZzogM3B4IDZweDsKICAgIHZlcnRpY2FsLWFsaWduOiBt aWRkbGU7CiAgICB0ZXh0LWFsaWduOiBsZWZ0Owp9CltkYXRhLXRoZW1lPSJuaWdodCJdIC53cC10 YWdibG9jay10YWJlbGxlIHRoLApbZGF0YS10aGVtZT0ibmlnaHQiXSAud3AtdGFnYmxvY2stdGFi ZWxsZSB0ZCB7IGJvcmRlci1jb2xvcjogIzNhNGQ2MDsgfQoKLndwLXRhZy1oMSB0aCB7CiAgICBi YWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5KTsgY29sb3I6ICNmZmY7CiAgICBmb250LXdlaWdo dDogNzAwOyBmb250LXNpemU6IDEycHg7IHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHBhZGRpbmc6 IDRweCA2cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1iZy1wcmltYXJ5KTsKfQoud3At dGFnLWgxIHRoLndwLWgxLWRnbCB7IGJvcmRlci1yaWdodDogMnB4IHNvbGlkICNmZmY7IH0KCi53 cC10YWctaDIgdGggewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeS1kYXJrKTsgY29s b3I6ICNmZmY7CiAgICBmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDExcHg7IHRleHQtYWxp Z246IGNlbnRlcjsKICAgIHBhZGRpbmc6IDJweCA2cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2 YXIoLS1iZy1wcmltYXJ5KTsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1z cGFjaW5nOiAwLjNweDsKfQoKLndwLXRhZ2Jsb2NrLXRhYmVsbGUgdGQgewogICAgaGVpZ2h0OiAy MnB4OyBtaW4taGVpZ2h0OiAyMnB4OwogICAgZm9udC1zaXplOiAxMXB4Owp9Ci53cC10YWdibG9j ay10YWJlbGxlIHRkLndwLXNjaGljaHQtZnJ1ZWggeyBiYWNrZ3JvdW5kOiByZ2JhKDE4MywyOCwy OCwwLjA1KTsgfQoud3AtdGFnYmxvY2stdGFiZWxsZSB0ZC53cC1zY2hpY2h0LXNwYWV0IHsgYmFj a2dyb3VuZDogcmdiYSgyNiw4MiwxMTgsMC4wNSk7IH0KLndwLXRhZ2Jsb2NrLXRhYmVsbGUgdGQu d3Atc2NoaWNodC1uYWNodCB7IGJhY2tncm91bmQ6IHJnYmEoMjcsOTQsMzIsMC4wNSk7IH0KW2Rh dGEtdGhlbWU9Im5pZ2h0Il0gLndwLXRhZ2Jsb2NrLXRhYmVsbGUgdGQud3Atc2NoaWNodC1mcnVl aCB7IGJhY2tncm91bmQ6IHJnYmEoMTgzLDI4LDI4LDAuMTIpOyB9CltkYXRhLXRoZW1lPSJuaWdo dCJdIC53cC10YWdibG9jay10YWJlbGxlIHRkLndwLXNjaGljaHQtc3BhZXQgeyBiYWNrZ3JvdW5k OiByZ2JhKDI2LDgyLDExOCwwLjE1KTsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAud3AtdGFnYmxv Y2stdGFiZWxsZSB0ZC53cC1zY2hpY2h0LW5hY2h0IHsgYmFja2dyb3VuZDogcmdiYSgyNyw5NCwz MiwwLjEyKTsgfQoKLyogVmVydGlrYWxlIFRyZW5udW5nIERHTCB8IFdERi9GQlAgKi8KLndwLXRh Z2Jsb2NrLXRhYmVsbGUgdGQ6bnRoLWNoaWxkKDMpLAoud3AtdGFnYmxvY2stdGFiZWxsZSAud3At dGFnLWgyIHRoOm50aC1jaGlsZCgzKSB7IGJvcmRlci1yaWdodDogMnB4IHNvbGlkIHZhcigtLWJn LXByaW1hcnkpOyB9Cgoud3AtbmFtZSB7IGZvbnQtc2l6ZTogMTFweDsgd2hpdGUtc3BhY2U6IG5v d3JhcDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IGRpc3BsYXk6 IGlubGluZS1ibG9jazsgbWF4LXdpZHRoOiAxMDAlOyB9Ci53cC1uYW1lLWZicCB7IGZvbnQtc3R5 bGU6IGl0YWxpYzsgfQoud3AtbmFtZS1mYnAgc3VwIHsgY29sb3I6ICNENEEwMTc7IGZvbnQtd2Vp Z2h0OiA3MDA7IG1hcmdpbi1sZWZ0OiAxcHg7IH0KCi8qIFRhZy1TdGF0dXMtQWt6ZW50ZSAoZGV6 ZW50KSAqLwoud3AtdGFnYmxvY2staGV1dGUgeyBvdXRsaW5lOiAycHggc29saWQgI0Q0QTAxNzsg b3V0bGluZS1vZmZzZXQ6IC0xcHg7IH0KLndwLXRhZ2Jsb2NrLWZ0IC53cC10YWdibG9jay1sYWJl bCB7IGJhY2tncm91bmQ6ICM4QjFBMUE7IH0KLndwLXRhZ2Jsb2NrLWZ0LXdpY2h0aWcgLndwLXRh Z2Jsb2NrLWxhYmVsIHsgYmFja2dyb3VuZDogI0I3MUMxQzsgfQoud3AtdGFnYmxvY2std2UgLndw LXRhZ2Jsb2NrLWxhYmVsIHsgYmFja2dyb3VuZDogIzUyODJBNjsgfQoud3AtdGFnYmxvY2stbnMg LndwLXRhZ2Jsb2NrLWxhYmVsIHsgYmFja2dyb3VuZDogIzFBNTI3NjsgfQoKLndwLXNlaXRlLWZ1 c3MgewogICAgbWFyZ2luLXRvcDogMTJweDsgcGFkZGluZy10b3A6IDEwcHg7CiAgICBib3JkZXIt dG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGRpc3BsYXk6IGZsZXg7IGp1 c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGZvbnQtc2l6ZTogMTBweDsgY29sb3I6 IHZhcigtLXRleHQtbXV0ZWQpOwp9Ci53cC1mdXNzLW5vdGUgc3VwIHsgZm9udC13ZWlnaHQ6IDcw MDsgfQoKLyogPT09PT0gRHJ1Y2stTGF5b3V0IFdvY2hlbnBsYW4gRkxEICgxIFNlaXRlIEE0IGhv Y2gpID09PT09CiAgIEE0IHBvcnRyYWl0OiAyMTAgw5cgMjk3bW0uIE1pdCA3bW0vOG1tIE1hcmdp biBibGVpYmVuIH4xOTZtbSDDlyB+MjgzbW0uCiAgIExheW91dDogSGVhZGVyIH4yNW1tLCBUYWJl bGxlIH4xOTBtbSAoMyBIZWFkZXIgKyAzNiBTbG90cyDDoCB+NC43bW0pLAogICBOb3RpemVuIH41 MG1tLCBGb290ZXIgfjZtbSA9IH4yNzFtbSDigJQgcGFzc3QgbWl0IFNwaWVscmF1bS4gKi8KQG1l ZGlhIHByaW50IHsKICAgIEBwYWdlIHsgc2l6ZTogQTQgcG9ydHJhaXQ7IG1hcmdpbjogOG1tIDdt bTsgfQoKICAgIC8qIEFsbGVzIGF1w59lciBkZW0gV29jaGVucGxhbiBhdXNibGVuZGVuICovCiAg ICBib2R5LmRydWNrZW4td29jaGVucGxhbiAuYW5zaWNodDpub3QoI2Fuc2ljaHQtd29jaGVucGxh biksCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiBoZWFkZXIsCiAgICBib2R5LmRydWNrZW4t d29jaGVucGxhbiBuYXYsCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAudG9vbGJhciwKICAg IGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10b29sYmFyLAogICAgYm9keS5kcnVja2VuLXdv Y2hlbnBsYW4gLndwLW5vLXByaW50LAogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gI21vZGFs LW92ZXJsYXksCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAjdG9hc3QtY29udGFpbmVyLAog ICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLmhlYWRlciwKICAgIGJvZHkuZHJ1Y2tlbi13b2No ZW5wbGFuIC5oYXVwdG5hdiwKICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC5zZWl0ZW5sZWlz dGUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0KCiAgICBib2R5LmRydWNrZW4td29jaGVu cGxhbiB7IGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDsgfQogICAgYm9keS5kcnVja2VuLXdv Y2hlbnBsYW4gI2Fuc2ljaHQtd29jaGVucGxhbiB7CiAgICAgICAgZGlzcGxheTogYmxvY2sgIWlt cG9ydGFudDsKICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7IG1hcmdpbjogMCAhaW1wb3J0 YW50OyBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5LmRydWNrZW4t d29jaGVucGxhbiAud3AtcGFnZSwKICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1sYXlv dXQgewogICAgICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7IG1heC1oZWlnaHQ6IG5v bmUgIWltcG9ydGFudDsgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZzog MCAhaW1wb3J0YW50OyBtYXJnaW46IDAgIWltcG9ydGFudDsgYmFja2dyb3VuZDogI2ZmZiAhaW1w b3J0YW50OwogICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5 LmRydWNrZW4td29jaGVucGxhbiAud3Atc2VpdGUgewogICAgICAgIGJhY2tncm91bmQ6ICNmZmYg IWltcG9ydGFudDsgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbjog MCAhaW1wb3J0YW50OyBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgbWF4LXdpZHRoOiBu b25lICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAv KiBIZWFkZXIg4oCUIGtvbXBha3QsIGVpbnplaWxpZyB3aXJrZW5kLCBMb2dvICsgVGl0ZWwgKyBL Vy1Cb3ggcmVjaHRzICovCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3Atc2VpdGUta29w ZiB7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogM21tOyBwYWRkaW5nLWJvdHRvbTogMm1tOwogICAg ICAgIGJvcmRlci1ib3R0b206IDAuNm1tIHNvbGlkICMwMDA7CiAgICB9CiAgICBib2R5LmRydWNr ZW4td29jaGVucGxhbiAud3Ata29wZi1oYXVwdCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1 bW5zOiBhdXRvIDFmciBhdXRvOwogICAgICAgIGdhcDogNm1tOyBhbGlnbi1pdGVtczogY2VudGVy OwogICAgfQogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLWtvcGYtbG9nbyB7CiAgICAg ICAgaGVpZ2h0OiAxNG1tICFpbXBvcnRhbnQ7IG1heC13aWR0aDogMjZtbSAhaW1wb3J0YW50Owog ICAgfQogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLWtvcGYtdGV4dCBoMSB7IGZvbnQt c2l6ZTogMTNwdDsgbWFyZ2luOiAwOyBsaW5lLWhlaWdodDogMS4xOyB9CiAgICBib2R5LmRydWNr ZW4td29jaGVucGxhbiAud3Ata29wZi1kaWVuc3RzdGVsbGUgeyBmb250LXNpemU6IDcuNXB0OyBs ZXR0ZXItc3BhY2luZzogMC40cHg7IG1hcmdpbi1ib3R0b206IDFtbTsgfQogICAgYm9keS5kcnVj a2VuLXdvY2hlbnBsYW4gLndwLWtvcGYtdW50ZXJ0aXRlbCB7IGZvbnQtc2l6ZTogOHB0OyBtYXJn aW4tdG9wOiAxbW07IH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1rb3BmLWt3IHsK ICAgICAgICBib3JkZXItbGVmdDogMC4zbW0gc29saWQgIzg4ODsgcGFkZGluZy1sZWZ0OiA0bW07 IHRleHQtYWxpZ246IHJpZ2h0OyBtaW4td2lkdGg6IDA7CiAgICB9CiAgICBib2R5LmRydWNrZW4t d29jaGVucGxhbiAud3Ata29wZi1rdy1uciB7IGZvbnQtc2l6ZTogMTNwdDsgbGluZS1oZWlnaHQ6 IDE7IH0KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1rb3BmLWt3LW5yIHN0cm9uZyB7 IGZvbnQtc2l6ZTogMTlwdDsgfQogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLWtvcGYt a3ctZGF0dW0geyBmb250LXNpemU6IDguNXB0OyBtYXJnaW4tdG9wOiAxbW07IH0KICAgIGJvZHku ZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1rb3BmLWt3LWphaHIgeyBmb250LXNpemU6IDcuNXB0OyB9 CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdmVyZ2FuZ2VuLWJhZGdlIHsgZm9udC1z aXplOiA3LjVwdDsgcGFkZGluZzogMC41bW0gMm1tOyB9CgogICAgLyogVGFiZWxsZSDigJQgZmVz dCBhdWYgMTk2bW0gRHJ1Y2ticmVpdGUgbWl0IGtsYXIgdmVydGVpbHRlbiBTcGFsdGVuOgogICAg ICAgTGZkLk5yLiB+OW1tLCBOYW1lIH4zOG1tLCA3IFRhZ2Ugw6AgfjIxbW0gPSAxNDdtbSDihpIg VG90YWwgfjE5NG1tLiAqLwogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRhYiB7CiAg ICAgICAgZm9udC1zaXplOiA5cHQ7IG1hcmdpbi1ib3R0b206IDJtbTsKICAgICAgICB0YWJsZS1s YXlvdXQ6IGZpeGVkOyB3aWR0aDogMTAwJTsKICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZv aWQgIWltcG9ydGFudDsgYnJlYWstaW5zaWRlOiBhdm9pZCAhaW1wb3J0YW50OwogICAgfQogICAg LyogSW0gV29jaGVucGxhbi1EcnVjayB3aXJkIGRpZSBCcmFuZCBzY2hvbiDDvGJlciAud3Atc2Vp dGUta29wZgogICAgICAgKExvZ28gKyBUaXRlbCArIEtXLUJveCkgZ2VyZW5kZXJ0IOKAlCBkaWUg Z2xvYmFsZSBQZXJzcGxhbi1SZWdlbAogICAgICAgJ2JvZHkgPiAja29wZmxlaXN0ZSB7IGRpc3Bs YXk6IGZsZXggfScgbXVzcyBoaWVyIGV4cGxpeml0CiAgICAgICDDvGJlcnNjaHJpZWJlbiB3ZXJk ZW4uICovCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiA+ICNrb3BmbGVpc3RlIHsgZGlzcGxh eTogbm9uZSAhaW1wb3J0YW50OyB9CgogICAgLyogU3BhbHRlbmJyZWl0ZW46IEFtdHMgYXVmIDMy bW0gKEhlYWRlciDigJ5BbXRzYmV6ZWljaG51bmciIHBhc3N0CiAgICAgICBzaWNoZXIpOyBOYW1l IDM2bW07IFRhZ2Vzc3BhbHRlbiBhdWYgMTZtbS4KICAgICAgIFRvdGFsOiA4ICsgMzYgKyAzMiAr IDfDlzE2ID0gMTg4bW0gKHBhc3N0IGluIDE5Nm1tIERydWNrYnJlaXRlKS4gKi8KICAgIGJvZHku ZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1jb2wtbnIgICB7IHdpZHRoOiA4bW07IH0KICAgIGJvZHku ZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1jb2wtbmFtZSB7IHdpZHRoOiAzNm1tOyB9CiAgICBib2R5 LmRydWNrZW4td29jaGVucGxhbiAud3AtY29sLWFtdHMgeyB3aWR0aDogMzJtbTsgfQogICAgYm9k eS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLWNvbC10YWcgIHsgd2lkdGg6IDE2bW07IH0KCiAgICAv KiBHZW5lcmlzY2hlIENlbGwtRGVmYXVsdHM6IFN0YW5kYXJkLVBhZGRpbmcsIG1pdHRpZ2UgQXVz cmljaHR1bmcuCiAgICAgICBCb3JkZXJzIHdlcmRlbiBOSUNIVCBnbG9iYWwgZ2VzZXR6dCDigJQg ZGllIGxpbmtlbiAzIFNwYWx0ZW4gaGFiZW4KICAgICAgIGdhciBrZWluZSwgZGllIHJlY2h0ZW4g NyBUYWdlc3NwYWx0ZW4gYmVrb21tZW4gc2llIHVudGVuIGdlemllbHQuICovCiAgICBib2R5LmRy dWNrZW4td29jaGVucGxhbiAud3AtdGFiIHRoZWFkIHRoLAogICAgYm9keS5kcnVja2VuLXdvY2hl bnBsYW4gLndwLXRhYiB0Ym9keSB0ZCB7CiAgICAgICAgcGFkZGluZzogMC43bW0gMS41bW0gIWlt cG9ydGFudDsKICAgICAgICBsaW5lLWhlaWdodDogMS4xNSAhaW1wb3J0YW50OwogICAgICAgIGJv eC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICB2 ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5LmRydWNrZW4t d29jaGVucGxhbiAud3AtdGFiIHRoZWFkIHRoIHsgZm9udC1zaXplOiA4LjVwdDsgfQogICAgYm9k eS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLWgtdm9yZyB0aCB7IGZvbnQtc2l6ZTogMTAuNXB0OyBm b250LXdlaWdodDogNzAwOyB9CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGFiIHRi b2R5IHRyIHsgaGVpZ2h0OiA0LjdtbTsgfQogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndw LXplbGxlIHsgZm9udC1zaXplOiA5cHQ7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KCiAgICAvKiBUYWdl c3NwYWx0ZW4gKE1v4oCTU28pOiB2b2xsZXIgQ2VsbC1Cb3JkZXItR3JpZCB3aWUgRXhjZWwuICov CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGFiIHRib2R5IHRkLndwLXplbGxlLAog ICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRhYiB0aGVhZCAud3AtaC12b3JnIHRoOm5v dCgud3AtaC1sYWJlbCksCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGFiIHRoZWFk IC53cC1oLXd0IHRoOm5vdCg6Zmlyc3QtY2hpbGQpLAogICAgYm9keS5kcnVja2VuLXdvY2hlbnBs YW4gLndwLXRhYiB0aGVhZCAud3AtaC1kYXR1bSB0aDpub3QoLndwLWgtc3BhbHRlbnRpdGVsKSB7 CiAgICAgICAgYm9yZGVyOiAwLjI1bW0gc29saWQgIzQ0NCAhaW1wb3J0YW50OwogICAgfQoKICAg IC8qIExpbmtlIDMgQ2VsbHMgKExmZC5OciAvIE5hbWUgLyBBbXRzKSDigJQgZ2xlaWNoZSBzY2h3 YXJ6ZSBDZWxsLUJvcmRlcgogICAgICAgd2llIGRpZSBUYWdlc3NwYWx0ZW4sIGRhbWl0IGRpZSBU YWJlbGxlIGltIERydWNrIGFscyBlaW4gZWluaGVpdGxpY2hlcgogICAgICAgRXhjZWwtR3JpZCB3 aXJrdC4gYGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudGAgaXN0IEtSSVRJU0NIOgogICAg ICAgb2huZSDDvGJlcnNjaHJlaWJ0IGVpbmUgdW5zY29wdGUgYC53cC1uYW1lIHsgZGlzcGxheTog aW5saW5lLWJsb2NrIH1gLQogICAgICAgUmVnZWwgd2VpdGVyIG9iZW4gZGFzIERlZmF1bHQtYHRh YmxlLWNlbGxgIGRlciBURCB1bmQgZGllIGxlZXJlbgogICAgICAgQ2VsbHMgaW4gZGVuIExlZXIt U2xvdHMga29sbGFiaWVyZW4gYXVmIG1pbi1jb250ZW50LgogICAgICAgYG9wYWNpdHk6IDEgIWlt cG9ydGFudGAgw5xCRVJTQ0hSRUlCVCBlaW5lIGAud3AtbGVlci1zbG90IC53cC1uciB7CiAgICAg ICBvcGFjaXR5OiAwLjUgfWAtUmVnZWwgd2VpdGVyIG9iZW4sIGRpZSBzb25zdCBkaWUgTGZkLk5y LUNlbGxzIGluCiAgICAgICBkZW4gTGVlci1TbG90cyB0cmFuc3BhcmVudCBtYWNodCB1bmQgaWhy ZW4gWmVicmEtSGludGVyZ3J1bmQgaGVsbGVyCiAgICAgICB3aXJrZW4gbMOkc3N0LiAqLwogICAg Ym9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRhYiB0Ym9keSB0ZC53cC1uciwKICAgIGJvZHku ZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10YWIgdGJvZHkgdGQud3AtbmFtZSwKICAgIGJvZHkuZHJ1 Y2tlbi13b2NoZW5wbGFuIC53cC10YWIgdGJvZHkgdGQud3AtYW10cyB7CiAgICAgICAgZGlzcGxh eTogdGFibGUtY2VsbCAhaW1wb3J0YW50OwogICAgICAgIGJvcmRlcjogMC4yNW1tIHNvbGlkICM0 NDQgIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nOiAwLjdtbSAybW0gIWltcG9ydGFudDsKICAg ICAgICBsaW5lLWhlaWdodDogMS4xNSAhaW1wb3J0YW50OwogICAgICAgIHZlcnRpY2FsLWFsaWdu OiBtaWRkbGUgIWltcG9ydGFudDsKICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7 CiAgICAgICAgb3BhY2l0eTogMSAhaW1wb3J0YW50OwogICAgfQogICAgYm9keS5kcnVja2VuLXdv Y2hlbnBsYW4gLndwLXRhYiB0Ym9keSB0ZC53cC1uciAgIHsgZm9udC1zaXplOiA4cHQ7ICAgdGV4 dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7IGNvbG9yOiAjNTU1OyB9CiAgICBib2R5LmRydWNr ZW4td29jaGVucGxhbiAud3AtdGFiIHRib2R5IHRkLndwLW5hbWUgeyBmb250LXNpemU6IDguNXB0 OyBmb250LXdlaWdodDogNjAwOyB9CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGFi IHRib2R5IHRkLndwLWFtdHMgeyBmb250LXNpemU6IDdwdDsgICBjb2xvcjogIzU1NTsgfQoKICAg IC8qIFplYnJhIMO8YmVyIEFMTEUgWmVpbGVuIChEYXRlbnplaWxlbiBVTkQgTGVlci1TbG90cywg MeKAkzM2KSDigJQKICAgICAgIGdsZWljaG3DpMOfaWdlIGFsdGVybmllcmVuZGUgSGludGVyZ3J1 bmRmYXJiZSBtaXQga2xhcmVtIEtvbnRyYXN0LgogICAgICAgYDpub3QoW3N0eWxlXSlgIHNjaMO8 dHp0IElubGluZS1TY2hpY2h0ZmFyYmVuIChnb2xkL2dyw7xuL2JsYXUpCiAgICAgICB2b3Igw5xi ZXJzY2hyZWlidW5nLiAqLwogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRhYiB0Ym9k eSB0cjpudGgtY2hpbGQob2RkKSAgdGQ6bm90KFtzdHlsZV0pIHsKICAgICAgICBiYWNrZ3JvdW5k OiAjZmZmZmZmICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAu d3AtdGFiIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB0ZDpub3QoW3N0eWxlXSkgewogICAgICAg IGJhY2tncm91bmQ6ICNlMGUwZTAgIWltcG9ydGFudDsKICAgIH0KCiAgICAvKiBMZWVyLVNsb3Qt WmVpbGVuOiBudXIgZGllIFNjaHJpZnQgZ2VkaW1tdCDigJQgSGludGVyZ3J1bmQga29tbXQgYXVz CiAgICAgICBkZXIgWmVicmEtUmVnZWwgb2JlbiwgZGFtaXQgZGVyIExvb2sgaWRlbnRpc2NoIHp1 IGRlbiBnZWbDvGxsdGVuCiAgICAgICBaZWlsZW4gaXN0IChrZWluZSBTb25kZXJmw6RyYnVuZywg a2VpbmUgQm9yZGVycywga2VpbiBaZWlsZW5icnVjaAogICAgICAgendpc2NoZW4gU3BhbHRlIDEg dW5kIDMpLiAqLwogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXRhYiB0Ym9keSB0ci53 cC1sZWVyLXNsb3QgdGQgewogICAgICAgIGNvbG9yOiAjYWFhICFpbXBvcnRhbnQ7CiAgICB9Cgog ICAgLyogTGlua2UgSGVhZGVyLVplbGxlbiDDvGJlciBMZmQuTnIgLyBOYW1lIC8gQW10cyDigJQg aMO2aGVyZSBTcGV6aWZpdMOkdAogICAgICAgYWxzIGRpZSBnZW5lcmlzY2hlIC53cC10YWIgdGhl YWQgdGgtQm9yZGVyLVJlZ2VsIHdlaXRlciBvYmVuLiAqLwogICAgYm9keS5kcnVja2VuLXdvY2hl bnBsYW4gLndwLXRhYiB0aGVhZCAud3AtaC1sYWJlbCwKICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5w bGFuIC53cC10YWIgdGhlYWQgLndwLWgtc3BhbHRlbnRpdGVsLAogICAgYm9keS5kcnVja2VuLXdv Y2hlbnBsYW4gLndwLXRhYiB0aGVhZCB0ci53cC1oLXd0IHRoOmZpcnN0LWNoaWxkIHsKICAgICAg ICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgICAgIGJvcmRlcjogbm9u ZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIEF1w59lbmthbnRlbiBkZXIgVGFnZXNzcGFsdGVu IChsaW5rcyBuZWJlbiBNbyAvIHJlY2h0cyBuZWJlbiBTbykKICAgICAgIHRyYW5zcGFyZW50IOKA lCBkZXIgNy1UYWdlLUJsb2NrIHdpcmt0IGFscyBnZXNjaGxvc3NlbmUgRWluaGVpdC4gKi8KICAg IGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10YWIgdGhlYWQgdHIud3AtaC12b3JnICB0aDpu dGgtY2hpbGQoMiksCiAgICBib2R5LmRydWNrZW4td29jaGVucGxhbiAud3AtdGFiIHRoZWFkIHRy LndwLWgtd3QgICAgdGg6bnRoLWNoaWxkKDIpLAogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4g LndwLXRhYiB0aGVhZCB0ci53cC1oLWRhdHVtIHRoOm50aC1jaGlsZCg0KSwKICAgIGJvZHkuZHJ1 Y2tlbi13b2NoZW5wbGFuIC53cC10YWIgdGJvZHkgdGQud3AtYW10cyArIHRkIHsKICAgICAgICBi b3JkZXItbGVmdC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKICAgIH0KICAgIGJvZHku ZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC10YWIgdGg6bGFzdC1jaGlsZCwKICAgIGJvZHkuZHJ1Y2tl bi13b2NoZW5wbGFuIC53cC10YWIgdGQ6bGFzdC1jaGlsZCB7CiAgICAgICAgYm9yZGVyLXJpZ2h0 LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIE5vdGl6ZW4g4oCU IHBmbGljaHRpZyBpbSBEcnVjaywgfjM4bW0gaG9jaCAobWVociBQbGF0eiBpbSBIb2NoZm9ybWF0 KSAqLwogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLW5vdGl6ZW4gewogICAgICAgIG1h cmdpbi10b3A6IDNtbTsgcGFkZGluZzogMm1tIDNtbTsKICAgICAgICBib3JkZXI6IDAuM21tIHNv bGlkICM2NjY7IGJvcmRlci1yYWRpdXM6IDA7CiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2 b2lkICFpbXBvcnRhbnQ7IGJyZWFrLWluc2lkZTogYXZvaWQgIWltcG9ydGFudDsKICAgIH0KICAg IGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuIC53cC1ub3RpemVuLXRpdGVsIHsgZm9udC1zaXplOiA4 LjVwdDsgbWFyZ2luLWJvdHRvbTogMS41bW07IGxldHRlci1zcGFjaW5nOiAwLjRweDsgfQogICAg Ym9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLW5vdGl6LXRleHRhcmVhIHsKICAgICAgICBtaW4t aGVpZ2h0OiAzMm1tOyBoZWlnaHQ6IDMybW07CiAgICAgICAgZm9udC1zaXplOiA5cHQ7CiAgICAg ICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50OyBjb2xvcjogIzAwMCAhaW1wb3J0YW50Owog ICAgICAgIGJvcmRlcjogMC4ybW0gZGFzaGVkICM4ODggIWltcG9ydGFudDsKICAgICAgICByZXNp emU6IG5vbmUgIWltcG9ydGFudDsgcGFkZGluZzogMS41bW0gMm1tICFpbXBvcnRhbnQ7CiAgICB9 CgogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4gLndwLXNlaXRlLWZ1c3MgewogICAgICAgIG1h cmdpbi10b3A6IDJtbTsgcGFkZGluZy10b3A6IDFtbTsKICAgICAgICBmb250LXNpemU6IDcuNXB0 OwogICAgICAgIGJvcmRlci10b3A6IDAuMm1tIHNvbGlkICM4ODg7CiAgICB9CiAgICBib2R5LmRy dWNrZW4td29jaGVucGxhbiAud3AtZnVzcy1ub3RlIHsgZm9udC13ZWlnaHQ6IDYwMDsgfQoKICAg IC8qIEhpbnRlcmdydW5kLUZhcmJlbiBpbSBEcnVjayBlcnp3aW5nZW4gKFNjaGljaHRmYXJiZW4s IFZvcmdhYmUtU2NoaWNodCkgKi8KICAgIGJvZHkuZHJ1Y2tlbi13b2NoZW5wbGFuLAogICAgYm9k eS5kcnVja2VuLXdvY2hlbnBsYW4gKiB7CiAgICAgICAgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1 c3Q6IGV4YWN0ICFpbXBvcnRhbnQ7CiAgICAgICAgcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdCAh aW1wb3J0YW50OwogICAgICAgIGNvbG9yLWFkanVzdDogZXhhY3QgIWltcG9ydGFudDsKICAgIH0K fQoKLyogRGllbnN0bnVtbWVyLVplbGxlbiAoZ2VsYiBoaW50ZXJsZWd0KSAqLwoud3AtdGQtZG5y IHsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjQwLDIxOCw4MCwwLjEyKTsKICAgIHRleHQtYWxpZ246 IGNlbnRlcjsKICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICBmb250LXNpemU6IDEwcHg7 CiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwp9CltkYXRhLXRoZW1lPSJuaWdodCJd IC53cC10ZC1kbnIgeyBiYWNrZ3JvdW5kOiByZ2JhKDE4NCwxNjAsMzIsMC4xMCk7IH0KCi8qIEZ1 w596ZWlsZSAqLwoud3AtZnVzc3plaWxlIHRkIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNh cmQtYWx0KTsKICAgIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsK ICAgIHBhZGRpbmc6IDZweCAxMHB4ICFpbXBvcnRhbnQ7CiAgICBmb250LXNpemU6IDEwcHg7CiAg ICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7Cn0KLndwLWZ1c3N6ZWlsZSB0ZCA+IHNwYW4geyBk aXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0KLndwLWZ1c3MtZHJ1Y2sgeyBmbG9hdDogcmlnaHQ7IGNv bG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IGZvbnQtd2VpZ2h0OiA2MDA7IH0KLndwLWZ1c3Mt bm90ZSBzdXAgeyBjb2xvcjogI2Q0YTAxNzsgZm9udC13ZWlnaHQ6IDcwMDsgfQoKLyogRmVpZXJ0 YWcg4oCed2ljaHRpZyIgaW0gQWRtaW4tVGFiICovCnRyLmZlaWVydGFnLXdpY2h0aWcgdGQgeyBi YWNrZ3JvdW5kOiByZ2JhKDE5MiwwLDAsMC4wNik7IH0KCi8qIEluZm8tS2FydGVuIGltIEluZm9y bWF0aW9uc2ZlbnN0ZXIgKi8KLmluZm8ta2FydGUgewogICAgcGFkZGluZzogMTJweCAxNnB4Owog ICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgbWFyZ2luLWJvdHRvbTogMTBweDsKICAgIGJhY2tn cm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFy KC0tdGV4dC1oZWFkaW5nKTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGxpbmUtaGVpZ2h0OiAx LjU7Cn0KLmluZm8ta2FydGUtc3VwcG9ydCB7IGJvcmRlci1sZWZ0LWNvbG9yOiAjMmQ5ZDc4OyB9 Ci5pbmZvLWthcnRlLXdhcm4geyBib3JkZXItbGVmdC1jb2xvcjogI2U2N2UyMjsgYmFja2dyb3Vu ZDogcmdiYSgyMzAsMTI2LDM0LDAuMDgpOyB9Ci5pbmZvLWthcnRlLWluZm8geyBib3JkZXItbGVm dC1jb2xvcjogIzRhOTBlMjsgfQoKLyogRWluc3RlbGx1bmdlbi1UYWIgKi8KLmVpbnN0ZWxsdW5n ZW4tZm9ybSB7IG1heC13aWR0aDogNzIwcHg7IH0KLmVpbnN0ZWxsdW5nZW4tZm9ybSAuZm9ybS1n cnVwcGUgeyBtYXJnaW4tYm90dG9tOiAxNnB4OyB9Ci5laW5zdGVsbHVuZ2VuLWZvcm0gbGFiZWwg eyBkaXNwbGF5OiBibG9jazsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luLWJvdHRvbTogNHB4OyBj b2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgZm9udC1zaXplOiAxM3B4OyB9Ci5laW5zdGVsbHVu Z2VuLWZvcm0gdGV4dGFyZWEgeyBmb250LWZhbWlseTogaW5oZXJpdDsgcmVzaXplOiB2ZXJ0aWNh bDsgfQoKLyogTGVnZW5kZSAqLwoud3AtbGVnZW5kZSB7CiAgICBkaXNwbGF5OiBmbGV4OyBnYXA6 IDIwcHg7IHBhZGRpbmc6IDhweCAxNnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctdG9vbGJh cik7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOwogICAgZm9udC1z aXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOwp9Ci53cC1sZWctaXRlbSB7 IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNXB4OyB9Ci53cC1sZWct ZG90IHsKICAgIHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7IGJvcmRlci1yYWRpdXM6IDJweDsg ZGlzcGxheTogaW5saW5lLWJsb2NrOwp9Ci53cC1sZWctdmVyYW50dyB7CiAgICBiYWNrZ3JvdW5k OiB0cmFuc3BhcmVudDsgYm9yZGVyOiAycHggc29saWQgI0Q0QTAxNzsKfQoKLyogWmVsbC1Lb21t ZW50YXItSW5kaWthdG9yIGltIEdyaWQgKi8KLmdyaWQtemVsbGUuaGF0LWtvbW1lbnRhciB7IHBv c2l0aW9uOiByZWxhdGl2ZTsgfQouZ3JpZC16ZWxsZS5oYXQta29tbWVudGFyOjphZnRlciB7CiAg ICBjb250ZW50OiAnJzsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOwogICAg d2lkdGg6IDA7IGhlaWdodDogMDsKICAgIGJvcmRlci1sZWZ0OiA2cHggc29saWQgdHJhbnNwYXJl bnQ7CiAgICBib3JkZXItdG9wOiA2cHggc29saWQgI0Q0QTAxNzsKfQoKLyogRWRpdG9yLUtvbW1l bnRhci1CZXJlaWNoICovCi5lZGl0b3Ita29tbWVudGFyIHsKICAgIHBhZGRpbmc6IDZweCA4cHg7 CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGRpc3Bs YXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNHB4Owp9Ci5lZGl0b3Ita29t bWVudGFyLWJ0bnMgewogICAgZGlzcGxheTogZmxleDsgZ2FwOiA0cHg7Cn0KCi8qIEQuMiDDhG5k ZXJ1bmdzLUhpc3RvcmllIGltIFplbGwtRWRpdG9yIChzaWNodGJhciBudXIgZsO8ciBTVSArIEZh Y2hhdWZzaWNodCkgKi8KLnplLWhpc3RvcmllIHsKICAgIHBhZGRpbmc6IDZweCA4cHg7CiAgICBi b3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIG1heC1oZWlnaHQ6 IDE4MHB4OyBvdmVyZmxvdy15OiBhdXRvOwogICAgZm9udC1zaXplOiAxMXB4Owp9Ci56ZS1oaXN0 b3JpZS10aXRlbCB7CiAgICBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNv bmRhcnkpOwogICAgbWFyZ2luLWJvdHRvbTogNHB4Owp9Ci56ZS1oaXN0b3JpZS1saXN0ZSB7CiAg ICBsaXN0LXN0eWxlOiBub25lOyBwYWRkaW5nOiAwOyBtYXJnaW46IDA7CiAgICBkaXNwbGF5OiBm bGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDNweDsKfQouemUtaGlzdG9yaWUtbGlz dGUgbGkgewogICAgcGFkZGluZzogM3B4IDRweDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAs MC4wMyk7CiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAg ICBib3JkZXItcmFkaXVzOiAycHg7Cn0KLnplLWhpc3RvcmllLWxpc3RlIGxpLmxlZXIgewogICAg Y29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LXN0eWxlOiBpdGFsaWM7IGJhY2tncm91bmQ6 IHRyYW5zcGFyZW50OyBib3JkZXItbGVmdDogbm9uZTsKfQouemUtaGlzdG9yaWUtbGlzdGUgY29k ZSB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDUpOyBwYWRkaW5nOiAxcHggNHB4OyBi b3JkZXItcmFkaXVzOiAycHg7IGZvbnQtc2l6ZTogMTBweDsKfQoKLyogPT09PT0gTWVkaWVuLVZl cndhbHR1bmcgKEFkbWluLVRhYiAiTWVkaWVuIikgPT09PT0gKi8KLm1lZGllbi1ha2tvcmRlb24t c2VrdGlvbiB7CiAgICBtYXJnaW4tYm90dG9tOiAxMnB4OwogICAgYm9yZGVyOiAxcHggc29saWQg dmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIG92ZXJmbG93 OiBoaWRkZW47Cn0KLm1lZGllbi1ha2tvcmRlb24tc2VrdGlvbiBzdW1tYXJ5IHsKICAgIHBhZGRp bmc6IDEwcHggMTRweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7 CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDQpOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7 CiAgICBsaXN0LXN0eWxlOiBub25lOwogICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNl bnRlcjsgZ2FwOiA4cHg7Cn0KLm1lZGllbi1ha2tvcmRlb24tc2VrdGlvbiBzdW1tYXJ5Ojotd2Vi a2l0LWRldGFpbHMtbWFya2VyIHsgZGlzcGxheTogbm9uZTsgfQoubWVkaWVuLWFra29yZGVvbi1z ZWt0aW9uIHN1bW1hcnk6OmJlZm9yZSB7CiAgICBjb250ZW50OiAn4pa4JzsgZm9udC1zaXplOiAx MnB4OyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXM7Cn0KLm1lZGllbi1ha2tvcmRlb24tc2Vr dGlvbltvcGVuXSBzdW1tYXJ5OjpiZWZvcmUgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH0K Lm1lZGllbi1ha2tvcmRlb24tc2VrdGlvbiAubWVkaWVuLWFuemFobCB7CiAgICBmb250LXNpemU6 IDExcHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgZm9udC13ZWlnaHQ6IDQwMDsgbWFyZ2lu LWxlZnQ6IGF1dG87Cn0KLm1lZGllbi1ncmlkIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlk LXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxNTBweCwgMWZyKSk7 CiAgICBnYXA6IDEycHg7CiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7CiAgICBtaW4taGVpZ2h0OiA4 MHB4Owp9Ci5tZWRpZW4tZ3JpZC5tZWRpZW4tZ3JpZC1sZWVyIHsKICAgIGNvbG9yOiB2YXIoLS10 ZXh0LW11dGVkKTsgZm9udC1zdHlsZTogaXRhbGljOyBwYWRkaW5nOiAyNHB4IDE0cHg7CiAgICB0 ZXh0LWFsaWduOiBjZW50ZXI7IG1pbi1oZWlnaHQ6IGF1dG87Cn0KLm1lZGllbi1rYXJ0ZSB7CiAg ICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1 czogNHB4OwogICAgcGFkZGluZzogOHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCwg I2ZmZik7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDZw eDsKICAgIGN1cnNvcjogZ3JhYjsKICAgIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xNXMsIHRy YW5zZm9ybSAwLjE1czsKfQoubWVkaWVuLWthcnRlOmhvdmVyIHsgYm94LXNoYWRvdzogMCAycHgg NnB4IHJnYmEoMCwwLDAsMC4xMik7IH0KLm1lZGllbi1rYXJ0ZS5kcmFnZ2luZyB7IG9wYWNpdHk6 IDAuNTsgY3Vyc29yOiBncmFiYmluZzsgfQoubWVkaWVuLWthcnRlIC5tZWRpZW4tdm9yc2NoYXUg ewogICAgd2lkdGg6IDEwMCU7IGFzcGVjdC1yYXRpbzogMTsKICAgIGRpc3BsYXk6IGZsZXg7IGFs aWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYmFja2dyb3Vu ZDogcmdiYSgwLDAsMCwwLjAzKTsgYm9yZGVyLXJhZGl1czogM3B4OwogICAgb3ZlcmZsb3c6IGhp ZGRlbjsKfQoubWVkaWVuLWthcnRlIC5tZWRpZW4tdm9yc2NoYXUgaW1nIHsKICAgIG1heC13aWR0 aDogMTAwJTsgbWF4LWhlaWdodDogMTAwJTsgb2JqZWN0LWZpdDogY29udGFpbjsKfQoubWVkaWVu LWthcnRlIC5tZWRpZW4tdm9yc2NoYXUgLnBkZi1wbGF0emhhbHRlciB7CiAgICBmb250LXNpemU6 IDMycHg7IGNvbG9yOiAjYzAzOTJiOyBmb250LXdlaWdodDogNzAwOwp9Ci5tZWRpZW4ta2FydGUg Lm1lZGllbi1iZXplaWNobnVuZyB7CiAgICBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2 MDA7CiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkOyBtaW4taGVpZ2h0OiAyOHB4Owp9Ci5tZWRp ZW4ta2FydGUgLm1lZGllbi1tZXRhIHsKICAgIGZvbnQtc2l6ZTogMTBweDsgY29sb3I6IHZhcigt LXRleHQtbXV0ZWQpOwp9Ci5tZWRpZW4ta2FydGUgLm1lZGllbi1ha3Rpb25lbiB7CiAgICBkaXNw bGF5OiBmbGV4OyBnYXA6IDRweDsgbWFyZ2luLXRvcDogYXV0bzsKICAgIGFsaWduLWl0ZW1zOiBj ZW50ZXI7IGp1c3RpZnktY29udGVudDogc3RyZXRjaDsKfQoubWVkaWVuLWthcnRlIC5tZWRpZW4t YWt0aW9uZW4gLmJ0biB7CiAgICBmbGV4OiAxOyBmb250LXNpemU6IDExcHg7IHBhZGRpbmc6IDRw eCA2cHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVz dGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogM3B4OwogICAgY29sb3I6ICNmZmY7ICAgICAgICAg ICAgIC8qIGV4cGxpeml0IHdlacOfIGF1ZiBkZW4gZmFyYmlnZW4gQnV0dG9ucyAqLwogICAgbGlu ZS1oZWlnaHQ6IDE7Cn0KLm1lZGllbi1rYXJ0ZSAubWVkaWVuLWFrdGlvbmVuIC5idG4tc2VrIHsK ICAgIGNvbG9yOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyAgIC8qIEVkaXQtL0Vyc2V0emVuLUJ0bjog ZHVua2xlIFNjaHJpZnQgYXVmIGhlbGxlbSBCRyAqLwp9Ci8qIFN5c3RlbS1pbXBvcnRpZXJ0ZSBN ZWRpZW4g4oCUIG51ciBkZXplbnRlciBIaW50ZXJncnVuZC1Ba3plbnQgYWxzIEhpbndlaXMsCiAg IGVkaXRpZXJiYXIvdmVyc2NoaWViYmFyIHdpZSByZWd1bMOkcmUgVXBsb2Fkcy4gKi8KLm1lZGll bi1rYXJ0ZS1zeXN0ZW0geyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IH0KLm1lZGll bi1zeXN0ZW0tYmFkZ2UgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgcGFkZGluZzog MXB4IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGZvbnQtc2l6ZTogOXB4OyBmb250 LXdlaWdodDogNzAwOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctYWN0aXZlKTsKICAgIGNvbG9y OiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBs ZXR0ZXItc3BhY2luZzogMC40cHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgbWFy Z2luLXJpZ2h0OiA0cHg7Cn0KLm1lZGllbi1ha2tvcmRlb24tc2VrdGlvbi5kcm9wLXRhcmdldCB7 CiAgICBib3JkZXItY29sb3I6ICMyN2FlNjA7IGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDM5 LCAxNzQsIDk2LCAwLjMpOwp9Ci5tZWRpZW4tYWtrb3JkZW9uLXNla3Rpb24uZHJvcC10YXJnZXQg c3VtbWFyeSB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDM5LCAxNzQsIDk2LCAwLjEpOwp9Ci8qIERy b3AtTW9kdXM6IGFsbGUgU2VrdGlvbmVuIGtsYXIgYWJnZWdyZW56dCBhbnplaWdlbiwgbGVlcmUg U2VrdGlvbmVuCiAgIG1hcmtpZXJlbiBzaWNoIGFscyBnZXN0cmljaGVsdGUgRHJvcC1aaWVsZSwg ZGFtaXQgZGVyIE51dHplciBzaWVodAogICB3b2hpbiBlciB6aWVoZW4ga2Fubi4gKi8KLm1lZGll bi1kcm9wLW1vZHVzIC5tZWRpZW4tYWtrb3JkZW9uLXNla3Rpb24gewogICAgYm9yZGVyOiAycHgg c29saWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIG1h cmdpbi1ib3R0b206IDZweDsKICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cywgYm94 LXNoYWRvdyAwLjE1czsKfQoubWVkaWVuLWRyb3AtbW9kdXMgLm1lZGllbi1ha2tvcmRlb24tc2Vr dGlvbiBzdW1tYXJ5IHsKICAgIGN1cnNvcjogZGVmYXVsdDsKfQoubWVkaWVuLWRyb3AtbW9kdXMg Lm1lZGllbi1ha2tvcmRlb24tc2VrdGlvbiAubWVkaWVuLWdyaWQtbGVlciB7CiAgICBib3JkZXI6 IDJweCBkYXNoZWQgdmFyKC0tZmFyYmUtZXJmb2xnKTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMzks IDEzNywgMTA5LCAwLjA1KTsKICAgIGNvbG9yOiB2YXIoLS1mYXJiZS1lcmZvbGcpOwogICAgZm9u dC13ZWlnaHQ6IDYwMDsKfQoKLyogPT09PT0gTG9nYnVjaCA9PT09PSAqLwoubG9nYnVjaC1sYXlv dXQgeyBvdmVyZmxvdy15OiBhdXRvOyBwYWRkaW5nOiAyNHB4IDMycHg7IGZsZXg6IDE7IH0KCi8q ID09PT09IE1vZGFsZSBEaWFsb2dlID09PT09ICovCi5tb2RhbCB7CiAgICBwb3NpdGlvbjogZml4 ZWQ7IGluc2V0OiAwOyB6LWluZGV4OiAxMDAwMDsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAs MC40KTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50 OiBjZW50ZXI7CiAgICBhbmltYXRpb246IGZhZGVJbiAwLjE1cyBlYXNlOwp9Ci5tb2RhbC1pbmhh bHQgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJvcmRlci1yYWRpdXM6IDEwcHg7 CiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbW9kYWwpOwogICAgd2lkdGg6IDkwJTsgbWF4 LXdpZHRoOiA2MjBweDsgbWF4LWhlaWdodDogODB2aDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJl Y3Rpb246IGNvbHVtbjsKfQoubW9kYWwtaW5oYWx0Lm1vZGFsLWluaGFsdC1ncm9zcyB7IG1heC13 aWR0aDogODAwcHg7IH0KLm1vZGFsLWtvcGYgewogICAgZmxleC1zaHJpbms6IDA7ICAgLyogZmVz dGVyIEhlYWRlcmJlcmVpY2gsIHNjcm9sbHQgbWl0IEJvZHkgKi8KICAgIGRpc3BsYXk6IGZsZXg7 IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAg IGJhY2tncm91bmQ6IHZhcigtLWJnLXByaW1hcnkpOyBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmlt YXJ5KTsKICAgIHBhZGRpbmc6IDE0cHggMjBweDsgYm9yZGVyLXJhZGl1czogMTBweCAxMHB4IDAg MDsKfQoubW9kYWwta29wZiBoMiB7IGZvbnQtc2l6ZTogMTVweDsgZm9udC13ZWlnaHQ6IDYwMDsg fQoubW9kYWwtc2NobGllc3NlbiB7CiAgICBiYWNrZ3JvdW5kOiBub25lOyBib3JkZXI6IG5vbmU7 IGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgZm9udC1zaXplOiAyMnB4OyBjdXJz b3I6IHBvaW50ZXI7IGxpbmUtaGVpZ2h0OiAxOyBwYWRkaW5nOiAwIDRweDsgb3BhY2l0eTogMC43 Owp9Ci5tb2RhbC1zY2hsaWVzc2VuOmhvdmVyIHsgb3BhY2l0eTogMTsgfQoubW9kYWwta29lcnBl ciB7IHBhZGRpbmc6IDI0cHg7IG92ZXJmbG93LXk6IGF1dG87IGZsZXg6IDE7IH0KLm1vZGFsLWZ1 c3MgewogICAgZmxleC1zaHJpbms6IDA7ICAgLyogZGFyZiBOSUUgdm9tIG1vZGFsLWtvZXJwZXIg d2VnZ2VxdWV0c2NodCB3ZXJkZW4sIHNvbnN0IFNhdmUtQnV0dG9uIHVuc2ljaHRiYXIgKi8KICAg IHBhZGRpbmc6IDE0cHggMjBweDsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1j b2xvcik7CiAgICBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyBhbGln bi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJk LWFsdCk7IGJvcmRlci1yYWRpdXM6IDAgMCAxMHB4IDEwcHg7Cn0KLyogQnV0dG9ucyBpbSBNb2Rh bC1Gb290ZXIgaGFiZW4gZWluaGVpdGxpY2hlIE1pbmRlc3Rob2VoZSAqLwoubW9kYWwtZnVzcyAu YnRuIHsgbWluLWhlaWdodDogMzZweDsgcGFkZGluZzogOHB4IDE4cHg7IH0KLyogUHJpbWFlci1C dXR0b24gYmVrb21tdCBtZWhyICJ3ZWlnaHQiIGdlZ2VudWViZXIgU2VrdW5kYWVyLUJ1dHRvbiAq LwoubW9kYWwtZnVzcyAuYnRuLmJ0bi1wcmltYWVyIHsgZm9udC13ZWlnaHQ6IDYwMDsgYm94LXNo YWRvdzogMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4xNSk7IH0KCi8qID09PT09IFRvYXN0ID09PT09 ICovCiN0b2FzdC1jb250YWluZXIgewogICAgcG9zaXRpb246IGZpeGVkOyBib3R0b206IDI0cHg7 IHJpZ2h0OiAyNHB4OyB6LWluZGV4OiAyMDAwMDsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGly ZWN0aW9uOiBjb2x1bW47IGdhcDogNnB4Owp9Ci50b2FzdCB7CiAgICBwYWRkaW5nOiAxMHB4IDE4 cHg7IGJvcmRlci1yYWRpdXM6IDZweDsgY29sb3I6ICNmZmY7IGZvbnQtc2l6ZTogMTNweDsgZm9u dC13ZWlnaHQ6IDUwMDsKICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLDAsMCwwLjI1 KTsgYW5pbWF0aW9uOiB0b2FzdEVpbiAwLjI1cyBlYXNlOyBtYXgtd2lkdGg6IDQwMHB4Owp9Ci50 b2FzdC1lcmZvbGcgeyBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1lcmZvbGcpOyB9Ci50b2FzdC1m ZWhsZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1mZWhsZXIpOyB9Ci50b2FzdC1pbmZvIHsg YmFja2dyb3VuZDogdmFyKC0tZmFyYmUtaW5mbyk7IH0KLnRvYXN0LXdhcm51bmcgeyBiYWNrZ3Jv dW5kOiB2YXIoLS1mYXJiZS13YXJudW5nKTsgfQpAa2V5ZnJhbWVzIHRvYXN0RWluIHsgZnJvbSB7 IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNnB4KTsgb3BhY2l0eTogMDsgfSB0byB7IHRyYW5zZm9y bTogdHJhbnNsYXRlWSgwKTsgb3BhY2l0eTogMTsgfSB9CgovKiA9PT09PSBBbGxnZW1laW4gPT09 PT0gKi8KLnRleHQtbXV0ZWQgeyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IH0KLnRleHQtZXJm b2xnIHsgY29sb3I6IHZhcigtLWZhcmJlLWVyZm9sZyk7IH0KLnRleHQtZmVobGVyIHsgY29sb3I6 IHZhcigtLWZhcmJlLWZlaGxlcik7IH0KCmNvZGUgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmct Y2FyZC1hbHQpOyBwYWRkaW5nOiAxcHggNnB4OyBib3JkZXItcmFkaXVzOiAzcHg7CiAgICBmb250 LWZhbWlseTogIkNvbnNvbGFzIiwgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlOyBmb250LXNpemU6 IDEycHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwp9CgovKiBT Y3JvbGxiYXJzOiBkZXV0bGljaCBzaWNodGJhciwgdm9yIGFsbGVtIGRpZSBob3Jpem9udGFsZSBM ZWlzdGUgdW50ZXIgZGVtCiAgIEhhdXB0cGxhbiBtaXQgMTMgTW9uYXRlbiBCcmVpdGUuICovCjo6 LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyB9Cjo6LXdlYmtp dC1zY3JvbGxiYXItdHJhY2sgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwp9 Cjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgewogICAgYmFja2dyb3VuZDogdmFyKC0tdGV4dC1t dXRlZCk7CiAgICBib3JkZXItcmFkaXVzOiA3cHg7CiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIo LS1iZy1jYXJkLWFsdCk7CiAgICBtaW4td2lkdGg6IDQwcHg7IG1pbi1oZWlnaHQ6IDQwcHg7Cn0K Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLXRleHQt c2Vjb25kYXJ5KTsgfQo6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7IGJhY2tncm91bmQ6IHZh cigtLWJnLWNhcmQtYWx0KTsgfQoKLyogRmlyZWZveCAqLwoqIHsKICAgIHNjcm9sbGJhci13aWR0 aDogYXV0bzsKICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tdGV4dC1tdXRlZCkgdmFyKC0tYmct Y2FyZC1hbHQpOwp9CgovKiA9PT09PSBFbW9qaS1QaWNrZXIgKHNjaGxpY2h0LCBTeXN0ZW0tRm9u dCBsaWVmZXJ0IEFwcGxlLUVtb2ppcyBhdWYgbWFjT1MvaU9TKSA9PT09PSAqLwouZW1vamktcGlj a2VyIHsKICAgIC8qIE11c3MgdWViZXIgZGVtIE1vZGFsLU92ZXJsYXkgbGllZ2VuICgubW9kYWwg aGF0IHotaW5kZXg6IDEwMDAwKSwKICAgICAgIHNvbnN0IGxhbmRldCBqZWRlciBLbGljayBhdWYg ZGVuIHZlcm1laW50bGljaGVuIFBpY2tlciBhdWYgZGVtCiAgICAgICBkYXJ1ZWJlciBsaWVnZW5k ZW4gT3ZlcmxheSB1bmQgc2NobGllc3N0IGRhcyBNb2RhbC4gKi8KICAgIHBvc2l0aW9uOiBmaXhl ZDsgei1pbmRleDogMTAxMDA7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVy OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7CiAgICBib3JkZXItcmFkaXVzOiAxMHB4 OyBib3gtc2hhZG93OiAwIDEycHggMzZweCByZ2JhKDAsMCwwLDAuMjUpOwogICAgcGFkZGluZzog MTJweDsgd2lkdGg6IDI5NnB4OyB1c2VyLXNlbGVjdDogbm9uZTsKICAgIGNvbG9yOiB2YXIoLS10 ZXh0LXByaW1hcnkpOwp9Ci5lbW9qaS1waWNrZXIta2F0IHsKICAgIGZvbnQtc2l6ZTogMTBweDsg Zm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgdGV4dC10cmFu c2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDAuNnB4OwogICAgcGFkZGluZzogMTBw eCA0cHggNHB4Owp9Ci5lbW9qaS1waWNrZXIta2F0OmZpcnN0LWNoaWxkIHsgcGFkZGluZy10b3A6 IDA7IH0KLmVtb2ppLXBpY2tlci1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1j b2x1bW5zOiByZXBlYXQoOCwgMWZyKTsgZ2FwOiA0cHg7IH0KLmVtb2ppLXBpY2tlci1vcHQgewog ICAgZm9udC1zaXplOiAyMHB4OyBsaW5lLWhlaWdodDogMTsgcGFkZGluZzogNHB4OyBib3JkZXIt cmFkaXVzOiA2cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7IHRleHQtYWxpZ246IGNlbnRlcjsgYmFj a2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsK ICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgYm9yZGVyLWNvbG9yIDAuMXMsIGNvbG9y IDAuMXM7CiAgICBmb250LWZhbWlseTogIkFwcGxlIENvbG9yIEVtb2ppIiwiU2Vnb2UgVUkgRW1v amkiLCJOb3RvIENvbG9yIEVtb2ppIixzYW5zLXNlcmlmOwp9Ci5lbW9qaS1waWNrZXItb3B0Omhv dmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyBib3JkZXItY29sb3I6IHZhcigtLWZh cmJlLWFremVudCwgIzE1NjVDMCk7IH0KLmVtb2ppLXBpY2tlci1vcHQua2VpbmVyIHsKICAgIGZv bnQtc2l6ZTogMTFweDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyBmb250LWZhbWlseTogaW5o ZXJpdDsKICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7IHBhZGRpbmc6IDZweDsKICAgIGJvcmRlcjog MXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItbGlnaHQpOwp9Ci5lbW9qaS1waWNrZXItb3B0LmtlaW5l cjpob3ZlciB7IGJvcmRlci1zdHlsZTogc29saWQ7IH0KLmVtb2ppLXBpY2tlci1vcHQuYWt0aXYg ewogICAgYmFja2dyb3VuZDogdmFyKC0tZmFyYmUtYWt6ZW50LCAjMTU2NUMwKTsKICAgIGNvbG9y OiAjZmZmOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYXJiZS1ha3plbnQsICMxNTY1QzApOwp9 CgovKiBFbW9qaS1BdXN3YWhsLUJ1dHRvbiBpbiBBZG1pbi1UYWJlbGxlICovCi5lbW9qaS1idG4g ewogICAgd2lkdGg6IDM4cHg7IGhlaWdodDogMzJweDsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhl aWdodDogMTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgYm9yZGVyOiAxcHggc29s aWQgdmFyKC0tYm9yZGVyLWNvbG9yKTsgYm9yZGVyLXJhZGl1czogNXB4OwogICAgY3Vyc29yOiBw b2ludGVyOyBwYWRkaW5nOiAwOwogICAgZm9udC1mYW1pbHk6ICJBcHBsZSBDb2xvciBFbW9qaSIs IlNlZ29lIFVJIEVtb2ppIiwiTm90byBDb2xvciBFbW9qaSIsc2Fucy1zZXJpZjsKfQouZW1vamkt YnRuOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1mYXJiZS1ha3plbnQpOyB9Ci5lbW9qaS1i dG4ubGVlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsgZm9udC1zaXplOiAxNHB4OyBmb250 LWZhbWlseTogaW5oZXJpdDsgfQoKLyogS2xpY2tiYXJlIFNvbmRlci1aZWxsZSBpbSBIZWFkZXIg Ki8KLmtkLXNvbmRlci1rbGlja2JhciB7IGN1cnNvcjogcG9pbnRlcjsgfQoua2Qtc29uZGVyLWts aWNrYmFyOmhvdmVyIHsgZmlsdGVyOiBicmlnaHRuZXNzKDEuMDgpOyB9CgovKiBTb25kZXItV2Fy bi1Nb2RhbCAqLwouc29uZGVyLXdhcm4tbW9kYWwgLm1vZGFsLWtvcGYgeyBiYWNrZ3JvdW5kOiB2 YXIoLS1mYXJiZS13YXJudW5nKTsgfQouc29uZGVyLXdhcm4tbW9kYWwudHlwLWhpbndlaXMgLm1v ZGFsLWtvcGYgeyBiYWNrZ3JvdW5kOiB2YXIoLS1mYXJiZS1ha3plbnQpOyB9Ci5zb25kZXItd2Fy bi1pY29uIHsgZm9udC1zaXplOiA0OHB4OyBsaW5lLWhlaWdodDogMTsgdGV4dC1hbGlnbjogY2Vu dGVyOyBtYXJnaW46IDhweCAwIDEycHg7CiAgICBmb250LWZhbWlseTogIkFwcGxlIENvbG9yIEVt b2ppIiwiU2Vnb2UgVUkgRW1vamkiLCJOb3RvIENvbG9yIEVtb2ppIixzYW5zLXNlcmlmOyB9Ci5z b25kZXItd2Fybi10aXRlbCB7IGZvbnQtc2l6ZTogMThweDsgZm9udC13ZWlnaHQ6IDYwMDsgdGV4 dC1hbGlnbjogY2VudGVyOyBjb2xvcjogdmFyKC0tdGV4dC1oZWFkaW5nKTsgbWFyZ2luLWJvdHRv bTogMTBweDsgcGFkZGluZzogMCA4cHg7IHdvcmQtd3JhcDogYnJlYWstd29yZDsgb3ZlcmZsb3ct d3JhcDogYnJlYWstd29yZDsgfQouc29uZGVyLXdhcm4tdGV4dCB7CiAgICBmb250LXNpemU6IDE0 cHg7IGxpbmUtaGVpZ2h0OiAxLjU1OyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsgcGFkZGlu ZzogMTJweCAxNHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXIt cmFkaXVzOiA4cHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBt YXgtd2lkdGg6IDEwMCU7IG1heC1oZWlnaHQ6IDUwdmg7IG92ZXJmbG93LXk6IGF1dG87CiAgICB3 b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7IHdvcmQtYnJl YWs6IGJyZWFrLXdvcmQ7Cn0KLnNvbmRlci13YXJuLXRleHQgcCB7IG1hcmdpbjogMCAwIDAuNmVt IDA7IH0KLnNvbmRlci13YXJuLXRleHQgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsg fQouc29uZGVyLXdhcm4tdGV4dCB1bCwgLnNvbmRlci13YXJuLXRleHQgb2wgeyBtYXJnaW46IDAu NGVtIDAgMC40ZW0gMS40ZW07IHBhZGRpbmc6IDA7IH0KLnNvbmRlci13YXJuLXRleHQgbGkgeyBt YXJnaW4tYm90dG9tOiAwLjJlbTsgfQouc29uZGVyLXdhcm4tdGV4dCBhIHsgY29sb3I6IHZhcigt LWZhcmJlLWFremVudCk7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB3b3JkLWJyZWFrOiBi cmVhay1hbGw7IH0KLnNvbmRlci13YXJuLWRhdHVtIHsgZm9udC1zaXplOiAxMnB4OyBjb2xvcjog dmFyKC0tdGV4dC1tdXRlZCk7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLXRvcDogMTJweDsg fQoKLyogUmljaC1UZXh0LUVkaXRvciAqLwoucnRlLXRvb2xiYXIgewogICAgZGlzcGxheTogZmxl eDsgZ2FwOiAycHg7IHBhZGRpbmc6IDRweDsgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgYmFja2dy b3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIt Y29sb3IpOwogICAgYm9yZGVyLXJhZGl1czogNnB4IDZweCAwIDA7IGJvcmRlci1ib3R0b206IG5v bmU7IGZsZXgtd3JhcDogd3JhcDsKfQoucnRlLWJ0biB7CiAgICBtaW4td2lkdGg6IDMwcHg7IGhl aWdodDogMjhweDsgcGFkZGluZzogMCA4cHg7IGZvbnQtc2l6ZTogMTNweDsKICAgIGJhY2tncm91 bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJh ZGl1czogNHB4OwogICAgY3Vyc29yOiBwb2ludGVyOyBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5 KTsKfQoucnRlLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgfQoucnRl LWJ0bi5ha3RpdiB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWFjdGl2ZSk7IGJvcmRlci1jb2xvcjog dmFyKC0tYm9yZGVyLWNvbG9yKTsgfQoucnRlLXNlcCB7IHdpZHRoOiAxcHg7IGJhY2tncm91bmQ6 IHZhcigtLWJvcmRlci1jb2xvcik7IG1hcmdpbjogNHB4IDRweDsgfQoucnRlLWVkaXRvciB7CiAg ICBtaW4taGVpZ2h0OiAxMTBweDsgbWF4LWhlaWdodDogMzAwcHg7IG92ZXJmbG93LXk6IGF1dG87 CiAgICBwYWRkaW5nOiAxMHB4IDEycHg7IGZvbnQtc2l6ZTogMTNweDsgbGluZS1oZWlnaHQ6IDEu NTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtcHJp bWFyeSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOyBib3JkZXIt cmFkaXVzOiAwIDAgNnB4IDZweDsKICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDsgb3ZlcmZsb3ct d3JhcDogYnJlYWstd29yZDsgd29yZC1icmVhazogYnJlYWstd29yZDsKICAgIG1heC13aWR0aDog MTAwJTsKfQoucnRlLWVkaXRvcjpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjog dmFyKC0tZmFyYmUtYWt6ZW50KTsgfQoucnRlLWVkaXRvciBwIHsgbWFyZ2luOiAwIDAgMC42ZW0g MDsgfQoucnRlLWVkaXRvciBwOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9Ci5ydGUt ZWRpdG9yIHVsLCAucnRlLWVkaXRvciBvbCB7IG1hcmdpbjogMC40ZW0gMCAwLjRlbSAxLjRlbTsg cGFkZGluZzogMDsgfQoucnRlLWVkaXRvciBhIHsgY29sb3I6IHZhcigtLWZhcmJlLWFremVudCk7 IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgfQoKLyogPT09PT0gQWRtaW46IEF1c2tsYXBwYmFyZSBI aW53ZWlzYm94ZW4gPT09PT0gKi8KLmFkbWluLWluZm8gewogICAgYmFja2dyb3VuZDogdmFyKC0t YmctY2FyZCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBib3Jk ZXItcmFkaXVzOiA4cHg7IG1hcmdpbi1ib3R0b206IDIwcHg7IG92ZXJmbG93OiBoaWRkZW47Cn0K LmFkbWluLWluZm8gPiBzdW1tYXJ5IHsKICAgIGxpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6IDEw cHggMTRweDsgY3Vyc29yOiBwb2ludGVyOyB1c2VyLXNlbGVjdDogbm9uZTsKICAgIGZvbnQtd2Vp Z2h0OiA2MDA7IGZvbnQtc2l6ZTogMTNweDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAg ICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGln bi1pdGVtczogY2VudGVyOyBnYXA6IDEwcHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAu MTVzOwp9Ci5hZG1pbi1pbmZvID4gc3VtbWFyeTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJn LWhvdmVyKTsgfQouYWRtaW4taW5mbyA+IHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIg eyBkaXNwbGF5OiBub25lOyB9Ci5hZG1pbi1pbmZvID4gc3VtbWFyeTo6bWFya2VyIHsgY29udGVu dDogJyc7IH0KLmFkbWluLWluZm8tY2hldiB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZv bnQtc2l6ZTogMTBweDsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7IGNvbG9yOiB2YXIoLS10 ZXh0LW11dGVkKTsKICAgIHdpZHRoOiAxMHB4Owp9Ci5hZG1pbi1pbmZvW29wZW5dID4gc3VtbWFy eSB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOyB9Ci5hZG1p bi1pbmZvW29wZW5dIC5hZG1pbi1pbmZvLWNoZXYgeyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7 IH0KLmFkbWluLWluZm8tYmFkZ2UgewogICAgbWFyZ2luLWxlZnQ6IGF1dG87IGZvbnQtc2l6ZTog MTBweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOwogICAgYmFj a2dyb3VuZDogdHJhbnNwYXJlbnQ7Cn0KLmFkbWluLWluZm8tYm9keSB7CiAgICBwYWRkaW5nOiAx NHB4IDE2cHg7IGZvbnQtc2l6ZTogMTIuNXB4OyBsaW5lLWhlaWdodDogMS42OyBjb2xvcjogdmFy KC0tdGV4dC1wcmltYXJ5KTsKfQouYWRtaW4taW5mby1ib2R5IHAgeyBtYXJnaW4tYm90dG9tOiAx MHB4OyB9Ci5hZG1pbi1pbmZvLWJvZHkgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsg fQouYWRtaW4taW5mby1ib2R5IHVsIHsgbWFyZ2luOiA2cHggMCAxMnB4IDIycHg7IH0KLmFkbWlu LWluZm8tYm9keSB1bCB1bCB7IG1hcmdpbjogNHB4IDAgNnB4IDE4cHg7IH0KLmFkbWluLWluZm8t Ym9keSBsaSB7IG1hcmdpbi1ib3R0b206IDNweDsgfQouYWRtaW4taW5mby1ib2R5IGNvZGUgewog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOyBwYWRkaW5nOiAxcHggNXB4OyBib3Jk ZXItcmFkaXVzOiAzcHg7CiAgICBmb250LXNpemU6IDExLjVweDsgYm9yZGVyOiAxcHggc29saWQg dmFyKC0tYm9yZGVyLWxpZ2h0KTsKfQouYWRtaW4taW5mby1ib2R5IHN0cm9uZyB7IGNvbG9yOiB2 YXIoLS10ZXh0LWhlYWRpbmcpOyB9CgovKiA9PT09PSBBZG1pbjogU2FtbWVsLVRhYi1TZWt0aW9u ZW4gKEF1ZGl0LUl0ZXItRCwgMjAyNi0wNS0wNSkgPT09PT0KICogU3ViLUNvbnRhaW5lciBpbSBT YW1tZWwtVGFiIHdlcmRlbiBwZXIgSlMgaW4gPGRldGFpbHMgY2xhc3M9ImFkbWluLXNla3Rpb24i PgogKiBnZXdpY2tlbHQuIFBsYW4tV29ydGxhdXQ6IOKAnmJlaWRlIGluaXRpYWwgb2ZmZW4iIOKA lCBKUyBzZXR6dCBkZXRhaWxzLm9wZW49dHJ1ZS4KICovCi5hZG1pbi1zYW1tZWwtaGludCB7CiAg ICBtYXJnaW46IC04cHggMCAxOHB4IDA7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRl eHQtbXV0ZWQpOwogICAgbGluZS1oZWlnaHQ6IDEuNTsKfQouYWRtaW4tc2VrdGlvbiB7CiAgICBi YWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVy LWNvbG9yKTsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsgbWFyZ2luLWJvdHRvbTogMTZweDsgb3Zl cmZsb3c6IGhpZGRlbjsKfQouYWRtaW4tc2VrdGlvbiA+IHN1bW1hcnkgewogICAgbGlzdC1zdHls ZTogbm9uZTsgcGFkZGluZzogMTJweCAxNnB4OyBjdXJzb3I6IHBvaW50ZXI7CiAgICAtd2Via2l0 LXVzZXItc2VsZWN0OiBub25lOyB1c2VyLXNlbGVjdDogbm9uZTsKICAgIGZvbnQtd2VpZ2h0OiA3 MDA7IGZvbnQtc2l6ZTogMTVweDsgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZyk7CiAgICBiYWNr Z3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBnYXA6IDEwcHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzOwp9 Ci5hZG1pbi1zZWt0aW9uID4gc3VtbWFyeTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhv dmVyKTsgfQouYWRtaW4tc2VrdGlvbiA+IHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIg eyBkaXNwbGF5OiBub25lOyB9Ci5hZG1pbi1zZWt0aW9uID4gc3VtbWFyeTo6bWFya2VyIHsgY29u dGVudDogJyc7IH0KLmFkbWluLXNla3Rpb24tY2hldiB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxv Y2s7IGZvbnQtc2l6ZTogMTJweDsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnM7CiAgICBjb2xv cjogdmFyKC0tdGV4dC1tdXRlZCk7IHdpZHRoOiAxMnB4OyB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBk ZWcpOwp9Ci5hZG1pbi1zZWt0aW9uW29wZW5dID4gc3VtbWFyeSB7IGJvcmRlci1ib3R0b206IDFw eCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOyB9Ci5hZG1pbi1zZWt0aW9uW29wZW5dIC5hZG1p bi1zZWt0aW9uLWNoZXYgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQouYWRtaW4tc2VrdGlv bi10aXRlbCB7IGZsZXg6IDAgMCBhdXRvOyB9Ci5hZG1pbi1zZWt0aW9uLWFjdGlvbnMgewogICAg bWFyZ2luLWxlZnQ6IGF1dG87IGRpc3BsYXk6IGlubGluZS1mbGV4OyBnYXA6IDhweDsgYWxpZ24t aXRlbXM6IGNlbnRlcjsKfQouYWRtaW4tc3ViLWNvbnRlbnQgewogICAgcGFkZGluZzogMTZweCAx OHB4Owp9Ci5hZG1pbi1zdWItY29udGVudCA+IC5hZG1pbi1pbmZvIHsgbWFyZ2luLXRvcDogMDsg fQoKLyogPT09PT0gU29uZGVydGVybWluLU1laHJmYWNoYmVhcmJlaXR1bmcgKEJ1bGstRWRpdC1C YXIpID09PT09ICovCi5idWxrLWJhciB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFs dCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWZhcmJlLWFremVudCk7CiAgICBib3JkZXItcmFk aXVzOiA4cHg7IHBhZGRpbmc6IDEycHggMTRweDsgbWFyZ2luOiA4cHggMCAxNHB4OwogICAgZGlz cGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMnB4Owp9Ci5idWxrLWJh ci1rb3BmIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTJw eDsgZm9udC1zaXplOiAxM3B4Owp9Ci5idWxrLWNvdW50IHsKICAgIGZvbnQtc2l6ZTogMTJweDsg Zm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWZhcmJlLWFremVudCk7CiAgICBiYWNrZ3Jv dW5kOiB2YXIoLS1iZy1jYXJkKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZmFyYmUtYWt6ZW50 KTsKICAgIHBhZGRpbmc6IDJweCAxMHB4OyBib3JkZXItcmFkaXVzOiAxMnB4Owp9Ci5idWxrLWJh ci1mZWxkZXIgewogICAgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDE0cHgg MThweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQouYnVsay1mZWxkIHsKICAgIGRpc3BsYXk6IGlu bGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgZm9udC1zaXplOiAxMnB4 OwogICAgY3Vyc29yOiBkZWZhdWx0Owp9Ci5idWxrLWZlbGQgPiBpbnB1dFt0eXBlPSJjaGVja2Jv eCJdIHsgY3Vyc29yOiBwb2ludGVyOyB9Ci5idWxrLWZlbGQgLmJ1bGstbGFiZWwgeyBmb250LXdl aWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyBtaW4td2lkdGg6IDU2cHg7 IH0KLmJ1bGstZmVsZCAuZm9ybS1pbnB1dCB7IGZvbnQtc2l6ZTogMTJweDsgcGFkZGluZzogNHB4 IDhweDsgbWluLXdpZHRoOiAxNjBweDsgfQouYnVsay1iYXItYWN0aW9ucyB7CiAgICBkaXNwbGF5 OiBmbGV4OyBnYXA6IDhweDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgYWxpZ24taXRlbXM6 IGNlbnRlcjsKICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsg cGFkZGluZy10b3A6IDEwcHg7Cn0KLmJ0bi1zb25kZXJ0ZXJtaW4tYnVsay10b2dnbGUuYWt0aXYs CiNidG4tc29uZGVydGVybWluLWJ1bGstdG9nZ2xlLmFrdGl2IHsKICAgIGJhY2tncm91bmQ6IHZh cigtLWZhcmJlLWFremVudCk7IGNvbG9yOiB2YXIoLS1iZy1wcmltYXJ5KTsKfQouYnVsay16ZWls ZS1ha3RpdiB0ZCB7IGJhY2tncm91bmQ6IHZhcigtLWJnLWhvdmVyKTsgfQouYnVsay1jYi1jZWxs IHsgd2lkdGg6IDMycHg7IHRleHQtYWxpZ246IGNlbnRlcjsgfQouYnVsay1jYi1jZWxsIGlucHV0 W3R5cGU9ImNoZWNrYm94Il0geyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zZm9ybTogc2NhbGUoMS4x KTsgfQoKLyogPT09PT0gU2NoaWNodGNvZGUtVm9yc2NoYXU6IEdydXBwaWVydW5nID09PT09ICov Ci5zYy12b3JzY2hhdS10b29sYmFyIHsKICAgIGRpc3BsYXk6IGZsZXg7IGdhcDogMTJweDsgYWxp Z24taXRlbXM6IGNlbnRlcjsgbWFyZ2luLWJvdHRvbTogMTJweDsgZmxleC13cmFwOiB3cmFwOwog ICAgcGFkZGluZzogOHB4IDEycHg7IGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsgYm9y ZGVyLXJhZGl1czogNnB4Owp9Ci5zYy12b3JzY2hhdS10b29sYmFyIGxhYmVsIHsgZm9udC1zaXpl OiAxMnB4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB9 Ci5zYy12b3JzY2hhdS10b29sYmFyIHNlbGVjdCB7CiAgICBwYWRkaW5nOiA0cHggOHB4OyBmb250 LXNpemU6IDEycHg7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsKICAgIGJvcmRlcjogMXB4 IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7IGJvcmRlci1yYWRpdXM6IDRweDsKfQouc2MtZ3J1 cHBlIHsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFy KC0tYm9yZGVyLXN0cm9uZyk7IHBhZGRpbmctbGVmdDogMTBweDsKfQouc2MtZ3J1cHBlLXRpdGVs IHsKICAgIGZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLXRl eHQtbXV0ZWQpOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6 IDAuNXB4OyBtYXJnaW4tYm90dG9tOiA2cHg7Cn0KLnNjLWdydXBwZS1saXN0ZSB7CiAgICBkaXNw bGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1h eCgyMjBweCwgMWZyKSk7CiAgICBnYXA6IDZweDsKfQoKLyogRi40LUI6IFNjaGljaHRjb2RlLUVy d2VpdGVydW5nZW4gKEFrdGl2L0luYWt0aXYsIERyYWcsIFrDpGhsZXIpICovCi5zY2hpY2h0Y29k ZS1rYXJ0ZS5zYy1pbmFrdGl2IHsgb3BhY2l0eTogMC40NTsgfQouc2NoaWNodGNvZGUta2FydGUu c2MtaW5ha3RpdiAuc2NoaWNodGNvZGUtZmFyYmZlbGQgewogICAgZmlsdGVyOiBncmF5c2NhbGUo NjAlKTsKfQouc2MtdmVyd2VuZHVuZy1iYWRnZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7 CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDgpOwogICAgY29sb3I6IHZhcigtLXRleHQt c2Vjb25kYXJ5KTsKICAgIGZvbnQtc2l6ZTogMTBweDsgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHBh ZGRpbmc6IDFweCA2cHg7IGJvcmRlci1yYWRpdXM6IDlweDsKICAgIG1hcmdpbi1sZWZ0OiA0cHg7 Cn0KLnNjLWluYWt0aXYtYmFkZ2UgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgYmFj a2dyb3VuZDogcmdiYSgxODMsIDEyMSwgMzEsIDAuMTUpOwogICAgY29sb3I6IHZhcigtLWZhcmJl LXdhcm51bmcsICNCNzc5MUYpOwogICAgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNjAw OwogICAgcGFkZGluZzogMXB4IDZweDsgYm9yZGVyLXJhZGl1czogM3B4OwogICAgbWFyZ2luLWxl ZnQ6IDRweDsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQouc2MtZG5kLXpvbmUuc2MtZG5k LWFrdGl2IC5zY2hpY2h0Y29kZS1rYXJ0ZSB7IGN1cnNvcjogZ3JhYjsgfQouc2MtZG5kLXpvbmUu c2MtZG5kLWFrdGl2IC5zY2hpY2h0Y29kZS1rYXJ0ZTphY3RpdmUgeyBjdXJzb3I6IGdyYWJiaW5n OyB9Ci5zYy1kbmQtem9uZSAuc2NoaWNodGNvZGUta2FydGUuc2MtZHJhZyB7IG9wYWNpdHk6IDAu NDsgfQouc2MtZG5kLXpvbmUgLnNjaGljaHRjb2RlLWthcnRlLnNjLWRyb3Atdm9yIHsKICAgIGJv eC1zaGFkb3c6IDAgLTJweCAwIDAgIzI3YWU2MCBpbnNldCwgMCAycHggMCAwICMyN2FlNjAgaW5z ZXQ7Cn0KCi8qIEYuNC1DOiBJbmZvcm1hdGlvbiAmIEhpbGZlLVRhYiDigJQgTWluaS1SVEUgcHJv IEZlbGQgKi8KLmluZm8tcnRlLWJsb2NrIHsKICAgIG1hcmdpbi1ib3R0b206IDE4cHg7CiAgICBw YWRkaW5nOiAxMnB4IDE0cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGln aHQpOwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2Fy ZCwgI2ZmZik7Cn0KLmluZm8tcnRlLWJsb2NrIGgzIHsKICAgIG1hcmdpbjogMCAwIDRweCAwOwog ICAgZm9udC1zaXplOiAxNHB4OwogICAgY29sb3I6IHZhcigtLXRleHQtaGVhZGluZywgIzIyMik7 Cn0KLmluZm8tcnRlLWJsb2NrIC5ydGUtaGludCB7CiAgICBtYXJnaW46IDAgMCA4cHggMDsKICAg IGZvbnQtc2l6ZTogMTFweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKfQouaW5mby1y dGUtYmxvY2sgLnJ0ZS10b29sYmFyIHsKICAgIGRpc3BsYXk6IGZsZXg7IGdhcDogNHB4OyBmbGV4 LXdyYXA6IHdyYXA7CiAgICBwYWRkaW5nOiA2cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCww LDAuMDQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJv cmRlci1ib3R0b206IG5vbmU7CiAgICBib3JkZXItcmFkaXVzOiAzcHggM3B4IDAgMDsKICAgIGFs aWduLWl0ZW1zOiBjZW50ZXI7Cn0KLmluZm8tcnRlLWJsb2NrIC5ydGUtdG9vbGJhciBidXR0b24g ewogICAgcGFkZGluZzogNHB4IDhweDsgZm9udC1zaXplOiAxMXB4OwogICAgYm9yZGVyOiAxcHgg c29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQs ICNmZmYpOwogICAgYm9yZGVyLXJhZGl1czogM3B4OyBjdXJzb3I6IHBvaW50ZXI7CiAgICBtaW4t d2lkdGg6IDI4cHg7Cn0KLmluZm8tcnRlLWJsb2NrIC5ydGUtdG9vbGJhciBidXR0b246aG92ZXIg eyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDUpOyB9Ci5pbmZvLXJ0ZS1ibG9jayAucnRlLXRv b2xiYXIgYnV0dG9uOmFjdGl2ZSB7IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xMCk7IH0KLmlu Zm8tcnRlLWJsb2NrIC5ydGUtdG9vbGJhciAucnRlLXNlcCB7CiAgICB3aWR0aDogMXB4OyBoZWln aHQ6IDE4cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgbWFyZ2lu OiAwIDRweDsKfQouaW5mby1ydGUtYmxvY2sgLnJ0ZS1lZGl0b3IgewogICAgbWluLWhlaWdodDog MTAwcHg7CiAgICBwYWRkaW5nOiAxMHB4IDEycHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIo LS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJhZGl1czogMCAwIDNweCAzcHg7CiAgICBiYWNr Z3JvdW5kOiB2YXIoLS1iZy1jYXJkLCAjZmZmKTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGxp bmUtaGVpZ2h0OiAxLjU7Cn0KLmluZm8tcnRlLWJsb2NrIC5ydGUtZWRpdG9yOmZvY3VzIHsKICAg IG91dGxpbmU6IDJweCBzb2xpZCByZ2JhKDM5LCAxNzQsIDk2LCAwLjQpOwogICAgb3V0bGluZS1v ZmZzZXQ6IC0ycHg7Cn0KLmluZm8tcnRlLWJsb2NrIC5ydGUtZWRpdG9yIHVsLAouaW5mby1ydGUt YmxvY2sgLnJ0ZS1lZGl0b3Igb2wgewogICAgcGFkZGluZy1sZWZ0OiAyNHB4OyBtYXJnaW46IDRw eCAwOwp9CgovKiBTb25kZXJ0ZXJtaW5lLUxpc3RlIChyZWFkLW9ubHkpICovCi5zb25kZXItaWNv bi16ZWxsZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsg anVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB3aWR0aDogMzJweDsgaGVpZ2h0OiAzMnB4OyBm b250LXNpemU6IDE4cHg7IGJvcmRlci1yYWRpdXM6IDVweDsKICAgIGJhY2tncm91bmQ6IHZhcigt LWJnLWNhcmQtYWx0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAg IGZvbnQtZmFtaWx5OiAiQXBwbGUgQ29sb3IgRW1vamkiLCJTZWdvZSBVSSBFbW9qaSIsIk5vdG8g Q29sb3IgRW1vamkiLHNhbnMtc2VyaWY7Cn0KLnNvbmRlci1pY29uLXplbGxlLmxlZXIgeyBjb2xv cjogdmFyKC0tdGV4dC1tdXRlZCk7IGZvbnQtc2l6ZTogMTNweDsgZm9udC1mYW1pbHk6IGluaGVy aXQ7IH0KLnNvbmRlci10eXAtYmFkZ2UgewogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyBwYWRk aW5nOiAycHggOHB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBmb250LXNpemU6IDExcHg7IGZvbnQt d2VpZ2h0OiA2MDA7Cn0KLnNvbmRlci10eXAtaW5mbyB7IGJhY2tncm91bmQ6IHJnYmEoNDEsMTI4 LDE4NSwwLjE1KTsgY29sb3I6IHZhcigtLWZhcmJlLWFremVudCk7IH0KLnNvbmRlci10eXAtd2Fy biB7IGJhY2tncm91bmQ6IHJnYmEoMjAyLDExMSwzMCwwLjE4KTsgY29sb3I6IHZhcigtLWZhcmJl LXdhcm51bmcpOyB9CgovKiBTb25kZXJ0ZXJtaW4tS2F0ZWdvcmllLUJhZGdlcyAqLwouc29uZGVy LWthdC1iYWRnZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDJweCA4cHg7 IGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBmb250LXNpemU6IDExcHg7IGZvbnQtd2VpZ2h0OiA2 MDA7IHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFs dCk7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2 YXIoLS1ib3JkZXItY29sb3IpOwp9Ci5zb25kZXIta2F0LWJ2YiAgICAgICAgICAgICAgIHsgYmFj a2dyb3VuZDogcmdiYSgyNDEsMTk2LDE1LDAuMTgpOyBjb2xvcjogIzhCNkYxQTsgYm9yZGVyLWNv bG9yOiByZ2JhKDI0MSwxOTYsMTUsMC4zNSk7IH0KLnNvbmRlci1rYXQtc3BvcnQgICAgICAgICAg ICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDc0LDEzOSw5NCwwLjE4KTsgIGNvbG9yOiAjMkE1QTNEOyBi b3JkZXItY29sb3I6IHJnYmEoNzQsMTM5LDk0LDAuMzUpOyB9Ci5zb25kZXIta2F0LWdyb3NzdmVy YW5zdGFsdHVuZ3sgYmFja2dyb3VuZDogcmdiYSgxNTUsODksMTgyLDAuMTgpOyBjb2xvcjogIzZC M0Q4QTsgYm9yZGVyLWNvbG9yOiByZ2JhKDE1NSw4OSwxODIsMC4zNSk7IH0KLnNvbmRlci1rYXQt YmFvICAgICAgICAgICAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDE5Miw1Nyw0MywwLjE4KTsgIGNv bG9yOiAjOEIxQTFBOyBib3JkZXItY29sb3I6IHJnYmEoMTkyLDU3LDQzLDAuMzUpOyB9Ci5zb25k ZXIta2F0LXVlYnVuZyAgICAgICAgICAgIHsgYmFja2dyb3VuZDogcmdiYSg0MSwxMjgsMTg1LDAu MTgpOyBjb2xvcjogIzFGNEE3NTsgYm9yZGVyLWNvbG9yOiByZ2JhKDQxLDEyOCwxODUsMC4zNSk7 IH0KLnNvbmRlci1rYXQtYmVzcHJlY2h1bmcgICAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDEyNywx NDAsMTQxLDAuMTgpOyBjb2xvcjogIzRBNTQ1NTsgYm9yZGVyLWNvbG9yOiByZ2JhKDEyNywxNDAs MTQxLDAuMzUpOyB9CgovKiBCYWNrdXAtVHlwLUJhZGdlcyAqLwouYmstdHlwIHsgZGlzcGxheTog aW5saW5lLWJsb2NrOyBwYWRkaW5nOiAycHggOHB4OyBib3JkZXItcmFkaXVzOiAxMHB4OyBmb250 LXNpemU6IDEwLjVweDsgZm9udC13ZWlnaHQ6IDYwMDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQou YmstdHlwLW1hbnVlbGwgeyBiYWNrZ3JvdW5kOiByZ2JhKDI3LDk0LDMyLDAuMTUpOyBjb2xvcjog IzFCNUUyMDsgfQouYmstdHlwLWF1dG8geyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4x OCk7IGNvbG9yOiB2YXIoLS1mYXJiZS13YXJudW5nKTsgfQouYmstdHlwLXNpY2hlcnVuZyB7IGJh Y2tncm91bmQ6IHJnYmEoNDEsMTI4LDE4NSwwLjE1KTsgY29sb3I6IHZhcigtLWZhcmJlLWFremVu dCk7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmJrLXR5cC1tYW51ZWxsIHsgYmFja2dyb3VuZDog cmdiYSgyNyw5NCwzMiwwLjMpOyBjb2xvcjogI2E1ZDZhNzsgfQpbZGF0YS10aGVtZT0ibmlnaHQi XSAuYmstdHlwLWF1dG8geyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4zKTsgY29sb3I6 ICNmZmNjODA7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gLmJrLXR5cC1zaWNoZXJ1bmcgeyBiYWNr Z3JvdW5kOiByZ2JhKDQxLDEyOCwxODUsMC4zKTsgY29sb3I6ICM5MGNhZjk7IH0KCgovKiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAgIFRhZ2VzbGFnZS1SZWZyZXNoIOKAlCBBa3plbnRzdHJlaWZlbiArIEJsb2NrLVRvZW51bmcg cHJvIFplaWxlCiAgIChhZGRpdGl2LCBJRHMgdW52ZXJhZW5kZXJ0LCBMaXZlLVVwZGF0ZS1QZmFk ZSB1bmFuZ2V0YXN0ZXQpCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCi8qIFBvc2l0aW9uLUFua2VyIGZ1ZXIgZGVuIEFr emVudHN0cmljaCDigJQgbGlua3MgVU5EIHJlY2h0cyAqLwoua29wZi16ZWlsZS50bC1yb3csCi5r b3BmLWRhdGVuLXplaWxlLnRsLXJvdyB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfQoKLyogQWt6ZW50 c3RyaWNoIGFtIGxpbmtlbiBaZWlsZW4tUmFuZCBlbnRmZXJudCDigJQgSGVhZGVyIHNvbGwgdW5p Zm9ybSBDRC1ibGF1IGJsZWliZW4gKi8KLmtvcGYtemVpbGUudGwtcm93OjpiZWZvcmUgeyBjb250 ZW50OiBub25lOyB9CgovKiBMYWJlbC1UZXh0IGF1ZiBkdW5rZWxibGF1ZW0gSGVhZGVyLUJsb2Nr OiBIRUxMICsgZmV0dCwgbGVzYmFyICovCi5rb3BmLXplaWxlLnRsLXJvdyAua2wtbGFiZWwgewog ICAgcGFkZGluZy1sZWZ0OiAwOwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGZvbnQtc2l6ZTog MTFweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgbGV0dGVyLXNwYWNp bmc6IDAuMnB4OwogICAgZmxleC1zaHJpbms6IDA7Cn0KLmtvcGYtemVpbGUudGwtcm93IC5rbC13 ZXJ0IHsKICAgIGZvbnQtc2l6ZTogOXB4OwogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwg MC41NSk7CiAgICBmb250LXdlaWdodDogNTAwOwogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBw YWRkaW5nLXJpZ2h0OiA4cHg7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0 dGVyLXNwYWNpbmc6IDAuNHB4Owp9CgovKiBBa3plbnRmYXJiZSBwcm8gWmVpbGUgKExFRlQgKyBS SUdIVCkg4oCUIGZ1ZXIgZGVuIDNweC1TdHJpY2ggKi8KLnRsLXJvdy1kc20gICAgICAgICB7IC0t dGwtYWt6ZW50OiB2YXIoLS10bC1ha3otZHNtKTsgfQoudGwtcm93LXZvcmdhYmUgICAgIHsgLS10 bC1ha3plbnQ6IHZhcigtLXRsLWFrei1zb2xsKTsgfQoudGwtcm93LXN0YWVya2Vzb2xsIHsgLS10 bC1ha3plbnQ6IHZhcigtLXRsLWFrei1zb2xsKTsgfQoudGwtcm93LWZydWVoLWwgICAgIHsgLS10 bC1ha3plbnQ6IHZhcigtLXRsLWFrei1mcnVlaCk7IH0KLnRsLXJvdy1zcGFldC1sICAgICB7IC0t dGwtYWt6ZW50OiB2YXIoLS10bC1ha3otc3BhZXQpOyB9Ci50bC1yb3ctdW50c3R1ZXR6LWYgeyAt LXRsLWFremVudDogdmFyKC0tdGwtYWt6LWZydWVoKTsgfQoudGwtcm93LXVudHN0dWV0ei1uIHsg LS10bC1ha3plbnQ6IHZhcigtLXRsLWFrei1uYWNodCk7IH0KCi8qIEJsb2NrLVRvZW51bmcgTlVS IGF1ZiBkZXIgcmVjaHRlbiBUYWdlc2RhdGVuLVNlaXRlIOKAlCBkaWUgbGlua2VuIExhYmVscwog ICBibGVpYmVuIGVpbmhlaXRsaWNoIGltIEhlYWRlci1Mb29rLiBBa3plbnRzdHJlaWZlbiByZWlj aGVuIHp1cgogICB2aXN1ZWxsZW4gRGlmZmVyZW56aWVydW5nLiAqLwoua29wZi1kYXRlbi16ZWls ZS50bC1yb3ctdm9yZ2FiZSAgICAgeyBiYWNrZ3JvdW5kOiB2YXIoLS10bC1iZy1zb2xsKTsgfQou a29wZi1kYXRlbi16ZWlsZS50bC1yb3ctc3RhZXJrZXNvbGwgeyBiYWNrZ3JvdW5kOiB2YXIoLS10 bC1iZy1zb2xsKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRl ci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3IpOyB9Ci5rb3BmLWRhdGVuLXpl aWxlLnRsLXJvdy1mcnVlaC1sICAgICB7IGJhY2tncm91bmQ6IHZhcigtLXRsLWJnLWZydWVoKTsg fQoua29wZi1kYXRlbi16ZWlsZS50bC1yb3ctc3BhZXQtbCAgICAgeyBiYWNrZ3JvdW5kOiB2YXIo LS10bC1iZy1zcGFldCk7IH0KLmtvcGYtZGF0ZW4temVpbGUudGwtcm93LXVudHN0dWV0ei1mIHsg YmFja2dyb3VuZDogdmFyKC0tdGwtYmctZnJ1ZWgpOyB9Ci5rb3BmLWRhdGVuLXplaWxlLnRsLXJv dy11bnRzdHVldHotbiB7IGJhY2tncm91bmQ6IHZhcigtLXRsLWJnLW5hY2h0KTsgfQoKLyogVW50 LUYgLyBVbnQtTjogZ2VzdHJpY2hlbHRlciBBa3plbnRzdHJpY2ggenVyIEFiZ3Jlbnp1bmcgdm9u IEYtTC9TLUwgKi8KLmtvcGYtemVpbGUudGwtcm93LXVudHN0dWV0ei1mOjpiZWZvcmUsCi5rb3Bm LXplaWxlLnRsLXJvdy11bnRzdHVldHotbjo6YmVmb3JlIHsKICAgIGJhY2tncm91bmQ6IHJlcGVh dGluZy1saW5lYXItZ3JhZGllbnQoCiAgICAgICAgMTgwZGVnLCB2YXIoLS10bC1ha3plbnQpIDAg NHB4LCB0cmFuc3BhcmVudCA0cHggN3B4KTsKfQoKLyogU3TDpHJrZS1Tb2xsLVplbGxlOiBSb3Qv R3LDvG4gcGFzc2VuZCB6dSBEU00gdW5kIEZlaWVydGFnLU1hcmtlcm4uCiAgIEVyZsO8bGx0ID0g IzFCNUUyMCAoPSBEU00tYWt0aXYtR3LDvG4pLCBVbnRlcmJlc2V0enQgPSAjOEIxQTFBICg9IEZl aWVydGFnLVJvdCkuICovCi5rZC16ZWxsZS50ZC1zb2xsLnRkLWVyZnVlbGx0LXRpbnQgewogICAg YmFja2dyb3VuZDogIzFCNUUyMCAhaW1wb3J0YW50OwogICAgY29sb3I6ICNGRkZGRkYgIWltcG9y dGFudDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7Cn0KLmtkLXplbGxlLnRkLXNvbGwudGQtdW50ZXJi ZXNldHp0IHsKICAgIGJhY2tncm91bmQ6ICM4QjFBMUEgIWltcG9ydGFudDsKICAgIGNvbG9yOiAj RkZGRkZGICFpbXBvcnRhbnQ7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgYm94LXNoYWRvdzog bm9uZTsKfQovKiBUcmVubmVyICIvIiB1bmQgWmllbC1aYWhsIGF1ZiBkZW0gZmFyYmlnZW4gSGlu dGVyZ3J1bmQ6IHdlaXNzLWdldG9lbnQgKi8KLmtkLXplbGxlLnRkLXNvbGwgLnRkLXNvbGwtZGl2 aWRlciB7IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjUpOyBvcGFjaXR5OiAxOyB9Ci5rZC16 ZWxsZS50ZC1zb2xsIC50ZC1zb2xsLXppZWwgICAgeyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSww LjkyKTsgb3BhY2l0eTogMTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBWaXN1YWwtUmVmcmVzaCDigJQgVG9wYmFy IC8gR3J1cHBlbi1UcmVubmVyCiAgIChhZGRpdGl2LCBrZWluZSBET00tQWVuZGVydW5nZW4gZXJm b3JkZXJsaWNoKQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09ICovCgovKiBGTEQtTG9nby1Ba3plbnQgdm9yIGRlbSBUaXRlbCDi gJQgR29sZC1RdWFkcmF0IHBlciBQc2V1ZG8tRWxlbWVudC4KICAgQ3VzdG9tLUxvZ28tSG9laGUg dmlhIENTUy1WYXJpYWJsZSAoRGVmYXVsdCAyOHB4KSwgSGVhZGVyIGF0bWV0IG1pdC4gKi8KOnJv b3QgeyAtLWN1c3RvbS1sb2dvLWhvZWhlOiAyOHB4OyB9CiNrb3BmbGVpc3RlIHsgbWluLWhlaWdo dDogY2FsYyh2YXIoLS1jdXN0b20tbG9nby1ob2VoZSkgKyAxNHB4KTsgaGVpZ2h0OiBhdXRvOyB9 CiNrb3BmbGVpc3RlIC5oZWFkZXItbGlua3MgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24t aXRlbXM6IGNlbnRlcjsgZ2FwOiAxMHB4OyB9CiNrb3BmbGVpc3RlIGgxIHsgZGlzcGxheTogaW5s aW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH0KI2N1c3RvbS1sb2dvLXNsb3QgeyBkaXNw bGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQojY3VzdG9tLWxvZ28tc2xv dCBpbWcuY3VzdG9tLWxvZ28gewogICAgbWF4LWhlaWdodDogdmFyKC0tY3VzdG9tLWxvZ28taG9l aGUpOwogICAgbWF4LXdpZHRoOiBjYWxjKHZhcigtLWN1c3RvbS1sb2dvLWhvZWhlKSAqIDMuNSk7 CiAgICB3aWR0aDogYXV0bzsKICAgIG9iamVjdC1maXQ6IGNvbnRhaW47CiAgICBib3JkZXItcmFk aXVzOiA0cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgcGFk ZGluZzogMnB4IDRweDsKfQoja29wZmxlaXN0ZSBoMTo6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJG TEQiOwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwog ICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICB3aWR0aDogMjZweDsKICAgIGhlaWdodDog MjZweDsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFk aWVudCgxMzVkZWcsIHZhcigtLWdvbGQpIDAlLCAjOEU2RjJGIDEwMCUpOwogICAgY29sb3I6ICNm ZmY7CiAgICBmb250LXNpemU6IDEwcHg7CiAgICBmb250LXdlaWdodDogODAwOwogICAgbGV0dGVy LXNwYWNpbmc6IDAuNXB4OwogICAgYm94LXNoYWRvdzogdmFyKC0tc2NoYXR0ZW4tc20pOwogICAg bWFyZ2luLXJpZ2h0OiAxMHB4Owp9Ci8qIEN1c3RvbS1Mb2dvIGFrdGl2OiBGTEQtUHNldWRvIGF1 c2JsZW5kZW4gKi8KYm9keS5jdXN0b20tbG9nby1ha3RpdiAja29wZmxlaXN0ZSBoMTo6YmVmb3Jl IHsgZGlzcGxheTogbm9uZTsgfQoKLyogQWt0aXZlciBOYXYtVGFiOiBBa3plbnQtVW50ZXJzdHJp Y2ggaW4gR29sZCBzdGF0dCBXZWlzcyDigJQgcnVoaWdlciAqLwoubmF2LWJ0bi5ha3RpdiB7CiAg ICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1nb2xkKTsKfQoKLyogUGVyc29uYWx2ZXJ3YWx0 dW5nLVRhYmVsbGU6IGZlc3RlIFNwYWx0ZW5icmVpdGVuIHZlcmhpbmRlcm4gTGF5b3V0LVNwcnVu ZyAqLwojcGVyc29uYWwtdGFiZWxsZSB7CiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkOwogICAgd2lk dGg6IDEwMCU7Cn0KI3BlcnNvbmFsLXRhYmVsbGUgdGQgewogICAgb3ZlcmZsb3c6IGhpZGRlbjsK ICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoK LyogSW5saW5lLUVkaXQgKFZJMy1QYXR0ZXJuOiByZXBsYWNlV2l0aCkg4oCUIFNwYW4gd2lyZCB6 dSBJbnB1dCAqLwouemUtZWRpdCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBjdXJz b3I6IHBvaW50ZXI7CiAgICBwYWRkaW5nOiAxcHggNXB4OwogICAgYm9yZGVyLXJhZGl1czogMnB4 OwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzOwogICAgbWluLXdpZHRoOiAzMHB4Owog ICAgbWF4LXdpZHRoOiAxMDAlOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZs b3c6IGVsbGlwc2lzOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIHZlcnRpY2FsLWFsaWdu OiBtaWRkbGU7Cn0KLnplLWVkaXQ6aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctaG92 ZXIpOwogICAgb3V0bGluZTogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItc3Ryb25nKTsKICAgIG91 dGxpbmUtb2Zmc2V0OiAtMXB4Owp9Ci56ZS1lZGl0LWlucHV0IHsKICAgIHdpZHRoOiAxMDAlOwog ICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tdGV4dC1oZWFkaW5nKTsKICAgIGJhY2tncm91bmQ6 IHZhcigtLWJnLWlucHV0KTsKICAgIHBhZGRpbmc6IDFweCA1cHg7CiAgICBtYXJnaW46IDA7CiAg ICBmb250LWZhbWlseTogaW5oZXJpdDsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGNvbG9yOiB2 YXIoLS10ZXh0LXByaW1hcnkpOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgb3V0bGluZTog bm9uZTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLnplLWVkaXQtaW5wdXQ6Zm9jdXMg ewogICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoNDQsNjIsODAsMC4yMCk7Cn0KLnplLWVk aXQtc2VsZWN0IHsgY3Vyc29yOiBwb2ludGVyOyBwYWRkaW5nLXJpZ2h0OiAxOHB4OyB9CgovKiBM b2didWNoLVRhZ3MgKyBSb2xsZW4tQmFkZ2VzICovCi5sYi10YWcgewogICAgZGlzcGxheTogaW5s aW5lLWJsb2NrOwogICAgcGFkZGluZzogMXB4IDZweDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsK ICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBtYXJnaW4tbGVm dDogNnB4OwogICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKfQoubGItdGFnLXBmbGljaHQgIHsg YmFja2dyb3VuZDogcmdiYSgxNzYsMTM4LDYzLDAuMTUpOyBjb2xvcjogdmFyKC0tZ29sZCk7IGJv cmRlcjogMXB4IHNvbGlkIHJnYmEoMTc2LDEzOCw2MywwLjQpOyB9Ci5sYi10YWctb3ZlcnJpZGUg eyBiYWNrZ3JvdW5kOiByZ2JhKDIwMiwxMTEsMzAsMC4xNSk7IGNvbG9yOiB2YXIoLS1mYXJiZS13 YXJudW5nKTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMDIsMTExLDMwLDAuNCk7IH0KCi5sYi1y b2xsZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBwYWRkaW5nOiAxcHggNXB4Owog ICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgZm9udC1zaXplOiA5cHg7CiAgICBmb250LXdlaWdo dDogNzAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5n OiAwLjVweDsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgdmVydGljYWwtYWxpZ246IG1pZGRs ZTsKfQoubGItcm9sbGUtc3VwZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS10ZXh0LWhlYWRpbmcpOyBj b2xvcjogI2ZmZjsgfQoubGItcm9sbGUtYWRtaW4geyBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkLXNv ZnQpOyBjb2xvcjogdmFyKC0tZ29sZCk7IH0KLmxiLXJvbGxlLXVzZXIgIHsgYmFja2dyb3VuZDog dmFyKC0tYmctaG92ZXIpOyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7IH0KCi8qIFRlcm1pbmUt VGFiOiBLYXRlZ29yaWUtQmFkZ2VzICsgRmlsdGVyICovCi5mdC1rYXQgewogICAgZGlzcGxheTog aW5saW5lLWJsb2NrOwogICAgcGFkZGluZzogMXB4IDdweDsKICAgIGJvcmRlci1yYWRpdXM6IDhw eDsKICAgIGZvbnQtc2l6ZTogMTBweDsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB0ZXh0LXRy YW5zZm9ybTogdXBwZXJjYXNlOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4Owp9Ci5mdC1rYXQt Z2VzZXR6bGljaCB7IGJhY2tncm91bmQ6IHJnYmEoMTc2LDEzOCw2MywwLjE1KTsgY29sb3I6IHZh cigtLWdvbGQpOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE3NiwxMzgsNjMsMC40KTsgfQouZnQt a2F0LWp1ZWRpc2NoICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDYyLDk0LDEzOSwwLjEyKTsgIGNvbG9y OiAjM0U1RThCOyBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDYyLDk0LDEzOSwwLjQpOyB9Ci5mdC1r YXQtbXVzbGltaXNjaCB7IGJhY2tncm91bmQ6IHJnYmEoNzQsMTM5LDk0LDAuMTIpOyAgY29sb3I6 ICM0QThCNUU7IGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNzQsMTM5LDk0LDAuNCk7IH0KLmZ0LWth dC10dWVya2lzY2ggIHsgYmFja2dyb3VuZDogcmdiYSgxNzYsNTgsNDYsMC4xMik7ICBjb2xvcjog dmFyKC0tZmFyYmUtZmVobGVyKTsgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNzYsNTgsNDYsMC40 KTsgfQouZnQta2F0LWNoayB7IGZvbnQtc2l6ZTogMTFweDsgY3Vyc29yOiBwb2ludGVyOyB1c2Vy LXNlbGVjdDogbm9uZTsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7 IGdhcDogNHB4OyB9Ci5mdC1rYXQtY2hrIGlucHV0IHsgY3Vyc29yOiBwb2ludGVyOyB9CgovKiBl TWFpbC1TdGF0dXMtQnRuIChtYWlsdG8pIOKAlCBndXQgbGVzYmFyLCBlaW5oZWl0bGljaGUgSG9l aGUgd2llIEFrdGlvbmVuLUJ0biAqLwouYnRuLWVtYWlsLXN0YXR1cyB7CiAgICBib3JkZXI6IDFw eCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgIHBhZGRpbmc6 IDNweCAxMHB4OwogICAgZm9udC1zaXplOiAxMnB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAg IGZvbnQtZmFtaWx5OiBpbmhlcml0OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlv bjogdmFyKC0tdHJhbnNpdGlvbi1zdGQpOwogICAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgICBh bGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA1cHg7CiAgICB0ZXh0LWRlY29yYXRpb246IG5v bmU7CiAgICBsaW5lLWhlaWdodDogMS4yOwogICAgbWluLXdpZHRoOiA3MHB4OwogICAganVzdGlm eS1jb250ZW50OiBjZW50ZXI7Cn0KLmJ0bi1lbWFpbC1zdGF0dXMgLmljbyB7CiAgICBmb250LXNp emU6IDEzcHg7CiAgICBsaW5lLWhlaWdodDogMTsKfQouYnRuLWVtYWlsLXN0YXR1cy5oYXQtZW1h aWwgewogICAgYmFja2dyb3VuZDogcmdiYSgzOSwxMzcsMTA5LDAuMTIpOwogICAgY29sb3I6IHZh cigtLWZhcmJlLWVyZm9sZyk7CiAgICBib3JkZXItY29sb3I6IHJnYmEoMzksMTM3LDEwOSwwLjQw KTsKfQouYnRuLWVtYWlsLXN0YXR1cy5oYXQtZW1haWw6aG92ZXIgewogICAgYmFja2dyb3VuZDog dmFyKC0tZmFyYmUtZXJmb2xnKTsKICAgIGNvbG9yOiAjZmZmOwogICAgYm9yZGVyLWNvbG9yOiB2 YXIoLS1mYXJiZS1lcmZvbGcpOwp9Ci5idG4tZW1haWwtc3RhdHVzLmtlaW5lLWVtYWlsIHsKICAg IGJhY2tncm91bmQ6IHJnYmEoMTc2LDU4LDQ2LDAuMTApOwogICAgY29sb3I6IHZhcigtLWZhcmJl LWZlaGxlcik7CiAgICBib3JkZXItY29sb3I6IHJnYmEoMTc2LDU4LDQ2LDAuNDApOwp9Ci5idG4t ZW1haWwtc3RhdHVzLmtlaW5lLWVtYWlsOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLWZh cmJlLWZlaGxlcik7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZmFy YmUtZmVobGVyKTsKfQoKLyogPT09PT0gVmlldy1BcyBCYW5uZXIgKyBTY2hyZWliLURpc2FibGUg PT09PT0gKi8KI3ZpZXctYXMtYmFubmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1p dGVtczogY2VudGVyOwogICAgZ2FwOiAxNHB4OwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRp ZW50KDkwZGVnLCB2YXIoLS1mYXJiZS13YXJudW5nKSAwJSwgI0I4NUMxMiAxMDAlKTsKICAgIGNv bG9yOiAjZmZmOwogICAgcGFkZGluZzogOHB4IDE4cHg7CiAgICBmb250LXNpemU6IDEycHg7CiAg ICBmb250LXdlaWdodDogNjAwOwogICAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwwLDAs MC4xNSk7CiAgICB6LWluZGV4OiAyMDA7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KI3ZpZXct YXMtYmFubmVyIC52YS1pY29uIHsgZm9udC1zaXplOiAxOHB4OyBsaW5lLWhlaWdodDogMTsgfQoj dmlldy1hcy1iYW5uZXIgLnZhLXRleHQgeyBmbGV4OiAxOyB9CiN2aWV3LWFzLWJhbm5lciAjYnRu LXZpZXctYXMtenVydWVjayB7CiAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgY29sb3I6IHZhcigt LWZhcmJlLXdhcm51bmcpOwogICAgYm9yZGVyOiBub25lOwogICAgZm9udC13ZWlnaHQ6IDcwMDsK ICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvICFpbXBvcnRhbnQ7CiAgICBvcGFjaXR5OiAxICFpbXBv cnRhbnQ7Cn0KI3ZpZXctYXMtYmFubmVyICNidG4tdmlldy1hcy16dXJ1ZWNrOmhvdmVyIHsgYmFj a2dyb3VuZDogdmFyKC0tYmctaG92ZXIpOyB9CgovKiBJbSBWaWV3LUFzLU1vZHVzOiBhbGxlIFNj aHJlaWItQWt0aW9uZW4gdmlzdWVsbCArIGZ1bmt0aW9uYWwgc3BlcnJlbiAqLwpib2R5LnZpZXct YXMtbW9kdXMgLmFuc2ljaHQgYnV0dG9uOm5vdCgjYnRuLXZpZXctYXMtenVydWVjayk6bm90KC5u YXYtYnRuKTpub3QoLmljb24tYnRuKTpub3QoLmJ0bi1zdGF0aXN0aWstbGFkZW4pLApib2R5LnZp ZXctYXMtbW9kdXMgLmFuc2ljaHQgaW5wdXQ6bm90KFt0eXBlPSJjaGVja2JveCJdKTpub3QoW3Jl YWRvbmx5XSksCmJvZHkudmlldy1hcy1tb2R1cyAuYW5zaWNodCBzZWxlY3QsCmJvZHkudmlldy1h cy1tb2R1cyAuYW5zaWNodCB0ZXh0YXJlYSwKYm9keS52aWV3LWFzLW1vZHVzIC5ncmlkLXplbGxl LApib2R5LnZpZXctYXMtbW9kdXMgLnplLWVkaXQsCmJvZHkudmlldy1hcy1tb2R1cyAuY2ItZGFy Zi1zdGF0LApib2R5LnZpZXctYXMtbW9kdXMgLmJ0bi1zdGF0dXMtdG9nZ2xlLApib2R5LnZpZXct YXMtbW9kdXMgLmJ0bi1lbWFpbC1zdGF0dXMgewogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAg ICBvcGFjaXR5OiAwLjU1OwogICAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50Owp9CmJv ZHkudmlldy1hcy1tb2R1cyAuZ3JpZC16ZWxsZTpob3ZlciB7IGJhY2tncm91bmQ6IGluaGVyaXQg IWltcG9ydGFudDsgfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgPT09PT09PT09PT09PT0gSEVB REVSICsgVEFHRVNMQUdFIFJFREVTSUdOIOKAlCBQQVRDSCBCTE9DSyA9PT09PT09PT09PT09PT09 CiAgIEVpbmdlYmF1dDogMjAyNi0wNS0wMwogICBRdWVsbGU6IEZMRCBIZWFkZXIgUmVkZXNpZ24u aHRtbCAoTW9ja3VwKQogICAtIFVlYmVyc2NocmVpYnQgYWx0ZSBIZWFkZXItUmVnZWxuIGR1cmNo IGhvZWhlcmUgU3BlemlmaXRhZXQKICAgICBiencuIHNwYWV0ZXJlIFJlaWhlbmZvbGdlLgogICAt IFNldHp0IFpvbmUtV3JhcHBlciAoLnpvbmUtc29sbC8tZHNtLy1kYXR1bS8tY291bnRlci8tc2Yp IHVtIGRpZQogICAgIGJlc3RlaGVuZGVuIEtvcGYtWmVpbGVuIHZvcmF1cyAoaW4gaW5kZXguaHRt bCBiZXJlaXRzIGVpbmdlYmF1dCkuCiAgIC0gT3JpZ2luYWwtSURzL0tsYXNzZW4gYmxlaWJlbiB1 bmFuZ2V0YXN0ZXQg4oCUIGtlaW5lIEpTLUFlbmRlcnVuZyBub2V0aWcuCiAgID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0gKi8KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KICAgRkxELVBsYW51bmcg4oCUIFJlZGVzaWduIEhlYWRlciArIFRhZ2Vz bGFnZS1CbG9jawogICBaaWVsZTogd2VuaWdlciBMw6RybSwga2xhcmVyZSBIaWVyYXJjaGllLCBz YXViZXJlIEZhcmJsb2dpawogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0gKi8KCgoKOnJvb3QgewogICAgLyogTmV1dHJhbGUgQmFzaXMg 4oCUIGxlaWNodCBrw7xobCwgd2VuaWdlciBTw6R0dGlndW5nIGFscyB2b3JoZXIgKi8KICAgIC0t YmctcHJpbWFyeTogICAgICAgICMxRjJBMzY7ICAgLyogSGVhZGVyLUJsb2NrIChldHdhcyBkdW5r bGVyLCBydWhpZ2VyKSAqLwogICAgLS1iZy1wcmltYXJ5LTI6ICAgICAgIzI5Mzg0QTsgICAvKiBz ZWt1bmTDpHJlciBIZWFkZXItVG9uIChEYXR1bS1ab25lKSAqLwogICAgLS1iZy1ib2R5OiAgICAg ICAgICAgI0VFRjBGMzsKICAgIC0tYmctY2FyZDogICAgICAgICAgICNGRkZGRkY7CiAgICAtLWJn LWNhcmQtYWx0OiAgICAgICAjRjZGN0Y5OwogICAgLS1iZy10b29sYmFyOiAgICAgICAgI0U5RUNF RjsKCiAgICAtLXRleHQtb24tcHJpbWFyeTogICAjRTlFRUYzOwogICAgLS10ZXh0LW9uLXByaW1h cnktbXV0OiByZ2JhKDIzMywyMzgsMjQzLDAuNTUpOwogICAgLS10ZXh0LXByaW1hcnk6ICAgICAg IzFGMkEzNjsKICAgIC0tdGV4dC1zZWNvbmRhcnk6ICAgICM1QzZCN0E7CiAgICAtLXRleHQtbXV0 ZWQ6ICAgICAgICAjOEE5OEE2OwoKICAgIC0tYm9yZGVyLWxpZ2h0OiAgICAgICNFNEU3RUI7CiAg ICAtLWJvcmRlci1jb2xvcjogICAgICAjRDJEN0REOwogICAgLS1ib3JkZXItc3Ryb25nOiAgICAg I0FFQjZCRjsKCiAgICAvKiBTY2hpY2h0LUFremVudGUg4oCUIG51ciBlaW4gSHVlIHBybyBTY2hp Y2h0LCBlaW5oZWl0bGljaGUgU8OkdHRpZ3VuZyAqLwogICAgLS1hY2MtZnJ1ZWg6ICAgICAgICAg I0M5QTk0QTsgICAvKiBGID0gR29sZCAqLwogICAgLS1hY2Mtc3BhZXQ6ICAgICAgICAgIzRBOEI1 RTsgICAvKiBTID0gR3LDvG4gKi8KICAgIC0tYWNjLW5hY2h0OiAgICAgICAgICMzRTVFOEI7ICAg LyogTiA9IEJsYXUgKi8KCiAgICAvKiBTdGF0dXMg4oCUIHNwYXJzYW0gZWluc2V0emVuICovCiAg ICAtLXN0YXR1cy1vazogICAgICAgICAjMkY4RjZGOwogICAgLS1zdGF0dXMtd2Fybi1iZzogICAg I0ZCRTlFNzsKICAgIC0tc3RhdHVzLXdhcm4tZmc6ICAgICNBODM0MUY7CgogICAgLyogTGF5b3V0 ICovCiAgICAtLXplbGxlLWJyZWl0ZTogICAgICA2MnB4OwogICAgLS16ZWxsZS1ob2VoZTogICAg ICAgMjJweDsKICAgIC0tbmFtZW4tYnJlaXRlOiAgICAgIDI2MHB4OwogICAgLS1rb3BmLXplaWxl bi1ob2VoZTogMjRweDsgICAgIC8qIGlkZW50aXNjaCB6dSAtLWhlYWRlci1yb3ctaCwgc29uc3Qg RHJpZnQgbGlua3MvcmVjaHRzICovCiAgICAtLWhlYWRlci1yb3ctaDogICAgICAyNHB4OwoKICAg IC0tcmFkaXVzLXNtOiAzcHg7CiAgICAtLXJhZGl1cy1tZDogNnB4OwoKICAgIC8qIFZvbSBSZWRl c2lnbi1QYXRjaCBnZW51dHp0ZSBUb2tlbnMgKHZvcmhlciB1bmRlZmluaWVydDsgRkFMTEJBQ0sg YXVmIFRhZy1XZXJ0ZSkgKi8KICAgIC0tc2hhZG93LXNtOiAgMCAxcHggNHB4IHJnYmEoMCwwLDAs MC4wOCk7CiAgICAtLWFjYy1pbmZvOiAgICMzRTVFOEI7ICAgLyogSGV1dGUtSGlnaGxpZ2h0LVJp bmcgKGVudHNwcmljaHQgLS1hY2MtbmFjaHQpICovCiAgICAtLXN0YXR1cy1lcnI6ICNCNzFDMUM7 ICAgLyogRmVpZXJ0YWctU2NocmlmdCBpbSBQZXJzcGxhbiAqLwoKICAgIC0tZm9udC1zdGFjazog IkludGVyIiwgIlNlZ29lIFVJIiwgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAi SGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgIC0tZm9udC1udW06ICAgIklu dGVyIiwgIlNGIE1vbm8iLCB1aS1tb25vc3BhY2UsICJSb2JvdG8gTW9ubyIsIG1vbm9zcGFjZTsK fQoKLyogV0lDSFRJRzogRGllc2VyIE5pZ2h0LU92ZXJyaWRlIG11c3MgTkFDSCBkZW0gOnJvb3Qg b2JlbiBzdGVoZW4sIHdlaWwgZGllCiAgIFRva2VucyBkb3J0IGRpZSB1cnNwcsO8bmdsaWNoZW4g TmlnaHQtV2VydGUgKFplaWxlIDgzKSB3aWVkZXIgw7xiZXJzY2hyaWViZW4KICAgaGFiZW4uIFNv bnN0IHNjaGFsdGVuIGRpZSBkb21pbmFudGVuIEZsw6RjaGVuIChCb2R5LCBUb29sYmFyLCBDYXJk cykgaW0KICAgTmlnaHQtTW9kZSBuaWNodCB1bS4gKi8KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gewog ICAgLS1iZy1wcmltYXJ5OiAgICAgICAgICAgIzFBMjUyRjsKICAgIC0tYmctcHJpbWFyeS0yOiAg ICAgICAgICMyQTNBNEQ7CiAgICAtLWJnLWJvZHk6ICAgICAgICAgICAgICAjMTUxRDI1OwogICAg LS1iZy1jYXJkOiAgICAgICAgICAgICAgIzFDMjYzMDsKICAgIC0tYmctY2FyZC1hbHQ6ICAgICAg ICAgICMyMTMwM0Q7CiAgICAtLWJnLXRvb2xiYXI6ICAgICAgICAgICAjMjEzMDNEOwoKICAgIC0t dGV4dC1vbi1wcmltYXJ5OiAgICAgICNENURERTU7CiAgICAtLXRleHQtb24tcHJpbWFyeS1tdXQ6 ICByZ2JhKDIxMywyMjEsMjI5LDAuNTUpOwogICAgLS10ZXh0LXByaW1hcnk6ICAgICAgICAgI0Q1 RERFNTsKICAgIC0tdGV4dC1zZWNvbmRhcnk6ICAgICAgICM4ODk5QTY7CiAgICAtLXRleHQtbXV0 ZWQ6ICAgICAgICAgICAjNUE2QTc4OwoKICAgIC0tYm9yZGVyLWxpZ2h0OiAgICAgICAgICMyMjMw NDA7CiAgICAtLWJvcmRlci1jb2xvcjogICAgICAgICAjMjgzQTRBOwogICAgLS1ib3JkZXItc3Ry b25nOiAgICAgICAgIzNBNEU2MDsKCiAgICAtLXN0YXR1cy1vazogICAgICAgICAgICAjNjZCQjZB OwogICAgLS1zdGF0dXMtd2Fybi1iZzogICAgICAgIzVEMkMyMzsKICAgIC0tc3RhdHVzLXdhcm4t Zmc6ICAgICAgICNGMDk1NkY7CgogICAgLyogUGF0Y2gtUGVyc3BsYW4tVG9rZW5zICovCiAgICAt LXNoYWRvdy1zbTogICAgICAgICAgICAwIDFweCA0cHggcmdiYSgwLDAsMCwwLjQwKTsKICAgIC0t YWNjLWluZm86ICAgICAgICAgICAgICM1Qjg3Qjg7CiAgICAtLXN0YXR1cy1lcnI6ICAgICAgICAg ICAjRUY1MzUwOwp9CgpodG1sLCBib2R5IHsKICAgIGhlaWdodDogMTAwJTsKICAgIGZvbnQtZmFt aWx5OiB2YXIoLS1mb250LXN0YWNrKTsKICAgIGZvbnQtc2l6ZTogMTJweDsKICAgIGxpbmUtaGVp Z2h0OiAxLjM7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIGJhY2tncm91bmQ6 IHZhcigtLWJnLWJvZHkpOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7 CiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5Owp9Ci8qID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAxKSBUT1At SEVBREVSIOKAlCBlaW5lIFplaWxlLCBkcmVpIFpvbmVuCiAgID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoja29wZmxlaXN0ZSB7CiAg ICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRv OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGdhcDogMjRweDsKICAgIGJhY2tncm91bmQ6 IHZhcigtLWJnLXByaW1hcnkpOwogICAgY29sb3I6IHZhcigtLXRleHQtb24tcHJpbWFyeSk7CiAg ICBwYWRkaW5nOiAwIDE2cHg7CiAgICBoZWlnaHQ6IDQ4cHg7CiAgICBib3gtc2hhZG93OiAwIDFw eCAwIHJnYmEoMCwwLDAsMC4xNSk7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB6LWluZGV4 OiAxMDA7Cn0KCi8qIEJyYW5kICovCi5rbC1icmFuZCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0 ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgbWluLXdpZHRoOiAwOyB9CgovKiBMb2dvLVNsb3QgZnVl ciBhdXN0YXVzY2hiYXJlcyBDdXN0b20tTG9nbyAoQmlsZCBvZGVyIElubGluZS1TVkcpLgogICBX ZW5uIGRlciBTbG90IEluaGFsdCBoYXQsIHdpcmQgZGVyIERlZmF1bHQtQmxvY2sgYXVzZ2VibGVu ZGV0LiAqLwoua2wtbG9nby1zbG90IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1z OiBjZW50ZXI7IH0KLmtsLWxvZ28tc2xvdDplbXB0eSB7IGRpc3BsYXk6IG5vbmU7IH0KLmtsLWxv Z28tc2xvdCBpbWcsIC5rbC1sb2dvLXNsb3Qgc3ZnIHsKICAgIGhlaWdodDogMjZweDsgd2lkdGg6 IGF1dG87IGRpc3BsYXk6IGJsb2NrOyBib3JkZXItcmFkaXVzOiA1cHg7Cn0KLmtsLWxvZ28tc2xv dDpub3QoOmVtcHR5KSArIC5rbC1sb2dvLWRlZmF1bHQgeyBkaXNwbGF5OiBub25lOyB9Cgoua2wt bG9nbyB7CiAgICB3aWR0aDogMjZweDsgaGVpZ2h0OiAyNnB4OyBib3JkZXItcmFkaXVzOiA1cHg7 CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjM0U1RThCLCAjNEE4QjVF KTsKICAgIGRpc3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7CiAgICBmb250LXdlaWdo dDogNzAwOyBmb250LXNpemU6IDExcHg7IGNvbG9yOiAjZmZmOyBsZXR0ZXItc3BhY2luZzogMC41 cHg7Cn0KLmtsLXRpdGVsIHsKICAgIGZvbnQtc2l6ZTogMTNweDsgZm9udC13ZWlnaHQ6IDYwMDsg bGV0dGVyLXNwYWNpbmc6IC0wLjFweDsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBi YXNlbGluZTsgZ2FwOiA2cHg7Cn0KLmtsLXRpdGVsIC5qYWhyIHsgZm9udC13ZWlnaHQ6IDQwMDsg b3BhY2l0eTogMC41NTsgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsgfQoKLyog TmF2ICovCi5oZWFkZXItbmF2IHsKICAgIGRpc3BsYXk6IGZsZXg7IGdhcDogMnB4OyBqdXN0aWZ5 LXNlbGY6IGNlbnRlcjsKICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNCk7CiAg ICBwYWRkaW5nOiAzcHg7IGJvcmRlci1yYWRpdXM6IDZweDsKfQoubmF2LWJ0biB7CiAgICBiYWNr Z3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjUpOwog ICAgYm9yZGVyOiBub25lOwogICAgcGFkZGluZzogNXB4IDEycHg7CiAgICBib3JkZXItcmFkaXVz OiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250OiBpbmhlcml0OyBmb250LXNpemU6 IDEycHg7IGZvbnQtd2VpZ2h0OiA1MDA7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJz LCBjb2xvciAwLjEyczsKfQoubmF2LWJ0bjpob3ZlciB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5k OiByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOyB9Ci5uYXYtYnRuLmFrdGl2IHsKICAgIGNvbG9yOiAj ZmZmOwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjE0KTsKICAgIGJveC1zaGFk b3c6IDAgMXB4IDAgcmdiYSgwLDAsMCwwLjE1KTsKfQoKLyogUmVjaHRzOiBrb21wYWt0IGVpbnpl aWxpZyAqLwoua2wtcmVjaHRzIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsg Z2FwOiAxMHB4OyB9Ci5rbC11c2VyIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBj ZW50ZXI7IGdhcDogNnB4OwogICAgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogcmdiYSgyNTUsMjU1 LDI1NSwwLjYpOwogICAgcGFkZGluZzogNHB4IDhweDsgYm9yZGVyLXJhZGl1czogNHB4Owp9Ci5r bC11c2VyIC5hdmF0YXIgewogICAgd2lkdGg6IDIwcHg7IGhlaWdodDogMjBweDsgYm9yZGVyLXJh ZGl1czogNTAlOwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTsKICAgIGRp c3BsYXk6IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7CiAgICBmb250LXNpemU6IDEwcHg7IGZv bnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuODUpOwp9Ci5rbC1oZXV0 ZSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4 cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOwogICAgYm9yZGVyOiAx cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTsKICAgIHBhZGRpbmc6IDRweCAxMHB4Owog ICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgdHJhbnNpdGlv bjogYmFja2dyb3VuZCAwLjEycywgYm9yZGVyLWNvbG9yIDAuMTJzOwogICAgZm9udDogaW5oZXJp dDsgY29sb3I6IHZhcigtLXRleHQtb24tcHJpbWFyeSk7Cn0KLmtsLWhldXRlOmhvdmVyIHsgYmFj a2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjE0KTsgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwy NTUsMjU1LDAuMjIpOyB9Ci5rbC1oZXV0ZS1sYWJlbCB7CiAgICBmb250LXNpemU6IDEwcHg7IGZv bnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjZweDsKICAgIHRleHQtdHJhbnNmb3Jt OiB1cHBlcmNhc2U7IGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjUpOwp9Ci5rbC1oZXV0ZS1k YXR1bSB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsg bGluZS1oZWlnaHQ6IDEuMDU7CiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1z Owp9Ci5rbC1oZXV0ZS1kYXR1bSAuZCB7IGZvbnQtc2l6ZTogMTJweDsgZm9udC13ZWlnaHQ6IDYw MDsgfQoua2wtaGV1dGUtZGF0dW0gLncgeyBmb250LXNpemU6IDEwcHg7IG9wYWNpdHk6IDAuNjsg bWFyZ2luLXRvcDogMXB4OyB9CgouaWNvbi1idG4gewogICAgYmFja2dyb3VuZDogdHJhbnNwYXJl bnQ7CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjYpOwogICAgYm9yZGVyOiAxcHggc29s aWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTsKICAgIHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7 CiAgICBwYWRkaW5nOiAwOyAgICAgICAgICAgICAgICAgICAgICAgLyogw7xiZXJzY2hyZWlidCBk YXMgw6RsdGVyZSBwYWRkaW5nOjNweCAxMHB4IGF1cyBSdWxlIG9iZW4gKi8KICAgIGRpc3BsYXk6 IGdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBj dXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzLCBjb2xvciAw LjEycywgYm9yZGVyLWNvbG9yIDAuMTJzOwp9Ci5pY29uLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6 IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IGNvbG9yOiAjZmZmOyBib3JkZXItY29sb3I6IHJnYmEo MjU1LDI1NSwyNTUsMC4yMik7IH0KLmljb24tYnRuIHN2ZyB7IHdpZHRoOiAxNHB4OyBoZWlnaHQ6 IDE0cHg7IHN0cm9rZTogY3VycmVudENvbG9yOyBmaWxsOiBub25lOyBzdHJva2Utd2lkdGg6IDI7 IHN0cm9rZS1saW5lY2FwOiByb3VuZDsgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsgfQoKLyogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAg IDIpIFBMQU5VTkdTLUNPTlRBSU5FUiArIEtPUEZCTE9DSwogICA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI3BsYW51bmctY29udGFp bmVyIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4OiAxOwogICAgbWluLWhlaWdodDogMDsK ICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKfQoK I25hbWVuLXNwYWx0ZSB7CiAgICB3aWR0aDogdmFyKC0tbmFtZW4tYnJlaXRlKTsKICAgIG1pbi13 aWR0aDogdmFyKC0tbmFtZW4tYnJlaXRlKTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZh cigtLWJvcmRlci1jb2xvcik7CiAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29s dW1uOwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICB6LWluZGV4OiAxMDsKfQoK I2tvcGYtbGlua3MgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IH0KCi5rb3BmLXpl aWxlIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgaGVp Z2h0OiB2YXIoLS1oZWFkZXItcm93LWgpOwogICAgcGFkZGluZzogMCAxMHB4OwogICAgZm9udC1z aXplOiAxMHB4OwogICAgZ2FwOiA4cHg7Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAyYSkgWk9ORSBBIOKAlCBTb2xsdm9y Z2FiZW4gKGR1bmtlbCwgZWluIEJsb2NrKQogICAgICAgVm9yZ2FiZSArIFNvbGwgPSBQbGFuLUFu a2VyIG9iZW4KICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ICovCi56b25lLXNvbGwgewogICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJp bWFyeSk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KTsKICAgIGJvcmRlci1yYWRp dXM6IDA7Cn0KLnpvbmUtc29sbCAua29wZi16ZWlsZSB7IGJvcmRlci1ib3R0b206IDFweCBzb2xp ZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOyB9Ci56b25lLXNvbGwgLmtvcGYtemVpbGU6bGFzdC1j aGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH0KCi8qIERTTS1aZWlsZTogdmlzdWVsbCBhbHMg ZWlnZW5lIFN1Yi1ab25lIChldHdhcyBkdW5rbGVyLCBUaWNrYm94LUtvbnplcHQpICovCi56b25l LWRzbSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5LTIpOwogICAgY29sb3I6IHZh cigtLXRleHQtb24tcHJpbWFyeSk7Cn0KCi8qIERhdHVtLVpvbmUgKi8KLnpvbmUtZGF0dW0gewog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctcHJpbWFyeS0yKTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0 LW9uLXByaW1hcnkpOwp9Ci56b25lLWRhdHVtIC5rb3BmLXplaWxlIHsgYm9yZGVyLWJvdHRvbTog MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7IH0KLnpvbmUtZGF0dW0gLmtvcGYtemVp bGU6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH0KCi8qID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAyYikgWk9ORSBC IOKAlCBDb3VudGVyIChIRUxMLCBsZXNiYXIpCiAgICAgICBEaWVzZSBzaW5kIGVpZ2VudGxpY2gg RGF0ZW56ZWlsZW4sIG5pY2h0IEhlYWRlci4KICAgICAgIEhlbGwgPSBzb2ZvcnRpZ2UgdmlzdWVs bGUgRW50bGFzdHVuZwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0gKi8KLnpvbmUtY291bnRlciB7CiAgICBiYWNrZ3JvdW5kOiAjMjkz ODRBOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGdsZWljaGVyIENELUJs YXUgd2llIG9iZW4gKi8KICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1 LDAuMjIpOyAgICAgICAgICAgLyogc2ljaHRiYXJlciBUcmVubmVyIOKAlCB3aXJrdCBsaW5rcyBV TkQgcmVjaHRzICovCiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1 NSwwLjA4KTsKfQouem9uZS1jb3VudGVyIC5rb3BmLXplaWxlIHsKICAgIGJvcmRlci1ib3R0b206 IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOwogICAgY29sb3I6ICNFOUVFRjM7CiAg ICBoZWlnaHQ6IHZhcigtLWhlYWRlci1yb3ctaCk7CiAgICBmb250LXNpemU6IDExcHg7Cn0KLnpv bmUtY291bnRlciAua29wZi16ZWlsZTpsYXN0LWNoaWxkIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsg fQoKLyogU2NoaWNodGZvbGdlICovCi8qIFNjaGljaHRmb2xnZS1CbG9jayAoU3RhbmRvcnQtc3Bl emlmaXNjaCkg4oCUIGhldXRlIG5pY2h0IGluIFZlcndlbmR1bmcsCiAgIGRpZSBDb3VudGVyIHJl bmRlcm4ga2VpbmUgV2VydGUgaGllcmVpbi4gVm9sbHN0w6RuZGlnIGF1c2JsZW5kZW4sIHNvbnN0 CiAgIGJsZWlidCBsaW5rcyBlaW5lIHVuZ2VudXR6dGUg4oCeU2NoaWNodCItQmVzY2hyaWZ0dW5n IG9obmUgRGF0ZW4tUGVuZGFudC4gKi8KLnpvbmUtc2YsCiNzY2hpY2h0Zm9sZ2UtbGlua3MsCiNz Y2hpY2h0Zm9sZ2UtcmVjaHRzIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9CgovKiBMaW5r ZSBMYWJlbHM6IGVpbmhlaXRsaWNoZSBUeXBvICovCi5rbC1sYWJlbCB7CiAgICBmbGV4OiAxOwog ICAgZm9udC1zaXplOiAxMHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRleHQtdHJhbnNm b3JtOiB1cHBlcmNhc2U7CiAgICBsZXR0ZXItc3BhY2luZzogMC41NXB4OwogICAgY29sb3I6IGlu aGVyaXQ7CiAgICBvcGFjaXR5OiAwLjg1OwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKICAgIG92 ZXJmbG93OiBoaWRkZW47CiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKfQouem9uZS1jb3Vu dGVyIC5rbC1sYWJlbCB7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IG9wYWNpdHk6IDE7 IH0KLnpvbmUtc29sbCAgLmtsLWxhYmVsIHsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41NSk7 IH0KLnpvbmUtZGF0dW0gLmtsLWxhYmVsIHsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41NSk7 IH0KLnpvbmUtZHNtICAgLmtsLWxhYmVsIHsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41NSk7 IH0KCi8qIEFremVudHN0cmVpZmVuIHZvciBDb3VudGVyLUxhYmVscyBlbnRmZXJudCDigJQgSGVh ZGVyIHNvbGwgdW5pZm9ybSBDRC1ibGF1IGJsZWliZW4gKi8KLmtsLWFreiB7IGRpc3BsYXk6IG5v bmU7IH0KCi8qIEhpbndlaXMtSWNvbiAoaSk6IE1vZGFsLVRyaWdnZXIg4oCUIGRpZSBlaW56aWdl IEljb24tU3RlbGxlIGhpZXIgKi8KLmtsLWluZm8gewogICAgd2lkdGg6IDE0cHg7IGhlaWdodDog MTRweDsgYm9yZGVyLXJhZGl1czogNTAlOwogICAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENv bG9yOwogICAgZGlzcGxheTogaW5saW5lLWdyaWQ7IHBsYWNlLWl0ZW1zOiBjZW50ZXI7CiAgICBm b250LXNpemU6IDlweDsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGN1cnNvcjogaGVscDsKICAgIG9w YWNpdHk6IDAuNDU7CiAgICBmbGV4LXNocmluazogMDsKICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsK ICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xMnM7Cn0KLmtsLWluZm86aG92ZXIgeyBvcGFjaXR5 OiAwLjk1OyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KICAgMykgUkVDSFRFUiBLT1BGQkVSRUlDSCDigJQgVGFnZXN6ZWxsZW4K ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ICovCiNncmlkLXNjcm9sbC1jb250YWluZXIgewogICAgZmxleDogMTsKICAgIG92ZXJmbG93 OiBhdXRvOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CiNrb3BmLXJlY2h0cyB7CiAgICBwb3Np dGlvbjogc3RpY2t5OwogICAgdG9wOiAwOwogICAgei1pbmRleDogNTsKICAgIGJhY2tncm91bmQ6 IHZhcigtLWJnLXByaW1hcnkpOyAgIC8qIENELUJsYXUgKi8KfQoKLmtvcGYtZGF0ZW4temVpbGUg ewogICAgZGlzcGxheTogZmxleDsKICAgIGhlaWdodDogdmFyKC0taGVhZGVyLXJvdy1oKTsKfQoK LmtkLXplbGxlIHsKICAgIHdpZHRoOiB2YXIoLS16ZWxsZS1icmVpdGUpOwogICAgbWluLXdpZHRo OiB2YXIoLS16ZWxsZS1icmVpdGUpOwogICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNl bnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBm b250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwogICAgcG9zaXRpb246IHJlbGF0aXZl Owp9CgovKiAtLS0gWm9uZSBBOiBWb3JnYWJlLVBpbGxlbiAoRi9TL04pIC0tLS0tLS0tLS0tLS0t LS0tLS0tLSAqLwouem9uZS1zb2xsIC5rZC16ZWxsZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1i Zy1wcmltYXJ5KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwogICAgYm9yZGVy LXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsKICAgIGJvcmRlci1ib3R0 b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOwogICAgcGFkZGluZzogMnB4IDRw eDsKICAgIGdhcDogNHB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKfQouem9uZS1zb2xsIC5rb3Bm LWRhdGVuLXplaWxlOmxhc3QtY2hpbGQgLmtkLXplbGxlIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsg fQoKLyogVm9yZ2FiZS1TY2hpY2h0OiBHQU5aRSBaRUxMRSBpbiBTY2hpY2h0ZmFyYmUgKEYvUy9O KS4KICAgV2VydGUgYXVzIGFkbWluLmpzb24uaGVhZGVyS29uZmlnLnZvcmdhYmVTdHlsZXNbRnxT fE5dIChBdWRpdC1JdGVyLUQsIDIwMjYtMDUtMDUpLgogICBIYXJkY29kZXMgc2luZCBGYWxsYmFj ayDigJQgd2VubiB2b3JnYWJlU3R5bGVzLjx0eXA+LmhpbnRlcmdydW5kIGxlZXIsIGtvbW10CiAg IGRpZSBTY2hpY2h0Y29kZS1GYXJiZSBhdXMgYWRtaW4uc2NoaWNodGNvZGVzICgtLWFjYy1mcnVl aC8tc3BhZXQvLW5hY2h0KS4gKi8KLnpvbmUtc29sbCAjdGQtdm9yZ2FiZS16ZWlsZSAua2QtemVs bGUudnotZiB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS12cC1mLWJnLCB2YXIoLS1hY2MtZnJ1ZWgp KTsKICAgIGNvbG9yOiB2YXIoLS12cC1mLWZnLCAjMkUxRjAwKTsKICAgIGZvbnQtc2l6ZTogdmFy KC0tdnAtZi1zaXplLCBpbmhlcml0KTsKICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS12cC1mLXdlaWdo dCwgaW5oZXJpdCk7CiAgICBmb250LXN0eWxlOiB2YXIoLS12cC1mLXN0eWxlLCBub3JtYWwpOwog ICAgYm9yZGVyLXRvcDogdmFyKC0tdnAtZi1idCwgbm9uZSk7CiAgICBib3JkZXItbGVmdDogdmFy KC0tdnAtZi1ibCwgbm9uZSk7CiAgICBib3JkZXItcmlnaHQ6IHZhcigtLXZwLWYtYnIsIG5vbmUp Owp9Ci56b25lLXNvbGwgI3RkLXZvcmdhYmUtemVpbGUgLmtkLXplbGxlLnZ6LXMgewogICAgYmFj a2dyb3VuZDogdmFyKC0tdnAtcy1iZywgdmFyKC0tYWNjLXNwYWV0KSk7CiAgICBjb2xvcjogdmFy KC0tdnAtcy1mZywgI0ZGRkZGRik7CiAgICBmb250LXNpemU6IHZhcigtLXZwLXMtc2l6ZSwgaW5o ZXJpdCk7CiAgICBmb250LXdlaWdodDogdmFyKC0tdnAtcy13ZWlnaHQsIGluaGVyaXQpOwogICAg Zm9udC1zdHlsZTogdmFyKC0tdnAtcy1zdHlsZSwgbm9ybWFsKTsKICAgIGJvcmRlci10b3A6IHZh cigtLXZwLXMtYnQsIG5vbmUpOwogICAgYm9yZGVyLWxlZnQ6IHZhcigtLXZwLXMtYmwsIG5vbmUp OwogICAgYm9yZGVyLXJpZ2h0OiB2YXIoLS12cC1zLWJyLCBub25lKTsKfQouem9uZS1zb2xsICN0 ZC12b3JnYWJlLXplaWxlIC5rZC16ZWxsZS52ei1uIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLXZw LW4tYmcsIHZhcigtLWFjYy1uYWNodCkpOwogICAgY29sb3I6IHZhcigtLXZwLW4tZmcsICNGRkZG RkYpOwogICAgZm9udC1zaXplOiB2YXIoLS12cC1uLXNpemUsIGluaGVyaXQpOwogICAgZm9udC13 ZWlnaHQ6IHZhcigtLXZwLW4td2VpZ2h0LCBpbmhlcml0KTsKICAgIGZvbnQtc3R5bGU6IHZhcigt LXZwLW4tc3R5bGUsIG5vcm1hbCk7CiAgICBib3JkZXItdG9wOiB2YXIoLS12cC1uLWJ0LCBub25l KTsKICAgIGJvcmRlci1sZWZ0OiB2YXIoLS12cC1uLWJsLCBub25lKTsKICAgIGJvcmRlci1yaWdo dDogdmFyKC0tdnAtbi1iciwgbm9uZSk7Cn0KLnpvbmUtc29sbCAjdGQtdm9yZ2FiZS16ZWlsZSAu a2QtemVsbGUgLnZwIHsKICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBjb2xvcjogaW5oZXJp dDsKICAgIHdpZHRoOiBhdXRvOyBoZWlnaHQ6IGF1dG87CiAgICBmb250LXNpemU6IDExcHg7IGZv bnQtd2VpZ2h0OiA3MDA7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNl bnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiAwOwp9Ci8q IFRyZW5ubGluaWVuIGluIGRlciBWb3JnYWJlLVplaWxlIGRlemVudCBoYWx0ZW4gKGF1ZiBkZXIg Vm9sbGZhcmJlKSAqLwouem9uZS1zb2xsICN0ZC12b3JnYWJlLXplaWxlIC5rZC16ZWxsZSB7CiAg ICBib3JkZXItcmlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMC4xMCk7Cn0KCi8qIFRvZ2dsZS1CdXR0 b24gaW0gSGVhZGVyIHp1bSBVbXNjaGFsdGVuIFBpbGxlIDwtPiBWb2xsLVplbGxlICovCi52b3Jn YWJlLXRvZ2dsZSB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICAgIGNvbG9yOiByZ2Jh KDI1NSwyNTUsMjU1LDAuNTUpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1 NSwwLjEyKTsKICAgIGhlaWdodDogMjhweDsgcGFkZGluZzogMCA5cHg7CiAgICBib3JkZXItcmFk aXVzOiA1cHg7IGN1cnNvcjogcG9pbnRlcjsKICAgIGZvbnQ6IGluaGVyaXQ7IGZvbnQtc2l6ZTog MTBweDsgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxl dHRlci1zcGFjaW5nOiAwLjVweDsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVt czogY2VudGVyOyBnYXA6IDZweDsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMsIGNv bG9yIDAuMTJzLCBib3JkZXItY29sb3IgMC4xMnM7Cn0KLnZvcmdhYmUtdG9nZ2xlOmhvdmVyIHsg YmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTsgY29sb3I6ICNmZmY7IH0KLnZvcmdh YmUtdG9nZ2xlIC5kb3QgewogICAgd2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7IGJvcmRlci1yYWRp dXM6IDUwJTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWFjYy1zcGFldCk7CiAgICBib3gtc2hhZG93 OiAwIDAgMCAycHggcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsKfQpib2R5LnZvcmdhYmUtZmlsbCAu dm9yZ2FiZS10b2dnbGUgeyBjb2xvcjogI2ZmZjsgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUs MjU1LDAuMzApOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTApOyB9CgovKiBTb2xs LVplbGxlOiBudXIgWmFobGVuLCBrZWluIGZhcmJpZ2VzIEVjayAqLwouc29sbCB7CiAgICBkaXNw bGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyBnYXA6IDJweDsKICAgIGZv bnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7Cn0KLnNvbGwgLm51bSB7IGZvbnQtd2Vp Z2h0OiA3MDA7IH0KLnNvbGwgLnNlcCB7IG9wYWNpdHk6IDAuNDU7IGZvbnQtd2VpZ2h0OiA0MDA7 IH0KCi8qIERTTS1aZWxsZW4gKi8KLnpvbmUtZHNtIC5rZC16ZWxsZSB7CiAgICBiYWNrZ3JvdW5k OiB2YXIoLS1iZy1wcmltYXJ5LTIpOwogICAgY29sb3I6IHZhcigtLXRleHQtb24tcHJpbWFyeS1t dXQpOwogICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsK ICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnM7Cn0K LnpvbmUtZHNtIC5rZC16ZWxsZTpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUs MC4wNSk7IH0KLyogTGVnYWN5IERTTS1Ba3Rpdi1DU1MtSGFrZW4gZW50ZmVybnQg4oCUIFN5bWJv bCBrb21tdCBqZXR6dCBhdXMgZGVtCiAgIDxzcGFuIGNsYXNzPSJ0ZC1kc20tc3ltIj4tRWxlbWVu dCAo4pyTL8OXKS4gR3LDvG4vUm90IHdlcmRlbiBpbiBkZXIKICAgdGQtZHNtLXplbGxlLUJsb2Nr LVJlZ2VsIG9iZW4gZ2VzZXR6dC4gKi8KCi8qIC0tLSBab25lIERhdHVtIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi56b25lLWRhdHVtIC5rZC16ZWxsZSB7CiAg ICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wcmltYXJ5LTIpOwogICAgY29sb3I6IHZhcigtLXRleHQt b24tcHJpbWFyeSk7CiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1 LDAuMDYpOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4w NSk7Cn0KLnpvbmUtZGF0dW0gLmtkLWRhdHVtIHsgZm9udC13ZWlnaHQ6IDYwMDsgZm9udC1zaXpl OiAxMXB4OyB9Ci56b25lLWRhdHVtIC5rZC13dGFnIHsgZm9udC1zaXplOiAxMHB4OyBvcGFjaXR5 OiAwLjU1OyB9Ci56b25lLWRhdHVtIC5rZC1ldmVudHMgeyBnYXA6IDRweDsgbWluLWhlaWdodDog dmFyKC0taGVhZGVyLXJvdy1oKTsgfQouem9uZS1kYXR1bSAua2QtZmVyaWVuIHsgZm9udC1zaXpl OiA5cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IG9wYWNpdHk6IDAuNzsgfQoKLyogV29jaGVuZW5kZTog bnVyIGxlaWNodGVyIFRvbndlY2hzZWwg4oCUIGtlaW4gYW5kZXJlciBIdWUgKi8KLmtkLXdlIHsg YmFja2dyb3VuZDogIzM0NDU1QSAhaW1wb3J0YW50OyB9Ci5rZC1mZWllcnRhZyB7CiAgICBiYWNr Z3JvdW5kOiB2YXIoLS1rZC1mZWllcnRhZy1iZywgIzhCMUExQSkgIWltcG9ydGFudDsKICAgIGNv bG9yOiB2YXIoLS1rZC1mZWllcnRhZy1mZywgI0ZGRkZGRikgIWltcG9ydGFudDsKfQoua2QtaGV1 dGUgewogICAgYmFja2dyb3VuZDogdmFyKC0ta2QtaGV1dGUtYmcsICMxQjRBNkIpICFpbXBvcnRh bnQ7CiAgICBjb2xvcjogdmFyKC0ta2QtaGV1dGUtZmcsICNmZmYpICFpbXBvcnRhbnQ7CiAgICBi b3gtc2hhZG93OiBpbnNldCAwIC0ycHggMCAjNUJCMEU1Owp9CgovKiBGZXJpZW5rw7xyemVsICov Ci5rZC1may1mZXJpZW4geyBjb2xvcjogI0E2RDVCMDsgfQoua2QtZmstZmVpZXJ0YWcgeyBjb2xv cjogI0YyQTZBMDsgfQoKLyogRXZlbnRzOiBOVVIgaGllciBJY29ucyAoSGlud2Vpc2UvRGV0YWls cykgKi8KLmtkLWV2ZW50LWljb24gewogICAgZGlzcGxheTogaW5saW5lLWdyaWQ7IHBsYWNlLWl0 ZW1zOiBjZW50ZXI7CiAgICB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OwogICAgY3Vyc29yOiBw b2ludGVyOwogICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC44NSk7CiAgICB0cmFuc2l0aW9u OiB0cmFuc2Zvcm0gMC4xMnM7Cn0KLmtkLWV2ZW50LWljb246aG92ZXIgeyB0cmFuc2Zvcm06IHNj YWxlKDEuMTUpOyB9Ci5rZC1ldmVudC1pY29uIHN2ZyB7IHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDEy cHg7IGZpbGw6IGN1cnJlbnRDb2xvcjsgfQoua2QtZXZlbnQtd2FybiB7IGNvbG9yOiAjRjBCODcy OyB9Ci5rZC1ldmVudC1pbmZvIHsgY29sb3I6ICM4RkI4REQ7IH0KCi8qIC0tLSBab25lIENvdW50 ZXIgKGhlbGwpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi56b25lLWNvdW50 ZXIgLmtkLXplbGxlIHsKICAgIGJhY2tncm91bmQ6ICMyOTM4NEE7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBleHBsaXppdCBibGF1IOKAlCBQYXJlbnQga2FubiBkdXJjaCBTY3JvbGwg YXXDn2VyaGFsYiBsaWVnZW4gKi8KICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpOwog ICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsKICAgIGJv cmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOwogICAgZm9udC1z aXplOiAxMXB4OwogICAgZm9udC13ZWlnaHQ6IDYwMDsKfQouem9uZS1jb3VudGVyIC5rb3BmLWRh dGVuLXplaWxlOmxhc3QtY2hpbGQgLmtkLXplbGxlIHsgYm9yZGVyLWJvdHRvbTogbm9uZTsgfQoK LyogQ291bnRlciBtaXQgU3RhdHVzZmFyYmUgTlVSIGJlaSBCZWRhcmYgKi8KLnpvbmUtY291bnRl ciAua2QtemVsbGUud2FybiB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zdGF0dXMtd2Fybi1iZyk7 CiAgICBjb2xvcjogdmFyKC0tc3RhdHVzLXdhcm4tZmcpOwp9Ci56b25lLWNvdW50ZXIgLmtkLXpl bGxlLmRpbSB7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBmb250LXdlaWdodDog NTAwOwp9Ci56b25lLWNvdW50ZXIgLmtkLXplbGxlIC5zbWFsbCB7CiAgICBmb250LXNpemU6IDlw eDsKICAgIG9wYWNpdHk6IDAuNTU7CiAgICBtYXJnaW4tbGVmdDogMXB4Owp9CgovKiBXb2NoZW4t VHJlbm5lcjogZMO8bm5lciBzZW5rcmVjaHRlciBTdHJpY2ggYW0gU28g4oaSIE1vICovCi5rZC16 ZWxsZS53ZS1lbmQgeyBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWJvcmRlci1jb2xvcikgIWlt cG9ydGFudDsgfQouem9uZS1zb2xsIC5rZC16ZWxsZS53ZS1lbmQsCi56b25lLWRhdHVtIC5rZC16 ZWxsZS53ZS1lbmQsCi56b25lLWRzbSAua2QtemVsbGUud2UtZW5kIHsgYm9yZGVyLXJpZ2h0LWNv bG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTgpICFpbXBvcnRhbnQ7IH0KCi8qIEhldXRlLVNwYWx0 ZW4tQWt6ZW50OiB2ZXJ0aWthbGVyIFN0cmVpZmVuIHF1ZXIgZHVyY2ggYWxsZSBab25lbiAqLwou a2QtemVsbGUuaGV1dGUtc3BhbHRlIHsKICAgIGJveC1zaGFkb3c6IGluc2V0IDJweCAwIDAgIzVC QjBFNSwgaW5zZXQgLTJweCAwIDAgIzVCQjBFNTsKfQouem9uZS1jb3VudGVyIC5rZC16ZWxsZS5o ZXV0ZS1zcGFsdGUgewogICAgYmFja2dyb3VuZDogI0VBRjRGQjsKfQoKLyogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIDQpIE5BTUVO LUxJU1RFIChLb250ZXh0LCB2ZXJlaW5mYWNodCkKICAgPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNuYW1lbi1saXN0ZSB7CiAgICBm bGV4OiAxOwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIC8qIFNjcm9sbGJhbGtlbiB2aXN1ZWxs IGF1c2JsZW5kZW4g4oCUIHZlcnRpa2FsZXMgU2Nyb2xsZW4gd2lyZCBtaXQgZGVtCiAgICAgICBy ZWNodGVuIERhdGVuLUdyaWQgc3luY2hyb25pc2llcnQgKHNpZWhlIGFwcC5qcyAvIGV2ZW50TGlz dGVuZXJFaW5yaWNodGVuKSwKICAgICAgIHNvZGFzcyBlcyBudXIgRUlORU4gc2ljaHRiYXJlbiBT Y3JvbGxiYWxrZW4gYW0gcmVjaHRlbiBCaWxkc2NoaXJtcmFuZCBnaWJ0LiAqLwogICAgc2Nyb2xs YmFyLXdpZHRoOiBub25lOwp9CiNuYW1lbi1saXN0ZTo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0 aDogMDsgaGVpZ2h0OiAwOyBkaXNwbGF5OiBub25lOyB9Ci5uYW1lbi16ZWlsZSB7CiAgICBkaXNw bGF5OiBmbGV4OwogICAgaGVpZ2h0OiB2YXIoLS16ZWxsZS1ob2VoZSk7CiAgICBib3JkZXItYm90 dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGFsaWduLWl0ZW1zOiBjZW50 ZXI7CiAgICBmb250LXNpemU6IDExcHg7CiAgICBwYWRkaW5nOiAwIDEwcHg7CiAgICBnYXA6IDhw eDsKfQoubmFtZW4temVpbGU6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7 IH0KLm56LW5hbWUgeyBmbGV4OiAxOyBmb250LXdlaWdodDogNjAwOyBvdmVyZmxvdzogaGlkZGVu OyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfQoubnotcm9s bGUgeyBmb250LXNpemU6IDlweDsgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpOyB0ZXh0LXRyYW5z Zm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC41cHg7IH0KCi8qIEdyaWQtWmVsbGVu IOKAlCBudXIgU2tlbGV0dCBmw7xyIE1vY2t1cCAqLwojZ3JpZC1kYXRlbiB7IGRpc3BsYXk6IGZs ZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0KLmdyaWQtemVpbGUgeyBkaXNwbGF5OiBmbGV4 OyBoZWlnaHQ6IHZhcigtLXplbGxlLWhvZWhlKTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZh cigtLWJvcmRlci1saWdodCk7IH0KLmdyaWQtemVsbGUgewogICAgd2lkdGg6IHZhcigtLXplbGxl LWJyZWl0ZSk7IG1pbi13aWR0aDogdmFyKC0temVsbGUtYnJlaXRlKTsKICAgIGRpc3BsYXk6IGZs ZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm9y ZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTsKICAgIGZvbnQtc2l6ZTog MTBweDsgZm9udC13ZWlnaHQ6IDYwMDsKfQouZ3otZiAgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMSwx NjksNzQsMC4xOCk7IGNvbG9yOiAjNkY1NTFBOyB9Ci5nei1zICB7IGJhY2tncm91bmQ6IHJnYmEo NzQsMTM5LDk0LDAuMjApOyAgY29sb3I6ICMyMDVBMzY7IH0KLmd6LW4gIHsgYmFja2dyb3VuZDog cmdiYSg2Miw5NCwxMzksMC4yMCk7ICBjb2xvcjogIzFGM0Q2MDsgfQouZ3otZnJlaSB7IGNvbG9y OiB2YXIoLS10ZXh0LW11dGVkKTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIDUpIEhpbGZzLUJhbm5lciAvIEFubm90YXRp b24gZsO8ciBWb3JoZXItL05hY2hoZXItQW5zaWNodAogICA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLmRlbW8tZnJhbWUgewogICAg ZmxleDogMTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7CiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHgg dmFyKC0tYm9yZGVyLWNvbG9yKTsKfQouZGVtby1iYXIgewogICAgZGlzcGxheTogZmxleDsgYWxp Z24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgcGFk ZGluZzogMTBweCAxNnB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZC1hbHQpOwogICAg Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcik7CiAgICBmb250LXNp emU6IDEycHg7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7Cn0KLmRlbW8tYmFyIGgyIHsg Zm9udC1zaXplOiAxM3B4OyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tdGV4dC1wcmlt YXJ5KTsgfQouZGVtby1iYXIgLnBpbGwgewogICAgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWdu LWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OwogICAgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJh ZGl1czogOTk5cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDQ3LDE0MywxMTEsMC4xMCk7IGNvbG9y OiB2YXIoLS1zdGF0dXMtb2spOwogICAgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNjAw OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC41cHg7Cn0KLmxl Z2VuZGUgewogICAgZGlzcGxheTogZmxleDsgZ2FwOiAxNHB4OyBmbGV4LXdyYXA6IHdyYXA7CiAg ICBwYWRkaW5nOiAxMHB4IDE2cHg7CiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9y ZGVyLWNvbG9yKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNhcmQtYWx0KTsKICAgIGZvbnQt c2l6ZTogMTFweDsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKfQoubGVnZW5kZS1pdGVt IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogNnB4OyB9 Ci5sZWdlbmRlLXN3YXRjaCB7CiAgICB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyBib3JkZXIt cmFkaXVzOiAzcHg7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgwLDAsMCww LjA4KTsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgRklOQUxFIE9WRVJSSURFUyDigJQga29t cGF0aWJlbCB6dW0gYmVzdGVoZW5kZW4gR3JpZAogICA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCjpyb290 IHsgLS1uYW1lbi1icmVpdGU6IDI4MHB4OyAtLWtvcGYtemVpbGVuLWhvZWhlOiAyNHB4OyB9Cgoj a29wZi1saW5rcyAuem9uZS1jb3VudGVyIC5rb3BmLXplaWxlLnRsLXJvdywKI2tvcGYtcmVjaHRz IC56b25lLWNvdW50ZXIgLmtvcGYtZGF0ZW4temVpbGUudGwtcm93IHsKICAgIGJhY2tncm91bmQ6 ICMyOTM4NEEgIWltcG9ydGFudDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LW9uLXByaW1hcnkpICFp bXBvcnRhbnQ7Cn0KI2tvcGYtcmVjaHRzIC56b25lLWNvdW50ZXIgLmtvcGYtZGF0ZW4temVpbGUu dGwtcm93IC5rZC16ZWxsZSB7CiAgICBiYWNrZ3JvdW5kOiAjMjkzODRBICFpbXBvcnRhbnQ7CiAg ICBjb2xvcjogdmFyKC0tdGV4dC1vbi1wcmltYXJ5KSAhaW1wb3J0YW50Owp9CiNrb3BmLWxpbmtz IC5rb3BmLXplaWxlLnRsLXJvdyB7IHBhZGRpbmc6IDAgOHB4ICFpbXBvcnRhbnQ7IGdhcDogNnB4 OyB9CiNrb3BmLWxpbmtzIC56b25lLWNvdW50ZXIgLmtsLWxhYmVsIHsKICAgIG92ZXJmbG93OiB2 aXNpYmxlOyB0ZXh0LW92ZXJmbG93OiBjbGlwOyB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgY29s b3I6IHZhcigtLXRleHQtb24tcHJpbWFyeSkgIWltcG9ydGFudDsgb3BhY2l0eTogMTsKICAgIGZv bnQtc2l6ZTogMTAuNXB4OyBmb250LXdlaWdodDogNjAwOwp9CiNrb3BmLWxpbmtzIC56b25lLWNv dW50ZXIgLmtsLXdlcnQgeyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpOyBmb250LXdlaWdo dDogNjAwOyBmb250LXNpemU6IDExcHg7IH0KI2tvcGYtbGlua3MgLnpvbmUtc29sbCAua2wtbGFi ZWwsCiNrb3BmLWxpbmtzIC56b25lLWRhdHVtIC5rbC1sYWJlbCwKI2tvcGYtbGlua3MgLnpvbmUt ZHNtIC5rbC1sYWJlbCB7CiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY1KSAhaW1wb3J0 YW50OyBvcGFjaXR5OiAxOwogICAgZm9udC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNjAwOyBw YWRkaW5nOiAwOyB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CiN0ZC1kc20temVpbGUgeyBiYWNrZ3Jv dW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9Ci8qIERTTS1aZWxsZSB3aXJkIGluIGRlciBE U00tQmxvY2stUmVnZWwgb2JlbiBnZWbDpHJidCAocm90L2dyw7xuKSDigJQgaGllciBuaWNodHMg w7xiZXJzY2hyZWliZW4uICovCgojc2NoaWNodGZvbGdlLXJlY2h0cyAuc2YtYWJjICB7IGJhY2tn cm91bmQ6IHJnYmEoNzQsMTM5LDk0LDAuMTQpICAhaW1wb3J0YW50OyBjb2xvcjogIzJBNUEzRCAh aW1wb3J0YW50OyB9CiNzY2hpY2h0Zm9sZ2UtcmVjaHRzIC5zZi1iY2EgIHsgYmFja2dyb3VuZDog cmdiYSg2Miw5NCwxMzksMC4xNCkgICFpbXBvcnRhbnQ7IGNvbG9yOiAjMjMzRTYwICFpbXBvcnRh bnQ7IH0KI3NjaGljaHRmb2xnZS1yZWNodHMgLnNmLWNhYiAgeyBiYWNrZ3JvdW5kOiByZ2JhKDIw MSwxNjksNzQsMC4xOCkgIWltcG9ydGFudDsgY29sb3I6ICM2RjU1MUEgIWltcG9ydGFudDsgfQoj c2NoaWNodGZvbGdlLXJlY2h0cyAuc2YtcG9vbCB7IGJhY2tncm91bmQ6ICNFQ0VFRjEgIWltcG9y dGFudDsgICAgY29sb3I6ICM2Rjc5ODQgIWltcG9ydGFudDsgZm9udC1zdHlsZTogaXRhbGljOyB9 CltkYXRhLXRoZW1lPSJuaWdodCJdICNzY2hpY2h0Zm9sZ2UtcmVjaHRzIC5zZi1hYmMgIHsgYmFj a2dyb3VuZDogcmdiYSg3NCwxMzksOTQsMC4yMCkgIWltcG9ydGFudDsgY29sb3I6ICM4RkNGQTEg IWltcG9ydGFudDsgfQpbZGF0YS10aGVtZT0ibmlnaHQiXSAjc2NoaWNodGZvbGdlLXJlY2h0cyAu c2YtYmNhICB7IGJhY2tncm91bmQ6IHJnYmEoNjIsOTQsMTM5LDAuMjQpICFpbXBvcnRhbnQ7IGNv bG9yOiAjOTJBREQwICFpbXBvcnRhbnQ7IH0KW2RhdGEtdGhlbWU9Im5pZ2h0Il0gI3NjaGljaHRm b2xnZS1yZWNodHMgLnNmLWNhYiAgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMSwxNjksNzQsMC4yMikg IWltcG9ydGFudDsgY29sb3I6ICNEOUMwNzggIWltcG9ydGFudDsgfQpbZGF0YS10aGVtZT0ibmln aHQiXSAjc2NoaWNodGZvbGdlLXJlY2h0cyAuc2YtcG9vbCB7IGJhY2tncm91bmQ6ICMyQTJGMzYg IWltcG9ydGFudDsgY29sb3I6ICM4QjkzOUIgIWltcG9ydGFudDsgfQoKLnNmLXZvcnNjaGF1LnNm LWFiYyB7IGJhY2tncm91bmQ6IHJnYmEoNzQsMTM5LDk0LDAuMTgpOyBjb2xvcjogIzJBNUEzRDsg fQouc2Ytdm9yc2NoYXUuc2YtYmNhIHsgYmFja2dyb3VuZDogcmdiYSg2Miw5NCwxMzksMC4xOCk7 IGNvbG9yOiAjMjMzRTYwOyB9Ci5zZi12b3JzY2hhdS5zZi1jYWIgeyBiYWNrZ3JvdW5kOiByZ2Jh KDIwMSwxNjksNzQsMC4yMik7IGNvbG9yOiAjNkY1NTFBOyB9Ci5zZi12b3JzY2hhdS5zZi12b3Jz Y2hhdS1wb29sIHsgYmFja2dyb3VuZDogI0VDRUVGMTsgY29sb3I6ICM2Rjc5ODQ7IGZvbnQtc3R5 bGU6IGl0YWxpYzsgcGFkZGluZzogM3B4IDEwcHg7IH0KCiNrb3BmbGVpc3RlIC52b3JnYWJlLXRv Z2dsZSB7CiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHJnYmEoMjU1LDI1NSwy NTUsMC41NSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOwog ICAgaGVpZ2h0OiAyOHB4OyBwYWRkaW5nOiAwIDlweDsgYm9yZGVyLXJhZGl1czogNXB4OwogICAg Y3Vyc29yOiBwb2ludGVyOyBmb250OiBpbmhlcml0OyBmb250LXNpemU6IDEwcHg7IGZvbnQtd2Vp Z2h0OiA2MDA7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzog MC41cHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2Fw OiA2cHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzLCBjb2xvciAwLjEycywgYm9y ZGVyLWNvbG9yIDAuMTJzOwp9CiNrb3BmbGVpc3RlIC52b3JnYWJlLXRvZ2dsZTpob3ZlciB7IGJh Y2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IGNvbG9yOiAjZmZmOyB9CiNrb3BmbGVp c3RlIC52b3JnYWJlLXRvZ2dsZSAuZG90IHsKICAgIHdpZHRoOiA4cHg7IGhlaWdodDogOHB4OyBi b3JkZXItcmFkaXVzOiA1MCU7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2Mtc3BhZXQpOyBib3gt c2hhZG93OiAwIDAgMCAycHggcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsKfQpib2R5LnZvcmdhYmUt ZmlsbCAja29wZmxlaXN0ZSAudm9yZ2FiZS10b2dnbGUgewogICAgY29sb3I6ICNmZmY7IGJvcmRl ci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjMwKTsgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1 LDI1NSwwLjEwKTsKfQoKI2tvcGZsZWlzdGUgLmtsLWxvZ28tc2xvdDpub3QoOmVtcHR5KSB+IC5r bC1sb2dvLApib2R5LmN1c3RvbS1sb2dvLWFrdGl2ICNrb3BmbGVpc3RlIC5rbC1sb2dvIHsgZGlz cGxheTogbm9uZSAhaW1wb3J0YW50OyB9CiNrb3BmbGVpc3RlIC5rbC1sb2dvLXNsb3Q6ZW1wdHkg KyAua2wtbG9nbyB7IGRpc3BsYXk6IGlubGluZS1ncmlkOyB9CiNrb3BmbGVpc3RlIGgxOjpiZWZv cmUgeyBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsg fQoja29wZmxlaXN0ZSAuaGVhZGVyLXJlY2h0cyB7IGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9y dGFudDsgcGFkZGluZzogMCAhaW1wb3J0YW50OyBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRh bnQ7IH0KI2tvcGZsZWlzdGUgLmhyLXplaWxlIHsgZGlzcGxheTogY29udGVudHMgIWltcG9ydGFu dDsgfQoja29wZmxlaXN0ZSAuaWNvbi1idG4geyBmb250LXNpemU6IDAgIWltcG9ydGFudDsgfQoj a29wZmxlaXN0ZSAuaWNvbi1idG4gc3ZnIHsgZGlzcGxheTogYmxvY2s7IH0KCi8qID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KICAgSEVBREVSIExBWU9VVCBGSVgg4oCUIEJyYW5kL05hdi1PdmVybGFwLCBUaXRl bC1VbWJydWNoLCBEb3BwZWwtRkxECiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2tvcGZsZWlzdGUg ewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMjIwcHgsIGF1dG8pIDFmciBtaW5t YXgoMjgwcHgsIGF1dG8pICFpbXBvcnRhbnQ7CiAgICBnYXA6IDE2cHggIWltcG9ydGFudDsgcGFk ZGluZzogMCAxMnB4ICFpbXBvcnRhbnQ7IG92ZXJmbG93OiB2aXNpYmxlOwp9CiNrb3BmbGVpc3Rl IC5rbC1icmFuZCwgI2tvcGZsZWlzdGUgLmhlYWRlci1saW5rcyB7IGZsZXgtc2hyaW5rOiAwOyBt aW4td2lkdGg6IDA7IH0KI2tvcGZsZWlzdGUgLmtsLXRpdGVsLCAja29wZmxlaXN0ZSBoMSB7IHdo aXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDsgZmxleC1zaHJpbms6IDA7IH0KI2tvcGZsZWlz dGUgLmtsLXRpdGVsIC5qYWhyLCAja29wZmxlaXN0ZSAuaGVhZGVyLWphaHIgeyB3aGl0ZS1zcGFj ZTogbm93cmFwOyB9CiNrb3BmbGVpc3RlIC5oZWFkZXItbmF2IHsganVzdGlmeS1zZWxmOiBjZW50 ZXIgIWltcG9ydGFudDsgZmxleC1zaHJpbms6IDA7IH0KI2tvcGZsZWlzdGUgLmhlYWRlci1yZWNo dHMsICNrb3BmbGVpc3RlIC5rbC1yZWNodHMgeyBmbGV4LXNocmluazogMDsgbWluLXdpZHRoOiAw OyB9CiNrb3BmbGVpc3RlIGgxOjpiZWZvcmUsICNrb3BmbGVpc3RlIC5rbC10aXRlbDo6YmVmb3Jl IHsKICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50 OwogICAgd2lkdGg6IDAgIWltcG9ydGFudDsgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7IG1hcmdpbjog MCAhaW1wb3J0YW50OyBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICBiYWNrZ3JvdW5kOiBub25l ICFpbXBvcnRhbnQ7IGJvcmRlcjogMCAhaW1wb3J0YW50OyBmb250LXNpemU6IDAgIWltcG9ydGFu dDsKfQoja29wZmxlaXN0ZSAua2wtbG9nbyB7IHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7IGZs ZXgtc2hyaW5rOiAwOyB9CiNrb3BmbGVpc3RlIC5rbC1sb2dvLXNsb3QgeyBmbGV4LXNocmluazog MDsgfQoja29wZmxlaXN0ZSAuYmVudXR6ZXItYmFkZ2UsICNrb3BmbGVpc3RlIC5rbC11c2VyIHsK ICAgIG1heC13aWR0aDogMTQwcHg7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVs bGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOwp9CkBtZWRpYSAobWF4LXdpZHRoOiAxMTAwcHgp IHsgI2tvcGZsZWlzdGUgLmtsLXRpdGVsIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH0K Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogICBQRVJTw5ZOTElDSEVSIFBMQU4g4oCUIFJlZGVzaWduIFBhdGNoCiAgIEFud2VuZHVu ZzogYW4gc3R5bGUuY3NzIEFOSMOETkdFTiAobmFjaCBwYXRjaC5jc3MpLgogICBTdGFuZDogMjAy Ni0wNS0wMwogICBWb3JhdXNzZXR6dW5nOiBUb2tlbnMgYXVzIHBhdGNoLmNzcyAoLS1iZy1jYXJk LCAtLWJnLWNhcmQtYWx0LAogICAtLWJnLWJvZHksIC0tYmctdG9vbGJhciwgLS1ib3JkZXItbGln aHQsIC0tYm9yZGVyLWNvbG9yLAogICAtLWJvcmRlci1zdHJvbmcsIC0tdGV4dC1wcmltYXJ5LCAt LXRleHQtc2Vjb25kYXJ5LCAtLXRleHQtbXV0ZWQsCiAgIC0tYWNjLWluZm8sIC0tc3RhdHVzLWVy ciwgLS1zaGFkb3ctc20pIHNpbmQgdmVyZsO8Z2Jhci4KICAgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgoucHAtbGF5b3V0IHsKICAg IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGZsZXg6IDE7IG1pbi1oZWln aHQ6IDA7Cn0KLnBwLXRvb2xiYXIgewogICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNl bnRlcjsgZ2FwOiA4cHg7CiAgICBwYWRkaW5nOiA4cHggMTZweDsKICAgIGJhY2tncm91bmQ6IHZh cigtLWJnLXRvb2xiYXIpOwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRl ci1jb2xvcik7CiAgICBtaW4taGVpZ2h0OiA0NHB4OyBmbGV4LXNocmluazogMDsgZmxleC13cmFw OiB3cmFwOwp9Ci5wcC10b29sYmFyIC50b29sYmFyLWxhYmVsIHsKICAgIGZvbnQtc2l6ZTogMTFw eDsgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRl ci1zcGFjaW5nOiAwLjRweDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7Cn0KLnBw LXRvb2xiYXIgLnBwLXBlcnNvbiAgICAgIHsgd2lkdGg6IDI0MHB4OyB9Ci5wcC10b29sYmFyIC5w cC1qYWhyLXNlbGVjdCB7IHdpZHRoOiA5MHB4OyB9Ci5wcC10b29sYmFyIC5wcC1tb2R1cyB7CiAg ICBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZ2FwOiAxcHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1i Zy1jYXJkLWFsdCk7IGJvcmRlci1yYWRpdXM6IDVweDsgcGFkZGluZzogMnB4Owp9Ci5wcC10b29s YmFyIC5wcC1tb2R1cyAudG9vbGJhci1idG4geyBib3JkZXI6IG5vbmU7IGJhY2tncm91bmQ6IHRy YW5zcGFyZW50OyB9Ci5wcC10b29sYmFyIC5wcC1tb2R1cyAudG9vbGJhci1idG4uYWt0aXYgewog ICAgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7IGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1z bSk7Cn0KLnBwLXRvb2xiYXIgLnBwLXRvb2xiYXItcmVjaHRzIHsKICAgIG1hcmdpbi1sZWZ0OiBh dXRvOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgZ2FwOiA2cHg7Cn0KCi5wcC1zY3JvbGwgewogICAg ZmxleDogMTsgb3ZlcmZsb3c6IGF1dG87CiAgICBwYWRkaW5nOiAyMHB4OyBiYWNrZ3JvdW5kOiB2 YXIoLS1iZy1ib2R5KTsKfQoKLnBwLXRpdGVsIHsKICAgIG1heC13aWR0aDogMTIwMHB4OyBtYXJn aW46IDAgYXV0byAxNHB4OwogICAgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBhbGln bi1pdGVtczogYmFzZWxpbmU7IGdhcDogMTJweCAxNnB4Owp9Ci5wcC10aXRlbCAucHAtbmFtZSB7 CiAgICBmb250LXNpemU6IDIwcHg7IGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0t dGV4dC1wcmltYXJ5KTsgbGV0dGVyLXNwYWNpbmc6IC0wLjJweDsKfQoucHAtdGl0ZWwgLnBwLXJv bGxlIHsKICAgIGZvbnQtc2l6ZTogMTJweDsgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsK ICAgIHBhZGRpbmc6IDJweCA4cHg7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7 CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwogICAgYm9yZGVyLXJh ZGl1czogOTk5cHg7Cn0KLnBwLXRpdGVsIC5wcC1tZXRhIHsKICAgIG1hcmdpbi1sZWZ0OiBhdXRv OyBmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTsKICAgIGZvbnQtdmFy aWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7Cn0KCi5wcC1sZWdlbmRlIHsKICAgIG1heC13aWR0 aDogMTIwMHB4OyBtYXJnaW46IDAgYXV0byAxNHB4OwogICAgcGFkZGluZzogOHB4IDEycHg7CiAg ICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigt LWJvcmRlci1saWdodCk7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBkaXNwbGF5OiBmbGV4 OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogMTJweDsKICAgIGZvbnQtc2l6ZTogMTFweDsgY29sb3I6 IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKfQoucHAtbGVnZW5kZSAubGVnZW5kZS1pdGVtICAgeyBk aXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA1cHg7IH0KLnBw LWxlZ2VuZGUgLmxlZ2VuZGUtc3dhdGNoIHsKICAgIHdpZHRoOiAxMnB4OyBoZWlnaHQ6IDEycHg7 IGJvcmRlci1yYWRpdXM6IDNweDsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2Jh KDAsMCwwLDAuMDgpOwp9Ci5wcC1sZWdlbmRlIC5sZWdlbmRlLXN3YXRjaC5zdy1mICAgICB7IGJh Y2tncm91bmQ6IHJnYmEoMjAxLDE2OSw3NCwwLjMwKTsgfQoucHAtbGVnZW5kZSAubGVnZW5kZS1z d2F0Y2guc3ctcyAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDc0LDEzOSw5NCwwLjMwKTsgfQoucHAt bGVnZW5kZSAubGVnZW5kZS1zd2F0Y2guc3ctbiAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDYyLDk0 LDEzOSwwLjMwKTsgfQoucHAtbGVnZW5kZSAubGVnZW5kZS1zd2F0Y2guc3ctZnJlaSAgeyBiYWNr Z3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRl ci1jb2xvcik7IH0KLnBwLWxlZ2VuZGUgLmxlZ2VuZGUtc3dhdGNoLnN3LXdlICAgIHsgYmFja2dy b3VuZDogdmFyKC0tdGFnLXdvY2hlbmVuZGUpOyB9Ci5wcC1sZWdlbmRlIC5sZWdlbmRlLXN3YXRj aC5zdy1mdCAgICB7IGJhY2tncm91bmQ6IHZhcigtLXRhZy1mZWllcnRhZyk7IH0KLnBwLWxlZ2Vu ZGUgLmxlZ2VuZGUtc3dhdGNoLnN3LWhldXRlIHsgYmFja2dyb3VuZDogdmFyKC0tYmctY2FyZCk7 IGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1hY2MtaW5mbyk7IH0KCi5wcC1tb25hdGUgewog ICAgbWF4LXdpZHRoOiAxMjAwcHg7IG1hcmdpbjogMCBhdXRvOwogICAgZGlzcGxheTogZ3JpZDsg Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyODBweCwgMWZy KSk7CiAgICBnYXA6IDE2cHg7Cn0KLnBwLWxheW91dFtkYXRhLW1vZHVzPSJtb25hdCJdIC5wcC1t b25hdGUgewogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgNzIwcHgpOyBqdXN0 aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQoucHAtbGF5b3V0W2RhdGEtbW9kdXM9Im1vbmF0Il0gLnBw LW1vbmF0IHsgcGFkZGluZzogMjBweDsgfQoucHAtbGF5b3V0W2RhdGEtbW9kdXM9Im1vbmF0Il0g LnBwLW1vbmF0LWtvcGYgaDMgeyBmb250LXNpemU6IDE4cHg7IH0KLnBwLWxheW91dFtkYXRhLW1v ZHVzPSJtb25hdCJdIC5wcC10YWcgeyBmb250LXNpemU6IDEzcHg7IH0KLnBwLWxheW91dFtkYXRh LW1vZHVzPSJtb25hdCJdIC5wcC10YWctbnVtIHsgZm9udC1zaXplOiAxMnB4OyB9Ci5wcC1sYXlv dXRbZGF0YS1tb2R1cz0ibW9uYXQiXSAucHAtdGFnLWNvZGUgeyBmb250LXNpemU6IDEwcHg7IH0K Ci5wcC1tb25hdCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1jYXJkKTsKICAgIGJvcmRlcjog MXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7IHBh ZGRpbmc6IDE0cHg7CiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pOwogICAgZGlzcGxh eTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxMHB4Owp9Ci5wcC1tb25hdC1r b3BmIHsKICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBiYXNlbGluZTsganVzdGlmeS1j b250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IDhweDsKICAgIHBhZGRpbmctYm90dG9tOiA4cHg7 IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpOwp9Ci5wcC1tb25h dC1rb3BmIGgzIHsKICAgIGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGNv bG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpOyBtYXJnaW46IDA7Cn0KLnBwLW1vbmF0LWtvcGYgLnBw LWphaHIgewogICAgZm9udC1zaXplOiAxMXB4OyBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAg ICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zOwp9Ci5wcC1tb25hdC1rb3BmIC5w cC1tb25hdC1rcGkgewogICAgbWFyZ2luLWxlZnQ6IGF1dG87IGZvbnQtc2l6ZTogMTBweDsKICAg IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7CiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzog dGFidWxhci1udW1zOyBsZXR0ZXItc3BhY2luZzogMC4ycHg7Cn0KCi5wcC10YWdlIHsKICAgIGRp c3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcik7IGdhcDog MnB4Owp9Ci5wcC13dCB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogOXB4OyBj b2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7CiAgICBmb250LXdlaWdodDogNzAwOyB0ZXh0LXRyYW5z Zm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC40cHg7CiAgICBwYWRkaW5nOiA0cHgg MCAycHg7Cn0KLnBwLXRhZyB7CiAgICBhc3BlY3QtcmF0aW86IDEuMiAvIDE7CiAgICBkaXNwbGF5 OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsg anVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiA0cHg7CiAgICBiYWNr Z3JvdW5kOiB2YXIoLS1iZy1jYXJkLWFsdCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3Bh cmVudDsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA4cywgYm94LXNoYWRvdyAwLjA4czsK ICAgIGN1cnNvcjogZGVmYXVsdDsKfQoucHAtdGFnLW51bSB7CiAgICBmb250LXNpemU6IDEwcHg7 IGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1z OwogICAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTsKfQoucHAtdGFnLWNvZGUgewogICAg Zm9udC1zaXplOiA5cHg7IGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBtYXJnaW4tdG9wOiAxcHg7IG9w YWNpdHk6IDAuODU7IGxldHRlci1zcGFjaW5nOiAwLjNweDsKfQoucHAtdGFnLndlICAgIHsgYmFj a2dyb3VuZDogdmFyKC0tdGFnLXdvY2hlbmVuZGUpOyB9Ci5wcC10YWcud2UgICAgLnBwLXRhZy1u dW0geyBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB9Ci5wcC10YWcuZnQgICAgeyBiYWNr Z3JvdW5kOiB2YXIoLS10YWctZmVpZXJ0YWcpOyB9Ci5wcC10YWcuZnQgICAgLnBwLXRhZy1udW0s Ci5wcC10YWcuZnQgICAgLnBwLXRhZy1jb2RlIHsgY29sb3I6IHZhcigtLXN0YXR1cy1lcnIpOyB9 Ci5wcC10YWcuZiAgICAgeyBiYWNrZ3JvdW5kOiByZ2JhKDIwMSwxNjksNzQsMC4yMik7IH0KLnBw LXRhZy5mICAgICAucHAtdGFnLWNvZGUgeyBjb2xvcjogdmFyKC0tYWNjLWZydWVoKTsgfQoucHAt dGFnLnMgICAgIHsgYmFja2dyb3VuZDogcmdiYSg3NCwxMzksOTQsMC4yMik7IH0KLnBwLXRhZy5z ICAgICAucHAtdGFnLWNvZGUgeyBjb2xvcjogdmFyKC0tYWNjLXNwYWV0KTsgfQoucHAtdGFnLm4g ICAgIHsgYmFja2dyb3VuZDogcmdiYSg2Miw5NCwxMzksMC4yMik7IH0KLnBwLXRhZy5uICAgICAu cHAtdGFnLWNvZGUgeyBjb2xvcjogdmFyKC0tYWNjLW5hY2h0KTsgfQoucHAtdGFnLnVybGF1YiAg eyBiYWNrZ3JvdW5kOiByZ2JhKDk1LDEyOCwxNjUsMC4xOCk7IH0KLnBwLXRhZy5rcmFuayAgIHsg YmFja2dyb3VuZDogcmdiYSgxNjgsNTIsMzEsMC4xNCk7IH0KLnBwLXRhZy5oZXV0ZSAgIHsKICAg IGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1hY2MtaW5mbyk7CiAgICB0cmFuc2Zvcm06IHRy YW5zbGF0ZVkoLTFweCk7IHotaW5kZXg6IDE7Cn0KLnBwLXRhZy5sZWVyICAgICB7IGJhY2tncm91 bmQ6IHRyYW5zcGFyZW50OyB9Ci5wcC10YWcuZ2VzcGVycnQgeyBvcGFjaXR5OiAwLjQ1OyB9Ci5w cC10YWcua2xpY2tiYXI6aG92ZXIgewogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm94LXNoYWRv dzogMCAwIDAgMXB4IHZhcigtLWJvcmRlci1zdHJvbmcpOwp9CgoucHAtc3VtbWFyeSB7CiAgICBt YXgtd2lkdGg6IDEyMDBweDsgbWFyZ2luOiAxNnB4IGF1dG8gMDsKICAgIGRpc3BsYXk6IGdyaWQ7 CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4 LCAxZnIpKTsKICAgIGdhcDogMTJweDsKfQoucHAtc3VtbWFyeSAua3BpIHsKICAgIGJhY2tncm91 bmQ6IHZhcigtLWJnLWNhcmQpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxp Z2h0KTsKICAgIGJvcmRlci1yYWRpdXM6IDhweDsgcGFkZGluZzogMTJweCAxNHB4OwogICAgYm94 LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtKTsKICAgIGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0 aW9uOiBjb2x1bW47IGdhcDogNHB4Owp9Ci5wcC1zdW1tYXJ5IC5rcGktbGFiZWwgewogICAgZm9u dC1zaXplOiAxMHB4OyBmb250LXdlaWdodDogNzAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVy Y2FzZTsgbGV0dGVyLXNwYWNpbmc6IDAuNnB4OwogICAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQp Owp9Ci5wcC1zdW1tYXJ5IC5rcGktd2VydCB7CiAgICBmb250LXNpemU6IDIycHg7IGZvbnQtd2Vp Z2h0OiA3MDA7CiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTsKICAgIGZvbnQtdmFyaWFu dC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IGxpbmUtaGVpZ2h0OiAxLjE7Cn0KLnBwLXN1bW1hcnkg LmtwaS5rcGktZiAua3BpLXdlcnQgICAgeyBjb2xvcjogdmFyKC0tYWNjLWZydWVoKTsgfQoucHAt c3VtbWFyeSAua3BpLmtwaS1zIC5rcGktd2VydCAgICB7IGNvbG9yOiB2YXIoLS1hY2Mtc3BhZXQp OyB9Ci5wcC1zdW1tYXJ5IC5rcGkua3BpLW4gLmtwaS13ZXJ0ICAgIHsgY29sb3I6IHZhcigtLWFj Yy1uYWNodCk7IH0KLnBwLXN1bW1hcnkgLmtwaS5rcGktZnJlaSAua3BpLXdlcnQgeyBjb2xvcjog dmFyKC0tdGV4dC1zZWNvbmRhcnkpOyB9CgovKiAtLS0tLS0tLS0tIERydWNrYW5zaWNodCAoUGVy c8O2bmxpY2hlciBQbGFuKSAtLS0tLS0tLS0tICovCkBtZWRpYSBwcmludCB7CiAgICAvKiBtYXJn aW46IDAgc2V0enQgZGVuIEJyb3dzZXItS29wZi8tRnXDnyAoU2VpdGVudGl0ZWwgKyBVUkwpIGF1 ZgogICAgICAgbnVsbCBQbGF0eiDihpIgZGllIHdlcmRlbiB2b20gQnJvd3NlciBuaWNodCBtZWhy IGVpbmdlYmxlbmRldC4KICAgICAgIERlciBlaWdlbnRsaWNoZSBJbm5lbmFic3RhbmQga29tbXQg w7xiZXIgYm9keS1QYWRkaW5nLiAqLwogICAgQHBhZ2UgeyBzaXplOiBBNCBwb3J0cmFpdDsgbWFy Z2luOiAwOyB9CgogICAgLyogSGludGVyZ3J1bmRmYXJiZW4gaW0gRHJ1Y2sgZXJ6d2luZ2VuIChz b25zdCBnZWhlbiBTY2hpY2h0ZmFyYmVuLAogICAgICAgUm9sbGUtUGlsbGUgZXRjLiBudXIgYWxz IHdlacOfZSBGbMOkY2hlbiByYXVzKSAqLwogICAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7CiAg ICAgICAgLXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3Q6IGV4YWN0ICFpbXBvcnRhbnQ7CiAgICAg ICAgcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdCAhaW1wb3J0YW50OwogICAgfQoKICAgIGJvZHkg eyBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7IHBhZGRpbmc6IDZtbSA3bW0gIWltcG9ydGFu dDsgfQogICAgLyogV29jaGVucGxhbi1EcnVjayBoYXQgc2VpbmUgZWlnZW5lIFBpeGVsZ2VuYXVp Z2tlaXQg4oCUIGVpZ2VuZXMgUGFkZGluZyAqLwogICAgYm9keS5kcnVja2VuLXdvY2hlbnBsYW4g eyBwYWRkaW5nOiA4bW0gN21tICFpbXBvcnRhbnQ7IH0KCiAgICAvKiBIZWFkZXIgcmVkdXppZXJ0 IGF1ZiBCcmFuZCAoTG9nbyArIFRpdGVsKTsgTmF2IHVuZCByZWNodGUKICAgICAgIEFrdGlvbnNs ZWlzdGUgdmVyc2Nod2luZGVuIGltIERydWNrLiAqLwogICAgYm9keSA+ICNpbnRlZ3JpdGFldC1i YW5uZXIsCiAgICBib2R5ID4gI3ZpZXctYXMtYmFubmVyLAogICAgYm9keSA+ICN0b2FzdC1jb250 YWluZXIsCiAgICBib2R5ID4gI21vZGFsLW92ZXJsYXksCiAgICBib2R5ID4gI2tvbnRleHRtZW51 LAogICAgYm9keSA+ICNrb3BmbGVpc3RlIC5oZWFkZXItbmF2LAogICAgYm9keSA+ICNrb3BmbGVp c3RlIC5oZWFkZXItcmVjaHRzLAogICAgYm9keSA+ICNrb3BmbGVpc3RlIC5rbC1yZWNodHMsCiAg ICAucHAtdG9vbGJhciwKICAgIC5wcC1sZWdlbmRlLAogICAgLnBwLXN1bW1hcnkgeyBkaXNwbGF5 OiBub25lICFpbXBvcnRhbnQ7IH0KCiAgICBib2R5ID4gI2tvcGZsZWlzdGUgewogICAgICAgIGRp c3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBv cnRhbnQ7CiAgICAgICAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50OwogICAgICAgIGNvbG9y OiAjMDAwICFpbXBvcnRhbnQ7CiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgICAg ICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWEgIWltcG9ydGFudDsKICAgICAgICBib3gt c2hhZG93OiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZzogMCAwIDNtbSAhaW1wb3J0 YW50OwogICAgICAgIG1hcmdpbjogMCAwIDRtbSAhaW1wb3J0YW50OwogICAgICAgIG1pbi1oZWln aHQ6IDAgIWltcG9ydGFudDsKICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAg ICBnYXA6IDZtbSAhaW1wb3J0YW50OwogICAgfQogICAgYm9keSA+ICNrb3BmbGVpc3RlIC5rbC1i cmFuZCB7CiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICAgIGFsaWduLWl0 ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgICBnYXA6IDRtbSAhaW1wb3J0YW50OwogICAg ICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7CiAgICB9CiAgICBib2R5ID4g I2tvcGZsZWlzdGUgLmtsLXRpdGVsIHsKICAgICAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50Owog ICAgICAgIGZvbnQtc2l6ZTogMTNwdCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbjogMCAhaW1w b3J0YW50OwogICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB9CiAgICBib2R5ID4gI2tv cGZsZWlzdGUgLmtsLXRpdGVsIC5oZWFkZXItamFociwKICAgIGJvZHkgPiAja29wZmxlaXN0ZSAu a2wtdGl0ZWwgLmphaHIgeyBjb2xvcjogIzU1NSAhaW1wb3J0YW50OyB9CiAgICBib2R5ID4gI2tv cGZsZWlzdGUgI2N1c3RvbS1sb2dvLXNsb3QsCiAgICBib2R5ID4gI2tvcGZsZWlzdGUgLmtsLWxv Z28sCiAgICBib2R5ID4gI2tvcGZsZWlzdGUgLmtsLWxvZ28tc2xvdCB7CiAgICAgICAgbWF4LWhl aWdodDogMTRtbSAhaW1wb3J0YW50OwogICAgfQogICAgYm9keSA+ICNrb3BmbGVpc3RlICNjdXN0 b20tbG9nby1zbG90IGltZyB7CiAgICAgICAgbWF4LWhlaWdodDogMTRtbSAhaW1wb3J0YW50OyB3 aWR0aDogYXV0byAhaW1wb3J0YW50OwogICAgfQoKICAgIC5wcC1zY3JvbGwgeyBwYWRkaW5nOiAw OyBiYWNrZ3JvdW5kOiAjZmZmOyBvdmVyZmxvdzogdmlzaWJsZTsgfQoKICAgIC8qIEJ1ZmZlci1K YW51YXIgZGVzIEZvbGdlamFocmVzICgxMy4gS2FydGUpIGltIERydWNrIG5pY2h0IHplaWdlbiAq LwogICAgLnBwLW1vbmF0ZSAucHAtbW9uYXQ6bnRoLWNoaWxkKDEzKSB7IGRpc3BsYXk6IG5vbmUg IWltcG9ydGFudDsgfQoKICAgIC8qIFRpdGVsIGtvbXBha3Q6IFJvbGxlLVBpbGxlIChEaWVuc3Rn cmFkL0dydXBwZSkgaW0gRHJ1Y2sgd2VnbGFzc2VuICovCiAgICAucHAtdGl0ZWwgeyBtYXJnaW46 IDAgMCA0bW07IGdhcDogNG1tOyB9CiAgICAucHAtdGl0ZWwgLnBwLXJvbGxlIHsgZGlzcGxheTog bm9uZSAhaW1wb3J0YW50OyB9CiAgICAucHAtdGl0ZWwgLnBwLW5hbWUgIHsgZm9udC1zaXplOiAx NHB0OyB9CiAgICAucHAtdGl0ZWwgLnBwLW1ldGEgIHsgZm9udC1zaXplOiA5cHQ7IH0KCiAgICAv KiAxMiBLYXJ0ZW4gaW4gNCBSZWloZW4gw5cgMyBTcGFsdGVuIOKAlCBwYXNzdCB6dXNhbW1lbiBt aXQga29tcGFrdGVuCiAgICAgICBUYWdlbiBhdWYgZWluZSBTZWl0ZSAqLwogICAgLnBwLW1vbmF0 ZSB7CiAgICAgICAgbWF4LXdpZHRoOiBub25lOwogICAgICAgIGdhcDogM21tOwogICAgICAgIGdy aWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7CiAgICB9CiAgICAucHAtbW9uYXQg ewogICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2Nj YzsKICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkOwogICAgICAgIHBhZGRpbmc6IDNtbTsKICAg ICAgICBnYXA6IDJtbTsKICAgIH0KICAgIC5wcC1tb25hdC1rb3BmIHsgcGFkZGluZy1ib3R0b206 IDEuNW1tOyB9CiAgICAucHAtbW9uYXQta29wZiBoMyB7IGZvbnQtc2l6ZTogMTBwdDsgfQogICAg LnBwLW1vbmF0LWtvcGYgLnBwLWphaHIsCiAgICAucHAtbW9uYXQta29wZiAucHAtbW9uYXQta3Bp IHsgZm9udC1zaXplOiA3cHQ7IH0KCiAgICAucHAtdGFnZSB7IGdhcDogMXB4OyB9CiAgICAucHAt d3QgICB7IGZvbnQtc2l6ZTogNnB0OyBwYWRkaW5nOiAxcHggMDsgfQogICAgLnBwLXRhZyB7CiAg ICAgICAgYXNwZWN0LXJhdGlvOiBhdXRvOwogICAgICAgIG1pbi1oZWlnaHQ6IDA7CiAgICAgICAg cGFkZGluZzogMXB4IDA7CiAgICAgICAgZ2FwOiAwOwogICAgfQogICAgLnBwLXRhZy1udW0gIHsg Zm9udC1zaXplOiA3cHQ7IH0KICAgIC5wcC10YWctY29kZSB7IGZvbnQtc2l6ZTogNnB0OyBtYXJn aW4tdG9wOiAwOyB9CgogICAgLyogU3VtbWFyeSBrb21wYWt0IOKAlCBwYXNzdCBpbSBJZGVhbGZh bGwgbWl0IGF1ZiBkaWUgbGV0enRlIFNlaXRlICovCiAgICAucHAtc3VtbWFyeSB7CiAgICAgICAg Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsKICAgICAgICBnYXA6IDJtbTsK ICAgICAgICBtYXJnaW4tdG9wOiAzbW07CiAgICB9CiAgICAucHAtc3VtbWFyeSAua3BpIHsgcGFk ZGluZzogMm1tIDNtbTsgYm94LXNoYWRvdzogbm9uZTsgZ2FwOiAxcHg7IH0KICAgIC5wcC1zdW1t YXJ5IC5rcGktbGFiZWwgeyBmb250LXNpemU6IDZwdDsgfQogICAgLnBwLXN1bW1hcnkgLmtwaS13 ZXJ0ICB7IGZvbnQtc2l6ZTogMTNwdDsgfQp9Cg== ### FILE: sync-worker.js | 2267 Ly8gTGl2ZS1TeW5jIFdlYiBXb3JrZXIg4oCUIHBvbGx0IC9hcGkvcGxhbnVuZy9jaGFuZ2VzICsg L2FwaS9sb2NrL3plbGxlbiBhbGxlCi8vIDMgU2VrdW5kZW4gdW5kIHNjaGlja3QgZGllIERlbHRh cyBhbiBkZW4gSGF1cHR0aHJlYWQuIExhZXVmdCBhdWNoIGluCi8vIEhpbnRlcmdydW5kLVRhYnMg dW5nZWRyb3NzZWx0IChhbmFsb2cgaGVhcnRiZWF0LXdvcmtlci5qcykuCi8vCi8vIFByb3Rva29s bDoKLy8gICBNYWluIOKGkiBXb3JrZXI6ICB7IGNtZDogJ3N0YXJ0JyB8ICdwYXVzZScgfCAncmVz dW1lJywgc2VpdD86ICc8aXNvLXRzPicgfQovLyAgIFdvcmtlciDihpIgTWFpbjogIHsgdHlwZTog J3N5bmMnLCBjaGFuZ2VzOiBbLi4uXSwgbG9ja3M6IFsuLi5dLCBzZXJ2ZXJUczogJzxpc28tdHM+ JyB9Cgp2YXIgSU5URVJWQUxMID0gMzAwMDsKdmFyIHNpY2h0YmFyID0gdHJ1ZTsKdmFyIHNlaXQg PSAnJzsKdmFyIHRpbWVyID0gbnVsbDsKCnZhciBpbnRlZ1RpY2tDb3VudGVyID0gMDsKZnVuY3Rp b24gdGljaygpIHsKICAgIGlmICghc2ljaHRiYXIpIHJldHVybjsKICAgIHZhciBjaGFuZ2VzUCA9 IGZldGNoKCcvYXBpL3BsYW51bmcvY2hhbmdlcz9zZWl0PScgKyBlbmNvZGVVUklDb21wb25lbnQo c2VpdCB8fCAnJykpCiAgICAgICAgLnRoZW4oZnVuY3Rpb24ocikgeyByZXR1cm4gci5qc29uKCk7 IH0pCiAgICAgICAgLmNhdGNoKGZ1bmN0aW9uKCkgeyByZXR1cm4gbnVsbDsgfSk7CiAgICB2YXIg bG9ja3NQID0gZmV0Y2goJy9hcGkvbG9jay96ZWxsZW4nKQogICAgICAgIC50aGVuKGZ1bmN0aW9u KHIpIHsgcmV0dXJuIHIuanNvbigpOyB9KQogICAgICAgIC5jYXRjaChmdW5jdGlvbigpIHsgcmV0 dXJuIG51bGw7IH0pOwogICAgLy8gUGhhc2UgRzogSW50ZWdyaXRhZXQtU3RhdHVzIG51ciBhbGxl IH4zMHMgcG9sbGVuIChTZXJ2ZXItQ2FjaGUgVFRMKQogICAgLy8gQmVpIElOVEVSVkFMTD0zMDAw bXMgcGFzc3QgMTAgVGlja3MgfiAzMHMuCiAgICBpbnRlZ1RpY2tDb3VudGVyKys7CiAgICB2YXIg aW50ZWdQID0gKGludGVnVGlja0NvdW50ZXIgJSAxMCA9PT0gMSkKICAgICAgICA/IGZldGNoKCcv YXBpL2ludGVncml0YWV0L3N0YXR1cycpLnRoZW4oZnVuY3Rpb24ocikgeyByZXR1cm4gci5qc29u KCk7IH0pLmNhdGNoKGZ1bmN0aW9uKCkgeyByZXR1cm4gbnVsbDsgfSkKICAgICAgICA6IFByb21p c2UucmVzb2x2ZShudWxsKTsKICAgIFByb21pc2UuYWxsKFtjaGFuZ2VzUCwgbG9ja3NQLCBpbnRl Z1BdKS50aGVuKGZ1bmN0aW9uKGFycikgewogICAgICAgIHZhciBjaCA9IGFyclswXSwgbGsgPSBh cnJbMV0sIGl0ID0gYXJyWzJdOwogICAgICAgIHZhciBtc2cgPSB7IHR5cGU6ICdzeW5jJyB9Owog ICAgICAgIGlmIChjaCAmJiBjaC5zZXJ2ZXJUcykgewogICAgICAgICAgICBzZWl0ID0gY2guc2Vy dmVyVHM7CiAgICAgICAgICAgIG1zZy5zZXJ2ZXJUcyA9IGNoLnNlcnZlclRzOwogICAgICAgICAg ICBtc2cuY2hhbmdlcyA9IGNoLmNoYW5nZXMgfHwgW107CiAgICAgICAgfQogICAgICAgIGlmIChs ayAmJiBsay5sb2NrcykgbXNnLmxvY2tzID0gbGsubG9ja3M7CiAgICAgICAgaWYgKGl0KSBtc2cu aW50ZWdyaXRhZXQgPSBpdDsKICAgICAgICBpZiAobXNnLmNoYW5nZXMgfHwgbXNnLmxvY2tzIHx8 IG1zZy5pbnRlZ3JpdGFldCkgc2VsZi5wb3N0TWVzc2FnZShtc2cpOwogICAgfSk7Cn0KCmZ1bmN0 aW9uIHN0YXJ0ZW4oKSB7CiAgICBpZiAodGltZXIpIGNsZWFySW50ZXJ2YWwodGltZXIpOwogICAg dGljaygpOwogICAgdGltZXIgPSBzZXRJbnRlcnZhbCh0aWNrLCBJTlRFUlZBTEwpOwp9CgpzZWxm Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGUpIHsKICAgIHZhciBkID0gZS5kYXRhIHx8IHt9OwogICAg aWYgKGQuY21kID09PSAnc3RhcnQnKSB7CiAgICAgICAgaWYgKGQuc2VpdCkgc2VpdCA9IGQuc2Vp dDsKICAgICAgICBzaWNodGJhciA9IHRydWU7CiAgICAgICAgc3RhcnRlbigpOwogICAgfSBlbHNl IGlmIChkLmNtZCA9PT0gJ3BhdXNlJykgewogICAgICAgIHNpY2h0YmFyID0gZmFsc2U7CiAgICB9 IGVsc2UgaWYgKGQuY21kID09PSAncmVzdW1lJykgewogICAgICAgIGlmIChkLnNlaXQpIHNlaXQg PSBkLnNlaXQ7CiAgICAgICAgc2ljaHRiYXIgPSB0cnVlOwogICAgICAgIHRpY2soKTsKICAgIH0g ZWxzZSBpZiAoZC5jbWQgPT09ICdzdG9wJykgewogICAgICAgIGlmICh0aW1lcikgY2xlYXJJbnRl cnZhbCh0aW1lcik7CiAgICAgICAgdGltZXIgPSBudWxsOwogICAgfQp9Owo=