Advertisement
TienKiraBN

log

Aug 8th, 2015
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 98.07 KB | None | 0 0
  1. IyEvdXNyL2Jpbi9wZXJsIC1JL3Vzci9sb2NhbC9iYW5kbWluCnVzZSBNSU1FOjpCYXNlNjQ7CiRWZXJzaW9uPSAiQ0dJLVRlbG5ldCBWZXJzaW9uIDEuNSI7CiRFZGl0UGVyc2lvbj0iPGZvbnQgc3R5bGU9J3RleHQtc2hhZG93OiAwcHggMHB4IDZweCByZ2IoMjU1LCAwLCAwKSwgMHB4IDBweCA1cHggcmdiKDI1NSwgMCwgMCksIDBweCAwcHggNXB4IHJnYigyNTUsIDAsIDApOyBjb2xvcjojZmZmZmZmOyBmb250LXdlaWdodDpib2xkOyc+TW9uS2lyYTwvZm9udD4iOwokUGFzc3dvcmQgPSAibW9ua2lyYWRnIjsJCQkKc3ViIElzX1dpbigpewokb3MgPSAmdHJpbSgkRU5WeyJTRVJWRVJfU09GVFdBUkUifSk7CglpZigkb3MgPX4gbS93aW4vaSl7CgkJcmV0dXJuIDE7Cgl9ZWxzZXsKCQlyZXR1cm4gMDsKCX0KfQokV2luTlQgPSAmSXNfV2luKCk7CQkJCiROVENtZFNlcCA9ICImIjsJCQkKJFVuaXhDbWRTZXAgPSAiOyI7CQkJCiRDb21tYW5kVGltZW91dER1cmF0aW9uID0gMTA7CiRTaG93RHluYW1pY091dHB1dCA9IDE7CiRDbWRTZXAgPSAoJFdpbk5UID8gJE5UQ21kU2VwIDogJFVuaXhDbWRTZXApOwokQ21kUHdkID0gKCRXaW5OVCA/ICJjZCIgOiAicHdkIik7CiRQYXRoU2VwID0gKCRXaW5OVCA/ICJcXCIgOiAiLyIpOwokUmVkaXJlY3RvciA9ICgkV2luTlQgPyAiIDI+JjEgMT4mMiIgOiAiIDE+JjEgMj4mMSIpOwokY29scz0gMTMwOwokcm93cz0gMjY7CnN1YiBSZWFkUGFyc2UgCnsKCWxvY2FsICgqaW4pID0gQF8gaWYgQF87Cglsb2NhbCAoJGksICRsb2MsICRrZXksICR2YWwpOwoJJE11bHRpcGFydEZvcm1EYXRhID0gJEVOVnsnQ09OVEVOVF9UWVBFJ30gPX4gL211bHRpcGFydFwvZm9ybS1kYXRhOyBib3VuZGFyeT0oLispJC87CglpZigkRU5WeydSRVFVRVNUX01FVEhPRCd9IGVxICJHRVQiKQoJewoJCSRpbiA9ICRFTlZ7J1FVRVJZX1NUUklORyd9OwoJfQoJZWxzaWYoJEVOVnsnUkVRVUVTVF9NRVRIT0QnfSBlcSAiUE9TVCIpCgl7CgkJYmlubW9kZShTVERJTikgaWYgJE11bHRpcGFydEZvcm1EYXRhICYgJFdpbk5UOwoJCXJlYWQoU1RESU4sICRpbiwgJEVOVnsnQ09OVEVOVF9MRU5HVEgnfSk7Cgl9CgkjIGhhbmRsZSBmaWxlIHVwbG9hZCBkYXRhCglpZigkRU5WeydDT05URU5UX1RZUEUnfSA9fiAvbXVsdGlwYXJ0XC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSguKykkLykKCXsKCQkkQm91bmRhcnkgPSAnLS0nLiQxOyAjIHBsZWFzZSByZWZlciB0byBSRkMxODY3IAoJCUBsaXN0ID0gc3BsaXQoLyRCb3VuZGFyeS8sICRpbik7IAoJCSRIZWFkZXJCb2R5ID0gJGxpc3RbMV07CgkJJEhlYWRlckJvZHkgPX4gL1xyXG5cclxufFxuXG4vOwoJCSRIZWFkZXIgPSAkYDsKCQkkQm9keSA9ICQnOwogCQkkQm9keSA9fiBzL1xyXG4kLy87ICMgdGhlIGxhc3QgXHJcbiB3YXMgcHV0IGluIGJ5IE5ldHNjYXBlCgkJJGlueydmaWxlZGF0YSd9ID0gJEJvZHk7CgkJJEhlYWRlciA9fiAvZmlsZW5hbWU9XCIoLispXCIvOyAKCQkkaW57J2YnfSA9ICQxOyAKCQkkaW57J2YnfSA9fiBzL1wiLy9nOwoJCSRpbnsnZid9ID1+IHMvXHMvL2c7CgoJCSMgcGFyc2UgdHJhaWxlcgoJCWZvcigkaT0yOyAkbGlzdFskaV07ICRpKyspCgkJeyAKCQkJJGxpc3RbJGldID1+IHMvXi4rbmFtZT0kLy87CgkJCSRsaXN0WyRpXSA9fiAvXCIoXHcrKVwiLzsKCQkJJGtleSA9ICQxOwoJCQkkdmFsID0gJCc7CgkJCSR2YWwgPX4gcy8oXihcclxuXHJcbnxcblxuKSl8KFxyXG4kfFxuJCkvL2c7CgkJCSR2YWwgPX4gcy8lKC4uKS9wYWNrKCJjIiwgaGV4KCQxKSkvZ2U7CgkJCSRpbnska2V5fSA9ICR2YWw7IAoJCX0KCX0KCWVsc2UgIyBzdGFuZGFyZCBwb3N0IGRhdGEgKHVybCBlbmNvZGVkLCBub3QgbXVsdGlwYXJ0KQoJewoJCUBpbiA9IHNwbGl0KC8mLywgJGluKTsKCQlmb3JlYWNoICRpICgwIC4uICQjaW4pCgkJewoJCQkkaW5bJGldID1+IHMvXCsvIC9nOwoJCQkoJGtleSwgJHZhbCkgPSBzcGxpdCgvPS8sICRpblskaV0sIDIpOwoJCQkka2V5ID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkdmFsID1+IHMvJSguLikvcGFjaygiYyIsIGhleCgkMSkpL2dlOwoJCQkkaW57JGtleX0gLj0gIlwwIiBpZiAoZGVmaW5lZCgkaW57JGtleX0pKTsKCQkJJGlueyRrZXl9IC49ICR2YWw7CgkJfQoJfQp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBmdW5jdGlvbiBFbmNvZGVEaXI6IGVuY29kZSBiYXNlNjQgUGF0aAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBFbmNvZGVEaXIKewoJbXkgJGRpciA9IHNoaWZ0OwoJJGRpciA9IHRyaW0oZW5jb2RlX2Jhc2U2NCgkZGlyKSk7CgkkZGlyID1+IHMvKFxyfFxuKS8vOwoJcmV0dXJuICRkaXI7Cn1zdWIgUHJpbnRQYWdlSGVhZGVyCnsKCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsKCW15ICRpZCA9IGBpZGAgaWYoISRXaW5OVCk7CglteSAkaW5mbyA9IGB1bmFtZSAtYWA7CglwcmludCAiQ29udGVudC10eXBlOiB0ZXh0L2h0bWxcblxuIjsKCXByaW50IDw8RU5EOwo8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPk1vbktpcmEgQ0dJIFNoZWxsPC90aXRsZT4KJEh0bWxNZXRhSGVhZGVyCjwvaGVhZD48c3R5bGU+CmJvZHl7CmZvbnQ6IDEwcHQgVmVyZGFuYTsKY29sb3I6ICNmZmY7Cn0KdHIsdGQsdGFibGUsaW5wdXQsdGV4dGFyZWEgewpCT1JERVItUklHSFQ6ICAjM2UzZTNlIDFweCBzb2xpZDsKQk9SREVSLVRPUDogICAgIzNlM2UzZSAxcHggc29saWQ7CkJPUkRFUi1MRUZUOiAgICMzZTNlM2UgMXB4IHNvbGlkOwpCT1JERVItQk9UVE9NOiAjM2UzZTNlIDFweCBzb2xpZDsKfQojZG9tYWluIHRyOmhvdmVyewpiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0Owp9CnRkIHsKY29sb3I6ICNmZmZmZmY7Cn0KLmxpc3RkaXIgdGR7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmxpc3RkaXIgdGh7Cgljb2xvcjogMDBGRjAwOwp9Ci5kaXIsLmZpbGUKewoJdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50Owp9Ci5kaXJ7Cglmb250LXNpemU6IDEwcHQ7IAoJZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KdGFibGUgewpCQUNLR1JPVU5ELUNPTE9SOiAjMTExOwp9CmlucHV0IHsKQkFDS0dST1VORC1DT0xPUjogQmxhY2s7CmNvbG9yOiAwMEZGMDA7Cn0KaW5wdXQuc3VibWl0IHsKdGV4dC1zaGFkb3c6IDBwdCAwcHQgMC4zZW0gY3lhbiwgMHB0IDBwdCAwLjNlbSBjeWFuOwpjb2xvcjogI0ZGRkZGRjsKYm9yZGVyLWNvbG9yOiAjMDA5MmZmOwp9CmNvZGUgewpib3JkZXI6IGRhc2hlZCAwcHggIzMzMzsKY29sb3I6IHdoaWxlOwp9CnJ1biB7CmJvcmRlcgkJCTogZGFzaGVkIDBweCAjMzMzOwpjb2xvcjogI0ZGMDBBQTsKfQp0ZXh0YXJlYSB7CkJBQ0tHUk9VTkQtQ09MT1I6ICMxYjFiMWI7CmZvbnQ6IEZpeGVkc3lzIGJvbGQ7CmNvbG9yOiAjMDA5MmZmOwp9CkE6bGluayB7CglDT0xPUjogI2ZmZmZmZjsgVEVYVC1ERUNPUkFUSU9OOiBub25lCn0KQTp2aXNpdGVkIHsKCUNPTE9SOiAjZmZmZmZmOyBURVhULURFQ09SQVRJT046IG5vbmUKfQpBOmhvdmVyIHsKCXRleHQtc2hhZG93OiAwcHQgMHB0IDAuM2VtIGN5YW4sIDBwdCAwcHQgMC4zZW0gY3lhbjsKCWNvbG9yOiAjRkZGRkZGOyBURVhULURFQ09SQVRJT046IG5vbmUKfQpBOmFjdGl2ZSB7Cgljb2xvcjogUmVkOyBURVhULURFQ09SQVRJT046IG5vbmUKfQoubGlzdGRpciB0cjpob3ZlcnsKCWJhY2tncm91bmQ6ICM0NDQ7Cn0KLmxpc3RkaXIgdHI6aG92ZXIgdGR7CgliYWNrZ3JvdW5kOiAjNDQ0OwoJdGV4dC1zaGFkb3c6IDBwdCAwcHQgMC4zZW0gY3lhbiwgMHB0IDBwdCAwLjNlbSBjeWFuOwoJY29sb3I6ICNGRkZGRkY7IFRFWFQtREVDT1JBVElPTjogbm9uZTsKfQoubm90bGluZXsKCWJhY2tncm91bmQ6ICMxMTE7Cn0KLmxpbmV7CgliYWNrZ3JvdW5kOiAjMjIyOwp9Cjwvc3R5bGU+CjxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPgpmdW5jdGlvbiBFbmNvZGVyKG5hbWUpCnsKCXZhciBlID0gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG5hbWUpOwoJZS52YWx1ZSA9IGJ0b2EoZS52YWx1ZSk7CglyZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjaG1vZF9mb3JtKGksZmlsZSkKewoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkZpbGVQZXJtc18iK2kpLmlubmVySFRNTD0iPGZvcm0gbmFtZT1Gb3JtUGVybXNfIiArIGkrICIgYWN0aW9uPScnIG1ldGhvZD0nUE9TVCc+PGlucHV0IGlkPXRleHRfIiArIGkgKyAiICBuYW1lPWNobW9kIHR5cGU9dGV4dCBzaXplPTUgLz48aW5wdXQgdHlwZT1zdWJtaXQgY2xhc3M9J3N1Ym1pdCcgdmFsdWU9T0s+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YSB2YWx1ZT0nZ3VpJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kIHZhbHVlPSckRW5jb2RlQ3VycmVudERpcic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT0nIitmaWxlKyInPjwvZm9ybT4iOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7Cn0KZnVuY3Rpb24gcm1fY2htb2RfZm9ybShyZXNwb25zZSxpLHBlcm1zLGZpbGUpCnsKCXJlc3BvbnNlLmlubmVySFRNTCA9ICI8c3BhbiBvbmNsaWNrPVxcXCJjaG1vZF9mb3JtKCIgKyBpICsgIiwnIisgZmlsZSsgIicpXFxcIiA+IisgcGVybXMgKyI8L3NwYW4+PC90ZD4iOwp9CmZ1bmN0aW9uIHJlbmFtZV9mb3JtKGksZmlsZSxmKQp7CglmLnJlcGxhY2UoL1xcXFwvZywiXFxcXFxcXFwiKTsKCXZhciBiYWNrPSJybV9yZW5hbWVfZm9ybSgiK2krIixcXFwiIitmaWxlKyJcXFwiLFxcXCIiK2YrIlxcXCIpOyByZXR1cm4gZmFsc2U7IjsKCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJGaWxlXyIraSkuaW5uZXJIVE1MPSI8Zm9ybSBuYW1lPUZvcm1QZXJtc18iICsgaSsgIiBhY3Rpb249JycgbWV0aG9kPSdQT1NUJz48aW5wdXQgaWQ9dGV4dF8iICsgaSArICIgIG5hbWU9cmVuYW1lIHR5cGU9dGV4dCB2YWx1ZT0gJyIrZmlsZSsiJyAvPjxpbnB1dCB0eXBlPXN1Ym1pdCBjbGFzcz0nc3VibWl0JyB2YWx1ZT1PSz48aW5wdXQgdHlwZT1zdWJtaXQgY2xhc3M9J3N1Ym1pdCcgb25jbGljaz0nIiArIGJhY2sgKyAiJyB2YWx1ZT1DYW5jZWw+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YSB2YWx1ZT0nZ3VpJz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kIHZhbHVlPSckRW5jb2RlQ3VycmVudERpcic+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT0nIitmaWxlKyInPjwvZm9ybT4iOwoJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHRfIiArIGkpLmZvY3VzKCk7Cn0KZnVuY3Rpb24gcm1fcmVuYW1lX2Zvcm0oaSxmaWxlLGYpCnsKCWlmKGY9PSdmJykKCXsKCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiRmlsZV8iK2kpLmlubmVySFRNTD0iPGEgaHJlZj0nP2E9Y29tbWFuZCZkPSRFbmNvZGVDdXJyZW50RGlyJmM9ZWRpdCUyMCIrZmlsZSsiJTIwJz4iICtmaWxlKyAiPC9hPiI7Cgl9ZWxzZQoJewoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJGaWxlXyIraSkuaW5uZXJIVE1MPSI8YSBocmVmPSc/YT1ndWkmZD0iK2YrIic+WyAiICtmaWxlKyAiIF08L2E+IjsKCX0KfQo8L3NjcmlwdD48Ym9keSBvbkxvYWQ9ImRvY3VtZW50LmYuQF8uZm9jdXMoKSIgYmdjb2xvcj0iIzBjMGMwYyIgdG9wbWFyZ2luPSIwIiBsZWZ0bWFyZ2luPSIwIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2luaGVpZ2h0PSIwIj48Y2VudGVyPjxjb2RlPgo8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIyIj48dHI+PHRkIGFsaWduPSJjZW50ZXIiIHJvd3NwYW49Mz48Yj48Zm9udCBzaXplPSIzIj4kRWRpdFBlcnNpb248L2ZvbnQ+PC9iPjwvdGQ+PHRkPgoJCSRpbmZvCjwvdGQ+PHRkPlNlcnZlciBJUDo8Zm9udCBjb2xvcj0icmVkIj4gJEVOVnsnU0VSVkVSX0FERFInfTwvZm9udD4gfCBZb3VyIElQOiA8Zm9udCBjb2xvcj0icmVkIj4kRU5WeydSRU1PVEVfQUREUid9PC9mb250PjwvdGQ+PC90cj48dHI+PHRkIGNvbHNwYW49IjIiPgo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24iPkhvbWU8L2E+IHwgCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWNvbW1hbmQmZD0kRW5jb2RlQ3VycmVudERpciI+Q29tbWFuZDwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1ndWkmZD0kRW5jb2RlQ3VycmVudERpciI+R1VJPC9hPiB8IAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT11cGxvYWQmZD0kRW5jb2RlQ3VycmVudERpciI+VXBsb2FkIEZpbGU8L2E+IHwgCjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWRvd25sb2FkJmQ9JEVuY29kZUN1cnJlbnREaXIiPlQmIzc4NDM7aSBYdSYjNzg4OTtuZyBGaWxlPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWJhY2tiaW5kIj5CYWNrICYgQmluZDwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1icnV0ZWZvcmNlciI+QnJ1dGUgRm9yY2VyPC9hPiB8CjxhIGhyZWY9IiRTY3JpcHRMb2NhdGlvbj9hPWNoZWNrbG9nIj5DaGVjayBMb2c8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9ZG9tYWluc3VzZXIiPkRvbWFpbnMvVXNlcnM8L2E+IHwKPGEgaHJlZj0iJFNjcmlwdExvY2F0aW9uP2E9Y29uZmlnbWFyaW9uIj5HZXQgQWxsIENvbmZpZzwvYT4gfAo8YSBocmVmPSIkU2NyaXB0TG9jYXRpb24/YT1sb2dvdXQiPiYjMjcyOyYjMjU5O25nIFh1JiM3ODQ1O3Q8L2E+IHwKPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9Ii4uL2Vycm9yX2xvZy5waHAiPkhlbHA8L2E+PC90ZD48L3RyPjx0cj48dGQgY29sc3Bhbj0iMiI+CiRpZAo8L3RkPjwvdHI+PC90YWJsZT48Zm9udCBpZD0iUmVzcG9uc2VEYXRhIiBjb2xvcj0iI0ZGRkZGRiIgPgoKRU5ECn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFByaW50cyB0aGUgTG9naW4gU2NyZWVuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9naW5TY3JlZW4KewoJcHJpbnQgPDxFTkQ7CjxwcmU+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpUeXBpbmdUZXh0ID0gZnVuY3Rpb24oZWxlbWVudCwgaW50ZXJ2YWwsIGN1cnNvciwgZmluaXNoZWRDYWxsYmFjaykgewogIGlmKCh0eXBlb2YgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQgPT0gInVuZGVmaW5lZCIpIHx8ICh0eXBlb2YgZWxlbWVudC5pbm5lckhUTUwgPT0gInVuZGVmaW5lZCIpKSB7CiAgICB0aGlzLnJ1bm5pbmcgPSB0cnVlOwkvLyBOZXZlciBydW4uCiAgICByZXR1cm47CiAgfQogIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7CiAgdGhpcy5maW5pc2hlZENhbGxiYWNrID0gKGZpbmlzaGVkQ2FsbGJhY2sgPyBmaW5pc2hlZENhbGxiYWNrIDogZnVuY3Rpb24oKSB7IHJldHVybjsgfSk7CiAgdGhpcy5pbnRlcnZhbCA9ICh0eXBlb2YgaW50ZXJ2YWwgPT0gInVuZGVmaW5lZCIgPyAxMDAgOiBpbnRlcnZhbCk7CiAgdGhpcy5vcmlnVGV4dCA9IHRoaXMuZWxlbWVudC5pbm5lckhUTUw7CiAgdGhpcy51bnBhcnNlZE9yaWdUZXh0ID0gdGhpcy5vcmlnVGV4dDsKICB0aGlzLmN1cnNvciA9IChjdXJzb3IgPyBjdXJzb3IgOiAiIik7CiAgdGhpcy5jdXJyZW50VGV4dCA9ICIiOwogIHRoaXMuY3VycmVudENoYXIgPSAwOwogIHRoaXMuZWxlbWVudC50eXBpbmdUZXh0ID0gdGhpczsKICBpZih0aGlzLmVsZW1lbnQuaWQgPT0gIiIpIHRoaXMuZWxlbWVudC5pZCA9ICJ0eXBpbmd0ZXh0IiArIFR5cGluZ1RleHQuY3VycmVudEluZGV4Kys7CiAgVHlwaW5nVGV4dC5hbGwucHVzaCh0aGlzKTsKICB0aGlzLnJ1bm5pbmcgPSBmYWxzZTsKICB0aGlzLmluVGFnID0gZmFsc2U7CiAgdGhpcy50YWdCdWZmZXIgPSAiIjsKICB0aGlzLmluSFRNTEVudGl0eSA9IGZhbHNlOwogIHRoaXMuSFRNTEVudGl0eUJ1ZmZlciA9ICIiOwp9ClR5cGluZ1RleHQuYWxsID0gbmV3IEFycmF5KCk7ClR5cGluZ1RleHQuY3VycmVudEluZGV4ID0gMDsKVHlwaW5nVGV4dC5ydW5BbGwgPSBmdW5jdGlvbigpIHsKICBmb3IodmFyIGkgPSAwOyBpIDwgVHlwaW5nVGV4dC5hbGwubGVuZ3RoOyBpKyspIFR5cGluZ1RleHQuYWxsW2ldLnJ1bigpOwp9ClR5cGluZ1RleHQucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uKCkgewogIGlmKHRoaXMucnVubmluZykgcmV0dXJuOwogIGlmKHR5cGVvZiB0aGlzLm9yaWdUZXh0ID09ICJ1bmRlZmluZWQiKSB7CiAgICBzZXRUaW1lb3V0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIHRoaXMuZWxlbWVudC5pZCArICInKS50eXBpbmdUZXh0LnJ1bigpIiwgdGhpcy5pbnRlcnZhbCk7CS8vIFdlIGhhdmVuJ3QgZmluaXNoZWQgbG9hZGluZyB5ZXQuICBIYXZlIHBhdGllbmNlLgogICAgcmV0dXJuOwogIH0KICBpZih0aGlzLmN1cnJlbnRUZXh0ID09ICIiKSB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MID0gIiI7Ci8vICB0aGlzLm9yaWdUZXh0ID0gdGhpcy5vcmlnVGV4dC5yZXBsYWNlKC88KFtePF0pKj4vLCAiIik7ICAgICAvLyBTdHJpcCBIVE1MIGZyb20gdGV4dC4KICBpZih0aGlzLmN1cnJlbnRDaGFyIDwgdGhpcy5vcmlnVGV4dC5sZW5ndGgpIHsKICAgIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI8IiAmJiAhdGhpcy5pblRhZykgewogICAgICB0aGlzLnRhZ0J1ZmZlciA9ICI8IjsKICAgICAgdGhpcy5pblRhZyA9IHRydWU7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpID09ICI+IiAmJiB0aGlzLmluVGFnKSB7CiAgICAgIHRoaXMudGFnQnVmZmVyICs9ICI+IjsKICAgICAgdGhpcy5pblRhZyA9IGZhbHNlOwogICAgICB0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMudGFnQnVmZmVyOwogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICAgIHRoaXMucnVuKCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSBpZih0aGlzLmluVGFnKSB7CiAgICAgIHRoaXMudGFnQnVmZmVyICs9IHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpOwogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICAgIHRoaXMucnVuKCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiJiIgJiYgIXRoaXMuaW5IVE1MRW50aXR5KSB7CiAgICAgIHRoaXMuSFRNTEVudGl0eUJ1ZmZlciA9ICImIjsKICAgICAgdGhpcy5pbkhUTUxFbnRpdHkgPSB0cnVlOwogICAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICAgIHRoaXMucnVuKCk7CiAgICAgIHJldHVybjsKICAgIH0gZWxzZSBpZih0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKSA9PSAiOyIgJiYgdGhpcy5pbkhUTUxFbnRpdHkpIHsKICAgICAgdGhpcy5IVE1MRW50aXR5QnVmZmVyICs9ICI7IjsKICAgICAgdGhpcy5pbkhUTUxFbnRpdHkgPSBmYWxzZTsKICAgICAgdGhpcy5jdXJyZW50VGV4dCArPSB0aGlzLkhUTUxFbnRpdHlCdWZmZXI7CiAgICAgIHRoaXMuY3VycmVudENoYXIrKzsKICAgICAgdGhpcy5ydW4oKTsKICAgICAgcmV0dXJuOwogICAgfSBlbHNlIGlmKHRoaXMuaW5IVE1MRW50aXR5KSB7CiAgICAgIHRoaXMuSFRNTEVudGl0eUJ1ZmZlciArPSB0aGlzLm9yaWdUZXh0LmNoYXJBdCh0aGlzLmN1cnJlbnRDaGFyKTsKICAgICAgdGhpcy5jdXJyZW50Q2hhcisrOwogICAgICB0aGlzLnJ1bigpOwogICAgICByZXR1cm47CiAgICB9IGVsc2UgewogICAgICB0aGlzLmN1cnJlbnRUZXh0ICs9IHRoaXMub3JpZ1RleHQuY2hhckF0KHRoaXMuY3VycmVudENoYXIpOwogICAgfQogICAgdGhpcy5lbGVtZW50LmlubmVySFRNTCA9IHRoaXMuY3VycmVudFRleHQ7CiAgICB0aGlzLmVsZW1lbnQuaW5uZXJIVE1MICs9ICh0aGlzLmN1cnJlbnRDaGFyIDwgdGhpcy5vcmlnVGV4dC5sZW5ndGggLSAxID8gKHR5cGVvZiB0aGlzLmN1cnNvciA9PSAiZnVuY3Rpb24iID8gdGhpcy5jdXJzb3IodGhpcy5jdXJyZW50VGV4dCkgOiB0aGlzLmN1cnNvcikgOiAiIik7CiAgICB0aGlzLmN1cnJlbnRDaGFyKys7CiAgICBzZXRUaW1lb3V0KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIiArIHRoaXMuZWxlbWVudC5pZCArICInKS50eXBpbmdUZXh0LnJ1bigpIiwgdGhpcy5pbnRlcnZhbCk7CiAgfSBlbHNlIHsKCXRoaXMuY3VycmVudFRleHQgPSAiIjsKCXRoaXMuY3VycmVudENoYXIgPSAwOwogICAgICAgIHRoaXMucnVubmluZyA9IGZhbHNlOwogICAgICAgIHRoaXMuZmluaXNoZWRDYWxsYmFjaygpOwogIH0KfQo8L3NjcmlwdD48L3ByZT48YnI+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpuZXcgVHlwaW5nVGV4dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaGFjayIpLCAzMCwgZnVuY3Rpb24oaSl7IHZhciBhciA9IG5ldyBBcnJheSgiXyIsIiIpOyByZXR1cm4gIiAiICsgYXJbaS5sZW5ndGggJSBhci5sZW5ndGhdOyB9KTsKVHlwaW5nVGV4dC5ydW5BbGwoKTsKPC9zY3JpcHQ+CkVORAp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBlbmNvZGUgaHRtbCBzcGVjaWFsIGNoYXJzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFVybEVuY29kZSgkKXsKCW15ICRzdHIgPSBzaGlmdDsKCSRzdHIgPX4gcy8oW15BLVphLXowLTldKS9zcHJpbnRmKCIlJSUwMlgiLCBvcmQoJDEpKS9zZWc7CglyZXR1cm4gJHN0cjsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQWRkIGh0bWwgc3BlY2lhbCBjaGFycwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBIdG1sU3BlY2lhbENoYXJzKCQpewoJbXkgJHRleHQgPSBzaGlmdDsKCSR0ZXh0ID1+IHMvJi8mYW1wOy9nOwoJJHRleHQgPX4gcy8iLyZxdW90Oy9nOwoJJHRleHQgPX4gcy8nLyYjMDM5Oy9nOwoJJHRleHQgPX4gcy88LyZsdDsvZzsKCSR0ZXh0ID1+IHMvPi8mZ3Q7L2c7CglyZXR1cm4gJHRleHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEFkZCBsaW5rIGZvciBkaXJlY3RvcnkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQWRkTGlua0RpcigkKQp7CglteSAkYWM9c2hpZnQ7CglteSBAZGlyPSgpOwoJaWYoJFdpbk5UKQoJewoJCUBkaXI9c3BsaXQoL1xcLywkQ3VycmVudERpcik7Cgl9ZWxzZQoJewoJCUBkaXI9c3BsaXQoIi8iLCZ0cmltKCRDdXJyZW50RGlyKSk7Cgl9CglteSAkcGF0aD0iIjsKCW15ICRyZXN1bHQ9IiI7Cglmb3JlYWNoIChAZGlyKQoJewoJCSRwYXRoIC49ICRfLiRQYXRoU2VwOwoJCSRyZXN1bHQuPSI8YSBocmVmPSc/YT0iLiRhYy4iJmQ9Ii5lbmNvZGVfYmFzZTY0KCRwYXRoKS4iJz4iLiRfLiRQYXRoU2VwLiI8L2E+IjsKCX0KCXJldHVybiAkcmVzdWx0Owp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIG1lc3NhZ2UgdGhhdCBpbmZvcm1zIHRoZSB1c2VyIG9mIGEgZmFpbGVkIGxvZ2luCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50TG9naW5GYWlsZWRNZXNzYWdlCnsKCXByaW50IDw8RU5EOwpNJiM3ODUzO3QgS2gmIzc4NDk7dTo8YnI+S2jDtG5nIMSQw7puZzxicj48YnI+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gZm9yIGxvZ2dpbmcgaW4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRMb2dpbkZvcm0KewoJcHJpbnQgPDxFTkQ7Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJsb2dpbiI+PGI+TG9naW4gOiBBZG1pbmlzdHJhdG9yPC9iPjxicj5NJiM3ODUzO3QgS2gmIzc4NDk7dTo8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InAiPjxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJNb25LaXJhIj48L2Zvcm0+CkVORAp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIGZvb3RlciBmb3IgdGhlIEhUTUwgUGFnZQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludFBhZ2VGb290ZXIKewoJcHJpbnQgIjxicj48Zm9udCBjb2xvcj1yZWQ+PTwvZm9udD48Zm9udCBjb2xvcj1yZWQ+LS0tJmd0OyogIDxmb250IGNvbG9yPSMwMDkyZmY+V2VsbGNvbWUgTW9uS2lyYTwvZm9udD4gICombHQ7LS0tPTwvZm9udD48L2NvZGU+PC9jZW50ZXI+PC9ib2R5PjwvaHRtbD4iOwp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBSZXRyZWl2ZXMgdGhlIHZhbHVlcyBvZiBhbGwgY29va2llcy4gVGhlIGNvb2tpZXMgY2FuIGJlIGFjY2Vzc2VzIHVzaW5nIHRoZQojIHZhcmlhYmxlICRDb29raWVzeycnfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBHZXRDb29raWVzCnsKCUBodHRwY29va2llcyA9IHNwbGl0KC87IC8sJEVOVnsnSFRUUF9DT09LSUUnfSk7Cglmb3JlYWNoICRjb29raWUoQGh0dHBjb29raWVzKQoJewoJCSgkaWQsICR2YWwpID0gc3BsaXQoLz0vLCAkY29va2llKTsKCQkkQ29va2llc3skaWR9ID0gJHZhbDsKCX0KfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBzY3JlZW4gd2hlbiB0aGUgdXNlciBsb2dzIG91dAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludExvZ291dFNjcmVlbgp7CglwcmludCAiQ29ubmVjdGlvbiBjbG9zZWQgYnkgZm9yZWlnbiBob3N0Ljxicj48YnI+IjsKfXN1YiBQZXJmb3JtTG9nb3V0CnsKCXByaW50ICJTZXQtQ29va2llOiBTQVZFRFBXRD07XG4iOyAjIHJlbW92ZSBwYXNzd29yZCBjb29raWUKCSZQcmludFBhZ2VIZWFkZXIoInAiKTsKCSZQcmludExvZ291dFNjcmVlbjsKCgkmUHJpbnRMb2dpblNjcmVlbjsKCSZQcmludExvZ2luRm9ybTsKCSZQcmludFBhZ2VGb290ZXI7CglleGl0Owp9CnN1YiBQZXJmb3JtTG9naW4gCnsKCWlmKCRMb2dpblBhc3N3b3JkIGVxICRQYXNzd29yZCkgIyBwYXNzd29yZCBtYXRjaGVkCgl7CgkJcHJpbnQgIlNldC1Db29raWU6IFNBVkVEUFdEPSRMb2dpblBhc3N3b3JkO1xuIjsKCQkmUHJpbnRQYWdlSGVhZGVyOwoJCXByaW50ICZMaXN0RGlyOwoJfQoJZWxzZSAjIHBhc3N3b3JkIGRpZG4ndCBtYXRjaAoJewoJCSZQcmludFBhZ2VIZWFkZXIoInAiKTsKCQkmUHJpbnRMb2dpblNjcmVlbjsKCQlpZigkTG9naW5QYXNzd29yZCBuZSAiIikgIyBzb21lIHBhc3N3b3JkIHdhcyBlbnRlcmVkCgkJewoJCQkmUHJpbnRMb2dpbkZhaWxlZE1lc3NhZ2U7CgoJCX0KCQkmUHJpbnRMb2dpbkZvcm07CgkJJlByaW50UGFnZUZvb3RlcjsKCQlleGl0OwoJfQp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBQcmludHMgdGhlIEhUTUwgZm9ybSB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBlbnRlciBjb21tYW5kcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBQcmludENvbW1hbmRMaW5lSW5wdXRGb3JtCnsKCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsKCW15ICRkaXI9ICI8c3BhbiBzdHlsZT0nZm9udDogMTFwdCBWZXJkYW5hOyBmb250LXdlaWdodDogYm9sZDsnPiIuJkFkZExpbmtEaXIoImNvbW1hbmQiKS4iPC9zcGFuPiI7CgkkUHJvbXB0ID0gJFdpbk5UID8gIiRkaXIgPiAiIDogIjxmb250IGNvbG9yPScjRkZGRkZGJz5bYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQ8L2ZvbnQ+ICI7CglyZXR1cm4gPDxFTkQ7Cjxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iIG9uU3VibWl0PSJFbmNvZGVyKCdjJykiPgoKPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImNvbW1hbmQiPgoKPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRFbmNvZGVDdXJyZW50RGlyIj4KJFByb21wdAo8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNDAiIG5hbWU9ImMiIGlkPSJjIj4KPGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IkVudGVyIj4KPC9mb3JtPgpFTkQKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gZG93bmxvYWQgZmlsZXMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUHJpbnRGaWxlRG93bmxvYWRGb3JtCnsKCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsKCW15ICRkaXIgPSAmQWRkTGlua0RpcigiZG93bmxvYWQiKTsgCgkkUHJvbXB0ID0gJFdpbk5UID8gIiRkaXIgPiAiIDogIlthZG1pblxAJFNlcnZlck5hbWUgJGRpcl1cJCAiOwoJcmV0dXJuIDw8RU5EOwo8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRFbmNvZGVDdXJyZW50RGlyIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImRvd25sb2FkIj4KJFByb21wdCBkb3dubG9hZDxicj48YnI+ClQmIzIzNDtuIEZpbGU6IDxpbnB1dCBjbGFzcz0iZmlsZSIgdHlwZT0idGV4dCIgbmFtZT0iZiIgc2l6ZT0iMzUiPjxicj48YnI+ClQmIzc4NDM7aSBYdSYjNzg4OTtuZyA8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iTW9uS2lyYSI+Cgo8L2Zvcm0+CkVORAp9CgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgUHJpbnRzIHRoZSBIVE1MIGZvcm0gdGhhdCBhbGxvd3MgdGhlIHVzZXIgdG8gdXBsb2FkIGZpbGVzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFByaW50RmlsZVVwbG9hZEZvcm0KewoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOwoJbXkgJGRpcj0gJkFkZExpbmtEaXIoInVwbG9hZCIpOwoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICJbYWRtaW5cQCRTZXJ2ZXJOYW1lICRkaXJdXCQgIjsKCXJldHVybiA8PEVORDsKPGZvcm0gbmFtZT0iZiIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+CiRQcm9tcHQgdXBsb2FkPGJyPjxicj4KVCYjMjM0O24gRmlsZTogPGlucHV0IGNsYXNzPSJmaWxlIiB0eXBlPSJmaWxlIiBuYW1lPSJmIiBzaXplPSIzNSI+PGJyPjxicj4KQyYjMjI0O2kgJiMyNzI7JiM3ODYzO3Q6ICZuYnNwOzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ibyIgaWQ9InVwIiB2YWx1ZT0ib3ZlcndyaXRlIj4KPGxhYmVsIGZvcj0idXAiPiYjMjcyOyYjMjMyOyBMJiMyMzQ7biBOJiM3ODcxO3UgRmlsZSBUciYjMjQ5O25nIE5oYXU8L2xhYmVsPjxicj48YnI+ClQmIzc4NDM7aSBMJiMyMzQ7bjombmJzcDsmbmJzcDsmbmJzcDs8aW5wdXQgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iTW9uS2lyYSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkRW5jb2RlQ3VycmVudERpciI+CjxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJoaWRkZW4iIG5hbWU9ImEiIHZhbHVlPSJ1cGxvYWQiPgo8L2Zvcm0+CkVORAp9CnN1YiBDb21tYW5kVGltZW91dAp7CglpZighJFdpbk5UKQoJewoJCWFsYXJtKDApOwoJCXJldHVybiA8PEVORDsKPC90ZXh0YXJlYT48YnI+PGZvbnQgY29sb3I9eWVsbG93PkNvbW1hbmQgZXhjZWVkZWQgbWF4aW11bSB0aW1lIG9mICRDb21tYW5kVGltZW91dER1cmF0aW9uIHNlY29uZChzKS48L2ZvbnQ+PGJyPjxmb250IHNpemU9JzYnIGNvbG9yPXJlZD5LaWxsZWQgaXQhPC9mb250PgpFTkQKCX0KfQpzdWIgUHJpbnREb3dubG9hZExpbmtQYWdlCnsKCWxvY2FsKCRGaWxlVXJsKSA9IEBfOwoJbXkgJHJlc3VsdD0iIjsKCWlmKC1lICRGaWxlVXJsKSAjIGlmIHRoZSBmaWxlIGV4aXN0cwoJewoJCSMgZW5jb2RlIHRoZSBmaWxlIGxpbmsgc28gd2UgY2FuIHNlbmQgaXQgdG8gdGhlIGJyb3dzZXIKCQkkRmlsZVVybCA9fiBzLyhbXmEtekEtWjAtOV0pLyclJy51bnBhY2soIkgqIiwkMSkvZWc7CgkJJERvd25sb2FkTGluayA9ICIkU2NyaXB0TG9jYXRpb24/YT1kb3dubG9hZCZmPSRGaWxlVXJsJm89Z28iOwoJCSRIdG1sTWV0YUhlYWRlciA9ICI8bWV0YSBIVFRQLUVRVUlWPVwiUmVmcmVzaFwiIENPTlRFTlQ9XCIxOyBVUkw9JERvd25sb2FkTGlua1wiPiI7CgkJJlByaW50UGFnZUhlYWRlcigiYyIpOwoJCSRyZXN1bHQgLj0gPDxFTkQ7ClNlbmRpbmcgRmlsZSAkVHJhbnNmZXJGaWxlLi4uPGJyPgoKSWYgdGhlIGRvd25sb2FkIGRvZXMgbm90IHN0YXJ0IGF1dG9tYXRpY2FsbHksCjxhIGhyZWY9IiREb3dubG9hZExpbmsiPkNsaWNrIEhlcmU8L2E+CkVORAoJCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07Cgl9CgllbHNlICMgZmlsZSBkb2Vzbid0IGV4aXN0Cgl7CgkJJHJlc3VsdCAuPSAiRmFpbGVkIHRvIGRvd25sb2FkICRGaWxlVXJsOiAkISI7CgkJJHJlc3VsdCAuPSAmUHJpbnRGaWxlRG93bmxvYWRGb3JtOwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgZnVuY3Rpb24gcmVhZHMgdGhlIHNwZWNpZmllZCBmaWxlIGZyb20gdGhlIGRpc2sgYW5kIHNlbmRzIGl0IHRvIHRoZQojIGJyb3dzZXIsIHNvIHRoYXQgaXQgY2FuIGJlIGRvd25sb2FkZWQgYnkgdGhlIHVzZXIuCiMgQXJndW1lbnQgMTogRnVsbHkgcXVhbGlmaWVkIHBhdGhuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIHNlbnQuCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFNlbmRGaWxlVG9Ccm93c2VyCnsKCW15ICRyZXN1bHQgPSAiIjsKCWxvY2FsKCRTZW5kRmlsZSkgPSBAXzsKCWlmKG9wZW4oU0VOREZJTEUsICRTZW5kRmlsZSkpICMgZmlsZSBvcGVuZWQgZm9yIHJlYWRpbmcKCXsKCQlpZigkV2luTlQpCgkJewoJCQliaW5tb2RlKFNFTkRGSUxFKTsKCQkJYmlubW9kZShTVERPVVQpOwoJCX0KCQkkRmlsZVNpemUgPSAoc3RhdCgkU2VuZEZpbGUpKVs3XTsKCQkoJEZpbGVuYW1lID0gJFNlbmRGaWxlKSA9fiAgbSEoW14vXlxcXSopJCE7CgkJcHJpbnQgIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC11bmtub3duXG4iOwoJCXByaW50ICJDb250ZW50LUxlbmd0aDogJEZpbGVTaXplXG4iOwoJCXByaW50ICJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0kMVxuXG4iOwoJCXByaW50IHdoaWxlKDxTRU5ERklMRT4pOwoJCWNsb3NlKFNFTkRGSUxFKTsKCQlleGl0KDEpOwoJfQoJZWxzZSAjIGZhaWxlZCB0byBvcGVuIGZpbGUKCXsKCQkkcmVzdWx0IC49ICJGYWlsZWQgdG8gZG93bmxvYWQgJFNlbmRGaWxlOiAkISI7CgkJJHJlc3VsdCAuPSZQcmludEZpbGVEb3dubG9hZEZvcm07Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciBkb3dubG9hZHMgYSBmaWxlLiBJdCBkaXNwbGF5cyBhIG1lc3NhZ2UKIyB0byB0aGUgdXNlciBhbmQgcHJvdmlkZXMgYSBsaW5rIHRocm91Z2ggd2hpY2ggdGhlIGZpbGUgY2FuIGJlIGRvd25sb2FkZWQuCiMgVGhpcyBmdW5jdGlvbiBpcyBhbHNvIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGF0IGxpbmsuIEluIHRoaXMgY2FzZSwKIyB0aGUgZmlsZSBpcyByZWFkIGFuZCBzZW50IHRvIHRoZSBicm93c2VyLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCZWdpbkRvd25sb2FkCnsKCSRFbmNvZGVDdXJyZW50RGlyID0gRW5jb2RlRGlyKCRDdXJyZW50RGlyKTsKCSMgZ2V0IGZ1bGx5IHF1YWxpZmllZCBwYXRoIG9mIHRoZSBmaWxlIHRvIGJlIGRvd25sb2FkZWQKCWlmKCgkV2luTlQgJiAoJFRyYW5zZmVyRmlsZSA9fiBtL15cXHxeLjovKSkgfAoJCSghJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXC8vKSkpICMgcGF0aCBpcyBhYnNvbHV0ZQoJewoJCSRUYXJnZXRGaWxlID0gJFRyYW5zZmVyRmlsZTsKCX0KCWVsc2UgIyBwYXRoIGlzIHJlbGF0aXZlCgl7CgkJY2hvcCgkVGFyZ2V0RmlsZSkgaWYoJFRhcmdldEZpbGUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCQkkVGFyZ2V0RmlsZSAuPSAkUGF0aFNlcC4kVHJhbnNmZXJGaWxlOwoJfQoKCWlmKCRPcHRpb25zIGVxICJnbyIpICMgd2UgaGF2ZSB0byBzZW5kIHRoZSBmaWxlCgl7CgkJJlNlbmRGaWxlVG9Ccm93c2VyKCRUYXJnZXRGaWxlKTsKCX0KCWVsc2UgIyB3ZSBoYXZlIHRvIHNlbmQgb25seSB0aGUgbGluayBwYWdlCgl7CgkJJlByaW50RG93bmxvYWRMaW5rUGFnZSgkVGFyZ2V0RmlsZSk7Cgl9Cn0KCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIHdhbnRzIHRvIHVwbG9hZCBhIGZpbGUuIElmIHRoZQojIGZpbGUgaXMgbm90IHNwZWNpZmllZCwgaXQgZGlzcGxheXMgYSBmb3JtIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgYQojIGZpbGUsIG90aGVyd2lzZSBpdCBzdGFydHMgdGhlIHVwbG9hZCBwcm9jZXNzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBVcGxvYWRGaWxlCnsKCSMgaWYgbm8gZmlsZSBpcyBzcGVjaWZpZWQsIHByaW50IHRoZSB1cGxvYWQgZm9ybSBhZ2FpbgoJaWYoJFRyYW5zZmVyRmlsZSBlcSAiIikKCXsKCQlyZXR1cm4gJlByaW50RmlsZVVwbG9hZEZvcm07CgoJfQoJbXkgJHJlc3VsdD0iIjsKCSMgc3RhcnQgdGhlIHVwbG9hZGluZyBwcm9jZXNzCgkkcmVzdWx0IC49ICJUJiM3ODQzO2kgTCYjMjM0O246ICRUcmFuc2ZlckZpbGUgVCYjNzg5OTtpICRDdXJyZW50RGlyIC4uLjxicj4iOwoKCSMgZ2V0IHRoZSBmdWxsbHkgcXVhbGlmaWVkIHBhdGhuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGNyZWF0ZWQKCWNob3AoJFRhcmdldE5hbWUpIGlmICgkVGFyZ2V0TmFtZSA9ICRDdXJyZW50RGlyKSA9fiBtL1tcXFwvXSQvOwoJJFRyYW5zZmVyRmlsZSA9fiBtIShbXi9eXFxdKikkITsKCSRUYXJnZXROYW1lIC49ICRQYXRoU2VwLiQxOwoKCSRUYXJnZXRGaWxlU2l6ZSA9IGxlbmd0aCgkaW57J2ZpbGVkYXRhJ30pOwoJIyBpZiB0aGUgZmlsZSBleGlzdHMgYW5kIHdlIGFyZSBub3Qgc3VwcG9zZWQgdG8gb3ZlcndyaXRlIGl0CglpZigtZSAkVGFyZ2V0TmFtZSAmJiAkT3B0aW9ucyBuZSAib3ZlcndyaXRlIikKCXsKCQkkcmVzdWx0IC49ICJUSCYjNzg0NTt0IEImIzc4NDE7aSwgVCYjNzg3OTtwIFRpbiBOJiMyMjQ7eSAmIzI3MjsmIzIyNzsgVCYjNzg5MTtuIFQmIzc4NDE7aS48YnI+IjsKCX0KCWVsc2UgIyBmaWxlIGlzIG5vdCBwcmVzZW50Cgl7CgkJaWYob3BlbihVUExPQURGSUxFLCAiPiRUYXJnZXROYW1lIikpCgkJewoJCQliaW5tb2RlKFVQTE9BREZJTEUpIGlmICRXaW5OVDsKCQkJcHJpbnQgVVBMT0FERklMRSAkaW57J2ZpbGVkYXRhJ307CgkJCWNsb3NlKFVQTE9BREZJTEUpOwoJCQkkcmVzdWx0IC49ICJrJiMyMzc7Y2ggVGgmIzQzMjsmIzc4OTk7YzogJFRhcmdldEZpbGVTaXplIEJ5dGVzLjxicj4iOwoJCQkkcmVzdWx0IC49ICImIzI3MjsmIzQzMjsmIzc5MDE7bmcgRCYjNzg1MTtuIEZpbGU6ICRUYXJnZXROYW1lPGJyPiI7CgkJfQoJCWVsc2UKCQl7CgkJCSRyZXN1bHQgLj0gIlRoJiM3ODQ1O3QgQiYjNzg0MTtpOiAkITxicj4iOwoJCX0KCX0KCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUuIElmIHRoZQojIGZpbGVuYW1lIGlzIG5vdCBzcGVjaWZpZWQsIGl0IGRpc3BsYXlzIGEgZm9ybSBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEKIyBmaWxlLCBvdGhlcndpc2UgaXQgZGlzcGxheXMgYSBtZXNzYWdlIHRvIHRoZSB1c2VyIGFuZCBwcm92aWRlcyBhIGxpbmsKIyB0aHJvdWdoICB3aGljaCB0aGUgZmlsZSBjYW4gYmUgZG93bmxvYWRlZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRG93bmxvYWRGaWxlCnsKCSMgaWYgbm8gZmlsZSBpcyBzcGVjaWZpZWQsIHByaW50IHRoZSBkb3dubG9hZCBmb3JtIGFnYWluCglpZigkVHJhbnNmZXJGaWxlIGVxICIiKQoJewoJCSZQcmludFBhZ2VIZWFkZXIoImYiKTsKCQlyZXR1cm4gJlByaW50RmlsZURvd25sb2FkRm9ybTsKCX0KCQoJIyBnZXQgZnVsbHkgcXVhbGlmaWVkIHBhdGggb2YgdGhlIGZpbGUgdG8gYmUgZG93bmxvYWRlZAoJaWYoKCRXaW5OVCAmICgkVHJhbnNmZXJGaWxlID1+IG0vXlxcfF4uOi8pKSB8ICghJFdpbk5UICYgKCRUcmFuc2ZlckZpbGUgPX4gbS9eXC8vKSkpICMgcGF0aCBpcyBhYnNvbHV0ZQoJewoJCSRUYXJnZXRGaWxlID0gJFRyYW5zZmVyRmlsZTsKCX0KCWVsc2UgIyBwYXRoIGlzIHJlbGF0aXZlCgl7CgkJY2hvcCgkVGFyZ2V0RmlsZSkgaWYoJFRhcmdldEZpbGUgPSAkQ3VycmVudERpcikgPX4gbS9bXFxcL10kLzsKCQkkVGFyZ2V0RmlsZSAuPSAkUGF0aFNlcC4kVHJhbnNmZXJGaWxlOwoJfQoKCWlmKCRPcHRpb25zIGVxICJnbyIpICMgd2UgaGF2ZSB0byBzZW5kIHRoZSBmaWxlCgl7CgkJcmV0dXJuICZTZW5kRmlsZVRvQnJvd3NlcigkVGFyZ2V0RmlsZSk7Cgl9CgllbHNlICMgd2UgaGF2ZSB0byBzZW5kIG9ubHkgdGhlIGxpbmsgcGFnZQoJewoJCXJldHVybiAmUHJpbnREb3dubG9hZExpbmtQYWdlKCRUYXJnZXRGaWxlKTsKCX0KfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gZXhlY3V0ZSBjb21tYW5kcy4gSXQgZGlzcGxheXMgdGhlIG91dHB1dCBvZiB0aGUKIyBjb21tYW5kIGFuZCBhbGxvd3MgdGhlIHVzZXIgdG8gZW50ZXIgYW5vdGhlciBjb21tYW5kLiBUaGUgY2hhbmdlIGRpcmVjdG9yeQojIGNvbW1hbmQgaXMgaGFuZGxlZCBkaWZmZXJlbnRseS4gSW4gdGhpcyBjYXNlLCB0aGUgbmV3IGRpcmVjdG9yeSBpcyBzdG9yZWQgaW4KIyBhbiBpbnRlcm5hbCB2YXJpYWJsZSBhbmQgaXMgdXNlZCBlYWNoIHRpbWUgYSBjb21tYW5kIGhhcyB0byBiZSBleGVjdXRlZC4gVGhlCiMgb3V0cHV0IG9mIHRoZSBjaGFuZ2UgZGlyZWN0b3J5IGNvbW1hbmQgaXMgbm90IGRpc3BsYXllZCB0byB0aGUgdXNlcnMKIyB0aGVyZWZvcmUgZXJyb3IgbWVzc2FnZXMgY2Fubm90IGJlIGRpc3BsYXllZC4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgRXhlY3V0ZUNvbW1hbmQKewoJJEN1cnJlbnREaXIgPSAmVHJpbVNsYXNoZXMoJEN1cnJlbnREaXIpOwoJbXkgJHJlc3VsdD0iIjsKCWlmKCRSdW5Db21tYW5kID1+IG0vXlxzKmNkXHMrKC4rKS8pICMgaXQgaXMgYSBjaGFuZ2UgZGlyIGNvbW1hbmQKCXsKCQkjIHdlIGNoYW5nZSB0aGUgZGlyZWN0b3J5IGludGVybmFsbHkuIFRoZSBvdXRwdXQgb2YgdGhlCgkJIyBjb21tYW5kIGlzIG5vdCBkaXNwbGF5ZWQuCgkJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiJjZCAkMSIuJENtZFNlcC4kQ21kUHdkOwoJCWNob21wKCRDdXJyZW50RGlyID0gYCRDb21tYW5kYCk7CgkJJHJlc3VsdCAuPSAmUHJpbnRDb21tYW5kTGluZUlucHV0Rm9ybTsKCgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZCA8L3J1bj48YnI+PHRleHRhcmVhIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJIyB4dWF0IHRob25nIHRpbiBraGkgY2h1eWVuIGRlbiAxIHRodSBtdWMgbmFvIGRvIQoJCSRSdW5Db21tYW5kPSAkV2luTlQ/ImRpciI6ImRpciAtbGlhIjsKCQkkcmVzdWx0IC49ICZSdW5DbWQ7Cgl9ZWxzaWYoJFJ1bkNvbW1hbmQgPX4gbS9eXHMqZWRpdFxzKyguKykvKQoJewoJCSRyZXN1bHQgLj0gICZTYXZlRmlsZUZvcm07Cgl9ZWxzZQoJewoJCSRyZXN1bHQgLj0gJlByaW50Q29tbWFuZExpbmVJbnB1dEZvcm07CgkJJHJlc3VsdCAuPSAiQ29tbWFuZDogPHJ1bj4kUnVuQ29tbWFuZDwvcnVuPjxicj48dGV4dGFyZWEgaWQ9J2RhdGEnIGNvbHM9JyRjb2xzJyByb3dzPSckcm93cycgc3BlbGxjaGVjaz0nZmFsc2UnPiI7CgkJJHJlc3VsdCAuPSZSdW5DbWQ7Cgl9CgkkcmVzdWx0IC49ICAiPC90ZXh0YXJlYT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIHJ1biBjb21tYW5kCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIFJ1bkNtZAp7CglteSAkcmVzdWx0PSIiOwoJJENvbW1hbmQgPSAiY2QgXCIkQ3VycmVudERpclwiIi4kQ21kU2VwLiRSdW5Db21tYW5kLiRSZWRpcmVjdG9yOwoJaWYoISRXaW5OVCkKCXsKCQkkU0lHeydBTFJNJ30gPSBcJkNvbW1hbmRUaW1lb3V0OwoJCWFsYXJtKCRDb21tYW5kVGltZW91dER1cmF0aW9uKTsKCX0KCWlmKCRTaG93RHluYW1pY091dHB1dCkgIyBzaG93IG91dHB1dCBhcyBpdCBpcyBnZW5lcmF0ZWQKCXsKCQkkfD0xOwoJCSRDb21tYW5kIC49ICIgfCI7CgkJb3BlbihDb21tYW5kT3V0cHV0LCAkQ29tbWFuZCk7CgkJd2hpbGUoPENvbW1hbmRPdXRwdXQ+KQoJCXsKCQkJJF8gPX4gcy8oXG58XHJcbikkLy87CgkJCSRyZXN1bHQgLj0gJkh0bWxTcGVjaWFsQ2hhcnMoIiRfXG4iKTsKCQl9CgkJJHw9MDsKCX0KCWVsc2UgIyBzaG93IG91dHB1dCBhZnRlciBjb21tYW5kIGNvbXBsZXRlcwoJewoJCSRyZXN1bHQgLj0gJkh0bWxTcGVjaWFsQ2hhcnMoJENvbW1hbmQpOwoJfQoJaWYoISRXaW5OVCkKCXsKCQlhbGFybSgwKTsKCX0KCXJldHVybiAkcmVzdWx0Owp9CiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBGb3JtIFNhdmUgRmlsZSAKIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpzdWIgU2F2ZUZpbGVGb3JtCnsKCW15ICRyZXN1bHQgPSIiOwoJJEVuY29kZUN1cnJlbnREaXIgPSBFbmNvZGVEaXIoJEN1cnJlbnREaXIpOwoJc3Vic3RyKCRSdW5Db21tYW5kLDAsNSk9IiI7CglteSAkZmlsZT0mdHJpbSgkUnVuQ29tbWFuZCk7Cgkkc2F2ZT0nPGJyPjxpbnB1dCBuYW1lPSJhIiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJzYXZlIiBjbGFzcz0ic3VibWl0IiA+JzsKCSRGaWxlPSRDdXJyZW50RGlyLiRQYXRoU2VwLiRSdW5Db21tYW5kOwoJbXkgJGRpcj0iPHNwYW4gc3R5bGU9J2ZvbnQ6IDExcHQgVmVyZGFuYTsgZm9udC13ZWlnaHQ6IGJvbGQ7Jz4iLiZBZGRMaW5rRGlyKCJndWkiKS4iPC9zcGFuPiI7CglpZigtdyAkRmlsZSkKCXsKCQkkcm93cz0iMjMiCgl9ZWxzZQoJewoJCSRtc2c9Ijxicj48Zm9udCBzdHlsZT0nY29sb3I6IHllbGxvdzsnID4gQ2Fubid0IHdyaXRlIGZpbGUhPGZvbnQ+PGJyPiI7CgkJJHJvd3M9IjIwIgoJfQoJJFByb21wdCA9ICRXaW5OVCA/ICIkZGlyID4gIiA6ICI8Zm9udCBjb2xvcj0nI0ZGRkZGRic+W2FkbWluXEAkU2VydmVyTmFtZSAkZGlyXVwkPC9mb250PiAiOwoJJFJ1bkNvbW1hbmQgPSAiZWRpdCAkUnVuQ29tbWFuZCI7CgkkcmVzdWx0IC49ICA8PEVORDsKCTxmb3JtIG5hbWU9ImYiIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIkU2NyaXB0TG9jYXRpb24iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImQiIHZhbHVlPSIkRW5jb2RlQ3VycmVudERpciI+CgkkUHJvbXB0CjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI0MCIgbmFtZT0iYyI+Cgk8aW5wdXQgbmFtZT0icyIgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iRW50ZXIiPjxicj5Db21tYW5kOiA8cnVuPiAkUnVuQ29tbWFuZCA8L3J1bj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZpbGUiIHZhbHVlPSIkZmlsZSIgPiAkc2F2ZSA8YnI+ICRtc2c8YnI+PHRleHRhcmVhIGlkPSJkYXRhIiBuYW1lPSJkYXRhIiBjb2xzPSIkY29scyIgcm93cz0iJHJvd3MiIHNwZWxsY2hlY2s9ImZhbHNlIj4KRU5ECgkKCSRyZXN1bHQgLj0gJkh0bWxTcGVjaWFsQ2hhcnMoJkZpbGVPcGVuKCRGaWxlLDApKTsKCSRyZXN1bHQgLj0gIjwvdGV4dGFyZWE+IjsKCSRyZXN1bHQgLj0gIjwvZm9ybT4iOwoJcmV0dXJuICRyZXN1bHQ7Cn0KIz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIEZpbGUgT3BlbgojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnN1YiBGaWxlT3BlbigkKXsKCW15ICRmaWxlID0gc2hpZnQ7CglteSAkYmluYXJ5ID0gc2hpZnQ7CglteSAkcmVzdWx0ID0gIiI7CglteSAkbiA9ICIiOwoJaWYoLWYgJGZpbGUpewoJCWlmKG9wZW4oRklMRSwkZmlsZSkpewoJCQlpZigkYmluYXJ5KXsKCQkJCWJpbm1vZGUgRklMRTsKCQkJfQoJCQl3aGlsZSAoKCRuID0gcmVhZCBGSUxFLCAkZGF0YSwgMTAyNCkgIT0gMCkgewoJCQkJJHJlc3VsdCAuPSAkZGF0YTsKCQkJfQoJCQljbG9zZShGSUxFKTsKCQl9Cgl9ZWxzZQoJewoJCXJldHVybiAiTm90J3MgYSBGaWxlISI7Cgl9CglyZXR1cm4gJHJlc3VsdDsKfQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgU2F2ZSBGaWxlCiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0Kc3ViIFNhdmVGaWxlKCQpCnsKCW15ICREYXRhPSBzaGlmdCA7CglteSAkRmlsZT0gc2hpZnQ7CgkkRmlsZT0kQ3VycmVudERpci4kUGF0aFNlcC4kRmlsZTsKCWlmKG9wZW4oRklMRSwgIj4kRmlsZSIpKQoJewoJCWJpbm1vZGUgRklMRTsKCQlwcmludCBGSUxFICREYXRhOwoJCWNsb3NlIEZJTEU7CgkJcmV0dXJuIDE7Cgl9ZWxzZQoJewoJCXJldHVybiAwOwoJfQp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCcnV0ZSBGb3JjZXIgRm9ybQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCcnV0ZUZvcmNlckZvcm0KewoJbXkgJHJlc3VsdD0iIjsKCSRyZXN1bHQgLj0gPDxFTkQ7Cjx0YWJsZT48dHI+Cjx0ZCBjb2xzcGFuPSIyIiBhbGlnbj0iY2VudGVyIj4jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM8YnI+U2ltcGxlIEZUUCBicnV0ZSBmb3JjZXI8YnI+Tm90ZTogT25seSBzY2FuIGZyb20gMSB0byAzIHVzZXIgOi1TPGJyPiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo8Zm9ybSBuYW1lPSJmIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iJFNjcmlwdExvY2F0aW9uIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYnJ1dGVmb3JjZXIiLz48L3RkPjwvdHI+PHRyPjx0ZD5Vc2VyOjxicj48dGV4dGFyZWEgcm93cz0iMTgiIGNvbHM9IjMwIiBuYW1lPSJ1c2VyIj4KRU5ECmNob3AoJHJlc3VsdCAuPSBgbGVzcyAvZXRjL3Bhc3N3ZCB8IGN1dCAtZDogLWYxYCk7CiRyZXN1bHQgLj0gPDwnRU5EJzsKPC90ZXh0YXJlYT48L3RkPjx0ZD5QYXNzOjxicj48dGV4dGFyZWEgcm93cz0iMTgiIGNvbHM9IjMwIiBuYW1lPSJwYXNzIj4xMjNwYXNzCjEyMyFAIwoxMjNhZG1pbgoxMjNhYmMKMTIzNDU2YWRtaW4KMTIzNDU1NDMyMQoxMjM0NDMyMQpwYXNzMTIzCmFkbWluCmFkbWluY3AKYWRtaW5pc3RyYXRvcgptYXRraGF1CnBhc3NhZG1pbgpwQHNzd29yZApwQHNzdzByZApwYXNzd29yZAoxMjM0NTYKMTIzNDU2NwoxMjM0NTY3OAoxMjM0NTY3ODkKMTIzNDU2Nzg5MAoxMTExMTEKMDAwMDAwCjIyMjIyMgozMzMzMzMKNDQ0NDQ0CjU1NTU1NQo2NjY2NjYKNzc3Nzc3Cjg4ODg4OAo5OTk5OTkKMTIzMTIzCjIzNDIzNAozNDUzNDUKNDU2NDU2CjU2NzU2Nwo2Nzg2NzgKNzg5Nzg5CjEyMzMyMQo0NTY2NTQKNjU0MzIxCjc2NTQzMjEKODc2NTQzMjEKOTg3NjU0MzIxCjA5ODc2NTQzMjEKYWRtaW4xMjMKYWRtaW4xMjM0NTYKYWJjZGVmCmFiY2FiYwohQCMhQCMKIUAjJCVeCiFAIyQlXiYqKAohQCMkJCNAIQphYmMxMjMKYW5oeWV1ZW0KaWxvdmV5b3UKPC90ZXh0YXJlYT48L3RkPjwvdHI+PHRyPjx0ZCBjb2xzcGFuPSIyIiBhbGlnbj0iY2VudGVyIj5TbGVlcDo8c2VsZWN0IG5hbWU9InNsZWVwIj48b3B0aW9uPjA8L29wdGlvbj48b3B0aW9uPjE8L29wdGlvbj48b3B0aW9uPjI8L29wdGlvbj48b3B0aW9uPjM8L29wdGlvbj48L3NlbGVjdD4gPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9InN1Ym1pdCIgdmFsdWU9Ik1vbktpcmEiLz48L3RkPjwvdHI+PC9mb3JtPjwvdGFibGU+CkVORApyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQnJ1dGUgRm9yY2VyCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kc3ViIEJydXRlRm9yY2VyCnsKCW15ICRyZXN1bHQ9IiI7CgkkU2VydmVyPSRFTlZ7J1NFUlZFUl9BRERSJ307CglpZigkaW57J3VzZXInfSBlcSAiIikKCXsKCQkkcmVzdWx0IC49ICZCcnV0ZUZvcmNlckZvcm07Cgl9ZWxzZQoJewoJCXVzZSBOZXQ6OkZUUDsgCgkJQHVzZXI9IHNwbGl0KC9cbi8sICRpbnsndXNlcid9KTsKCQlAcGFzcz0gc3BsaXQoL1xuLywgJGlueydwYXNzJ30pOwoJCWNob21wKEB1c2VyKTsKCQljaG9tcChAcGFzcyk7CgkJJHJlc3VsdCAuPSAiPGJyPjxicj5bK10gVHJ5aW5nIGJydXRlICRTZXJ2ZXJOYW1lPGJyPj09PT09PT09PT09PT09PT09PT09Pj4+Pj4+Pj4+Pj4+PDw8PDw8PDw8PD09PT09PT09PT09PT09PT09PT09PGJyPjxicj5cbiI7CgkJZm9yZWFjaCAkdXNlcm5hbWUgKEB1c2VyKQoJCXsKCQkJaWYoJHVzZXJuYW1lIG5lICIiKQoJCQl7CgkJCQlmb3JlYWNoICRwYXNzd29yZCAoQHBhc3MpCgkJCQl7CgkJCQkJJGZ0cCA9IE5ldDo6RlRQLT5uZXcoJFNlcnZlcikgb3IgZGllICJDb3VsZCBub3QgY29ubmVjdCB0byAkU2VydmVyTmFtZVxuIjsgCgkJCQkJaWYoJGZ0cC0+bG9naW4oIiR1c2VybmFtZSIsIiRwYXNzd29yZCIpKQoJCQkJCXsKCQkJCQkJJHJlc3VsdCAuPSAiPGEgdGFyZ2V0PSdfYmxhbmsnIGhyZWY9J2Z0cDovLyR1c2VybmFtZTokcGFzc3dvcmRcQCRTZXJ2ZXInPlsrXSBmdHA6Ly8kdXNlcm5hbWU6JHBhc3N3b3JkXEAkU2VydmVyPC9hPjxicj5cbiI7CgkJCQkJCSRmdHAtPnF1aXQoKTsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJCWlmKCRpbnsnc2xlZXAnfSBuZSAiMCIpCgkJCQkJewoJCQkJCQlzbGVlcChpbnQoJGlueydzbGVlcCd9KSAqIDEwMDApOwoJCQkJCX0KCQkJCQkkZnRwLT5xdWl0KCk7CgkJCQl9CgkJCX0KCQl9CgkJJHJlc3VsdCAuPSAiXG48YnI+PT09PT09PT09PT4+Pj4+Pj4+Pj4gRmluaXNoZWQgPDw8PDw8PDw8PD09PT09PT09PT08YnI+XG4iOwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIEJhY2tjb25uZWN0IEZvcm0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgQmFja0JpbmRGb3JtCnsKcmV0dXJuIDw8RU5EOwo8YnI+PGJyPjx0YWJsZT48dHI+PGZvcm0gbmFtZT0iZiIgbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+PHRkPkJhY2tDb25uZWN0OiA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iYmFja2JpbmQiPjwvdGQ+PHRkPiBIb3N0OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIG5hbWU9ImNsaWVudGFkZHIiIHZhbHVlPSIkRU5WeydSRU1PVEVfQUREUid9Ij4KUG9ydDogPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjYiIG5hbWU9ImNsaWVudHBvcnQiIHZhbHVlPSIxNzExIiBvbmtleXVwPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmEnKS5pbm5lckhUTUw9dGhpcy52YWx1ZTsiPjwvdGQ+Cjx0ZD48aW5wdXQgbmFtZT0icyIgY2xhc3M9InN1Ym1pdCIgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJNb25LaXJhIj48L3RkPjwvZm9ybT48L3RyPjx0cj48dGQgY29sc3Bhbj0zPjxmb250IGNvbG9yPSNGRkZGRkY+WytdIENsaWVudCBsaXN0ZW4gYmVmb3JlIGNvbm5lY3QgYmFjayEKPGJyPlsrXSBUcnkgY2hlY2sgeW91ciBQb3J0IHdpdGggPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHA6Ly93d3cuY2FueW91c2VlbWUub3JnLyI+aHR0cDovL3d3dy5jYW55b3VzZWVtZS5vcmcvPC9hPjxicj5bK10gQ2xpZW50IGxpc3RlbiB3aXRoIGNvbW1hbmQ6IDxydW4+bmMgLXZ2IC1sIC1wIDxzcGFuIGlkPSJiYSI+ODA8L3NwYW4+PC9ydW4+PC9mb250PjwvdGQ+CjwvdHI+PC90YWJsZT48YnI+PGJyPjx0YWJsZT48dHI+PGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249IiRTY3JpcHRMb2NhdGlvbiI+PHRkPkJpbmQgUG9ydDogPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYSIgdmFsdWU9ImJhY2tiaW5kIj48L3RkPgo8dGQ+IFBvcnQ6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxNSIgbmFtZT0iY2xpZW50cG9ydCIgdmFsdWU9IjE0MTIiIG9ua2V5dXA9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaScpLmlubmVySFRNTD10aGlzLnZhbHVlOyI+Ck0mIzc4NTM7dCBLaCYjNzg0OTt1OiA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iMTIiIG5hbWU9ImJpbmRwYXNzIiB2YWx1ZT0iTW9uS2lyYSI+PC90ZD4KPHRkPjxpbnB1dCBuYW1lPSJzIiBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9Ik1vbktpcmEiPjwvdGQ+PC9mb3JtPjwvdHI+PHRyPjx0ZCBjb2xzcGFuPTM+PGZvbnQgY29sb3I9I0ZGRkZGRj5bK10gVGVzdGluZyAuLi4uCjxicj5bK10gVHJ5IGNvbW1hbmQ6IDxydW4+bmMgJEVOVnsnU0VSVkVSX0FERFInfSA8c3BhbiBpZD0iYmkiPjE0MTI8L3NwYW4+PC9ydW4+PC9mb250PjwvdGQ+CjwvdHI+PC90YWJsZT48YnIvPjxiPjxhIHN0eWxlPSJjb2xvcjojRkZGNTAwOyIgaHJlZj0iaHR0cDovL3d3dy5tZWRpYWZpcmUuY29tL2Rvd25sb2FkL3lkZnRpcDd2cGdjNTRhYi9uZXRjYXQrLStNb25raXJhLnJhciIgdGFyZ2V0PSJfYmxhbmsiPlThuqNpIFbhu4EgTmV0Q2F0PC9hPjwvYj48YnI+CkVORAp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCYWNrY29ubmVjdCB1c2UgcGVybAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBCYWNrQmluZAp7Cgl1c2UgU29ja2V0OwkKCSRiYWNrcGVybD0iSXlFdmRYTnlMMkpwYmk5d1pYSnNDblZ6WlNCVGIyTnJaWFE3Q2lSamJXUTlJQ0pzZVc1NElqc0tKSE41YzNSbGJUMGdKMlZqYUc4Z0lpSTdDbVZqYUc4Z0lsc3JYU0JOWVhKcGIyNHdNREVnUW1GamF5QkRiMjV1WldOMElGUm9ZVzVvSUVOdmJtY2dJanNLWldOb2J5QWlXeXRkSUVaQ09pQm9kSFJ3Y3pvdkwzZDNkeTVtWVdObFltOXZheTVqYjIwdlVHRnlkSGt1VFdGeWFXOXVNREF4SWpzS1pXTm9ieUFpV3l0ZElFMWhhV3c2SUUxeUxrMWhjbWx2YmpBd01VQm5iV0ZwYkM1amIyMGlPMlZqYUc4Z0lpSTdDbVZqYUc4Z0lsc3RYU0JWYm1GdFpTQXRZVG9pTzJWamFHOGdJbUIxYm1GdFpTQXRZV0FpTzJWamFHOGdJaUk3Q21WamFHOGdJbHN0WFNCcFpEb2lPMlZqYUc4Z0ltQnBaR0FpTzJWamFHOGdJaUk3WldOb2J5QWlXeTFkSUhCM1pEb2lPd3BsWTJodklDSmdjSGRrWUNJN1pXTm9ieUFpSWp0bFkyaHZJQ0piSzEwZ1EyOXRiV0Z1WkNCTllYSnBiMjR3TURFK0lqdGxZMmh2SWlJN0wySnBiaTl6YUNjN0NpUXdQU1JqYldRN0NpUjBZWEpuWlhROUpFRlNSMVpiTUYwN0NpUndiM0owUFNSQlVrZFdXekZkT3dva2FXRmtaSEk5YVc1bGRGOWhkRzl1S0NSMFlYSm5aWFFwSUh4OElHUnBaU2dpUlhKeWIzSTZJQ1FoWEc0aUtUc0tKSEJoWkdSeVBYTnZZMnRoWkdSeVgybHVLQ1J3YjNKMExDQWthV0ZrWkhJcElIeDhJR1JwWlNnaVJYSnliM0k2SUNRaFhHNGlLVHNLSkhCeWIzUnZQV2RsZEhCeWIzUnZZbmx1WVcxbEtDZDBZM0FuS1RzS2MyOWphMlYwS0ZOUFEwdEZWQ3dnVUVaZlNVNUZWQ3dnVTA5RFMxOVRWRkpGUVUwc0lDUndjbTkwYnlrZ2ZId2daR2xsS0NKRmNuSnZjam9nSkNGY2JpSXBPd3BqYjI1dVpXTjBLRk5QUTB0RlZDd2dKSEJoWkdSeUtTQjhmQ0JrYVdVb0lrVnljbTl5T2lBa0lWeHVJaWs3Q205d1pXNG9VMVJFU1U0c0lDSStKbE5QUTB0RlZDSXBPd3B2Y0dWdUtGTlVSRTlWVkN3Z0lqNG1VMDlEUzBWVUlpazdDbTl3Wlc0b1UxUkVSVkpTTENBaVBpWlRUME5MUlZRaUtUc0tjM2x6ZEdWdEtDUnplWE4wWlcwcE93cGpiRzl6WlNoVFZFUkpUaWs3Q21Oc2IzTmxLRk5VUkU5VlZDazdDbU5zYjNObEtGTlVSRVZTVWlrNyI7CgkkYmluZHBlcmw9Ikl5RXZkWE55TDJKcGJpOXdaWEpzRFFwMWMyVWdVMjlqYTJWME93MEtKRUZTUjBNOVFFRlNSMVk3RFFva2NHOXlkQWs5SUNSQlVrZFdXekJkT3cwS0pIQnliM1J2Q1QwZ1oyVjBjSEp2ZEc5aWVXNWhiV1VvSjNSamNDY3BPdzBLSkZOb1pXeHNDVDBnSWk5aWFXNHZZbUZ6YUNJN0RRcHpiMk5yWlhRb1UwVlNWa1ZTTENCUVJsOUpUa1ZVTENCVFQwTkxYMU5VVWtWQlRTd2dKSEJ5YjNSdktXOXlJR1JwWlNBaWMyOWphMlYwT2lRaElqc05Dbk5sZEhOdlkydHZjSFFvVTBWU1ZrVlNMQ0JUVDB4ZlUwOURTMFZVTENCVFQxOVNSVlZUUlVGRVJGSXNJSEJoWTJzb0ltd2lMQ0F4S1NsdmNpQmthV1VnSW5ObGRITnZZMnR2Y0hRNklDUWhJanNOQ21KcGJtUW9VMFZTVmtWU0xDQnpiMk5yWVdSa2NsOXBiaWdrY0c5eWRDd2dTVTVCUkVSU1gwRk9XU2twYjNJZ1pHbGxJQ0ppYVc1a09pQWtJU0k3RFFwc2FYTjBaVzRvVTBWU1ZrVlNMQ0JUVDAxQldFTlBUazRwQ1FsdmNpQmthV1VnSW14cGMzUmxiam9nSkNFaU93MEtabTl5S0RzZ0pIQmhaR1J5SUQwZ1lXTmpaWEIwS0VOTVNVVk9WQ3dnVTBWU1ZrVlNLVHNnWTJ4dmMyVWdRMHhKUlU1VUtRMEtldzBLQ1c5d1pXNG9VMVJFU1U0c0lDSStKa05NU1VWT1ZDSXBPdzBLQ1c5d1pXNG9VMVJFVDFWVUxDQWlQaVpEVEVsRlRsUWlLVHNOQ2dsdmNHVnVLRk5VUkVWU1Vpd2dJajRtUTB4SlJVNVVJaWs3RFFvSmMzbHpkR1Z0S0NKMWJuTmxkQ0JJU1ZOVVJrbE1SVHNnZFc1elpYUWdVMEZXUlVoSlUxUWdPMlZqYUc4Z0oxc3JYU0JUZVhOMFpXMXBibVp2T2lBbk95QjFibUZ0WlNBdFlUdGxZMmh2TzJWamFHOGdKMXNyWFNCVmMyVnlhVzVtYnpvZ0p6c2dhV1E3WldOb2J6dGxZMmh2SUNkYksxMGdSR2x5WldOMGIzSjVPaUFuT3lCd2QyUTdaV05vYnpzZ1pXTm9ieUFuV3l0ZElGTm9aV3hzT2lBbk95UlRhR1ZzYkNJcE93MEtDV05zYjNObEtGTlVSRWxPS1RzTkNnbGpiRzl6WlNoVFZFUlBWVlFwT3cwS0NXTnNiM05sS0ZOVVJFVlNVaWs3RFFwOURRbz0iOwoJJENsaWVudEFkZHIgPSAkaW57J2NsaWVudGFkZHInfTsKCSRDbGllbnRQb3J0ID0gaW50KCRpbnsnY2xpZW50cG9ydCd9KTsKCWlmKCRDbGllbnRQb3J0IGVxIDApCgl7CgkJcmV0dXJuICZCYWNrQmluZEZvcm07Cgl9ZWxzaWYoISRDbGllbnRBZGRyIGVxICIiKQoJewoJCSREYXRhPWRlY29kZV9iYXNlNjQoJGJhY2twZXJsKTsKCQlpZigtdyAiL3RtcC8iKQoJCXsKCQkJJEZpbGU9Ii90bXAvYmFja2Nvbm5lY3QucGwiOwkKCQl9ZWxzZQoJCXsKCQkJJEZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuImJhY2tjb25uZWN0LnBsIjsKCQl9CgkJb3BlbihGSUxFLCAiPiRGaWxlIik7CgkJcHJpbnQgRklMRSAkRGF0YTsKCQljbG9zZSBGSUxFOwoJCXN5c3RlbSgicGVybCAkRmlsZSAkQ2xpZW50QWRkciAkQ2xpZW50UG9ydCIpOwoJCXVubGluaygkRmlsZSk7CgkJZXhpdCAwOwoJfWVsc2UKCXsKCQkkRGF0YT1kZWNvZGVfYmFzZTY0KCRiaW5kcGVybCk7CgkJaWYoLXcgIi90bXAiKQoJCXsKCQkJJEZpbGU9Ii90bXAvYmluZHBvcnQucGwiOwkKCQl9ZWxzZQoJCXsKCQkJJEZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuImJpbmRwb3J0LnBsIjsKCQl9CgkJb3BlbihGSUxFLCAiPiRGaWxlIik7CgkJcHJpbnQgRklMRSAkRGF0YTsKCQljbG9zZSBGSUxFOwoJCXN5c3RlbSgicGVybCAkRmlsZSAkQ2xpZW50UG9ydCIpOwoJCXVubGluaygkRmlsZSk7CgkJZXhpdCAwOwoJfQp9CiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyAgQXJyYXkgTGlzdCBEaXJlY3RvcnkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgUm1EaXIoJCkgCnsKCW15ICRkaXIgPSBzaGlmdDsKCWlmKG9wZW5kaXIoRElSLCRkaXIpKQoJewoJCXdoaWxlKCRmaWxlID0gcmVhZGRpcihESVIpKQoJCXsKCQkJaWYoKCRmaWxlIG5lICIuIikgJiYgKCRmaWxlIG5lICIuLiIpKQoJCQl7CgkJCQkkZmlsZT0gJGRpci4kUGF0aFNlcC4kZmlsZTsKCQkJCWlmKC1kICRmaWxlKQoJCQkJewoJCQkJCSZSbURpcigkZmlsZSk7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJdW5saW5rKCRmaWxlKTsKCQkJCX0KCQkJfQoJCX0KCQljbG9zZWRpcihESVIpOwoJfQp9CnN1YiBGaWxlT3duZXIoJCkKewoJbXkgJGZpbGUgPSBzaGlmdDsKCWlmKC1lICRmaWxlKQoJewoJCSgkdWlkLCRnaWQpID0gKHN0YXQoJGZpbGUpKVs0LDVdOwoJCWlmKCRXaW5OVCkKCQl7CgkJCXJldHVybiAiPz8/IjsKCQl9CgkJZWxzZQoJCXsKCQkJJG5hbWU9Z2V0cHd1aWQoJHVpZCk7CgkJCSRncm91cD1nZXRncmdpZCgkZ2lkKTsKCQkJcmV0dXJuICRuYW1lLiIvIi4kZ3JvdXA7CgkJfQoJfQoJcmV0dXJuICI/Pz8iOwp9CnN1YiBQYXJlbnRGb2xkZXIoJCkKewoJbXkgJHBhdGggPSBzaGlmdDsKCW15ICRDb21tID0gImNkIFwiJEN1cnJlbnREaXJcIiIuJENtZFNlcC4iY2QgLi4iLiRDbWRTZXAuJENtZFB3ZDsKCWNob3AoJHBhdGggPSBgJENvbW1gKTsKCXJldHVybiAkcGF0aDsKfQpzdWIgRmlsZVBlcm1zKCQpCnsKCW15ICRmaWxlID0gc2hpZnQ7CglteSAkdXIgPSAiLSI7CglteSAkdXcgPSAiLSI7CglpZigtZSAkZmlsZSkKCXsKCQlpZigkV2luTlQpCgkJewoJCQlpZigtciAkZmlsZSl7ICR1ciA9ICJyIjsgfQoJCQlpZigtdyAkZmlsZSl7ICR1dyA9ICJ3IjsgfQoJCQlyZXR1cm4gJHVyIC4gIiAvICIgLiAkdXc7CgkJfWVsc2UKCQl7CgkJCSRtb2RlPShzdGF0KCRmaWxlKSlbMl07CgkJCSRyZXN1bHQgPSBzcHJpbnRmKCIlMDRvIiwgJG1vZGUgJiAwNzc3Nyk7CgkJCXJldHVybiAkcmVzdWx0OwoJCX0KCX0KCXJldHVybiAiMDAwMCI7Cn0Kc3ViIEZpbGVMYXN0TW9kaWZpZWQoJCkKewoJbXkgJGZpbGUgPSBzaGlmdDsKCWlmKC1lICRmaWxlKQoJewoJCSgkbGEpID0gKHN0YXQoJGZpbGUpKVs5XTsKCQkoJGQsJG0sJHksJGgsJGkpID0gKGxvY2FsdGltZSgkbGEpKVszLDQsNSwyLDFdOwoJCSR5ID0gJHkgKyAxOTAwOwoJCUBtb250aCA9IHF3LzEgMiAzIDQgNSA2IDcgOCA5IDEwIDExIDEyLzsKCQkkbG10aW1lID0gc3ByaW50ZigiJTAyZC8lcy8lNGQgJTAyZDolMDJkIiwkZCwkbW9udGhbJG1dLCR5LCRoLCRpKTsKCQlyZXR1cm4gJGxtdGltZTsKCX0KCXJldHVybiAiPz8/IjsKfQpzdWIgRmlsZVNpemUoJCkKewoJbXkgJGZpbGUgPSBzaGlmdDsKCWlmKC1mICRmaWxlKQoJewoJCXJldHVybiAtcyAiJGZpbGUiOwoJfQoJcmV0dXJuICIwIjsKfQpzdWIgUGFyc2VGaWxlU2l6ZSgkKQp7CglteSAkc2l6ZSA9IHNoaWZ0OwoJaWYoJHNpemUgPD0gMTAyNCkKCXsKCQlyZXR1cm4gJHNpemUuICIgQiI7Cgl9CgllbHNlCgl7CgkJaWYoJHNpemUgPD0gMTAyNCoxMDI0KSAKCQl7CgkJCSRzaXplID0gc3ByaW50ZigiJS4wMmYiLCRzaXplIC8gMTAyNCk7CgkJCXJldHVybiAkc2l6ZS4iIEtCIjsKCQl9CgkJZWxzZSAKCQl7CgkJCSRzaXplID0gc3ByaW50ZigiJS4yZiIsJHNpemUgLyAxMDI0IC8gMTAyNCk7CgkJCXJldHVybiAkc2l6ZS4iIE1CIjsKCQl9Cgl9Cn0Kc3ViIHRyaW0oJCkKewoJbXkgJHN0cmluZyA9IHNoaWZ0OwoJJHN0cmluZyA9fiBzL15ccysvLzsKCSRzdHJpbmcgPX4gcy9ccyskLy87CglyZXR1cm4gJHN0cmluZzsKfQpzdWIgQWRkU2xhc2hlcygkKQp7CglteSAkc3RyaW5nID0gc2hpZnQ7Cgkkc3RyaW5nPX4gcy9cXC9cXFxcL2c7CglyZXR1cm4gJHN0cmluZzsKfQpzdWIgVHJpbVNsYXNoZXMoJCkKewoJbXkgJHN0cmluZyA9IHNoaWZ0OwoJJHN0cmluZz1+IHMvXC9cLy9cLy9nOwoJJHN0cmluZz1+IHMvXFxcXC9cXC9nOwoJcmV0dXJuICRzdHJpbmc7Cn0Kc3ViIExpc3REaXIKewoJbXkgJHBhdGggPSAmVHJpbVNsYXNoZXMoJEN1cnJlbnREaXIuJFBhdGhTZXApOwoJbXkgJHJlc3VsdCA9ICI8Zm9ybSBuYW1lPSdmJyBvblN1Ym1pdD1cIkVuY29kZXIoJ2QnKVwiIGFjdGlvbj0nJFNjcmlwdExvY2F0aW9uJz48c3BhbiBzdHlsZT0nZm9udDogMTFwdCBWZXJkYW5hOyBmb250LXdlaWdodDogYm9sZDsnPlBhdGg6IFsgIi4mQWRkTGlua0RpcigiZ3VpIikuIiBdIDwvc3Bhbj48aW5wdXQgdHlwZT0ndGV4dCcgaWQ9J2QnIG5hbWU9J2QnIHNpemU9JzQwJyB2YWx1ZT0nJEN1cnJlbnREaXInIC8+PGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nYScgdmFsdWU9J2d1aSc+PGlucHV0IGNsYXNzPSdzdWJtaXQnIHR5cGU9J3N1Ym1pdCcgdmFsdWU9J01vbktpcmEnPjwvZm9ybT4iOwoJaWYoLWQgJHBhdGgpCgl7CgkJbXkgQGZuYW1lID0gKCk7CgkJbXkgQGRuYW1lID0gKCk7CgkJaWYob3BlbmRpcihESVIsJHBhdGgpKQoJCXsKCQkJd2hpbGUoJGZpbGUgPSByZWFkZGlyKERJUikpCgkJCXsKCQkJCSRmPSRwYXRoLiRmaWxlOwoJCQkJaWYoLWQgJGYpCgkJCQl7CgkJCQkJcHVzaChAZG5hbWUsJGZpbGUpOwoJCQkJfQoJCQkJZWxzZQoJCQkJewoJCQkJCXB1c2goQGZuYW1lLCRmaWxlKTsKCQkJCX0KCQkJfQoJCQljbG9zZWRpcihESVIpOwoJCX0KCQlAZm5hbWUgPSBzb3J0IHsgbGMoJGEpIGNtcCBsYygkYikgfSBAZm5hbWU7CgkJQGRuYW1lID0gc29ydCB7IGxjKCRhKSBjbXAgbGMoJGIpIH0gQGRuYW1lOwoJCSRyZXN1bHQgLj0gIjxkaXY+PHRhYmxlIHdpZHRoPSc5MCUnIGNsYXNzPSdsaXN0ZGlyJz4KCQk8dHIgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6ICMzZTNlM2UnPjx0aD5UJiMyMzQ7biBGaWxlPC90aD4KCQk8dGggd2lkdGg9JzEwMCc+S2ljayBUaCYjNDMyOyYjNzg5OTtjIEZpbGU8L3RoPgoJCTx0aCB3aWR0aD0nMTUwJz5OJiM0MTc7aSBTJiM3OTAzOyBoJiM3OTE5O3U8L3RoPgoJCTx0aCB3aWR0aD0nMTAwJz5TJiM3OTIxOyBDJiM3ODQ1O3AgUGgmIzIzMztwPC90aD4KCQk8dGggd2lkdGg9JzE1MCc+VGhheSAmIzI3MjsmIzc4OTM7aSBNJiM3ODk5O2kgTmgmIzc4NDU7dDwvdGg+CgkJPHRoIHdpZHRoPScyMzAnPkgmIzIyNDtuaCAmIzI3MjsmIzc4OTc7bmc8L3RoPjwvdHI+IjsKCQlteSAkc3R5bGU9Im5vdGxpbmUiOwoJCW15ICRpPTA7CgkJZm9yZWFjaCBteSAkZCAoQGRuYW1lKQoJCXsKCQkJJHN0eWxlPSAoJHN0eWxlIGVxICJsaW5lIikgPyAibm90bGluZSI6ICJsaW5lIjsKCQkJJGQgPSAmdHJpbSgkZCk7CgkJCSRkaXJuYW1lPSRkOwoJCQlpZigkZCBlcSAiLi4iKSAKCQkJewoJCQkJJGQgPSAmUGFyZW50Rm9sZGVyKCRwYXRoKTsKCQkJfQoJCQllbHNpZigkZCBlcSAiLiIpIAoJCQl7CgkJCQluZXh0OwoJCQl9CgkJCWVsc2UgCgkJCXsKCQkJCSRkID0gJHBhdGguJGQ7CgkJCX0KCQkJJHJlc3VsdCAuPSAiPHRyIGNsYXNzPSckc3R5bGUnPjx0ZCBpZD0nRmlsZV8kaScgY2xhc3M9J2Rpcic+PGEgIGhyZWY9Jz9hPWd1aSZkPSIuJkVuY29kZURpcigkZCkuIic+WyAiLiRkaXJuYW1lLiIgXTwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD5ESVI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD4iLiZGaWxlT3duZXIoJGQpLiI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBpZD0nRmlsZVBlcm1zXyRpJyBvbmRibGNsaWNrPVwicm1fY2htb2RfZm9ybSh0aGlzLCIuJGkuIiwnIi4mRmlsZVBlcm1zKCRkKS4iJywnIi4kZGlybmFtZS4iJylcIiA+PHNwYW4gb25jbGljaz1cImNobW9kX2Zvcm0oIi4kaS4iLCciLiRkaXJuYW1lLiInKVwiID4iLiZGaWxlUGVybXMoJGQpLiI8L3NwYW4+PC90ZD4iOwoJCQkkcmVzdWx0IC49ICI8dGQ+Ii4mRmlsZUxhc3RNb2RpZmllZCgkZCkuIjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkPjxhIG9uY2xpY2s9XCJyZW5hbWVfZm9ybSgkaSwnJGRpcm5hbWUnLCciLiZBZGRTbGFzaGVzKCZBZGRTbGFzaGVzKCRkKSkuIicpOyByZXR1cm4gZmFsc2U7IFwiPiYjMjcyOyYjNzg5MztpIFQmIzIzNDtuPC9hPiAgfCA8YSBvbmNsaWNrPVwiaWYoIWNvbmZpcm0oJ1JlbW92ZSBkaXI6ICRkaXJuYW1lID8nKSkgeyByZXR1cm4gZmFsc2U7fVwiIGhyZWY9Jz9hPWd1aSZkPSIuJkVuY29kZURpcigkcGF0aCkuIiZyZW1vdmU9JGRpcm5hbWUnPkRpIENodXkmIzc4NzU7bjwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjwvdHI+IjsKCQkJJGkrKzsKCQl9CgkJZm9yZWFjaCBteSAkZiAoQGZuYW1lKQoJCXsKCQkJJHN0eWxlPSAoJHN0eWxlIGVxICJsaW5lIikgPyAibm90bGluZSI6ICJsaW5lIjsKCQkJJGZpbGU9JGY7CgkJCSRmID0gJHBhdGguJGY7CgkJCW15ICRhY3Rpb24gPSBlbmNvZGVfYmFzZTY0KCJlZGl0ICIuJGZpbGUpOwoJCQkkdmlldyA9ICI/ZGlyPSIuJHBhdGguIiZ2aWV3PSIuJGY7CgkJCSRyZXN1bHQgLj0gIjx0ciBjbGFzcz0nJHN0eWxlJz48dGQgaWQ9J0ZpbGVfJGknIGNsYXNzPSdmaWxlJz48YSBocmVmPSc/YT1jb21tYW5kJmQ9Ii4mRW5jb2RlRGlyKCRwYXRoKS4iJmM9Ii4kYWN0aW9uLiInPiIuJGZpbGUuIjwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD4iLiZQYXJzZUZpbGVTaXplKCZGaWxlU2l6ZSgkZikpLiI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD4iLiZGaWxlT3duZXIoJGYpLiI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZCBpZD0nRmlsZVBlcm1zXyRpJyBvbmRibGNsaWNrPVwicm1fY2htb2RfZm9ybSh0aGlzLCIuJGkuIiwnIi4mRmlsZVBlcm1zKCRmKS4iJywnIi4kZmlsZS4iJylcIiA+PHNwYW4gb25jbGljaz1cImNobW9kX2Zvcm0oJGksJyRmaWxlJylcIiA+Ii4mRmlsZVBlcm1zKCRmKS4iPC9zcGFuPjwvdGQ+IjsKCQkJJHJlc3VsdCAuPSAiPHRkPiIuJkZpbGVMYXN0TW9kaWZpZWQoJGYpLiI8L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjx0ZD48YSBvbmNsaWNrPVwicmVuYW1lX2Zvcm0oJGksJyRmaWxlJywnZicpOyByZXR1cm4gZmFsc2U7XCI+JiMyNzI7JiM3ODkzO2kgVCYjMjM0O248L2E+IHwgPGEgaHJlZj0nP2E9ZG93bmxvYWQmbz1nbyZmPSIuJGYuIic+VCYjNzg0MztpIFh1JiM3ODg5O25nPC9hPiB8IDxhIG9uY2xpY2s9XCJpZighY29uZmlybSgnUmVtb3ZlIGZpbGU6ICRmaWxlID8nKSkgeyByZXR1cm4gZmFsc2U7fVwiIGhyZWY9Jz9hPWd1aSZkPSIuJkVuY29kZURpcigkcGF0aCkuIiZyZW1vdmU9JGZpbGUnPkRpIENodXkmIzc4NzU7bjwvYT48L3RkPiI7CgkJCSRyZXN1bHQgLj0gIjwvdHI+IjsKCQkJJGkrKzsKCQl9CgkJJHJlc3VsdCAuPSAiPC90YWJsZT48L2Rpdj4iOwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRyeSB0byBWaWV3IExpc3QgVXNlcgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1YiBWaWV3RG9tYWluVXNlcgp7CglvcGVuIChkMG1haW5zLCAnL2V0Yy9uYW1lZC5jb25mJykgb3IgJGVycj0xOwoJbXkgQGNuenMgPSA8ZDBtYWlucz47CgljbG9zZSBkMG1haW5zOwoJbXkgJHN0eWxlPSJsaW5lIjsKCW15ICRyZXN1bHQ9IjxoMz48Zm9udCBzdHlsZT0nZm9udDogMTVwdCBWZXJkYW5hO2NvbG9yOiAwMEZGMDA7Jz5DJiM3ODQzO25oIEImIzIyNTtvICEgU2hlbGwgJiMyNzI7JiM3ODc1OyBTJiM3OTE3OyBEJiM3OTA5O25nIFRoYW0gS2gmIzc4NDM7bywgS2gmIzI0NDtuZyBIYWNrPC9mb250PjwvaDM+IjsKCWlmICgkZXJyKQoJewoJCSRyZXN1bHQgLj0gICgnPHA+VGgmIzc4NDU7dCBCJiM3ODQxO2ksIEtoJiMyNDQ7bmcgVGgmIzc4NzU7IFYmIzQzMjsmIzc5MDc7dCBRdWEgTiYjMjQzOzwvcD4nKTsKCQlyZXR1cm4gJHJlc3VsdDsKCX1lbHNlCgl7CgkJJHJlc3VsdCAuPSAnPHRhYmxlIGlkPSJkb21haW4iPjx0cj48dGg+ZDBtYWluczwvdGg+IDx0aD5Vc2VyPC90aD48L3RyPic7Cgl9Cglmb3JlYWNoIG15ICRvbmUgKEBjbnpzKQoJewoJCWlmKCRvbmUgPX4gbS8uKj96b25lICIoLio/KSIgey8pCgkJewkKCQkJJHN0eWxlPSAoJHN0eWxlIGVxICJsaW5lIikgPyAibm90bGluZSI6ICJsaW5lIjsKCQkJJGZpbGVuYW1lPSB0cmltKCIvZXRjL3ZhbGlhc2VzLyIuJDEpOwoJCQkkb3duZXIgPSBnZXRwd3VpZCgoc3RhdCgkZmlsZW5hbWUpKVs0XSk7CgkJCSRyZXN1bHQgLj0gJzx0ciBzdHlsZT0iJHN0eWxlIiB3aWR0aD01MCU+PHRkPjxhIGhyZWY9Imh0dHA6Ly8nLiQxLiciIHRhcmdldD0iX2JsYW5rIj4nLiQxLic8L2E+PC90ZD48dGQ+ICcuJG93bmVyLic8L3RkPjwvdHI+JzsKCQl9Cgl9CgkkcmVzdWx0IC49ICc8L3RhYmxlPic7CglyZXR1cm4gJHJlc3VsdDsKfQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVmlldyBMb2cKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWIgVmlld0xvZwp7CgkkRW5jb2RlQ3VycmVudERpciA9IEVuY29kZURpcigkQ3VycmVudERpcik7CglpZigkV2luTlQpCgl7CgkJcmV0dXJuICI8aDI+PGZvbnQgc3R5bGU9J2ZvbnQ6IDIwcHQgVmVyZGFuYTtjb2xvcjogMDBGRjAwOyc+RG9uJ3QgcnVuIG9uIFdpbmRvd3M8L2ZvbnQ+PC9oMj4iOwoJfQoJbXkgJHJlc3VsdD0iPHRhYmxlPjx0cj48dGg+UGF0aCBMb2c8L3RoPjx0aD5TdWJtaXQ8L3RoPjwvdHI+IjsKCW15IEBwYXRobG9nPSgJJy91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvZXJyb3JfbG9nJywKCQkJJy91c3IvbG9jYWwvYXBhY2hlL2xvZ3MvYWNjZXNzX2xvZycsCgkJCScvdXNyL2xvY2FsL2FwYWNoZTIvY29uZi9odHRwZC5jb25mJywKCQkJJy92YXIvbG9nL2h0dHBkL2Vycm9yX2xvZycsCgkJCScvdmFyL2xvZy9odHRwZC9hY2Nlc3NfbG9nJywKCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3MvZXJyb3JfbG9nJywKCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3MvYWNjZXNzX2xvZycsCgkJCScvdXNyL2xvY2FsL2FwYWNoZS9sb2dzL3N1cGhwX2xvZycsCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzJywKCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3Mvc3RhdHNfbG9nJywKCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3MvYWNjZXNzX2xvZycsCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL2Vycm9yX2xvZycsCgkJCScvdXNyL2xvY2FsL2NwYW5lbC9sb2dzL2xpY2Vuc2VfbG9nJywKCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3MvbG9naW5fbG9nJywKCQkJJy91c3IvbG9jYWwvY3BhbmVsL2xvZ3Mvc3RhdHNfbG9nJywKCQkJJy92YXIvY3BhbmVsL2NwYW5lbC5jb25maWcnLAoJCQknL3Vzci9sb2NhbC9waHAvbGliL3BocC5pbmknLAoJCQknL3Vzci9sb2NhbC9waHA1L2xpYi9waHAuaW5pJywKCQkJJy92YXIvbG9nL215c3FsL215c3FsLWJpbi5sb2cnLAoJCQknL3Zhci9sb2cvbXlzcWwubG9nJywKCQkJJy92YXIvbG9nL215c3FsZGVycm9yLmxvZycsCgkJCScvdmFyL2xvZy9teXNxbC9teXNxbC5sb2cnLAoJCQknL3Zhci9sb2cvbXlzcWwvbXlzcWwtc2xvdy5sb2cnLAoJCQknL3Zhci9teXNxbC5sb2cnLAoJCQknL3Zhci9saWIvbXlzcWwvbXkuY25mJywKCQkJJy9ldGMvbXlzcWwvbXkuY25mJywKCQkJJy9ldGMvbXkuY25mJywKCQkJKTsKCW15ICRpPTA7CglteSAkcGVybXM7CglteSAkc2w7Cglmb3JlYWNoIG15ICRsb2cgKEBwYXRobG9nKQoJewoJCWlmKC1yICRsb2cpCgkJewoJCQkkcGVybXM9Ik9LIjsKCQl9ZWxzZQoJCXsKCQkJJHBlcm1zPSI8Zm9udCBzdHlsZT0nY29sb3I6IHJlZDsnPkNhbmNlbDxmb250PiI7CgkJfQoJCSRyZXN1bHQgLj08PEVORDsKCQk8dHI+CgoJCQk8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0IiBvblN1Ym1pdD0iRW5jb2RlcignbG9nJGknKSI+CgkJCTx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImxvZyRpIiBuYW1lPSJjIiB2YWx1ZT0idGFpbCAtMTAwMDAgJGxvZyB8IGdyZXAgJy9ob21lJyIgc2l6ZT0nNTAnLz48L3RkPgoJCQk8dGQ+PGlucHV0IGNsYXNzPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlRyeSIgLz48L3RkPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhIiB2YWx1ZT0iY29tbWFuZCIgLz4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZCIgdmFsdWU9IiRFbmNvZGVDdXJyZW50RGlyIiAvPgoJCQk8L2Zvcm0+CgkJCTx0ZD4kcGVybXM8L3RkPgoKCQk8L3RyPgpFTkQKCQkkaSsrOwoJfQoJJHJlc3VsdCAuPSI8L3RhYmxlPiI7CglyZXR1cm4gJHJlc3VsdDsKfQpzdWIgQ29uZmlnTWFyaW9uewpvcGVuIChDcmVhdGVOZXcsIj5Db25maWcuTW9uS2lyYSIpIG9yIGRpZSAiS2gmIzI0NDtuZyBUaCYjNzg3NTsgVCYjNzg0MTtvIEZpbGUiOwokY29uZmlnbWFyaW9uID0gIkl5RXZkWE55TDJKcGJpOXdaWEpzSUMxSkwzVnpjaTlzYjJOaGJDOWlZVzVrYldsdUNuQnlhVzUwSUNKRGIyNTBaVzUwTFhSNWNHVTZJSFJsZUhRdmFIUnRiRnh1WEc0aU93cHdjbWx1ZENjOElVUlBRMVJaVUVVZ2FIUnRiQ0JRVlVKTVNVTWdJaTB2TDFjelF5OHZSRlJFSUZoSVZFMU1JREV1TUNCVWNtRnVjMmwwYVc5dVlXd3ZMMFZPSWlBaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdlZGSXZlR2gwYld3eEwwUlVSQzk0YUhSdGJERXRkSEpoYm5OcGRHbHZibUZzTG1SMFpDSStDanhvZEcxc0lIaHRiRzV6UFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hvZEcxc0lqNDhhR1ZoWkQ0OGJXVjBZU0JvZEhSd0xXVnhkV2wyUFNKRGIyNTBaVzUwTFV4aGJtZDFZV2RsSWlCamIyNTBaVzUwUFNKbGJpMTFjeUlnTHo0S1BHMWxkR0VnYUhSMGNDMWxjWFZwZGowaVEyOXVkR1Z1ZEMxVWVYQmxJaUJqYjI1MFpXNTBQU0owWlhoMEwyaDBiV3c3SUdOb1lYSnpaWFE5ZFhSbUxUZ2lJQzgrUEhScGRHeGxQa2RsZENCQmJHd2dRMjl1Wm1sbklGTm9aV3hzUEM5MGFYUnNaVDRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtMbTVsZDFOMGVXeGxNU0I3Q2lCbWIyNTBMV1poYldsc2VUb2dWR0ZvYjIxaE93b2dabTl1ZEMxemFYcGxPaUI0TFhOdFlXeHNPd29nWm05dWRDMTNaV2xuYUhRNklHSnZiR1E3Q2lCamIyeHZjam9nSTJZd01Ec0tJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3Q24wS1BDOXpkSGxzWlQ0OEwyaGxZV1ErSnpzS2MzVmlJR3hwYkhzS0lDQWdJQ2drZFhObGNpa2dQU0JBWHpzS0pHMXpjaUE5SUhGNGUzQjNaSDA3Q2lScmIyeGhQU1J0YzNJdUlpOGlMaVIxYzJWeU93b2thMjlzWVQxK2N5OWNiaTh2WnpzS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzWmlMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZm5aQ2RXeHNaWFJwYmpFdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJsdVkyeDFaR1Z6TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZuWkNkV3hzWlhScGJqSXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyWnZjblZ0TDJsdVkyeDFaR1Z6TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZuWkNkV3hzWlhScGJqTXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTmpMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZm5aQ2RXeHNaWFJwYmpRdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZsQm9jR0ppTVMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2Wm05eWRXMHZhVzVqYkhWa1pYTXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrVUdod1ltSXlMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41WGIzSmtjSEpsYzNNeExVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWJHOW5MM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZsZHZjbVJ3Y21WemN6SXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNUtiMjl0YkdFeExVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWJHOW5MMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVLYjI5dGJHRXlMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXFiMjl0YkdFdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZrcHZiMjFzWVRNdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNkb2JTOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TVMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2ZDJodFl5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TWkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YzNWd2NHOXlkQzlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE15MU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyeHBaVzUwTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41WGFHMDBMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWlhV3hzYVc1bmN5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TlMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WW1sc2JHbHVaeTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE5pMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyeHBaVzUwY3k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHROeTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkMmh0WTNNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVGd0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMjl5WkdWeUwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzA1TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzloWkcxcGJpOWpiMjVtTG5Cb2NDY3NKR3R2YkdFdUozNStOUzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZV1J0YVc0dlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStOQzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMjl1Wmw5bmJHOWlZV3d1Y0dod0p5d2thMjlzWVM0bmZuNXBiblpwYzJsdkxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5cGJtTnNkV1JsTDJSaUxuQm9jQ2NzSkd0dmJHRXVKMzUrTnkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTI5dWJtVmpkQzV3YUhBbkxDUnJiMnhoTGlkK2ZqZ3RUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyMXJYMk52Ym1ZdWNHaHdKeXdrYTI5c1lTNG5mbjV0YXkxd2IzSjBZV3hsTVMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpTOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YVc1amJIVmtaUzlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm40eE1pMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmMyVjBkR2x1WjNNdWNHaHdKeXdrYTI5c1lTNG5mbjVUYldZdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJsdVkyeDFaR1Z6TDJaMWJtTjBhVzl1Y3k1d2FIQW5MQ1JyYjJ4aExpZCtmbkJvY0dKaU15MU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmFXNWpiSFZrWlM5a1lpNXdhSEFuTENScmIyeGhMaWQrZm1sdVptbHVhWFI1TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE1pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2ZG1JdmFXNWpiSFZrWlhNdlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStka0oxYkd4bGRHbHVNUzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZm5aQ2RXeHNaWFJwYmpJdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXlMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5bWIzSjFiUzlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41MlFuVnNiR1YwYVc0ekxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxNaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyTXZhVzVqYkhWa1pYTXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrZGtKMWJHeGxkR2x1TkMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUSXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZsQm9jR0ppTVMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUSXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJadmNuVnRMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZmxCb2NHSmlNaTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZsZHZjbVJ3Y21WemN6RXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V5THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWliRzluTDNkd0xXTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmbGR2Y21Sd2NtVnpjekl0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVeUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrU205dmJXeGhNUzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMkpzYjJjdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZrcHZiMjFzWVRJdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXlMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5cWIyOXRiR0V2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmtwdmIyMXNZVE10VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVeUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzkzYUcwdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVEV0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVeUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzkzYUcxakwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzB5TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE1pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YzNWd2NHOXlkQzlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE15MU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVEl2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTnNhV1Z1ZEM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHROQzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMkpwYkd4cGJtZHpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwMUxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxNaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlltbHNiR2x1Wnk5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHROaTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk5zYVdWdWRITXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtmbGRvYlRjdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXlMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5M2FHMWpjeTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE9DMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVEl2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyOXlaR1Z5TDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41WGFHMDVMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTWk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZV1J0YVc0dlkyOXVaaTV3YUhBbkxDUnJiMnhoTGlkK2ZqVXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V5THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWhaRzFwYmk5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNDBMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTWk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMjl1Wmw5bmJHOWlZV3d1Y0dod0p5d2thMjlzWVM0bmZuNXBiblpwYzJsdkxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxNaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmFXNWpiSFZrWlM5a1lpNXdhSEFuTENScmIyeGhMaWQrZmpjdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXlMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amIyNXVaV04wTG5Cb2NDY3NKR3R2YkdFdUozNStPQzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMjFyWDJOdmJtWXVjR2h3Snl3a2EyOXNZUzRuZm41dGF5MXdiM0owWVd4bE1TMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVEl2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wybHVZMngxWkdVdlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStNVEl0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVeUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl6WlhSMGFXNW5jeTV3YUhBbkxDUnJiMnhoTGlkK2ZsTnRaaTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRJdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMmx1WTJ4MVpHVnpMMloxYm1OMGFXOXVjeTV3YUhBbkxDUnJiMnhoTGlkK2ZuQm9jR0ppTXkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUSXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJsdVkyeDFaR1V2WkdJdWNHaHdKeXdrYTI5c1lTNG5mbjVwYm1acGJtbDBlUzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRNdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM1ppTDJsdVkyeDFaR1Z6TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZuWkNkV3hzWlhScGJqRXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXBibU5zZFdSbGN5OWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjUyUW5Wc2JHVjBhVzR5TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE15OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2Wm05eWRXMHZhVzVqYkhWa1pYTXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrZGtKMWJHeGxkR2x1TXkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUTXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOakwybHVZMngxWkdWekwyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmblpDZFd4c1pYUnBialF0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVekx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41UWFIQmlZakV0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVekx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzltYjNKMWJTOXBibU5zZFdSbGN5OWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjVRYUhCaVlqSXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTNjQzFqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41WGIzSmtjSEpsYzNNeExVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxNeThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dllteHZaeTkzY0MxamIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNVhiM0prY0hKbGMzTXlMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTXk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtma3B2YjIxc1lURXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWliRzluTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41S2IyOXRiR0V5TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE15OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YW05dmJXeGhMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVLYjI5dGJHRXpMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTXk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkMmh0TDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41WGFHMHhMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTXk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkMmh0WXk5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHRNaTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRNdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM04xY0hCdmNuUXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtmbGRvYlRNdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXpMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amJHbGxiblF2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUUXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWlhV3hzYVc1bmN5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TlMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUTXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJKcGJHeHBibWN2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUWXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWpiR2xsYm5SekwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzAzTFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE15OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2ZDJodFkzTXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtmbGRvYlRndFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXpMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5dmNtUmxjaTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE9TMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVE12Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyRmtiV2x1TDJOdmJtWXVjR2h3Snl3a2EyOXNZUzRuZm40MUxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxNeThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dllXUnRhVzR2WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K05DMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVE12Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTnZibVpmWjJ4dlltRnNMbkJvY0Njc0pHdHZiR0V1SjM1K2FXNTJhWE5wYnkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUTXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJsdVkyeDFaR1V2WkdJdWNHaHdKeXdrYTI5c1lTNG5mbjQzTFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE15OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTI5dWJtVmpkQzV3YUhBbkxDUnJiMnhoTGlkK2ZqZ3RUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXRhMTlqYjI1bUxuQm9jQ2NzSkd0dmJHRXVKMzUrYldzdGNHOXlkR0ZzWlRFdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVXpMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5cGJtTnNkV1JsTDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZqRXlMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTXk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZjMlYwZEdsdVozTXVjR2h3Snl3a2EyOXNZUzRuZm41VGJXWXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1V6THljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXBibU5zZFdSbGN5OW1kVzVqZEdsdmJuTXVjR2h3Snl3a2EyOXNZUzRuZm41d2FIQmlZak10VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVekx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlwYm1Oc2RXUmxMMlJpTG5Cb2NDY3NKR3R2YkdFdUozNSthVzVtYVc1cGRIa3RUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1UwTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTJZaTlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41MlFuVnNiR1YwYVc0eExVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmFXNWpiSFZrWlhNdlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStka0oxYkd4bGRHbHVNaTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRRdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMlp2Y25WdEwybHVZMngxWkdWekwyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmblpDZFd4c1pYUnBiak10VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqWXk5cGJtTnNkV1JsY3k5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNTJRblZzYkdWMGFXNDBMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTkM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrVUdod1ltSXhMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTkM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZabTl5ZFcwdmFXNWpiSFZrWlhNdlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStVR2h3WW1JeUxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrVjI5eVpIQnlaWE56TVMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUUXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJKc2IyY3ZkM0F0WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K1YyOXlaSEJ5WlhOek1pMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVFF2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNUtiMjl0YkdFeExVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dllteHZaeTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrU205dmJXeGhNaTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRRdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMnB2YjIxc1lTOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStTbTl2Yld4aE15MU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVFF2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzZG9iUzlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE1TMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVFF2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzZG9iV012WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUSXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1UwTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXpkWEJ3YjNKMEwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzB6TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE5DOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTJ4cFpXNTBMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwMExVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlltbHNiR2x1WjNNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVFV0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlpYVd4c2FXNW5MMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwMkxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyeHBaVzUwY3k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHROeTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRRdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2RvYldOekwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzA0TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE5DOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YjNKa1pYSXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtmbGRvYlRrdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTBMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aFpHMXBiaTlqYjI1bUxuQm9jQ2NzSkd0dmJHRXVKMzUrTlMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUUXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJGa2JXbHVMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZmpRdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTBMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amIyNW1YMmRzYjJKaGJDNXdhSEFuTENScmIyeGhMaWQrZm1sdWRtbHphVzh0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMEx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlwYm1Oc2RXUmxMMlJpTG5Cb2NDY3NKR3R2YkdFdUozNStOeTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRRdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk52Ym01bFkzUXVjR2h3Snl3a2EyOXNZUzRuZm40NExVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmJXdGZZMjl1Wmk1d2FIQW5MQ1JyYjJ4aExpZCtmbTFyTFhCdmNuUmhiR1V4TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE5DOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YVc1amJIVmtaUzlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm40eE1pMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVFF2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wzTmxkSFJwYm1kekxuQm9jQ2NzSkd0dmJHRXVKMzUrVTIxbUxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOQzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmFXNWpiSFZrWlhNdlpuVnVZM1JwYjI1ekxuQm9jQ2NzSkd0dmJHRXVKMzUrY0dod1ltSXpMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTkM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhVzVqYkhWa1pTOWtZaTV3YUhBbkxDUnJiMnhoTGlkK2ZtbHVabWx1YVhSNUxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmRtSXZhVzVqYkhWa1pYTXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrZGtKMWJHeGxkR2x1TVMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJsdVkyeDFaR1Z6TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZuWkNkV3hzWlhScGJqSXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1UxTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOW1iM0oxYlM5cGJtTnNkV1JsY3k5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNTJRblZzYkdWMGFXNHpMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMk12YVc1amJIVmtaWE12WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K2RrSjFiR3hsZEdsdU5DMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVFV2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmbEJvY0dKaU1TMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVFV2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyWnZjblZ0TDJsdVkyeDFaR1Z6TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZsQm9jR0ppTWkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNkd0xXTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmbGR2Y21Sd2NtVnpjekV0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlpYkc5bkwzZHdMV052Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZmxkdmNtUndjbVZ6Y3pJdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTFMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1NtOXZiV3hoTVMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJKc2IyY3ZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtma3B2YjIxc1lUSXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1UxTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXFiMjl0YkdFdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZrcHZiMjFzWVRNdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTFMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5M2FHMHZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtmbGRvYlRFdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTFMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5M2FHMWpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcweUxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOUzhuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmMzVndjRzl5ZEM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHRNeTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk5zYVdWdWRDOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TkMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJKcGJHeHBibWR6TDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41WGFHMDFMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbWxzYkdsdVp5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TmkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOc2FXVnVkSE12WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUY3RUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1UxTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOTNhRzFqY3k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHRPQzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMjl5WkdWeUwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzA1TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE5TOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WVdSdGFXNHZZMjl1Wmk1d2FIQW5MQ1JyYjJ4aExpZCtmalV0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMUx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzloWkcxcGJpOWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjQwTFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE5TOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTI5dVpsOW5iRzlpWVd3dWNHaHdKeXdrYTI5c1lTNG5mbjVwYm5acGMybHZMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTlM4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhVzVqYkhWa1pTOWtZaTV3YUhBbkxDUnJiMnhoTGlkK2ZqY3RUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1UxTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWpiMjV1WldOMExuQm9jQ2NzSkd0dmJHRXVKMzUrT0MxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDIxclgyTnZibVl1Y0dod0p5d2thMjlzWVM0bmZuNXRheTF3YjNKMFlXeGxNUzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRVdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMmx1WTJ4MVpHVXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrTVRJdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTFMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5elpYUjBhVzVuY3k1d2FIQW5MQ1JyYjJ4aExpZCtmbE50WmkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUVXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJsdVkyeDFaR1Z6TDJaMWJtTjBhVzl1Y3k1d2FIQW5MQ1JyYjJ4aExpZCtmbkJvY0dKaU15MU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVFV2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wybHVZMngxWkdVdlpHSXVjR2h3Snl3a2EyOXNZUzRuZm41cGJtWnBibWwwZVMxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUWXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNaaUwybHVZMngxWkdWekwyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmblpDZFd4c1pYUnBiakV0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41MlFuVnNiR1YwYVc0eUxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlptOXlkVzB2YVc1amJIVmtaWE12WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K2RrSjFiR3hsZEdsdU15MU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVFl2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyTmpMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZm5aQ2RXeHNaWFJwYmpRdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTJMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNVFhSEJpWWpFdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTJMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5bWIzSjFiUzlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2EyOXNZUzRuZm41UWFIQmlZakl0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzkzY0MxamIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNVhiM0prY0hKbGMzTXhMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTmk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbXh2Wnk5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjVYYjNKa2NISmxjM015TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE5pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmtwdmIyMXNZVEV0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlpYkc5bkwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNUtiMjl0YkdFeUxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmFtOXZiV3hoTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41S2IyOXRiR0V6TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE5pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2ZDJodEwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2thMjlzWVM0bmZuNVhhRzB4TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE5pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2ZDJodFl5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TWkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUWXZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNOMWNIQnZjblF2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUTXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1UyTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWpiR2xsYm5RdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVFF0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlpYVd4c2FXNW5jeTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrVjJodE5TMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVFl2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wySnBiR3hwYm1jdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVFl0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlqYkdsbGJuUnpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwM0xVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmQyaHRZM012WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUZ3RUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1UyTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXZjbVJsY2k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHRPUzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRZdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMkZrYldsdUwyTnZibVl1Y0dod0p5d2thMjlzWVM0bmZuNDFMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTmk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZV1J0YVc0dlkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStOQzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRZdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk52Ym1aZloyeHZZbUZzTG5Cb2NDY3NKR3R2YkdFdUozNSthVzUyYVhOcGJ5MU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVFl2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wybHVZMngxWkdVdlpHSXVjR2h3Snl3a2EyOXNZUzRuZm40M0xVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOaThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyOXVibVZqZEM1d2FIQW5MQ1JyYjJ4aExpZCtmamd0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl0YTE5amIyNW1MbkJvY0Njc0pHdHZiR0V1SjM1K2JXc3RjRzl5ZEdGc1pURXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1UyTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOXBibU5zZFdSbEwyTnZibVpwWnk1d2FIQW5MQ1JyYjJ4aExpZCtmakV5TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE5pOG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YzJWMGRHbHVaM011Y0dod0p5d2thMjlzWVM0bmZuNVRiV1l0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVMkx5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzlwYm1Oc2RXUmxjeTltZFc1amRHbHZibk11Y0dod0p5d2thMjlzWVM0bmZuNXdhSEJpWWpNdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTJMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5cGJtTnNkV1JsTDJSaUxuQm9jQ2NzSkd0dmJHRXVKMzUrYVc1bWFXNXBkSGt0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVM0x5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzkyWWk5cGJtTnNkV1JsY3k5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNTJRblZzYkdWMGFXNHhMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhVzVqYkhWa1pYTXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrZGtKMWJHeGxkR2x1TWkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUY3ZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJadmNuVnRMMmx1WTJ4MVpHVnpMMk52Ym1acFp5NXdhSEFuTENScmIyeGhMaWQrZm5aQ2RXeHNaWFJwYmpNdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTNMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5all5OXBibU5zZFdSbGN5OWpiMjVtYVdjdWNHaHdKeXdrYTI5c1lTNG5mbjUyUW5Wc2JHVjBhVzQwTFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE55OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K1VHaHdZbUl4TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE55OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2Wm05eWRXMHZhVzVqYkhWa1pYTXZZMjl1Wm1sbkxuQm9jQ2NzSkd0dmJHRXVKMzUrVUdod1ltSXlMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZkM0F0WTI5dVptbG5MbkJvY0Njc0pHdHZiR0V1SjM1K1YyOXlaSEJ5WlhOek1TMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVGN2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wySnNiMmN2ZDNBdFkyOXVabWxuTG5Cb2NDY3NKR3R2YkdFdUozNStWMjl5WkhCeVpYTnpNaTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRjdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVLYjI5dGJHRXhMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbXh2Wnk5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1NtOXZiV3hoTWkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUY3ZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJwdmIyMXNZUzlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkd0dmJHRXVKMzUrU205dmJXeGhNeTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRjdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2RvYlM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pHdHZiR0V1SjM1K1YyaHRNUzFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRjdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM2RvYldNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnJiMnhoTGlkK2ZsZG9iVEl0VFc5dVMybHlZUzUwZUhRbktUc0tjM2x0YkdsdWF5Z25MMmh2YldVM0x5Y3VKSFZ6WlhJdUp5OXdkV0pzYVdOZmFIUnRiQzl6ZFhCd2IzSjBMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwekxVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOeThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dlkyeHBaVzUwTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41WGFHMDBMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZbWxzYkdsdVozTXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1JyYjJ4aExpZCtmbGRvYlRVdFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTNMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5aWFXeHNhVzVuTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2EyOXNZUzRuZm41WGFHMDJMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZZMnhwWlc1MGN5OWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKR3R2YkdFdUozNStWMmh0TnkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUY3ZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDNkb2JXTnpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYTI5c1lTNG5mbjVYYUcwNExVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOeThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmIzSmtaWEl2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENScmIyeGhMaWQrZmxkb2JUa3RUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1UzTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWhaRzFwYmk5amIyNW1MbkJvY0Njc0pHdHZiR0V1SjM1K05TMU5iMjVMYVhKaExuUjRkQ2NwT3dwemVXMXNhVzVyS0NjdmFHOXRaVGN2Snk0a2RYTmxjaTRuTDNCMVlteHBZMTlvZEcxc0wyRmtiV2x1TDJOdmJtWnBaeTV3YUhBbkxDUnJiMnhoTGlkK2ZqUXRUVzl1UzJseVlTNTBlSFFuS1RzS2MzbHRiR2x1YXlnbkwyaHZiV1UzTHljdUpIVnpaWEl1Snk5d2RXSnNhV05mYUhSdGJDOWpiMjVtWDJkc2IySmhiQzV3YUhBbkxDUnJiMnhoTGlkK2ZtbHVkbWx6YVc4dFRXOXVTMmx5WVM1MGVIUW5LVHNLYzNsdGJHbHVheWduTDJodmJXVTNMeWN1SkhWelpYSXVKeTl3ZFdKc2FXTmZhSFJ0YkM5cGJtTnNkV1JsTDJSaUxuQm9jQ2NzSkd0dmJHRXVKMzUrTnkxTmIyNUxhWEpoTG5SNGRDY3BPd3B6ZVcxc2FXNXJLQ2N2YUc5dFpUY3ZKeTRrZFhObGNpNG5MM0IxWW14cFkxOW9kRzFzTDJOdmJtNWxZM1F1Y0dod0p5d2thMjlzWVM0bmZuNDRMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZiV3RmWTI5dVppNXdhSEFuTENScmIyeGhMaWQrZm0xckxYQnZjblJoYkdVeExVMXZia3RwY21FdWRIaDBKeWs3Q25ONWJXeHBibXNvSnk5b2IyMWxOeThuTGlSMWMyVnlMaWN2Y0hWaWJHbGpYMmgwYld3dmFXNWpiSFZrWlM5amIyNW1hV2N1Y0dod0p5d2thMjlzWVM0bmZuNHhNaTFOYjI1TGFYSmhMblI0ZENjcE93cHplVzFzYVc1cktDY3ZhRzl0WlRjdkp5NGtkWE5sY2k0bkwzQjFZbXhwWTE5b2RHMXNMM05sZEhScGJtZHpMbkJvY0Njc0pHdHZiR0V1SjM1K1UyMW1MVTF2Ymt0cGNtRXVkSGgwSnlrN0NuTjViV3hwYm1zb0p5OW9iMjFsTnk4bkxpUjFjMlZ5TGljdmNIVmliR2xqWDJoMGJXd3ZhVzVqYkhWa1pYTXZablZ1WTNScGIyNXpMbkJvY0Njc0pHdHZiR0V1SjM1K2NHaHdZbUl6TFUxdmJrdHBjbUV1ZEhoMEp5azdDbk41Yld4cGJtc29KeTlvYjIxbE55OG5MaVIxYzJWeUxpY3ZjSFZpYkdsalgyaDBiV3d2YVc1amJIVmtaUzlrWWk1d2FIQW5MQ1JyYjJ4aExpZCtmbWx1Wm1sdWFYUjVMVTF2Ymt0cGNtRXVkSGgwSnlrN0NuMEthV1lnS0NSRlRsWjdKMUpGVVZWRlUxUmZUVVZVU0U5RUozMGdaWEVnSjFCUFUxUW5LU0I3Q2lBZ2NtVmhaQ2hUVkVSSlRpd2dKR0oxWm1abGNpd2dKRVZPVm5zblEwOU9WRVZPVkY5TVJVNUhWRWduZlNrN0NuMGdaV3h6WlNCN0NpQWdKR0oxWm1abGNpQTlJQ1JGVGxaN0oxRlZSVkpaWDFOVVVrbE9SeWQ5T3dwOUNrQndZV2x5Y3lBOUlITndiR2wwS0M4bUx5d2dKR0oxWm1abGNpazdDbVp2Y21WaFkyZ2dKSEJoYVhJZ0tFQndZV2x5Y3lrZ2V3b2dJQ2drYm1GdFpTd2dKSFpoYkhWbEtTQTlJSE53YkdsMEtDODlMeXdnSkhCaGFYSXBPd29nSUNSdVlXMWxJRDErSUhSeUx5c3ZJQzg3Q2lBZ0pHNWhiV1VnUFg0Z2N5OGxLRnRoTFdaQkxVWXdMVGxkVzJFdFprRXRSakF0T1YwcEwzQmhZMnNvSWtNaUxDQm9aWGdvSkRFcEtTOWxaenNLSUNBa2RtRnNkV1VnUFg0Z2RISXZLeThnTHpzS0lDQWtkbUZzZFdVZ1BYNGdjeThsS0Z0aExXWkJMVVl3TFRsZFcyRXRaa0V0UmpBdE9WMHBMM0JoWTJzb0lrTWlMQ0JvWlhnb0pERXBLUzlsWnpzS0lDQWtSazlTVFhza2JtRnRaWDBnUFNBa2RtRnNkV1U3Q24wS2FXWWdLQ1JHVDFKTmUzQmhjM045SUdWeElDSWlLWHNLY0hKcGJuUWdKd284WW05a2VTQmpiR0Z6Y3owaWJtVjNVM1I1YkdVeElpQmlaMk52Ykc5eVBTSWpNREF3TURBd0lqNEtQSEErVUdGcGJpQlRZM0pwY0hRZ1ZHOGdVM2x0YkdsdWF5QkRiMjVtYVdkelBDOXdQZ284Y0Q0OFptOXVkQ0JqYjJ4dmNqMGlJME13UXpCRE1DSStXend2Wm05dWRENGdRMjl1Wm1sbkxrMXZia3RwY21FZ1BHWnZiblFnWTI5c2IzSTlJaU5ETUVNd1F6QWlQbnc4TDJadmJuUStJQW84YzNCaGJpQnBaRDBpY21WemRXeDBYMkp2ZUNJZ1kyeGhjM005SW5Ob2IzSjBYM1JsZUhRaUlHeGhibWM5SW1WdUlqNDhjM0JoYmlCemRIbHNaU0IwYVhSc1pUNEtQR1p2Ym5RZ1kyOXNiM0k5SWlORE1FTXdRekFpUG53OEwyWnZiblErUEM5emNHRnVQand2YzNCaGJqNGdDanhtYjI1MElHTnZiRzl5UFNJalF6QkRNRU13SWo1ZFBDOW1iMjUwUGp3dmNENEtQR1p2Y20wZ2JXVjBhRzlrUFNKd2IzTjBJajRLUEhSbGVIUmhjbVZoSUc1aGJXVTlJbkJoYzNNaUlITjBlV3hsUFNKaWIzSmtaWEk2TVhCNElHUnZkSFJsWkNBak1EQkdSa1pHT3lCM2FXUjBhRG9nTlRRemNIZzdJR2hsYVdkb2REb2dOREl3Y0hnN0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNkl6QkRNRU13UXpzZ1ptOXVkQzFtWVcxcGJIazZWR0ZvYjIxaE95Qm1iMjUwTFhOcGVtVTZPSEIwT3lCamIyeHZjam9qTURCR1JrWkdJaUFnUGp3dmRHVjRkR0Z5WldFK1BHSnlJQzgrQ2ladVluTndPenh3UGdvOGFXNXdkWFFnYm1GdFpUMGlkR0Z5SWlCMllXeDFaVDBpUVV4TVEyOXVabWxuTFUxdmJrdHBjbUV1ZEhoMElpQjBlWEJsUFNKMFpYaDBJaUJ6ZEhsc1pUMGlZbTl5WkdWeU9qRndlQ0JrYjNSMFpXUWdJekF3UmtaR1Jqc2dkMmxrZEdnNklESXhNbkI0T3lCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lNd1F6QkRNRU03SUdadmJuUXRabUZ0YVd4NU9sUmhhRzl0WVRzZ1ptOXVkQzF6YVhwbE9qaHdkRHNnWTI5c2IzSTZJekF3UmtaR1Jqc2dJaUFnTHo0OFluSWdMejRLSm01aWMzQTdQQzl3UGdvOGNENEtQR2x1Y0hWMElHNWhiV1U5SWxOMVltMXBkREVpSUhSNWNHVTlJbk4xWW0xcGRDSWdkbUZzZFdVOUlrZGxkQ0JEYjI1bWFXY2lJSE4wZVd4bFBTSmliM0prWlhJNk1YQjRJR1J2ZEhSbFpDQWpNREJHUmtaR095QjNhV1IwYURvZ09UazdJR1p2Ym5RdFptRnRhV3g1T2xSaGFHOXRZVHNnWm05dWRDMXphWHBsT2pFd2NIUTdJR052Ykc5eU9pTXdNRVpHUmtZN0lIUmxlSFF0ZEhKaGJuTm1iM0p0T25Wd2NHVnlZMkZ6WlRzZ2FHVnBaMmgwT2pJek95QmlZV05yWjNKdmRXNWtMV052Ykc5eU9pTXdRekJETUVNaUlDOCtQQzl3UGdvOEwyWnZjbTArSnpzS2ZXVnNjMlY3Q20xclpHbHlLQ2REUjBrdFEyOXVabWxuTGsxdmJrdHBjbUVuTERBM05UVXBPd3BqYUdScGNpZ25RMGRKTFVOdmJtWnBaeTVOYjI1TGFYSmhKeWs3Q2tCc2FXNWxjeUE5UENSR1QxSk5lM0JoYzNOOVBqc0tKSGtnUFNCQWJHbHVaWE03Q205d1pXNGdLRTFaUmtsTVJTd2dJajVOYjI1TGFYSmhMblJ0Y0NJcE93cHdjbWx1ZENCTldVWkpURVVnSW5SaGNpQXRZM3BtSUNJdUpFWlBVazE3ZEdGeWZTNGlMblJoY2lBaU93cG1iM0lnS0NScllUMHdPeVJyWVR3a2VUc2thMkVyS3lsN0NuZG9hV3hsS0VCc2FXNWxjMXNrYTJGZElDQTlmaUJ0THlndUtqOHBPbmc2TDJjcGV3b21iR2xzS0NReEtUc0tjSEpwYm5RZ1RWbEdTVXhGSUNReExpSXRUVzl1UzJseVlTNTBlSFFpT3dwbWIzSW9KR3RrUFRFN0pHdGtQREU0T3lSclpDc3JLWHNLY0hKcGJuUWdUVmxHU1V4RklDUXhMaVJyWkM0aUxVMXZia3RwY21FdWRIaDBJanNLZlFwOUNuMEtjSEpwYm5RblBHSnZaSGtnWTJ4aGMzTTlJbTVsZDFOMGVXeGxNU0lnWW1kamIyeHZjajBpSXpBd01EQXdNQ0krUEhBK1IyVjBJRUZzYkNCRGIyNW1hV2NnVkdnbUl6SXlORHR1YUNCREppTXlORFE3Ym1jOEwzQStDanhvTVQ0OFlTQnpkSGxzWlQwaVkyOXNiM0k2SXpBd09USm1aanNpSUdoeVpXWTlJa05IU1MxRGIyNW1hV2N1VFc5dVMybHlZUzhpSUhSaGNtZGxjajBpWDJKaGJtc2lQaVlqTWpjeU95WWpOemczTVR0dUlFWnZiR1JsY2lCQmJHd2dRMjl1Wm1sbkxrMXZia3RwY21FOEwyRStQQzlvTVQ0bk93cHBaaWdrUms5U1RYdDBZWEo5SUc1bElDSWlLWHNLYjNCbGJpaEpUa1pQTENBaVRXOXVTMmx5WVM1MGJYQWlLVHNLUUd4cGJtVnpJRDA4U1U1R1R6NGdPd3BqYkc5elpTaEpUa1pQS1RzS2MzbHpkR1Z0S0VCc2FXNWxjeWs3Q25CeWFXNTBKenh3UGp4aElHaHlaV1k5SWtOSFNTMURiMjVtYVdjdVRXOXVTMmx5WVM4bkxpUkdUMUpOZTNSaGNuMHVKeTUwWVhJaVBqeG1iMjUwSUdOdmJHOXlQU0lqTURBNU1tWm1JajRLUEhOd1lXNGdjM1I1YkdVOUluUmxlSFF0WkdWamIzSmhkR2x2YmpvZ2JtOXVaU0krUEdneFBrTnNhV05ySUVobGNtVWdWRzhnUkc5M2JteHZZV1FnUVd4c0lFTnZibVpwWnk1TmIyNUxhWEpoSUZSaGNpQkdhV3hsUEM5b01UNDhMM053WVc0K1BDOW1iMjUwUGp3dllUNDhMM0ErQ2p4aWNpOCtQR2d4UGp4aElITjBlV3hsUFNKamIyeHZjam9qTURBNU1tWm1PeUlnYUhKbFpqMGlRMGRKTFVOdmJtWnBaeTVOYjI1TGFYSmhMeUlnZEdGeVoyVnlQU0pmWW1GdWF5SStKaU15TnpJN0ppTTNPRGN4TzI0Z1JtOXNaR1Z5SUVGc2JDQkRiMjVtYVdjdVRXOXVTMmx5WVR3dllUNDhMMmd4UGljN0NuMEtmUW9nY0hKcGJuUWlQQzlpYjJSNVBqd3ZhSFJ0YkQ0aU93PT0iOwokZGVjb2RlY29uZmlnbWFyaW9uPWRlY29kZV9iYXNlNjQoJGNvbmZpZ21hcmlvbik7CnByaW50IENyZWF0ZU5ldyAkZGVjb2RlY29uZmlnbWFyaW9uIG9yIGRpZSAiS2jDtG5nIFRo4buDIFThuqFvIFNoZWxsIEdldCBBbGwgQ29uZmlnIjsgY2xvc2UgQ3JlYXRlTmV3OwpjaG1vZCgwNzU1LCdDb25maWcuTW9uS2lyYScpOwpwcmludCAnPGJyLz48Y2VudGVyPjxoMT5U4bqhbyBTaGVsbCBHZXQgQWxsIENvbmZpZyBUaMOgbmggQ8O0bmc8YnIvPjxici8+PGEgc3R5bGU9ImNvbG9yOiNmNjQxNjY7IiBocmVmPSJDb25maWcuTW9uS2lyYSIgdGFyZ2V0PSJfYmFuayI+ViYjMjI0O28gU2hlbGwgR2V0IEFsbCBDb25maWc8L2E+PC9oMT48L2NlbnRlcj4nOwpwcmludCAiXG4iOyAKfQomUmVhZFBhcnNlOwomR2V0Q29va2llczsKJFNjcmlwdExvY2F0aW9uID0gJEVOVnsnU0NSSVBUX05BTUUnfTsKJFNlcnZlck5hbWUgPSAkRU5WeydTRVJWRVJfTkFNRSd9OwokTG9naW5QYXNzd29yZCA9ICRpbnsncCd9OwokUnVuQ29tbWFuZCA9IGRlY29kZV9iYXNlNjQoJGlueydjJ30pOwokVHJhbnNmZXJGaWxlID0gJGlueydmJ307CiRPcHRpb25zID0gJGlueydvJ307CiRBY3Rpb24gPSAkaW57J2EnfTsKJEFjdGlvbiA9ICJjb21tYW5kIiBpZigkQWN0aW9uIGVxICIiKTsKJEN1cnJlbnREaXIgPSAmVHJpbVNsYXNoZXMoZGVjb2RlX2Jhc2U2NCh0cmltKCRpbnsnZCd9KSkpOwokUnVuQ29tbWFuZD0gJFdpbk5UPyJkaXIiOiJkaXIgLWxpYSIgaWYoJFJ1bkNvbW1hbmQgZXEgIiIpOwpjaG9tcCgkQ3VycmVudERpciA9IGAkQ21kUHdkYCkgaWYoJEN1cnJlbnREaXIgZXEgIiIpOwokTG9nZ2VkSW4gPSAkQ29va2llc3snU0FWRURQV0QnfSBlcSAkUGFzc3dvcmQ7CmlmKCRBY3Rpb24gZXEgImxvZ2luIiB8fCAhJExvZ2dlZEluKSAJCSMgdXNlciBuZWVkcy9oYXMgdG8gbG9naW4KewoJJlBlcmZvcm1Mb2dpbjsKfWVsc2lmKCRBY3Rpb24gZXEgImd1aSIpICMgR1VJIGRpcmVjdG9yeQp7CgkmUHJpbnRQYWdlSGVhZGVyKCJkIik7CglpZighJFdpbk5UKQoJewoJCSRjaG1vZD1pbnQoJGlueydjaG1vZCd9KTsKCQlpZigkY2htb2QgbmUgMCkKCQl7CgkJCSRjaG1vZD1pbnQoJGlueydjaG1vZCd9KTsKCQkJJGZpbGU9JEN1cnJlbnREaXIuJFBhdGhTZXAuJFRyYW5zZmVyRmlsZTsKCQkJaWYoY2htb2QoJGNobW9kLCRmaWxlKSkKCQkJewoJCQkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJCQl9ZWxzZQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJCQl9CgkJfQoJfQoJJHJlbmFtZT0kaW57J3JlbmFtZSd9OwoJaWYoJHJlbmFtZSBuZSAiIikKCXsKCQlpZihyZW5hbWUoJFRyYW5zZmVyRmlsZSwkcmVuYW1lKSkKCQl7CgkJCXByaW50ICI8cnVuPiBEb25lISA8L3J1bj48YnI+IjsKCQl9ZWxzZQoJCXsKCQkJcHJpbnQgIjxydW4+IFNvcnJ5ISBZb3UgZG9udCBoYXZlIHBlcm1pc3Npb25zISA8L3J1bj48YnI+IjsKCQl9Cgl9CgkkcmVtb3ZlPSRpbnsncmVtb3ZlJ307CglpZigkcmVtb3ZlIG5lICIiKQoJewoJCSRybSA9ICRDdXJyZW50RGlyLiRQYXRoU2VwLiRyZW1vdmU7CgkJaWYoLWQgJHJtKQoJCXsKCQkJJlJtRGlyKCRybSk7CgkJfWVsc2UKCQl7CgkJCWlmKHVubGluaygkcm0pKQoJCQl7CgkJCQlwcmludCAiPHJ1bj4gRG9uZSEgPC9ydW4+PGJyPiI7CgkJCX1lbHNlCgkJCXsKCQkJCXByaW50ICI8cnVuPiBTb3JyeSEgWW91IGRvbnQgaGF2ZSBwZXJtaXNzaW9ucyEgPC9ydW4+PGJyPiI7CgkJCX0JCQkKCQl9Cgl9CglwcmludCAmTGlzdERpcjsKfWVsc2lmKCRBY3Rpb24gZXEgImNvbW1hbmQiKQkJCQkgCSMgdXNlciB3YW50cyB0byBydW4gYSBjb21tYW5kCnsKCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCXByaW50ICZFeGVjdXRlQ29tbWFuZDsKfQplbHNpZigkQWN0aW9uIGVxICJzYXZlIikJCQkJIAkjIHVzZXIgd2FudHMgdG8gc2F2ZSBhIGZpbGUKewoJJlByaW50UGFnZUhlYWRlcjsKCWlmKCZTYXZlRmlsZSgkaW57J2RhdGEnfSwkaW57J2ZpbGUnfSkpCgl7CgkJcHJpbnQgIjxydW4+IERvbmUhIDwvcnVuPjxicj4iOwoJfWVsc2UKCXsKCQlwcmludCAiPHJ1bj4gU29ycnkhIFlvdSBkb250IGhhdmUgcGVybWlzc2lvbnMhIDwvcnVuPjxicj4iOwoJfQoJcHJpbnQgJkxpc3REaXI7Cn1lbHNpZigkQWN0aW9uIGVxICJ1cGxvYWQiKSAJCQkJCXsKCSZQcmludFBhZ2VIZWFkZXIoImMiKTsKCXByaW50ICZVcGxvYWRGaWxlOwp9ZWxzaWYoJEFjdGlvbiBlcSAiYmFja2JpbmQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGJhY2sgY29ubmVjdCBvciBiaW5kIHBvcnQKewoJJlByaW50UGFnZUhlYWRlcigiY2xpZW50cG9ydCIpOwoJcHJpbnQgJkJhY2tCaW5kOwp9ZWxzaWYoJEFjdGlvbiBlcSAiYnJ1dGVmb3JjZXIiKSAJCQkjIHVzZXIgd2FudHMgdG8gYnJ1dGUgZm9yY2UKewoJJlByaW50UGFnZUhlYWRlcjsKCXByaW50ICZCcnV0ZUZvcmNlcjsKfWVsc2lmKCRBY3Rpb24gZXEgImNvbmZpZ21hcmlvbiIpIAkJCSMgdXNlciB3YW50cyB0byBicnV0ZSBmb3JjZQp7CgkmUHJpbnRQYWdlSGVhZGVyOwoJcHJpbnQgJkNvbmZpZ01hcmlvbjsKfWVsc2lmKCRBY3Rpb24gZXEgImRvd25sb2FkIikgCQkJCSMgdXNlciB3YW50cyB0byBkb3dubG9hZCBhIGZpbGUKewoJcHJpbnQgJkRvd25sb2FkRmlsZTsKfWVsc2lmKCRBY3Rpb24gZXEgImNoZWNrbG9nIikgCQkJCSMgdXNlciB3YW50cyB0byB2aWV3IGxvZyBmaWxlCnsKCSZQcmludFBhZ2VIZWFkZXI7CglwcmludCAmVmlld0xvZzsKCn1lbHNpZigkQWN0aW9uIGVxICJkb21haW5zdXNlciIpIAkJCSMgdXNlciB3YW50cyB0byB2aWV3IGxpc3QgdXNlci9kb21haW4KewoJJlByaW50UGFnZUhlYWRlcjsKCXByaW50ICZWaWV3RG9tYWluVXNlcjsKfQplbHNpZigkQWN0aW9uIGVxICJsb2dvdXQiKSAJCQkJIyB1c2VyIHdhbnRzIHRvIGxvZ291dAp7CgkmUGVyZm9ybUxvZ291dDsKfQomUHJpbnRQYWdlRm9vdGVyOw==
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement