To join WebAsOne
More
Our Logo
WebAsOne
Home
How To
Join US
Design
Design Block
Design Patterns
SVGBackground
Animation
Themes
Fonts
Marketing
Hero
About
BIO
Contact
CTA
FAQ
Footer
Portfolio
Price
Service
Team
Testimonials
Pages
Apps
Vue3
OpenSource
Mini-Apps
Lessons
Opencart-3
EasyAppointment1
Yii2
Yii2-Extra
RoleCommand
GoogleLogin-A
OpenSource
->
Yii2-Extra
->
RoleCommand
GoogleLogin-A
Yii2 Role console command!
Yii2 Role console command!
oneColumn/id13-33,Click to clipboard
ezE6IHsnZW4nOiB7J05vdGVzJzogJycsCiAgICAgICAgICAgICdTbGlkZVR5cGUnOiAnU3RhcnRNc2cnLAogICAgICAgICAgICAnYUxhYmVsJzogJycsCiAgICAgICAgICAgICdhX2ZpbGUnOiAnJywKICAgICAgICAgICAgJ2FkZENsYXNzJzogJycsCiAgICAgICAgICAgICdhc3ZnZmlsZSc6ICc8c3ZnPjwvc3ZnPicsCiAgICAgICAgICAgICdjZGF0YSc6ICcnLAogICAgICAgICAgICAnY29kZSc6ICcnLAogICAgICAgICAgICAnY29kZUluYyc6ICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHN0eWxlSW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc2NyaXB0SW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgYm9keSB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc2NyaXB0SW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBFbmRcclxuJywKICAgICAgICAgICAgJ2NvbEJHSW1hZ2UnOiAnJywKICAgICAgICAgICAgJ2NvbEJHSW1hZ2VXcmFwJzogJycsCiAgICAgICAgICAgICdjb21wb3NlckpTT04nOiAnJywKICAgICAgICAgICAgJ2RhdGEnOiAnPGgyIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPllpaTIgUm9sZSBjb25zb2xlICcKICAgICAgICAgICAgICAgICAgICAnY29tbWFuZCE8L2gyPicsCiAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICdwaHBGaWxlJzogJycsCiAgICAgICAgICAgICdwaHBGaWxlQSc6ICcnLAogICAgICAgICAgICAncGhwRmlsZUInOiAnJ30sCiAgICAgJ2VuLVVTJzogeydNeU1vZHVsZSc6ICdvbmVDb2x1bW4nLAogICAgICAgICAgICAgICAnTm90ZXMnOiAnJywKICAgICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdTdGFydE1zZycsCiAgICAgICAgICAgICAgICdhTGFiZWwnOiAnJywKICAgICAgICAgICAgICAgJ2FfZmlsZSc6ICcnLAogICAgICAgICAgICAgICAnYWRkQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgJ2FzdmdmaWxlJzogJzxzdmc+PC9zdmc+JywKICAgICAgICAgICAgICAgJ2NkYXRhJzogJycsCiAgICAgICAgICAgICAgICdjb2RlJzogJycsCiAgICAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBib2R5IHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzY3JpcHRJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAgICAnY29sQkdJbWFnZSc6ICcnLAogICAgICAgICAgICAgICAnY29sQkdJbWFnZVdyYXAnOiAnJywKICAgICAgICAgICAgICAgJ2NvbXBvc2VySlNPTic6ICcnLAogICAgICAgICAgICAgICAnZGF0YSc6ICc8aDIgc3R5bGU9InRleHQtYWxpZ246IHJpZ2h0OyI+WWlpMiBSb2xlIGNvbnNvbGUgJwogICAgICAgICAgICAgICAgICAgICAgICdjb21tYW5kITwvaDI+JywKICAgICAgICAgICAgICAgJ2R5bmFtaWNCbG9jayc6ICcnLAogICAgICAgICAgICAgICAna2V5d29yZHMnOiAnJywKICAgICAgICAgICAgICAgJ21vZFZhcic6IHsnVmFyTGlzdCc6IHsnQWNjb3JkaW9uQ2FyZEJvZHlDbGFzcyc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBY2NvcmRpb25DYXJkQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWNjb3JkaW9uQ2FyZEhlYWRlckNsYXNzJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY29yZGlvbk9wZW5GaXJzdCc6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0R5bmFtaWNCbG9jayc6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLUNTU1Zhcic6ICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29tbWVudCBmcm9tICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29uZUNvbHVtblxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5Ub3BQYWRkaW5nPTUwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNaWRTY3JlZW5Ub3BQYWRkaW5nPTIwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTbWFsbFNjcmVlblRvcFBhZGRpbmc9MTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JpZ1NjZWVuQm90dG9tUGFkZGluZz01MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlkU2NyZWVuQm90dG9tUGFkZGluZz0yMFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU21hbGxTY3JlZW5Cb3R0b21QYWRkaW5nPTEwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JpZ1NjZWVuTGVmdFJpZ2h0UGFkZGluZz0yMFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlkU2NyZWVuTGVmdFJpZ2h0UGFkZGluZz0xNVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU21hbGxTY3JlZW5MZWZ0UmlnaHRQYWRkaW5nPTEwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JpZ1NjZWVuVG9wTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pZFNjcmVlblRvcE1hcmdpbj0wXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTbWFsbFNjcmVlblRvcE1hcmdpbj0wXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCaWdTY2VlbkJvdHRvbU1hcmdpbj0wXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNaWRTY3JlZW5Cb3R0b21NYXJnaW49MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU21hbGxTY3JlZW5Cb3R0b21NYXJnaW49MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgaWQgZm9udCBjb2xvclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRm9udENvbG9yPV9Db2xvckFfXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgbW9kdWxlIGJhY2tncm91bmRcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01CYWNrZ3JvdW5kPVxuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktQ292ZXJCYWNrZ3JvdW5kJzogJyA8c3R5bGU+ICNfSURfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3sgYmFja2dyb3VuZDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1RpbnRCR18gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXJsKF9DSU1BR0VfKSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduby1yZXBlYXQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2VudGVyIGNlbnRlciAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaXhlZDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLXdlYmtpdC1iYWNrZ3JvdW5kLXNpemU6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvdmVyOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctbW96LWJhY2tncm91bmQtc2l6ZTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY292ZXI7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1vLWJhY2tncm91bmQtc2l6ZTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY292ZXI7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtc2l6ZTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY292ZXI7IH0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT4gJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktQ292ZXJCYWNrZ3JvdW5kU1ZHJzogJyA8c3R5bGU+IC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Njcm9sbCB3aWxsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXkgd2l0aCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250ZW50ICAqLyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjX0lEXyB7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19UaW50QkdfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VybChfQ0lNQUdFXykgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm8tcmVwZWF0ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NlbnRlciAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjZW50ZXI7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtc2l6ZTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMTAwJSAxMDAlOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XG4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1FbmRUYWdDb2RlJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLUdQb3N0SW5jJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLUhlbHAnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktUG9zdEluYyc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1QcmVJbmMnOiAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjX0lEXyAgeyBfRm9udENvbG9yXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTUJhY2tncm91bmRfIH1cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIHtwb3NpdGlvbjogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsYXRpdmU7fVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuX0lEWF8geyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nLWJvdHRvbTogMTVweDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIC5oY29udGVudCB7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgdG9wOiA1MCU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIGxlZnQ6IDUwJTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgdHJhbnNmb3JtOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjX0lEXyAuY3Rjb250ZW50IHtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgcG9zaXRpb246IGFic29sdXRlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB0b3A6IDUwJTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgbGVmdDogNTAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB0cmFuc2Zvcm06ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgYmFja2dyb3VuZC1jb2xvcjogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmdiYSgwLCAwLCAwLCAuMjUpO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgY29sb3I6IHdoaXRlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBwYWRkaW5nOiAyMHB4O1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjX0lEXyAudmNvbnRhaW5lciB7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIGhlaWdodDogNTB2aDtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgcG9zaXRpb246IHJlbGF0aXZlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBvdmVyZmxvdzogaGlkZGVuO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQG1lZGlhKG1pbi13aWR0aDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNjAwcHgpIHtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICNfSURfIC52Y29udGFpbmVyIHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0OiAxMDB2aDsgfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKiAjX0lEXyAucm93ID4gZGl2eyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nOiAxMHB4OyB9ICovXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKiBTbWFsbCBEZXZpY2VzLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUYWJsZXRzIGZyb20gb25lQ29sdW1uICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyovXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdAbWVkaWEgb25seSBzY3JlZW4gYW5kICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhtYXgtd2lkdGggOiA1NzZweCkgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneyNfSURfIC5yb3cgeyBwYWRkaW5nOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcwICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19TbWFsbFNjcmVlbkxlZnRSaWdodFBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gI19JRF8geyBwYWRkaW5nLXRvcDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1NtYWxsU2NyZWVuVG9wUGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZy1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19TbWFsbFNjcmVlbkJvdHRvbVBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19TbWFsbFNjcmVlblRvcE1hcmdpbl9weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1NtYWxsU2NyZWVuQm90dG9tTWFyZ2luX3B4O30gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLyogTWVkaXVtIERldmljZXMsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Rlc2t0b3BzICovIEBtZWRpYSBvbmx5ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjcmVlbiBhbmQgKG1pbi13aWR0aCA6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzc2OHB4KSB7I19JRF8gLnJvdyB7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmc6MCAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX01pZFNjcmVlbkxlZnRSaWdodFBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gI19JRF8geyBwYWRkaW5nLXRvcDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX01pZFNjcmVlblRvcFBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmctYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuQm90dG9tUGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX01pZFNjcmVlblRvcE1hcmdpbl9weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX01pZFNjcmVlbkJvdHRvbU1hcmdpbl9weDt9fVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLyogTGFyZ2UgRGV2aWNlcywgV2lkZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTY3JlZW5zICovIEBtZWRpYSBvbmx5ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NjcmVlbiBhbmQgKG1pbi13aWR0aCA6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzk5MnB4KSB7I19JRF8gLnJvdyB7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmc6IDAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX0JpZ1NjZWVuTGVmdFJpZ2h0UGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSAjX0lEXyB7IHBhZGRpbmctdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfQmlnU2NlZW5Ub3BQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nLWJvdHRvbTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX0JpZ1NjZWVuQm90dG9tUGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX0JpZ1NjZWVuVG9wTWFyZ2luX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfQmlnU2NlZW5Cb3R0b21NYXJnaW5fcHg7fX1cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XG4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1QcmVUYWdDb2RlJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLVZpZGVvQmFja2dyb3VuZCc6ICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5oZWFkZXItdW5pdF9JRF8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmlnaHQ6bm9uZTsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLWxlZnQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vbmU7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bvc2l0aW9uOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxhdGl2ZTsgfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI3ZpZGVvLWNvbnRhaW5lcl9JRF8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAne1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBwb3NpdGlvbjogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWJzb2x1dGU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIGhlaWdodDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMTAwJTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgd2lkdGg6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzEwMCU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRvcDogMDtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgbGVmdDogMDtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjdmlkZW8tY29udGFpbmVyX0lEXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2aWRlb3tcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgb2JqZWN0LWZpdDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY292ZXI7IFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XG4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUaW50aW5nQkcnOiAnbGluZWFyLWdyYWRpZW50KCByZ2JhKDAsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAsIDAsIDApLCByZ2JhKDAsIDAsIDAsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzApKSwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleHRyYUNsYXNzJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCc6IDYwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnOiAxMjAwfX0sCiAgICAgICAgICAgICAgICdwaHBGaWxlJzogJycsCiAgICAgICAgICAgICAgICdwaHBGaWxlQSc6ICcnLAogICAgICAgICAgICAgICAncGhwRmlsZUInOiAnJ319LAogMjogeydlbic6IHsnTm90ZXMnOiAnJywKICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdTdGFydE1zZycsCiAgICAgICAgICAgICdhTGFiZWwnOiAnJywKICAgICAgICAgICAgJ2FfZmlsZSc6ICcnLAogICAgICAgICAgICAnYWRkQ2xhc3MnOiAnJywKICAgICAgICAgICAgJ2FzdmdmaWxlJzogJzxzdmc+PC9zdmc+JywKICAgICAgICAgICAgJ2NkYXRhJzogJycsCiAgICAgICAgICAgICdjb2RlJzogJycsCiAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBib2R5IHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzY3JpcHRJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAnY29sQkdJbWFnZSc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWcxLmpwZycsCiAgICAgICAgICAgICdjb2xCR0ltYWdlV3JhcCc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWcyLmpwZycsCiAgICAgICAgICAgICdjb21wb3NlckpTT04nOiAnJywKICAgICAgICAgICAgJ2RhdGEnOiAnPGgyIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPllpaTIgUm9sZSBjb25zb2xlICcKICAgICAgICAgICAgICAgICAgICAnY29tbWFuZCE8L2gyPicsCiAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICdwaHBGaWxlJzogJycsCiAgICAgICAgICAgICdwaHBGaWxlQSc6ICcnLAogICAgICAgICAgICAncGhwRmlsZUInOiAnJ30sCiAgICAgJ2VuLVVTJzogeydNeU1vZHVsZSc6ICdvbmVDb2x1bW4nLAogICAgICAgICAgICAgICAnTm90ZXMnOiAnJywKICAgICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdTdGFydE1zZycsCiAgICAgICAgICAgICAgICdhTGFiZWwnOiAnJywKICAgICAgICAgICAgICAgJ2FfZmlsZSc6ICcnLAogICAgICAgICAgICAgICAnYWRkQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgJ2FzdmdmaWxlJzogJzxzdmc+PC9zdmc+JywKICAgICAgICAgICAgICAgJ2NkYXRhJzogJycsCiAgICAgICAgICAgICAgICdjb2RlJzogJycsCiAgICAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBib2R5IHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzY3JpcHRJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAgICAnY29sQkdJbWFnZSc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWcxLmpwZycsCiAgICAgICAgICAgICAgICdjb2xCR0ltYWdlV3JhcCc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWcyLmpwZycsCiAgICAgICAgICAgICAgICdjb21wb3NlckpTT04nOiAnJywKICAgICAgICAgICAgICAgJ2RhdGEnOiAnPGgyIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPllpaTIgUm9sZSBjb25zb2xlICcKICAgICAgICAgICAgICAgICAgICAgICAnY29tbWFuZCE8L2gyPicsCiAgICAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICAgICdtb2RWYXInOiB7J1Zhckxpc3QnOiB7J0FjY29yZGlvbkNhcmRCb2R5Q2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWNjb3JkaW9uQ2FyZENsYXNzJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY29yZGlvbkNhcmRIZWFkZXJDbGFzcyc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBY2NvcmRpb25PcGVuRmlyc3QnOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEeW5hbWljQmxvY2snOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1DU1NWYXInOiAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbW1lbnQgZnJvbSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvbmVDb2x1bW5cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JpZ1NjZWVuVG9wUGFkZGluZz01MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlkU2NyZWVuVG9wUGFkZGluZz0yMFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU21hbGxTY3JlZW5Ub3BQYWRkaW5nPTEwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCaWdTY2VlbkJvdHRvbVBhZGRpbmc9NTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pZFNjcmVlbkJvdHRvbVBhZGRpbmc9MjBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuQm90dG9tUGFkZGluZz0xMFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCaWdTY2VlbkxlZnRSaWdodFBhZGRpbmc9MjBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pZFNjcmVlbkxlZnRSaWdodFBhZGRpbmc9MTVcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuTGVmdFJpZ2h0UGFkZGluZz0xMFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCaWdTY2VlblRvcE1hcmdpbj0wXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNaWRTY3JlZW5Ub3BNYXJnaW49MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU21hbGxTY3JlZW5Ub3BNYXJnaW49MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5Cb3R0b21NYXJnaW49MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlkU2NyZWVuQm90dG9tTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuQm90dG9tTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIGlkIGZvbnQgY29sb3JcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZvbnRDb2xvcj1fQ29sb3JBX1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIG1vZHVsZSBiYWNrZ3JvdW5kXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNQmFja2dyb3VuZD1cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLUNvdmVyQmFja2dyb3VuZCc6ICcgPHN0eWxlPiAjX0lEXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7IGJhY2tncm91bmQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19UaW50QkdfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VybChfQ0lNQUdFXykgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm8tcmVwZWF0ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NlbnRlciBjZW50ZXIgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZml4ZWQ7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy13ZWJraXQtYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLW1vei1iYWNrZ3JvdW5kLXNpemU6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvdmVyOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctby1iYWNrZ3JvdW5kLXNpemU6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvdmVyOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLXNpemU6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvdmVyOyB9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+ICcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLUNvdmVyQmFja2dyb3VuZFNWRyc6ICcgPHN0eWxlPiAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JvbGwgd2lsbCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF5IHdpdGggJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udGVudCAgKi8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8geyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfVGludEJHXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmwoX0NJTUFHRV8pICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vLXJlcGVhdCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjZW50ZXIgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2VudGVyOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLXNpemU6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzEwMCUgMTAwJTsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktRW5kVGFnQ29kZSc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1HUG9zdEluYyc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1IZWxwJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLVBvc3RJbmMnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktUHJlSW5jJzogJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gIHsgX0ZvbnRDb2xvcl8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX01CYWNrZ3JvdW5kXyB9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjX0lEXyB7cG9zaXRpb246ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbGF0aXZlO31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLl9JRFhfIHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZy1ib3R0b206IDE1cHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjX0lEXyAuaGNvbnRlbnQge1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBwb3NpdGlvbjogYWJzb2x1dGU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRvcDogNTAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBsZWZ0OiA1MCU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRyYW5zZm9ybTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNsYXRlKC01MCUsIC01MCUpO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gLmN0Y29udGVudCB7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgdG9wOiA1MCU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIGxlZnQ6IDUwJTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgdHJhbnNmb3JtOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIGJhY2tncm91bmQtY29sb3I6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JnYmEoMCwgMCwgMCwgLjI1KTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgIGNvbG9yOiB3aGl0ZTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgcGFkZGluZzogMjBweDtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gLnZjb250YWluZXIge1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBoZWlnaHQ6IDUwdmg7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgb3ZlcmZsb3c6IGhpZGRlbjtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BtZWRpYShtaW4td2lkdGg6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzYwMHB4KSB7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAjX0lEXyAudmNvbnRhaW5lciB7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodDogMTAwdmg7IH1cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLyogI19JRF8gLnJvdyA+IGRpdnsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZzogMTBweDsgfSAqL1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLyogU21hbGwgRGV2aWNlcywgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVGFibGV0cyBmcm9tIG9uZUNvbHVtbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcqL1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcobWF4LXdpZHRoIDogNTc2cHgpICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3sjX0lEXyAucm93IHsgcGFkZGluZzogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5MZWZ0UmlnaHRQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9ICNfSURfIHsgcGFkZGluZy10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19TbWFsbFNjcmVlblRvcFBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmctYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5Cb3R0b21QYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5Ub3BNYXJnaW5fcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19TbWFsbFNjcmVlbkJvdHRvbU1hcmdpbl9weDt9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qIE1lZGl1bSBEZXZpY2VzLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEZXNrdG9wcyAqLyBAbWVkaWEgb25seSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4gYW5kIChtaW4td2lkdGggOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc3NjhweCkgeyNfSURfIC5yb3cgeyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nOjAgICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NaWRTY3JlZW5MZWZ0UmlnaHRQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9ICNfSURfIHsgcGFkZGluZy10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NaWRTY3JlZW5Ub3BQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nLWJvdHRvbTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX01pZFNjcmVlbkJvdHRvbVBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NaWRTY3JlZW5Ub3BNYXJnaW5fcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NaWRTY3JlZW5Cb3R0b21NYXJnaW5fcHg7fX1cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qIExhcmdlIERldmljZXMsIFdpZGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU2NyZWVucyAqLyBAbWVkaWEgb25seSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4gYW5kIChtaW4td2lkdGggOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc5OTJweCkgeyNfSURfIC5yb3cgeyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nOiAwICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlbkxlZnRSaWdodFBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gI19JRF8geyBwYWRkaW5nLXRvcDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX0JpZ1NjZWVuVG9wUGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZy1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlbkJvdHRvbVBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlblRvcE1hcmdpbl9weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX0JpZ1NjZWVuQm90dG9tTWFyZ2luX3B4O319XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktUHJlVGFnQ29kZSc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1WaWRlb0JhY2tncm91bmQnOiAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuaGVhZGVyLXVuaXRfSURfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3sgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLXJpZ2h0Om5vbmU7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1sZWZ0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub25lOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb3NpdGlvbjogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsYXRpdmU7IH1cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyN2aWRlby1jb250YWluZXJfSURfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgcG9zaXRpb246ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Fic29sdXRlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBoZWlnaHQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzEwMCU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHdpZHRoOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxMDAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB0b3A6IDA7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIGxlZnQ6IDA7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9IFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI3ZpZGVvLWNvbnRhaW5lcl9JRF8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmlkZW97XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIG9iamVjdC1maXQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvdmVyOyBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVGludGluZ0JHJzogJ2xpbmVhci1ncmFkaWVudCggcmdiYSgwLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcwLCAwLCAwKSwgcmdiYSgwLCAwLCAwLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcwKSksJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXh0cmFDbGFzcyc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJzogMTIwMH19LAogICAgICAgICAgICAgICAncGhwRmlsZSc6ICcnLAogICAgICAgICAgICAgICAncGhwRmlsZUEnOiAnJywKICAgICAgICAgICAgICAgJ3BocEZpbGVCJzogJyd9fSwKIDM6IHsnZW4nOiB7J05vdGVzJzogJycsCiAgICAgICAgICAgICdTbGlkZVR5cGUnOiAnQ29kZScsCiAgICAgICAgICAgICdhSW1hZ2UnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nMy5qcGcnLAogICAgICAgICAgICAnYUltYWdlVGh1bSc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi90aHVtL2ltZzEuanBnJywKICAgICAgICAgICAgJ2FMYWJlbCc6ICdSb2xlIENvbW1hbmRzJywKICAgICAgICAgICAgJ2FNZWRpYSc6ICcnLAogICAgICAgICAgICAnYV9maWxlJzogJycsCiAgICAgICAgICAgICdhZGRDbGFzcyc6ICcnLAogICAgICAgICAgICAnYXN2Z2ZpbGUnOiAnPHN2Zz48L3N2Zz4nLAogICAgICAgICAgICAnY29kZSc6ICcnLAogICAgICAgICAgICAnY29kZUluYyc6ICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHN0eWxlSW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc2NyaXB0SW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgYm9keSB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc2NyaXB0SW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBFbmRcclxuJywKICAgICAgICAgICAgJ2NvbEJHSW1hZ2UnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nNC5qcGcnLAogICAgICAgICAgICAnY29sQkdJbWFnZVdyYXAnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nNS5qcGcnLAogICAgICAgICAgICAnY29tcG9zZXJKU09OJzogJycsCiAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICdwaHBGaWxlJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL3ZlbmRvci8yYW1pZ29zL3lpaTItdXN1YXJpby9zcmMvVXNlci9Db21tYW5kL1JvbGVDb250cm9sbGVyLnBocCAnCiAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnLypcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgMmFtaWdvcy95aWkyLXVzdWFyaW8gJwogICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0LlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICogKGMpIDJhbWlnT1MhIDxodHRwOi8vMmFtaWdvcy51cy8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCAnCiAgICAgICAgICAgICAgICAgICAgICAgJ3BsZWFzZSB2aWV3XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICogdGhlIExJQ0VOU0UgZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgJwogICAgICAgICAgICAgICAgICAgICAgICdzb3VyY2UgY29kZS5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICduYW1lc3BhY2UgRGFcXFVzZXJcXENvbW1hbmQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxGYWN0b3J5XFxNYWlsRmFjdG9yeTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZGVsXFxVc2VyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcU2VydmljZVxcVXNlckNyZWF0ZVNlcnZpY2U7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxUcmFpdHNcXENvbnRhaW5lckF3YXJlVHJhaXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAndXNlIFlpaTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICd1c2UgeWlpXFxjb25zb2xlXFxDb250cm9sbGVyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGhlbHBlcnNcXENvbnNvbGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3MgUm9sZUNvbnRyb2xsZXIgZXh0ZW5kcyBDb250cm9sbGVyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAne1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICB1c2UgQ29udGFpbmVyQXdhcmVUcmFpdDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIFRoaXMgY29tbWFuZCBhIHJvbGUgdG8gYSB1c2VyL2VtYWlsLiBJZiB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICd1c2VyIGFscmVhZHkgaGFzIHRoZSByb2xlIGFzc2lnbiwgaXQgd2lsbCBza2lwLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgJGVtYWlsICAgIEVtYWlsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmd8bnVsbCAkcm9sZSAgICAgUm9sZSB0byBhc3NpZ24gJwogICAgICAgICAgICAgICAgICAgICAgICcobXVzdCBhbHJlYWR5IGV4aXN0KVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzIFxceWlpXFxiYXNlXFxJbnZhbGlkQ29uZmlnRXhjZXB0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uSW5kZXgoJGVtYWlsLCAkcm9sZSlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgeyAgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJHVzZXIgPSBZaWk6OiRhcHAtPmRiLT5jcmVhdGVDb21tYW5kKCdTRUxFQ1QgIgogICAgICAgICAgICAgICAgICAgICAgICdpZCwgdXNlcm5hbWUsIGVtYWlsIEZST00gdXNlciAgIHdoZXJlICBlbWFpbCA9ICcKICAgICAgICAgICAgICAgICAgICAgICAnIlwnLiRlbWFpbC5cJyJcJykgLT5xdWVyeU9uZSgpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICNwcmludF9yKCRhbGxVc2Vycyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkYXV0aCA9IFlpaTo6JGFwcC0+Z2V0QXV0aE1hbmFnZXIoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGlmIChmYWxzZSA9PT0gJGF1dGgpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAkdGhpcy0+c3Rkb3V0KFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBZaWk6OnQoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAndXN1YXJpbycsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICAgICBcJ0Nhbm5vdCBhc3NpZ24gcm9sZSAiezB9IiBhcyB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdBdXRoTWFuYWdlciBpcyBub3QgY29uZmlndXJlZCBvbiB5b3VyIGNvbnNvbGUgJwogICAgICAgICAgICAgICAgICAgICAgICJhcHBsaWNhdGlvbi4nLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICAgICAgJHJvbGVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgKSAuICJcXG4iLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBDb25zb2xlOjpGR19SRURcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICApOyBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJHVzZXJSb2xlID0gJGF1dGgtPmdldFJvbGUoJHJvbGUpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIGlmIChudWxsID09PSAkdXNlclJvbGUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgJHRoaXMtPnN0ZG91dChZaWk6OnQoJ3VzdWFyaW8nLCAnUm9sZSAiCiAgICAgICAgICAgICAgICAgICAgICAgJyJ7MH0iIG5vdCBmb3VuZC4gQ3JlYXRpbmcgaXQuXCcsIFskcm9sZV0pIC4gIiFcXG4iLCAnCiAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnNvbGU6OkZHX0dSRUVOKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgJHVzZXJSb2xlID0gJwogICAgICAgICAgICAgICAgICAgICAgICckYXV0aC0+Y3JlYXRlUm9sZSgkcm9sZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICRhdXRoLT5hZGQoJHVzZXJSb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAvLyBwcmludF9yKCR1c2VyUm9sZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAkYXV0aC0+YXNzaWduKCR1c2VyUm9sZSwgJHVzZXJbJ2lkJ10pO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nLAogICAgICAgICAgICAncGhwRmlsZUEnOiAnPD9waHAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL3ZlbmRvci8yYW1pZ29zL3lpaTItdXN1YXJpby9zcmMvVXNlci9Db21tYW5kL0Fzb25lQ29udHJvbGxlci5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJy8qXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSAyYW1pZ29zL3lpaTItdXN1YXJpbyAnCiAgICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0LlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKiAoYykgMmFtaWdPUyEgPGh0dHA6Ly8yYW1pZ29zLnVzLz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgJwogICAgICAgICAgICAgICAgICAgICAgICAncGxlYXNlIHZpZXdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICogdGhlIExJQ0VOU0UgZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgJwogICAgICAgICAgICAgICAgICAgICAgICAnc291cmNlIGNvZGUuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlIERhXFxVc2VyXFxDb21tYW5kO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxGYWN0b3J5XFxNYWlsRmFjdG9yeTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxNb2RlbFxcVXNlcjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxTZXJ2aWNlXFxVc2VyQ3JlYXRlU2VydmljZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxUcmFpdHNcXENvbnRhaW5lckF3YXJlVHJhaXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBZaWk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGNvbnNvbGVcXENvbnRyb2xsZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGhlbHBlcnNcXENvbnNvbGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdjbGFzcyBBc29uZUNvbnRyb2xsZXIgZXh0ZW5kcyBDb250cm9sbGVyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3tcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIHVzZSBDb250YWluZXJBd2FyZVRyYWl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8qKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogVGhpcyBjb21tYW5kIGNyZWF0ZXMgYSBuZXcgdXNlciBhY2NvdW50IGZvciAnCiAgICAgICAgICAgICAgICAgICAgICAgICdXZWJBc09uZS4gSWYgbm8gcGFzc3dvcmQgaXMgbm90IHNldCwgYW4gOC1jaGFyICcKICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkIHdpbGwgYmUgZ2VuZXJhdGVkLiBBZnRlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogc2F2aW5nIHVzZXIgdG8gZGF0YWJhc2UsIHRoaXMgY29tbWFuZCB1c2VzICcKICAgICAgICAgICAgICAgICAgICAgICAgJ21haWxlciBjb21wb25lbnQgdG8gc2VuZCBjcmVkZW50aWFscyAodXNlcm5hbWUgYW5kICcKICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkKSB0byB1c2VyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiB2aWEgZW1haWwuIEEgcm9sZSBjYW4gYmUgYWxzbyBhc3NpZ25lZCBidXQgaXQgJwogICAgICAgICAgICAgICAgICAgICAgICAnbXVzdCBleGlzdHMgcHJldmlvdXNseSBvbiB0aGUgZGF0YWJhc2UuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICRlbWFpbCAgICBFbWFpbFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICR1c2VybmFtZSBVc2VybmFtZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZ3xudWxsICRwYXNzd29yZCBUaGUgcGFzc3dvcmQuIElmICcKICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwgaXQgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZ3xudWxsICRyb2xlICAgICBSb2xlIHRvIGFzc2lnbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICcobXVzdCBhbHJlYWR5IGV4aXN0KVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEB0aHJvd3MgXFx5aWlcXGJhc2VcXEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIGZ1bmN0aW9uIGFjdGlvbkluZGV4KClcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJGFsbFVzZXJzID0gJwogICAgICAgICAgICAgICAgICAgICAgICAnWWlpOjokYXBwLT5kYi0+Y3JlYXRlQ29tbWFuZChcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAnU0VMRUNUIHUuaWQsIHUudXNlcm5hbWUsIHUuZW1haWwsICIKICAgICAgICAgICAgICAgICAgICAgICAgImEuaXRlbV9uYW1lIEZST00nXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgLicgdXNlciBhcyB1IGlubmVyIGpvaW4gYXV0aF9hc3NpZ25tZW50IGEgIgogICAgICAgICAgICAgICAgICAgICAgICAid2hlcmUgYS51c2VyX2lkID0gdS5pZCcpIC0+cXVlcnlBbGwoKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgI3ByaW50X3IoJGFsbFVzZXJzKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICN2YXJfZHVtcChhcnJheV9tYXAoZnVuY3Rpb24gKCRhKSB7ICcKICAgICAgICAgICAgICAgICAgICAgICAgInJldHVybiBbJGFbJ3VzZXJuYW1lJ10sICRhWydlbWFpbCddXTsgIgogICAgICAgICAgICAgICAgICAgICAgICAnfSwkYWxsVXNlcnMpKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgZWNobyAiXFxuXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgZm9yZWFjaCAoJGFsbFVzZXJzIGFzICR1KSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgZWNobyAnICAgICcsJHVbJ2lkJ10sJzonLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICIkdVsndXNlcm5hbWUnXSwgJzonLCAkdVsnZW1haWwnXSwgJzonLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICckdVtcJ2l0ZW1fbmFtZVwnXSwgIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgZWNobyAiXFxuXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnfScsCiAgICAgICAgICAgICdwaHBGaWxlQic6ICc8P3BocCAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICdfZG9jcm9vdF8vLi4vc3JjL3lpaTIvYWR2YW5jZWQvdmVuZG9yLzJhbWlnb3MveWlpMi11c3VhcmlvL3NyYy9Vc2VyL0NvbW1hbmQvQ3JlYXRlQ29udHJvbGxlci5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcvKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgMmFtaWdvcy95aWkyLXVzdWFyaW8gJwogICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdC5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICogKGMpIDJhbWlnT1MhIDxodHRwOi8vMmFtaWdvcy51cy8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sICcKICAgICAgICAgICAgICAgICAgICAgICAgJ3BsZWFzZSB2aWV3XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqIHRoZSBMSUNFTlNFIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzICcKICAgICAgICAgICAgICAgICAgICAgICAgJ3NvdXJjZSBjb2RlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWVzcGFjZSBEYVxcVXNlclxcQ29tbWFuZDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcRmFjdG9yeVxcTWFpbEZhY3Rvcnk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcTW9kZWxcXFVzZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcU2VydmljZVxcVXNlckNyZWF0ZVNlcnZpY2U7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcVHJhaXRzXFxDb250YWluZXJBd2FyZVRyYWl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgWWlpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgeWlpXFxjb25zb2xlXFxDb250cm9sbGVyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgeWlpXFxoZWxwZXJzXFxDb25zb2xlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3MgQ3JlYXRlQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAne1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgdXNlIENvbnRhaW5lckF3YXJlVHJhaXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBUaGlzIGNvbW1hbmQgY3JlYXRlcyBhIG5ldyB1c2VyIGFjY291bnQuIElmIG5vICcKICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkIGlzIG5vdCBzZXQsIGFuIDgtY2hhciBwYXNzd29yZCB3aWxsIGJlICcKICAgICAgICAgICAgICAgICAgICAgICAgJ2dlbmVyYXRlZC4gQWZ0ZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIHNhdmluZyB1c2VyIHRvIGRhdGFiYXNlLCB0aGlzIGNvbW1hbmQgdXNlcyAnCiAgICAgICAgICAgICAgICAgICAgICAgICdtYWlsZXIgY29tcG9uZW50IHRvIHNlbmQgY3JlZGVudGlhbHMgKHVzZXJuYW1lIGFuZCAnCiAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzd29yZCkgdG8gdXNlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogdmlhIGVtYWlsLiBBIHJvbGUgY2FuIGJlIGFsc28gYXNzaWduZWQgYnV0IGl0ICcKICAgICAgICAgICAgICAgICAgICAgICAgJ211c3QgZXhpc3RzIHByZXZpb3VzbHkgb24gdGhlIGRhdGFiYXNlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkZW1haWwgICAgRW1haWxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkdXNlcm5hbWUgVXNlcm5hbWVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkdXJsIHdlYnNpdGUgdXJsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHBhc3N3b3JkIFRoZSBwYXNzd29yZC4gSWYgJwogICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCBpdCB3aWxsIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHJvbGUgICAgIFJvbGUgdG8gYXNzaWduICcKICAgICAgICAgICAgICAgICAgICAgICAgJyhtdXN0IGFscmVhZHkgZXhpc3QpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHRocm93cyBcXHlpaVxcYmFzZVxcSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uSW5kZXgoJGVtYWlsLCAkdXNlcm5hbWUsICcKICAgICAgICAgICAgICAgICAgICAgICAgJyR1cmwsICRwYXNzd29yZCA9IG51bGwsICRyb2xlID0gbnVsbClcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvKiogQHZhciBVc2VyICR1c2VyICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHVzZXIgPSAkdGhpcy0+bWFrZShcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgVXNlcjo6Y2xhc3MsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIFtdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICBbJ3NjZW5hcmlvJyA9PiAnY3JlYXRlJywgJ2VtYWlsJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICIkZW1haWwsICd1c2VybmFtZScgPT4gJHVzZXJuYW1lLCAncGFzc3dvcmQnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgJyRwYXNzd29yZF1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICApO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcdCNwcmludF9yKCR1c2VyLT51c2VybmFtZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1x0I3JldHVybjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkbWFpbFNlcnZpY2UgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICdNYWlsRmFjdG9yeTo6bWFrZVdlbGNvbWVNYWlsZXJTZXJ2aWNlKCR1c2VyLCB0cnVlLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICIob2JqZWN0KVsndXJsJyA9PiAkdXJsXSk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGlmICgkdGhpcy0+bWFrZShVc2VyQ3JlYXRlU2VydmljZTo6Y2xhc3MsICcKICAgICAgICAgICAgICAgICAgICAgICAgJ1skdXNlciwgJG1haWxTZXJ2aWNlXSktPnJ1bigpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICR0aGlzLT5zdGRvdXQoWWlpOjp0KCd1c3VhcmlvJywgJ1VzZXIgaGFzICIKICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZW4gY3JlYXRlZFwnKSAuICIhXFxuIiwgQ29uc29sZTo6RkdfR1JFRU4pO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgaWYgKG51bGwgIT09ICRyb2xlKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICAkdGhpcy0+YXNzaWduUm9sZSgkdXNlciwgJHJvbGUpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgfSBlbHNlIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJHRoaXMtPnN0ZG91dChZaWk6OnQoJ3VzdWFyaW8nLCAnUGxlYXNlICIKICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpeCBmb2xsb3dpbmcgZXJyb3JzOlwnKSAuICJcXG4iLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICdDb25zb2xlOjpGR19SRUQpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBmb3JlYWNoICgkdXNlci0+ZXJyb3JzIGFzICRlcnJvcnMpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRlcnJvcnMgYXMgJGVycm9yKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnN0ZG91dCgnIC0gJyAuICRlcnJvciAuICIKICAgICAgICAgICAgICAgICAgICAgICAgJyJcXG4iLCBDb25zb2xlOjpGR19SRUQpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIHByb3RlY3RlZCBmdW5jdGlvbiBhc3NpZ25Sb2xlKFVzZXIgJHVzZXIsICcKICAgICAgICAgICAgICAgICAgICAgICAgJyRyb2xlKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRhdXRoID0gWWlpOjokYXBwLT5nZXRBdXRoTWFuYWdlcigpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGlmIChmYWxzZSA9PT0gJGF1dGgpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJHRoaXMtPnN0ZG91dChcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgIFlpaTo6dChcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAndXN1YXJpbycsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICAgICAgXCdDYW5ub3QgYXNzaWduIHJvbGUgInswfSIgYXMgdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgJ0F1dGhNYW5hZ2VyIGlzIG5vdCBjb25maWd1cmVkIG9uIHlvdXIgY29uc29sZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICJhcHBsaWNhdGlvbi4nLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgICAgICRyb2xlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICApIC4gIlxcbiIsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBDb25zb2xlOjpGR19SRURcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICB9IGVsc2Uge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAkdXNlclJvbGUgPSAkYXV0aC0+Z2V0Um9sZSgkcm9sZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIGlmIChudWxsID09PSAkdXNlclJvbGUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICR0aGlzLT5zdGRvdXQoWWlpOjp0KCd1c3VhcmlvJywgJ1JvbGUgIgogICAgICAgICAgICAgICAgICAgICAgICAnInswfSIgbm90IGZvdW5kLiBDcmVhdGluZyBpdC5cJywgWyRyb2xlXSkgLiAiIVxcbiIsICcKICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnNvbGU6OkZHX0dSRUVOKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICR1c2VyUm9sZSA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgJyRhdXRoLT5jcmVhdGVSb2xlKCRyb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICRhdXRoLT5hZGQoJHVzZXJSb2xlKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAkYXV0aC0+YXNzaWduKCR1c2VyUm9sZSwgJHVzZXItPmlkKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJywKICAgICAgICAgICAgJ3JlY29kZSc6ICc8P3BocCBcclxuJwogICAgICAgICAgICAgICAgICAgICAgIiRjbWQgPSAkcmVsX3Jvb3QuJy8uLi9zcmMveWlpMi9hZHZhbmNlZC95aWkgJztcclxuIgogICAgICAgICAgICAgICAgICAgICAgJyRyZXQgPSBzaGVsbF9leGVjKCRjbWQuIiB1c2VyL3JvbGUgd2ViYXNvbmVAZ21haWwuY29tICcKICAgICAgICAgICAgICAgICAgICAgICdDb3Vyc2VBIik7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICckcmV0ID0gc2hlbGxfZXhlYygkY21kLiIgdXNlci9yb2xlIHdlYmFzb25lQGdtYWlsLmNvbSAnCiAgICAgICAgICAgICAgICAgICAgICAnQ291cnNlQiIpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAnJHJldCA9IHNoZWxsX2V4ZWMoJGNtZC4iIHVzZXIvcm9sZSB3ZWJhc29uZUBnbWFpbC5jb20gJwogICAgICAgICAgICAgICAgICAgICAgJ0NvdXJzZUMiKTsgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICc/PicsCiAgICAgICAgICAgICd1RmlsZSc6ICcnfSwKICAgICAnZW4tVVMnOiB7J015TW9kdWxlJzogJ29uZUNvbHVtbicsCiAgICAgICAgICAgICAgICdOb3Rlcyc6ICcnLAogICAgICAgICAgICAgICAnU2xpZGVUeXBlJzogJ0NvZGUnLAogICAgICAgICAgICAgICAnYUltYWdlJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzMuanBnJywKICAgICAgICAgICAgICAgJ2FJbWFnZVRodW0nOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vdGh1bS9pbWcxLmpwZycsCiAgICAgICAgICAgICAgICdhTGFiZWwnOiAnUm9sZSBDb21tYW5kcycsCiAgICAgICAgICAgICAgICdhTWVkaWEnOiAnJywKICAgICAgICAgICAgICAgJ2FfZmlsZSc6ICcnLAogICAgICAgICAgICAgICAnYWRkQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgJ2FzdmdmaWxlJzogJzxzdmc+PC9zdmc+JywKICAgICAgICAgICAgICAgJ2NvZGUnOiAnJywKICAgICAgICAgICAgICAgJ2NvZGVJbmMnOiAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzdHlsZUluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGhlYWQgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc3R5bGVJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHNjcmlwdEluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGJvZHkgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHNjcmlwdEluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgRW5kXHJcbicsCiAgICAgICAgICAgICAgICdjb2xCR0ltYWdlJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzQuanBnJywKICAgICAgICAgICAgICAgJ2NvbEJHSW1hZ2VXcmFwJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzUuanBnJywKICAgICAgICAgICAgICAgJ2NvbXBvc2VySlNPTic6ICcnLAogICAgICAgICAgICAgICAnZHluYW1pY0Jsb2NrJzogJycsCiAgICAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAgICAnbW9kVmFyJzogeydWYXJMaXN0JzogeydBY2NvcmRpb25DYXJkQm9keUNsYXNzJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY29yZGlvbkNhcmRDbGFzcyc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBY2NvcmRpb25DYXJkSGVhZGVyQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWNjb3JkaW9uT3BlbkZpcnN0JzogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRHluYW1pY0Jsb2NrJzogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktQ1NTVmFyJzogJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb21tZW50IGZyb20gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25lQ29sdW1uXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCaWdTY2VlblRvcFBhZGRpbmc9NTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pZFNjcmVlblRvcFBhZGRpbmc9MjBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuVG9wUGFkZGluZz0xMFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5Cb3R0b21QYWRkaW5nPTUwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNaWRTY3JlZW5Cb3R0b21QYWRkaW5nPTIwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTbWFsbFNjcmVlbkJvdHRvbVBhZGRpbmc9MTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5MZWZ0UmlnaHRQYWRkaW5nPTIwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNaWRTY3JlZW5MZWZ0UmlnaHRQYWRkaW5nPTE1XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTbWFsbFNjcmVlbkxlZnRSaWdodFBhZGRpbmc9MTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5Ub3BNYXJnaW49MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlkU2NyZWVuVG9wTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuVG9wTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JpZ1NjZWVuQm90dG9tTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pZFNjcmVlbkJvdHRvbU1hcmdpbj0wXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTbWFsbFNjcmVlbkJvdHRvbU1hcmdpbj0wXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBpZCBmb250IGNvbG9yXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGb250Q29sb3I9X0NvbG9yQV9cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBtb2R1bGUgYmFja2dyb3VuZFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTUJhY2tncm91bmQ9XG4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1Db3ZlckJhY2tncm91bmQnOiAnIDxzdHlsZT4gI19JRF8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneyBiYWNrZ3JvdW5kOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfVGludEJHXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmwoX0NJTUFHRV8pICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vLXJlcGVhdCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjZW50ZXIgY2VudGVyICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpeGVkOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctd2Via2l0LWJhY2tncm91bmQtc2l6ZTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY292ZXI7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1tb3otYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLW8tYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgfSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPiAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1Db3ZlckJhY2tncm91bmRTVkcnOiAnIDxzdHlsZT4gLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Nyb2xsIHdpbGwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RheSB3aXRoICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQgICovICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1RpbnRCR18gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXJsKF9DSU1BR0VfKSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduby1yZXBlYXQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2VudGVyICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NlbnRlcjsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxMDAlIDEwMCU7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLUVuZFRhZ0NvZGUnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktR1Bvc3RJbmMnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktSGVscCc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1Qb3N0SW5jJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLVByZUluYyc6ICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfICB7IF9Gb250Q29sb3JfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NQmFja2dyb3VuZF8gfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8ge3Bvc2l0aW9uOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxhdGl2ZTt9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5fSURYXyB7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmctYm90dG9tOiAxNXB4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gLmhjb250ZW50IHtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgcG9zaXRpb246IGFic29sdXRlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB0b3A6IDUwJTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgbGVmdDogNTAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB0cmFuc2Zvcm06ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIC5jdGNvbnRlbnQge1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBwb3NpdGlvbjogYWJzb2x1dGU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRvcDogNTAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBsZWZ0OiA1MCU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRyYW5zZm9ybTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNsYXRlKC01MCUsIC01MCUpO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBiYWNrZ3JvdW5kLWNvbG9yOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZ2JhKDAsIDAsIDAsIC4yNSk7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICBjb2xvcjogd2hpdGU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHBhZGRpbmc6IDIwcHg7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIC52Y29udGFpbmVyIHtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgaGVpZ2h0OiA1MHZoO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBwb3NpdGlvbjogcmVsYXRpdmU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIG92ZXJmbG93OiBoaWRkZW47XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdAbWVkaWEobWluLXdpZHRoOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc2MDBweCkge1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgI19JRF8gLnZjb250YWluZXIgeyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQ6IDEwMHZoOyB9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qICNfSURfIC5yb3cgPiBkaXZ7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmc6IDEwcHg7IH0gKi9cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qIFNtYWxsIERldmljZXMsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RhYmxldHMgZnJvbSBvbmVDb2x1bW4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKG1heC13aWR0aCA6IDU3NnB4KSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7I19JRF8gLnJvdyB7IHBhZGRpbmc6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1NtYWxsU2NyZWVuTGVmdFJpZ2h0UGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSAjX0lEXyB7IHBhZGRpbmctdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5Ub3BQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nLWJvdHRvbTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1NtYWxsU2NyZWVuQm90dG9tUGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1NtYWxsU2NyZWVuVG9wTWFyZ2luX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5Cb3R0b21NYXJnaW5fcHg7fSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKiBNZWRpdW0gRGV2aWNlcywgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRGVza3RvcHMgKi8gQG1lZGlhIG9ubHkgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuIGFuZCAobWluLXdpZHRoIDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNzY4cHgpIHsjX0lEXyAucm93IHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZzowICAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuTGVmdFJpZ2h0UGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSAjX0lEXyB7IHBhZGRpbmctdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuVG9wUGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZy1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NaWRTY3JlZW5Cb3R0b21QYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuVG9wTWFyZ2luX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuQm90dG9tTWFyZ2luX3B4O319XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKiBMYXJnZSBEZXZpY2VzLCBXaWRlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NjcmVlbnMgKi8gQG1lZGlhIG9ubHkgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuIGFuZCAobWluLXdpZHRoIDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOTkycHgpIHsjX0lEXyAucm93IHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZzogMCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfQmlnU2NlZW5MZWZ0UmlnaHRQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9ICNfSURfIHsgcGFkZGluZy10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlblRvcFBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmctYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfQmlnU2NlZW5Cb3R0b21QYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfQmlnU2NlZW5Ub3BNYXJnaW5fcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlbkJvdHRvbU1hcmdpbl9weDt9fVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLVByZVRhZ0NvZGUnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktVmlkZW9CYWNrZ3JvdW5kJzogJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmhlYWRlci11bml0X0lEXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yaWdodDpub25lOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItbGVmdDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9uZTsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9zaXRpb246ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbGF0aXZlOyB9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjdmlkZW8tY29udGFpbmVyX0lEXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHBvc2l0aW9uOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhYnNvbHV0ZTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgaGVpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxMDAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB3aWR0aDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMTAwJTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgdG9wOiAwO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBsZWZ0OiAwO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyN2aWRlby1jb250YWluZXJfSURfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZpZGVve1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBvYmplY3QtZml0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9IFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RpbnRpbmdCRyc6ICdsaW5lYXItZ3JhZGllbnQoIHJnYmEoMCwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCwgMCwgMCksIHJnYmEoMCwgMCwgMCwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCkpLCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4dHJhQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JzogNjAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc6IDEyMDB9fSwKICAgICAgICAgICAgICAgJ3BocEZpbGUnOiAnPD9waHAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgICdfZG9jcm9vdF8vLi4vc3JjL3lpaTIvYWR2YW5jZWQvdmVuZG9yLzJhbWlnb3MveWlpMi11c3VhcmlvL3NyYy9Vc2VyL0NvbW1hbmQvUm9sZUNvbnRyb2xsZXIucGhwICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcvKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSAyYW1pZ29zL3lpaTItdXN1YXJpbyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3QuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgKiAoYykgMmFtaWdPUyEgPGh0dHA6Ly8yYW1pZ29zLnVzLz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sICcKICAgICAgICAgICAgICAgICAgICAgICAgICAncGxlYXNlIHZpZXdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgKiB0aGUgTElDRU5TRSBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvdXJjZSBjb2RlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWVzcGFjZSBEYVxcVXNlclxcQ29tbWFuZDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXEZhY3RvcnlcXE1haWxGYWN0b3J5O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcTW9kZWxcXFVzZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxTZXJ2aWNlXFxVc2VyQ3JlYXRlU2VydmljZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXFRyYWl0c1xcQ29udGFpbmVyQXdhcmVUcmFpdDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgWWlpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGNvbnNvbGVcXENvbnRyb2xsZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIHlpaVxcaGVscGVyc1xcQ29uc29sZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdjbGFzcyBSb2xlQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICd7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHVzZSBDb250YWluZXJBd2FyZVRyYWl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogVGhpcyBjb21tYW5kIGEgcm9sZSB0byBhIHVzZXIvZW1haWwuIElmIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXIgYWxyZWFkeSBoYXMgdGhlIHJvbGUgYXNzaWduLCBpdCB3aWxsIHNraXAuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkZW1haWwgICAgRW1haWxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZ3xudWxsICRyb2xlICAgICBSb2xlIHRvIGFzc2lnbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyhtdXN0IGFscmVhZHkgZXhpc3QpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEB0aHJvd3MgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcXHlpaVxcYmFzZVxcSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIGZ1bmN0aW9uIGFjdGlvbkluZGV4KCRlbWFpbCwgJHJvbGUpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHsgICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICR1c2VyID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICJZaWk6OiRhcHAtPmRiLT5jcmVhdGVDb21tYW5kKCdTRUxFQ1QgaWQsIHVzZXJuYW1lLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VtYWlsIEZST00gdXNlciAgIHdoZXJlICBlbWFpbCA9ICJcJy4kZW1haWwuXCciXCcpICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnLT5xdWVyeU9uZSgpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICNwcmludF9yKCRhbGxVc2Vycyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkYXV0aCA9IFlpaTo6JGFwcC0+Z2V0QXV0aE1hbmFnZXIoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGlmIChmYWxzZSA9PT0gJGF1dGgpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAkdGhpcy0+c3Rkb3V0KFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBZaWk6OnQoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAndXN1YXJpbycsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICAgICBcJ0Nhbm5vdCBhc3NpZ24gcm9sZSAiezB9IiBhcyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBBdXRoTWFuYWdlciBpcyBub3QgY29uZmlndXJlZCBvbiB5b3VyIGNvbnNvbGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICJhcHBsaWNhdGlvbi4nLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICAgICAgJHJvbGVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgKSAuICJcXG4iLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBDb25zb2xlOjpGR19SRURcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICApOyBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH0gZWxzZSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJHVzZXJSb2xlID0gJGF1dGgtPmdldFJvbGUoJHJvbGUpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIGlmIChudWxsID09PSAkdXNlclJvbGUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgJHRoaXMtPnN0ZG91dChZaWk6OnQoJ3VzdWFyaW8nLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1wnUm9sZSAiezB9IiBub3QgZm91bmQuIENyZWF0aW5nIGl0LlwnLCBbJHJvbGVdKSAuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnIiFcXG4iLCBDb25zb2xlOjpGR19HUkVFTik7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICR1c2VyUm9sZSA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnJGF1dGgtPmNyZWF0ZVJvbGUoJHJvbGUpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICAkYXV0aC0+YWRkKCR1c2VyUm9sZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgLy8gcHJpbnRfcigkdXNlclJvbGUpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgJGF1dGgtPmFzc2lnbigkdXNlclJvbGUsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAiJHVzZXJbJ2lkJ10pO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nLAogICAgICAgICAgICAgICAncGhwRmlsZUEnOiAnPD9waHAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL3ZlbmRvci8yYW1pZ29zL3lpaTItdXN1YXJpby9zcmMvVXNlci9Db21tYW5kL0Fzb25lQ29udHJvbGxlci5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSAyYW1pZ29zL3lpaTItdXN1YXJpbyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0LlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiAoYykgMmFtaWdPUyEgPGh0dHA6Ly8yYW1pZ29zLnVzLz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAncGxlYXNlIHZpZXdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICogdGhlIExJQ0VOU0UgZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnc291cmNlIGNvZGUuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlIERhXFxVc2VyXFxDb21tYW5kO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxGYWN0b3J5XFxNYWlsRmFjdG9yeTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxNb2RlbFxcVXNlcjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxTZXJ2aWNlXFxVc2VyQ3JlYXRlU2VydmljZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxUcmFpdHNcXENvbnRhaW5lckF3YXJlVHJhaXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBZaWk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGNvbnNvbGVcXENvbnRyb2xsZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGhlbHBlcnNcXENvbnNvbGU7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbGFzcyBBc29uZUNvbnRyb2xsZXIgZXh0ZW5kcyBDb250cm9sbGVyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHVzZSBDb250YWluZXJBd2FyZVRyYWl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8qKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogVGhpcyBjb21tYW5kIGNyZWF0ZXMgYSBuZXcgdXNlciBhY2NvdW50IGZvciAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdXZWJBc09uZS4gSWYgbm8gcGFzc3dvcmQgaXMgbm90IHNldCwgYW4gOC1jaGFyICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkIHdpbGwgYmUgZ2VuZXJhdGVkLiBBZnRlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogc2F2aW5nIHVzZXIgdG8gZGF0YWJhc2UsIHRoaXMgY29tbWFuZCB1c2VzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21haWxlciBjb21wb25lbnQgdG8gc2VuZCBjcmVkZW50aWFscyAodXNlcm5hbWUgYW5kICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkKSB0byB1c2VyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiB2aWEgZW1haWwuIEEgcm9sZSBjYW4gYmUgYWxzbyBhc3NpZ25lZCBidXQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnaXQgbXVzdCBleGlzdHMgcHJldmlvdXNseSBvbiB0aGUgZGF0YWJhc2UuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICRlbWFpbCAgICBFbWFpbFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICR1c2VybmFtZSBVc2VybmFtZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZ3xudWxsICRwYXNzd29yZCBUaGUgcGFzc3dvcmQuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lmIG51bGwgaXQgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZ3xudWxsICRyb2xlICAgICBSb2xlIHRvIGFzc2lnbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcobXVzdCBhbHJlYWR5IGV4aXN0KVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEB0aHJvd3MgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXFx5aWlcXGJhc2VcXEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIGZ1bmN0aW9uIGFjdGlvbkluZGV4KClcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJGFsbFVzZXJzID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnWWlpOjokYXBwLT5kYi0+Y3JlYXRlQ29tbWFuZChcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAnU0VMRUNUIHUuaWQsIHUudXNlcm5hbWUsIHUuZW1haWwsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgImEuaXRlbV9uYW1lIEZST00nXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgLicgdXNlciBhcyB1IGlubmVyIGpvaW4gYXV0aF9hc3NpZ25tZW50IGEgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAid2hlcmUgYS51c2VyX2lkID0gdS5pZCcpIC0+cXVlcnlBbGwoKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgI3ByaW50X3IoJGFsbFVzZXJzKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICN2YXJfZHVtcChhcnJheV9tYXAoZnVuY3Rpb24gKCRhKSB7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgInJldHVybiBbJGFbJ3VzZXJuYW1lJ10sICRhWydlbWFpbCddXTsgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnfSwkYWxsVXNlcnMpKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgZWNobyAiXFxuXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgZm9yZWFjaCAoJGFsbFVzZXJzIGFzICR1KSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgZWNobyAnICAgICcsJHVbJ2lkJ10sJzonLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIkdVsndXNlcm5hbWUnXSwgJzonLCAkdVsnZW1haWwnXSwgJzonLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICckdVtcJ2l0ZW1fbmFtZVwnXSwgIlxcbiI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgZWNobyAiXFxuXFxuIjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnfScsCiAgICAgICAgICAgICAgICdwaHBGaWxlQic6ICc8P3BocCAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdfZG9jcm9vdF8vLi4vc3JjL3lpaTIvYWR2YW5jZWQvdmVuZG9yLzJhbWlnb3MveWlpMi11c3VhcmlvL3NyYy9Vc2VyL0NvbW1hbmQvQ3JlYXRlQ29udHJvbGxlci5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgMmFtaWdvcy95aWkyLXVzdWFyaW8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdC5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICogKGMpIDJhbWlnT1MhIDxodHRwOi8vMmFtaWdvcy51cy8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsZWFzZSB2aWV3XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIHRoZSBMSUNFTlNFIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvdXJjZSBjb2RlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWVzcGFjZSBEYVxcVXNlclxcQ29tbWFuZDtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcRmFjdG9yeVxcTWFpbEZhY3Rvcnk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcTW9kZWxcXFVzZXI7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcU2VydmljZVxcVXNlckNyZWF0ZVNlcnZpY2U7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcVHJhaXRzXFxDb250YWluZXJBd2FyZVRyYWl0O1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgWWlpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgeWlpXFxjb25zb2xlXFxDb250cm9sbGVyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgeWlpXFxoZWxwZXJzXFxDb25zb2xlO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xhc3MgQ3JlYXRlQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAne1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgdXNlIENvbnRhaW5lckF3YXJlVHJhaXQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBUaGlzIGNvbW1hbmQgY3JlYXRlcyBhIG5ldyB1c2VyIGFjY291bnQuIElmICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vIHBhc3N3b3JkIGlzIG5vdCBzZXQsIGFuIDgtY2hhciBwYXNzd29yZCB3aWxsIGJlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dlbmVyYXRlZC4gQWZ0ZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIHNhdmluZyB1c2VyIHRvIGRhdGFiYXNlLCB0aGlzIGNvbW1hbmQgdXNlcyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWlsZXIgY29tcG9uZW50IHRvIHNlbmQgY3JlZGVudGlhbHMgKHVzZXJuYW1lIGFuZCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzd29yZCkgdG8gdXNlclxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogdmlhIGVtYWlsLiBBIHJvbGUgY2FuIGJlIGFsc28gYXNzaWduZWQgYnV0ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2l0IG11c3QgZXhpc3RzIHByZXZpb3VzbHkgb24gdGhlIGRhdGFiYXNlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkZW1haWwgICAgRW1haWxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkdXNlcm5hbWUgVXNlcm5hbWVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAkdXJsIHdlYnNpdGUgdXJsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHBhc3N3b3JkIFRoZSBwYXNzd29yZC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnSWYgbnVsbCBpdCB3aWxsIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nfG51bGwgJHJvbGUgICAgIFJvbGUgdG8gYXNzaWduICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhtdXN0IGFscmVhZHkgZXhpc3QpXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHRocm93cyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcXHlpaVxcYmFzZVxcSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uSW5kZXgoJGVtYWlsLCAkdXNlcm5hbWUsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyR1cmwsICRwYXNzd29yZCA9IG51bGwsICRyb2xlID0gbnVsbClcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvKiogQHZhciBVc2VyICR1c2VyICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHVzZXIgPSAkdGhpcy0+bWFrZShcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgVXNlcjo6Y2xhc3MsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIFtdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICBbJ3NjZW5hcmlvJyA9PiAnY3JlYXRlJywgJ2VtYWlsJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIkZW1haWwsICd1c2VybmFtZScgPT4gJHVzZXJuYW1lLCAncGFzc3dvcmQnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyRwYXNzd29yZF1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICApO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcdCNwcmludF9yKCR1c2VyLT51c2VybmFtZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1x0I3JldHVybjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkbWFpbFNlcnZpY2UgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdNYWlsRmFjdG9yeTo6bWFrZVdlbGNvbWVNYWlsZXJTZXJ2aWNlKCR1c2VyLCB0cnVlLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIob2JqZWN0KVsndXJsJyA9PiAkdXJsXSk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIGlmICgkdGhpcy0+bWFrZShVc2VyQ3JlYXRlU2VydmljZTo6Y2xhc3MsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1skdXNlciwgJG1haWxTZXJ2aWNlXSktPnJ1bigpKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICR0aGlzLT5zdGRvdXQoWWlpOjp0KCd1c3VhcmlvJywgJ1VzZXIgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFzIGJlZW4gY3JlYXRlZFwnKSAuICIhXFxuIiwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29uc29sZTo6RkdfR1JFRU4pO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgaWYgKG51bGwgIT09ICRyb2xlKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICAkdGhpcy0+YXNzaWduUm9sZSgkdXNlciwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnJHJvbGUpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgfSBlbHNlIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJHRoaXMtPnN0ZG91dChZaWk6OnQoJ3VzdWFyaW8nLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcJ1BsZWFzZSBmaXggZm9sbG93aW5nIGVycm9yczpcJykgLiAiXFxuIiwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29uc29sZTo6RkdfUkVEKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgZm9yZWFjaCAoJHVzZXItPmVycm9ycyBhcyAkZXJyb3JzKSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBmb3JlYWNoICgkZXJyb3JzIGFzICRlcnJvcikge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgICR0aGlzLT5zdGRvdXQoJyAtICcgLiAkZXJyb3IgLiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICciXFxuIiwgQ29uc29sZTo6RkdfUkVEKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYXNzaWduUm9sZShVc2VyICR1c2VyLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICckcm9sZSlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkYXV0aCA9IFlpaTo6JGFwcC0+Z2V0QXV0aE1hbmFnZXIoKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBpZiAoZmFsc2UgPT09ICRhdXRoKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICR0aGlzLT5zdGRvdXQoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBZaWk6OnQoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgJ3VzdWFyaW8nLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgICAgIFwnQ2Fubm90IGFzc2lnbiByb2xlICJ7MH0iIGFzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBBdXRoTWFuYWdlciBpcyBub3QgY29uZmlndXJlZCBvbiB5b3VyIGNvbnNvbGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiYXBwbGljYXRpb24uJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgICAgICAkcm9sZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgKSAuICJcXG4iLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgQ29uc29sZTo6RkdfUkVEXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgfSBlbHNlIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJHVzZXJSb2xlID0gJGF1dGgtPmdldFJvbGUoJHJvbGUpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBpZiAobnVsbCA9PT0gJHVzZXJSb2xlKSB7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAkdGhpcy0+c3Rkb3V0KFlpaTo6dCgndXN1YXJpbycsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1wnUm9sZSAiezB9IiBub3QgZm91bmQuIENyZWF0aW5nIGl0LlwnLCBbJHJvbGVdKSAuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyIhXFxuIiwgQ29uc29sZTo6RkdfR1JFRU4pO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgJHVzZXJSb2xlID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnJGF1dGgtPmNyZWF0ZVJvbGUoJHJvbGUpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgJGF1dGgtPmFkZCgkdXNlclJvbGUpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICRhdXRoLT5hc3NpZ24oJHVzZXJSb2xlLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICckdXNlci0+aWQpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxyXG4nLAogICAgICAgICAgICAgICAncmVjb2RlJzogJzw/cGhwIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAiJGNtZCA9ICRyZWxfcm9vdC4nLy4uL3NyYy95aWkyL2FkdmFuY2VkL3lpaSAnO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAnJHJldCA9IHNoZWxsX2V4ZWMoJGNtZC4iIHVzZXIvcm9sZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAnd2ViYXNvbmVAZ21haWwuY29tIENvdXJzZUEiKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJyRyZXQgPSBzaGVsbF9leGVjKCRjbWQuIiB1c2VyL3JvbGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgJ3dlYmFzb25lQGdtYWlsLmNvbSBDb3Vyc2VCIik7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICckcmV0ID0gc2hlbGxfZXhlYygkY21kLiIgdXNlci9yb2xlICcKICAgICAgICAgICAgICAgICAgICAgICAgICd3ZWJhc29uZUBnbWFpbC5jb20gQ291cnNlQyIpOyBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgJz8+JywKICAgICAgICAgICAgICAgJ3VGaWxlJzogJyd9fSwKIDQ6IHsnZW4nOiB7J05vdGVzJzogJycsCiAgICAgICAgICAgICdTbGlkZVR5cGUnOiAnQ29kZUluYycsCiAgICAgICAgICAgICdhTGFiZWwnOiAnRm9yIHJvbGUgbWFpbCcsCiAgICAgICAgICAgICdhX2ZpbGUnOiAnJywKICAgICAgICAgICAgJ2FkZENsYXNzJzogJycsCiAgICAgICAgICAgICdhc3ZnZmlsZSc6ICc8c3ZnPjwvc3ZnPicsCiAgICAgICAgICAgICdjb2RlJzogJycsCiAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBib2R5IHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzY3JpcHRJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAnY29sQkdJbWFnZSc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWc2LmpwZycsCiAgICAgICAgICAgICdjb2xCR0ltYWdlV3JhcCc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWc3LmpwZycsCiAgICAgICAgICAgICdjb21wb3NlckpTT04nOiAnJywKICAgICAgICAgICAgJ2R5bmFtaWNCbG9jayc6ICcnLAogICAgICAgICAgICAna2V5d29yZHMnOiAnJywKICAgICAgICAgICAgJ3BocEZpbGUnOiAnJywKICAgICAgICAgICAgJ3BocEZpbGVBJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC92ZW5kb3IvMmFtaWdvcy95aWkyLXVzdWFyaW8vc3JjL1VzZXIvcmVzb3VyY2VzL3ZpZXdzL21haWwvd2VsY29tZS5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcvKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgMmFtaWdvcy95aWkyLXVzdWFyaW8gJwogICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdC5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICogKGMpIDJhbWlnT1MhIDxodHRwOi8vMmFtaWdvcy51cy8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sICcKICAgICAgICAgICAgICAgICAgICAgICAgJ3BsZWFzZSB2aWV3XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqIHRoZSBMSUNFTlNFIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzICcKICAgICAgICAgICAgICAgICAgICAgICAgJ3NvdXJjZSBjb2RlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGhlbHBlcnNcXEh0bWw7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICogQHZhciBcXERhXFxVc2VyXFxNb2R1bGUgICAgICAkbW9kdWxlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqIEB2YXIgXFxEYVxcVXNlclxcTW9kZWxcXFVzZXIgICR1c2VyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqIEB2YXIgXFxEYVxcVXNlclxcTW9kZWxcXFRva2VuICR0b2tlblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKiBAdmFyIGJvb2wgICAgICAgICAgICAgICAgICRzaG93UGFzc3dvcmRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1mYW1pbHk6IFwnSGVsdmV0aWNhIE5ldWVcJywgJwogICAgICAgICAgICAgICAgICAgICAgICAiJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogIgogICAgICAgICAgICAgICAgICAgICAgICAnMTRweDsgbGluZS1oZWlnaHQ6IDEuNjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICcwIDAgMTBweDsgcGFkZGluZzogMDsiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdIZWxsbycpID8+LFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICc8L3A+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1mYW1pbHk6IFwnSGVsdmV0aWNhIE5ldWVcJywgJwogICAgICAgICAgICAgICAgICAgICAgICAiJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogIgogICAgICAgICAgICAgICAgICAgICAgICAnMTRweDsgbGluZS1oZWlnaHQ6IDEuNjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbWFyZ2luOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICcwIDAgMTBweDsgcGFkZGluZzogMDsiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdZb3VyIGFjY291bnQgb24gezB9IGhhcyAiCiAgICAgICAgICAgICAgICAgICAgICAgICJiZWVuIGNyZWF0ZWQnLCBZaWk6OiRhcHAtPm5hbWUpID8+LlxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8cD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIDw/cGhwIGlmICgkc2hvd1Bhc3N3b3JkIHx8ICcKICAgICAgICAgICAgICAgICAgICAgICAgJyRtb2R1bGUtPmdlbmVyYXRlUGFzc3dvcmRzKTogPz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdVc2VybmFtZScpID8+OiAiCiAgICAgICAgICAgICAgICAgICAgICAgICc8c3Ryb25nPjw/PSR1c2VyLT51c2VybmFtZSA/PiA8L3N0cm9uZz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8cD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICA8Pz0gWWlpOjp0KCd1c3VhcmlvJywgJ1Bhc3N3b3JkJykgPz46ICIKICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHJvbmc+PD89ICR1c2VyLT5wYXNzd29yZCA/Pjwvc3Ryb25nPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPD9waHAgZW5kaWYgPz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzwvcD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJzw/cGhwIGlmICgkdG9rZW4gIT09IG51bGwpOiA/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OiBcJ0hlbHZldGljYSBOZXVlXCcsICcKICAgICAgICAgICAgICAgICAgICAgICAgIidIZWx2ZXRpY2EnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6ICIKICAgICAgICAgICAgICAgICAgICAgICAgJzE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogJwogICAgICAgICAgICAgICAgICAgICAgICAnMCAwIDEwcHg7IHBhZGRpbmc6IDA7Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICA8Pz0gWWlpOjp0KCd1c3VhcmlvJywgJ1RvIGxvZ2luIGluLCBwbGVhc2UgIgogICAgICAgICAgICAgICAgICAgICAgICAiY2xpY2sgdGhlIGxpbmsgYmVsb3cnKSA/Pi5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnICAgIDwvcD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogXCdIZWx2ZXRpY2EgTmV1ZVwnLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICInSGVsdmV0aWNhJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAiCiAgICAgICAgICAgICAgICAgICAgICAgICcxNHB4OyBsaW5lLWhlaWdodDogMS42OyBmb250LXdlaWdodDogbm9ybWFsOyBtYXJnaW46ICcKICAgICAgICAgICAgICAgICAgICAgICAgJzAgMCAxMHB4OyBwYWRkaW5nOiAwOyI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgPD89IEh0bWw6OmEoSHRtbDo6ZW5jb2RlKCR0b2tlbi0+dXJsKSwgJwogICAgICAgICAgICAgICAgICAgICAgICAnJHRva2VuLT51cmwpOyA/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OiBcJ0hlbHZldGljYSBOZXVlXCcsICcKICAgICAgICAgICAgICAgICAgICAgICAgIidIZWx2ZXRpY2EnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6ICIKICAgICAgICAgICAgICAgICAgICAgICAgJzE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogJwogICAgICAgICAgICAgICAgICAgICAgICAnMCAwIDEwcHg7IHBhZGRpbmc6IDA7Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICA8Pz0gWWlpOjp0KCd1c3VhcmlvJywgJ0lmIHlvdSBjYW5ub3QgY2xpY2sgIgogICAgICAgICAgICAgICAgICAgICAgICAndGhlIGxpbmssIHBsZWFzZSB0cnkgcGFzdGluZyB0aGUgdGV4dCBpbnRvIHlvdXIgJwogICAgICAgICAgICAgICAgICAgICAgICAiYnJvd3NlcicpID8+LlxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICc8P3BocCBlbmRpZiA/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnPHAgc3R5bGU9ImZvbnQtZmFtaWx5OiBcJ0hlbHZldGljYSBOZXVlXCcsICcKICAgICAgICAgICAgICAgICAgICAgICAgIidIZWx2ZXRpY2EnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6ICIKICAgICAgICAgICAgICAgICAgICAgICAgJzE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IG1hcmdpbjogJwogICAgICAgICAgICAgICAgICAgICAgICAnMCAwIDEwcHg7IHBhZGRpbmc6IDA7Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgIDw/PSBZaWk6OnQoJ3VzdWFyaW8nLCAnSWYgeW91IGRpZCBub3QgbWFrZSB0aGlzICIKICAgICAgICAgICAgICAgICAgICAgICAgInJlcXVlc3QgeW91IGNhbiBpZ25vcmUgdGhpcyBlbWFpbCcpID8+LlxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICc8L3A+XHJcbicsCiAgICAgICAgICAgICdwaHBGaWxlQic6ICc8P3BocCAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL3ZlbmRvci8yYW1pZ29zL3lpaTItdXN1YXJpby9zcmMvVXNlci9GYWN0b3J5L01haWxGYWN0b3J5LnBocCAnCiAgICAgICAgICAgICAgICAgICAgICAgICcqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnLypcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIDJhbWlnb3MveWlpMi11c3VhcmlvICcKICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3QuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAqIChjKSAyYW1pZ09TISA8aHR0cDovLzJhbWlnb3MudXMvPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICdwbGVhc2Ugdmlld1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgKiB0aGUgTElDRU5TRSBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyAnCiAgICAgICAgICAgICAgICAgICAgICAgICdzb3VyY2UgY29kZS5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lc3BhY2UgRGFcXFVzZXJcXEZhY3Rvcnk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXEV2ZW50XFxNYWlsRXZlbnQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcTW9kZWxcXFRva2VuO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZGVsXFxVc2VyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZHVsZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxTZXJ2aWNlXFxNYWlsU2VydmljZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlIFlpaTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAndXNlIHlpaVxcYmFzZVxcSW52YWxpZENvbmZpZ0V4Y2VwdGlvbjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ2NsYXNzIE1haWxGYWN0b3J5XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ3tcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8qKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIFVzZXIgJHVzZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBib29sICRzaG93UGFzc3dvcmRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzIEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEByZXR1cm4gTWFpbFNlcnZpY2VcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICdtYWtlV2VsY29tZU1haWxlclNlcnZpY2UoVXNlciAkdXNlciwgJHNob3dQYXNzd29yZCA9ICcKICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhbHNlLCAkdG9rZW4gPSBudWxsKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAdmFyIE1vZHVsZSAkbW9kdWxlICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJG1vZHVsZSA9IFlpaTo6JGFwcC0+Z2V0TW9kdWxlKCd1c2VyJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHRvID0gJHVzZXItPmVtYWlsO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICRmcm9tID0gJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICIkbW9kdWxlLT5tYWlsUGFyYW1zWyd3ZWxjb21lTWFpbFN1YmplY3QnXTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkcGFyYW1zID0gW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndXNlcicgPT4gJHVzZXIsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd0b2tlbicgPT4gJHRva2VuLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnbW9kdWxlJyA9PiAkbW9kdWxlLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnc2hvd1Bhc3N3b3JkJyA9PiAkc2hvd1Bhc3N3b3JkLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF07XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIHJldHVybiAnCiAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0aWM6Om1ha2VNYWlsZXJTZXJ2aWNlKE1haWxFdmVudDo6VFlQRV9XRUxDT01FLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICIkZnJvbSwgJHRvLCAkc3ViamVjdCwgJ3dlbGNvbWUnLCAkcGFyYW1zKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgJGVtYWlsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gVG9rZW4gICR0b2tlblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEB0aHJvd3MgSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHJldHVybiBNYWlsU2VydmljZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICcKICAgICAgICAgICAgICAgICAgICAgICAgJ21ha2VSZWNvdmVyeU1haWxlclNlcnZpY2UoJGVtYWlsLCBUb2tlbiAkdG9rZW4gPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICdudWxsKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAdmFyIE1vZHVsZSAkbW9kdWxlICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJG1vZHVsZSA9IFlpaTo6JGFwcC0+Z2V0TW9kdWxlKCd1c2VyJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHRvID0gJGVtYWlsO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICRmcm9tID0gJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICIkbW9kdWxlLT5tYWlsUGFyYW1zWydyZWNvdmVyeU1haWxTdWJqZWN0J107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHBhcmFtcyA9IFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3VzZXInID0+ICR0b2tlbiAmJiAkdG9rZW4tPnVzZXIgPyAiCiAgICAgICAgICAgICAgICAgICAgICAgICckdG9rZW4tPnVzZXIgOiBudWxsLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndG9rZW4nID0+ICR0b2tlbixcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICByZXR1cm4gJwogICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGljOjptYWtlTWFpbGVyU2VydmljZShNYWlsRXZlbnQ6OlRZUEVfUkVDT1ZFUlksICcKICAgICAgICAgICAgICAgICAgICAgICAgIiRmcm9tLCAkdG8sICRzdWJqZWN0LCAncmVjb3ZlcnknLCAkcGFyYW1zKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBVc2VyICAgICAgICR1c2VyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gVG9rZW58bnVsbCAkdG9rZW5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzIEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEByZXR1cm4gTWFpbFNlcnZpY2VcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICdtYWtlQ29uZmlybWF0aW9uTWFpbGVyU2VydmljZShVc2VyICR1c2VyLCBUb2tlbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICckdG9rZW4gPSBudWxsKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAdmFyIE1vZHVsZSAkbW9kdWxlICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJG1vZHVsZSA9IFlpaTo6JGFwcC0+Z2V0TW9kdWxlKCd1c2VyJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHRvID0gJHVzZXItPmVtYWlsO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICRmcm9tID0gJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICIkbW9kdWxlLT5tYWlsUGFyYW1zWydjb25maXJtYXRpb25NYWlsU3ViamVjdCddO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRwYXJhbXMgPSBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd1c2VyJyA9PiAkdG9rZW4gJiYgJHRva2VuLT51c2VyID8gIgogICAgICAgICAgICAgICAgICAgICAgICAnJHRva2VuLT51c2VyIDogbnVsbCxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3Rva2VuJyA9PiAkdG9rZW4sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgcmV0dXJuICcKICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXRpYzo6bWFrZU1haWxlclNlcnZpY2UoTWFpbEV2ZW50OjpUWVBFX0NPTkZJUk0sICcKICAgICAgICAgICAgICAgICAgICAgICAgIiRmcm9tLCAkdG8sICRzdWJqZWN0LCAnY29uZmlybWF0aW9uJywgJHBhcmFtcyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gVXNlciAgJHVzZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBUb2tlbiAkdG9rZW5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzIEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEByZXR1cm4gTWFpbFNlcnZpY2VcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICdtYWtlUmVjb25maXJtYXRpb25NYWlsZXJTZXJ2aWNlKFVzZXIgJHVzZXIsIFRva2VuICcKICAgICAgICAgICAgICAgICAgICAgICAgJyR0b2tlbilcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvKiogQHZhciBNb2R1bGUgJG1vZHVsZSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICRtb2R1bGUgPSBZaWk6OiRhcHAtPmdldE1vZHVsZSgndXNlcicpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICR0byA9ICR0b2tlbi0+dHlwZSA9PT0gJwogICAgICAgICAgICAgICAgICAgICAgICAnVG9rZW46OlRZUEVfQ09ORklSTV9ORVdfRU1BSUxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgPyAkdXNlci0+dW5jb25maXJtZWRfZW1haWxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgOiAkdXNlci0+ZW1haWw7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICRmcm9tID0gJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICIkbW9kdWxlLT5tYWlsUGFyYW1zWydyZWNvbmZpcm1hdGlvbk1haWxTdWJqZWN0J107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHBhcmFtcyA9IFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3VzZXInID0+ICR0b2tlbiAmJiAkdG9rZW4tPnVzZXIgPyAiCiAgICAgICAgICAgICAgICAgICAgICAgICckdG9rZW4tPnVzZXIgOiBudWxsLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndG9rZW4nID0+ICR0b2tlbixcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICByZXR1cm4gJwogICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGljOjptYWtlTWFpbGVyU2VydmljZShNYWlsRXZlbnQ6OlRZUEVfUkVDT05GSVJNLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICIkZnJvbSwgJHRvLCAkc3ViamVjdCwgJ3JlY29uZmlybWF0aW9uJywgJHBhcmFtcyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBCdWlsZHMgYSBNYWlsZXJTZXJ2aWNlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgICAgICAgJHR5cGVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmd8YXJyYXl8XFxDbG9zdXJlICRmcm9tXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICR0b1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICAkc3ViamVjdFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICAkdmlld1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIGFycmF5ICAgICAgICAgICAgICAgICAkcGFyYW1zXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHRocm93cyBJbnZhbGlkQ29uZmlnRXhjZXB0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcmV0dXJuIE1haWxTZXJ2aWNlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1ha2VNYWlsZXJTZXJ2aWNlKCR0eXBlLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICckZnJvbSwgJHRvLCAkc3ViamVjdCwgJHZpZXcsICRwYXJhbXMgPSBbXSlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBpZiAoJGZyb20gaW5zdGFuY2VvZiBcXENsb3N1cmUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJGZyb20gPSAkZnJvbSgkdHlwZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAbm9pbnNwZWN0aW9uICcKICAgICAgICAgICAgICAgICAgICAgICAgJ1BocEluY29tcGF0aWJsZVJldHVyblR5cGVJbnNwZWN0aW9uICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgcmV0dXJuIFlpaTo6JGNvbnRhaW5lci0+Z2V0KFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBNYWlsU2VydmljZTo6Y2xhc3MsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIFskdHlwZSwgJGZyb20sICR0bywgJHN1YmplY3QsICR2aWV3LCAnCiAgICAgICAgICAgICAgICAgICAgICAgICckcGFyYW1zLCBZaWk6OiRhcHAtPmdldE1haWxlcigpXVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJ30sCiAgICAgJ2VuLVVTJzogeydNeU1vZHVsZSc6ICdvbmVDb2x1bW4nLAogICAgICAgICAgICAgICAnTm90ZXMnOiAnJywKICAgICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdDb2RlSW5jJywKICAgICAgICAgICAgICAgJ2FMYWJlbCc6ICdGb3Igcm9sZSBtYWlsJywKICAgICAgICAgICAgICAgJ2FfZmlsZSc6ICcnLAogICAgICAgICAgICAgICAnYWRkQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgJ2FzdmdmaWxlJzogJzxzdmc+PC9zdmc+JywKICAgICAgICAgICAgICAgJ2NvZGUnOiAnJywKICAgICAgICAgICAgICAgJ2NvZGVJbmMnOiAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzdHlsZUluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGhlYWQgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc3R5bGVJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHNjcmlwdEluYyB0YWcgd2lsbCBiZSBhZGQgdG8gdGhlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlIHRoZSBjbG9zaW5nIGJvZHkgdGFnc1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHNjcmlwdEluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHNjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgRW5kXHJcbicsCiAgICAgICAgICAgICAgICdjb2xCR0ltYWdlJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzYuanBnJywKICAgICAgICAgICAgICAgJ2NvbEJHSW1hZ2VXcmFwJzogJy9kZWZhdWx0L21lZGlhL25hdjZoMC9zL1VJL0EwMDAwMDEwMjcwMDIwMDEvb25lQ29sdW1uL2ltZzcuanBnJywKICAgICAgICAgICAgICAgJ2NvbXBvc2VySlNPTic6ICcnLAogICAgICAgICAgICAgICAnZHluYW1pY0Jsb2NrJzogJycsCiAgICAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAgICAnbW9kVmFyJzogeydWYXJMaXN0JzogeydBY2NvcmRpb25DYXJkQm9keUNsYXNzJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY29yZGlvbkNhcmRDbGFzcyc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBY2NvcmRpb25DYXJkSGVhZGVyQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWNjb3JkaW9uT3BlbkZpcnN0JzogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRHluYW1pY0Jsb2NrJzogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktQ1NTVmFyJzogJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb21tZW50IGZyb20gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25lQ29sdW1uXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCaWdTY2VlblRvcFBhZGRpbmc9NTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pZFNjcmVlblRvcFBhZGRpbmc9MjBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuVG9wUGFkZGluZz0xMFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5Cb3R0b21QYWRkaW5nPTUwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNaWRTY3JlZW5Cb3R0b21QYWRkaW5nPTIwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTbWFsbFNjcmVlbkJvdHRvbVBhZGRpbmc9MTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5MZWZ0UmlnaHRQYWRkaW5nPTIwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNaWRTY3JlZW5MZWZ0UmlnaHRQYWRkaW5nPTE1XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTbWFsbFNjcmVlbkxlZnRSaWdodFBhZGRpbmc9MTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5Ub3BNYXJnaW49MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlkU2NyZWVuVG9wTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuVG9wTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JpZ1NjZWVuQm90dG9tTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pZFNjcmVlbkJvdHRvbU1hcmdpbj0wXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTbWFsbFNjcmVlbkJvdHRvbU1hcmdpbj0wXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBpZCBmb250IGNvbG9yXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGb250Q29sb3I9X0NvbG9yQV9cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBtb2R1bGUgYmFja2dyb3VuZFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTUJhY2tncm91bmQ9XG4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1Db3ZlckJhY2tncm91bmQnOiAnIDxzdHlsZT4gI19JRF8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneyBiYWNrZ3JvdW5kOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfVGludEJHXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmwoX0NJTUFHRV8pICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vLXJlcGVhdCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjZW50ZXIgY2VudGVyICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpeGVkOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctd2Via2l0LWJhY2tncm91bmQtc2l6ZTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY292ZXI7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1tb3otYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLW8tYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgfSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPiAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1Db3ZlckJhY2tncm91bmRTVkcnOiAnIDxzdHlsZT4gLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Nyb2xsIHdpbGwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RheSB3aXRoICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQgICovICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1RpbnRCR18gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXJsKF9DSU1BR0VfKSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduby1yZXBlYXQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2VudGVyICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NlbnRlcjsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxMDAlIDEwMCU7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLUVuZFRhZ0NvZGUnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktR1Bvc3RJbmMnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktSGVscCc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1Qb3N0SW5jJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLVByZUluYyc6ICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfICB7IF9Gb250Q29sb3JfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NQmFja2dyb3VuZF8gfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8ge3Bvc2l0aW9uOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxhdGl2ZTt9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5fSURYXyB7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmctYm90dG9tOiAxNXB4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gLmhjb250ZW50IHtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgcG9zaXRpb246IGFic29sdXRlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB0b3A6IDUwJTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgbGVmdDogNTAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB0cmFuc2Zvcm06ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIC5jdGNvbnRlbnQge1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBwb3NpdGlvbjogYWJzb2x1dGU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRvcDogNTAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBsZWZ0OiA1MCU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRyYW5zZm9ybTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNsYXRlKC01MCUsIC01MCUpO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBiYWNrZ3JvdW5kLWNvbG9yOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZ2JhKDAsIDAsIDAsIC4yNSk7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICBjb2xvcjogd2hpdGU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHBhZGRpbmc6IDIwcHg7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIC52Y29udGFpbmVyIHtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgaGVpZ2h0OiA1MHZoO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBwb3NpdGlvbjogcmVsYXRpdmU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIG92ZXJmbG93OiBoaWRkZW47XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdAbWVkaWEobWluLXdpZHRoOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc2MDBweCkge1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgI19JRF8gLnZjb250YWluZXIgeyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQ6IDEwMHZoOyB9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qICNfSURfIC5yb3cgPiBkaXZ7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmc6IDEwcHg7IH0gKi9cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qIFNtYWxsIERldmljZXMsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RhYmxldHMgZnJvbSBvbmVDb2x1bW4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKG1heC13aWR0aCA6IDU3NnB4KSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7I19JRF8gLnJvdyB7IHBhZGRpbmc6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1NtYWxsU2NyZWVuTGVmdFJpZ2h0UGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSAjX0lEXyB7IHBhZGRpbmctdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5Ub3BQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nLWJvdHRvbTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1NtYWxsU2NyZWVuQm90dG9tUGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1NtYWxsU2NyZWVuVG9wTWFyZ2luX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5Cb3R0b21NYXJnaW5fcHg7fSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKiBNZWRpdW0gRGV2aWNlcywgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRGVza3RvcHMgKi8gQG1lZGlhIG9ubHkgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuIGFuZCAobWluLXdpZHRoIDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNzY4cHgpIHsjX0lEXyAucm93IHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZzowICAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuTGVmdFJpZ2h0UGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSAjX0lEXyB7IHBhZGRpbmctdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuVG9wUGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZy1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NaWRTY3JlZW5Cb3R0b21QYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuVG9wTWFyZ2luX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuQm90dG9tTWFyZ2luX3B4O319XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKiBMYXJnZSBEZXZpY2VzLCBXaWRlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NjcmVlbnMgKi8gQG1lZGlhIG9ubHkgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuIGFuZCAobWluLXdpZHRoIDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOTkycHgpIHsjX0lEXyAucm93IHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZzogMCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfQmlnU2NlZW5MZWZ0UmlnaHRQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9ICNfSURfIHsgcGFkZGluZy10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlblRvcFBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmctYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfQmlnU2NlZW5Cb3R0b21QYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfQmlnU2NlZW5Ub3BNYXJnaW5fcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlbkJvdHRvbU1hcmdpbl9weDt9fVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLVByZVRhZ0NvZGUnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktVmlkZW9CYWNrZ3JvdW5kJzogJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmhlYWRlci11bml0X0lEXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yaWdodDpub25lOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItbGVmdDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9uZTsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9zaXRpb246ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbGF0aXZlOyB9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjdmlkZW8tY29udGFpbmVyX0lEXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHBvc2l0aW9uOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhYnNvbHV0ZTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgaGVpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxMDAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB3aWR0aDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMTAwJTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgdG9wOiAwO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBsZWZ0OiAwO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyN2aWRlby1jb250YWluZXJfSURfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZpZGVve1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBvYmplY3QtZml0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9IFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RpbnRpbmdCRyc6ICdsaW5lYXItZ3JhZGllbnQoIHJnYmEoMCwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCwgMCwgMCksIHJnYmEoMCwgMCwgMCwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCkpLCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4dHJhQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JzogNjAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc6IDEyMDB9fSwKICAgICAgICAgICAgICAgJ3BocEZpbGUnOiAnJywKICAgICAgICAgICAgICAgJ3BocEZpbGVBJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC92ZW5kb3IvMmFtaWdvcy95aWkyLXVzdWFyaW8vc3JjL1VzZXIvcmVzb3VyY2VzL3ZpZXdzL21haWwvd2VsY29tZS5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgMmFtaWdvcy95aWkyLXVzdWFyaW8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvamVjdC5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICogKGMpIDJhbWlnT1MhIDxodHRwOi8vMmFtaWdvcy51cy8+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BsZWFzZSB2aWV3XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIHRoZSBMSUNFTlNFIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvdXJjZSBjb2RlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSB5aWlcXGhlbHBlcnNcXEh0bWw7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICogQHZhciBcXERhXFxVc2VyXFxNb2R1bGUgICAgICAkbW9kdWxlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIEB2YXIgXFxEYVxcVXNlclxcTW9kZWxcXFVzZXIgICR1c2VyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIEB2YXIgXFxEYVxcVXNlclxcTW9kZWxcXFRva2VuICR0b2tlblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBAdmFyIGJvb2wgICAgICAgICAgICAgICAgICRzaG93UGFzc3dvcmRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1mYW1pbHk6IFwnSGVsdmV0aWNhIE5ldWVcJywgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDEuNjsgZm9udC13ZWlnaHQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vcm1hbDsgbWFyZ2luOiAwIDAgMTBweDsgcGFkZGluZzogMDsiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdIZWxsbycpID8+LFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3A+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8cCBzdHlsZT0iZm9udC1mYW1pbHk6IFwnSGVsdmV0aWNhIE5ldWVcJywgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiJ0hlbHZldGljYScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtc2l6ZTogMTRweDsgbGluZS1oZWlnaHQ6IDEuNjsgZm9udC13ZWlnaHQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vcm1hbDsgbWFyZ2luOiAwIDAgMTBweDsgcGFkZGluZzogMDsiPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdZb3VyIGFjY291bnQgb24gezB9IGhhcyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZWVuIGNyZWF0ZWQnLCBZaWk6OiRhcHAtPm5hbWUpID8+LlxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8cD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIDw/cGhwIGlmICgkc2hvd1Bhc3N3b3JkIHx8ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyRtb2R1bGUtPmdlbmVyYXRlUGFzc3dvcmRzKTogPz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgPD89IFlpaTo6dCgndXN1YXJpbycsICdVc2VybmFtZScpID8+OiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8c3Ryb25nPjw/PSR1c2VyLT51c2VybmFtZSA/PiA8L3N0cm9uZz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8cD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICA8Pz0gWWlpOjp0KCd1c3VhcmlvJywgJ1Bhc3N3b3JkJykgPz46ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHJvbmc+PD89ICR1c2VyLT5wYXNzd29yZCA/Pjwvc3Ryb25nPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPD9waHAgZW5kaWYgPz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvcD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJzw/cGhwIGlmICgkdG9rZW4gIT09IG51bGwpOiA/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OiBcJ0hlbHZldGljYSBOZXVlXCcsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIidIZWx2ZXRpY2EnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdub3JtYWw7IG1hcmdpbjogMCAwIDEwcHg7IHBhZGRpbmc6IDA7Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICA8Pz0gWWlpOjp0KCd1c3VhcmlvJywgJ1RvIGxvZ2luIGluLCBwbGVhc2UgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiY2xpY2sgdGhlIGxpbmsgYmVsb3cnKSA/Pi5cclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIDwvcD5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIDxwIHN0eWxlPSJmb250LWZhbWlseTogXCdIZWx2ZXRpY2EgTmV1ZVwnLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICInSGVsdmV0aWNhJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMS42OyBmb250LXdlaWdodDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9ybWFsOyBtYXJnaW46IDAgMCAxMHB4OyBwYWRkaW5nOiAwOyI+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgPD89IEh0bWw6OmEoSHRtbDo6ZW5jb2RlKCR0b2tlbi0+dXJsKSwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnJHRva2VuLT51cmwpOyA/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OiBcJ0hlbHZldGljYSBOZXVlXCcsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIidIZWx2ZXRpY2EnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdub3JtYWw7IG1hcmdpbjogMCAwIDEwcHg7IHBhZGRpbmc6IDA7Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICA8Pz0gWWlpOjp0KCd1c3VhcmlvJywgJ0lmIHlvdSBjYW5ub3QgY2xpY2sgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIGxpbmssIHBsZWFzZSB0cnkgcGFzdGluZyB0aGUgdGV4dCBpbnRvIHlvdXIgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiYnJvd3NlcicpID8+LlxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgPC9wPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8P3BocCBlbmRpZiA/PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnPHAgc3R5bGU9ImZvbnQtZmFtaWx5OiBcJ0hlbHZldGljYSBOZXVlXCcsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIidIZWx2ZXRpY2EnLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtd2VpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdub3JtYWw7IG1hcmdpbjogMCAwIDEwcHg7IHBhZGRpbmc6IDA7Ij5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIDw/PSBZaWk6OnQoJ3VzdWFyaW8nLCAnSWYgeW91IGRpZCBub3QgbWFrZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGlzIHJlcXVlc3QgeW91IGNhbiBpZ25vcmUgdGhpcyBlbWFpbCcpID8+LlxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3A+XHJcbicsCiAgICAgICAgICAgICAgICdwaHBGaWxlQic6ICc8P3BocCAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL3ZlbmRvci8yYW1pZ29zL3lpaTItdXN1YXJpby9zcmMvVXNlci9GYWN0b3J5L01haWxGYWN0b3J5LnBocCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnLypcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIDJhbWlnb3MveWlpMi11c3VhcmlvICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3QuXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAqIChjKSAyYW1pZ09TISA8aHR0cDovLzJhbWlnb3MudXMvPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdwbGVhc2Ugdmlld1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKiB0aGUgTElDRU5TRSBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdzb3VyY2UgY29kZS5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lc3BhY2UgRGFcXFVzZXJcXEZhY3Rvcnk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXEV2ZW50XFxNYWlsRXZlbnQ7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZSBEYVxcVXNlclxcTW9kZWxcXFRva2VuO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZGVsXFxVc2VyO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgRGFcXFVzZXJcXE1vZHVsZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIERhXFxVc2VyXFxTZXJ2aWNlXFxNYWlsU2VydmljZTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIFlpaTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlIHlpaVxcYmFzZVxcSW52YWxpZENvbmZpZ0V4Y2VwdGlvbjtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsYXNzIE1haWxGYWN0b3J5XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8qKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIFVzZXIgJHVzZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBib29sICRzaG93UGFzc3dvcmRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzIEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEByZXR1cm4gTWFpbFNlcnZpY2VcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWtlV2VsY29tZU1haWxlclNlcnZpY2UoVXNlciAkdXNlciwgJHNob3dQYXNzd29yZCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICc9IGZhbHNlLCAkdG9rZW4gPSBudWxsKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAdmFyIE1vZHVsZSAkbW9kdWxlICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJG1vZHVsZSA9IFlpaTo6JGFwcC0+Z2V0TW9kdWxlKCd1c2VyJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHRvID0gJHVzZXItPmVtYWlsO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRmcm9tID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIkbW9kdWxlLT5tYWlsUGFyYW1zWyd3ZWxjb21lTWFpbFN1YmplY3QnXTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAkcGFyYW1zID0gW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndXNlcicgPT4gJHVzZXIsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd0b2tlbicgPT4gJHRva2VuLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnbW9kdWxlJyA9PiAkbW9kdWxlLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnc2hvd1Bhc3N3b3JkJyA9PiAkc2hvd1Bhc3N3b3JkLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF07XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIHJldHVybiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0aWM6Om1ha2VNYWlsZXJTZXJ2aWNlKE1haWxFdmVudDo6VFlQRV9XRUxDT01FLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIkZnJvbSwgJHRvLCAkc3ViamVjdCwgJ3dlbGNvbWUnLCAkcGFyYW1zKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgJGVtYWlsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gVG9rZW4gICR0b2tlblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEB0aHJvd3MgSW52YWxpZENvbmZpZ0V4Y2VwdGlvblxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHJldHVybiBNYWlsU2VydmljZVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21ha2VSZWNvdmVyeU1haWxlclNlcnZpY2UoJGVtYWlsLCBUb2tlbiAkdG9rZW4gPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAdmFyIE1vZHVsZSAkbW9kdWxlICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJG1vZHVsZSA9IFlpaTo6JGFwcC0+Z2V0TW9kdWxlKCd1c2VyJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHRvID0gJGVtYWlsO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRmcm9tID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIkbW9kdWxlLT5tYWlsUGFyYW1zWydyZWNvdmVyeU1haWxTdWJqZWN0J107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHBhcmFtcyA9IFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3VzZXInID0+ICR0b2tlbiAmJiAkdG9rZW4tPnVzZXIgPyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICckdG9rZW4tPnVzZXIgOiBudWxsLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndG9rZW4nID0+ICR0b2tlbixcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICByZXR1cm4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGljOjptYWtlTWFpbGVyU2VydmljZShNYWlsRXZlbnQ6OlRZUEVfUkVDT1ZFUlksICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRmcm9tLCAkdG8sICRzdWJqZWN0LCAncmVjb3ZlcnknLCAkcGFyYW1zKTtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIH1cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBVc2VyICAgICAgICR1c2VyXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gVG9rZW58bnVsbCAkdG9rZW5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzIEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEByZXR1cm4gTWFpbFNlcnZpY2VcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWtlQ29uZmlybWF0aW9uTWFpbGVyU2VydmljZShVc2VyICR1c2VyLCBUb2tlbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICckdG9rZW4gPSBudWxsKVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAge1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAdmFyIE1vZHVsZSAkbW9kdWxlICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJG1vZHVsZSA9IFlpaTo6JGFwcC0+Z2V0TW9kdWxlKCd1c2VyJyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHRvID0gJHVzZXItPmVtYWlsO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRmcm9tID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIkbW9kdWxlLT5tYWlsUGFyYW1zWydjb25maXJtYXRpb25NYWlsU3ViamVjdCddO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRwYXJhbXMgPSBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd1c2VyJyA9PiAkdG9rZW4gJiYgJHRva2VuLT51c2VyID8gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnJHRva2VuLT51c2VyIDogbnVsbCxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3Rva2VuJyA9PiAkdG9rZW4sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgcmV0dXJuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXRpYzo6bWFrZU1haWxlclNlcnZpY2UoTWFpbEV2ZW50OjpUWVBFX0NPTkZJUk0sICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiRmcm9tLCAkdG8sICRzdWJqZWN0LCAnY29uZmlybWF0aW9uJywgJHBhcmFtcyk7XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gVXNlciAgJHVzZXJcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBUb2tlbiAkdG9rZW5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAdGhyb3dzIEludmFsaWRDb25maWdFeGNlcHRpb25cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEByZXR1cm4gTWFpbFNlcnZpY2VcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWtlUmVjb25maXJtYXRpb25NYWlsZXJTZXJ2aWNlKFVzZXIgJHVzZXIsIFRva2VuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyR0b2tlbilcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvKiogQHZhciBNb2R1bGUgJG1vZHVsZSAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICRtb2R1bGUgPSBZaWk6OiRhcHAtPmdldE1vZHVsZSgndXNlcicpO1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICR0byA9ICR0b2tlbi0+dHlwZSA9PT0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnVG9rZW46OlRZUEVfQ09ORklSTV9ORVdfRU1BSUxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgPyAkdXNlci0+dW5jb25maXJtZWRfZW1haWxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgOiAkdXNlci0+ZW1haWw7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICRmcm9tID0gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiJG1vZHVsZS0+bWFpbFBhcmFtc1snZnJvbUVtYWlsJ107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHN1YmplY3QgPSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIkbW9kdWxlLT5tYWlsUGFyYW1zWydyZWNvbmZpcm1hdGlvbk1haWxTdWJqZWN0J107XHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgJHBhcmFtcyA9IFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3VzZXInID0+ICR0b2tlbiAmJiAkdG9rZW4tPnVzZXIgPyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICckdG9rZW4tPnVzZXIgOiBudWxsLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndG9rZW4nID0+ICR0b2tlbixcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICByZXR1cm4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGljOjptYWtlTWFpbGVyU2VydmljZShNYWlsRXZlbnQ6OlRZUEVfUkVDT05GSVJNLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIkZnJvbSwgJHRvLCAkc3ViamVjdCwgJ3JlY29uZmlybWF0aW9uJywgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnJHBhcmFtcyk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLyoqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBCdWlsZHMgYSBNYWlsZXJTZXJ2aWNlLlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICpcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmcgICAgICAgICAgICAgICAgJHR5cGVcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAqIEBwYXJhbSBzdHJpbmd8YXJyYXl8XFxDbG9zdXJlICRmcm9tXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICR0b1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICAkc3ViamVjdFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIHN0cmluZyAgICAgICAgICAgICAgICAkdmlld1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHBhcmFtIGFycmF5ICAgICAgICAgICAgICAgICAkcGFyYW1zXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICogQHRocm93cyBJbnZhbGlkQ29uZmlnRXhjZXB0aW9uXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKiBAcmV0dXJuIE1haWxTZXJ2aWNlXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21ha2VNYWlsZXJTZXJ2aWNlKCR0eXBlLCAkZnJvbSwgJHRvLCAkc3ViamVjdCwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnJHZpZXcsICRwYXJhbXMgPSBbXSlcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBpZiAoJGZyb20gaW5zdGFuY2VvZiBcXENsb3N1cmUpIHtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgJGZyb20gPSAkZnJvbSgkdHlwZSk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgfVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qKiBAbm9pbnNwZWN0aW9uICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1BocEluY29tcGF0aWJsZVJldHVyblR5cGVJbnNwZWN0aW9uICovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgcmV0dXJuIFlpaTo6JGNvbnRhaW5lci0+Z2V0KFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBNYWlsU2VydmljZTo6Y2xhc3MsXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIFskdHlwZSwgJGZyb20sICR0bywgJHN1YmplY3QsICR2aWV3LCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICckcGFyYW1zLCBZaWk6OiRhcHAtPmdldE1haWxlcigpXVxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICk7XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICB9XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cclxuJ319LAogNTogeydlbic6IHsnTm90ZXMnOiAnJywKICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdDb2RlSW5jJywKICAgICAgICAgICAgJ2FMYWJlbCc6ICdZaWkgQ29uZmlnIHBhcmFtKi5waHAnLAogICAgICAgICAgICAnYV9maWxlJzogJycsCiAgICAgICAgICAgICdhZGRDbGFzcyc6ICcnLAogICAgICAgICAgICAnYXN2Z2ZpbGUnOiAnPHN2Zz48L3N2Zz4nLAogICAgICAgICAgICAnY29kZSc6ICcnLAogICAgICAgICAgICAnY29kZUluYyc6ICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHN0eWxlSW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc2NyaXB0SW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgYm9keSB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc2NyaXB0SW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBFbmRcclxuJywKICAgICAgICAgICAgJ2NvbEJHSW1hZ2UnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nOC5qcGcnLAogICAgICAgICAgICAnY29sQkdJbWFnZVdyYXAnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nOS5qcGcnLAogICAgICAgICAgICAnY29tcG9zZXJKU09OJzogJycsCiAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICdwaHBGaWxlJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL2NvbW1vbi9jb25maWcvX3BhcmFtcy5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICcqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ3JldHVybiBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAiICAgICdhZG1pbkVtYWlsJyA9PiAnaW5mb0Bhc29uZWxpc3QuY29tJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgJ3N1cHBvcnRFbWFpbCcgPT4gJ2luZm9AYXNvbmVsaXN0LmNvbScsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAiICAgICdzZW5kZXJFbWFpbCcgPT4gJ2luZm9AYXNvbmVsaXN0LmNvbScsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAiICAgICdzZW5kZXJOYW1lJyA9PiAnTm9SZXBseScsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAiICAgICd1c2VyLnBhc3N3b3JkUmVzZXRUb2tlbkV4cGlyZScgPT4gMzYwMCxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICIgICAgJ3VzZXIucGFzc3dvcmRNaW5MZW5ndGgnID0+IDgsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAnXTsnLAogICAgICAgICAgICAncGhwRmlsZUEnOiAnPD9waHAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL2Zyb250ZW5kL2NvbmZpZy9fcGFyYW1zLnBocCAnCiAgICAgICAgICAgICAgICAgICAgICAgICcqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAncmV0dXJuIFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXTsnLAogICAgICAgICAgICAncGhwRmlsZUInOiAnJ30sCiAgICAgJ2VuLVVTJzogeydNeU1vZHVsZSc6ICdvbmVDb2x1bW4nLAogICAgICAgICAgICAgICAnTm90ZXMnOiAnJywKICAgICAgICAgICAgICAgJ1NsaWRlVHlwZSc6ICdDb2RlSW5jJywKICAgICAgICAgICAgICAgJ2FMYWJlbCc6ICdZaWkgQ29uZmlnIHBhcmFtKi5waHAnLAogICAgICAgICAgICAgICAnYV9maWxlJzogJycsCiAgICAgICAgICAgICAgICdhZGRDbGFzcyc6ICcnLAogICAgICAgICAgICAgICAnYXN2Z2ZpbGUnOiAnPHN2Zz48L3N2Zz4nLAogICAgICAgICAgICAgICAnY29kZSc6ICcnLAogICAgICAgICAgICAgICAnY29kZUluYyc6ICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgY29udGVudCBiZXR3ZWVuIHN0eWxlSW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgaGVhZCB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzdHlsZUluYyBJbmNsdWRlZCBmcm9tIF9JRF8gLS0+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlSW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc2NyaXB0SW5jIHRhZyB3aWxsIGJlIGFkZCB0byB0aGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUgdGhlIGNsb3NpbmcgYm9keSB0YWdzXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0SW5jPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwhLS0gc2NyaXB0SW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8c2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc2NyaXB0PlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBFbmRcclxuJywKICAgICAgICAgICAgICAgJ2NvbEJHSW1hZ2UnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nOC5qcGcnLAogICAgICAgICAgICAgICAnY29sQkdJbWFnZVdyYXAnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nOS5qcGcnLAogICAgICAgICAgICAgICAnY29tcG9zZXJKU09OJzogJycsCiAgICAgICAgICAgICAgICdkeW5hbWljQmxvY2snOiAnJywKICAgICAgICAgICAgICAgJ2tleXdvcmRzJzogJycsCiAgICAgICAgICAgICAgICdtb2RWYXInOiB7J1Zhckxpc3QnOiB7J0FjY29yZGlvbkNhcmRCb2R5Q2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWNjb3JkaW9uQ2FyZENsYXNzJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY29yZGlvbkNhcmRIZWFkZXJDbGFzcyc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBY2NvcmRpb25PcGVuRmlyc3QnOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEeW5hbWljQmxvY2snOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1DU1NWYXInOiAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbW1lbnQgZnJvbSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvbmVDb2x1bW5cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JpZ1NjZWVuVG9wUGFkZGluZz01MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlkU2NyZWVuVG9wUGFkZGluZz0yMFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU21hbGxTY3JlZW5Ub3BQYWRkaW5nPTEwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCaWdTY2VlbkJvdHRvbVBhZGRpbmc9NTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pZFNjcmVlbkJvdHRvbVBhZGRpbmc9MjBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuQm90dG9tUGFkZGluZz0xMFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCaWdTY2VlbkxlZnRSaWdodFBhZGRpbmc9MjBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pZFNjcmVlbkxlZnRSaWdodFBhZGRpbmc9MTVcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuTGVmdFJpZ2h0UGFkZGluZz0xMFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCaWdTY2VlblRvcE1hcmdpbj0wXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNaWRTY3JlZW5Ub3BNYXJnaW49MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU21hbGxTY3JlZW5Ub3BNYXJnaW49MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5Cb3R0b21NYXJnaW49MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlkU2NyZWVuQm90dG9tTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuQm90dG9tTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIGlkIGZvbnQgY29sb3JcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZvbnRDb2xvcj1fQ29sb3JBX1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIG1vZHVsZSBiYWNrZ3JvdW5kXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNQmFja2dyb3VuZD1cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLUNvdmVyQmFja2dyb3VuZCc6ICcgPHN0eWxlPiAjX0lEXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7IGJhY2tncm91bmQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19UaW50QkdfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VybChfQ0lNQUdFXykgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm8tcmVwZWF0ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NlbnRlciBjZW50ZXIgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZml4ZWQ7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy13ZWJraXQtYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLW1vei1iYWNrZ3JvdW5kLXNpemU6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvdmVyOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctby1iYWNrZ3JvdW5kLXNpemU6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvdmVyOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLXNpemU6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvdmVyOyB9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGU+ICcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLUNvdmVyQmFja2dyb3VuZFNWRyc6ICcgPHN0eWxlPiAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JvbGwgd2lsbCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF5IHdpdGggJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udGVudCAgKi8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8geyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfVGludEJHXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmwoX0NJTUFHRV8pICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vLXJlcGVhdCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjZW50ZXIgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2VudGVyOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLXNpemU6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzEwMCUgMTAwJTsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktRW5kVGFnQ29kZSc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1HUG9zdEluYyc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1IZWxwJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLVBvc3RJbmMnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktUHJlSW5jJzogJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gIHsgX0ZvbnRDb2xvcl8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX01CYWNrZ3JvdW5kXyB9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjX0lEXyB7cG9zaXRpb246ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbGF0aXZlO31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLl9JRFhfIHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZy1ib3R0b206IDE1cHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjX0lEXyAuaGNvbnRlbnQge1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBwb3NpdGlvbjogYWJzb2x1dGU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRvcDogNTAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBsZWZ0OiA1MCU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRyYW5zZm9ybTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNsYXRlKC01MCUsIC01MCUpO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gLmN0Y29udGVudCB7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgdG9wOiA1MCU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIGxlZnQ6IDUwJTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgdHJhbnNmb3JtOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIGJhY2tncm91bmQtY29sb3I6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JnYmEoMCwgMCwgMCwgLjI1KTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgIGNvbG9yOiB3aGl0ZTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgcGFkZGluZzogMjBweDtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gLnZjb250YWluZXIge1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBoZWlnaHQ6IDUwdmg7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgb3ZlcmZsb3c6IGhpZGRlbjtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BtZWRpYShtaW4td2lkdGg6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzYwMHB4KSB7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAjX0lEXyAudmNvbnRhaW5lciB7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodDogMTAwdmg7IH1cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLyogI19JRF8gLnJvdyA+IGRpdnsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZzogMTBweDsgfSAqL1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLyogU21hbGwgRGV2aWNlcywgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVGFibGV0cyBmcm9tIG9uZUNvbHVtbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcqL1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcobWF4LXdpZHRoIDogNTc2cHgpICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3sjX0lEXyAucm93IHsgcGFkZGluZzogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5MZWZ0UmlnaHRQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9ICNfSURfIHsgcGFkZGluZy10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19TbWFsbFNjcmVlblRvcFBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmctYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5Cb3R0b21QYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5Ub3BNYXJnaW5fcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19TbWFsbFNjcmVlbkJvdHRvbU1hcmdpbl9weDt9ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qIE1lZGl1bSBEZXZpY2VzLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEZXNrdG9wcyAqLyBAbWVkaWEgb25seSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4gYW5kIChtaW4td2lkdGggOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc3NjhweCkgeyNfSURfIC5yb3cgeyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nOjAgICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NaWRTY3JlZW5MZWZ0UmlnaHRQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9ICNfSURfIHsgcGFkZGluZy10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NaWRTY3JlZW5Ub3BQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nLWJvdHRvbTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX01pZFNjcmVlbkJvdHRvbVBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NaWRTY3JlZW5Ub3BNYXJnaW5fcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NaWRTY3JlZW5Cb3R0b21NYXJnaW5fcHg7fX1cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qIExhcmdlIERldmljZXMsIFdpZGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU2NyZWVucyAqLyBAbWVkaWEgb25seSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY3JlZW4gYW5kIChtaW4td2lkdGggOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc5OTJweCkgeyNfSURfIC5yb3cgeyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nOiAwICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlbkxlZnRSaWdodFBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gI19JRF8geyBwYWRkaW5nLXRvcDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX0JpZ1NjZWVuVG9wUGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZy1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlbkJvdHRvbVBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlblRvcE1hcmdpbl9weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX0JpZ1NjZWVuQm90dG9tTWFyZ2luX3B4O319XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktUHJlVGFnQ29kZSc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1WaWRlb0JhY2tncm91bmQnOiAnXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuaGVhZGVyLXVuaXRfSURfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3sgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLXJpZ2h0Om5vbmU7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1sZWZ0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub25lOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb3NpdGlvbjogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsYXRpdmU7IH1cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyN2aWRlby1jb250YWluZXJfSURfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgcG9zaXRpb246ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Fic29sdXRlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBoZWlnaHQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzEwMCU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHdpZHRoOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxMDAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB0b3A6IDA7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIGxlZnQ6IDA7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9IFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI3ZpZGVvLWNvbnRhaW5lcl9JRF8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmlkZW97XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIG9iamVjdC1maXQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvdmVyOyBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPlxuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVGludGluZ0JHJzogJ2xpbmVhci1ncmFkaWVudCggcmdiYSgwLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcwLCAwLCAwKSwgcmdiYSgwLCAwLCAwLCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcwKSksJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXh0cmFDbGFzcyc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnOiA2MDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJzogMTIwMH19LAogICAgICAgICAgICAgICAncGhwRmlsZSc6ICc8P3BocCAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC9jb21tb24vY29uZmlnL19wYXJhbXMucGhwICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdyZXR1cm4gW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnYWRtaW5FbWFpbCcgPT4gJ2luZm9AYXNvbmVsaXN0LmNvbScsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdzdXBwb3J0RW1haWwnID0+ICdpbmZvQGFzb25lbGlzdC5jb20nLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnc2VuZGVyRW1haWwnID0+ICdpbmZvQGFzb25lbGlzdC5jb20nLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnc2VuZGVyTmFtZScgPT4gJ05vUmVwbHknLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAndXNlci5wYXNzd29yZFJlc2V0VG9rZW5FeHBpcmUnID0+IDM2MDAsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICd1c2VyLnBhc3N3b3JkTWluTGVuZ3RoJyA9PiA4LFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ107JywKICAgICAgICAgICAgICAgJ3BocEZpbGVBJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC9mcm9udGVuZC9jb25maWcvX3BhcmFtcy5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JldHVybiBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ107JywKICAgICAgICAgICAgICAgJ3BocEZpbGVCJzogJyd9fSwKIDY6IHsnZW4nOiB7J05vdGVzJzogJycsCiAgICAgICAgICAgICdTbGlkZVR5cGUnOiAnQ29kZUluYycsCiAgICAgICAgICAgICdhTGFiZWwnOiAnQ29uZmlnIG1haW4qLnBocCcsCiAgICAgICAgICAgICdhX2ZpbGUnOiAnJywKICAgICAgICAgICAgJ2FkZENsYXNzJzogJycsCiAgICAgICAgICAgICdhc3ZnZmlsZSc6ICc8c3ZnPjwvc3ZnPicsCiAgICAgICAgICAgICdjb2RlJzogJycsCiAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBib2R5IHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzY3JpcHRJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAnY29sQkdJbWFnZSc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWcxMC5qcGcnLAogICAgICAgICAgICAnY29sQkdJbWFnZVdyYXAnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nMTEuanBnJywKICAgICAgICAgICAgJ2NvbXBvc2VySlNPTic6ICcnLAogICAgICAgICAgICAnZHluYW1pY0Jsb2NrJzogJycsCiAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAncGhwRmlsZSc6ICcnLAogICAgICAgICAgICAncGhwRmlsZUEnOiAnPD9waHAgLyogJwogICAgICAgICAgICAgICAgICAgICAgICAnX2RvY3Jvb3RfLy4uL3NyYy95aWkyL2FkdmFuY2VkL2Zyb250ZW5kL2NvbmZpZy9tYWluLnBocCAnCiAgICAgICAgICAgICAgICAgICAgICAgICcqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyRwYXJhbXMgPSBhcnJheV9tZXJnZShcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICByZXF1aXJlIF9fRElSX18gLiAnCiAgICAgICAgICAgICAgICAgICAgICAgICInLy4uLy4uL2NvbW1vbi9jb25maWcvcGFyYW1zLnBocCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgcmVxdWlyZSBfX0RJUl9fIC4gJwogICAgICAgICAgICAgICAgICAgICAgICAiJy8uLi8uLi9jb21tb24vY29uZmlnL3BhcmFtcy1sb2NhbC5waHAnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgIHJlcXVpcmUgX19ESVJfXyAuICcvcGFyYW1zLnBocCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgcmVxdWlyZSBfX0RJUl9fIC4gJy9wYXJhbXMtbG9jYWwucGhwJ1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAncmV0dXJuIFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAnaWQnID0+ICdhcHAtZnJvbnRlbmQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICdiYXNlUGF0aCcgPT4gZGlybmFtZShfX0RJUl9fKSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAnYm9vdHN0cmFwJyA9PiBbJ2xvZyddLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICdjb250cm9sbGVyTmFtZXNwYWNlJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICInZnJvbnRlbmRcXGNvbnRyb2xsZXJzJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAnY29tcG9uZW50cycgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2kxOG4nID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgJ3RyYW5zbGF0aW9ucycgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICdhc29uZScgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgJ2NsYXNzJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICIneWlpXFxpMThuXFxQaHBNZXNzYWdlU291cmNlJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICdiYXNlUGF0aCcgPT4gJ0Bjb21tb24vbWVzc2FnZXMnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ3JlcXVlc3QnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgJ2NzcmZQYXJhbScgPT4gJ19jc3JmLWZyb250ZW5kJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAvLyd1c2VyJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAvLyAgICAnaWRlbnRpdHlDbGFzcycgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAiJ2NvbW1vblxcbW9kZWxzXFxVc2VyJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgIC8vICAgICdlbmFibGVBdXRvTG9naW4nID0+IHRydWUsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAvLyAgICAnaWRlbnRpdHlDb29raWUnID0+IFsnbmFtZScgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAiJ19pZGVudGl0eS1mcm9udGVuZCcsICdodHRwT25seScgPT4gdHJ1ZV0sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvL10sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnc2Vzc2lvbicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAvLyB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIGNvb2tpZSB1c2VkICcKICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvciBsb2dpbiBvbiB0aGUgZnJvbnRlbmRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgJ25hbWUnID0+ICdhZHZhbmNlZC1mcm9udGVuZCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2xvZycgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAndHJhY2VMZXZlbCcgPT4gWUlJX0RFQlVHID8gMyA6IDAsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICd0YXJnZXRzJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgW1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgJ2NsYXNzJyA9PiAneWlpXFxsb2dcXEZpbGVUYXJnZXQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgJ2xldmVscycgPT4gWydlcnJvcicsICd3YXJuaW5nJ10sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnZXJyb3JIYW5kbGVyJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICdlcnJvckFjdGlvbicgPT4gJ3NpdGUvZXJyb3InLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgIC8qXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJ3VybE1hbmFnZXInID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ2VuYWJsZVByZXR0eVVybCcgPT4gdHJ1ZSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3Nob3dTY3JpcHROYW1lJyA9PiBmYWxzZSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3J1bGVzJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgJ3BhcmFtcycgPT4gJHBhcmFtcyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnXTtcclxuJywKICAgICAgICAgICAgJ3BocEZpbGVCJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC9mcm9udGVuZC9jb25maWcvbWFpbi5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICckcGFyYW1zID0gYXJyYXlfbWVyZ2UoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICByZXF1aXJlIF9fRElSX18gLiAnCiAgICAgICAgICAgICAgICAgICAgICAgICInLy4uLy4uL2NvbW1vbi9jb25maWcvcGFyYW1zLnBocCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICByZXF1aXJlIF9fRElSX18gLiAnCiAgICAgICAgICAgICAgICAgICAgICAgICInLy4uLy4uL2NvbW1vbi9jb25maWcvcGFyYW1zLWxvY2FsLnBocCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICByZXF1aXJlIF9fRElSX18gLiAnL3BhcmFtcy5waHAnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgcmVxdWlyZSBfX0RJUl9fIC4gJy9wYXJhbXMtbG9jYWwucGhwJ1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcpO1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAncmV0dXJuIFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICdpZCcgPT4gJ2FwcC1mcm9udGVuZCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnYmFzZVBhdGgnID0+IGRpcm5hbWUoX19ESVJfXyksXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnYm9vdHN0cmFwJyA9PiBbJ2xvZyddLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2NvbnRyb2xsZXJOYW1lc3BhY2UnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgIidmcm9udGVuZFxcY29udHJvbGxlcnMnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2NvbXBvbmVudHMnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAncmVxdWVzdCcgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnY3NyZlBhcmFtJyA9PiAnX2NzcmYtZnJvbnRlbmQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgLy8ndXNlcicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIC8vICAgICdpZGVudGl0eUNsYXNzJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICInY29tbW9uXFxtb2RlbHNcXFVzZXInLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIC8vICAgICdlbmFibGVBdXRvTG9naW4nID0+IHRydWUsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgLy8gICAgJ2lkZW50aXR5Q29va2llJyA9PiBbJ25hbWUnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgIidfaWRlbnRpdHktZnJvbnRlbmQnLCAnaHR0cE9ubHknID0+IHRydWVdLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8vXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAnc2Vzc2lvbicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAvLyB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIGNvb2tpZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICd1c2VkIGZvciBsb2dpbiBvbiB0aGUgZnJvbnRlbmRcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ25hbWUnID0+ICdhZHZhbmNlZC1mcm9udGVuZCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAnbG9nJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd0cmFjZUxldmVsJyA9PiBZSUlfREVCVUcgPyAzIDogMCxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3RhcmdldHMnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgICAgIFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAnY2xhc3MnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgIid5aWlcXGxvZ1xcRmlsZVRhcmdldCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgJ2xldmVscycgPT4gWydlcnJvcicsICIKICAgICAgICAgICAgICAgICAgICAgICAgIid3YXJuaW5nJ10sXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJ2Vycm9ySGFuZGxlcicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAnZXJyb3JBY3Rpb24nID0+ICdzaXRlL2Vycm9yJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIC8qXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJ3VybE1hbmFnZXInID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ2VuYWJsZVByZXR0eVVybCcgPT4gdHJ1ZSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3Nob3dTY3JpcHROYW1lJyA9PiBmYWxzZSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ3J1bGVzJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAqL1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICcgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAiICAgICdwYXJhbXMnID0+ICRwYXJhbXMsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgJ107XHJcbid9LAogICAgICdlbi1VUyc6IHsnTXlNb2R1bGUnOiAnb25lQ29sdW1uJywKICAgICAgICAgICAgICAgJ05vdGVzJzogJycsCiAgICAgICAgICAgICAgICdTbGlkZVR5cGUnOiAnQ29kZUluYycsCiAgICAgICAgICAgICAgICdhTGFiZWwnOiAnQ29uZmlnIG1haW4qLnBocCcsCiAgICAgICAgICAgICAgICdhX2ZpbGUnOiAnJywKICAgICAgICAgICAgICAgJ2FkZENsYXNzJzogJycsCiAgICAgICAgICAgICAgICdhc3ZnZmlsZSc6ICc8c3ZnPjwvc3ZnPicsCiAgICAgICAgICAgICAgICdjb2RlJzogJycsCiAgICAgICAgICAgICAgICdjb2RlSW5jJzogJyMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb250ZW50IGJldHdlZW4gc3R5bGVJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBoZWFkIHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZUluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8IS0tIHN0eWxlSW5jIEluY2x1ZGVkIGZyb20gX0lEXyAtLT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8c3R5bGU+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3R5bGVJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIGNvbnRlbnQgYmV0d2VlbiBzY3JpcHRJbmMgdGFnIHdpbGwgYmUgYWRkIHRvIHRoZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JlZm9yZSB0aGUgY2xvc2luZyBib2R5IHRhZ3NcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHRJbmM+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPCEtLSBzY3JpcHRJbmMgSW5jbHVkZWQgZnJvbSBfSURfIC0tPlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zY3JpcHQ+XHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3NjcmlwdEluYz5cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcjIEVuZFxyXG4nLAogICAgICAgICAgICAgICAnY29sQkdJbWFnZSc6ICcvZGVmYXVsdC9tZWRpYS9uYXY2aDAvcy9VSS9BMDAwMDAxMDI3MDAyMDAxL29uZUNvbHVtbi9pbWcxMC5qcGcnLAogICAgICAgICAgICAgICAnY29sQkdJbWFnZVdyYXAnOiAnL2RlZmF1bHQvbWVkaWEvbmF2NmgwL3MvVUkvQTAwMDAwMTAyNzAwMjAwMS9vbmVDb2x1bW4vaW1nMTEuanBnJywKICAgICAgICAgICAgICAgJ2NvbXBvc2VySlNPTic6ICcnLAogICAgICAgICAgICAgICAnZHluYW1pY0Jsb2NrJzogJycsCiAgICAgICAgICAgICAgICdrZXl3b3Jkcyc6ICcnLAogICAgICAgICAgICAgICAnbW9kVmFyJzogeydWYXJMaXN0JzogeydBY2NvcmRpb25DYXJkQm9keUNsYXNzJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjY29yZGlvbkNhcmRDbGFzcyc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBY2NvcmRpb25DYXJkSGVhZGVyQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWNjb3JkaW9uT3BlbkZpcnN0JzogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRHluYW1pY0Jsb2NrJzogMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktQ1NTVmFyJzogJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBjb21tZW50IGZyb20gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb25lQ29sdW1uXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCaWdTY2VlblRvcFBhZGRpbmc9NTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pZFNjcmVlblRvcFBhZGRpbmc9MjBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuVG9wUGFkZGluZz0xMFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5Cb3R0b21QYWRkaW5nPTUwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNaWRTY3JlZW5Cb3R0b21QYWRkaW5nPTIwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTbWFsbFNjcmVlbkJvdHRvbVBhZGRpbmc9MTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5MZWZ0UmlnaHRQYWRkaW5nPTIwXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNaWRTY3JlZW5MZWZ0UmlnaHRQYWRkaW5nPTE1XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTbWFsbFNjcmVlbkxlZnRSaWdodFBhZGRpbmc9MTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQmlnU2NlZW5Ub3BNYXJnaW49MFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlkU2NyZWVuVG9wTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NtYWxsU2NyZWVuVG9wTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JpZ1NjZWVuQm90dG9tTWFyZ2luPTBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pZFNjcmVlbkJvdHRvbU1hcmdpbj0wXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTbWFsbFNjcmVlbkJvdHRvbU1hcmdpbj0wXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBpZCBmb250IGNvbG9yXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdGb250Q29sb3I9X0NvbG9yQV9cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBtb2R1bGUgYmFja2dyb3VuZFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTUJhY2tncm91bmQ9XG4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1Db3ZlckJhY2tncm91bmQnOiAnIDxzdHlsZT4gI19JRF8gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAneyBiYWNrZ3JvdW5kOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfVGludEJHXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmwoX0NJTUFHRV8pICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vLXJlcGVhdCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjZW50ZXIgY2VudGVyICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpeGVkOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctd2Via2l0LWJhY2tncm91bmQtc2l6ZTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY292ZXI7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1tb3otYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLW8tYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgfSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N0eWxlPiAnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1Db3ZlckJhY2tncm91bmRTVkcnOiAnIDxzdHlsZT4gLyogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Nyb2xsIHdpbGwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RheSB3aXRoICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRlbnQgICovICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1RpbnRCR18gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXJsKF9DSU1BR0VfKSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduby1yZXBlYXQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2VudGVyICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NlbnRlcjsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1zaXplOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxMDAlIDEwMCU7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ30gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLUVuZFRhZ0NvZGUnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktR1Bvc3RJbmMnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktSGVscCc6ICcnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdNdWx0aS1Qb3N0SW5jJzogJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLVByZUluYyc6ICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxzdHlsZT5cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfICB7IF9Gb250Q29sb3JfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NQmFja2dyb3VuZF8gfVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8ge3Bvc2l0aW9uOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxhdGl2ZTt9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5fSURYXyB7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmctYm90dG9tOiAxNXB4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI19JRF8gLmhjb250ZW50IHtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgcG9zaXRpb246IGFic29sdXRlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB0b3A6IDUwJTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgbGVmdDogNTAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB0cmFuc2Zvcm06ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ31cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIC5jdGNvbnRlbnQge1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBwb3NpdGlvbjogYWJzb2x1dGU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRvcDogNTAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBsZWZ0OiA1MCU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHRyYW5zZm9ybTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNsYXRlKC01MCUsIC01MCUpO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBiYWNrZ3JvdW5kLWNvbG9yOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZ2JhKDAsIDAsIDAsIC4yNSk7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICBjb2xvcjogd2hpdGU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHBhZGRpbmc6IDIwcHg7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNfSURfIC52Y29udGFpbmVyIHtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgaGVpZ2h0OiA1MHZoO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBwb3NpdGlvbjogcmVsYXRpdmU7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIG92ZXJmbG93OiBoaWRkZW47XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdAbWVkaWEobWluLXdpZHRoOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc2MDBweCkge1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgI19JRF8gLnZjb250YWluZXIgeyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQ6IDEwMHZoOyB9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qICNfSURfIC5yb3cgPiBkaXZ7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmc6IDEwcHg7IH0gKi9cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qIFNtYWxsIERldmljZXMsICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RhYmxldHMgZnJvbSBvbmVDb2x1bW4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BtZWRpYSBvbmx5IHNjcmVlbiBhbmQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKG1heC13aWR0aCA6IDU3NnB4KSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7I19JRF8gLnJvdyB7IHBhZGRpbmc6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1NtYWxsU2NyZWVuTGVmdFJpZ2h0UGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSAjX0lEXyB7IHBhZGRpbmctdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5Ub3BQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYWRkaW5nLWJvdHRvbTogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1NtYWxsU2NyZWVuQm90dG9tUGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX1NtYWxsU2NyZWVuVG9wTWFyZ2luX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfU21hbGxTY3JlZW5Cb3R0b21NYXJnaW5fcHg7fSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKiBNZWRpdW0gRGV2aWNlcywgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRGVza3RvcHMgKi8gQG1lZGlhIG9ubHkgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuIGFuZCAobWluLXdpZHRoIDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnNzY4cHgpIHsjX0lEXyAucm93IHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZzowICAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuTGVmdFJpZ2h0UGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSAjX0lEXyB7IHBhZGRpbmctdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuVG9wUGFkZGluZ19weDsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZy1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19NaWRTY3JlZW5Cb3R0b21QYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuVG9wTWFyZ2luX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfTWlkU2NyZWVuQm90dG9tTWFyZ2luX3B4O319XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvKiBMYXJnZSBEZXZpY2VzLCBXaWRlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NjcmVlbnMgKi8gQG1lZGlhIG9ubHkgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NyZWVuIGFuZCAobWluLXdpZHRoIDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOTkycHgpIHsjX0lEXyAucm93IHsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFkZGluZzogMCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfQmlnU2NlZW5MZWZ0UmlnaHRQYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9ICNfSURfIHsgcGFkZGluZy10b3A6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlblRvcFBhZGRpbmdfcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmctYm90dG9tOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfQmlnU2NlZW5Cb3R0b21QYWRkaW5nX3B4OyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tdG9wOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfQmlnU2NlZW5Ub3BNYXJnaW5fcHg7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b206ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19CaWdTY2VlbkJvdHRvbU1hcmdpbl9weDt9fVxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpLVByZVRhZ0NvZGUnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTXVsdGktVmlkZW9CYWNrZ3JvdW5kJzogJ1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN0eWxlPlxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLmhlYWRlci11bml0X0lEXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yaWdodDpub25lOyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItbGVmdDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9uZTsgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9zaXRpb246ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbGF0aXZlOyB9XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjdmlkZW8tY29udGFpbmVyX0lEXyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd7XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHBvc2l0aW9uOiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhYnNvbHV0ZTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgaGVpZ2h0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxMDAlO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICB3aWR0aDogJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMTAwJTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgdG9wOiAwO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBsZWZ0OiAwO1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfSBcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyN2aWRlby1jb250YWluZXJfSURfICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZpZGVve1xuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBvYmplY3QtZml0OiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3ZlcjsgXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd9IFxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdHlsZT5cbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RpbnRpbmdCRyc6ICdsaW5lYXItZ3JhZGllbnQoIHJnYmEoMCwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCwgMCwgMCksIHJnYmEoMCwgMCwgMCwgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMCkpLCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4dHJhQ2xhc3MnOiAnJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JzogNjAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc6IDEyMDB9fSwKICAgICAgICAgICAgICAgJ3BocEZpbGUnOiAnJywKICAgICAgICAgICAgICAgJ3BocEZpbGVBJzogJzw/cGhwIC8qICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kb2Nyb290Xy8uLi9zcmMveWlpMi9hZHZhbmNlZC9mcm9udGVuZC9jb25maWcvbWFpbi5waHAgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICckcGFyYW1zID0gYXJyYXlfbWVyZ2UoXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgcmVxdWlyZSBfX0RJUl9fIC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiJy8uLi8uLi9jb21tb24vY29uZmlnL3BhcmFtcy5waHAnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgIHJlcXVpcmUgX19ESVJfXyAuICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIicvLi4vLi4vY29tbW9uL2NvbmZpZy9wYXJhbXMtbG9jYWwucGhwJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICByZXF1aXJlIF9fRElSX18gLiAnL3BhcmFtcy5waHAnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIHJlcXVpcmUgX19ESVJfXyAuICcvcGFyYW1zLWxvY2FsLnBocCdcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JldHVybiBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgJ2lkJyA9PiAnYXBwLWZyb250ZW5kJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAnYmFzZVBhdGgnID0+IGRpcm5hbWUoX19ESVJfXyksXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgJ2Jvb3RzdHJhcCcgPT4gWydsb2cnXSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAnY29udHJvbGxlck5hbWVzcGFjZScgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiJ2Zyb250ZW5kXFxjb250cm9sbGVycycsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgJ2NvbXBvbmVudHMnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdpMThuJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICd0cmFuc2xhdGlvbnMnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAnYXNvbmUnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICdjbGFzcycgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiJ3lpaVxcaTE4blxcUGhwTWVzc2FnZVNvdXJjZScsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAnYmFzZVBhdGgnID0+ICdAY29tbW9uL21lc3NhZ2VzJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdyZXF1ZXN0JyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICdjc3JmUGFyYW0nID0+ICdfY3NyZi1mcm9udGVuZCcsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgLy8ndXNlcicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgLy8gICAgJ2lkZW50aXR5Q2xhc3MnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIidjb21tb25cXG1vZGVsc1xcVXNlcicsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAvLyAgICAnZW5hYmxlQXV0b0xvZ2luJyA9PiB0cnVlLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgLy8gICAgJ2lkZW50aXR5Q29va2llJyA9PiBbJ25hbWUnID0+ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIidfaWRlbnRpdHktZnJvbnRlbmQnLCAnaHR0cE9ubHknID0+IHRydWVdLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgLy9dLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ3Nlc3Npb24nID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgLy8gdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiBjb29raWUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAndXNlZCBmb3IgbG9naW4gb24gdGhlIGZyb250ZW5kXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICduYW1lJyA9PiAnYWR2YW5jZWQtZnJvbnRlbmQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdsb2cnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgJ3RyYWNlTGV2ZWwnID0+IFlJSV9ERUJVRyA/IDMgOiAwLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAndGFyZ2V0cycgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIFtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICdjbGFzcycgPT4gJ3lpaVxcbG9nXFxGaWxlVGFyZ2V0JyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICdsZXZlbHMnID0+IFsnZXJyb3InLCAnd2FybmluZyddLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2Vycm9ySGFuZGxlcicgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAnZXJyb3JBY3Rpb24nID0+ICdzaXRlL2Vycm9yJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAvKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICd1cmxNYW5hZ2VyJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdlbmFibGVQcmV0dHlVcmwnID0+IHRydWUsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdzaG93U2NyaXB0TmFtZScgPT4gZmFsc2UsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdydWxlcycgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICdwYXJhbXMnID0+ICRwYXJhbXMsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ107XHJcbicsCiAgICAgICAgICAgICAgICdwaHBGaWxlQic6ICc8P3BocCAvKiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdfZG9jcm9vdF8vLi4vc3JjL3lpaTIvYWR2YW5jZWQvZnJvbnRlbmQvY29uZmlnL21haW4ucGhwICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyovXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1xyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnJHBhcmFtcyA9IGFycmF5X21lcmdlKFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcmVxdWlyZSBfX0RJUl9fIC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiJy8uLi8uLi9jb21tb24vY29uZmlnL3BhcmFtcy5waHAnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgcmVxdWlyZSBfX0RJUl9fIC4gJwogICAgICAgICAgICAgICAgICAgICAgICAgICAiJy8uLi8uLi9jb21tb24vY29uZmlnL3BhcmFtcy1sb2NhbC5waHAnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgcmVxdWlyZSBfX0RJUl9fIC4gJy9wYXJhbXMucGhwJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIHJlcXVpcmUgX19ESVJfXyAuICcvcGFyYW1zLWxvY2FsLnBocCdcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnKTtcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JldHVybiBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAnaWQnID0+ICdhcHAtZnJvbnRlbmQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2Jhc2VQYXRoJyA9PiBkaXJuYW1lKF9fRElSX18pLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgJ2Jvb3RzdHJhcCcgPT4gWydsb2cnXSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdjb250cm9sbGVyTmFtZXNwYWNlJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICInZnJvbnRlbmRcXGNvbnRyb2xsZXJzJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICdjb21wb25lbnRzJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJ3JlcXVlc3QnID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ2NzcmZQYXJhbScgPT4gJ19jc3JmLWZyb250ZW5kJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIC8vJ3VzZXInID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAvLyAgICAnaWRlbnRpdHlDbGFzcycgPT4gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiJ2NvbW1vblxcbW9kZWxzXFxVc2VyJyxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAvLyAgICAnZW5hYmxlQXV0b0xvZ2luJyA9PiB0cnVlLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgIC8vICAgICdpZGVudGl0eUNvb2tpZScgPT4gWyduYW1lJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICInX2lkZW50aXR5LWZyb250ZW5kJywgJ2h0dHBPbmx5JyA9PiB0cnVlXSxcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvL10sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJ3Nlc3Npb24nID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb29raWUgdXNlZCBmb3IgbG9naW4gb24gdGhlIGZyb250ZW5kXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICduYW1lJyA9PiAnYWR2YW5jZWQtZnJvbnRlbmQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgJ2xvZycgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAndHJhY2VMZXZlbCcgPT4gWUlJX0RFQlVHID8gMyA6IDAsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICd0YXJnZXRzJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgICAgICAgICBbXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAgJ2NsYXNzJyA9PiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIneWlpXFxsb2dcXEZpbGVUYXJnZXQnLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAgICAgICAgICdsZXZlbHMnID0+IFsnZXJyb3InLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICInd2FybmluZyddLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICdlcnJvckhhbmRsZXInID0+IFtcclxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJ2Vycm9yQWN0aW9uJyA9PiAnc2l0ZS9lcnJvcicsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgXSxcclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgICAvKlxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICd1cmxNYW5hZ2VyJyA9PiBbXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdlbmFibGVQcmV0dHlVcmwnID0+IHRydWUsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdzaG93U2NyaXB0TmFtZScgPT4gZmFsc2UsXHJcbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICdydWxlcycgPT4gW1xyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgICAgICBdLFxyXG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgKi9cclxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIF0sXHJcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAncGFyYW1zJyA9PiAkcGFyYW1zLFxyXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICddO1xyXG4nfX19Cg==
Copyright © 2025 by WebAsOne LLC, All Rights Reserved