home.svg
Home
EV
List
A
About
Album
Animation
API
B
BIO
Blog
m_blog
C
Category
Church
Contact
CTA
DE
Dev
Email
Events
FG
Google
FAQ
Flash Messages
Footer
Form
HIL
Headings
Home-Page
Info
Integrations
MN
Misc
Modules
OP
Pagination
Portfolio
Product
QR
Quote
Restaurant
ST
Team
Test
Testimonials
Service
Shopping
U-Z
yii2
Contact
Google
DesignA
DesignB
Email
DesignA
EasyAppt
Form
-> Contact ->
Google
DesignA
DesignB
(1) this form module depend on module php_gp1. At the inertMenu, run ",topC,php_gp1"
(2) also use UpdateModuleVar1 to update email server settings
(3) This module will do three thing
a. Send mail to admin email
b. Send mail to submitter email
Title
TBA
Different image
Page,idxx-xx,oneColumn,
oneColumn/id15-41,Click to clipboard
ezE6IHsnZW4nOiB7J1NsaWRlVHlwZSc6ICdUaW55TUNFJywKICAgICAgICAgICAgJ2FJbWFnZSc6ICcnLAogICAgICAgICAgICAnYUxhYmVsJzogJycsCiAgICAgICAgICAgICdhZGRDbGFzcyc6ICcnLAogICAgICAgICAgICAnY29kZSc6ICc8ZGl2IGNsYXNzPSJteS1jb250YWN0LWZvcm0gY3RleHQiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxmb3JtIHJvbGU9ImZvcm0iIG1ldGhvZD0icG9zdCIgJwogICAgICAgICAgICAgICAgICAgICdhY3Rpb249ImNvbnRhY3RfcHJvYy5waHAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJzx1bCBjbGFzcz0iZmxvYXQtcmlnaHQiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPGxpPigxKSB0aGlzIGZvcm0gbW9kdWxlIGRlcGVuZCBvbiBtb2R1bGUgcGhwX2dwMS4gQXQgJwogICAgICAgICAgICAgICAgICAgICd0aGUgaW5lcnRNZW51LCBydW4gIix0b3BDLHBocF9ncDEiPC9saT5cclxuJwogICAgICAgICAgICAgICAgICAgICcgIDxsaT4oMikgYWxzbyB1c2UgVXBkYXRlTW9kdWxlVmFyMSB0byB1cGRhdGUgZW1haWwgJwogICAgICAgICAgICAgICAgICAgICdzZXJ2ZXIgc2V0dGluZ3M8L2xpPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPGxpPigzKSBUaGlzIG1vZHVsZSB3aWxsIGRvIHRocmVlIHRoaW5nIDx1bD5cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgPGxpPiBhLiBTZW5kIG1haWwgdG8gYWRtaW4gZW1haWwgPC9saT5cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgPGxpPiBiLiBTZW5kIG1haWwgdG8gc3VibWl0dGVyIGVtYWlsIDwvbGk+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIDwvdWw+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8L2xpPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPC91bD5cclxuJwogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0iZW1haWwiIHBsYWNlaG9sZGVyPSIgWW91ciBlbWFpbCIgJwogICAgICAgICAgICAgICAgICAgICdjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJlbWFpbCIgc2l6ZT0iNDUiICcKICAgICAgICAgICAgICAgICAgICAnb25rZXlwcmVzcz0icmV0dXJuIGRpc2FibGVFbnRlcktleShldmVudCkiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzwvZGl2PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxpbnB1dCBwbGFjZWhvbGRlcj0iIFlvdXIgbmFtZSIgY2xhc3M9ImZvcm0tY29udHJvbCIgJwogICAgICAgICAgICAgICAgICAgICduYW1lPSJyZXF1c2VybmFtZSIgdHlwZT0idGV4dCIgc2l6ZT0iNDUiICcKICAgICAgICAgICAgICAgICAgICAnb25rZXlwcmVzcz0icmV0dXJuIGRpc2FibGVFbnRlcktleShldmVudCkiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzwvZGl2PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxpbnB1dCBwbGFjZWhvbGRlcj0iIFN1YmplY3QiIGNsYXNzPSJmb3JtLWNvbnRyb2wiICcKICAgICAgICAgICAgICAgICAgICAnbmFtZT0ic3ViamVjdCIgdHlwZT0idGV4dCIgc2l6ZT0iNDUiIHZhbHVlPSIiICcKICAgICAgICAgICAgICAgICAgICAnb25rZXlwcmVzcz0icmV0dXJuIGRpc2FibGVFbnRlcktleShldmVudCkiPiBcclxuJwogICAgICAgICAgICAgICAgICAgICc8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICc8aDQ+VGl0bGU8L2g0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzx0ZXh0YXJlYSBjbGFzcz0iZm9ybS1jb250cm9sIiByb3dzPSI4IiAnCiAgICAgICAgICAgICAgICAgICAgJ25hbWU9Im1lc3NhZ2UiPlRCQTwvdGV4dGFyZWE+IFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzwvZGl2PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTdWJtaXQiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzwvZGl2PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzx0YWJsZT48dGJvZHk+PHRyPjx0ZD5cclxuJwogICAgICAgICAgICAgICAgICAgICc8aW1nIGlkPSJjYXB0Y2hhIiAnCiAgICAgICAgICAgICAgICAgICAgJ3NyYz0iL3BocC9zZWN1cmltYWdlL3NlY3VyaW1hZ2Vfc2hvdy5waHAiIGFsdD0iQ0FQVENIQSAnCiAgICAgICAgICAgICAgICAgICAgJ0ltYWdlIj5cclxuJwogICAgICAgICAgICAgICAgICAgICc8L3RkPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzx0ZD4gJm5ic3A7Jm5ic3A7ICA8c3BhbiBjbGFzcz0iZmFzICcKICAgICAgICAgICAgICAgICAgICAnZmEtbG9uZy1hcnJvdy1hbHQtcmlnaHQiPjwvc3Bhbj4gICZuYnNwOyZuYnNwO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJjYXB0Y2hhX2NvZGUiIHNpemU9IjEwIiAnCiAgICAgICAgICAgICAgICAgICAgJ21heGxlbmd0aD0iNiI+XHJcbicKICAgICAgICAgICAgICAgICAgICAnPGEgaHJlZj0iIyIgJwogICAgICAgICAgICAgICAgICAgICdvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJ2NhcHRjaGFcJykuc3JjID0gJwogICAgICAgICAgICAgICAgICAgICInL3BocC9zZWN1cmltYWdlL3NlY3VyaW1hZ2Vfc2hvdy5waHA/JyArIE1hdGgucmFuZG9tKCk7ICIKICAgICAgICAgICAgICAgICAgICAncmV0dXJuIGZhbHNlIiBjbGFzcz0iYnRuIGJ0bi13YXJuaW5nIGJ0bi1zbSI+RGlmZmVyZW50ICcKICAgICAgICAgICAgICAgICAgICAnaW1hZ2U8L2E+XHJcbicKICAgICAgICAgICAgICAgICAgICAnPC90ZD5cclxuJwogICAgICAgICAgICAgICAgICAgICc8L3RyPjwvdGJvZHk+PC90YWJsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICc8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICc8L2Zvcm0+XHJcbicKICAgICAgICAgICAgICAgICAgICAnPC9kaXY+JywKICAgICAgICAgICAgJ2NvZGVJbmMnOiAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzdHlsZUluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGhlYWQgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc3R5bGVJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHNjcmlwdEluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGJvZHkgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHNjcmlwdEluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdmdW5jdGlvbiBkaXNhYmxlRW50ZXJLZXkoZSlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICd7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICB2YXIga2V5OyAgICAgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgaWYod2luZG93LmV2ZW50KVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICBrZXkgPSB3aW5kb3cuZXZlbnQua2V5Q29kZTsgLy9JRVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgZWxzZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICBrZXkgPSBlLndoaWNoOyAvL2ZpcmVmb3ggICAgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgIHJldHVybiAoa2V5ICE9IDEzKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICd9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAnY29tcG9zZXJKU09OJzogJycsCiAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICdwaHBGaWxlJzogJzw/cGhwIC8qIGNvbnRhY3RfcHJvYy5waHAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdzZXNzaW9uX3N0YXJ0KCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiJHIgPSBleHBsb2RlKCcvJywgJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10pO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJy8vIHJlbGF0aXZlIHBhdGggdG8gZG9jdW1lbnQgcm9vdFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyRkb2Nyb290ID0gYXJyYXlfcmVkdWNlKGFycmF5X3NsaWNlKCRyLCAyKSwgJwogICAgICAgICAgICAgICAgICAgICAgICJmdW5jdGlvbigkYWNjLCAkaXRlbSkgeyByZXR1cm4gJGFjYy4nLi4vJzt9LCcnKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICdpbmNsdWRlX29uY2UgJGRvY3Jvb3QgLiAnCiAgICAgICAgICAgICAgICAgICAgICAgIicvcGhwL3NlY3VyaW1hZ2Uvc2VjdXJpbWFnZS5waHAnOyAkc2VjdXJpbWFnZSA9IG5ldyAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1NlY3VyaW1hZ2UoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgImlmIChpc3NldCgkX1JFUVVFU1RbJ2VtYWlsJ10pKSB7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAvLyByZWxhdGl2ZSBwYXRoIHRvIGRvY3VtZW50IHJvb3RcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIHJlcXVpcmUgJGRvY3Jvb3QgLiAnCiAgICAgICAgICAgICAgICAgICAgICAgIicvcGhwL1BIUE1haWxlci9QSFBNYWlsZXJBdXRvbG9hZC5waHAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgLy9pZiAiZW1haWwiIGlzIGZpbGxlZCBvdXQsIHNlbmQgZW1haWxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIC8vICRhc29uZUZpbGUtPnNhdmVKU09OKGFycmF5KDEsIDIgKSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBlY2hvICI8ZGl2IGNsYXNzPVwncGFuZWwgcGFuZWwtZGVmYXVsdFwnPiA8ZGl2ICcKICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3M9XCdwYW5lbC1ib2R5XCc+IDxkaXYgY2xhc3M9XCdmb3JtLXJlc3BcJz4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgaWYgKCRzZWN1cmltYWdlLT5jaGVjaygkX1BPU1RbJ2NhcHRjaGFfY29kZSddKSA9PSAiCiAgICAgICAgICAgICAgICAgICAgICAgJ2ZhbHNlKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAvLyB0aGUgY29kZSB3YXMgaW5jb3JyZWN0XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAvLyB5b3Ugc2hvdWxkIGhhbmRsZSB0aGUgZXJyb3Igc28gdGhhdCB0aGUgZm9ybSAnCiAgICAgICAgICAgICAgICAgICAgICAgInByb2Nlc3NvciBkb2Vzbid0IGNvbnRpbnVlXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAvLyBvciB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGNvZGUgaWYgdGhlcmUgaXMgJwogICAgICAgICAgICAgICAgICAgICAgICdubyB2YWxpZGF0aW9uIG9yIHlvdSBkbyBub3Qga25vdyBob3dcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgIGVjaG8gIjxoMz5UaGUgc2VjdXJpdHkgY29kZSBlbnRlcmVkIHdhcyAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2luY29ycmVjdC48L2gzPiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICBlY2hvICI8aDM+UGxlYXNlIGdvIDxhICcKICAgICAgICAgICAgICAgICAgICAgICAiaHJlZj0namF2YXNjcmlwdDpoaXN0b3J5LmdvKC0xKSc+YmFjazwvYT4gYW5kIHRyeSAiCiAgICAgICAgICAgICAgICAgICAgICAgJ2FnYWluLjwvaDM+IjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgIGV4aXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAkbWFpbCA9IG5ldyBQSFBNYWlsZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnLy9UZWxsIFBIUE1haWxlciB0byB1c2UgU01UUFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJy8vVGVsbCBQSFBNYWlsZXIgdG8gdXNlIFNNVFBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICckbWFpbC0+aXNTTVRQKCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnLy9FbmFibGUgU01UUCBkZWJ1Z2dpbmdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcvLyAwID0gb2ZmIChmb3IgcHJvZHVjdGlvbiB1c2UpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnLy8gMSA9IGNsaWVudCBtZXNzYWdlc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJy8vIDIgPSBjbGllbnQgYW5kIHNlcnZlciBtZXNzYWdlc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyRtYWlsLT5TTVRQRGVidWcgPSAwO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJy8vQXNrIGZvciBIVE1MLWZyaWVuZGx5IGRlYnVnIG91dHB1dFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiRtYWlsLT5EZWJ1Z291dHB1dCA9ICdodG1sJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcvL1NldCB0aGUgaG9zdG5hbWUgb2YgdGhlIG1haWwgc2VydmVyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnJG1haWwtPkhvc3QgPSAic210cC5iaXptYWlsLnlhaG9vLmNvbSI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnLy9TZXQgdGhlIFNNVFAgcG9ydCBudW1iZXIgLSBsaWtlbHkgdG8gYmUgMjUsIDQ2NSBvciAnCiAgICAgICAgICAgICAgICAgICAgICAgJzU4N1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyRtYWlsLT5Qb3J0ID0gNDY1O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiRtYWlsLT5TTVRQU2VjdXJlID0gJ3NzbCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnLy9XaGV0aGVyIHRvIHVzZSBTTVRQIGF1dGhlbnRpY2F0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnJG1haWwtPlNNVFBBdXRoID0gdHJ1ZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcvL1VzZXJuYW1lIHRvIHVzZSBmb3IgU01UUCBhdXRoZW50aWNhdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyRtYWlsLT5Vc2VybmFtZSA9ICJuby1yZXBseUBhc29uZWxpc3QuY29tIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcvL1Bhc3N3b3JkIHRvIHVzZSBmb3IgU01UUCBhdXRoZW50aWNhdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyRtYWlsLT5QYXNzd29yZCA9ICJjbGVnaXZtYmlwc2pzZ3d0IjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcvL1NldCB3aG8gdGhlIG1lc3NhZ2UgaXMgdG8gYmUgc2VudCBmcm9tXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiJG1haWwtPnNldEZyb20oJ25vLXJlcGx5QGFzb25lbGlzdC5jb20nLCAiCiAgICAgICAgICAgICAgICAgICAgICAgIiRfU0VSVkVSWydIVFRQX0hPU1QnXS4nIFN1Ym1pdCcpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJy8vU2V0IGFuIGFsdGVybmF0aXZlIHJlcGx5LXRvIGFkZHJlc3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIkbWFpbC0+YWRkUmVwbHlUbygnRG8gbm90IHJlcGx5JywgJ0RvIG5vdCByZXBseScpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJy8vU2V0IHdobyB0aGUgbWVzc2FnZSBpcyB0byBiZSBzZW50IHRvXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiJG1haWwtPmFkZEFkZHJlc3MoJ21hcmtAd2ViYXNvbmUuY29tJywgJ0RvIG5vdCAiCiAgICAgICAgICAgICAgICAgICAgICAgIlJlcGx5Jyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAiICAkbWFpbC0+YWRkQWRkcmVzcygkX1JFUVVFU1RbJ2VtYWlsJ10sICdEbyBub3QgIgogICAgICAgICAgICAgICAgICAgICAgICJSZXBseScpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJy8vU2V0IHRoZSBzdWJqZWN0IGxpbmVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIC8vc2VuZCBlbWFpbFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgJG1haWwtPlN1YmplY3QgPSAnKERvIG5vdCByZXBseSkgdmlhICIKICAgICAgICAgICAgICAgICAgICAgICAnbWFya0B3ZWJhc29uZS5jb20gZnJvbSAnCiAgICAgICAgICAgICAgICAgICAgICAgIicuZ2V0aG9zdG5hbWUoKS4nOicuJF9SRVFVRVNUWydlbWFpbCddO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgIiAgJG1zZyA9ICc8cD5XZWJzaXRlOiBGb3J3YXJkIGVtYWlsbCBzdWJqZWN0PC9wPic7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAiICAkbXNnIC49ICc8cD5Gcm9tOiAgIgogICAgICAgICAgICAgICAgICAgICAgICdcJy4kX1JFUVVFU1RbXCdyZXF1c2VybmFtZVwnXS4iPC9wPlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAkbXNnIC49ICc8cD5FbWFpbDogIgogICAgICAgICAgICAgICAgICAgICAgICdcJy4kX1JFUVVFU1RbXCdlbWFpbFwnXS4iPC9wPlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAkbXNnIC49ICc8cD5TdWJqZWN0OiAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ3N1YmplY3RcJ10uIjwvcD5cXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgaWYgKGFycmF5X2tleV9leGlzdHMoJ2Rpc2NvdW50Q29kZScsICRfUkVRVUVTVCkpICIKICAgICAgICAgICAgICAgICAgICAgICAne1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgJG1zZyAuPSAnRGlzY291bnQgY29kZSA6ICIKICAgICAgICAgICAgICAgICAgICAgICAnXCcuJF9SRVFVRVNUW1wnZGlzY291bnRDb2RlXCddLiJcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgaWYgKGFycmF5X2tleV9leGlzdHMoJ0hvbWVQYXR0ZXJuJywgJF9SRVFVRVNUKSkge1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgJG1zZyAuPSAnSG9tZSBQYXR0ZXJuOiAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ0hvbWVQYXR0ZXJuXCddLiJcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgJG1zZyAuPSAiPHByZT5NZXNzYWdlOlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAkbXNnIC49ICRfUkVRVUVTVFtcJ21lc3NhZ2VcJ10uIjwvcHJlPlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAkbWFpbC0+bXNnSFRNTCgkbXNnKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIGlmICgkbWFpbC0+c2VuZCgpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICBlY2hvICI8aDM+VGhhbmtzIGZvciB5b3VyIHN1Ym1pdDwvaDM+IjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICBlY2hvICI8aDM+IFN5c3RlbSBFcnJvcjogU29ycnkgc3lzdGVtICcKICAgICAgICAgICAgICAgICAgICAgICAnZmFpbHVyZTwvaDM+IjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nLAogICAgICAgICAgICAncGhwRmlsZUEnOiAnJywKICAgICAgICAgICAgJ3BocEZpbGVCJzogJycsCiAgICAgICAgICAgICd0Y29kZSc6ICcnLAogICAgICAgICAgICAndmNvZGUnOiAnJ30sCiAgICAgJ2VuLVVTJzogeydTbGlkZVR5cGUnOiAnVGlueU1DRScsCiAgICAgICAgICAgICAgICdhSW1hZ2UnOiAnJywKICAgICAgICAgICAgICAgJ2FMYWJlbCc6ICcnLAogICAgICAgICAgICAgICAnYWRkQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgJ2NvZGUnOiAnPGRpdiBjbGFzcz0ibXktY29udGFjdC1mb3JtIGN0ZXh0Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8Zm9ybSByb2xlPSJmb3JtIiBtZXRob2Q9InBvc3QiICcKICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uPSJjb250YWN0X3Byb2MucGhwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8dWwgY2xhc3M9ImZsb2F0LXJpZ2h0Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDxsaT4oMSkgdGhpcyBmb3JtIG1vZHVsZSBkZXBlbmQgb24gbW9kdWxlIHBocF9ncDEuICcKICAgICAgICAgICAgICAgICAgICAgICAnQXQgdGhlIGluZXJ0TWVudSwgcnVuICIsdG9wQyxwaHBfZ3AxIjwvbGk+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICA8bGk+KDIpIGFsc28gdXNlIFVwZGF0ZU1vZHVsZVZhcjEgdG8gdXBkYXRlIGVtYWlsICcKICAgICAgICAgICAgICAgICAgICAgICAnc2VydmVyIHNldHRpbmdzPC9saT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDxsaT4oMykgVGhpcyBtb2R1bGUgd2lsbCBkbyB0aHJlZSB0aGluZyA8dWw+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxsaT4gYS4gU2VuZCBtYWlsIHRvIGFkbWluIGVtYWlsIDwvbGk+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxsaT4gYi4gU2VuZCBtYWlsIHRvIHN1Ym1pdHRlciBlbWFpbCA8L2xpPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8L3VsPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPC9saT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDwvdWw+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPGlucHV0IHR5cGU9ImVtYWlsIiBwbGFjZWhvbGRlcj0iIFlvdXIgZW1haWwiICcKICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3M9ImZvcm0tY29udHJvbCIgbmFtZT0iZW1haWwiIHNpemU9IjQ1IiAnCiAgICAgICAgICAgICAgICAgICAgICAgJ29ua2V5cHJlc3M9InJldHVybiBkaXNhYmxlRW50ZXJLZXkoZXZlbnQpIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8aW5wdXQgcGxhY2Vob2xkZXI9IiBZb3VyIG5hbWUiIGNsYXNzPSJmb3JtLWNvbnRyb2wiICcKICAgICAgICAgICAgICAgICAgICAgICAnbmFtZT0icmVxdXNlcm5hbWUiIHR5cGU9InRleHQiIHNpemU9IjQ1IiAnCiAgICAgICAgICAgICAgICAgICAgICAgJ29ua2V5cHJlc3M9InJldHVybiBkaXNhYmxlRW50ZXJLZXkoZXZlbnQpIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8aW5wdXQgcGxhY2Vob2xkZXI9IiBTdWJqZWN0IiBjbGFzcz0iZm9ybS1jb250cm9sIiAnCiAgICAgICAgICAgICAgICAgICAgICAgJ25hbWU9InN1YmplY3QiIHR5cGU9InRleHQiIHNpemU9IjQ1IiB2YWx1ZT0iIiAnCiAgICAgICAgICAgICAgICAgICAgICAgJ29ua2V5cHJlc3M9InJldHVybiBkaXNhYmxlRW50ZXJLZXkoZXZlbnQpIj4gXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPGg0PlRpdGxlPC9oND5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8dGV4dGFyZWEgY2xhc3M9ImZvcm0tY29udHJvbCIgcm93cz0iOCIgJwogICAgICAgICAgICAgICAgICAgICAgICduYW1lPSJtZXNzYWdlIj5UQkE8L3RleHRhcmVhPiBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iU3VibWl0Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8dGFibGU+PHRib2R5Pjx0cj48dGQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPGltZyBpZD0iY2FwdGNoYSIgJwogICAgICAgICAgICAgICAgICAgICAgICdzcmM9Ii9waHAvc2VjdXJpbWFnZS9zZWN1cmltYWdlX3Nob3cucGhwIiBhbHQ9IkNBUFRDSEEgJwogICAgICAgICAgICAgICAgICAgICAgICdJbWFnZSI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC90ZD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8dGQ+ICZuYnNwOyZuYnNwOyAgPHNwYW4gY2xhc3M9ImZhcyAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2ZhLWxvbmctYXJyb3ctYWx0LXJpZ2h0Ij48L3NwYW4+ICAmbmJzcDsmbmJzcDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iY2FwdGNoYV9jb2RlIiBzaXplPSIxMCIgJwogICAgICAgICAgICAgICAgICAgICAgICdtYXhsZW5ndGg9IjYiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxhIGhyZWY9IiMiICcKICAgICAgICAgICAgICAgICAgICAgICAnb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCdjYXB0Y2hhXCcpLnNyYyA9ICcKICAgICAgICAgICAgICAgICAgICAgICAiJy9waHAvc2VjdXJpbWFnZS9zZWN1cmltYWdlX3Nob3cucGhwPycgKyAiCiAgICAgICAgICAgICAgICAgICAgICAgJ01hdGgucmFuZG9tKCk7IHJldHVybiBmYWxzZSIgY2xhc3M9ImJ0biBidG4td2FybmluZyAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2J0bi1zbSI+RGlmZmVyZW50IGltYWdlPC9hPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvdGQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC90cj48L3Rib2R5PjwvdGFibGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9mb3JtPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvZGl2PicsCiAgICAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBib2R5IHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzY3JpcHRJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnZnVuY3Rpb24gZGlzYWJsZUVudGVyS2V5KGUpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAne1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgdmFyIGtleTsgICAgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgIGlmKHdpbmRvdy5ldmVudClcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAga2V5ID0gd2luZG93LmV2ZW50LmtleUNvZGU7IC8vSUVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgIGVsc2VcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAga2V5ID0gZS53aGljaDsgLy9maXJlZm94ICAgICAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICByZXR1cm4gKGtleSAhPSAxMyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBFbmRcclxuJywKICAgICAgICAgICAgICAgJ2NvbXBvc2VySlNPTic6ICcnLAogICAgICAgICAgICAgICAnZHluYW1pY0Jsb2NrJzogJycsCiAgICAgICAgICAgICAgICdmaWxlJzogJycsCiAgICAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAgICAncGhwRmlsZSc6ICc8P3BocCAvKiBjb250YWN0X3Byb2MucGhwICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Vzc2lvbl9zdGFydCgpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiRyID0gZXhwbG9kZSgnLycsICRfU0VSVkVSWydSRVFVRVNUX1VSSSddKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICcvLyByZWxhdGl2ZSBwYXRoIHRvIGRvY3VtZW50IHJvb3RcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICckZG9jcm9vdCA9IGFycmF5X3JlZHVjZShhcnJheV9zbGljZSgkciwgMiksICcKICAgICAgICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb24oJGFjYywgJGl0ZW0pIHsgcmV0dXJuICRhY2MuJy4uLyc7fSwnJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5jbHVkZV9vbmNlICRkb2Nyb290IC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICInL3BocC9zZWN1cmltYWdlL3NlY3VyaW1hZ2UucGhwJzsgJHNlY3VyaW1hZ2UgPSBuZXcgIgogICAgICAgICAgICAgICAgICAgICAgICAgICdTZWN1cmltYWdlKCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICJpZiAoaXNzZXQoJF9SRVFVRVNUWydlbWFpbCddKSkge1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgLy8gcmVsYXRpdmUgcGF0aCB0byBkb2N1bWVudCByb290XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICByZXF1aXJlICRkb2Nyb290IC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICInL3BocC9QSFBNYWlsZXIvUEhQTWFpbGVyQXV0b2xvYWQucGhwJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIC8vaWYgImVtYWlsIiBpcyBmaWxsZWQgb3V0LCBzZW5kIGVtYWlsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAvLyAkYXNvbmVGaWxlLT5zYXZlSlNPTihhcnJheSgxLCAyICkpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgZWNobyAiPGRpdiBjbGFzcz1cJ3BhbmVsIHBhbmVsLWRlZmF1bHRcJz4gPGRpdiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgImNsYXNzPSdwYW5lbC1ib2R5Jz4gPGRpdiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsYXNzPVwnZm9ybS1yZXNwXCc+IjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgIGlmICgkc2VjdXJpbWFnZS0+Y2hlY2soJF9QT1NUWydjYXB0Y2hhX2NvZGUnXSkgPT0gIgogICAgICAgICAgICAgICAgICAgICAgICAgICdmYWxzZSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgLy8gdGhlIGNvZGUgd2FzIGluY29ycmVjdFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgLy8geW91IHNob3VsZCBoYW5kbGUgdGhlIGVycm9yIHNvIHRoYXQgdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybSBwcm9jZXNzb3IgZG9lc24ndCBjb250aW51ZVxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgLy8gb3IgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBjb2RlIGlmIHRoZXJlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMgbm8gdmFsaWRhdGlvbiBvciB5b3UgZG8gbm90IGtub3cgaG93XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICBlY2hvICI8aDM+VGhlIHNlY3VyaXR5IGNvZGUgZW50ZXJlZCB3YXMgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdpbmNvcnJlY3QuPC9oMz4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgZWNobyAiPGgzPlBsZWFzZSBnbyA8YSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgImhyZWY9J2phdmFzY3JpcHQ6aGlzdG9yeS5nbygtMSknPmJhY2s8L2E+IGFuZCB0cnkgIgogICAgICAgICAgICAgICAgICAgICAgICAgICdhZ2Fpbi48L2gzPiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICBleGl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgJG1haWwgPSBuZXcgUEhQTWFpbGVyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJy8vVGVsbCBQSFBNYWlsZXIgdG8gdXNlIFNNVFBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcvL1RlbGwgUEhQTWFpbGVyIHRvIHVzZSBTTVRQXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnJG1haWwtPmlzU01UUCgpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJy8vRW5hYmxlIFNNVFAgZGVidWdnaW5nXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnLy8gMCA9IG9mZiAoZm9yIHByb2R1Y3Rpb24gdXNlKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJy8vIDEgPSBjbGllbnQgbWVzc2FnZXNcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcvLyAyID0gY2xpZW50IGFuZCBzZXJ2ZXIgbWVzc2FnZXNcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICckbWFpbC0+U01UUERlYnVnID0gMDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcvL0FzayBmb3IgSFRNTC1mcmllbmRseSBkZWJ1ZyBvdXRwdXRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIkbWFpbC0+RGVidWdvdXRwdXQgPSAnaHRtbCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnLy9TZXQgdGhlIGhvc3RuYW1lIG9mIHRoZSBtYWlsIHNlcnZlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyRtYWlsLT5Ib3N0ID0gInNtdHAuYml6bWFpbC55YWhvby5jb20iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJy8vU2V0IHRoZSBTTVRQIHBvcnQgbnVtYmVyIC0gbGlrZWx5IHRvIGJlIDI1LCA0NjUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdvciA1ODdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICckbWFpbC0+UG9ydCA9IDQ2NTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIkbWFpbC0+U01UUFNlY3VyZSA9ICdzc2wnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJy8vV2hldGhlciB0byB1c2UgU01UUCBhdXRoZW50aWNhdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyRtYWlsLT5TTVRQQXV0aCA9IHRydWU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnLy9Vc2VybmFtZSB0byB1c2UgZm9yIFNNVFAgYXV0aGVudGljYXRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICckbWFpbC0+VXNlcm5hbWUgPSAibm8tcmVwbHlAYXNvbmVsaXN0LmNvbSI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnLy9QYXNzd29yZCB0byB1c2UgZm9yIFNNVFAgYXV0aGVudGljYXRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICckbWFpbC0+UGFzc3dvcmQgPSAiY2xlZ2l2bWJpcHNqc2d3dCI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnLy9TZXQgd2hvIHRoZSBtZXNzYWdlIGlzIHRvIGJlIHNlbnQgZnJvbVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiRtYWlsLT5zZXRGcm9tKCduby1yZXBseUBhc29uZWxpc3QuY29tJywgIgogICAgICAgICAgICAgICAgICAgICAgICAgICIkX1NFUlZFUlsnSFRUUF9IT1NUJ10uJyBTdWJtaXQnKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICcvL1NldCBhbiBhbHRlcm5hdGl2ZSByZXBseS10byBhZGRyZXNzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiJG1haWwtPmFkZFJlcGx5VG8oJ0RvIG5vdCByZXBseScsICdEbyBub3QgIgogICAgICAgICAgICAgICAgICAgICAgICAgICJyZXBseScpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJy8vU2V0IHdobyB0aGUgbWVzc2FnZSBpcyB0byBiZSBzZW50IHRvXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiJG1haWwtPmFkZEFkZHJlc3MoJ21hcmtAd2ViYXNvbmUuY29tJywgJ0RvIG5vdCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlcGx5Jyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAkbWFpbC0+YWRkQWRkcmVzcygkX1JFUVVFU1RbJ2VtYWlsJ10sICdEbyBub3QgIgogICAgICAgICAgICAgICAgICAgICAgICAgICJSZXBseScpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJy8vU2V0IHRoZSBzdWJqZWN0IGxpbmVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIC8vc2VuZCBlbWFpbFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgJG1haWwtPlN1YmplY3QgPSAnKERvIG5vdCByZXBseSkgdmlhICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFya0B3ZWJhc29uZS5jb20gZnJvbSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgIicuZ2V0aG9zdG5hbWUoKS4nOicuJF9SRVFVRVNUWydlbWFpbCddO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgJG1zZyA9ICc8cD5XZWJzaXRlOiBGb3J3YXJkIGVtYWlsbCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YmplY3Q8L3A+JztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICIgICRtc2cgLj0gJzxwPkZyb206ICAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ3JlcXVzZXJuYW1lXCddLiI8L3A+XFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICRtc2cgLj0gJzxwPkVtYWlsOiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ2VtYWlsXCddLiI8L3A+XFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICRtc2cgLj0gJzxwPlN1YmplY3Q6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnXCcuJF9SRVFVRVNUW1wnc3ViamVjdFwnXS4iPC9wPlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICBpZiAoYXJyYXlfa2V5X2V4aXN0cygnZGlzY291bnRDb2RlJywgJF9SRVFVRVNUKSkgIgogICAgICAgICAgICAgICAgICAgICAgICAgICd7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAkbXNnIC49ICdEaXNjb3VudCBjb2RlIDogIgogICAgICAgICAgICAgICAgICAgICAgICAgICdcJy4kX1JFUVVFU1RbXCdkaXNjb3VudENvZGVcJ10uIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICBpZiAoYXJyYXlfa2V5X2V4aXN0cygnSG9tZVBhdHRlcm4nLCAkX1JFUVVFU1QpKSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICRtc2cgLj0gJ0hvbWUgUGF0dGVybjogIgogICAgICAgICAgICAgICAgICAgICAgICAgICdcJy4kX1JFUVVFU1RbXCdIb21lUGF0dGVyblwnXS4iXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICRtc2cgLj0gIjxwcmU+TWVzc2FnZTpcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgJG1zZyAuPSAkX1JFUVVFU1RbXCdtZXNzYWdlXCddLiI8L3ByZT5cXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgJG1haWwtPm1zZ0hUTUwoJG1zZyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBpZiAoJG1haWwtPnNlbmQoKSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgZWNobyAiPGgzPlRoYW5rcyBmb3IgeW91ciBzdWJtaXQ8L2gzPiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICB9IGVsc2Uge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgZWNobyAiPGgzPiBTeXN0ZW0gRXJyb3I6IFNvcnJ5IHN5c3RlbSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhaWx1cmU8L2gzPiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICd9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPz5cclxuJywKICAgICAgICAgICAgICAgJ3BocEZpbGVBJzogJycsCiAgICAgICAgICAgICAgICdwaHBGaWxlQic6ICcnLAogICAgICAgICAgICAgICAndGNvZGUnOiAnJywKICAgICAgICAgICAgICAgJ3Zjb2RlJzogJyd9fX0K
Questions or comments
Submit
Page,idxx-xx,oneColumn,
oneColumn/id19-56,Click to clipboard
ezE6IHsnZW4nOiB7J1NsaWRlVHlwZSc6ICdUaW55TUNFJywKICAgICAgICAgICAgJ2FJbWFnZSc6ICcnLAogICAgICAgICAgICAnYUxhYmVsJzogJ2h0bWwgZm9ybScsCiAgICAgICAgICAgICdjb2RlJzogJzw/cGhwXHJcbicKICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAnc2V0X2Vycm9yX2hhbmRsZXIoZnVuY3Rpb24oJF9lcnJubywgJGVycnN0cikge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgLy8gQ29udmVydCBub3RpY2UsIHdhcm5pbmcsIGV0Yy4gdG8gZXJyb3IuXHJcbicKICAgICAgICAgICAgICAgICAgICAnICB0aHJvdyBuZXcgRXJyb3IoJGVycnN0cik7XHJcbicKICAgICAgICAgICAgICAgICAgICAnfSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAndHJ5IHtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIHJlcXVpcmUgJHJlbF9yb290IC4gJwogICAgICAgICAgICAgICAgICAgICInL3BocC9nb29nbGUvcmVjYXB0Y2hhLW1hc3Rlci9zcmMvYXV0b2xvYWQucGhwJztcclxuIgogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICIgIHJlcXVpcmUgJ19BcmVhXy9waHAvbXlmb3JtLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAvLyBSZWdpc3RlciBBUEkga2V5cyBhdCAnCiAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FkbWluXHJcbicKICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAkc2l0ZUtleSA9ICcKICAgICAgICAgICAgICAgICAgICAiJzZMZkxHaGtxQUFBQUFJOEY2ZmFDVDRHUFhzVHFGclVqaWZsMzJmY24nO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgJyAgJHNlY3JldCA9ICcKICAgICAgICAgICAgICAgICAgICAiJzZMZkxHaGtxQUFBQUFBZGRvMGQ4aEM5c093Q05GQWRHLUp1ay1kaFAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgIiAgaWYgKGlzc2V0KCRfUE9TVFsnZy1yZWNhcHRjaGEtcmVzcG9uc2UnXSkpIHtcclxuIgogICAgICAgICAgICAgICAgICAgICcgICAgLy8gVGhlIFBPU1QgZGF0YSBoZXJlIGlzIHVuZmlsdGVyZWQgYmVjYXVzZSB0aGlzIGlzICcKICAgICAgICAgICAgICAgICAgICAnYW4gZXhhbXBsZS5cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgLy8gSW4gcHJvZHVjdGlvbiwgKmFsd2F5cyogc2FuaXRpc2UgYW5kIHZhbGlkYXRlIHlvdXIgJwogICAgICAgICAgICAgICAgICAgICJpbnB1dCdcclxuIgogICAgICAgICAgICAgICAgICAgICcgICAgLy8gdmFyX2V4cG9ydCgkX1BPU1QpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAnPD9waHBcclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgLy8gSWYgdGhlIGZvcm0gc3VibWlzc2lvbiBpbmNsdWRlcyB0aGUgJwogICAgICAgICAgICAgICAgICAgICciZy1jYXB0Y2hhLXJlc3BvbnNlIiBmaWVsZFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICAvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIHNlcnZpY2UgdXNpbmcgeW91ciAnCiAgICAgICAgICAgICAgICAgICAgJ3NlY3JldFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICAkcmVjYXB0Y2hhID0gbmV3IFxcUmVDYXB0Y2hhXFxSZUNhcHRjaGEoJHNlY3JldCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIC8vIElmIGZpbGVfZ2V0X2NvbnRlbnRzKCkgaXMgbG9ja2VkIGRvd24gb24geW91ciBQSFAgJwogICAgICAgICAgICAgICAgICAgICdpbnN0YWxsYXRpb24gdG8gZGlzYWxsb3dcclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgLy8gaXRzIHVzZSB3aXRoIFVSTHMsIHRoZW4geW91IGNhbiB1c2UgdGhlICcKICAgICAgICAgICAgICAgICAgICAnYWx0ZXJuYXRpdmUgcmVxdWVzdCBtZXRob2QgaW5zdGVhZC5cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgLy8gVGhpcyBtYWtlcyB1c2Ugb2YgZnNvY2tvcGVuKCkgaW5zdGVhZC5cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgLy8gICRyZWNhcHRjaGEgPSBuZXcgXFxSZUNhcHRjaGFcXFJlQ2FwdGNoYSgkc2VjcmV0LCAnCiAgICAgICAgICAgICAgICAgICAgJ25ldyBcXFJlQ2FwdGNoYVxcUmVxdWVzdE1ldGhvZFxcU29ja2V0UG9zdCgpKTtcclxuJwogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgLy8gTWFrZSB0aGUgY2FsbCB0byB2ZXJpZnkgdGhlIHJlc3BvbnNlIGFuZCBhbHNvIHBhc3MgJwogICAgICAgICAgICAgICAgICAgICJ0aGUgdXNlcidzIElQIGFkZHJlc3NcclxuIgogICAgICAgICAgICAgICAgICAgICcgICAgJHJlc3AgPSAnCiAgICAgICAgICAgICAgICAgICAgIiRyZWNhcHRjaGEtPnNldEV4cGVjdGVkSG9zdG5hbWUoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pXHJcbiIKICAgICAgICAgICAgICAgICAgICAiICAgICAgLT52ZXJpZnkoJF9QT1NUWydnLXJlY2FwdGNoYS1yZXNwb25zZSddLCAiCiAgICAgICAgICAgICAgICAgICAgIiRfU0VSVkVSWydSRU1PVEVfQUREUiddKTtcclxuIgogICAgICAgICAgICAgICAgICAgICcgICAgaWYgKCRyZXNwLT5pc1N1Y2Nlc3MoKSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICAgIC8vIElmIHRoZSByZXNwb25zZSBpcyBhIHN1Y2Nlc3MsIHByb2Nlc3MgdGhlICcKICAgICAgICAgICAgICAgICAgICAnZm9ybVxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICAgIHByb2NfZm9ybSgkcmVsX3Jvb3QpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgICAgIC8vdmFyX2V4cG9ydCgkcmVzcCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAnPz5cclxuJwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJhbGVydCBhbGVydC1zdWNjZXNzIiByb2xlPSJhbGVydCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8aDE+IFN1Y2Nlc3MgISA8L2gxPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzwvZGl2PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzw/cGhwXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAiICAgICAgLy8gSWYgaXQncyBub3Qgc3VjY2Vzc2Z1bCwgdGhlbiBvbmUgb3IgbW9yZSBlcnJvciAiCiAgICAgICAgICAgICAgICAgICAgJ2NvZGVzIHdpbGwgYmUgcmV0dXJuZWQuXHJcbicKICAgICAgICAgICAgICAgICAgICAnPz5cclxuJwogICAgICAgICAgICAgICAgICAgICc8aDI+U29tZXRoaW5nIHdlbnQgd3Jvbmc8L2gyPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxrYmQ+PHByZT48P3BocCB2YXJfZXhwb3J0KCRyZXNwKTs/PjwvcHJlPjwva2JkPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxwPkNoZWNrIHRoZSBlcnJvciBjb2RlIHJlZmVyZW5jZSBhdCA8a2JkPjxhICcKICAgICAgICAgICAgICAgICAgICAnaHJlZj0iaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvdmVyaWZ5I2Vycm9yLWNvZGUtcmVmZXJlbmNlIj5odHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvZG9jcy92ZXJpZnkjZXJyb3ItY29kZS1yZWZlcmVuY2U8L2E+PC9rYmQ+LlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gRXJyb3IgY29kZSAnCiAgICAgICAgICAgICAgICAgICAgJzxrYmQ+bWlzc2luZy1pbnB1dC1yZXNwb25zZTwva2JkPiBtYXkgbWVhbiB0aGUgdXNlciBqdXN0ICcKICAgICAgICAgICAgICAgICAgICAiZGlkbid0IGNvbXBsZXRlIHRoZSByZUNBUFRDSEEuPC9wPlxyXG4iCiAgICAgICAgICAgICAgICAgICAgJzw/cGhwXHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIH0gXHJcbicKICAgICAgICAgICAgICAgICAgICAnICB9IGVsc2Uge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAnPGRpdiBpZD0iX01JRFhfbG9hZGVyIiBjbGFzcz0ibXgtYXV0byI+PC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAnPGZvcm0gYWN0aW9uPSIjIiBtZXRob2Q9InBvc3QiIGlkPSJkZW1vLWZvcm0iPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgY2xhc3M9ImZvcm0tY29udHJvbCIgbmFtZT0iZW1haWwiICcKICAgICAgICAgICAgICAgICAgICAncGxhY2Vob2xkZXI9IllvdXIgZW1haWwiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiICcKICAgICAgICAgICAgICAgICAgICAnbmFtZT0ic3ViamVjdCIgcGxhY2Vob2xkZXI9IllvdXIgd2Vic2l0ZSB1cmwiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj5cclxuJwogICAgICAgICAgICAgICAgICAgICcgICAgPGxhYmVsIGZvcj0iZXhhbXBsZUZvcm1Db250cm9sVGV4dGFyZWExIj5RdWVzdGlvbnMgb3IgJwogICAgICAgICAgICAgICAgICAgICdjb21tZW50czwvbGFiZWw+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIDx0ZXh0YXJlYSBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJtZXNzYWdlIiAnCiAgICAgICAgICAgICAgICAgICAgJ3Jvd3M9IjMiPjwvdGV4dGFyZWE+XHJcbicKICAgICAgICAgICAgICAgICAgICAnICA8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICcgIDxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iZy1yZWNhcHRjaGEgYnRuICcKICAgICAgICAgICAgICAgICAgICAnYnRuLXByaW1hcnkgYnRuLWJsb2NrIiBkYXRhLXNpdGVrZXk9Ijw/cGhwIGVjaG8gJHNpdGVLZXk7ICcKICAgICAgICAgICAgICAgICAgICAnPz4iIGRhdGEtY2FsbGJhY2s9XCdvblN1Ym1pdFwnPlN1Ym1pdDwvYnV0dG9uPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzwvZm9ybT5cclxuJwogICAgICAgICAgICAgICAgICAgICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgJwogICAgICAgICAgICAgICAgICAgICdzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FwaS5qcz9obD08P3BocCAnCiAgICAgICAgICAgICAgICAgICAgJ2VjaG8gJENNU19sYzsgPz4iIGFzeW5jIGRlZmVyPjwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICcgIGZ1bmN0aW9uIG9uU3VibWl0KHRva2VuKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW1vLWZvcm0iKS5zdHlsZS5kaXNwbGF5ID0gJwogICAgICAgICAgICAgICAgICAgICcibm9uZSI7XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgICcKICAgICAgICAgICAgICAgICAgICAnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl9NSURYX2xvYWRlciIpLmNsYXNzTGlzdC5hZGQoXCdsb2FkZXJcJyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAnICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW1vLWZvcm0iKS5zdWJtaXQoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgJyAgfSBcclxuJwogICAgICAgICAgICAgICAgICAgICd9IGNhdGNoIChUaHJvd2FibGUgJGUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIG15bG9nKCRlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICcgIGVjaG8gJGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicsCiAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gLmxvYWRlciB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBib3JkZXI6IDE2cHggc29saWQgI2YzZjNmMzsgLyogTGlnaHQgZ3JleSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgYm9yZGVyLXRvcDogMTZweCBzb2xpZCAjMzQ5OGRiOyAvKiBCbHVlICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICB3aWR0aDogMTIwcHg7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBoZWlnaHQ6IDEyMHB4O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICd9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnQGtleWZyYW1lcyBzcGluIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDEwMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc2NyaXB0SW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgYm9keSB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc2NyaXB0SW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBFbmRcclxuJywKICAgICAgICAgICAgJ2NvbXBvc2VySlNPTic6ICcnLAogICAgICAgICAgICAnZHluYW1pY0Jsb2NrJzogJycsCiAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAncGhwRmlsZSc6ICc8P3BocCAvKiBfQXJlYV8vcGhwL215Zm9ybS5waHAgKi8gIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJy8vIGZvciBkZWJ1Z2dpbmdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdmdW5jdGlvbiBteWxvZygkbXNnKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAkaCA9IGZvcGVuKCcvaG9tZS9jbXNub3cvYWNjZXNzX2xvZycsICdhJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICBmd3JpdGUoJGgsIHRpbWUoKSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBmd3JpdGUoJGgsICRtc2cpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgZmNsb3NlKCRoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICd9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnZnVuY3Rpb24gcHJvY19mb3JtKCRyZWxfcm9vdCkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgdHJ5IHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9yZXF1aXJlICRyZWxfcm9vdCAuICcKICAgICAgICAgICAgICAgICAgICAgICAiJy8uLi8uLi9waHAvQXNPbmUvbWlzYy5waHAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICByZXF1aXJlICRyZWxfcm9vdCAuICcKICAgICAgICAgICAgICAgICAgICAgICAiJy9waHAvUEhQTWFpbGVyL1BIUE1haWxlckF1dG9sb2FkLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIHRvIGRpc2FibGUgYnkgYXNzaWduIGFuIGVtcHR5IHN0cmluZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkYnVnemlsbGFTZXJ2ZXIgPSAnYnVnLndlYmNtcy1hLmNvbSc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRlbWFpbFNNVFAgPSAnc210cC5iaXptYWlsLnlhaG9vLmNvbSc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRlbWFpbFVzZXIgPSAnbm8tcmVwbHlAYXNvbmVsaXN0LmNvbSc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRlbWFpbFBhc3N3ZCA9ICd1eXF2Y3ZsY2tuZXBkc2lyJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgJG5vdGlmeUVtYWlsID0gJ2luZm9Ad2ViYXNvbmUuY29tJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9teWxvZygiY2FsbCBwcm9jX2Zvcm0iKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgLy8kYXNvbmVGaWxlID0gbmV3IEFzT25lRmlsZSgnX0lEWF8nLCAiCiAgICAgICAgICAgICAgICAgICAgICAgJ0Fzb25lUGF0aCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsID0gbmV3IFBIUE1haWxlcjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9UZWxsIFBIUE1haWxlciB0byB1c2UgU01UUFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1RlbGwgUEhQTWFpbGVyIHRvIHVzZSBTTVRQXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5pc1NNVFAoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9FbmFibGUgU01UUCBkZWJ1Z2dpbmdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gMCA9IG9mZiAoZm9yIHByb2R1Y3Rpb24gdXNlKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyAxID0gY2xpZW50IG1lc3NhZ2VzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIDIgPSBjbGllbnQgYW5kIHNlcnZlciBtZXNzYWdlc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+U01UUERlYnVnID0gMDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9Bc2sgZm9yIEhUTUwtZnJpZW5kbHkgZGVidWcgb3V0cHV0XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5EZWJ1Z291dHB1dCA9ICdodG1sJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgdGhlIGhvc3RuYW1lIG9mIHRoZSBtYWlsIHNlcnZlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+SG9zdCA9ICRlbWFpbFNNVFA7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vU2V0IHRoZSBTTVRQIHBvcnQgbnVtYmVyIC0gbGlrZWx5IHRvIGJlIDI1LCA0NjUgJwogICAgICAgICAgICAgICAgICAgICAgICdvciA1ODdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPlBvcnQgPSA0NjU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5TTVRQU2VjdXJlID0gJ3NzbCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vV2hldGhlciB0byB1c2UgU01UUCBhdXRoZW50aWNhdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+U01UUEF1dGggPSB0cnVlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1VzZXJuYW1lIHRvIHVzZSBmb3IgU01UUCBhdXRoZW50aWNhdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+VXNlcm5hbWUgPSAkZW1haWxVc2VyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1Bhc3N3b3JkIHRvIHVzZSBmb3IgU01UUCBhdXRoZW50aWNhdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+UGFzc3dvcmQgPSAkZW1haWxQYXNzd2Q7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vU2V0IHdobyB0aGUgbWVzc2FnZSBpcyB0byBiZSBzZW50IGZyb21cclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPnNldEZyb20oJGVtYWlsVXNlciwgJF9TRVJWRVJbJ0hUVFBfSE9TVCddLicgIgogICAgICAgICAgICAgICAgICAgICAgICJTdWJtaXQnKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9TZXQgYW4gYWx0ZXJuYXRpdmUgcmVwbHktdG8gYWRkcmVzc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbWFpbC0+YWRkUmVwbHlUbygnRG8gbm90IHJlcGx5JywgJ0RvIG5vdCAiCiAgICAgICAgICAgICAgICAgICAgICAgInJlcGx5Jyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vU2V0IHdobyB0aGUgbWVzc2FnZSBpcyB0byBiZSBzZW50IHRvXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5hZGRBZGRyZXNzKCRub3RpZnlFbWFpbCwgJ0RvIG5vdCAiCiAgICAgICAgICAgICAgICAgICAgICAgIlJlcGx5Jyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vU2V0IHRoZSBzdWJqZWN0IGxpbmVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9zZW5kIGVtYWlsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtYWlsLT5TdWJqZWN0ID0gJyhEbyBub3QgcmVwbHkpIHZpYSAlcyBmcm9tICIKICAgICAgICAgICAgICAgICAgICAgICAiJy5nZXRob3N0bmFtZSgpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAvLyRtc2cgPSAnPHA+V2Vic2l0ZTogJXM8L3A+JztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1zZyA9ICcnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICBpZiAoaXNzZXQoJF9SRVFVRVNUWydyZXF1c2VybmFtZSddKSkgJG1zZyAuPSAiCiAgICAgICAgICAgICAgICAgICAgICAgIic8cD5Gcm9tOiAgIgogICAgICAgICAgICAgICAgICAgICAgICdcJy4kX1JFUVVFU1RbXCdyZXF1c2VybmFtZVwnXS4iPC9wPlxcXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsnZW1haWwnXSkpICRtc2cgLj0gJzxwPkVtYWlsOiAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLiRfUkVRVUVTVFtcJ2VtYWlsXCddLiI8L3A+XFxcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICBpZiAoaXNzZXQoJF9SRVFVRVNUWydzdWJqZWN0J10pKSAkbXNnIC49ICIKICAgICAgICAgICAgICAgICAgICAgICAiJzxwPlN1YmplY3Q6ICIKICAgICAgICAgICAgICAgICAgICAgICAnXCcuJF9SRVFVRVNUW1wnc3ViamVjdFwnXS4iPC9wPlxcXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1zZyAuPSAiPHByZT5NZXNzYWdlOlxcXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsnbWVzc2FnZSddKSkgJG1zZyAuPSAiCiAgICAgICAgICAgICAgICAgICAgICAgJyRfUkVRVUVTVFtcJ21lc3NhZ2VcJ10uIjwvcHJlPlxcXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPm1zZ0hUTUwoJG1zZyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGlmICgkbWFpbC0+c2VuZCgpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgZWNobyAiPGgzPlRoYW5rcyE8L2gzPiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgZWNobyAiPGgzPiBTeXN0ZW0gRXJyb3IuIDwvaDM+IjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkYm1zZyA9IFwnRnJvbTogYnVnQHdlYmFzb25lLmNvbVwnLiAiXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgICAnU3ViamVjdDogVXNlciBTdWJtaXQgZnJvbSAiCiAgICAgICAgICAgICAgICAgICAgICAgJ1wnLmdldGhvc3RuYW1lKCkuIlxcblxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAcHJvZHVjdCA9IFdlYkFzT25lXCcuIlxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAY29tcG9uZW50ID0gVXNlclJlcG9ydFwnLiJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQG9wX3N5cyBMaW51eFwnLiJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQHJlcF9wbGF0Zm9ybSBBbGxcJy4iXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0B2ZXJzaW9uID0gMS4wLjBcJy4iXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0BTZXZlcml0eSA9IG5vcm1hbFwnLiJcXG5cXG5cXG4iLiAgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAkbXNnO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGVfcHV0X2NvbnRlbnRzKCIvaG9tZS9jbXNub3cvZm9ybV9tc2cudHh0IiwkYm1zZyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGlmICgkYnVnemlsbGFTZXJ2ZXIpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAkZGVzY3JpcHRvcnNwZWMgPSBhcnJheShcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDAgPT4gYXJyYXkoInBpcGUiLCAiciIpLCAgLy8gc3RkaW4gaXMgYSBwaXBlICcKICAgICAgICAgICAgICAgICAgICAgICAndGhhdCB0aGUgY2hpbGQgd2lsbCByZWFkIGZyb21cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDEgPT4gYXJyYXkoInBpcGUiLCAidyIpLCAgLy8gc3Rkb3V0IGlzIGEgcGlwZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ3RoYXQgdGhlIGNoaWxkIHdpbGwgd3JpdGUgdG9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIDIgPT4gYXJyYXkoImZpbGUiLCAnCiAgICAgICAgICAgICAgICAgICAgICAgJyIvaG9tZS9jbXNub3cvL2Vycm9yLW91dHB1dC50eHQiLCAidysiKSAvLyBzdGRlcnIgaXMgYSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbGUgdG8gd3JpdGUgdG9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICApO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICRjbWQgPSAnc3NoICcuJGJ1Z3ppbGxhU2VydmVyLicgIgogICAgICAgICAgICAgICAgICAgICAgICciL2hvbWUvY21zbm93L3d3dy9ob3N0cy9cJy4kYnVnemlsbGFTZXJ2ZXIuXCcvZG9jcy9lbWFpbF9pbi5wbCJcJztcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAkcHJvY2VzcyA9IHByb2Nfb3BlbigkY21kLCAkZGVzY3JpcHRvcnNwZWMsICcKICAgICAgICAgICAgICAgICAgICAgICAnJHBpcGVzKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICBpZiAoaXNfcmVzb3VyY2UoJHByb2Nlc3MpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvLyAkcGlwZXMgbm93IGxvb2tzIGxpa2UgdGhpczpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vIDAgPT4gd3JpdGVhYmxlIGhhbmRsZSBjb25uZWN0ZWQgdG8gY2hpbGQgJwogICAgICAgICAgICAgICAgICAgICAgICdzdGRpblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy8gMSA9PiByZWFkYWJsZSBoYW5kbGUgY29ubmVjdGVkIHRvIGNoaWxkICcKICAgICAgICAgICAgICAgICAgICAgICAnc3Rkb3V0XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBmd3JpdGUoJHBpcGVzWzBdLCAkYm1zZyk7IC8vICcKICAgICAgICAgICAgICAgICAgICAgICAiZmlsZV9nZXRfY29udGVudHMoJ3BocDovL3N0ZGluJylcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGZjbG9zZSgkcGlwZXNbMF0pO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJG91dHB1dCA9IHN0cmVhbV9nZXRfY29udGVudHMoJHBpcGVzWzFdKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICNlY2hvICRvdXRwdXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBmY2xvc2UoJHBpcGVzWzFdKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vIEl0IGlzIGltcG9ydGFudCB0aGF0IHlvdSBjbG9zZSBhbnkgcGlwZXMgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgY2FsbGluZ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy8gcHJvY19jbG9zZSBpbiBvcmRlciB0byBhdm9pZCBhIGRlYWRsb2NrXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkcmV0dXJuX3ZhbHVlID0gcHJvY19jbG9zZSgkcHJvY2Vzcyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAjZWNobyAkcmV0dXJuX3ZhbHVlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgfSAgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIH0gY2F0Y2ggKFRocm93YWJsZSAkZSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICBteWxvZygkZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGVjaG8gJGU7IC8vIEVycm9yOiBVbmRlZmluZWQgdmFyaWFibGU6IHR3Li4uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicsCiAgICAgICAgICAgICdwaHBGaWxlQSc6ICcnLAogICAgICAgICAgICAncGhwRmlsZUInOiAnJywKICAgICAgICAgICAgJ3Rjb2RlJzogJycsCiAgICAgICAgICAgICd2Y29kZSc6ICcnfSwKICAgICAnZW4tVVMnOiB7J1NsaWRlVHlwZSc6ICdUaW55TUNFJywKICAgICAgICAgICAgICAgJ2FJbWFnZSc6ICcnLAogICAgICAgICAgICAgICAnYUxhYmVsJzogJ2h0bWwgZm9ybScsCiAgICAgICAgICAgICAgICdjb2RlJzogJzw/cGhwXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnc2V0X2Vycm9yX2hhbmRsZXIoZnVuY3Rpb24oJF9lcnJubywgJGVycnN0cikge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgLy8gQ29udmVydCBub3RpY2UsIHdhcm5pbmcsIGV0Yy4gdG8gZXJyb3IuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICB0aHJvdyBuZXcgRXJyb3IoJGVycnN0cik7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAndHJ5IHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIHJlcXVpcmUgJHJlbF9yb290IC4gJwogICAgICAgICAgICAgICAgICAgICAgICInL3BocC9nb29nbGUvcmVjYXB0Y2hhLW1hc3Rlci9zcmMvYXV0b2xvYWQucGhwJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgIHJlcXVpcmUgJ19BcmVhXy9waHAvbXlmb3JtLnBocCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAvLyBSZWdpc3RlciBBUEkga2V5cyBhdCAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vcmVjYXB0Y2hhL2FkbWluXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAkc2l0ZUtleSA9ICcKICAgICAgICAgICAgICAgICAgICAgICAiJzZMZkxHaGtxQUFBQUFJOEY2ZmFDVDRHUFhzVHFGclVqaWZsMzJmY24nO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgJHNlY3JldCA9ICcKICAgICAgICAgICAgICAgICAgICAgICAiJzZMZkxHaGtxQUFBQUFBZGRvMGQ4aEM5c093Q05GQWRHLUp1ay1kaFAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgaWYgKGlzc2V0KCRfUE9TVFsnZy1yZWNhcHRjaGEtcmVzcG9uc2UnXSkpIHtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gVGhlIFBPU1QgZGF0YSBoZXJlIGlzIHVuZmlsdGVyZWQgYmVjYXVzZSB0aGlzICcKICAgICAgICAgICAgICAgICAgICAgICAnaXMgYW4gZXhhbXBsZS5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gSW4gcHJvZHVjdGlvbiwgKmFsd2F5cyogc2FuaXRpc2UgYW5kIHZhbGlkYXRlICcKICAgICAgICAgICAgICAgICAgICAgICAieW91ciBpbnB1dCdcclxuIgogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gdmFyX2V4cG9ydCgkX1BPU1QpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPD9waHBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gSWYgdGhlIGZvcm0gc3VibWlzc2lvbiBpbmNsdWRlcyB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICciZy1jYXB0Y2hhLXJlc3BvbnNlIiBmaWVsZFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIHNlcnZpY2UgdXNpbmcgeW91ciAnCiAgICAgICAgICAgICAgICAgICAgICAgJ3NlY3JldFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkcmVjYXB0Y2hhID0gbmV3ICcKICAgICAgICAgICAgICAgICAgICAgICAnXFxSZUNhcHRjaGFcXFJlQ2FwdGNoYSgkc2VjcmV0KTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gSWYgZmlsZV9nZXRfY29udGVudHMoKSBpcyBsb2NrZWQgZG93biBvbiB5b3VyICcKICAgICAgICAgICAgICAgICAgICAgICAnUEhQIGluc3RhbGxhdGlvbiB0byBkaXNhbGxvd1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyBpdHMgdXNlIHdpdGggVVJMcywgdGhlbiB5b3UgY2FuIHVzZSB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdhbHRlcm5hdGl2ZSByZXF1ZXN0IG1ldGhvZCBpbnN0ZWFkLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyBUaGlzIG1ha2VzIHVzZSBvZiBmc29ja29wZW4oKSBpbnN0ZWFkLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyAgJHJlY2FwdGNoYSA9IG5ldyAnCiAgICAgICAgICAgICAgICAgICAgICAgJ1xcUmVDYXB0Y2hhXFxSZUNhcHRjaGEoJHNlY3JldCwgbmV3ICcKICAgICAgICAgICAgICAgICAgICAgICAnXFxSZUNhcHRjaGFcXFJlcXVlc3RNZXRob2RcXFNvY2tldFBvc3QoKSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIE1ha2UgdGhlIGNhbGwgdG8gdmVyaWZ5IHRoZSByZXNwb25zZSBhbmQgYWxzbyAnCiAgICAgICAgICAgICAgICAgICAgICAgInBhc3MgdGhlIHVzZXIncyBJUCBhZGRyZXNzXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgICRyZXNwID0gJwogICAgICAgICAgICAgICAgICAgICAgICIkcmVjYXB0Y2hhLT5zZXRFeHBlY3RlZEhvc3RuYW1lKCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKVxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgIC0+dmVyaWZ5KCRfUE9TVFsnZy1yZWNhcHRjaGEtcmVzcG9uc2UnXSwgIgogICAgICAgICAgICAgICAgICAgICAgICIkX1NFUlZFUlsnUkVNT1RFX0FERFInXSk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgIGlmICgkcmVzcC0+aXNTdWNjZXNzKCkpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAvLyBJZiB0aGUgcmVzcG9uc2UgaXMgYSBzdWNjZXNzLCBwcm9jZXNzIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICBwcm9jX2Zvcm0oJHJlbF9yb290KTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAvL3Zhcl9leHBvcnQoJHJlc3ApO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtc3VjY2VzcyIgcm9sZT0iYWxlcnQiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPGgxPiBTdWNjZXNzICEgPC9oMT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L2Rpdj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9IGVsc2Uge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgIC8vIElmIGl0J3Mgbm90IHN1Y2Nlc3NmdWwsIHRoZW4gb25lIG9yIG1vcmUgIgogICAgICAgICAgICAgICAgICAgICAgICdlcnJvciBjb2RlcyB3aWxsIGJlIHJldHVybmVkLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPGgyPlNvbWV0aGluZyB3ZW50IHdyb25nPC9oMj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8a2JkPjxwcmU+PD9waHAgdmFyX2V4cG9ydCgkcmVzcCk7Pz48L3ByZT48L2tiZD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8cD5DaGVjayB0aGUgZXJyb3IgY29kZSByZWZlcmVuY2UgYXQgPGtiZD48YSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2hyZWY9Imh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3JlY2FwdGNoYS9kb2NzL3ZlcmlmeSNlcnJvci1jb2RlLXJlZmVyZW5jZSI+aHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcmVjYXB0Y2hhL2RvY3MvdmVyaWZ5I2Vycm9yLWNvZGUtcmVmZXJlbmNlPC9hPjwva2JkPi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IEVycm9yIGNvZGUgJwogICAgICAgICAgICAgICAgICAgICAgICc8a2JkPm1pc3NpbmctaW5wdXQtcmVzcG9uc2U8L2tiZD4gbWF5IG1lYW4gdGhlIHVzZXIgJwogICAgICAgICAgICAgICAgICAgICAgICJqdXN0IGRpZG4ndCBjb21wbGV0ZSB0aGUgcmVDQVBUQ0hBLjwvcD5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICc8P3BocFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9IFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgfSBlbHNlIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgaWQ9Il9NSURYX2xvYWRlciIgY2xhc3M9Im14LWF1dG8iPjwvZGl2PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxmb3JtIGFjdGlvbj0iIyIgbWV0aG9kPSJwb3N0IiBpZD0iZGVtby1mb3JtIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8aW5wdXQgdHlwZT0iZW1haWwiIGNsYXNzPSJmb3JtLWNvbnRyb2wiICcKICAgICAgICAgICAgICAgICAgICAgICAnbmFtZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJZb3VyIGVtYWlsIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDwvZGl2PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiAnCiAgICAgICAgICAgICAgICAgICAgICAgJ25hbWU9InN1YmplY3QiIHBsYWNlaG9sZGVyPSJZb3VyIHdlYnNpdGUgdXJsIj5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIDwvZGl2PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxsYWJlbCBmb3I9ImV4YW1wbGVGb3JtQ29udHJvbFRleHRhcmVhMSI+UXVlc3Rpb25zICcKICAgICAgICAgICAgICAgICAgICAgICAnb3IgY29tbWVudHM8L2xhYmVsPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICA8dGV4dGFyZWEgY2xhc3M9ImZvcm0tY29udHJvbCIgbmFtZT0ibWVzc2FnZSIgJwogICAgICAgICAgICAgICAgICAgICAgICdyb3dzPSIzIj48L3RleHRhcmVhPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgPC9kaXY+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICA8YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImctcmVjYXB0Y2hhIGJ0biAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2J0bi1wcmltYXJ5IGJ0bi1ibG9jayIgZGF0YS1zaXRla2V5PSI8P3BocCBlY2hvICcKICAgICAgICAgICAgICAgICAgICAgICAnJHNpdGVLZXk7ID8+IiAnCiAgICAgICAgICAgICAgICAgICAgICAgImRhdGEtY2FsbGJhY2s9J29uU3VibWl0Jz5TdWJtaXQ8L2J1dHRvbj5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICc8L2Zvcm0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiICcKICAgICAgICAgICAgICAgICAgICAgICAnc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGkuanM/aGw9PD9waHAgJwogICAgICAgICAgICAgICAgICAgICAgICdlY2hvICRDTVNfbGM7ID8+IiBhc3luYyBkZWZlcj48L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBmdW5jdGlvbiBvblN1Ym1pdCh0b2tlbikge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVtby1mb3JtIikuc3R5bGUuZGlzcGxheSAnCiAgICAgICAgICAgICAgICAgICAgICAgJz0gIm5vbmUiO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfTUlEWF9sb2FkZXIiKS5jbGFzc0xpc3QuYWRkKFwnbG9hZGVyXCcpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVtby1mb3JtIikuc3VibWl0KCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPD9waHBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIH0gXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfSBjYXRjaCAoVGhyb3dhYmxlICRlKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBteWxvZygkZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBlY2hvICRlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nLAogICAgICAgICAgICAgICAnY29kZUluYyc6ICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHN0eWxlSW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIC5sb2FkZXIge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgYm9yZGVyOiAxNnB4IHNvbGlkICNmM2YzZjM7IC8qIExpZ2h0IGdyZXkgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIGJvcmRlci10b3A6IDE2cHggc29saWQgIzM0OThkYjsgLyogQmx1ZSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgd2lkdGg6IDEyMHB4O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgaGVpZ2h0OiAxMjBweDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BrZXlmcmFtZXMgc3BpbiB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAwJSB7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOyB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHNjcmlwdEluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGJvZHkgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHNjcmlwdEluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgRW5kXHJcbicsCiAgICAgICAgICAgICAgICdjb21wb3NlckpTT04nOiAnJywKICAgICAgICAgICAgICAgJ2R5bmFtaWNCbG9jayc6ICcnLAogICAgICAgICAgICAgICAna2V5d29yZHMnOiAnJywKICAgICAgICAgICAgICAgJ3BocEZpbGUnOiAnPD9waHAgLyogX0FyZWFfL3BocC9teWZvcm0ucGhwICovICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcvLyBmb3IgZGVidWdnaW5nXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnZnVuY3Rpb24gbXlsb2coJG1zZykge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgJGggPSBmb3BlbignL2hvbWUvY21zbm93L2FjY2Vzc19sb2cnLCAnYScpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgZndyaXRlKCRoLCB0aW1lKCkpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgZndyaXRlKCRoLCAkbXNnKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIGZjbG9zZSgkaCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Z1bmN0aW9uIHByb2NfZm9ybSgkcmVsX3Jvb3QpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRyeSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vcmVxdWlyZSAkcmVsX3Jvb3QgLiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgIicvLi4vLi4vcGhwL0FzT25lL21pc2MucGhwJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcmVxdWlyZSAkcmVsX3Jvb3QgLiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgIicvcGhwL1BIUE1haWxlci9QSFBNYWlsZXJBdXRvbG9hZC5waHAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyB0byBkaXNhYmxlIGJ5IGFzc2lnbiBhbiBlbXB0eSBzdHJpbmdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJGJ1Z3ppbGxhU2VydmVyID0gJ2J1Zy53ZWJjbXMtYS5jb20nO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkZW1haWxTTVRQID0gJ3NtdHAuYml6bWFpbC55YWhvby5jb20nO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkZW1haWxVc2VyID0gJ25vLXJlcGx5QGFzb25lbGlzdC5jb20nO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkZW1haWxQYXNzd2QgPSAndXlxdmN2bGNrbmVwZHNpcic7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRub3RpZnlFbWFpbCA9ICdpbmZvQHdlYmFzb25lLmNvbSc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vbXlsb2coImNhbGwgcHJvY19mb3JtIik7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIC8vJGFzb25lRmlsZSA9IG5ldyBBc09uZUZpbGUoJ19JRFhfJywgIgogICAgICAgICAgICAgICAgICAgICAgICAgICdBc29uZVBhdGgpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbCA9IG5ldyBQSFBNYWlsZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vVGVsbCBQSFBNYWlsZXIgdG8gdXNlIFNNVFBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9UZWxsIFBIUE1haWxlciB0byB1c2UgU01UUFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+aXNTTVRQKCk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vRW5hYmxlIFNNVFAgZGVidWdnaW5nXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vIDAgPSBvZmYgKGZvciBwcm9kdWN0aW9uIHVzZSlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy8gMSA9IGNsaWVudCBtZXNzYWdlc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvLyAyID0gY2xpZW50IGFuZCBzZXJ2ZXIgbWVzc2FnZXNcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPlNNVFBEZWJ1ZyA9IDA7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vQXNrIGZvciBIVE1MLWZyaWVuZGx5IGRlYnVnIG91dHB1dFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbWFpbC0+RGVidWdvdXRwdXQgPSAnaHRtbCc7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vU2V0IHRoZSBob3N0bmFtZSBvZiB0aGUgbWFpbCBzZXJ2ZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPkhvc3QgPSAkZW1haWxTTVRQO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1NldCB0aGUgU01UUCBwb3J0IG51bWJlciAtIGxpa2VseSB0byBiZSAyNSwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICc0NjUgb3IgNTg3XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5Qb3J0ID0gNDY1O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbWFpbC0+U01UUFNlY3VyZSA9ICdzc2wnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1doZXRoZXIgdG8gdXNlIFNNVFAgYXV0aGVudGljYXRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPlNNVFBBdXRoID0gdHJ1ZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9Vc2VybmFtZSB0byB1c2UgZm9yIFNNVFAgYXV0aGVudGljYXRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPlVzZXJuYW1lID0gJGVtYWlsVXNlcjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9QYXNzd29yZCB0byB1c2UgZm9yIFNNVFAgYXV0aGVudGljYXRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgJG1haWwtPlBhc3N3b3JkID0gJGVtYWlsUGFzc3dkO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1NldCB3aG8gdGhlIG1lc3NhZ2UgaXMgdG8gYmUgc2VudCBmcm9tXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICRtYWlsLT5zZXRGcm9tKCRlbWFpbFVzZXIsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAiJF9TRVJWRVJbJ0hUVFBfSE9TVCddLicgU3VibWl0Jyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vU2V0IGFuIGFsdGVybmF0aXZlIHJlcGx5LXRvIGFkZHJlc3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJG1haWwtPmFkZFJlcGx5VG8oJ0RvIG5vdCByZXBseScsICdEbyBub3QgIgogICAgICAgICAgICAgICAgICAgICAgICAgICJyZXBseScpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1NldCB3aG8gdGhlIG1lc3NhZ2UgaXMgdG8gYmUgc2VudCB0b1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbWFpbC0+YWRkQWRkcmVzcygkbm90aWZ5RW1haWwsICdEbyBub3QgIgogICAgICAgICAgICAgICAgICAgICAgICAgICJSZXBseScpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL1NldCB0aGUgc3ViamVjdCBsaW5lXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8vc2VuZCBlbWFpbFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAkbWFpbC0+U3ViamVjdCA9ICcoRG8gbm90IHJlcGx5KSB2aWEgJXMgZnJvbSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIicuZ2V0aG9zdG5hbWUoKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgLy8kbXNnID0gJzxwPldlYnNpdGU6ICVzPC9wPic7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICRtc2cgPSAnJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsncmVxdXNlcm5hbWUnXSkpICRtc2cgLj0gIgogICAgICAgICAgICAgICAgICAgICAgICAgICInPHA+RnJvbTogICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnXCcuJF9SRVFVRVNUW1wncmVxdXNlcm5hbWVcJ10uIjwvcD5cXFxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIGlmIChpc3NldCgkX1JFUVVFU1RbJ2VtYWlsJ10pKSAkbXNnIC49ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnXCc8cD5FbWFpbDogXCcuJF9SRVFVRVNUW1wnZW1haWxcJ10uIjwvcD5cXFxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIGlmIChpc3NldCgkX1JFUVVFU1RbJ3N1YmplY3QnXSkpICRtc2cgLj0gIgogICAgICAgICAgICAgICAgICAgICAgICAgICInPHA+U3ViamVjdDogIgogICAgICAgICAgICAgICAgICAgICAgICAgICdcJy4kX1JFUVVFU1RbXCdzdWJqZWN0XCddLiI8L3A+XFxcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbXNnIC49ICI8cHJlPk1lc3NhZ2U6XFxcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBpZiAoaXNzZXQoJF9SRVFVRVNUWydtZXNzYWdlJ10pKSAkbXNnIC49ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnJF9SRVFVRVNUW1wnbWVzc2FnZVwnXS4iPC9wcmU+XFxcXG4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAkbWFpbC0+bXNnSFRNTCgkbXNnKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgaWYgKCRtYWlsLT5zZW5kKCkpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICBlY2hvICI8aDM+VGhhbmtzITwvaDM+IjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgfSBlbHNlIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICBlY2hvICI8aDM+IFN5c3RlbSBFcnJvci4gPC9oMz4iO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICRibXNnID0gXCdGcm9tOiBidWdAd2ViYXNvbmUuY29tXCcuICJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICdTdWJqZWN0OiBVc2VyIFN1Ym1pdCBmcm9tICIKICAgICAgICAgICAgICAgICAgICAgICAgICAnXCcuZ2V0aG9zdG5hbWUoKS4iXFxuXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0Bwcm9kdWN0ID0gV2ViQXNPbmVcJy4iXFxuIi5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICBcJ0Bjb21wb25lbnQgPSBVc2VyUmVwb3J0XCcuIlxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAb3Bfc3lzIExpbnV4XCcuIlxcbiIuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXCdAcmVwX3BsYXRmb3JtIEFsbFwnLiJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQHZlcnNpb24gPSAxLjAuMFwnLiJcXG4iLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIFwnQFNldmVyaXR5ID0gbm9ybWFsXCcuIlxcblxcblxcbiIuICAgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICRtc2c7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnZmlsZV9wdXRfY29udGVudHMoIi9ob21lL2Ntc25vdy9mb3JtX21zZy50eHQiLCRibXNnKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgaWYgKCRidWd6aWxsYVNlcnZlcikge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICRkZXNjcmlwdG9yc3BlYyA9IGFycmF5KFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgMCA9PiBhcnJheSgicGlwZSIsICJyIiksICAvLyBzdGRpbiBpcyBhICcKICAgICAgICAgICAgICAgICAgICAgICAgICAncGlwZSB0aGF0IHRoZSBjaGlsZCB3aWxsIHJlYWQgZnJvbVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgMSA9PiBhcnJheSgicGlwZSIsICJ3IiksICAvLyBzdGRvdXQgaXMgYSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BpcGUgdGhhdCB0aGUgY2hpbGQgd2lsbCB3cml0ZSB0b1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgMiA9PiBhcnJheSgiZmlsZSIsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnIi9ob21lL2Ntc25vdy8vZXJyb3Itb3V0cHV0LnR4dCIsICJ3KyIpIC8vIHN0ZGVyciAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzIGEgZmlsZSB0byB3cml0ZSB0b1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgJGNtZCA9ICdzc2ggJy4kYnVnemlsbGFTZXJ2ZXIuJyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyIvaG9tZS9jbXNub3cvd3d3L2hvc3RzL1wnLiRidWd6aWxsYVNlcnZlci5cJy9kb2NzL2VtYWlsX2luLnBsIlwnO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICRwcm9jZXNzID0gcHJvY19vcGVuKCRjbWQsICRkZXNjcmlwdG9yc3BlYywgJwogICAgICAgICAgICAgICAgICAgICAgICAgICckcGlwZXMpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIGlmIChpc19yZXNvdXJjZSgkcHJvY2VzcykpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vICRwaXBlcyBub3cgbG9va3MgbGlrZSB0aGlzOlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgLy8gMCA9PiB3cml0ZWFibGUgaGFuZGxlIGNvbm5lY3RlZCB0byBjaGlsZCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0ZGluXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvLyAxID0+IHJlYWRhYmxlIGhhbmRsZSBjb25uZWN0ZWQgdG8gY2hpbGQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdzdGRvdXRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGZ3cml0ZSgkcGlwZXNbMF0sICRibXNnKTsgLy8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlX2dldF9jb250ZW50cygncGhwOi8vc3RkaW4nKVxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgZmNsb3NlKCRwaXBlc1swXSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkb3V0cHV0ID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICdzdHJlYW1fZ2V0X2NvbnRlbnRzKCRwaXBlc1sxXSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAjZWNobyAkb3V0cHV0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgZmNsb3NlKCRwaXBlc1sxXSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvLyBJdCBpcyBpbXBvcnRhbnQgdGhhdCB5b3UgY2xvc2UgYW55IHBpcGVzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIGNhbGxpbmdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vIHByb2NfY2xvc2UgaW4gb3JkZXIgdG8gYXZvaWQgYSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlYWRsb2NrXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkcmV0dXJuX3ZhbHVlID0gcHJvY19jbG9zZSgkcHJvY2Vzcyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAjZWNobyAkcmV0dXJuX3ZhbHVlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgfSAgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIH0gY2F0Y2ggKFRocm93YWJsZSAkZSkge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBteWxvZygkZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIGVjaG8gJGU7IC8vIEVycm9yOiBVbmRlZmluZWQgdmFyaWFibGU6IHR3Li4uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJz8+XHJcbicsCiAgICAgICAgICAgICAgICdwaHBGaWxlQSc6ICcnLAogICAgICAgICAgICAgICAncGhwRmlsZUInOiAnJywKICAgICAgICAgICAgICAgJ3Rjb2RlJzogJycsCiAgICAgICAgICAgICAgICd2Y29kZSc6ICcnfX19Cg==