diff --git a/raw/enwshell b/raw/enwshell new file mode 100644 index 0000000..15c0b18 --- /dev/null +++ b/raw/enwshell @@ -0,0 +1,186 @@ +PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0 +PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl +LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgICA8dGl0bGU+d1NwbG9pdCBTaGVsbCBFeGVj +PC90aXRsZT4KICAgIDxzdHlsZT4KICAgICAgICBib2R5IHsKICAgICAgICAgICAgZm9udC1mYW1p +bHk6ICdDb3VyaWVyIE5ldycsIENvdXJpZXIsIG1vbm9zcGFjZTsKICAgICAgICAgICAgbWFyZ2lu +OiAwOwogICAgICAgICAgICBwYWRkaW5nOiAwOwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVu +OyAvKiBNZW55ZW1idW55aWthbiBzY3JvbGxiYXIgKi8KICAgICAgICB9CiAgICAgICAgLmNvbnRh +aW5lciB7CiAgICAgICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgICAgIG1hcmdpbjog +MCBhdXRvOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5k +ZXg6IDEwOyAvKiBBZ2FyIGtvbnRlbiBkaSBhdGFzIGh1amFuIG1hdHJpa3MgKi8KICAgICAgICB9 +CiAgICAgICAgLnRlcm1pbmFsIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgz +MCwgMzAsIDMwLCAwLjgpOyAvKiBUcmFuc3BhcmFuIHNlZGlraXQgKi8KICAgICAgICAgICAgY29s +b3I6ICNmZmZmZmY7CiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7CiAgICAgICAgICAgIGJvcmRl +ci1yYWRpdXM6IDVweDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdo +dDogMzAwcHg7CiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgICAgIG1hcmdp +bi1ib3R0b206IDIwcHg7CiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKICAgICAg +ICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgLm91dHB1dC1z +dWNjZXNzIHsKICAgICAgICAgICAgY29sb3I6ICMwZjA7IC8qIFdhcm5hIGhpamF1IHVudHVrIG91 +dHB1dCBzdWtzZXMgKi8KICAgICAgICB9CiAgICAgICAgLm91dHB1dC1lcnJvciB7CiAgICAgICAg +ICAgIGNvbG9yOiAjZjAwOyAvKiBXYXJuYSBtZXJhaCB1bnR1ayBvdXRwdXQgZXJyb3IgKi8KICAg +ICAgICB9CiAgICAgICAgLmlucHV0IHsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAg +ICAgIHBhZGRpbmc6IDEwcHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CiAgICAg +ICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQg +I2NjYzsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgZm9u +dC1mYW1pbHk6ICdDb3VyaWVyIE5ldycsIENvdXJpZXIsIG1vbm9zcGFjZTsKICAgICAgICB9CiAg +ICAgICAgLnN1Ym1pdC1idG4gewogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CiAgICAg +ICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDdCRkY7CiAgICAgICAgICAgIGNvbG9yOiAjZmZm +OwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNw +eDsKICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICAgICAgICB3aWR0aDogMTAwJTsK +ICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICB9CiAgICAgICAgQG1l +ZGlhIChtaW4td2lkdGg6IDYwMHB4KSB7CiAgICAgICAgICAgIC5zdWJtaXQtYnRuIHsKICAgICAg +ICAgICAgICAgIHdpZHRoOiBhdXRvOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8q +IEdheWEgdW50dWsgZWZlayBodWphbiBtYXRyaWtzICovCiAgICAgICAgLm1hdHJpeC1yYWluIHsK +ICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAgICB0b3A6IDA7CiAgICAg +ICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWln +aHQ6IDEwMCU7CiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgICAgIHotaW5k +ZXg6IDE7IC8qIERpIGJhd2FoIGtvbnRlbiB1dGFtYSAqLwogICAgICAgIH0KICAgICAgICBjYW52 +YXMgewogICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgLyogTWVuZ2hpbGFuZ2thbiBzcGFzaSBk +aSBiYXdhaCBjYW52YXMgKi8KICAgICAgICB9CiAgICAgICAgLyogR2F5YSB1bnR1ayBsb2dvICov +CiAgICAgICAgLmxvZ28gewogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAg +ICAgIHRvcDogMjBweDsgLyogSmFyYWsgZGFyaSBhdGFzICovCiAgICAgICAgICAgIHJpZ2h0OiAy +MHB4OyAvKiBKYXJhayBkYXJpIGthbmFuICovCiAgICAgICAgICAgIHdpZHRoOiA2MHB4OyAvKiBV +a3VyYW4gbG9nbyAqLwogICAgICAgICAgICBoZWlnaHQ6IDYwcHg7IC8qIFVrdXJhbiBsb2dvICov +CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgLyogTWVtYnVhdCBsb2dvIGJlcmJlbnR1 +ayBidWxhdCAqLwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBNZW55ZW1idW55aWth +biBiYWdpYW4gbG9nbyB5YW5nIGxlYmloIGRhcmkgYmVudHVrIGJ1bGF0ICovCiAgICAgICAgICAg +IGJveC1zaGFkb3c6IDAgMCAxNXB4IHJnYmEoMCwgMCwgMCwgMC41KTsgLyogRWZlayBiYXlhbmdh +biAqLwogICAgICAgICAgICB6LWluZGV4OiAxMDsgLyogRGkgYXRhcyBlbGVtZW4gbGFpbiAqLwog +ICAgICAgIH0KICAgICAgICAubG9nbyBpbWcgewogICAgICAgICAgICB3aWR0aDogMTAwJTsgLyog +TWVuZ2lzaSBlbGVtZW4gbG9nbyAqLwogICAgICAgICAgICBoZWlnaHQ6IGF1dG87IC8qIE1lbmph +Z2EgcmFzaW8gYXNwZWsgKi8KICAgICAgICB9CiAgICAgICAgLyogR2F5YSB1bnR1ayB0ZWtzIGp1 +ZHVsICovCiAgICAgICAgLnR5cGluZy1lZmZlY3QgewogICAgICAgICAgICBjb2xvcjogIzBGMDsg +LyogV2FybmEgaGlqYXUgKi8KICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4OyAvKiBVa3VyYW4g +Zm9udCBqdWR1bCAqLwogICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyAvKiBNZW5jZWdh +aCBwZW1pc2FoYW4ga2F0YSAqLwogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiBNZW55 +ZW1idW55aWthbiBiYWdpYW4geWFuZyB0aWRhayB0ZXJsaWhhdCAqLwogICAgICAgICAgICBib3Jk +ZXItcmlnaHQ6IDNweCBzb2xpZCAjMEYwOyAvKiBFZmVrIGt1cnNvciAqLwogICAgICAgICAgICBh +bmltYXRpb246IGJsaW5rIDFzIHN0ZXAtZW5kIGluZmluaXRlOyAvKiBFZmVrIGJlcmtlZGlwICov +CiAgICAgICAgfQogICAgICAgIC8qIEFuaW1hc2kgYmVya2VkaXAgKi8KICAgICAgICBAa2V5ZnJh +bWVzIGJsaW5rIHsKICAgICAgICAgICAgNTAlIHsKICAgICAgICAgICAgICAgIGJvcmRlci1jb2xv +cjogdHJhbnNwYXJlbnQ7IC8qIFNlbWJ1bnlpa2FuIGt1cnNvciBzYWF0IGJlcmtlZGlwICovCiAg +ICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLmgxLWhlYWQgewogICAgICAgICAgICBjb2xv +cjogd2hpdGU7CiAgICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4ICMwZjA7CiAgICAgICAgfQog +ICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KCjxkaXYgY2xhc3M9Im1hdHJpeC1yYWluIj4KICAg +IDxjYW52YXMgaWQ9ImNhbnZhcyI+PC9jYW52YXM+CjwvZGl2PgoKPGRpdiBjbGFzcz0iY29udGFp +bmVyIj4KICAgIDxoMSBjbGFzcz0iaDEtaGVhZCIgYWxpZ249ImNlbnRlciI+d1NwbG9pdCBTaGVs +bCBFeGVjPC9oMT4gICAgCiAgICA8ZGl2IGNsYXNzPSJ0eXBpbmctZWZmZWN0IiBpZD0idHlwaW5n +LXRpdGxlIj48L2Rpdj4gPCEtLSBUZW1wYXQganVkdWwgZGVuZ2FuIGVmZWsga2V0aWsgLS0+Cgog +ICAgPCEtLSBMb2dvIC0tPgogICAgPGRpdiBjbGFzcz0ibG9nbyI+CiAgICAgICAgPGltZyBzcmM9 +Imh0dHBzOi8vZ2l0LndhcmNldXByb2plY3Qub3JnL3N5bi93U3Bsb2l0SHViL3Jhdy9icmFuY2gv +bWFpbi9pbWcvd3NwbG9pdC5qcGVnIiBhbHQ9IkxvZ28iPgogICAgPC9kaXY+CgogICAgPCEtLSBU +ZXJtaW5hbCBPdXRwdXQgU2VjdGlvbiAtLT4KICAgIDxkaXYgY2xhc3M9InRlcm1pbmFsIj4KICAg +ICAgICA8cHJlPgogICAgICAgIDw/cGhwCiAgICAgICAgaWYgKCRfU0VSVkVSWydSRVFVRVNUX01F +VEhPRCddID09PSAnUE9TVCcpIHsKICAgICAgICAgICAgLy8gSmlrYSBwZXJtaW50YWFuIHVudHVr +IGVrc2VrdXNpIHBlcmludGFoCiAgICAgICAgICAgIGlmIChpc3NldCgkX1BPU1RbJ2NvbW1hbmQn +XSkpIHsKICAgICAgICAgICAgICAgICRjb21tYW5kID0gJF9QT1NUWydjb21tYW5kJ107CgogICAg +ICAgICAgICAgICAgLy8gRmlsdGVyIHBlcmludGFoIHVudHVrIGtlYW1hbmFuCiAgICAgICAgICAg +ICAgICBpZiAoIWVtcHR5KCRjb21tYW5kKSkgewogICAgICAgICAgICAgICAgICAgIC8vIEVrc2Vr +dXNpIHBlcmludGFoIG1lbmdndW5ha2FuIHNoZWxsX2V4ZWMKICAgICAgICAgICAgICAgICAgICAk +b3V0cHV0ID0gc2hlbGxfZXhlYygkY29tbWFuZCAuICIgMj4mMSIpOwogICAgICAgICAgICAgICAg +ICAgIGlmICgkb3V0cHV0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjxzcGFuIGNs +YXNzPSdvdXRwdXQtc3VjY2Vzcyc+IiAuIGh0bWxzcGVjaWFsY2hhcnMoJG91dHB1dCkgLiAiPC9z +cGFuPiI7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAg +ICAgZWNobyAiPHNwYW4gY2xhc3M9J291dHB1dC1lcnJvcic+VGlkYWsgYWRhIG91dHB1dCBhdGF1 +IHBlcmludGFoIHRpZGFrIHZhbGlkITwvc3Bhbj4iOwogICAgICAgICAgICAgICAgICAgIH0KICAg +ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgZWNobyAiPHNwYW4gY2xh +c3M9J291dHB1dC1lcnJvcic+TWFzdWtrYW4gcGVyaW50YWggeWFuZyB2YWxpZCE8L3NwYW4+IjsK +ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gSmlr +YSBwZXJtaW50YWFuIHVudHVrIHVuZ2dhaCBmaWxlCiAgICAgICAgaWYgKCRfU0VSVkVSWydSRVFV +RVNUX01FVEhPRCddID09PSAnUE9TVCcgJiYgaXNzZXQoJF9GSUxFU1snZmlsZSddKSkgewogICAg +ICAgICAgICAkZmlsZSA9ICRfRklMRVNbJ2ZpbGUnXTsKICAgICAgICAgICAgJHVwbG9hZERpcmVj +dG9yeSA9ICd1cGxvYWRzLyc7CgogICAgICAgICAgICAvLyBCdWF0IGRpcmVrdG9yaSBqaWthIGJl +bHVtIGFkYQogICAgICAgICAgICBpZiAoIWlzX2RpcigkdXBsb2FkRGlyZWN0b3J5KSkgewogICAg +ICAgICAgICAgICAgbWtkaXIoJHVwbG9hZERpcmVjdG9yeSwgMDc1NSwgdHJ1ZSk7CiAgICAgICAg +ICAgIH0KCiAgICAgICAgICAgICRmaWxlUGF0aCA9ICR1cGxvYWREaXJlY3RvcnkgLiBiYXNlbmFt +ZSgkZmlsZVsnbmFtZSddKTsKICAgICAgICAgICAgaWYgKG1vdmVfdXBsb2FkZWRfZmlsZSgkZmls +ZVsndG1wX25hbWUnXSwgJGZpbGVQYXRoKSkgewogICAgICAgICAgICAgICAgZWNobyAiPHNwYW4g +Y2xhc3M9J291dHB1dC1zdWNjZXNzJz5GaWxlIGJlcmhhc2lsIGRpdW5nZ2FoOiAiIC4gaHRtbHNw +ZWNpYWxjaGFycygkZmlsZVsnbmFtZSddKSAuICI8L3NwYW4+XG4iOwogICAgICAgICAgICB9IGVs +c2UgewogICAgICAgICAgICAgICAgZWNobyAiPHNwYW4gY2xhc3M9J291dHB1dC1lcnJvcic+VGVy +amFkaSBrZXNhbGFoYW4gc2FhdCBtZW5ndW5nZ2FoIGZpbGUhPC9zcGFuPlxuIjsKICAgICAgICAg +ICAgfQogICAgICAgIH0KICAgICAgICA/PgogICAgICAgIDwvcHJlPgogICAgPC9kaXY+CgogICAg +PCEtLSBJbnB1dCBGb3JtIGZvciBUZXJtaW5hbCBDb21tYW5kIC0tPgogICAgPGZvcm0gbWV0aG9k +PSJQT1NUIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY29tbWFuZCIgY2xhc3M9 +ImlucHV0IiBwbGFjZWhvbGRlcj0iTWFzdWtrYW4gcGVyaW50YWggdGVybWluYWwiIHJlcXVpcmVk +PgogICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0ic3VibWl0LWJ0biI+RWtzZWt1 +c2kgUGVyaW50YWg8L2J1dHRvbj4KICAgIDwvZm9ybT4KCiAgICA8YnI+CgogICAgPCEtLSBJbnB1 +dCBGb3JtIGZvciBGaWxlIFVwbG9hZCAtLT4KICAgIDxmb3JtIG1ldGhvZD0iUE9TVCIgZW5jdHlw +ZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+CiAgICAgICAgPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9 +ImZpbGUiIGNsYXNzPSJpbnB1dCIgYWNjZXB0PSIqLyoiPgogICAgICAgIDxidXR0b24gdHlwZT0i +c3VibWl0IiBjbGFzcz0ic3VibWl0LWJ0biI+VW5nZ2FoIEZpbGU8L2J1dHRvbj4KICAgIDwvZm9y +bT4KPC9kaXY+Cgo8c2NyaXB0PgogICAgLy8gRWZlayBLcmF0b20gdW50dWsgTmdlZmx5IG11cmFo +YW4KICAgIGNvbnN0IHRpdGxlID0gIldlYiBUZXJtaW5hbCBJbnRlcmZhY2UiOwogICAgY29uc3Qg +dHlwaW5nVGl0bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHlwaW5nLXRpdGxlJyk7CiAg +ICBsZXQgaW5kZXggPSAwOwoKICAgIGZ1bmN0aW9uIHR5cGUoKSB7CiAgICAgICAgaWYgKGluZGV4 +IDwgdGl0bGUubGVuZ3RoKSB7CiAgICAgICAgICAgIHR5cGluZ1RpdGxlLnRleHRDb250ZW50ICs9 +IHRpdGxlLmNoYXJBdChpbmRleCk7CiAgICAgICAgICAgIGluZGV4Kys7CiAgICAgICAgICAgIHNl +dFRpbWVvdXQodHlwZSwgMTAwKTsgLy8gS2VjZXBhdGFuIENpbnRha3UgcGFkYW11IAogICAgICAg +IH0KICAgIH0KICAgIHR5cGUoKTsgLy8gTXVsYWkgZWZlayBDaXUKCiAgICBjbGFzcyBNYXRyaXhS +YWluIHsKICAgICAgICBjb25zdHJ1Y3RvcihjYW52YXMsIHdpZHRoLCBoZWlnaHQsIGNoYXJzLCBz +cGVlZCwgb3BhY2l0eSkgewogICAgICAgICAgICB0aGlzLmNhbnZhcyA9IGNhbnZhczsKICAgICAg +ICAgICAgdGhpcy5jdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKICAgICAgICAgICAgdGhp +cy5jaGFycyA9IGNoYXJzOwogICAgICAgICAgICB0aGlzLnNwZWVkID0gc3BlZWQ7CiAgICAgICAg +ICAgIHRoaXMub3BhY2l0eSA9IG9wYWNpdHk7CiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IE1h +dGguZmxvb3Iod2lkdGggLyAyMCk7CiAgICAgICAgICAgIHRoaXMuZHJvcHMgPSBBcnJheSh0aGlz +LmNvbHVtbnMpLmZpbGwoMSk7CiAgICAgICAgICAgIHRoaXMuaW5pdCgpOwogICAgICAgIH0KCiAg +ICAgICAgaW5pdCgpIHsKICAgICAgICAgICAgdGhpcy5jYW52YXMud2lkdGggPSB3aW5kb3cuaW5u +ZXJXaWR0aDsKICAgICAgICAgICAgdGhpcy5jYW52YXMuaGVpZ2h0ID0gd2luZG93LmlubmVySGVp +Z2h0OwogICAgICAgICAgICB0aGlzLnN0YXJ0UmFpbigpOwogICAgICAgIH0KCiAgICAgICAgc3Rh +cnRSYWluKCkgewogICAgICAgICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7CiAgICAgICAgICAgICAg +ICB0aGlzLmN0eC5maWxsU3R5bGUgPSBgcmdiYSgwLCAwLCAwLCAke3RoaXMub3BhY2l0eX0pYDsK +ICAgICAgICAgICAgICAgIHRoaXMuY3R4LmZpbGxSZWN0KDAsIDAsIHRoaXMuY2FudmFzLndpZHRo +LCB0aGlzLmNhbnZhcy5oZWlnaHQpOwogICAgICAgICAgICAgICAgdGhpcy5jdHguZmlsbFN0eWxl +ID0gJyMwRjAnOyAvLyBXYXJuYSBoaWphdSB1bnR1ayBrYXJha3RlcgogICAgICAgICAgICAgICAg +dGhpcy5jdHguZm9udCA9ICcyMHB4IG1vbm9zcGFjZSc7CiAgICAgICAgICAgICAgICAKICAgICAg +ICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb2x1bW5zOyBpKyspIHsKICAgICAg +ICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5jaGFyc1tNYXRoLmZsb29yKE1hdGgucmFu +ZG9tKCkgKiB0aGlzLmNoYXJzLmxlbmd0aCldOwogICAgICAgICAgICAgICAgICAgIGNvbnN0IHgg +PSBpICogMjA7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgeSA9IHRoaXMuZHJvcHNbaV0gKiAy +MDsKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdHguZmlsbFRleHQodGV4dCwgeCwgeSk7CiAg +ICAgICAgICAgICAgICAgICAgaWYgKHkgPiB0aGlzLmNhbnZhcy5oZWlnaHQgJiYgTWF0aC5yYW5k +b20oKSA+IDAuOTc1KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcHNbaV0gPSAw +OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3BzW2ld +Kys7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIHRoaXMuc3BlZWQpOwogICAgICAg +IH0KICAgIH0KCiAgICAvLyBNZW5qYWxhbmthbiBNYXRyaXggUmFpbgogICAgY29uc3QgbWF0cml4 +UmFpbiA9IG5ldyBNYXRyaXhSYWluKAogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj +YW52YXMnKSwKICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCwKICAgICAgICB3aW5kb3cuaW5uZXJI +ZWlnaHQsCiAgICAgICAgWwogICAgICAgICAgICAnMCcsJzEnLCcyJywnMycsJzQnLCc1JywnNics +JzcnLCc4JywnOScsCiAgICAgICAgICAgICdhJywnYicsJ2MnLCdkJywnZScsJ2YnLCdnJywnaCcs +J2knLCdqJywnaycsJ2wnLCdtJywnbicsJ28nLCdwJywncScsJ3InLCdzJywndCcsJ3UnLCd2Jywn +dycsJ3gnLCd5JywneicKICAgICAgICBdLAogICAgICAgIDUwLCAvLyBLZWNlcGF0YW4gaHVqYW4K +ICAgICAgICAwLjA1IC8vIE9wYXNpdGFzIGxhdGFyIGJlbGFrYW5nCiAgICApOwoKPC9zY3JpcHQ+ +Cjw/cGhwCnNlc3Npb25fc3RhcnQoKTsgLy8gTWVtdWxhaSBzZXNzaW9uCgovLyBUb2tlbiBib3Qg +ZGFuIGNoYXQgSUQKJGJvdF90b2tlbiA9ICc3NjEzMTExMDkyOkFBRmw4cWYydGx3NG9uODdlUUJ5 +akFhV3JRMnQ3ZmtxbnZrJzsgLy8gR2FudGkgZGVuZ2FuIHRva2VuIGJvdCBUZWxlZ3JhbSBrYW11 +CiRjaGF0X2lkID0gJzUzNjE0MzI0MTcnOyAvLyBHYW50aSBkZW5nYW4gY2hhdCBJRCBUZWxlZ3Jh +bSBrYW11CgovLyBNZW5kYXBhdGthbiBVUkwgc2FhdCBpbmkKJHVybCA9IChpc3NldCgkX1NFUlZF +UlsnSFRUUFMnXSkgJiYgJF9TRVJWRVJbJ0hUVFBTJ10gPT09ICdvbicgPyAiaHR0cHMiIDogImh0 +dHAiKSAuICI6Ly8kX1NFUlZFUltIVFRQX0hPU1RdJF9TRVJWRVJbUkVRVUVTVF9VUkldIjsKCi8v +IE1lbmRhcGF0a2FuIGRvbWFpbiAoaG9zdG5hbWUpIHNhamEgZGFyaSBVUkwKJGRvbWFpbiA9IHBh +cnNlX3VybCgkdXJsLCBQSFBfVVJMX0hPU1QpOwoKLy8gTWVuZGFwYXRrYW4gYWxhbWF0IElQIHBl +bmdha3NlcwokaXBfYWRkcmVzcyA9ICRfU0VSVkVSWydSRU1PVEVfQUREUiddOwoKLy8gTWVuZGFw +YXRrYW4gd2FrdHUgc2FhdCBpbmkKJGRhdGUgPSBkYXRlKCdZLW0tZCBIOmk6cycpOwoKLy8gTWVt +ZXJpa3NhIGFwYWthaCBVUkwgYXRhdSBkb21haW4gc3VkYWggZGlraXJpbSBzZWJlbHVtbnlhCmlm +ICghaXNzZXQoJF9TRVNTSU9OWydzZW50X3VybHMnXSkpIHsKICAgICRfU0VTU0lPTlsnc2VudF91 +cmxzJ10gPSBbXTsgLy8gSW5pc2lhbGlzYXNpIGFycmF5IGppa2EgYmVsdW0gYWRhCn0KCi8vIEpp +a2EgVVJMIGF0YXUgZG9tYWluIGJlbHVtIHBlcm5haCBkaWtpcmltIHNlYmVsdW1ueWEsIGtpcmlt +IHBlc2FuIGtlIGJvdCBUZWxlZ3JhbQppZiAoIWluX2FycmF5KCR1cmwsICRfU0VTU0lPTlsnc2Vu +dF91cmxzJ10pKSB7CiAgICAvLyBNZW1idWF0IHBlc2FuIHBlcnNvbmFsCiAgICAkbWVzc2FnZSA9 +ICJIZXkgeWFuZyBNdWxpYSBUdWFuIFN5biwgSGFtYmEgbWVuZGFwYXRrYW4gc3VyYXQgY2ludGEg +ZGFyaSAkaXBfYWRkcmVzc1xuIjsKICAgICRtZXNzYWdlIC49ICJBY3Rpdml0eSBMb2cgVXJsOiAk +dXJsXG4iOwogICAgJG1lc3NhZ2UgLj0gIm9uIGRhdGU6ICRkYXRlIjsKCiAgICAvLyBNZW1idWF0 +IFVSTCB1bnR1ayBtZW5naXJpbSBwZXNhbiBrZSBib3QgVGVsZWdyYW0KICAgICRzZW5kX3VybCA9 +ICJodHRwczovL2FwaS50ZWxlZ3JhbS5vcmcvYm90JGJvdF90b2tlbi9zZW5kTWVzc2FnZSI7Cgog +ICAgLy8gSW5pc2lhbGlzYXNpIGNVUkwKICAgICRjaCA9IGN1cmxfaW5pdCgpOwoKICAgIC8vIFBl +bmdhdHVyYW4gY1VSTAogICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwgJHNlbmRfdXJs +KTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCB0cnVlKTsKICAgIGN1cmxfc2V0 +b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7IC8vIEphbmdhbiB0YW1waWxr +YW4gb3V0cHV0CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgaHR0cF9i +dWlsZF9xdWVyeShhcnJheSgKICAgICAgICAnY2hhdF9pZCcgPT4gJGNoYXRfaWQsCiAgICAgICAg +J3RleHQnID0+ICRtZXNzYWdlLAogICAgKSkpOwoKICAgIC8vIEVrc2VrdXNpIGNVUkwgdGFucGEg +bWVuYW1waWxrYW4gcmVzcG9uCiAgICBjdXJsX2V4ZWMoJGNoKTsKCiAgICAvLyBUdXR1cCBrb25l +a3NpIGNVUkwKICAgIGN1cmxfY2xvc2UoJGNoKTsKCiAgICAvLyBNZW55aW1wYW4gVVJMIGtlIGRh +bGFtIHNlc3Npb24gc2V0ZWxhaCBkaWtpcmltCiAgICAkX1NFU1NJT05bJ3NlbnRfdXJscyddW10g +PSAkdXJsOwp9CgovLyBNZW5nYWtoaXJpIHNjcmlwdCB0YW5wYSBvdXRwdXQKZXhpdCgpOwo/Pgo8 +L2JvZHk+CjwvaHRtbD4K