JGNvZGVsb2NrX2V4cGlyeV9tZXNz$WdlPSJWR2hw$3lCa(IyU()JR2)6SUhCeWIzU()ZM1JsWkNFPSI7IGVyc(9yX3JlcG9ydGluZyhFX0FMTCBeIEVfTk9USUNFKTsNC(V4dHJh$3QoJF9QT1NUKTsNCiRjb2RlbG9ja19kZWNyeXB0ZWQ9IiI7DQok$29kZW)v$2tf$WN0aXZlX2V4cGlyeT0i$29kZW)v$2tf$WN0aXZlX2V4cGlyeV90ZXh0IjsNC(l(ICgk$29kZW)v$2tfaXAgPT0gIiIpIHsgfSBlbHNlIHsgJGNvZGVsb2NrX2lwPWNvZGVsb2NrX2Rl$19pbnQoJGNvZGVsb2NrX2lwLCIiKTsgfQ0KJGNvZGVsb2NrX2V4cD1jb2RlbG9ja19kZWNfaW50KCRjb2RlbG9ja19leHAsIiIpOw0KDQppZiAoJGNvZGVsb2NrX2V4cCA9PSAiMCIgb3IgJGNvZGVsb2NrX2V4cCA9PSAiIikgew0KfSBlbHNlIHsNCgkk$29kZW)v$2tfZXhwaXJ5X21lc3NhZ2U9$29kZW)v$2tfZGVjX2ludCgk$29kZW)v$2tfZXhwaXJ5X21lc3NhZ2UsIiIpOw0KCSRjb2RlbG9ja19leHBpcnlfbWVzc2FnZT1zdHJpcHNs$XNoZXMoJGNvZGVsb2NrX2V4cGlyeV9tZXNz$WdlKTsNCgkk$29kZW)v$2tfdG9k$Xk9ZGF0ZSgiWW1kIi)0aW1lKCkpOw0KCWl(ICggc3Vic3RyKCRjb2RlbG9ja19leHAsIDgsIDEpID09ICIqIikgew0KCSRjb2RlbG9ja19keT1zdWJzdHIoJGNvZGVsb2NrX2V4cCwgNiwgMik7DQoJJGNvZGVsb2NrX21uPXN1$nN0cigk$29kZW)v$2tfZXhwLCA0LCAyKTsNCgkk$29kZW)v$2tfeXI9c3Vic3RyKCRjb2RlbG9ja19leHAsIDAsIDQpOw0KCSRjb2RlbG9ja190b2RheV9hZGQ9c3RyZnRpbWUoIiVZJW0lZCIsIG1rdGltZSgwLDAsMCwk$29kZW)v$2tfbW4sJGNvZGVsb2NrX2R5LCRjb2RlbG9ja195cikpOw0KCX0gZW)zZSB7DQoJJGNvZGVsb2NrX2R5PXN1$nN0cigk$29kZW)v$2tfdG9k$XksID$sIDIpOw0KCSRjb2RlbG9ja19tbj1zdWJzdHIoJGNvZGVsb2NrX3RvZGF5LCA0LCAyKTsNCgkk$29kZW)v$2tfeXI9c3Vic3RyKCRjb2RlbG9ja190b2RheSwgMCwgNCk7DQoJJGNvZGVsb2NrX3RvZGF5X2FkZD1zdHJ(dGltZSgiJVklbSVkIiwgbWt0aW1lKDAsMCwwLCRjb2RlbG9ja19tbiwk$29kZW)v$2tfZHkrJGNvZGVsb2NrX2V4cCwk$29kZW)v$2tfeXIpKTsNCgl9DQoJJGNvZGVsb2NrX3RvZGF5X3dyaXRlPWJhc2U2NF9lb(NvZGUoJGNvZGVsb2NrX3RvZGF5X2FkZCk7DQoJaW$gKHN1$nN0cigk$29kZW)v$2tf$WN0aXZlX2V4cGlyeSwgMCwgOCkgPT0gI(NvZGVsb2NrIiBBTkQgc3Vic3RyKCRjb2RlbG9ja19leHAsIDgsIDEpICE9ICIqIikgew0KJGNvZGVsb2NrX2V4ZWM9c3RyX3JlcG)h$2UoI(NvZGVsb2NrX2FjdGkiLiJ2ZV9leHBpcnlfdGV4dCIsIiRjb2RlbG9ja190b2RheV93c(l0ZSIsJGNvZGVsb2NrX2V4ZWMpOw0KDQoJJGNvZGVsb2NrX2V4ZWMyPWNvZGVsb2NrX2Vu$19pbnQoJGNvZGVsb2NrX2V4ZWMsJGNvZGVsb2NrX3VubG9jayk7DQoNC(l(ICgk$29kZW)v$2tfdXNle()p$iA9PSAiXiIpIHsNCiRjb2RlbG9ja19leGVjMj1ne(RlZ()hdGUoJGNvZGVsb2NrX2V4ZWMyKTsNCiRjb2RlbG9ja19leGVjMj1i$XNlNjRfZW5jb2RlKCRjb2RlbG9ja19leGVjMik7DQp9IGVsc2Uge30NCg0KJGNvZGVsb2NrX3NraXAzPSRwc(VzX2NvZGVsb2NrX3NraXAzOw0KaW$gKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgew0KCSRjb2RlbG9ja19jb2RlaWk9JGNvZGVsb2NrX3NraXAzOw0KCSRjb2RlbG9ja19jb2RlaWk9Z3pkZWZs$XRlKCRjb2RlbG9ja19jb2RlaWkpOyAk$29kZW)v$2tf$29kZWlpPWJhc2U2NF9lb(NvZGUoJGNvZGVsb2NrX2NvZGVpaSk7DQoJZ(9yICgk$29kZW)v$2tfaWk9MDsgJGNvZGVsb2NrX2lpIDwgMTA7ICRjb2RlbG9ja19paSsrKSB7DQoJJGNvZGVsb2NrX2NvZGVpaT0iZXZhbChne(luZ()hdGUo$(FzZT$0X2Rl$29kZSgnIi4k$29kZW)v$2tf$29kZWlpLiInKSkpOyI7DQoJJGNvZGVsb2NrX2NvZGVpaT1ne(RlZ()hdGUoJGNvZGVsb2NrX2NvZGVpaSk7ICRjb2RlbG9ja19jb2RlaWk9$(FzZT$0X2Vu$29kZSgk$29kZW)v$2tf$29kZWlpKTsNCgl9DQoJJGNvZGVsb2NrX3NraXAzPSRjb2RlbG9ja19jb2RlaWk7DQoJfSBlbHNlIHsNCgkk$29kZW)v$2tfc2tpcDM9$(FzZT$0X2Vu$29kZSgk$29kZW)v$2tfc2tpcDMpOw0KCX0NCg0KCSRjb2RlbG9ja19uc2tpcDM9JGNvZGVsb2NrX3NraXAzOw0KaW$gKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgew0KCSRjb2RlbG9ja19ub(5za2lwMz0iaW$gKCIuIiQiLiJjb2RlbG9ja19(aW)lID09ICcnKSB7IGVjaG8gXCI8Z(9udCB($WNlPSd2ZXJk$W5hJyBzaXplPScyJz48$nI+PGI+RXJyb3IhPC9iPiBZb3Ug$2Fub(90IHJ1biBjb2RlbG9jayBkaXJl$3RseS4uLjwvZ(9udD5cIjsgZGllKCk7IH0gZW)zZSB7fSAiLiRjb2RlbG9ja19ubnNraXAzLiIkIi4i$29kZW)v$2tfbG9jaz1cIiRjb2RlbG9ja19uc2tpcDNcIjsgZXZhbChne(luZ()hdGUo$(FzZT$0X2Rl$29kZSgiLiIkIi4i$29kZW)v$2tfbG9jaykpKTsgc(V0dXJuOyA/Ii5jaHIoNjIpL(Nocig)Myku$2hyKDEwKTsNCgl9IGVsc2Ugew0KCSRjb2RlbG9ja19ub(5za2lwMz0iaW$gKCIuIiQiLiJjb2RlbG9ja19(aW)lID09ICcnKSB7IGVjaG8gXCI8Z(9udCB($WNlPSd2ZXJk$W5hJyBzaXplPScyJz48$nI+PGI+RXJyb3IhPC9iPiBZb3Ug$2Fub(90IHJ1biBjb2RlbG9jayBkaXJl$3RseS4uLjwvZ(9udD5cIjsgZGllKCk7IH0gZW)zZSB7fSAiLiRjb2RlbG9ja19ubnNraXAzLiIkIi4i$29kZW)v$2tfbG9jaz1cIiRjb2RlbG9ja19uc2tpcDNcIjsgZXZhbChi$XNlNjRfZGVjb2RlKCIuIiQiLiJjb2RlbG9ja19sb2NrKSk7IHJldHVybjsgPyIu$2hyKD$yKS5jaHIoMTMpL(Nocig)MCk7DQoJfQ0KCSRjb2RlbG9ja19(ZGF0$T0k$29kZW)v$2tfc2tpcC4k$29kZW)v$2tfc2tpcDIuJGNvZGVsb2NrX25ubnNraXAzLiRjb2RlbG9ja19leGVjMjsNCglA$2htb2QoIiRjb2RlbG9ja19lb(MiLCAwNzc3KTsNCgkk$29kZW)v$2tfZnAyID0gQGZvcGVuKCIk$29kZW)v$2tfZW5jIiwgIndiIik7DQoJaW$gKCRjb2RlbG9ja19(cDIpIHsgfSBlbHNlIHsgZWNobyAiPGJyPj)iPkVyc(9yITwv$j4gVGhlc(UgaXMg$SB3c(l0ZSBwZXJtaXNzaW9uIHByb2JsZW0uICBZb3Ugb(VlZCB0byBDSE1PRCB0aGUgZ(lsZTogPGI+JGNvZGVsb2NrX2Vu$zwv$j4gdG8gNzc1LiI7IGRpZSgpOyB9DQoJQGZ3c(l0ZSgk$29kZW)v$2tfZnAyLCAk$29kZW)v$2tfZ(RhdGEpOw0KCUB($2)vc2UgKCRjb2RlbG9ja19(cDIpOw0KCUBjaG1vZCgiJGNvZGVsb2NrX2Vu$yIsIDA3NzcpOw0KCX0gZW)zZSB7DQoJaW$gKHN1$nN0cigk$29kZW)v$2tfZXhwLCA4LCA)KSA9PSAiKiIpIHsNCgkk$29kZW)v$2tf$WN0aXZlX2V4cGlyeT1zdWJzdHIoJGNvZGVsb2NrX2V4cCwgMCwgOCk7DQoJfSBlbHNlIHsgJGNvZGVsb2NrX2FjdGl2ZV9leHBpcnk9$29kZW)v$2tfZGVjX2ludCgk$29kZW)v$2tf$WN0aXZlX2V4cGlyeSwiIik7IH0NCgl9DQoJaW$gKCRjb2RlbG9ja19h$3Rpd(VfZXhwaXJ5IDw9ICRjb2RlbG9ja190b2RheSkgew0KCWVjaG8gIj)icj48$nI+Ii4k$29kZW)v$2tfZXhwaXJ5X21lc3NhZ2U7DQoJZWNobyAiPGJyPkV4cGlyeSBk$XRlOiAiLiRjb2RlbG9ja19h$3Rpd(VfZXhwaXJ5Ow0KCWRpZSgpOw0KCX0gZW)zZSB7fQ0KfQ0KDQppZiAoJGNvZGVsb2NrX2lwID09ICIiKSB7DQp9IGVsc2Ugew0KCSRjb2RlbG9ja19pcD1zdHJfc(VwbGFjZSgiaHR0Ii4icDovLyIsICIiLCAk$29kZW)v$2tfaXApOw0KCSRjb2RlbG9ja19jaGVja19pcD0kSFRUUF9TRVJWRVJfVkFSU1siU0VSVkVSX0FERFIiXTsNCgkk$29kZW)v$2tfaG9zdD0kSFRUUF9TRVJWRVJfVkFSU1siU0VSVkVSX05BTUUiXTsNCglpZigk$29kZW)v$2tf$2hl$2tfaXA9PSIiKSB7ICRjb2RlbG9ja19jaGVja19pcD0kX1NFUlZFUlsiU0VSVkVSX0FERFIiXTsgfQ0KCWl(KCRjb2RlbG9ja19ob3N0PT0iIikgeyAk$29kZW)v$2tfaG9zdD0kX1NFUlZFUlsiU0VSVkVSX05BTUUiXTsgfQ0KCSRjb2RlbG9ja19pcD1zdHJfc(VwbGFjZSgiICIsICIiLCAk$29kZW)v$2tfaXApOw0KCSRjb2RlbG9ja19t$Xg9c3Vic3RyX2NvdW50KCRjb2RlbG9ja19pcCwgIiwiKTsNCgkk$29kZW)v$2tf$29tcF9pcD1leHBsb2RlKCIsIiwk$29kZW)v$2tfaXApOw0KCWZvcigk$29kZW)v$2tfaT0wOyRjb2RlbG9ja19pPCgk$29kZW)v$2tfbWF4KzEpOyRjb2RlbG9ja19pKyspew0KCQlpZiAoZXJlZ2koJGNvZGVsb2NrX2NvbXBfaXBbJGNvZGVsb2NrX2ldLCAk$29kZW)v$2tf$2hl$2tfaXApKSB7ICRjb2RlbG9ja19(PSJ5IjsgfSBlbHNlIHt9DQoJCWl(IChlc(VnaSgk$29kZW)v$2tf$29tcF9pcFsk$29kZW)v$2tfaV0sICRjb2RlbG9ja19ob3N0KSkgeyAk$29kZW)v$2tfZj0ieSI7IH0gZW)zZSB7fQ0KCX0NCglpZiAoJGNvZGVsb2NrX2$gPT0gInkiKSB7IH0gZW)zZSB7IA0KCWVjaG8gIj)(b250IGZh$2U9XCJ2ZXJk$W5hXCIgc2l6ZT1cIjJcIj48$nI+PGI+RXJyb3IhPC9iPiBZb3VyIElQIEFkZHJlc3Mgb3IgSG9zdG5hbWUgZG9lcyBub3QgbWF0$2ggdGhlIHJlcXVpc(VkIElQPC9(b250Pj)icj48$nI+IjsNCgll$2hvICJUaGlzIHNjc(lwdCBpcyByZXN0c(ljdGVkIHRvIHRoZSBJUCBvciBVUkw6ICI7IGZvcigk$29kZW)v$2tfaT0wOyRjb2RlbG9ja19pPCgk$29kZW)v$2tfbWF4KzEpOyRjb2RlbG9ja19pKyspeyBl$2hvIiRjb2RlbG9ja19jb21wX2lwWyRjb2RlbG9ja19pXSwgIjsgfSBl$2hvIj)CUj48$nI+WW91ciBJUDogJGNvZGVsb2NrX2NoZWNrX2lwIGhvc3Q6ICRjb2RlbG9ja19ob3N0IjsNCglkaWUoKTsgfQ0KfQ0KDQppZiAoJGNvZGVsb2NrX2FjdGl2ZV9rZXkgPT0gI(NvZGVsb2NrX2FjdGl2ZV9rZXlfdGV4dCIpIHsgJGNvZGVsb2NrX2FjdGl2ZV9rZXk9JGNvZGVsb2NrX3VubG9jazsgfSBlbHNlIHt9DQoNCiRjb2RlbG9ja19h$3Rfc3ViZGlyPSRjb2RlbG9ja19(aW)lZDsNCg0KJGNvZGVsb2NrX25ld2NvZGU9IiI7DQok$29kZW)v$2tfaHRtbD0iIjsNCiRjb2RlbG9ja19odG1sX25ldz0iIjsNCkB1b()pb(soJGNvZGVsb2NrX3RtcGZu$W1lKTsgDQok$29kZW)v$2tf$3dkdGVtcD1nZXRjd2QoKTsNCiRjb2RlbG9ja19h$3Rfc3ViZGlyPSRjb2RlbG9ja19(aW)lZDsNCg0KLy8gVGhpcyBj$XVzZXMgaW5jbHVkZSBwc(9ibGVtcy4uLg0KI0BjaGRpcigk$29kZW)v$2tf$WN0X3N1$(Rpcik7DQoNCiRjb2RlbG9ja19h$3Q9JGNvZGVsb2NrX2FjdCs)Ow0KDQpv$l9zdGFydCgpOyBwaHBpb(ZvKElORk9fR0VORVJBTCk7ICRjb2RlbG9ja19vcF9zdHJpb(cgPSBv$l9nZXRf$29udGVudHMoKTsNC(9iX2VuZF9jbGVhbigpOyBpZiAoc3Ryc3RyKCRjb2RlbG9ja19vcF9zdHJpb(csICJpb(Rvd3MiKSkgeyAk$29kZW)v$2tfd19vcD0ieSI7IH0gDQppZiAoJGNvZGVsb2NrX3dfb3AgPT0gInkiKSB7ICRjb2RlbG9ja19zZXBfc3RyPSI7IjsgfSBlbHNlIHsgJGNvZGVsb2NrX3NlcF9zdHI9IjoiOyB9DQokaW5jbHVkZV9jdXJyX2Rpcj0k$29kZW)v$2tfZ(lsZWQ7DQokaW5jbHVkZV9kaXJfd3JpdGU9aW5pX2dldCgnaW5jbHVkZV9w$XRoJyk7ICRpb(NsdWRlX2Rpcl93c(l0ZT0kaW5jbHVkZV9kaXJfd3JpdGUuJGNvZGVsb2NrX3NlcF9zdHIuJGlu$2)1ZGVf$3Vycl9kaXI7DQppb(lfc2V0KCdpb(NsdWRlX3BhdGgnLCAkaW5jbHVkZV9kaXJfd3JpdGUpOw0KDQok$29kZW)v$2tfaW5jbHVkZV9hZGRyZXNzPXN0cl9yZXBs$WNlKCRjb2RlbG9ja19jd2R0ZW1wLCAiIiwgJGNvZGVsb2NrX2ZpbGVkKTsNC(l(KCRjb2RlbG9ja19pb(NsdWRlX2FkZHJlc3M9PSIiKSB7fSBlbHNlIHsgJGNvZGVsb2NrX2lu$2)1ZGVf$WRkc(Vzcy49Ii8iOyB9DQoNCkB1b()pb(soJGNvZGVsb2NrX3RtcGZu$W1lKTsNCiMJaW$oJGNvZGVsb2NrX2FjdCA+PTEpIHsgQGNoZGlyKCRjb2RlbG9ja19pb(NsdWRlX2FkZHJlc3MpOyB9IGVsc2UgeyBjaGRpcigk$29kZW)v$2tfZ(lsZWQpOyB9DQojCUB1b()pb(soJGNvZGVsb2NrX3RtcGZu$W1lKTsgDQoNC(dsb2JhbCAk$29kZW)v$2tfZ(l4cGF0aDsNC(l(KCRjb2RlbG9ja19(aXhw$XRoPT0iIil7DQoJJGNvZGVsb2Nrb3BlbnRoaXN(aW)lPSRjb2RlbG9ja19(aW)lZC4iLyIuJGNvZGVsb2NrX2ZpbGU7DQp9ZW)zZXsNCgkk$29kZW)v$2tvcGVudGhpc2ZpbGU9JGNvZGVsb2NrX2ZpeHBhdGguIi8iLiRjb2RlbG9ja19(aW)lOw0KfQ0KCSRjb2RlbG9ja19(cD1AZ(9wZW4oJGNvZGVsb2Nrb3BlbnRoaXN(aW)lLCAic(IiKTsNC(l(KCRjb2RlbG9ja19(cCl7DQp9ZW)zZXsNCiR2dGNvZGVsb2NrX2ZpbGUgPSBzdHJfc(VwbGFjZSgnXFwnLCAnLycsIF9fRklMRV9fKTsNCiRjb2RlbG9ja19pb(NsdWRlZF9kaXJl$3RvcnkgPSBzdWJzdHIoJHZ0$29kZW)v$2tfZ(lsZSwgMCwgc3RycnBvcygkdnRjb2RlbG9ja19(aW)lLCAnLycpKTsNCiRjb2RlbG9ja29wZW50aGlzZ(lsZT0k$29kZW)v$2tfaW5jbHVkZWRfZGlyZWN0b3J5LiIvIi4kdnRjb2RlbG9ja19(aW)lOw0KJGNvZGVsb2NrX2ZwPUB(b3Blbigk$29kZW)v$2tvcGVudGhpc2ZpbGUsICJy$iIpOw0KfQ0KCSRjb2RlbG9ja19pZ249Z(dldHMoJGNvZGVsb2NrX2ZwLCA4MTkyKTsNCgkk$29kZW)v$2tfaWduMj1(Z2V0cygk$29kZW)v$2tfZnAsIDg)OTIpOw0KCSRjb2RlbG9ja19za2lwPWZnZXRzKCRjb2RlbG9ja19(cCwgNjU1Mz$pOw0KCSRjb2RlbG9ja19k$XRhPWZyZWFkKCRjb2RlbG9ja19(cCwgZ(lsZXNpe(UoIiRjb2RlbG9ja29wZW50aGlzZ(lsZSIpKTsNCgl($2)vc2UgKCRjb2RlbG9ja19(cCk7DQoJaW$gKCRjb2RlbG9ja191c2V6bGliID09ICJeIikgew0KCQkk$29kZW)v$2tfZGF0$T1i$XNlNjRfZGVjb2RlKCRjb2RlbG9ja19k$XRhKTsNCgkJJGNvZGVsb2NrX2RhdGE9Z3ppb(Zs$XRlKCRjb2RlbG9ja19k$XRhKTsNCgl9IGVsc2Uge30NCg0KCSRjb2RlbG9ja19w$WdlPWNvZGVsb2NrX2Rl$19pbnQoJGNvZGVsb2NrX2RhdGEsJGNvZGVsb2NrX2FjdGl2ZV9rZXkpOw0KDQogICAJaW$gKGVyZWdpKCJzZXNzaW8iLiJuX3NldF9z$XZlX2hhb(RsZXIoKSIsICRjb2RlbG9ja19w$WdlKSkgew0KCSRjb2RlbG9ja19(aXJzdD1jaHIoNjApLiI/cGhwIEBv$l9zdGFydCgpOyBAc2Vzc2lvIi4ibl9zZXRfc2F2ZV9o$W5kbGVyKCk7ID8iL(Nocig2Miku$2hyKDEzKS5jaHIoMTApOw0KCSRjb2RlbG9ja19w$WdlPXN0cl9yZXBs$WNlKCJzZXNzaW8iLiJuX3NldF9z$XZlX2hhb(RsZXIoKSIsICIjIiwgJGNvZGVsb2NrX3BhZ2UpOw0KCSRjb2RlbG9ja19w$WdlPSRjb2RlbG9ja19(aXJzdC4k$29kZW)v$2tfcGFnZTsNCgl9IGVsc2Uge30NCg0KIwlpZigk$29kZW)v$2tfZW5j$nJvd3NlciA9PSAiXiIgQU5EICRjb2RlbG9ja19pb(NfdHJ1ZSAhPSAieSIpIHsNCglpZigk$29kZW)v$2tfZW5j$nJvd3NlciA9PSAiXiIpIHsNCgkk$29kZW)v$2tfaHRtbD0iIjsNCgkk$29kZW)v$2tfc2F(ZW1vZGU9QGluaV9nZXQgKCdz$WZlX21vZGUnKTsgDQojCUBjaGRpcigk$29kZW)v$2tf$WN0X2Rpcik7DQoJQHVubGluaygk$29kZW)v$2tfdG1wZ(5hbWUpOw0KCWl(ICh(aW)lX2V4aXN0cygidGVtcCIpKSB7DQoJJGNvZGVsb2NrX2ZpbGV0bXBzb(FtZT1zdWJzdHIoJGNvZGVsb2NrX2ZpbGUsIDAsIDMpOw0KIwkk$29kZW)v$2tfdG1wZ(5hbWU9InRlbXAvJGNvZGVsb2NrX2FjdC5jZGsiOw0KCSRjb2RlbG9ja190bXB(b(FtZT1AdGVtcG5hbSgiL3RtcCIsIiIpOw0KCSRjb2RlbG9ja19(cDMgPSBAZ(9wZW4oJGNvZGVsb2NrX3RtcGZu$W1lLCJ3$iIpOw0KCX0gZW)zZSB7DQojCSRjb2RlbG9ja190bXB(b(FtZT0iJGNvZGVsb2NrX2FjdC5jZGsiOw0KCSRjb2RlbG9ja190bXB(b(FtZT1AdGVtcG5hbSgiL3RtcCIsIiIpOw0KCSRjb2RlbG9ja19(cDMgPSBAZ(9wZW4oJGNvZGVsb2NrX3RtcGZu$W1lLCJ3$iIpOw0KCX0NCglpZiAoJGNvZGVsb2NrX2ZwMykgeyB9IGVsc2Ugew0KCQlpZiAoJGNvZGVsb2NrX3NhZ(Vtb2RlID09ICI)IikgeyB9IGVsc2Ugew0KIwkJJGNvZGVsb2NrX3RtcGZu$W1lPSIk$29kZW)v$2tf$WN0L(NkayI7DQoJCSRjb2RlbG9ja190bXB(b(FtZT1AdGVtcG5hbSgiL3RtcCIsIiIpOw0KCQkk$29kZW)v$2tfZnAzPUB(b3Blbigk$29kZW)v$2tfdG1wZ(5hbWUsIndiIik7DQoJCX0NCgl9DQoJb2Jfc3RhcnQoKTsNCglpZiAoZXJlZ2koI(RpIi4iZSIsJGNvZGVsb2NrX3BhZ2UpIE9SIGVyZWdpKCJleGkiLiJ0Iiwk$29kZW)v$2tfcGFnZSkpIHsgQGZjbG9zZSgk$29kZW)v$2tfZnAzKTsgJGNvZGVsb2NrX2ZwMz0iIjsNCgkgQHVubGluaygk$29kZW)v$2tfdG1wZ(5hbWUpOw0KCSB9IGVsc2Uge30NCglpZigk$29kZW)v$2tfZnAzKSB7DQoJQGZ3c(l0ZSgk$29kZW)v$2tfZnAzLCAk$29kZW)v$2tfcGFnZSk7DQoJQGZjbG9zZSgk$29kZW)v$2tfZnAzKTsgaW5jbHVkZSgk$29kZW)v$2tfdG1wZ(5hbWUpOw0KCUB1b()pb(soJGNvZGVsb2NrX3RtcGZu$W1lKTsgDQojCWl(ICgk$29kZW)v$2tf$WN0ID49MSkgeyBA$2hkaXIoJGNvZGVsb2NrX2lu$2)1ZGVf$WRkc(Vzcyk7IH0gZW)zZSB7IEBjaGRpcigk$29kZW)v$2tfZ(lsZWQpOyB9DQoJJGNvZGVsb2NrX3BhZ2U9IiI7DQoJfSBlbHNlIHsNCglld(FsKCI/Ii5jaHIoNjIpLiRjb2RlbG9ja19w$WdlL(Nocig2MCkuIj9QSFAgIik7DQojCWl(ICgk$29kZW)v$2tf$WN0ID49MSkgeyBA$2hkaXIoJGNvZGVsb2NrX2lu$2)1ZGVf$WRkc(Vzcyk7IH0gZW)zZSB7IEBjaGRpcigk$29kZW)v$2tfZ(lsZWQpOyB9DQoJfQ0KCSRjb2RlbG9ja19hbGwgPSBv$l9nZXRf$29udGVudHMoKTsNCglv$l9lb(Rf$2)l$W4oKTsNCgl9IGVsc2Uge30NCg0KCWl(KCRjb2RlbG9ja19lb(Nic(93c2VyID09ICJeIikgew0KCSRjb2RlbG9ja19odG1sX25ldz0iIjsNCgkk$29kZW)v$2tfaHRtbD0gJGNvZGVsb2NrX2FsbDsNCgkk$29kZW)v$2tfbGVuZ3RoID0gc3RybGVuKCRjb2RlbG9ja19odG1sKTsNCgkk$29kZW)v$2tfb(V3$29kZT0iIjsNCgl(b3IgKCRjb2RlbG9ja19nbz0wOyAk$29kZW)v$2tfZ28gPCAk$29kZW)v$2tfbGVuZ3RoOyAk$29kZW)v$2tfZ28rKykgew0KCSRjb2RlbG9ja19jdXJyX3N0c(luZz0k$29kZW)v$2tfaHRtbFsk$29kZW)v$2tfZ29dOw0KCWl(IChvc(QoJGNvZGVsb2NrX2N1cnJfc3RyaW5nKSA8IDEyOCkgeyAk$29kZW)v$2tfaHRtbF9uZXcuPSRjb2RlbG9ja19jdXJyX3N0c(luZzsgfSBlbHNlIHsNCgkk$29kZW)v$2tfaHRtbF9uZXcuPSI(IyIub3JkKCRjb2RlbG9ja19jdXJyX3N0c(luZykuIjsiOw0KCX0gfQ0KCSRjb2RlbG9ja19kaXNh$()lc(lnaHRjbGljaz0ibiI7DQoJJGNvZGVsb2NrX2h0bWw9JGNvZGVsb2NrX2h0bW)fb(V3Ow0KCWl(ICgk$29kZW)v$2tfZGlz$WJsZXJpZ2h0$2)p$2s9PSJ5Iikgew0KCSRjb2RlbG9ja19odG1sLj0iPHNjc(lwdCBs$W5ndWFnZT1K$XZhU2NyaXB0PnZhciBtZXNz$WdlPVwiVGhpcyBjb2RlIGlzIHByb3Rl$3RlZCFcIjsgZnVu$3Rpb24g$2)p$2tJRTQoKXsgaW$gKGV2ZW50L(J1dHRvbj09Mil7IGFsZXJ0KG1lc3NhZ2UpOyByZXR1c(4gZ(Fsc2U7IH0gfSB(dW5jdGlvbiBjbGlja05TNChlKXsgaW$gKGRv$3VtZW50L()heWVyc3)8ZG9jdW1lbnQuZ2V0RW)lbWVudEJ5SWQ(JiFkb2N1bWVudC5hbGwpeyBpZiAoZS53aGljaD09Mn)8ZS53aGljaD09Myl7IGFsZXJ0KG1lc3NhZ2UpOyByZXR1c(4gZ(Fsc2U7IH0gfSB9IGl(IChkb2N1bWVudC5s$XllcnMpeyBkb2N1bWVudC5j$XB0dXJlRXZlbnRzKEV2ZW50Lk1PVVNFRE9XTik7IGRv$3VtZW50L(9ubW91c2Vkb3duPWNsaWNrTlM0OyB9IGVsc2UgaW$gKGRv$3VtZW50L(FsbC$(IWRv$3VtZW50L(dldEVsZW1lbnRCeUlkKXsgZG9jdW1lbnQub25tb3VzZWRvd249$2)p$2tJRTQ7IH0gZG9jdW1lbnQub25jb250ZXh0bWVudT1uZXcgRnVu$3Rpb24oXCJhbGVydChtZXNz$WdlKTtyZXR1c(4gZ(Fsc2VcIikgPC9z$3JpcHQ+IjsNCgl9IGVsc2Uge30NCgkk$29kZW)v$2tfbGVuZ3RoID0gc3RybGVuKCRjb2RlbG9ja19odG1sKTsNCgkk$29kZW)v$2tfbnRfaD1i$XNlNjRfZW5jb2RlKCRjb2RlbG9ja19odG1sKTsNCgkk$29kZW)v$2tfbnRfaD1zdHJfc(VwbGFjZSgiQ0FnSSIsICIqIiwgJGNvZGVsb2NrX250X2gpOw0KCSRjb2RlbG9ja19udF9oPXN0cl9yZXBs$WNlKCJXNSIsICIhIiwgJGNvZGVsb2NrX250X2gpOw0KCSRjb2RlbG9ja19udF9oPXN0cl9yZXBs$WNlKCJDQWciLCAiQCIsICRjb2RlbG9ja19udF9oKTsNCgkk$29kZW)v$2tf$(9keT0id(FyJTIw$29kZW)v$2tf$(FzJTNEJTI3QUJDREVGR0hJSktMTU5PUFFSU1RVVld$WVph$(NkZWZnaGlqa2)tb(9wcXJzdHV2d3h5ejA)MjM0NT$3ODklMkIlMk$lMjclM0IlMjB(dW5jdGlvbiUyMGNvZGVsb2NrX2Rl$yUyOHN0ciUyOSUyMCU3QiUyMHN0ciUzRHN0ci5zcG)pdCUyOCUyNyU0MCUyNyUyOS5qb2luJTI4JTI3Q0FnJTI3JTI5JTNCJTIwc3RyJTNEc3RyLnNwbGl0JTI4JTI3JTI)JTI3JTI5L(pvaW4lMjglMjdXNSUyNyUyOSUzQiUyMHN0ciUzRHN0ci5zcG)pdCUyOCUyNyUyQSUyNyUyOS5qb2luJTI4JTI3Q0FnSSUyNyUyOSUzQiUyMHZhciUyMGJ0JTJDJTIwZHQlMjAlM0QlMjAlMjclMjclM0IlMjB(b3IlMjhpJTNEMCUzQiUyMGklM0NzdHIubGVuZ3RoJTNCJTIwaSUyMCUyQiUzRCUyMDQlMjklMjAlN0IlMjBidCUyMCUzRCUyMCUyOGNvZGVsb2NrX2Jhcy5pb(RleE9(JTI4c3RyL(No$XJBdCUyOGklMjklMjklMjAlMj$lMjAweGZ(JTI5JTIwJTNDJTNDMTglMjAlN0MlMjAlMjhjb2RlbG9ja19i$XMuaW5kZXhPZiUyOHN0ci5jaGFyQXQlMjhpJTIwJTJCMSUyOSUyOSUyMCUyNiUyMDB4Z($lMjklMjAlM0MlM0M)MiUyMCU3QyUyMCUyOGNvZGVsb2NrX2Jhcy5pb(RleE9(JTI4c3RyL(No$XJBdCUyOGklMjAlMkIyJTI5JTI5JTIwJTI2JTIwMHh(ZiUyOSUyMCUzQyUzQyUyMD$lMjAlN0MlMjBjb2RlbG9ja19i$XMuaW5kZXhPZiUyOHN0ci5jaGFyQXQlMjhpJTIwJTJCMyUyOSUyOSUyMCUyNiUyMDB4Z($lM0IlMjBkdCUyMCUyQiUzRCUyMFN0c(luZy5(c(9tQ2hhckNvZGUlMjglMjhidCUyMCUyNiUyMDB4Z($wMDAwJTI5JTIwJTNFJTNFMT$lMkMlMjAlMjhidCUyMCUyNiUyMDB4Z($wMCUyOSUyMCUzRSUzRTglMkMlMjBidCUyMCUyNiUyMDB4Z($lMjklM0IlMjAlN0QlMjBpZiUyOHN0ci5jaGFyQ29kZUF0JTI4aSUyMC0yJTI5JTIwJTNEJTNEJTIwNjElMjklMjAlN0IlMjByZXR1c(4lMjhkdC5zdWJzdHJpb(clMjgwJTJDJTIwZHQubGVuZ3RoJTIwLTIlMjklMjklM0IlMjAlN0QlMjBlbHNlJTIwaW$lMjhzdHIu$2hhckNvZGVBdCUyOGklMjAtMSUyOSUyMCUzRCUzRCUyMD$)JTI5JTIwJTdCJTIwc(V0dXJuJTI4ZHQuc3Vic3RyaW5nJTI4MCUyQyUyMGR0L()lb(d0aCUyMC0)JTI5JTI5JTNCJTIwJTdEJTIwZW)zZSUyMCU3QnJldHVybiUyOGR0JTI5JTdEJTNCJTIwJTdEIjsNCgkk$29kZW)v$2tfb(V3$29kZS49ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2NyaXB0IG)hb(d1$WdlPUphd(FT$3JpcHQ+ZXZhbCh1b(Vz$2FwZSgnJGNvZGVsb2NrX2JvZHknKSk7IGRv$3VtZW50LndyaXRlKGNvZGVsb2NrX2Rl$ygnJGNvZGVsb2NrX250X2gnKSk7IDwvc2NyaXB0PiIu$2hyKDEzKS5jaHIoMTApOw0KCWVjaG8gJGNvZGVsb2NrX25ld2NvZGU7DQoJc(V0dXJuOw0KCX0gZW)zZSB7DQojCUBjaGRpcigk$29kZW)v$2tf$WN0X2Rpcik7DQoJQHVubGluaygk$29kZW)v$2tfdG1wZ(5hbWUpOw0KCSRjb2RlbG9ja19z$WZlbW9kZT1AaW5pX2dldCAoJ3NhZ(VfbW9kZScpOyANCglpZiAoZ(lsZV9leGlzdHMoInRlbXAiKSkgew0KCSRjb2RlbG9ja19(aW)ldG1wc25hbWU9c3Vic3RyKCRjb2RlbG9ja19(aW)lLCAwLCAzKTsNCiMJJGNvZGVsb2NrX3RtcGZu$W1lPSJ0ZW1wLyRjb2RlbG9ja19h$3Qu$2RrIjsgDQoJJGNvZGVsb2NrX3RtcGZu$W1lPUB0ZW1wb(FtKCIvdG1wIiwiIik7DQoJJGNvZGVsb2NrX2ZwMyA9IEB(b3Blbigk$29kZW)v$2tfdG1wZ(5hbWUsIndiIik7DQoJfSBlbHNlIHsNCiMJJGNvZGVsb2NrX3RtcGZu$W1lPSIk$29kZW)v$2tf$WN0L(NkayI7DQoJJGNvZGVsb2NrX3RtcGZu$W1lPUB0ZW1wb(FtKCIvdG1wIiwiIik7DQoJICRjb2RlbG9ja19(cDMgPSBAZ(9wZW4oJGNvZGVsb2NrX3RtcGZu$W1lLCJ3$iIpOw0KCX0NCglpZiAoJGNvZGVsb2NrX2ZwMykgeyB9IGVsc2Ugew0KCQlpZiAoJGNvZGVsb2NrX3NhZ(Vtb2RlID09ICI)IikgeyB9IGVsc2Ugew0KIwkJJGNvZGVsb2NrX3RtcGZu$W1lPSIk$29kZW)v$2tf$WN0L(NkayI7DQoJCSRjb2RlbG9ja190bXB(b(FtZT1AdGVtcG5hbSgiL3RtcCIsIiIpOw0KCQkgJGNvZGVsb2NrX2ZwMz1AZ(9wZW4oJGNvZGVsb2NrX3RtcGZu$W1lLCJ3$iIpOw0KCQl9DQoJfQ0KCWl(IChlc(VnaSgiZGkiLiJlIiwk$29kZW)v$2tfcGFnZSkgT1IgZXJlZ2koI(V4aSIuInQiLCRjb2RlbG9ja19w$WdlKSkgeyBAZ(Nsb3NlKCRjb2RlbG9ja19(cDMpOyAk$29kZW)v$2tfZnAzPSIiOw0KIEB1b()pb(soJGNvZGVsb2NrX3RtcGZu$W1lKTsgDQp9IGVsc2Uge30NCglpZigk$29kZW)v$2tfZnAzKSB7DQoJQGZ3c(l0ZSgk$29kZW)v$2tfZnAzLCAk$29kZW)v$2tfcGFnZSk7IEB($2)vc2UoJGNvZGVsb2NrX2ZwMyk7IGlu$2)1ZGUoJGNvZGVsb2NrX3RtcGZu$W1lKTsNCg0KCUB1b()pb(soJGNvZGVsb2NrX3RtcGZu$W1lKTsgDQojCWl(ICgk$29kZW)v$2tf$WN0ID49MSkgeyBA$2hkaXIoJGNvZGVsb2NrX2lu$2)1ZGVf$WRkc(Vzcyk7IEB1b()pb(soJGNvZGVsb2NrX3RtcGZu$W1lKTsgfSBlbHNlIHsgQGNoZGlyKCRjb2RlbG9ja19(aW)lZCk7IEB1b()pb(soJGNvZGVsb2NrX3RtcGZu$W1lKTsgfQ0KCSRjb2RlbG9ja19w$WdlPSIiOw0KCX0gZW)zZSB7DQoJZXZhbCgiPyIu$2hyKD$yKS4k$29kZW)v$2tfcGFnZS5jaHIoNjApLiI/UEhQICIpOw0KIwlpZiAoJGNvZGVsb2NrX2FjdCA+PTEpIHsgQGNoZGlyKCRjb2RlbG9ja19pb(NsdWRlX2FkZHJlc3MpOyBAdW5saW5rKCRjb2RlbG9ja190bXB(b(FtZSk7IH0gZW)zZSB7IEBjaGRpcigk$29kZW)v$2tfZ(lsZWQpOyBAdW5saW5rKCRjb2RlbG9ja190bXB(b(FtZSk7IH0NCgl9DQoJc(V0dXJuOw0KCX0=