cmcts-c-agent-embedding 1.0.39 → 1.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/AugmentWebviewStateStore.xml +1 -1
- package/dist/components/Bot.d.ts.map +1 -1
- package/dist/components/Toast.d.ts +10 -0
- package/dist/components/Toast.d.ts.map +1 -0
- package/dist/components/bubbles/BotBubble.d.ts +1 -0
- package/dist/components/bubbles/BotBubble.d.ts.map +1 -1
- package/dist/web.js +1 -1
- package/package.json +1 -1
- package/dist/BubbleChat.d.ts +0 -13
- package/dist/BubbleChat.d.ts.map +0 -1
- package/dist/FullPageChat.d.ts +0 -18
- package/dist/FullPageChat.d.ts.map +0 -1
- package/dist/components/ImageUploadButton.d.ts +0 -11
- package/dist/components/ImageUploadButton.d.ts.map +0 -1
- package/dist/components/RecordAudioButton.d.ts +0 -11
- package/dist/components/RecordAudioButton.d.ts.map +0 -1
- package/dist/components/SendButton.d.ts +0 -12
- package/dist/components/SendButton.d.ts.map +0 -1
- package/dist/index.js +0 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<component name="AugmentWebviewStateStore">
|
|
4
4
|
<option name="stateMap">
|
|
5
5
|
<map>
|
|
6
|
-
<entry key="CHAT_STATE" value="eyJjdXJyZW50Q29udmVyc2F0aW9uSWQiOiI1YmFmMTA5Yi0yNzNlLTQ0MWEtYjFkOC05ZTlkN2MzMmE0MmIiLCJjb252ZXJzYXRpb25zIjp7IjViYWYxMDliLTI3M2UtNDQxYS1iMWQ4LTllOWQ3YzMyYTQyYiI6eyJpZCI6IjViYWYxMDliLTI3M2UtNDQxYS1iMWQ4LTllOWQ3YzMyYTQyYiIsImNyZWF0ZWRBdElzbyI6IjIwMjUtMDUtMjlUMDI6MTI6MTIuNjMxWiIsImxhc3RJbnRlcmFjdGVkQXRJc28iOiIyMDI1LTA1LTI5VDAyOjEyOjE2LjY0NVoiLCJjaGF0SGlzdG9yeSI6W3sic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiI0ZGNjNjM3NS02MjVhLTRhMmItYmJiNi1hMzJlMTljMGEzNmUiLCJyZXF1ZXN0X21lc3NhZ2UiOiJhcmUgeW91IG9rPyIsInJpY2hfdGV4dF9qc29uX3JlcHIiOnsidHlwZSI6ImRvYyIsImNvbnRlbnQiOlt7InR5cGUiOiJwYXJhZ3JhcGgiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJhcmUgeW91IG9rPyJ9XX1dfSwibWVudGlvbmVkX2l0ZW1zIjpbXSwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiWWVzLCBJJ20gZG9pbmcgd2VsbCEgSSdtIHJlYWR5IHRvIGhlbHAgeW91IHdpdGggYW55IHF1ZXN0aW9ucyBvciB0YXNrcyByZWxhdGVkIHRvIHlvdXIgY29kZWJhc2UuIFRoZSBwcm9qZWN0IGFwcGVhcnMgdG8gYmUgYSBjaGF0IGVtYmVkZGluZyBsaWJyYXJ5IGZvciBpbnRlZ3JhdGluZyBhIGNoYXRib3QgaW50byB3ZWJzaXRlcywgd2l0aCBib3RoIHZhbmlsbGEgSmF2YVNjcmlwdCBhbmQgUmVhY3QgY29tcG9uZW50cy4gV2hhdCB3b3VsZCB5b3UgbGlrZSB0byB3b3JrIG9uIHRvZGF5P1xuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiJwYWNrYWdlLmpzb246MC03NDhcbnBhY2thZ2UuanNvbjo3NDgtMTQyMlxuUkVBRE1FLm1kOjAtNzk2XG5yb2xsdXAuY29uZmlnLmpzOjAtNzAzXG5yb2xsdXAuY29uZmlnLmpzOjcwMy0xNjIxXG5SRUFETUUubWQ6MC00MzRcblJFQURNRS5tZDo0MzQtMTEyNFxuUkVBRE1FLm1kOjExMjQtMTk1M1xuUkVBRE1FLm1kOjE5NTMtMjgyNlxuUkVBRE1FLm1kOjQxMjAtNDkzNVxuUkVBRE1FLm1kOjY0OTgtNzIwMVxuUkVBRE1FLm1kOjcyMDEtNzg3N1xuUkVBRE1FLm1kOjc4NzctODQ4NVxuUkVBRE1FLm1kOjg0ODUtOTE4MVxuUkVBRE1FLm1kOjkxODEtOTkzOVxuUkVBRE1FLm1kOjk5MzktMTA1NThcblJFQURNRS5tZDoxMDU1OC0xMTI3NlxuUkVBRE1FLm1kOjExMjc2LTExODczXG5wYWNrYWdlLmpzb246MC02MDFcbi5odXNreS9wcmUtY29tbWl0OjAtMzIwXG5yb2xsdXAuY29uZmlnLmpzOjMxOS05MjJcbnNyYy9yZWdpc3Rlci50c3g6MC00NDBcbnB1YmxpYy9pbmRleC5odG1sOjQ1NS0xMTM4XG5wdWJsaWMvaW5kZXguaHRtbDoxMTM4LTE5NzJcbnNyYy9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnkudHM6MjgxMS0zNTkxXG5zcmMvY29tcG9uZW50cy9idWJibGVzL0JvdEJ1YmJsZS50c3g6MC03NTNcbnNyYy93aW5kb3cudHM6NDYwLTEyMTlcbnNlcnZlci5qczo2MTQyLTY5MzRcbnNyYy9jb21wb25lbnRzL2J1YmJsZXMvQWdlbnRSZWFzb25pbmdCdWJibGUudHN4OjAtNTE4XG5zcmMvY29tcG9uZW50cy9idWJibGVzL0xlYWRDYXB0dXJlQnViYmxlLnRzeDowLTQyNVxuc3JjL2NvbnN0YW50cy50czowLTQyMlxuc3JjL2NvbXBvbmVudHMvQm90LnRzeDowLTc4MVxuc3JjL0Z1bGxQYWdlQ2hhdC50c3g6NDA2LTkxMFxuc3JjL3V0aWxzL2VtYmVkU2NyaXB0LmpzOjAtNDg5XG5zcmMvd2ViLnRzOjAtMjMzXG5zcmMvQnViYmxlQ2hhdC50c3g6Mzk1LTEyNDFcbi5lbnYuZXhhbXBsZTowLTU2NVxuLmVudi5leGFtcGxlOjU2NS0xMjYyXG5zcmMvY29tcG9uZW50cy9idWJibGVzL0d1ZXN0QnViYmxlLnRzeDowLTU4MCJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJ0ZXh0X25vZGUiOnsiY29udGVudCI6ImFyZSB5b3Ugb2s/In19LHsiaWQiOjEsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2V9fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMjlUMDI6MTI6MTYuNjQ1WiIsInJlc3BvbnNlX3RleHQiOiJZZXMsIEknbSBkb2luZyB3ZWxsISBJJ20gcmVhZHkgdG8gaGVscCB5b3Ugd2l0aCBhbnkgcXVlc3Rpb25zIG9yIHRhc2tzIHJlbGF0ZWQgdG8geW91ciBjb2RlYmFzZS4gVGhlIHByb2plY3QgYXBwZWFycyB0byBiZSBhIGNoYXQgZW1iZWRkaW5nIGxpYnJhcnkgZm9yIGludGVncmF0aW5nIGEgY2hhdGJvdCBpbnRvIHdlYnNpdGVzLCB3aXRoIGJvdGggdmFuaWxsYSBKYXZhU2NyaXB0IGFuZCBSZWFjdCBjb21wb25lbnRzLiBXaGF0IHdvdWxkIHlvdSBsaWtlIHRvIHdvcmsgb24gdG9kYXk/XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOlt7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI3NDgiLCJibG9iX25hbWUiOiJhMDM3YWIxZTY1ZWYyODgwMWZlZWVlNzYxYTExMjU1MDc4YWVjNThiN2E1YWNhNjkxMTQxMTRmMzZjYzc3YWZkIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicGFja2FnZS5qc29uIn19LHsiY2hhcl9zdGFydCI6Ijc0OCIsImNoYXJfZW5kIjoiMTQyMiIsImJsb2JfbmFtZSI6ImEwMzdhYjFlNjVlZjI4ODAxZmVlZWU3NjFhMTEyNTUwNzhhZWM1OGI3YTVhY2E2OTExNDExNGYzNmNjNzdhZmQiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJwYWNrYWdlLmpzb24ifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNzk2IiwiYmxvYl9uYW1lIjoiZjRhNjBmZmQwMDE4ZDUwZDM3YTg4MDYyZjUxNjM0MTEwYzQzMjVmYThiODA5NGQyNjFhZGJhMGRkNzVhYjlkMCIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6IlJFQURNRS5tZCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI3MDMiLCJibG9iX25hbWUiOiI4Y2ZiNDQ1OTkzOWU1OWZhOTVmOTA4ZWQzNjAyNWI5NTM5YjVhZDVhOTM1YThmZTIyMmYxNzY1ZDk0YTRjZDJhIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicm9sbHVwLmNvbmZpZy5qcyJ9fSx7ImNoYXJfc3RhcnQiOiI3MDMiLCJjaGFyX2VuZCI6IjE2MjEiLCJibG9iX25hbWUiOiI4Y2ZiNDQ1OTkzOWU1OWZhOTVmOTA4ZWQzNjAyNWI5NTM5YjVhZDVhOTM1YThmZTIyMmYxNzY1ZDk0YTRjZDJhIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicm9sbHVwLmNvbmZpZy5qcyJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI0MzQiLCJibG9iX25hbWUiOiIzZTVhMGMzMTBjOGUxMTA1NzQ3ZjIwYjQ2NjVhYTQ0ZjJkMGRiYzRmNzI1MmM5NTNiM2JmNzA2MmNjYzU0NmU2IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoiUkVBRE1FLm1kIn19LHsiY2hhcl9zdGFydCI6IjQzNCIsImNoYXJfZW5kIjoiMTEyNCIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiMTEyNCIsImNoYXJfZW5kIjoiMTk1MyIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiMTk1MyIsImNoYXJfZW5kIjoiMjgyNiIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiNDEyMCIsImNoYXJfZW5kIjoiNDkzNSIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiNjQ5OCIsImNoYXJfZW5kIjoiNzIwMSIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiNzIwMSIsImNoYXJfZW5kIjoiNzg3NyIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiNzg3NyIsImNoYXJfZW5kIjoiODQ4NSIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiODQ4NSIsImNoYXJfZW5kIjoiOTE4MSIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiOTE4MSIsImNoYXJfZW5kIjoiOTkzOSIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiOTkzOSIsImNoYXJfZW5kIjoiMTA1NTgiLCJibG9iX25hbWUiOiIzZTVhMGMzMTBjOGUxMTA1NzQ3ZjIwYjQ2NjVhYTQ0ZjJkMGRiYzRmNzI1MmM5NTNiM2JmNzA2MmNjYzU0NmU2IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoiUkVBRE1FLm1kIn19LHsiY2hhcl9zdGFydCI6IjEwNTU4IiwiY2hhcl9lbmQiOiIxMTI3NiIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiMTEyNzYiLCJjaGFyX2VuZCI6IjExODczIiwiYmxvYl9uYW1lIjoiM2U1YTBjMzEwYzhlMTEwNTc0N2YyMGI0NjY1YWE0NGYyZDBkYmM0ZjcyNTJjOTUzYjNiZjcwNjJjY2M1NDZlNiIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6IlJFQURNRS5tZCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI2MDEiLCJibG9iX25hbWUiOiJlZGUxMjU0NTJlNWE1ODRhZTI0YTZjZDI2MDk5ODJmYzQwNjRkMmJlMTczN2YzMmYxZGYzMzFhMDgzYjg2NzQzIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicGFja2FnZS5qc29uIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjMyMCIsImJsb2JfbmFtZSI6IjA4ZjVlZjAxOTY4NTA1YTUxZjQwNjU0YWE2ZDBiNzhjYWVkMmNjMDg0YzNlYjk5MzFiNjQ5YjYyMzRkZWU4YTUiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiIuaHVza3kvcHJlLWNvbW1pdCJ9fSx7ImNoYXJfc3RhcnQiOiIzMTkiLCJjaGFyX2VuZCI6IjkyMiIsImJsb2JfbmFtZSI6IjY3NTMyZTQyMmJhZDMwNWJiYjY5OTZlYTYxODI2ZTY4Yjc2ODRkMzJlY2NmMmJhMDM1MGFhMmNiODgyZGM2MmMiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJyb2xsdXAuY29uZmlnLmpzIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjQ0MCIsImJsb2JfbmFtZSI6ImIxNTIyYzM5YTMwZDYzZTAzOGZiY2QyYTE0ZDRjNDAzYjk4MTNjZGExYTQ1OTYxMzRjMWU1NTYyNWExMWUzNWMiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvcmVnaXN0ZXIudHN4In19LHsiY2hhcl9zdGFydCI6IjQ1NSIsImNoYXJfZW5kIjoiMTEzOCIsImJsb2JfbmFtZSI6IjRjNmEyYWZiZjIzYTQ1YjM1ZGU4M2FjNWVhMGZkZWU1NzE2OWYzZTE0OTUxY2IxMGQ2ZjM4Y2VmNzE2Nzg3ZjEiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJwdWJsaWMvaW5kZXguaHRtbCJ9fSx7ImNoYXJfc3RhcnQiOiIxMTM4IiwiY2hhcl9lbmQiOiIxOTcyIiwiYmxvYl9uYW1lIjoiNGM2YTJhZmJmMjNhNDViMzVkZTgzYWM1ZWEwZmRlZTU3MTY5ZjNlMTQ5NTFjYjEwZDZmMzhjZWY3MTY3ODdmMSIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InB1YmxpYy9pbmRleC5odG1sIn19LHsiY2hhcl9zdGFydCI6IjI4MTEiLCJjaGFyX2VuZCI6IjM1OTEiLCJibG9iX25hbWUiOiI5ZTM2NWUyZWQ5N2U5OTAzYTdjZGI5YTIwZDg4MmYyMjYzYTU2ZGMwYmYyMzU1NTBkMWI2YTBhMjgwYjIxOWY3IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL3F1ZXJpZXMvc2VuZE1lc3NhZ2VRdWVyeS50cyJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI3NTMiLCJibG9iX25hbWUiOiI4OTQxNjIzZTIyNmE1MmQ1N2MyZTU1M2FhMmU4YzA3NmVmYTI4ZTMzMTllMjFmZTUwZjk4ZTE3Zjk3MDE5NzA3IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL2NvbXBvbmVudHMvYnViYmxlcy9Cb3RCdWJibGUudHN4In19LHsiY2hhcl9zdGFydCI6IjQ2MCIsImNoYXJfZW5kIjoiMTIxOSIsImJsb2JfbmFtZSI6IjI3NDk3ODc2MDgxOTYxMmVjYmYyMGRiZWI4MWI0MWJmZWI1MTM0YTY2MDNhM2FjOGVkMGNhZDgwODg1MGJhNzYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvd2luZG93LnRzIn19LHsiY2hhcl9zdGFydCI6IjYxNDIiLCJjaGFyX2VuZCI6IjY5MzQiLCJibG9iX25hbWUiOiI2ZTIzNDUwYmM3NGU0MTg5MTNmYWY0MDY1Yzc5OGZhZDAzMGY5ZWVhNTY0ZmI1MDI5MWFhYTkyOTRhMGZiZTZjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic2VydmVyLmpzIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjUxOCIsImJsb2JfbmFtZSI6IjljYzBiZmU4Mjg5YjQwZjk3OWYzN2RhZDZjYmI4MWU1MjA1NTkxMzliZTU2NzYyMDY3MjMyNTRiYzQzMjE1MTMiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvY29tcG9uZW50cy9idWJibGVzL0FnZW50UmVhc29uaW5nQnViYmxlLnRzeCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI0MjUiLCJibG9iX25hbWUiOiIwODBhMDFiMzgyNTIxZGIyMDUyNjA3MzczZTMyZmJjZTljOTA5NGQ2ZDE0OWE4YjY2ZjZlMjVjOGIyOTZmZWI3IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL2NvbXBvbmVudHMvYnViYmxlcy9MZWFkQ2FwdHVyZUJ1YmJsZS50c3gifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNDIyIiwiYmxvYl9uYW1lIjoiNzVkNGUyM2EzNmE2MTM0MzAzNzY0M2U3NDVhYmYzY2Q4OTBmNmY5MjlkNGVjNzg5OTZkNDkxMGRjZmE4ZmYyOSIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9jb25zdGFudHMudHMifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNzgxIiwiYmxvYl9uYW1lIjoiMjkwZjFhNWQ1ZDhmZDU0NDMzNzQwMzExYWZkOGEzMDIyMjYxOTYwNjkyYjc1YWJhMzE2YzgyMWU3NTUwZGEyNCIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9jb21wb25lbnRzL0JvdC50c3gifX0seyJjaGFyX3N0YXJ0IjoiNDA2IiwiY2hhcl9lbmQiOiI5MTAiLCJibG9iX25hbWUiOiI1Yzg4NjdhMWE5NzNmMzA5YmFkYTVhOTBjZmYyNWU2ZjllMGQyOTg4NTMxNjQwNGFmMjJiOWIzYTViZjNmZmJjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL0Z1bGxQYWdlQ2hhdC50c3gifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNDg5IiwiYmxvYl9uYW1lIjoiMTdkMzEwZjFlMzNmZmQyNGU4ZmI0NWRmNDAyZDI4NjZjNDVjMjZmMmRjZWM2Y2MyYjllOGNhNjA3ZmVlMDkyNyIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy91dGlscy9lbWJlZFNjcmlwdC5qcyJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiIyMzMiLCJibG9iX25hbWUiOiJiODg3OTViOTk4YmI4YjllZjEzMjJjYjE3NGVhMDZhYmRlMDVjNDYwNmIyZTM0NmFmYzRjNWU2ZjI0ODU3OTQwIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL3dlYi50cyJ9fSx7ImNoYXJfc3RhcnQiOiIzOTUiLCJjaGFyX2VuZCI6IjEyNDEiLCJibG9iX25hbWUiOiIzM2E2NWVkMzNmY2MyMThiYWQwZjM3ZDFjMWQ3NTkwYzE2YzI5NTQzNmEwMDU1MmExMWIyNDhlMDVlZWIwNDFjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL0J1YmJsZUNoYXQudHN4In19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjU2NSIsImJsb2JfbmFtZSI6IjA0ODRhYzdhZjU5ZmE1ZTNhOWM1YmYwYjgxYzlhYWMwN2UyMzBkMGU2YjAwMzM3N2E1ZTVlZTI4M2Q0NDkwYTQiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiIuZW52LmV4YW1wbGUifX0seyJjaGFyX3N0YXJ0IjoiNTY1IiwiY2hhcl9lbmQiOiIxMjYyIiwiYmxvYl9uYW1lIjoiMDQ4NGFjN2FmNTlmYTVlM2E5YzViZjBiODFjOWFhYzA3ZTIzMGQwZTZiMDAzMzc3YTVlNWVlMjgzZDQ0OTBhNCIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6Ii5lbnYuZXhhbXBsZSJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI1ODAiLCJibG9iX25hbWUiOiJhNDJmYzIwNWFlMzI4Y2Y3MWVkYzEzZGVhNWRhYTA3NTFjM2VhMjFhOGIzY2QyNTkwY2Q2MGU2Mzc3YWY3OWQ0IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL2NvbXBvbmVudHMvYnViYmxlcy9HdWVzdEJ1YmJsZS50c3gifX1dfV0sImZlZWRiYWNrU3RhdGVzIjp7InRlbXAtZmUtMWNiMTllMzAtMjkzZC00MWE5LWJlNTctYTVhZDgwNjQxMzMwIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifX0sInRvb2xVc2VTdGF0ZXMiOnt9LCJkcmFmdEV4Y2hhbmdlIjp7InJlcXVlc3RfbWVzc2FnZSI6IiIsInJpY2hfdGV4dF9qc29uX3JlcHIiOnsidHlwZSI6ImRvYyIsImNvbnRlbnQiOlt7InR5cGUiOiJwYXJhZ3JhcGgifV19LCJzdGF0dXMiOiJkcmFmdCJ9LCJyZXF1ZXN0SWRzIjpbXSwiaXNQaW5uZWQiOmZhbHNlLCJpc1NoYXJlYWJsZSI6dHJ1ZSwiZXh0cmFEYXRhIjp7Imhhc0RpcnR5RWRpdHMiOmZhbHNlfSwicGVyc29uYVR5cGUiOjAsInJvb3RUYXNrVXVpZCI6Ijg0NjdlMmNjLTA4Y2QtNGUwZS1iZmZlLTlkNGJkMTI0MjQ5OCJ9fSwiYWdlbnRFeGVjdXRpb25Nb2RlIjoibWFudWFsIiwiaXNQYW5lbENvbGxhcHNlZCI6dHJ1ZSwiZGlzcGxheWVkQW5ub3VuY2VtZW50cyI6W10sInNvcnRDb252ZXJzYXRpb25zQnkiOiJsYXN0TWVzc2FnZVRpbWVzdGFtcCJ9" />
|
|
6
|
+
<entry key="CHAT_STATE" value="eyJjdXJyZW50Q29udmVyc2F0aW9uSWQiOiJmOGY4NjgwYy04MTY2LTRiMWItYjJhOC1hMzgyMDk2OTM4Y2EiLCJjb252ZXJzYXRpb25zIjp7IjViYWYxMDliLTI3M2UtNDQxYS1iMWQ4LTllOWQ3YzMyYTQyYiI6eyJpZCI6IjViYWYxMDliLTI3M2UtNDQxYS1iMWQ4LTllOWQ3YzMyYTQyYiIsImNyZWF0ZWRBdElzbyI6IjIwMjUtMDUtMjlUMDI6MTI6MTIuNjMxWiIsImxhc3RJbnRlcmFjdGVkQXRJc28iOiIyMDI1LTA1LTMwVDAzOjQyOjEyLjE3NFoiLCJjaGF0SGlzdG9yeSI6W3sic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiI0MWI5OWQxOS0wOGMxLTRkZTYtODYyNC0zZjM2ZTczMWY0MjUiLCJyZXF1ZXN0X21lc3NhZ2UiOiJhcmUgeW91IG9rPyIsInJpY2hfdGV4dF9qc29uX3JlcHIiOnsidHlwZSI6ImRvYyIsImNvbnRlbnQiOlt7InR5cGUiOiJwYXJhZ3JhcGgiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJhcmUgeW91IG9rPyJ9XX1dfSwibWVudGlvbmVkX2l0ZW1zIjpbXSwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiWWVzLCBJJ20gZG9pbmcgd2VsbCEgSSdtIHJlYWR5IHRvIGhlbHAgeW91IHdpdGggYW55IHF1ZXN0aW9ucyBvciB0YXNrcyByZWxhdGVkIHRvIHlvdXIgY29kZWJhc2UuIFRoZSBwcm9qZWN0IGFwcGVhcnMgdG8gYmUgYSBjaGF0IGVtYmVkZGluZyBsaWJyYXJ5IGZvciBpbnRlZ3JhdGluZyBhIGNoYXRib3QgaW50byB3ZWJzaXRlcywgd2l0aCBib3RoIHZhbmlsbGEgSmF2YVNjcmlwdCBhbmQgUmVhY3QgY29tcG9uZW50cy4gV2hhdCB3b3VsZCB5b3UgbGlrZSB0byB3b3JrIG9uIHRvZGF5P1xuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiJwYWNrYWdlLmpzb246MC03NDhcbnBhY2thZ2UuanNvbjo3NDgtMTQyMlxuUkVBRE1FLm1kOjAtNzk2XG5yb2xsdXAuY29uZmlnLmpzOjAtNzAzXG5yb2xsdXAuY29uZmlnLmpzOjcwMy0xNjIxXG5SRUFETUUubWQ6MC00MzRcblJFQURNRS5tZDo0MzQtMTEyNFxuUkVBRE1FLm1kOjExMjQtMTk1M1xuUkVBRE1FLm1kOjE5NTMtMjgyNlxuUkVBRE1FLm1kOjQxMjAtNDkzNVxuUkVBRE1FLm1kOjY0OTgtNzIwMVxuUkVBRE1FLm1kOjcyMDEtNzg3N1xuUkVBRE1FLm1kOjc4NzctODQ4NVxuUkVBRE1FLm1kOjg0ODUtOTE4MVxuUkVBRE1FLm1kOjkxODEtOTkzOVxuUkVBRE1FLm1kOjk5MzktMTA1NThcblJFQURNRS5tZDoxMDU1OC0xMTI3NlxuUkVBRE1FLm1kOjExMjc2LTExODczXG5wYWNrYWdlLmpzb246MC02MDFcbi5odXNreS9wcmUtY29tbWl0OjAtMzIwXG5yb2xsdXAuY29uZmlnLmpzOjMxOS05MjJcbnNyYy9yZWdpc3Rlci50c3g6MC00NDBcbnB1YmxpYy9pbmRleC5odG1sOjQ1NS0xMTM4XG5wdWJsaWMvaW5kZXguaHRtbDoxMTM4LTE5NzJcbnNyYy9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnkudHM6MjgxMS0zNTkxXG5zcmMvY29tcG9uZW50cy9idWJibGVzL0JvdEJ1YmJsZS50c3g6MC03NTNcbnNyYy93aW5kb3cudHM6NDYwLTEyMTlcbnNlcnZlci5qczo2MTQyLTY5MzRcbnNyYy9jb21wb25lbnRzL2J1YmJsZXMvQWdlbnRSZWFzb25pbmdCdWJibGUudHN4OjAtNTE4XG5zcmMvY29tcG9uZW50cy9idWJibGVzL0xlYWRDYXB0dXJlQnViYmxlLnRzeDowLTQyNVxuc3JjL2NvbnN0YW50cy50czowLTQyMlxuc3JjL2NvbXBvbmVudHMvQm90LnRzeDowLTc4MVxuc3JjL0Z1bGxQYWdlQ2hhdC50c3g6NDA2LTkxMFxuc3JjL3V0aWxzL2VtYmVkU2NyaXB0LmpzOjAtNDg5XG5zcmMvd2ViLnRzOjAtMjMzXG5zcmMvQnViYmxlQ2hhdC50c3g6Mzk1LTEyNDFcbi5lbnYuZXhhbXBsZTowLTU2NVxuLmVudi5leGFtcGxlOjU2NS0xMjYyXG5zcmMvY29tcG9uZW50cy9idWJibGVzL0d1ZXN0QnViYmxlLnRzeDowLTU4MCJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJ0ZXh0X25vZGUiOnsiY29udGVudCI6ImFyZSB5b3Ugb2s/In19LHsiaWQiOjEsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2V9fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMjlUMDI6MjU6MTQuMzQxWiIsInJlc3BvbnNlX3RleHQiOiJZZXMsIEknbSBkb2luZyB3ZWxsISBJJ20gcmVhZHkgdG8gaGVscCB5b3Ugd2l0aCBhbnkgcXVlc3Rpb25zIG9yIHRhc2tzIHJlbGF0ZWQgdG8geW91ciBjb2RlYmFzZS4gVGhlIHByb2plY3QgYXBwZWFycyB0byBiZSBhIGNoYXQgZW1iZWRkaW5nIGxpYnJhcnkgZm9yIGludGVncmF0aW5nIGEgY2hhdGJvdCBpbnRvIHdlYnNpdGVzLCB3aXRoIGJvdGggdmFuaWxsYSBKYXZhU2NyaXB0IGFuZCBSZWFjdCBjb21wb25lbnRzLiBXaGF0IHdvdWxkIHlvdSBsaWtlIHRvIHdvcmsgb24gdG9kYXk/XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOlt7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI3NDgiLCJibG9iX25hbWUiOiI5ZDZjYmM2NjNjYzNlODFhYzA2MDVhYTA5NzA5MWY0MWYyNzk3YjhmYzgwZTM0OGM0MzFlMWYxMGZiYTA0N2FkIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicGFja2FnZS5qc29uIn19LHsiY2hhcl9zdGFydCI6Ijc0OCIsImNoYXJfZW5kIjoiMTQyMiIsImJsb2JfbmFtZSI6IjlkNmNiYzY2M2NjM2U4MWFjMDYwNWFhMDk3MDkxZjQxZjI3OTdiOGZjODBlMzQ4YzQzMWUxZjEwZmJhMDQ3YWQiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJwYWNrYWdlLmpzb24ifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNzk2IiwiYmxvYl9uYW1lIjoiZjRhNjBmZmQwMDE4ZDUwZDM3YTg4MDYyZjUxNjM0MTEwYzQzMjVmYThiODA5NGQyNjFhZGJhMGRkNzVhYjlkMCIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6IlJFQURNRS5tZCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI3MDMiLCJibG9iX25hbWUiOiI4Y2ZiNDQ1OTkzOWU1OWZhOTVmOTA4ZWQzNjAyNWI5NTM5YjVhZDVhOTM1YThmZTIyMmYxNzY1ZDk0YTRjZDJhIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicm9sbHVwLmNvbmZpZy5qcyJ9fSx7ImNoYXJfc3RhcnQiOiI3MDMiLCJjaGFyX2VuZCI6IjE2MjEiLCJibG9iX25hbWUiOiI4Y2ZiNDQ1OTkzOWU1OWZhOTVmOTA4ZWQzNjAyNWI5NTM5YjVhZDVhOTM1YThmZTIyMmYxNzY1ZDk0YTRjZDJhIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicm9sbHVwLmNvbmZpZy5qcyJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI0MzQiLCJibG9iX25hbWUiOiIzZTVhMGMzMTBjOGUxMTA1NzQ3ZjIwYjQ2NjVhYTQ0ZjJkMGRiYzRmNzI1MmM5NTNiM2JmNzA2MmNjYzU0NmU2IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoiUkVBRE1FLm1kIn19LHsiY2hhcl9zdGFydCI6IjQzNCIsImNoYXJfZW5kIjoiMTEyNCIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiMTEyNCIsImNoYXJfZW5kIjoiMTk1MyIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiMTk1MyIsImNoYXJfZW5kIjoiMjgyNiIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiNDEyMCIsImNoYXJfZW5kIjoiNDkzNSIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiNjQ5OCIsImNoYXJfZW5kIjoiNzIwMSIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiNzIwMSIsImNoYXJfZW5kIjoiNzg3NyIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiNzg3NyIsImNoYXJfZW5kIjoiODQ4NSIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiODQ4NSIsImNoYXJfZW5kIjoiOTE4MSIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiOTE4MSIsImNoYXJfZW5kIjoiOTkzOSIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiOTkzOSIsImNoYXJfZW5kIjoiMTA1NTgiLCJibG9iX25hbWUiOiIzZTVhMGMzMTBjOGUxMTA1NzQ3ZjIwYjQ2NjVhYTQ0ZjJkMGRiYzRmNzI1MmM5NTNiM2JmNzA2MmNjYzU0NmU2IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoiUkVBRE1FLm1kIn19LHsiY2hhcl9zdGFydCI6IjEwNTU4IiwiY2hhcl9lbmQiOiIxMTI3NiIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiMTEyNzYiLCJjaGFyX2VuZCI6IjExODczIiwiYmxvYl9uYW1lIjoiM2U1YTBjMzEwYzhlMTEwNTc0N2YyMGI0NjY1YWE0NGYyZDBkYmM0ZjcyNTJjOTUzYjNiZjcwNjJjY2M1NDZlNiIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6IlJFQURNRS5tZCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI2MDEiLCJibG9iX25hbWUiOiJlZGUxMjU0NTJlNWE1ODRhZTI0YTZjZDI2MDk5ODJmYzQwNjRkMmJlMTczN2YzMmYxZGYzMzFhMDgzYjg2NzQzIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicGFja2FnZS5qc29uIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjMyMCIsImJsb2JfbmFtZSI6IjA4ZjVlZjAxOTY4NTA1YTUxZjQwNjU0YWE2ZDBiNzhjYWVkMmNjMDg0YzNlYjk5MzFiNjQ5YjYyMzRkZWU4YTUiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiIuaHVza3kvcHJlLWNvbW1pdCJ9fSx7ImNoYXJfc3RhcnQiOiIzMTkiLCJjaGFyX2VuZCI6IjkyMiIsImJsb2JfbmFtZSI6IjY3NTMyZTQyMmJhZDMwNWJiYjY5OTZlYTYxODI2ZTY4Yjc2ODRkMzJlY2NmMmJhMDM1MGFhMmNiODgyZGM2MmMiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJyb2xsdXAuY29uZmlnLmpzIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjQ0MCIsImJsb2JfbmFtZSI6ImIxNTIyYzM5YTMwZDYzZTAzOGZiY2QyYTE0ZDRjNDAzYjk4MTNjZGExYTQ1OTYxMzRjMWU1NTYyNWExMWUzNWMiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvcmVnaXN0ZXIudHN4In19LHsiY2hhcl9zdGFydCI6IjQ1NSIsImNoYXJfZW5kIjoiMTEzOCIsImJsb2JfbmFtZSI6IjRjNmEyYWZiZjIzYTQ1YjM1ZGU4M2FjNWVhMGZkZWU1NzE2OWYzZTE0OTUxY2IxMGQ2ZjM4Y2VmNzE2Nzg3ZjEiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJwdWJsaWMvaW5kZXguaHRtbCJ9fSx7ImNoYXJfc3RhcnQiOiIxMTM4IiwiY2hhcl9lbmQiOiIxOTcyIiwiYmxvYl9uYW1lIjoiNGM2YTJhZmJmMjNhNDViMzVkZTgzYWM1ZWEwZmRlZTU3MTY5ZjNlMTQ5NTFjYjEwZDZmMzhjZWY3MTY3ODdmMSIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InB1YmxpYy9pbmRleC5odG1sIn19LHsiY2hhcl9zdGFydCI6IjI4MTEiLCJjaGFyX2VuZCI6IjM1OTEiLCJibG9iX25hbWUiOiJiOTg2MzIyMzg1ZjVhMDNlYWI3MTMzZjBkMzdlZDk0OTgzZDFhMTk2YjQwMDRlNGY5NDcxZDc0ZjNlYWM2MjdjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL3F1ZXJpZXMvc2VuZE1lc3NhZ2VRdWVyeS50cyJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI3NTMiLCJibG9iX25hbWUiOiI4OTQxNjIzZTIyNmE1MmQ1N2MyZTU1M2FhMmU4YzA3NmVmYTI4ZTMzMTllMjFmZTUwZjk4ZTE3Zjk3MDE5NzA3IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL2NvbXBvbmVudHMvYnViYmxlcy9Cb3RCdWJibGUudHN4In19LHsiY2hhcl9zdGFydCI6IjQ2MCIsImNoYXJfZW5kIjoiMTIxOSIsImJsb2JfbmFtZSI6IjI3NDk3ODc2MDgxOTYxMmVjYmYyMGRiZWI4MWI0MWJmZWI1MTM0YTY2MDNhM2FjOGVkMGNhZDgwODg1MGJhNzYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvd2luZG93LnRzIn19LHsiY2hhcl9zdGFydCI6IjYxNDIiLCJjaGFyX2VuZCI6IjY5MzQiLCJibG9iX25hbWUiOiI2ZTIzNDUwYmM3NGU0MTg5MTNmYWY0MDY1Yzc5OGZhZDAzMGY5ZWVhNTY0ZmI1MDI5MWFhYTkyOTRhMGZiZTZjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic2VydmVyLmpzIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjUxOCIsImJsb2JfbmFtZSI6IjljYzBiZmU4Mjg5YjQwZjk3OWYzN2RhZDZjYmI4MWU1MjA1NTkxMzliZTU2NzYyMDY3MjMyNTRiYzQzMjE1MTMiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvY29tcG9uZW50cy9idWJibGVzL0FnZW50UmVhc29uaW5nQnViYmxlLnRzeCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI0MjUiLCJibG9iX25hbWUiOiIwODBhMDFiMzgyNTIxZGIyMDUyNjA3MzczZTMyZmJjZTljOTA5NGQ2ZDE0OWE4YjY2ZjZlMjVjOGIyOTZmZWI3IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL2NvbXBvbmVudHMvYnViYmxlcy9MZWFkQ2FwdHVyZUJ1YmJsZS50c3gifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNDIyIiwiYmxvYl9uYW1lIjoiNzVkNGUyM2EzNmE2MTM0MzAzNzY0M2U3NDVhYmYzY2Q4OTBmNmY5MjlkNGVjNzg5OTZkNDkxMGRjZmE4ZmYyOSIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9jb25zdGFudHMudHMifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNzgxIiwiYmxvYl9uYW1lIjoiMjkwZjFhNWQ1ZDhmZDU0NDMzNzQwMzExYWZkOGEzMDIyMjYxOTYwNjkyYjc1YWJhMzE2YzgyMWU3NTUwZGEyNCIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9jb21wb25lbnRzL0JvdC50c3gifX0seyJjaGFyX3N0YXJ0IjoiNDA2IiwiY2hhcl9lbmQiOiI5MTAiLCJibG9iX25hbWUiOiI1Yzg4NjdhMWE5NzNmMzA5YmFkYTVhOTBjZmYyNWU2ZjllMGQyOTg4NTMxNjQwNGFmMjJiOWIzYTViZjNmZmJjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL0Z1bGxQYWdlQ2hhdC50c3gifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNDg5IiwiYmxvYl9uYW1lIjoiMTdkMzEwZjFlMzNmZmQyNGU4ZmI0NWRmNDAyZDI4NjZjNDVjMjZmMmRjZWM2Y2MyYjllOGNhNjA3ZmVlMDkyNyIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy91dGlscy9lbWJlZFNjcmlwdC5qcyJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiIyMzMiLCJibG9iX25hbWUiOiJiODg3OTViOTk4YmI4YjllZjEzMjJjYjE3NGVhMDZhYmRlMDVjNDYwNmIyZTM0NmFmYzRjNWU2ZjI0ODU3OTQwIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL3dlYi50cyJ9fSx7ImNoYXJfc3RhcnQiOiIzOTUiLCJjaGFyX2VuZCI6IjEyNDEiLCJibG9iX25hbWUiOiIzM2E2NWVkMzNmY2MyMThiYWQwZjM3ZDFjMWQ3NTkwYzE2YzI5NTQzNmEwMDU1MmExMWIyNDhlMDVlZWIwNDFjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL0J1YmJsZUNoYXQudHN4In19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjU2NSIsImJsb2JfbmFtZSI6IjA0ODRhYzdhZjU5ZmE1ZTNhOWM1YmYwYjgxYzlhYWMwN2UyMzBkMGU2YjAwMzM3N2E1ZTVlZTI4M2Q0NDkwYTQiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiIuZW52LmV4YW1wbGUifX0seyJjaGFyX3N0YXJ0IjoiNTY1IiwiY2hhcl9lbmQiOiIxMjYyIiwiYmxvYl9uYW1lIjoiMDQ4NGFjN2FmNTlmYTVlM2E5YzViZjBiODFjOWFhYzA3ZTIzMGQwZTZiMDAzMzc3YTVlNWVlMjgzZDQ0OTBhNCIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6Ii5lbnYuZXhhbXBsZSJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI1ODAiLCJibG9iX25hbWUiOiJhNDJmYzIwNWFlMzI4Y2Y3MWVkYzEzZGVhNWRhYTA3NTFjM2VhMjFhOGIzY2QyNTkwY2Q2MGU2Mzc3YWY3OWQ0IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL2NvbXBvbmVudHMvYnViYmxlcy9HdWVzdEJ1YmJsZS50c3gifX1dfV0sImZlZWRiYWNrU3RhdGVzIjp7InRlbXAtZmUtMWNiMTllMzAtMjkzZC00MWE5LWJlNTctYTVhZDgwNjQxMzMwIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS0zMDJlYzU4Mi1iYTc0LTRlODEtODQ2Ny1mYjdmMjIzM2JkYjkiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9fSwidG9vbFVzZVN0YXRlcyI6e30sImRyYWZ0RXhjaGFuZ2UiOnsicmVxdWVzdF9tZXNzYWdlIjoiIiwicmljaF90ZXh0X2pzb25fcmVwciI6eyJ0eXBlIjoiZG9jIiwiY29udGVudCI6W3sidHlwZSI6InBhcmFncmFwaCJ9XX0sIm1lbnRpb25lZF9pdGVtcyI6W10sInN0YXR1cyI6ImRyYWZ0In0sInJlcXVlc3RJZHMiOltdLCJpc1Bpbm5lZCI6ZmFsc2UsImlzU2hhcmVhYmxlIjp0cnVlLCJleHRyYURhdGEiOnsiaGFzRGlydHlFZGl0cyI6ZmFsc2V9LCJwZXJzb25hVHlwZSI6MCwicm9vdFRhc2tVdWlkIjoiODQ2N2UyY2MtMDhjZC00ZTBlLWJmZmUtOWQ0YmQxMjQyNDk4IiwiZHJhZnRBY3RpdmVDb250ZXh0SWRzIjpbIkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29uc3RhbnRzLnRzOkwyLTE3IiwiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb25zdGFudHMudHMiLCJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3hmYWxzZWZhbHNlIiwiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW5mYWxzZWZhbHNlIiwidXNlckd1aWRlbGluZXMiXX0sImRiZDFjOTMzLWU5MjQtNGQwOS04NmZhLWY5M2EzMGNiNmFjMSI6eyJpZCI6ImRiZDFjOTMzLWU5MjQtNGQwOS04NmZhLWY5M2EzMGNiNmFjMSIsImNyZWF0ZWRBdElzbyI6IjIwMjUtMDUtMzBUMDM6NDk6MjEuOTU5WiIsImxhc3RJbnRlcmFjdGVkQXRJc28iOiIyMDI1LTA1LTMwVDAzOjQ5OjMyLjA5NloiLCJjaGF0SGlzdG9yeSI6W3sic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiI3MjM0NmFjZC01ZmMyLTQ0OTItOTdkMC0wYTllODEzODE2M2EiLCJyZXF1ZXN0X21lc3NhZ2UiOiJyZWZhY3RvciIsInJpY2hfdGV4dF9qc29uX3JlcHIiOnsidHlwZSI6ImRvYyIsImNvbnRlbnQiOlt7InR5cGUiOiJwYXJhZ3JhcGgiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJyZWZhY3RvciJ9XX1dfSwibWVudGlvbmVkX2l0ZW1zIjpbXSwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiSSdsbCByZWZhY3RvciB0aGUgYGRlZmF1bHRCb3RQcm9wc2Agb2JqZWN0IHRvIGltcHJvdmUgaXRzIG9yZ2FuaXphdGlvbiBhbmQgcmVhZGFiaWxpdHk6XG5cbjxhdWdtZW50X2NvZGVfc25pcHBldCBwYXRoPVwic3JjL2NvbnN0YW50cy50c1wiIG1vZGU9XCJFRElUXCI+XG5gYGB0eXBlc2NyaXB0XG5leHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgLy8gQ29yZSBjb25maWd1cmF0aW9uXG4gIGNoYXRmbG93aWQ6ICcnLFxuICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4gIFxuICAvLyBVSSBjdXN0b21pemF0aW9uXG4gIHRoZW1lOiB1bmRlZmluZWQsXG4gIFxuICAvLyBJbnRlZ3JhdGlvbiBvcHRpb25zXG4gIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gIHJvb21JZHM6IHt9LFxuICBcbiAgLy8gRnVuY3Rpb25hbGl0eSBzZXR0aW5nc1xuICBpc1VzZUZBUTogdW5kZWZpbmVkLFxuICBvYnNlcnZlcnNDb25maWc6IHVuZGVmaW5lZCxcbiAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXG4gIFxuICAvLyBDb250ZW50IGFuZCBkYXRhXG4gIGZpbGVQYXRoOiAnJyxcbiAgc3VnZ2VzdFF1ZXN0aW9uczogJycsXG4gIGV4dGVybmFsRGF0YTogJycsXG4gIFxuICAvLyBDYWxsYmFjayBoYW5kbGluZ1xuICBjYWxsQmFja0ljb246ICcnLFxuICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG59O1xuYGBgXG48L2F1Z21lbnRfY29kZV9zbmlwcGV0PlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiJzcmMvY29uc3RhbnRzLnRzOjAtNDIyXG5yb2xsdXAuY29uZmlnLmpzOjAtNzAzXG5yb2xsdXAuY29uZmlnLmpzOjcwMy0xNjIxXG5zcmMvY29tcG9uZW50cy9idWJibGVzL0JvdEJ1YmJsZS50c3g6MC03NTNcblJFQURNRS5tZDowLTc5Nlxuc3JjL3JlZ2lzdGVyLnRzeDowLTQ0MFxucm9sbHVwLmNvbmZpZy5qczozMTktOTIyXG5zcmMvQnViYmxlQ2hhdC50c3g6Mzk1LTEyNDFcbnNyYy9jb21wb25lbnRzL2lucHV0cy90ZXh0SW5wdXQvY29tcG9uZW50cy9UZXh0SW5wdXQudHN4OjAtNzM2XG5zcmMvY29tcG9uZW50cy9pbnB1dHMvdGV4dElucHV0L2NvbXBvbmVudHMvVGV4dElucHV0LnRzeDoyODA2LTM1NzlcbnNyYy9jb21wb25lbnRzL2lucHV0cy90ZXh0SW5wdXQvY29tcG9uZW50cy9UZXh0SW5wdXQudHN4OjM1NzktNDU1N1xuc3JjL2NvbXBvbmVudHMvQm90LnRzeDowLTc4MVxuc3JjL2NvbXBvbmVudHMvQm90LnRzeDo3ODEtMTUwOVxuc3JjL2NvbXBvbmVudHMvYnViYmxlcy9BZ2VudFJlYXNvbmluZ0J1YmJsZS50c3g6MC01MThcbnNyYy9jb21wb25lbnRzL2J1YmJsZXMvQWdlbnRSZWFzb25pbmdCdWJibGUudHN4OjUxOC05ODdcbnNyYy9jb21wb25lbnRzL2J1YmJsZXMvQWdlbnRSZWFzb25pbmdCdWJibGUudHN4OjE1NjctMjU1NVxucGFja2FnZS5qc29uOjAtNzQ4XG5wYWNrYWdlLmpzb246NzQ4LTE0MjJcbnNyYy9jb21wb25lbnRzL2J1YmJsZXMvTGVhZENhcHR1cmVCdWJibGUudHN4OjAtNDI1XG5zcmMvY29tcG9uZW50cy9idWJibGVzL0xlYWRDYXB0dXJlQnViYmxlLnRzeDoxNjcyLTI2NTlcbnBhY2thZ2UuanNvbjowLTYwMVxuc3JjL3V0aWxzL2VtYmVkU2NyaXB0LmpzOjAtNDg5XG5zcmMvd2luZG93LnRzOjAtNDYwXG5zcmMvd2luZG93LnRzOjQ2MC0xMjE5XG5zcmMvRnVsbFBhZ2VDaGF0LnRzeDo0MDYtOTEwXG5zcmMvcXVlcmllcy9zZW5kTWVzc2FnZVF1ZXJ5LnRzOjAtNjQxXG5zcmMvcXVlcmllcy9zZW5kTWVzc2FnZVF1ZXJ5LnRzOjE0MzMtMjEzN1xuc3JjL3F1ZXJpZXMvc2VuZE1lc3NhZ2VRdWVyeS50czoyODExLTM1OTFcbnNyYy9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnkudHM6MzU5MS00MzI5XG5zcmMvY29tcG9uZW50cy9idWJibGVzL0d1ZXN0QnViYmxlLnRzeDowLTU4MFxudGFpbHdpbmQuY29uZmlnLmNqczowLTgyMVxudGFpbHdpbmQuY29uZmlnLmNqczo4MjEtMTI5NFxuc3JjL3dlYi50czowLTIzM1xucHVibGljL2luZGV4Lmh0bWw6NDU1LTExMzhcbnNyYy9mZWF0dXJlcy9wb3B1cC9jb21wb25lbnRzL1BvcHVwLnRzeDowLTUwOVxuc3JjL2ZlYXR1cmVzL3BvcHVwL2NvbXBvbmVudHMvUG9wdXAudHN4OjM5NjUtNTAwMVxuUkVBRE1FLm1kOjAtNDM0XG5SRUFETUUubWQ6NDM0LTExMjRcbnNyYy9jb21wb25lbnRzL2F2YXRhcnMvQXZhdGFyLnRzeDoyMDUtOTIxXG5zcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL0Z1bGwudHN4OjMxOTgtNDE2NCJ9XSwic2Vlbl9zdGF0ZSI6InVuc2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjAsInR5cGUiOjAsInRleHRfbm9kZSI6eyJjb250ZW50IjoicmVmYWN0b3IifX0seyJpZCI6MSwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo0OTozMi4wOTZaIiwicmVzcG9uc2VfdGV4dCI6IkknbGwgcmVmYWN0b3IgdGhlIGBkZWZhdWx0Qm90UHJvcHNgIG9iamVjdCB0byBpbXByb3ZlIGl0cyBvcmdhbml6YXRpb24gYW5kIHJlYWRhYmlsaXR5OlxuXG5gYGBgdHlwZXNjcmlwdCBwYXRoPXNyYy9jb25zdGFudHMudHMgbW9kZT1FRElUXG5leHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgLy8gQ29yZSBjb25maWd1cmF0aW9uXG4gIGNoYXRmbG93aWQ6ICcnLFxuICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4gIFxuICAvLyBVSSBjdXN0b21pemF0aW9uXG4gIHRoZW1lOiB1bmRlZmluZWQsXG4gIFxuICAvLyBJbnRlZ3JhdGlvbiBvcHRpb25zXG4gIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gIHJvb21JZHM6IHt9LFxuICBcbiAgLy8gRnVuY3Rpb25hbGl0eSBzZXR0aW5nc1xuICBpc1VzZUZBUTogdW5kZWZpbmVkLFxuICBvYnNlcnZlcnNDb25maWc6IHVuZGVmaW5lZCxcbiAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXG4gIFxuICAvLyBDb250ZW50IGFuZCBkYXRhXG4gIGZpbGVQYXRoOiAnJyxcbiAgc3VnZ2VzdFF1ZXN0aW9uczogJycsXG4gIGV4dGVybmFsRGF0YTogJycsXG4gIFxuICAvLyBDYWxsYmFjayBoYW5kbGluZ1xuICBjYWxsQmFja0ljb246ICcnLFxuICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG59O1xuYGBgYFxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbeyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNDIyIiwiYmxvYl9uYW1lIjoiNzVkNGUyM2EzNmE2MTM0MzAzNzY0M2U3NDVhYmYzY2Q4OTBmNmY5MjlkNGVjNzg5OTZkNDkxMGRjZmE4ZmYyOSIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9jb25zdGFudHMudHMifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNzAzIiwiYmxvYl9uYW1lIjoiOGNmYjQ0NTk5MzllNTlmYTk1ZjkwOGVkMzYwMjViOTUzOWI1YWQ1YTkzNWE4ZmUyMjJmMTc2NWQ5NGE0Y2QyYSIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InJvbGx1cC5jb25maWcuanMifX0seyJjaGFyX3N0YXJ0IjoiNzAzIiwiY2hhcl9lbmQiOiIxNjIxIiwiYmxvYl9uYW1lIjoiOGNmYjQ0NTk5MzllNTlmYTk1ZjkwOGVkMzYwMjViOTUzOWI1YWQ1YTkzNWE4ZmUyMjJmMTc2NWQ5NGE0Y2QyYSIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InJvbGx1cC5jb25maWcuanMifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNzUzIiwiYmxvYl9uYW1lIjoiZDYzYjI1ODM0NTIxZmJmODY4MTBiZTAzYWNmMjE5ZTM4MTc3MTY2MjhlNzBjNDNkOTZkMDhkNzdkOGQ5YzcyMyIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9jb21wb25lbnRzL2J1YmJsZXMvQm90QnViYmxlLnRzeCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI3OTYiLCJibG9iX25hbWUiOiJmNGE2MGZmZDAwMThkNTBkMzdhODgwNjJmNTE2MzQxMTBjNDMyNWZhOGI4MDk0ZDI2MWFkYmEwZGQ3NWFiOWQwIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoiUkVBRE1FLm1kIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjQ0MCIsImJsb2JfbmFtZSI6ImIxNTIyYzM5YTMwZDYzZTAzOGZiY2QyYTE0ZDRjNDAzYjk4MTNjZGExYTQ1OTYxMzRjMWU1NTYyNWExMWUzNWMiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvcmVnaXN0ZXIudHN4In19LHsiY2hhcl9zdGFydCI6IjMxOSIsImNoYXJfZW5kIjoiOTIyIiwiYmxvYl9uYW1lIjoiNjc1MzJlNDIyYmFkMzA1YmJiNjk5NmVhNjE4MjZlNjhiNzY4NGQzMmVjY2YyYmEwMzUwYWEyY2I4ODJkYzYyYyIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InJvbGx1cC5jb25maWcuanMifX0seyJjaGFyX3N0YXJ0IjoiMzk1IiwiY2hhcl9lbmQiOiIxMjQxIiwiYmxvYl9uYW1lIjoiMzNhNjVlZDMzZmNjMjE4YmFkMGYzN2QxYzFkNzU5MGMxNmMyOTU0MzZhMDA1NTJhMTFiMjQ4ZTA1ZWViMDQxYyIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9CdWJibGVDaGF0LnRzeCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI3MzYiLCJibG9iX25hbWUiOiIwZDc2ZmRjNWJjYjE5MWY4NDg2ZGU2MmFlYTRlY2FmYTU3OGY5ZDFlNDk1MGY0N2Y4MDA3MTgzYjI0ZWZjZTg3IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL2NvbXBvbmVudHMvaW5wdXRzL3RleHRJbnB1dC9jb21wb25lbnRzL1RleHRJbnB1dC50c3gifX0seyJjaGFyX3N0YXJ0IjoiMjgwNiIsImNoYXJfZW5kIjoiMzU3OSIsImJsb2JfbmFtZSI6IjBkNzZmZGM1YmNiMTkxZjg0ODZkZTYyYWVhNGVjYWZhNTc4ZjlkMWU0OTUwZjQ3ZjgwMDcxODNiMjRlZmNlODciLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvY29tcG9uZW50cy9pbnB1dHMvdGV4dElucHV0L2NvbXBvbmVudHMvVGV4dElucHV0LnRzeCJ9fSx7ImNoYXJfc3RhcnQiOiIzNTc5IiwiY2hhcl9lbmQiOiI0NTU3IiwiYmxvYl9uYW1lIjoiMGQ3NmZkYzViY2IxOTFmODQ4NmRlNjJhZWE0ZWNhZmE1NzhmOWQxZTQ5NTBmNDdmODAwNzE4M2IyNGVmY2U4NyIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9jb21wb25lbnRzL2lucHV0cy90ZXh0SW5wdXQvY29tcG9uZW50cy9UZXh0SW5wdXQudHN4In19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6Ijc4MSIsImJsb2JfbmFtZSI6IjkzODYyYTM0MjUzZjU3MTNkNmYyMzVjOTkwY2IwN2Y1Y2JjZGYyY2Q5MDRlYzMyZGNjYTMxMGE5YTcyNjgxZGIiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvY29tcG9uZW50cy9Cb3QudHN4In19LHsiY2hhcl9zdGFydCI6Ijc4MSIsImNoYXJfZW5kIjoiMTUwOSIsImJsb2JfbmFtZSI6IjkzODYyYTM0MjUzZjU3MTNkNmYyMzVjOTkwY2IwN2Y1Y2JjZGYyY2Q5MDRlYzMyZGNjYTMxMGE5YTcyNjgxZGIiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvY29tcG9uZW50cy9Cb3QudHN4In19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjUxOCIsImJsb2JfbmFtZSI6IjljYzBiZmU4Mjg5YjQwZjk3OWYzN2RhZDZjYmI4MWU1MjA1NTkxMzliZTU2NzYyMDY3MjMyNTRiYzQzMjE1MTMiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvY29tcG9uZW50cy9idWJibGVzL0FnZW50UmVhc29uaW5nQnViYmxlLnRzeCJ9fSx7ImNoYXJfc3RhcnQiOiI1MTgiLCJjaGFyX2VuZCI6Ijk4NyIsImJsb2JfbmFtZSI6IjljYzBiZmU4Mjg5YjQwZjk3OWYzN2RhZDZjYmI4MWU1MjA1NTkxMzliZTU2NzYyMDY3MjMyNTRiYzQzMjE1MTMiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvY29tcG9uZW50cy9idWJibGVzL0FnZW50UmVhc29uaW5nQnViYmxlLnRzeCJ9fSx7ImNoYXJfc3RhcnQiOiIxNTY3IiwiY2hhcl9lbmQiOiIyNTU1IiwiYmxvYl9uYW1lIjoiOWNjMGJmZTgyODliNDBmOTc5ZjM3ZGFkNmNiYjgxZTUyMDU1OTEzOWJlNTY3NjIwNjcyMzI1NGJjNDMyMTUxMyIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9jb21wb25lbnRzL2J1YmJsZXMvQWdlbnRSZWFzb25pbmdCdWJibGUudHN4In19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6Ijc0OCIsImJsb2JfbmFtZSI6Ijc1YTU3MWE2NTZjYjc1ZmE4MDNhOWJmNzg3Y2QwOWI1YTNkZDk4OWQwNDQyNjFhNDBmMTNjMDIyZjYyNTIyNzAiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJwYWNrYWdlLmpzb24ifX0seyJjaGFyX3N0YXJ0IjoiNzQ4IiwiY2hhcl9lbmQiOiIxNDIyIiwiYmxvYl9uYW1lIjoiNzVhNTcxYTY1NmNiNzVmYTgwM2E5YmY3ODdjZDA5YjVhM2RkOTg5ZDA0NDI2MWE0MGYxM2MwMjJmNjI1MjI3MCIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InBhY2thZ2UuanNvbiJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI0MjUiLCJibG9iX25hbWUiOiIwODBhMDFiMzgyNTIxZGIyMDUyNjA3MzczZTMyZmJjZTljOTA5NGQ2ZDE0OWE4YjY2ZjZlMjVjOGIyOTZmZWI3IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL2NvbXBvbmVudHMvYnViYmxlcy9MZWFkQ2FwdHVyZUJ1YmJsZS50c3gifX0seyJjaGFyX3N0YXJ0IjoiMTY3MiIsImNoYXJfZW5kIjoiMjY1OSIsImJsb2JfbmFtZSI6IjA4MGEwMWIzODI1MjFkYjIwNTI2MDczNzNlMzJmYmNlOWM5MDk0ZDZkMTQ5YThiNjZmNmUyNWM4YjI5NmZlYjciLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvY29tcG9uZW50cy9idWJibGVzL0xlYWRDYXB0dXJlQnViYmxlLnRzeCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI2MDEiLCJibG9iX25hbWUiOiI4MTJjODU5Njg0NTY2MjYwZDQ4YWY0ZWY3YmQ1Mzk4MWVlYjMwZTE4YjczNGIyN2VmOWEyOTlkYzUxZTg3YWQyIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicGFja2FnZS5qc29uIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjQ4OSIsImJsb2JfbmFtZSI6IjE3ZDMxMGYxZTMzZmZkMjRlOGZiNDVkZjQwMmQyODY2YzQ1YzI2ZjJkY2VjNmNjMmI5ZThjYTYwN2ZlZTA5MjciLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvdXRpbHMvZW1iZWRTY3JpcHQuanMifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNDYwIiwiYmxvYl9uYW1lIjoiMjc0OTc4NzYwODE5NjEyZWNiZjIwZGJlYjgxYjQxYmZlYjUxMzRhNjYwM2EzYWM4ZWQwY2FkODA4ODUwYmE3NiIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy93aW5kb3cudHMifX0seyJjaGFyX3N0YXJ0IjoiNDYwIiwiY2hhcl9lbmQiOiIxMjE5IiwiYmxvYl9uYW1lIjoiMjc0OTc4NzYwODE5NjEyZWNiZjIwZGJlYjgxYjQxYmZlYjUxMzRhNjYwM2EzYWM4ZWQwY2FkODA4ODUwYmE3NiIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy93aW5kb3cudHMifX0seyJjaGFyX3N0YXJ0IjoiNDA2IiwiY2hhcl9lbmQiOiI5MTAiLCJibG9iX25hbWUiOiI1Yzg4NjdhMWE5NzNmMzA5YmFkYTVhOTBjZmYyNWU2ZjllMGQyOTg4NTMxNjQwNGFmMjJiOWIzYTViZjNmZmJjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL0Z1bGxQYWdlQ2hhdC50c3gifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNjQxIiwiYmxvYl9uYW1lIjoiOTdmYjVkMWI5OTE5NGVjYjU5Yzk4MDQ3ZTQwOGZiMGFmZjRkYTYzMWE1Y2ZkODIyMzY0MTlkMTA0NmRlYjU5ZiIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnkudHMifX0seyJjaGFyX3N0YXJ0IjoiMTQzMyIsImNoYXJfZW5kIjoiMjEzNyIsImJsb2JfbmFtZSI6Ijk3ZmI1ZDFiOTkxOTRlY2I1OWM5ODA0N2U0MDhmYjBhZmY0ZGE2MzFhNWNmZDgyMjM2NDE5ZDEwNDZkZWI1OWYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvcXVlcmllcy9zZW5kTWVzc2FnZVF1ZXJ5LnRzIn19LHsiY2hhcl9zdGFydCI6IjI4MTEiLCJjaGFyX2VuZCI6IjM1OTEiLCJibG9iX25hbWUiOiI5N2ZiNWQxYjk5MTk0ZWNiNTljOTgwNDdlNDA4ZmIwYWZmNGRhNjMxYTVjZmQ4MjIzNjQxOWQxMDQ2ZGViNTlmIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL3F1ZXJpZXMvc2VuZE1lc3NhZ2VRdWVyeS50cyJ9fSx7ImNoYXJfc3RhcnQiOiIzNTkxIiwiY2hhcl9lbmQiOiI0MzI5IiwiYmxvYl9uYW1lIjoiOTdmYjVkMWI5OTE5NGVjYjU5Yzk4MDQ3ZTQwOGZiMGFmZjRkYTYzMWE1Y2ZkODIyMzY0MTlkMTA0NmRlYjU5ZiIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnkudHMifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNTgwIiwiYmxvYl9uYW1lIjoiYTQyZmMyMDVhZTMyOGNmNzFlZGMxM2RlYTVkYWEwNzUxYzNlYTIxYThiM2NkMjU5MGNkNjBlNjM3N2FmNzlkNCIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9jb21wb25lbnRzL2J1YmJsZXMvR3Vlc3RCdWJibGUudHN4In19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjgyMSIsImJsb2JfbmFtZSI6IjE4ZmY1YmI5MTViMjlhMTcyOTk2NDY1MmNkODk1NzIzZWEzZDMyOGUyYWZhYzRhMjM5ODJjNDUyNjY3ZWExNGUiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJ0YWlsd2luZC5jb25maWcuY2pzIn19LHsiY2hhcl9zdGFydCI6IjgyMSIsImNoYXJfZW5kIjoiMTI5NCIsImJsb2JfbmFtZSI6IjE4ZmY1YmI5MTViMjlhMTcyOTk2NDY1MmNkODk1NzIzZWEzZDMyOGUyYWZhYzRhMjM5ODJjNDUyNjY3ZWExNGUiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJ0YWlsd2luZC5jb25maWcuY2pzIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjIzMyIsImJsb2JfbmFtZSI6ImI4ODc5NWI5OThiYjhiOWVmMTMyMmNiMTc0ZWEwNmFiZGUwNWM0NjA2YjJlMzQ2YWZjNGM1ZTZmMjQ4NTc5NDAiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvd2ViLnRzIn19LHsiY2hhcl9zdGFydCI6IjQ1NSIsImNoYXJfZW5kIjoiMTEzOCIsImJsb2JfbmFtZSI6IjRjNmEyYWZiZjIzYTQ1YjM1ZGU4M2FjNWVhMGZkZWU1NzE2OWYzZTE0OTUxY2IxMGQ2ZjM4Y2VmNzE2Nzg3ZjEiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJwdWJsaWMvaW5kZXguaHRtbCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI1MDkiLCJibG9iX25hbWUiOiJmNjk3NTg5MWEwNTg2NDQxZmIzMzAwMzQwNDBiZTIyZjA0ZDhkMzA1ZWQ1OWNjYjdjODljMjU4ZmU1ZDNlODNhIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL2ZlYXR1cmVzL3BvcHVwL2NvbXBvbmVudHMvUG9wdXAudHN4In19LHsiY2hhcl9zdGFydCI6IjM5NjUiLCJjaGFyX2VuZCI6IjUwMDEiLCJibG9iX25hbWUiOiJmNjk3NTg5MWEwNTg2NDQxZmIzMzAwMzQwNDBiZTIyZjA0ZDhkMzA1ZWQ1OWNjYjdjODljMjU4ZmU1ZDNlODNhIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL2ZlYXR1cmVzL3BvcHVwL2NvbXBvbmVudHMvUG9wdXAudHN4In19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjQzNCIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiNDM0IiwiY2hhcl9lbmQiOiIxMTI0IiwiYmxvYl9uYW1lIjoiM2U1YTBjMzEwYzhlMTEwNTc0N2YyMGI0NjY1YWE0NGYyZDBkYmM0ZjcyNTJjOTUzYjNiZjcwNjJjY2M1NDZlNiIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6IlJFQURNRS5tZCJ9fSx7ImNoYXJfc3RhcnQiOiIyMDUiLCJjaGFyX2VuZCI6IjkyMSIsImJsb2JfbmFtZSI6IjVkM2VlNGRmMDY4Yjg0NjcwOTAxZWRhNDI4Y2JjNmVhNTFiZTRmOGM2NDAzMDYwMGUwYTA1M2EwY2JjOTc2YjgiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvY29tcG9uZW50cy9hdmF0YXJzL0F2YXRhci50c3gifX0seyJjaGFyX3N0YXJ0IjoiMzE5OCIsImNoYXJfZW5kIjoiNDE2NCIsImJsb2JfbmFtZSI6Ijc5N2NkNzg2YTE5YWRkMWI5OGFmOWRjMzRiOWVjNDVlNzMzYzViMWI1YjE3NWI3MTA5NGQ4MDY4OTRmMzY3N2QiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL0Z1bGwudHN4In19XX1dLCJmZWVkYmFja1N0YXRlcyI6eyJ0ZW1wLWZlLTY3NTgzZDBjLTE5Y2ItNGIwOC1iNzIwLTQzNzJhMzAyZGM0MyI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn19LCJ0b29sVXNlU3RhdGVzIjp7fSwiZHJhZnRFeGNoYW5nZSI6eyJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJyaWNoX3RleHRfanNvbl9yZXByIjp7InR5cGUiOiJkb2MiLCJjb250ZW50IjpbeyJ0eXBlIjoicGFyYWdyYXBoIn1dfSwic3RhdHVzIjoiZHJhZnQifSwiZHJhZnRBY3RpdmVDb250ZXh0SWRzIjpbIkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveGZhbHNlZmFsc2UiLCJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbmZhbHNlZmFsc2UiLCJ1c2VyR3VpZGVsaW5lcyJdLCJyZXF1ZXN0SWRzIjpbXSwiaXNQaW5uZWQiOmZhbHNlLCJpc1NoYXJlYWJsZSI6dHJ1ZSwiZXh0cmFEYXRhIjp7Imhhc0RpcnR5RWRpdHMiOmZhbHNlfSwicGVyc29uYVR5cGUiOjAsInJvb3RUYXNrVXVpZCI6IjNkZjEzMTBkLTExMjMtNDVmMS1iM2IxLWRjNjNhNDNhMzY3NSJ9LCJkYmJhMzljMS1jNjgwLTQyMmMtOGZkNy1mM2Q1MjcwOWQ0NmEiOnsiaWQiOiJkYmJhMzljMS1jNjgwLTQyMmMtOGZkNy1mM2Q1MjcwOWQ0NmEiLCJjcmVhdGVkQXRJc28iOiIyMDI1LTA1LTMwVDAzOjUxOjU5Ljk4NFoiLCJsYXN0SW50ZXJhY3RlZEF0SXNvIjoiMjAyNS0wNS0zMFQwMzo1MjoyOC4yNDJaIiwiY2hhdEhpc3RvcnkiOlt7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiOWJiZWYxYmMtZWE5NS00NThhLWE1MDgtOWNhY2Y3YmIyNTA2IiwicmVxdWVzdF9tZXNzYWdlIjoiR2V0IHRoZSBsaXN0IG9mIG51bGxtYXN0ZXJtaW5kJ3MgcmVwb3Mgb24gR2l0SHViIiwicmljaF90ZXh0X2pzb25fcmVwciI6eyJ0eXBlIjoiZG9jIiwiY29udGVudCI6W3sidHlwZSI6InBhcmFncmFwaCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IkdldCB0aGUgbGlzdCBvZiBudWxsbWFzdGVybWluZCdzIHJlcG9zIG9uIEdpdEh1YiJ9XX1dfSwibWVudGlvbmVkX2l0ZW1zIjpbXSwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiSSBuZWVkIHRvIHNlYXJjaCBmb3IgR2l0SHViIHJlcG9zaXRvcmllcyBiZWxvbmdpbmcgdG8gdGhlIHVzZXIgXCJudWxsbWFzdGVybWluZFwiLCBidXQgSSBkb24ndCBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gR2l0SHViJ3MgQVBJIG9yIHRoZSBhYmlsaXR5IHRvIHBlcmZvcm0gZXh0ZXJuYWwgd2ViIHNlYXJjaGVzLlxuXG5UbyBnZXQgYSBsaXN0IG9mIG51bGxtYXN0ZXJtaW5kJ3MgcmVwb3NpdG9yaWVzIG9uIEdpdEh1YiwgeW91IHdvdWxkIG5lZWQgdG86XG5cbjEuIFZpc2l0IEdpdEh1YidzIHdlYnNpdGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL251bGxtYXN0ZXJtaW5kXG4yLiBUaGlzIHdpbGwgc2hvdyB5b3UgYWxsIHB1YmxpYyByZXBvc2l0b3JpZXMgb3duZWQgYnkgdGhpcyB1c2VyXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjb3VsZCB1c2UgdGhlIEdpdEh1YiBBUEkgd2l0aDpcbmBgYFxuR0VUIGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmQvcmVwb3NcbmBgYFxuXG5JZiB5b3UgbmVlZCB0aGlzIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIHB1cnBvc2UgcmVsYXRlZCB0byB5b3VyIHByb2plY3QsIHBsZWFzZSBsZXQgbWUga25vdyBhbmQgSSBjYW4gaGVscCB5b3UgaW1wbGVtZW50IGNvZGUgdG8gZmV0Y2ggYW5kIHByb2Nlc3MgdGhpcyBkYXRhLlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiJzZXJ2ZXIuanM6MC02NzRcbnNlcnZlci5qczo2NzQtMTUxM1xuc2VydmVyLmpzOjE1MTMtMjI5NFxuc2VydmVyLmpzOjIyOTQtMzAyOVxuc2VydmVyLmpzOjQxMDEtNDYyMlxuc2VydmVyLmpzOjEwNjYwLTExMzc0XG4ubnBtaWdub3JlOjAtNTRcbnBhY2thZ2UuanNvbjowLTc0OFxuLm5wbWlnbm9yZTowLTgxXG4uaHVza3kvcHJlLWNvbW1pdDowLTMyMFxucHVibGljL2luZGV4Lmh0bWw6MTEzOC0xOTcyXG5wdWJsaWMvaW5kZXguaHRtbDo1MTM5LTU0MTRcbi5naXRpZ25vcmU6MC0yM1xuUkVBRE1FLm1kOjAtNDM0XG5SRUFETUUubWQ6MTEyNzYtMTE4NzNcbnBhY2thZ2UuanNvbjowLTYwMVxuc3JjL3F1ZXJpZXMvc2VuZE1lc3NhZ2VRdWVyeS50czo1MDI3LTU4MTRcbnNyYy9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnkudHM6NjMwMS02NzM1XG4uZ2l0aWdub3JlOjAtMjNcbnNyYy91dGlscy9lbWJlZFNjcmlwdC5qczowLTQ4OVxuLmVzbGludHJjLmNqczowLTE2MlxucGFja2FnZS1sb2NrLmpzb246MC04ODBcbi5wcmV0dGllcmlnbm9yZTowLTI0In1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjAsInR5cGUiOjAsInRleHRfbm9kZSI6eyJjb250ZW50IjoiR2V0IHRoZSBsaXN0IG9mIG51bGxtYXN0ZXJtaW5kJ3MgcmVwb3Mgb24gR2l0SHViIn19LHsiaWQiOjEsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW4iLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW4ifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlfX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDAzOjUyOjI4LjI0MloiLCJyZXNwb25zZV90ZXh0IjoiSSBuZWVkIHRvIHNlYXJjaCBmb3IgR2l0SHViIHJlcG9zaXRvcmllcyBiZWxvbmdpbmcgdG8gdGhlIHVzZXIgXCJudWxsbWFzdGVybWluZFwiLCBidXQgSSBkb24ndCBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gR2l0SHViJ3MgQVBJIG9yIHRoZSBhYmlsaXR5IHRvIHBlcmZvcm0gZXh0ZXJuYWwgd2ViIHNlYXJjaGVzLlxuXG5UbyBnZXQgYSBsaXN0IG9mIG51bGxtYXN0ZXJtaW5kJ3MgcmVwb3NpdG9yaWVzIG9uIEdpdEh1YiwgeW91IHdvdWxkIG5lZWQgdG86XG5cbjEuIFZpc2l0IEdpdEh1YidzIHdlYnNpdGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL251bGxtYXN0ZXJtaW5kXG4yLiBUaGlzIHdpbGwgc2hvdyB5b3UgYWxsIHB1YmxpYyByZXBvc2l0b3JpZXMgb3duZWQgYnkgdGhpcyB1c2VyXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjb3VsZCB1c2UgdGhlIEdpdEh1YiBBUEkgd2l0aDpcbmBgYFxuR0VUIGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmQvcmVwb3NcbmBgYFxuXG5JZiB5b3UgbmVlZCB0aGlzIGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIHB1cnBvc2UgcmVsYXRlZCB0byB5b3VyIHByb2plY3QsIHBsZWFzZSBsZXQgbWUga25vdyBhbmQgSSBjYW4gaGVscCB5b3UgaW1wbGVtZW50IGNvZGUgdG8gZmV0Y2ggYW5kIHByb2Nlc3MgdGhpcyBkYXRhLlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbeyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNjc0IiwiYmxvYl9uYW1lIjoiNmUyMzQ1MGJjNzRlNDE4OTEzZmFmNDA2NWM3OThmYWQwMzBmOWVlYTU2NGZiNTAyOTFhYWE5Mjk0YTBmYmU2YyIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNlcnZlci5qcyJ9fSx7ImNoYXJfc3RhcnQiOiI2NzQiLCJjaGFyX2VuZCI6IjE1MTMiLCJibG9iX25hbWUiOiI2ZTIzNDUwYmM3NGU0MTg5MTNmYWY0MDY1Yzc5OGZhZDAzMGY5ZWVhNTY0ZmI1MDI5MWFhYTkyOTRhMGZiZTZjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic2VydmVyLmpzIn19LHsiY2hhcl9zdGFydCI6IjE1MTMiLCJjaGFyX2VuZCI6IjIyOTQiLCJibG9iX25hbWUiOiI2ZTIzNDUwYmM3NGU0MTg5MTNmYWY0MDY1Yzc5OGZhZDAzMGY5ZWVhNTY0ZmI1MDI5MWFhYTkyOTRhMGZiZTZjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic2VydmVyLmpzIn19LHsiY2hhcl9zdGFydCI6IjIyOTQiLCJjaGFyX2VuZCI6IjMwMjkiLCJibG9iX25hbWUiOiI2ZTIzNDUwYmM3NGU0MTg5MTNmYWY0MDY1Yzc5OGZhZDAzMGY5ZWVhNTY0ZmI1MDI5MWFhYTkyOTRhMGZiZTZjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic2VydmVyLmpzIn19LHsiY2hhcl9zdGFydCI6IjQxMDEiLCJjaGFyX2VuZCI6IjQ2MjIiLCJibG9iX25hbWUiOiI2ZTIzNDUwYmM3NGU0MTg5MTNmYWY0MDY1Yzc5OGZhZDAzMGY5ZWVhNTY0ZmI1MDI5MWFhYTkyOTRhMGZiZTZjIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic2VydmVyLmpzIn19LHsiY2hhcl9zdGFydCI6IjEwNjYwIiwiY2hhcl9lbmQiOiIxMTM3NCIsImJsb2JfbmFtZSI6IjZlMjM0NTBiYzc0ZTQxODkxM2ZhZjQwNjVjNzk4ZmFkMDMwZjllZWE1NjRmYjUwMjkxYWFhOTI5NGEwZmJlNmMiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJzZXJ2ZXIuanMifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiNTQiLCJibG9iX25hbWUiOiI0ODNjMjlkZGYzZjc3MzYxOWZmMzg4ODU1NjE2ZDAyMmJiZWQxMzYyMWU5OGZlOGY2MTllYTE2Y2NjZTU3ZmUyIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoiLm5wbWlnbm9yZSJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI3NDgiLCJibG9iX25hbWUiOiI3NWE1NzFhNjU2Y2I3NWZhODAzYTliZjc4N2NkMDliNWEzZGQ5ODlkMDQ0MjYxYTQwZjEzYzAyMmY2MjUyMjcwIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicGFja2FnZS5qc29uIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjgxIiwiYmxvYl9uYW1lIjoiNGQ2M2ZjY2IzZTU1YTViZTU3Y2ZlOGZkNzcwNzg4YWUxOWZkNGIxYjUzNTkwOGJkNDE3M2JjYzAzOTVkYmJlNiIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6Ii5ucG1pZ25vcmUifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiMzIwIiwiYmxvYl9uYW1lIjoiMDhmNWVmMDE5Njg1MDVhNTFmNDA2NTRhYTZkMGI3OGNhZWQyY2MwODRjM2ViOTkzMWI2NDliNjIzNGRlZThhNSIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6Ii5odXNreS9wcmUtY29tbWl0In19LHsiY2hhcl9zdGFydCI6IjExMzgiLCJjaGFyX2VuZCI6IjE5NzIiLCJibG9iX25hbWUiOiI0YzZhMmFmYmYyM2E0NWIzNWRlODNhYzVlYTBmZGVlNTcxNjlmM2UxNDk1MWNiMTBkNmYzOGNlZjcxNjc4N2YxIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicHVibGljL2luZGV4Lmh0bWwifX0seyJjaGFyX3N0YXJ0IjoiNTEzOSIsImNoYXJfZW5kIjoiNTQxNCIsImJsb2JfbmFtZSI6IjRjNmEyYWZiZjIzYTQ1YjM1ZGU4M2FjNWVhMGZkZWU1NzE2OWYzZTE0OTUxY2IxMGQ2ZjM4Y2VmNzE2Nzg3ZjEiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJwdWJsaWMvaW5kZXguaHRtbCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiIyMyIsImJsb2JfbmFtZSI6ImZiODE4MGU3YjhmM2Y0NTY0NjQyODcwZjEzNzBmNDI5MGNjZDYwNGY4NjZkNzk0ZTU2YmFmYjdhZmRjM2Y1ZGQiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiIuZ2l0aWdub3JlIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjQzNCIsImJsb2JfbmFtZSI6IjNlNWEwYzMxMGM4ZTExMDU3NDdmMjBiNDY2NWFhNDRmMmQwZGJjNGY3MjUyYzk1M2IzYmY3MDYyY2NjNTQ2ZTYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJSRUFETUUubWQifX0seyJjaGFyX3N0YXJ0IjoiMTEyNzYiLCJjaGFyX2VuZCI6IjExODczIiwiYmxvYl9uYW1lIjoiM2U1YTBjMzEwYzhlMTEwNTc0N2YyMGI0NjY1YWE0NGYyZDBkYmM0ZjcyNTJjOTUzYjNiZjcwNjJjY2M1NDZlNiIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6IlJFQURNRS5tZCJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI2MDEiLCJibG9iX25hbWUiOiI4MTJjODU5Njg0NTY2MjYwZDQ4YWY0ZWY3YmQ1Mzk4MWVlYjMwZTE4YjczNGIyN2VmOWEyOTlkYzUxZTg3YWQyIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoicGFja2FnZS5qc29uIn19LHsiY2hhcl9zdGFydCI6IjUwMjciLCJjaGFyX2VuZCI6IjU4MTQiLCJibG9iX25hbWUiOiI5N2ZiNWQxYjk5MTk0ZWNiNTljOTgwNDdlNDA4ZmIwYWZmNGRhNjMxYTVjZmQ4MjIzNjQxOWQxMDQ2ZGViNTlmIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL3F1ZXJpZXMvc2VuZE1lc3NhZ2VRdWVyeS50cyJ9fSx7ImNoYXJfc3RhcnQiOiI2MzAxIiwiY2hhcl9lbmQiOiI2NzM1IiwiYmxvYl9uYW1lIjoiOTdmYjVkMWI5OTE5NGVjYjU5Yzk4MDQ3ZTQwOGZiMGFmZjRkYTYzMWE1Y2ZkODIyMzY0MTlkMTA0NmRlYjU5ZiIsImZpbGUiOnsicmVwb1Jvb3QiOiIiLCJwYXRoTmFtZSI6InNyYy9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnkudHMifX0seyJjaGFyX3N0YXJ0IjoiMCIsImNoYXJfZW5kIjoiMjMiLCJibG9iX25hbWUiOiI5MDYwMDAzZWQ5MDdkODJkNjA5YmJlMDQ1YzQ0ZTk2MjQzNGEyZTZkNWQzYzA1YjBlYmQ5N2Q4N2QxMGRkYzkxIiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoiLmdpdGlnbm9yZSJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiI0ODkiLCJibG9iX25hbWUiOiIxN2QzMTBmMWUzM2ZmZDI0ZThmYjQ1ZGY0MDJkMjg2NmM0NWMyNmYyZGNlYzZjYzJiOWU4Y2E2MDdmZWUwOTI3IiwiZmlsZSI6eyJyZXBvUm9vdCI6IiIsInBhdGhOYW1lIjoic3JjL3V0aWxzL2VtYmVkU2NyaXB0LmpzIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6IjE2MiIsImJsb2JfbmFtZSI6ImQwZDNiMjMwM2E1MjM4MjBlNjQ0MTQyYTg3NzUyZWIyZDc1NDdjNTQ5YzFkMTI0MjEzY2RlMmY5Yzk2MjRkZGMiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiIuZXNsaW50cmMuY2pzIn19LHsiY2hhcl9zdGFydCI6IjAiLCJjaGFyX2VuZCI6Ijg4MCIsImJsb2JfbmFtZSI6IjgxMmY1YTUxMmFkY2EwOTY0ZTZhNDgxNzcxYThkMzViMDkwNDg0ODc5N2M1ZTgyYTZlY2Y3NDcxMjBlNzYyNDYiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiJwYWNrYWdlLWxvY2suanNvbiJ9fSx7ImNoYXJfc3RhcnQiOiIwIiwiY2hhcl9lbmQiOiIyNCIsImJsb2JfbmFtZSI6IjJkNWVjMzllZWJiNmIwMWMzNDc5NjNiNTMyMTU4MTkxYWZhM2VlMmJiNzg1ODE3ZjQ0NWZjMDI0YjE2YjRhZTQiLCJmaWxlIjp7InJlcG9Sb290IjoiIiwicGF0aE5hbWUiOiIucHJldHRpZXJpZ25vcmUifX1dfV0sImZlZWRiYWNrU3RhdGVzIjp7InRlbXAtZmUtMDhkMTk3MjgtOTZlYi00ZWE0LWIwZGUtZWY5MWEyM2VmMzE1Ijp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifX0sInRvb2xVc2VTdGF0ZXMiOnt9LCJkcmFmdEV4Y2hhbmdlIjp7InJlcXVlc3RfbWVzc2FnZSI6IiIsInJpY2hfdGV4dF9qc29uX3JlcHIiOnsidHlwZSI6ImRvYyIsImNvbnRlbnQiOlt7InR5cGUiOiJwYXJhZ3JhcGgifV19LCJzdGF0dXMiOiJkcmFmdCJ9LCJkcmFmdEFjdGl2ZUNvbnRleHRJZHMiOlsiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94ZmFsc2VmYWxzZSIsIkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluZmFsc2VmYWxzZSIsInVzZXJHdWlkZWxpbmVzIl0sInJlcXVlc3RJZHMiOltdLCJpc1Bpbm5lZCI6ZmFsc2UsImlzU2hhcmVhYmxlIjp0cnVlLCJleHRyYURhdGEiOnsiaGFzRGlydHlFZGl0cyI6ZmFsc2V9LCJwZXJzb25hVHlwZSI6MCwicm9vdFRhc2tVdWlkIjoiZmYxMGQwYzQtNzM2NC00N2QzLWE2YzUtOTg5OGI0ZjM5NjliIn0sImY4ZWU2YzY4LTkyMDYtNGYwNS05ZTI5LTg2NmZlZDQ2NGM1OCI6eyJpZCI6ImY4ZWU2YzY4LTkyMDYtNGYwNS05ZTI5LTg2NmZlZDQ2NGM1OCIsImNyZWF0ZWRBdElzbyI6IjIwMjUtMDUtMzBUMDM6NTI6NDQuOTQ1WiIsImxhc3RJbnRlcmFjdGVkQXRJc28iOiIyMDI1LTA1LTMwVDAzOjUyOjQ0Ljk0NVoiLCJjaGF0SGlzdG9yeSI6W10sImZlZWRiYWNrU3RhdGVzIjp7fSwidG9vbFVzZVN0YXRlcyI6e30sImRyYWZ0RXhjaGFuZ2UiOnsicmVxdWVzdF9tZXNzYWdlIjoiIiwicmljaF90ZXh0X2pzb25fcmVwciI6eyJ0eXBlIjoiZG9jIiwiY29udGVudCI6W3sidHlwZSI6InBhcmFncmFwaCJ9XX0sInN0YXR1cyI6ImRyYWZ0In0sInJlcXVlc3RJZHMiOltdLCJpc1Bpbm5lZCI6ZmFsc2UsImlzU2hhcmVhYmxlIjpmYWxzZSwiZXh0cmFEYXRhIjp7Imhhc0RpcnR5RWRpdHMiOmZhbHNlfSwicGVyc29uYVR5cGUiOjAsInJvb3RUYXNrVXVpZCI6ImFmNjcyZTkyLTYxY2MtNGExOC1hMGNhLTgyMzQyYjE5NTI2YiJ9LCJkZmNiNmZjNS1kMmE4LTQyN2YtOTg0ZS01YmZmMGRmMDBhMDgiOnsiaWQiOiJkZmNiNmZjNS1kMmE4LTQyN2YtOTg0ZS01YmZmMGRmMDBhMDgiLCJjcmVhdGVkQXRJc28iOiIyMDI1LTA1LTMwVDAzOjUyOjQ2LjQwOFoiLCJsYXN0SW50ZXJhY3RlZEF0SXNvIjoiMjAyNS0wNS0zMFQwMzo1Mjo1My4yMDNaIiwiY2hhdEhpc3RvcnkiOlt7InJlcXVlc3RfaWQiOiI3OGNmOTEwYS0zOTRkLTRhYmYtOWYxMy0xMGEwNDhmMmI4NGYiLCJ1dWlkIjoiYTFmNjJkMTUtMjViOC00NTZiLTk5MzctYTNhY2Y1ZTBmOGEyIiwiY2hhdEl0ZW1UeXBlIjoiYWdlbnRpYy1jaGVja3BvaW50LWRlbGltaXRlciIsInN0YXR1cyI6InN1Y2Nlc3MiLCJmcm9tVGltZXN0YW1wIjowLCJ0b1RpbWVzdGFtcCI6MTc0ODU3NzE2NjQwOSwic2Vlbl9zdGF0ZSI6InNlZW4ifSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiMmI0MzBjY2ItMDA5ZC00OWUzLWIzNjUtNTlkYzIwMzlkZDE5IiwicmVxdWVzdF9tZXNzYWdlIjoiR2V0IHRoZSBsaXN0IG9mIG51bGxtYXN0ZXJtaW5kJ3MgcmVwb3Mgb24gR2l0SHViIiwicmljaF90ZXh0X2pzb25fcmVwciI6eyJ0eXBlIjoiZG9jIiwiY29udGVudCI6W3sidHlwZSI6InBhcmFncmFwaCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6IkdldCB0aGUgbGlzdCBvZiBudWxsbWFzdGVybWluZCdzIHJlcG9zIG9uIEdpdEh1YiJ9XX1dfSwibWVudGlvbmVkX2l0ZW1zIjpbXSwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxTEVxSFRDbW1TVU5rZVd0dmhNRk1LSiIsInRvb2xfbmFtZSI6ImdpdGh1Yi1hcGkiLCJpbnB1dF9qc29uIjoie1wicGF0aFwiOiBcIi91c2Vycy9udWxsbWFzdGVybWluZC9yZXBvc1wiLCBcInN1bW1hcnlcIjogXCJHZXQgbGlzdCBvZiByZXBvc2l0b3JpZXMgZm9yIHVzZXIgbnVsbG1hc3Rlcm1pbmRcIiwgXCJkYXRhXCI6IHtcInBlcl9wYWdlXCI6IDEwMCwgXCJzb3J0XCI6IFwidXBkYXRlZFwiLCBcImRpcmVjdGlvblwiOiBcImRlc2NcIn19IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiSSdsbCBoZWxwIHlvdSBnZXQgdGhlIGxpc3Qgb2YgcmVwb3NpdG9yaWVzIGZvciB0aGUgR2l0SHViIHVzZXIgXCJudWxsbWFzdGVybWluZFwiLiBMZXQgbWUgdXNlIHRoZSBHaXRIdWIgQVBJIHRvIGZldGNoIHRoaXMgaW5mb3JtYXRpb24uXG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJ0ZXh0X25vZGUiOnsiY29udGVudCI6IkdldCB0aGUgbGlzdCBvZiBudWxsbWFzdGVybWluZCdzIHJlcG9zIG9uIEdpdEh1YiJ9fSx7ImlkIjoxLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluIiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluIn1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1Mjo0Ny4zMjVaIiwicmVzcG9uc2VfdGV4dCI6IkknbGwgaGVscCB5b3UgZ2V0IHRoZSBsaXN0IG9mIHJlcG9zaXRvcmllcyBmb3IgdGhlIEdpdEh1YiB1c2VyIFwibnVsbG1hc3Rlcm1pbmRcIi4gTGV0IG1lIHVzZSB0aGUgR2l0SHViIEFQSSB0byBmZXRjaCB0aGlzIGluZm9ybWF0aW9uLlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjhlZTUzMzNmLTFlZWItNDBlNy05MTFkLTgzM2UwMTZkM2M5MCIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IkhlcmUncyB0aGUgbGlzdCBvZiByZXBvc2l0b3JpZXMgZm9yIHRoZSBHaXRIdWIgdXNlciBcIm51bGxtYXN0ZXJtaW5kXCIsIHNvcnRlZCBieSBtb3N0IHJlY2VudGx5IHVwZGF0ZWQ6XG5cbiMjIFJlY2VudCBSZXBvc2l0b3JpZXMgKFRvcCAzMClcblxuMS4gKipweS1jaGF0Z3B0LWRpc2NvcmQtYm90KiogKFVwZGF0ZWQ6IE1heSAxMSwgMjAyNSlcbiAgIC0gQm90IENoYXRHUFQgZm9yIERpc2NvcmQsIGEgbGlnaHR3ZWlnaHQgeWV0IHBvd2VyZnVsIHRvb2wgdGhhdCBhbGxvd3MgZm9yIGN1c3RvbWl6YXRpb24gb2YgdGVtcGVyYXR1cmUsIHByb21wdHMsIGFuZCBtb3JlLlxuXG4yLiAqKmFjaSoqIChVcGRhdGVkOiBNYXkgOCwgMjAyNSlcbiAgIC0gQUNJLmRldiBpcyB0aGUgb3BlbiBzb3VyY2UgcGxhdGZvcm0gdGhhdCBjb25uZWN0cyB5b3VyIEFJIGFnZW50cyB0byA2MDArIHRvb2wgaW50ZWdyYXRpb25zIHdpdGggbXVsdGktdGVuYW50IGF1dGgsIGdyYW51bGFyIHBlcm1pc3Npb25zLCBhbmQgYWNjZXNzIHRocm91Z2ggZGlyZWN0IGZ1bmN0aW9uIGNhbGxpbmcgb3IgYSB1bmlmaWVkIE1DUCBzZXJ2ZXIuXG5cbjMuICoqcmFnZmxvdyoqIChVcGRhdGVkOiBNYXkgNywgMjAyNSlcbiAgIC0gUkFHRmxvdyBpcyBhbiBvcGVuLXNvdXJjZSBSQUcgKFJldHJpZXZhbC1BdWdtZW50ZWQgR2VuZXJhdGlvbikgZW5naW5lIGJhc2VkIG9uIGRlZXAgZG9jdW1lbnQgdW5kZXJzdGFuZGluZy5cblxuNC4gKipncmFwaGl0aSoqIChVcGRhdGVkOiBBcHIgMjksIDIwMjUpXG4gICAtIEJ1aWxkIFJlYWwtVGltZSBLbm93bGVkZ2UgR3JhcGhzIGZvciBBSSBBZ2VudHNcblxuNS4gKipkYXl0b25hKiogKFVwZGF0ZWQ6IEFwciAyOCwgMjAyNSlcbiAgIC0gRGF5dG9uYSBpcyBhIFNlY3VyZSBhbmQgRWxhc3RpYyBJbmZyYXN0cnVjdHVyZSBmb3IgUnVubmluZyBBSS1HZW5lcmF0ZWQgQ29kZS5cblxuNi4gKipqYTNwcm94eSoqIChVcGRhdGVkOiBBcHIgMjgsIDIwMjUpXG4gICAtIEN1c3RvbWl6aW5nIFRMUyAoSkEzKSBGaW5nZXJwcmludHMgdGhyb3VnaCBIVFRQIFByb3h5XG5cbjcuICoqY2hlcnJ5LXN0dWRpbyoqIChVcGRhdGVkOiBBcHIgMjUsIDIwMjUpXG4gICAtIPCfjZIgQ2hlcnJ5IFN0dWRpbyBpcyBhIGRlc2t0b3AgY2xpZW50IHRoYXQgc3VwcG9ydHMgZm9yIG11bHRpcGxlIExMTSBwcm92aWRlcnMuIFN1cHBvcnQgZGVlcHNlZWstcjFcblxuOC4gKipvbmUtYXBpKiogKFVwZGF0ZWQ6IEFwciAyMiwgMjAyNSlcbiAgIC0gQW4gTExNIEFQSSBtYW5hZ2VtZW50IGFuZCByZWRpc3RyaWJ1dGlvbiBzeXN0ZW0gc3VwcG9ydGluZyBtYWpvciBwcm92aWRlcnMgKE9wZW5BSSwgQXp1cmUsIENsYXVkZSwgR2VtaW5pLCBldGMuKSB3aXRoIGEgdW5pZmllZCBBUEkuXG5cbjkuICoqamV0YnJhaW5zLWN1cnNvci1zeW5jKiogKFVwZGF0ZWQ6IEFwciAxNCwgMjAyNSlcbiAgIC0gTm8gZGVzY3JpcHRpb25cblxuMTAuICoqQ29tZnlVSV9mcm9udGVuZCoqIChVcGRhdGVkOiBBcHIgOSwgMjAyNSlcbiAgICAtIE9mZmljaWFsIGZyb250LWVuZCBpbXBsZW1lbnRhdGlvbiBvZiBDb21meVVJXG5cbjExLiAqKm5vZGUtYXV0b2l0LWtvZmZpKiogKFVwZGF0ZWQ6IE1hciAyNCwgMjAyNSlcbiAgICAtIFRoaXMgTm9kZS5qcyBtb2R1bGUgcHJvdmlkZXMgc3VwcG9ydCBmb3IgYWxsIEF1dG9JdCBmdW5jdGlvbnMsIGFsbG93aW5nIHVzZXJzIHRvIGF1dG9tYXRlIFdpbmRvd3MgR1VJIHRhc2tzIHNlYW1sZXNzbHkuXG5cbjEyLiAqKmNoYXRib3gqKiAoVXBkYXRlZDogTWFyIDE5LCAyMDI1KVxuICAgIC0gVXNlci1mcmllbmRseSBEZXNrdG9wIENsaWVudCBBcHAgZm9yIEFJIE1vZGVscy9MTE1zIChHUFQsIENsYXVkZSwgR2VtaW5pLCBPbGxhbWEuLi4pXG5cbjEzLiAqKmZpcmVjcmF3bCoqIChVcGRhdGVkOiBNYXIgMTgsIDIwMjUpXG4gICAgLSDwn5SlIFR1cm4gZW50aXJlIHdlYnNpdGVzIGludG8gTExNLXJlYWR5IG1hcmtkb3duIG9yIHN0cnVjdHVyZWQgZGF0YS4gU2NyYXBlLCBjcmF3bCBhbmQgZXh0cmFjdCB3aXRoIGEgc2luZ2xlIEFQSS5cblxuMTQuICoqREItR1BUKiogKFVwZGF0ZWQ6IE1hciAxOCwgMjAyNSlcbiAgICAtIEFJIE5hdGl2ZSBEYXRhIEFwcCBEZXZlbG9wbWVudCBmcmFtZXdvcmsgd2l0aCBBV0VMKEFnZW50aWMgV29ya2Zsb3cgRXhwcmVzc2lvbiBMYW5ndWFnZSkgYW5kIEFnZW50c1xuXG4xNS4gKipDb21meVVJKiogKFVwZGF0ZWQ6IE1hciA3LCAyMDI1KVxuICAgIC0gVGhlIG1vc3QgcG93ZXJmdWwgYW5kIG1vZHVsYXIgZGlmZnVzaW9uIG1vZGVsIEdVSSwgYXBpIGFuZCBiYWNrZW5kIHdpdGggYSBncmFwaC9ub2RlcyBpbnRlcmZhY2UuXG5cbkFuZCBtYW55IG1vcmUgcmVwb3NpdG9yaWVzIGNvdmVyaW5nIHZhcmlvdXMgdG9waWNzIGluY2x1ZGluZyBBSS9NTCB0b29scywgRGlzY29yZCBib3RzLCB3ZWIgZGV2ZWxvcG1lbnQgdXRpbGl0aWVzLCBhbmQgYXV0b21hdGlvbiB0b29scy4gVGhlIHVzZXIgYXBwZWFycyB0byBiZSB2ZXJ5IGFjdGl2ZSBpbiB0aGUgQUkgYW5kIGF1dG9tYXRpb24gc3BhY2UsIHdpdGggbWFueSBmb3JrcyBhbmQgY29udHJpYnV0aW9ucyB0byBwb3B1bGFyIG9wZW4tc291cmNlIHByb2plY3RzLlxuXG5Xb3VsZCB5b3UgbGlrZSBtZSB0byBnZXQgbW9yZSBkZXRhaWxzIGFib3V0IGFueSBzcGVjaWZpYyByZXBvc2l0b3J5IG9yIHNob3cgYWRkaXRpb25hbCByZXBvc2l0b3JpZXMgZnJvbSB0aGUgbGlzdD9cbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6Ii0gY3JlYXRlZF9hdDogJzIwMjMtMDMtMjFUMDg6Mzg6NTNaJ1xuICBkZXNjcmlwdGlvbjogQm90IENoYXRHUFQgZm9yIERpc2NvcmQsIGEgbGlnaHR3ZWlnaHQgeWV0IHBvd2VyZnVsIHRvb2wgdGhhdCBhbGxvd3NcbiAgICBmb3IgY3VzdG9taXphdGlvbiBvZiB0ZW1wZXJhdHVyZSwgcHJvbXB0cywgYW5kIG1vcmUuXG4gIG5hbWU6IHB5LWNoYXRncHQtZGlzY29yZC1ib3RcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTA1LTExVDE1OjI4OjU3WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL3B5LWNoYXRncHQtZGlzY29yZC1ib3Rcbi0gY3JlYXRlZF9hdDogJzIwMjUtMDUtMDhUMDQ6MTE6MTJaJ1xuICBkZXNjcmlwdGlvbjogQUNJLmRldiBpcyB0aGUgb3BlbiBzb3VyY2UgcGxhdGZvcm0gdGhhdCBjb25uZWN0cyB5b3VyIEFJIGFnZW50cyB0b1xuICAgIDYwMCsgdG9vbCBpbnRlZ3JhdGlvbnMgd2l0aCBtdWx0aS10ZW5hbnQgYXV0aCwgZ3JhbnVsYXIgcGVybWlzc2lvbnMsIGFuZCBhY2Nlc3NcbiAgICB0aHJvdWdoIGRpcmVjdCBmdW5jdGlvbiBjYWxsaW5nIG9yIGEgdW5pZmllZCBNQ1Agc2VydmVyLlxuICBuYW1lOiBhY2lcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTA1LTA4VDA0OjExOjEyWidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2FjaVxuLSBjcmVhdGVkX2F0OiAnMjAyNS0wNC0yOVQxNzozNDowM1onXG4gIGRlc2NyaXB0aW9uOiBSQUdGbG93IGlzIGFuIG9wZW4tc291cmNlIFJBRyAoUmV0cmlldmFsLUF1Z21lbnRlZCBHZW5lcmF0aW9uKSBlbmdpbmVcbiAgICBiYXNlZCBvbiBkZWVwIGRvY3VtZW50IHVuZGVyc3RhbmRpbmcuXG4gIG5hbWU6IHJhZ2Zsb3dcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTA1LTA3VDA0OjA5OjI1WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL3JhZ2Zsb3dcbi0gY3JlYXRlZF9hdDogJzIwMjUtMDQtMjlUMDI6MDQ6NDVaJ1xuICBkZXNjcmlwdGlvbjogQnVpbGQgUmVhbC1UaW1lIEtub3dsZWRnZSBHcmFwaHMgZm9yIEFJIEFnZW50c1xuICBuYW1lOiBncmFwaGl0aVxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDQtMjlUMDI6MDQ6NDVaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvZ3JhcGhpdGlcbi0gY3JlYXRlZF9hdDogJzIwMjUtMDQtMjhUMDc6Mjg6MzhaJ1xuICBkZXNjcmlwdGlvbjogRGF5dG9uYSBpcyBhIFNlY3VyZSBhbmQgRWxhc3RpYyBJbmZyYXN0cnVjdHVyZSBmb3IgUnVubmluZyBBSS1HZW5lcmF0ZWRcbiAgICBDb2RlLlxuICBuYW1lOiBkYXl0b25hXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wNC0yOFQwNzoyODozOFonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9kYXl0b25hXG4tIGNyZWF0ZWRfYXQ6ICcyMDI1LTA0LTI4VDA0OjM1OjMxWidcbiAgZGVzY3JpcHRpb246IEN1c3RvbWl6aW5nIFRMUyAoSkEzKSBGaW5nZXJwcmludHMgdGhyb3VnaCBIVFRQIFByb3h5XG4gIG5hbWU6IGphM3Byb3h5XG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wNC0yOFQwNDozNTozMVonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9qYTNwcm94eVxuLSBjcmVhdGVkX2F0OiAnMjAyNS0wNC0wNFQwMzoyMjowNFonXG4gIGRlc2NyaXB0aW9uOiDwn42SIENoZXJyeSBTdHVkaW8gaXMgYSBkZXNrdG9wIGNsaWVudCB0aGF0IHN1cHBvcnRzIGZvciBtdWx0aXBsZSBMTE1cbiAgICBwcm92aWRlcnMuIFN1cHBvcnQgZGVlcHNlZWstcjFcbiAgbmFtZTogY2hlcnJ5LXN0dWRpb1xuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDQtMjVUMDQ6NTQ6MTNaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvY2hlcnJ5LXN0dWRpb1xuLSBjcmVhdGVkX2F0OiAnMjAyNS0wNC0xOFQxMzo0ODo0NVonXG4gIGRlc2NyaXB0aW9uOiBBbiBMTE0gQVBJIG1hbmFnZW1lbnQgYW5kIHJlZGlzdHJpYnV0aW9uIHN5c3RlbSBzdXBwb3J0aW5nIG1ham9yIHByb3ZpZGVyc1xuICAgIChPcGVuQUksIEF6dXJlLCBDbGF1ZGUsIEdlbWluaSwgZXRjLikgd2l0aCBhIHVuaWZpZWQgQVBJLiBEZXBsb3lhYmxlIGFzIGEgc2luZ2xlXG4gICAgYmluYXJ5IG9yIERvY2tlciBpbWFnZSwgZmVhdHVyaW5nIGFuIEVuZ2xpc2ggVUkuXG4gIG5hbWU6IG9uZS1hcGlcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTA0LTIyVDE3OjE3OjQ3WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL29uZS1hcGlcbi0gY3JlYXRlZF9hdDogJzIwMjQtMDktMjZUMTQ6MDE6MjdaJ1xuICBuYW1lOiBqZXRicmFpbnMtY3Vyc29yLXN5bmNcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTA0LTE0VDA0OjA2OjIxWidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2pldGJyYWlucy1jdXJzb3Itc3luY1xuLSBjcmVhdGVkX2F0OiAnMjAyNC0xMS0yM1QxOTo0NDozMVonXG4gIGRlc2NyaXB0aW9uOiBPZmZpY2lhbCBmcm9udC1lbmQgaW1wbGVtZW50YXRpb24gb2YgQ29tZnlVSVxuICBuYW1lOiBDb21meVVJX2Zyb250ZW5kXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wNC0wOVQwOTo1NTo1NVonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9Db21meVVJX2Zyb250ZW5kXG4tIGNyZWF0ZWRfYXQ6ICcyMDI0LTAyLTE3VDIyOjA3OjM1WidcbiAgZGVzY3JpcHRpb246IFRoaXMgTm9kZS5qcyBtb2R1bGUgcHJvdmlkZXMgc3VwcG9ydCBmb3IgYWxsIEF1dG9JdCBmdW5jdGlvbnMsIGFsbG93aW5nXG4gICAgdXNlcnMgdG8gYXV0b21hdGUgV2luZG93cyBHVUkgdGFza3Mgc2VhbWxlc3NseS5cbiAgbmFtZTogbm9kZS1hdXRvaXQta29mZmlcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAzLTI0VDA5OjE1OjQ4WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL25vZGUtYXV0b2l0LWtvZmZpXG4tIGNyZWF0ZWRfYXQ6ICcyMDI0LTEyLTIzVDE0OjUyOjMzWidcbiAgZGVzY3JpcHRpb246IFVzZXItZnJpZW5kbHkgRGVza3RvcCBDbGllbnQgQXBwIGZvciBBSSBNb2RlbHMvTExNcyAoR1BULCBDbGF1ZGUsIEdlbWluaSxcbiAgICBPbGxhbWEuLi4pXG4gIG5hbWU6IGNoYXRib3hcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAzLTE5VDExOjE3OjM2WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2NoYXRib3hcbi0gY3JlYXRlZF9hdDogJzIwMjUtMDItMDZUMDc6MjA6MTVaJ1xuICBkZXNjcmlwdGlvbjog8J+UpSBUdXJuIGVudGlyZSB3ZWJzaXRlcyBpbnRvIExMTS1yZWFkeSBtYXJrZG93biBvciBzdHJ1Y3R1cmVkIGRhdGEuXG4gICAgU2NyYXBlLCBjcmF3bCBhbmQgZXh0cmFjdCB3aXRoIGEgc2luZ2xlIEFQSS5cbiAgbmFtZTogZmlyZWNyYXdsXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wMy0xOFQyMDo1NTowNVonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9maXJlY3Jhd2xcbi0gY3JlYXRlZF9hdDogJzIwMjUtMDMtMThUMDM6MzA6MTRaJ1xuICBkZXNjcmlwdGlvbjogQUkgTmF0aXZlIERhdGEgQXBwIERldmVsb3BtZW50IGZyYW1ld29yayB3aXRoIEFXRUwoQWdlbnRpYyBXb3JrZmxvd1xuICAgIEV4cHJlc3Npb24gTGFuZ3VhZ2UpIGFuZCBBZ2VudHNcbiAgbmFtZTogREItR1BUXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wMy0xOFQwMzozMDoxNFonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9EQi1HUFRcbi0gY3JlYXRlZF9hdDogJzIwMjQtMTEtMjJUMTE6NTk6MjRaJ1xuICBkZXNjcmlwdGlvbjogVGhlIG1vc3QgcG93ZXJmdWwgYW5kIG1vZHVsYXIgZGlmZnVzaW9uIG1vZGVsIEdVSSwgYXBpIGFuZCBiYWNrZW5kXG4gICAgd2l0aCBhIGdyYXBoL25vZGVzIGludGVyZmFjZS5cbiAgbmFtZTogQ29tZnlVSVxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDMtMDdUMTQ6MzM6NTVaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvQ29tZnlVSVxuLSBjcmVhdGVkX2F0OiAnMjAyNS0wMy0wNlQwMzozODoyMFonXG4gIGRlc2NyaXB0aW9uOiBCb3RwcmVzcyBPU1Mg4oCTIHYxMlxuICBuYW1lOiB2MTJcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAzLTA2VDAzOjM4OjIwWidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL3YxMlxuLSBjcmVhdGVkX2F0OiAnMjAyNS0wMy0wNlQwMjo1OTozMFonXG4gIGRlc2NyaXB0aW9uOiBUaGUgb3Blbi1zb3VyY2UgaHViIHRvIGJ1aWxkICYgZGVwbG95IEdQVC9MTE0gQWdlbnRzIOKaoe+4j1xuICBuYW1lOiBib3RwcmVzc1xuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDMtMDZUMDI6NTk6MzBaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvYm90cHJlc3Ncbi0gY3JlYXRlZF9hdDogJzIwMjUtMDMtMDRUMDc6NTE6MDdaJ1xuICBuYW1lOiBhdXRvLWZpeC1uZXR3b3JrXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wMy0wNFQwNzo1MzozOFonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9hdXRvLWZpeC1uZXR3b3JrXG4tIGNyZWF0ZWRfYXQ6ICcyMDIzLTA0LTEwVDA1OjQxOjEwWidcbiAgZGVzY3JpcHRpb246IEEgQ2hhdEdQVCBjbG9uZSB3aXRoIHBvd2VyZnVsIGZlYXR1cmVzIHRoYXQgeW91J3ZlIG5ldmVyIHNlZW4gYmVmb3JlLFxuICAgIGNhcGFibGUgb2YgaW50ZXJhY3Rpbmcgd2l0aCB5b3VyIHByaXZhdGUgZG9jdW1lbnRzXG4gIG5hbWU6IGNoYXRncHQtd2ViXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wMi0yMVQxNTo1NjozMVonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9jaGF0Z3B0LXdlYlxuLSBjcmVhdGVkX2F0OiAnMjAyNS0wMS0wN1QxODo0MjowMVonXG4gIG5hbWU6IGNhcHJvdmVyLWNvbXBvc2VcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAyLTEzVDAyOjIxOjQ5WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2NhcHJvdmVyLWNvbXBvc2Vcbi0gY3JlYXRlZF9hdDogJzIwMjQtMTEtMjZUMDM6MDE6MjhaJ1xuICBuYW1lOiBDb21meVVJX0xMTVxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDItMTBUMTk6Mjk6NDlaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvQ29tZnlVSV9MTE1cbi0gY3JlYXRlZF9hdDogJzIwMjMtMDMtMjBUMTc6NDI6MzhaJ1xuICBkZXNjcmlwdGlvbjog4puT77iPIExhbmdGbG93IGlzIGEgVUkgZm9yIExhbmdDaGFpbiwgZGVzaWduZWQgd2l0aCByZWFjdC1mbG93IHRvIHByb3ZpZGVcbiAgICBhbiBlZmZvcnRsZXNzIHdheSB0byBleHBlcmltZW50IGFuZCBwcm90b3R5cGUgZmxvd3MuXG4gIG5hbWU6IGxhbmdmbG93XG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wMS0yMVQwMzo0NToyNVonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9sYW5nZmxvd1xuLSBjcmVhdGVkX2F0OiAnMjAyMi0wNi0yMVQwODoxMDoxOFonXG4gIGRlc2NyaXB0aW9uOiBNdWx0aWNhbGwgaW1wbGVtZW50ZWQgaW4gZ29sYW5nIHdpdGggZXh0cmEgb3B0aW9ucyB0byBicmluZyBiZXN0IGRldmVsb3BtZW50XG4gICAgZXhwZXJpZW5jZVxuICBuYW1lOiBtdWx0aWNhbGwtZ29cbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAxLTA3VDE0OjA3OjA0WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL211bHRpY2FsbC1nb1xuLSBjcmVhdGVkX2F0OiAnMjAyNS0wMS0wM1QwNjo1OToyNlonXG4gIGRlc2NyaXB0aW9uOiBBIHNpbXBsZSBhbmQgc3RhbmRhbG9uZSBXZWJEQVYgc2VydmVyLlxuICBuYW1lOiB3ZWJkYXZcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAxLTAzVDA2OjU5OjI2WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL3dlYmRhdlxuLSBjcmVhdGVkX2F0OiAnMjAyNS0wMS0wM1QwNDoxODo0M1onXG4gIGRlc2NyaXB0aW9uOiBDYXBSb3ZlciBXZWJzaXRlIGFuZCBEb2NzXG4gIG5hbWU6IGNhcHJvdmVyLXdlYnNpdGVcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAxLTAzVDA0OjE4OjQzWidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2NhcHJvdmVyLXdlYnNpdGVcbi0gY3JlYXRlZF9hdDogJzIwMjUtMDEtMDJUMTI6NTQ6MDZaJ1xuICBuYW1lOiB0aGluay1wcm9tcHQudHh0XG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wMS0wMlQxNTowOTo1MlonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC90aGluay1wcm9tcHQudHh0XG4tIGNyZWF0ZWRfYXQ6ICcyMDI0LTAyLTI3VDA0OjE4OjIwWidcbiAgZGVzY3JpcHRpb246IFRoaXMgcHJvamVjdCBpcyBhIHV0aWxpdHkgdG8gc3luYyBNeVNRTCBkYXRhIHRvIE1laWxpU2VhcmNoIGluIHJlYWxcbiAgICB0aW1lXG4gIG5hbWU6IE1laWxpU3luYy1NeVNRTFxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjQtMTItMTlUMTQ6MTM6MjBaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvTWVpbGlTeW5jLU15U1FMXG4tIGNyZWF0ZWRfYXQ6ICcyMDI0LTExLTI4VDE1OjU2OjQxWidcbiAgZGVzY3JpcHRpb246IEEgZ3JhcGggbm9kZSBlbmdpbmUgYW5kIGVkaXRvciB3cml0dGVuIGluIEphdmFzY3JpcHQgc2ltaWxhciB0byBQRFxuICAgIG9yIFVESyBCbHVlcHJpbnRzLCBjb21lcyB3aXRoIGl0cyBvd24gZWRpdG9yIGluIEhUTUw1IENhbnZhczJELiBUaGUgZW5naW5lIGNhblxuICAgIHJ1biBjbGllbnQgc2lkZSBvciBzZXJ2ZXIgc2lkZSB1c2luZyBOb2RlLiBJdCBhbGxvd3MgdG8gZXhwb3J0IGdyYXBocyBhcyBKU09Oc1xuICAgIHRvIGJlIGluY2x1ZGVkIGluIGFwcGxpY2F0aW9ucyBpbmRlcGVuZGVudGx5LlxuICBuYW1lOiBsaXRlZ3JhcGguanNcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI0LTEyLTA5VDE2OjQ4OjI4WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2xpdGVncmFwaC5qc1xuLSBjcmVhdGVkX2F0OiAnMjAyMi0wMS0wN1QwNDoxMjozOFonXG4gIGRlc2NyaXB0aW9uOiBBZGQgYSBiYXRjaCBwcm9jZXNzaW5nIHRvb2wgd2l0aCBmdWxseSBjdXN0b21pemFibGUgcGFyYW1ldGVycyB0byBhdXRvbWF0ZVxuICAgIHlvdXIgSW5rc2NhcGUgdGFza3MgbW9yZSBlYXNpbHkuXG4gIG5hbWU6IGlua3NjYXBlLWZvci10cmFjZVxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjQtMTItMDlUMTM6Mzk6MzFaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvaW5rc2NhcGUtZm9yLXRyYWNlXG4tIGNyZWF0ZWRfYXQ6ICcyMDI0LTExLTI5VDIwOjM0OjEyWidcbiAgbmFtZTogdHJhbnNsYXRpb24tYWdlbnRcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI0LTExLTI5VDIwOjM0OjEyWidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL3RyYW5zbGF0aW9uLWFnZW50XG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFMRXFIVENtbVNVTmtlV3R2aE1GTUtKIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW4iLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW4ifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlfX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDAzOjUyOjUzLjIwM1oiLCJyZXNwb25zZV90ZXh0IjoiSGVyZSdzIHRoZSBsaXN0IG9mIHJlcG9zaXRvcmllcyBmb3IgdGhlIEdpdEh1YiB1c2VyIFwibnVsbG1hc3Rlcm1pbmRcIiwgc29ydGVkIGJ5IG1vc3QgcmVjZW50bHkgdXBkYXRlZDpcblxuIyMgUmVjZW50IFJlcG9zaXRvcmllcyAoVG9wIDMwKVxuXG4xLiAqKnB5LWNoYXRncHQtZGlzY29yZC1ib3QqKiAoVXBkYXRlZDogTWF5IDExLCAyMDI1KVxuICAgLSBCb3QgQ2hhdEdQVCBmb3IgRGlzY29yZCwgYSBsaWdodHdlaWdodCB5ZXQgcG93ZXJmdWwgdG9vbCB0aGF0IGFsbG93cyBmb3IgY3VzdG9taXphdGlvbiBvZiB0ZW1wZXJhdHVyZSwgcHJvbXB0cywgYW5kIG1vcmUuXG5cbjIuICoqYWNpKiogKFVwZGF0ZWQ6IE1heSA4LCAyMDI1KVxuICAgLSBBQ0kuZGV2IGlzIHRoZSBvcGVuIHNvdXJjZSBwbGF0Zm9ybSB0aGF0IGNvbm5lY3RzIHlvdXIgQUkgYWdlbnRzIHRvIDYwMCsgdG9vbCBpbnRlZ3JhdGlvbnMgd2l0aCBtdWx0aS10ZW5hbnQgYXV0aCwgZ3JhbnVsYXIgcGVybWlzc2lvbnMsIGFuZCBhY2Nlc3MgdGhyb3VnaCBkaXJlY3QgZnVuY3Rpb24gY2FsbGluZyBvciBhIHVuaWZpZWQgTUNQIHNlcnZlci5cblxuMy4gKipyYWdmbG93KiogKFVwZGF0ZWQ6IE1heSA3LCAyMDI1KVxuICAgLSBSQUdGbG93IGlzIGFuIG9wZW4tc291cmNlIFJBRyAoUmV0cmlldmFsLUF1Z21lbnRlZCBHZW5lcmF0aW9uKSBlbmdpbmUgYmFzZWQgb24gZGVlcCBkb2N1bWVudCB1bmRlcnN0YW5kaW5nLlxuXG40LiAqKmdyYXBoaXRpKiogKFVwZGF0ZWQ6IEFwciAyOSwgMjAyNSlcbiAgIC0gQnVpbGQgUmVhbC1UaW1lIEtub3dsZWRnZSBHcmFwaHMgZm9yIEFJIEFnZW50c1xuXG41LiAqKmRheXRvbmEqKiAoVXBkYXRlZDogQXByIDI4LCAyMDI1KVxuICAgLSBEYXl0b25hIGlzIGEgU2VjdXJlIGFuZCBFbGFzdGljIEluZnJhc3RydWN0dXJlIGZvciBSdW5uaW5nIEFJLUdlbmVyYXRlZCBDb2RlLlxuXG42LiAqKmphM3Byb3h5KiogKFVwZGF0ZWQ6IEFwciAyOCwgMjAyNSlcbiAgIC0gQ3VzdG9taXppbmcgVExTIChKQTMpIEZpbmdlcnByaW50cyB0aHJvdWdoIEhUVFAgUHJveHlcblxuNy4gKipjaGVycnktc3R1ZGlvKiogKFVwZGF0ZWQ6IEFwciAyNSwgMjAyNSlcbiAgIC0g8J+NkiBDaGVycnkgU3R1ZGlvIGlzIGEgZGVza3RvcCBjbGllbnQgdGhhdCBzdXBwb3J0cyBmb3IgbXVsdGlwbGUgTExNIHByb3ZpZGVycy4gU3VwcG9ydCBkZWVwc2Vlay1yMVxuXG44LiAqKm9uZS1hcGkqKiAoVXBkYXRlZDogQXByIDIyLCAyMDI1KVxuICAgLSBBbiBMTE0gQVBJIG1hbmFnZW1lbnQgYW5kIHJlZGlzdHJpYnV0aW9uIHN5c3RlbSBzdXBwb3J0aW5nIG1ham9yIHByb3ZpZGVycyAoT3BlbkFJLCBBenVyZSwgQ2xhdWRlLCBHZW1pbmksIGV0Yy4pIHdpdGggYSB1bmlmaWVkIEFQSS5cblxuOS4gKipqZXRicmFpbnMtY3Vyc29yLXN5bmMqKiAoVXBkYXRlZDogQXByIDE0LCAyMDI1KVxuICAgLSBObyBkZXNjcmlwdGlvblxuXG4xMC4gKipDb21meVVJX2Zyb250ZW5kKiogKFVwZGF0ZWQ6IEFwciA5LCAyMDI1KVxuICAgIC0gT2ZmaWNpYWwgZnJvbnQtZW5kIGltcGxlbWVudGF0aW9uIG9mIENvbWZ5VUlcblxuMTEuICoqbm9kZS1hdXRvaXQta29mZmkqKiAoVXBkYXRlZDogTWFyIDI0LCAyMDI1KVxuICAgIC0gVGhpcyBOb2RlLmpzIG1vZHVsZSBwcm92aWRlcyBzdXBwb3J0IGZvciBhbGwgQXV0b0l0IGZ1bmN0aW9ucywgYWxsb3dpbmcgdXNlcnMgdG8gYXV0b21hdGUgV2luZG93cyBHVUkgdGFza3Mgc2VhbWxlc3NseS5cblxuMTIuICoqY2hhdGJveCoqIChVcGRhdGVkOiBNYXIgMTksIDIwMjUpXG4gICAgLSBVc2VyLWZyaWVuZGx5IERlc2t0b3AgQ2xpZW50IEFwcCBmb3IgQUkgTW9kZWxzL0xMTXMgKEdQVCwgQ2xhdWRlLCBHZW1pbmksIE9sbGFtYS4uLilcblxuMTMuICoqZmlyZWNyYXdsKiogKFVwZGF0ZWQ6IE1hciAxOCwgMjAyNSlcbiAgICAtIPCflKUgVHVybiBlbnRpcmUgd2Vic2l0ZXMgaW50byBMTE0tcmVhZHkgbWFya2Rvd24gb3Igc3RydWN0dXJlZCBkYXRhLiBTY3JhcGUsIGNyYXdsIGFuZCBleHRyYWN0IHdpdGggYSBzaW5nbGUgQVBJLlxuXG4xNC4gKipEQi1HUFQqKiAoVXBkYXRlZDogTWFyIDE4LCAyMDI1KVxuICAgIC0gQUkgTmF0aXZlIERhdGEgQXBwIERldmVsb3BtZW50IGZyYW1ld29yayB3aXRoIEFXRUwoQWdlbnRpYyBXb3JrZmxvdyBFeHByZXNzaW9uIExhbmd1YWdlKSBhbmQgQWdlbnRzXG5cbjE1LiAqKkNvbWZ5VUkqKiAoVXBkYXRlZDogTWFyIDcsIDIwMjUpXG4gICAgLSBUaGUgbW9zdCBwb3dlcmZ1bCBhbmQgbW9kdWxhciBkaWZmdXNpb24gbW9kZWwgR1VJLCBhcGkgYW5kIGJhY2tlbmQgd2l0aCBhIGdyYXBoL25vZGVzIGludGVyZmFjZS5cblxuQW5kIG1hbnkgbW9yZSByZXBvc2l0b3JpZXMgY292ZXJpbmcgdmFyaW91cyB0b3BpY3MgaW5jbHVkaW5nIEFJL01MIHRvb2xzLCBEaXNjb3JkIGJvdHMsIHdlYiBkZXZlbG9wbWVudCB1dGlsaXRpZXMsIGFuZCBhdXRvbWF0aW9uIHRvb2xzLiBUaGUgdXNlciBhcHBlYXJzIHRvIGJlIHZlcnkgYWN0aXZlIGluIHRoZSBBSSBhbmQgYXV0b21hdGlvbiBzcGFjZSwgd2l0aCBtYW55IGZvcmtzIGFuZCBjb250cmlidXRpb25zIHRvIHBvcHVsYXIgb3Blbi1zb3VyY2UgcHJvamVjdHMuXG5cbldvdWxkIHlvdSBsaWtlIG1lIHRvIGdldCBtb3JlIGRldGFpbHMgYWJvdXQgYW55IHNwZWNpZmljIHJlcG9zaXRvcnkgb3Igc2hvdyBhZGRpdGlvbmFsIHJlcG9zaXRvcmllcyBmcm9tIHRoZSBsaXN0P1xuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX1dLCJmZWVkYmFja1N0YXRlcyI6eyJ0ZW1wLWZlLTFlZWMzMzg1LWUxMjEtNGFiYS1iNGNiLTBiNmYxZWFlODk0ZiI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtNDBhZjI5NGUtYzkyMS00NTYyLWJhYWMtZTQyNzBjYTgwYTc1Ijp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifX0sInRvb2xVc2VTdGF0ZXMiOnsiMmI0MzBjY2ItMDA5ZC00OWUzLWIzNjUtNTlkYzIwMzlkZDE5O3Rvb2x1X3ZydHhfMDFMRXFIVENtbVNVTmtlV3R2aE1GTUtKIjp7InJlcXVlc3RJZCI6IjJiNDMwY2NiLTAwOWQtNDllMy1iMzY1LTU5ZGMyMDM5ZGQxOSIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFMRXFIVENtbVNVTmtlV3R2aE1GTUtKIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiLSBjcmVhdGVkX2F0OiAnMjAyMy0wMy0yMVQwODozODo1M1onXG4gIGRlc2NyaXB0aW9uOiBCb3QgQ2hhdEdQVCBmb3IgRGlzY29yZCwgYSBsaWdodHdlaWdodCB5ZXQgcG93ZXJmdWwgdG9vbCB0aGF0IGFsbG93c1xuICAgIGZvciBjdXN0b21pemF0aW9uIG9mIHRlbXBlcmF0dXJlLCBwcm9tcHRzLCBhbmQgbW9yZS5cbiAgbmFtZTogcHktY2hhdGdwdC1kaXNjb3JkLWJvdFxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDUtMTFUMTU6Mjg6NTdaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvcHktY2hhdGdwdC1kaXNjb3JkLWJvdFxuLSBjcmVhdGVkX2F0OiAnMjAyNS0wNS0wOFQwNDoxMToxMlonXG4gIGRlc2NyaXB0aW9uOiBBQ0kuZGV2IGlzIHRoZSBvcGVuIHNvdXJjZSBwbGF0Zm9ybSB0aGF0IGNvbm5lY3RzIHlvdXIgQUkgYWdlbnRzIHRvXG4gICAgNjAwKyB0b29sIGludGVncmF0aW9ucyB3aXRoIG11bHRpLXRlbmFudCBhdXRoLCBncmFudWxhciBwZXJtaXNzaW9ucywgYW5kIGFjY2Vzc1xuICAgIHRocm91Z2ggZGlyZWN0IGZ1bmN0aW9uIGNhbGxpbmcgb3IgYSB1bmlmaWVkIE1DUCBzZXJ2ZXIuXG4gIG5hbWU6IGFjaVxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDUtMDhUMDQ6MTE6MTJaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvYWNpXG4tIGNyZWF0ZWRfYXQ6ICcyMDI1LTA0LTI5VDE3OjM0OjAzWidcbiAgZGVzY3JpcHRpb246IFJBR0Zsb3cgaXMgYW4gb3Blbi1zb3VyY2UgUkFHIChSZXRyaWV2YWwtQXVnbWVudGVkIEdlbmVyYXRpb24pIGVuZ2luZVxuICAgIGJhc2VkIG9uIGRlZXAgZG9jdW1lbnQgdW5kZXJzdGFuZGluZy5cbiAgbmFtZTogcmFnZmxvd1xuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDUtMDdUMDQ6MDk6MjVaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvcmFnZmxvd1xuLSBjcmVhdGVkX2F0OiAnMjAyNS0wNC0yOVQwMjowNDo0NVonXG4gIGRlc2NyaXB0aW9uOiBCdWlsZCBSZWFsLVRpbWUgS25vd2xlZGdlIEdyYXBocyBmb3IgQUkgQWdlbnRzXG4gIG5hbWU6IGdyYXBoaXRpXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wNC0yOVQwMjowNDo0NVonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9ncmFwaGl0aVxuLSBjcmVhdGVkX2F0OiAnMjAyNS0wNC0yOFQwNzoyODozOFonXG4gIGRlc2NyaXB0aW9uOiBEYXl0b25hIGlzIGEgU2VjdXJlIGFuZCBFbGFzdGljIEluZnJhc3RydWN0dXJlIGZvciBSdW5uaW5nIEFJLUdlbmVyYXRlZFxuICAgIENvZGUuXG4gIG5hbWU6IGRheXRvbmFcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTA0LTI4VDA3OjI4OjM4WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2RheXRvbmFcbi0gY3JlYXRlZF9hdDogJzIwMjUtMDQtMjhUMDQ6MzU6MzFaJ1xuICBkZXNjcmlwdGlvbjogQ3VzdG9taXppbmcgVExTIChKQTMpIEZpbmdlcnByaW50cyB0aHJvdWdoIEhUVFAgUHJveHlcbiAgbmFtZTogamEzcHJveHlcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTA0LTI4VDA0OjM1OjMxWidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2phM3Byb3h5XG4tIGNyZWF0ZWRfYXQ6ICcyMDI1LTA0LTA0VDAzOjIyOjA0WidcbiAgZGVzY3JpcHRpb246IPCfjZIgQ2hlcnJ5IFN0dWRpbyBpcyBhIGRlc2t0b3AgY2xpZW50IHRoYXQgc3VwcG9ydHMgZm9yIG11bHRpcGxlIExMTVxuICAgIHByb3ZpZGVycy4gU3VwcG9ydCBkZWVwc2Vlay1yMVxuICBuYW1lOiBjaGVycnktc3R1ZGlvXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wNC0yNVQwNDo1NDoxM1onXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9jaGVycnktc3R1ZGlvXG4tIGNyZWF0ZWRfYXQ6ICcyMDI1LTA0LTE4VDEzOjQ4OjQ1WidcbiAgZGVzY3JpcHRpb246IEFuIExMTSBBUEkgbWFuYWdlbWVudCBhbmQgcmVkaXN0cmlidXRpb24gc3lzdGVtIHN1cHBvcnRpbmcgbWFqb3IgcHJvdmlkZXJzXG4gICAgKE9wZW5BSSwgQXp1cmUsIENsYXVkZSwgR2VtaW5pLCBldGMuKSB3aXRoIGEgdW5pZmllZCBBUEkuIERlcGxveWFibGUgYXMgYSBzaW5nbGVcbiAgICBiaW5hcnkgb3IgRG9ja2VyIGltYWdlLCBmZWF0dXJpbmcgYW4gRW5nbGlzaCBVSS5cbiAgbmFtZTogb25lLWFwaVxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDQtMjJUMTc6MTc6NDdaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvb25lLWFwaVxuLSBjcmVhdGVkX2F0OiAnMjAyNC0wOS0yNlQxNDowMToyN1onXG4gIG5hbWU6IGpldGJyYWlucy1jdXJzb3Itc3luY1xuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDQtMTRUMDQ6MDY6MjFaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvamV0YnJhaW5zLWN1cnNvci1zeW5jXG4tIGNyZWF0ZWRfYXQ6ICcyMDI0LTExLTIzVDE5OjQ0OjMxWidcbiAgZGVzY3JpcHRpb246IE9mZmljaWFsIGZyb250LWVuZCBpbXBsZW1lbnRhdGlvbiBvZiBDb21meVVJXG4gIG5hbWU6IENvbWZ5VUlfZnJvbnRlbmRcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTA0LTA5VDA5OjU1OjU1WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL0NvbWZ5VUlfZnJvbnRlbmRcbi0gY3JlYXRlZF9hdDogJzIwMjQtMDItMTdUMjI6MDc6MzVaJ1xuICBkZXNjcmlwdGlvbjogVGhpcyBOb2RlLmpzIG1vZHVsZSBwcm92aWRlcyBzdXBwb3J0IGZvciBhbGwgQXV0b0l0IGZ1bmN0aW9ucywgYWxsb3dpbmdcbiAgICB1c2VycyB0byBhdXRvbWF0ZSBXaW5kb3dzIEdVSSB0YXNrcyBzZWFtbGVzc2x5LlxuICBuYW1lOiBub2RlLWF1dG9pdC1rb2ZmaVxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDMtMjRUMDk6MTU6NDhaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvbm9kZS1hdXRvaXQta29mZmlcbi0gY3JlYXRlZF9hdDogJzIwMjQtMTItMjNUMTQ6NTI6MzNaJ1xuICBkZXNjcmlwdGlvbjogVXNlci1mcmllbmRseSBEZXNrdG9wIENsaWVudCBBcHAgZm9yIEFJIE1vZGVscy9MTE1zIChHUFQsIENsYXVkZSwgR2VtaW5pLFxuICAgIE9sbGFtYS4uLilcbiAgbmFtZTogY2hhdGJveFxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDMtMTlUMTE6MTc6MzZaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvY2hhdGJveFxuLSBjcmVhdGVkX2F0OiAnMjAyNS0wMi0wNlQwNzoyMDoxNVonXG4gIGRlc2NyaXB0aW9uOiDwn5SlIFR1cm4gZW50aXJlIHdlYnNpdGVzIGludG8gTExNLXJlYWR5IG1hcmtkb3duIG9yIHN0cnVjdHVyZWQgZGF0YS5cbiAgICBTY3JhcGUsIGNyYXdsIGFuZCBleHRyYWN0IHdpdGggYSBzaW5nbGUgQVBJLlxuICBuYW1lOiBmaXJlY3Jhd2xcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAzLTE4VDIwOjU1OjA1WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2ZpcmVjcmF3bFxuLSBjcmVhdGVkX2F0OiAnMjAyNS0wMy0xOFQwMzozMDoxNFonXG4gIGRlc2NyaXB0aW9uOiBBSSBOYXRpdmUgRGF0YSBBcHAgRGV2ZWxvcG1lbnQgZnJhbWV3b3JrIHdpdGggQVdFTChBZ2VudGljIFdvcmtmbG93XG4gICAgRXhwcmVzc2lvbiBMYW5ndWFnZSkgYW5kIEFnZW50c1xuICBuYW1lOiBEQi1HUFRcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAzLTE4VDAzOjMwOjE0WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL0RCLUdQVFxuLSBjcmVhdGVkX2F0OiAnMjAyNC0xMS0yMlQxMTo1OToyNFonXG4gIGRlc2NyaXB0aW9uOiBUaGUgbW9zdCBwb3dlcmZ1bCBhbmQgbW9kdWxhciBkaWZmdXNpb24gbW9kZWwgR1VJLCBhcGkgYW5kIGJhY2tlbmRcbiAgICB3aXRoIGEgZ3JhcGgvbm9kZXMgaW50ZXJmYWNlLlxuICBuYW1lOiBDb21meVVJXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wMy0wN1QxNDozMzo1NVonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9Db21meVVJXG4tIGNyZWF0ZWRfYXQ6ICcyMDI1LTAzLTA2VDAzOjM4OjIwWidcbiAgZGVzY3JpcHRpb246IEJvdHByZXNzIE9TUyDigJMgdjEyXG4gIG5hbWU6IHYxMlxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDMtMDZUMDM6Mzg6MjBaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvdjEyXG4tIGNyZWF0ZWRfYXQ6ICcyMDI1LTAzLTA2VDAyOjU5OjMwWidcbiAgZGVzY3JpcHRpb246IFRoZSBvcGVuLXNvdXJjZSBodWIgdG8gYnVpbGQgJiBkZXBsb3kgR1BUL0xMTSBBZ2VudHMg4pqh77iPXG4gIG5hbWU6IGJvdHByZXNzXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wMy0wNlQwMjo1OTozMFonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9ib3RwcmVzc1xuLSBjcmVhdGVkX2F0OiAnMjAyNS0wMy0wNFQwNzo1MTowN1onXG4gIG5hbWU6IGF1dG8tZml4LW5ldHdvcmtcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAzLTA0VDA3OjUzOjM4WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2F1dG8tZml4LW5ldHdvcmtcbi0gY3JlYXRlZF9hdDogJzIwMjMtMDQtMTBUMDU6NDE6MTBaJ1xuICBkZXNjcmlwdGlvbjogQSBDaGF0R1BUIGNsb25lIHdpdGggcG93ZXJmdWwgZmVhdHVyZXMgdGhhdCB5b3UndmUgbmV2ZXIgc2VlbiBiZWZvcmUsXG4gICAgY2FwYWJsZSBvZiBpbnRlcmFjdGluZyB3aXRoIHlvdXIgcHJpdmF0ZSBkb2N1bWVudHNcbiAgbmFtZTogY2hhdGdwdC13ZWJcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAyLTIxVDE1OjU2OjMxWidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2NoYXRncHQtd2ViXG4tIGNyZWF0ZWRfYXQ6ICcyMDI1LTAxLTA3VDE4OjQyOjAxWidcbiAgbmFtZTogY2Fwcm92ZXItY29tcG9zZVxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDItMTNUMDI6MjE6NDlaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvY2Fwcm92ZXItY29tcG9zZVxuLSBjcmVhdGVkX2F0OiAnMjAyNC0xMS0yNlQwMzowMToyOFonXG4gIG5hbWU6IENvbWZ5VUlfTExNXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNS0wMi0xMFQxOToyOTo0OVonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9Db21meVVJX0xMTVxuLSBjcmVhdGVkX2F0OiAnMjAyMy0wMy0yMFQxNzo0MjozOFonXG4gIGRlc2NyaXB0aW9uOiDim5PvuI8gTGFuZ0Zsb3cgaXMgYSBVSSBmb3IgTGFuZ0NoYWluLCBkZXNpZ25lZCB3aXRoIHJlYWN0LWZsb3cgdG8gcHJvdmlkZVxuICAgIGFuIGVmZm9ydGxlc3Mgd2F5IHRvIGV4cGVyaW1lbnQgYW5kIHByb3RvdHlwZSBmbG93cy5cbiAgbmFtZTogbGFuZ2Zsb3dcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAxLTIxVDAzOjQ1OjI1WidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL2xhbmdmbG93XG4tIGNyZWF0ZWRfYXQ6ICcyMDIyLTA2LTIxVDA4OjEwOjE4WidcbiAgZGVzY3JpcHRpb246IE11bHRpY2FsbCBpbXBsZW1lbnRlZCBpbiBnb2xhbmcgd2l0aCBleHRyYSBvcHRpb25zIHRvIGJyaW5nIGJlc3QgZGV2ZWxvcG1lbnRcbiAgICBleHBlcmllbmNlXG4gIG5hbWU6IG11bHRpY2FsbC1nb1xuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDEtMDdUMTQ6MDc6MDRaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvbXVsdGljYWxsLWdvXG4tIGNyZWF0ZWRfYXQ6ICcyMDI1LTAxLTAzVDA2OjU5OjI2WidcbiAgZGVzY3JpcHRpb246IEEgc2ltcGxlIGFuZCBzdGFuZGFsb25lIFdlYkRBViBzZXJ2ZXIuXG4gIG5hbWU6IHdlYmRhdlxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDEtMDNUMDY6NTk6MjZaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvd2ViZGF2XG4tIGNyZWF0ZWRfYXQ6ICcyMDI1LTAxLTAzVDA0OjE4OjQzWidcbiAgZGVzY3JpcHRpb246IENhcFJvdmVyIFdlYnNpdGUgYW5kIERvY3NcbiAgbmFtZTogY2Fwcm92ZXItd2Vic2l0ZVxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjUtMDEtMDNUMDQ6MTg6NDNaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvY2Fwcm92ZXItd2Vic2l0ZVxuLSBjcmVhdGVkX2F0OiAnMjAyNS0wMS0wMlQxMjo1NDowNlonXG4gIG5hbWU6IHRoaW5rLXByb21wdC50eHRcbiAgb3duZXI6XG4gICAgbG9naW46IG51bGxtYXN0ZXJtaW5kXG4gICAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL251bGxtYXN0ZXJtaW5kXG4gIHVwZGF0ZWRfYXQ6ICcyMDI1LTAxLTAyVDE1OjA5OjUyWidcbiAgdXJsOiBodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL251bGxtYXN0ZXJtaW5kL3RoaW5rLXByb21wdC50eHRcbi0gY3JlYXRlZF9hdDogJzIwMjQtMDItMjdUMDQ6MTg6MjBaJ1xuICBkZXNjcmlwdGlvbjogVGhpcyBwcm9qZWN0IGlzIGEgdXRpbGl0eSB0byBzeW5jIE15U1FMIGRhdGEgdG8gTWVpbGlTZWFyY2ggaW4gcmVhbFxuICAgIHRpbWVcbiAgbmFtZTogTWVpbGlTeW5jLU15U1FMXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNC0xMi0xOVQxNDoxMzoyMFonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9NZWlsaVN5bmMtTXlTUUxcbi0gY3JlYXRlZF9hdDogJzIwMjQtMTEtMjhUMTU6NTY6NDFaJ1xuICBkZXNjcmlwdGlvbjogQSBncmFwaCBub2RlIGVuZ2luZSBhbmQgZWRpdG9yIHdyaXR0ZW4gaW4gSmF2YXNjcmlwdCBzaW1pbGFyIHRvIFBEXG4gICAgb3IgVURLIEJsdWVwcmludHMsIGNvbWVzIHdpdGggaXRzIG93biBlZGl0b3IgaW4gSFRNTDUgQ2FudmFzMkQuIFRoZSBlbmdpbmUgY2FuXG4gICAgcnVuIGNsaWVudCBzaWRlIG9yIHNlcnZlciBzaWRlIHVzaW5nIE5vZGUuIEl0IGFsbG93cyB0byBleHBvcnQgZ3JhcGhzIGFzIEpTT05zXG4gICAgdG8gYmUgaW5jbHVkZWQgaW4gYXBwbGljYXRpb25zIGluZGVwZW5kZW50bHkuXG4gIG5hbWU6IGxpdGVncmFwaC5qc1xuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjQtMTItMDlUMTY6NDg6MjhaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvbGl0ZWdyYXBoLmpzXG4tIGNyZWF0ZWRfYXQ6ICcyMDIyLTAxLTA3VDA0OjEyOjM4WidcbiAgZGVzY3JpcHRpb246IEFkZCBhIGJhdGNoIHByb2Nlc3NpbmcgdG9vbCB3aXRoIGZ1bGx5IGN1c3RvbWl6YWJsZSBwYXJhbWV0ZXJzIHRvIGF1dG9tYXRlXG4gICAgeW91ciBJbmtzY2FwZSB0YXNrcyBtb3JlIGVhc2lseS5cbiAgbmFtZTogaW5rc2NhcGUtZm9yLXRyYWNlXG4gIG93bmVyOlxuICAgIGxvZ2luOiBudWxsbWFzdGVybWluZFxuICAgIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9udWxsbWFzdGVybWluZFxuICB1cGRhdGVkX2F0OiAnMjAyNC0xMi0wOVQxMzozOTozMVonXG4gIHVybDogaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9udWxsbWFzdGVybWluZC9pbmtzY2FwZS1mb3ItdHJhY2Vcbi0gY3JlYXRlZF9hdDogJzIwMjQtMTEtMjlUMjA6MzQ6MTJaJ1xuICBuYW1lOiB0cmFuc2xhdGlvbi1hZ2VudFxuICBvd25lcjpcbiAgICBsb2dpbjogbnVsbG1hc3Rlcm1pbmRcbiAgICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvbnVsbG1hc3Rlcm1pbmRcbiAgdXBkYXRlZF9hdDogJzIwMjQtMTEtMjlUMjA6MzQ6MTJaJ1xuICB1cmw6IGh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbnVsbG1hc3Rlcm1pbmQvdHJhbnNsYXRpb24tYWdlbnRcbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX19LCJkcmFmdEV4Y2hhbmdlIjp7InJlcXVlc3RfbWVzc2FnZSI6IiIsInJpY2hfdGV4dF9qc29uX3JlcHIiOnsidHlwZSI6ImRvYyIsImNvbnRlbnQiOlt7InR5cGUiOiJwYXJhZ3JhcGgifV19LCJzdGF0dXMiOiJkcmFmdCJ9LCJkcmFmdEFjdGl2ZUNvbnRleHRJZHMiOlsiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94ZmFsc2VmYWxzZSIsIkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluZmFsc2VmYWxzZSIsInVzZXJHdWlkZWxpbmVzIiwiYWdlbnRNZW1vcmllcyJdLCJyZXF1ZXN0SWRzIjpbXSwiaXNQaW5uZWQiOmZhbHNlLCJpc1NoYXJlYWJsZSI6dHJ1ZSwiZXh0cmFEYXRhIjp7ImlzQWdlbnRDb252ZXJzYXRpb24iOnRydWUsImhhc0RpcnR5RWRpdHMiOmZhbHNlfSwicGVyc29uYVR5cGUiOjAsInJvb3RUYXNrVXVpZCI6IjEzZDUxMjQwLTMyNDEtNGQ2Zi1iMTU0LWU5OWZlNjBkMGNkYiJ9LCJkNDFmZmM4My03NDRlLTQ5N2YtYTg0MC00MDA4ZTA3ZTZmMDkiOnsiaWQiOiJkNDFmZmM4My03NDRlLTQ5N2YtYTg0MC00MDA4ZTA3ZTZmMDkiLCJjcmVhdGVkQXRJc28iOiIyMDI1LTA1LTMwVDAzOjUzOjQ1LjIwOVoiLCJsYXN0SW50ZXJhY3RlZEF0SXNvIjoiMjAyNS0wNS0zMFQwMzo1NToyNy40ODJaIiwiY2hhdEhpc3RvcnkiOlt7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiMTI5M2E3ZjMtYjBkZS00YjZjLThkMjAtYTFkM2QxMGY5ZTEzIiwicmVxdWVzdF9tZXNzYWdlIjoiZ2l0aHViIHRyZW5kaW5nIHRvZGF5IiwicmljaF90ZXh0X2pzb25fcmVwciI6eyJ0eXBlIjoiZG9jIiwiY29udGVudCI6W3sidHlwZSI6InBhcmFncmFwaCIsImNvbnRlbnQiOlt7InR5cGUiOiJ0ZXh0IiwidGV4dCI6ImdpdGh1YiB0cmVuZGluZyB0b2RheSJ9XX1dfSwibWVudGlvbmVkX2l0ZW1zIjpbXSwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxS0JqYXRZQm5aWWIzVzZlTFZQZDU3ZyIsInRvb2xfbmFtZSI6IndlYi1zZWFyY2giLCJpbnB1dF9qc29uIjoie1wicXVlcnlcIjogXCJHaXRIdWIgdHJlbmRpbmcgcmVwb3NpdG9yaWVzIHRvZGF5XCIsIFwibnVtX3Jlc3VsdHNcIjogNX0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJJJ2xsIGhlbHAgeW91IGZpbmQgdGhlIEdpdEh1YiB0cmVuZGluZyByZXBvc2l0b3JpZXMgZm9yIHRvZGF5LiBMZXQgbWUgc2VhcmNoIGZvciB0aGUgY3VycmVudCBHaXRIdWIgdHJlbmRpbmcgaW5mb3JtYXRpb24uXG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJ0ZXh0X25vZGUiOnsiY29udGVudCI6ImdpdGh1YiB0cmVuZGluZyB0b2RheSJ9fSx7ImlkIjoxLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluIiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluIn1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1Mzo1My42MjVaIiwicmVzcG9uc2VfdGV4dCI6IkknbGwgaGVscCB5b3UgZmluZCB0aGUgR2l0SHViIHRyZW5kaW5nIHJlcG9zaXRvcmllcyBmb3IgdG9kYXkuIExldCBtZSBzZWFyY2ggZm9yIHRoZSBjdXJyZW50IEdpdEh1YiB0cmVuZGluZyBpbmZvcm1hdGlvbi5cbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiIzMjk2NmMwMC00ODhkLTQxYTUtOWExNC00YzMxZTA2NTcyOGIiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDE3Q3RDSHBMY1FkZHljVUFRVjczRERHIiwidG9vbF9uYW1lIjoid2ViLWZldGNoIiwiaW5wdXRfanNvbiI6IntcInVybFwiOiBcImh0dHBzOi8vZ2l0aHViLmNvbS90cmVuZGluZ1wifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IkxldCBtZSBmZXRjaCB0aGUgYWN0dWFsIEdpdEh1YiB0cmVuZGluZyBwYWdlIHRvIGdldCB0aGUgbW9zdCBjdXJyZW50IHRyZW5kaW5nIHJlcG9zaXRvcmllczpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6Ii0gW1RyZW5kaW5nIHJlcG9zaXRvcmllcyBvbiBHaXRIdWIgdG9kYXkgwrcgR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vdHJlbmRpbmcpXG4gIGxpdmVzdG9yZWpzIC8gbGl2ZXN0b3JlLiBMaXZlU3RvcmUgaXMgYSBuZXh0LWdlbmVyYXRpb24gc3RhdGUgbWFuYWdlbWVudCBmcmFtZXdvcmsgYmFzZWQgb24gcmVhY3RpdmUgU1FMaXRlIGFuZCBidWlsdC1pbiBzeW5jIGVuZ2luZS4gVHlwZVNjcmlwdCAxLDQzNiAyNSBCdWlsdMKgLi4uXG5cbi0gW1RyZW5kc2hpZnQgLSBFeHBsb3JlIG9wZW4tc291cmNlIHJlcG9zaXRvcmllcyBhbmQgZmluZCBzb21lIGluc2lnaHRzXShodHRwczovL3RyZW5kc2hpZnQuaW8vKVxuICBFeHBsb3JlIG9wZW4tc291cmNlIHJlcG9zaXRvcmllcyB3aXRoIHRyZW5kaW5nIGRhdGEgZnJvbSBHaXRIdWIsIGVtYmVkIGEgYmFkZ2UsIGFuZCBzaG93Y2FzZSBpdCBpbiB5b3VyIHJlcG9zaXRvcnkuXG5cbi0gW1RyZW5kaW5nIHJlcG9zaXRvcmllcyBvbiBHaXRIdWIgdG9kYXldKGh0dHBzOi8vZ2l0aHViLmNvbS90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT16aClcbiAg44CM5pWw5o2u5Y+v6KeG5YyW77ya5oql6KGo44CB5aSn5bGP44CB5pWw5o2u55yL5p2/44CN56ev5pyo5oql6KGo5piv5LiA5qy+57G7RXhjZWzmk43kvZzpo47moLzvvIzlnKjnur/mi5bmi73orr7orqHnmoTmiqXooajlt6XlhbflkozlkozmlbDmja7lj6/op4bljJbkuqflk4HjgILlip/og73mtrXnm5Y6IOaKpeihqOiuvuiuoeOAgeWkp+Wxj+iuvuiuoeOAgeaJk+WNsOiuvuiuoeOAgeWbvuW9ouaKpeihqOOAgcKgLi4uXG5cbi0gW0lzIHRoZXJlIGEgd2F5IHRvIHNlZSBtb3JlIHRyZW5kaW5nIHJlcG9zaXRvcmllcyBpbiBHaXRodWIgKGdpdGh1YiAuLi5dKGh0dHBzOi8vd3d3LnJlZGRpdC5jb20vci9naXRodWIvY29tbWVudHMvMWIzZXc1ZC9pc190aGVyZV9hX3dheV90b19zZWVfbW9yZV90cmVuZGluZ19yZXBvc2l0b3JpZXMvKVxuICBGZWIgMjksIDIwMjQgLi4uIEl0J3MgYSAzcmQgcGFydHkgc2l0ZSB0aGF0IGhhcyBpdHMgb3duIHZlcnNpb24gb2YgR2l0SHViIHRyZW5kaW5nIHJlcG9zLiBKdXN0IGJlIGNhcmVmdWwgd2hhdCB5b3UgY2xpY2sgb24uIEl0J3MgaGVhdmlseSBnYW1lZCBmb3IgbWFsd2FyZS5cblxuLSBbVHJlbmRpbmcgUHl0aG9uIHJlcG9zaXRvcmllcyBvbiBHaXRIdWIgdG9kYXkgwrcgR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vdHJlbmRpbmcvcHl0aG9uKVxuICBGdWxseSBMb2NhbCBNYW51cyBBSS4gTm8gQVBJcywgTm8gJDIwMCBtb250aGx5IGJpbGxzLiBFbmpveSBhbiBhdXRvbm9tb3VzIGFnZW50IHRoYXQgdGhpbmtzLCBicm93c2VzIHRoZSB3ZWIsIGFuZCBjb2RlIGZvciB0aGUgc29sZSBjb3N0IG9mIGVsZWN0cmljaXR5LiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUtCamF0WUJuWlliM1c2ZUxWUGQ1N2cifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2V9fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDM6NTM6NTcuNDM3WiIsInJlc3BvbnNlX3RleHQiOiJMZXQgbWUgZmV0Y2ggdGhlIGFjdHVhbCBHaXRIdWIgdHJlbmRpbmcgcGFnZSB0byBnZXQgdGhlIG1vc3QgY3VycmVudCB0cmVuZGluZyByZXBvc2l0b3JpZXM6XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiZGJmMGM2ZTEtYzYzZS00ZWRhLTk0ODgtNzk0Y2E0ODcyYmMzIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiQmFzZWQgb24gdGhlIEdpdEh1YiB0cmVuZGluZyBwYWdlIEkgZmV0Y2hlZCwgaGVyZSBhcmUgdGhlICoqdG9wIHRyZW5kaW5nIHJlcG9zaXRvcmllcyBvbiBHaXRIdWIgdG9kYXkqKjpcblxuIyMg8J+UpSBUb3AgR2l0SHViIFRyZW5kaW5nIFJlcG9zaXRvcmllcyBUb2RheVxuXG4jIyMgMS4gKipGb3Nvd2wvYWdlbnRpY1NlZWsqKiDirZAgMTMsMTM1IHN0YXJzICgrMSw4NjQgdG9kYXkpXG4tICoqTGFuZ3VhZ2U6KiogUHl0aG9uXG4tICoqRGVzY3JpcHRpb246KiogRnVsbHkgTG9jYWwgTWFudXMgQUkuIE5vIEFQSXMsIE5vICQyMDAgbW9udGhseSBiaWxscy4gRW5qb3kgYW4gYXV0b25vbW91cyBhZ2VudCB0aGF0IHRoaW5rcywgYnJvd3NlcyB0aGUgd2ViLCBhbmQgY29kZSBmb3IgdGhlIHNvbGUgY29zdCBvZiBlbGVjdHJpY2l0eS5cblxuIyMjIDIuICoqbjhuLWlvL244bioqIOKtkCAxMDEsMTQ0IHN0YXJzICgrNzQ5IHRvZGF5KVxuLSAqKkxhbmd1YWdlOioqIFR5cGVTY3JpcHQgIFxuLSAqKkRlc2NyaXB0aW9uOioqIEZhaXItY29kZSB3b3JrZmxvdyBhdXRvbWF0aW9uIHBsYXRmb3JtIHdpdGggbmF0aXZlIEFJIGNhcGFiaWxpdGllcy4gQ29tYmluZSB2aXN1YWwgYnVpbGRpbmcgd2l0aCBjdXN0b20gY29kZSwgc2VsZi1ob3N0IG9yIGNsb3VkLCA0MDArIGludGVncmF0aW9ucy5cblxuIyMjIDMuICoqbGFuZ2Zsb3ctYWkvbGFuZ2Zsb3cqKiDirZAgNjYsMzA2IHN0YXJzICgrNzUzIHRvZGF5KVxuLSAqKkxhbmd1YWdlOioqIFB5dGhvblxuLSAqKkRlc2NyaXB0aW9uOioqIExhbmdmbG93IGlzIGEgcG93ZXJmdWwgdG9vbCBmb3IgYnVpbGRpbmcgYW5kIGRlcGxveWluZyBBSS1wb3dlcmVkIGFnZW50cyBhbmQgd29ya2Zsb3dzLlxuXG4jIyMgNC4gKiphbnRocm9waWNzL3Byb21wdC1lbmctaW50ZXJhY3RpdmUtdHV0b3JpYWwqKiDirZAgNCw3OTYgc3RhcnMgKCs3MzYgdG9kYXkpXG4tICoqTGFuZ3VhZ2U6KiogSnVweXRlciBOb3RlYm9va1xuLSAqKkRlc2NyaXB0aW9uOioqIEFudGhyb3BpYydzIEludGVyYWN0aXZlIFByb21wdCBFbmdpbmVlcmluZyBUdXRvcmlhbFxuXG4jIyMgNS4gKipvc3N1L2NvbXB1dGVyLXNjaWVuY2UqKiDirZAgMTg0LDQ2MyBzdGFycyAoKzQyNyB0b2RheSlcbi0gKipMYW5ndWFnZToqKiBIVE1MXG4tICoqRGVzY3JpcHRpb246Kiog8J+OkyBQYXRoIHRvIGEgZnJlZSBzZWxmLXRhdWdodCBlZHVjYXRpb24gaW4gQ29tcHV0ZXIgU2NpZW5jZSFcblxuIyMjIDYuICoqdHJpbXN0cmF5L3RoZS1ib29rLW9mLXNlY3JldC1rbm93bGVkZ2UqKiDirZAgMTcwLDk1OSBzdGFycyAoKzMwOSB0b2RheSlcbi0gKipMYW5ndWFnZToqKiBOb25lXG4tICoqRGVzY3JpcHRpb246KiogQSBjb2xsZWN0aW9uIG9mIGluc3BpcmluZyBsaXN0cywgbWFudWFscywgY2hlYXRzaGVldHMsIGJsb2dzLCBoYWNrcywgb25lLWxpbmVycywgY2xpL3dlYiB0b29scyBhbmQgbW9yZS5cblxuIyMjIDcuICoqbGl2ZXN0b3JlanMvbGl2ZXN0b3JlKiog4q2QIDEsNTQwIHN0YXJzICgrMzAzIHRvZGF5KVxuLSAqKkxhbmd1YWdlOioqIFR5cGVTY3JpcHRcbi0gKipEZXNjcmlwdGlvbjoqKiBMaXZlU3RvcmUgaXMgYSBuZXh0LWdlbmVyYXRpb24gc3RhdGUgbWFuYWdlbWVudCBmcmFtZXdvcmsgYmFzZWQgb24gcmVhY3RpdmUgU1FMaXRlIGFuZCBidWlsdC1pbiBzeW5jIGVuZ2luZS5cblxuIyMjIDguICoqbWljcm9zb2Z0L2FpLWFnZW50cy1mb3ItYmVnaW5uZXJzKiog4q2QIDIyLDI5NSBzdGFycyAoKzIxOSB0b2RheSlcbi0gKipMYW5ndWFnZToqKiBKdXB5dGVyIE5vdGVib29rXG4tICoqRGVzY3JpcHRpb246KiogMTEgTGVzc29ucyB0byBHZXQgU3RhcnRlZCBCdWlsZGluZyBBSSBBZ2VudHNcblxuIyMjIDkuICoqNzgveGlhb3poaS1lc3AzMioqIOKtkCAxMyw5OTIgc3RhcnMgKCsxNzggdG9kYXkpXG4tICoqTGFuZ3VhZ2U6KiogQysrXG4tICoqRGVzY3JpcHRpb246KiogQnVpbGQgeW91ciBvd24gQUkgZnJpZW5kXG5cbiMjIyAxMC4gKipLd2FpVkdJL0xpdmVQb3J0cmFpdCoqIOKtkCAxNSwzOTYgc3RhcnMgKCsxNjkgdG9kYXkpXG4tICoqTGFuZ3VhZ2U6KiogUHl0aG9uXG4tICoqRGVzY3JpcHRpb246KiogQnJpbmcgcG9ydHJhaXRzIHRvIGxpZmUhXG5cbiMjIPCfk4ggS2V5IFRyZW5kcyBUb2RheTpcbi0gKipBSS9NTCBkb21pbmFuY2UqKjogTWFueSB0cmVuZGluZyByZXBvcyBhcmUgQUktcmVsYXRlZCAoYXV0b25vbW91cyBhZ2VudHMsIHByb21wdCBlbmdpbmVlcmluZywgQUkgd29ya2Zsb3dzKVxuLSAqKkxvY2FsIEFJIHNvbHV0aW9ucyoqOiBGb2N1cyBvbiBzZWxmLWhvc3RlZCwgY29zdC1lZmZlY3RpdmUgQUkgYWx0ZXJuYXRpdmVzXG4tICoqRWR1Y2F0aW9uYWwgY29udGVudCoqOiBDb21wdXRlciBzY2llbmNlIGxlYXJuaW5nIHBhdGhzIGFuZCBBSSB0dXRvcmlhbHMgYXJlIHBvcHVsYXJcbi0gKipEZXZlbG9wZXIgdG9vbHMqKjogV29ya2Zsb3cgYXV0b21hdGlvbiBhbmQgc3RhdGUgbWFuYWdlbWVudCBmcmFtZXdvcmtzIGdhaW5pbmcgdHJhY3Rpb25cblxuVGhlIHRyZW5kaW5nIHJlcG9zaXRvcmllcyBzaG93IGEgc3Ryb25nIGZvY3VzIG9uIEFJIHRlY2hub2xvZ2llcywgcGFydGljdWxhcmx5IGxvY2FsIGFuZCBjb3N0LWVmZmVjdGl2ZSBBSSBzb2x1dGlvbnMsIGFsb25nIHdpdGggZWR1Y2F0aW9uYWwgcmVzb3VyY2VzIGFuZCBkZXZlbG9wZXIgcHJvZHVjdGl2aXR5IHRvb2xzLlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiICAgICAgICAgICAgICAgVHJlbmRpbmcgcmVwb3NpdG9yaWVzIG9uIEdpdEh1YiB0b2RheSDCtyBHaXRIdWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXG5bU2tpcCB0byBjb250ZW50XSgjc3RhcnQtb2YtY29udGVudCkgICBcblxuTmF2aWdhdGlvbiBNZW51XG4tLS0tLS0tLS0tLS0tLS1cblxuVG9nZ2xlIG5hdmlnYXRpb25cblxuW10oLylcblxuW1NpZ24gaW5dKC9sb2dpbj9yZXR1cm5fdG89aHR0cHMlM0ElMkYlMkZnaXRodWIuY29tJTJGdHJlbmRpbmcpXG5cbkFwcGVhcmFuY2Ugc2V0dGluZ3NcblxuKiAgIFByb2R1Y3RcbiAgICBcbiAgICAqICAgW1xuICAgICAgICBcbiAgICAgICAgR2l0SHViIENvcGlsb3RcbiAgICAgICAgXG4gICAgICAgIFdyaXRlIGJldHRlciBjb2RlIHdpdGggQUlcbiAgICAgICAgXG4gICAgICAgIF0oaHR0cHM6Ly9naXRodWIuY29tL2ZlYXR1cmVzL2NvcGlsb3QpXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIEdpdEh1YiBNb2RlbHMgTmV3XG4gICAgICAgIFxuICAgICAgICBNYW5hZ2UgYW5kIGNvbXBhcmUgcHJvbXB0c1xuICAgICAgICBcbiAgICAgICAgXShodHRwczovL2dpdGh1Yi5jb20vZmVhdHVyZXMvbW9kZWxzKVxuICAgICogICBbXG4gICAgICAgIFxuICAgICAgICBHaXRIdWIgQWR2YW5jZWQgU2VjdXJpdHlcbiAgICAgICAgXG4gICAgICAgIEZpbmQgYW5kIGZpeCB2dWxuZXJhYmlsaXRpZXNcbiAgICAgICAgXG4gICAgICAgIF0oaHR0cHM6Ly9naXRodWIuY29tL3NlY3VyaXR5L2FkdmFuY2VkLXNlY3VyaXR5KVxuICAgICogICBbXG4gICAgICAgIFxuICAgICAgICBBY3Rpb25zXG4gICAgICAgIFxuICAgICAgICBBdXRvbWF0ZSBhbnkgd29ya2Zsb3dcbiAgICAgICAgXG4gICAgICAgIF0oaHR0cHM6Ly9naXRodWIuY29tL2ZlYXR1cmVzL2FjdGlvbnMpXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIENvZGVzcGFjZXNcbiAgICAgICAgXG4gICAgICAgIEluc3RhbnQgZGV2IGVudmlyb25tZW50c1xuICAgICAgICBcbiAgICAgICAgXShodHRwczovL2dpdGh1Yi5jb20vZmVhdHVyZXMvY29kZXNwYWNlcylcbiAgICBcbiAgICAqICAgW1xuICAgICAgICBcbiAgICAgICAgSXNzdWVzXG4gICAgICAgIFxuICAgICAgICBQbGFuIGFuZCB0cmFjayB3b3JrXG4gICAgICAgIFxuICAgICAgICBdKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWF0dXJlcy9pc3N1ZXMpXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIENvZGUgUmV2aWV3XG4gICAgICAgIFxuICAgICAgICBNYW5hZ2UgY29kZSBjaGFuZ2VzXG4gICAgICAgIFxuICAgICAgICBdKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWF0dXJlcy9jb2RlLXJldmlldylcbiAgICAqICAgW1xuICAgICAgICBcbiAgICAgICAgRGlzY3Vzc2lvbnNcbiAgICAgICAgXG4gICAgICAgIENvbGxhYm9yYXRlIG91dHNpZGUgb2YgY29kZVxuICAgICAgICBcbiAgICAgICAgXShodHRwczovL2dpdGh1Yi5jb20vZmVhdHVyZXMvZGlzY3Vzc2lvbnMpXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIENvZGUgU2VhcmNoXG4gICAgICAgIFxuICAgICAgICBGaW5kIG1vcmUsIHNlYXJjaCBsZXNzXG4gICAgICAgIFxuICAgICAgICBdKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWF0dXJlcy9jb2RlLXNlYXJjaClcbiAgICBcbiAgICBFeHBsb3JlXG4gICAgXG4gICAgKiAgIFtXaHkgR2l0SHViXShodHRwczovL2dpdGh1Yi5jb20vd2h5LWdpdGh1YilcbiAgICAqICAgW0FsbCBmZWF0dXJlc10oaHR0cHM6Ly9naXRodWIuY29tL2ZlYXR1cmVzKVxuICAgICogICBbRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20pXG4gICAgKiAgIFtHaXRIdWIgU2tpbGxzXShodHRwczovL3NraWxscy5naXRodWIuY29tKVxuICAgICogICBbQmxvZ10oaHR0cHM6Ly9naXRodWIuYmxvZylcbiAgICBcbiogICBTb2x1dGlvbnNcbiAgICBcbiAgICBCeSBjb21wYW55IHNpemVcbiAgICBcbiAgICAqICAgW0VudGVycHJpc2VzXShodHRwczovL2dpdGh1Yi5jb20vZW50ZXJwcmlzZSlcbiAgICAqICAgW1NtYWxsIGFuZCBtZWRpdW0gdGVhbXNdKGh0dHBzOi8vZ2l0aHViLmNvbS90ZWFtKVxuICAgICogICBbU3RhcnR1cHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9lbnRlcnByaXNlL3N0YXJ0dXBzKVxuICAgICogICBbTm9ucHJvZml0c10oL3NvbHV0aW9ucy9pbmR1c3RyeS9ub25wcm9maXRzKVxuICAgIFxuICAgIEJ5IHVzZSBjYXNlXG4gICAgXG4gICAgKiAgIFtEZXZTZWNPcHNdKC9zb2x1dGlvbnMvdXNlLWNhc2UvZGV2c2Vjb3BzKVxuICAgICogICBbRGV2T3BzXSgvc29sdXRpb25zL3VzZS1jYXNlL2Rldm9wcylcbiAgICAqICAgW0NJL0NEXSgvc29sdXRpb25zL3VzZS1jYXNlL2NpLWNkKVxuICAgICogICBbVmlldyBhbGwgdXNlIGNhc2VzXSgvc29sdXRpb25zL3VzZS1jYXNlKVxuICAgIFxuICAgIEJ5IGluZHVzdHJ5XG4gICAgXG4gICAgKiAgIFtIZWFsdGhjYXJlXSgvc29sdXRpb25zL2luZHVzdHJ5L2hlYWx0aGNhcmUpXG4gICAgKiAgIFtGaW5hbmNpYWwgc2VydmljZXNdKC9zb2x1dGlvbnMvaW5kdXN0cnkvZmluYW5jaWFsLXNlcnZpY2VzKVxuICAgICogICBbTWFudWZhY3R1cmluZ10oL3NvbHV0aW9ucy9pbmR1c3RyeS9tYW51ZmFjdHVyaW5nKVxuICAgICogICBbR292ZXJubWVudF0oL3NvbHV0aW9ucy9pbmR1c3RyeS9nb3Zlcm5tZW50KVxuICAgICogICBbVmlldyBhbGwgaW5kdXN0cmllc10oL3NvbHV0aW9ucy9pbmR1c3RyeSlcbiAgICBcbiAgICBbVmlldyBhbGwgc29sdXRpb25zXSgvc29sdXRpb25zKVxuICAgIFxuKiAgIFJlc291cmNlc1xuICAgIFxuICAgIFRvcGljc1xuICAgIFxuICAgICogICBbQUldKC9yZXNvdXJjZXMvYXJ0aWNsZXMvYWkpXG4gICAgKiAgIFtEZXZPcHNdKC9yZXNvdXJjZXMvYXJ0aWNsZXMvZGV2b3BzKVxuICAgICogICBbU2VjdXJpdHldKC9yZXNvdXJjZXMvYXJ0aWNsZXMvc2VjdXJpdHkpXG4gICAgKiAgIFtTb2Z0d2FyZSBEZXZlbG9wbWVudF0oL3Jlc291cmNlcy9hcnRpY2xlcy9zb2Z0d2FyZS1kZXZlbG9wbWVudClcbiAgICAqICAgW1ZpZXcgYWxsXSgvcmVzb3VyY2VzL2FydGljbGVzKVxuICAgIFxuICAgIEV4cGxvcmVcbiAgICBcbiAgICAqICAgW0xlYXJuaW5nIFBhdGh3YXlzXShodHRwczovL3Jlc291cmNlcy5naXRodWIuY29tL2xlYXJuL3BhdGh3YXlzKVxuICAgICogICBbRXZlbnRzICYgV2ViaW5hcnNdKGh0dHBzOi8vcmVzb3VyY2VzLmdpdGh1Yi5jb20pXG4gICAgKiAgIFtFYm9va3MgJiBXaGl0ZXBhcGVyc10oaHR0cHM6Ly9naXRodWIuY29tL3Jlc291cmNlcy93aGl0ZXBhcGVycylcbiAgICAqICAgW0N1c3RvbWVyIFN0b3JpZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jdXN0b21lci1zdG9yaWVzKVxuICAgICogICBbUGFydG5lcnNdKGh0dHBzOi8vcGFydG5lci5naXRodWIuY29tKVxuICAgICogICBbRXhlY3V0aXZlIEluc2lnaHRzXShodHRwczovL2dpdGh1Yi5jb20vc29sdXRpb25zL2V4ZWN1dGl2ZS1pbnNpZ2h0cylcbiAgICBcbiogICBPcGVuIFNvdXJjZVxuICAgIFxuICAgICogICBbXG4gICAgICAgIFxuICAgICAgICBHaXRIdWIgU3BvbnNvcnNcbiAgICAgICAgXG4gICAgICAgIEZ1bmQgb3BlbiBzb3VyY2UgZGV2ZWxvcGVyc1xuICAgICAgICBcbiAgICAgICAgXSgvc3BvbnNvcnMpXG4gICAgXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIFRoZSBSZWFkTUUgUHJvamVjdFxuICAgICAgICBcbiAgICAgICAgR2l0SHViIGNvbW11bml0eSBhcnRpY2xlc1xuICAgICAgICBcbiAgICAgICAgXShodHRwczovL2dpdGh1Yi5jb20vcmVhZG1lKVxuICAgIFxuICAgIFJlcG9zaXRvcmllc1xuICAgIFxuICAgICogICBbVG9waWNzXShodHRwczovL2dpdGh1Yi5jb20vdG9waWNzKVxuICAgICogICBbVHJlbmRpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS90cmVuZGluZylcbiAgICAqICAgW0NvbGxlY3Rpb25zXShodHRwczovL2dpdGh1Yi5jb20vY29sbGVjdGlvbnMpXG4gICAgXG4qICAgRW50ZXJwcmlzZVxuICAgIFxuICAgICogICBbXG4gICAgICAgIFxuICAgICAgICBFbnRlcnByaXNlIHBsYXRmb3JtXG4gICAgICAgIFxuICAgICAgICBBSS1wb3dlcmVkIGRldmVsb3BlciBwbGF0Zm9ybVxuICAgICAgICBcbiAgICAgICAgXSgvZW50ZXJwcmlzZSlcbiAgICBcbiAgICBBdmFpbGFibGUgYWRkLW9uc1xuICAgIFxuICAgICogICBbXG4gICAgICAgIFxuICAgICAgICBHaXRIdWIgQWR2YW5jZWQgU2VjdXJpdHlcbiAgICAgICAgXG4gICAgICAgIEVudGVycHJpc2UtZ3JhZGUgc2VjdXJpdHkgZmVhdHVyZXNcbiAgICAgICAgXG4gICAgICAgIF0oaHR0cHM6Ly9naXRodWIuY29tL3NlY3VyaXR5L2FkdmFuY2VkLXNlY3VyaXR5KVxuICAgICogICBbXG4gICAgICAgIFxuICAgICAgICBDb3BpbG90IGZvciBidXNpbmVzc1xuICAgICAgICBcbiAgICAgICAgRW50ZXJwcmlzZS1ncmFkZSBBSSBmZWF0dXJlc1xuICAgICAgICBcbiAgICAgICAgXSgvZmVhdHVyZXMvY29waWxvdC9jb3BpbG90LWJ1c2luZXNzKVxuICAgICogICBbXG4gICAgICAgIFxuICAgICAgICBQcmVtaXVtIFN1cHBvcnRcbiAgICAgICAgXG4gICAgICAgIEVudGVycHJpc2UtZ3JhZGUgMjQvNyBzdXBwb3J0XG4gICAgICAgIFxuICAgICAgICBdKC9wcmVtaXVtLXN1cHBvcnQpXG4gICAgXG4qICAgW1ByaWNpbmddKGh0dHBzOi8vZ2l0aHViLmNvbS9wcmljaW5nKVxuXG5TZWFyY2ggb3IganVtcCB0by4uLlxuXG5TZWFyY2ggY29kZSwgcmVwb3NpdG9yaWVzLCB1c2VycywgaXNzdWVzLCBwdWxsIHJlcXVlc3RzLi4uXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblNlYXJjaFxuXG5DbGVhclxuXG5bU2VhcmNoIHN5bnRheCB0aXBzXShodHRwczovL2RvY3MuZ2l0aHViLmNvbS9zZWFyY2gtZ2l0aHViL2dpdGh1Yi1jb2RlLXNlYXJjaC91bmRlcnN0YW5kaW5nLWdpdGh1Yi1jb2RlLXNlYXJjaC1zeW50YXgpXG5cblByb3ZpZGUgZmVlZGJhY2tcbj09PT09PT09PT09PT09PT1cblxuV2UgcmVhZCBldmVyeSBwaWVjZSBvZiBmZWVkYmFjaywgYW5kIHRha2UgeW91ciBpbnB1dCB2ZXJ5IHNlcmlvdXNseS5cblxuIEluY2x1ZGUgbXkgZW1haWwgYWRkcmVzcyBzbyBJIGNhbiBiZSBjb250YWN0ZWRcblxuQ2FuY2VsIFN1Ym1pdCBmZWVkYmFja1xuXG5TYXZlZCBzZWFyY2hlc1xuPT09PT09PT09PT09PT1cblxuVXNlIHNhdmVkIHNlYXJjaGVzIHRvIGZpbHRlciB5b3VyIHJlc3VsdHMgbW9yZSBxdWlja2x5XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuTmFtZSAgXG5cblF1ZXJ5IFxuXG5UbyBzZWUgYWxsIGF2YWlsYWJsZSBxdWFsaWZpZXJzLCBzZWUgb3VyIFtkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MuZ2l0aHViLmNvbS9zZWFyY2gtZ2l0aHViL2dpdGh1Yi1jb2RlLXNlYXJjaC91bmRlcnN0YW5kaW5nLWdpdGh1Yi1jb2RlLXNlYXJjaC1zeW50YXgpLlxuXG5DYW5jZWwgQ3JlYXRlIHNhdmVkIHNlYXJjaFxuXG5bU2lnbiBpbl0oL2xvZ2luP3JldHVybl90bz1odHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZ0cmVuZGluZylcblxuW1NpZ24gdXBdKC9zaWdudXA/cmVmX2N0YT1TaWduK3VwJnJlZl9sb2M9aGVhZGVyK2xvZ2dlZCtvdXQmcmVmX3BhZ2U9JTJGdHJlbmRpbmcmc291cmNlPWhlYWRlcilcblxuQXBwZWFyYW5jZSBzZXR0aW5nc1xuXG5SZXNldHRpbmcgZm9jdXNcblxuWW91IHNpZ25lZCBpbiB3aXRoIGFub3RoZXIgdGFiIG9yIHdpbmRvdy4gUmVsb2FkIHRvIHJlZnJlc2ggeW91ciBzZXNzaW9uLiBZb3Ugc2lnbmVkIG91dCBpbiBhbm90aGVyIHRhYiBvciB3aW5kb3cuIFJlbG9hZCB0byByZWZyZXNoIHlvdXIgc2Vzc2lvbi4gWW91IHN3aXRjaGVkIGFjY291bnRzIG9uIGFub3RoZXIgdGFiIG9yIHdpbmRvdy4gUmVsb2FkIHRvIHJlZnJlc2ggeW91ciBzZXNzaW9uLiBEaXNtaXNzIGFsZXJ0XG5cbltFeHBsb3JlXSgvZXhwbG9yZSkgW1RvcGljc10oL3RvcGljcykgW1RyZW5kaW5nXSgvdHJlbmRpbmcpIFtDb2xsZWN0aW9uc10oL2NvbGxlY3Rpb25zKSBbRXZlbnRzXSgvZXZlbnRzKSBbR2l0SHViIFNwb25zb3JzXSgvc3BvbnNvcnMvZXhwbG9yZSlcblxuVHJlbmRpbmdcbj09PT09PT09XG5cblNlZSB3aGF0IHRoZSBHaXRIdWIgY29tbXVuaXR5IGlzIG1vc3QgZXhjaXRlZCBhYm91dCB0b2RheS5cblxuW1JlcG9zaXRvcmllc10oL3RyZW5kaW5nKSBbRGV2ZWxvcGVyc10oL3RyZW5kaW5nL2RldmVsb3BlcnMpXG5cblNwb2tlbiBMYW5ndWFnZTogQW55XG5cblNlbGVjdCBhIHNwb2tlbiBsYW5ndWFnZVxuXG5bQWJraGF6aWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9YWIpIFtBZmFyXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9YWEpIFtBZnJpa2FhbnNdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1hZikgW0FrYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1haykgW0FsYmFuaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c3EpIFtBbWhhcmljXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9YW0pIFtBcmFiaWNdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1hcikgW0FyYWdvbmVzZV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWFuKSBbQXJtZW5pYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1oeSkgW0Fzc2FtZXNlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9YXMpIFtBdmFyaWNdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1hdikgW0F2ZXN0YW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1hZSkgW0F5bWFyYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWF5KSBbQXplcmJhaWphbmldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1heikgW0JhbWJhcmFdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ibSkgW0Jhc2hraXJdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1iYSkgW0Jhc3F1ZV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWV1KSBbQmVsYXJ1c2lhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWJlKSBbQmVuZ2FsaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWJuKSBbQmloYXJpIGxhbmd1YWdlc10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWJoKSBbQmlzbGFtYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWJpKSBbQm9zbmlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWJzKSBbQnJldG9uXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9YnIpIFtCdWxnYXJpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1iZykgW0J1cm1lc2VdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1teSkgW0NhdGFsYW4sIFZhbGVuY2lhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWNhKSBbQ2hhbW9ycm9dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1jaCkgW0NoZWNoZW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1jZSkgW0NoaWNoZXdhLCBDaGV3YSwgTnlhbmphXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bnkpIFtDaGluZXNlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9emgpIFtDaHV2YXNoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Y3YpIFtDb3JuaXNoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9a3cpIFtDb3JzaWNhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWNvKSBbQ3JlZV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWNyKSBbQ3JvYXRpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ocikgW0N6ZWNoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Y3MpIFtEYW5pc2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1kYSkgW0RpdmVoaSwgRGhpdmVoaSwgTWFsZGl2aWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9ZHYpIFtEdXRjaCwgRmxlbWlzaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW5sKSBbRHpvbmdraGFdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1keikgW0VuZ2xpc2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1lbikgW0VzcGVyYW50b10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWVvKSBbRXN0b25pYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ldCkgW0V3ZV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWVlKSBbRmFyb2VzZV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWZvKSBbRmlqaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9ZmopIFtGaW5uaXNoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9ZmkpIFtGcmVuY2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1mcikgW0Z1bGFoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9ZmYpIFtHYWxpY2lhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWdsKSBbR2VvcmdpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1rYSkgW0dlcm1hbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWRlKSBbR3JlZWssIE1vZGVybl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWVsKSBbR3VhcmFuaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWduKSBbR3VqYXJhdGldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ndSkgW0hhaXRpYW4sIEhhaXRpYW4gQ3Jlb2xlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9aHQpIFtIYXVzYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWhhKSBbSGVicmV3XSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9aGUpIFtIZXJlcm9dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1oeikgW0hpbmRpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9aGkpIFtIaXJpIE1vdHVdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1obykgW0h1bmdhcmlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWh1KSBbSW50ZXJsaW5ndWEgKEludGVybmF0aW9uYWwgQXV4aWwuLi5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1pYSkgW0luZG9uZXNpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1pZCkgW0ludGVybGluZ3VlLCBPY2NpZGVudGFsXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9aWUpIFtJcmlzaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWdhKSBbSWdib10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWlnKSBbSW51cGlhcV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWlrKSBbSWRvXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9aW8pIFtJY2VsYW5kaWNdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1pcykgW0l0YWxpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1pdCkgW0ludWt0aXR1dF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWl1KSBbSmFwYW5lc2VdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1qYSkgW0phdmFuZXNlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9anYpIFtLYWxhYWxsaXN1dCwgR3JlZW5sYW5kaWNdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1rbCkgW0thbm5hZGFdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1rbikgW0thbnVyaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWtyKSBbS2FzaG1pcmldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1rcykgW0themFraF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWtrKSBbQ2VudHJhbCBLaG1lcl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWttKSBbS2lrdXl1LCBHaWt1eXVdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1raSkgW0tpbnlhcndhbmRhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9cncpIFtLaXJnaGl6LCBLeXJneXpdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1reSkgW0tvbWldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1rdikgW0tvbmdvXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9a2cpIFtLb3JlYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1rbykgW0t1cmRpc2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1rdSkgW0t1YW55YW1hLCBLd2FueWFtYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWtqKSBbTGF0aW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1sYSkgW0x1eGVtYm91cmdpc2gsIExldHplYnVyZ2VzY2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1sYikgW0dhbmRhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bGcpIFtMaW1idXJnYW4sIExpbWJ1cmdlciwgTGltYnVyZ2lzaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWxpKSBbTGluZ2FsYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWxuKSBbTGFvXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bG8pIFtMaXRodWFuaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bHQpIFtMdWJhLUthdGFuZ2FdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1sdSkgW0xhdHZpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1sdikgW01hbnhdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ndikgW01hY2Vkb25pYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1taykgW01hbGFnYXN5XSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bWcpIFtNYWxheV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW1zKSBbTWFsYXlhbGFtXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bWwpIFtNYWx0ZXNlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bXQpIFtNYW9yaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW1pKSBbTWFyYXRoaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW1yKSBbTWFyc2hhbGxlc2VdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1taCkgW01vbmdvbGlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW1uKSBbTmF1cnVdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1uYSkgW05hdmFqbywgTmF2YWhvXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bnYpIFtOb3J0aCBOZGViZWxlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bmQpIFtOZXBhbGldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1uZSkgW05kb25nYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW5nKSBbTm9yd2VnaWFuIEJva23DpWxdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1uYikgW05vcndlZ2lhbiBOeW5vcnNrXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bm4pIFtOb3J3ZWdpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ubykgW1NpY2h1YW4gWWksIE51b3N1XSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9aWkpIFtTb3V0aCBOZGViZWxlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bnIpIFtPY2NpdGFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9b2MpIFtPamlid2FdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1vaikgW0NodXJjaCBTbGF2aWMsIE9sZCBTbGF2b25pYywgQ2h1Li4uXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Y3UpIFtPcm9tb10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW9tKSBbT3JpeWFdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1vcikgW09zc2V0aWFuLCBPc3NldGljXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9b3MpIFtQdW5qYWJpLCBQYW5qYWJpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9cGEpIFtQYWxpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9cGkpIFtQZXJzaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9ZmEpIFtQb2xpc2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1wbCkgW1Bhc2h0bywgUHVzaHRvXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9cHMpIFtQb3J0dWd1ZXNlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9cHQpIFtRdWVjaHVhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9cXUpIFtSb21hbnNoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9cm0pIFtSdW5kaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXJuKSBbUm9tYW5pYW4sIE1vbGRhdmlhbiwgTW9sZG92YW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ybykgW1J1c3NpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ydSkgW1NhbnNrcml0XSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c2EpIFtTYXJkaW5pYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1zYykgW1NpbmRoaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXNkKSBbTm9ydGhlcm4gU2FtaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXNlKSBbU2Ftb2FuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c20pIFtTYW5nb10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXNnKSBbU2VyYmlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXNyKSBbR2FlbGljLCBTY290dGlzaCBHYWVsaWNdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1nZCkgW1Nob25hXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c24pIFtTaW5oYWxhLCBTaW5oYWxlc2VdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1zaSkgW1Nsb3Zha10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXNrKSBbU2xvdmVuaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c2wpIFtTb21hbGldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1zbykgW1NvdXRoZXJuIFNvdGhvXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c3QpIFtTcGFuaXNoLCBDYXN0aWxpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1lcykgW1N1bmRhbmVzZV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXN1KSBbU3dhaGlsaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXN3KSBbU3dhdGldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1zcykgW1N3ZWRpc2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1zdikgW1RhbWlsXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dGEpIFtUZWx1Z3VdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT10ZSkgW1RhamlrXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dGcpIFtUaGFpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dGgpIFtUaWdyaW55YV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXRpKSBbVGliZXRhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWJvKSBbVHVya21lbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXRrKSBbVGFnYWxvZ10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXRsKSBbVHN3YW5hXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dG4pIFtUb25nYSAoVG9uZ2EgSXNsYW5kcyldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT10bykgW1R1cmtpc2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT10cikgW1Rzb25nYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXRzKSBbVGF0YXJdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT10dCkgW1R3aV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXR3KSBbVGFoaXRpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT10eSkgW1VpZ2h1ciwgVXlnaHVyXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dWcpIFtVa3JhaW5pYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT11aykgW1VyZHVdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT11cikgW1V6YmVrXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dXopIFtWZW5kYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXZlKSBbVmlldG5hbWVzZV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXZpKSBbVm9sYXDDvGtdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT12bykgW1dhbGxvb25dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT13YSkgW1dlbHNoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Y3kpIFtXb2xvZl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXdvKSBbV2VzdGVybiBGcmlzaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9ZnkpIFtYaG9zYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXhoKSBbWWlkZGlzaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXlpKSBbWW9ydWJhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9eW8pIFtaaHVhbmcsIENodWFuZ10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXphKSBbWnVsdV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXp1KVxuXG5Mb2FkaW5nXG5cbkxhbmd1YWdlOiBBbnlcblxuU2VsZWN0IGEgbGFuZ3VhZ2VcblxuW1Vua25vd24gbGFuZ3VhZ2VzXSgvdHJlbmRpbmcvdW5rbm93bj9zaW5jZT1kYWlseSkgWzFDIEVudGVycHJpc2VdKC90cmVuZGluZy8xYy1lbnRlcnByaXNlP3NpbmNlPWRhaWx5KSBbMi1EaW1lbnNpb25hbCBBcnJheV0oL3RyZW5kaW5nLzItZGltZW5zaW9uYWwtYXJyYXk/c2luY2U9ZGFpbHkpIFs0RF0oL3RyZW5kaW5nLzRkP3NpbmNlPWRhaWx5KSBbQUJBUF0oL3RyZW5kaW5nL2FiYXA/c2luY2U9ZGFpbHkpIFtBQkFQIENEU10oL3RyZW5kaW5nL2FiYXAtY2RzP3NpbmNlPWRhaWx5KSBbQUJORl0oL3RyZW5kaW5nL2FibmY/c2luY2U9ZGFpbHkpIFtBY3Rpb25TY3JpcHRdKC90cmVuZGluZy9hY3Rpb25zY3JpcHQ/c2luY2U9ZGFpbHkpIFtBZGFdKC90cmVuZGluZy9hZGE/c2luY2U9ZGFpbHkpIFtBZGJsb2NrIEZpbHRlciBMaXN0XSgvdHJlbmRpbmcvYWRibG9jay1maWx0ZXItbGlzdD9zaW5jZT1kYWlseSkgW0Fkb2JlIEZvbnQgTWV0cmljc10oL3RyZW5kaW5nL2Fkb2JlLWZvbnQtbWV0cmljcz9zaW5jZT1kYWlseSkgW0FnZGFdKC90cmVuZGluZy9hZ2RhP3NpbmNlPWRhaWx5KSBbQUdTIFNjcmlwdF0oL3RyZW5kaW5nL2Fncy1zY3JpcHQ/c2luY2U9ZGFpbHkpIFtBSURMXSgvdHJlbmRpbmcvYWlkbD9zaW5jZT1kYWlseSkgW0FMXSgvdHJlbmRpbmcvYWw/c2luY2U9ZGFpbHkpIFtBbGxveV0oL3RyZW5kaW5nL2FsbG95P3NpbmNlPWRhaWx5KSBbQWxwaW5lIEFidWlsZF0oL3RyZW5kaW5nL2FscGluZS1hYnVpbGQ/c2luY2U9ZGFpbHkpIFtBbHRpdW0gRGVzaWduZXJdKC90cmVuZGluZy9hbHRpdW0tZGVzaWduZXI/c2luY2U9ZGFpbHkpIFtBTVBMXSgvdHJlbmRpbmcvYW1wbD9zaW5jZT1kYWlseSkgW0FuZ2VsU2NyaXB0XSgvdHJlbmRpbmcvYW5nZWxzY3JpcHQ/c2luY2U9ZGFpbHkpIFtBbnN3ZXIgU2V0IFByb2dyYW1taW5nXSgvdHJlbmRpbmcvYW5zd2VyLXNldC1wcm9ncmFtbWluZz9zaW5jZT1kYWlseSkgW0FudCBCdWlsZCBTeXN0ZW1dKC90cmVuZGluZy9hbnQtYnVpbGQtc3lzdGVtP3NpbmNlPWRhaWx5KSBbQW50bGVyc10oL3RyZW5kaW5nL2FudGxlcnM/c2luY2U9ZGFpbHkpIFtBTlRMUl0oL3RyZW5kaW5nL2FudGxyP3NpbmNlPWRhaWx5KSBbQXBhY2hlQ29uZl0oL3RyZW5kaW5nL2FwYWNoZWNvbmY/c2luY2U9ZGFpbHkpIFtBcGV4XSgvdHJlbmRpbmcvYXBleD9zaW5jZT1kYWlseSkgW0FQSSBCbHVlcHJpbnRdKC90cmVuZGluZy9hcGktYmx1ZXByaW50P3NpbmNlPWRhaWx5KSBbQVBMXSgvdHJlbmRpbmcvYXBsP3NpbmNlPWRhaWx5KSBbQXBvbGxvIEd1aWRhbmNlIENvbXB1dGVyXSgvdHJlbmRpbmcvYXBvbGxvLWd1aWRhbmNlLWNvbXB1dGVyP3NpbmNlPWRhaWx5KSBbQXBwbGVTY3JpcHRdKC90cmVuZGluZy9hcHBsZXNjcmlwdD9zaW5jZT1kYWlseSkgW0FyY10oL3RyZW5kaW5nL2FyYz9zaW5jZT1kYWlseSkgW0FzY2lpRG9jXSgvdHJlbmRpbmcvYXNjaWlkb2M/c2luY2U9ZGFpbHkpIFtBU0xdKC90cmVuZGluZy9hc2w/c2luY2U9ZGFpbHkpIFtBU04uMV0oL3RyZW5kaW5nL2Fzbi4xP3NpbmNlPWRhaWx5KSBbQ2xhc3NpYyBBU1BdKC90cmVuZGluZy9jbGFzc2ljLWFzcD9zaW5jZT1kYWlseSkgW0FTUC5ORVRdKC90cmVuZGluZy9hc3AubmV0P3NpbmNlPWRhaWx5KSBbQXNwZWN0Sl0oL3RyZW5kaW5nL2FzcGVjdGo/c2luY2U9ZGFpbHkpIFtBc3NlbWJseV0oL3RyZW5kaW5nL2Fzc2VtYmx5P3NpbmNlPWRhaWx5KSBbQXN0cm9dKC90cmVuZGluZy9hc3Rybz9zaW5jZT1kYWlseSkgW0FzeW1wdG90ZV0oL3RyZW5kaW5nL2FzeW1wdG90ZT9zaW5jZT1kYWlseSkgW0FUU10oL3RyZW5kaW5nL2F0cz9zaW5jZT1kYWlseSkgW0F1Z2Vhc10oL3RyZW5kaW5nL2F1Z2Vhcz9zaW5jZT1kYWlseSkgW0F1dG9Ib3RrZXldKC90cmVuZGluZy9hdXRvaG90a2V5P3NpbmNlPWRhaWx5KSBbQXV0b0l0XSgvdHJlbmRpbmcvYXV0b2l0P3NpbmNlPWRhaWx5KSBbQXZybyBJRExdKC90cmVuZGluZy9hdnJvLWlkbD9zaW5jZT1kYWlseSkgW0F3a10oL3RyZW5kaW5nL2F3az9zaW5jZT1kYWlseSkgW0I0WF0oL3RyZW5kaW5nL2I0eD9zaW5jZT1kYWlseSkgW0JhbGxlcmluYV0oL3RyZW5kaW5nL2JhbGxlcmluYT9zaW5jZT1kYWlseSkgW0JBU0lDXSgvdHJlbmRpbmcvYmFzaWM/c2luY2U9ZGFpbHkpIFtCYXRjaGZpbGVdKC90cmVuZGluZy9iYXRjaGZpbGU/c2luY2U9ZGFpbHkpIFtCZWVmXSgvdHJlbmRpbmcvYmVlZj9zaW5jZT1kYWlseSkgW0JlZnVuZ2VdKC90cmVuZGluZy9iZWZ1bmdlP3NpbmNlPWRhaWx5KSBbQmVycnldKC90cmVuZGluZy9iZXJyeT9zaW5jZT1kYWlseSkgW0JpYlRlWF0oL3RyZW5kaW5nL2JpYnRleD9zaW5jZT1kYWlseSkgW0JpYlRlWCBTdHlsZV0oL3RyZW5kaW5nL2JpYnRleC1zdHlsZT9zaW5jZT1kYWlseSkgW0JpY2VwXSgvdHJlbmRpbmcvYmljZXA/c2luY2U9ZGFpbHkpIFtCaWtlc2hlZF0oL3RyZW5kaW5nL2Jpa2VzaGVkP3NpbmNlPWRhaWx5KSBbQmlzb25dKC90cmVuZGluZy9iaXNvbj9zaW5jZT1kYWlseSkgW0JpdEJha2VdKC90cmVuZGluZy9iaXRiYWtlP3NpbmNlPWRhaWx5KSBbQmxhZGVdKC90cmVuZGluZy9ibGFkZT9zaW5jZT1kYWlseSkgW0JsaXR6QmFzaWNdKC90cmVuZGluZy9ibGl0emJhc2ljP3NpbmNlPWRhaWx5KSBbQmxpdHpNYXhdKC90cmVuZGluZy9ibGl0em1heD9zaW5jZT1kYWlseSkgW0JsdWVzcGVjXSgvdHJlbmRpbmcvYmx1ZXNwZWM/c2luY2U9ZGFpbHkpIFtCbHVlc3BlYyBCSF0oL3RyZW5kaW5nL2JsdWVzcGVjLWJoP3NpbmNlPWRhaWx5KSBbQm9vXSgvdHJlbmRpbmcvYm9vP3NpbmNlPWRhaWx5KSBbQm9vZ2llXSgvdHJlbmRpbmcvYm9vZ2llP3NpbmNlPWRhaWx5KSBbQlFOXSgvdHJlbmRpbmcvYnFuP3NpbmNlPWRhaWx5KSBbQnJhaW5mdWNrXSgvdHJlbmRpbmcvYnJhaW5mdWNrP3NpbmNlPWRhaWx5KSBbQnJpZ2h0ZXJTY3JpcHRdKC90cmVuZGluZy9icmlnaHRlcnNjcmlwdD9zaW5jZT1kYWlseSkgW0JyaWdodHNjcmlwdF0oL3RyZW5kaW5nL2JyaWdodHNjcmlwdD9zaW5jZT1kYWlseSkgW1plZWtdKC90cmVuZGluZy96ZWVrP3NpbmNlPWRhaWx5KSBbQnJvd3NlcnNsaXN0XSgvdHJlbmRpbmcvYnJvd3NlcnNsaXN0P3NpbmNlPWRhaWx5KSBbQ10oL3RyZW5kaW5nL2M/c2luY2U9ZGFpbHkpIFtDI10oL3RyZW5kaW5nL2MlMjM/c2luY2U9ZGFpbHkpIFtDKytdKC90cmVuZGluZy9jKys/c2luY2U9ZGFpbHkpIFtDLU9iakR1bXBdKC90cmVuZGluZy9jLW9iamR1bXA/c2luY2U9ZGFpbHkpIFtDMmhzIEhhc2tlbGxdKC90cmVuZGluZy9jMmhzLWhhc2tlbGw/c2luY2U9ZGFpbHkpIFtDYWJhbCBDb25maWddKC90cmVuZGluZy9jYWJhbC1jb25maWc/c2luY2U9ZGFpbHkpIFtDYWRkeWZpbGVdKC90cmVuZGluZy9jYWRkeWZpbGU/c2luY2U9ZGFpbHkpIFtDYWRlbmNlXSgvdHJlbmRpbmcvY2FkZW5jZT9zaW5jZT1kYWlseSkgW0NhaXJvXSgvdHJlbmRpbmcvY2Fpcm8/c2luY2U9ZGFpbHkpIFtDYWlybyBaZXJvXSgvdHJlbmRpbmcvY2Fpcm8temVybz9zaW5jZT1kYWlseSkgW0NhbWVMSUdPXSgvdHJlbmRpbmcvY2FtZWxpZ28/c2luY2U9ZGFpbHkpIFtDQVAgQ0RTXSgvdHJlbmRpbmcvY2FwLWNkcz9zaW5jZT1kYWlseSkgW0NhcCduIFByb3RvXSgvdHJlbmRpbmcvY2FwJ24tcHJvdG8/c2luY2U9ZGFpbHkpIFtDYXJib25dKC90cmVuZGluZy9jYXJib24/c2luY2U9ZGFpbHkpIFtDYXJ0b0NTU10oL3RyZW5kaW5nL2NhcnRvY3NzP3NpbmNlPWRhaWx5KSBbQ2V5bG9uXSgvdHJlbmRpbmcvY2V5bG9uP3NpbmNlPWRhaWx5KSBbQ2hhcGVsXSgvdHJlbmRpbmcvY2hhcGVsP3NpbmNlPWRhaWx5KSBbQ2hhcml0eV0oL3RyZW5kaW5nL2NoYXJpdHk/c2luY2U9ZGFpbHkpIFtDaGVja3N1bXNdKC90cmVuZGluZy9jaGVja3N1bXM/c2luY2U9ZGFpbHkpIFtDaHVjS10oL3RyZW5kaW5nL2NodWNrP3NpbmNlPWRhaWx5KSBbQ0lMXSgvdHJlbmRpbmcvY2lsP3NpbmNlPWRhaWx5KSBbQ2lyY29tXSgvdHJlbmRpbmcvY2lyY29tP3NpbmNlPWRhaWx5KSBbQ2lycnVdKC90cmVuZGluZy9jaXJydT9zaW5jZT1kYWlseSkgW0NsYXJpb25dKC90cmVuZGluZy9jbGFyaW9uP3NpbmNlPWRhaWx5KSBbQ2xhcml0eV0oL3RyZW5kaW5nL2NsYXJpdHk/c2luY2U9ZGFpbHkpIFtDbGFzc2ljIEFTUF0oL3RyZW5kaW5nL2NsYXNzaWMtYXNwP3NpbmNlPWRhaWx5KSBbQ2xlYW5dKC90cmVuZGluZy9jbGVhbj9zaW5jZT1kYWlseSkgW0NsaWNrXSgvdHJlbmRpbmcvY2xpY2s/c2luY2U9ZGFpbHkpIFtDTElQU10oL3RyZW5kaW5nL2NsaXBzP3NpbmNlPWRhaWx5KSBbQ2xvanVyZV0oL3RyZW5kaW5nL2Nsb2p1cmU/c2luY2U9ZGFpbHkpIFtDbG9zdXJlIFRlbXBsYXRlc10oL3RyZW5kaW5nL2Nsb3N1cmUtdGVtcGxhdGVzP3NpbmNlPWRhaWx5KSBbQ2xvdWQgRmlyZXN0b3JlIFNlY3VyaXR5IFJ1bGVzXSgvdHJlbmRpbmcvY2xvdWQtZmlyZXN0b3JlLXNlY3VyaXR5LXJ1bGVzP3NpbmNlPWRhaWx5KSBbQ01ha2VdKC90cmVuZGluZy9jbWFrZT9zaW5jZT1kYWlseSkgW0NPQk9MXSgvdHJlbmRpbmcvY29ib2w/c2luY2U9ZGFpbHkpIFtDT0RFT1dORVJTXSgvdHJlbmRpbmcvY29kZW93bmVycz9zaW5jZT1kYWlseSkgW0NvZGVRTF0oL3RyZW5kaW5nL2NvZGVxbD9zaW5jZT1kYWlseSkgW0NvZmZlZVNjcmlwdF0oL3RyZW5kaW5nL2NvZmZlZXNjcmlwdD9zaW5jZT1kYWlseSkgW0NvbGRGdXNpb25dKC90cmVuZGluZy9jb2xkZnVzaW9uP3NpbmNlPWRhaWx5KSBbQ29sZEZ1c2lvbiBDRkNdKC90cmVuZGluZy9jb2xkZnVzaW9uLWNmYz9zaW5jZT1kYWlseSkgW0NPTExBREFdKC90cmVuZGluZy9jb2xsYWRhP3NpbmNlPWRhaWx5KSBbQ29tbW9uIExpc3BdKC90cmVuZGluZy9jb21tb24tbGlzcD9zaW5jZT1kYWlseSkgW0NvbW1vbiBXb3JrZmxvdyBMYW5ndWFnZV0oL3RyZW5kaW5nL2NvbW1vbi13b3JrZmxvdy1sYW5ndWFnZT9zaW5jZT1kYWlseSkgW0NvbXBvbmVudCBQYXNjYWxdKC90cmVuZGluZy9jb21wb25lbnQtcGFzY2FsP3NpbmNlPWRhaWx5KSBbQ29OTEwtVV0oL3RyZW5kaW5nL2NvbmxsLXU/c2luY2U9ZGFpbHkpIFtDb29sXSgvdHJlbmRpbmcvY29vbD9zaW5jZT1kYWlseSkgW0NvcV0oL3RyZW5kaW5nL2NvcT9zaW5jZT1kYWlseSkgW0NwcC1PYmpEdW1wXSgvdHJlbmRpbmcvY3BwLW9iamR1bXA/c2luY2U9ZGFpbHkpIFtDcmVvbGVdKC90cmVuZGluZy9jcmVvbGU/c2luY2U9ZGFpbHkpIFtjcm9udGFiXSgvdHJlbmRpbmcvY3JvbnRhYj9zaW5jZT1kYWlseSkgW0NyeXN0YWxdKC90cmVuZGluZy9jcnlzdGFsP3NpbmNlPWRhaWx5KSBbQ1NPTl0oL3RyZW5kaW5nL2Nzb24/c2luY2U9ZGFpbHkpIFtDc291bmRdKC90cmVuZGluZy9jc291bmQ/c2luY2U9ZGFpbHkpIFtDc291bmQgRG9jdW1lbnRdKC90cmVuZGluZy9jc291bmQtZG9jdW1lbnQ/c2luY2U9ZGFpbHkpIFtDc291bmQgU2NvcmVdKC90cmVuZGluZy9jc291bmQtc2NvcmU/c2luY2U9ZGFpbHkpIFtDU1NdKC90cmVuZGluZy9jc3M/c2luY2U9ZGFpbHkpIFtDU1ZdKC90cmVuZGluZy9jc3Y/c2luY2U9ZGFpbHkpIFtDdWRhXSgvdHJlbmRpbmcvY3VkYT9zaW5jZT1kYWlseSkgW0NVRV0oL3RyZW5kaW5nL2N1ZT9zaW5jZT1kYWlseSkgW0N1ZSBTaGVldF0oL3RyZW5kaW5nL2N1ZS1zaGVldD9zaW5jZT1kYWlseSkgW2NVUkwgQ29uZmlnXSgvdHJlbmRpbmcvY3VybC1jb25maWc/c2luY2U9ZGFpbHkpIFtDdXJyeV0oL3RyZW5kaW5nL2N1cnJ5P3NpbmNlPWRhaWx5KSBbQ1dlYl0oL3RyZW5kaW5nL2N3ZWI/c2luY2U9ZGFpbHkpIFtDeWNyaXB0XSgvdHJlbmRpbmcvY3ljcmlwdD9zaW5jZT1kYWlseSkgW0N5bGNdKC90cmVuZGluZy9jeWxjP3NpbmNlPWRhaWx5KSBbQ3lwaGVyXSgvdHJlbmRpbmcvY3lwaGVyP3NpbmNlPWRhaWx5KSBbQ3l0aG9uXSgvdHJlbmRpbmcvY3l0aG9uP3NpbmNlPWRhaWx5KSBbRF0oL3RyZW5kaW5nL2Q/c2luY2U9ZGFpbHkpIFtELU9iakR1bXBdKC90cmVuZGluZy9kLW9iamR1bXA/c2luY2U9ZGFpbHkpIFtEMl0oL3RyZW5kaW5nL2QyP3NpbmNlPWRhaWx5KSBbRGFmbnldKC90cmVuZGluZy9kYWZueT9zaW5jZT1kYWlseSkgW0RhcmNzIFBhdGNoXSgvdHJlbmRpbmcvZGFyY3MtcGF0Y2g/c2luY2U9ZGFpbHkpIFtEYXJ0XSgvdHJlbmRpbmcvZGFydD9zaW5jZT1kYWlseSkgW0RhdGFXZWF2ZV0oL3RyZW5kaW5nL2RhdGF3ZWF2ZT9zaW5jZT1kYWlseSkgW0RlYmlhbiBQYWNrYWdlIENvbnRyb2wgRmlsZV0oL3RyZW5kaW5nL2RlYmlhbi1wYWNrYWdlLWNvbnRyb2wtZmlsZT9zaW5jZT1kYWlseSkgW0Rlbml6ZW5TY3JpcHRdKC90cmVuZGluZy9kZW5pemVuc2NyaXB0P3NpbmNlPWRhaWx5KSBbZGVza3RvcF0oL3RyZW5kaW5nL2Rlc2t0b3A/c2luY2U9ZGFpbHkpIFtEaGFsbF0oL3RyZW5kaW5nL2RoYWxsP3NpbmNlPWRhaWx5KSBbRGlmZl0oL3RyZW5kaW5nL2RpZmY/c2luY2U9ZGFpbHkpIFtESUdJVEFMIENvbW1hbmQgTGFuZ3VhZ2VdKC90cmVuZGluZy9kaWdpdGFsLWNvbW1hbmQtbGFuZ3VhZ2U/c2luY2U9ZGFpbHkpIFtkaXJjb2xvcnNdKC90cmVuZGluZy9kaXJjb2xvcnM/c2luY2U9ZGFpbHkpIFtEaXJlY3RYIDNEIEZpbGVdKC90cmVuZGluZy9kaXJlY3R4LTNkLWZpbGU/c2luY2U9ZGFpbHkpIFtETV0oL3RyZW5kaW5nL2RtP3NpbmNlPWRhaWx5KSBbRE5TIFpvbmVdKC90cmVuZGluZy9kbnMtem9uZT9zaW5jZT1kYWlseSkgW0RvY2tlcmZpbGVdKC90cmVuZGluZy9kb2NrZXJmaWxlP3NpbmNlPWRhaWx5KSBbRG9nZXNjcmlwdF0oL3RyZW5kaW5nL2RvZ2VzY3JpcHQ/c2luY2U9ZGFpbHkpIFtEb3RlbnZdKC90cmVuZGluZy9kb3RlbnY/c2luY2U9ZGFpbHkpIFtEVHJhY2VdKC90cmVuZGluZy9kdHJhY2U/c2luY2U9ZGFpbHkpIFtEdW5lXSgvdHJlbmRpbmcvZHVuZT9zaW5jZT1kYWlseSkgW0R5bGFuXSgvdHJlbmRpbmcvZHlsYW4/c2luY2U9ZGFpbHkpIFtFXSgvdHJlbmRpbmcvZT9zaW5jZT1kYWlseSkgW0UtbWFpbF0oL3RyZW5kaW5nL2UtbWFpbD9zaW5jZT1kYWlseSkgW0VhZ2xlXSgvdHJlbmRpbmcvZWFnbGU/c2luY2U9ZGFpbHkpIFtFYXJ0aGx5XSgvdHJlbmRpbmcvZWFydGhseT9zaW5jZT1kYWlseSkgW0Vhc3lidWlsZF0oL3RyZW5kaW5nL2Vhc3lidWlsZD9zaW5jZT1kYWlseSkgW0VCTkZdKC90cmVuZGluZy9lYm5mP3NpbmNlPWRhaWx5KSBbZUNdKC90cmVuZGluZy9lYz9zaW5jZT1kYWlseSkgW0VjZXJlIFByb2plY3RzXSgvdHJlbmRpbmcvZWNlcmUtcHJvamVjdHM/c2luY2U9ZGFpbHkpIFtFQ0xdKC90cmVuZGluZy9lY2w/c2luY2U9ZGFpbHkpIFtFQ0xpUFNlXSgvdHJlbmRpbmcvZWNsaXBzZT9zaW5jZT1kYWlseSkgW0VjbWFya3VwXSgvdHJlbmRpbmcvZWNtYXJrdXA/c2luY2U9ZGFpbHkpIFtFZGdlXSgvdHJlbmRpbmcvZWRnZT9zaW5jZT1kYWlseSkgW0VkZ2VRTF0oL3RyZW5kaW5nL2VkZ2VxbD9zaW5jZT1kYWlseSkgW0VkaXRvckNvbmZpZ10oL3RyZW5kaW5nL2VkaXRvcmNvbmZpZz9zaW5jZT1kYWlseSkgW0VkamUgRGF0YSBDb2xsZWN0aW9uXSgvdHJlbmRpbmcvZWRqZS1kYXRhLWNvbGxlY3Rpb24/c2luY2U9ZGFpbHkpIFtlZG5dKC90cmVuZGluZy9lZG4/c2luY2U9ZGFpbHkpIFtFaWZmZWxdKC90cmVuZGluZy9laWZmZWw/c2luY2U9ZGFpbHkpIFtFSlNdKC90cmVuZGluZy9lanM/c2luY2U9ZGFpbHkpIFtFbGl4aXJdKC90cmVuZGluZy9lbGl4aXI/c2luY2U9ZGFpbHkpIFtFbG1dKC90cmVuZGluZy9lbG0/c2luY2U9ZGFpbHkpIFtFbHZpc2hdKC90cmVuZGluZy9lbHZpc2g/c2luY2U9ZGFpbHkpIFtFbHZpc2ggVHJhbnNjcmlwdF0oL3RyZW5kaW5nL2VsdmlzaC10cmFuc2NyaXB0P3NpbmNlPWRhaWx5KSBbRW1hY3MgTGlzcF0oL3RyZW5kaW5nL2VtYWNzLWxpc3A/c2luY2U9ZGFpbHkpIFtFbWJlclNjcmlwdF0oL3RyZW5kaW5nL2VtYmVyc2NyaXB0P3NpbmNlPWRhaWx5KSBbRS1tYWlsXSgvdHJlbmRpbmcvZS1tYWlsP3NpbmNlPWRhaWx5KSBbRVFdKC90cmVuZGluZy9lcT9zaW5jZT1kYWlseSkgW0VybGFuZ10oL3RyZW5kaW5nL2VybGFuZz9zaW5jZT1kYWlseSkgW0V1cGhvcmlhXSgvdHJlbmRpbmcvZXVwaG9yaWE/c2luY2U9ZGFpbHkpIFtGI10oL3RyZW5kaW5nL2YlMjM/c2luY2U9ZGFpbHkpIFtGXFwqXSgvdHJlbmRpbmcvZio/c2luY2U9ZGFpbHkpIFtGYWN0b3JdKC90cmVuZGluZy9mYWN0b3I/c2luY2U9ZGFpbHkpIFtGYW5jeV0oL3RyZW5kaW5nL2ZhbmN5P3NpbmNlPWRhaWx5KSBbRmFudG9tXSgvdHJlbmRpbmcvZmFudG9tP3NpbmNlPWRhaWx5KSBbRmF1c3RdKC90cmVuZGluZy9mYXVzdD9zaW5jZT1kYWlseSkgW0Zlbm5lbF0oL3RyZW5kaW5nL2Zlbm5lbD9zaW5jZT1kYWlseSkgW0ZJR2xldCBGb250XSgvdHJlbmRpbmcvZmlnbGV0LWZvbnQ/c2luY2U9ZGFpbHkpIFtGaWxlYmVuY2ggV01MXSgvdHJlbmRpbmcvZmlsZWJlbmNoLXdtbD9zaW5jZT1kYWlseSkgW0ZpbHRlcnNjcmlwdF0oL3RyZW5kaW5nL2ZpbHRlcnNjcmlwdD9zaW5jZT1kYWlseSkgW0ZJUlJUTF0oL3RyZW5kaW5nL2ZpcnJ0bD9zaW5jZT1kYWlseSkgW2Zpc2hdKC90cmVuZGluZy9maXNoP3NpbmNlPWRhaWx5KSBbRmx1ZW50XSgvdHJlbmRpbmcvZmx1ZW50P3NpbmNlPWRhaWx5KSBbRkxVWF0oL3RyZW5kaW5nL2ZsdXg/c2luY2U9ZGFpbHkpIFtGb3JtYXR0ZWRdKC90cmVuZGluZy9mb3JtYXR0ZWQ/c2luY2U9ZGFpbHkpIFtGb3J0aF0oL3RyZW5kaW5nL2ZvcnRoP3NpbmNlPWRhaWx5KSBbRm9ydHJhbl0oL3RyZW5kaW5nL2ZvcnRyYW4/c2luY2U9ZGFpbHkpIFtGb3J0cmFuIEZyZWUgRm9ybV0oL3RyZW5kaW5nL2ZvcnRyYW4tZnJlZS1mb3JtP3NpbmNlPWRhaWx5KSBbRnJlZUJBU0lDXSgvdHJlbmRpbmcvZnJlZWJhc2ljP3NpbmNlPWRhaWx5KSBbRnJlZU1hcmtlcl0oL3RyZW5kaW5nL2ZyZWVtYXJrZXI/c2luY2U9ZGFpbHkpIFtGcmVnZV0oL3RyZW5kaW5nL2ZyZWdlP3NpbmNlPWRhaWx5KSBbRnV0aGFya10oL3RyZW5kaW5nL2Z1dGhhcms/c2luY2U9ZGFpbHkpIFtHLWNvZGVdKC90cmVuZGluZy9nLWNvZGU/c2luY2U9ZGFpbHkpIFtHYW1lIE1ha2VyIExhbmd1YWdlXSgvdHJlbmRpbmcvZ2FtZS1tYWtlci1sYW5ndWFnZT9zaW5jZT1kYWlseSkgW0dBTUxdKC90cmVuZGluZy9nYW1sP3NpbmNlPWRhaWx5KSBbR0FNU10oL3RyZW5kaW5nL2dhbXM/c2luY2U9ZGFpbHkpIFtHQVBdKC90cmVuZGluZy9nYXA/c2luY2U9ZGFpbHkpIFtHQ0MgTWFjaGluZSBEZXNjcmlwdGlvbl0oL3RyZW5kaW5nL2djYy1tYWNoaW5lLWRlc2NyaXB0aW9uP3NpbmNlPWRhaWx5KSBbR0RCXSgvdHJlbmRpbmcvZ2RiP3NpbmNlPWRhaWx5KSBbR0RTY3JpcHRdKC90cmVuZGluZy9nZHNjcmlwdD9zaW5jZT1kYWlseSkgW0dFRENPTV0oL3RyZW5kaW5nL2dlZGNvbT9zaW5jZT1kYWlseSkgW0dlbWZpbGUubG9ja10oL3RyZW5kaW5nL2dlbWZpbGUubG9jaz9zaW5jZT1kYWlseSkgW0dlbWluaV0oL3RyZW5kaW5nL2dlbWluaT9zaW5jZT1kYWlseSkgW0dlbmVybyA0Z2xdKC90cmVuZGluZy9nZW5lcm8tNGdsP3NpbmNlPWRhaWx5KSBbR2VuZXJvIHBlcl0oL3RyZW5kaW5nL2dlbmVyby1wZXI/c2luY2U9ZGFpbHkpIFtHZW5pZV0oL3RyZW5kaW5nL2dlbmllP3NpbmNlPWRhaWx5KSBbR2Vuc2hpXSgvdHJlbmRpbmcvZ2Vuc2hpP3NpbmNlPWRhaWx5KSBbR2VudG9vIEVidWlsZF0oL3RyZW5kaW5nL2dlbnRvby1lYnVpbGQ/c2luY2U9ZGFpbHkpIFtHZW50b28gRWNsYXNzXSgvdHJlbmRpbmcvZ2VudG9vLWVjbGFzcz9zaW5jZT1kYWlseSkgW0dlcmJlciBJbWFnZV0oL3RyZW5kaW5nL2dlcmJlci1pbWFnZT9zaW5jZT1kYWlseSkgW0dldHRleHQgQ2F0YWxvZ10oL3RyZW5kaW5nL2dldHRleHQtY2F0YWxvZz9zaW5jZT1kYWlseSkgW0doZXJraW5dKC90cmVuZGluZy9naGVya2luP3NpbmNlPWRhaWx5KSBbR2l0IEF0dHJpYnV0ZXNdKC90cmVuZGluZy9naXQtYXR0cmlidXRlcz9zaW5jZT1kYWlseSkgW0dpdCBDb25maWddKC90cmVuZGluZy9naXQtY29uZmlnP3NpbmNlPWRhaWx5KSBbR2l0IFJldmlzaW9uIExpc3RdKC90cmVuZGluZy9naXQtcmV2aXNpb24tbGlzdD9zaW5jZT1kYWlseSkgW0dsZWFtXSgvdHJlbmRpbmcvZ2xlYW0/c2luY2U9ZGFpbHkpIFtHbGltbWVyIEpTXSgvdHJlbmRpbmcvZ2xpbW1lci1qcz9zaW5jZT1kYWlseSkgW0dsaW1tZXIgVFNdKC90cmVuZGluZy9nbGltbWVyLXRzP3NpbmNlPWRhaWx5KSBbR0xTTF0oL3RyZW5kaW5nL2dsc2w/c2luY2U9ZGFpbHkpIFtHbHlwaF0oL3RyZW5kaW5nL2dseXBoP3NpbmNlPWRhaWx5KSBbR2x5cGggQml0bWFwIERpc3RyaWJ1dGlvbiBGb3JtYXRdKC90cmVuZGluZy9nbHlwaC1iaXRtYXAtZGlzdHJpYnV0aW9uLWZvcm1hdD9zaW5jZT1kYWlseSkgW0dOXSgvdHJlbmRpbmcvZ24/c2luY2U9ZGFpbHkpIFtHbnVwbG90XSgvdHJlbmRpbmcvZ251cGxvdD9zaW5jZT1kYWlseSkgW0dvXSgvdHJlbmRpbmcvZ28/c2luY2U9ZGFpbHkpIFtHbyBDaGVja3N1bXNdKC90cmVuZGluZy9nby1jaGVja3N1bXM/c2luY2U9ZGFpbHkpIFtHbyBNb2R1bGVdKC90cmVuZGluZy9nby1tb2R1bGU/c2luY2U9ZGFpbHkpIFtHbyBXb3Jrc3BhY2VdKC90cmVuZGluZy9nby13b3Jrc3BhY2U/c2luY2U9ZGFpbHkpIFtHb2RvdCBSZXNvdXJjZV0oL3RyZW5kaW5nL2dvZG90LXJlc291cmNlP3NpbmNlPWRhaWx5KSBbR29sb10oL3RyZW5kaW5nL2dvbG8/c2luY2U9ZGFpbHkpIFtHb3N1XSgvdHJlbmRpbmcvZ29zdT9zaW5jZT1kYWlseSkgW0dyYWNlXSgvdHJlbmRpbmcvZ3JhY2U/c2luY2U9ZGFpbHkpIFtHcmFkbGVdKC90cmVuZGluZy9ncmFkbGU/c2luY2U9ZGFpbHkpIFtHcmFkbGUgS290bGluIERTTF0oL3RyZW5kaW5nL2dyYWRsZS1rb3RsaW4tZHNsP3NpbmNlPWRhaWx5KSBbR3JhbW1hdGljYWwgRnJhbWV3b3JrXSgvdHJlbmRpbmcvZ3JhbW1hdGljYWwtZnJhbWV3b3JrP3NpbmNlPWRhaWx5KSBbR3JhcGggTW9kZWxpbmcgTGFuZ3VhZ2VdKC90cmVuZGluZy9ncmFwaC1tb2RlbGluZy1sYW5ndWFnZT9zaW5jZT1kYWlseSkgW0dyYXBoUUxdKC90cmVuZGluZy9ncmFwaHFsP3NpbmNlPWRhaWx5KSBbR3JhcGh2aXogKERPVCldKC90cmVuZGluZy9ncmFwaHZpei1cXChkb3RcXCk/c2luY2U9ZGFpbHkpIFtHcm9vdnldKC90cmVuZGluZy9ncm9vdnk/c2luY2U9ZGFpbHkpIFtHcm9vdnkgU2VydmVyIFBhZ2VzXSgvdHJlbmRpbmcvZ3Jvb3Z5LXNlcnZlci1wYWdlcz9zaW5jZT1kYWlseSkgW0dTQ10oL3RyZW5kaW5nL2dzYz9zaW5jZT1kYWlseSkgW0hhY2tdKC90cmVuZGluZy9oYWNrP3NpbmNlPWRhaWx5KSBbSGFtbF0oL3RyZW5kaW5nL2hhbWw/c2luY2U9ZGFpbHkpIFtIYW5kbGViYXJzXSgvdHJlbmRpbmcvaGFuZGxlYmFycz9zaW5jZT1kYWlseSkgW0hBUHJveHldKC90cmVuZGluZy9oYXByb3h5P3NpbmNlPWRhaWx5KSBbSGFyYm91cl0oL3RyZW5kaW5nL2hhcmJvdXI/c2luY2U9ZGFpbHkpIFtIYXJlXSgvdHJlbmRpbmcvaGFyZT9zaW5jZT1kYWlseSkgW0hhc2tlbGxdKC90cmVuZGluZy9oYXNrZWxsP3NpbmNlPWRhaWx5KSBbSGF4ZV0oL3RyZW5kaW5nL2hheGU/c2luY2U9ZGFpbHkpIFtIQ0xdKC90cmVuZGluZy9oY2w/c2luY2U9ZGFpbHkpIFtIaXZlUUxdKC90cmVuZGluZy9oaXZlcWw/c2luY2U9ZGFpbHkpIFtITFNMXSgvdHJlbmRpbmcvaGxzbD9zaW5jZT1kYWlseSkgW0hPQ09OXSgvdHJlbmRpbmcvaG9jb24/c2luY2U9ZGFpbHkpIFtIb2x5Q10oL3RyZW5kaW5nL2hvbHljP3NpbmNlPWRhaWx5KSBbaG9vbl0oL3RyZW5kaW5nL2hvb24/c2luY2U9ZGFpbHkpIFtIb3N0cyBGaWxlXSgvdHJlbmRpbmcvaG9zdHMtZmlsZT9zaW5jZT1kYWlseSkgW0hUTUxdKC90cmVuZGluZy9odG1sP3NpbmNlPWRhaWx5KSBbSmluamFdKC90cmVuZGluZy9qaW5qYT9zaW5jZT1kYWlseSkgW0hUTUwrRUNSXSgvdHJlbmRpbmcvaHRtbCtlY3I/c2luY2U9ZGFpbHkpIFtIVE1MK0VFWF0oL3RyZW5kaW5nL2h0bWwrZWV4P3NpbmNlPWRhaWx5KSBbSFRNTCtFUkJdKC90cmVuZGluZy9odG1sK2VyYj9zaW5jZT1kYWlseSkgW0hUTUwrUEhQXSgvdHJlbmRpbmcvaHRtbCtwaHA/c2luY2U9ZGFpbHkpIFtIVE1MK1Jhem9yXSgvdHJlbmRpbmcvaHRtbCtyYXpvcj9zaW5jZT1kYWlseSkgW0hUVFBdKC90cmVuZGluZy9odHRwP3NpbmNlPWRhaWx5KSBbSFhNTF0oL3RyZW5kaW5nL2h4bWw/c2luY2U9ZGFpbHkpIFtIeV0oL3RyZW5kaW5nL2h5P3NpbmNlPWRhaWx5KSBbSHlQaHldKC90cmVuZGluZy9oeXBoeT9zaW5jZT1kYWlseSkgW2lDYWxlbmRhcl0oL3RyZW5kaW5nL2ljYWxlbmRhcj9zaW5jZT1kYWlseSkgW0lETF0oL3RyZW5kaW5nL2lkbD9zaW5jZT1kYWlseSkgW0lkcmlzXSgvdHJlbmRpbmcvaWRyaXM/c2luY2U9ZGFpbHkpIFtJZ25vcmUgTGlzdF0oL3RyZW5kaW5nL2lnbm9yZS1saXN0P3NpbmNlPWRhaWx5KSBbSUdPUiBQcm9dKC90cmVuZGluZy9pZ29yLXBybz9zaW5jZT1kYWlseSkgW0ltYWdlSiBNYWNyb10oL3RyZW5kaW5nL2ltYWdlai1tYWNybz9zaW5jZT1kYWlseSkgW0ltYmFdKC90cmVuZGluZy9pbWJhP3NpbmNlPWRhaWx5KSBbSW5mb3JtIDddKC90cmVuZGluZy9pbmZvcm0tNz9zaW5jZT1kYWlseSkgW0lOSV0oL3RyZW5kaW5nL2luaT9zaW5jZT1kYWlseSkgW0lua10oL3RyZW5kaW5nL2luaz9zaW5jZT1kYWlseSkgW0lubm8gU2V0dXBdKC90cmVuZGluZy9pbm5vLXNldHVwP3NpbmNlPWRhaWx5KSBbSW9dKC90cmVuZGluZy9pbz9zaW5jZT1kYWlseSkgW0lva2VdKC90cmVuZGluZy9pb2tlP3NpbmNlPWRhaWx5KSBbSVJDIGxvZ10oL3RyZW5kaW5nL2lyYy1sb2c/c2luY2U9ZGFpbHkpIFtJc2FiZWxsZV0oL3RyZW5kaW5nL2lzYWJlbGxlP3NpbmNlPWRhaWx5KSBbSXNhYmVsbGUgUk9PVF0oL3RyZW5kaW5nL2lzYWJlbGxlLXJvb3Q/c2luY2U9ZGFpbHkpIFtJU1BDXSgvdHJlbmRpbmcvaXNwYz9zaW5jZT1kYWlseSkgW0pdKC90cmVuZGluZy9qP3NpbmNlPWRhaWx5KSBbSmFpXSgvdHJlbmRpbmcvamFpP3NpbmNlPWRhaWx5KSBbSmFuZXRdKC90cmVuZGluZy9qYW5ldD9zaW5jZT1kYWlseSkgW0pBUiBNYW5pZmVzdF0oL3RyZW5kaW5nL2phci1tYW5pZmVzdD9zaW5jZT1kYWlseSkgW0phc21pbl0oL3RyZW5kaW5nL2phc21pbj9zaW5jZT1kYWlseSkgW0phdmFdKC90cmVuZGluZy9qYXZhP3NpbmNlPWRhaWx5KSBbSmF2YSBQcm9wZXJ0aWVzXSgvdHJlbmRpbmcvamF2YS1wcm9wZXJ0aWVzP3NpbmNlPWRhaWx5KSBbSmF2YSBTZXJ2ZXIgUGFnZXNdKC90cmVuZGluZy9qYXZhLXNlcnZlci1wYWdlcz9zaW5jZT1kYWlseSkgW0phdmEgVGVtcGxhdGUgRW5naW5lXSgvdHJlbmRpbmcvamF2YS10ZW1wbGF0ZS1lbmdpbmU/c2luY2U9ZGFpbHkpIFtKYXZhU2NyaXB0XSgvdHJlbmRpbmcvamF2YXNjcmlwdD9zaW5jZT1kYWlseSkgW0phdmFTY3JpcHQrRVJCXSgvdHJlbmRpbmcvamF2YXNjcmlwdCtlcmI/c2luY2U9ZGFpbHkpIFtKQ0xdKC90cmVuZGluZy9qY2w/c2luY2U9ZGFpbHkpIFtKZXN0IFNuYXBzaG90XSgvdHJlbmRpbmcvamVzdC1zbmFwc2hvdD9zaW5jZT1kYWlseSkgW0pldEJyYWlucyBNUFNdKC90cmVuZGluZy9qZXRicmFpbnMtbXBzP3NpbmNlPWRhaWx5KSBbSkZsZXhdKC90cmVuZGluZy9qZmxleD9zaW5jZT1kYWlseSkgW0ppbmphXSgvdHJlbmRpbmcvamluamE/c2luY2U9ZGFpbHkpIFtKaXNvbl0oL3RyZW5kaW5nL2ppc29uP3NpbmNlPWRhaWx5KSBbSmlzb24gTGV4XSgvdHJlbmRpbmcvamlzb24tbGV4P3NpbmNlPWRhaWx5KSBbSm9saWVdKC90cmVuZGluZy9qb2xpZT9zaW5jZT1kYWlseSkgW2pxXSgvdHJlbmRpbmcvanE/c2luY2U9ZGFpbHkpIFtKU09OXSgvdHJlbmRpbmcvanNvbj9zaW5jZT1kYWlseSkgW0pTT04gd2l0aCBDb21tZW50c10oL3RyZW5kaW5nL2pzb24td2l0aC1jb21tZW50cz9zaW5jZT1kYWlseSkgW0pTT041XSgvdHJlbmRpbmcvanNvbjU/c2luY2U9ZGFpbHkpIFtKU09OaXFdKC90cmVuZGluZy9qc29uaXE/c2luY2U9ZGFpbHkpIFtKU09OTERdKC90cmVuZGluZy9qc29ubGQ/c2luY2U9ZGFpbHkpIFtKc29ubmV0XSgvdHJlbmRpbmcvanNvbm5ldD9zaW5jZT1kYWlseSkgW0p1bGlhXSgvdHJlbmRpbmcvanVsaWE/c2luY2U9ZGFpbHkpIFtKdWxpYSBSRVBMXSgvdHJlbmRpbmcvanVsaWEtcmVwbD9zaW5jZT1kYWlseSkgW0p1cHl0ZXIgTm90ZWJvb2tdKC90cmVuZGluZy9qdXB5dGVyLW5vdGVib29rP3NpbmNlPWRhaWx5KSBbSnVzdF0oL3RyZW5kaW5nL2p1c3Q/c2luY2U9ZGFpbHkpIFtLYWl0YWkgU3RydWN0XSgvdHJlbmRpbmcva2FpdGFpLXN0cnVjdD9zaW5jZT1kYWlseSkgW0tha291bmVTY3JpcHRdKC90cmVuZGluZy9rYWtvdW5lc2NyaXB0P3NpbmNlPWRhaWx5KSBbS0RMXSgvdHJlbmRpbmcva2RsP3NpbmNlPWRhaWx5KSBbS2VyYm9TY3JpcHRdKC90cmVuZGluZy9rZXJib3NjcmlwdD9zaW5jZT1kYWlseSkgW0tpQ2FkIExheW91dF0oL3RyZW5kaW5nL2tpY2FkLWxheW91dD9zaW5jZT1kYWlseSkgW0tpQ2FkIExlZ2FjeSBMYXlvdXRdKC90cmVuZGluZy9raWNhZC1sZWdhY3ktbGF5b3V0P3NpbmNlPWRhaWx5KSBbS2lDYWQgU2NoZW1hdGljXSgvdHJlbmRpbmcva2ljYWQtc2NoZW1hdGljP3NpbmNlPWRhaWx5KSBbS2lja3N0YXJ0XSgvdHJlbmRpbmcva2lja3N0YXJ0P3NpbmNlPWRhaWx5KSBbS2l0XSgvdHJlbmRpbmcva2l0P3NpbmNlPWRhaWx5KSBbS290bGluXSgvdHJlbmRpbmcva290bGluP3NpbmNlPWRhaWx5KSBbS1JMXSgvdHJlbmRpbmcva3JsP3NpbmNlPWRhaWx5KSBbS3VzdG9dKC90cmVuZGluZy9rdXN0bz9zaW5jZT1kYWlseSkgW2t2bGFuZ10oL3RyZW5kaW5nL2t2bGFuZz9zaW5jZT1kYWlseSkgW0xhYlZJRVddKC90cmVuZGluZy9sYWJ2aWV3P3NpbmNlPWRhaWx5KSBbTGFya10oL3RyZW5kaW5nL2xhcms/c2luY2U9ZGFpbHkpIFtMYXNzb10oL3RyZW5kaW5nL2xhc3NvP3NpbmNlPWRhaWx5KSBbTGF0dGVdKC90cmVuZGluZy9sYXR0ZT9zaW5jZT1kYWlseSkgW0xlYW5dKC90cmVuZGluZy9sZWFuP3NpbmNlPWRhaWx5KSBbTGVhbiA0XSgvdHJlbmRpbmcvbGVhbi00P3NpbmNlPWRhaWx5KSBbTGVzc10oL3RyZW5kaW5nL2xlc3M/c2luY2U9ZGFpbHkpIFtMZXhdKC90cmVuZGluZy9sZXg/c2luY2U9ZGFpbHkpIFtMRkVdKC90cmVuZGluZy9sZmU/c2luY2U9ZGFpbHkpIFtMaWdvTEFOR10oL3RyZW5kaW5nL2xpZ29sYW5nP3NpbmNlPWRhaWx5KSBbTGlseVBvbmRdKC90cmVuZGluZy9saWx5cG9uZD9zaW5jZT1kYWlseSkgW0xpbWJvXSgvdHJlbmRpbmcvbGltYm8/c2luY2U9ZGFpbHkpIFtMaW5lYXIgUHJvZ3JhbW1pbmddKC90cmVuZGluZy9saW5lYXItcHJvZ3JhbW1pbmc/c2luY2U9ZGFpbHkpIFtMaW5rZXIgU2NyaXB0XSgvdHJlbmRpbmcvbGlua2VyLXNjcmlwdD9zaW5jZT1kYWlseSkgW0xpbnV4IEtlcm5lbCBNb2R1bGVdKC90cmVuZGluZy9saW51eC1rZXJuZWwtbW9kdWxlP3NpbmNlPWRhaWx5KSBbTGlxdWlkXSgvdHJlbmRpbmcvbGlxdWlkP3NpbmNlPWRhaWx5KSBbTGl0ZXJhdGUgQWdkYV0oL3RyZW5kaW5nL2xpdGVyYXRlLWFnZGE/c2luY2U9ZGFpbHkpIFtMaXRlcmF0ZSBDb2ZmZWVTY3JpcHRdKC90cmVuZGluZy9saXRlcmF0ZS1jb2ZmZWVzY3JpcHQ/c2luY2U9ZGFpbHkpIFtMaXRlcmF0ZSBIYXNrZWxsXSgvdHJlbmRpbmcvbGl0ZXJhdGUtaGFza2VsbD9zaW5jZT1kYWlseSkgW0xpdmVDb2RlIFNjcmlwdF0oL3RyZW5kaW5nL2xpdmVjb2RlLXNjcmlwdD9zaW5jZT1kYWlseSkgW0xpdmVTY3JpcHRdKC90cmVuZGluZy9saXZlc2NyaXB0P3NpbmNlPWRhaWx5KSBbTExWTV0oL3RyZW5kaW5nL2xsdm0/c2luY2U9ZGFpbHkpIFtMb2dvc10oL3RyZW5kaW5nL2xvZ29zP3NpbmNlPWRhaWx5KSBbTG9ndGFsa10oL3RyZW5kaW5nL2xvZ3RhbGs/c2luY2U9ZGFpbHkpIFtMT0xDT0RFXSgvdHJlbmRpbmcvbG9sY29kZT9zaW5jZT1kYWlseSkgW0xvb2tNTF0oL3RyZW5kaW5nL2xvb2ttbD9zaW5jZT1kYWlseSkgW0xvb21TY3JpcHRdKC90cmVuZGluZy9sb29tc2NyaXB0P3NpbmNlPWRhaWx5KSBbTFNMXSgvdHJlbmRpbmcvbHNsP3NpbmNlPWRhaWx5KSBbTFRzcGljZSBTeW1ib2xdKC90cmVuZGluZy9sdHNwaWNlLXN5bWJvbD9zaW5jZT1kYWlseSkgW0x1YV0oL3RyZW5kaW5nL2x1YT9zaW5jZT1kYWlseSkgW0x1YXVdKC90cmVuZGluZy9sdWF1P3NpbmNlPWRhaWx5KSBbTV0oL3RyZW5kaW5nL20/c2luY2U9ZGFpbHkpIFtNNF0oL3RyZW5kaW5nL200P3NpbmNlPWRhaWx5KSBbTTRTdWdhcl0oL3RyZW5kaW5nL200c3VnYXI/c2luY2U9ZGFpbHkpIFtNYWNhdWxheTJdKC90cmVuZGluZy9tYWNhdWxheTI/c2luY2U9ZGFpbHkpIFtNYWtlZmlsZV0oL3RyZW5kaW5nL21ha2VmaWxlP3NpbmNlPWRhaWx5KSBbTWFrb10oL3RyZW5kaW5nL21ha28/c2luY2U9ZGFpbHkpIFtNYXJrZG93bl0oL3RyZW5kaW5nL21hcmtkb3duP3NpbmNlPWRhaWx5KSBbTWFya29dKC90cmVuZGluZy9tYXJrbz9zaW5jZT1kYWlseSkgW01hc2tdKC90cmVuZGluZy9tYXNrP3NpbmNlPWRhaWx5KSBbTWF0aGVtYXRpY2FdKC90cmVuZGluZy9tYXRoZW1hdGljYT9zaW5jZT1kYWlseSkgW01BVExBQl0oL3RyZW5kaW5nL21hdGxhYj9zaW5jZT1kYWlseSkgW01hdmVuIFBPTV0oL3RyZW5kaW5nL21hdmVuLXBvbT9zaW5jZT1kYWlseSkgW01heF0oL3RyZW5kaW5nL21heD9zaW5jZT1kYWlseSkgW01BWFNjcmlwdF0oL3RyZW5kaW5nL21heHNjcmlwdD9zaW5jZT1kYWlseSkgW21jZnVuY3Rpb25dKC90cmVuZGluZy9tY2Z1bmN0aW9uP3NpbmNlPWRhaWx5KSBbbWRzdmV4XSgvdHJlbmRpbmcvbWRzdmV4P3NpbmNlPWRhaWx5KSBbTURYXSgvdHJlbmRpbmcvbWR4P3NpbmNlPWRhaWx5KSBbV2lraXRleHRdKC90cmVuZGluZy93aWtpdGV4dD9zaW5jZT1kYWlseSkgW01lcmN1cnldKC90cmVuZGluZy9tZXJjdXJ5P3NpbmNlPWRhaWx5KSBbTWVybWFpZF0oL3RyZW5kaW5nL21lcm1haWQ/c2luY2U9ZGFpbHkpIFtNZXNvbl0oL3RyZW5kaW5nL21lc29uP3NpbmNlPWRhaWx5KSBbTWV0YWxdKC90cmVuZGluZy9tZXRhbD9zaW5jZT1kYWlseSkgW01pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIFByb2plY3RdKC90cmVuZGluZy9taWNyb3NvZnQtZGV2ZWxvcGVyLXN0dWRpby1wcm9qZWN0P3NpbmNlPWRhaWx5KSBbTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb25dKC90cmVuZGluZy9taWNyb3NvZnQtdmlzdWFsLXN0dWRpby1zb2x1dGlvbj9zaW5jZT1kYWlseSkgW01pbmlEXSgvdHJlbmRpbmcvbWluaWQ/c2luY2U9ZGFpbHkpIFtNaW5pWUFNTF0oL3RyZW5kaW5nL21pbml5YW1sP3NpbmNlPWRhaWx5KSBbTWluaVppbmNdKC90cmVuZGluZy9taW5pemluYz9zaW5jZT1kYWlseSkgW01pbmlaaW5jIERhdGFdKC90cmVuZGluZy9taW5pemluYy1kYXRhP3NpbmNlPWRhaWx5KSBbTWludF0oL3RyZW5kaW5nL21pbnQ/c2luY2U9ZGFpbHkpIFtNaXJhaF0oL3RyZW5kaW5nL21pcmFoP3NpbmNlPWRhaWx5KSBbbUlSQyBTY3JpcHRdKC90cmVuZGluZy9taXJjLXNjcmlwdD9zaW5jZT1kYWlseSkgW01MSVJdKC90cmVuZGluZy9tbGlyP3NpbmNlPWRhaWx5KSBbTW9kZWxpY2FdKC90cmVuZGluZy9tb2RlbGljYT9zaW5jZT1kYWlseSkgW01vZHVsYS0yXSgvdHJlbmRpbmcvbW9kdWxhLTI/c2luY2U9ZGFpbHkpIFtNb2R1bGEtM10oL3RyZW5kaW5nL21vZHVsYS0zP3NpbmNlPWRhaWx5KSBbTW9kdWxlIE1hbmFnZW1lbnQgU3lzdGVtXSgvdHJlbmRpbmcvbW9kdWxlLW1hbmFnZW1lbnQtc3lzdGVtP3NpbmNlPWRhaWx5KSBbTW9qb10oL3RyZW5kaW5nL21vam8/c2luY2U9ZGFpbHkpIFtNb25rZXldKC90cmVuZGluZy9tb25rZXk/c2luY2U9ZGFpbHkpIFtNb25rZXkgQ10oL3RyZW5kaW5nL21vbmtleS1jP3NpbmNlPWRhaWx5KSBbTW9vY29kZV0oL3RyZW5kaW5nL21vb2NvZGU/c2luY2U9ZGFpbHkpIFtNb29uQml0XSgvdHJlbmRpbmcvbW9vbmJpdD9zaW5jZT1kYWlseSkgW01vb25TY3JpcHRdKC90cmVuZGluZy9tb29uc2NyaXB0P3NpbmNlPWRhaWx5KSBbTW90b2tvXSgvdHJlbmRpbmcvbW90b2tvP3NpbmNlPWRhaWx5KSBbTW90b3JvbGEgNjhLIEFzc2VtYmx5XSgvdHJlbmRpbmcvbW90b3JvbGEtNjhrLWFzc2VtYmx5P3NpbmNlPWRhaWx5KSBbTW92ZV0oL3RyZW5kaW5nL21vdmU/c2luY2U9ZGFpbHkpIFtNUUw0XSgvdHJlbmRpbmcvbXFsND9zaW5jZT1kYWlseSkgW01RTDVdKC90cmVuZGluZy9tcWw1P3NpbmNlPWRhaWx5KSBbTVRNTF0oL3RyZW5kaW5nL210bWw/c2luY2U9ZGFpbHkpIFtNVUZdKC90cmVuZGluZy9tdWY/c2luY2U9ZGFpbHkpIFttdXBhZF0oL3RyZW5kaW5nL211cGFkP3NpbmNlPWRhaWx5KSBbTXVzZV0oL3RyZW5kaW5nL211c2U/c2luY2U9ZGFpbHkpIFtNdXN0YWNoZV0oL3RyZW5kaW5nL211c3RhY2hlP3NpbmNlPWRhaWx5KSBbTXlnaHR5XSgvdHJlbmRpbmcvbXlnaHR5P3NpbmNlPWRhaWx5KSBbbmFub3JjXSgvdHJlbmRpbmcvbmFub3JjP3NpbmNlPWRhaWx5KSBbTmFzYWxdKC90cmVuZGluZy9uYXNhbD9zaW5jZT1kYWlseSkgW05BU0xdKC90cmVuZGluZy9uYXNsP3NpbmNlPWRhaWx5KSBbTkNMXSgvdHJlbmRpbmcvbmNsP3NpbmNlPWRhaWx5KSBbTmVhcmxleV0oL3RyZW5kaW5nL25lYXJsZXk/c2luY2U9ZGFpbHkpIFtOZW1lcmxlXSgvdHJlbmRpbmcvbmVtZXJsZT9zaW5jZT1kYWlseSkgW05FT05dKC90cmVuZGluZy9uZW9uP3NpbmNlPWRhaWx5KSBbbmVzQ10oL3RyZW5kaW5nL25lc2M/c2luY2U9ZGFpbHkpIFtOZXRMaW54XSgvdHJlbmRpbmcvbmV0bGlueD9zaW5jZT1kYWlseSkgW05ldExpbngrRVJCXSgvdHJlbmRpbmcvbmV0bGlueCtlcmI/c2luY2U9ZGFpbHkpIFtOZXRMb2dvXSgvdHJlbmRpbmcvbmV0bG9nbz9zaW5jZT1kYWlseSkgW05ld0xpc3BdKC90cmVuZGluZy9uZXdsaXNwP3NpbmNlPWRhaWx5KSBbTmV4dGZsb3ddKC90cmVuZGluZy9uZXh0Zmxvdz9zaW5jZT1kYWlseSkgW05naW54XSgvdHJlbmRpbmcvbmdpbng/c2luY2U9ZGFpbHkpIFtOaW1dKC90cmVuZGluZy9uaW0/c2luY2U9ZGFpbHkpIFtOaW5qYV0oL3RyZW5kaW5nL25pbmphP3NpbmNlPWRhaWx5KSBbTml0XSgvdHJlbmRpbmcvbml0P3NpbmNlPWRhaWx5KSBbTml4XSgvdHJlbmRpbmcvbml4P3NpbmNlPWRhaWx5KSBbTkxdKC90cmVuZGluZy9ubD9zaW5jZT1kYWlseSkgW05NT0RMXSgvdHJlbmRpbmcvbm1vZGw/c2luY2U9ZGFpbHkpIFtOb2lyXSgvdHJlbmRpbmcvbm9pcj9zaW5jZT1kYWlseSkgW05QTSBDb25maWddKC90cmVuZGluZy9ucG0tY29uZmlnP3NpbmNlPWRhaWx5KSBbTlNJU10oL3RyZW5kaW5nL25zaXM/c2luY2U9ZGFpbHkpIFtOdV0oL3RyZW5kaW5nL251P3NpbmNlPWRhaWx5KSBbTnVtUHldKC90cmVuZGluZy9udW1weT9zaW5jZT1kYWlseSkgW051bmp1Y2tzXSgvdHJlbmRpbmcvbnVuanVja3M/c2luY2U9ZGFpbHkpIFtOdXNoZWxsXSgvdHJlbmRpbmcvbnVzaGVsbD9zaW5jZT1kYWlseSkgW05XU2NyaXB0XSgvdHJlbmRpbmcvbndzY3JpcHQ/c2luY2U9ZGFpbHkpIFtPQVN2Mi1qc29uXSgvdHJlbmRpbmcvb2FzdjItanNvbj9zaW5jZT1kYWlseSkgW09BU3YyLXlhbWxdKC90cmVuZGluZy9vYXN2Mi15YW1sP3NpbmNlPWRhaWx5KSBbT0FTdjMtanNvbl0oL3RyZW5kaW5nL29hc3YzLWpzb24/c2luY2U9ZGFpbHkpIFtPQVN2My15YW1sXSgvdHJlbmRpbmcvb2FzdjMteWFtbD9zaW5jZT1kYWlseSkgW09iZXJvbl0oL3RyZW5kaW5nL29iZXJvbj9zaW5jZT1kYWlseSkgW09iakR1bXBdKC90cmVuZGluZy9vYmpkdW1wP3NpbmNlPWRhaWx5KSBbT2JqZWN0IERhdGEgSW5zdGFuY2UgTm90YXRpb25dKC90cmVuZGluZy9vYmplY3QtZGF0YS1pbnN0YW5jZS1ub3RhdGlvbj9zaW5jZT1kYWlseSkgW09iamVjdGl2ZS1DXSgvdHJlbmRpbmcvb2JqZWN0aXZlLWM/c2luY2U9ZGFpbHkpIFtPYmplY3RpdmUtQysrXSgvdHJlbmRpbmcvb2JqZWN0aXZlLWMrKz9zaW5jZT1kYWlseSkgW09iamVjdGl2ZS1KXSgvdHJlbmRpbmcvb2JqZWN0aXZlLWo/c2luY2U9ZGFpbHkpIFtPYmplY3RTY3JpcHRdKC90cmVuZGluZy9vYmplY3RzY3JpcHQ/c2luY2U9ZGFpbHkpIFtPQ2FtbF0oL3RyZW5kaW5nL29jYW1sP3NpbmNlPWRhaWx5KSBbT2Rpbl0oL3RyZW5kaW5nL29kaW4/c2luY2U9ZGFpbHkpIFtPbWdyb2ZsXSgvdHJlbmRpbmcvb21ncm9mbD9zaW5jZT1kYWlseSkgW09NTmVUKysgTVNHXSgvdHJlbmRpbmcvb21uZXQrKy1tc2c/c2luY2U9ZGFpbHkpIFtPTU5lVCsrIE5FRF0oL3RyZW5kaW5nL29tbmV0KystbmVkP3NpbmNlPWRhaWx5KSBbT01OZVQrKyBNU0ddKC90cmVuZGluZy9vbW5ldCsrLW1zZz9zaW5jZT1kYWlseSkgW09NTmVUKysgTkVEXSgvdHJlbmRpbmcvb21uZXQrKy1uZWQ/c2luY2U9ZGFpbHkpIFtvb2NdKC90cmVuZGluZy9vb2M/c2luY2U9ZGFpbHkpIFtPcGFdKC90cmVuZGluZy9vcGE/c2luY2U9ZGFpbHkpIFtPcGFsXSgvdHJlbmRpbmcvb3BhbD9zaW5jZT1kYWlseSkgW09wZW4gUG9saWN5IEFnZW50XSgvdHJlbmRpbmcvb3Blbi1wb2xpY3ktYWdlbnQ/c2luY2U9ZGFpbHkpIFtPcGVuQVBJIFNwZWNpZmljYXRpb24gdjJdKC90cmVuZGluZy9vcGVuYXBpLXNwZWNpZmljYXRpb24tdjI/c2luY2U9ZGFpbHkpIFtPcGVuQVBJIFNwZWNpZmljYXRpb24gdjNdKC90cmVuZGluZy9vcGVuYXBpLXNwZWNpZmljYXRpb24tdjM/c2luY2U9ZGFpbHkpIFtPcGVuQ0xdKC90cmVuZGluZy9vcGVuY2w/c2luY2U9ZGFpbHkpIFtPcGVuRWRnZSBBQkxdKC90cmVuZGluZy9vcGVuZWRnZS1hYmw/c2luY2U9ZGFpbHkpIFtPcGVuUUFTTV0oL3RyZW5kaW5nL29wZW5xYXNtP3NpbmNlPWRhaWx5KSBbT3BlblJDIHJ1bnNjcmlwdF0oL3RyZW5kaW5nL29wZW5yYy1ydW5zY3JpcHQ/c2luY2U9ZGFpbHkpIFtPcGVuU0NBRF0oL3RyZW5kaW5nL29wZW5zY2FkP3NpbmNlPWRhaWx5KSBbT3BlblN0ZXAgUHJvcGVydHkgTGlzdF0oL3RyZW5kaW5nL29wZW5zdGVwLXByb3BlcnR5LWxpc3Q/c2luY2U9ZGFpbHkpIFtPcGVuVHlwZSBGZWF0dXJlIEZpbGVdKC90cmVuZGluZy9vcGVudHlwZS1mZWF0dXJlLWZpbGU/c2luY2U9ZGFpbHkpIFtPcHRpb24gTGlzdF0oL3RyZW5kaW5nL29wdGlvbi1saXN0P3NpbmNlPWRhaWx5KSBbT3JnXSgvdHJlbmRpbmcvb3JnP3NpbmNlPWRhaWx5KSBbT3ZlcnBhc3NRTF0oL3RyZW5kaW5nL292ZXJwYXNzcWw/c2luY2U9ZGFpbHkpIFtPeF0oL3RyZW5kaW5nL294P3NpbmNlPWRhaWx5KSBbT3h5Z2VuZV0oL3RyZW5kaW5nL294eWdlbmU/c2luY2U9ZGFpbHkpIFtPel0oL3RyZW5kaW5nL296P3NpbmNlPWRhaWx5KSBbUDRdKC90cmVuZGluZy9wND9zaW5jZT1kYWlseSkgW1BhY3RdKC90cmVuZGluZy9wYWN0P3NpbmNlPWRhaWx5KSBbUGFuXSgvdHJlbmRpbmcvcGFuP3NpbmNlPWRhaWx5KSBbUGFweXJ1c10oL3RyZW5kaW5nL3BhcHlydXM/c2luY2U9ZGFpbHkpIFtQYXJyb3RdKC90cmVuZGluZy9wYXJyb3Q/c2luY2U9ZGFpbHkpIFtQYXJyb3QgQXNzZW1ibHldKC90cmVuZGluZy9wYXJyb3QtYXNzZW1ibHk/c2luY2U9ZGFpbHkpIFtQYXJyb3QgSW50ZXJuYWwgUmVwcmVzZW50YXRpb25dKC90cmVuZGluZy9wYXJyb3QtaW50ZXJuYWwtcmVwcmVzZW50YXRpb24/c2luY2U9ZGFpbHkpIFtQYXNjYWxdKC90cmVuZGluZy9wYXNjYWw/c2luY2U9ZGFpbHkpIFtQYXduXSgvdHJlbmRpbmcvcGF3bj9zaW5jZT1kYWlseSkgW1BERExdKC90cmVuZGluZy9wZGRsP3NpbmNlPWRhaWx5KSBbUEVHLmpzXSgvdHJlbmRpbmcvcGVnLmpzP3NpbmNlPWRhaWx5KSBbUGVwOF0oL3RyZW5kaW5nL3BlcDg/c2luY2U9ZGFpbHkpIFtQZXJsXSgvdHJlbmRpbmcvcGVybD9zaW5jZT1kYWlseSkgW1BIUF0oL3RyZW5kaW5nL3BocD9zaW5jZT1kYWlseSkgW1BpY10oL3RyZW5kaW5nL3BpYz9zaW5jZT1kYWlseSkgW1BpY2tsZV0oL3RyZW5kaW5nL3BpY2tsZT9zaW5jZT1kYWlseSkgW1BpY29MaXNwXSgvdHJlbmRpbmcvcGljb2xpc3A/c2luY2U9ZGFpbHkpIFtQaWdMYXRpbl0oL3RyZW5kaW5nL3BpZ2xhdGluP3NpbmNlPWRhaWx5KSBbUGlrZV0oL3RyZW5kaW5nL3Bpa2U/c2luY2U9ZGFpbHkpIFtQaXAgUmVxdWlyZW1lbnRzXSgvdHJlbmRpbmcvcGlwLXJlcXVpcmVtZW50cz9zaW5jZT1kYWlseSkgW1BrbF0oL3RyZW5kaW5nL3BrbD9zaW5jZT1kYWlseSkgW1BsYW50VU1MXSgvdHJlbmRpbmcvcGxhbnR1bWw/c2luY2U9ZGFpbHkpIFtQTHBnU1FMXSgvdHJlbmRpbmcvcGxwZ3NxbD9zaW5jZT1kYWlseSkgW1BMU1FMXSgvdHJlbmRpbmcvcGxzcWw/c2luY2U9ZGFpbHkpIFtQb2RdKC90cmVuZGluZy9wb2Q/c2luY2U9ZGFpbHkpIFtQb2QgNl0oL3RyZW5kaW5nL3BvZC02P3NpbmNlPWRhaWx5KSBbUG9nb1NjcmlwdF0oL3RyZW5kaW5nL3BvZ29zY3JpcHQ/c2luY2U9ZGFpbHkpIFtQb2xhcl0oL3RyZW5kaW5nL3BvbGFyP3NpbmNlPWRhaWx5KSBbUG9ueV0oL3RyZW5kaW5nL3Bvbnk/c2luY2U9ZGFpbHkpIFtQb3J0dWdvbF0oL3RyZW5kaW5nL3BvcnR1Z29sP3NpbmNlPWRhaWx5KSBbUG9zdENTU10oL3RyZW5kaW5nL3Bvc3Rjc3M/c2luY2U9ZGFpbHkpIFtQb3N0U2NyaXB0XSgvdHJlbmRpbmcvcG9zdHNjcmlwdD9zaW5jZT1kYWlseSkgW1BPVi1SYXkgU0RMXSgvdHJlbmRpbmcvcG92LXJheS1zZGw/c2luY2U9ZGFpbHkpIFtQb3dlckJ1aWxkZXJdKC90cmVuZGluZy9wb3dlcmJ1aWxkZXI/c2luY2U9ZGFpbHkpIFtQb3dlclNoZWxsXSgvdHJlbmRpbmcvcG93ZXJzaGVsbD9zaW5jZT1kYWlseSkgW1ByYWF0XSgvdHJlbmRpbmcvcHJhYXQ/c2luY2U9ZGFpbHkpIFtQcmlzbWFdKC90cmVuZGluZy9wcmlzbWE/c2luY2U9ZGFpbHkpIFtQcm9jZXNzaW5nXSgvdHJlbmRpbmcvcHJvY2Vzc2luZz9zaW5jZT1kYWlseSkgW1Byb2NmaWxlXSgvdHJlbmRpbmcvcHJvY2ZpbGU/c2luY2U9ZGFpbHkpIFtQcm9ndWFyZF0oL3RyZW5kaW5nL3Byb2d1YXJkP3NpbmNlPWRhaWx5KSBbUHJvbG9nXSgvdHJlbmRpbmcvcHJvbG9nP3NpbmNlPWRhaWx5KSBbUHJvbWVsYV0oL3RyZW5kaW5nL3Byb21lbGE/c2luY2U9ZGFpbHkpIFtQcm9wZWxsZXIgU3Bpbl0oL3RyZW5kaW5nL3Byb3BlbGxlci1zcGluP3NpbmNlPWRhaWx5KSBbUHJvdG9jb2wgQnVmZmVyXSgvdHJlbmRpbmcvcHJvdG9jb2wtYnVmZmVyP3NpbmNlPWRhaWx5KSBbUHJvdG9jb2wgQnVmZmVyIFRleHQgRm9ybWF0XSgvdHJlbmRpbmcvcHJvdG9jb2wtYnVmZmVyLXRleHQtZm9ybWF0P3NpbmNlPWRhaWx5KSBbUHVibGljIEtleV0oL3RyZW5kaW5nL3B1YmxpYy1rZXk/c2luY2U9ZGFpbHkpIFtQdWddKC90cmVuZGluZy9wdWc/c2luY2U9ZGFpbHkpIFtQdXBwZXRdKC90cmVuZGluZy9wdXBwZXQ/c2luY2U9ZGFpbHkpIFtQdXJlIERhdGFdKC90cmVuZGluZy9wdXJlLWRhdGE/c2luY2U9ZGFpbHkpIFtQdXJlQmFzaWNdKC90cmVuZGluZy9wdXJlYmFzaWM/c2luY2U9ZGFpbHkpIFtQdXJlU2NyaXB0XSgvdHJlbmRpbmcvcHVyZXNjcmlwdD9zaW5jZT1kYWlseSkgW1B5cmV0XSgvdHJlbmRpbmcvcHlyZXQ/c2luY2U9ZGFpbHkpIFtQeXRob25dKC90cmVuZGluZy9weXRob24/c2luY2U9ZGFpbHkpIFtQeXRob24gY29uc29sZV0oL3RyZW5kaW5nL3B5dGhvbi1jb25zb2xlP3NpbmNlPWRhaWx5KSBbUHl0aG9uIHRyYWNlYmFja10oL3RyZW5kaW5nL3B5dGhvbi10cmFjZWJhY2s/c2luY2U9ZGFpbHkpIFtxXSgvdHJlbmRpbmcvcT9zaW5jZT1kYWlseSkgW1EjXSgvdHJlbmRpbmcvcSUyMz9zaW5jZT1kYWlseSkgW1FNYWtlXSgvdHJlbmRpbmcvcW1ha2U/c2luY2U9ZGFpbHkpIFtRTUxdKC90cmVuZGluZy9xbWw/c2luY2U9ZGFpbHkpIFtRdCBTY3JpcHRdKC90cmVuZGluZy9xdC1zY3JpcHQ/c2luY2U9ZGFpbHkpIFtRdWFrZV0oL3RyZW5kaW5nL3F1YWtlP3NpbmNlPWRhaWx5KSBbUXVpY2tCQVNJQ10oL3RyZW5kaW5nL3F1aWNrYmFzaWM/c2luY2U9ZGFpbHkpIFtSXSgvdHJlbmRpbmcvcj9zaW5jZT1kYWlseSkgW1JhY2tldF0oL3RyZW5kaW5nL3JhY2tldD9zaW5jZT1kYWlseSkgW1JhZ2VsXSgvdHJlbmRpbmcvcmFnZWw/c2luY2U9ZGFpbHkpIFtSYWt1XSgvdHJlbmRpbmcvcmFrdT9zaW5jZT1kYWlseSkgW1JBTUxdKC90cmVuZGluZy9yYW1sP3NpbmNlPWRhaWx5KSBbUmFzY2FsXSgvdHJlbmRpbmcvcmFzY2FsP3NpbmNlPWRhaWx5KSBbUmF3IHRva2VuIGRhdGFdKC90cmVuZGluZy9yYXctdG9rZW4tZGF0YT9zaW5jZT1kYWlseSkgW1JCU10oL3RyZW5kaW5nL3Jicz9zaW5jZT1kYWlseSkgW1JEb2NdKC90cmVuZGluZy9yZG9jP3NpbmNlPWRhaWx5KSBbUmVhZGxpbmUgQ29uZmlnXSgvdHJlbmRpbmcvcmVhZGxpbmUtY29uZmlnP3NpbmNlPWRhaWx5KSBbUkVBTGJhc2ljXSgvdHJlbmRpbmcvcmVhbGJhc2ljP3NpbmNlPWRhaWx5KSBbUmVhc29uXSgvdHJlbmRpbmcvcmVhc29uP3NpbmNlPWRhaWx5KSBbUmVhc29uTElHT10oL3RyZW5kaW5nL3JlYXNvbmxpZ28/c2luY2U9ZGFpbHkpIFtSZWJvbF0oL3RyZW5kaW5nL3JlYm9sP3NpbmNlPWRhaWx5KSBbUmVjb3JkIEphcl0oL3RyZW5kaW5nL3JlY29yZC1qYXI/c2luY2U9ZGFpbHkpIFtSZWRdKC90cmVuZGluZy9yZWQ/c2luY2U9ZGFpbHkpIFtSZWRjb2RlXSgvdHJlbmRpbmcvcmVkY29kZT9zaW5jZT1kYWlseSkgW1JlZGlyZWN0IFJ1bGVzXSgvdHJlbmRpbmcvcmVkaXJlY3QtcnVsZXM/c2luY2U9ZGFpbHkpIFtSZWd1bGFyIEV4cHJlc3Npb25dKC90cmVuZGluZy9yZWd1bGFyLWV4cHJlc3Npb24/c2luY2U9ZGFpbHkpIFtSZW4nUHldKC90cmVuZGluZy9yZW4ncHk/c2luY2U9ZGFpbHkpIFtSZW5kZXJTY3JpcHRdKC90cmVuZGluZy9yZW5kZXJzY3JpcHQ/c2luY2U9ZGFpbHkpIFtSZVNjcmlwdF0oL3RyZW5kaW5nL3Jlc2NyaXB0P3NpbmNlPWRhaWx5KSBbcmVTdHJ1Y3R1cmVkVGV4dF0oL3RyZW5kaW5nL3Jlc3RydWN0dXJlZHRleHQ/c2luY2U9ZGFpbHkpIFtSRVhYXSgvdHJlbmRpbmcvcmV4eD9zaW5jZT1kYWlseSkgW1Jlel0oL3RyZW5kaW5nL3Jlej9zaW5jZT1kYWlseSkgW1JpY2ggVGV4dCBGb3JtYXRdKC90cmVuZGluZy9yaWNoLXRleHQtZm9ybWF0P3NpbmNlPWRhaWx5KSBbUmluZ10oL3RyZW5kaW5nL3Jpbmc/c2luY2U9ZGFpbHkpIFtSaW90XSgvdHJlbmRpbmcvcmlvdD9zaW5jZT1kYWlseSkgW1JNYXJrZG93bl0oL3RyZW5kaW5nL3JtYXJrZG93bj9zaW5jZT1kYWlseSkgW1JvYm90RnJhbWV3b3JrXSgvdHJlbmRpbmcvcm9ib3RmcmFtZXdvcms/c2luY2U9ZGFpbHkpIFtyb2JvdHMudHh0XSgvdHJlbmRpbmcvcm9ib3RzLnR4dD9zaW5jZT1kYWlseSkgW1JvY10oL3RyZW5kaW5nL3JvYz9zaW5jZT1kYWlseSkgW1JvZmZdKC90cmVuZGluZy9yb2ZmP3NpbmNlPWRhaWx5KSBbUm9mZiBNYW5wYWdlXSgvdHJlbmRpbmcvcm9mZi1tYW5wYWdlP3NpbmNlPWRhaWx5KSBbUk9OXSgvdHJlbmRpbmcvcm9uP3NpbmNlPWRhaWx5KSBbUm91Z2VdKC90cmVuZGluZy9yb3VnZT9zaW5jZT1kYWlseSkgW1JvdXRlck9TIFNjcmlwdF0oL3RyZW5kaW5nL3JvdXRlcm9zLXNjcmlwdD9zaW5jZT1kYWlseSkgW1JQQ10oL3RyZW5kaW5nL3JwYz9zaW5jZT1kYWlseSkgW1JQR0xFXSgvdHJlbmRpbmcvcnBnbGU/c2luY2U9ZGFpbHkpIFtSUE0gU3BlY10oL3RyZW5kaW5nL3JwbS1zcGVjP3NpbmNlPWRhaWx5KSBbUnVieV0oL3RyZW5kaW5nL3J1Ynk/c2luY2U9ZGFpbHkpIFtSVU5PRkZdKC90cmVuZGluZy9ydW5vZmY/c2luY2U9ZGFpbHkpIFtSdXN0XSgvdHJlbmRpbmcvcnVzdD9zaW5jZT1kYWlseSkgW1NhZ2VdKC90cmVuZGluZy9zYWdlP3NpbmNlPWRhaWx5KSBbU2FsdFN0YWNrXSgvdHJlbmRpbmcvc2FsdHN0YWNrP3NpbmNlPWRhaWx5KSBbU0FTXSgvdHJlbmRpbmcvc2FzP3NpbmNlPWRhaWx5KSBbU2Fzc10oL3RyZW5kaW5nL3Nhc3M/c2luY2U9ZGFpbHkpIFtTY2FsYV0oL3RyZW5kaW5nL3NjYWxhP3NpbmNlPWRhaWx5KSBbU2NhbWxdKC90cmVuZGluZy9zY2FtbD9zaW5jZT1kYWlseSkgW1NjZW5pY10oL3RyZW5kaW5nL3NjZW5pYz9zaW5jZT1kYWlseSkgW1NjaGVtZV0oL3RyZW5kaW5nL3NjaGVtZT9zaW5jZT1kYWlseSkgW1NjaWxhYl0oL3RyZW5kaW5nL3NjaWxhYj9zaW5jZT1kYWlseSkgW1NDU1NdKC90cmVuZGluZy9zY3NzP3NpbmNlPWRhaWx5KSBbc2VkXSgvdHJlbmRpbmcvc2VkP3NpbmNlPWRhaWx5KSBbU2VsZl0oL3RyZW5kaW5nL3NlbGY/c2luY2U9ZGFpbHkpIFtTRUxpbnV4IFBvbGljeV0oL3RyZW5kaW5nL3NlbGludXgtcG9saWN5P3NpbmNlPWRhaWx5KSBbU2hhZGVyTGFiXSgvdHJlbmRpbmcvc2hhZGVybGFiP3NpbmNlPWRhaWx5KSBbU2hlbGxdKC90cmVuZGluZy9zaGVsbD9zaW5jZT1kYWlseSkgW1NoZWxsQ2hlY2sgQ29uZmlnXSgvdHJlbmRpbmcvc2hlbGxjaGVjay1jb25maWc/c2luY2U9ZGFpbHkpIFtTaGVsbFNlc3Npb25dKC90cmVuZGluZy9zaGVsbHNlc3Npb24/c2luY2U9ZGFpbHkpIFtTaGVuXSgvdHJlbmRpbmcvc2hlbj9zaW5jZT1kYWlseSkgW1NpZXZlXSgvdHJlbmRpbmcvc2lldmU/c2luY2U9ZGFpbHkpIFtTaW1wbGUgRmlsZSBWZXJpZmljYXRpb25dKC90cmVuZGluZy9zaW1wbGUtZmlsZS12ZXJpZmljYXRpb24/c2luY2U9ZGFpbHkpIFtTaW5ndWxhcml0eV0oL3RyZW5kaW5nL3Npbmd1bGFyaXR5P3NpbmNlPWRhaWx5KSBbU2xhbmddKC90cmVuZGluZy9zbGFuZz9zaW5jZT1kYWlseSkgW1NsYXNoXSgvdHJlbmRpbmcvc2xhc2g/c2luY2U9ZGFpbHkpIFtTbGljZV0oL3RyZW5kaW5nL3NsaWNlP3NpbmNlPWRhaWx5KSBbU2xpbV0oL3RyZW5kaW5nL3NsaW0/c2luY2U9ZGFpbHkpIFtTbGludF0oL3RyZW5kaW5nL3NsaW50P3NpbmNlPWRhaWx5KSBbU21hbGldKC90cmVuZGluZy9zbWFsaT9zaW5jZT1kYWlseSkgW1NtYWxsdGFsa10oL3RyZW5kaW5nL3NtYWxsdGFsaz9zaW5jZT1kYWlseSkgW1NtYXJ0eV0oL3RyZW5kaW5nL3NtYXJ0eT9zaW5jZT1kYWlseSkgW1NtaXRoeV0oL3RyZW5kaW5nL3NtaXRoeT9zaW5jZT1kYWlseSkgW1NtUExdKC90cmVuZGluZy9zbXBsP3NpbmNlPWRhaWx5KSBbU01UXSgvdHJlbmRpbmcvc210P3NpbmNlPWRhaWx5KSBbU25ha2VtYWtlXSgvdHJlbmRpbmcvc25ha2VtYWtlP3NpbmNlPWRhaWx5KSBbU29saWRpdHldKC90cmVuZGluZy9zb2xpZGl0eT9zaW5jZT1kYWlseSkgW1Nvb25nXSgvdHJlbmRpbmcvc29vbmc/c2luY2U9ZGFpbHkpIFtTb3VyY2VQYXduXSgvdHJlbmRpbmcvc291cmNlcGF3bj9zaW5jZT1kYWlseSkgW1NQQVJRTF0oL3RyZW5kaW5nL3NwYXJxbD9zaW5jZT1kYWlseSkgW1NwbGluZSBGb250IERhdGFiYXNlXSgvdHJlbmRpbmcvc3BsaW5lLWZvbnQtZGF0YWJhc2U/c2luY2U9ZGFpbHkpIFtTUUZdKC90cmVuZGluZy9zcWY/c2luY2U9ZGFpbHkpIFtTUUxdKC90cmVuZGluZy9zcWw/c2luY2U9ZGFpbHkpIFtTUUxQTF0oL3RyZW5kaW5nL3NxbHBsP3NpbmNlPWRhaWx5KSBbU3F1aXJyZWxdKC90cmVuZGluZy9zcXVpcnJlbD9zaW5jZT1kYWlseSkgW1NSZWNvZGUgVGVtcGxhdGVdKC90cmVuZGluZy9zcmVjb2RlLXRlbXBsYXRlP3NpbmNlPWRhaWx5KSBbU1NIIENvbmZpZ10oL3RyZW5kaW5nL3NzaC1jb25maWc/c2luY2U9ZGFpbHkpIFtTdGFuXSgvdHJlbmRpbmcvc3Rhbj9zaW5jZT1kYWlseSkgW1N0YW5kYXJkIE1MXSgvdHJlbmRpbmcvc3RhbmRhcmQtbWw/c2luY2U9ZGFpbHkpIFtTVEFSXSgvdHJlbmRpbmcvc3Rhcj9zaW5jZT1kYWlseSkgW1N0YXJsYXJrXSgvdHJlbmRpbmcvc3Rhcmxhcms/c2luY2U9ZGFpbHkpIFtTdGF0YV0oL3RyZW5kaW5nL3N0YXRhP3NpbmNlPWRhaWx5KSBbU1RMXSgvdHJlbmRpbmcvc3RsP3NpbmNlPWRhaWx5KSBbU1RPTl0oL3RyZW5kaW5nL3N0b24/c2luY2U9ZGFpbHkpIFtTdHJpbmdUZW1wbGF0ZV0oL3RyZW5kaW5nL3N0cmluZ3RlbXBsYXRlP3NpbmNlPWRhaWx5KSBbU3R5bHVzXSgvdHJlbmRpbmcvc3R5bHVzP3NpbmNlPWRhaWx5KSBbU3ViUmlwIFRleHRdKC90cmVuZGluZy9zdWJyaXAtdGV4dD9zaW5jZT1kYWlseSkgW1N1Z2FyU1NdKC90cmVuZGluZy9zdWdhcnNzP3NpbmNlPWRhaWx5KSBbU3VwZXJDb2xsaWRlcl0oL3RyZW5kaW5nL3N1cGVyY29sbGlkZXI/c2luY2U9ZGFpbHkpIFtTdXJ2ZXggZGF0YV0oL3RyZW5kaW5nL3N1cnZleC1kYXRhP3NpbmNlPWRhaWx5KSBbU3ZlbHRlXSgvdHJlbmRpbmcvc3ZlbHRlP3NpbmNlPWRhaWx5KSBbU1ZHXSgvdHJlbmRpbmcvc3ZnP3NpbmNlPWRhaWx5KSBbU3dheV0oL3RyZW5kaW5nL3N3YXk/c2luY2U9ZGFpbHkpIFtTd2VhdmVdKC90cmVuZGluZy9zd2VhdmU/c2luY2U9ZGFpbHkpIFtTd2lmdF0oL3RyZW5kaW5nL3N3aWZ0P3NpbmNlPWRhaWx5KSBbU1dJR10oL3RyZW5kaW5nL3N3aWc/c2luY2U9ZGFpbHkpIFtTeXN0ZW1WZXJpbG9nXSgvdHJlbmRpbmcvc3lzdGVtdmVyaWxvZz9zaW5jZT1kYWlseSkgW1RhY3RdKC90cmVuZGluZy90YWN0P3NpbmNlPWRhaWx5KSBbVGFsb25dKC90cmVuZGluZy90YWxvbj9zaW5jZT1kYWlseSkgW1RjbF0oL3RyZW5kaW5nL3RjbD9zaW5jZT1kYWlseSkgW1Rjc2hdKC90cmVuZGluZy90Y3NoP3NpbmNlPWRhaWx5KSBbVGVhXSgvdHJlbmRpbmcvdGVhP3NpbmNlPWRhaWx5KSBbdGVtcGxdKC90cmVuZGluZy90ZW1wbD9zaW5jZT1kYWlseSkgW1RlcnJhXSgvdHJlbmRpbmcvdGVycmE/c2luY2U9ZGFpbHkpIFtUZXJyYWZvcm0gVGVtcGxhdGVdKC90cmVuZGluZy90ZXJyYWZvcm0tdGVtcGxhdGU/c2luY2U9ZGFpbHkpIFtUZVhdKC90cmVuZGluZy90ZXg/c2luY2U9ZGFpbHkpIFtUZXhpbmZvXSgvdHJlbmRpbmcvdGV4aW5mbz9zaW5jZT1kYWlseSkgW1RleHRdKC90cmVuZGluZy90ZXh0P3NpbmNlPWRhaWx5KSBbVGV4dEdyaWRdKC90cmVuZGluZy90ZXh0Z3JpZD9zaW5jZT1kYWlseSkgW1RleHRpbGVdKC90cmVuZGluZy90ZXh0aWxlP3NpbmNlPWRhaWx5KSBbVGV4dE1hdGUgUHJvcGVydGllc10oL3RyZW5kaW5nL3RleHRtYXRlLXByb3BlcnRpZXM/c2luY2U9ZGFpbHkpIFtUaHJpZnRdKC90cmVuZGluZy90aHJpZnQ/c2luY2U9ZGFpbHkpIFtUSSBQcm9ncmFtXSgvdHJlbmRpbmcvdGktcHJvZ3JhbT9zaW5jZT1kYWlseSkgW1RMLVZlcmlsb2ddKC90cmVuZGluZy90bC12ZXJpbG9nP3NpbmNlPWRhaWx5KSBbVExBXSgvdHJlbmRpbmcvdGxhP3NpbmNlPWRhaWx5KSBbVG9pdF0oL3RyZW5kaW5nL3RvaXQ/c2luY2U9ZGFpbHkpIFtUT01MXSgvdHJlbmRpbmcvdG9tbD9zaW5jZT1kYWlseSkgW1RyZWUtc2l0dGVyIFF1ZXJ5XSgvdHJlbmRpbmcvdHJlZS1zaXR0ZXItcXVlcnk/c2luY2U9ZGFpbHkpIFtUU1BMSUIgZGF0YV0oL3RyZW5kaW5nL3RzcGxpYi1kYXRhP3NpbmNlPWRhaWx5KSBbVFNRTF0oL3RyZW5kaW5nL3RzcWw/c2luY2U9ZGFpbHkpIFtUU1ZdKC90cmVuZGluZy90c3Y/c2luY2U9ZGFpbHkpIFtUU1hdKC90cmVuZGluZy90c3g/c2luY2U9ZGFpbHkpIFtUdXJpbmddKC90cmVuZGluZy90dXJpbmc/c2luY2U9ZGFpbHkpIFtUdXJ0bGVdKC90cmVuZGluZy90dXJ0bGU/c2luY2U9ZGFpbHkpIFtUd2lnXSgvdHJlbmRpbmcvdHdpZz9zaW5jZT1kYWlseSkgW1RYTF0oL3RyZW5kaW5nL3R4bD9zaW5jZT1kYWlseSkgW1R5cGUgTGFuZ3VhZ2VdKC90cmVuZGluZy90eXBlLWxhbmd1YWdlP3NpbmNlPWRhaWx5KSBbVHlwZVNjcmlwdF0oL3RyZW5kaW5nL3R5cGVzY3JpcHQ/c2luY2U9ZGFpbHkpIFtUeXBlU3BlY10oL3RyZW5kaW5nL3R5cGVzcGVjP3NpbmNlPWRhaWx5KSBbVHlwc3RdKC90cmVuZGluZy90eXBzdD9zaW5jZT1kYWlseSkgW1VuaWZpZWQgUGFyYWxsZWwgQ10oL3RyZW5kaW5nL3VuaWZpZWQtcGFyYWxsZWwtYz9zaW5jZT1kYWlseSkgW1VuaXR5M0QgQXNzZXRdKC90cmVuZGluZy91bml0eTNkLWFzc2V0P3NpbmNlPWRhaWx5KSBbVW5peCBBc3NlbWJseV0oL3RyZW5kaW5nL3VuaXgtYXNzZW1ibHk/c2luY2U9ZGFpbHkpIFtVbm9dKC90cmVuZGluZy91bm8/c2luY2U9ZGFpbHkpIFtVbnJlYWxTY3JpcHRdKC90cmVuZGluZy91bnJlYWxzY3JpcHQ/c2luY2U9ZGFpbHkpIFtVcldlYl0oL3RyZW5kaW5nL3Vyd2ViP3NpbmNlPWRhaWx5KSBbVl0oL3RyZW5kaW5nL3Y/c2luY2U9ZGFpbHkpIFtWYWxhXSgvdHJlbmRpbmcvdmFsYT9zaW5jZT1kYWlseSkgW1ZhbHZlIERhdGEgRm9ybWF0XSgvdHJlbmRpbmcvdmFsdmUtZGF0YS1mb3JtYXQ/c2luY2U9ZGFpbHkpIFtWQkFdKC90cmVuZGluZy92YmE/c2luY2U9ZGFpbHkpIFtWQlNjcmlwdF0oL3RyZW5kaW5nL3Zic2NyaXB0P3NpbmNlPWRhaWx5KSBbdkNhcmRdKC90cmVuZGluZy92Y2FyZD9zaW5jZT1kYWlseSkgW1ZDTF0oL3RyZW5kaW5nL3ZjbD9zaW5jZT1kYWlseSkgW1ZlbG9jaXR5IFRlbXBsYXRlIExhbmd1YWdlXSgvdHJlbmRpbmcvdmVsb2NpdHktdGVtcGxhdGUtbGFuZ3VhZ2U/c2luY2U9ZGFpbHkpIFtWZXJpbG9nXSgvdHJlbmRpbmcvdmVyaWxvZz9zaW5jZT1kYWlseSkgW1ZIRExdKC90cmVuZGluZy92aGRsP3NpbmNlPWRhaWx5KSBbVmltIEhlbHAgRmlsZV0oL3RyZW5kaW5nL3ZpbS1oZWxwLWZpbGU/c2luY2U9ZGFpbHkpIFtWaW0gU2NyaXB0XSgvdHJlbmRpbmcvdmltLXNjcmlwdD9zaW5jZT1kYWlseSkgW1ZpbSBTbmlwcGV0XSgvdHJlbmRpbmcvdmltLXNuaXBwZXQ/c2luY2U9ZGFpbHkpIFtWaXN1YWwgQmFzaWMgLk5FVF0oL3RyZW5kaW5nL3Zpc3VhbC1iYXNpYy0ubmV0P3NpbmNlPWRhaWx5KSBbVmlzdWFsIEJhc2ljIC5ORVRdKC90cmVuZGluZy92aXN1YWwtYmFzaWMtLm5ldD9zaW5jZT1kYWlseSkgW1Zpc3VhbCBCYXNpYyA2LjBdKC90cmVuZGluZy92aXN1YWwtYmFzaWMtNi4wP3NpbmNlPWRhaWx5KSBbVm9sdF0oL3RyZW5kaW5nL3ZvbHQ/c2luY2U9ZGFpbHkpIFtWdWVdKC90cmVuZGluZy92dWU/c2luY2U9ZGFpbHkpIFtWeXBlcl0oL3RyZW5kaW5nL3Z5cGVyP3NpbmNlPWRhaWx5KSBbV2F2ZWZyb250IE1hdGVyaWFsXSgvdHJlbmRpbmcvd2F2ZWZyb250LW1hdGVyaWFsP3NpbmNlPWRhaWx5KSBbV2F2ZWZyb250IE9iamVjdF0oL3RyZW5kaW5nL3dhdmVmcm9udC1vYmplY3Q/c2luY2U9ZGFpbHkpIFtXRExdKC90cmVuZGluZy93ZGw/c2luY2U9ZGFpbHkpIFtXZWIgT250b2xvZ3kgTGFuZ3VhZ2VdKC90cmVuZGluZy93ZWItb250b2xvZ3ktbGFuZ3VhZ2U/c2luY2U9ZGFpbHkpIFtXZWJBc3NlbWJseV0oL3RyZW5kaW5nL3dlYmFzc2VtYmx5P3NpbmNlPWRhaWx5KSBbV2ViQXNzZW1ibHkgSW50ZXJmYWNlIFR5cGVdKC90cmVuZGluZy93ZWJhc3NlbWJseS1pbnRlcmZhY2UtdHlwZT9zaW5jZT1kYWlseSkgW1dlYklETF0oL3RyZW5kaW5nL3dlYmlkbD9zaW5jZT1kYWlseSkgW1dlYlZUVF0oL3RyZW5kaW5nL3dlYnZ0dD9zaW5jZT1kYWlseSkgW1dnZXQgQ29uZmlnXSgvdHJlbmRpbmcvd2dldC1jb25maWc/c2luY2U9ZGFpbHkpIFtXR1NMXSgvdHJlbmRpbmcvd2dzbD9zaW5jZT1kYWlseSkgW1doaWxleV0oL3RyZW5kaW5nL3doaWxleT9zaW5jZT1kYWlseSkgW1dpa2l0ZXh0XSgvdHJlbmRpbmcvd2lraXRleHQ/c2luY2U9ZGFpbHkpIFtXaW4zMiBNZXNzYWdlIEZpbGVdKC90cmVuZGluZy93aW4zMi1tZXNzYWdlLWZpbGU/c2luY2U9ZGFpbHkpIFtXaW5kb3dzIFJlZ2lzdHJ5IEVudHJpZXNdKC90cmVuZGluZy93aW5kb3dzLXJlZ2lzdHJ5LWVudHJpZXM/c2luY2U9ZGFpbHkpIFt3aXNwXSgvdHJlbmRpbmcvd2lzcD9zaW5jZT1kYWlseSkgW1dpdGNoZXIgU2NyaXB0XSgvdHJlbmRpbmcvd2l0Y2hlci1zY3JpcHQ/c2luY2U9ZGFpbHkpIFtXb2xsb2tdKC90cmVuZGluZy93b2xsb2s/c2luY2U9ZGFpbHkpIFtXb3JsZCBvZiBXYXJjcmFmdCBBZGRvbiBEYXRhXSgvdHJlbmRpbmcvd29ybGQtb2Ytd2FyY3JhZnQtYWRkb24tZGF0YT9zaW5jZT1kYWlseSkgW1dyZW5dKC90cmVuZGluZy93cmVuP3NpbmNlPWRhaWx5KSBbWCBCaXRNYXBdKC90cmVuZGluZy94LWJpdG1hcD9zaW5jZT1kYWlseSkgW1ggRm9udCBEaXJlY3RvcnkgSW5kZXhdKC90cmVuZGluZy94LWZvbnQtZGlyZWN0b3J5LWluZGV4P3NpbmNlPWRhaWx5KSBbWCBQaXhNYXBdKC90cmVuZGluZy94LXBpeG1hcD9zaW5jZT1kYWlseSkgW1gxMF0oL3RyZW5kaW5nL3gxMD9zaW5jZT1kYWlseSkgW3hCYXNlXSgvdHJlbmRpbmcveGJhc2U/c2luY2U9ZGFpbHkpIFtYQ10oL3RyZW5kaW5nL3hjP3NpbmNlPWRhaWx5KSBbWENvbXBvc2VdKC90cmVuZGluZy94Y29tcG9zZT9zaW5jZT1kYWlseSkgW1htYWtlXSgvdHJlbmRpbmcveG1ha2U/c2luY2U9ZGFpbHkpIFtYTUxdKC90cmVuZGluZy94bWw/c2luY2U9ZGFpbHkpIFtYTUwgUHJvcGVydHkgTGlzdF0oL3RyZW5kaW5nL3htbC1wcm9wZXJ0eS1saXN0P3NpbmNlPWRhaWx5KSBbWG9qb10oL3RyZW5kaW5nL3hvam8/c2luY2U9ZGFpbHkpIFtYb25zaF0oL3RyZW5kaW5nL3hvbnNoP3NpbmNlPWRhaWx5KSBbWFBhZ2VzXSgvdHJlbmRpbmcveHBhZ2VzP3NpbmNlPWRhaWx5KSBbWFByb2NdKC90cmVuZGluZy94cHJvYz9zaW5jZT1kYWlseSkgW1hRdWVyeV0oL3RyZW5kaW5nL3hxdWVyeT9zaW5jZT1kYWlseSkgW1hTXSgvdHJlbmRpbmcveHM/c2luY2U9ZGFpbHkpIFtYU0xUXSgvdHJlbmRpbmcveHNsdD9zaW5jZT1kYWlseSkgW1h0ZW5kXSgvdHJlbmRpbmcveHRlbmQ/c2luY2U9ZGFpbHkpIFtZYWNjXSgvdHJlbmRpbmcveWFjYz9zaW5jZT1kYWlseSkgW1lBTUxdKC90cmVuZGluZy95YW1sP3NpbmNlPWRhaWx5KSBbWUFOR10oL3RyZW5kaW5nL3lhbmc/c2luY2U9ZGFpbHkpIFtZQVJBXSgvdHJlbmRpbmcveWFyYT9zaW5jZT1kYWlseSkgW1lBU25pcHBldF0oL3RyZW5kaW5nL3lhc25pcHBldD9zaW5jZT1kYWlseSkgW1l1bF0oL3RyZW5kaW5nL3l1bD9zaW5jZT1kYWlseSkgW1pBUF0oL3RyZW5kaW5nL3phcD9zaW5jZT1kYWlseSkgW1plZWtdKC90cmVuZGluZy96ZWVrP3NpbmNlPWRhaWx5KSBbWmVuU2NyaXB0XSgvdHJlbmRpbmcvemVuc2NyaXB0P3NpbmNlPWRhaWx5KSBbWmVwaGlyXSgvdHJlbmRpbmcvemVwaGlyP3NpbmNlPWRhaWx5KSBbWmlnXSgvdHJlbmRpbmcvemlnP3NpbmNlPWRhaWx5KSBbWklMXSgvdHJlbmRpbmcvemlsP3NpbmNlPWRhaWx5KSBbWmltcGxdKC90cmVuZGluZy96aW1wbD9zaW5jZT1kYWlseSlcblxuTG9hZGluZ1xuXG5EYXRlIHJhbmdlOiBUb2RheVxuXG5BZGp1c3QgdGltZSBzcGFuXG5cbltUb2RheV0oaHR0cHM6Ly9naXRodWIuY29tL3RyZW5kaW5nP3NpbmNlPWRhaWx5KSBbVGhpcyB3ZWVrXShodHRwczovL2dpdGh1Yi5jb20vdHJlbmRpbmc/c2luY2U9d2Vla2x5KSBbVGhpcyBtb250aF0oaHR0cHM6Ly9naXRodWIuY29tL3RyZW5kaW5nP3NpbmNlPW1vbnRobHkpXG5cbltTcG9uc29yXSgvc3BvbnNvcnMvRm9zb3dsKVxuXG5bU3Rhcl0oL2xvZ2luP3JldHVybl90bz0lMkZGb3Nvd2wlMkZhZ2VudGljU2VlaylcblxuW0Zvc293bCAvIGFnZW50aWNTZWVrXSgvRm9zb3dsL2FnZW50aWNTZWVrKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5GdWxseSBMb2NhbCBNYW51cyBBSS4gTm8gQVBJcywgTm8gJDIwMCBtb250aGx5IGJpbGxzLiBFbmpveSBhbiBhdXRvbm9tb3VzIGFnZW50IHRoYXQgdGhpbmtzLCBicm93c2VzIHRoZSB3ZWIsIGFuZCBjb2RlIGZvciB0aGUgc29sZSBjb3N0IG9mIGVsZWN0cmljaXR5LlxuXG5QeXRob24gWzEzLDEzNV0oL0Zvc293bC9hZ2VudGljU2Vlay9zdGFyZ2F6ZXJzKSBbMSwwODhdKC9Gb3Nvd2wvYWdlbnRpY1NlZWsvZm9ya3MpIEJ1aWx0IGJ5IFshW0BGb3Nvd2xdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80OTEwNTg0Nj9zPTQwJnY9NCldKC9Gb3Nvd2wpIFshW0BzdGV2ZWg4NzU4XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTU5NTgwOTg/cz00MCZ2PTQpXSgvc3RldmVoODc1OCkgWyFbQGtsaW1lbnRpal0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzMyNDc2Njk/cz00MCZ2PTQpXSgva2xpbWVudGlqKSBbIVtAZ2FuZXNobmlraGlsXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzM5NzYwMzc/cz00MCZ2PTQpXSgvZ2FuZXNobmlraGlsKSBbIVtAQ29waWxvdF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS9pbi85NDY2MDA/cz00MCZ2PTQpXSgvYXBwcy9jb3BpbG90LXB1bGwtcmVxdWVzdC1yZXZpZXdlcikgICAgICAxLDg2NCBzdGFycyB0b2RheVxuXG5bU3Rhcl0oL2xvZ2luP3JldHVybl90bz0lMkZXaGlza2V5U29ja2V0cyUyRkJhaWxleXMpXG5cbltXaGlza2V5U29ja2V0cyAvIEJhaWxleXNdKC9XaGlza2V5U29ja2V0cy9CYWlsZXlzKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkxpZ2h0d2VpZ2h0IGZ1bGwtZmVhdHVyZWQgdHlwZXNjcmlwdC9qYXZhc2NyaXB0IFdoYXRzQXBwIFdlYiBBUElcblxuSmF2YVNjcmlwdCBbNSw2MTFdKC9XaGlza2V5U29ja2V0cy9CYWlsZXlzL3N0YXJnYXplcnMpIFsxLDg4MF0oL1doaXNrZXlTb2NrZXRzL0JhaWxleXMvZm9ya3MpIEJ1aWx0IGJ5IFshW0BhZGl3YWpzaGluZ10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzgzMjg4NjQ/cz00MCZ2PTQpXSgvYWRpd2Fqc2hpbmcpIFshW0BwdXJwc2hlbGxdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MjcyMDc1Mz9zPTQwJnY9NCldKC9wdXJwc2hlbGwpIFshW0BlZGdhcmRtZXNzaWFzXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTUzMDk5Nz9zPTQwJnY9NCldKC9lZGdhcmRtZXNzaWFzKSBbIVtAY2Fub3ZlXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjQ4MTc4NjY/cz00MCZ2PTQpXSgvY2Fub3ZlKSBbIVtAZ2l0aHViLWFjdGlvbnNdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vaW4vMTUzNjg/cz00MCZ2PTQpXSgvYXBwcy9naXRodWItYWN0aW9ucykgICAgICAzOSBzdGFycyB0b2RheVxuXG5bU3Rhcl0oL2xvZ2luP3JldHVybl90bz0lMkZ2dWVqcyUyRmNvcmUpXG5cblt2dWVqcyAvIGNvcmVdKC92dWVqcy9jb3JlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbvCflpYgVnVlLmpzIGlzIGEgcHJvZ3Jlc3NpdmUsIGluY3JlbWVudGFsbHktYWRvcHRhYmxlIEphdmFTY3JpcHQgZnJhbWV3b3JrIGZvciBidWlsZGluZyBVSSBvbiB0aGUgd2ViLlxuXG5UeXBlU2NyaXB0IFs1MCwyNjhdKC92dWVqcy9jb3JlL3N0YXJnYXplcnMpIFs4LDY2NV0oL3Z1ZWpzL2NvcmUvZm9ya3MpIEJ1aWx0IGJ5IFshW0B5eXg5OTA4MDNdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80OTk1NTA/cz00MCZ2PTQpXSgveXl4OTkwODAzKSBbIVtAZGVwZW5kYWJvdC1wcmV2aWV3XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2luLzIxNDE/cz00MCZ2PTQpXSgvYXBwcy9kZXBlbmRhYm90LXByZXZpZXcpIFshW0ByZW5vdmF0ZV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS9pbi8yNzQwP3M9NDAmdj00KV0oL2FwcHMvcmVub3ZhdGUpIFshW0BlZGlzb24xMTA1XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcwNTE5OT9zPTQwJnY9NCldKC9lZGlzb24xMTA1KSBbIVtASGN5U3VuWWFuZ10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0MTQ2NTYwP3M9NDAmdj00KV0oL0hjeVN1bllhbmcpICAgICAgMzIgc3RhcnMgdG9kYXlcblxuW1N0YXJdKC9sb2dpbj9yZXR1cm5fdG89JTJGYW50aHJvcGljcyUyRnByb21wdC1lbmctaW50ZXJhY3RpdmUtdHV0b3JpYWwpXG5cblthbnRocm9waWNzIC8gcHJvbXB0LWVuZy1pbnRlcmFjdGl2ZS10dXRvcmlhbF0oL2FudGhyb3BpY3MvcHJvbXB0LWVuZy1pbnRlcmFjdGl2ZS10dXRvcmlhbClcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQW50aHJvcGljJ3MgSW50ZXJhY3RpdmUgUHJvbXB0IEVuZ2luZWVyaW5nIFR1dG9yaWFsXG5cbkp1cHl0ZXIgTm90ZWJvb2sgWzQsNzk2XSgvYW50aHJvcGljcy9wcm9tcHQtZW5nLWludGVyYWN0aXZlLXR1dG9yaWFsL3N0YXJnYXplcnMpIFs1MzFdKC9hbnRocm9waWNzL3Byb21wdC1lbmctaW50ZXJhY3RpdmUtdHV0b3JpYWwvZm9ya3MpIEJ1aWx0IGJ5IFshW0BDbG91ZHNPZkNoYW5nZV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzIyMTIwMjA/cz00MCZ2PTQpXSgvQ2xvdWRzT2ZDaGFuZ2UpIFshW0BtYWdnaWUtdm9dKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDM0MTE1OTA/cz00MCZ2PTQpXSgvbWFnZ2llLXZvKSBbIVtAamF3aG55Y29va2VdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTgwODAwMj9zPTQwJnY9NCldKC9qYXdobnljb29rZSkgICAgNzM2IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRmxpdmVzdG9yZWpzJTJGbGl2ZXN0b3JlKVxuXG5bbGl2ZXN0b3JlanMgLyBsaXZlc3RvcmVdKC9saXZlc3RvcmVqcy9saXZlc3RvcmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkxpdmVTdG9yZSBpcyBhIG5leHQtZ2VuZXJhdGlvbiBzdGF0ZSBtYW5hZ2VtZW50IGZyYW1ld29yayBiYXNlZCBvbiByZWFjdGl2ZSBTUUxpdGUgYW5kIGJ1aWx0LWluIHN5bmMgZW5naW5lLlxuXG5UeXBlU2NyaXB0IFsxLDU0MF0oL2xpdmVzdG9yZWpzL2xpdmVzdG9yZS9zdGFyZ2F6ZXJzKSBbMjhdKC9saXZlc3RvcmVqcy9saXZlc3RvcmUvZm9ya3MpIEJ1aWx0IGJ5IFshW0BzY2hpY2tsaW5nXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU2NzQ5OD9zPTQwJnY9NCldKC9zY2hpY2tsaW5nKSBbIVtAdGFudGFtYW5dKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMDA5MDAzP3M9NDAmdj00KV0oL3RhbnRhbWFuKSBbIVtASUdhc3NtYW5uXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDI5MTcwNz9zPTQwJnY9NCldKC9JR2Fzc21hbm4pIFshW0Bha29lbmlnXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjI0OTEwP3M9NDAmdj00KV0oL2Frb2VuaWcpIFshW0BiZXRvbW9lZGFub10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQzNjMwNDE3P3M9NDAmdj00KV0oL2JldG9tb2VkYW5vKSAgICAgIDMwMyBzdGFycyB0b2RheVxuXG5bU3Rhcl0oL2xvZ2luP3JldHVybl90bz0lMkZtaWNyb3NvZnQlMkZhaS1hZ2VudHMtZm9yLWJlZ2lubmVycylcblxuW21pY3Jvc29mdCAvIGFpLWFnZW50cy1mb3ItYmVnaW5uZXJzXSgvbWljcm9zb2Z0L2FpLWFnZW50cy1mb3ItYmVnaW5uZXJzKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4xMSBMZXNzb25zIHRvIEdldCBTdGFydGVkIEJ1aWxkaW5nIEFJIEFnZW50c1xuXG5KdXB5dGVyIE5vdGVib29rIFsyMiwyOTVdKC9taWNyb3NvZnQvYWktYWdlbnRzLWZvci1iZWdpbm5lcnMvc3RhcmdhemVycykgWzUsOTc4XSgvbWljcm9zb2Z0L2FpLWFnZW50cy1mb3ItYmVnaW5uZXJzL2ZvcmtzKSBCdWlsdCBieSBbIVtAa29yZXlzcGFjZV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc0NjI5MDk/cz00MCZ2PTQpXSgva29yZXlzcGFjZSkgWyFbQGxlZXN0b3R0XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjUxMTM0MT9zPTQwJnY9NCldKC9sZWVzdG90dCkgWyFbQFNoaXZhbUdveWFsMDNdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85MzM4MzE2ND9zPTQwJnY9NCldKC9TaGl2YW1Hb3lhbDAzKSBbIVtAYXByaWxzcGVpZ2h0XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzQxOTU4NjY/cz00MCZ2PTQpXSgvYXByaWxzcGVpZ2h0KSBbIVtAd3R1bGxvY2hdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xODg2MDc5P3M9NDAmdj00KV0oL3d0dWxsb2NoKSAgICAgIDIxOSBzdGFycyB0b2RheVxuXG5bU3Rhcl0oL2xvZ2luP3JldHVybl90bz0lMkZvc3N1JTJGY29tcHV0ZXItc2NpZW5jZSlcblxuW29zc3UgLyBjb21wdXRlci1zY2llbmNlXSgvb3NzdS9jb21wdXRlci1zY2llbmNlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG7wn46TIFBhdGggdG8gYSBmcmVlIHNlbGYtdGF1Z2h0IGVkdWNhdGlvbiBpbiBDb21wdXRlciBTY2llbmNlIVxuXG5IVE1MIFsxODQsNDYzXSgvb3NzdS9jb21wdXRlci1zY2llbmNlL3N0YXJnYXplcnMpIFsyMywxNDhdKC9vc3N1L2NvbXB1dGVyLXNjaWVuY2UvZm9ya3MpIEJ1aWx0IGJ5IFshW0BlcmljZG91Z2xhc10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQxMTk5MzE/cz00MCZ2PTQpXSgvZXJpY2RvdWdsYXMpIFshW0B3YWNpdW1hd2Fuam9oaV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE4NDA3NjQzP3M9NDAmdj00KV0oL3dhY2l1bWF3YW5qb2hpKSBbIVtAam9zaG1oYW5zb25dKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81Njk1MzMwP3M9NDAmdj00KV0oL2pvc2htaGFuc29uKSBbIVtAbWtnaG9zaF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEwNDk1ODA5P3M9NDAmdj00KV0oL21rZ2hvc2gpIFshW0BzcGFtZWdnMV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQyNTU5OTc/cz00MCZ2PTQpXSgvc3BhbWVnZzEpICAgICAgNDI3IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRm44bi1pbyUyRm44bilcblxuW244bi1pbyAvIG44bl0oL244bi1pby9uOG4pXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuRmFpci1jb2RlIHdvcmtmbG93IGF1dG9tYXRpb24gcGxhdGZvcm0gd2l0aCBuYXRpdmUgQUkgY2FwYWJpbGl0aWVzLiBDb21iaW5lIHZpc3VhbCBidWlsZGluZyB3aXRoIGN1c3RvbSBjb2RlLCBzZWxmLWhvc3Qgb3IgY2xvdWQsIDQwMCsgaW50ZWdyYXRpb25zLlxuXG5UeXBlU2NyaXB0IFsxMDEsMTQ0XSgvbjhuLWlvL244bi9zdGFyZ2F6ZXJzKSBbMjgsMDYwXSgvbjhuLWlvL244bi9mb3JrcykgQnVpbHQgYnkgWyFbQGphbm9iZXJdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82MjQ5NTk2P3M9NDAmdj00KV0oL2phbm9iZXIpIFshW0BuZXRyb3ldKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xOTYxNDQ/cz00MCZ2PTQpXSgvbmV0cm95KSBbIVtAaXZvdl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ0NTg4NzY3P3M9NDAmdj00KV0oL2l2b3YpIFshW0BSaWNhcmRvRTEwNV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE2NDk2NTUzP3M9NDAmdj00KV0oL1JpY2FyZG9FMTA1KSBbIVtAbWljaGFlbC1yYWRlbmN5XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODg4OTgzNjc/cz00MCZ2PTQpXSgvbWljaGFlbC1yYWRlbmN5KSAgICAgIDc0OSBzdGFycyB0b2RheVxuXG5bU3Rhcl0oL2xvZ2luP3JldHVybl90bz0lMkZ0cmltc3RyYXklMkZ0aGUtYm9vay1vZi1zZWNyZXQta25vd2xlZGdlKVxuXG5bdHJpbXN0cmF5IC8gdGhlLWJvb2stb2Ytc2VjcmV0LWtub3dsZWRnZV0oL3RyaW1zdHJheS90aGUtYm9vay1vZi1zZWNyZXQta25vd2xlZGdlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQSBjb2xsZWN0aW9uIG9mIGluc3BpcmluZyBsaXN0cywgbWFudWFscywgY2hlYXRzaGVldHMsIGJsb2dzLCBoYWNrcywgb25lLWxpbmVycywgY2xpL3dlYiB0b29scyBhbmQgbW9yZS5cblxuWzE3MCw5NTldKC90cmltc3RyYXkvdGhlLWJvb2stb2Ytc2VjcmV0LWtub3dsZWRnZS9zdGFyZ2F6ZXJzKSBbMTAsNjg0XSgvdHJpbXN0cmF5L3RoZS1ib29rLW9mLXNlY3JldC1rbm93bGVkZ2UvZm9ya3MpIEJ1aWx0IGJ5IFshW0B0cmltc3RyYXldKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zMTEyNzkxNz9zPTQwJnY9NCldKC90cmltc3RyYXkpIFshW0BsYm9uYW5vbWldKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MzY5MDE2P3M9NDAmdj00KV0oL2xib25hbm9taSkgWyFbQGxvd2VyeWF1c3Rpbl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzIwMDM4NjA/cz00MCZ2PTQpXSgvbG93ZXJ5YXVzdGluKSBbIVtAZmFiaWRpY2syMl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzgxNzY4MjE/cz00MCZ2PTQpXSgvZmFiaWRpY2syMikgWyFbQG5hZWx1aF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ3Nzg2MD9zPTQwJnY9NCldKC9uYWVsdWgpICAgICAgMzA5IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRkFwcEZsb3d5LUlPJTJGQXBwRmxvd3kpXG5cbltBcHBGbG93eS1JTyAvIEFwcEZsb3d5XSgvQXBwRmxvd3ktSU8vQXBwRmxvd3kpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5CcmluZyBwcm9qZWN0cywgd2lraXMsIGFuZCB0ZWFtcyB0b2dldGhlciB3aXRoIEFJLiBBcHBGbG93eSBpcyB0aGUgQUkgY29sbGFib3JhdGl2ZSB3b3Jrc3BhY2Ugd2hlcmUgeW91IGFjaGlldmUgbW9yZSB3aXRob3V0IGxvc2luZyBjb250cm9sIG9mIHlvdXIgZGF0YS4gVGhlIGxlYWRpbmcgb3BlbiBzb3VyY2UgTm90aW9uIGFsdGVybmF0aXZlLlxuXG5EYXJ0IFs2Myw0NjFdKC9BcHBGbG93eS1JTy9BcHBGbG93eS9zdGFyZ2F6ZXJzKSBbNCwyOTldKC9BcHBGbG93eS1JTy9BcHBGbG93eS9mb3JrcykgQnVpbHQgYnkgWyFbQGFwcGZsb3d5XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODYwMDE5MjA/cz00MCZ2PTQpXSgvYXBwZmxvd3kpIFshW0BMdWNhc1h1MF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExODYzMDg3P3M9NDAmdj00KV0oL0x1Y2FzWHUwKSBbIVtAcmljaGFyZHNoaXVlXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzEzMjAzNDU/cz00MCZ2PTQpXSgvcmljaGFyZHNoaXVlKSBbIVtAWGF6aW5dKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80MjkyOTE2MT9zPTQwJnY9NCldKC9YYXppbikgWyFbQHZpbmNlbnRkY2hhbl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzIzNTI4MzI/cz00MCZ2PTQpXSgvdmluY2VudGRjaGFuKSAgICAgIDQ4IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRmxhbmdmbG93LWFpJTJGbGFuZ2Zsb3cpXG5cbltsYW5nZmxvdy1haSAvIGxhbmdmbG93XSgvbGFuZ2Zsb3ctYWkvbGFuZ2Zsb3cpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5MYW5nZmxvdyBpcyBhIHBvd2VyZnVsIHRvb2wgZm9yIGJ1aWxkaW5nIGFuZCBkZXBsb3lpbmcgQUktcG93ZXJlZCBhZ2VudHMgYW5kIHdvcmtmbG93cy5cblxuUHl0aG9uIFs2NiwzMDZdKC9sYW5nZmxvdy1haS9sYW5nZmxvdy9zdGFyZ2F6ZXJzKSBbNiw2MzldKC9sYW5nZmxvdy1haS9sYW5nZmxvdy9mb3JrcykgQnVpbHQgYnkgWyFbQG9nYWJyaWVsbHVpel0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI0ODI5Mzk3P3M9NDAmdj00KV0oL29nYWJyaWVsbHVpeikgWyFbQGFub3ZhenppMV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzcwODI0OTE0P3M9NDAmdj00KV0oL2Fub3ZhenppMSkgWyFbQGx1Y2FzZWR1b2xpXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjIzMzU2MTY/cz00MCZ2PTQpXSgvbHVjYXNlZHVvbGkpIFshW0BDcmlzdGhpYW56bF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzcyOTc3NTU0P3M9NDAmdj00KV0oL0NyaXN0aGlhbnpsKSBbIVtAYXV0b2ZpeC1jaV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS9pbi8yNDM1MTk/cz00MCZ2PTQpXSgvYXBwcy9hdXRvZml4LWNpKSAgICAgIDc1MyBzdGFycyB0b2RheVxuXG5bU3Rhcl0oL2xvZ2luP3JldHVybl90bz0lMkZmYWNlYm9vayUyRnJlYWN0LW5hdGl2ZSlcblxuW2ZhY2Vib29rIC8gcmVhY3QtbmF0aXZlXSgvZmFjZWJvb2svcmVhY3QtbmF0aXZlKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5BIGZyYW1ld29yayBmb3IgYnVpbGRpbmcgbmF0aXZlIGFwcGxpY2F0aW9ucyB1c2luZyBSZWFjdFxuXG5DKysgWzEyMiw0MDZdKC9mYWNlYm9vay9yZWFjdC1uYXRpdmUvc3RhcmdhemVycykgWzI0LDY4MV0oL2ZhY2Vib29rL3JlYWN0LW5hdGl2ZS9mb3JrcykgQnVpbHQgYnkgWyFbQHJlYWN0anMtYm90XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE2ODkxMjI/cz00MCZ2PTQpXSgvcmVhY3Rqcy1ib3QpIFshW0BtZHZhY2NhXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTE1MTAzP3M9NDAmdj00KV0oL21kdmFjY2EpIFshW0BzaGVyZ2luXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjIwMzI/cz00MCZ2PTQpXSgvc2hlcmdpbikgWyFbQHNhbW15LVNDXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTczMzYxMD9zPTQwJnY9NCldKC9zYW1teS1TQykgWyFbQGphdmFjaGVdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81Njc2P3M9NDAmdj00KV0oL2phdmFjaGUpICAgICAgMTE3IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRnpoYXl1amllJTJGY2hhdGdwdC1vbi13ZWNoYXQpXG5cblt6aGF5dWppZSAvIGNoYXRncHQtb24td2VjaGF0XSgvemhheXVqaWUvY2hhdGdwdC1vbi13ZWNoYXQpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG7ln7rkuo7lpKfmqKHlnovmkK3lu7rnmoTogYrlpKnmnLrlmajkurrvvIzlkIzml7bmlK/mjIEg5b6u5L+h5YWs5LyX5Y+344CB5LyB5Lia5b6u5L+h5bqU55So44CB6aOe5Lmm44CB6ZKJ6ZKJIOetieaOpeWFpe+8jOWPr+mAieaLqUdQVDQuMS9HUFQtNG8vR1BULW8xLyBEZWVwU2Vlay9DbGF1ZGUv5paH5b+D5LiA6KiAL+iur+mjnuaYn+eBqy/pgJrkuYnljYPpl64vIEdlbWluaS9HTE0tNC9LaW1pL0xpbmtBSe+8jOiDveWkhOeQhuaWh+acrOOAgeivremfs+WSjOWbvueJh++8jOiuv+mXruaTjeS9nOezu+e7n+WSjOS6kuiBlOe9ke+8jOaUr+aMgeWfuuS6juiHquacieefpeivhuW6k+i/m+ihjOWumuWItuS8geS4muaZuuiDveWuouacjeOAglxuXG5QeXRob24gWzM3LDI2OV0oL3poYXl1amllL2NoYXRncHQtb24td2VjaGF0L3N0YXJnYXplcnMpIFs5LDI1MV0oL3poYXl1amllL2NoYXRncHQtb24td2VjaGF0L2ZvcmtzKSBCdWlsdCBieSBbIVtAemhheXVqaWVdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNjE2MTcyMz9zPTQwJnY9NCldKC96aGF5dWppZSkgWyFbQGxhbnZlbnRdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNjUxNTQ2ND9zPTQwJnY9NCldKC9sYW52ZW50KSBbIVtANnZpc2lvbl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM4MDU3NDUwP3M9NDAmdj00KV0oLzZ2aXNpb24pIFshW0BKUzAwMDAwXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvOTc3ODg4MD9zPTQwJnY9NCldKC9KUzAwMDAwKSBbIVtAU2Fib3RldXI3XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTM4ODA1NDg1P3M9NDAmdj00KV0oL1NhYm90ZXVyNykgICAgICAxNjkgc3RhcnMgdG9kYXlcblxuW1N0YXJdKC9sb2dpbj9yZXR1cm5fdG89JTJGYW5ndWxhciUyRmFuZ3VsYXIpXG5cblthbmd1bGFyIC8gYW5ndWxhcl0oL2FuZ3VsYXIvYW5ndWxhcilcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuRGVsaXZlciB3ZWIgYXBwcyB3aXRoIGNvbmZpZGVuY2Ug8J+agFxuXG5UeXBlU2NyaXB0IFs5Nyw5MzNdKC9hbmd1bGFyL2FuZ3VsYXIvc3RhcmdhemVycykgWzI2LDI0NF0oL2FuZ3VsYXIvYW5ndWxhci9mb3JrcykgQnVpbHQgYnkgWyFbQGdrYWxwYWtdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84NjA0MjA1P3M9NDAmdj00KV0oL2drYWxwYWspIFshW0BwZXRlYmFjb25kYXJ3aW5dKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTY1NT9zPTQwJnY9NCldKC9wZXRlYmFjb25kYXJ3aW4pIFshW0BkZXZ2ZXJzaW9uXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDk4NzAxNT9zPTQwJnY9NCldKC9kZXZ2ZXJzaW9uKSBbIVtAY3Jpc2JldG9dKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80NDUwNTIyP3M9NDAmdj00KV0oL2NyaXNiZXRvKSBbIVtAYXRzY290dF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ3OTcxMz9zPTQwJnY9NCldKC9hdHNjb3R0KSAgICAgIDM3IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRkt3YWlWR0klMkZMaXZlUG9ydHJhaXQpXG5cbltLd2FpVkdJIC8gTGl2ZVBvcnRyYWl0XSgvS3dhaVZHSS9MaXZlUG9ydHJhaXQpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5CcmluZyBwb3J0cmFpdHMgdG8gbGlmZSFcblxuUHl0aG9uIFsxNSwzOTZdKC9Ld2FpVkdJL0xpdmVQb3J0cmFpdC9zdGFyZ2F6ZXJzKSBbMSw2MzBdKC9Ld2FpVkdJL0xpdmVQb3J0cmFpdC9mb3JrcykgQnVpbHQgYnkgWyFbQGNsZWFyZHVza10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzc1NTUyNTE/cz00MCZ2PTQpXSgvY2xlYXJkdXNrKSBbIVtAenp6d2Vha21hbl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzYyMTEzNzA4P3M9NDAmdj00KV0oL3p6endlYWttYW4pIFshW0BNeXN0ZXJ5MDk5XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTY0MzQ3MDEyP3M9NDAmdj00KV0oL015c3RlcnkwOTkpIFshW0BqZWV0aHVdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83MzMzMj9zPTQwJnY9NCldKC9qZWV0aHUpIFshW0B2M3Vjbl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEyODgwMzg/cz00MCZ2PTQpXSgvdjN1Y24pICAgICAgMTY5IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRjc4JTJGeGlhb3poaS1lc3AzMilcblxuWzc4IC8geGlhb3poaS1lc3AzMl0oLzc4L3hpYW96aGktZXNwMzIpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQnVpbGQgeW91ciBvd24gQUkgZnJpZW5kXG5cbkMrKyBbMTMsOTkyXSgvNzgveGlhb3poaS1lc3AzMi9zdGFyZ2F6ZXJzKSBbMiw2OTNdKC83OC94aWFvemhpLWVzcDMyL2ZvcmtzKSBCdWlsdCBieSBbIVtANzhdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80NDg4MTMzP3M9NDAmdj00KV0oLzc4KSBbIVtAS2V2aW5jb29vb29sXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzM2MTE2Nzk/cz00MCZ2PTQpXSgvS2V2aW5jb29vb29sKSBbIVtATWFrZXJNMF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExNzk2MTEwMj9zPTQwJnY9NCldKC9NYWtlck0wKSBbIVtASG9uZXN0UWlhb10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzY5NjcwOD9zPTQwJnY9NCldKC9Ib25lc3RRaWFvKSBbIVtAb294eFVdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NjA4NTQ3P3M9NDAmdj00KV0oL29veHhVKSAgICAgIDE3OCBzdGFycyB0b2RheVxuXG5bU3BvbnNvcl0oL3Nwb25zb3JzL2FudC1kZXNpZ24pXG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRmFudC1kZXNpZ24lMkZhbnQtZGVzaWduKVxuXG5bYW50LWRlc2lnbiAvIGFudC1kZXNpZ25dKC9hbnQtZGVzaWduL2FudC1kZXNpZ24pXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkFuIGVudGVycHJpc2UtY2xhc3MgVUkgZGVzaWduIGxhbmd1YWdlIGFuZCBSZWFjdCBVSSBsaWJyYXJ5XG5cblR5cGVTY3JpcHQgWzk0LDg3N10oL2FudC1kZXNpZ24vYW50LWRlc2lnbi9zdGFyZ2F6ZXJzKSBbNTIsNDkxXSgvYW50LWRlc2lnbi9hbnQtZGVzaWduL2ZvcmtzKSBCdWlsdCBieSBbIVtAYWZjMTYzXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNTA3NjE1P3M9NDAmdj00KV0oL2FmYzE2MykgWyFbQHpvbWJpZUpdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81Mzc4ODkxP3M9NDAmdj00KV0oL3pvbWJpZUopIFshW0BsaS1qaWEtbmFuXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDkyMTc0MTg/cz00MCZ2PTQpXSgvbGktamlhLW5hbikgWyFbQE1hZENjY10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI3NzIyNDg2P3M9NDAmdj00KV0oL01hZENjYykgWyFbQGJlbmp5Y3VpXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzU4MDYwNz9zPTQwJnY9NCldKC9iZW5qeWN1aSkgICAgICA0NiBzdGFycyB0b2RheVxuXG5bU3Rhcl0oL2xvZ2luP3JldHVybl90bz0lMkZmYXN0YXBpJTJGZmFzdGFwaSlcblxuW2Zhc3RhcGkgLyBmYXN0YXBpXSgvZmFzdGFwaS9mYXN0YXBpKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5GYXN0QVBJIGZyYW1ld29yaywgaGlnaCBwZXJmb3JtYW5jZSwgZWFzeSB0byBsZWFybiwgZmFzdCB0byBjb2RlLCByZWFkeSBmb3IgcHJvZHVjdGlvblxuXG5QeXRob24gWzg1LDQ0MF0oL2Zhc3RhcGkvZmFzdGFwaS9zdGFyZ2F6ZXJzKSBbNywzODZdKC9mYXN0YXBpL2Zhc3RhcGkvZm9ya3MpIEJ1aWx0IGJ5IFshW0B0aWFuZ29sb10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEzMjYxMTI/cz00MCZ2PTQpXSgvdGlhbmdvbG8pIFshW0BwcmUtY29tbWl0LWNpXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2luLzY4NjcyP3M9NDAmdj00KV0oL2FwcHMvcHJlLWNvbW1pdC1jaSkgWyFbQGRlcGVuZGFib3RdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vaW4vMjkxMTA/cz00MCZ2PTQpXSgvYXBwcy9kZXBlbmRhYm90KSBbIVtAYWxlanNkZXZdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85MDA3Njk0Nz9zPTQwJnY9NCldKC9hbGVqc2RldikgICAgIDk2IHN0YXJzIHRvZGF5XG5cbkZvb3RlclxuLS0tLS0tXG5cbltdKGh0dHBzOi8vZ2l0aHViLmNvbSnCqSAyMDI1IEdpdEh1YizCoEluYy5cblxuIyMjIEZvb3RlciBuYXZpZ2F0aW9uXG5cbiogICBbVGVybXNdKGh0dHBzOi8vZG9jcy5naXRodWIuY29tL3NpdGUtcG9saWN5L2dpdGh1Yi10ZXJtcy9naXRodWItdGVybXMtb2Ytc2VydmljZSlcbiogICBbUHJpdmFjeV0oaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vc2l0ZS1wb2xpY3kvcHJpdmFjeS1wb2xpY2llcy9naXRodWItcHJpdmFjeS1zdGF0ZW1lbnQpXG4qICAgW1NlY3VyaXR5XShodHRwczovL2dpdGh1Yi5jb20vc2VjdXJpdHkpXG4qICAgW1N0YXR1c10oaHR0cHM6Ly93d3cuZ2l0aHVic3RhdHVzLmNvbS8pXG4qICAgW0RvY3NdKGh0dHBzOi8vZG9jcy5naXRodWIuY29tLylcbiogICBbQ29udGFjdF0oaHR0cHM6Ly9zdXBwb3J0LmdpdGh1Yi5jb20/dGFncz1kb3Rjb20tZm9vdGVyKVxuKiAgIE1hbmFnZSBjb29raWVzXG4qICAgRG8gbm90IHNoYXJlIG15IHBlcnNvbmFsIGluZm9ybWF0aW9uXG5cbllvdSBjYW7igJl0IHBlcmZvcm0gdGhhdCBhY3Rpb24gYXQgdGhpcyB0aW1lLiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMTdDdENIcExjUWRkeWNVQVFWNzNEREcifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2V9fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDM6NTQ6MDMuNjIzWiIsInJlc3BvbnNlX3RleHQiOiJCYXNlZCBvbiB0aGUgR2l0SHViIHRyZW5kaW5nIHBhZ2UgSSBmZXRjaGVkLCBoZXJlIGFyZSB0aGUgKip0b3AgdHJlbmRpbmcgcmVwb3NpdG9yaWVzIG9uIEdpdEh1YiB0b2RheSoqOlxuXG4jIyDwn5SlIFRvcCBHaXRIdWIgVHJlbmRpbmcgUmVwb3NpdG9yaWVzIFRvZGF5XG5cbiMjIyAxLiAqKkZvc293bC9hZ2VudGljU2VlayoqIOKtkCAxMywxMzUgc3RhcnMgKCsxLDg2NCB0b2RheSlcbi0gKipMYW5ndWFnZToqKiBQeXRob25cbi0gKipEZXNjcmlwdGlvbjoqKiBGdWxseSBMb2NhbCBNYW51cyBBSS4gTm8gQVBJcywgTm8gJDIwMCBtb250aGx5IGJpbGxzLiBFbmpveSBhbiBhdXRvbm9tb3VzIGFnZW50IHRoYXQgdGhpbmtzLCBicm93c2VzIHRoZSB3ZWIsIGFuZCBjb2RlIGZvciB0aGUgc29sZSBjb3N0IG9mIGVsZWN0cmljaXR5LlxuXG4jIyMgMi4gKipuOG4taW8vbjhuKiog4q2QIDEwMSwxNDQgc3RhcnMgKCs3NDkgdG9kYXkpXG4tICoqTGFuZ3VhZ2U6KiogVHlwZVNjcmlwdCAgXG4tICoqRGVzY3JpcHRpb246KiogRmFpci1jb2RlIHdvcmtmbG93IGF1dG9tYXRpb24gcGxhdGZvcm0gd2l0aCBuYXRpdmUgQUkgY2FwYWJpbGl0aWVzLiBDb21iaW5lIHZpc3VhbCBidWlsZGluZyB3aXRoIGN1c3RvbSBjb2RlLCBzZWxmLWhvc3Qgb3IgY2xvdWQsIDQwMCsgaW50ZWdyYXRpb25zLlxuXG4jIyMgMy4gKipsYW5nZmxvdy1haS9sYW5nZmxvdyoqIOKtkCA2NiwzMDYgc3RhcnMgKCs3NTMgdG9kYXkpXG4tICoqTGFuZ3VhZ2U6KiogUHl0aG9uXG4tICoqRGVzY3JpcHRpb246KiogTGFuZ2Zsb3cgaXMgYSBwb3dlcmZ1bCB0b29sIGZvciBidWlsZGluZyBhbmQgZGVwbG95aW5nIEFJLXBvd2VyZWQgYWdlbnRzIGFuZCB3b3JrZmxvd3MuXG5cbiMjIyA0LiAqKmFudGhyb3BpY3MvcHJvbXB0LWVuZy1pbnRlcmFjdGl2ZS10dXRvcmlhbCoqIOKtkCA0LDc5NiBzdGFycyAoKzczNiB0b2RheSlcbi0gKipMYW5ndWFnZToqKiBKdXB5dGVyIE5vdGVib29rXG4tICoqRGVzY3JpcHRpb246KiogQW50aHJvcGljJ3MgSW50ZXJhY3RpdmUgUHJvbXB0IEVuZ2luZWVyaW5nIFR1dG9yaWFsXG5cbiMjIyA1LiAqKm9zc3UvY29tcHV0ZXItc2NpZW5jZSoqIOKtkCAxODQsNDYzIHN0YXJzICgrNDI3IHRvZGF5KVxuLSAqKkxhbmd1YWdlOioqIEhUTUxcbi0gKipEZXNjcmlwdGlvbjoqKiDwn46TIFBhdGggdG8gYSBmcmVlIHNlbGYtdGF1Z2h0IGVkdWNhdGlvbiBpbiBDb21wdXRlciBTY2llbmNlIVxuXG4jIyMgNi4gKip0cmltc3RyYXkvdGhlLWJvb2stb2Ytc2VjcmV0LWtub3dsZWRnZSoqIOKtkCAxNzAsOTU5IHN0YXJzICgrMzA5IHRvZGF5KVxuLSAqKkxhbmd1YWdlOioqIE5vbmVcbi0gKipEZXNjcmlwdGlvbjoqKiBBIGNvbGxlY3Rpb24gb2YgaW5zcGlyaW5nIGxpc3RzLCBtYW51YWxzLCBjaGVhdHNoZWV0cywgYmxvZ3MsIGhhY2tzLCBvbmUtbGluZXJzLCBjbGkvd2ViIHRvb2xzIGFuZCBtb3JlLlxuXG4jIyMgNy4gKipsaXZlc3RvcmVqcy9saXZlc3RvcmUqKiDirZAgMSw1NDAgc3RhcnMgKCszMDMgdG9kYXkpXG4tICoqTGFuZ3VhZ2U6KiogVHlwZVNjcmlwdFxuLSAqKkRlc2NyaXB0aW9uOioqIExpdmVTdG9yZSBpcyBhIG5leHQtZ2VuZXJhdGlvbiBzdGF0ZSBtYW5hZ2VtZW50IGZyYW1ld29yayBiYXNlZCBvbiByZWFjdGl2ZSBTUUxpdGUgYW5kIGJ1aWx0LWluIHN5bmMgZW5naW5lLlxuXG4jIyMgOC4gKiptaWNyb3NvZnQvYWktYWdlbnRzLWZvci1iZWdpbm5lcnMqKiDirZAgMjIsMjk1IHN0YXJzICgrMjE5IHRvZGF5KVxuLSAqKkxhbmd1YWdlOioqIEp1cHl0ZXIgTm90ZWJvb2tcbi0gKipEZXNjcmlwdGlvbjoqKiAxMSBMZXNzb25zIHRvIEdldCBTdGFydGVkIEJ1aWxkaW5nIEFJIEFnZW50c1xuXG4jIyMgOS4gKio3OC94aWFvemhpLWVzcDMyKiog4q2QIDEzLDk5MiBzdGFycyAoKzE3OCB0b2RheSlcbi0gKipMYW5ndWFnZToqKiBDKytcbi0gKipEZXNjcmlwdGlvbjoqKiBCdWlsZCB5b3VyIG93biBBSSBmcmllbmRcblxuIyMjIDEwLiAqKkt3YWlWR0kvTGl2ZVBvcnRyYWl0Kiog4q2QIDE1LDM5NiBzdGFycyAoKzE2OSB0b2RheSlcbi0gKipMYW5ndWFnZToqKiBQeXRob25cbi0gKipEZXNjcmlwdGlvbjoqKiBCcmluZyBwb3J0cmFpdHMgdG8gbGlmZSFcblxuIyMg8J+TiCBLZXkgVHJlbmRzIFRvZGF5OlxuLSAqKkFJL01MIGRvbWluYW5jZSoqOiBNYW55IHRyZW5kaW5nIHJlcG9zIGFyZSBBSS1yZWxhdGVkIChhdXRvbm9tb3VzIGFnZW50cywgcHJvbXB0IGVuZ2luZWVyaW5nLCBBSSB3b3JrZmxvd3MpXG4tICoqTG9jYWwgQUkgc29sdXRpb25zKio6IEZvY3VzIG9uIHNlbGYtaG9zdGVkLCBjb3N0LWVmZmVjdGl2ZSBBSSBhbHRlcm5hdGl2ZXNcbi0gKipFZHVjYXRpb25hbCBjb250ZW50Kio6IENvbXB1dGVyIHNjaWVuY2UgbGVhcm5pbmcgcGF0aHMgYW5kIEFJIHR1dG9yaWFscyBhcmUgcG9wdWxhclxuLSAqKkRldmVsb3BlciB0b29scyoqOiBXb3JrZmxvdyBhdXRvbWF0aW9uIGFuZCBzdGF0ZSBtYW5hZ2VtZW50IGZyYW1ld29ya3MgZ2FpbmluZyB0cmFjdGlvblxuXG5UaGUgdHJlbmRpbmcgcmVwb3NpdG9yaWVzIHNob3cgYSBzdHJvbmcgZm9jdXMgb24gQUkgdGVjaG5vbG9naWVzLCBwYXJ0aWN1bGFybHkgbG9jYWwgYW5kIGNvc3QtZWZmZWN0aXZlIEFJIHNvbHV0aW9ucywgYWxvbmcgd2l0aCBlZHVjYXRpb25hbCByZXNvdXJjZXMgYW5kIGRldmVsb3BlciBwcm9kdWN0aXZpdHkgdG9vbHMuXG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InJlcXVlc3RfaWQiOiIyYTAyNjE5ZC1jOWFhLTQxODItYmMyNS1hMDk0MWE1OTI4OGIiLCJzdGF0dXMiOiJjYW5jZWxsZWQiLCJjaGF0SXRlbVR5cGUiOiJhZ2VudGljLXR1cm4tZGVsaW1pdGVyIn0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjQxMjE4ZGZlLTcyMjQtNGFkOC1iNmEzLTg5OTFjMDg1MGViNyIsInJlcXVlc3RfbWVzc2FnZSI6ImdpdmUgbWUgbGluayB0byBsaXZlc3RvcmVqcy9saXZlc3RvcmUiLCJyaWNoX3RleHRfanNvbl9yZXByIjp7InR5cGUiOiJkb2MiLCJjb250ZW50IjpbeyJ0eXBlIjoicGFyYWdyYXBoIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0IjoiZ2l2ZSBtZSBsaW5rIHRvIGxpdmVzdG9yZWpzL2xpdmVzdG9yZSJ9XX1dfSwibWVudGlvbmVkX2l0ZW1zIjpbXSwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiSGVyZSdzIHRoZSBsaW5rIHRvIHRoZSBMaXZlU3RvcmUgcmVwb3NpdG9yeTpcblxuKipodHRwczovL2dpdGh1Yi5jb20vbGl2ZXN0b3JlanMvbGl2ZXN0b3JlKipcblxuTGl2ZVN0b3JlIGlzIGEgbmV4dC1nZW5lcmF0aW9uIHN0YXRlIG1hbmFnZW1lbnQgZnJhbWV3b3JrIGJhc2VkIG9uIHJlYWN0aXZlIFNRTGl0ZSBhbmQgYnVpbHQtaW4gc3luYyBlbmdpbmUsIHdyaXR0ZW4gaW4gVHlwZVNjcmlwdC4gSXQgZ2FpbmVkIDMwMyBzdGFycyB0b2RheSBhbmQgY3VycmVudGx5IGhhcyAxLDU0MCB0b3RhbCBzdGFycy5cbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjAsInR5cGUiOjAsInRleHRfbm9kZSI6eyJjb250ZW50IjoiZ2l2ZSBtZSBsaW5rIHRvIGxpdmVzdG9yZWpzL2xpdmVzdG9yZSJ9fSx7ImlkIjoxLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlfX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDAzOjU1OjI3LjQ4MloiLCJyZXNwb25zZV90ZXh0IjoiSGVyZSdzIHRoZSBsaW5rIHRvIHRoZSBMaXZlU3RvcmUgcmVwb3NpdG9yeTpcblxuKipodHRwczovL2dpdGh1Yi5jb20vbGl2ZXN0b3JlanMvbGl2ZXN0b3JlKipcblxuTGl2ZVN0b3JlIGlzIGEgbmV4dC1nZW5lcmF0aW9uIHN0YXRlIG1hbmFnZW1lbnQgZnJhbWV3b3JrIGJhc2VkIG9uIHJlYWN0aXZlIFNRTGl0ZSBhbmQgYnVpbHQtaW4gc3luYyBlbmdpbmUsIHdyaXR0ZW4gaW4gVHlwZVNjcmlwdC4gSXQgZ2FpbmVkIDMwMyBzdGFycyB0b2RheSBhbmQgY3VycmVudGx5IGhhcyAxLDU0MCB0b3RhbCBzdGFycy5cbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119XSwiZmVlZGJhY2tTdGF0ZXMiOnsidGVtcC1mZS1hMjc4YTU1NC05M2UzLTQxMDUtODI4ZC0xM2NmMDQzYzY3NzYiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLWZkM2RiZTNkLTMxMjAtNDE1NS05MjE2LTViN2VhMDYxMGRhZiI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtMTVjYjFjZDktMGI5Yi00N2FmLWI0NDgtOGQ3MDM0YjNiZGQyIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS1iMTNhNjJlMS1lYjMwLTRlZjYtOGE5Mi1mMWVmY2YwNjhhNjEiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9fSwidG9vbFVzZVN0YXRlcyI6eyIxMjkzYTdmMy1iMGRlLTRiNmMtOGQyMC1hMWQzZDEwZjllMTM7dG9vbHVfdnJ0eF8wMUtCamF0WUJuWlliM1c2ZUxWUGQ1N2ciOnsicmVxdWVzdElkIjoiMTI5M2E3ZjMtYjBkZS00YjZjLThkMjAtYTFkM2QxMGY5ZTEzIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMUtCamF0WUJuWlliM1c2ZUxWUGQ1N2ciLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiItIFtUcmVuZGluZyByZXBvc2l0b3JpZXMgb24gR2l0SHViIHRvZGF5IMK3IEdpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL3RyZW5kaW5nKVxuICBsaXZlc3RvcmVqcyAvIGxpdmVzdG9yZS4gTGl2ZVN0b3JlIGlzIGEgbmV4dC1nZW5lcmF0aW9uIHN0YXRlIG1hbmFnZW1lbnQgZnJhbWV3b3JrIGJhc2VkIG9uIHJlYWN0aXZlIFNRTGl0ZSBhbmQgYnVpbHQtaW4gc3luYyBlbmdpbmUuIFR5cGVTY3JpcHQgMSw0MzYgMjUgQnVpbHTCoC4uLlxuXG4tIFtUcmVuZHNoaWZ0IC0gRXhwbG9yZSBvcGVuLXNvdXJjZSByZXBvc2l0b3JpZXMgYW5kIGZpbmQgc29tZSBpbnNpZ2h0c10oaHR0cHM6Ly90cmVuZHNoaWZ0LmlvLylcbiAgRXhwbG9yZSBvcGVuLXNvdXJjZSByZXBvc2l0b3JpZXMgd2l0aCB0cmVuZGluZyBkYXRhIGZyb20gR2l0SHViLCBlbWJlZCBhIGJhZGdlLCBhbmQgc2hvd2Nhc2UgaXQgaW4geW91ciByZXBvc2l0b3J5LlxuXG4tIFtUcmVuZGluZyByZXBvc2l0b3JpZXMgb24gR2l0SHViIHRvZGF5XShodHRwczovL2dpdGh1Yi5jb20vdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9emgpXG4gIOOAjOaVsOaNruWPr+inhuWMlu+8muaKpeihqOOAgeWkp+Wxj+OAgeaVsOaNrueci+adv+OAjeenr+acqOaKpeihqOaYr+S4gOasvuexu0V4Y2Vs5pON5L2c6aOO5qC877yM5Zyo57q/5ouW5ou96K6+6K6h55qE5oql6KGo5bel5YW35ZKM5ZKM5pWw5o2u5Y+v6KeG5YyW5Lqn5ZOB44CC5Yqf6IO95ra155uWOiDmiqXooajorr7orqHjgIHlpKflsY/orr7orqHjgIHmiZPljbDorr7orqHjgIHlm77lvaLmiqXooajjgIHCoC4uLlxuXG4tIFtJcyB0aGVyZSBhIHdheSB0byBzZWUgbW9yZSB0cmVuZGluZyByZXBvc2l0b3JpZXMgaW4gR2l0aHViIChnaXRodWIgLi4uXShodHRwczovL3d3dy5yZWRkaXQuY29tL3IvZ2l0aHViL2NvbW1lbnRzLzFiM2V3NWQvaXNfdGhlcmVfYV93YXlfdG9fc2VlX21vcmVfdHJlbmRpbmdfcmVwb3NpdG9yaWVzLylcbiAgRmViIDI5LCAyMDI0IC4uLiBJdCdzIGEgM3JkIHBhcnR5IHNpdGUgdGhhdCBoYXMgaXRzIG93biB2ZXJzaW9uIG9mIEdpdEh1YiB0cmVuZGluZyByZXBvcy4gSnVzdCBiZSBjYXJlZnVsIHdoYXQgeW91IGNsaWNrIG9uLiBJdCdzIGhlYXZpbHkgZ2FtZWQgZm9yIG1hbHdhcmUuXG5cbi0gW1RyZW5kaW5nIFB5dGhvbiByZXBvc2l0b3JpZXMgb24gR2l0SHViIHRvZGF5IMK3IEdpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL3RyZW5kaW5nL3B5dGhvbilcbiAgRnVsbHkgTG9jYWwgTWFudXMgQUkuIE5vIEFQSXMsIE5vICQyMDAgbW9udGhseSBiaWxscy4gRW5qb3kgYW4gYXV0b25vbW91cyBhZ2VudCB0aGF0IHRoaW5rcywgYnJvd3NlcyB0aGUgd2ViLCBhbmQgY29kZSBmb3IgdGhlIHNvbGUgY29zdCBvZiBlbGVjdHJpY2l0eS4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCIzMjk2NmMwMC00ODhkLTQxYTUtOWExNC00YzMxZTA2NTcyOGI7dG9vbHVfdnJ0eF8wMTdDdENIcExjUWRkeWNVQVFWNzNEREciOnsicmVxdWVzdElkIjoiMzI5NjZjMDAtNDg4ZC00MWE1LTlhMTQtNGMzMWUwNjU3MjhiIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMTdDdENIcExjUWRkeWNVQVFWNzNEREciLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiIgICAgICAgICAgICAgICBUcmVuZGluZyByZXBvc2l0b3JpZXMgb24gR2l0SHViIHRvZGF5IMK3IEdpdEh1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cbltTa2lwIHRvIGNvbnRlbnRdKCNzdGFydC1vZi1jb250ZW50KSAgIFxuXG5OYXZpZ2F0aW9uIE1lbnVcbi0tLS0tLS0tLS0tLS0tLVxuXG5Ub2dnbGUgbmF2aWdhdGlvblxuXG5bXSgvKVxuXG5bU2lnbiBpbl0oL2xvZ2luP3JldHVybl90bz1odHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZ0cmVuZGluZylcblxuQXBwZWFyYW5jZSBzZXR0aW5nc1xuXG4qICAgUHJvZHVjdFxuICAgIFxuICAgICogICBbXG4gICAgICAgIFxuICAgICAgICBHaXRIdWIgQ29waWxvdFxuICAgICAgICBcbiAgICAgICAgV3JpdGUgYmV0dGVyIGNvZGUgd2l0aCBBSVxuICAgICAgICBcbiAgICAgICAgXShodHRwczovL2dpdGh1Yi5jb20vZmVhdHVyZXMvY29waWxvdClcbiAgICAqICAgW1xuICAgICAgICBcbiAgICAgICAgR2l0SHViIE1vZGVscyBOZXdcbiAgICAgICAgXG4gICAgICAgIE1hbmFnZSBhbmQgY29tcGFyZSBwcm9tcHRzXG4gICAgICAgIFxuICAgICAgICBdKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWF0dXJlcy9tb2RlbHMpXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIEdpdEh1YiBBZHZhbmNlZCBTZWN1cml0eVxuICAgICAgICBcbiAgICAgICAgRmluZCBhbmQgZml4IHZ1bG5lcmFiaWxpdGllc1xuICAgICAgICBcbiAgICAgICAgXShodHRwczovL2dpdGh1Yi5jb20vc2VjdXJpdHkvYWR2YW5jZWQtc2VjdXJpdHkpXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIEFjdGlvbnNcbiAgICAgICAgXG4gICAgICAgIEF1dG9tYXRlIGFueSB3b3JrZmxvd1xuICAgICAgICBcbiAgICAgICAgXShodHRwczovL2dpdGh1Yi5jb20vZmVhdHVyZXMvYWN0aW9ucylcbiAgICAqICAgW1xuICAgICAgICBcbiAgICAgICAgQ29kZXNwYWNlc1xuICAgICAgICBcbiAgICAgICAgSW5zdGFudCBkZXYgZW52aXJvbm1lbnRzXG4gICAgICAgIFxuICAgICAgICBdKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWF0dXJlcy9jb2Rlc3BhY2VzKVxuICAgIFxuICAgICogICBbXG4gICAgICAgIFxuICAgICAgICBJc3N1ZXNcbiAgICAgICAgXG4gICAgICAgIFBsYW4gYW5kIHRyYWNrIHdvcmtcbiAgICAgICAgXG4gICAgICAgIF0oaHR0cHM6Ly9naXRodWIuY29tL2ZlYXR1cmVzL2lzc3VlcylcbiAgICAqICAgW1xuICAgICAgICBcbiAgICAgICAgQ29kZSBSZXZpZXdcbiAgICAgICAgXG4gICAgICAgIE1hbmFnZSBjb2RlIGNoYW5nZXNcbiAgICAgICAgXG4gICAgICAgIF0oaHR0cHM6Ly9naXRodWIuY29tL2ZlYXR1cmVzL2NvZGUtcmV2aWV3KVxuICAgICogICBbXG4gICAgICAgIFxuICAgICAgICBEaXNjdXNzaW9uc1xuICAgICAgICBcbiAgICAgICAgQ29sbGFib3JhdGUgb3V0c2lkZSBvZiBjb2RlXG4gICAgICAgIFxuICAgICAgICBdKGh0dHBzOi8vZ2l0aHViLmNvbS9mZWF0dXJlcy9kaXNjdXNzaW9ucylcbiAgICAqICAgW1xuICAgICAgICBcbiAgICAgICAgQ29kZSBTZWFyY2hcbiAgICAgICAgXG4gICAgICAgIEZpbmQgbW9yZSwgc2VhcmNoIGxlc3NcbiAgICAgICAgXG4gICAgICAgIF0oaHR0cHM6Ly9naXRodWIuY29tL2ZlYXR1cmVzL2NvZGUtc2VhcmNoKVxuICAgIFxuICAgIEV4cGxvcmVcbiAgICBcbiAgICAqICAgW1doeSBHaXRIdWJdKGh0dHBzOi8vZ2l0aHViLmNvbS93aHktZ2l0aHViKVxuICAgICogICBbQWxsIGZlYXR1cmVzXShodHRwczovL2dpdGh1Yi5jb20vZmVhdHVyZXMpXG4gICAgKiAgIFtEb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MuZ2l0aHViLmNvbSlcbiAgICAqICAgW0dpdEh1YiBTa2lsbHNdKGh0dHBzOi8vc2tpbGxzLmdpdGh1Yi5jb20pXG4gICAgKiAgIFtCbG9nXShodHRwczovL2dpdGh1Yi5ibG9nKVxuICAgIFxuKiAgIFNvbHV0aW9uc1xuICAgIFxuICAgIEJ5IGNvbXBhbnkgc2l6ZVxuICAgIFxuICAgICogICBbRW50ZXJwcmlzZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9lbnRlcnByaXNlKVxuICAgICogICBbU21hbGwgYW5kIG1lZGl1bSB0ZWFtc10oaHR0cHM6Ly9naXRodWIuY29tL3RlYW0pXG4gICAgKiAgIFtTdGFydHVwc10oaHR0cHM6Ly9naXRodWIuY29tL2VudGVycHJpc2Uvc3RhcnR1cHMpXG4gICAgKiAgIFtOb25wcm9maXRzXSgvc29sdXRpb25zL2luZHVzdHJ5L25vbnByb2ZpdHMpXG4gICAgXG4gICAgQnkgdXNlIGNhc2VcbiAgICBcbiAgICAqICAgW0RldlNlY09wc10oL3NvbHV0aW9ucy91c2UtY2FzZS9kZXZzZWNvcHMpXG4gICAgKiAgIFtEZXZPcHNdKC9zb2x1dGlvbnMvdXNlLWNhc2UvZGV2b3BzKVxuICAgICogICBbQ0kvQ0RdKC9zb2x1dGlvbnMvdXNlLWNhc2UvY2ktY2QpXG4gICAgKiAgIFtWaWV3IGFsbCB1c2UgY2FzZXNdKC9zb2x1dGlvbnMvdXNlLWNhc2UpXG4gICAgXG4gICAgQnkgaW5kdXN0cnlcbiAgICBcbiAgICAqICAgW0hlYWx0aGNhcmVdKC9zb2x1dGlvbnMvaW5kdXN0cnkvaGVhbHRoY2FyZSlcbiAgICAqICAgW0ZpbmFuY2lhbCBzZXJ2aWNlc10oL3NvbHV0aW9ucy9pbmR1c3RyeS9maW5hbmNpYWwtc2VydmljZXMpXG4gICAgKiAgIFtNYW51ZmFjdHVyaW5nXSgvc29sdXRpb25zL2luZHVzdHJ5L21hbnVmYWN0dXJpbmcpXG4gICAgKiAgIFtHb3Zlcm5tZW50XSgvc29sdXRpb25zL2luZHVzdHJ5L2dvdmVybm1lbnQpXG4gICAgKiAgIFtWaWV3IGFsbCBpbmR1c3RyaWVzXSgvc29sdXRpb25zL2luZHVzdHJ5KVxuICAgIFxuICAgIFtWaWV3IGFsbCBzb2x1dGlvbnNdKC9zb2x1dGlvbnMpXG4gICAgXG4qICAgUmVzb3VyY2VzXG4gICAgXG4gICAgVG9waWNzXG4gICAgXG4gICAgKiAgIFtBSV0oL3Jlc291cmNlcy9hcnRpY2xlcy9haSlcbiAgICAqICAgW0Rldk9wc10oL3Jlc291cmNlcy9hcnRpY2xlcy9kZXZvcHMpXG4gICAgKiAgIFtTZWN1cml0eV0oL3Jlc291cmNlcy9hcnRpY2xlcy9zZWN1cml0eSlcbiAgICAqICAgW1NvZnR3YXJlIERldmVsb3BtZW50XSgvcmVzb3VyY2VzL2FydGljbGVzL3NvZnR3YXJlLWRldmVsb3BtZW50KVxuICAgICogICBbVmlldyBhbGxdKC9yZXNvdXJjZXMvYXJ0aWNsZXMpXG4gICAgXG4gICAgRXhwbG9yZVxuICAgIFxuICAgICogICBbTGVhcm5pbmcgUGF0aHdheXNdKGh0dHBzOi8vcmVzb3VyY2VzLmdpdGh1Yi5jb20vbGVhcm4vcGF0aHdheXMpXG4gICAgKiAgIFtFdmVudHMgJiBXZWJpbmFyc10oaHR0cHM6Ly9yZXNvdXJjZXMuZ2l0aHViLmNvbSlcbiAgICAqICAgW0Vib29rcyAmIFdoaXRlcGFwZXJzXShodHRwczovL2dpdGh1Yi5jb20vcmVzb3VyY2VzL3doaXRlcGFwZXJzKVxuICAgICogICBbQ3VzdG9tZXIgU3Rvcmllc10oaHR0cHM6Ly9naXRodWIuY29tL2N1c3RvbWVyLXN0b3JpZXMpXG4gICAgKiAgIFtQYXJ0bmVyc10oaHR0cHM6Ly9wYXJ0bmVyLmdpdGh1Yi5jb20pXG4gICAgKiAgIFtFeGVjdXRpdmUgSW5zaWdodHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9zb2x1dGlvbnMvZXhlY3V0aXZlLWluc2lnaHRzKVxuICAgIFxuKiAgIE9wZW4gU291cmNlXG4gICAgXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIEdpdEh1YiBTcG9uc29yc1xuICAgICAgICBcbiAgICAgICAgRnVuZCBvcGVuIHNvdXJjZSBkZXZlbG9wZXJzXG4gICAgICAgIFxuICAgICAgICBdKC9zcG9uc29ycylcbiAgICBcbiAgICAqICAgW1xuICAgICAgICBcbiAgICAgICAgVGhlIFJlYWRNRSBQcm9qZWN0XG4gICAgICAgIFxuICAgICAgICBHaXRIdWIgY29tbXVuaXR5IGFydGljbGVzXG4gICAgICAgIFxuICAgICAgICBdKGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFkbWUpXG4gICAgXG4gICAgUmVwb3NpdG9yaWVzXG4gICAgXG4gICAgKiAgIFtUb3BpY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS90b3BpY3MpXG4gICAgKiAgIFtUcmVuZGluZ10oaHR0cHM6Ly9naXRodWIuY29tL3RyZW5kaW5nKVxuICAgICogICBbQ29sbGVjdGlvbnNdKGh0dHBzOi8vZ2l0aHViLmNvbS9jb2xsZWN0aW9ucylcbiAgICBcbiogICBFbnRlcnByaXNlXG4gICAgXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIEVudGVycHJpc2UgcGxhdGZvcm1cbiAgICAgICAgXG4gICAgICAgIEFJLXBvd2VyZWQgZGV2ZWxvcGVyIHBsYXRmb3JtXG4gICAgICAgIFxuICAgICAgICBdKC9lbnRlcnByaXNlKVxuICAgIFxuICAgIEF2YWlsYWJsZSBhZGQtb25zXG4gICAgXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIEdpdEh1YiBBZHZhbmNlZCBTZWN1cml0eVxuICAgICAgICBcbiAgICAgICAgRW50ZXJwcmlzZS1ncmFkZSBzZWN1cml0eSBmZWF0dXJlc1xuICAgICAgICBcbiAgICAgICAgXShodHRwczovL2dpdGh1Yi5jb20vc2VjdXJpdHkvYWR2YW5jZWQtc2VjdXJpdHkpXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIENvcGlsb3QgZm9yIGJ1c2luZXNzXG4gICAgICAgIFxuICAgICAgICBFbnRlcnByaXNlLWdyYWRlIEFJIGZlYXR1cmVzXG4gICAgICAgIFxuICAgICAgICBdKC9mZWF0dXJlcy9jb3BpbG90L2NvcGlsb3QtYnVzaW5lc3MpXG4gICAgKiAgIFtcbiAgICAgICAgXG4gICAgICAgIFByZW1pdW0gU3VwcG9ydFxuICAgICAgICBcbiAgICAgICAgRW50ZXJwcmlzZS1ncmFkZSAyNC83IHN1cHBvcnRcbiAgICAgICAgXG4gICAgICAgIF0oL3ByZW1pdW0tc3VwcG9ydClcbiAgICBcbiogICBbUHJpY2luZ10oaHR0cHM6Ly9naXRodWIuY29tL3ByaWNpbmcpXG5cblNlYXJjaCBvciBqdW1wIHRvLi4uXG5cblNlYXJjaCBjb2RlLCByZXBvc2l0b3JpZXMsIHVzZXJzLCBpc3N1ZXMsIHB1bGwgcmVxdWVzdHMuLi5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuU2VhcmNoXG5cbkNsZWFyXG5cbltTZWFyY2ggc3ludGF4IHRpcHNdKGh0dHBzOi8vZG9jcy5naXRodWIuY29tL3NlYXJjaC1naXRodWIvZ2l0aHViLWNvZGUtc2VhcmNoL3VuZGVyc3RhbmRpbmctZ2l0aHViLWNvZGUtc2VhcmNoLXN5bnRheClcblxuUHJvdmlkZSBmZWVkYmFja1xuPT09PT09PT09PT09PT09PVxuXG5XZSByZWFkIGV2ZXJ5IHBpZWNlIG9mIGZlZWRiYWNrLCBhbmQgdGFrZSB5b3VyIGlucHV0IHZlcnkgc2VyaW91c2x5LlxuXG4gSW5jbHVkZSBteSBlbWFpbCBhZGRyZXNzIHNvIEkgY2FuIGJlIGNvbnRhY3RlZFxuXG5DYW5jZWwgU3VibWl0IGZlZWRiYWNrXG5cblNhdmVkIHNlYXJjaGVzXG49PT09PT09PT09PT09PVxuXG5Vc2Ugc2F2ZWQgc2VhcmNoZXMgdG8gZmlsdGVyIHlvdXIgcmVzdWx0cyBtb3JlIHF1aWNrbHlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5OYW1lICBcblxuUXVlcnkgXG5cblRvIHNlZSBhbGwgYXZhaWxhYmxlIHF1YWxpZmllcnMsIHNlZSBvdXIgW2RvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5naXRodWIuY29tL3NlYXJjaC1naXRodWIvZ2l0aHViLWNvZGUtc2VhcmNoL3VuZGVyc3RhbmRpbmctZ2l0aHViLWNvZGUtc2VhcmNoLXN5bnRheCkuXG5cbkNhbmNlbCBDcmVhdGUgc2F2ZWQgc2VhcmNoXG5cbltTaWduIGluXSgvbG9naW4/cmV0dXJuX3RvPWh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRnRyZW5kaW5nKVxuXG5bU2lnbiB1cF0oL3NpZ251cD9yZWZfY3RhPVNpZ24rdXAmcmVmX2xvYz1oZWFkZXIrbG9nZ2VkK291dCZyZWZfcGFnZT0lMkZ0cmVuZGluZyZzb3VyY2U9aGVhZGVyKVxuXG5BcHBlYXJhbmNlIHNldHRpbmdzXG5cblJlc2V0dGluZyBmb2N1c1xuXG5Zb3Ugc2lnbmVkIGluIHdpdGggYW5vdGhlciB0YWIgb3Igd2luZG93LiBSZWxvYWQgdG8gcmVmcmVzaCB5b3VyIHNlc3Npb24uIFlvdSBzaWduZWQgb3V0IGluIGFub3RoZXIgdGFiIG9yIHdpbmRvdy4gUmVsb2FkIHRvIHJlZnJlc2ggeW91ciBzZXNzaW9uLiBZb3Ugc3dpdGNoZWQgYWNjb3VudHMgb24gYW5vdGhlciB0YWIgb3Igd2luZG93LiBSZWxvYWQgdG8gcmVmcmVzaCB5b3VyIHNlc3Npb24uIERpc21pc3MgYWxlcnRcblxuW0V4cGxvcmVdKC9leHBsb3JlKSBbVG9waWNzXSgvdG9waWNzKSBbVHJlbmRpbmddKC90cmVuZGluZykgW0NvbGxlY3Rpb25zXSgvY29sbGVjdGlvbnMpIFtFdmVudHNdKC9ldmVudHMpIFtHaXRIdWIgU3BvbnNvcnNdKC9zcG9uc29ycy9leHBsb3JlKVxuXG5UcmVuZGluZ1xuPT09PT09PT1cblxuU2VlIHdoYXQgdGhlIEdpdEh1YiBjb21tdW5pdHkgaXMgbW9zdCBleGNpdGVkIGFib3V0IHRvZGF5LlxuXG5bUmVwb3NpdG9yaWVzXSgvdHJlbmRpbmcpIFtEZXZlbG9wZXJzXSgvdHJlbmRpbmcvZGV2ZWxvcGVycylcblxuU3Bva2VuIExhbmd1YWdlOiBBbnlcblxuU2VsZWN0IGEgc3Bva2VuIGxhbmd1YWdlXG5cbltBYmtoYXppYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1hYikgW0FmYXJdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1hYSkgW0FmcmlrYWFuc10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWFmKSBbQWthbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWFrKSBbQWxiYW5pYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1zcSkgW0FtaGFyaWNdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1hbSkgW0FyYWJpY10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWFyKSBbQXJhZ29uZXNlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9YW4pIFtBcm1lbmlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWh5KSBbQXNzYW1lc2VdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1hcykgW0F2YXJpY10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWF2KSBbQXZlc3Rhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWFlKSBbQXltYXJhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9YXkpIFtBemVyYmFpamFuaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWF6KSBbQmFtYmFyYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWJtKSBbQmFzaGtpcl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWJhKSBbQmFzcXVlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9ZXUpIFtCZWxhcnVzaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9YmUpIFtCZW5nYWxpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Ym4pIFtCaWhhcmkgbGFuZ3VhZ2VzXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9YmgpIFtCaXNsYW1hXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9YmkpIFtCb3NuaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9YnMpIFtCcmV0b25dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1icikgW0J1bGdhcmlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWJnKSBbQnVybWVzZV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW15KSBbQ2F0YWxhbiwgVmFsZW5jaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Y2EpIFtDaGFtb3Jyb10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWNoKSBbQ2hlY2hlbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWNlKSBbQ2hpY2hld2EsIENoZXdhLCBOeWFuamFdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ueSkgW0NoaW5lc2VdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT16aCkgW0NodXZhc2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1jdikgW0Nvcm5pc2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1rdykgW0NvcnNpY2FuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Y28pIFtDcmVlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Y3IpIFtDcm9hdGlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWhyKSBbQ3plY2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1jcykgW0RhbmlzaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWRhKSBbRGl2ZWhpLCBEaGl2ZWhpLCBNYWxkaXZpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1kdikgW0R1dGNoLCBGbGVtaXNoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bmwpIFtEem9uZ2toYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWR6KSBbRW5nbGlzaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWVuKSBbRXNwZXJhbnRvXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9ZW8pIFtFc3Rvbmlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWV0KSBbRXdlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9ZWUpIFtGYXJvZXNlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Zm8pIFtGaWppYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1maikgW0Zpbm5pc2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1maSkgW0ZyZW5jaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWZyKSBbRnVsYWhdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1mZikgW0dhbGljaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Z2wpIFtHZW9yZ2lhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWthKSBbR2VybWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9ZGUpIFtHcmVlaywgTW9kZXJuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9ZWwpIFtHdWFyYW5pXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Z24pIFtHdWphcmF0aV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWd1KSBbSGFpdGlhbiwgSGFpdGlhbiBDcmVvbGVdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1odCkgW0hhdXNhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9aGEpIFtIZWJyZXddKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1oZSkgW0hlcmVyb10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWh6KSBbSGluZGldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1oaSkgW0hpcmkgTW90dV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWhvKSBbSHVuZ2FyaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9aHUpIFtJbnRlcmxpbmd1YSAoSW50ZXJuYXRpb25hbCBBdXhpbC4uLl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWlhKSBbSW5kb25lc2lhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWlkKSBbSW50ZXJsaW5ndWUsIE9jY2lkZW50YWxdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1pZSkgW0lyaXNoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Z2EpIFtJZ2JvXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9aWcpIFtJbnVwaWFxXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9aWspIFtJZG9dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1pbykgW0ljZWxhbmRpY10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWlzKSBbSXRhbGlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWl0KSBbSW51a3RpdHV0XSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9aXUpIFtKYXBhbmVzZV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWphKSBbSmF2YW5lc2VdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1qdikgW0thbGFhbGxpc3V0LCBHcmVlbmxhbmRpY10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWtsKSBbS2FubmFkYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWtuKSBbS2FudXJpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9a3IpIFtLYXNobWlyaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWtzKSBbS2F6YWtoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9a2spIFtDZW50cmFsIEtobWVyXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9a20pIFtLaWt1eXUsIEdpa3V5dV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWtpKSBbS2lueWFyd2FuZGFdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ydykgW0tpcmdoaXosIEt5cmd5el0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWt5KSBbS29taV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWt2KSBbS29uZ29dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1rZykgW0tvcmVhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWtvKSBbS3VyZGlzaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWt1KSBbS3VhbnlhbWEsIEt3YW55YW1hXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9a2opIFtMYXRpbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWxhKSBbTHV4ZW1ib3VyZ2lzaCwgTGV0emVidXJnZXNjaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWxiKSBbR2FuZGFdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1sZykgW0xpbWJ1cmdhbiwgTGltYnVyZ2VyLCBMaW1idXJnaXNoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bGkpIFtMaW5nYWxhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bG4pIFtMYW9dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1sbykgW0xpdGh1YW5pYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1sdCkgW0x1YmEtS2F0YW5nYV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWx1KSBbTGF0dmlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWx2KSBbTWFueF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWd2KSBbTWFjZWRvbmlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW1rKSBbTWFsYWdhc3ldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1tZykgW01hbGF5XSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bXMpIFtNYWxheWFsYW1dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1tbCkgW01hbHRlc2VdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1tdCkgW01hb3JpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bWkpIFtNYXJhdGhpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bXIpIFtNYXJzaGFsbGVzZV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW1oKSBbTW9uZ29saWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bW4pIFtOYXVydV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW5hKSBbTmF2YWpvLCBOYXZhaG9dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1udikgW05vcnRoIE5kZWJlbGVdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1uZCkgW05lcGFsaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW5lKSBbTmRvbmdhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9bmcpIFtOb3J3ZWdpYW4gQm9rbcOlbF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW5iKSBbTm9yd2VnaWFuIE55bm9yc2tdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ubikgW05vcndlZ2lhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW5vKSBbU2ljaHVhbiBZaSwgTnVvc3VdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1paSkgW1NvdXRoIE5kZWJlbGVdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ucikgW09jY2l0YW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1vYykgW09qaWJ3YV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW9qKSBbQ2h1cmNoIFNsYXZpYywgT2xkIFNsYXZvbmljLCBDaHUuLi5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1jdSkgW09yb21vXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9b20pIFtPcml5YV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPW9yKSBbT3NzZXRpYW4sIE9zc2V0aWNdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1vcykgW1B1bmphYmksIFBhbmphYmldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1wYSkgW1BhbGldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1waSkgW1BlcnNpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1mYSkgW1BvbGlzaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXBsKSBbUGFzaHRvLCBQdXNodG9dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1wcykgW1BvcnR1Z3Vlc2VdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1wdCkgW1F1ZWNodWFdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1xdSkgW1JvbWFuc2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1ybSkgW1J1bmRpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9cm4pIFtSb21hbmlhbiwgTW9sZGF2aWFuLCBNb2xkb3Zhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXJvKSBbUnVzc2lhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXJ1KSBbU2Fuc2tyaXRdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1zYSkgW1NhcmRpbmlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXNjKSBbU2luZGhpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c2QpIFtOb3J0aGVybiBTYW1pXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c2UpIFtTYW1vYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1zbSkgW1NhbmdvXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c2cpIFtTZXJiaWFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c3IpIFtHYWVsaWMsIFNjb3R0aXNoIEdhZWxpY10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWdkKSBbU2hvbmFdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1zbikgW1NpbmhhbGEsIFNpbmhhbGVzZV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXNpKSBbU2xvdmFrXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c2spIFtTbG92ZW5pYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1zbCkgW1NvbWFsaV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXNvKSBbU291dGhlcm4gU290aG9dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1zdCkgW1NwYW5pc2gsIENhc3RpbGlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPWVzKSBbU3VuZGFuZXNlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c3UpIFtTd2FoaWxpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9c3cpIFtTd2F0aV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXNzKSBbU3dlZGlzaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXN2KSBbVGFtaWxdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT10YSkgW1RlbHVndV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXRlKSBbVGFqaWtdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT10ZykgW1RoYWldKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT10aCkgW1RpZ3JpbnlhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dGkpIFtUaWJldGFuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9Ym8pIFtUdXJrbWVuXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dGspIFtUYWdhbG9nXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dGwpIFtUc3dhbmFdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT10bikgW1RvbmdhIChUb25nYSBJc2xhbmRzKV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXRvKSBbVHVya2lzaF0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXRyKSBbVHNvbmdhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dHMpIFtUYXRhcl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXR0KSBbVHdpXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dHcpIFtUYWhpdGlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXR5KSBbVWlnaHVyLCBVeWdodXJdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT11ZykgW1VrcmFpbmlhbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXVrKSBbVXJkdV0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXVyKSBbVXpiZWtdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT11eikgW1ZlbmRhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dmUpIFtWaWV0bmFtZXNlXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9dmkpIFtWb2xhcMO8a10oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXZvKSBbV2FsbG9vbl0oL3RyZW5kaW5nP3Nwb2tlbl9sYW5ndWFnZV9jb2RlPXdhKSBbV2Vsc2hdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1jeSkgW1dvbG9mXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9d28pIFtXZXN0ZXJuIEZyaXNpYW5dKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT1meSkgW1hob3NhXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9eGgpIFtZaWRkaXNoXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9eWkpIFtZb3J1YmFdKC90cmVuZGluZz9zcG9rZW5fbGFuZ3VhZ2VfY29kZT15bykgW1podWFuZywgQ2h1YW5nXSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9emEpIFtadWx1XSgvdHJlbmRpbmc/c3Bva2VuX2xhbmd1YWdlX2NvZGU9enUpXG5cbkxvYWRpbmdcblxuTGFuZ3VhZ2U6IEFueVxuXG5TZWxlY3QgYSBsYW5ndWFnZVxuXG5bVW5rbm93biBsYW5ndWFnZXNdKC90cmVuZGluZy91bmtub3duP3NpbmNlPWRhaWx5KSBbMUMgRW50ZXJwcmlzZV0oL3RyZW5kaW5nLzFjLWVudGVycHJpc2U/c2luY2U9ZGFpbHkpIFsyLURpbWVuc2lvbmFsIEFycmF5XSgvdHJlbmRpbmcvMi1kaW1lbnNpb25hbC1hcnJheT9zaW5jZT1kYWlseSkgWzREXSgvdHJlbmRpbmcvNGQ/c2luY2U9ZGFpbHkpIFtBQkFQXSgvdHJlbmRpbmcvYWJhcD9zaW5jZT1kYWlseSkgW0FCQVAgQ0RTXSgvdHJlbmRpbmcvYWJhcC1jZHM/c2luY2U9ZGFpbHkpIFtBQk5GXSgvdHJlbmRpbmcvYWJuZj9zaW5jZT1kYWlseSkgW0FjdGlvblNjcmlwdF0oL3RyZW5kaW5nL2FjdGlvbnNjcmlwdD9zaW5jZT1kYWlseSkgW0FkYV0oL3RyZW5kaW5nL2FkYT9zaW5jZT1kYWlseSkgW0FkYmxvY2sgRmlsdGVyIExpc3RdKC90cmVuZGluZy9hZGJsb2NrLWZpbHRlci1saXN0P3NpbmNlPWRhaWx5KSBbQWRvYmUgRm9udCBNZXRyaWNzXSgvdHJlbmRpbmcvYWRvYmUtZm9udC1tZXRyaWNzP3NpbmNlPWRhaWx5KSBbQWdkYV0oL3RyZW5kaW5nL2FnZGE/c2luY2U9ZGFpbHkpIFtBR1MgU2NyaXB0XSgvdHJlbmRpbmcvYWdzLXNjcmlwdD9zaW5jZT1kYWlseSkgW0FJRExdKC90cmVuZGluZy9haWRsP3NpbmNlPWRhaWx5KSBbQUxdKC90cmVuZGluZy9hbD9zaW5jZT1kYWlseSkgW0FsbG95XSgvdHJlbmRpbmcvYWxsb3k/c2luY2U9ZGFpbHkpIFtBbHBpbmUgQWJ1aWxkXSgvdHJlbmRpbmcvYWxwaW5lLWFidWlsZD9zaW5jZT1kYWlseSkgW0FsdGl1bSBEZXNpZ25lcl0oL3RyZW5kaW5nL2FsdGl1bS1kZXNpZ25lcj9zaW5jZT1kYWlseSkgW0FNUExdKC90cmVuZGluZy9hbXBsP3NpbmNlPWRhaWx5KSBbQW5nZWxTY3JpcHRdKC90cmVuZGluZy9hbmdlbHNjcmlwdD9zaW5jZT1kYWlseSkgW0Fuc3dlciBTZXQgUHJvZ3JhbW1pbmddKC90cmVuZGluZy9hbnN3ZXItc2V0LXByb2dyYW1taW5nP3NpbmNlPWRhaWx5KSBbQW50IEJ1aWxkIFN5c3RlbV0oL3RyZW5kaW5nL2FudC1idWlsZC1zeXN0ZW0/c2luY2U9ZGFpbHkpIFtBbnRsZXJzXSgvdHJlbmRpbmcvYW50bGVycz9zaW5jZT1kYWlseSkgW0FOVExSXSgvdHJlbmRpbmcvYW50bHI/c2luY2U9ZGFpbHkpIFtBcGFjaGVDb25mXSgvdHJlbmRpbmcvYXBhY2hlY29uZj9zaW5jZT1kYWlseSkgW0FwZXhdKC90cmVuZGluZy9hcGV4P3NpbmNlPWRhaWx5KSBbQVBJIEJsdWVwcmludF0oL3RyZW5kaW5nL2FwaS1ibHVlcHJpbnQ/c2luY2U9ZGFpbHkpIFtBUExdKC90cmVuZGluZy9hcGw/c2luY2U9ZGFpbHkpIFtBcG9sbG8gR3VpZGFuY2UgQ29tcHV0ZXJdKC90cmVuZGluZy9hcG9sbG8tZ3VpZGFuY2UtY29tcHV0ZXI/c2luY2U9ZGFpbHkpIFtBcHBsZVNjcmlwdF0oL3RyZW5kaW5nL2FwcGxlc2NyaXB0P3NpbmNlPWRhaWx5KSBbQXJjXSgvdHJlbmRpbmcvYXJjP3NpbmNlPWRhaWx5KSBbQXNjaWlEb2NdKC90cmVuZGluZy9hc2NpaWRvYz9zaW5jZT1kYWlseSkgW0FTTF0oL3RyZW5kaW5nL2FzbD9zaW5jZT1kYWlseSkgW0FTTi4xXSgvdHJlbmRpbmcvYXNuLjE/c2luY2U9ZGFpbHkpIFtDbGFzc2ljIEFTUF0oL3RyZW5kaW5nL2NsYXNzaWMtYXNwP3NpbmNlPWRhaWx5KSBbQVNQLk5FVF0oL3RyZW5kaW5nL2FzcC5uZXQ/c2luY2U9ZGFpbHkpIFtBc3BlY3RKXSgvdHJlbmRpbmcvYXNwZWN0aj9zaW5jZT1kYWlseSkgW0Fzc2VtYmx5XSgvdHJlbmRpbmcvYXNzZW1ibHk/c2luY2U9ZGFpbHkpIFtBc3Ryb10oL3RyZW5kaW5nL2FzdHJvP3NpbmNlPWRhaWx5KSBbQXN5bXB0b3RlXSgvdHJlbmRpbmcvYXN5bXB0b3RlP3NpbmNlPWRhaWx5KSBbQVRTXSgvdHJlbmRpbmcvYXRzP3NpbmNlPWRhaWx5KSBbQXVnZWFzXSgvdHJlbmRpbmcvYXVnZWFzP3NpbmNlPWRhaWx5KSBbQXV0b0hvdGtleV0oL3RyZW5kaW5nL2F1dG9ob3RrZXk/c2luY2U9ZGFpbHkpIFtBdXRvSXRdKC90cmVuZGluZy9hdXRvaXQ/c2luY2U9ZGFpbHkpIFtBdnJvIElETF0oL3RyZW5kaW5nL2F2cm8taWRsP3NpbmNlPWRhaWx5KSBbQXdrXSgvdHJlbmRpbmcvYXdrP3NpbmNlPWRhaWx5KSBbQjRYXSgvdHJlbmRpbmcvYjR4P3NpbmNlPWRhaWx5KSBbQmFsbGVyaW5hXSgvdHJlbmRpbmcvYmFsbGVyaW5hP3NpbmNlPWRhaWx5KSBbQkFTSUNdKC90cmVuZGluZy9iYXNpYz9zaW5jZT1kYWlseSkgW0JhdGNoZmlsZV0oL3RyZW5kaW5nL2JhdGNoZmlsZT9zaW5jZT1kYWlseSkgW0JlZWZdKC90cmVuZGluZy9iZWVmP3NpbmNlPWRhaWx5KSBbQmVmdW5nZV0oL3RyZW5kaW5nL2JlZnVuZ2U/c2luY2U9ZGFpbHkpIFtCZXJyeV0oL3RyZW5kaW5nL2JlcnJ5P3NpbmNlPWRhaWx5KSBbQmliVGVYXSgvdHJlbmRpbmcvYmlidGV4P3NpbmNlPWRhaWx5KSBbQmliVGVYIFN0eWxlXSgvdHJlbmRpbmcvYmlidGV4LXN0eWxlP3NpbmNlPWRhaWx5KSBbQmljZXBdKC90cmVuZGluZy9iaWNlcD9zaW5jZT1kYWlseSkgW0Jpa2VzaGVkXSgvdHJlbmRpbmcvYmlrZXNoZWQ/c2luY2U9ZGFpbHkpIFtCaXNvbl0oL3RyZW5kaW5nL2Jpc29uP3NpbmNlPWRhaWx5KSBbQml0QmFrZV0oL3RyZW5kaW5nL2JpdGJha2U/c2luY2U9ZGFpbHkpIFtCbGFkZV0oL3RyZW5kaW5nL2JsYWRlP3NpbmNlPWRhaWx5KSBbQmxpdHpCYXNpY10oL3RyZW5kaW5nL2JsaXR6YmFzaWM/c2luY2U9ZGFpbHkpIFtCbGl0ek1heF0oL3RyZW5kaW5nL2JsaXR6bWF4P3NpbmNlPWRhaWx5KSBbQmx1ZXNwZWNdKC90cmVuZGluZy9ibHVlc3BlYz9zaW5jZT1kYWlseSkgW0JsdWVzcGVjIEJIXSgvdHJlbmRpbmcvYmx1ZXNwZWMtYmg/c2luY2U9ZGFpbHkpIFtCb29dKC90cmVuZGluZy9ib28/c2luY2U9ZGFpbHkpIFtCb29naWVdKC90cmVuZGluZy9ib29naWU/c2luY2U9ZGFpbHkpIFtCUU5dKC90cmVuZGluZy9icW4/c2luY2U9ZGFpbHkpIFtCcmFpbmZ1Y2tdKC90cmVuZGluZy9icmFpbmZ1Y2s/c2luY2U9ZGFpbHkpIFtCcmlnaHRlclNjcmlwdF0oL3RyZW5kaW5nL2JyaWdodGVyc2NyaXB0P3NpbmNlPWRhaWx5KSBbQnJpZ2h0c2NyaXB0XSgvdHJlbmRpbmcvYnJpZ2h0c2NyaXB0P3NpbmNlPWRhaWx5KSBbWmVla10oL3RyZW5kaW5nL3plZWs/c2luY2U9ZGFpbHkpIFtCcm93c2Vyc2xpc3RdKC90cmVuZGluZy9icm93c2Vyc2xpc3Q/c2luY2U9ZGFpbHkpIFtDXSgvdHJlbmRpbmcvYz9zaW5jZT1kYWlseSkgW0MjXSgvdHJlbmRpbmcvYyUyMz9zaW5jZT1kYWlseSkgW0MrK10oL3RyZW5kaW5nL2MrKz9zaW5jZT1kYWlseSkgW0MtT2JqRHVtcF0oL3RyZW5kaW5nL2Mtb2JqZHVtcD9zaW5jZT1kYWlseSkgW0MyaHMgSGFza2VsbF0oL3RyZW5kaW5nL2MyaHMtaGFza2VsbD9zaW5jZT1kYWlseSkgW0NhYmFsIENvbmZpZ10oL3RyZW5kaW5nL2NhYmFsLWNvbmZpZz9zaW5jZT1kYWlseSkgW0NhZGR5ZmlsZV0oL3RyZW5kaW5nL2NhZGR5ZmlsZT9zaW5jZT1kYWlseSkgW0NhZGVuY2VdKC90cmVuZGluZy9jYWRlbmNlP3NpbmNlPWRhaWx5KSBbQ2Fpcm9dKC90cmVuZGluZy9jYWlybz9zaW5jZT1kYWlseSkgW0NhaXJvIFplcm9dKC90cmVuZGluZy9jYWlyby16ZXJvP3NpbmNlPWRhaWx5KSBbQ2FtZUxJR09dKC90cmVuZGluZy9jYW1lbGlnbz9zaW5jZT1kYWlseSkgW0NBUCBDRFNdKC90cmVuZGluZy9jYXAtY2RzP3NpbmNlPWRhaWx5KSBbQ2FwJ24gUHJvdG9dKC90cmVuZGluZy9jYXAnbi1wcm90bz9zaW5jZT1kYWlseSkgW0NhcmJvbl0oL3RyZW5kaW5nL2NhcmJvbj9zaW5jZT1kYWlseSkgW0NhcnRvQ1NTXSgvdHJlbmRpbmcvY2FydG9jc3M/c2luY2U9ZGFpbHkpIFtDZXlsb25dKC90cmVuZGluZy9jZXlsb24/c2luY2U9ZGFpbHkpIFtDaGFwZWxdKC90cmVuZGluZy9jaGFwZWw/c2luY2U9ZGFpbHkpIFtDaGFyaXR5XSgvdHJlbmRpbmcvY2hhcml0eT9zaW5jZT1kYWlseSkgW0NoZWNrc3Vtc10oL3RyZW5kaW5nL2NoZWNrc3Vtcz9zaW5jZT1kYWlseSkgW0NodWNLXSgvdHJlbmRpbmcvY2h1Y2s/c2luY2U9ZGFpbHkpIFtDSUxdKC90cmVuZGluZy9jaWw/c2luY2U9ZGFpbHkpIFtDaXJjb21dKC90cmVuZGluZy9jaXJjb20/c2luY2U9ZGFpbHkpIFtDaXJydV0oL3RyZW5kaW5nL2NpcnJ1P3NpbmNlPWRhaWx5KSBbQ2xhcmlvbl0oL3RyZW5kaW5nL2NsYXJpb24/c2luY2U9ZGFpbHkpIFtDbGFyaXR5XSgvdHJlbmRpbmcvY2xhcml0eT9zaW5jZT1kYWlseSkgW0NsYXNzaWMgQVNQXSgvdHJlbmRpbmcvY2xhc3NpYy1hc3A/c2luY2U9ZGFpbHkpIFtDbGVhbl0oL3RyZW5kaW5nL2NsZWFuP3NpbmNlPWRhaWx5KSBbQ2xpY2tdKC90cmVuZGluZy9jbGljaz9zaW5jZT1kYWlseSkgW0NMSVBTXSgvdHJlbmRpbmcvY2xpcHM/c2luY2U9ZGFpbHkpIFtDbG9qdXJlXSgvdHJlbmRpbmcvY2xvanVyZT9zaW5jZT1kYWlseSkgW0Nsb3N1cmUgVGVtcGxhdGVzXSgvdHJlbmRpbmcvY2xvc3VyZS10ZW1wbGF0ZXM/c2luY2U9ZGFpbHkpIFtDbG91ZCBGaXJlc3RvcmUgU2VjdXJpdHkgUnVsZXNdKC90cmVuZGluZy9jbG91ZC1maXJlc3RvcmUtc2VjdXJpdHktcnVsZXM/c2luY2U9ZGFpbHkpIFtDTWFrZV0oL3RyZW5kaW5nL2NtYWtlP3NpbmNlPWRhaWx5KSBbQ09CT0xdKC90cmVuZGluZy9jb2JvbD9zaW5jZT1kYWlseSkgW0NPREVPV05FUlNdKC90cmVuZGluZy9jb2Rlb3duZXJzP3NpbmNlPWRhaWx5KSBbQ29kZVFMXSgvdHJlbmRpbmcvY29kZXFsP3NpbmNlPWRhaWx5KSBbQ29mZmVlU2NyaXB0XSgvdHJlbmRpbmcvY29mZmVlc2NyaXB0P3NpbmNlPWRhaWx5KSBbQ29sZEZ1c2lvbl0oL3RyZW5kaW5nL2NvbGRmdXNpb24/c2luY2U9ZGFpbHkpIFtDb2xkRnVzaW9uIENGQ10oL3RyZW5kaW5nL2NvbGRmdXNpb24tY2ZjP3NpbmNlPWRhaWx5KSBbQ09MTEFEQV0oL3RyZW5kaW5nL2NvbGxhZGE/c2luY2U9ZGFpbHkpIFtDb21tb24gTGlzcF0oL3RyZW5kaW5nL2NvbW1vbi1saXNwP3NpbmNlPWRhaWx5KSBbQ29tbW9uIFdvcmtmbG93IExhbmd1YWdlXSgvdHJlbmRpbmcvY29tbW9uLXdvcmtmbG93LWxhbmd1YWdlP3NpbmNlPWRhaWx5KSBbQ29tcG9uZW50IFBhc2NhbF0oL3RyZW5kaW5nL2NvbXBvbmVudC1wYXNjYWw/c2luY2U9ZGFpbHkpIFtDb05MTC1VXSgvdHJlbmRpbmcvY29ubGwtdT9zaW5jZT1kYWlseSkgW0Nvb2xdKC90cmVuZGluZy9jb29sP3NpbmNlPWRhaWx5KSBbQ29xXSgvdHJlbmRpbmcvY29xP3NpbmNlPWRhaWx5KSBbQ3BwLU9iakR1bXBdKC90cmVuZGluZy9jcHAtb2JqZHVtcD9zaW5jZT1kYWlseSkgW0NyZW9sZV0oL3RyZW5kaW5nL2NyZW9sZT9zaW5jZT1kYWlseSkgW2Nyb250YWJdKC90cmVuZGluZy9jcm9udGFiP3NpbmNlPWRhaWx5KSBbQ3J5c3RhbF0oL3RyZW5kaW5nL2NyeXN0YWw/c2luY2U9ZGFpbHkpIFtDU09OXSgvdHJlbmRpbmcvY3Nvbj9zaW5jZT1kYWlseSkgW0Nzb3VuZF0oL3RyZW5kaW5nL2Nzb3VuZD9zaW5jZT1kYWlseSkgW0Nzb3VuZCBEb2N1bWVudF0oL3RyZW5kaW5nL2Nzb3VuZC1kb2N1bWVudD9zaW5jZT1kYWlseSkgW0Nzb3VuZCBTY29yZV0oL3RyZW5kaW5nL2Nzb3VuZC1zY29yZT9zaW5jZT1kYWlseSkgW0NTU10oL3RyZW5kaW5nL2Nzcz9zaW5jZT1kYWlseSkgW0NTVl0oL3RyZW5kaW5nL2Nzdj9zaW5jZT1kYWlseSkgW0N1ZGFdKC90cmVuZGluZy9jdWRhP3NpbmNlPWRhaWx5KSBbQ1VFXSgvdHJlbmRpbmcvY3VlP3NpbmNlPWRhaWx5KSBbQ3VlIFNoZWV0XSgvdHJlbmRpbmcvY3VlLXNoZWV0P3NpbmNlPWRhaWx5KSBbY1VSTCBDb25maWddKC90cmVuZGluZy9jdXJsLWNvbmZpZz9zaW5jZT1kYWlseSkgW0N1cnJ5XSgvdHJlbmRpbmcvY3Vycnk/c2luY2U9ZGFpbHkpIFtDV2ViXSgvdHJlbmRpbmcvY3dlYj9zaW5jZT1kYWlseSkgW0N5Y3JpcHRdKC90cmVuZGluZy9jeWNyaXB0P3NpbmNlPWRhaWx5KSBbQ3lsY10oL3RyZW5kaW5nL2N5bGM/c2luY2U9ZGFpbHkpIFtDeXBoZXJdKC90cmVuZGluZy9jeXBoZXI/c2luY2U9ZGFpbHkpIFtDeXRob25dKC90cmVuZGluZy9jeXRob24/c2luY2U9ZGFpbHkpIFtEXSgvdHJlbmRpbmcvZD9zaW5jZT1kYWlseSkgW0QtT2JqRHVtcF0oL3RyZW5kaW5nL2Qtb2JqZHVtcD9zaW5jZT1kYWlseSkgW0QyXSgvdHJlbmRpbmcvZDI/c2luY2U9ZGFpbHkpIFtEYWZueV0oL3RyZW5kaW5nL2RhZm55P3NpbmNlPWRhaWx5KSBbRGFyY3MgUGF0Y2hdKC90cmVuZGluZy9kYXJjcy1wYXRjaD9zaW5jZT1kYWlseSkgW0RhcnRdKC90cmVuZGluZy9kYXJ0P3NpbmNlPWRhaWx5KSBbRGF0YVdlYXZlXSgvdHJlbmRpbmcvZGF0YXdlYXZlP3NpbmNlPWRhaWx5KSBbRGViaWFuIFBhY2thZ2UgQ29udHJvbCBGaWxlXSgvdHJlbmRpbmcvZGViaWFuLXBhY2thZ2UtY29udHJvbC1maWxlP3NpbmNlPWRhaWx5KSBbRGVuaXplblNjcmlwdF0oL3RyZW5kaW5nL2Rlbml6ZW5zY3JpcHQ/c2luY2U9ZGFpbHkpIFtkZXNrdG9wXSgvdHJlbmRpbmcvZGVza3RvcD9zaW5jZT1kYWlseSkgW0RoYWxsXSgvdHJlbmRpbmcvZGhhbGw/c2luY2U9ZGFpbHkpIFtEaWZmXSgvdHJlbmRpbmcvZGlmZj9zaW5jZT1kYWlseSkgW0RJR0lUQUwgQ29tbWFuZCBMYW5ndWFnZV0oL3RyZW5kaW5nL2RpZ2l0YWwtY29tbWFuZC1sYW5ndWFnZT9zaW5jZT1kYWlseSkgW2RpcmNvbG9yc10oL3RyZW5kaW5nL2RpcmNvbG9ycz9zaW5jZT1kYWlseSkgW0RpcmVjdFggM0QgRmlsZV0oL3RyZW5kaW5nL2RpcmVjdHgtM2QtZmlsZT9zaW5jZT1kYWlseSkgW0RNXSgvdHJlbmRpbmcvZG0/c2luY2U9ZGFpbHkpIFtETlMgWm9uZV0oL3RyZW5kaW5nL2Rucy16b25lP3NpbmNlPWRhaWx5KSBbRG9ja2VyZmlsZV0oL3RyZW5kaW5nL2RvY2tlcmZpbGU/c2luY2U9ZGFpbHkpIFtEb2dlc2NyaXB0XSgvdHJlbmRpbmcvZG9nZXNjcmlwdD9zaW5jZT1kYWlseSkgW0RvdGVudl0oL3RyZW5kaW5nL2RvdGVudj9zaW5jZT1kYWlseSkgW0RUcmFjZV0oL3RyZW5kaW5nL2R0cmFjZT9zaW5jZT1kYWlseSkgW0R1bmVdKC90cmVuZGluZy9kdW5lP3NpbmNlPWRhaWx5KSBbRHlsYW5dKC90cmVuZGluZy9keWxhbj9zaW5jZT1kYWlseSkgW0VdKC90cmVuZGluZy9lP3NpbmNlPWRhaWx5KSBbRS1tYWlsXSgvdHJlbmRpbmcvZS1tYWlsP3NpbmNlPWRhaWx5KSBbRWFnbGVdKC90cmVuZGluZy9lYWdsZT9zaW5jZT1kYWlseSkgW0VhcnRobHldKC90cmVuZGluZy9lYXJ0aGx5P3NpbmNlPWRhaWx5KSBbRWFzeWJ1aWxkXSgvdHJlbmRpbmcvZWFzeWJ1aWxkP3NpbmNlPWRhaWx5KSBbRUJORl0oL3RyZW5kaW5nL2VibmY/c2luY2U9ZGFpbHkpIFtlQ10oL3RyZW5kaW5nL2VjP3NpbmNlPWRhaWx5KSBbRWNlcmUgUHJvamVjdHNdKC90cmVuZGluZy9lY2VyZS1wcm9qZWN0cz9zaW5jZT1kYWlseSkgW0VDTF0oL3RyZW5kaW5nL2VjbD9zaW5jZT1kYWlseSkgW0VDTGlQU2VdKC90cmVuZGluZy9lY2xpcHNlP3NpbmNlPWRhaWx5KSBbRWNtYXJrdXBdKC90cmVuZGluZy9lY21hcmt1cD9zaW5jZT1kYWlseSkgW0VkZ2VdKC90cmVuZGluZy9lZGdlP3NpbmNlPWRhaWx5KSBbRWRnZVFMXSgvdHJlbmRpbmcvZWRnZXFsP3NpbmNlPWRhaWx5KSBbRWRpdG9yQ29uZmlnXSgvdHJlbmRpbmcvZWRpdG9yY29uZmlnP3NpbmNlPWRhaWx5KSBbRWRqZSBEYXRhIENvbGxlY3Rpb25dKC90cmVuZGluZy9lZGplLWRhdGEtY29sbGVjdGlvbj9zaW5jZT1kYWlseSkgW2Vkbl0oL3RyZW5kaW5nL2Vkbj9zaW5jZT1kYWlseSkgW0VpZmZlbF0oL3RyZW5kaW5nL2VpZmZlbD9zaW5jZT1kYWlseSkgW0VKU10oL3RyZW5kaW5nL2Vqcz9zaW5jZT1kYWlseSkgW0VsaXhpcl0oL3RyZW5kaW5nL2VsaXhpcj9zaW5jZT1kYWlseSkgW0VsbV0oL3RyZW5kaW5nL2VsbT9zaW5jZT1kYWlseSkgW0VsdmlzaF0oL3RyZW5kaW5nL2VsdmlzaD9zaW5jZT1kYWlseSkgW0VsdmlzaCBUcmFuc2NyaXB0XSgvdHJlbmRpbmcvZWx2aXNoLXRyYW5zY3JpcHQ/c2luY2U9ZGFpbHkpIFtFbWFjcyBMaXNwXSgvdHJlbmRpbmcvZW1hY3MtbGlzcD9zaW5jZT1kYWlseSkgW0VtYmVyU2NyaXB0XSgvdHJlbmRpbmcvZW1iZXJzY3JpcHQ/c2luY2U9ZGFpbHkpIFtFLW1haWxdKC90cmVuZGluZy9lLW1haWw/c2luY2U9ZGFpbHkpIFtFUV0oL3RyZW5kaW5nL2VxP3NpbmNlPWRhaWx5KSBbRXJsYW5nXSgvdHJlbmRpbmcvZXJsYW5nP3NpbmNlPWRhaWx5KSBbRXVwaG9yaWFdKC90cmVuZGluZy9ldXBob3JpYT9zaW5jZT1kYWlseSkgW0YjXSgvdHJlbmRpbmcvZiUyMz9zaW5jZT1kYWlseSkgW0ZcXCpdKC90cmVuZGluZy9mKj9zaW5jZT1kYWlseSkgW0ZhY3Rvcl0oL3RyZW5kaW5nL2ZhY3Rvcj9zaW5jZT1kYWlseSkgW0ZhbmN5XSgvdHJlbmRpbmcvZmFuY3k/c2luY2U9ZGFpbHkpIFtGYW50b21dKC90cmVuZGluZy9mYW50b20/c2luY2U9ZGFpbHkpIFtGYXVzdF0oL3RyZW5kaW5nL2ZhdXN0P3NpbmNlPWRhaWx5KSBbRmVubmVsXSgvdHJlbmRpbmcvZmVubmVsP3NpbmNlPWRhaWx5KSBbRklHbGV0IEZvbnRdKC90cmVuZGluZy9maWdsZXQtZm9udD9zaW5jZT1kYWlseSkgW0ZpbGViZW5jaCBXTUxdKC90cmVuZGluZy9maWxlYmVuY2gtd21sP3NpbmNlPWRhaWx5KSBbRmlsdGVyc2NyaXB0XSgvdHJlbmRpbmcvZmlsdGVyc2NyaXB0P3NpbmNlPWRhaWx5KSBbRklSUlRMXSgvdHJlbmRpbmcvZmlycnRsP3NpbmNlPWRhaWx5KSBbZmlzaF0oL3RyZW5kaW5nL2Zpc2g/c2luY2U9ZGFpbHkpIFtGbHVlbnRdKC90cmVuZGluZy9mbHVlbnQ/c2luY2U9ZGFpbHkpIFtGTFVYXSgvdHJlbmRpbmcvZmx1eD9zaW5jZT1kYWlseSkgW0Zvcm1hdHRlZF0oL3RyZW5kaW5nL2Zvcm1hdHRlZD9zaW5jZT1kYWlseSkgW0ZvcnRoXSgvdHJlbmRpbmcvZm9ydGg/c2luY2U9ZGFpbHkpIFtGb3J0cmFuXSgvdHJlbmRpbmcvZm9ydHJhbj9zaW5jZT1kYWlseSkgW0ZvcnRyYW4gRnJlZSBGb3JtXSgvdHJlbmRpbmcvZm9ydHJhbi1mcmVlLWZvcm0/c2luY2U9ZGFpbHkpIFtGcmVlQkFTSUNdKC90cmVuZGluZy9mcmVlYmFzaWM/c2luY2U9ZGFpbHkpIFtGcmVlTWFya2VyXSgvdHJlbmRpbmcvZnJlZW1hcmtlcj9zaW5jZT1kYWlseSkgW0ZyZWdlXSgvdHJlbmRpbmcvZnJlZ2U/c2luY2U9ZGFpbHkpIFtGdXRoYXJrXSgvdHJlbmRpbmcvZnV0aGFyaz9zaW5jZT1kYWlseSkgW0ctY29kZV0oL3RyZW5kaW5nL2ctY29kZT9zaW5jZT1kYWlseSkgW0dhbWUgTWFrZXIgTGFuZ3VhZ2VdKC90cmVuZGluZy9nYW1lLW1ha2VyLWxhbmd1YWdlP3NpbmNlPWRhaWx5KSBbR0FNTF0oL3RyZW5kaW5nL2dhbWw/c2luY2U9ZGFpbHkpIFtHQU1TXSgvdHJlbmRpbmcvZ2Ftcz9zaW5jZT1kYWlseSkgW0dBUF0oL3RyZW5kaW5nL2dhcD9zaW5jZT1kYWlseSkgW0dDQyBNYWNoaW5lIERlc2NyaXB0aW9uXSgvdHJlbmRpbmcvZ2NjLW1hY2hpbmUtZGVzY3JpcHRpb24/c2luY2U9ZGFpbHkpIFtHREJdKC90cmVuZGluZy9nZGI/c2luY2U9ZGFpbHkpIFtHRFNjcmlwdF0oL3RyZW5kaW5nL2dkc2NyaXB0P3NpbmNlPWRhaWx5KSBbR0VEQ09NXSgvdHJlbmRpbmcvZ2VkY29tP3NpbmNlPWRhaWx5KSBbR2VtZmlsZS5sb2NrXSgvdHJlbmRpbmcvZ2VtZmlsZS5sb2NrP3NpbmNlPWRhaWx5KSBbR2VtaW5pXSgvdHJlbmRpbmcvZ2VtaW5pP3NpbmNlPWRhaWx5KSBbR2VuZXJvIDRnbF0oL3RyZW5kaW5nL2dlbmVyby00Z2w/c2luY2U9ZGFpbHkpIFtHZW5lcm8gcGVyXSgvdHJlbmRpbmcvZ2VuZXJvLXBlcj9zaW5jZT1kYWlseSkgW0dlbmllXSgvdHJlbmRpbmcvZ2VuaWU/c2luY2U9ZGFpbHkpIFtHZW5zaGldKC90cmVuZGluZy9nZW5zaGk/c2luY2U9ZGFpbHkpIFtHZW50b28gRWJ1aWxkXSgvdHJlbmRpbmcvZ2VudG9vLWVidWlsZD9zaW5jZT1kYWlseSkgW0dlbnRvbyBFY2xhc3NdKC90cmVuZGluZy9nZW50b28tZWNsYXNzP3NpbmNlPWRhaWx5KSBbR2VyYmVyIEltYWdlXSgvdHJlbmRpbmcvZ2VyYmVyLWltYWdlP3NpbmNlPWRhaWx5KSBbR2V0dGV4dCBDYXRhbG9nXSgvdHJlbmRpbmcvZ2V0dGV4dC1jYXRhbG9nP3NpbmNlPWRhaWx5KSBbR2hlcmtpbl0oL3RyZW5kaW5nL2doZXJraW4/c2luY2U9ZGFpbHkpIFtHaXQgQXR0cmlidXRlc10oL3RyZW5kaW5nL2dpdC1hdHRyaWJ1dGVzP3NpbmNlPWRhaWx5KSBbR2l0IENvbmZpZ10oL3RyZW5kaW5nL2dpdC1jb25maWc/c2luY2U9ZGFpbHkpIFtHaXQgUmV2aXNpb24gTGlzdF0oL3RyZW5kaW5nL2dpdC1yZXZpc2lvbi1saXN0P3NpbmNlPWRhaWx5KSBbR2xlYW1dKC90cmVuZGluZy9nbGVhbT9zaW5jZT1kYWlseSkgW0dsaW1tZXIgSlNdKC90cmVuZGluZy9nbGltbWVyLWpzP3NpbmNlPWRhaWx5KSBbR2xpbW1lciBUU10oL3RyZW5kaW5nL2dsaW1tZXItdHM/c2luY2U9ZGFpbHkpIFtHTFNMXSgvdHJlbmRpbmcvZ2xzbD9zaW5jZT1kYWlseSkgW0dseXBoXSgvdHJlbmRpbmcvZ2x5cGg/c2luY2U9ZGFpbHkpIFtHbHlwaCBCaXRtYXAgRGlzdHJpYnV0aW9uIEZvcm1hdF0oL3RyZW5kaW5nL2dseXBoLWJpdG1hcC1kaXN0cmlidXRpb24tZm9ybWF0P3NpbmNlPWRhaWx5KSBbR05dKC90cmVuZGluZy9nbj9zaW5jZT1kYWlseSkgW0dudXBsb3RdKC90cmVuZGluZy9nbnVwbG90P3NpbmNlPWRhaWx5KSBbR29dKC90cmVuZGluZy9nbz9zaW5jZT1kYWlseSkgW0dvIENoZWNrc3Vtc10oL3RyZW5kaW5nL2dvLWNoZWNrc3Vtcz9zaW5jZT1kYWlseSkgW0dvIE1vZHVsZV0oL3RyZW5kaW5nL2dvLW1vZHVsZT9zaW5jZT1kYWlseSkgW0dvIFdvcmtzcGFjZV0oL3RyZW5kaW5nL2dvLXdvcmtzcGFjZT9zaW5jZT1kYWlseSkgW0dvZG90IFJlc291cmNlXSgvdHJlbmRpbmcvZ29kb3QtcmVzb3VyY2U/c2luY2U9ZGFpbHkpIFtHb2xvXSgvdHJlbmRpbmcvZ29sbz9zaW5jZT1kYWlseSkgW0dvc3VdKC90cmVuZGluZy9nb3N1P3NpbmNlPWRhaWx5KSBbR3JhY2VdKC90cmVuZGluZy9ncmFjZT9zaW5jZT1kYWlseSkgW0dyYWRsZV0oL3RyZW5kaW5nL2dyYWRsZT9zaW5jZT1kYWlseSkgW0dyYWRsZSBLb3RsaW4gRFNMXSgvdHJlbmRpbmcvZ3JhZGxlLWtvdGxpbi1kc2w/c2luY2U9ZGFpbHkpIFtHcmFtbWF0aWNhbCBGcmFtZXdvcmtdKC90cmVuZGluZy9ncmFtbWF0aWNhbC1mcmFtZXdvcms/c2luY2U9ZGFpbHkpIFtHcmFwaCBNb2RlbGluZyBMYW5ndWFnZV0oL3RyZW5kaW5nL2dyYXBoLW1vZGVsaW5nLWxhbmd1YWdlP3NpbmNlPWRhaWx5KSBbR3JhcGhRTF0oL3RyZW5kaW5nL2dyYXBocWw/c2luY2U9ZGFpbHkpIFtHcmFwaHZpeiAoRE9UKV0oL3RyZW5kaW5nL2dyYXBodml6LVxcKGRvdFxcKT9zaW5jZT1kYWlseSkgW0dyb292eV0oL3RyZW5kaW5nL2dyb292eT9zaW5jZT1kYWlseSkgW0dyb292eSBTZXJ2ZXIgUGFnZXNdKC90cmVuZGluZy9ncm9vdnktc2VydmVyLXBhZ2VzP3NpbmNlPWRhaWx5KSBbR1NDXSgvdHJlbmRpbmcvZ3NjP3NpbmNlPWRhaWx5KSBbSGFja10oL3RyZW5kaW5nL2hhY2s/c2luY2U9ZGFpbHkpIFtIYW1sXSgvdHJlbmRpbmcvaGFtbD9zaW5jZT1kYWlseSkgW0hhbmRsZWJhcnNdKC90cmVuZGluZy9oYW5kbGViYXJzP3NpbmNlPWRhaWx5KSBbSEFQcm94eV0oL3RyZW5kaW5nL2hhcHJveHk/c2luY2U9ZGFpbHkpIFtIYXJib3VyXSgvdHJlbmRpbmcvaGFyYm91cj9zaW5jZT1kYWlseSkgW0hhcmVdKC90cmVuZGluZy9oYXJlP3NpbmNlPWRhaWx5KSBbSGFza2VsbF0oL3RyZW5kaW5nL2hhc2tlbGw/c2luY2U9ZGFpbHkpIFtIYXhlXSgvdHJlbmRpbmcvaGF4ZT9zaW5jZT1kYWlseSkgW0hDTF0oL3RyZW5kaW5nL2hjbD9zaW5jZT1kYWlseSkgW0hpdmVRTF0oL3RyZW5kaW5nL2hpdmVxbD9zaW5jZT1kYWlseSkgW0hMU0xdKC90cmVuZGluZy9obHNsP3NpbmNlPWRhaWx5KSBbSE9DT05dKC90cmVuZGluZy9ob2Nvbj9zaW5jZT1kYWlseSkgW0hvbHlDXSgvdHJlbmRpbmcvaG9seWM/c2luY2U9ZGFpbHkpIFtob29uXSgvdHJlbmRpbmcvaG9vbj9zaW5jZT1kYWlseSkgW0hvc3RzIEZpbGVdKC90cmVuZGluZy9ob3N0cy1maWxlP3NpbmNlPWRhaWx5KSBbSFRNTF0oL3RyZW5kaW5nL2h0bWw/c2luY2U9ZGFpbHkpIFtKaW5qYV0oL3RyZW5kaW5nL2ppbmphP3NpbmNlPWRhaWx5KSBbSFRNTCtFQ1JdKC90cmVuZGluZy9odG1sK2Vjcj9zaW5jZT1kYWlseSkgW0hUTUwrRUVYXSgvdHJlbmRpbmcvaHRtbCtlZXg/c2luY2U9ZGFpbHkpIFtIVE1MK0VSQl0oL3RyZW5kaW5nL2h0bWwrZXJiP3NpbmNlPWRhaWx5KSBbSFRNTCtQSFBdKC90cmVuZGluZy9odG1sK3BocD9zaW5jZT1kYWlseSkgW0hUTUwrUmF6b3JdKC90cmVuZGluZy9odG1sK3Jhem9yP3NpbmNlPWRhaWx5KSBbSFRUUF0oL3RyZW5kaW5nL2h0dHA/c2luY2U9ZGFpbHkpIFtIWE1MXSgvdHJlbmRpbmcvaHhtbD9zaW5jZT1kYWlseSkgW0h5XSgvdHJlbmRpbmcvaHk/c2luY2U9ZGFpbHkpIFtIeVBoeV0oL3RyZW5kaW5nL2h5cGh5P3NpbmNlPWRhaWx5KSBbaUNhbGVuZGFyXSgvdHJlbmRpbmcvaWNhbGVuZGFyP3NpbmNlPWRhaWx5KSBbSURMXSgvdHJlbmRpbmcvaWRsP3NpbmNlPWRhaWx5KSBbSWRyaXNdKC90cmVuZGluZy9pZHJpcz9zaW5jZT1kYWlseSkgW0lnbm9yZSBMaXN0XSgvdHJlbmRpbmcvaWdub3JlLWxpc3Q/c2luY2U9ZGFpbHkpIFtJR09SIFByb10oL3RyZW5kaW5nL2lnb3ItcHJvP3NpbmNlPWRhaWx5KSBbSW1hZ2VKIE1hY3JvXSgvdHJlbmRpbmcvaW1hZ2VqLW1hY3JvP3NpbmNlPWRhaWx5KSBbSW1iYV0oL3RyZW5kaW5nL2ltYmE/c2luY2U9ZGFpbHkpIFtJbmZvcm0gN10oL3RyZW5kaW5nL2luZm9ybS03P3NpbmNlPWRhaWx5KSBbSU5JXSgvdHJlbmRpbmcvaW5pP3NpbmNlPWRhaWx5KSBbSW5rXSgvdHJlbmRpbmcvaW5rP3NpbmNlPWRhaWx5KSBbSW5ubyBTZXR1cF0oL3RyZW5kaW5nL2lubm8tc2V0dXA/c2luY2U9ZGFpbHkpIFtJb10oL3RyZW5kaW5nL2lvP3NpbmNlPWRhaWx5KSBbSW9rZV0oL3RyZW5kaW5nL2lva2U/c2luY2U9ZGFpbHkpIFtJUkMgbG9nXSgvdHJlbmRpbmcvaXJjLWxvZz9zaW5jZT1kYWlseSkgW0lzYWJlbGxlXSgvdHJlbmRpbmcvaXNhYmVsbGU/c2luY2U9ZGFpbHkpIFtJc2FiZWxsZSBST09UXSgvdHJlbmRpbmcvaXNhYmVsbGUtcm9vdD9zaW5jZT1kYWlseSkgW0lTUENdKC90cmVuZGluZy9pc3BjP3NpbmNlPWRhaWx5KSBbSl0oL3RyZW5kaW5nL2o/c2luY2U9ZGFpbHkpIFtKYWldKC90cmVuZGluZy9qYWk/c2luY2U9ZGFpbHkpIFtKYW5ldF0oL3RyZW5kaW5nL2phbmV0P3NpbmNlPWRhaWx5KSBbSkFSIE1hbmlmZXN0XSgvdHJlbmRpbmcvamFyLW1hbmlmZXN0P3NpbmNlPWRhaWx5KSBbSmFzbWluXSgvdHJlbmRpbmcvamFzbWluP3NpbmNlPWRhaWx5KSBbSmF2YV0oL3RyZW5kaW5nL2phdmE/c2luY2U9ZGFpbHkpIFtKYXZhIFByb3BlcnRpZXNdKC90cmVuZGluZy9qYXZhLXByb3BlcnRpZXM/c2luY2U9ZGFpbHkpIFtKYXZhIFNlcnZlciBQYWdlc10oL3RyZW5kaW5nL2phdmEtc2VydmVyLXBhZ2VzP3NpbmNlPWRhaWx5KSBbSmF2YSBUZW1wbGF0ZSBFbmdpbmVdKC90cmVuZGluZy9qYXZhLXRlbXBsYXRlLWVuZ2luZT9zaW5jZT1kYWlseSkgW0phdmFTY3JpcHRdKC90cmVuZGluZy9qYXZhc2NyaXB0P3NpbmNlPWRhaWx5KSBbSmF2YVNjcmlwdCtFUkJdKC90cmVuZGluZy9qYXZhc2NyaXB0K2VyYj9zaW5jZT1kYWlseSkgW0pDTF0oL3RyZW5kaW5nL2pjbD9zaW5jZT1kYWlseSkgW0plc3QgU25hcHNob3RdKC90cmVuZGluZy9qZXN0LXNuYXBzaG90P3NpbmNlPWRhaWx5KSBbSmV0QnJhaW5zIE1QU10oL3RyZW5kaW5nL2pldGJyYWlucy1tcHM/c2luY2U9ZGFpbHkpIFtKRmxleF0oL3RyZW5kaW5nL2pmbGV4P3NpbmNlPWRhaWx5KSBbSmluamFdKC90cmVuZGluZy9qaW5qYT9zaW5jZT1kYWlseSkgW0ppc29uXSgvdHJlbmRpbmcvamlzb24/c2luY2U9ZGFpbHkpIFtKaXNvbiBMZXhdKC90cmVuZGluZy9qaXNvbi1sZXg/c2luY2U9ZGFpbHkpIFtKb2xpZV0oL3RyZW5kaW5nL2pvbGllP3NpbmNlPWRhaWx5KSBbanFdKC90cmVuZGluZy9qcT9zaW5jZT1kYWlseSkgW0pTT05dKC90cmVuZGluZy9qc29uP3NpbmNlPWRhaWx5KSBbSlNPTiB3aXRoIENvbW1lbnRzXSgvdHJlbmRpbmcvanNvbi13aXRoLWNvbW1lbnRzP3NpbmNlPWRhaWx5KSBbSlNPTjVdKC90cmVuZGluZy9qc29uNT9zaW5jZT1kYWlseSkgW0pTT05pcV0oL3RyZW5kaW5nL2pzb25pcT9zaW5jZT1kYWlseSkgW0pTT05MRF0oL3RyZW5kaW5nL2pzb25sZD9zaW5jZT1kYWlseSkgW0pzb25uZXRdKC90cmVuZGluZy9qc29ubmV0P3NpbmNlPWRhaWx5KSBbSnVsaWFdKC90cmVuZGluZy9qdWxpYT9zaW5jZT1kYWlseSkgW0p1bGlhIFJFUExdKC90cmVuZGluZy9qdWxpYS1yZXBsP3NpbmNlPWRhaWx5KSBbSnVweXRlciBOb3RlYm9va10oL3RyZW5kaW5nL2p1cHl0ZXItbm90ZWJvb2s/c2luY2U9ZGFpbHkpIFtKdXN0XSgvdHJlbmRpbmcvanVzdD9zaW5jZT1kYWlseSkgW0thaXRhaSBTdHJ1Y3RdKC90cmVuZGluZy9rYWl0YWktc3RydWN0P3NpbmNlPWRhaWx5KSBbS2Frb3VuZVNjcmlwdF0oL3RyZW5kaW5nL2tha291bmVzY3JpcHQ/c2luY2U9ZGFpbHkpIFtLRExdKC90cmVuZGluZy9rZGw/c2luY2U9ZGFpbHkpIFtLZXJib1NjcmlwdF0oL3RyZW5kaW5nL2tlcmJvc2NyaXB0P3NpbmNlPWRhaWx5KSBbS2lDYWQgTGF5b3V0XSgvdHJlbmRpbmcva2ljYWQtbGF5b3V0P3NpbmNlPWRhaWx5KSBbS2lDYWQgTGVnYWN5IExheW91dF0oL3RyZW5kaW5nL2tpY2FkLWxlZ2FjeS1sYXlvdXQ/c2luY2U9ZGFpbHkpIFtLaUNhZCBTY2hlbWF0aWNdKC90cmVuZGluZy9raWNhZC1zY2hlbWF0aWM/c2luY2U9ZGFpbHkpIFtLaWNrc3RhcnRdKC90cmVuZGluZy9raWNrc3RhcnQ/c2luY2U9ZGFpbHkpIFtLaXRdKC90cmVuZGluZy9raXQ/c2luY2U9ZGFpbHkpIFtLb3RsaW5dKC90cmVuZGluZy9rb3RsaW4/c2luY2U9ZGFpbHkpIFtLUkxdKC90cmVuZGluZy9rcmw/c2luY2U9ZGFpbHkpIFtLdXN0b10oL3RyZW5kaW5nL2t1c3RvP3NpbmNlPWRhaWx5KSBba3ZsYW5nXSgvdHJlbmRpbmcva3ZsYW5nP3NpbmNlPWRhaWx5KSBbTGFiVklFV10oL3RyZW5kaW5nL2xhYnZpZXc/c2luY2U9ZGFpbHkpIFtMYXJrXSgvdHJlbmRpbmcvbGFyaz9zaW5jZT1kYWlseSkgW0xhc3NvXSgvdHJlbmRpbmcvbGFzc28/c2luY2U9ZGFpbHkpIFtMYXR0ZV0oL3RyZW5kaW5nL2xhdHRlP3NpbmNlPWRhaWx5KSBbTGVhbl0oL3RyZW5kaW5nL2xlYW4/c2luY2U9ZGFpbHkpIFtMZWFuIDRdKC90cmVuZGluZy9sZWFuLTQ/c2luY2U9ZGFpbHkpIFtMZXNzXSgvdHJlbmRpbmcvbGVzcz9zaW5jZT1kYWlseSkgW0xleF0oL3RyZW5kaW5nL2xleD9zaW5jZT1kYWlseSkgW0xGRV0oL3RyZW5kaW5nL2xmZT9zaW5jZT1kYWlseSkgW0xpZ29MQU5HXSgvdHJlbmRpbmcvbGlnb2xhbmc/c2luY2U9ZGFpbHkpIFtMaWx5UG9uZF0oL3RyZW5kaW5nL2xpbHlwb25kP3NpbmNlPWRhaWx5KSBbTGltYm9dKC90cmVuZGluZy9saW1ibz9zaW5jZT1kYWlseSkgW0xpbmVhciBQcm9ncmFtbWluZ10oL3RyZW5kaW5nL2xpbmVhci1wcm9ncmFtbWluZz9zaW5jZT1kYWlseSkgW0xpbmtlciBTY3JpcHRdKC90cmVuZGluZy9saW5rZXItc2NyaXB0P3NpbmNlPWRhaWx5KSBbTGludXggS2VybmVsIE1vZHVsZV0oL3RyZW5kaW5nL2xpbnV4LWtlcm5lbC1tb2R1bGU/c2luY2U9ZGFpbHkpIFtMaXF1aWRdKC90cmVuZGluZy9saXF1aWQ/c2luY2U9ZGFpbHkpIFtMaXRlcmF0ZSBBZ2RhXSgvdHJlbmRpbmcvbGl0ZXJhdGUtYWdkYT9zaW5jZT1kYWlseSkgW0xpdGVyYXRlIENvZmZlZVNjcmlwdF0oL3RyZW5kaW5nL2xpdGVyYXRlLWNvZmZlZXNjcmlwdD9zaW5jZT1kYWlseSkgW0xpdGVyYXRlIEhhc2tlbGxdKC90cmVuZGluZy9saXRlcmF0ZS1oYXNrZWxsP3NpbmNlPWRhaWx5KSBbTGl2ZUNvZGUgU2NyaXB0XSgvdHJlbmRpbmcvbGl2ZWNvZGUtc2NyaXB0P3NpbmNlPWRhaWx5KSBbTGl2ZVNjcmlwdF0oL3RyZW5kaW5nL2xpdmVzY3JpcHQ/c2luY2U9ZGFpbHkpIFtMTFZNXSgvdHJlbmRpbmcvbGx2bT9zaW5jZT1kYWlseSkgW0xvZ29zXSgvdHJlbmRpbmcvbG9nb3M/c2luY2U9ZGFpbHkpIFtMb2d0YWxrXSgvdHJlbmRpbmcvbG9ndGFsaz9zaW5jZT1kYWlseSkgW0xPTENPREVdKC90cmVuZGluZy9sb2xjb2RlP3NpbmNlPWRhaWx5KSBbTG9va01MXSgvdHJlbmRpbmcvbG9va21sP3NpbmNlPWRhaWx5KSBbTG9vbVNjcmlwdF0oL3RyZW5kaW5nL2xvb21zY3JpcHQ/c2luY2U9ZGFpbHkpIFtMU0xdKC90cmVuZGluZy9sc2w/c2luY2U9ZGFpbHkpIFtMVHNwaWNlIFN5bWJvbF0oL3RyZW5kaW5nL2x0c3BpY2Utc3ltYm9sP3NpbmNlPWRhaWx5KSBbTHVhXSgvdHJlbmRpbmcvbHVhP3NpbmNlPWRhaWx5KSBbTHVhdV0oL3RyZW5kaW5nL2x1YXU/c2luY2U9ZGFpbHkpIFtNXSgvdHJlbmRpbmcvbT9zaW5jZT1kYWlseSkgW000XSgvdHJlbmRpbmcvbTQ/c2luY2U9ZGFpbHkpIFtNNFN1Z2FyXSgvdHJlbmRpbmcvbTRzdWdhcj9zaW5jZT1kYWlseSkgW01hY2F1bGF5Ml0oL3RyZW5kaW5nL21hY2F1bGF5Mj9zaW5jZT1kYWlseSkgW01ha2VmaWxlXSgvdHJlbmRpbmcvbWFrZWZpbGU/c2luY2U9ZGFpbHkpIFtNYWtvXSgvdHJlbmRpbmcvbWFrbz9zaW5jZT1kYWlseSkgW01hcmtkb3duXSgvdHJlbmRpbmcvbWFya2Rvd24/c2luY2U9ZGFpbHkpIFtNYXJrb10oL3RyZW5kaW5nL21hcmtvP3NpbmNlPWRhaWx5KSBbTWFza10oL3RyZW5kaW5nL21hc2s/c2luY2U9ZGFpbHkpIFtNYXRoZW1hdGljYV0oL3RyZW5kaW5nL21hdGhlbWF0aWNhP3NpbmNlPWRhaWx5KSBbTUFUTEFCXSgvdHJlbmRpbmcvbWF0bGFiP3NpbmNlPWRhaWx5KSBbTWF2ZW4gUE9NXSgvdHJlbmRpbmcvbWF2ZW4tcG9tP3NpbmNlPWRhaWx5KSBbTWF4XSgvdHJlbmRpbmcvbWF4P3NpbmNlPWRhaWx5KSBbTUFYU2NyaXB0XSgvdHJlbmRpbmcvbWF4c2NyaXB0P3NpbmNlPWRhaWx5KSBbbWNmdW5jdGlvbl0oL3RyZW5kaW5nL21jZnVuY3Rpb24/c2luY2U9ZGFpbHkpIFttZHN2ZXhdKC90cmVuZGluZy9tZHN2ZXg/c2luY2U9ZGFpbHkpIFtNRFhdKC90cmVuZGluZy9tZHg/c2luY2U9ZGFpbHkpIFtXaWtpdGV4dF0oL3RyZW5kaW5nL3dpa2l0ZXh0P3NpbmNlPWRhaWx5KSBbTWVyY3VyeV0oL3RyZW5kaW5nL21lcmN1cnk/c2luY2U9ZGFpbHkpIFtNZXJtYWlkXSgvdHJlbmRpbmcvbWVybWFpZD9zaW5jZT1kYWlseSkgW01lc29uXSgvdHJlbmRpbmcvbWVzb24/c2luY2U9ZGFpbHkpIFtNZXRhbF0oL3RyZW5kaW5nL21ldGFsP3NpbmNlPWRhaWx5KSBbTWljcm9zb2Z0IERldmVsb3BlciBTdHVkaW8gUHJvamVjdF0oL3RyZW5kaW5nL21pY3Jvc29mdC1kZXZlbG9wZXItc3R1ZGlvLXByb2plY3Q/c2luY2U9ZGFpbHkpIFtNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbl0oL3RyZW5kaW5nL21pY3Jvc29mdC12aXN1YWwtc3R1ZGlvLXNvbHV0aW9uP3NpbmNlPWRhaWx5KSBbTWluaURdKC90cmVuZGluZy9taW5pZD9zaW5jZT1kYWlseSkgW01pbmlZQU1MXSgvdHJlbmRpbmcvbWluaXlhbWw/c2luY2U9ZGFpbHkpIFtNaW5pWmluY10oL3RyZW5kaW5nL21pbml6aW5jP3NpbmNlPWRhaWx5KSBbTWluaVppbmMgRGF0YV0oL3RyZW5kaW5nL21pbml6aW5jLWRhdGE/c2luY2U9ZGFpbHkpIFtNaW50XSgvdHJlbmRpbmcvbWludD9zaW5jZT1kYWlseSkgW01pcmFoXSgvdHJlbmRpbmcvbWlyYWg/c2luY2U9ZGFpbHkpIFttSVJDIFNjcmlwdF0oL3RyZW5kaW5nL21pcmMtc2NyaXB0P3NpbmNlPWRhaWx5KSBbTUxJUl0oL3RyZW5kaW5nL21saXI/c2luY2U9ZGFpbHkpIFtNb2RlbGljYV0oL3RyZW5kaW5nL21vZGVsaWNhP3NpbmNlPWRhaWx5KSBbTW9kdWxhLTJdKC90cmVuZGluZy9tb2R1bGEtMj9zaW5jZT1kYWlseSkgW01vZHVsYS0zXSgvdHJlbmRpbmcvbW9kdWxhLTM/c2luY2U9ZGFpbHkpIFtNb2R1bGUgTWFuYWdlbWVudCBTeXN0ZW1dKC90cmVuZGluZy9tb2R1bGUtbWFuYWdlbWVudC1zeXN0ZW0/c2luY2U9ZGFpbHkpIFtNb2pvXSgvdHJlbmRpbmcvbW9qbz9zaW5jZT1kYWlseSkgW01vbmtleV0oL3RyZW5kaW5nL21vbmtleT9zaW5jZT1kYWlseSkgW01vbmtleSBDXSgvdHJlbmRpbmcvbW9ua2V5LWM/c2luY2U9ZGFpbHkpIFtNb29jb2RlXSgvdHJlbmRpbmcvbW9vY29kZT9zaW5jZT1kYWlseSkgW01vb25CaXRdKC90cmVuZGluZy9tb29uYml0P3NpbmNlPWRhaWx5KSBbTW9vblNjcmlwdF0oL3RyZW5kaW5nL21vb25zY3JpcHQ/c2luY2U9ZGFpbHkpIFtNb3Rva29dKC90cmVuZGluZy9tb3Rva28/c2luY2U9ZGFpbHkpIFtNb3Rvcm9sYSA2OEsgQXNzZW1ibHldKC90cmVuZGluZy9tb3Rvcm9sYS02OGstYXNzZW1ibHk/c2luY2U9ZGFpbHkpIFtNb3ZlXSgvdHJlbmRpbmcvbW92ZT9zaW5jZT1kYWlseSkgW01RTDRdKC90cmVuZGluZy9tcWw0P3NpbmNlPWRhaWx5KSBbTVFMNV0oL3RyZW5kaW5nL21xbDU/c2luY2U9ZGFpbHkpIFtNVE1MXSgvdHJlbmRpbmcvbXRtbD9zaW5jZT1kYWlseSkgW01VRl0oL3RyZW5kaW5nL211Zj9zaW5jZT1kYWlseSkgW211cGFkXSgvdHJlbmRpbmcvbXVwYWQ/c2luY2U9ZGFpbHkpIFtNdXNlXSgvdHJlbmRpbmcvbXVzZT9zaW5jZT1kYWlseSkgW011c3RhY2hlXSgvdHJlbmRpbmcvbXVzdGFjaGU/c2luY2U9ZGFpbHkpIFtNeWdodHldKC90cmVuZGluZy9teWdodHk/c2luY2U9ZGFpbHkpIFtuYW5vcmNdKC90cmVuZGluZy9uYW5vcmM/c2luY2U9ZGFpbHkpIFtOYXNhbF0oL3RyZW5kaW5nL25hc2FsP3NpbmNlPWRhaWx5KSBbTkFTTF0oL3RyZW5kaW5nL25hc2w/c2luY2U9ZGFpbHkpIFtOQ0xdKC90cmVuZGluZy9uY2w/c2luY2U9ZGFpbHkpIFtOZWFybGV5XSgvdHJlbmRpbmcvbmVhcmxleT9zaW5jZT1kYWlseSkgW05lbWVybGVdKC90cmVuZGluZy9uZW1lcmxlP3NpbmNlPWRhaWx5KSBbTkVPTl0oL3RyZW5kaW5nL25lb24/c2luY2U9ZGFpbHkpIFtuZXNDXSgvdHJlbmRpbmcvbmVzYz9zaW5jZT1kYWlseSkgW05ldExpbnhdKC90cmVuZGluZy9uZXRsaW54P3NpbmNlPWRhaWx5KSBbTmV0TGlueCtFUkJdKC90cmVuZGluZy9uZXRsaW54K2VyYj9zaW5jZT1kYWlseSkgW05ldExvZ29dKC90cmVuZGluZy9uZXRsb2dvP3NpbmNlPWRhaWx5KSBbTmV3TGlzcF0oL3RyZW5kaW5nL25ld2xpc3A/c2luY2U9ZGFpbHkpIFtOZXh0Zmxvd10oL3RyZW5kaW5nL25leHRmbG93P3NpbmNlPWRhaWx5KSBbTmdpbnhdKC90cmVuZGluZy9uZ2lueD9zaW5jZT1kYWlseSkgW05pbV0oL3RyZW5kaW5nL25pbT9zaW5jZT1kYWlseSkgW05pbmphXSgvdHJlbmRpbmcvbmluamE/c2luY2U9ZGFpbHkpIFtOaXRdKC90cmVuZGluZy9uaXQ/c2luY2U9ZGFpbHkpIFtOaXhdKC90cmVuZGluZy9uaXg/c2luY2U9ZGFpbHkpIFtOTF0oL3RyZW5kaW5nL25sP3NpbmNlPWRhaWx5KSBbTk1PRExdKC90cmVuZGluZy9ubW9kbD9zaW5jZT1kYWlseSkgW05vaXJdKC90cmVuZGluZy9ub2lyP3NpbmNlPWRhaWx5KSBbTlBNIENvbmZpZ10oL3RyZW5kaW5nL25wbS1jb25maWc/c2luY2U9ZGFpbHkpIFtOU0lTXSgvdHJlbmRpbmcvbnNpcz9zaW5jZT1kYWlseSkgW051XSgvdHJlbmRpbmcvbnU/c2luY2U9ZGFpbHkpIFtOdW1QeV0oL3RyZW5kaW5nL251bXB5P3NpbmNlPWRhaWx5KSBbTnVuanVja3NdKC90cmVuZGluZy9udW5qdWNrcz9zaW5jZT1kYWlseSkgW051c2hlbGxdKC90cmVuZGluZy9udXNoZWxsP3NpbmNlPWRhaWx5KSBbTldTY3JpcHRdKC90cmVuZGluZy9ud3NjcmlwdD9zaW5jZT1kYWlseSkgW09BU3YyLWpzb25dKC90cmVuZGluZy9vYXN2Mi1qc29uP3NpbmNlPWRhaWx5KSBbT0FTdjIteWFtbF0oL3RyZW5kaW5nL29hc3YyLXlhbWw/c2luY2U9ZGFpbHkpIFtPQVN2My1qc29uXSgvdHJlbmRpbmcvb2FzdjMtanNvbj9zaW5jZT1kYWlseSkgW09BU3YzLXlhbWxdKC90cmVuZGluZy9vYXN2My15YW1sP3NpbmNlPWRhaWx5KSBbT2Jlcm9uXSgvdHJlbmRpbmcvb2Jlcm9uP3NpbmNlPWRhaWx5KSBbT2JqRHVtcF0oL3RyZW5kaW5nL29iamR1bXA/c2luY2U9ZGFpbHkpIFtPYmplY3QgRGF0YSBJbnN0YW5jZSBOb3RhdGlvbl0oL3RyZW5kaW5nL29iamVjdC1kYXRhLWluc3RhbmNlLW5vdGF0aW9uP3NpbmNlPWRhaWx5KSBbT2JqZWN0aXZlLUNdKC90cmVuZGluZy9vYmplY3RpdmUtYz9zaW5jZT1kYWlseSkgW09iamVjdGl2ZS1DKytdKC90cmVuZGluZy9vYmplY3RpdmUtYysrP3NpbmNlPWRhaWx5KSBbT2JqZWN0aXZlLUpdKC90cmVuZGluZy9vYmplY3RpdmUtaj9zaW5jZT1kYWlseSkgW09iamVjdFNjcmlwdF0oL3RyZW5kaW5nL29iamVjdHNjcmlwdD9zaW5jZT1kYWlseSkgW09DYW1sXSgvdHJlbmRpbmcvb2NhbWw/c2luY2U9ZGFpbHkpIFtPZGluXSgvdHJlbmRpbmcvb2Rpbj9zaW5jZT1kYWlseSkgW09tZ3JvZmxdKC90cmVuZGluZy9vbWdyb2ZsP3NpbmNlPWRhaWx5KSBbT01OZVQrKyBNU0ddKC90cmVuZGluZy9vbW5ldCsrLW1zZz9zaW5jZT1kYWlseSkgW09NTmVUKysgTkVEXSgvdHJlbmRpbmcvb21uZXQrKy1uZWQ/c2luY2U9ZGFpbHkpIFtPTU5lVCsrIE1TR10oL3RyZW5kaW5nL29tbmV0KystbXNnP3NpbmNlPWRhaWx5KSBbT01OZVQrKyBORURdKC90cmVuZGluZy9vbW5ldCsrLW5lZD9zaW5jZT1kYWlseSkgW29vY10oL3RyZW5kaW5nL29vYz9zaW5jZT1kYWlseSkgW09wYV0oL3RyZW5kaW5nL29wYT9zaW5jZT1kYWlseSkgW09wYWxdKC90cmVuZGluZy9vcGFsP3NpbmNlPWRhaWx5KSBbT3BlbiBQb2xpY3kgQWdlbnRdKC90cmVuZGluZy9vcGVuLXBvbGljeS1hZ2VudD9zaW5jZT1kYWlseSkgW09wZW5BUEkgU3BlY2lmaWNhdGlvbiB2Ml0oL3RyZW5kaW5nL29wZW5hcGktc3BlY2lmaWNhdGlvbi12Mj9zaW5jZT1kYWlseSkgW09wZW5BUEkgU3BlY2lmaWNhdGlvbiB2M10oL3RyZW5kaW5nL29wZW5hcGktc3BlY2lmaWNhdGlvbi12Mz9zaW5jZT1kYWlseSkgW09wZW5DTF0oL3RyZW5kaW5nL29wZW5jbD9zaW5jZT1kYWlseSkgW09wZW5FZGdlIEFCTF0oL3RyZW5kaW5nL29wZW5lZGdlLWFibD9zaW5jZT1kYWlseSkgW09wZW5RQVNNXSgvdHJlbmRpbmcvb3BlbnFhc20/c2luY2U9ZGFpbHkpIFtPcGVuUkMgcnVuc2NyaXB0XSgvdHJlbmRpbmcvb3BlbnJjLXJ1bnNjcmlwdD9zaW5jZT1kYWlseSkgW09wZW5TQ0FEXSgvdHJlbmRpbmcvb3BlbnNjYWQ/c2luY2U9ZGFpbHkpIFtPcGVuU3RlcCBQcm9wZXJ0eSBMaXN0XSgvdHJlbmRpbmcvb3BlbnN0ZXAtcHJvcGVydHktbGlzdD9zaW5jZT1kYWlseSkgW09wZW5UeXBlIEZlYXR1cmUgRmlsZV0oL3RyZW5kaW5nL29wZW50eXBlLWZlYXR1cmUtZmlsZT9zaW5jZT1kYWlseSkgW09wdGlvbiBMaXN0XSgvdHJlbmRpbmcvb3B0aW9uLWxpc3Q/c2luY2U9ZGFpbHkpIFtPcmddKC90cmVuZGluZy9vcmc/c2luY2U9ZGFpbHkpIFtPdmVycGFzc1FMXSgvdHJlbmRpbmcvb3ZlcnBhc3NxbD9zaW5jZT1kYWlseSkgW094XSgvdHJlbmRpbmcvb3g/c2luY2U9ZGFpbHkpIFtPeHlnZW5lXSgvdHJlbmRpbmcvb3h5Z2VuZT9zaW5jZT1kYWlseSkgW096XSgvdHJlbmRpbmcvb3o/c2luY2U9ZGFpbHkpIFtQNF0oL3RyZW5kaW5nL3A0P3NpbmNlPWRhaWx5KSBbUGFjdF0oL3RyZW5kaW5nL3BhY3Q/c2luY2U9ZGFpbHkpIFtQYW5dKC90cmVuZGluZy9wYW4/c2luY2U9ZGFpbHkpIFtQYXB5cnVzXSgvdHJlbmRpbmcvcGFweXJ1cz9zaW5jZT1kYWlseSkgW1BhcnJvdF0oL3RyZW5kaW5nL3BhcnJvdD9zaW5jZT1kYWlseSkgW1BhcnJvdCBBc3NlbWJseV0oL3RyZW5kaW5nL3BhcnJvdC1hc3NlbWJseT9zaW5jZT1kYWlseSkgW1BhcnJvdCBJbnRlcm5hbCBSZXByZXNlbnRhdGlvbl0oL3RyZW5kaW5nL3BhcnJvdC1pbnRlcm5hbC1yZXByZXNlbnRhdGlvbj9zaW5jZT1kYWlseSkgW1Bhc2NhbF0oL3RyZW5kaW5nL3Bhc2NhbD9zaW5jZT1kYWlseSkgW1Bhd25dKC90cmVuZGluZy9wYXduP3NpbmNlPWRhaWx5KSBbUERETF0oL3RyZW5kaW5nL3BkZGw/c2luY2U9ZGFpbHkpIFtQRUcuanNdKC90cmVuZGluZy9wZWcuanM/c2luY2U9ZGFpbHkpIFtQZXA4XSgvdHJlbmRpbmcvcGVwOD9zaW5jZT1kYWlseSkgW1BlcmxdKC90cmVuZGluZy9wZXJsP3NpbmNlPWRhaWx5KSBbUEhQXSgvdHJlbmRpbmcvcGhwP3NpbmNlPWRhaWx5KSBbUGljXSgvdHJlbmRpbmcvcGljP3NpbmNlPWRhaWx5KSBbUGlja2xlXSgvdHJlbmRpbmcvcGlja2xlP3NpbmNlPWRhaWx5KSBbUGljb0xpc3BdKC90cmVuZGluZy9waWNvbGlzcD9zaW5jZT1kYWlseSkgW1BpZ0xhdGluXSgvdHJlbmRpbmcvcGlnbGF0aW4/c2luY2U9ZGFpbHkpIFtQaWtlXSgvdHJlbmRpbmcvcGlrZT9zaW5jZT1kYWlseSkgW1BpcCBSZXF1aXJlbWVudHNdKC90cmVuZGluZy9waXAtcmVxdWlyZW1lbnRzP3NpbmNlPWRhaWx5KSBbUGtsXSgvdHJlbmRpbmcvcGtsP3NpbmNlPWRhaWx5KSBbUGxhbnRVTUxdKC90cmVuZGluZy9wbGFudHVtbD9zaW5jZT1kYWlseSkgW1BMcGdTUUxdKC90cmVuZGluZy9wbHBnc3FsP3NpbmNlPWRhaWx5KSBbUExTUUxdKC90cmVuZGluZy9wbHNxbD9zaW5jZT1kYWlseSkgW1BvZF0oL3RyZW5kaW5nL3BvZD9zaW5jZT1kYWlseSkgW1BvZCA2XSgvdHJlbmRpbmcvcG9kLTY/c2luY2U9ZGFpbHkpIFtQb2dvU2NyaXB0XSgvdHJlbmRpbmcvcG9nb3NjcmlwdD9zaW5jZT1kYWlseSkgW1BvbGFyXSgvdHJlbmRpbmcvcG9sYXI/c2luY2U9ZGFpbHkpIFtQb255XSgvdHJlbmRpbmcvcG9ueT9zaW5jZT1kYWlseSkgW1BvcnR1Z29sXSgvdHJlbmRpbmcvcG9ydHVnb2w/c2luY2U9ZGFpbHkpIFtQb3N0Q1NTXSgvdHJlbmRpbmcvcG9zdGNzcz9zaW5jZT1kYWlseSkgW1Bvc3RTY3JpcHRdKC90cmVuZGluZy9wb3N0c2NyaXB0P3NpbmNlPWRhaWx5KSBbUE9WLVJheSBTRExdKC90cmVuZGluZy9wb3YtcmF5LXNkbD9zaW5jZT1kYWlseSkgW1Bvd2VyQnVpbGRlcl0oL3RyZW5kaW5nL3Bvd2VyYnVpbGRlcj9zaW5jZT1kYWlseSkgW1Bvd2VyU2hlbGxdKC90cmVuZGluZy9wb3dlcnNoZWxsP3NpbmNlPWRhaWx5KSBbUHJhYXRdKC90cmVuZGluZy9wcmFhdD9zaW5jZT1kYWlseSkgW1ByaXNtYV0oL3RyZW5kaW5nL3ByaXNtYT9zaW5jZT1kYWlseSkgW1Byb2Nlc3NpbmddKC90cmVuZGluZy9wcm9jZXNzaW5nP3NpbmNlPWRhaWx5KSBbUHJvY2ZpbGVdKC90cmVuZGluZy9wcm9jZmlsZT9zaW5jZT1kYWlseSkgW1Byb2d1YXJkXSgvdHJlbmRpbmcvcHJvZ3VhcmQ/c2luY2U9ZGFpbHkpIFtQcm9sb2ddKC90cmVuZGluZy9wcm9sb2c/c2luY2U9ZGFpbHkpIFtQcm9tZWxhXSgvdHJlbmRpbmcvcHJvbWVsYT9zaW5jZT1kYWlseSkgW1Byb3BlbGxlciBTcGluXSgvdHJlbmRpbmcvcHJvcGVsbGVyLXNwaW4/c2luY2U9ZGFpbHkpIFtQcm90b2NvbCBCdWZmZXJdKC90cmVuZGluZy9wcm90b2NvbC1idWZmZXI/c2luY2U9ZGFpbHkpIFtQcm90b2NvbCBCdWZmZXIgVGV4dCBGb3JtYXRdKC90cmVuZGluZy9wcm90b2NvbC1idWZmZXItdGV4dC1mb3JtYXQ/c2luY2U9ZGFpbHkpIFtQdWJsaWMgS2V5XSgvdHJlbmRpbmcvcHVibGljLWtleT9zaW5jZT1kYWlseSkgW1B1Z10oL3RyZW5kaW5nL3B1Zz9zaW5jZT1kYWlseSkgW1B1cHBldF0oL3RyZW5kaW5nL3B1cHBldD9zaW5jZT1kYWlseSkgW1B1cmUgRGF0YV0oL3RyZW5kaW5nL3B1cmUtZGF0YT9zaW5jZT1kYWlseSkgW1B1cmVCYXNpY10oL3RyZW5kaW5nL3B1cmViYXNpYz9zaW5jZT1kYWlseSkgW1B1cmVTY3JpcHRdKC90cmVuZGluZy9wdXJlc2NyaXB0P3NpbmNlPWRhaWx5KSBbUHlyZXRdKC90cmVuZGluZy9weXJldD9zaW5jZT1kYWlseSkgW1B5dGhvbl0oL3RyZW5kaW5nL3B5dGhvbj9zaW5jZT1kYWlseSkgW1B5dGhvbiBjb25zb2xlXSgvdHJlbmRpbmcvcHl0aG9uLWNvbnNvbGU/c2luY2U9ZGFpbHkpIFtQeXRob24gdHJhY2ViYWNrXSgvdHJlbmRpbmcvcHl0aG9uLXRyYWNlYmFjaz9zaW5jZT1kYWlseSkgW3FdKC90cmVuZGluZy9xP3NpbmNlPWRhaWx5KSBbUSNdKC90cmVuZGluZy9xJTIzP3NpbmNlPWRhaWx5KSBbUU1ha2VdKC90cmVuZGluZy9xbWFrZT9zaW5jZT1kYWlseSkgW1FNTF0oL3RyZW5kaW5nL3FtbD9zaW5jZT1kYWlseSkgW1F0IFNjcmlwdF0oL3RyZW5kaW5nL3F0LXNjcmlwdD9zaW5jZT1kYWlseSkgW1F1YWtlXSgvdHJlbmRpbmcvcXVha2U/c2luY2U9ZGFpbHkpIFtRdWlja0JBU0lDXSgvdHJlbmRpbmcvcXVpY2tiYXNpYz9zaW5jZT1kYWlseSkgW1JdKC90cmVuZGluZy9yP3NpbmNlPWRhaWx5KSBbUmFja2V0XSgvdHJlbmRpbmcvcmFja2V0P3NpbmNlPWRhaWx5KSBbUmFnZWxdKC90cmVuZGluZy9yYWdlbD9zaW5jZT1kYWlseSkgW1Jha3VdKC90cmVuZGluZy9yYWt1P3NpbmNlPWRhaWx5KSBbUkFNTF0oL3RyZW5kaW5nL3JhbWw/c2luY2U9ZGFpbHkpIFtSYXNjYWxdKC90cmVuZGluZy9yYXNjYWw/c2luY2U9ZGFpbHkpIFtSYXcgdG9rZW4gZGF0YV0oL3RyZW5kaW5nL3Jhdy10b2tlbi1kYXRhP3NpbmNlPWRhaWx5KSBbUkJTXSgvdHJlbmRpbmcvcmJzP3NpbmNlPWRhaWx5KSBbUkRvY10oL3RyZW5kaW5nL3Jkb2M/c2luY2U9ZGFpbHkpIFtSZWFkbGluZSBDb25maWddKC90cmVuZGluZy9yZWFkbGluZS1jb25maWc/c2luY2U9ZGFpbHkpIFtSRUFMYmFzaWNdKC90cmVuZGluZy9yZWFsYmFzaWM/c2luY2U9ZGFpbHkpIFtSZWFzb25dKC90cmVuZGluZy9yZWFzb24/c2luY2U9ZGFpbHkpIFtSZWFzb25MSUdPXSgvdHJlbmRpbmcvcmVhc29ubGlnbz9zaW5jZT1kYWlseSkgW1JlYm9sXSgvdHJlbmRpbmcvcmVib2w/c2luY2U9ZGFpbHkpIFtSZWNvcmQgSmFyXSgvdHJlbmRpbmcvcmVjb3JkLWphcj9zaW5jZT1kYWlseSkgW1JlZF0oL3RyZW5kaW5nL3JlZD9zaW5jZT1kYWlseSkgW1JlZGNvZGVdKC90cmVuZGluZy9yZWRjb2RlP3NpbmNlPWRhaWx5KSBbUmVkaXJlY3QgUnVsZXNdKC90cmVuZGluZy9yZWRpcmVjdC1ydWxlcz9zaW5jZT1kYWlseSkgW1JlZ3VsYXIgRXhwcmVzc2lvbl0oL3RyZW5kaW5nL3JlZ3VsYXItZXhwcmVzc2lvbj9zaW5jZT1kYWlseSkgW1JlbidQeV0oL3RyZW5kaW5nL3JlbidweT9zaW5jZT1kYWlseSkgW1JlbmRlclNjcmlwdF0oL3RyZW5kaW5nL3JlbmRlcnNjcmlwdD9zaW5jZT1kYWlseSkgW1JlU2NyaXB0XSgvdHJlbmRpbmcvcmVzY3JpcHQ/c2luY2U9ZGFpbHkpIFtyZVN0cnVjdHVyZWRUZXh0XSgvdHJlbmRpbmcvcmVzdHJ1Y3R1cmVkdGV4dD9zaW5jZT1kYWlseSkgW1JFWFhdKC90cmVuZGluZy9yZXh4P3NpbmNlPWRhaWx5KSBbUmV6XSgvdHJlbmRpbmcvcmV6P3NpbmNlPWRhaWx5KSBbUmljaCBUZXh0IEZvcm1hdF0oL3RyZW5kaW5nL3JpY2gtdGV4dC1mb3JtYXQ/c2luY2U9ZGFpbHkpIFtSaW5nXSgvdHJlbmRpbmcvcmluZz9zaW5jZT1kYWlseSkgW1Jpb3RdKC90cmVuZGluZy9yaW90P3NpbmNlPWRhaWx5KSBbUk1hcmtkb3duXSgvdHJlbmRpbmcvcm1hcmtkb3duP3NpbmNlPWRhaWx5KSBbUm9ib3RGcmFtZXdvcmtdKC90cmVuZGluZy9yb2JvdGZyYW1ld29yaz9zaW5jZT1kYWlseSkgW3JvYm90cy50eHRdKC90cmVuZGluZy9yb2JvdHMudHh0P3NpbmNlPWRhaWx5KSBbUm9jXSgvdHJlbmRpbmcvcm9jP3NpbmNlPWRhaWx5KSBbUm9mZl0oL3RyZW5kaW5nL3JvZmY/c2luY2U9ZGFpbHkpIFtSb2ZmIE1hbnBhZ2VdKC90cmVuZGluZy9yb2ZmLW1hbnBhZ2U/c2luY2U9ZGFpbHkpIFtST05dKC90cmVuZGluZy9yb24/c2luY2U9ZGFpbHkpIFtSb3VnZV0oL3RyZW5kaW5nL3JvdWdlP3NpbmNlPWRhaWx5KSBbUm91dGVyT1MgU2NyaXB0XSgvdHJlbmRpbmcvcm91dGVyb3Mtc2NyaXB0P3NpbmNlPWRhaWx5KSBbUlBDXSgvdHJlbmRpbmcvcnBjP3NpbmNlPWRhaWx5KSBbUlBHTEVdKC90cmVuZGluZy9ycGdsZT9zaW5jZT1kYWlseSkgW1JQTSBTcGVjXSgvdHJlbmRpbmcvcnBtLXNwZWM/c2luY2U9ZGFpbHkpIFtSdWJ5XSgvdHJlbmRpbmcvcnVieT9zaW5jZT1kYWlseSkgW1JVTk9GRl0oL3RyZW5kaW5nL3J1bm9mZj9zaW5jZT1kYWlseSkgW1J1c3RdKC90cmVuZGluZy9ydXN0P3NpbmNlPWRhaWx5KSBbU2FnZV0oL3RyZW5kaW5nL3NhZ2U/c2luY2U9ZGFpbHkpIFtTYWx0U3RhY2tdKC90cmVuZGluZy9zYWx0c3RhY2s/c2luY2U9ZGFpbHkpIFtTQVNdKC90cmVuZGluZy9zYXM/c2luY2U9ZGFpbHkpIFtTYXNzXSgvdHJlbmRpbmcvc2Fzcz9zaW5jZT1kYWlseSkgW1NjYWxhXSgvdHJlbmRpbmcvc2NhbGE/c2luY2U9ZGFpbHkpIFtTY2FtbF0oL3RyZW5kaW5nL3NjYW1sP3NpbmNlPWRhaWx5KSBbU2NlbmljXSgvdHJlbmRpbmcvc2NlbmljP3NpbmNlPWRhaWx5KSBbU2NoZW1lXSgvdHJlbmRpbmcvc2NoZW1lP3NpbmNlPWRhaWx5KSBbU2NpbGFiXSgvdHJlbmRpbmcvc2NpbGFiP3NpbmNlPWRhaWx5KSBbU0NTU10oL3RyZW5kaW5nL3Njc3M/c2luY2U9ZGFpbHkpIFtzZWRdKC90cmVuZGluZy9zZWQ/c2luY2U9ZGFpbHkpIFtTZWxmXSgvdHJlbmRpbmcvc2VsZj9zaW5jZT1kYWlseSkgW1NFTGludXggUG9saWN5XSgvdHJlbmRpbmcvc2VsaW51eC1wb2xpY3k/c2luY2U9ZGFpbHkpIFtTaGFkZXJMYWJdKC90cmVuZGluZy9zaGFkZXJsYWI/c2luY2U9ZGFpbHkpIFtTaGVsbF0oL3RyZW5kaW5nL3NoZWxsP3NpbmNlPWRhaWx5KSBbU2hlbGxDaGVjayBDb25maWddKC90cmVuZGluZy9zaGVsbGNoZWNrLWNvbmZpZz9zaW5jZT1kYWlseSkgW1NoZWxsU2Vzc2lvbl0oL3RyZW5kaW5nL3NoZWxsc2Vzc2lvbj9zaW5jZT1kYWlseSkgW1NoZW5dKC90cmVuZGluZy9zaGVuP3NpbmNlPWRhaWx5KSBbU2lldmVdKC90cmVuZGluZy9zaWV2ZT9zaW5jZT1kYWlseSkgW1NpbXBsZSBGaWxlIFZlcmlmaWNhdGlvbl0oL3RyZW5kaW5nL3NpbXBsZS1maWxlLXZlcmlmaWNhdGlvbj9zaW5jZT1kYWlseSkgW1Npbmd1bGFyaXR5XSgvdHJlbmRpbmcvc2luZ3VsYXJpdHk/c2luY2U9ZGFpbHkpIFtTbGFuZ10oL3RyZW5kaW5nL3NsYW5nP3NpbmNlPWRhaWx5KSBbU2xhc2hdKC90cmVuZGluZy9zbGFzaD9zaW5jZT1kYWlseSkgW1NsaWNlXSgvdHJlbmRpbmcvc2xpY2U/c2luY2U9ZGFpbHkpIFtTbGltXSgvdHJlbmRpbmcvc2xpbT9zaW5jZT1kYWlseSkgW1NsaW50XSgvdHJlbmRpbmcvc2xpbnQ/c2luY2U9ZGFpbHkpIFtTbWFsaV0oL3RyZW5kaW5nL3NtYWxpP3NpbmNlPWRhaWx5KSBbU21hbGx0YWxrXSgvdHJlbmRpbmcvc21hbGx0YWxrP3NpbmNlPWRhaWx5KSBbU21hcnR5XSgvdHJlbmRpbmcvc21hcnR5P3NpbmNlPWRhaWx5KSBbU21pdGh5XSgvdHJlbmRpbmcvc21pdGh5P3NpbmNlPWRhaWx5KSBbU21QTF0oL3RyZW5kaW5nL3NtcGw/c2luY2U9ZGFpbHkpIFtTTVRdKC90cmVuZGluZy9zbXQ/c2luY2U9ZGFpbHkpIFtTbmFrZW1ha2VdKC90cmVuZGluZy9zbmFrZW1ha2U/c2luY2U9ZGFpbHkpIFtTb2xpZGl0eV0oL3RyZW5kaW5nL3NvbGlkaXR5P3NpbmNlPWRhaWx5KSBbU29vbmddKC90cmVuZGluZy9zb29uZz9zaW5jZT1kYWlseSkgW1NvdXJjZVBhd25dKC90cmVuZGluZy9zb3VyY2VwYXduP3NpbmNlPWRhaWx5KSBbU1BBUlFMXSgvdHJlbmRpbmcvc3BhcnFsP3NpbmNlPWRhaWx5KSBbU3BsaW5lIEZvbnQgRGF0YWJhc2VdKC90cmVuZGluZy9zcGxpbmUtZm9udC1kYXRhYmFzZT9zaW5jZT1kYWlseSkgW1NRRl0oL3RyZW5kaW5nL3NxZj9zaW5jZT1kYWlseSkgW1NRTF0oL3RyZW5kaW5nL3NxbD9zaW5jZT1kYWlseSkgW1NRTFBMXSgvdHJlbmRpbmcvc3FscGw/c2luY2U9ZGFpbHkpIFtTcXVpcnJlbF0oL3RyZW5kaW5nL3NxdWlycmVsP3NpbmNlPWRhaWx5KSBbU1JlY29kZSBUZW1wbGF0ZV0oL3RyZW5kaW5nL3NyZWNvZGUtdGVtcGxhdGU/c2luY2U9ZGFpbHkpIFtTU0ggQ29uZmlnXSgvdHJlbmRpbmcvc3NoLWNvbmZpZz9zaW5jZT1kYWlseSkgW1N0YW5dKC90cmVuZGluZy9zdGFuP3NpbmNlPWRhaWx5KSBbU3RhbmRhcmQgTUxdKC90cmVuZGluZy9zdGFuZGFyZC1tbD9zaW5jZT1kYWlseSkgW1NUQVJdKC90cmVuZGluZy9zdGFyP3NpbmNlPWRhaWx5KSBbU3RhcmxhcmtdKC90cmVuZGluZy9zdGFybGFyaz9zaW5jZT1kYWlseSkgW1N0YXRhXSgvdHJlbmRpbmcvc3RhdGE/c2luY2U9ZGFpbHkpIFtTVExdKC90cmVuZGluZy9zdGw/c2luY2U9ZGFpbHkpIFtTVE9OXSgvdHJlbmRpbmcvc3Rvbj9zaW5jZT1kYWlseSkgW1N0cmluZ1RlbXBsYXRlXSgvdHJlbmRpbmcvc3RyaW5ndGVtcGxhdGU/c2luY2U9ZGFpbHkpIFtTdHlsdXNdKC90cmVuZGluZy9zdHlsdXM/c2luY2U9ZGFpbHkpIFtTdWJSaXAgVGV4dF0oL3RyZW5kaW5nL3N1YnJpcC10ZXh0P3NpbmNlPWRhaWx5KSBbU3VnYXJTU10oL3RyZW5kaW5nL3N1Z2Fyc3M/c2luY2U9ZGFpbHkpIFtTdXBlckNvbGxpZGVyXSgvdHJlbmRpbmcvc3VwZXJjb2xsaWRlcj9zaW5jZT1kYWlseSkgW1N1cnZleCBkYXRhXSgvdHJlbmRpbmcvc3VydmV4LWRhdGE/c2luY2U9ZGFpbHkpIFtTdmVsdGVdKC90cmVuZGluZy9zdmVsdGU/c2luY2U9ZGFpbHkpIFtTVkddKC90cmVuZGluZy9zdmc/c2luY2U9ZGFpbHkpIFtTd2F5XSgvdHJlbmRpbmcvc3dheT9zaW5jZT1kYWlseSkgW1N3ZWF2ZV0oL3RyZW5kaW5nL3N3ZWF2ZT9zaW5jZT1kYWlseSkgW1N3aWZ0XSgvdHJlbmRpbmcvc3dpZnQ/c2luY2U9ZGFpbHkpIFtTV0lHXSgvdHJlbmRpbmcvc3dpZz9zaW5jZT1kYWlseSkgW1N5c3RlbVZlcmlsb2ddKC90cmVuZGluZy9zeXN0ZW12ZXJpbG9nP3NpbmNlPWRhaWx5KSBbVGFjdF0oL3RyZW5kaW5nL3RhY3Q/c2luY2U9ZGFpbHkpIFtUYWxvbl0oL3RyZW5kaW5nL3RhbG9uP3NpbmNlPWRhaWx5KSBbVGNsXSgvdHJlbmRpbmcvdGNsP3NpbmNlPWRhaWx5KSBbVGNzaF0oL3RyZW5kaW5nL3Rjc2g/c2luY2U9ZGFpbHkpIFtUZWFdKC90cmVuZGluZy90ZWE/c2luY2U9ZGFpbHkpIFt0ZW1wbF0oL3RyZW5kaW5nL3RlbXBsP3NpbmNlPWRhaWx5KSBbVGVycmFdKC90cmVuZGluZy90ZXJyYT9zaW5jZT1kYWlseSkgW1RlcnJhZm9ybSBUZW1wbGF0ZV0oL3RyZW5kaW5nL3RlcnJhZm9ybS10ZW1wbGF0ZT9zaW5jZT1kYWlseSkgW1RlWF0oL3RyZW5kaW5nL3RleD9zaW5jZT1kYWlseSkgW1RleGluZm9dKC90cmVuZGluZy90ZXhpbmZvP3NpbmNlPWRhaWx5KSBbVGV4dF0oL3RyZW5kaW5nL3RleHQ/c2luY2U9ZGFpbHkpIFtUZXh0R3JpZF0oL3RyZW5kaW5nL3RleHRncmlkP3NpbmNlPWRhaWx5KSBbVGV4dGlsZV0oL3RyZW5kaW5nL3RleHRpbGU/c2luY2U9ZGFpbHkpIFtUZXh0TWF0ZSBQcm9wZXJ0aWVzXSgvdHJlbmRpbmcvdGV4dG1hdGUtcHJvcGVydGllcz9zaW5jZT1kYWlseSkgW1RocmlmdF0oL3RyZW5kaW5nL3RocmlmdD9zaW5jZT1kYWlseSkgW1RJIFByb2dyYW1dKC90cmVuZGluZy90aS1wcm9ncmFtP3NpbmNlPWRhaWx5KSBbVEwtVmVyaWxvZ10oL3RyZW5kaW5nL3RsLXZlcmlsb2c/c2luY2U9ZGFpbHkpIFtUTEFdKC90cmVuZGluZy90bGE/c2luY2U9ZGFpbHkpIFtUb2l0XSgvdHJlbmRpbmcvdG9pdD9zaW5jZT1kYWlseSkgW1RPTUxdKC90cmVuZGluZy90b21sP3NpbmNlPWRhaWx5KSBbVHJlZS1zaXR0ZXIgUXVlcnldKC90cmVuZGluZy90cmVlLXNpdHRlci1xdWVyeT9zaW5jZT1kYWlseSkgW1RTUExJQiBkYXRhXSgvdHJlbmRpbmcvdHNwbGliLWRhdGE/c2luY2U9ZGFpbHkpIFtUU1FMXSgvdHJlbmRpbmcvdHNxbD9zaW5jZT1kYWlseSkgW1RTVl0oL3RyZW5kaW5nL3Rzdj9zaW5jZT1kYWlseSkgW1RTWF0oL3RyZW5kaW5nL3RzeD9zaW5jZT1kYWlseSkgW1R1cmluZ10oL3RyZW5kaW5nL3R1cmluZz9zaW5jZT1kYWlseSkgW1R1cnRsZV0oL3RyZW5kaW5nL3R1cnRsZT9zaW5jZT1kYWlseSkgW1R3aWddKC90cmVuZGluZy90d2lnP3NpbmNlPWRhaWx5KSBbVFhMXSgvdHJlbmRpbmcvdHhsP3NpbmNlPWRhaWx5KSBbVHlwZSBMYW5ndWFnZV0oL3RyZW5kaW5nL3R5cGUtbGFuZ3VhZ2U/c2luY2U9ZGFpbHkpIFtUeXBlU2NyaXB0XSgvdHJlbmRpbmcvdHlwZXNjcmlwdD9zaW5jZT1kYWlseSkgW1R5cGVTcGVjXSgvdHJlbmRpbmcvdHlwZXNwZWM/c2luY2U9ZGFpbHkpIFtUeXBzdF0oL3RyZW5kaW5nL3R5cHN0P3NpbmNlPWRhaWx5KSBbVW5pZmllZCBQYXJhbGxlbCBDXSgvdHJlbmRpbmcvdW5pZmllZC1wYXJhbGxlbC1jP3NpbmNlPWRhaWx5KSBbVW5pdHkzRCBBc3NldF0oL3RyZW5kaW5nL3VuaXR5M2QtYXNzZXQ/c2luY2U9ZGFpbHkpIFtVbml4IEFzc2VtYmx5XSgvdHJlbmRpbmcvdW5peC1hc3NlbWJseT9zaW5jZT1kYWlseSkgW1Vub10oL3RyZW5kaW5nL3Vubz9zaW5jZT1kYWlseSkgW1VucmVhbFNjcmlwdF0oL3RyZW5kaW5nL3VucmVhbHNjcmlwdD9zaW5jZT1kYWlseSkgW1VyV2ViXSgvdHJlbmRpbmcvdXJ3ZWI/c2luY2U9ZGFpbHkpIFtWXSgvdHJlbmRpbmcvdj9zaW5jZT1kYWlseSkgW1ZhbGFdKC90cmVuZGluZy92YWxhP3NpbmNlPWRhaWx5KSBbVmFsdmUgRGF0YSBGb3JtYXRdKC90cmVuZGluZy92YWx2ZS1kYXRhLWZvcm1hdD9zaW5jZT1kYWlseSkgW1ZCQV0oL3RyZW5kaW5nL3ZiYT9zaW5jZT1kYWlseSkgW1ZCU2NyaXB0XSgvdHJlbmRpbmcvdmJzY3JpcHQ/c2luY2U9ZGFpbHkpIFt2Q2FyZF0oL3RyZW5kaW5nL3ZjYXJkP3NpbmNlPWRhaWx5KSBbVkNMXSgvdHJlbmRpbmcvdmNsP3NpbmNlPWRhaWx5KSBbVmVsb2NpdHkgVGVtcGxhdGUgTGFuZ3VhZ2VdKC90cmVuZGluZy92ZWxvY2l0eS10ZW1wbGF0ZS1sYW5ndWFnZT9zaW5jZT1kYWlseSkgW1Zlcmlsb2ddKC90cmVuZGluZy92ZXJpbG9nP3NpbmNlPWRhaWx5KSBbVkhETF0oL3RyZW5kaW5nL3ZoZGw/c2luY2U9ZGFpbHkpIFtWaW0gSGVscCBGaWxlXSgvdHJlbmRpbmcvdmltLWhlbHAtZmlsZT9zaW5jZT1kYWlseSkgW1ZpbSBTY3JpcHRdKC90cmVuZGluZy92aW0tc2NyaXB0P3NpbmNlPWRhaWx5KSBbVmltIFNuaXBwZXRdKC90cmVuZGluZy92aW0tc25pcHBldD9zaW5jZT1kYWlseSkgW1Zpc3VhbCBCYXNpYyAuTkVUXSgvdHJlbmRpbmcvdmlzdWFsLWJhc2ljLS5uZXQ/c2luY2U9ZGFpbHkpIFtWaXN1YWwgQmFzaWMgLk5FVF0oL3RyZW5kaW5nL3Zpc3VhbC1iYXNpYy0ubmV0P3NpbmNlPWRhaWx5KSBbVmlzdWFsIEJhc2ljIDYuMF0oL3RyZW5kaW5nL3Zpc3VhbC1iYXNpYy02LjA/c2luY2U9ZGFpbHkpIFtWb2x0XSgvdHJlbmRpbmcvdm9sdD9zaW5jZT1kYWlseSkgW1Z1ZV0oL3RyZW5kaW5nL3Z1ZT9zaW5jZT1kYWlseSkgW1Z5cGVyXSgvdHJlbmRpbmcvdnlwZXI/c2luY2U9ZGFpbHkpIFtXYXZlZnJvbnQgTWF0ZXJpYWxdKC90cmVuZGluZy93YXZlZnJvbnQtbWF0ZXJpYWw/c2luY2U9ZGFpbHkpIFtXYXZlZnJvbnQgT2JqZWN0XSgvdHJlbmRpbmcvd2F2ZWZyb250LW9iamVjdD9zaW5jZT1kYWlseSkgW1dETF0oL3RyZW5kaW5nL3dkbD9zaW5jZT1kYWlseSkgW1dlYiBPbnRvbG9neSBMYW5ndWFnZV0oL3RyZW5kaW5nL3dlYi1vbnRvbG9neS1sYW5ndWFnZT9zaW5jZT1kYWlseSkgW1dlYkFzc2VtYmx5XSgvdHJlbmRpbmcvd2ViYXNzZW1ibHk/c2luY2U9ZGFpbHkpIFtXZWJBc3NlbWJseSBJbnRlcmZhY2UgVHlwZV0oL3RyZW5kaW5nL3dlYmFzc2VtYmx5LWludGVyZmFjZS10eXBlP3NpbmNlPWRhaWx5KSBbV2ViSURMXSgvdHJlbmRpbmcvd2ViaWRsP3NpbmNlPWRhaWx5KSBbV2ViVlRUXSgvdHJlbmRpbmcvd2VidnR0P3NpbmNlPWRhaWx5KSBbV2dldCBDb25maWddKC90cmVuZGluZy93Z2V0LWNvbmZpZz9zaW5jZT1kYWlseSkgW1dHU0xdKC90cmVuZGluZy93Z3NsP3NpbmNlPWRhaWx5KSBbV2hpbGV5XSgvdHJlbmRpbmcvd2hpbGV5P3NpbmNlPWRhaWx5KSBbV2lraXRleHRdKC90cmVuZGluZy93aWtpdGV4dD9zaW5jZT1kYWlseSkgW1dpbjMyIE1lc3NhZ2UgRmlsZV0oL3RyZW5kaW5nL3dpbjMyLW1lc3NhZ2UtZmlsZT9zaW5jZT1kYWlseSkgW1dpbmRvd3MgUmVnaXN0cnkgRW50cmllc10oL3RyZW5kaW5nL3dpbmRvd3MtcmVnaXN0cnktZW50cmllcz9zaW5jZT1kYWlseSkgW3dpc3BdKC90cmVuZGluZy93aXNwP3NpbmNlPWRhaWx5KSBbV2l0Y2hlciBTY3JpcHRdKC90cmVuZGluZy93aXRjaGVyLXNjcmlwdD9zaW5jZT1kYWlseSkgW1dvbGxva10oL3RyZW5kaW5nL3dvbGxvaz9zaW5jZT1kYWlseSkgW1dvcmxkIG9mIFdhcmNyYWZ0IEFkZG9uIERhdGFdKC90cmVuZGluZy93b3JsZC1vZi13YXJjcmFmdC1hZGRvbi1kYXRhP3NpbmNlPWRhaWx5KSBbV3Jlbl0oL3RyZW5kaW5nL3dyZW4/c2luY2U9ZGFpbHkpIFtYIEJpdE1hcF0oL3RyZW5kaW5nL3gtYml0bWFwP3NpbmNlPWRhaWx5KSBbWCBGb250IERpcmVjdG9yeSBJbmRleF0oL3RyZW5kaW5nL3gtZm9udC1kaXJlY3RvcnktaW5kZXg/c2luY2U9ZGFpbHkpIFtYIFBpeE1hcF0oL3RyZW5kaW5nL3gtcGl4bWFwP3NpbmNlPWRhaWx5KSBbWDEwXSgvdHJlbmRpbmcveDEwP3NpbmNlPWRhaWx5KSBbeEJhc2VdKC90cmVuZGluZy94YmFzZT9zaW5jZT1kYWlseSkgW1hDXSgvdHJlbmRpbmcveGM/c2luY2U9ZGFpbHkpIFtYQ29tcG9zZV0oL3RyZW5kaW5nL3hjb21wb3NlP3NpbmNlPWRhaWx5KSBbWG1ha2VdKC90cmVuZGluZy94bWFrZT9zaW5jZT1kYWlseSkgW1hNTF0oL3RyZW5kaW5nL3htbD9zaW5jZT1kYWlseSkgW1hNTCBQcm9wZXJ0eSBMaXN0XSgvdHJlbmRpbmcveG1sLXByb3BlcnR5LWxpc3Q/c2luY2U9ZGFpbHkpIFtYb2pvXSgvdHJlbmRpbmcveG9qbz9zaW5jZT1kYWlseSkgW1hvbnNoXSgvdHJlbmRpbmcveG9uc2g/c2luY2U9ZGFpbHkpIFtYUGFnZXNdKC90cmVuZGluZy94cGFnZXM/c2luY2U9ZGFpbHkpIFtYUHJvY10oL3RyZW5kaW5nL3hwcm9jP3NpbmNlPWRhaWx5KSBbWFF1ZXJ5XSgvdHJlbmRpbmcveHF1ZXJ5P3NpbmNlPWRhaWx5KSBbWFNdKC90cmVuZGluZy94cz9zaW5jZT1kYWlseSkgW1hTTFRdKC90cmVuZGluZy94c2x0P3NpbmNlPWRhaWx5KSBbWHRlbmRdKC90cmVuZGluZy94dGVuZD9zaW5jZT1kYWlseSkgW1lhY2NdKC90cmVuZGluZy95YWNjP3NpbmNlPWRhaWx5KSBbWUFNTF0oL3RyZW5kaW5nL3lhbWw/c2luY2U9ZGFpbHkpIFtZQU5HXSgvdHJlbmRpbmcveWFuZz9zaW5jZT1kYWlseSkgW1lBUkFdKC90cmVuZGluZy95YXJhP3NpbmNlPWRhaWx5KSBbWUFTbmlwcGV0XSgvdHJlbmRpbmcveWFzbmlwcGV0P3NpbmNlPWRhaWx5KSBbWXVsXSgvdHJlbmRpbmcveXVsP3NpbmNlPWRhaWx5KSBbWkFQXSgvdHJlbmRpbmcvemFwP3NpbmNlPWRhaWx5KSBbWmVla10oL3RyZW5kaW5nL3plZWs/c2luY2U9ZGFpbHkpIFtaZW5TY3JpcHRdKC90cmVuZGluZy96ZW5zY3JpcHQ/c2luY2U9ZGFpbHkpIFtaZXBoaXJdKC90cmVuZGluZy96ZXBoaXI/c2luY2U9ZGFpbHkpIFtaaWddKC90cmVuZGluZy96aWc/c2luY2U9ZGFpbHkpIFtaSUxdKC90cmVuZGluZy96aWw/c2luY2U9ZGFpbHkpIFtaaW1wbF0oL3RyZW5kaW5nL3ppbXBsP3NpbmNlPWRhaWx5KVxuXG5Mb2FkaW5nXG5cbkRhdGUgcmFuZ2U6IFRvZGF5XG5cbkFkanVzdCB0aW1lIHNwYW5cblxuW1RvZGF5XShodHRwczovL2dpdGh1Yi5jb20vdHJlbmRpbmc/c2luY2U9ZGFpbHkpIFtUaGlzIHdlZWtdKGh0dHBzOi8vZ2l0aHViLmNvbS90cmVuZGluZz9zaW5jZT13ZWVrbHkpIFtUaGlzIG1vbnRoXShodHRwczovL2dpdGh1Yi5jb20vdHJlbmRpbmc/c2luY2U9bW9udGhseSlcblxuW1Nwb25zb3JdKC9zcG9uc29ycy9Gb3Nvd2wpXG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRkZvc293bCUyRmFnZW50aWNTZWVrKVxuXG5bRm9zb3dsIC8gYWdlbnRpY1NlZWtdKC9Gb3Nvd2wvYWdlbnRpY1NlZWspXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkZ1bGx5IExvY2FsIE1hbnVzIEFJLiBObyBBUElzLCBObyAkMjAwIG1vbnRobHkgYmlsbHMuIEVuam95IGFuIGF1dG9ub21vdXMgYWdlbnQgdGhhdCB0aGlua3MsIGJyb3dzZXMgdGhlIHdlYiwgYW5kIGNvZGUgZm9yIHRoZSBzb2xlIGNvc3Qgb2YgZWxlY3RyaWNpdHkuXG5cblB5dGhvbiBbMTMsMTM1XSgvRm9zb3dsL2FnZW50aWNTZWVrL3N0YXJnYXplcnMpIFsxLDA4OF0oL0Zvc293bC9hZ2VudGljU2Vlay9mb3JrcykgQnVpbHQgYnkgWyFbQEZvc293bF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ5MTA1ODQ2P3M9NDAmdj00KV0oL0Zvc293bCkgWyFbQHN0ZXZlaDg3NThdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81NTk1ODA5OD9zPTQwJnY9NCldKC9zdGV2ZWg4NzU4KSBbIVtAa2xpbWVudGlqXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzI0NzY2OT9zPTQwJnY9NCldKC9rbGltZW50aWopIFshW0BnYW5lc2huaWtoaWxdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83Mzk3NjAzNz9zPTQwJnY9NCldKC9nYW5lc2huaWtoaWwpIFshW0BDb3BpbG90XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2luLzk0NjYwMD9zPTQwJnY9NCldKC9hcHBzL2NvcGlsb3QtcHVsbC1yZXF1ZXN0LXJldmlld2VyKSAgICAgIDEsODY0IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRldoaXNrZXlTb2NrZXRzJTJGQmFpbGV5cylcblxuW1doaXNrZXlTb2NrZXRzIC8gQmFpbGV5c10oL1doaXNrZXlTb2NrZXRzL0JhaWxleXMpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuTGlnaHR3ZWlnaHQgZnVsbC1mZWF0dXJlZCB0eXBlc2NyaXB0L2phdmFzY3JpcHQgV2hhdHNBcHAgV2ViIEFQSVxuXG5KYXZhU2NyaXB0IFs1LDYxMV0oL1doaXNrZXlTb2NrZXRzL0JhaWxleXMvc3RhcmdhemVycykgWzEsODgwXSgvV2hpc2tleVNvY2tldHMvQmFpbGV5cy9mb3JrcykgQnVpbHQgYnkgWyFbQGFkaXdhanNoaW5nXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODMyODg2ND9zPTQwJnY9NCldKC9hZGl3YWpzaGluZykgWyFbQHB1cnBzaGVsbF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUyNzIwNzUzP3M9NDAmdj00KV0oL3B1cnBzaGVsbCkgWyFbQGVkZ2FyZG1lc3NpYXNdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTMwOTk3P3M9NDAmdj00KV0oL2VkZ2FyZG1lc3NpYXMpIFshW0BjYW5vdmVdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNDgxNzg2Nj9zPTQwJnY9NCldKC9jYW5vdmUpIFshW0BnaXRodWItYWN0aW9uc10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS9pbi8xNTM2OD9zPTQwJnY9NCldKC9hcHBzL2dpdGh1Yi1hY3Rpb25zKSAgICAgIDM5IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRnZ1ZWpzJTJGY29yZSlcblxuW3Z1ZWpzIC8gY29yZV0oL3Z1ZWpzL2NvcmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxu8J+WliBWdWUuanMgaXMgYSBwcm9ncmVzc2l2ZSwgaW5jcmVtZW50YWxseS1hZG9wdGFibGUgSmF2YVNjcmlwdCBmcmFtZXdvcmsgZm9yIGJ1aWxkaW5nIFVJIG9uIHRoZSB3ZWIuXG5cblR5cGVTY3JpcHQgWzUwLDI2OF0oL3Z1ZWpzL2NvcmUvc3RhcmdhemVycykgWzgsNjY1XSgvdnVlanMvY29yZS9mb3JrcykgQnVpbHQgYnkgWyFbQHl5eDk5MDgwM10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ5OTU1MD9zPTQwJnY9NCldKC95eXg5OTA4MDMpIFshW0BkZXBlbmRhYm90LXByZXZpZXddKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vaW4vMjE0MT9zPTQwJnY9NCldKC9hcHBzL2RlcGVuZGFib3QtcHJldmlldykgWyFbQHJlbm92YXRlXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2luLzI3NDA/cz00MCZ2PTQpXSgvYXBwcy9yZW5vdmF0ZSkgWyFbQGVkaXNvbjExMDVdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNzA1MTk5P3M9NDAmdj00KV0oL2VkaXNvbjExMDUpIFshW0BIY3lTdW5ZYW5nXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQxNDY1NjA/cz00MCZ2PTQpXSgvSGN5U3VuWWFuZykgICAgICAzMiBzdGFycyB0b2RheVxuXG5bU3Rhcl0oL2xvZ2luP3JldHVybl90bz0lMkZhbnRocm9waWNzJTJGcHJvbXB0LWVuZy1pbnRlcmFjdGl2ZS10dXRvcmlhbClcblxuW2FudGhyb3BpY3MgLyBwcm9tcHQtZW5nLWludGVyYWN0aXZlLXR1dG9yaWFsXSgvYW50aHJvcGljcy9wcm9tcHQtZW5nLWludGVyYWN0aXZlLXR1dG9yaWFsKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5BbnRocm9waWMncyBJbnRlcmFjdGl2ZSBQcm9tcHQgRW5naW5lZXJpbmcgVHV0b3JpYWxcblxuSnVweXRlciBOb3RlYm9vayBbNCw3OTZdKC9hbnRocm9waWNzL3Byb21wdC1lbmctaW50ZXJhY3RpdmUtdHV0b3JpYWwvc3RhcmdhemVycykgWzUzMV0oL2FudGhyb3BpY3MvcHJvbXB0LWVuZy1pbnRlcmFjdGl2ZS10dXRvcmlhbC9mb3JrcykgQnVpbHQgYnkgWyFbQENsb3Vkc09mQ2hhbmdlXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjIxMjAyMD9zPTQwJnY9NCldKC9DbG91ZHNPZkNoYW5nZSkgWyFbQG1hZ2dpZS12b10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0MzQxMTU5MD9zPTQwJnY9NCldKC9tYWdnaWUtdm8pIFshW0BqYXdobnljb29rZV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzExODA4MDAyP3M9NDAmdj00KV0oL2phd2hueWNvb2tlKSAgICA3MzYgc3RhcnMgdG9kYXlcblxuW1N0YXJdKC9sb2dpbj9yZXR1cm5fdG89JTJGbGl2ZXN0b3JlanMlMkZsaXZlc3RvcmUpXG5cbltsaXZlc3RvcmVqcyAvIGxpdmVzdG9yZV0oL2xpdmVzdG9yZWpzL2xpdmVzdG9yZSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuTGl2ZVN0b3JlIGlzIGEgbmV4dC1nZW5lcmF0aW9uIHN0YXRlIG1hbmFnZW1lbnQgZnJhbWV3b3JrIGJhc2VkIG9uIHJlYWN0aXZlIFNRTGl0ZSBhbmQgYnVpbHQtaW4gc3luYyBlbmdpbmUuXG5cblR5cGVTY3JpcHQgWzEsNTQwXSgvbGl2ZXN0b3JlanMvbGl2ZXN0b3JlL3N0YXJnYXplcnMpIFsyOF0oL2xpdmVzdG9yZWpzL2xpdmVzdG9yZS9mb3JrcykgQnVpbHQgYnkgWyFbQHNjaGlja2xpbmddKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTY3NDk4P3M9NDAmdj00KV0oL3NjaGlja2xpbmcpIFshW0B0YW50YW1hbl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzEwMDkwMDM/cz00MCZ2PTQpXSgvdGFudGFtYW4pIFshW0BJR2Fzc21hbm5dKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80MjkxNzA3P3M9NDAmdj00KV0oL0lHYXNzbWFubikgWyFbQGFrb2VuaWddKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMjQ5MTA/cz00MCZ2PTQpXSgvYWtvZW5pZykgWyFbQGJldG9tb2VkYW5vXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDM2MzA0MTc/cz00MCZ2PTQpXSgvYmV0b21vZWRhbm8pICAgICAgMzAzIHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRm1pY3Jvc29mdCUyRmFpLWFnZW50cy1mb3ItYmVnaW5uZXJzKVxuXG5bbWljcm9zb2Z0IC8gYWktYWdlbnRzLWZvci1iZWdpbm5lcnNdKC9taWNyb3NvZnQvYWktYWdlbnRzLWZvci1iZWdpbm5lcnMpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbjExIExlc3NvbnMgdG8gR2V0IFN0YXJ0ZWQgQnVpbGRpbmcgQUkgQWdlbnRzXG5cbkp1cHl0ZXIgTm90ZWJvb2sgWzIyLDI5NV0oL21pY3Jvc29mdC9haS1hZ2VudHMtZm9yLWJlZ2lubmVycy9zdGFyZ2F6ZXJzKSBbNSw5NzhdKC9taWNyb3NvZnQvYWktYWdlbnRzLWZvci1iZWdpbm5lcnMvZm9ya3MpIEJ1aWx0IGJ5IFshW0Brb3JleXNwYWNlXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzQ2MjkwOT9zPTQwJnY9NCldKC9rb3JleXNwYWNlKSBbIVtAbGVlc3RvdHRdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNTExMzQxP3M9NDAmdj00KV0oL2xlZXN0b3R0KSBbIVtAU2hpdmFtR295YWwwM10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzkzMzgzMTY0P3M9NDAmdj00KV0oL1NoaXZhbUdveWFsMDMpIFshW0BhcHJpbHNwZWlnaHRdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNDE5NTg2Nj9zPTQwJnY9NCldKC9hcHJpbHNwZWlnaHQpIFshW0B3dHVsbG9jaF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE4ODYwNzk/cz00MCZ2PTQpXSgvd3R1bGxvY2gpICAgICAgMjE5IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRm9zc3UlMkZjb21wdXRlci1zY2llbmNlKVxuXG5bb3NzdSAvIGNvbXB1dGVyLXNjaWVuY2VdKC9vc3N1L2NvbXB1dGVyLXNjaWVuY2UpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbvCfjpMgUGF0aCB0byBhIGZyZWUgc2VsZi10YXVnaHQgZWR1Y2F0aW9uIGluIENvbXB1dGVyIFNjaWVuY2UhXG5cbkhUTUwgWzE4NCw0NjNdKC9vc3N1L2NvbXB1dGVyLXNjaWVuY2Uvc3RhcmdhemVycykgWzIzLDE0OF0oL29zc3UvY29tcHV0ZXItc2NpZW5jZS9mb3JrcykgQnVpbHQgYnkgWyFbQGVyaWNkb3VnbGFzXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDExOTkzMT9zPTQwJnY9NCldKC9lcmljZG91Z2xhcykgWyFbQHdhY2l1bWF3YW5qb2hpXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTg0MDc2NDM/cz00MCZ2PTQpXSgvd2FjaXVtYXdhbmpvaGkpIFshW0Bqb3NobWhhbnNvbl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU2OTUzMzA/cz00MCZ2PTQpXSgvam9zaG1oYW5zb24pIFshW0Bta2dob3NoXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTA0OTU4MDk/cz00MCZ2PTQpXSgvbWtnaG9zaCkgWyFbQHNwYW1lZ2cxXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDI1NTk5Nz9zPTQwJnY9NCldKC9zcGFtZWdnMSkgICAgICA0Mjcgc3RhcnMgdG9kYXlcblxuW1N0YXJdKC9sb2dpbj9yZXR1cm5fdG89JTJGbjhuLWlvJTJGbjhuKVxuXG5bbjhuLWlvIC8gbjhuXSgvbjhuLWlvL244bilcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5GYWlyLWNvZGUgd29ya2Zsb3cgYXV0b21hdGlvbiBwbGF0Zm9ybSB3aXRoIG5hdGl2ZSBBSSBjYXBhYmlsaXRpZXMuIENvbWJpbmUgdmlzdWFsIGJ1aWxkaW5nIHdpdGggY3VzdG9tIGNvZGUsIHNlbGYtaG9zdCBvciBjbG91ZCwgNDAwKyBpbnRlZ3JhdGlvbnMuXG5cblR5cGVTY3JpcHQgWzEwMSwxNDRdKC9uOG4taW8vbjhuL3N0YXJnYXplcnMpIFsyOCwwNjBdKC9uOG4taW8vbjhuL2ZvcmtzKSBCdWlsdCBieSBbIVtAamFub2Jlcl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzYyNDk1OTY/cz00MCZ2PTQpXSgvamFub2JlcikgWyFbQG5ldHJveV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE5NjE0ND9zPTQwJnY9NCldKC9uZXRyb3kpIFshW0Bpdm92XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDQ1ODg3Njc/cz00MCZ2PTQpXSgvaXZvdikgWyFbQFJpY2FyZG9FMTA1XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTY0OTY1NTM/cz00MCZ2PTQpXSgvUmljYXJkb0UxMDUpIFshW0BtaWNoYWVsLXJhZGVuY3ldKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84ODg5ODM2Nz9zPTQwJnY9NCldKC9taWNoYWVsLXJhZGVuY3kpICAgICAgNzQ5IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRnRyaW1zdHJheSUyRnRoZS1ib29rLW9mLXNlY3JldC1rbm93bGVkZ2UpXG5cblt0cmltc3RyYXkgLyB0aGUtYm9vay1vZi1zZWNyZXQta25vd2xlZGdlXSgvdHJpbXN0cmF5L3RoZS1ib29rLW9mLXNlY3JldC1rbm93bGVkZ2UpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5BIGNvbGxlY3Rpb24gb2YgaW5zcGlyaW5nIGxpc3RzLCBtYW51YWxzLCBjaGVhdHNoZWV0cywgYmxvZ3MsIGhhY2tzLCBvbmUtbGluZXJzLCBjbGkvd2ViIHRvb2xzIGFuZCBtb3JlLlxuXG5bMTcwLDk1OV0oL3RyaW1zdHJheS90aGUtYm9vay1vZi1zZWNyZXQta25vd2xlZGdlL3N0YXJnYXplcnMpIFsxMCw2ODRdKC90cmltc3RyYXkvdGhlLWJvb2stb2Ytc2VjcmV0LWtub3dsZWRnZS9mb3JrcykgQnVpbHQgYnkgWyFbQHRyaW1zdHJheV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzMxMTI3OTE3P3M9NDAmdj00KV0oL3RyaW1zdHJheSkgWyFbQGxib25hbm9taV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUzNjkwMTY/cz00MCZ2PTQpXSgvbGJvbmFub21pKSBbIVtAbG93ZXJ5YXVzdGluXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjAwMzg2MD9zPTQwJnY9NCldKC9sb3dlcnlhdXN0aW4pIFshW0BmYWJpZGljazIyXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvODE3NjgyMT9zPTQwJnY9NCldKC9mYWJpZGljazIyKSBbIVtAbmFlbHVoXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDc3ODYwP3M9NDAmdj00KV0oL25hZWx1aCkgICAgICAzMDkgc3RhcnMgdG9kYXlcblxuW1N0YXJdKC9sb2dpbj9yZXR1cm5fdG89JTJGQXBwRmxvd3ktSU8lMkZBcHBGbG93eSlcblxuW0FwcEZsb3d5LUlPIC8gQXBwRmxvd3ldKC9BcHBGbG93eS1JTy9BcHBGbG93eSlcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkJyaW5nIHByb2plY3RzLCB3aWtpcywgYW5kIHRlYW1zIHRvZ2V0aGVyIHdpdGggQUkuIEFwcEZsb3d5IGlzIHRoZSBBSSBjb2xsYWJvcmF0aXZlIHdvcmtzcGFjZSB3aGVyZSB5b3UgYWNoaWV2ZSBtb3JlIHdpdGhvdXQgbG9zaW5nIGNvbnRyb2wgb2YgeW91ciBkYXRhLiBUaGUgbGVhZGluZyBvcGVuIHNvdXJjZSBOb3Rpb24gYWx0ZXJuYXRpdmUuXG5cbkRhcnQgWzYzLDQ2MV0oL0FwcEZsb3d5LUlPL0FwcEZsb3d5L3N0YXJnYXplcnMpIFs0LDI5OV0oL0FwcEZsb3d5LUlPL0FwcEZsb3d5L2ZvcmtzKSBCdWlsdCBieSBbIVtAYXBwZmxvd3ldKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS84NjAwMTkyMD9zPTQwJnY9NCldKC9hcHBmbG93eSkgWyFbQEx1Y2FzWHUwXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE4NjMwODc/cz00MCZ2PTQpXSgvTHVjYXNYdTApIFshW0ByaWNoYXJkc2hpdWVdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS83MTMyMDM0NT9zPTQwJnY9NCldKC9yaWNoYXJkc2hpdWUpIFshW0BYYXppbl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQyOTI5MTYxP3M9NDAmdj00KV0oL1hhemluKSBbIVtAdmluY2VudGRjaGFuXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjM1MjgzMj9zPTQwJnY9NCldKC92aW5jZW50ZGNoYW4pICAgICAgNDggc3RhcnMgdG9kYXlcblxuW1N0YXJdKC9sb2dpbj9yZXR1cm5fdG89JTJGbGFuZ2Zsb3ctYWklMkZsYW5nZmxvdylcblxuW2xhbmdmbG93LWFpIC8gbGFuZ2Zsb3ddKC9sYW5nZmxvdy1haS9sYW5nZmxvdylcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkxhbmdmbG93IGlzIGEgcG93ZXJmdWwgdG9vbCBmb3IgYnVpbGRpbmcgYW5kIGRlcGxveWluZyBBSS1wb3dlcmVkIGFnZW50cyBhbmQgd29ya2Zsb3dzLlxuXG5QeXRob24gWzY2LDMwNl0oL2xhbmdmbG93LWFpL2xhbmdmbG93L3N0YXJnYXplcnMpIFs2LDYzOV0oL2xhbmdmbG93LWFpL2xhbmdmbG93L2ZvcmtzKSBCdWlsdCBieSBbIVtAb2dhYnJpZWxsdWl6XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjQ4MjkzOTc/cz00MCZ2PTQpXSgvb2dhYnJpZWxsdWl6KSBbIVtAYW5vdmF6emkxXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzA4MjQ5MTQ/cz00MCZ2PTQpXSgvYW5vdmF6emkxKSBbIVtAbHVjYXNlZHVvbGldKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS82MjMzNTYxNj9zPTQwJnY9NCldKC9sdWNhc2VkdW9saSkgWyFbQENyaXN0aGlhbnpsXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzI5Nzc1NTQ/cz00MCZ2PTQpXSgvQ3Jpc3RoaWFuemwpIFshW0BhdXRvZml4LWNpXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2luLzI0MzUxOT9zPTQwJnY9NCldKC9hcHBzL2F1dG9maXgtY2kpICAgICAgNzUzIHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRmZhY2Vib29rJTJGcmVhY3QtbmF0aXZlKVxuXG5bZmFjZWJvb2sgLyByZWFjdC1uYXRpdmVdKC9mYWNlYm9vay9yZWFjdC1uYXRpdmUpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkEgZnJhbWV3b3JrIGZvciBidWlsZGluZyBuYXRpdmUgYXBwbGljYXRpb25zIHVzaW5nIFJlYWN0XG5cbkMrKyBbMTIyLDQwNl0oL2ZhY2Vib29rL3JlYWN0LW5hdGl2ZS9zdGFyZ2F6ZXJzKSBbMjQsNjgxXSgvZmFjZWJvb2svcmVhY3QtbmF0aXZlL2ZvcmtzKSBCdWlsdCBieSBbIVtAcmVhY3Rqcy1ib3RdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMTY4OTEyMj9zPTQwJnY9NCldKC9yZWFjdGpzLWJvdCkgWyFbQG1kdmFjY2FdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MTUxMDM/cz00MCZ2PTQpXSgvbWR2YWNjYSkgWyFbQHNoZXJnaW5dKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8yMjAzMj9zPTQwJnY9NCldKC9zaGVyZ2luKSBbIVtAc2FtbXktU0NdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzMzNjEwP3M9NDAmdj00KV0oL3NhbW15LVNDKSBbIVtAamF2YWNoZV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU2NzY/cz00MCZ2PTQpXSgvamF2YWNoZSkgICAgICAxMTcgc3RhcnMgdG9kYXlcblxuW1N0YXJdKC9sb2dpbj9yZXR1cm5fdG89JTJGemhheXVqaWUlMkZjaGF0Z3B0LW9uLXdlY2hhdClcblxuW3poYXl1amllIC8gY2hhdGdwdC1vbi13ZWNoYXRdKC96aGF5dWppZS9jaGF0Z3B0LW9uLXdlY2hhdClcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbuWfuuS6juWkp+aooeWei+aQreW7uueahOiBiuWkqeacuuWZqOS6uu+8jOWQjOaXtuaUr+aMgSDlvq7kv6HlhazkvJflj7fjgIHkvIHkuJrlvq7kv6HlupTnlKjjgIHpo57kuabjgIHpkonpkokg562J5o6l5YWl77yM5Y+v6YCJ5oupR1BUNC4xL0dQVC00by9HUFQtbzEvIERlZXBTZWVrL0NsYXVkZS/mloflv4PkuIDoqIAv6K6v6aOe5pif54GrL+mAmuS5ieWNg+mXri8gR2VtaW5pL0dMTS00L0tpbWkvTGlua0FJ77yM6IO95aSE55CG5paH5pys44CB6K+t6Z+z5ZKM5Zu+54mH77yM6K6/6Zeu5pON5L2c57O757uf5ZKM5LqS6IGU572R77yM5pSv5oyB5Z+65LqO6Ieq5pyJ55+l6K+G5bqT6L+b6KGM5a6a5Yi25LyB5Lia5pm66IO95a6i5pyN44CCXG5cblB5dGhvbiBbMzcsMjY5XSgvemhheXVqaWUvY2hhdGdwdC1vbi13ZWNoYXQvc3RhcmdhemVycykgWzksMjUxXSgvemhheXVqaWUvY2hhdGdwdC1vbi13ZWNoYXQvZm9ya3MpIEJ1aWx0IGJ5IFshW0B6aGF5dWppZV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI2MTYxNzIzP3M9NDAmdj00KV0oL3poYXl1amllKSBbIVtAbGFudmVudF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI2NTE1NDY0P3M9NDAmdj00KV0oL2xhbnZlbnQpIFshW0A2dmlzaW9uXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzgwNTc0NTA/cz00MCZ2PTQpXSgvNnZpc2lvbikgWyFbQEpTMDAwMDBdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS85Nzc4ODgwP3M9NDAmdj00KV0oL0pTMDAwMDApIFshW0BTYWJvdGV1cjddKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xMzg4MDU0ODU/cz00MCZ2PTQpXSgvU2Fib3RldXI3KSAgICAgIDE2OSBzdGFycyB0b2RheVxuXG5bU3Rhcl0oL2xvZ2luP3JldHVybl90bz0lMkZhbmd1bGFyJTJGYW5ndWxhcilcblxuW2FuZ3VsYXIgLyBhbmd1bGFyXSgvYW5ndWxhci9hbmd1bGFyKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5EZWxpdmVyIHdlYiBhcHBzIHdpdGggY29uZmlkZW5jZSDwn5qAXG5cblR5cGVTY3JpcHQgWzk3LDkzM10oL2FuZ3VsYXIvYW5ndWxhci9zdGFyZ2F6ZXJzKSBbMjYsMjQ0XSgvYW5ndWxhci9hbmd1bGFyL2ZvcmtzKSBCdWlsdCBieSBbIVtAZ2thbHBha10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91Lzg2MDQyMDU/cz00MCZ2PTQpXSgvZ2thbHBhaykgWyFbQHBldGViYWNvbmRhcndpbl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1NjU1P3M9NDAmdj00KV0oL3BldGViYWNvbmRhcndpbikgWyFbQGRldnZlcnNpb25dKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80OTg3MDE1P3M9NDAmdj00KV0oL2RldnZlcnNpb24pIFshW0BjcmlzYmV0b10oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ0NTA1MjI/cz00MCZ2PTQpXSgvY3Jpc2JldG8pIFshW0BhdHNjb3R0XShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNDc5NzEzP3M9NDAmdj00KV0oL2F0c2NvdHQpICAgICAgMzcgc3RhcnMgdG9kYXlcblxuW1N0YXJdKC9sb2dpbj9yZXR1cm5fdG89JTJGS3dhaVZHSSUyRkxpdmVQb3J0cmFpdClcblxuW0t3YWlWR0kgLyBMaXZlUG9ydHJhaXRdKC9Ld2FpVkdJL0xpdmVQb3J0cmFpdClcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkJyaW5nIHBvcnRyYWl0cyB0byBsaWZlIVxuXG5QeXRob24gWzE1LDM5Nl0oL0t3YWlWR0kvTGl2ZVBvcnRyYWl0L3N0YXJnYXplcnMpIFsxLDYzMF0oL0t3YWlWR0kvTGl2ZVBvcnRyYWl0L2ZvcmtzKSBCdWlsdCBieSBbIVtAY2xlYXJkdXNrXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNzU1NTI1MT9zPTQwJnY9NCldKC9jbGVhcmR1c2spIFshW0B6enp3ZWFrbWFuXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjIxMTM3MDg/cz00MCZ2PTQpXSgvenp6d2Vha21hbikgWyFbQE15c3RlcnkwOTldKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNjQzNDcwMTI/cz00MCZ2PTQpXSgvTXlzdGVyeTA5OSkgWyFbQGplZXRodV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzczMzMyP3M9NDAmdj00KV0oL2plZXRodSkgWyFbQHYzdWNuXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTI4ODAzOD9zPTQwJnY9NCldKC92M3VjbikgICAgICAxNjkgc3RhcnMgdG9kYXlcblxuW1N0YXJdKC9sb2dpbj9yZXR1cm5fdG89JTJGNzglMkZ4aWFvemhpLWVzcDMyKVxuXG5bNzggLyB4aWFvemhpLWVzcDMyXSgvNzgveGlhb3poaS1lc3AzMilcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5CdWlsZCB5b3VyIG93biBBSSBmcmllbmRcblxuQysrIFsxMyw5OTJdKC83OC94aWFvemhpLWVzcDMyL3N0YXJnYXplcnMpIFsyLDY5M10oLzc4L3hpYW96aGktZXNwMzIvZm9ya3MpIEJ1aWx0IGJ5IFshW0A3OF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzQ0ODgxMzM/cz00MCZ2PTQpXSgvNzgpIFshW0BLZXZpbmNvb29vb2xdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zMzYxMTY3OT9zPTQwJnY9NCldKC9LZXZpbmNvb29vb2wpIFshW0BNYWtlck0wXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTE3OTYxMTAyP3M9NDAmdj00KV0oL01ha2VyTTApIFshW0BIb25lc3RRaWFvXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvNjk2NzA4P3M9NDAmdj00KV0oL0hvbmVzdFFpYW8pIFshW0Bvb3h4VV0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzU2MDg1NDc/cz00MCZ2PTQpXSgvb294eFUpICAgICAgMTc4IHN0YXJzIHRvZGF5XG5cbltTcG9uc29yXSgvc3BvbnNvcnMvYW50LWRlc2lnbilcblxuW1N0YXJdKC9sb2dpbj9yZXR1cm5fdG89JTJGYW50LWRlc2lnbiUyRmFudC1kZXNpZ24pXG5cblthbnQtZGVzaWduIC8gYW50LWRlc2lnbl0oL2FudC1kZXNpZ24vYW50LWRlc2lnbilcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuQW4gZW50ZXJwcmlzZS1jbGFzcyBVSSBkZXNpZ24gbGFuZ3VhZ2UgYW5kIFJlYWN0IFVJIGxpYnJhcnlcblxuVHlwZVNjcmlwdCBbOTQsODc3XSgvYW50LWRlc2lnbi9hbnQtZGVzaWduL3N0YXJnYXplcnMpIFs1Miw0OTFdKC9hbnQtZGVzaWduL2FudC1kZXNpZ24vZm9ya3MpIEJ1aWx0IGJ5IFshW0BhZmMxNjNdKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS81MDc2MTU/cz00MCZ2PTQpXSgvYWZjMTYzKSBbIVtAem9tYmllSl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzUzNzg4OTE/cz00MCZ2PTQpXSgvem9tYmllSikgWyFbQGxpLWppYS1uYW5dKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS80OTIxNzQxOD9zPTQwJnY9NCldKC9saS1qaWEtbmFuKSBbIVtATWFkQ2NjXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjc3MjI0ODY/cz00MCZ2PTQpXSgvTWFkQ2NjKSBbIVtAYmVuanljdWldKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNTgwNjA3P3M9NDAmdj00KV0oL2Jlbmp5Y3VpKSAgICAgIDQ2IHN0YXJzIHRvZGF5XG5cbltTdGFyXSgvbG9naW4/cmV0dXJuX3RvPSUyRmZhc3RhcGklMkZmYXN0YXBpKVxuXG5bZmFzdGFwaSAvIGZhc3RhcGldKC9mYXN0YXBpL2Zhc3RhcGkpXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbkZhc3RBUEkgZnJhbWV3b3JrLCBoaWdoIHBlcmZvcm1hbmNlLCBlYXN5IHRvIGxlYXJuLCBmYXN0IHRvIGNvZGUsIHJlYWR5IGZvciBwcm9kdWN0aW9uXG5cblB5dGhvbiBbODUsNDQwXSgvZmFzdGFwaS9mYXN0YXBpL3N0YXJnYXplcnMpIFs3LDM4Nl0oL2Zhc3RhcGkvZmFzdGFwaS9mb3JrcykgQnVpbHQgYnkgWyFbQHRpYW5nb2xvXShodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTMyNjExMj9zPTQwJnY9NCldKC90aWFuZ29sbykgWyFbQHByZS1jb21taXQtY2ldKGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vaW4vNjg2NzI/cz00MCZ2PTQpXSgvYXBwcy9wcmUtY29tbWl0LWNpKSBbIVtAZGVwZW5kYWJvdF0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS9pbi8yOTExMD9zPTQwJnY9NCldKC9hcHBzL2RlcGVuZGFib3QpIFshW0BhbGVqc2Rldl0oaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzkwMDc2OTQ3P3M9NDAmdj00KV0oL2FsZWpzZGV2KSAgICAgOTYgc3RhcnMgdG9kYXlcblxuRm9vdGVyXG4tLS0tLS1cblxuW10oaHR0cHM6Ly9naXRodWIuY29tKcKpIDIwMjUgR2l0SHViLMKgSW5jLlxuXG4jIyMgRm9vdGVyIG5hdmlnYXRpb25cblxuKiAgIFtUZXJtc10oaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vc2l0ZS1wb2xpY3kvZ2l0aHViLXRlcm1zL2dpdGh1Yi10ZXJtcy1vZi1zZXJ2aWNlKVxuKiAgIFtQcml2YWN5XShodHRwczovL2RvY3MuZ2l0aHViLmNvbS9zaXRlLXBvbGljeS9wcml2YWN5LXBvbGljaWVzL2dpdGh1Yi1wcml2YWN5LXN0YXRlbWVudClcbiogICBbU2VjdXJpdHldKGh0dHBzOi8vZ2l0aHViLmNvbS9zZWN1cml0eSlcbiogICBbU3RhdHVzXShodHRwczovL3d3dy5naXRodWJzdGF0dXMuY29tLylcbiogICBbRG9jc10oaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vKVxuKiAgIFtDb250YWN0XShodHRwczovL3N1cHBvcnQuZ2l0aHViLmNvbT90YWdzPWRvdGNvbS1mb290ZXIpXG4qICAgTWFuYWdlIGNvb2tpZXNcbiogICBEbyBub3Qgc2hhcmUgbXkgcGVyc29uYWwgaW5mb3JtYXRpb25cblxuWW91IGNhbuKAmXQgcGVyZm9ybSB0aGF0IGFjdGlvbiBhdCB0aGlzIHRpbWUuIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fX0sImRyYWZ0RXhjaGFuZ2UiOnsicmVxdWVzdF9tZXNzYWdlIjoiIiwicmljaF90ZXh0X2pzb25fcmVwciI6eyJ0eXBlIjoiZG9jIiwiY29udGVudCI6W3sidHlwZSI6InBhcmFncmFwaCJ9XX0sInN0YXR1cyI6ImRyYWZ0In0sImRyYWZ0QWN0aXZlQ29udGV4dElkcyI6WyJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbnN0YW50cy50czpMMi0xNyIsIkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29uc3RhbnRzLnRzIiwiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94ZmFsc2VmYWxzZSIsIkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluZmFsc2VmYWxzZSIsInVzZXJHdWlkZWxpbmVzIiwiYWdlbnRNZW1vcmllcyJdLCJyZXF1ZXN0SWRzIjpbXSwiaXNQaW5uZWQiOmZhbHNlLCJpc1NoYXJlYWJsZSI6dHJ1ZSwiZXh0cmFEYXRhIjp7ImlzQWdlbnRDb252ZXJzYXRpb24iOnRydWUsImhhc0RpcnR5RWRpdHMiOmZhbHNlfSwicGVyc29uYVR5cGUiOjAsInJvb3RUYXNrVXVpZCI6IjdlMmZhMTc4LTljNWMtNDNkZi1hZjYwLWRjMWU1NjY3ZTI2ZCJ9LCI0ZDc2Y2U0Ni1hNjI2LTQzZjItYmI5NS05YzViMDc4MTQ4MTIiOnsiaWQiOiI0ZDc2Y2U0Ni1hNjI2LTQzZjItYmI5NS05YzViMDc4MTQ4MTIiLCJjcmVhdGVkQXRJc28iOiIyMDI1LTA1LTMwVDAzOjU3OjQyLjM1OFoiLCJsYXN0SW50ZXJhY3RlZEF0SXNvIjoiMjAyNS0wNS0zMFQwNDowMDowOC45MDFaIiwiY2hhdEhpc3RvcnkiOlt7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiZmVkOTRlZTYtZTdlYy00YzM0LTliNjQtMThjYTQ1NjE1N2RmIiwicmVxdWVzdF9tZXNzYWdlIjoicmVmYWN0b3IgdGhpcyIsInJpY2hfdGV4dF9qc29uX3JlcHIiOnsidHlwZSI6ImRvYyIsImNvbnRlbnQiOlt7InR5cGUiOiJwYXJhZ3JhcGgiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJyZWZhY3RvciB0aGlzIn1dfV19LCJtZW50aW9uZWRfaXRlbXMiOltdLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFSeDFwUVhMVjNtZ3E5WThHc29OM0FXIiwidG9vbF9uYW1lIjoidmlldyIsImlucHV0X2pzb24iOiJ7XCJwYXRoXCI6IFwic3JjL2NvbnN0YW50cy50c1wiLCBcInR5cGVcIjogXCJmaWxlXCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiSSdsbCBoZWxwIHlvdSByZWZhY3RvciB0aGUgc2VsZWN0ZWQgY29kZSBmcm9tIGBzcmMvY29uc3RhbnRzLnRzYC4gTGV0IG1lIGZpcnN0IGV4YW1pbmUgdGhlIGN1cnJlbnQgY29kZSBhbmQgdW5kZXJzdGFuZCB0aGUgY29udGV4dCBiZXR0ZXIuXG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJ0ZXh0X25vZGUiOnsiY29udGVudCI6InJlZmFjdG9yIHRoaXMifX0seyJpZCI6MSwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1Nzo0NS44OTlaIiwicmVzcG9uc2VfdGV4dCI6IkknbGwgaGVscCB5b3UgcmVmYWN0b3IgdGhlIHNlbGVjdGVkIGNvZGUgZnJvbSBgc3JjL2NvbnN0YW50cy50c2AuIExldCBtZSBmaXJzdCBleGFtaW5lIHRoZSBjdXJyZW50IGNvZGUgYW5kIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgYmV0dGVyLlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjVkYTkwODI5LWM1ZjYtNGEyNi05OGY1LTY1Mjg1NTliMTA2YyIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUxvN3RuVE5TVGE5NVNCd05VbVNWdHAiLCJ0b29sX25hbWUiOiJjb2RlYmFzZS1yZXRyaWV2YWwiLCJpbnB1dF9qc29uIjoie1wiaW5mb3JtYXRpb25fcmVxdWVzdFwiOiBcIkJ1YmJsZVByb3BzIHR5cGUgZGVmaW5pdGlvbiwgaW5jbHVkaW5nIGFsbCBwcm9wZXJ0aWVzIGFuZCB0aGVpciB0eXBlcywgZnJvbSB0aGUgYnViYmxlIGZlYXR1cmVcIn0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJOb3cgbGV0IG1lIGV4YW1pbmUgdGhlIGBCdWJibGVQcm9wc2AgdHlwZSB0byB1bmRlcnN0YW5kIHRoZSBzdHJ1Y3R1cmUgYmV0dGVyOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSdzIHRoZSByZXN1bHQgb2YgcnVubmluZyBgY2F0IC1uYCBvbiBzcmMvY29uc3RhbnRzLnRzOlxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUnO1xuICAgICAyXHRcbiAgICAgM1x0ZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gICAgIDRcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgIDVcdCAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICAgICA2XHQgIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gICAgIDdcdCAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcbiAgICAgOVx0ICB0aGVtZTogdW5kZWZpbmVkLFxuICAgIDEwXHQgIG9ic2VydmVyc0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDExXHQgIHJvb21JZHM6IHt9LFxuICAgIDEyXHQgIGlzVXNlRkFROiB1bmRlZmluZWQsXG4gICAgMTNcdCAgZmlsZVBhdGg6ICcnLFxuICAgIDE0XHQgIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxuICAgIDE1XHQgIGV4dGVybmFsRGF0YTogJycsXG4gICAgMTZcdCAgY2FsbEJhY2tJY29uOiAnJyxcbiAgICAxN1x0ICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG4gICAgMThcdH07XG4gICAgMTlcdFxuVG90YWwgbGluZXMgaW4gZmlsZTogMTlcbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVJ4MXBRWExWM21ncTlZOEdzb04zQVcifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1Nzo0OC40NDdaIiwicmVzcG9uc2VfdGV4dCI6Ik5vdyBsZXQgbWUgZXhhbWluZSB0aGUgYEJ1YmJsZVByb3BzYCB0eXBlIHRvIHVuZGVyc3RhbmQgdGhlIHN0cnVjdHVyZSBiZXR0ZXI6XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiMzdlNzI3YzAtZGQxNi00ZTA2LWExMGYtZmRkNzY0NDhkZDVhIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxNXFUYUdheTNiTFZNMXVzdTRWTUFHeCIsInRvb2xfbmFtZSI6InZpZXciLCJpbnB1dF9qc29uIjoie1wicGF0aFwiOiBcInNyYy9jb21wb25lbnRzL0JvdC50c3hcIiwgXCJ0eXBlXCI6IFwiZmlsZVwiLCBcInZpZXdfcmFuZ2VcIjogWzEzMCwgMTgwXX0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJOb3cgbGV0IG1lIGdldCB0aGUgY29tcGxldGUgQm90UHJvcHMgZGVmaW5pdGlvbiB0byB1bmRlcnN0YW5kIGFsbCB0aGUgcHJvcGVydGllczpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IlRoZSBmb2xsb3dpbmcgY29kZSBzZWN0aW9ucyB3ZXJlIHJldHJpZXZlZDpcblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvdHlwZXMudHNcbiAgICAgMVx0ZXhwb3J0IHR5cGUgQnViYmxlUGFyYW1zID0ge1xuICAgICAyXHQgIHRoZW1lPzogQnViYmxlVGhlbWU7XG4gICAgIDNcdH07XG4gICAgIDRcdFxuICAgICA1XHRleHBvcnQgdHlwZSBCdWJibGVUaGVtZSA9IHtcbiAgICAgNlx0ICBjaGF0V2luZG93PzogQ2hhdFdpbmRvd1RoZW1lO1xuICAgICA3XHQgIGJ1dHRvbj86IEJ1dHRvblRoZW1lO1xuICAgICA4XHQgIHRvb2x0aXA/OiBUb29sVGlwVGhlbWU7XG4gICAgIDlcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgIDEwXHQgIGN1c3RvbUNTUz86IHN0cmluZztcbiAgICAxMVx0fTtcbiAgICAxMlx0XG4gICAgMTNcdGV4cG9ydCB0eXBlIFRleHRJbnB1dFRoZW1lID0ge1xuICAgIDE0XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTZcdCAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgMTdcdCAgc2VuZEJ1dHRvbkNvbG9yPzogc3RyaW5nO1xuICAgIDE4XHQgIG1heENoYXJzPzogbnVtYmVyO1xuICAgIDE5XHQgIG1heENoYXJzV2FybmluZ01lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMjBcdCAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgICAyMVx0ICBzZW5kTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyMlx0ICBzZW5kU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyM1x0ICByZWNlaXZlTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyNFx0ICByZWNlaXZlU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyNVx0fTtcbiAgICAyNlx0XG4gICAgMjdcdGV4cG9ydCB0eXBlIFVzZXJNZXNzYWdlVGhlbWUgPSB7XG4gICAgMjhcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDI5XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAzMVx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMzJcdH07XG4gICAgMzNcdFxuICAgIDM0XHRleHBvcnQgdHlwZSBCb3RNZXNzYWdlVGhlbWUgPSB7XG4gICAgMzVcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDM2XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzN1x0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAzOFx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMzlcdH07XG4gICAgNDBcdFxuICAgIDQxXHRleHBvcnQgdHlwZSBGb290ZXJUaGVtZSA9IHtcbiAgICA0Mlx0ICBzaG93Rm9vdGVyPzogYm9vbGVhbjtcbiAgICA0M1x0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgNDRcdCAgdGV4dD86IHN0cmluZztcbiAgICA0NVx0ICBjb21wYW55Pzogc3RyaW5nO1xuICAgIDQ2XHQgIGNvbXBhbnlMaW5rPzogc3RyaW5nO1xuICAgIDQ3XHR9O1xuICAgIDQ4XHRcbiAgICA0OVx0ZXhwb3J0IHR5cGUgRmVlZGJhY2tUaGVtZSA9IHtcbiAgICA1MFx0ICBjb2xvcj86IHN0cmluZztcbiAgICA1MVx0fTtcbiAgICA1Mlx0XG4gICAgNTNcdGV4cG9ydCB0eXBlIENoYXRXaW5kb3dUaGVtZSA9IHtcbiAgICA1NFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIDU1XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjsgLy8gcGFyYW1ldGVyIHRvIHNob3cgYWdlbnQgcmVhc29uaW5ncyB3aGVuIHVzaW5nIGFnZW50Zmxvd3NcbiAgICA1Nlx0ICB0aXRsZT86IHN0cmluZztcbiAgICA1N1x0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgICA1OFx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICA1OVx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgIDYwXHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICA2MVx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgNjJcdCAgYmFja2dyb3VuZEltYWdlPzogc3RyaW5nO1xuICAgIDYzXHQgIGhlaWdodD86IG51bWJlcjtcbiAgICA2NFx0ICB3aWR0aD86IG51bWJlcjtcbiAgICA2NVx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICA2Nlx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAgNjdcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgICA2OFx0ICB0ZXh0SW5wdXQ/OiBUZXh0SW5wdXRUaGVtZTtcbiAgICA2OVx0ICBmZWVkYmFjaz86IEZlZWRiYWNrVGhlbWU7XG4gICAgNzBcdCAgZm9vdGVyPzogRm9vdGVyVGhlbWU7XG4gICAgNzFcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgIDcyXHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgICA3M1x0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdO1xuICAgIDc0XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgICA3NVx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAgNzZcdCAgZGF0ZVRpbWVUb2dnbGU/OiBEYXRlVGltZVRvZ2dsZVRoZW1lO1xuICAgIDc3XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDc4XHR9O1xuICAgIDc5XHRcbiAgICA4MFx0ZXhwb3J0IHR5cGUgQnV0dG9uVGhlbWUgPSB7XG4gICAgODFcdCAgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCBudW1iZXI7IC8vIGN1c3RvbSBzaXplIG9mIGNoYXRib3QgaW4gcGl4ZWxzXG4gICAgODJcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDgzXHQgIGljb25Db2xvcj86IHN0cmluZztcbiAgICA4NFx0ICBjdXN0b21JY29uU3JjPzogc3RyaW5nO1xuICAgIDg1XHQgIGJvdHRvbT86IG51bWJlcjtcbiAgICA4Nlx0ICByaWdodD86IG51bWJlcjtcbiAgICA4N1x0ICBkcmFnQW5kRHJvcD86IGJvb2xlYW47IC8vIHBhcmFtZXRlciB0byBlbmFibGUgZHJhZyBhbmQgZHJvcCh0cnVlIG9yIGZhbHNlKVxuICAgIDg4XHQgIGF1dG9XaW5kb3dPcGVuPzogYXV0b1dpbmRvd09wZW5UaGVtZTtcbiAgICA4OVx0fTtcbiAgICA5MFx0XG4gICAgOTFcdGV4cG9ydCB0eXBlIFRvb2xUaXBUaGVtZSA9IHtcbiAgICA5Mlx0ICBzaG93VG9vbHRpcD86IGJvb2xlYW47IC8vIHBhcmFtZXRlciB0byBlbmFibGUgdG9vbHRpcCh0cnVlIG9yIGZhbHNlKVxuICAgIDkzXHQgIHRvb2x0aXBNZXNzYWdlPzogc3RyaW5nO1xuICAgIDk0XHQgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgOTVcdCAgdG9vbHRpcFRleHRDb2xvcj86IHN0cmluZztcbiAgICA5Nlx0ICB0b29sdGlwRm9udFNpemU/OiBudW1iZXI7XG4gICAgOTdcdH07XG4gICAgOThcdFxuICAgIDk5XHRleHBvcnQgdHlwZSBhdXRvV2luZG93T3BlblRoZW1lID0ge1xuICAgMTAwXHQgIGF1dG9PcGVuPzogYm9vbGVhbjsgLy9wYXJhbWV0ZXIgdG8gY29udHJvbCBhdXRvbWF0aWMgd2luZG93IG9wZW5pbmdcbiAgIDEwMVx0ICBvcGVuRGVsYXk/OiBudW1iZXI7IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3IgZGVsYXkgdGltZSBpbiBzZWNvbmRzXG4gICAxMDJcdCAgYXV0b09wZW5Pbk1vYmlsZT86IGJvb2xlYW47IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3Igb3BlbmluZyBvbiBtb2JpbGVcbiAgIDEwM1x0fTtcbiAgIDEwNFx0XG4gICAxMDVcdGV4cG9ydCB0eXBlIERpc2NsYWltZXJQb3BVcFRoZW1lID0ge1xuICAgMTA2XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTA3XHQgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMDhcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTA5XHQgIGJ1dHRvbkNvbG9yPzogc3RyaW5nO1xuICAgMTEwXHQgIGJ1dHRvblRleHRDb2xvcj86IHN0cmluZztcbiAgIDExMVx0ICBidXR0b25UZXh0Pzogc3RyaW5nO1xuICAgMTEyXHQgIGJsdXJyZWRCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxMTNcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTE0XHR9O1xuICAgMTE1XHRcbiAgIDExNlx0ZXhwb3J0IHR5cGUgRGF0ZVRpbWVUb2dnbGVUaGVtZSA9IHtcbiAgIDExN1x0ICBkYXRlPzogYm9vbGVhbjtcbiAgIDExOFx0ICB0aW1lPzogYm9vbGVhbjtcbiAgIDExOVx0fTtcbi4uLlxuUGF0aDogc3JjL2NvbnN0YW50cy50c1xuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUnO1xuICAgICAyXHRcbiAgICAgM1x0ZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gICAgIDRcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgIDVcdCAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICAgICA2XHQgIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gICAgIDdcdCAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcbiAgICAgOVx0ICB0aGVtZTogdW5kZWZpbmVkLFxuICAgIDEwXHQgIG9ic2VydmVyc0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDExXHQgIHJvb21JZHM6IHt9LFxuICAgIDEyXHQgIGlzVXNlRkFROiB1bmRlZmluZWQsXG4gICAgMTNcdCAgZmlsZVBhdGg6ICcnLFxuICAgIDE0XHQgIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxuICAgIDE1XHQgIGV4dGVybmFsRGF0YTogJycsXG4gICAgMTZcdCAgY2FsbEJhY2tJY29uOiAnJyxcbiAgICAxN1x0ICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG4gICAgMThcdH07XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUudHN4XG4gICAgIDFcdGltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgU2hvdywgc3BsaXRQcm9wcywgb25DbGVhbnVwLCBjcmVhdGVFZmZlY3QgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCBzdHlsZXMgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2luZGV4LmNzcyc7XG4gICAgIDNcdGltcG9ydCB7IEJ1YmJsZUJ1dHRvbiB9IGZyb20gJy4vQnViYmxlQnV0dG9uJztcbiAgICAgNFx0aW1wb3J0IHsgQnViYmxlUGFyYW1zIH0gZnJvbSAnLi4vdHlwZXMnO1xuICAgICA1XHRpbXBvcnQgeyBCb3QsIEJvdFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9Cb3QnO1xuICAgICA2XHRpbXBvcnQgVG9vbHRpcCBmcm9tICcuL1Rvb2x0aXAnO1xuICAgICA3XHRpbXBvcnQgeyBnZXRCdWJibGVCdXR0b25TaXplIH0gZnJvbSAnQC91dGlscyc7XG4gICAgIDhcdFxuICAgICA5XHRjb25zdCBkZWZhdWx0QnV0dG9uQ29sb3IgPSAnIzNCODFGNic7XG4gICAgMTBcdGNvbnN0IGRlZmF1bHRJY29uQ29sb3IgPSAnd2hpdGUnO1xuICAgIDExXHRcbiAgICAxMlx0ZXhwb3J0IHR5cGUgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcztcbiAgICAxM1x0XG4gICAgMTRcdGV4cG9ydCBjb25zdCBCdWJibGUgPSAocHJvcHM6IEJ1YmJsZVByb3BzKSA9PiB7XG4gICAgMTVcdCAgY29uc3QgW2J1YmJsZVByb3BzXSA9IHNwbGl0UHJvcHMocHJvcHMsIFsndGhlbWUnXSk7XG4gICAgMTZcdFxuICAgIDE3XHQgIGNvbnN0IFtpc0JvdE9wZW5lZCwgc2V0SXNCb3RPcGVuZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgICAxOFx0ICBjb25zdCBbaXNCb3RTdGFydGVkLCBzZXRJc0JvdFN0YXJ0ZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgICAxOVx0ICBjb25zdCBbYnV0dG9uUG9zaXRpb24sIHNldEJ1dHRvblBvc2l0aW9uXSA9IGNyZWF0ZVNpZ25hbCh7XG4gICAgMjBcdCAgICBib3R0b206IGJ1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/LmJvdHRvbSA/PyAyMCxcbiAgICAyMVx0ICAgIHJpZ2h0OiBidWJibGVQcm9wcy50aGVtZT8uYnV0dG9uPy5yaWdodCA/PyAyMCxcbiAgICAyMlx0ICB9KTtcbiAgICAyM1x0XG4gICAgMjRcdCAgY29uc3Qgb3BlbkJvdCA9ICgpID0+IHtcbiAgICAyNVx0ICAgIGlmICghaXNCb3RTdGFydGVkKCkpIHNldElzQm90U3RhcnRlZCh0cnVlKTtcbiAgICAyNlx0ICAgIHNldElzQm90T3BlbmVkKHRydWUpO1xuICAgIDI3XHQgIH07XG4gICAgMjhcdFxuICAgIDI5XHQgIGNvbnN0IGNsb3NlQm90ID0gKCkgPT4ge1xuICAgIDMwXHQgICAgc2V0SXNCb3RPcGVuZWQoZmFsc2UpO1xuICAgIDMxXHQgIH07XG4gICAgMzJcdFxuICAgIDMzXHQgIGNvbnN0IHRvZ2dsZUJvdCA9ICgpID0+IHtcbiAgICAzNFx0ICAgIGlzQm90T3BlbmVkKCkgPyBjbG9zZUJvdCgpIDogb3BlbkJvdCgpO1xuICAgIDM1XHQgIH07XG4gICAgMzZcdFxuICAgIDM3XHQgIG9uQ2xlYW51cCgoKSA9PiB7XG4gICAgMzhcdCAgICBzZXRJc0JvdFN0YXJ0ZWQoZmFsc2UpO1xuICAgIDM5XHQgIH0pO1xuICAgIDQwXHRcbiAgICA0MVx0ICBjb25zdCBidXR0b25TaXplID0gZ2V0QnViYmxlQnV0dG9uU2l6ZShwcm9wcy50aGVtZT8uYnV0dG9uPy5zaXplKTsgLy8gRGVmYXVsdCB0byA0OHB4IGlmIHNpemUgaXMgbm90IHByb3ZpZGVkXG4gICAgNDJcdCAgY29uc3QgYnV0dG9uQm90dG9tID0gcHJvcHMudGhlbWU/LmJ1dHRvbj8uYm90dG9tID8/IDIwO1xuICAgIDQzXHQgIGNvbnN0IGNoYXRXaW5kb3dCb3R0b20gPSBidXR0b25Cb3R0b20gKyBidXR0b25TaXplICsgMTA7IC8vIEFkanVzdCB0aGUgb2Zmc2V0IGhlcmUgZm9yIHNsaWdodCBzaGlmdFxuICAgIDQ0XHRcbiAgICA0NVx0ICAvLyBBZGQgdmlld3BvcnQgbWV0YSB0YWcgZHluYW1pY2FsbHlcbiAgICA0Nlx0ICBjcmVhdGVFZmZlY3QoKCkgPT4ge1xuICAgIDQ3XHQgICAgY29uc3QgbWV0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGEnKTtcbiAgICA0OFx0ICAgIG1ldGEubmFtZSA9ICd2aWV3cG9ydCc7XG4gICAgNDlcdCAgICBtZXRhLmNvbnRlbnQgPSAnd2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgaW50ZXJhY3RpdmUtd2lkZ2V0PXJlc2l6ZXMtY29udGVudCc7XG4gICAgNTBcdCAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG1ldGEpO1xuICAgIDUxXHRcbiAgICA1Mlx0ICAgIHJldHVybiAoKSA9PiB7XG4gICAgNTNcdCAgICAgIGRvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQobWV0YSk7XG4gICAgNTRcdCAgICB9O1xuICAgIDU1XHQgIH0pO1xuICAgIDU2XHRcbiAgICA1N1x0ICBjb25zdCBzaG93VG9vbHRpcCA9IGJ1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy5zaG93VG9vbHRpcCA/PyBmYWxzZTtcbiAgICA1OFx0XG4gICAgNTlcdCAgcmV0dXJuIChcbiAgICA2MFx0ICAgIDw+XG4gICAgNjFcdCAgICAgIDxTaG93IHdoZW49e3Byb3BzLnRoZW1lPy5jdXN0b21DU1N9PlxuICAgIDYyXHQgICAgICAgIDxzdHlsZT57cHJvcHMudGhlbWU/LmN1c3RvbUNTU308L3N0eWxlPlxuICAgIDYzXHQgICAgICA8L1Nob3c+XG4gICAgNjRcdCAgICAgIDxzdHlsZT57c3R5bGVzfTwvc3R5bGU+XG4gICAgNjVcdCAgICAgIDxUb29sdGlwXG4gICAgNjZcdCAgICAgICAgc2hvd1Rvb2x0aXA9e3Nob3dUb29sdGlwICYmICFpc0JvdE9wZW5lZCgpfVxuICAgIDY3XHQgICAgICAgIHBvc2l0aW9uPXtidXR0b25Qb3NpdGlvbigpfVxuICAgIDY4XHQgICAgICAgIGJ1dHRvblNpemU9e2J1dHRvblNpemV9XG4gICAgNjlcdCAgICAgICAgdG9vbHRpcE1lc3NhZ2U9e2J1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy50b29sdGlwTWVzc2FnZX1cbiAgICA3MFx0ICAgICAgICB0b29sdGlwQmFja2dyb3VuZENvbG9yPXtidWJibGVQcm9wcy50aGVtZT8udG9vbHRpcD8udG9vbHRpcEJhY2tncm91bmRDb2xvcn1cbiAgICA3MVx0ICAgICAgICB0b29sdGlwVGV4dENvbG9yPXtidWJibGVQcm9wcy50aGVtZT8udG9vbHRpcD8udG9vbHRpcFRleHRDb2xvcn1cbiAgICA3Mlx0ICAgICAgICB0b29sdGlwRm9udFNpemU9e2J1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy50b29sdGlwRm9udFNpemV9IC8vIFNldCB0aGUgdG9vbHRpcCBmb250IHNpemVcbiAgICA3M1x0ICAgICAgLz5cbiAgICA3NFx0ICAgICAgPEJ1YmJsZUJ1dHRvblxuICAgIDc1XHQgICAgICAgIHsuLi5idWJibGVQcm9wcy50aGVtZT8uYnV0dG9ufVxuICAgIDc2XHQgICAgICAgIHRvZ2dsZUJvdD17dG9nZ2xlQm90fVxuICAgIDc3XHQgICAgICAgIGlzQm90T3BlbmVkPXtpc0JvdE9wZW5lZCgpfVxuICAgIDc4XHQgICAgICAgIHNldEJ1dHRvblBvc2l0aW9uPXtzZXRCdXR0b25Qb3NpdGlvbn1cbiAgICA3OVx0ICAgICAgICBkcmFnQW5kRHJvcD17YnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uZHJhZ0FuZERyb3AgPz8gZmFsc2V9XG4uLi5cbiAgIDE1Mlx0ICAgICAgICAgICAgICBkaXNjbGFpbWVyPXtidWJibGVQcm9wcy50aGVtZT8uZGlzY2xhaW1lcn1cbiAgIDE1M1x0ICAgICAgICAgICAgICBkYXRlVGltZVRvZ2dsZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmRhdGVUaW1lVG9nZ2xlfVxuICAgMTU0XHQgICAgICAgICAgICAgIHJlbmRlckhUTUw9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5yZW5kZXJIVE1MfVxuICAgMTU1XHQgICAgICAgICAgICAgIGNoYXR3b290VXJsPXtwcm9wcy5jaGF0d29vdFVybH1cbiAgIDE1Nlx0ICAgICAgICAgICAgICByb29tSWRzPXtwcm9wcy5yb29tSWRzfVxuICAgMTU3XHQgICAgICAgICAgICAgIGlzVXNlRkFRPXtwcm9wcy5pc1VzZUZBUX1cbiAgIDE1OFx0ICAgICAgICAgICAgICBmaWxlUGF0aD17cHJvcHMuZmlsZVBhdGh9XG4gICAxNTlcdCAgICAgICAgICAgICAgc3VnZ2VzdFF1ZXN0aW9ucz17cHJvcHMuc3VnZ2VzdFF1ZXN0aW9uc31cbiAgIDE2MFx0ICAgICAgICAgICAgICBleHRlcm5hbERhdGE9e3Byb3BzLmV4dGVybmFsRGF0YX1cbiAgIDE2MVx0ICAgICAgICAgICAgICBjYWxsQmFja0Z1bmN0aW9uPXtwcm9wcy5jYWxsQmFja0Z1bmN0aW9ufVxuICAgMTYyXHQgICAgICAgICAgICAgIGNhbGxCYWNrSWNvbj17cHJvcHMuY2FsbEJhY2tJY29ufVxuICAgMTYzXHQgICAgICAgICAgICAvPlxuICAgMTY0XHQgICAgICAgICAgPC9kaXY+XG4gICAxNjVcdCAgICAgICAgPC9TaG93PlxuICAgMTY2XHQgICAgICA8L2Rpdj5cbiAgIDE2N1x0ICAgIDwvPlxuICAgMTY4XHQgICk7XG4gICAxNjlcdH07XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvR3Vlc3RCdWJibGUudHN4XG4gICAgIDFcdGltcG9ydCB7IEZvciwgU2hvdywgb25Nb3VudCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHsgQXZhdGFyIH0gZnJvbSAnLi4vYXZhdGFycy9BdmF0YXInO1xuICAgICAzXHRpbXBvcnQgeyBNYXJrZWQgfSBmcm9tICdAdHMtc3RhY2svbWFya2Rvd24nO1xuICAgICA0XHRpbXBvcnQgeyBGaWxlVXBsb2FkLCBNZXNzYWdlVHlwZSB9IGZyb20gJy4uL0JvdCc7XG4gICAgIDVcdGltcG9ydCB7IEF0dGFjaG1lbnRJY29uIH0gZnJvbSAnLi4vaWNvbnMnO1xuICAgICA2XHRcbiAgICAgN1x0dHlwZSBQcm9wcyA9IHtcbiAgICAgOFx0ICBtZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgICAgOVx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDEwXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAxMVx0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAxMlx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAxM1x0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMTRcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAxN1x0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAxOFx0fTtcbiAgICAxOVx0XG4gICAgMjBcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnIzNCODFGNic7XG4gICAgMjFcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnI2ZmZmZmZic7XG4gICAgMjJcdGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IDE2O1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlQnV0dG9uLnRzeFxuICAgICAxXHRpbXBvcnQgeyBjcmVhdGVTaWduYWwsIGNyZWF0ZUVmZmVjdCwgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHsgaXNOb3REZWZpbmVkLCBnZXRCdWJibGVCdXR0b25TaXplIH0gZnJvbSAnQC91dGlscy9pbmRleCc7XG4gICAgIDNcdGltcG9ydCB7IEJ1dHRvblRoZW1lIH0gZnJvbSAnLi4vdHlwZXMnO1xuICAgICA0XHRcbiAgICAgNVx0dHlwZSBQcm9wcyA9IEJ1dHRvblRoZW1lICYge1xuICAgICA2XHQgIGlzQm90T3BlbmVkOiBib29sZWFuO1xuICAgICA3XHQgIHRvZ2dsZUJvdDogKCkgPT4gdm9pZDtcbiAgICAgOFx0ICBzZXRCdXR0b25Qb3NpdGlvbjogKHBvc2l0aW9uOiB7IGJvdHRvbTogbnVtYmVyOyByaWdodDogbnVtYmVyIH0pID0+IHZvaWQ7XG4gICAgIDlcdCAgZHJhZ0FuZERyb3A6IGJvb2xlYW47XG4gICAgMTBcdCAgYXV0b09wZW4/OiBib29sZWFuOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgdG8gY29udHJvbCBhdXRvbWF0aWMgd2luZG93IG9wZW5pbmdcbiAgICAxMVx0ICBvcGVuRGVsYXk/OiBudW1iZXI7IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3IgZGVsYXkgdGltZSBpbiBzZWNvbmRzXG4gICAgMTJcdCAgYXV0b09wZW5Pbk1vYmlsZT86IGJvb2xlYW47IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3Igb3BlbmluZyBvbiBtb2JpbGVcbiAgICAxM1x0fTtcbiAgICAxNFx0XG4gICAgMTVcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAxNlx0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgMTdcdGNvbnN0IGRlZmF1bHRCb3R0b20gPSAyMDtcbiAgICAxOFx0Y29uc3QgZGVmYXVsdFJpZ2h0ID0gMjA7XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvTGVhZENhcHR1cmVCdWJibGUudHN4XG4uLi5cbiAgICAgOFx0XG4gICAgIDlcdHR5cGUgUHJvcHMgPSB7XG4gICAgMTBcdCAgbWVzc2FnZTogTWVzc2FnZVR5cGU7XG4gICAgMTFcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDEyXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDEzXHQgIGxlYWRzQ29uZmlnPzogTGVhZHNDb25maWc7XG4gICAgMTRcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAxNVx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAxNlx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMTdcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE4XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxOVx0ICBzZW5kQnV0dG9uQ29sb3I/OiBzdHJpbmc7XG4gICAgMjBcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMjFcdCAgaXNMZWFkU2F2ZWQ6IGJvb2xlYW47XG4gICAgMjJcdCAgc2V0SXNMZWFkU2F2ZWQ6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAyM1x0ICBzZXRMZWFkRW1haWw6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICAgIDI0XHR9O1xuICAgIDI1XHRcbiAgICAyNlx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjZjdmOGZmJztcbiAgICAyN1x0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjMzAzMjM1JztcbiAgICAyOFx0Y29uc3QgZGVmYXVsdEZvbnRTaXplID0gMTY7XG4gICAgMjlcdGNvbnN0IHBob25lUmVnZXggPSBuZXcgUmVnRXhwKC9eKFsrXT9bXFxzMC05XSspPyhcXGR7M318WyhdP1swLTldK1spXSk/KFstXT9bXFxzXT9bMC05XSkrJC8pO1xuICAgIDMwXHRcbiAgICAzMVx0Y29uc3QgTGVhZENhcHR1cmVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgMzJcdCAgbmFtZTogei5zdHJpbmcoKS5taW4oMiwgJ05hbWUgaXMgdG9vIHNob3J0Jykub3B0aW9uYWwoKSxcbiAgICAzM1x0ICBlbWFpbDogei5zdHJpbmcoKS5lbWFpbCgnUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBlbWFpbCcpLm9wdGlvbmFsKCksXG4gICAgMzRcdCAgcGhvbmU6IHouc3RyaW5nKCkubWluKDUsICdQaG9uZSBudW1iZXIgaXMgdG9vIHNob3J0JykucmVnZXgocGhvbmVSZWdleCwgJ0ludmFsaWQgTnVtYmVyIScpLm9wdGlvbmFsKCksXG4gICAgMzVcdH0pO1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvVG9vbHRpcC50c3hcbiAgICAgMVx0aW1wb3J0IHsgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0XG4gICAgIDNcdGNvbnN0IGRlZmF1bHRUb29sdGlwTWVzc2FnZSA9ICdIaSBUaGVyZSDwn5GLISc7XG4gICAgIDRcdGNvbnN0IGRlZmF1bHRUb29sdGlwQmFja2dyb3VuZENvbG9yID0gJ2JsYWNrJztcbiAgICAgNVx0Y29uc3QgZGVmYXVsdFRvb2x0aXBUZXh0Q29sb3IgPSAnd2hpdGUnO1xuICAgICA2XHRjb25zdCBkZWZhdWx0VG9vbHRpcEZvbnRTaXplID0gMTY7IC8vIERlZmF1bHQgZm9udCBzaXplIGZvciB0b29sdGlwXG4gICAgIDdcdFxuICAgICA4XHR0eXBlIFRvb2x0aXBQcm9wcyA9IHtcbiAgICAgOVx0ICBzaG93VG9vbHRpcDogYm9vbGVhbjtcbiAgICAxMFx0ICBwb3NpdGlvbjogeyBib3R0b206IG51bWJlcjsgcmlnaHQ6IG51bWJlciB9O1xuICAgIDExXHQgIGJ1dHRvblNpemU6IG51bWJlcjtcbiAgICAxMlx0ICB0b29sdGlwTWVzc2FnZT86IHN0cmluZztcbiAgICAxM1x0ICB0b29sdGlwQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE0XHQgIHRvb2x0aXBUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgdG9vbHRpcEZvbnRTaXplPzogbnVtYmVyOyAvLyBBZGQgdG9vbHRpcEZvbnRTaXplIHRvIHByb3BzXG4gICAgMTZcdH07XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvQm90QnViYmxlLnRzeFxuLi4uXG4gICAgMThcdFxuICAgIDE5XHR0eXBlIFByb3BzID0ge1xuICAgIDIwXHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgIDIxXHQgIHNldE1lc3NhZ2VzPzogYW55O1xuICAgIDIyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAyM1x0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAyNFx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDI1XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAyNlx0ICBmaWxlQW5ub3RhdGlvbnM/OiBhbnk7XG4gICAgMjdcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMjhcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDI5XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzFcdCAgY2hhdEZlZWRiYWNrU3RhdHVzPzogYm9vbGVhbjtcbiAgICAzMlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAzM1x0ICBmZWVkYmFja0NvbG9yPzogc3RyaW5nO1xuICAgIDM0XHQgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICAzNVx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAgMzZcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgIDM3XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgICAzOFx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAzOVx0ICBoYW5kbGVBY3Rpb25DbGljazogKGxhYmVsOiBzdHJpbmcsIGFjdGlvbjogSUFjdGlvbiB8IHVuZGVmaW5lZCB8IG51bGwpID0+IHZvaWQ7XG4gICAgNDBcdCAgaGFuZGxlU291cmNlRG9jdW1lbnRzQ2xpY2s6IChzcmM6IGFueSkgPT4gdm9pZDtcbiAgICA0MVx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgICA0Mlx0ICBvbkNvbm5lY3RUb0h1bWFuQWR2aXNvcj86IChpZDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpID0+IHZvaWQ7XG4gICAgNDNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgNDRcdCAgcXVlc3Rpb24/OiBzdHJpbmc7XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvQWdlbnRSZWFzb25pbmdCdWJibGUudHN4XG4gICAgIDFcdGltcG9ydCB7IEZvciwgb25Nb3VudCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHsgTWFya2VkIH0gZnJvbSAnQHRzLXN0YWNrL21hcmtkb3duJztcbiAgICAgM1x0aW1wb3J0IHsgRmlsZVVwbG9hZCB9IGZyb20gJy4uL0JvdCc7XG4gICAgIDRcdGltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG4gICAgIDVcdFxuICAgICA2XHR0eXBlIFByb3BzID0ge1xuICAgICA3XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgIDhcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgICA5XHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDEwXHQgIGFnZW50TmFtZTogc3RyaW5nO1xuICAgIDExXHQgIGFnZW50TWVzc2FnZTogc3RyaW5nO1xuICAgIDEyXHQgIGFnZW50QXJ0aWZhY3RzPzogRmlsZVVwbG9hZFtdO1xuICAgIDEzXHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxNFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMTZcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgMTdcdH07XG4gICAgMThcdFxuICAgIDE5XHRjb25zdCBkZWZhdWx0QmFja2dyb3VuZENvbG9yID0gJyNmN2Y4ZmYnO1xuICAgIDIwXHRjb25zdCBkZWZhdWx0VGV4dENvbG9yID0gJyMzMDMyMzUnO1xuICAgIDIxXHRjb25zdCBkZWZhdWx0Rm9udFNpemUgPSAxNjtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9Tb3VyY2VCdWJibGUudHN4XG4gICAgIDFcdHR5cGUgUHJvcHMgPSB7XG4gICAgIDJcdCAgcGFnZUNvbnRlbnQ6IHN0cmluZztcbiAgICAgM1x0ICBtZXRhZGF0YTogb2JqZWN0O1xuICAgICA0XHQgIG9uU291cmNlQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICAgICA1XHQgIHNyYz86IGFueTtcbiAgICAgNlx0fTtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS9pbmRleC50c1xuICAgICAxXHRleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuLi4uXG5QYXRoOiBzcmMvQnViYmxlQ2hhdC50c3hcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJ2NtY3RzLWMtYWdlbnQtZW1iZWRkaW5nJ1xuICAgICAyXHRpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG4gICAgIDNcdFxuICAgICA0XHR0eXBlIFByb3BzID0gQnViYmxlUHJvcHNcbiAgICAgNVx0XG4gICAgIDZcdGRlY2xhcmUgZ2xvYmFsIHtcbiAgICAgN1x0ICBuYW1lc3BhY2UgSlNYIHtcbiAgICAgOFx0ICAgIGludGVyZmFjZSBJbnRyaW5zaWNFbGVtZW50cyB7XG4gICAgIDlcdCAgICAgICdmbG93aXNlLWNoYXRib3QnOiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcbiAgICAxMFx0ICAgICAgICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD4sXG4gICAgMTFcdCAgICAgICAgSFRNTEVsZW1lbnRcbiAgICAxMlx0ICAgICAgPlxuICAgIDEzXHQgICAgfVxuICAgIDE0XHQgIH1cbiAgICAxNVx0fVxuICAgIDE2XHRcbiAgICAxN1x0dHlwZSBCdWJibGVFbGVtZW50ID0gSFRNTEVsZW1lbnQgJiBQcm9wc1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9CYWRnZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgRm9vdGVyVGhlbWUgfSBmcm9tICdAL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgIDJcdGltcG9ydCB7IFNob3csIG9uQ2xlYW51cCwgb25Nb3VudCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSB7XG4gICAgIDVcdCAgZm9vdGVyPzogRm9vdGVyVGhlbWU7XG4gICAgIDZcdCAgYm90Q29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICAgN1x0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgIDhcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgIDlcdH07XG4gICAgMTBcdFxuICAgIDExXHRjb25zdCBkZWZhdWx0VGV4dENvbG9yID0gJyMzMDMyMzUnO1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL0Z1bGwudHN4XG4gICAgIDFcdGltcG9ydCBzdHlsZXMgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2luZGV4LmNzcyc7XG4gICAgIDJcdGltcG9ydCB7IEJvdCwgQm90UHJvcHMgfSBmcm9tICdAL2NvbXBvbmVudHMvQm90JztcbiAgICAgM1x0aW1wb3J0IHsgQnViYmxlUGFyYW1zIH0gZnJvbSAnQC9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgICA0XHRpbXBvcnQgeyBjcmVhdGVTaWduYWwsIG9uQ2xlYW51cCwgb25Nb3VudCwgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgNVx0XG4gICAgIDZcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAgN1x0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgIDhcdFxuICAgICA5XHRleHBvcnQgdHlwZSBGdWxsUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcztcbi4uLlxuUGF0aDogc3JjL3dpbmRvdy50c1xuICAgICAxXHRpbXBvcnQgeyBvYnNlcnZlcnNDb25maWdUeXBlIH0gZnJvbSAnLi9jb21wb25lbnRzL0JvdCc7XG4gICAgIDJcdGltcG9ydCB7IEJ1YmJsZVRoZW1lIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgICAzXHRcbiAgICAgNFx0LyogZXNsaW50LWRpc2FibGUgc29saWQvcmVhY3Rpdml0eSAqL1xuICAgICA1XHR0eXBlIEJvdFByb3BzID0ge1xuICAgICA2XHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAgN1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgICA4XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAgOVx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIDEwXHQgIG9ic2VydmVyc0NvbmZpZz86IG9ic2VydmVyc0NvbmZpZ1R5cGU7XG4gICAgMTFcdCAgdGhlbWU/OiBCdWJibGVUaGVtZTtcbiAgICAxMlx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgICAxM1x0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICAxNFx0ICBpc1VzZUZBUT86IHVuZGVmaW5lZDtcbiAgICAxNVx0fTtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9Gb2xsb3dVcFByb21wdEJ1YmJsZS50c3hcbiAgICAgMVx0dHlwZSBQcm9wcyA9IHtcbiAgICAgMlx0ICBwcm9tcHQ6IHN0cmluZztcbiAgICAgM1x0ICBvblByb21wdENsaWNrPzogKCkgPT4gdm9pZDtcbiAgICAgNFx0ICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XG4gICAgIDVcdH07XG4gICAgIDZcdGV4cG9ydCBjb25zdCBGb2xsb3dVcFByb21wdEJ1YmJsZSA9IChwcm9wczogUHJvcHMpID0+IChcbiAgICAgN1x0ICA8PlxuICAgICA4XHQgICAgPGRpdlxuICAgICA5XHQgICAgICBkYXRhLW1vZGFsLXRhcmdldD1cImRlZmF1bHRNb2RhbFwiXG4gICAgMTBcdCAgICAgIGRhdGEtbW9kYWwtdG9nZ2xlPVwiZGVmYXVsdE1vZGFsXCJcbiAgICAxMVx0ICAgICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktc3RhcnQgaXRlbXMtc3RhcnQgYW5pbWF0ZS1mYWRlLWluIGdhcC0xIGhvc3QtY29udGFpbmVyIGhvdmVyOmJyaWdodG5lc3MtOTAgYWN0aXZlOmJyaWdodG5lc3MtNzVcIlxuICAgIDEyXHQgICAgICBvbkNsaWNrPXsoKSA9PiBwcm9wcy5vblByb21wdENsaWNrPy4oKX1cbiAgICAxM1x0ICAgID5cbiAgICAxNFx0ICAgICAgPHNwYW5cbiAgICAxNVx0ICAgICAgICBjbGFzcz1cInB4LTIgcHktMSB3aGl0ZXNwYWNlLXByZS13cmFwIG1heC13LWZ1bGwgY2hhdGJvdC1ob3N0LWJ1YmJsZSBib3JkZXJcIlxuICAgIDE2XHQgICAgICAgIGRhdGEtdGVzdGlkPVwiaG9zdC1idWJibGVcIlxuICAgIDE3XHQgICAgICAgIHN0eWxlPXt7XG4gICAgMThcdCAgICAgICAgICB3aWR0aDogJ21heC1jb250ZW50JyxcbiAgICAxOVx0ICAgICAgICAgICdmb250LXNpemUnOiBwcm9wcy5zdGFydGVyUHJvbXB0Rm9udFNpemUgPyBgJHtwcm9wcy5zdGFydGVyUHJvbXB0Rm9udFNpemV9cHhgIDogJzE1cHgnLCAvLyBDb252ZXJ0IHRvIHN0cmluZyB3aXRoIHVuaXRcbiAgICAyMFx0ICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzE1cHgnLFxuICAgIDIxXHQgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgMjJcdCAgICAgICAgfX1cbiAgICAyM1x0ICAgICAgPlxuICAgIDI0XHQgICAgICAgIHtwcm9wcy5wcm9tcHR9XG4gICAgMjVcdCAgICAgIDwvc3Bhbj5cbiAgICAyNlx0ICAgIDwvZGl2PlxuICAgIDI3XHQgIDwvPlxuICAgIDI4XHQpO1xuLi4uXG5QYXRoOiBzcmMvaW5kZXgudHNcbiAgICAgMVx0ZXhwb3J0IHR5cGUgeyBCb3RQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9Cb3QnO1xuICAgICAyXHRleHBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUnO1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL1N0YXJ0ZXJQcm9tcHRCdWJibGUudHN4XG4gICAgIDFcdHR5cGUgUHJvcHMgPSB7XG4gICAgIDJcdCAgcHJvbXB0OiBzdHJpbmc7XG4gICAgIDNcdCAgb25Qcm9tcHRDbGljaz86ICgpID0+IHZvaWQ7XG4gICAgIDRcdCAgc3RhcnRlclByb21wdEZvbnRTaXplPzogbnVtYmVyO1xuICAgICA1XHR9O1xuICAgICA2XHRleHBvcnQgY29uc3QgU3RhcnRlclByb21wdEJ1YmJsZSA9IChwcm9wczogUHJvcHMpID0+IChcbiAgICAgN1x0ICA8PlxuICAgICA4XHQgICAgPGRpdlxuICAgICA5XHQgICAgICBkYXRhLW1vZGFsLXRhcmdldD1cImRlZmF1bHRNb2RhbFwiXG4gICAgMTBcdCAgICAgIGRhdGEtbW9kYWwtdG9nZ2xlPVwiZGVmYXVsdE1vZGFsXCJcbiAgICAxMVx0ICAgICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktc3RhcnQgaXRlbXMtc3RhcnQgYW5pbWF0ZS1mYWRlLWluIGhvc3QtY29udGFpbmVyIGhvdmVyOmJyaWdodG5lc3MtOTAgYWN0aXZlOmJyaWdodG5lc3MtNzVcIlxuICAgIDEyXHQgICAgICBvbkNsaWNrPXsoKSA9PiBwcm9wcy5vblByb21wdENsaWNrPy4oKX1cbiAgICAxM1x0ICAgID5cbiAgICAxNFx0ICAgICAgPHNwYW5cbiAgICAxNVx0ICAgICAgICBjbGFzcz1cInB4LTIgcHktMSBtbC0xIHdoaXRlc3BhY2UtcHJlLXdyYXAgbWF4LXctZnVsbCBjaGF0Ym90LWhvc3QtYnViYmxlXCJcbiAgICAxNlx0ICAgICAgICBkYXRhLXRlc3RpZD1cImhvc3QtYnViYmxlXCJcbiAgICAxN1x0ICAgICAgICBzdHlsZT17e1xuICAgIDE4XHQgICAgICAgICAgd2lkdGg6ICdtYXgtY29udGVudCcsXG4gICAgMTlcdCAgICAgICAgICAnZm9udC1zaXplJzogcHJvcHMuc3RhcnRlclByb21wdEZvbnRTaXplID8gYCR7cHJvcHMuc3RhcnRlclByb21wdEZvbnRTaXplfXB4YCA6ICcxNXB4JywgLy8gQ29udmVydCB0byBzdHJpbmcgd2l0aCB1bml0XG4gICAgMjBcdCAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICcxNXB4JyxcbiAgICAyMVx0ICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgIDIyXHQgICAgICAgIH19XG4gICAgMjNcdCAgICAgID5cbiAgICAyNFx0ICAgICAgICB7cHJvcHMucHJvbXB0fVxuICAgIDI1XHQgICAgICA8L3NwYW4+XG4gICAgMjZcdCAgICA8L2Rpdj5cbiAgICAyN1x0ICA8Lz5cbiAgICAyOFx0KTtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvQm90LnRzeFxuLi4uXG4gICAxMzBcdFxuICAgMTMxXHRleHBvcnQgdHlwZSBCb3RQcm9wcyA9IHtcbiAgIDEzMlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAxMzNcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgIDEzNFx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAxMzVcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgIDEzNlx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgIDEzN1x0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM4XHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOVx0ICBib3RNZXNzYWdlPzogQm90TWVzc2FnZVRoZW1lO1xuICAgMTQwXHQgIHVzZXJNZXNzYWdlPzogVXNlck1lc3NhZ2VUaGVtZTtcbiAgIDE0MVx0ICB0ZXh0SW5wdXQ/OiBUZXh0SW5wdXRUaGVtZTtcbiAgIDE0Mlx0ICBmZWVkYmFjaz86IEZlZWRiYWNrVGhlbWU7XG4gICAxNDNcdCAgcG93ZXJlZEJ5VGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ0XHQgIGJhZGdlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ1XHQgIGJ1YmJsZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0Nlx0ICBidWJibGVUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDdcdCAgc2hvd1RpdGxlPzogYm9vbGVhbjtcbiAgIDE0OFx0ICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47XG4gICAxNDlcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAxNTBcdCAgdGl0bGVBdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAxNTFcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAxNTJcdCAgaXNGdWxsUGFnZT86IGJvb2xlYW47XG4gICAxNTNcdCAgZm9vdGVyPzogRm9vdGVyVGhlbWU7XG4gICAxNTRcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgMTU1XHQgIG9ic2VydmVyc0NvbmZpZz86IG9ic2VydmVyc0NvbmZpZ1R5cGU7XG4gICAxNTZcdCAgc3RhcnRlclByb21wdHM/OiBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHsgcHJvbXB0OiBzdHJpbmcgfT47XG4uLi5cblBhdGg6IHNyYy9GdWxsUGFnZUNoYXQudHN4XG4gICAgIDFcdGltcG9ydCB0eXBlIHsgQm90UHJvcHMgfSBmcm9tICdjbWN0cy1jLWFnZW50LWVtYmVkZGluZydcbiAgICAgMlx0aW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCb3RQcm9wcyAmIHtcbiAgICAgNVx0ICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgNlx0ICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgICAgN1x0fVxuICAgICA4XHRcbiAgICAgOVx0ZGVjbGFyZSBnbG9iYWwge1xuICAgIDEwXHQgIG5hbWVzcGFjZSBKU1gge1xuICAgIDExXHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAxMlx0ICAgICAgJ2Zsb3dpc2UtZnVsbGNoYXRib3QnOiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcbiAgICAxM1x0ICAgICAgICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD4sXG4gICAgMTRcdCAgICAgICAgSFRNTEVsZW1lbnRcbiAgICAxNVx0ICAgICAgPiAmIHsgY2xhc3M/OiBzdHJpbmcgfVxuICAgIDE2XHQgICAgfVxuICAgIDE3XHQgIH1cbiAgICAxOFx0fVxuLi4uXG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFMbzd0blROU1RhOTVTQndOVW1TVnRwIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2V9fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDM6NTc6NTYuMDI1WiIsInJlc3BvbnNlX3RleHQiOiJOb3cgbGV0IG1lIGdldCB0aGUgY29tcGxldGUgQm90UHJvcHMgZGVmaW5pdGlvbiB0byB1bmRlcnN0YW5kIGFsbCB0aGUgcHJvcGVydGllczpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiJhYWZmOTJjOS0yMDcwLTQxMzQtOGFhMy03N2QwNWM3NGUxMWUiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFLSGNIV1JmanlpY3V3YUdQV2g1dFo5IiwidG9vbF9uYW1lIjoic3RyLXJlcGxhY2UtZWRpdG9yIiwiaW5wdXRfanNvbiI6IntcImNvbW1hbmRcIjogXCJzdHJfcmVwbGFjZVwiLCBcInBhdGhcIjogXCJzcmMvY29uc3RhbnRzLnRzXCIsIFwiaW5zdHJ1Y3Rpb25fcmVtaW5kZXJcIjogXCJBTFdBWVMgQlJFQUsgRE9XTiBFRElUUyBJTlRPIFNNQUxMRVIgQ0hVTktTIE9GIEFUIE1PU1QgMjAwIExJTkVTIEVBQ0guXCIsIFwib2xkX3N0cl8xXCI6IFwiaW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlJztcXG5cXG5leHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcXG4gIGNoYXRmbG93aWQ6ICcnLFxcbiAgYXBpSG9zdDogdW5kZWZpbmVkLFxcbiAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcXG4gIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxcbiAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcXG4gIHRoZW1lOiB1bmRlZmluZWQsXFxuICBvYnNlcnZlcnNDb25maWc6IHVuZGVmaW5lZCxcXG4gIHJvb21JZHM6IHt9LFxcbiAgaXNVc2VGQVE6IHVuZGVmaW5lZCxcXG4gIGZpbGVQYXRoOiAnJyxcXG4gIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxcbiAgZXh0ZXJuYWxEYXRhOiAnJyxcXG4gIGNhbGxCYWNrSWNvbjogJycsXFxuICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXFxufTtcIiwgXCJvbGRfc3RyX3N0YXJ0X2xpbmVfbnVtYmVyXzFcIjogMSwgXCJvbGRfc3RyX2VuZF9saW5lX251bWJlcl8xXCI6IDE4LCBcIm5ld19zdHJfMVwiOiBcImltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZSc7XFxuXFxuLyoqXFxuICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhdGJvdCBidWJibGUgY29tcG9uZW50LlxcbiAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBhbGwgb3B0aW9uYWwgcHJvcGVydGllcyB3aGlsZSBrZWVwaW5nXFxuICogcmVxdWlyZWQgcHJvcGVydGllcyBleHBsaWNpdGx5IHVuZGVmaW5lZCB0byBlbmZvcmNlIHByb3BlciBjb25maWd1cmF0aW9uLlxcbiAqL1xcbmV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xcbiAgLy8gQ29yZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIC0gbXVzdCBiZSBzZXQgYnkgaW1wbGVtZW50ZXJcXG4gIGNoYXRmbG93aWQ6ICcnLFxcbiAgXFxuICAvLyBBUEkgY29uZmlndXJhdGlvblxcbiAgYXBpSG9zdDogdW5kZWZpbmVkLFxcbiAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXFxuICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxcbiAgXFxuICAvLyBVSSB0aGVtaW5nIGFuZCBjdXN0b21pemF0aW9uXFxuICB0aGVtZTogdW5kZWZpbmVkLFxcbiAgXFxuICAvLyBFeHRlcm5hbCBpbnRlZ3JhdGlvbnNcXG4gIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXFxuICByb29tSWRzOiB7fSxcXG4gIFxcbiAgLy8gRmVhdHVyZSBmbGFncyBhbmQgb3B0aW9uYWwgZnVuY3Rpb25hbGl0eVxcbiAgaXNVc2VGQVE6IGZhbHNlLFxcbiAgXFxuICAvLyBGaWxlIGFuZCBjb250ZW50IGNvbmZpZ3VyYXRpb25cXG4gIGZpbGVQYXRoOiAnJyxcXG4gIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxcbiAgZXh0ZXJuYWxEYXRhOiAnJyxcXG4gIGNhbGxCYWNrSWNvbjogJycsXFxuICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXFxuICBcXG4gIC8vIE1vbml0b3JpbmcgYW5kIGFuYWx5dGljc1xcbiAgb2JzZXJ2ZXJzQ29uZmlnOiB1bmRlZmluZWQsXFxufTtcIn0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJOb3cgSSBoYXZlIGEgY29tcGxldGUgdW5kZXJzdGFuZGluZyBvZiB0aGUgY29kZSBzdHJ1Y3R1cmUuIExldCBtZSBjcmVhdGUgYSBkZXRhaWxlZCBwbGFuIGZvciByZWZhY3RvcmluZyB0aGUgYGRlZmF1bHRCb3RQcm9wc2Agb2JqZWN0LlxuXG4jIyBBbmFseXNpcyBhbmQgUGxhblxuXG5UaGUgY3VycmVudCBgZGVmYXVsdEJvdFByb3BzYCBvYmplY3QgaGFzIHNldmVyYWwgaXNzdWVzOlxuMS4gKipJbmNvbnNpc3RlbnQgZGVmYXVsdCB2YWx1ZXMqKjogTWl4IG9mIGVtcHR5IHN0cmluZ3MsIGB1bmRlZmluZWRgLCBhbmQgZW1wdHkgb2JqZWN0c1xuMi4gKipUeXBlIHNhZmV0eSBjb25jZXJucyoqOiBVc2luZyBgdW5kZWZpbmVkYCBmb3Igb3B0aW9uYWwgcHJvcGVydGllcyB0aGF0IGNvdWxkIGhhdmUgYmV0dGVyIGRlZmF1bHRzXG4zLiAqKk1haW50YWluYWJpbGl0eSoqOiBIYXJkIHRvIHVuZGVyc3RhbmQgd2hpY2ggcHJvcGVydGllcyBhcmUgdHJ1bHkgb3B0aW9uYWwgdnMgcmVxdWlyZWRcbjQuICoqQ29kZSBjbGFyaXR5Kio6IFRoZSBwdXJwb3NlIGFuZCBleHBlY3RlZCB2YWx1ZXMgYXJlbid0IGNsZWFyXG5cbiMjIFJlZmFjdG9yaW5nIFBsYW5cblxuSSdsbCByZWZhY3RvciB0aGlzIGJ5OlxuXG4xLiAqKkdyb3VwaW5nIHJlbGF0ZWQgcHJvcGVydGllcyoqIGZvciBiZXR0ZXIgb3JnYW5pemF0aW9uXG4yLiAqKlVzaW5nIG1vcmUgbWVhbmluZ2Z1bCBkZWZhdWx0IHZhbHVlcyoqIGluc3RlYWQgb2YgZW1wdHkgc3RyaW5ncyBhbmQgdW5kZWZpbmVkXG4zLiAqKkFkZGluZyB0eXBlIHNhZmV0eSoqIHdpdGggcHJvcGVyIGRlZmF1bHRzXG40LiAqKkltcHJvdmluZyByZWFkYWJpbGl0eSoqIHdpdGggYmV0dGVyIHN0cnVjdHVyZSBhbmQgY29tbWVudHNcbjUuICoqRm9sbG93aW5nIFR5cGVTY3JpcHQgYmVzdCBwcmFjdGljZXMqKiBmb3IgZGVmYXVsdCBvYmplY3QgcGF0dGVybnNcblxuTGV0IG1lIGltcGxlbWVudCB0aGUgcmVmYWN0b3Jpbmc6XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJOb3RlOlxuVmlldyByYW5nZSBleHBhbmRlZCB0byBtZWV0IG1pbmltdW0gc2l6ZSBvZiA1MDAgbGluZXMuIE5ldyByYW5nZTogWzEzMCwgNjI5XS5cblxuSGVyZSdzIHRoZSByZXN1bHQgb2YgcnVubmluZyBgY2F0IC1uYCBvbiBzcmMvY29tcG9uZW50cy9Cb3QudHN4OlxuICAgMTMwXHRcbiAgIDEzMVx0ZXhwb3J0IHR5cGUgQm90UHJvcHMgPSB7XG4gICAxMzJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgMTMzXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAxMzRcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgMTM1XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAxMzZcdCAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzdcdCAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOFx0ICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzlcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgIDE0MFx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAxNDFcdCAgdGV4dElucHV0PzogVGV4dElucHV0VGhlbWU7XG4gICAxNDJcdCAgZmVlZGJhY2s/OiBGZWVkYmFja1RoZW1lO1xuICAgMTQzXHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0NFx0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0NVx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDZcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ3XHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAxNDhcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgMTQ5XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTUwXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgMTUxXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgMTUyXHQgIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xuICAgMTUzXHQgIGZvb3Rlcj86IEZvb3RlclRoZW1lO1xuICAgMTU0XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgIDE1NVx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgMTU2XHQgIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCB7IHByb21wdDogc3RyaW5nIH0+O1xuICAgMTU3XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgIDE1OFx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAxNTlcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgMTYwXHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgIDE2MVx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgIDE2Mlx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgIDE2M1x0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgIDE2NFx0ICBpc1VzZUZBUT86IGJvb2xlYW47XG4gICAxNjVcdCAgZmlsZVBhdGg/OiBzdHJpbmc7XG4gICAxNjZcdCAgc3VnZ2VzdFF1ZXN0aW9ucz86IHN0cmluZztcbiAgIDE2N1x0ICBleHRlcm5hbERhdGE/OiBzdHJpbmc7XG4gICAxNjhcdCAgY2FsbEJhY2tGdW5jdGlvbj86IChlOiBhbnkpID0+IHZvaWQ7XG4gICAxNjlcdCAgY2FsbEJhY2tJY29uPzogc3RyaW5nO1xuICAgMTcwXHR9O1xuICAgMTcxXHRcbiAgIDE3Mlx0ZXhwb3J0IHR5cGUgTGVhZHNDb25maWcgPSB7XG4gICAxNzNcdCAgc3RhdHVzOiBib29sZWFuO1xuICAgMTc0XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTc1XHQgIG5hbWU/OiBib29sZWFuO1xuICAgMTc2XHQgIGVtYWlsPzogYm9vbGVhbjtcbiAgIDE3N1x0ICBwaG9uZT86IGJvb2xlYW47XG4gICAxNzhcdCAgc3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XG4gICAxNzlcdH07XG4gICAxODBcdFxuICAgMTgxXHRjb25zdCBkZWZhdWx0V2VsY29tZU1lc3NhZ2UgPSAnWGluIGNow6BvIHTDtGkgY8OzIHRo4buDIGdpw7pwIGfDrCBjaG8gYuG6oW4/JztcbiAgIDE4Mlx0Y29uc3Qgc3RhdHVzTXNnID0ge1xuICAgMTgzXHQgIDM6ICfEkGFuZyB44butIGzDvS4uLicsXG4gICAxODRcdCAgMTA6ICfEkGFuZyB04bqjaSBk4buvIGxp4buHdSwgdnVpIGzDsm5nIMSR4bujaS4uLicsXG4gICAxODVcdCAgNDA6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBo4buHIHRo4buRbmcgxJFhbmcgcXXDoSB04bqjaSwgdnVpIGzDsm5nIHRo4butIGzhuqFpIHNhdS4nLFxuICAgMTg2XHQgIDUwOiAnJyxcbiAgIDE4N1x0fTtcbiAgIDE4OFx0XG4gICAxODlcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZmZmZic7XG4gICAxOTBcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnIzMwMzIzNSc7XG4gICAxOTFcdFxuICAgMTkyXHRleHBvcnQgY29uc3QgQm90ID0gKGJvdFByb3BzOiBCb3RQcm9wcyAmIHsgY2xhc3M/OiBzdHJpbmcgfSkgPT4ge1xuICAgMTkzXHQgIC8vIHNldCBhIGRlZmF1bHQgdmFsdWUgZm9yIHNob3dUaXRsZSBpZiBub3Qgc2V0IGFuZCBtZXJnZSB3aXRoIG90aGVyIHByb3BzXG4gICAxOTRcdFxuICAgMTk1XHQgIGNvbnN0IHByb3BzID0gbWVyZ2VQcm9wcyh7IHNob3dUaXRsZTogdHJ1ZSB9LCBib3RQcm9wcyk7XG4gICAxOTZcdCAgbGV0IGNoYXRDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk3XHQgIGxldCBib3R0b21TcGFjZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk4XHQgIGxldCBib3RDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk5XHQgIGxldCBpbnRlcnZhbEN1cnJlbnRNc2c6IGFueTtcbiAgIDIwMFx0XG4gICAyMDFcdCAgY29uc3QgW3Nob3dTY3JvbGxCdXR0b24sIHNldFNob3dTY3JvbGxCdXR0b25dID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIwMlx0ICBjb25zdCBbdXNlcklucHV0LCBzZXRVc2VySW5wdXRdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIwM1x0ICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjA0XHQgIGNvbnN0IFtzb3VyY2VQb3B1cE9wZW4sIHNldFNvdXJjZVBvcHVwT3Blbl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjA1XHQgIGNvbnN0IFtzb3VyY2VQb3B1cFNyYywgc2V0U291cmNlUG9wdXBTcmNdID0gY3JlYXRlU2lnbmFsKHt9KTtcbiAgIDIwNlx0ICBjb25zdCBbY3VycmVudFN0YXR1c01zZywgc2V0Q3VycmVudFN0YXR1c01zZ10gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjA3XHQgIGNvbnN0IFtpc05ldHdvcmtFcnJvciwgc2V0SXNOZXR3b3JrRXJyb3JdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIwOFx0ICBjb25zdCBbbmV0d29ya0Vycm9yTWVzc2FnZSwgc2V0TmV0d29ya0Vycm9yTWVzc2FnZV0gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjA5XHQgIGNvbnN0IFt1c2VyLCBzZXRVc2VyXSA9IGNyZWF0ZVNpZ25hbCh7IGlkOiAnJywgdXNlcm5hbWU6ICcnLCBlbWFpbDogJycgfSk7XG4gICAyMTBcdCAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSBjcmVhdGVTaWduYWw8TWVzc2FnZVR5cGVbXT4oXG4gICAyMTFcdCAgICBbXG4gICAyMTJcdCAgICAgIHtcbiAgIDIxM1x0ICAgICAgICBtZXNzYWdlOiBwcm9wcy53ZWxjb21lTWVzc2FnZSA/PyBkZWZhdWx0V2VsY29tZU1lc3NhZ2UsXG4gICAyMTRcdCAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnIGFzIG1lc3NhZ2VUeXBlLFxuICAgMjE1XHQgICAgICB9LFxuICAgMjE2XHQgICAgICAuLi4ocHJvcHMuc2Vjb25kTWVzc2FnZSA/IFt7IG1lc3NhZ2U6IHByb3BzLnNlY29uZE1lc3NhZ2UsIHR5cGU6ICdhcGlNZXNzYWdlJyBhcyBtZXNzYWdlVHlwZSB9XSA6IFtdKSxcbiAgIDIxN1x0ICAgIF0sXG4gICAyMThcdCAgICB7IGVxdWFsczogZmFsc2UgfSxcbiAgIDIxOVx0ICApO1xuICAgMjIwXHRcbiAgIDIyMVx0ICBjb25zdCBbaXNDaGF0Rmxvd0F2YWlsYWJsZVRvU3RyZWFtLCBzZXRJc0NoYXRGbG93QXZhaWxhYmxlVG9TdHJlYW1dID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIyMlx0ICBjb25zdCBbY2hhdElkLCBzZXRDaGF0SWRdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIyM1x0ICBjb25zdCBbaXNNZXNzYWdlU3RvcHBpbmcsIHNldElzTWVzc2FnZVN0b3BwaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyMjRcdCAgY29uc3QgW3N0YXJ0ZXJQcm9tcHRzLCBzZXRTdGFydGVyUHJvbXB0c10gPSBjcmVhdGVTaWduYWw8c3RyaW5nW10+KFtdLCB7IGVxdWFsczogZmFsc2UgfSk7XG4gICAyMjVcdCAgY29uc3QgW2NoYXRGZWVkYmFja1N0YXR1cywgc2V0Q2hhdEZlZWRiYWNrU3RhdHVzXSA9IGNyZWF0ZVNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gICAyMjZcdCAgY29uc3QgW2Z1bGxGaWxlVXBsb2FkLCBzZXRGdWxsRmlsZVVwbG9hZF0gPSBjcmVhdGVTaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICAgMjI3XHQgIGNvbnN0IFt1cGxvYWRzQ29uZmlnLCBzZXRVcGxvYWRzQ29uZmlnXSA9IGNyZWF0ZVNpZ25hbDxVcGxvYWRzQ29uZmlnPigpO1xuICAgMjI4XHQgIGNvbnN0IFtsZWFkc0NvbmZpZywgc2V0TGVhZHNDb25maWddID0gY3JlYXRlU2lnbmFsPExlYWRzQ29uZmlnPigpO1xuICAgMjI5XHQgIGNvbnN0IFtpc0xlYWRTYXZlZCwgc2V0SXNMZWFkU2F2ZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIzMFx0ICBjb25zdCBbbGVhZEVtYWlsLCBzZXRMZWFkRW1haWxdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIzMVx0ICBjb25zdCBbZGlzY2xhaW1lclBvcHVwT3Blbiwgc2V0RGlzY2xhaW1lclBvcHVwT3Blbl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjMyXHQgIGNvbnN0IFtkaXNhYmxlSW5wdXQsIHNldERpc2FibGVJbnB1dF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjMzXHQgIGNvbnN0IFtmaWxlU3VtbWFyeSwgc2V0RmlsZVN1bW1hcnldID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIzNFx0ICBjb25zdCBbZmlsZUNvbnRlbnQsIHNldEZpbGVDb250ZW50XSA9IGNyZWF0ZVNpZ25hbCgnJyk7XG4gICAyMzVcdCAgY29uc3QgW3N1Z2dlc3RRdWVzdGlvbiwgc2V0U3VnZ2VzdFF1ZXN0aW9uXSA9IGNyZWF0ZVNpZ25hbChbXSk7XG4gICAyMzZcdFxuICAgMjM3XHQgIC8vIGRyYWcgJiBkcm9wIGZpbGUgaW5wdXRcbiAgIDIzOFx0ICAvLyBUT0RPOiBmaXggdGhpcyB0eXBlXG4gICAyMzlcdCAgY29uc3QgW3ByZXZpZXdzLCBzZXRQcmV2aWV3c10gPSBjcmVhdGVTaWduYWw8RmlsZVByZXZpZXdbXT4oW10pO1xuICAgMjQwXHRcbiAgIDI0MVx0ICAvLyBhdWRpbyByZWNvcmRpbmdcbiAgIDI0Mlx0ICBjb25zdCBbZWxhcHNlZFRpbWUsIHNldEVsYXBzZWRUaW1lXSA9IGNyZWF0ZVNpZ25hbCgnMDA6MDAnKTtcbiAgIDI0M1x0ICBjb25zdCBbaXNSZWNvcmRpbmcsIHNldElzUmVjb3JkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDRcdCAgY29uc3QgW3JlY29yZGluZ05vdFN1cHBvcnRlZCwgc2V0UmVjb3JkaW5nTm90U3VwcG9ydGVkXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDVcdCAgY29uc3QgW2lzTG9hZGluZ1JlY29yZGluZywgc2V0SXNMb2FkaW5nUmVjb3JkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDZcdFxuICAgMjQ3XHQgIC8vIGZvbGxvdy11cCBwcm9tcHRzXG4gICAyNDhcdCAgY29uc3QgW2ZvbGxvd1VwUHJvbXB0c1N0YXR1cywgc2V0Rm9sbG93VXBQcm9tcHRzU3RhdHVzXSA9IGNyZWF0ZVNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gICAyNDlcdCAgY29uc3QgW2ZvbGxvd1VwUHJvbXB0cywgc2V0Rm9sbG93VXBQcm9tcHRzXSA9IGNyZWF0ZVNpZ25hbDxzdHJpbmdbXT4oW10pO1xuICAgMjUwXHRcbiAgIDI1MVx0ICAvLyBkcmFnICYgZHJvcFxuICAgMjUyXHQgIGNvbnN0IFtpc0RyYWdBY3RpdmUsIHNldElzRHJhZ0FjdGl2ZV0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjUzXHQgIGNvbnN0IFt1cGxvYWRlZEZpbGVzLCBzZXRVcGxvYWRlZEZpbGVzXSA9IGNyZWF0ZVNpZ25hbDx7IGZpbGU6IEZpbGU7IHR5cGU6IHN0cmluZyB9W10+KFtdKTtcbiAgIDI1NFx0XG4gICAyNTVcdCAgY3JlYXRlTWVtbygoKSA9PiB7XG4gICAyNTZcdCAgICBjb25zdCBjdXN0b21lcklkID0gKHByb3BzLmNoYXRmbG93Q29uZmlnPy52YXJzIGFzIGFueSk/LmN1c3RvbWVySWQ7XG4gICAyNTdcdCAgICBzZXRDaGF0SWQoY3VzdG9tZXJJZCA/IGAke2N1c3RvbWVySWQudG9TdHJpbmcoKX0rJHt1dWlkdjQoKX1gIDogdXVpZHY0KCkpO1xuICAgMjU4XHQgIH0pO1xuICAgMjU5XHRcbiAgIDI2MFx0ICBvbk1vdW50KCgpID0+IHtcbiAgIDI2MVx0ICAgIGlmIChib3RQcm9wcz8ub2JzZXJ2ZXJzQ29uZmlnKSB7XG4gICAyNjJcdCAgICAgIGNvbnN0IHsgb2JzZXJ2ZVVzZXJJbnB1dCwgb2JzZXJ2ZUxvYWRpbmcsIG9ic2VydmVNZXNzYWdlcyB9ID0gYm90UHJvcHMub2JzZXJ2ZXJzQ29uZmlnO1xuICAgMjYzXHQgICAgICB0eXBlb2Ygb2JzZXJ2ZVVzZXJJbnB1dCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgMjY0XHQgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb2xpZC9yZWFjdGl2aXR5XG4gICAyNjVcdCAgICAgICAgY3JlYXRlTWVtbygoKSA9PiB7XG4gICAyNjZcdCAgICAgICAgICBvYnNlcnZlVXNlcklucHV0KHVzZXJJbnB1dCgpKTtcbiAgIDI2N1x0ICAgICAgICB9KTtcbiAgIDI2OFx0ICAgICAgdHlwZW9mIG9ic2VydmVMb2FkaW5nID09PSAnZnVuY3Rpb24nICYmXG4gICAyNjlcdCAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbGlkL3JlYWN0aXZpdHlcbiAgIDI3MFx0ICAgICAgICBjcmVhdGVNZW1vKCgpID0+IHtcbiAgIDI3MVx0ICAgICAgICAgIG9ic2VydmVMb2FkaW5nKGxvYWRpbmcoKSk7XG4gICAyNzJcdCAgICAgICAgfSk7XG4gICAyNzNcdCAgICAgIHR5cGVvZiBvYnNlcnZlTWVzc2FnZXMgPT09ICdmdW5jdGlvbicgJiZcbiAgIDI3NFx0ICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29saWQvcmVhY3Rpdml0eVxuICAgMjc1XHQgICAgICAgIGNyZWF0ZU1lbW8oKCkgPT4ge1xuICAgMjc2XHQgICAgICAgICAgb2JzZXJ2ZU1lc3NhZ2VzKG1lc3NhZ2VzKCkpO1xuICAgMjc3XHQgICAgICAgIH0pO1xuICAgMjc4XHQgICAgfVxuICAgMjc5XHRcbiAgIDI4MFx0ICAgIGlmICghYm90dG9tU3BhY2VyKSByZXR1cm47XG4gICAyODFcdCAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgIDI4Mlx0ICAgICAgY2hhdENvbnRhaW5lcj8uc2Nyb2xsVG8oMCwgY2hhdENvbnRhaW5lci5zY3JvbGxIZWlnaHQpO1xuICAgMjgzXHQgICAgfSwgNTApO1xuICAgMjg0XHQgIH0pO1xuICAgMjg1XHRcbiAgIDI4Nlx0ICBjcmVhdGVFZmZlY3QoKCkgPT4ge1xuICAgMjg3XHQgICAgY29uc3QgY3VycmVudE1lc3NhZ2VzID0gbWVzc2FnZXMoKTtcbiAgIDI4OFx0XG4gICAyODlcdCAgICBjdXJyZW50TWVzc2FnZXM/LmZvckVhY2goKG1lc3NhZ2UpID0+IHtcbiAgIDI5MFx0ICAgICAgbWVzc2FnZS5hZ2VudFJlYXNvbmluZz8uZm9yRWFjaCgocmVhc29uOiBhbnkpID0+IHtcbiAgIDI5MVx0ICAgICAgICBpZiAocmVhc29uPy5zdGF0ZSkge1xuICAgMjkyXHQgICAgICAgICAgY29uc3QgeyBuYW1lLCBwaG9uZV9udW1iZXIsIGVtYWlsLCBpZCB9ID0gcmVhc29uLnN0YXRlO1xuICAgMjkzXHQgICAgICAgICAgY29uc3QgdXNlckluZm86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgIDI5NFx0ICAgICAgICAgIGlmIChuYW1lICYmIG5hbWUgIT09ICdOb25lJykge1xuICAgMjk1XHQgICAgICAgICAgICB1c2VySW5mby5uYW1lID0gbmFtZTtcbiAgIDI5Nlx0ICAgICAgICAgIH1cbiAgIDI5N1x0ICAgICAgICAgIGlmIChwaG9uZV9udW1iZXIgJiYgcGhvbmVfbnVtYmVyICE9PSAnTm9uZScpIHtcbiAgIDI5OFx0ICAgICAgICAgICAgdXNlckluZm8ucGhvbmVOdW1iZXIgPSBwaG9uZV9udW1iZXI7XG4gICAyOTlcdCAgICAgICAgICB9XG4gICAzMDBcdCAgICAgICAgICBpZiAoZW1haWwgJiYgZW1haWwgIT09ICdOb25lJykge1xuICAgMzAxXHQgICAgICAgICAgICB1c2VySW5mby5lbWFpbCA9IGVtYWlsO1xuICAgMzAyXHQgICAgICAgICAgfVxuICAgMzAzXHQgICAgICAgICAgaWYgKGlkICYmIGlkICE9PSAnTm9uZScpIHtcbiAgIDMwNFx0ICAgICAgICAgICAgdXNlckluZm8uaWQgPSBpZDtcbiAgIDMwNVx0ICAgICAgICAgIH1cbiAgIDMwNlx0ICAgICAgICAgIGlmIChPYmplY3Qua2V5cyh1c2VySW5mbykubGVuZ3RoID4gMCkge1xuICAgMzA3XHQgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2hhdHdvb3Q6dXNlckluZm8nLCBKU09OLnN0cmluZ2lmeSh1c2VySW5mbykpO1xuICAgMzA4XHQgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY21jdHM6dXNlckluZm8nLCBKU09OLnN0cmluZ2lmeSh1c2VySW5mbykpO1xuICAgMzA5XHQgICAgICAgICAgfVxuICAgMzEwXHQgICAgICAgIH1cbiAgIDMxMVx0ICAgICAgfSk7XG4gICAzMTJcdCAgICB9KTtcbiAgIDMxM1x0ICB9KTtcbiAgIDMxNFx0XG4gICAzMTVcdCAgY29uc3Qgc2Nyb2xsVG9Cb3R0b20gPSAoKSA9PiB7XG4gICAzMTZcdCAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgIDMxN1x0ICAgICAgY2hhdENvbnRhaW5lcj8uc2Nyb2xsVG8oMCwgY2hhdENvbnRhaW5lci5zY3JvbGxIZWlnaHQpO1xuICAgMzE4XHQgICAgfSwgNTApO1xuICAgMzE5XHQgIH07XG4gICAzMjBcdFxuICAgMzIxXHQgIC8qKlxuICAgMzIyXHQgICAqIEFkZCBlYWNoIGNoYXQgbWVzc2FnZSBpbnRvIGxvY2FsU3RvcmFnZVxuICAgMzIzXHQgICAqL1xuICAgMzI0XHQgIGNvbnN0IGFkZENoYXRNZXNzYWdlID0gKGFsbE1lc3NhZ2U6IE1lc3NhZ2VUeXBlW10pID0+IHtcbiAgIDMyNVx0ICAgIGNvbnN0IG1lc3NhZ2VzID0gYWxsTWVzc2FnZS5tYXAoKGl0ZW0pID0+IHtcbiAgIDMyNlx0ICAgICAgaWYgKGl0ZW0uZmlsZVVwbG9hZHMpIHtcbiAgIDMyN1x0ICAgICAgICBjb25zdCBmaWxlVXBsb2FkcyA9IGl0ZW0/LmZpbGVVcGxvYWRzLm1hcCgoZmlsZSkgPT4gKHtcbiAgIDMyOFx0ICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgIDMyOVx0ICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgIDMzMFx0ICAgICAgICAgIG1pbWU6IGZpbGUubWltZSxcbiAgIDMzMVx0ICAgICAgICB9KSk7XG4gICAzMzJcdCAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgZmlsZVVwbG9hZHMgfTtcbiAgIDMzM1x0ICAgICAgfVxuICAgMzM0XHQgICAgICByZXR1cm4gaXRlbTtcbiAgIDMzNVx0ICAgIH0pO1xuICAgMzM2XHQgICAgc2V0TG9jYWxTdG9yYWdlQ2hhdGZsb3cocHJvcHMuY2hhdGZsb3dpZCwgY2hhdElkKCksIHsgY2hhdEhpc3Rvcnk6IG1lc3NhZ2VzIH0pO1xuICAgMzM3XHQgIH07XG4gICAzMzhcdFxuICAgMzM5XHQgIC8vIERlZmluZSB0aGUgYXVkaW9SZWZcbiAgIDM0MFx0ICBsZXQgYXVkaW9SZWY6IEhUTUxBdWRpb0VsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAzNDFcdCAgLy8gQ0ROIGxpbmsgZm9yIGRlZmF1bHQgcmVjZWl2ZSBzb3VuZFxuICAgMzQyXHQgIGNvbnN0IGRlZmF1bHRSZWNlaXZlU291bmQgPSAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL0Zsb3dpc2VBSS9GbG93aXNlQ2hhdEVtYmVkQGxhdGVzdC9zcmMvYXNzZXRzL3JlY2VpdmVfbWVzc2FnZS5tcDMnO1xuICAgMzQzXHQgIGNvbnN0IHBsYXlSZWNlaXZlU291bmQgPSAoKSA9PiB7XG4gICAzNDRcdCAgICBpZiAocHJvcHMudGV4dElucHV0Py5yZWNlaXZlTWVzc2FnZVNvdW5kKSB7XG4gICAzNDVcdCAgICAgIGxldCBhdWRpb1NyYyA9IGRlZmF1bHRSZWNlaXZlU291bmQ7XG4gICAzNDZcdCAgICAgIGlmIChwcm9wcy50ZXh0SW5wdXQ/LnJlY2VpdmVTb3VuZExvY2F0aW9uKSB7XG4gICAzNDdcdCAgICAgICAgYXVkaW9TcmMgPSBwcm9wcy50ZXh0SW5wdXQ/LnJlY2VpdmVTb3VuZExvY2F0aW9uO1xuICAgMzQ4XHQgICAgICB9XG4gICAzNDlcdCAgICAgIGF1ZGlvUmVmID0gbmV3IEF1ZGlvKGF1ZGlvU3JjKTtcbiAgIDM1MFx0ICAgICAgYXVkaW9SZWYucGxheSgpO1xuICAgMzUxXHQgICAgfVxuICAgMzUyXHQgIH07XG4gICAzNTNcdFxuICAgMzU0XHQgIGxldCBoYXNTb3VuZFBsYXllZCA9IGZhbHNlO1xuICAgMzU1XHRcbiAgIDM1Nlx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZSA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgIDM1N1x0ICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgIDM1OFx0ICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgMzU5XHQgICAgICBpZiAoYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0udHlwZSA9PT0gJ3VzZXJNZXNzYWdlJykgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgMzYwXHQgICAgICBpZiAoIXRleHQpIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDM2MVx0ICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0ubWVzc2FnZSArPSB0ZXh0O1xuICAgMzYyXHQgICAgICBhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS5yYXRpbmcgPSB1bmRlZmluZWQ7XG4gICAzNjNcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmRhdGVUaW1lID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgMzY0XHQgICAgICBpZiAoIWhhc1NvdW5kUGxheWVkKSB7XG4gICAzNjVcdCAgICAgICAgcGxheVJlY2VpdmVTb3VuZCgpO1xuICAgMzY2XHQgICAgICAgIGhhc1NvdW5kUGxheWVkID0gdHJ1ZTtcbiAgIDM2N1x0ICAgICAgfVxuICAgMzY4XHQgICAgICBhZGRDaGF0TWVzc2FnZShhbGxNZXNzYWdlcyk7XG4gICAzNjlcdCAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDM3MFx0ICAgIH0pO1xuICAgMzcxXHQgIH07XG4gICAzNzJcdFxuICAgMzczXHQgIGNvbnN0IHVwZGF0ZUVycm9yTWVzc2FnZSA9IChlcnJvck1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgMzc0XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgMzc1XHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICAzNzZcdCAgICAgIGFsbE1lc3NhZ2VzLnB1c2goeyBtZXNzYWdlOiBwcm9wcy5lcnJvck1lc3NhZ2UgfHwgZXJyb3JNZXNzYWdlLCB0eXBlOiAnYXBpTWVzc2FnZScgfSk7XG4gICAzNzdcdCAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDM3OFx0ICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgMzc5XHQgICAgfSk7XG4gICAzODBcdCAgfTtcbiAgIDM4MVx0XG4gICAzODJcdCAgY29uc3QgdXBkYXRlTGFzdE1lc3NhZ2VTb3VyY2VEb2N1bWVudHMgPSAoc291cmNlRG9jdW1lbnRzOiBhbnkpID0+IHtcbiAgIDM4M1x0ICAgIHNldE1lc3NhZ2VzKChkYXRhKSA9PiB7XG4gICAzODRcdCAgICAgIGNvbnN0IHVwZGF0ZWQgPSBkYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xuICAgMzg1XHQgICAgICAgIGlmIChpID09PSBkYXRhLmxlbmd0aCAtIDEpIHtcbiAgIDM4Nlx0ICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIHNvdXJjZURvY3VtZW50cyB9O1xuICAgMzg3XHQgICAgICAgIH1cbiAgIDM4OFx0ICAgICAgICByZXR1cm4gaXRlbTtcbiAgIDM4OVx0ICAgICAgfSk7XG4gICAzOTBcdCAgICAgIGFkZENoYXRNZXNzYWdlKHVwZGF0ZWQpO1xuICAgMzkxXHQgICAgICByZXR1cm4gWy4uLnVwZGF0ZWRdO1xuICAgMzkyXHQgICAgfSk7XG4gICAzOTNcdCAgfTtcbiAgIDM5NFx0XG4gICAzOTVcdCAgY29uc3QgdXBkYXRlTGFzdE1lc3NhZ2VVc2VkVG9vbHMgPSAodXNlZFRvb2xzOiBhbnlbXSkgPT4ge1xuICAgMzk2XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgMzk3XHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICAzOThcdCAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICAzOTlcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnVzZWRUb29scyA9IHVzZWRUb29scztcbiAgIDQwMFx0ICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDAxXHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MDJcdCAgICB9KTtcbiAgIDQwM1x0ICB9O1xuICAgNDA0XHRcbiAgIDQwNVx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUZpbGVBbm5vdGF0aW9ucyA9IChmaWxlQW5ub3RhdGlvbnM6IGFueSkgPT4ge1xuICAgNDA2XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNDA3XHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA0MDhcdCAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MDlcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmZpbGVBbm5vdGF0aW9ucyA9IGZpbGVBbm5vdGF0aW9ucztcbiAgIDQxMFx0ICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDExXHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MTJcdCAgICB9KTtcbiAgIDQxM1x0ICB9O1xuICAgNDE0XHRcbiAgIDQxNVx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUFnZW50UmVhc29uaW5nID0gKGFnZW50UmVhc29uaW5nOiBzdHJpbmcgfCBJQWdlbnRSZWFzb25pbmdbXSkgPT4ge1xuICAgNDE2XHQgICAgc2V0TWVzc2FnZXMoKGRhdGEpID0+IHtcbiAgIDQxN1x0ICAgICAgY29uc3QgdXBkYXRlZCA9IGRhdGEubWFwKChpdGVtLCBpKSA9PiB7XG4gICA0MThcdCAgICAgICAgaWYgKGkgPT09IGRhdGEubGVuZ3RoIC0gMSkge1xuICAgNDE5XHQgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgYWdlbnRSZWFzb25pbmc6IHR5cGVvZiBhZ2VudFJlYXNvbmluZyA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGFnZW50UmVhc29uaW5nKSA6IGFnZW50UmVhc29uaW5nIH07XG4gICA0MjBcdCAgICAgICAgfVxuICAgNDIxXHQgICAgICAgIHJldHVybiBpdGVtO1xuICAgNDIyXHQgICAgICB9KTtcbiAgIDQyM1x0ICAgICAgYWRkQ2hhdE1lc3NhZ2UodXBkYXRlZCk7XG4gICA0MjRcdCAgICAgIHJldHVybiBbLi4udXBkYXRlZF07XG4gICA0MjVcdCAgICB9KTtcbiAgIDQyNlx0ICB9O1xuICAgNDI3XHRcbiAgIDQyOFx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUFydGlmYWN0cyA9IChhcnRpZmFjdHM6IEZpbGVVcGxvYWRbXSkgPT4ge1xuICAgNDI5XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNDMwXHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA0MzFcdCAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MzJcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmFydGlmYWN0cyA9IGFydGlmYWN0cztcbiAgIDQzM1x0ICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDM0XHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MzVcdCAgICB9KTtcbiAgIDQzNlx0ICB9O1xuICAgNDM3XHRcbiAgIDQzOFx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUFjdGlvbiA9IChhY3Rpb246IElBY3Rpb24pID0+IHtcbiAgIDQzOVx0ICAgIHNldE1lc3NhZ2VzKChkYXRhKSA9PiB7XG4gICA0NDBcdCAgICAgIGNvbnN0IHVwZGF0ZWQgPSBkYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xuICAgNDQxXHQgICAgICAgIGlmIChpID09PSBkYXRhLmxlbmd0aCAtIDEpIHtcbiAgIDQ0Mlx0ICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGFjdGlvbjogdHlwZW9mIGFjdGlvbiA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGFjdGlvbikgOiBhY3Rpb24gfTtcbiAgIDQ0M1x0ICAgICAgICB9XG4gICA0NDRcdCAgICAgICAgcmV0dXJuIGl0ZW07XG4gICA0NDVcdCAgICAgIH0pO1xuICAgNDQ2XHQgICAgICBhZGRDaGF0TWVzc2FnZSh1cGRhdGVkKTtcbiAgIDQ0N1x0ICAgICAgcmV0dXJuIFsuLi51cGRhdGVkXTtcbiAgIDQ0OFx0ICAgIH0pO1xuICAgNDQ5XHQgIH07XG4gICA0NTBcdFxuICAgNDUxXHQgIGNvbnN0IGNsZWFyUHJldmlld3MgPSAoKSA9PiB7XG4gICA0NTJcdCAgICAvLyBSZXZva2UgdGhlIGRhdGEgdXJpcyB0byBhdm9pZCBtZW1vcnkgbGVha3NcbiAgIDQ1M1x0ICAgIHByZXZpZXdzKCkuZm9yRWFjaCgoZmlsZSkgPT4gVVJMLnJldm9rZU9iamVjdFVSTChmaWxlLnByZXZpZXcpKTtcbiAgIDQ1NFx0ICAgIHNldFByZXZpZXdzKFtdKTtcbiAgIDQ1NVx0ICB9O1xuICAgNDU2XHRcbiAgIDQ1N1x0ICAvLyBIYW5kbGUgZXJyb3JzXG4gICA0NThcdCAgY29uc3QgaGFuZGxlRXJyb3IgPSAobWVzc2FnZSA9ICdPb3BzISBUaGVyZSBzZWVtcyB0byBiZSBhbiBlcnJvci4gUGxlYXNlIHRyeSBhZ2Fpbi4nKSA9PiB7XG4gICA0NTlcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA0NjBcdCAgICAgIGNvbnN0IG1lc3NhZ2VzOiBNZXNzYWdlVHlwZVtdID0gWy4uLnByZXZNZXNzYWdlcywgeyBtZXNzYWdlOiBwcm9wcy5lcnJvck1lc3NhZ2UgfHwgbWVzc2FnZSwgdHlwZTogJ2FwaU1lc3NhZ2UnIH1dO1xuICAgNDYxXHQgICAgICBhZGRDaGF0TWVzc2FnZShtZXNzYWdlcyk7XG4gICA0NjJcdCAgICAgIHJldHVybiBtZXNzYWdlcztcbiAgIDQ2M1x0ICAgIH0pO1xuICAgNDY0XHQgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICA0NjVcdCAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgNDY2XHQgICAgc2V0VXNlcklucHV0KCcnKTtcbiAgIDQ2N1x0ICAgIHNldFVwbG9hZGVkRmlsZXMoW10pO1xuICAgNDY4XHQgICAgc2Nyb2xsVG9Cb3R0b20oKTtcbiAgIDQ2OVx0ICB9O1xuICAgNDcwXHRcbiAgIDQ3MVx0ICBjb25zdCBoYW5kbGVEaXNjbGFpbWVyQWNjZXB0ID0gKCkgPT4ge1xuICAgNDcyXHQgICAgc2V0RGlzY2xhaW1lclBvcHVwT3BlbihmYWxzZSk7IC8vIENsb3NlIHRoZSBkaXNjbGFpbWVyIHBvcHVwXG4gICA0NzNcdCAgICBzZXRDb29raWUoJ2NoYXRib3REaXNjbGFpbWVyJywgJ3RydWUnLCAzNjUpOyAvLyBEaXNjbGFpbWVyIGFjY2VwdGVkXG4gICA0NzRcdCAgfTtcbiAgIDQ3NVx0XG4gICA0NzZcdCAgY29uc3QgcHJvbXB0Q2xpY2sgPSAocHJvbXB0OiBzdHJpbmcpID0+IHtcbiAgIDQ3N1x0ICAgIGhhbmRsZVN1Ym1pdChwcm9tcHQpO1xuICAgNDc4XHQgIH07XG4gICA0NzlcdFxuICAgNDgwXHQgIGNvbnN0IGZvbGxvd1VwUHJvbXB0Q2xpY2sgPSAocHJvbXB0OiBzdHJpbmcpID0+IHtcbiAgIDQ4MVx0ICAgIHNldEZvbGxvd1VwUHJvbXB0cyhbXSk7XG4gICA0ODJcdCAgICBoYW5kbGVTdWJtaXQocHJvbXB0KTtcbiAgIDQ4M1x0ICB9O1xuICAgNDg0XHRcbiAgIDQ4NVx0ICBjb25zdCB1cGRhdGVNZXRhZGF0YSA9IChkYXRhOiBhbnksIGlucHV0OiBzdHJpbmcpID0+IHtcbiAgIDQ4Nlx0ICAgIGlmIChkYXRhLmNoYXRJZCkge1xuICAgNDg3XHQgICAgICBzZXRDaGF0SWQoZGF0YS5jaGF0SWQpO1xuICAgNDg4XHQgICAgfVxuICAgNDg5XHRcbiAgIDQ5MFx0ICAgIC8vIHNldCBtZXNzYWdlIGlkIHRoYXQgaXMgbmVlZGVkIGZvciBmZWVkYmFja1xuICAgNDkxXHQgICAgaWYgKGRhdGEuY2hhdE1lc3NhZ2VJZCkge1xuICAgNDkyXHQgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA0OTNcdCAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgNDk0XHQgICAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAnYXBpTWVzc2FnZScpIHtcbiAgIDQ5NVx0ICAgICAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLm1lc3NhZ2VJZCA9IGRhdGEuY2hhdE1lc3NhZ2VJZDtcbiAgIDQ5Nlx0ICAgICAgICB9XG4gICA0OTdcdCAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDk4XHQgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDQ5OVx0ICAgICAgfSk7XG4gICA1MDBcdCAgICB9XG4gICA1MDFcdFxuICAgNTAyXHQgICAgaWYgKGlucHV0ID09PSAnJyAmJiBkYXRhLnF1ZXN0aW9uKSB7XG4gICA1MDNcdCAgICAgIC8vIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgcXVlc3Rpb24gZXZlbiBpZiBpdCB3YXMgaW4gYW4gYXVkaW8gZm9ybWF0XG4gICA1MDRcdCAgICAgIC8vIHNvIGlmIGlucHV0IGlzIGVtcHR5IGJ1dCB0aGUgcmVzcG9uc2UgY29udGFpbnMgdGhlIHF1ZXN0aW9uLCB1cGRhdGUgdGhlIHVzZXIgbWVzc2FnZSB0byBzaG93IHRoZSBxdWVzdGlvblxuICAgNTA1XHQgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA1MDZcdCAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgNTA3XHQgICAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAyXS50eXBlID09PSAnYXBpTWVzc2FnZScpIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDUwOFx0ICAgICAgICBhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAyXS5tZXNzYWdlID0gZGF0YS5xdWVzdGlvbjtcbiAgIDUwOVx0ICAgICAgICBhZGRDaGF0TWVzc2FnZShhbGxNZXNzYWdlcyk7XG4gICA1MTBcdCAgICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgNTExXHQgICAgICB9KTtcbiAgIDUxMlx0ICAgIH1cbiAgIDUxM1x0XG4gICA1MTRcdCAgICBpZiAoZGF0YS5mb2xsb3dVcFByb21wdHMpIHtcbiAgIDUxNVx0ICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNTE2XHQgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDUxN1x0ICAgICAgICBpZiAoYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0udHlwZSA9PT0gJ3VzZXJNZXNzYWdlJykgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgNTE4XHQgICAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmZvbGxvd1VwUHJvbXB0cyA9IGRhdGEuZm9sbG93VXBQcm9tcHRzO1xuICAgNTE5XHQgICAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDUyMFx0ICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA1MjFcdCAgICAgIH0pO1xuICAgNTIyXHQgICAgICBzZXRGb2xsb3dVcFByb21wdHMoSlNPTi5wYXJzZShkYXRhLmZvbGxvd1VwUHJvbXB0cykpO1xuICAgNTIzXHQgICAgfVxuICAgNTI0XHQgIH07XG4gICA1MjVcdFxuICAgNTI2XHQgIGNvbnN0IGZldGNoUmVzcG9uc2VGcm9tRXZlbnRTdHJlYW0gPSBhc3luYyAoY2hhdGZsb3dpZDogc3RyaW5nLCBwYXJhbXM6IGFueSkgPT4ge1xuICAgNTI3XHQgICAgY29uc3QgY2hhdElkID0gcGFyYW1zLmNoYXRJZDtcbiAgIDUyOFx0ICAgIGNvbnN0IGlucHV0ID0gcGFyYW1zLnF1ZXN0aW9uO1xuICAgNTI5XHQgICAgcGFyYW1zLnN0cmVhbWluZyA9IHRydWU7XG4gICA1MzBcdCAgICBmZXRjaEV2ZW50U291cmNlKGAke3Byb3BzLmFwaUhvc3R9L2FwaS92MS9wcmVkaWN0aW9uLyR7Y2hhdGZsb3dpZH1gLCB7XG4gICA1MzFcdCAgICAgIG9wZW5XaGVuSGlkZGVuOiB0cnVlLFxuICAgNTMyXHQgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgIDUzM1x0ICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocGFyYW1zKSxcbiAgIDUzNFx0ICAgICAgaGVhZGVyczoge1xuICAgNTM1XHQgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICA1MzZcdCAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgIDUzN1x0ICAgICAgfSxcbiAgIDUzOFx0XG4gICA1MzlcdCAgICAgIGFzeW5jIG9ub3BlbihyZXNwb25zZSkge1xuICAgNTQwXHQgICAgICAgIHNldEN1cnJlbnRTdGF0dXNNc2coJ8SQYW5nIHjhu60gbMO9Li4uJyk7XG4gICA1NDFcdCAgICAgICAgaWYgKHJlc3BvbnNlLm9rICYmIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uc3RhcnRzV2l0aChFdmVudFN0cmVhbUNvbnRlbnRUeXBlKSkge1xuICAgNTQyXHQgICAgICAgICAgcmV0dXJuOyAvLyBldmVyeXRoaW5nJ3MgZ29vZFxuICAgNTQzXHQgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MjkpIHtcbiAgIDU0NFx0ICAgICAgICAgIGNvbnN0IGVyck1lc3NhZ2UgPSAoYXdhaXQgcmVzcG9uc2UudGV4dCgpKSA/PyAnVG9vIG1hbnkgcmVxdWVzdHMuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgIDU0NVx0ICAgICAgICAgIGhhbmRsZUVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTQ2XHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTQ3XHQgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDMpIHtcbiAgIDU0OFx0ICAgICAgICAgIGNvbnN0IGVyck1lc3NhZ2UgPSAoYXdhaXQgcmVzcG9uc2UudGV4dCgpKSA/PyAnVW5hdXRob3JpemVkJztcbiAgIDU0OVx0ICAgICAgICAgIGhhbmRsZUVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTUwXHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTUxXHQgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEpIHtcbiAgIDU1Mlx0ICAgICAgICAgIGNvbnN0IGVyck1lc3NhZ2UgPSAoYXdhaXQgcmVzcG9uc2UudGV4dCgpKSA/PyAnVW5hdXRoZW50aWNhdGVkJztcbiAgIDU1M1x0ICAgICAgICAgIGhhbmRsZUVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTU0XHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTU1XHQgICAgICAgIH0gZWxzZSB7XG4gICA1NTZcdCAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgIDU1N1x0ICAgICAgICB9XG4gICA1NThcdCAgICAgIH0sXG4gICA1NTlcdCAgICAgIGFzeW5jIG9ubWVzc2FnZShldikge1xuICAgNTYwXHQgICAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKGV2LmRhdGEpO1xuICAgNTYxXHQgICAgICAgIGlmIChkaXNhYmxlSW5wdXQoKSAmJiBwYXlsb2FkLmV2ZW50ICE9PSAnc3RhcnQnKSB7XG4gICA1NjJcdCAgICAgICAgICBzZXRDdXJyZW50U3RhdHVzTXNnKCcnKTtcbiAgIDU2M1x0ICAgICAgICAgIHNldERpc2FibGVJbnB1dChmYWxzZSk7XG4gICA1NjRcdCAgICAgICAgICBzZXRVc2VySW5wdXQoJycpO1xuICAgNTY1XHQgICAgICAgICAgc2V0VXBsb2FkZWRGaWxlcyhbXSk7XG4gICA1NjZcdCAgICAgICAgfVxuICAgNTY3XHRcbiAgIDU2OFx0ICAgICAgICBzd2l0Y2ggKHBheWxvYWQuZXZlbnQpIHtcbiAgIDU2OVx0ICAgICAgICAgIGNhc2UgJ3N0YXJ0JzpcbiAgIDU3MFx0ICAgICAgICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4gWy4uLnByZXZNZXNzYWdlcywgeyBtZXNzYWdlOiAnJywgdHlwZTogJ2FwaU1lc3NhZ2UnIH1dKTtcbiAgIDU3MVx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1NzJcdCAgICAgICAgICBjYXNlICdyZWNoZWNrJzpcbiAgIDU3M1x0ICAgICAgICAgICAgc2V0Q3VycmVudFN0YXR1c01zZygnUmVjaGVja2luZy4uLicpO1xuICAgNTc0XHQgICAgICAgICAgICBicmVhaztcbiAgIDU3NVx0ICAgICAgICAgIGNhc2UgJ3Rva2VuJzpcbiAgIDU3Nlx0ICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbEN1cnJlbnRNc2cpO1xuICAgNTc3XHQgICAgICAgICAgICBzZXRDdXJyZW50U3RhdHVzTXNnKCcnKTtcbiAgIDU3OFx0ICAgICAgICAgICAgdXBkYXRlTGFzdE1lc3NhZ2UocGF5bG9hZC5kYXRhKTtcbiAgIDU3OVx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1ODBcdCAgICAgICAgICBjYXNlICdzb3VyY2VEb2N1bWVudHMnOlxuICAgNTgxXHQgICAgICAgICAgICB1cGRhdGVMYXN0TWVzc2FnZVNvdXJjZURvY3VtZW50cyhwYXlsb2FkLmRhdGEpO1xuICAgNTgyXHQgICAgICAgICAgICBicmVhaztcbiAgIDU4M1x0ICAgICAgICAgIGNhc2UgJ3VzZWRUb29scyc6XG4gICA1ODRcdCAgICAgICAgICAgIHVwZGF0ZUxhc3RNZXNzYWdlVXNlZFRvb2xzKHBheWxvYWQuZGF0YSk7XG4gICA1ODVcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNTg2XHQgICAgICAgICAgY2FzZSAnZmlsZUFubm90YXRpb25zJzpcbiAgIDU4N1x0ICAgICAgICAgICAgdXBkYXRlTGFzdE1lc3NhZ2VGaWxlQW5ub3RhdGlvbnMocGF5bG9hZC5kYXRhKTtcbiAgIDU4OFx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1ODlcdCAgICAgICAgICBjYXNlICdhZ2VudFJlYXNvbmluZyc6XG4gICA1OTBcdCAgICAgICAgICAgIHVwZGF0ZUxhc3RNZXNzYWdlQWdlbnRSZWFzb25pbmcocGF5bG9hZC5kYXRhKTtcbiAgIDU5MVx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1OTJcdCAgICAgICAgICBjYXNlICdhY3Rpb24nOlxuICAgNTkzXHQgICAgICAgICAgICB1cGRhdGVMYXN0TWVzc2FnZUFjdGlvbihwYXlsb2FkLmRhdGEpO1xuICAgNTk0XHQgICAgICAgICAgICBicmVhaztcbiAgIDU5NVx0ICAgICAgICAgIGNhc2UgJ2FydGlmYWN0cyc6XG4gICA1OTZcdCAgICAgICAgICAgIHVwZGF0ZUxhc3RNZXNzYWdlQXJ0aWZhY3RzKHBheWxvYWQuZGF0YSk7XG4gICA1OTdcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNTk4XHQgICAgICAgICAgY2FzZSAnbWV0YWRhdGEnOlxuICAgNTk5XHQgICAgICAgICAgICB1cGRhdGVNZXRhZGF0YShwYXlsb2FkLmRhdGEsIGlucHV0KTtcbiAgIDYwMFx0ICAgICAgICAgICAgYnJlYWs7XG4gICA2MDFcdCAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICA2MDJcdCAgICAgICAgICAgIHVwZGF0ZUVycm9yTWVzc2FnZShwYXlsb2FkLmRhdGEpO1xuICAgNjAzXHQgICAgICAgICAgICBicmVhaztcbiAgIDYwNFx0ICAgICAgICAgIGNhc2UgJ2Fib3J0JzpcbiAgIDYwNVx0ICAgICAgICAgICAgYWJvcnRNZXNzYWdlKCk7XG4gICA2MDZcdCAgICAgICAgICAgIGNsb3NlUmVzcG9uc2UoKTtcbiAgIDYwN1x0ICAgICAgICAgICAgYnJlYWs7XG4gICA2MDhcdCAgICAgICAgICBjYXNlICdlbmQnOlxuICAgNjA5XHQgICAgICAgICAgICBzZXRMb2NhbFN0b3JhZ2VDaGF0ZmxvdyhjaGF0Zmxvd2lkLCBjaGF0SWQpO1xuICAgNjEwXHQgICAgICAgICAgICBjbG9zZVJlc3BvbnNlKCk7XG4gICA2MTFcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNjEyXHQgICAgICAgIH1cbiAgIDYxM1x0ICAgICAgfSxcbiAgIDYxNFx0ICAgICAgYXN5bmMgb25jbG9zZSgpIHtcbiAgIDYxNVx0ICAgICAgICBjbG9zZVJlc3BvbnNlKCk7XG4gICA2MTZcdCAgICAgICAgc2V0Q3VycmVudFN0YXR1c01zZygnJyk7XG4gICA2MTdcdCAgICAgIH0sXG4gICA2MThcdCAgICAgIG9uZXJyb3IoZXJyKSB7XG4gICA2MTlcdCAgICAgICAgY29uc29sZS5lcnJvcignRXZlbnRTb3VyY2UgRXJyb3I6ICcsIGVycik7XG4gICA2MjBcdCAgICAgICAgY2xvc2VSZXNwb25zZSgpO1xuICAgNjIxXHQgICAgICAgIHRocm93IGVycjtcbiAgIDYyMlx0ICAgICAgfSxcbiAgIDYyM1x0ICAgIH0pO1xuICAgNjI0XHQgIH07XG4gICA2MjVcdFxuICAgNjI2XHQgIGNvbnN0IGNsb3NlUmVzcG9uc2UgPSAoKSA9PiB7XG4gICA2MjdcdCAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgIDYyOFx0ICAgIHNldERpc2FibGVJbnB1dChmYWxzZSk7XG4gICA2MjlcdCAgICBzZXRVcGxvYWRlZEZpbGVzKFtdKTtcblRvdGFsIGxpbmVzIGluIGZpbGU6IDIwOTRcbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMTVxVGFHYXkzYkxWTTF1c3U0Vk1BR3gifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1Nzo1OS41NzVaIiwicmVzcG9uc2VfdGV4dCI6Ik5vdyBJIGhhdmUgYSBjb21wbGV0ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb2RlIHN0cnVjdHVyZS4gTGV0IG1lIGNyZWF0ZSBhIGRldGFpbGVkIHBsYW4gZm9yIHJlZmFjdG9yaW5nIHRoZSBgZGVmYXVsdEJvdFByb3BzYCBvYmplY3QuXG5cbiMjIEFuYWx5c2lzIGFuZCBQbGFuXG5cblRoZSBjdXJyZW50IGBkZWZhdWx0Qm90UHJvcHNgIG9iamVjdCBoYXMgc2V2ZXJhbCBpc3N1ZXM6XG4xLiAqKkluY29uc2lzdGVudCBkZWZhdWx0IHZhbHVlcyoqOiBNaXggb2YgZW1wdHkgc3RyaW5ncywgYHVuZGVmaW5lZGAsIGFuZCBlbXB0eSBvYmplY3RzXG4yLiAqKlR5cGUgc2FmZXR5IGNvbmNlcm5zKio6IFVzaW5nIGB1bmRlZmluZWRgIGZvciBvcHRpb25hbCBwcm9wZXJ0aWVzIHRoYXQgY291bGQgaGF2ZSBiZXR0ZXIgZGVmYXVsdHNcbjMuICoqTWFpbnRhaW5hYmlsaXR5Kio6IEhhcmQgdG8gdW5kZXJzdGFuZCB3aGljaCBwcm9wZXJ0aWVzIGFyZSB0cnVseSBvcHRpb25hbCB2cyByZXF1aXJlZFxuNC4gKipDb2RlIGNsYXJpdHkqKjogVGhlIHB1cnBvc2UgYW5kIGV4cGVjdGVkIHZhbHVlcyBhcmVuJ3QgY2xlYXJcblxuIyMgUmVmYWN0b3JpbmcgUGxhblxuXG5JJ2xsIHJlZmFjdG9yIHRoaXMgYnk6XG5cbjEuICoqR3JvdXBpbmcgcmVsYXRlZCBwcm9wZXJ0aWVzKiogZm9yIGJldHRlciBvcmdhbml6YXRpb25cbjIuICoqVXNpbmcgbW9yZSBtZWFuaW5nZnVsIGRlZmF1bHQgdmFsdWVzKiogaW5zdGVhZCBvZiBlbXB0eSBzdHJpbmdzIGFuZCB1bmRlZmluZWRcbjMuICoqQWRkaW5nIHR5cGUgc2FmZXR5Kiogd2l0aCBwcm9wZXIgZGVmYXVsdHNcbjQuICoqSW1wcm92aW5nIHJlYWRhYmlsaXR5Kiogd2l0aCBiZXR0ZXIgc3RydWN0dXJlIGFuZCBjb21tZW50c1xuNS4gKipGb2xsb3dpbmcgVHlwZVNjcmlwdCBiZXN0IHByYWN0aWNlcyoqIGZvciBkZWZhdWx0IG9iamVjdCBwYXR0ZXJuc1xuXG5MZXQgbWUgaW1wbGVtZW50IHRoZSByZWZhY3RvcmluZzpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiI0YTAzMGVhMS04MDkwLTQ2NGItODNmNi00ZjhhYjY3Yzc3NGIiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFHaWpkdFdYTFhtZzRqUXdLMjNvOVN4IiwidG9vbF9uYW1lIjoibGF1bmNoLXByb2Nlc3MiLCJpbnB1dF9qc29uIjoie1wiY29tbWFuZFwiOiBcImJ1biAtLWJ1biB0c2MgLS1ub0VtaXQgLS1za2lwTGliQ2hlY2sgc3JjL2NvbnN0YW50cy50c1wiLCBcIndhaXRcIjogdHJ1ZSwgXCJtYXhfd2FpdF9zZWNvbmRzXCI6IDMwfSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6Ik5vdyBsZXQgbWUgY2hlY2sgdGhlIFR5cGVTY3JpcHQgdHlwZXMgdG8gZW5zdXJlIHRoZSByZWZhY3RvcmluZyBpcyBjb3JyZWN0OlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiU3VjY2Vzc2Z1bGx5IGVkaXRlZCB0aGUgZmlsZSBzcmMvY29uc3RhbnRzLnRzLlxuUmVzdWx0IGZvciBzdHJfcmVwbGFjZSBmb3IgZW50cnkgd2l0aCBpbmRleCBbMV06XG5SZXBsYWNlbWVudCBzdWNjZXNzZnVsLlxuRWRpdGVkIHNlY3Rpb24gYWZ0ZXIgSURFIGF1dG8tZm9ybWF0dGluZyB3YXMgYXBwbGllZDpcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlJztcbiAgICAgMlx0XG4gICAgIDNcdC8qKlxuICAgICA0XHQgKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGF0Ym90IGJ1YmJsZSBjb21wb25lbnQuXG4gICAgIDVcdCAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBhbGwgb3B0aW9uYWwgcHJvcGVydGllcyB3aGlsZSBrZWVwaW5nXG4gICAgIDZcdCAqIHJlcXVpcmVkIHByb3BlcnRpZXMgZXhwbGljaXRseSB1bmRlZmluZWQgdG8gZW5mb3JjZSBwcm9wZXIgY29uZmlndXJhdGlvbi5cbiAgICAgN1x0ICovXG4gICAgIDhcdGV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xuICAgICA5XHQgIC8vIENvcmUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiAtIG11c3QgYmUgc2V0IGJ5IGltcGxlbWVudGVyXG4gICAgMTBcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgMTFcdFxuICAgIDEyXHQgIC8vIEFQSSBjb25maWd1cmF0aW9uXG4gICAgMTNcdCAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICAgIDE0XHQgIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICAgIDE1XHQgIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4gICAgMTZcdFxuICAgIDE3XHQgIC8vIFVJIHRoZW1pbmcgYW5kIGN1c3RvbWl6YXRpb25cbiAgICAxOFx0ICB0aGVtZTogdW5kZWZpbmVkLFxuICAgIDE5XHRcbiAgICAyMFx0ICAvLyBFeHRlcm5hbCBpbnRlZ3JhdGlvbnNcbiAgICAyMVx0ICBjaGF0d29vdFVybDogdW5kZWZpbmVkLFxuICAgIDIyXHQgIHJvb21JZHM6IHt9LFxuICAgIDIzXHRcbiAgICAyNFx0ICAvLyBGZWF0dXJlIGZsYWdzIGFuZCBvcHRpb25hbCBmdW5jdGlvbmFsaXR5XG4gICAgMjVcdCAgaXNVc2VGQVE6IGZhbHNlLFxuICAgIDI2XHRcbiAgICAyN1x0ICAvLyBGaWxlIGFuZCBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAgICAyOFx0ICBmaWxlUGF0aDogJycsXG4gICAgMjlcdCAgc3VnZ2VzdFF1ZXN0aW9uczogJycsXG4gICAgMzBcdCAgZXh0ZXJuYWxEYXRhOiAnJyxcbiAgICAzMVx0ICBjYWxsQmFja0ljb246ICcnLFxuICAgIDMyXHQgIGNhbGxCYWNrRnVuY3Rpb246IHVuZGVmaW5lZCxcbiAgICAzM1x0XG4gICAgMzRcdCAgLy8gTW9uaXRvcmluZyBhbmQgYW5hbHl0aWNzXG4gICAgMzVcdCAgb2JzZXJ2ZXJzQ29uZmlnOiB1bmRlZmluZWQsXG4gICAgMzZcdH07XG4gICAgMzdcdFxuXG5SZXZpZXcgdGhlIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhcyBleHBlY3RlZCAoY29ycmVjdCBpbmRlbnRhdGlvbiwgbm8gZHVwbGljYXRlIGxpbmVzLCBldGMpLlxuRWRpdCB0aGUgZmlsZSBhZ2FpbiBpZiBuZWNlc3NhcnkuXG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFLSGNIV1JmanlpY3V3YUdQV2g1dFo5In19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2V9fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDM6NTg6MTIuNzAwWiIsInJlc3BvbnNlX3RleHQiOiJOb3cgbGV0IG1lIGNoZWNrIHRoZSBUeXBlU2NyaXB0IHR5cGVzIHRvIGVuc3VyZSB0aGUgcmVmYWN0b3JpbmcgaXMgY29ycmVjdDpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiI4MmJmNjljZS1mNDdiLTQ3ZDItYTAxNS02ODAyODFiYTQxYTciLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFWYUdrN0FZeDdGc1BiVE5uS01VS0xpIiwidG9vbF9uYW1lIjoiY29kZWJhc2UtcmV0cmlldmFsIiwiaW5wdXRfanNvbiI6IntcImluZm9ybWF0aW9uX3JlcXVlc3RcIjogXCJCdWJibGVQcm9wcyB0eXBlIGV4cG9ydCBsb2NhdGlvbiBhbmQgY29ycmVjdCBpbXBvcnQgcGF0aFwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6Ikkgc2VlIHRoZXJlIGFyZSBUeXBlU2NyaXB0IGVycm9ycy4gTGV0IG1lIGNoZWNrIHRoZSBjb3JyZWN0IGltcG9ydCBwYXRoIGZvciBCdWJibGVQcm9wczpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IkhlcmUgYXJlIHRoZSByZXN1bHRzIGZyb20gZXhlY3V0aW5nIHRoZSBjb21tYW5kLlxuICAgICAgICA8cmV0dXJuLWNvZGU+XG4gICAgICAgIDFcbiAgICAgICAgPC9yZXR1cm4tY29kZT5cbiAgICAgICAgPHN0ZG91dD5cbiAgICAgICAgXHUwMDFiWz85MDAxaFx1MDAxYls/MTAwNGhcdTAwMWJbPzI1bFx1MDAxYlsySlx1MDAxYlttXHUwMDFiW0hcblxuXG5cblxuXG5cblx1MDAxYltIXHUwMDFiXTA7QzpcXFdJTkRPV1NcXFN5c3RlbTMyXFxXaW5kb3dzUG93ZXJTaGVsbFxcdjEuMFxccG93ZXJzaGVsbC5leGVcdTAwMDdcdTAwMWJbPzI1aFx1MDAxYls/MjVsXHUwMDFiWzk2bXNyYy9jb25zdGFudHMudHNcdTAwMWJbbTpcdTAwMWJbOTNtMVx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDU6IFx1MDAxYlttTW9kdWxlICdcIi4vZmVhdHVyZXMvYnViYmxlXCInIGhhcyBubyBleHBvcnRlZCBtZW1iZXIgJ0J1YmJsZVByb3BzJy5cdTAwMWJbN21cdTAwMWJbMzsxSDFcdTAwMWJbMjdtIGltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZSc7XHUwMDFiWzdtXG4gXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+XHUwMDFiWzk2bVx1MDAxYls2OzFIc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTFcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9CdWJibGUnIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUudHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbN21cdTAwMWJbODsxSDFcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vQnViYmxlJztcblx1MDAxYls/MjVoXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXG5Gb3VuZCAyIGVycm9ycyBpbiAyIGZpbGVzLlxuXG5FcnJvcnMgIEZpbGVzXG4gICAgIDEgIHNyYy9jb25zdGFudHMudHNcdTAwMWJbOTBtOjFcdTAwMWJbS1x1MDAxYlttXG4gICAgIDEgIHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9pbmRleC50c1x1MDAxYls5MG06MVx1MDAxYltLXHUwMDFiW21cblx1MDAxYlszMW1lcnJvclx1MDAxYlttXHUwMDFiWzJtOlx1MDAxYlsyMm0gXCJcdTAwMWJbMW10c2MuY21kXHUwMDFiWzIybVwiIGV4aXRlZCB3aXRoIGNvZGUgMlxuXG4gICAgICAgIDwvc3Rkb3V0PlxuICAgICAgICA8c3RkZXJyPlxuICAgICAgICBcbiAgICAgICAgPC9zdGRlcnI+IiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxR2lqZHRXWExYbWc0alF3SzIzbzlTeCJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTAsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDM6NTg6MjIuMTM0WiIsInJlc3BvbnNlX3RleHQiOiJJIHNlZSB0aGVyZSBhcmUgVHlwZVNjcmlwdCBlcnJvcnMuIExldCBtZSBjaGVjayB0aGUgY29ycmVjdCBpbXBvcnQgcGF0aCBmb3IgQnViYmxlUHJvcHM6XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiYWEzY2MzMjgtMDcyMC00NjBjLTg5YWItMzE2YjU3MWM0MTI4IiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxWGh1VTh5R0U2dTdtNnRTRlhIS0VHcCIsInRvb2xfbmFtZSI6InN0ci1yZXBsYWNlLWVkaXRvciIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwic3RyX3JlcGxhY2VcIiwgXCJwYXRoXCI6IFwic3JjL2NvbnN0YW50cy50c1wiLCBcImluc3RydWN0aW9uX3JlbWluZGVyXCI6IFwiQUxXQVlTIEJSRUFLIERPV04gRURJVFMgSU5UTyBTTUFMTEVSIENIVU5LUyBPRiBBVCBNT1NUIDIwMCBMSU5FUyBFQUNILlwiLCBcIm9sZF9zdHJfMVwiOiBcImltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZSc7XCIsIFwib2xkX3N0cl9zdGFydF9saW5lX251bWJlcl8xXCI6IDEsIFwib2xkX3N0cl9lbmRfbGluZV9udW1iZXJfMVwiOiAxLCBcIm5ld19zdHJfMVwiOiBcImltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZSc7XCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTm93IEkgY2FuIHNlZSB0aGUgY29ycmVjdCBpbXBvcnQgcGF0aC4gVGhlIEJ1YmJsZVByb3BzIGlzIGV4cG9ydGVkIGZyb20gYC4vZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlYC4gTGV0IG1lIGZpeCB0aGUgaW1wb3J0OlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiVGhlIGZvbGxvd2luZyBjb2RlIHNlY3Rpb25zIHdlcmUgcmV0cmlldmVkOlxuUGF0aDogc3JjL2luZGV4LnRzXG4gICAgIDFcdGV4cG9ydCB0eXBlIHsgQm90UHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvQm90JztcbiAgICAgMlx0ZXhwb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlJztcbi4uLlxuUGF0aDogc3JjL0J1YmJsZUNoYXQudHN4XG4gICAgIDFcdGltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICdjbWN0cy1jLWFnZW50LWVtYmVkZGluZydcbiAgICAgMlx0aW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuICAgICAzXHRcbiAgICAgNFx0dHlwZSBQcm9wcyA9IEJ1YmJsZVByb3BzXG4gICAgIDVcdFxuICAgICA2XHRkZWNsYXJlIGdsb2JhbCB7XG4gICAgIDdcdCAgbmFtZXNwYWNlIEpTWCB7XG4gICAgIDhcdCAgICBpbnRlcmZhY2UgSW50cmluc2ljRWxlbWVudHMge1xuICAgICA5XHQgICAgICAnZmxvd2lzZS1jaGF0Ym90JzogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gICAgMTBcdCAgICAgICAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTEVsZW1lbnQ+LFxuICAgIDExXHQgICAgICAgIEhUTUxFbGVtZW50XG4gICAgMTJcdCAgICAgID5cbiAgICAxM1x0ICAgIH1cbiAgICAxNFx0ICB9XG4gICAgMTVcdH1cbiAgICAxNlx0XG4gICAgMTdcdHR5cGUgQnViYmxlRWxlbWVudCA9IEhUTUxFbGVtZW50ICYgUHJvcHNcbiAgICAxOFx0XG4gICAgMTlcdGV4cG9ydCBjb25zdCBCdWJibGVDaGF0ID0gKHByb3BzOiBQcm9wcykgPT4ge1xuICAgIDIwXHQgIGNvbnN0IHJlZiA9IHVzZVJlZjxCdWJibGVFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgICAyMVx0ICBjb25zdCBbaXNJbml0aWFsaXplZCwgc2V0SXNJbml0aWFsaXplZF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICAyMlx0XG4gICAgMjNcdCAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAyNFx0ICAgIDsoYXN5bmMgKCkgPT4ge1xuICAgIDI1XHQgICAgICBhd2FpdCBpbXBvcnQoJ2NtY3RzLWMtYWdlbnQtZW1iZWRkaW5nL2Rpc3Qvd2ViLmpzJylcbiAgICAyNlx0ICAgICAgc2V0SXNJbml0aWFsaXplZCh0cnVlKVxuICAgIDI3XHQgICAgfSkoKVxuICAgIDI4XHQgICAgcmV0dXJuICgpID0+IHtcbiAgICAyOVx0ICAgICAgcmVmLmN1cnJlbnQ/LnJlbW92ZSgpXG4gICAgMzBcdCAgICB9XG4gICAgMzFcdCAgfSwgW10pXG4gICAgMzJcdFxuICAgIDMzXHQgIGNvbnN0IGF0dGFjaEJ1YmJsZVRvRG9tID0gdXNlQ2FsbGJhY2soKHByb3BzOiBQcm9wcykgPT4ge1xuICAgIDM0XHQgICAgY29uc3QgYnViYmxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXG4gICAgMzVcdCAgICAgICdmbG93aXNlLWNoYXRib3QnXG4gICAgMzZcdCAgICApIGFzIEJ1YmJsZUVsZW1lbnRcbiAgICAzN1x0ICAgIHJlZi5jdXJyZW50ID0gYnViYmxlRWxlbWVudFxuICAgIDM4XHQgICAgaW5qZWN0UHJvcHNUb0VsZW1lbnQocmVmLmN1cnJlbnQsIHByb3BzKVxuICAgIDM5XHQgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQocmVmLmN1cnJlbnQpXG4gICAgNDBcdCAgfSwgW10pXG4gICAgNDFcdFxuICAgIDQyXHQgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgNDNcdCAgICBpZiAoIWlzSW5pdGlhbGl6ZWQpIHJldHVyblxuICAgIDQ0XHQgICAgaWYgKCFyZWYuY3VycmVudCkgYXR0YWNoQnViYmxlVG9Eb20ocHJvcHMpXG4gICAgNDVcdCAgICBpbmplY3RQcm9wc1RvRWxlbWVudChyZWYuY3VycmVudCBhcyBCdWJibGVFbGVtZW50LCBwcm9wcylcbiAgICA0Nlx0ICB9LCBbYXR0YWNoQnViYmxlVG9Eb20sIGlzSW5pdGlhbGl6ZWQsIHByb3BzXSlcbi4uLlxuUGF0aDogc3JjL2NvbnN0YW50cy50c1xuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUnO1xuICAgICAyXHRcbiAgICAgM1x0ZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gICAgIDRcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgIDVcdCAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICAgICA2XHQgIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gICAgIDdcdCAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcbiAgICAgOVx0ICB0aGVtZTogdW5kZWZpbmVkLFxuICAgIDEwXHQgIG9ic2VydmVyc0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDExXHQgIHJvb21JZHM6IHt9LFxuICAgIDEyXHQgIGlzVXNlRkFROiB1bmRlZmluZWQsXG4gICAgMTNcdCAgZmlsZVBhdGg6ICcnLFxuICAgIDE0XHQgIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxuICAgIDE1XHQgIGV4dGVybmFsRGF0YTogJycsXG4gICAgMTZcdCAgY2FsbEJhY2tJY29uOiAnJyxcbiAgICAxN1x0ICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG4gICAgMThcdH07XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUudHN4XG4gICAgIDFcdGltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgU2hvdywgc3BsaXRQcm9wcywgb25DbGVhbnVwLCBjcmVhdGVFZmZlY3QgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCBzdHlsZXMgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2luZGV4LmNzcyc7XG4gICAgIDNcdGltcG9ydCB7IEJ1YmJsZUJ1dHRvbiB9IGZyb20gJy4vQnViYmxlQnV0dG9uJztcbiAgICAgNFx0aW1wb3J0IHsgQnViYmxlUGFyYW1zIH0gZnJvbSAnLi4vdHlwZXMnO1xuICAgICA1XHRpbXBvcnQgeyBCb3QsIEJvdFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9Cb3QnO1xuICAgICA2XHRpbXBvcnQgVG9vbHRpcCBmcm9tICcuL1Rvb2x0aXAnO1xuICAgICA3XHRpbXBvcnQgeyBnZXRCdWJibGVCdXR0b25TaXplIH0gZnJvbSAnQC91dGlscyc7XG4gICAgIDhcdFxuICAgICA5XHRjb25zdCBkZWZhdWx0QnV0dG9uQ29sb3IgPSAnIzNCODFGNic7XG4gICAgMTBcdGNvbnN0IGRlZmF1bHRJY29uQ29sb3IgPSAnd2hpdGUnO1xuICAgIDExXHRcbiAgICAxMlx0ZXhwb3J0IHR5cGUgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcztcbiAgICAxM1x0XG4gICAgMTRcdGV4cG9ydCBjb25zdCBCdWJibGUgPSAocHJvcHM6IEJ1YmJsZVByb3BzKSA9PiB7XG4gICAgMTVcdCAgY29uc3QgW2J1YmJsZVByb3BzXSA9IHNwbGl0UHJvcHMocHJvcHMsIFsndGhlbWUnXSk7XG4gICAgMTZcdFxuICAgIDE3XHQgIGNvbnN0IFtpc0JvdE9wZW5lZCwgc2V0SXNCb3RPcGVuZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgICAxOFx0ICBjb25zdCBbaXNCb3RTdGFydGVkLCBzZXRJc0JvdFN0YXJ0ZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgICAxOVx0ICBjb25zdCBbYnV0dG9uUG9zaXRpb24sIHNldEJ1dHRvblBvc2l0aW9uXSA9IGNyZWF0ZVNpZ25hbCh7XG4gICAgMjBcdCAgICBib3R0b206IGJ1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/LmJvdHRvbSA/PyAyMCxcbiAgICAyMVx0ICAgIHJpZ2h0OiBidWJibGVQcm9wcy50aGVtZT8uYnV0dG9uPy5yaWdodCA/PyAyMCxcbiAgICAyMlx0ICB9KTtcbiAgICAyM1x0XG4gICAgMjRcdCAgY29uc3Qgb3BlbkJvdCA9ICgpID0+IHtcbiAgICAyNVx0ICAgIGlmICghaXNCb3RTdGFydGVkKCkpIHNldElzQm90U3RhcnRlZCh0cnVlKTtcbiAgICAyNlx0ICAgIHNldElzQm90T3BlbmVkKHRydWUpO1xuICAgIDI3XHQgIH07XG4gICAgMjhcdFxuICAgIDI5XHQgIGNvbnN0IGNsb3NlQm90ID0gKCkgPT4ge1xuICAgIDMwXHQgICAgc2V0SXNCb3RPcGVuZWQoZmFsc2UpO1xuICAgIDMxXHQgIH07XG4gICAgMzJcdFxuICAgIDMzXHQgIGNvbnN0IHRvZ2dsZUJvdCA9ICgpID0+IHtcbiAgICAzNFx0ICAgIGlzQm90T3BlbmVkKCkgPyBjbG9zZUJvdCgpIDogb3BlbkJvdCgpO1xuICAgIDM1XHQgIH07XG4gICAgMzZcdFxuICAgIDM3XHQgIG9uQ2xlYW51cCgoKSA9PiB7XG4gICAgMzhcdCAgICBzZXRJc0JvdFN0YXJ0ZWQoZmFsc2UpO1xuICAgIDM5XHQgIH0pO1xuICAgIDQwXHRcbiAgICA0MVx0ICBjb25zdCBidXR0b25TaXplID0gZ2V0QnViYmxlQnV0dG9uU2l6ZShwcm9wcy50aGVtZT8uYnV0dG9uPy5zaXplKTsgLy8gRGVmYXVsdCB0byA0OHB4IGlmIHNpemUgaXMgbm90IHByb3ZpZGVkXG4gICAgNDJcdCAgY29uc3QgYnV0dG9uQm90dG9tID0gcHJvcHMudGhlbWU/LmJ1dHRvbj8uYm90dG9tID8/IDIwO1xuICAgIDQzXHQgIGNvbnN0IGNoYXRXaW5kb3dCb3R0b20gPSBidXR0b25Cb3R0b20gKyBidXR0b25TaXplICsgMTA7IC8vIEFkanVzdCB0aGUgb2Zmc2V0IGhlcmUgZm9yIHNsaWdodCBzaGlmdFxuICAgIDQ0XHRcbiAgICA0NVx0ICAvLyBBZGQgdmlld3BvcnQgbWV0YSB0YWcgZHluYW1pY2FsbHlcbiAgICA0Nlx0ICBjcmVhdGVFZmZlY3QoKCkgPT4ge1xuICAgIDQ3XHQgICAgY29uc3QgbWV0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGEnKTtcbiAgICA0OFx0ICAgIG1ldGEubmFtZSA9ICd2aWV3cG9ydCc7XG4gICAgNDlcdCAgICBtZXRhLmNvbnRlbnQgPSAnd2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgaW50ZXJhY3RpdmUtd2lkZ2V0PXJlc2l6ZXMtY29udGVudCc7XG4gICAgNTBcdCAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG1ldGEpO1xuICAgIDUxXHRcbiAgICA1Mlx0ICAgIHJldHVybiAoKSA9PiB7XG4gICAgNTNcdCAgICAgIGRvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQobWV0YSk7XG4gICAgNTRcdCAgICB9O1xuICAgIDU1XHQgIH0pO1xuICAgIDU2XHRcbiAgICA1N1x0ICBjb25zdCBzaG93VG9vbHRpcCA9IGJ1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy5zaG93VG9vbHRpcCA/PyBmYWxzZTtcbiAgICA1OFx0XG4gICAgNTlcdCAgcmV0dXJuIChcbiAgICA2MFx0ICAgIDw+XG4gICAgNjFcdCAgICAgIDxTaG93IHdoZW49e3Byb3BzLnRoZW1lPy5jdXN0b21DU1N9PlxuICAgIDYyXHQgICAgICAgIDxzdHlsZT57cHJvcHMudGhlbWU/LmN1c3RvbUNTU308L3N0eWxlPlxuICAgIDYzXHQgICAgICA8L1Nob3c+XG4gICAgNjRcdCAgICAgIDxzdHlsZT57c3R5bGVzfTwvc3R5bGU+XG4gICAgNjVcdCAgICAgIDxUb29sdGlwXG4gICAgNjZcdCAgICAgICAgc2hvd1Rvb2x0aXA9e3Nob3dUb29sdGlwICYmICFpc0JvdE9wZW5lZCgpfVxuICAgIDY3XHQgICAgICAgIHBvc2l0aW9uPXtidXR0b25Qb3NpdGlvbigpfVxuICAgIDY4XHQgICAgICAgIGJ1dHRvblNpemU9e2J1dHRvblNpemV9XG4gICAgNjlcdCAgICAgICAgdG9vbHRpcE1lc3NhZ2U9e2J1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy50b29sdGlwTWVzc2FnZX1cbiAgICA3MFx0ICAgICAgICB0b29sdGlwQmFja2dyb3VuZENvbG9yPXtidWJibGVQcm9wcy50aGVtZT8udG9vbHRpcD8udG9vbHRpcEJhY2tncm91bmRDb2xvcn1cbiAgICA3MVx0ICAgICAgICB0b29sdGlwVGV4dENvbG9yPXtidWJibGVQcm9wcy50aGVtZT8udG9vbHRpcD8udG9vbHRpcFRleHRDb2xvcn1cbiAgICA3Mlx0ICAgICAgICB0b29sdGlwRm9udFNpemU9e2J1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy50b29sdGlwRm9udFNpemV9IC8vIFNldCB0aGUgdG9vbHRpcCBmb250IHNpemVcbiAgICA3M1x0ICAgICAgLz5cbiAgICA3NFx0ICAgICAgPEJ1YmJsZUJ1dHRvblxuICAgIDc1XHQgICAgICAgIHsuLi5idWJibGVQcm9wcy50aGVtZT8uYnV0dG9ufVxuICAgIDc2XHQgICAgICAgIHRvZ2dsZUJvdD17dG9nZ2xlQm90fVxuICAgIDc3XHQgICAgICAgIGlzQm90T3BlbmVkPXtpc0JvdE9wZW5lZCgpfVxuICAgIDc4XHQgICAgICAgIHNldEJ1dHRvblBvc2l0aW9uPXtzZXRCdXR0b25Qb3NpdGlvbn1cbiAgICA3OVx0ICAgICAgICBkcmFnQW5kRHJvcD17YnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uZHJhZ0FuZERyb3AgPz8gZmFsc2V9XG4gICAgODBcdCAgICAgICAgYXV0b09wZW49e2J1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/LmF1dG9XaW5kb3dPcGVuPy5hdXRvT3BlbiA/PyBmYWxzZX1cbiAgICA4MVx0ICAgICAgICBvcGVuRGVsYXk9e2J1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/LmF1dG9XaW5kb3dPcGVuPy5vcGVuRGVsYXl9XG4gICAgODJcdCAgICAgICAgYXV0b09wZW5Pbk1vYmlsZT17YnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uYXV0b1dpbmRvd09wZW4/LmF1dG9PcGVuT25Nb2JpbGUgPz8gZmFsc2V9XG4gICAgODNcdCAgICAgIC8+XG4gICAgODRcdCAgICAgIDxkaXZcbiAgICA4NVx0ICAgICAgICBwYXJ0PVwiYm90XCJcbiAgICA4Nlx0ICAgICAgICBzdHlsZT17e1xuICAgIDg3XHQgICAgICAgICAgaGVpZ2h0OiBidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uaGVpZ2h0ID8gYCR7YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmhlaWdodC50b1N0cmluZygpfXB4YCA6ICdjYWxjKDEwMCUgLSAxNTBweCknLFxuICAgIDg4XHQgICAgICAgICAgd2lkdGg6IGJ1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py53aWR0aCA/IGAke2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py53aWR0aC50b1N0cmluZygpfXB4YCA6IHVuZGVmaW5lZCxcbiAgICA4OVx0ICAgICAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAsIDEuMiwgMSwgMSksIG9wYWNpdHkgMTUwbXMgZWFzZS1vdXQnLFxuICAgIDkwXHQgICAgICAgICAgJ3RyYW5zZm9ybS1vcmlnaW4nOiAnYm90dG9tIHJpZ2h0JyxcbiAgICA5MVx0ICAgICAgICAgIHRyYW5zZm9ybTogaXNCb3RPcGVuZWQoKSA/ICdzY2FsZTNkKDEsIDEsIDEpJyA6ICdzY2FsZTNkKDAsIDAsIDEpJyxcbiAgICA5Mlx0ICAgICAgICAgICdib3gtc2hhZG93JzogJ3JnYigwIDAgMCAvIDE2JSkgMHB4IDVweCA0MHB4JyxcbiAgICA5M1x0ICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogYnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmJhY2tncm91bmRDb2xvciB8fCAnI2ZmZmZmZicsXG4gICAgOTRcdCAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZSc6IGJ1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5iYWNrZ3JvdW5kSW1hZ2UgPyBgdXJsKCR7YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmJhY2tncm91bmRJbWFnZX0pYCA6ICdub25lJyxcbiAgICA5NVx0ICAgICAgICAgICdiYWNrZ3JvdW5kLXNpemUnOiAnY292ZXInLFxuICAgIDk2XHQgICAgICAgICAgJ2JhY2tncm91bmQtcG9zaXRpb24nOiAnY2VudGVyJyxcbiAgICA5N1x0ICAgICAgICAgICdiYWNrZ3JvdW5kLXJlcGVhdCc6ICduby1yZXBlYXQnLFxuICAgIDk4XHQgICAgICAgICAgJ3otaW5kZXgnOiA0MjQyNDI0MixcbiAgICA5OVx0ICAgICAgICAgIGJvdHRvbTogYCR7TWF0aC5taW4oYnV0dG9uUG9zaXRpb24oKS5ib3R0b20gKyBidXR0b25TaXplICsgMTAsIHdpbmRvdy5pbm5lckhlaWdodCAtIGNoYXRXaW5kb3dCb3R0b20pfXB4YCxcbiAgIDEwMFx0ICAgICAgICAgIHJpZ2h0OiBgJHtNYXRoLm1pbihidXR0b25Qb3NpdGlvbigpLnJpZ2h0LCB3aW5kb3cuaW5uZXJXaWR0aCAtIDQxMCl9cHhgLFxuICAgMTAxXHQgICAgICAgIH19XG4gICAxMDJcdCAgICAgICAgY2xhc3M9e1xuICAgMTAzXHQgICAgICAgICAgYGZpeGVkIHNtOnJpZ2h0LTUgcm91bmRlZC1sZyB3LWZ1bGwgc206dy1bNDAwcHhdIG1heC1oLVs3MDRweF1gICtcbiAgIDEwNFx0ICAgICAgICAgIChpc0JvdE9wZW5lZCgpID8gJyBvcGFjaXR5LTEnIDogJyBvcGFjaXR5LTAgcG9pbnRlci1ldmVudHMtbm9uZScpICtcbiAgIDEwNVx0ICAgICAgICAgIGAgYm90dG9tLSR7Y2hhdFdpbmRvd0JvdHRvbX1weGBcbiAgIDEwNlx0ICAgICAgICB9XG4gICAxMDdcdCAgICAgID5cbiAgIDEwOFx0ICAgICAgICA8U2hvdyB3aGVuPXtpc0JvdFN0YXJ0ZWQoKX0+XG4gICAxMDlcdCAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgaC1mdWxsXCI+XG4gICAxMTBcdCAgICAgICAgICAgIDxTaG93IHdoZW49e2lzQm90T3BlbmVkKCl9PlxuICAgMTExXHQgICAgICAgICAgICAgIHsvKiBDcm9zcyBidXR0b24gRm9yIG9ubHkgbW9iaWxlIHNjcmVlbiB1c2UgdGhpcyA8U2hvdyB3aGVuPXtpc0JvdE9wZW5lZCgpICYmIHdpbmRvdy5pbm5lcldpZHRoIDw9IDY0MH0+ICAqL31cbiAgIDExMlx0ICAgICAgICAgICAgICA8YnV0dG9uXG4gICAxMTNcdCAgICAgICAgICAgICAgICBvbkNsaWNrPXtjbG9zZUJvdH1cbiAgIDExNFx0ICAgICAgICAgICAgICAgIGNsYXNzPVwicHktMiBwci0zIGFic29sdXRlIHRvcC0wIHJpZ2h0LVstOHB4XSBtLVs2cHhdIGJnLXRyYW5zcGFyZW50IHRleHQtd2hpdGUgcm91bmRlZC1mdWxsIHotNTAgZGlzYWJsZWQ6b3BhY2l0eS01MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6YnJpZ2h0bmVzcy0xMDAgdHJhbnNpdGlvbi1hbGwgZmlsdGVyIGhvdmVyOmJyaWdodG5lc3MtOTAgYWN0aXZlOmJyaWdodG5lc3MtNzVcIlxuICAgMTE1XHQgICAgICAgICAgICAgICAgdGl0bGU9XCJDbG9zZSBDaGF0XCJcbiAgIDExNlx0ICAgICAgICAgICAgICA+XG4gICAxMTdcdCAgICAgICAgICAgICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj5cbiAgIDExOFx0ICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgIDExOVx0ICAgICAgICAgICAgICAgICAgICBmaWxsPXtidWJibGVQcm9wcy50aGVtZT8uYnV0dG9uPy5pY29uQ29sb3IgPz8gZGVmYXVsdEljb25Db2xvcn1cbiAgIDEyMFx0ICAgICAgICAgICAgICAgICAgICBkPVwiTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMiAxOSA2LjQxelwiXG4gICAxMjFcdCAgICAgICAgICAgICAgICAgIC8+XG4gICAxMjJcdCAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgIDEyM1x0ICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgIDEyNFx0ICAgICAgICAgICAgPC9TaG93PlxuICAgMTI1XHQgICAgICAgICAgICA8Qm90XG4gICAxMjZcdCAgICAgICAgICAgICAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5iYWNrZ3JvdW5kQ29sb3J9XG4gICAxMjdcdCAgICAgICAgICAgICAgYnViYmxlQmFja2dyb3VuZENvbG9yPXtidWJibGVQcm9wcy50aGVtZT8uYnV0dG9uPy5iYWNrZ3JvdW5kQ29sb3IgPz8gZGVmYXVsdEJ1dHRvbkNvbG9yfVxuICAgMTI4XHQgICAgICAgICAgICAgIGJ1YmJsZVRleHRDb2xvcj17YnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uaWNvbkNvbG9yID8/IGRlZmF1bHRJY29uQ29sb3J9XG4gICAxMjlcdCAgICAgICAgICAgICAgc2hvd1RpdGxlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc2hvd1RpdGxlfVxuICAgMTMwXHQgICAgICAgICAgICAgIHNob3dBZ2VudE1lc3NhZ2VzPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc2hvd0FnZW50TWVzc2FnZXN9XG4gICAxMzFcdCAgICAgICAgICAgICAgdGl0bGU9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py50aXRsZX1cbiAgIDEzMlx0ICAgICAgICAgICAgICB0aXRsZUF2YXRhclNyYz17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnRpdGxlQXZhdGFyU3JjfVxuICAgMTMzXHQgICAgICAgICAgICAgIHdlbGNvbWVNZXNzYWdlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8ud2VsY29tZU1lc3NhZ2V9XG4gICAxMzRcdCAgICAgICAgICAgICAgc2Vjb25kTWVzc2FnZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnNlY29uZE1lc3NhZ2V9XG4gICAxMzVcdCAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZXJyb3JNZXNzYWdlfVxuICAgMTM2XHQgICAgICAgICAgICAgIHBvd2VyZWRCeVRleHRDb2xvcj17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnBvd2VyZWRCeVRleHRDb2xvcn1cbiAgIDEzN1x0ICAgICAgICAgICAgICB0ZXh0SW5wdXQ9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py50ZXh0SW5wdXR9XG4gICAxMzhcdCAgICAgICAgICAgICAgYm90TWVzc2FnZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmJvdE1lc3NhZ2V9XG4gICAxMzlcdCAgICAgICAgICAgICAgdXNlck1lc3NhZ2U9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py51c2VyTWVzc2FnZX1cbiAgIDE0MFx0ICAgICAgICAgICAgICBmZWVkYmFjaz17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmZlZWRiYWNrfVxuICAgMTQxXHQgICAgICAgICAgICAgIGZvbnRTaXplPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZm9udFNpemV9XG4gICAxNDJcdCAgICAgICAgICAgICAgZm9vdGVyPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZm9vdGVyfVxuICAgMTQzXHQgICAgICAgICAgICAgIHNvdXJjZURvY3NUaXRsZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnNvdXJjZURvY3NUaXRsZX1cbiAgIDE0NFx0ICAgICAgICAgICAgICBzdGFydGVyUHJvbXB0cz17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnN0YXJ0ZXJQcm9tcHRzfVxuICAgMTQ1XHQgICAgICAgICAgICAgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnN0YXJ0ZXJQcm9tcHRGb250U2l6ZX1cbiAgIDE0Nlx0ICAgICAgICAgICAgICBjaGF0Zmxvd2lkPXtwcm9wcy5jaGF0Zmxvd2lkfVxuICAgMTQ3XHQgICAgICAgICAgICAgIGNoYXRmbG93Q29uZmlnPXtwcm9wcy5jaGF0Zmxvd0NvbmZpZ31cbiAgIDE0OFx0ICAgICAgICAgICAgICBhcGlIb3N0PXtwcm9wcy5hcGlIb3N0fVxuICAgMTQ5XHQgICAgICAgICAgICAgIG9uUmVxdWVzdD17cHJvcHMub25SZXF1ZXN0fVxuICAgMTUwXHQgICAgICAgICAgICAgIG9ic2VydmVyc0NvbmZpZz17cHJvcHMub2JzZXJ2ZXJzQ29uZmlnfVxuICAgMTUxXHQgICAgICAgICAgICAgIGNsZWFyQ2hhdE9uUmVsb2FkPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uY2xlYXJDaGF0T25SZWxvYWR9XG4gICAxNTJcdCAgICAgICAgICAgICAgZGlzY2xhaW1lcj17YnViYmxlUHJvcHMudGhlbWU/LmRpc2NsYWltZXJ9XG4gICAxNTNcdCAgICAgICAgICAgICAgZGF0ZVRpbWVUb2dnbGU9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5kYXRlVGltZVRvZ2dsZX1cbiAgIDE1NFx0ICAgICAgICAgICAgICByZW5kZXJIVE1MPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8ucmVuZGVySFRNTH1cbiAgIDE1NVx0ICAgICAgICAgICAgICBjaGF0d29vdFVybD17cHJvcHMuY2hhdHdvb3RVcmx9XG4gICAxNTZcdCAgICAgICAgICAgICAgcm9vbUlkcz17cHJvcHMucm9vbUlkc31cbiAgIDE1N1x0ICAgICAgICAgICAgICBpc1VzZUZBUT17cHJvcHMuaXNVc2VGQVF9XG4gICAxNThcdCAgICAgICAgICAgICAgZmlsZVBhdGg9e3Byb3BzLmZpbGVQYXRofVxuICAgMTU5XHQgICAgICAgICAgICAgIHN1Z2dlc3RRdWVzdGlvbnM9e3Byb3BzLnN1Z2dlc3RRdWVzdGlvbnN9XG4gICAxNjBcdCAgICAgICAgICAgICAgZXh0ZXJuYWxEYXRhPXtwcm9wcy5leHRlcm5hbERhdGF9XG4gICAxNjFcdCAgICAgICAgICAgICAgY2FsbEJhY2tGdW5jdGlvbj17cHJvcHMuY2FsbEJhY2tGdW5jdGlvbn1cbiAgIDE2Mlx0ICAgICAgICAgICAgICBjYWxsQmFja0ljb249e3Byb3BzLmNhbGxCYWNrSWNvbn1cbiAgIDE2M1x0ICAgICAgICAgICAgLz5cbiAgIDE2NFx0ICAgICAgICAgIDwvZGl2PlxuICAgMTY1XHQgICAgICAgIDwvU2hvdz5cbiAgIDE2Nlx0ICAgICAgPC9kaXY+XG4gICAxNjdcdCAgICA8Lz5cbiAgIDE2OFx0ICApO1xuICAgMTY5XHR9O1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0d1ZXN0QnViYmxlLnRzeFxuICAgICAxXHRpbXBvcnQgeyBGb3IsIFNob3csIG9uTW91bnQgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCB7IEF2YXRhciB9IGZyb20gJy4uL2F2YXRhcnMvQXZhdGFyJztcbiAgICAgM1x0aW1wb3J0IHsgTWFya2VkIH0gZnJvbSAnQHRzLXN0YWNrL21hcmtkb3duJztcbiAgICAgNFx0aW1wb3J0IHsgRmlsZVVwbG9hZCwgTWVzc2FnZVR5cGUgfSBmcm9tICcuLi9Cb3QnO1xuICAgICA1XHRpbXBvcnQgeyBBdHRhY2htZW50SWNvbiB9IGZyb20gJy4uL2ljb25zJztcbiAgICAgNlx0XG4gICAgIDdcdHR5cGUgUHJvcHMgPSB7XG4gICAgIDhcdCAgbWVzc2FnZTogTWVzc2FnZVR5cGU7XG4gICAgIDlcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAxMFx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgMTFcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMTJcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMTNcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDE0XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTZcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMTdcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgMThcdH07XG4gICAgMTlcdFxuICAgIDIwXHRjb25zdCBkZWZhdWx0QmFja2dyb3VuZENvbG9yID0gJyMzQjgxRjYnO1xuICAgIDIxXHRjb25zdCBkZWZhdWx0VGV4dENvbG9yID0gJyNmZmZmZmYnO1xuICAgIDIyXHRjb25zdCBkZWZhdWx0Rm9udFNpemUgPSAxNjtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZUJ1dHRvbi50c3hcbiAgICAgMVx0aW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBjcmVhdGVFZmZlY3QsIFNob3cgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCB7IGlzTm90RGVmaW5lZCwgZ2V0QnViYmxlQnV0dG9uU2l6ZSB9IGZyb20gJ0AvdXRpbHMvaW5kZXgnO1xuICAgICAzXHRpbXBvcnQgeyBCdXR0b25UaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcbiAgICAgNFx0XG4gICAgIDVcdHR5cGUgUHJvcHMgPSBCdXR0b25UaGVtZSAmIHtcbiAgICAgNlx0ICBpc0JvdE9wZW5lZDogYm9vbGVhbjtcbiAgICAgN1x0ICB0b2dnbGVCb3Q6ICgpID0+IHZvaWQ7XG4gICAgIDhcdCAgc2V0QnV0dG9uUG9zaXRpb246IChwb3NpdGlvbjogeyBib3R0b206IG51bWJlcjsgcmlnaHQ6IG51bWJlciB9KSA9PiB2b2lkO1xuICAgICA5XHQgIGRyYWdBbmREcm9wOiBib29sZWFuO1xuICAgIDEwXHQgIGF1dG9PcGVuPzogYm9vbGVhbjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIHRvIGNvbnRyb2wgYXV0b21hdGljIHdpbmRvdyBvcGVuaW5nXG4gICAgMTFcdCAgb3BlbkRlbGF5PzogbnVtYmVyOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgZm9yIGRlbGF5IHRpbWUgaW4gc2Vjb25kc1xuICAgIDEyXHQgIGF1dG9PcGVuT25Nb2JpbGU/OiBib29sZWFuOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgZm9yIG9wZW5pbmcgb24gbW9iaWxlXG4gICAgMTNcdH07XG4gICAgMTRcdFxuICAgIDE1XHRjb25zdCBkZWZhdWx0QnV0dG9uQ29sb3IgPSAnIzNCODFGNic7XG4gICAgMTZcdGNvbnN0IGRlZmF1bHRJY29uQ29sb3IgPSAnd2hpdGUnO1xuICAgIDE3XHRjb25zdCBkZWZhdWx0Qm90dG9tID0gMjA7XG4gICAgMThcdGNvbnN0IGRlZmF1bHRSaWdodCA9IDIwO1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL1NvdXJjZUJ1YmJsZS50c3hcbiAgICAgMVx0dHlwZSBQcm9wcyA9IHtcbiAgICAgMlx0ICBwYWdlQ29udGVudDogc3RyaW5nO1xuICAgICAzXHQgIG1ldGFkYXRhOiBvYmplY3Q7XG4gICAgIDRcdCAgb25Tb3VyY2VDbGljaz86ICgpID0+IHZvaWQ7XG4gICAgIDVcdCAgc3JjPzogYW55O1xuICAgICA2XHR9O1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0FnZW50UmVhc29uaW5nQnViYmxlLnRzeFxuICAgICAxXHRpbXBvcnQgeyBGb3IsIG9uTW91bnQgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCB7IE1hcmtlZCB9IGZyb20gJ0B0cy1zdGFjay9tYXJrZG93bic7XG4gICAgIDNcdGltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICcuLi9Cb3QnO1xuICAgICA0XHRpbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuICAgICA1XHRcbiAgICAgNlx0dHlwZSBQcm9wcyA9IHtcbiAgICAgN1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgICA4XHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAgOVx0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAxMFx0ICBhZ2VudE5hbWU6IHN0cmluZztcbiAgICAxMVx0ICBhZ2VudE1lc3NhZ2U6IHN0cmluZztcbiAgICAxMlx0ICBhZ2VudEFydGlmYWN0cz86IEZpbGVVcGxvYWRbXTtcbiAgICAxM1x0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTRcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDE2XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDE3XHR9O1xuICAgIDE4XHRcbiAgICAxOVx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjZjdmOGZmJztcbiAgICAyMFx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjMzAzMjM1JztcbiAgICAyMVx0Y29uc3QgZGVmYXVsdEZvbnRTaXplID0gMTY7XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvdHlwZXMudHNcbiAgICAgMVx0ZXhwb3J0IHR5cGUgQnViYmxlUGFyYW1zID0ge1xuICAgICAyXHQgIHRoZW1lPzogQnViYmxlVGhlbWU7XG4gICAgIDNcdH07XG4gICAgIDRcdFxuICAgICA1XHRleHBvcnQgdHlwZSBCdWJibGVUaGVtZSA9IHtcbiAgICAgNlx0ICBjaGF0V2luZG93PzogQ2hhdFdpbmRvd1RoZW1lO1xuICAgICA3XHQgIGJ1dHRvbj86IEJ1dHRvblRoZW1lO1xuICAgICA4XHQgIHRvb2x0aXA/OiBUb29sVGlwVGhlbWU7XG4gICAgIDlcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgIDEwXHQgIGN1c3RvbUNTUz86IHN0cmluZztcbiAgICAxMVx0fTtcbiAgICAxMlx0XG4gICAgMTNcdGV4cG9ydCB0eXBlIFRleHRJbnB1dFRoZW1lID0ge1xuICAgIDE0XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTZcdCAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgMTdcdCAgc2VuZEJ1dHRvbkNvbG9yPzogc3RyaW5nO1xuICAgIDE4XHQgIG1heENoYXJzPzogbnVtYmVyO1xuICAgIDE5XHQgIG1heENoYXJzV2FybmluZ01lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMjBcdCAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgICAyMVx0ICBzZW5kTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyMlx0ICBzZW5kU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyM1x0ICByZWNlaXZlTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyNFx0ICByZWNlaXZlU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyNVx0fTtcbiAgICAyNlx0XG4gICAgMjdcdGV4cG9ydCB0eXBlIFVzZXJNZXNzYWdlVGhlbWUgPSB7XG4gICAgMjhcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDI5XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAzMVx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMzJcdH07XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9Ub29sdGlwLnRzeFxuICAgICAxXHRpbXBvcnQgeyBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRcbiAgICAgM1x0Y29uc3QgZGVmYXVsdFRvb2x0aXBNZXNzYWdlID0gJ0hpIFRoZXJlIPCfkYshJztcbiAgICAgNFx0Y29uc3QgZGVmYXVsdFRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IgPSAnYmxhY2snO1xuICAgICA1XHRjb25zdCBkZWZhdWx0VG9vbHRpcFRleHRDb2xvciA9ICd3aGl0ZSc7XG4gICAgIDZcdGNvbnN0IGRlZmF1bHRUb29sdGlwRm9udFNpemUgPSAxNjsgLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHRvb2x0aXBcbiAgICAgN1x0XG4gICAgIDhcdHR5cGUgVG9vbHRpcFByb3BzID0ge1xuICAgICA5XHQgIHNob3dUb29sdGlwOiBib29sZWFuO1xuICAgIDEwXHQgIHBvc2l0aW9uOiB7IGJvdHRvbTogbnVtYmVyOyByaWdodDogbnVtYmVyIH07XG4gICAgMTFcdCAgYnV0dG9uU2l6ZTogbnVtYmVyO1xuICAgIDEyXHQgIHRvb2x0aXBNZXNzYWdlPzogc3RyaW5nO1xuICAgIDEzXHQgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTRcdCAgdG9vbHRpcFRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICB0b29sdGlwRm9udFNpemU/OiBudW1iZXI7IC8vIEFkZCB0b29sdGlwRm9udFNpemUgdG8gcHJvcHNcbiAgICAxNlx0fTtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9MZWFkQ2FwdHVyZUJ1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbiAgICAgM1x0aW1wb3J0IHsgRm9ybUV2ZW50LCBMZWFkc0NvbmZpZywgTWVzc2FnZVR5cGUgfSBmcm9tICdAL2NvbXBvbmVudHMvQm90JztcbiAgICAgNFx0aW1wb3J0IHsgYWRkTGVhZFF1ZXJ5LCBMZWFkQ2FwdHVyZUlucHV0IH0gZnJvbSAnQC9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnknO1xuICAgICA1XHRpbXBvcnQgeyBTYXZlTGVhZEJ1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy9idXR0b25zL0xlYWRDYXB0dXJlQnV0dG9ucyc7XG4gICAgIDZcdGltcG9ydCB7IEF2YXRhciB9IGZyb20gJ0AvY29tcG9uZW50cy9hdmF0YXJzL0F2YXRhcic7XG4gICAgIDdcdGltcG9ydCB7IGdldExvY2FsU3RvcmFnZUNoYXRmbG93LCBzZXRMb2NhbFN0b3JhZ2VDaGF0ZmxvdyB9IGZyb20gJ0AvdXRpbHMnO1xuICAgICA4XHRcbiAgICAgOVx0dHlwZSBQcm9wcyA9IHtcbiAgICAxMFx0ICBtZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgICAxMVx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgMTJcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMTNcdCAgbGVhZHNDb25maWc/OiBMZWFkc0NvbmZpZztcbiAgICAxNFx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDE1XHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDE2XHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAxN1x0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE5XHQgIHNlbmRCdXR0b25Db2xvcj86IHN0cmluZztcbiAgICAyMFx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAyMVx0ICBpc0xlYWRTYXZlZDogYm9vbGVhbjtcbiAgICAyMlx0ICBzZXRJc0xlYWRTYXZlZDogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIDIzXHQgIHNldExlYWRFbWFpbDogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgMjRcdH07XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvaW5kZXgudHNcbiAgICAgMVx0ZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzJztcbi4uLlxuUGF0aDogc3JjL0Z1bGxQYWdlQ2hhdC50c3hcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCb3RQcm9wcyB9IGZyb20gJ2NtY3RzLWMtYWdlbnQtZW1iZWRkaW5nJ1xuICAgICAyXHRpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuICAgICAzXHRcbiAgICAgNFx0dHlwZSBQcm9wcyA9IEJvdFByb3BzICYge1xuICAgICA1XHQgIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllc1xuICAgICA2XHQgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICA3XHR9XG4gICAgIDhcdFxuICAgICA5XHRkZWNsYXJlIGdsb2JhbCB7XG4gICAgMTBcdCAgbmFtZXNwYWNlIEpTWCB7XG4gICAgMTFcdCAgICBpbnRlcmZhY2UgSW50cmluc2ljRWxlbWVudHMge1xuICAgIDEyXHQgICAgICAnZmxvd2lzZS1mdWxsY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEzXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxNFx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDE1XHQgICAgICA+ICYgeyBjbGFzcz86IHN0cmluZyB9XG4gICAgMTZcdCAgICB9XG4gICAgMTdcdCAgfVxuICAgIDE4XHR9XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9mdWxsL2NvbXBvbmVudHMvRnVsbC50c3hcbiAgICAgMVx0aW1wb3J0IHN0eWxlcyBmcm9tICcuLi8uLi8uLi9hc3NldHMvaW5kZXguY3NzJztcbiAgICAgMlx0aW1wb3J0IHsgQm90LCBCb3RQcm9wcyB9IGZyb20gJ0AvY29tcG9uZW50cy9Cb3QnO1xuICAgICAzXHRpbXBvcnQgeyBCdWJibGVQYXJhbXMgfSBmcm9tICdAL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgIDRcdGltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgb25DbGVhbnVwLCBvbk1vdW50LCBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgICA1XHRcbiAgICAgNlx0Y29uc3QgZGVmYXVsdEJ1dHRvbkNvbG9yID0gJyMzQjgxRjYnO1xuICAgICA3XHRjb25zdCBkZWZhdWx0SWNvbkNvbG9yID0gJ3doaXRlJztcbiAgICAgOFx0XG4gICAgIDlcdGV4cG9ydCB0eXBlIEZ1bGxQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zO1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvaW5kZXgudHNcbiAgICAgMVx0ZXhwb3J0ICogZnJvbSAnLi9CdWJibGUnO1xuLi4uXG5QYXRoOiBzcmMvd2luZG93LnRzXG4gICAgIDFcdGltcG9ydCB7IG9ic2VydmVyc0NvbmZpZ1R5cGUgfSBmcm9tICcuL2NvbXBvbmVudHMvQm90JztcbiAgICAgMlx0aW1wb3J0IHsgQnViYmxlVGhlbWUgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgIDNcdFxuICAgICA0XHQvKiBlc2xpbnQtZGlzYWJsZSBzb2xpZC9yZWFjdGl2aXR5ICovXG4gICAgIDVcdHR5cGUgQm90UHJvcHMgPSB7XG4gICAgIDZcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgICA3XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgIDhcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgICA5XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgMTBcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcbiAgICAxMVx0ICB0aGVtZT86IEJ1YmJsZVRoZW1lO1xuICAgIDEyXHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgIDEzXHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIDE0XHQgIGlzVXNlRkFRPzogdW5kZWZpbmVkO1xuICAgIDE1XHR9O1xuLi4uXG5QYXRoOiBzcmMvcmVnaXN0ZXIudHN4XG4gICAgIDFcdGltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdzb2xpZC1lbGVtZW50JztcbiAgICAgMlx0aW1wb3J0IHsgZGVmYXVsdEJvdFByb3BzIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuICAgICAzXHRpbXBvcnQgeyBCdWJibGUgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZSc7XG4gICAgIDRcdGltcG9ydCB7IEZ1bGwgfSBmcm9tICcuL2ZlYXR1cmVzL2Z1bGwnO1xuICAgICA1XHRcbiAgICAgNlx0ZXhwb3J0IGNvbnN0IHJlZ2lzdGVyV2ViQ29tcG9uZW50cyA9ICgpID0+IHtcbiAgICAgN1x0ICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcbiAgICAgOFx0ICAvLyBAdHMtZXhwZWN0LWVycm9yIGVsZW1lbnQgaW5jb3JlY3QgdHlwZVxuICAgICA5XHQgIGN1c3RvbUVsZW1lbnQoJ2Zsb3dpc2UtZnVsbGNoYXRib3QnLCBkZWZhdWx0Qm90UHJvcHMsIEZ1bGwpO1xuICAgIDEwXHQgIGN1c3RvbUVsZW1lbnQoJ2Zsb3dpc2UtY2hhdGJvdCcsIGRlZmF1bHRCb3RQcm9wcywgQnViYmxlKTtcbiAgICAxMVx0fTtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL3BvcHVwL2NvbXBvbmVudHMvaW5kZXgudHNcbiAgICAgMVx0ZXhwb3J0ICogZnJvbSAnLi9Qb3B1cCc7XG4gICAgIDJcdGV4cG9ydCAqIGZyb20gJy4vRGlzY2xhaW1lclBvcHVwJztcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvaW5kZXgudHNcbiAgICAgMVx0ZXhwb3J0ICogZnJvbSAnLi9idXR0b25zL1NlbmRCdXR0b24nO1xuICAgICAyXHRleHBvcnQgKiBmcm9tICcuL1R5cGluZ0J1YmJsZSc7XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9mdWxsL2NvbXBvbmVudHMvaW5kZXgudHNcbiAgICAgMVx0ZXhwb3J0ICogZnJvbSAnLi9GdWxsJztcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9Cb3RCdWJibGUudHN4XG4uLi5cbiAgICAxOFx0XG4gICAgMTlcdHR5cGUgUHJvcHMgPSB7XG4gICAgMjBcdCAgbWVzc2FnZTogTWVzc2FnZVR5cGU7XG4gICAgMjFcdCAgc2V0TWVzc2FnZXM/OiBhbnk7XG4gICAgMjJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDIzXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDI0XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgMjVcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIDI2XHQgIGZpbGVBbm5vdGF0aW9ucz86IGFueTtcbiAgICAyN1x0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAyOFx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMjlcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDMwXHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzMVx0ICBjaGF0RmVlZGJhY2tTdGF0dXM/OiBib29sZWFuO1xuICAgIDMyXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDMzXHQgIGZlZWRiYWNrQ29sb3I/OiBzdHJpbmc7XG4gICAgMzRcdCAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgIDM1XHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgICAuLi4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFWYUdrN0FZeDdGc1BiVE5uS01VS0xpIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxMCwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1ODozMS4yOTRaIiwicmVzcG9uc2VfdGV4dCI6Ik5vdyBJIGNhbiBzZWUgdGhlIGNvcnJlY3QgaW1wb3J0IHBhdGguIFRoZSBCdWJibGVQcm9wcyBpcyBleHBvcnRlZCBmcm9tIGAuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZWAuIExldCBtZSBmaXggdGhlIGltcG9ydDpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiIyZTIxZDdlZS03ZTNlLTQxMjEtYmEwNy1hZmRjZjBkZjA1ZWQiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFZYzUxZFF5V1pyREtKa3NoRzZINVVRIiwidG9vbF9uYW1lIjoibGF1bmNoLXByb2Nlc3MiLCJpbnB1dF9qc29uIjoie1wiY29tbWFuZFwiOiBcImJ1biAtLWJ1biB0c2MgLS1ub0VtaXQgLS1za2lwTGliQ2hlY2sgc3JjL2NvbnN0YW50cy50c1wiLCBcIndhaXRcIjogdHJ1ZSwgXCJtYXhfd2FpdF9zZWNvbmRzXCI6IDMwfSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6Ik5vdyBsZXQgbWUgY2hlY2sgdGhlIFR5cGVTY3JpcHQgdHlwZXMgYWdhaW46XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJTdWNjZXNzZnVsbHkgZWRpdGVkIHRoZSBmaWxlIHNyYy9jb25zdGFudHMudHMuXG5SZXN1bHQgZm9yIHN0cl9yZXBsYWNlIGZvciBlbnRyeSB3aXRoIGluZGV4IFsxXTpcblJlcGxhY2VtZW50IHN1Y2Nlc3NmdWwuXG5FZGl0ZWQgc2VjdGlvbiBhZnRlciBJREUgYXV0by1mb3JtYXR0aW5nIHdhcyBhcHBsaWVkOlxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUnO1xuICAgICAyXHRcbiAgICAgM1x0LyoqXG4gICAgIDRcdCAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNoYXRib3QgYnViYmxlIGNvbXBvbmVudC5cbiAgICAgNVx0ICogUHJvdmlkZXMgc2Vuc2libGUgZGVmYXVsdHMgZm9yIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzIHdoaWxlIGtlZXBpbmdcblxuUmV2aWV3IHRoZSBjaGFuZ2VzIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUgYXMgZXhwZWN0ZWQgKGNvcnJlY3QgaW5kZW50YXRpb24sIG5vIGR1cGxpY2F0ZSBsaW5lcywgZXRjKS5cbkVkaXQgdGhlIGZpbGUgYWdhaW4gaWYgbmVjZXNzYXJ5LlxuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxWGh1VTh5R0U2dTdtNnRTRlhIS0VHcCJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTAsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDM6NTg6MzkuNDI1WiIsInJlc3BvbnNlX3RleHQiOiJOb3cgbGV0IG1lIGNoZWNrIHRoZSBUeXBlU2NyaXB0IHR5cGVzIGFnYWluOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjMzN2QyNmJlLWNkZTgtNGEwMS05YjNkLTIyMDNkMjYzZWViMyIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVkyWGE0cHBjNjlTOVk0cm9HZlplTnMiLCJ0b29sX25hbWUiOiJ2aWV3IiwiaW5wdXRfanNvbiI6IntcInBhdGhcIjogXCJzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvaW5kZXgudHNcIiwgXCJ0eXBlXCI6IFwiZmlsZVwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IlRoZSBUeXBlU2NyaXB0IGVycm9yIGlzIHJlbGF0ZWQgdG8gSlNYIGNvbmZpZ3VyYXRpb24sIGJ1dCBsZXQgbWUgY2hlY2sgaWYgdGhlcmUncyBhIGJldHRlciB3YXkgdG8gaW1wb3J0IHRoaXMuIExldCBtZSBsb29rIGF0IHRoZSBpbmRleCBmaWxlOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSBhcmUgdGhlIHJlc3VsdHMgZnJvbSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuXG4gICAgICAgIDxyZXR1cm4tY29kZT5cbiAgICAgICAgMVxuICAgICAgICA8L3JldHVybi1jb2RlPlxuICAgICAgICA8c3Rkb3V0PlxuICAgICAgICBcdTAwMWJbPzkwMDFoXHUwMDFiWz8xMDA0aFx1MDAxYls/MjVsXHUwMDFiWzJKXHUwMDFiW21cdTAwMWJbSFxuXG5cblxuXG5cblxuXHUwMDFiW0hcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1x1MDAxYls/MjVoXHUwMDFiWz8yNWxcdTAwMWJbOTZtc3JjL2NvbnN0YW50cy50c1x1MDAxYlttOlx1MDAxYls5M20xXHUwMDFiW206XHUwMDFiWzkzbTM0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiWzdtXHUwMDFiWzM7MUgxXHUwMDFiWzI3bSBpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUnO1x1MDAxYls3bVxuIFx1MDAxYlsyN21cdTAwMWJbMzRYXHUwMDFiWzkxbVx1MDAxYlszNEN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW21cdTAwMWJbNzsxSEZvdW5kIDEgZXJyb3IgaW4gc3JjL2NvbnN0YW50cy50c1x1MDAxYls5MG06MVxuXHUwMDFiWz8yNWhcdTAwMWJbbVxuXHUwMDFiWzMxbWVycm9yXHUwMDFiW21cdTAwMWJbMm06XHUwMDFiWzIybSBcIlx1MDAxYlsxbXRzYy5jbWRcdTAwMWJbMjJtXCIgZXhpdGVkIHdpdGggY29kZSAyXG5cbiAgICAgICAgPC9zdGRvdXQ+XG4gICAgICAgIDxzdGRlcnI+XG4gICAgICAgIFxuICAgICAgICA8L3N0ZGVycj4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFZYzUxZFF5V1pyREtKa3NoRzZINVVRIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxMSwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1ODo0NC44NjhaIiwicmVzcG9uc2VfdGV4dCI6IlRoZSBUeXBlU2NyaXB0IGVycm9yIGlzIHJlbGF0ZWQgdG8gSlNYIGNvbmZpZ3VyYXRpb24sIGJ1dCBsZXQgbWUgY2hlY2sgaWYgdGhlcmUncyBhIGJldHRlciB3YXkgdG8gaW1wb3J0IHRoaXMuIExldCBtZSBsb29rIGF0IHRoZSBpbmRleCBmaWxlOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjEyNTVhNWUwLWUxZTUtNDY0OS1hNWMzLWY0ZDY3OTJiNjA3NCIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVQ5bnhBeWZIVFp4ejlUWWNkamVTZzUiLCJ0b29sX25hbWUiOiJzdHItcmVwbGFjZS1lZGl0b3IiLCJpbnB1dF9qc29uIjoie1wiY29tbWFuZFwiOiBcInN0cl9yZXBsYWNlXCIsIFwicGF0aFwiOiBcInNyYy9jb25zdGFudHMudHNcIiwgXCJpbnN0cnVjdGlvbl9yZW1pbmRlclwiOiBcIkFMV0FZUyBCUkVBSyBET1dOIEVESVRTIElOVE8gU01BTExFUiBDSFVOS1MgT0YgQVQgTU9TVCAyMDAgTElORVMgRUFDSC5cIiwgXCJvbGRfc3RyXzFcIjogXCJpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUnO1wiLCBcIm9sZF9zdHJfc3RhcnRfbGluZV9udW1iZXJfMVwiOiAxLCBcIm9sZF9zdHJfZW5kX2xpbmVfbnVtYmVyXzFcIjogMSwgXCJuZXdfc3RyXzFcIjogXCJpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cyc7XCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTGV0IG1lIHRyeSBpbXBvcnRpbmcgZnJvbSB0aGUgaW5kZXggZmlsZTpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL2luZGV4LnRzOlxuICAgICAxXHRleHBvcnQgKiBmcm9tICcuL0J1YmJsZSc7XG4gICAgIDJcdFxuVG90YWwgbGluZXMgaW4gZmlsZTogMlxuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxWTJYYTRwcGM2OVM5WTRyb0dmWmVOcyJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTEsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDM6NTg6NDkuMDY3WiIsInJlc3BvbnNlX3RleHQiOiJMZXQgbWUgdHJ5IGltcG9ydGluZyBmcm9tIHRoZSBpbmRleCBmaWxlOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjU0ODFlNmI0LTE5MGMtNDE1ZC05NWIyLWI2NDk0NDY4YjI1NiIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUJTWlNvTU02UmZQWU5wekpMaWN1RjgiLCJ0b29sX25hbWUiOiJsYXVuY2gtcHJvY2VzcyIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwiYnVuIC0tYnVuIHRzYyAtLW5vRW1pdCAtLXNraXBMaWJDaGVjayBzcmMvY29uc3RhbnRzLnRzXCIsIFwid2FpdFwiOiB0cnVlLCBcIm1heF93YWl0X3NlY29uZHNcIjogMzB9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTGV0IG1lIGNoZWNrIHRoZSBUeXBlU2NyaXB0IHR5cGVzIGFnYWluOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiU3VjY2Vzc2Z1bGx5IGVkaXRlZCB0aGUgZmlsZSBzcmMvY29uc3RhbnRzLnRzLlxuUmVzdWx0IGZvciBzdHJfcmVwbGFjZSBmb3IgZW50cnkgd2l0aCBpbmRleCBbMV06XG5SZXBsYWNlbWVudCBzdWNjZXNzZnVsLlxuRWRpdGVkIHNlY3Rpb24gYWZ0ZXIgSURFIGF1dG8tZm9ybWF0dGluZyB3YXMgYXBwbGllZDpcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMnO1xuICAgICAyXHRcbiAgICAgM1x0LyoqXG4gICAgIDRcdCAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNoYXRib3QgYnViYmxlIGNvbXBvbmVudC5cbiAgICAgNVx0ICogUHJvdmlkZXMgc2Vuc2libGUgZGVmYXVsdHMgZm9yIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzIHdoaWxlIGtlZXBpbmdcblxuUmV2aWV3IHRoZSBjaGFuZ2VzIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUgYXMgZXhwZWN0ZWQgKGNvcnJlY3QgaW5kZW50YXRpb24sIG5vIGR1cGxpY2F0ZSBsaW5lcywgZXRjKS5cbkVkaXQgdGhlIGZpbGUgYWdhaW4gaWYgbmVjZXNzYXJ5LlxuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxVDlueEF5ZkhUWnh6OVRZY2RqZVNnNSJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTEsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDM6NTg6NTQuNzc5WiIsInJlc3BvbnNlX3RleHQiOiJMZXQgbWUgY2hlY2sgdGhlIFR5cGVTY3JpcHQgdHlwZXMgYWdhaW46XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiZGQwOGFkODYtNjZlMy00NWQzLWJkMTAtOWRlYWU0OGE1YjZhIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxSFZlamtiamNCRGpKQzRCVnZYdWN3diIsInRvb2xfbmFtZSI6InN0ci1yZXBsYWNlLWVkaXRvciIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwic3RyX3JlcGxhY2VcIiwgXCJwYXRoXCI6IFwic3JjL2NvbnN0YW50cy50c1wiLCBcImluc3RydWN0aW9uX3JlbWluZGVyXCI6IFwiQUxXQVlTIEJSRUFLIERPV04gRURJVFMgSU5UTyBTTUFMTEVSIENIVU5LUyBPRiBBVCBNT1NUIDIwMCBMSU5FUyBFQUNILlwiLCBcIm9sZF9zdHJfMVwiOiBcImltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzJztcIiwgXCJvbGRfc3RyX3N0YXJ0X2xpbmVfbnVtYmVyXzFcIjogMSwgXCJvbGRfc3RyX2VuZF9saW5lX251bWJlcl8xXCI6IDEsIFwibmV3X3N0cl8xXCI6IFwiaW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vaW5kZXgnO1wifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IlRoZSBpc3N1ZSBzZWVtcyB0byBiZSB3aXRoIHRoZSBKU1ggY29uZmlndXJhdGlvbi4gTGV0IG1lIGNoZWNrIGhvdyBvdGhlciBmaWxlcyBpbXBvcnQgQnViYmxlUHJvcHMuIExvb2tpbmcgYXQgdGhlIGNvZGViYXNlIHJldHJpZXZhbCByZXN1bHRzLCBJIGNhbiBzZWUgdGhhdCBgc3JjL2luZGV4LnRzYCBleHBvcnRzIEJ1YmJsZVByb3BzLiBMZXQgbWUgdXNlIHRoYXQ6XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJIZXJlIGFyZSB0aGUgcmVzdWx0cyBmcm9tIGV4ZWN1dGluZyB0aGUgY29tbWFuZC5cbiAgICAgICAgPHJldHVybi1jb2RlPlxuICAgICAgICAxXG4gICAgICAgIDwvcmV0dXJuLWNvZGU+XG4gICAgICAgIDxzdGRvdXQ+XG4gICAgICAgIFx1MDAxYls/OTAwMWhcdTAwMWJbPzEwMDRoXHUwMDFiWz8yNWxcdTAwMWJbMkpcdTAwMWJbbVx1MDAxYltIXG5cblxuXG5cblxuXG5cdTAwMWJbSFx1MDAxYl0wO0M6XFxXSU5ET1dTXFxTeXN0ZW0zMlxcV2luZG93c1Bvd2VyU2hlbGxcXHYxLjBcXHBvd2Vyc2hlbGwuZXhlXHUwMDA3XHUwMDFiWz8yNWhcdTAwMWJbPzI1bFx1MDAxYls5Nm1zcmMvY29uc3RhbnRzLnRzXHUwMDFiW206XHUwMDFiWzkzbTFcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA1OiBcdTAwMWJbbU1vZHVsZSAnXCIuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzXCInIGhhcyBubyBleHBvcnRlZCBtZW1iZXIgJ0J1YmJsZVByb3BzJy5cdTAwMWJbN21cdTAwMWJbMzsxSDFcdTAwMWJbMjdtIGltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzJztcdTAwMWJbN21cbiBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5cdTAwMWJbOTZtXHUwMDFiWzY7MUhzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvaW5kZXgudHNcdTAwMWJbbTpcdTAwMWJbOTNtMVx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL0J1YmJsZScgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZS50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYls3bVx1MDAxYls4OzFIMVx1MDAxYlsyN20gZXhwb3J0ICogZnJvbSAnLi9CdWJibGUnO1xuXHUwMDFiWz8yNWhcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cbkZvdW5kIDIgZXJyb3JzIGluIDIgZmlsZXMuXG5cbkVycm9ycyAgRmlsZXNcbiAgICAgMSAgc3JjL2NvbnN0YW50cy50c1x1MDAxYls5MG06MVx1MDAxYltLXHUwMDFiW21cbiAgICAgMSAgc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL2luZGV4LnRzXHUwMDFiWzkwbToxXHUwMDFiW0tcdTAwMWJbbVxuXHUwMDFiWzMxbWVycm9yXHUwMDFiW21cdTAwMWJbMm06XHUwMDFiWzIybSBcIlx1MDAxYlsxbXRzYy5jbWRcdTAwMWJbMjJtXCIgZXhpdGVkIHdpdGggY29kZSAyXG5cbiAgICAgICAgPC9zdGRvdXQ+XG4gICAgICAgIDxzdGRlcnI+XG4gICAgICAgIFxuICAgICAgICA8L3N0ZGVycj4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFCU1pTb01NNlJmUFlOcHpKTGljdUY4In19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxMiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1OTowMC4wOThaIiwicmVzcG9uc2VfdGV4dCI6IlRoZSBpc3N1ZSBzZWVtcyB0byBiZSB3aXRoIHRoZSBKU1ggY29uZmlndXJhdGlvbi4gTGV0IG1lIGNoZWNrIGhvdyBvdGhlciBmaWxlcyBpbXBvcnQgQnViYmxlUHJvcHMuIExvb2tpbmcgYXQgdGhlIGNvZGViYXNlIHJldHJpZXZhbCByZXN1bHRzLCBJIGNhbiBzZWUgdGhhdCBgc3JjL2luZGV4LnRzYCBleHBvcnRzIEJ1YmJsZVByb3BzLiBMZXQgbWUgdXNlIHRoYXQ6XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiMDA4YmIzNDktYjI4MS00ZThkLThkNjYtYjU3MDFlMmRiODQ0IiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxWEFLb29hcThqV1JSRWhLSDlaaWE5OSIsInRvb2xfbmFtZSI6ImxhdW5jaC1wcm9jZXNzIiwiaW5wdXRfanNvbiI6IntcImNvbW1hbmRcIjogXCJidW4gLS1idW4gdHNjIC0tbm9FbWl0IC0tc2tpcExpYkNoZWNrIHNyYy9jb25zdGFudHMudHNcIiwgXCJ3YWl0XCI6IHRydWUsIFwibWF4X3dhaXRfc2Vjb25kc1wiOiAzMH0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJMZXQgbWUgY2hlY2sgdGhlIFR5cGVTY3JpcHQgdHlwZXMgYWdhaW46XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJTdWNjZXNzZnVsbHkgZWRpdGVkIHRoZSBmaWxlIHNyYy9jb25zdGFudHMudHMuXG5SZXN1bHQgZm9yIHN0cl9yZXBsYWNlIGZvciBlbnRyeSB3aXRoIGluZGV4IFsxXTpcblJlcGxhY2VtZW50IHN1Y2Nlc3NmdWwuXG5FZGl0ZWQgc2VjdGlvbiBhZnRlciBJREUgYXV0by1mb3JtYXR0aW5nIHdhcyBhcHBsaWVkOlxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9pbmRleCc7XG4gICAgIDJcdFxuICAgICAzXHQvKipcbiAgICAgNFx0ICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhdGJvdCBidWJibGUgY29tcG9uZW50LlxuICAgICA1XHQgKiBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXMgd2hpbGUga2VlcGluZ1xuXG5SZXZpZXcgdGhlIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhcyBleHBlY3RlZCAoY29ycmVjdCBpbmRlbnRhdGlvbiwgbm8gZHVwbGljYXRlIGxpbmVzLCBldGMpLlxuRWRpdCB0aGUgZmlsZSBhZ2FpbiBpZiBuZWNlc3NhcnkuXG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFIVmVqa2JqY0JEakpDNEJWdlh1Y3d2In19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxMiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1OTowNi4xNzJaIiwicmVzcG9uc2VfdGV4dCI6IkxldCBtZSBjaGVjayB0aGUgVHlwZVNjcmlwdCB0eXBlcyBhZ2FpbjpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiI0Y2E1YzlhMC05OTA0LTQ4NDItOTU5MC1lYmFjNWQ5NTk1NDkiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDE5TmdFS2JUWVNwbVBrQVA1M21hTVA1IiwidG9vbF9uYW1lIjoiY29kZWJhc2UtcmV0cmlldmFsIiwiaW5wdXRfanNvbiI6IntcImluZm9ybWF0aW9uX3JlcXVlc3RcIjogXCJCb3RQcm9wcyBhbmQgQnViYmxlUGFyYW1zIHR5cGUgZGVmaW5pdGlvbnMgdG8gdW5kZXJzdGFuZCB0aGUgY29tcGxldGUgc3RydWN0dXJlIG9mIEJ1YmJsZVByb3BzXCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiVGhlIGlzc3VlIGlzIHdpdGggdGhlIEpTWCBjb25maWd1cmF0aW9uIGluIHRoZSBUeXBlU2NyaXB0IHNldHVwLiBTaW5jZSB0aGlzIGlzIGEgcmVmYWN0b3JpbmcgdGFzayBhbmQgdGhlIHR5cGVzIGFyZSB3b3JraW5nIGluIHRoZSBhY3R1YWwgY29kZWJhc2UgKGFzIGV2aWRlbmNlZCBieSB0aGUgZXhpc3RpbmcgY29kZSksIGxldCBtZSBjcmVhdGUgYSBtb3JlIGRpcmVjdCBhcHByb2FjaC4gTGV0IG1lIGRlZmluZSB0aGUgdHlwZSBsb2NhbGx5IHRvIGF2b2lkIHRoZSBpbXBvcnQgaXNzdWVzOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSBhcmUgdGhlIHJlc3VsdHMgZnJvbSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuXG4gICAgICAgIDxyZXR1cm4tY29kZT5cbiAgICAgICAgMVxuICAgICAgICA8L3JldHVybi1jb2RlPlxuICAgICAgICA8c3Rkb3V0PlxuICAgICAgICBcdTAwMWJbPzkwMDFoXHUwMDFiWz8xMDA0aFx1MDAxYls/MjVsXHUwMDFiWzJKXHUwMDFiW21cdTAwMWJbSFxuXG5cblxuXG5cblxuXHUwMDFiW0hcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1x1MDAxYls/MjVoXHUwMDFiWz8yNWxcdTAwMWJbOTZtc3JjL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTFcdTAwMWJbbTpcdTAwMWJbOTNtMzEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9jb21wb25lbnRzL0JvdCcgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvQm90LnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiWzdtXHUwMDFiWzM7MUgxXHUwMDFiWzI3bSBleHBvcnQgdHlwZSB7IEJvdFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0JvdCc7XHUwMDFiWzdtXG4gXHUwMDFiWzI3bVx1MDAxYlszMVhcdTAwMWJbOTFtXHUwMDFiWzMxQ35+fn5+fn5+fn5+fn5+fn5+flx1MDAxYls5Nm1cdTAwMWJbNjsxSHNyYy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M20yXHUwMDFiW206XHUwMDFiWzkzbTM0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiWzdtXHUwMDFiWzg7MUgyXHUwMDFiWzI3bSBleHBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUnO1xuXHUwMDFiWz8yNWhcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzM0WFx1MDAxYls5MW1cdTAwMWJbMzRDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cbkZvdW5kIDIgZXJyb3JzIGluIHRoZSBzYW1lIGZpbGUsIHN0YXJ0aW5nIGF0OiBzcmMvaW5kZXgudHNcdTAwMWJbOTBtOjFcdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzMxbWVycm9yXHUwMDFiW21cdTAwMWJbMm06XHUwMDFiWzIybSBcIlx1MDAxYlsxbXRzYy5jbWRcdTAwMWJbMjJtXCIgZXhpdGVkIHdpdGggY29kZSAyXG5cbiAgICAgICAgPC9zdGRvdXQ+XG4gICAgICAgIDxzdGRlcnI+XG4gICAgICAgIFxuICAgICAgICA8L3N0ZGVycj4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFYQUtvb2FxOGpXUlJFaEtIOVppYTk5In19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxMywiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1OToxMS43NjVaIiwicmVzcG9uc2VfdGV4dCI6IlRoZSBpc3N1ZSBpcyB3aXRoIHRoZSBKU1ggY29uZmlndXJhdGlvbiBpbiB0aGUgVHlwZVNjcmlwdCBzZXR1cC4gU2luY2UgdGhpcyBpcyBhIHJlZmFjdG9yaW5nIHRhc2sgYW5kIHRoZSB0eXBlcyBhcmUgd29ya2luZyBpbiB0aGUgYWN0dWFsIGNvZGViYXNlIChhcyBldmlkZW5jZWQgYnkgdGhlIGV4aXN0aW5nIGNvZGUpLCBsZXQgbWUgY3JlYXRlIGEgbW9yZSBkaXJlY3QgYXBwcm9hY2guIExldCBtZSBkZWZpbmUgdGhlIHR5cGUgbG9jYWxseSB0byBhdm9pZCB0aGUgaW1wb3J0IGlzc3VlczpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiI4MDIyNjgwNy04YWQ3LTRiNGUtYjliYy0yYzg1YWQ2NjM1OGYiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFHVGRneXdzenVyS2d0WmE2Y3h0RmhUIiwidG9vbF9uYW1lIjoic3RyLXJlcGxhY2UtZWRpdG9yIiwiaW5wdXRfanNvbiI6IntcImNvbW1hbmRcIjogXCJzdHJfcmVwbGFjZVwiLCBcInBhdGhcIjogXCJzcmMvY29uc3RhbnRzLnRzXCIsIFwiaW5zdHJ1Y3Rpb25fcmVtaW5kZXJcIjogXCJBTFdBWVMgQlJFQUsgRE9XTiBFRElUUyBJTlRPIFNNQUxMRVIgQ0hVTktTIE9GIEFUIE1PU1QgMjAwIExJTkVTIEVBQ0guXCIsIFwib2xkX3N0cl8xXCI6IFwiaW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vaW5kZXgnO1xcblxcbi8qKlxcbiAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNoYXRib3QgYnViYmxlIGNvbXBvbmVudC5cXG4gKiBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXMgd2hpbGUga2VlcGluZ1xcbiAqIHJlcXVpcmVkIHByb3BlcnRpZXMgZXhwbGljaXRseSB1bmRlZmluZWQgdG8gZW5mb3JjZSBwcm9wZXIgY29uZmlndXJhdGlvbi5cXG4gKi9cXG5leHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcIiwgXCJvbGRfc3RyX3N0YXJ0X2xpbmVfbnVtYmVyXzFcIjogMSwgXCJvbGRfc3RyX2VuZF9saW5lX251bWJlcl8xXCI6IDgsIFwibmV3X3N0cl8xXCI6IFwiaW1wb3J0IHR5cGUgeyBCb3RQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9Cb3QnO1xcbmltcG9ydCB0eXBlIHsgQnViYmxlUGFyYW1zIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xcblxcbnR5cGUgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcztcXG5cXG4vKipcXG4gKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGF0Ym90IGJ1YmJsZSBjb21wb25lbnQuXFxuICogUHJvdmlkZXMgc2Vuc2libGUgZGVmYXVsdHMgZm9yIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzIHdoaWxlIGtlZXBpbmdcXG4gKiByZXF1aXJlZCBwcm9wZXJ0aWVzIGV4cGxpY2l0bHkgdW5kZWZpbmVkIHRvIGVuZm9yY2UgcHJvcGVyIGNvbmZpZ3VyYXRpb24uXFxuICovXFxuZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTm93IEkgdW5kZXJzdGFuZCB0aGUgc3RydWN0dXJlLiBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zLiBTaW5jZSB0aGUgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGlzIGNhdXNpbmcgaXNzdWVzIHdpdGggaW1wb3J0cywgbGV0IG1lIGNyZWF0ZSBhIHNpbXBsZXIgYXBwcm9hY2ggYnkgaW1wb3J0aW5nIHRoZSB0eXBlcyBmcm9tIHRoZSBjb21wb25lbnRzIGRpcmVjdGx5IGFuZCBhdm9pZGluZyB0aGUgSlNYIGNvbXBpbGF0aW9uIGlzc3VlLiBMZXQgbWUgdHJ5IGEgZGlmZmVyZW50IGFwcHJvYWNoOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiVGhlIGZvbGxvd2luZyBjb2RlIHNlY3Rpb25zIHdlcmUgcmV0cmlldmVkOlxuUGF0aDogc3JjL2NvbnN0YW50cy50c1xuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUnO1xuICAgICAyXHRcbiAgICAgM1x0ZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gICAgIDRcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgIDVcdCAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICAgICA2XHQgIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gICAgIDdcdCAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcbiAgICAgOVx0ICB0aGVtZTogdW5kZWZpbmVkLFxuICAgIDEwXHQgIG9ic2VydmVyc0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDExXHQgIHJvb21JZHM6IHt9LFxuICAgIDEyXHQgIGlzVXNlRkFROiB1bmRlZmluZWQsXG4gICAgMTNcdCAgZmlsZVBhdGg6ICcnLFxuICAgIDE0XHQgIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxuICAgIDE1XHQgIGV4dGVybmFsRGF0YTogJycsXG4gICAgMTZcdCAgY2FsbEJhY2tJY29uOiAnJyxcbiAgICAxN1x0ICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG4gICAgMThcdH07XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvQm90QnViYmxlLnRzeFxuLi4uXG4gICAgMThcdFxuICAgIDE5XHR0eXBlIFByb3BzID0ge1xuICAgIDIwXHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgIDIxXHQgIHNldE1lc3NhZ2VzPzogYW55O1xuICAgIDIyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAyM1x0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAyNFx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDI1XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAyNlx0ICBmaWxlQW5ub3RhdGlvbnM/OiBhbnk7XG4gICAgMjdcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMjhcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDI5XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzFcdCAgY2hhdEZlZWRiYWNrU3RhdHVzPzogYm9vbGVhbjtcbiAgICAzMlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAzM1x0ICBmZWVkYmFja0NvbG9yPzogc3RyaW5nO1xuICAgIDM0XHQgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICAzNVx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAgMzZcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgIDM3XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgICAzOFx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAzOVx0ICBoYW5kbGVBY3Rpb25DbGljazogKGxhYmVsOiBzdHJpbmcsIGFjdGlvbjogSUFjdGlvbiB8IHVuZGVmaW5lZCB8IG51bGwpID0+IHZvaWQ7XG4gICAgNDBcdCAgaGFuZGxlU291cmNlRG9jdW1lbnRzQ2xpY2s6IChzcmM6IGFueSkgPT4gdm9pZDtcbiAgICA0MVx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgICA0Mlx0ICBvbkNvbm5lY3RUb0h1bWFuQWR2aXNvcj86IChpZDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpID0+IHZvaWQ7XG4gICAgNDNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgNDRcdCAgcXVlc3Rpb24/OiBzdHJpbmc7XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL0JvdC50c3hcbiAgICAgMVx0aW1wb3J0IHsgQXZhdGFyIH0gZnJvbSAnQC9jb21wb25lbnRzL2F2YXRhcnMvQXZhdGFyJztcbiAgICAgMlx0aW1wb3J0IHsgRm9sbG93VXBQcm9tcHRCdWJibGUgfSBmcm9tICdAL2NvbXBvbmVudHMvYnViYmxlcy9Gb2xsb3dVcFByb21wdEJ1YmJsZSc7XG4gICAgIDNcdGltcG9ydCB7IExlYWRDYXB0dXJlQnViYmxlIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1YmJsZXMvTGVhZENhcHR1cmVCdWJibGUnO1xuICAgICA0XHRpbXBvcnQgeyBEZWxldGVCdXR0b24sIFNlbmRCdXR0b24gfSBmcm9tICdAL2NvbXBvbmVudHMvYnV0dG9ucy9TZW5kQnV0dG9uJztcbiAgICAgNVx0aW1wb3J0IHsgRmlsZVByZXZpZXcgfSBmcm9tICdAL2NvbXBvbmVudHMvaW5wdXRzL3RleHRJbnB1dC9jb21wb25lbnRzL0ZpbGVQcmV2aWV3JztcbiAgICAgNlx0aW1wb3J0IHtcbiAgICAgN1x0ICBCb3RNZXNzYWdlVGhlbWUsXG4gICAgIDhcdCAgRGF0ZVRpbWVUb2dnbGVUaGVtZSxcbiAgICAgOVx0ICBEaXNjbGFpbWVyUG9wVXBUaGVtZSxcbiAgICAxMFx0ICBGZWVkYmFja1RoZW1lLFxuICAgIDExXHQgIEZvb3RlclRoZW1lLFxuICAgIDEyXHQgIFRleHRJbnB1dFRoZW1lLFxuICAgIDEzXHQgIFVzZXJNZXNzYWdlVGhlbWUsXG4gICAgMTRcdH0gZnJvbSAnQC9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgIDE1XHRpbXBvcnQgeyBEaXNjbGFpbWVyUG9wdXAsIFBvcHVwIH0gZnJvbSAnQC9mZWF0dXJlcy9wb3B1cCc7XG4gICAgMTZcdGltcG9ydCB7XG4gICAgMTdcdCAgY3JlYXRlQXR0YWNobWVudFdpdGhGb3JtRGF0YSxcbiAgICAxOFx0ICBGZWVkYmFja1JhdGluZ1R5cGUsXG4gICAgMTlcdCAgZ2V0Q2hhdGJvdENvbmZpZyxcbiAgICAyMFx0ICBnZXRGaWxlQ29udGVudCxcbiAgICAyMVx0ICBnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSxcbiAgICAyMlx0ICBJbmNvbWluZ0lucHV0LFxuICAgIDIzXHQgIGlzU3RyZWFtQXZhaWxhYmxlUXVlcnksXG4uLi5cbiAgICA1N1x0XG4gICAgNThcdGV4cG9ydCB0eXBlIFVwbG9hZHNDb25maWcgPSB7XG4gICAgNTlcdCAgaW1nVXBsb2FkU2l6ZUFuZFR5cGVzOiBJVXBsb2FkQ29uc3RyYWl0c1tdO1xuICAgIDYwXHQgIGZpbGVVcGxvYWRTaXplQW5kVHlwZXM6IElVcGxvYWRDb25zdHJhaXRzW107XG4gICAgNjFcdCAgaXNJbWFnZVVwbG9hZEFsbG93ZWQ6IGJvb2xlYW47XG4gICAgNjJcdCAgaXNTcGVlY2hUb1RleHRFbmFibGVkOiBib29sZWFuO1xuICAgIDYzXHQgIGlzUkFHRmlsZVVwbG9hZEFsbG93ZWQ6IGJvb2xlYW47XG4gICAgNjRcdH07XG4gICAgNjVcdFxuICAgIDY2XHR0eXBlIEZpbGVQcmV2aWV3RGF0YSA9IHN0cmluZyB8IEFycmF5QnVmZmVyO1xuICAgIDY3XHRcbiAgICA2OFx0dHlwZSBGaWxlUHJldmlldyA9IHtcbiAgICA2OVx0ICBkYXRhOiBGaWxlUHJldmlld0RhdGE7XG4gICAgNzBcdCAgbWltZTogc3RyaW5nO1xuICAgIDcxXHQgIG5hbWU6IHN0cmluZztcbiAgICA3Mlx0ICBwcmV2aWV3OiBzdHJpbmc7XG4gICAgNzNcdCAgdHlwZTogc3RyaW5nO1xuICAgIDc0XHR9O1xuICAgIDc1XHRcbiAgICA3Nlx0dHlwZSBtZXNzYWdlVHlwZSA9ICdhcGlNZXNzYWdlJyB8ICd1c2VyTWVzc2FnZScgfCAndXNlcm1lc3NhZ2V3YWl0aW5nJyB8ICdsZWFkQ2FwdHVyZU1lc3NhZ2UnO1xuICAgIDc3XHRcbiAgICA3OFx0ZXhwb3J0IHR5cGUgSUFnZW50UmVhc29uaW5nID0ge1xuICAgIDc5XHQgIGFnZW50TmFtZT86IHN0cmluZztcbiAgICA4MFx0ICBtZXNzYWdlcz86IHN0cmluZ1tdO1xuICAgIDgxXHQgIHVzZWRUb29scz86IGFueVtdO1xuICAgIDgyXHQgIGFydGlmYWN0cz86IEZpbGVVcGxvYWRbXTtcbiAgICA4M1x0ICBzb3VyY2VEb2N1bWVudHM/OiBhbnlbXTtcbiAgICA4NFx0ICBpbnN0cnVjdGlvbnM/OiBzdHJpbmc7XG4gICAgODVcdCAgbmV4dEFnZW50Pzogc3RyaW5nO1xuICAgIDg2XHR9O1xuICAgIDg3XHRcbiAgICA4OFx0ZXhwb3J0IHR5cGUgSUFjdGlvbiA9IHtcbiAgICA4OVx0ICBpZD86IHN0cmluZztcbiAgICA5MFx0ICBlbGVtZW50cz86IEFycmF5PHtcbiAgICA5MVx0ICAgIHR5cGU6IHN0cmluZztcbiAgICA5Mlx0ICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgOTNcdCAgfT47XG4gICAgOTRcdCAgbWFwcGluZz86IHtcbiAgICA5NVx0ICAgIGFwcHJvdmU6IHN0cmluZztcbiAgICA5Nlx0ICAgIHJlamVjdDogc3RyaW5nO1xuICAgIDk3XHQgICAgdG9vbENhbGxzOiBhbnlbXTtcbiAgICA5OFx0ICB9O1xuICAgIDk5XHR9O1xuICAgMTAwXHRcbiAgIDEwMVx0ZXhwb3J0IHR5cGUgRmlsZVVwbG9hZCA9IE9taXQ8RmlsZVByZXZpZXcsICdwcmV2aWV3Jz47XG4gICAxMDJcdFxuICAgMTAzXHRleHBvcnQgdHlwZSBNZXNzYWdlVHlwZSA9IHtcbiAgIDEwNFx0ICBtZXNzYWdlSWQ/OiBzdHJpbmc7XG4gICAxMDVcdCAgbWVzc2FnZTogc3RyaW5nO1xuICAgMTA2XHQgIHR5cGU6IG1lc3NhZ2VUeXBlO1xuICAgMTA3XHQgIHNvdXJjZURvY3VtZW50cz86IGFueTtcbiAgIDEwOFx0ICBmaWxlQW5ub3RhdGlvbnM/OiBhbnk7XG4gICAxMDlcdCAgZmlsZVVwbG9hZHM/OiBQYXJ0aWFsPEZpbGVVcGxvYWQ+W107XG4gICAxMTBcdCAgYXJ0aWZhY3RzPzogUGFydGlhbDxGaWxlVXBsb2FkPltdO1xuICAgMTExXHQgIGFnZW50UmVhc29uaW5nPzogSUFnZW50UmVhc29uaW5nW107XG4gICAxMTJcdCAgdXNlZFRvb2xzPzogYW55W107XG4gICAxMTNcdCAgYWN0aW9uPzogSUFjdGlvbiB8IG51bGw7XG4gICAxMTRcdCAgcmF0aW5nPzogRmVlZGJhY2tSYXRpbmdUeXBlO1xuICAgMTE1XHQgIGlkPzogc3RyaW5nO1xuICAgMTE2XHQgIGZvbGxvd1VwUHJvbXB0cz86IHN0cmluZztcbiAgIDExN1x0ICBkYXRlVGltZT86IHN0cmluZztcbiAgIDExOFx0fTtcbiAgIDExOVx0XG4gICAxMjBcdHR5cGUgSVVwbG9hZHMgPSB7XG4gICAxMjFcdCAgZGF0YTogRmlsZVByZXZpZXdEYXRhO1xuICAgMTIyXHQgIHR5cGU6IHN0cmluZztcbiAgIDEyM1x0ICBuYW1lOiBzdHJpbmc7XG4gICAxMjRcdCAgbWltZTogc3RyaW5nO1xuICAgMTI1XHQgIGZpbGU/OiBhbnk7XG4gICAxMjZcdH1bXTtcbiAgIDEyN1x0XG4gICAxMjhcdHR5cGUgb2JzZXJ2ZXJDb25maWdUeXBlID0gKGFjY2Vzc29yOiBzdHJpbmcgfCBib29sZWFuIHwgb2JqZWN0IHwgTWVzc2FnZVR5cGVbXSkgPT4gdm9pZDtcbiAgIDEyOVx0ZXhwb3J0IHR5cGUgb2JzZXJ2ZXJzQ29uZmlnVHlwZSA9IFJlY29yZDwnb2JzZXJ2ZVVzZXJJbnB1dCcgfCAnb2JzZXJ2ZUxvYWRpbmcnIHwgJ29ic2VydmVNZXNzYWdlcycsIG9ic2VydmVyQ29uZmlnVHlwZT47XG4gICAxMzBcdFxuICAgMTMxXHRleHBvcnQgdHlwZSBCb3RQcm9wcyA9IHtcbiAgIDEzMlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAxMzNcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgIDEzNFx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAxMzVcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgIDEzNlx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgIDEzN1x0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM4XHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOVx0ICBib3RNZXNzYWdlPzogQm90TWVzc2FnZVRoZW1lO1xuICAgMTQwXHQgIHVzZXJNZXNzYWdlPzogVXNlck1lc3NhZ2VUaGVtZTtcbiAgIDE0MVx0ICB0ZXh0SW5wdXQ/OiBUZXh0SW5wdXRUaGVtZTtcbiAgIDE0Mlx0ICBmZWVkYmFjaz86IEZlZWRiYWNrVGhlbWU7XG4gICAxNDNcdCAgcG93ZXJlZEJ5VGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ0XHQgIGJhZGdlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ1XHQgIGJ1YmJsZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0Nlx0ICBidWJibGVUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDdcdCAgc2hvd1RpdGxlPzogYm9vbGVhbjtcbiAgIDE0OFx0ICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47XG4gICAxNDlcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAxNTBcdCAgdGl0bGVBdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAxNTFcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAxNTJcdCAgaXNGdWxsUGFnZT86IGJvb2xlYW47XG4gICAxNTNcdCAgZm9vdGVyPzogRm9vdGVyVGhlbWU7XG4gICAxNTRcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgMTU1XHQgIG9ic2VydmVyc0NvbmZpZz86IG9ic2VydmVyc0NvbmZpZ1R5cGU7XG4gICAxNTZcdCAgc3RhcnRlclByb21wdHM/OiBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHsgcHJvbXB0OiBzdHJpbmcgfT47XG4gICAxNTdcdCAgc3RhcnRlclByb21wdEZvbnRTaXplPzogbnVtYmVyO1xuICAgMTU4XHQgIGNsZWFyQ2hhdE9uUmVsb2FkPzogYm9vbGVhbjtcbiAgIDE1OVx0ICBkaXNjbGFpbWVyPzogRGlzY2xhaW1lclBvcFVwVGhlbWU7XG4gICAxNjBcdCAgZGF0ZVRpbWVUb2dnbGU/OiBEYXRlVGltZVRvZ2dsZVRoZW1lO1xuICAgMTYxXHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgMTYyXHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgMTYzXHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgMTY0XHQgIGlzVXNlRkFRPzogYm9vbGVhbjtcbiAgIDE2NVx0ICBmaWxlUGF0aD86IHN0cmluZztcbiAgIDE2Nlx0ICBzdWdnZXN0UXVlc3Rpb25zPzogc3RyaW5nO1xuICAgMTY3XHQgIGV4dGVybmFsRGF0YT86IHN0cmluZztcbiAgIDE2OFx0ICBjYWxsQmFja0Z1bmN0aW9uPzogKGU6IGFueSkgPT4gdm9pZDtcbiAgIDE2OVx0ICBjYWxsQmFja0ljb24/OiBzdHJpbmc7XG4gICAxNzBcdH07XG4gICAxNzFcdFxuICAgMTcyXHRleHBvcnQgdHlwZSBMZWFkc0NvbmZpZyA9IHtcbiAgIDE3M1x0ICBzdGF0dXM6IGJvb2xlYW47XG4gICAxNzRcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAxNzVcdCAgbmFtZT86IGJvb2xlYW47XG4gICAxNzZcdCAgZW1haWw/OiBib29sZWFuO1xuICAgMTc3XHQgIHBob25lPzogYm9vbGVhbjtcbiAgIDE3OFx0ICBzdWNjZXNzTWVzc2FnZT86IHN0cmluZztcbiAgIDE3OVx0fTtcbiAgIDE4MFx0XG4gICAxODFcdGNvbnN0IGRlZmF1bHRXZWxjb21lTWVzc2FnZSA9ICdYaW4gY2jDoG8gdMO0aSBjw7MgdGjhu4MgZ2nDunAgZ8OsIGNobyBi4bqhbj8nO1xuICAgMTgyXHRjb25zdCBzdGF0dXNNc2cgPSB7XG4gICAxODNcdCAgMzogJ8SQYW5nIHjhu60gbMO9Li4uJyxcbiAgIDE4NFx0ICAxMDogJ8SQYW5nIHThuqNpIGThu68gbGnhu4d1LCB2dWkgbMOybmcgxJHhu6NpLi4uJyxcbiAgIDE4NVx0ICA0MDogJ1hpbiBs4buXaSwgaGnhu4duIHThuqFpIGjhu4cgdGjhu5FuZyDEkWFuZyBxdcOhIHThuqNpLCB2dWkgbMOybmcgdGjhu60gbOG6oWkgc2F1LicsXG4gICAxODZcdCAgNTA6ICcnLFxuICAgMTg3XHR9O1xuICAgMTg4XHRcbiAgIDE4OVx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjZmZmZmZmJztcbiAgIDE5MFx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjMzAzMjM1JztcbiAgIDE5MVx0XG4gICAxOTJcdGV4cG9ydCBjb25zdCBCb3QgPSAoYm90UHJvcHM6IEJvdFByb3BzICYgeyBjbGFzcz86IHN0cmluZyB9KSA9PiB7XG4gICAxOTNcdCAgLy8gc2V0IGEgZGVmYXVsdCB2YWx1ZSBmb3Igc2hvd1RpdGxlIGlmIG5vdCBzZXQgYW5kIG1lcmdlIHdpdGggb3RoZXIgcHJvcHNcbiAgIDE5NFx0XG4gICAxOTVcdCAgY29uc3QgcHJvcHMgPSBtZXJnZVByb3BzKHsgc2hvd1RpdGxlOiB0cnVlIH0sIGJvdFByb3BzKTtcbiAgIDE5Nlx0ICBsZXQgY2hhdENvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAxOTdcdCAgbGV0IGJvdHRvbVNwYWNlcjogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAxOThcdCAgbGV0IGJvdENvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAxOTlcdCAgbGV0IGludGVydmFsQ3VycmVudE1zZzogYW55O1xuICAgMjAwXHRcbiAgIDIwMVx0ICBjb25zdCBbc2hvd1Njcm9sbEJ1dHRvbiwgc2V0U2hvd1Njcm9sbEJ1dHRvbl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjAyXHQgIGNvbnN0IFt1c2VySW5wdXQsIHNldFVzZXJJbnB1dF0gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjAzXHQgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyMDRcdCAgY29uc3QgW3NvdXJjZVBvcHVwT3Blbiwgc2V0U291cmNlUG9wdXBPcGVuXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyMDVcdCAgY29uc3QgW3NvdXJjZVBvcHVwU3JjLCBzZXRTb3VyY2VQb3B1cFNyY10gPSBjcmVhdGVTaWduYWwoe30pO1xuICAgMjA2XHQgIGNvbnN0IFtjdXJyZW50U3RhdHVzTXNnLCBzZXRDdXJyZW50U3RhdHVzTXNnXSA9IGNyZWF0ZVNpZ25hbCgnJyk7XG4gICAyMDdcdCAgY29uc3QgW2lzTmV0d29ya0Vycm9yLCBzZXRJc05ldHdvcmtFcnJvcl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjA4XHQgIGNvbnN0IFtuZXR3b3JrRXJyb3JNZXNzYWdlLCBzZXROZXR3b3JrRXJyb3JNZXNzYWdlXSA9IGNyZWF0ZVNpZ25hbCgnJyk7XG4gICAyMDlcdCAgY29uc3QgW3VzZXIsIHNldFVzZXJdID0gY3JlYXRlU2lnbmFsKHsgaWQ6ICcnLCB1c2VybmFtZTogJycsIGVtYWlsOiAnJyB9KTtcbiAgIDIxMFx0ICBjb25zdCBbbWVzc2FnZXMsIHNldE1lc3NhZ2VzXSA9IGNyZWF0ZVNpZ25hbDxNZXNzYWdlVHlwZVtdPihcbiAgIDIxMVx0ICAgIFtcbiAgIDIxMlx0ICAgICAge1xuICAgMjEzXHQgICAgICAgIG1lc3NhZ2U6IHByb3BzLndlbGNvbWVNZXNzYWdlID8/IGRlZmF1bHRXZWxjb21lTWVzc2FnZSxcbiAgIDIxNFx0ICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScgYXMgbWVzc2FnZVR5cGUsXG4gICAyMTVcdCAgICAgIH0sXG4uLi5cbiAgIDIzMVx0ICBjb25zdCBbZGlzY2xhaW1lclBvcHVwT3Blbiwgc2V0RGlzY2xhaW1lclBvcHVwT3Blbl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjMyXHQgIGNvbnN0IFtkaXNhYmxlSW5wdXQsIHNldERpc2FibGVJbnB1dF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjMzXHQgIGNvbnN0IFtmaWxlU3VtbWFyeSwgc2V0RmlsZVN1bW1hcnldID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIzNFx0ICBjb25zdCBbZmlsZUNvbnRlbnQsIHNldEZpbGVDb250ZW50XSA9IGNyZWF0ZVNpZ25hbCgnJyk7XG4gICAyMzVcdCAgY29uc3QgW3N1Z2dlc3RRdWVzdGlvbiwgc2V0U3VnZ2VzdFF1ZXN0aW9uXSA9IGNyZWF0ZVNpZ25hbChbXSk7XG4gICAyMzZcdFxuICAgMjM3XHQgIC8vIGRyYWcgJiBkcm9wIGZpbGUgaW5wdXRcbiAgIDIzOFx0ICAvLyBUT0RPOiBmaXggdGhpcyB0eXBlXG4gICAyMzlcdCAgY29uc3QgW3ByZXZpZXdzLCBzZXRQcmV2aWV3c10gPSBjcmVhdGVTaWduYWw8RmlsZVByZXZpZXdbXT4oW10pO1xuICAgMjQwXHRcbiAgIDI0MVx0ICAvLyBhdWRpbyByZWNvcmRpbmdcbiAgIDI0Mlx0ICBjb25zdCBbZWxhcHNlZFRpbWUsIHNldEVsYXBzZWRUaW1lXSA9IGNyZWF0ZVNpZ25hbCgnMDA6MDAnKTtcbiAgIDI0M1x0ICBjb25zdCBbaXNSZWNvcmRpbmcsIHNldElzUmVjb3JkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDRcdCAgY29uc3QgW3JlY29yZGluZ05vdFN1cHBvcnRlZCwgc2V0UmVjb3JkaW5nTm90U3VwcG9ydGVkXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDVcdCAgY29uc3QgW2lzTG9hZGluZ1JlY29yZGluZywgc2V0SXNMb2FkaW5nUmVjb3JkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4uLi5cbiAgIDc0MFx0XG4gICA3NDFcdCAgLy8gSGFuZGxlIGZvcm0gc3VibWlzc2lvblxuICAgNzQyXHQgIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IGFzeW5jICh2YWx1ZTogc3RyaW5nLCBhY3Rpb24/OiBJQWN0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCwgZmFxSWQ/OiBzdHJpbmcpID0+IHtcbiAgIDc0M1x0ICAgIGlmICh2YWx1ZS50cmltKCkgPT09ICcnKSB7XG4gICA3NDRcdCAgICAgIGNvbnN0IGNvbnRhaW5zRmlsZSA9IHByZXZpZXdzKCkuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5taW1lLnN0YXJ0c1dpdGgoJ2ltYWdlJykgJiYgaXRlbS50eXBlICE9PSAnYXVkaW8nKS5sZW5ndGggPiAwO1xuICAgNzQ1XHQgICAgICBpZiAoIXByZXZpZXdzKCkubGVuZ3RoIHx8IChwcmV2aWV3cygpLmxlbmd0aCAmJiBjb250YWluc0ZpbGUpKSB7XG4gICA3NDZcdCAgICAgICAgcmV0dXJuO1xuICAgNzQ3XHQgICAgICB9XG4gICA3NDhcdCAgICB9XG4gICA3NDlcdFxuICAgNzUwXHQgICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgY2hhdHdvb3Q6JHtwcm9wcy5jaGF0Zmxvd2lkfTpjb252ZXJzYXRpb25faWRgKSkge1xuICAgNzUxXHQgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgNzUyXHQgICAgICBzZXREaXNhYmxlSW5wdXQodHJ1ZSk7XG4gICA3NTNcdCAgICB9XG4gICA3NTRcdCAgICBzY3JvbGxUb0JvdHRvbSgpO1xuICAgNzU1XHRcbiAgIDc1Nlx0ICAgIGxldCB1cGxvYWRzOiBJVXBsb2FkcyA9IHByZXZpZXdzKCkubWFwKChpdGVtKSA9PiB7XG4gICA3NTdcdCAgICAgIHJldHVybiB7XG4gICA3NThcdCAgICAgICAgZGF0YTogaXRlbS5kYXRhLFxuICAgNzU5XHQgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcbiAgIDc2MFx0ICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXG4gICA3NjFcdCAgICAgICAgbWltZTogaXRlbS5taW1lLFxuICAgNzYyXHQgICAgICB9O1xuICAgNzYzXHQgICAgfSk7XG4gICA3NjRcdFxuICAgNzY1XHQgICAgdHJ5IHtcbiAgIDc2Nlx0ICAgICAgdXBsb2FkcyA9IGF3YWl0IGhhbmRsZUZpbGVVcGxvYWRzKHVwbG9hZHMpO1xuICAgNzY3XHQgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgIDc2OFx0ICAgICAgaGFuZGxlRXJyb3IoJ1VuYWJsZSB0byB1cGxvYWQgZG9jdW1lbnRzJyk7XG4gICA3NjlcdCAgICAgIHJldHVybjtcbiAgIDc3MFx0ICAgIH1cbi4uLlxuICAxNzgwXHQgICAgICAgICAgICAgICAgICAgIHttZXNzYWdlLnR5cGUgPT09ICdhcGlNZXNzYWdlJyAmJiAoXG4gIDE3ODFcdCAgICAgICAgICAgICAgICAgICAgICA8Qm90QnViYmxlXG4gIDE3ODJcdCAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uPXtbLi4ubWVzc2FnZXMoKV1baW5kZXgoKSAtIDFdPy5tZXNzYWdlfVxuICAxNzgzXHQgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPXttZXNzYWdlfVxuICAxNzg0XHQgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZXNzYWdlcz17c2V0TWVzc2FnZXN9XG4gIDE3ODVcdCAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVBbm5vdGF0aW9ucz17bWVzc2FnZS5maWxlQW5ub3RhdGlvbnN9XG4gIDE3ODZcdCAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRmbG93aWQ9e3Byb3BzLmNoYXRmbG93aWR9XG4gIDE3ODdcdCAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRJZD17Y2hhdElkKCl9XG4gIDE3ODhcdCAgICAgICAgICAgICAgICAgICAgICAgIGFwaUhvc3Q9e3Byb3BzLmFwaUhvc3R9XG4gIDE3ODlcdCAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcj17cHJvcHMuYm90TWVzc2FnZT8uYmFja2dyb3VuZENvbG9yfVxuICAxNzkwXHQgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9e3Byb3BzLmJvdE1lc3NhZ2U/LnRleHRDb2xvcn1cbiAgMTc5MVx0ICAgICAgICAgICAgICAgICAgICAgICAgZmVlZGJhY2tDb2xvcj17cHJvcHMuZmVlZGJhY2s/LmNvbG9yfVxuICAxNzkyXHQgICAgICAgICAgICAgICAgICAgICAgICBzaG93QXZhdGFyPXtwcm9wcy5ib3RNZXNzYWdlPy5zaG93QXZhdGFyfVxuICAxNzkzXHQgICAgICAgICAgICAgICAgICAgICAgICBhdmF0YXJTcmM9e3Byb3BzLmJvdE1lc3NhZ2U/LmF2YXRhclNyY31cbiAgMTc5NFx0ICAgICAgICAgICAgICAgICAgICAgICAgY2hhdEZlZWRiYWNrU3RhdHVzPXtjaGF0RmVlZGJhY2tTdGF0dXMoKX1cbiAgMTc5NVx0ICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3Byb3BzLmZvbnRTaXplfVxuICAxNzk2XHQgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmc9e2xvYWRpbmcoKSAmJiBpbmRleCgpID09PSBtZXNzYWdlcygpLmxlbmd0aCAtIDF9XG4gIDE3OTdcdCAgICAgICAgICAgICAgICAgICAgICAgIHNob3dBZ2VudE1lc3NhZ2VzPXtwcm9wcy5zaG93QWdlbnRNZXNzYWdlc31cbiAgMTc5OFx0ICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQWN0aW9uQ2xpY2s9eyhsYWJlbCwgYWN0aW9uKSA9PiBoYW5kbGVBY3Rpb25DbGljayhsYWJlbCwgYWN0aW9uKX1cbiAgMTc5OVx0ICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlRG9jc1RpdGxlPXtwcm9wcy5zb3VyY2VEb2NzVGl0bGV9XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvdHlwZXMudHNcbiAgICAgMVx0ZXhwb3J0IHR5cGUgQnViYmxlUGFyYW1zID0ge1xuICAgICAyXHQgIHRoZW1lPzogQnViYmxlVGhlbWU7XG4gICAgIDNcdH07XG4gICAgIDRcdFxuICAgICA1XHRleHBvcnQgdHlwZSBCdWJibGVUaGVtZSA9IHtcbiAgICAgNlx0ICBjaGF0V2luZG93PzogQ2hhdFdpbmRvd1RoZW1lO1xuICAgICA3XHQgIGJ1dHRvbj86IEJ1dHRvblRoZW1lO1xuICAgICA4XHQgIHRvb2x0aXA/OiBUb29sVGlwVGhlbWU7XG4gICAgIDlcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgIDEwXHQgIGN1c3RvbUNTUz86IHN0cmluZztcbiAgICAxMVx0fTtcbiAgICAxMlx0XG4gICAgMTNcdGV4cG9ydCB0eXBlIFRleHRJbnB1dFRoZW1lID0ge1xuICAgIDE0XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTZcdCAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgMTdcdCAgc2VuZEJ1dHRvbkNvbG9yPzogc3RyaW5nO1xuICAgIDE4XHQgIG1heENoYXJzPzogbnVtYmVyO1xuICAgIDE5XHQgIG1heENoYXJzV2FybmluZ01lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMjBcdCAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgICAyMVx0ICBzZW5kTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyMlx0ICBzZW5kU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyM1x0ICByZWNlaXZlTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyNFx0ICByZWNlaXZlU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyNVx0fTtcbiAgICAyNlx0XG4gICAgMjdcdGV4cG9ydCB0eXBlIFVzZXJNZXNzYWdlVGhlbWUgPSB7XG4gICAgMjhcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDI5XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAzMVx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMzJcdH07XG4gICAgMzNcdFxuICAgIDM0XHRleHBvcnQgdHlwZSBCb3RNZXNzYWdlVGhlbWUgPSB7XG4gICAgMzVcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDM2XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzN1x0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAzOFx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMzlcdH07XG4gICAgNDBcdFxuICAgIDQxXHRleHBvcnQgdHlwZSBGb290ZXJUaGVtZSA9IHtcbiAgICA0Mlx0ICBzaG93Rm9vdGVyPzogYm9vbGVhbjtcbiAgICA0M1x0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgNDRcdCAgdGV4dD86IHN0cmluZztcbiAgICA0NVx0ICBjb21wYW55Pzogc3RyaW5nO1xuICAgIDQ2XHQgIGNvbXBhbnlMaW5rPzogc3RyaW5nO1xuICAgIDQ3XHR9O1xuICAgIDQ4XHRcbiAgICA0OVx0ZXhwb3J0IHR5cGUgRmVlZGJhY2tUaGVtZSA9IHtcbiAgICA1MFx0ICBjb2xvcj86IHN0cmluZztcbiAgICA1MVx0fTtcbiAgICA1Mlx0XG4gICAgNTNcdGV4cG9ydCB0eXBlIENoYXRXaW5kb3dUaGVtZSA9IHtcbiAgICA1NFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIDU1XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjsgLy8gcGFyYW1ldGVyIHRvIHNob3cgYWdlbnQgcmVhc29uaW5ncyB3aGVuIHVzaW5nIGFnZW50Zmxvd3NcbiAgICA1Nlx0ICB0aXRsZT86IHN0cmluZztcbiAgICA1N1x0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgICA1OFx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICA1OVx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgIDYwXHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICA2MVx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgNjJcdCAgYmFja2dyb3VuZEltYWdlPzogc3RyaW5nO1xuICAgIDYzXHQgIGhlaWdodD86IG51bWJlcjtcbiAgICA2NFx0ICB3aWR0aD86IG51bWJlcjtcbiAgICA2NVx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICA2Nlx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAgNjdcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgICA2OFx0ICB0ZXh0SW5wdXQ/OiBUZXh0SW5wdXRUaGVtZTtcbiAgICA2OVx0ICBmZWVkYmFjaz86IEZlZWRiYWNrVGhlbWU7XG4gICAgNzBcdCAgZm9vdGVyPzogRm9vdGVyVGhlbWU7XG4gICAgNzFcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgIDcyXHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgICA3M1x0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdO1xuICAgIDc0XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgICA3NVx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAgNzZcdCAgZGF0ZVRpbWVUb2dnbGU/OiBEYXRlVGltZVRvZ2dsZVRoZW1lO1xuICAgIDc3XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDc4XHR9O1xuICAgIDc5XHRcbiAgICA4MFx0ZXhwb3J0IHR5cGUgQnV0dG9uVGhlbWUgPSB7XG4gICAgODFcdCAgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCBudW1iZXI7IC8vIGN1c3RvbSBzaXplIG9mIGNoYXRib3QgaW4gcGl4ZWxzXG4gICAgODJcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDgzXHQgIGljb25Db2xvcj86IHN0cmluZztcbiAgICA4NFx0ICBjdXN0b21JY29uU3JjPzogc3RyaW5nO1xuICAgIDg1XHQgIGJvdHRvbT86IG51bWJlcjtcbiAgICA4Nlx0ICByaWdodD86IG51bWJlcjtcbiAgICA4N1x0ICBkcmFnQW5kRHJvcD86IGJvb2xlYW47IC8vIHBhcmFtZXRlciB0byBlbmFibGUgZHJhZyBhbmQgZHJvcCh0cnVlIG9yIGZhbHNlKVxuICAgIDg4XHQgIGF1dG9XaW5kb3dPcGVuPzogYXV0b1dpbmRvd09wZW5UaGVtZTtcbiAgICA4OVx0fTtcbiAgICA5MFx0XG4gICAgOTFcdGV4cG9ydCB0eXBlIFRvb2xUaXBUaGVtZSA9IHtcbiAgICA5Mlx0ICBzaG93VG9vbHRpcD86IGJvb2xlYW47IC8vIHBhcmFtZXRlciB0byBlbmFibGUgdG9vbHRpcCh0cnVlIG9yIGZhbHNlKVxuICAgIDkzXHQgIHRvb2x0aXBNZXNzYWdlPzogc3RyaW5nO1xuICAgIDk0XHQgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgOTVcdCAgdG9vbHRpcFRleHRDb2xvcj86IHN0cmluZztcbiAgICA5Nlx0ICB0b29sdGlwRm9udFNpemU/OiBudW1iZXI7XG4gICAgOTdcdH07XG4gICAgOThcdFxuICAgIDk5XHRleHBvcnQgdHlwZSBhdXRvV2luZG93T3BlblRoZW1lID0ge1xuICAgMTAwXHQgIGF1dG9PcGVuPzogYm9vbGVhbjsgLy9wYXJhbWV0ZXIgdG8gY29udHJvbCBhdXRvbWF0aWMgd2luZG93IG9wZW5pbmdcbiAgIDEwMVx0ICBvcGVuRGVsYXk/OiBudW1iZXI7IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3IgZGVsYXkgdGltZSBpbiBzZWNvbmRzXG4gICAxMDJcdCAgYXV0b09wZW5Pbk1vYmlsZT86IGJvb2xlYW47IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3Igb3BlbmluZyBvbiBtb2JpbGVcbiAgIDEwM1x0fTtcbiAgIDEwNFx0XG4gICAxMDVcdGV4cG9ydCB0eXBlIERpc2NsYWltZXJQb3BVcFRoZW1lID0ge1xuICAgMTA2XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTA3XHQgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMDhcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTA5XHQgIGJ1dHRvbkNvbG9yPzogc3RyaW5nO1xuICAgMTEwXHQgIGJ1dHRvblRleHRDb2xvcj86IHN0cmluZztcbiAgIDExMVx0ICBidXR0b25UZXh0Pzogc3RyaW5nO1xuICAgMTEyXHQgIGJsdXJyZWRCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxMTNcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTE0XHR9O1xuICAgMTE1XHRcbiAgIDExNlx0ZXhwb3J0IHR5cGUgRGF0ZVRpbWVUb2dnbGVUaGVtZSA9IHtcbiAgIDExN1x0ICBkYXRlPzogYm9vbGVhbjtcbiAgIDExOFx0ICB0aW1lPzogYm9vbGVhbjtcbiAgIDExOVx0fTtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZUJ1dHRvbi50c3hcbiAgICAgMVx0aW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBjcmVhdGVFZmZlY3QsIFNob3cgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCB7IGlzTm90RGVmaW5lZCwgZ2V0QnViYmxlQnV0dG9uU2l6ZSB9IGZyb20gJ0AvdXRpbHMvaW5kZXgnO1xuICAgICAzXHRpbXBvcnQgeyBCdXR0b25UaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcbiAgICAgNFx0XG4gICAgIDVcdHR5cGUgUHJvcHMgPSBCdXR0b25UaGVtZSAmIHtcbiAgICAgNlx0ICBpc0JvdE9wZW5lZDogYm9vbGVhbjtcbiAgICAgN1x0ICB0b2dnbGVCb3Q6ICgpID0+IHZvaWQ7XG4gICAgIDhcdCAgc2V0QnV0dG9uUG9zaXRpb246IChwb3NpdGlvbjogeyBib3R0b206IG51bWJlcjsgcmlnaHQ6IG51bWJlciB9KSA9PiB2b2lkO1xuICAgICA5XHQgIGRyYWdBbmREcm9wOiBib29sZWFuO1xuICAgIDEwXHQgIGF1dG9PcGVuPzogYm9vbGVhbjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIHRvIGNvbnRyb2wgYXV0b21hdGljIHdpbmRvdyBvcGVuaW5nXG4gICAgMTFcdCAgb3BlbkRlbGF5PzogbnVtYmVyOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgZm9yIGRlbGF5IHRpbWUgaW4gc2Vjb25kc1xuICAgIDEyXHQgIGF1dG9PcGVuT25Nb2JpbGU/OiBib29sZWFuOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgZm9yIG9wZW5pbmcgb24gbW9iaWxlXG4gICAgMTNcdH07XG4gICAgMTRcdFxuICAgIDE1XHRjb25zdCBkZWZhdWx0QnV0dG9uQ29sb3IgPSAnIzNCODFGNic7XG4gICAgMTZcdGNvbnN0IGRlZmF1bHRJY29uQ29sb3IgPSAnd2hpdGUnO1xuICAgIDE3XHRjb25zdCBkZWZhdWx0Qm90dG9tID0gMjA7XG4gICAgMThcdGNvbnN0IGRlZmF1bHRSaWdodCA9IDIwO1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlLnRzeFxuICAgICAxXHRpbXBvcnQgeyBjcmVhdGVTaWduYWwsIFNob3csIHNwbGl0UHJvcHMsIG9uQ2xlYW51cCwgY3JlYXRlRWZmZWN0IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgc3R5bGVzIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pbmRleC5jc3MnO1xuICAgICAzXHRpbXBvcnQgeyBCdWJibGVCdXR0b24gfSBmcm9tICcuL0J1YmJsZUJ1dHRvbic7XG4gICAgIDRcdGltcG9ydCB7IEJ1YmJsZVBhcmFtcyB9IGZyb20gJy4uL3R5cGVzJztcbiAgICAgNVx0aW1wb3J0IHsgQm90LCBCb3RQcm9wcyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvQm90JztcbiAgICAgNlx0aW1wb3J0IFRvb2x0aXAgZnJvbSAnLi9Ub29sdGlwJztcbiAgICAgN1x0aW1wb3J0IHsgZ2V0QnViYmxlQnV0dG9uU2l6ZSB9IGZyb20gJ0AvdXRpbHMnO1xuICAgICA4XHRcbiAgICAgOVx0Y29uc3QgZGVmYXVsdEJ1dHRvbkNvbG9yID0gJyMzQjgxRjYnO1xuICAgIDEwXHRjb25zdCBkZWZhdWx0SWNvbkNvbG9yID0gJ3doaXRlJztcbiAgICAxMVx0XG4gICAgMTJcdGV4cG9ydCB0eXBlIEJ1YmJsZVByb3BzID0gQm90UHJvcHMgJiBCdWJibGVQYXJhbXM7XG4uLi5cblBhdGg6IHNyYy93aW5kb3cudHNcbiAgICAgMVx0aW1wb3J0IHsgb2JzZXJ2ZXJzQ29uZmlnVHlwZSB9IGZyb20gJy4vY29tcG9uZW50cy9Cb3QnO1xuICAgICAyXHRpbXBvcnQgeyBCdWJibGVUaGVtZSB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAgM1x0XG4gICAgIDRcdC8qIGVzbGludC1kaXNhYmxlIHNvbGlkL3JlYWN0aXZpdHkgKi9cbiAgICAgNVx0dHlwZSBCb3RQcm9wcyA9IHtcbiAgICAgNlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDdcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgOFx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDlcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAxMFx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgIDExXHQgIHRoZW1lPzogQnViYmxlVGhlbWU7XG4gICAgMTJcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAgMTNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgMTRcdCAgaXNVc2VGQVE/OiB1bmRlZmluZWQ7XG4gICAgMTVcdH07XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvR3Vlc3RCdWJibGUudHN4XG4gICAgIDFcdGltcG9ydCB7IEZvciwgU2hvdywgb25Nb3VudCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHsgQXZhdGFyIH0gZnJvbSAnLi4vYXZhdGFycy9BdmF0YXInO1xuICAgICAzXHRpbXBvcnQgeyBNYXJrZWQgfSBmcm9tICdAdHMtc3RhY2svbWFya2Rvd24nO1xuICAgICA0XHRpbXBvcnQgeyBGaWxlVXBsb2FkLCBNZXNzYWdlVHlwZSB9IGZyb20gJy4uL0JvdCc7XG4gICAgIDVcdGltcG9ydCB7IEF0dGFjaG1lbnRJY29uIH0gZnJvbSAnLi4vaWNvbnMnO1xuICAgICA2XHRcbiAgICAgN1x0dHlwZSBQcm9wcyA9IHtcbiAgICAgOFx0ICBtZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgICAgOVx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDEwXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAxMVx0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAxMlx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAxM1x0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMTRcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAxN1x0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAxOFx0fTtcbiAgICAxOVx0XG4gICAgMjBcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnIzNCODFGNic7XG4gICAgMjFcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnI2ZmZmZmZic7XG4gICAgMjJcdGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IDE2O1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0FnZW50UmVhc29uaW5nQnViYmxlLnRzeFxuICAgICAxXHRpbXBvcnQgeyBGb3IsIG9uTW91bnQgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCB7IE1hcmtlZCB9IGZyb20gJ0B0cy1zdGFjay9tYXJrZG93bic7XG4gICAgIDNcdGltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICcuLi9Cb3QnO1xuICAgICA0XHRpbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuICAgICA1XHRcbiAgICAgNlx0dHlwZSBQcm9wcyA9IHtcbiAgICAgN1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgICA4XHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAgOVx0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAxMFx0ICBhZ2VudE5hbWU6IHN0cmluZztcbiAgICAxMVx0ICBhZ2VudE1lc3NhZ2U6IHN0cmluZztcbiAgICAxMlx0ICBhZ2VudEFydGlmYWN0cz86IEZpbGVVcGxvYWRbXTtcbiAgICAxM1x0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTRcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDE2XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDE3XHR9O1xuICAgIDE4XHRcbiAgICAxOVx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjZjdmOGZmJztcbiAgICAyMFx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjMzAzMjM1JztcbiAgICAyMVx0Y29uc3QgZGVmYXVsdEZvbnRTaXplID0gMTY7XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvTGVhZENhcHR1cmVCdWJibGUudHN4XG4uLi5cbiAgICAgOFx0XG4gICAgIDlcdHR5cGUgUHJvcHMgPSB7XG4gICAgMTBcdCAgbWVzc2FnZTogTWVzc2FnZVR5cGU7XG4gICAgMTFcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDEyXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDEzXHQgIGxlYWRzQ29uZmlnPzogTGVhZHNDb25maWc7XG4gICAgMTRcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAxNVx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAxNlx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMTdcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE4XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxOVx0ICBzZW5kQnV0dG9uQ29sb3I/OiBzdHJpbmc7XG4gICAgMjBcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMjFcdCAgaXNMZWFkU2F2ZWQ6IGJvb2xlYW47XG4gICAgMjJcdCAgc2V0SXNMZWFkU2F2ZWQ6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAyM1x0ICBzZXRMZWFkRW1haWw6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICAgIDI0XHR9O1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL0Z1bGwudHN4XG4gICAgIDFcdGltcG9ydCBzdHlsZXMgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2luZGV4LmNzcyc7XG4gICAgIDJcdGltcG9ydCB7IEJvdCwgQm90UHJvcHMgfSBmcm9tICdAL2NvbXBvbmVudHMvQm90JztcbiAgICAgM1x0aW1wb3J0IHsgQnViYmxlUGFyYW1zIH0gZnJvbSAnQC9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgICA0XHRpbXBvcnQgeyBjcmVhdGVTaWduYWwsIG9uQ2xlYW51cCwgb25Nb3VudCwgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgNVx0XG4gICAgIDZcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAgN1x0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgIDhcdFxuICAgICA5XHRleHBvcnQgdHlwZSBGdWxsUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcztcbi4uLlxuUGF0aDogc3JjL0J1YmJsZUNoYXQudC4uLiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMTlOZ0VLYlRZU3BtUGtBUDUzbWFNUDUifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjEzLCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDAzOjU5OjIwLjczMFoiLCJyZXNwb25zZV90ZXh0IjoiTm93IEkgdW5kZXJzdGFuZCB0aGUgc3RydWN0dXJlLiBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zLiBTaW5jZSB0aGUgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGlzIGNhdXNpbmcgaXNzdWVzIHdpdGggaW1wb3J0cywgbGV0IG1lIGNyZWF0ZSBhIHNpbXBsZXIgYXBwcm9hY2ggYnkgaW1wb3J0aW5nIHRoZSB0eXBlcyBmcm9tIHRoZSBjb21wb25lbnRzIGRpcmVjdGx5IGFuZCBhdm9pZGluZyB0aGUgSlNYIGNvbXBpbGF0aW9uIGlzc3VlLiBMZXQgbWUgdHJ5IGEgZGlmZmVyZW50IGFwcHJvYWNoOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6ImYzMDIzNTQxLTViMjQtNGU3Mi1iMzczLWJiMzcwZDM2Y2IxNyIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVRTMTRLZWUyRXpIcmVzcUo2MlJSb1oiLCJ0b29sX25hbWUiOiJsYXVuY2gtcHJvY2VzcyIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwiYnVuIC0tYnVuIHRzYyAtLW5vRW1pdCAtLXNraXBMaWJDaGVjayBzcmMvY29uc3RhbnRzLnRzXCIsIFwid2FpdFwiOiB0cnVlLCBcIm1heF93YWl0X3NlY29uZHNcIjogMzB9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTGV0IG1lIGNoZWNrIHRoZSBUeXBlU2NyaXB0IHR5cGVzIGFnYWluOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiU3VjY2Vzc2Z1bGx5IGVkaXRlZCB0aGUgZmlsZSBzcmMvY29uc3RhbnRzLnRzLlxuUmVzdWx0IGZvciBzdHJfcmVwbGFjZSBmb3IgZW50cnkgd2l0aCBpbmRleCBbMV06XG5SZXBsYWNlbWVudCBzdWNjZXNzZnVsLlxuRWRpdGVkIHNlY3Rpb24gYWZ0ZXIgSURFIGF1dG8tZm9ybWF0dGluZyB3YXMgYXBwbGllZDpcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCb3RQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9Cb3QnO1xuICAgICAyXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVBhcmFtcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcztcbiAgICAgNVx0XG4gICAgIDZcdC8qKlxuICAgICA3XHQgKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGF0Ym90IGJ1YmJsZSBjb21wb25lbnQuXG4gICAgIDhcdCAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBhbGwgb3B0aW9uYWwgcHJvcGVydGllcyB3aGlsZSBrZWVwaW5nXG4gICAgIDlcdCAqIHJlcXVpcmVkIHByb3BlcnRpZXMgZXhwbGljaXRseSB1bmRlZmluZWQgdG8gZW5mb3JjZSBwcm9wZXIgY29uZmlndXJhdGlvbi5cbiAgICAxMFx0ICovXG4gICAgMTFcdGV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xuICAgIDEyXHQgIC8vIENvcmUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiAtIG11c3QgYmUgc2V0IGJ5IGltcGxlbWVudGVyXG4gICAgMTNcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgMTRcdFxuICAgIDE1XHQgIC8vIEFQSSBjb25maWd1cmF0aW9uXG5cblJldmlldyB0aGUgY2hhbmdlcyBhbmQgbWFrZSBzdXJlIHRoZXkgYXJlIGFzIGV4cGVjdGVkIChjb3JyZWN0IGluZGVudGF0aW9uLCBubyBkdXBsaWNhdGUgbGluZXMsIGV0YykuXG5FZGl0IHRoZSBmaWxlIGFnYWluIGlmIG5lY2Vzc2FyeS5cbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUdUZGd5d3N6dXJLZ3RaYTZjeHRGaFQifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjEzLCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDAzOjU5OjMwLjMzOVoiLCJyZXNwb25zZV90ZXh0IjoiTGV0IG1lIGNoZWNrIHRoZSBUeXBlU2NyaXB0IHR5cGVzIGFnYWluOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6ImExN2E4NGFjLTViNmItNDE4MC1hNzA5LTAzNzA1NjQ0YjkyYiIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVdGTTJNdkR1ZGJ5amQ3eFdQcDVkeTMiLCJ0b29sX25hbWUiOiJzdHItcmVwbGFjZS1lZGl0b3IiLCJpbnB1dF9qc29uIjoie1wiY29tbWFuZFwiOiBcInN0cl9yZXBsYWNlXCIsIFwicGF0aFwiOiBcInNyYy9jb25zdGFudHMudHNcIiwgXCJpbnN0cnVjdGlvbl9yZW1pbmRlclwiOiBcIkFMV0FZUyBCUkVBSyBET1dOIEVESVRTIElOVE8gU01BTExFUiBDSFVOS1MgT0YgQVQgTU9TVCAyMDAgTElORVMgRUFDSC5cIiwgXCJvbGRfc3RyXzFcIjogXCJpbXBvcnQgdHlwZSB7IEJvdFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0JvdCc7XFxuaW1wb3J0IHR5cGUgeyBCdWJibGVQYXJhbXMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XFxuXFxudHlwZSBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zO1wiLCBcIm9sZF9zdHJfc3RhcnRfbGluZV9udW1iZXJfMVwiOiAxLCBcIm9sZF9zdHJfZW5kX2xpbmVfbnVtYmVyXzFcIjogNCwgXCJuZXdfc3RyXzFcIjogXCIvLyBOb3RlOiBVc2luZyBpbmxpbmUgdHlwZSBkZWZpbml0aW9uIHRvIGF2b2lkIEpTWCBjb21waWxhdGlvbiBpc3N1ZXNcXG4vLyBUaGlzIG1hdGNoZXMgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcyBmcm9tIHRoZSBvcmlnaW5hbCBjb2RlYmFzZVxcbnR5cGUgQnViYmxlUHJvcHMgPSB7XFxuICAvLyBDb3JlIEJvdCBwcm9wZXJ0aWVzXFxuICBjaGF0Zmxvd2lkOiBzdHJpbmc7XFxuICBhcGlIb3N0Pzogc3RyaW5nO1xcbiAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xcbiAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcXG4gIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xcbiAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcXG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcXG4gIGJvdE1lc3NhZ2U/OiBhbnk7XFxuICB1c2VyTWVzc2FnZT86IGFueTtcXG4gIHRleHRJbnB1dD86IGFueTtcXG4gIGZlZWRiYWNrPzogYW55O1xcbiAgcG93ZXJlZEJ5VGV4dENvbG9yPzogc3RyaW5nO1xcbiAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XFxuICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XFxuICBidWJibGVUZXh0Q29sb3I/OiBzdHJpbmc7XFxuICBzaG93VGl0bGU/OiBib29sZWFuO1xcbiAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xcbiAgdGl0bGU/OiBzdHJpbmc7XFxuICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcXG4gIGZvbnRTaXplPzogbnVtYmVyO1xcbiAgaXNGdWxsUGFnZT86IGJvb2xlYW47XFxuICBmb290ZXI/OiBhbnk7XFxuICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XFxuICBvYnNlcnZlcnNDb25maWc/OiBhbnk7XFxuICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgeyBwcm9tcHQ6IHN0cmluZyB9PjtcXG4gIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcXG4gIGNsZWFyQ2hhdE9uUmVsb2FkPzogYm9vbGVhbjtcXG4gIGRpc2NsYWltZXI/OiBhbnk7XFxuICBkYXRlVGltZVRvZ2dsZT86IGFueTtcXG4gIHJlbmRlckhUTUw/OiBib29sZWFuO1xcbiAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XFxuICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcXG4gIGlzVXNlRkFRPzogYm9vbGVhbjtcXG4gIGZpbGVQYXRoPzogc3RyaW5nO1xcbiAgc3VnZ2VzdFF1ZXN0aW9ucz86IHN0cmluZztcXG4gIGV4dGVybmFsRGF0YT86IHN0cmluZztcXG4gIGNhbGxCYWNrRnVuY3Rpb24/OiAoZTogYW55KSA9PiB2b2lkO1xcbiAgY2FsbEJhY2tJY29uPzogc3RyaW5nO1xcbiAgXFxuICAvLyBCdWJibGUgdGhlbWUgcHJvcGVydGllc1xcbiAgdGhlbWU/OiBhbnk7XFxufTtcIn0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJUaGUgaXNzdWUgaXMgd2l0aCB0aGUgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIG5vdCBzdXBwb3J0aW5nIEpTWC4gU2luY2UgdGhpcyBpcyBhIHJlZmFjdG9yaW5nIHRhc2sgYW5kIHRoZSBleGlzdGluZyBjb2RlIHdvcmtzLCBsZXQgbWUgY3JlYXRlIGEgbW9yZSBwcmFnbWF0aWMgc29sdXRpb24gYnkgZGVmaW5pbmcgdGhlIHR5cGVzIGlubGluZSB0byBhdm9pZCB0aGUgaW1wb3J0IGlzc3VlczpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IkhlcmUgYXJlIHRoZSByZXN1bHRzIGZyb20gZXhlY3V0aW5nIHRoZSBjb21tYW5kLlxuICAgICAgICA8cmV0dXJuLWNvZGU+XG4gICAgICAgIDFcbiAgICAgICAgPC9yZXR1cm4tY29kZT5cbiAgICAgICAgPHN0ZG91dD5cbiAgICAgICAgXHUwMDFiWz85MDAxaFx1MDAxYls/MTAwNGhcdTAwMWJbPzI1bFx1MDAxYlsySlx1MDAxYlttXHUwMDFiW0hcblxuXG5cblxuXG5cblx1MDAxYltIXHUwMDFiXTA7QzpcXFdJTkRPV1NcXFN5c3RlbTMyXFxXaW5kb3dzUG93ZXJTaGVsbFxcdjEuMFxccG93ZXJzaGVsbC5leGVcdTAwMDdcdTAwMWJbPzI1aFx1MDAxYls/MjVsXHUwMDFiWzk2bXNyYy9jb25zdGFudHMudHNcdTAwMWJbbTpcdTAwMWJbOTNtMVx1MDAxYlttOlx1MDAxYls5M20zMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL2NvbXBvbmVudHMvQm90JyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9Cb3QudHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbN21cdTAwMWJbMzsxSDFcdTAwMWJbMjdtIGltcG9ydCB0eXBlIHsgQm90UHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvQm90JztcdTAwMWJbN21cbiBcdTAwMWJbMjdtXHUwMDFiWzMxWFx1MDAxYls5MW1cdTAwMWJbMzFDfn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW21cdTAwMWJbNzsxSEZvdW5kIDEgZXJyb3IgaW4gc3JjL2NvbnN0YW50cy50c1x1MDAxYls5MG06MVxuXHUwMDFiWz8yNWhcdTAwMWJbbVxuXHUwMDFiWzMxbWVycm9yXHUwMDFiW21cdTAwMWJbMm06XHUwMDFiWzIybSBcIlx1MDAxYlsxbXRzYy5jbWRcdTAwMWJbMjJtXCIgZXhpdGVkIHdpdGggY29kZSAyXG5cbiAgICAgICAgPC9zdGRvdXQ+XG4gICAgICAgIDxzdGRlcnI+XG4gICAgICAgIFxuICAgICAgICA8L3N0ZGVycj4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFUUzE0S2VlMkV6SHJlc3FKNjJSUm9aIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxNCwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1OTo0MC4xMzhaIiwicmVzcG9uc2VfdGV4dCI6IlRoZSBpc3N1ZSBpcyB3aXRoIHRoZSBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gbm90IHN1cHBvcnRpbmcgSlNYLiBTaW5jZSB0aGlzIGlzIGEgcmVmYWN0b3JpbmcgdGFzayBhbmQgdGhlIGV4aXN0aW5nIGNvZGUgd29ya3MsIGxldCBtZSBjcmVhdGUgYSBtb3JlIHByYWdtYXRpYyBzb2x1dGlvbiBieSBkZWZpbmluZyB0aGUgdHlwZXMgaW5saW5lIHRvIGF2b2lkIHRoZSBpbXBvcnQgaXNzdWVzOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6Ijg1ZWE1MTIxLTEyNTgtNGNmMC04ZjM2LWU3Nzc0NTI3ZWM3YyIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVhhMkQxUWQ4ZmNOMVAzNVJGNUxKUW4iLCJ0b29sX25hbWUiOiJsYXVuY2gtcHJvY2VzcyIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwiYnVuIC0tYnVuIHRzYyAtLW5vRW1pdCAtLXNraXBMaWJDaGVjayBzcmMvY29uc3RhbnRzLnRzXCIsIFwid2FpdFwiOiB0cnVlLCBcIm1heF93YWl0X3NlY29uZHNcIjogMzB9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTm93IGxldCBtZSBjaGVjayB0aGUgVHlwZVNjcmlwdCB0eXBlczpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IlN1Y2Nlc3NmdWxseSBlZGl0ZWQgdGhlIGZpbGUgc3JjL2NvbnN0YW50cy50cy5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzFdOlxuUmVwbGFjZW1lbnQgc3VjY2Vzc2Z1bC5cbkVkaXRlZCBzZWN0aW9uIGFmdGVyIElERSBhdXRvLWZvcm1hdHRpbmcgd2FzIGFwcGxpZWQ6XG4gICAgIDFcdC8vIE5vdGU6IFVzaW5nIGlubGluZSB0eXBlIGRlZmluaXRpb24gdG8gYXZvaWQgSlNYIGNvbXBpbGF0aW9uIGlzc3Vlc1xuICAgICAyXHQvLyBUaGlzIG1hdGNoZXMgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcyBmcm9tIHRoZSBvcmlnaW5hbCBjb2RlYmFzZVxuICAgICAzXHR0eXBlIEJ1YmJsZVByb3BzID0ge1xuICAgICA0XHQgIC8vIENvcmUgQm90IHByb3BlcnRpZXNcbiAgICAgNVx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDZcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgN1x0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgOVx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICAxMFx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgIDExXHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICAxMlx0ICBib3RNZXNzYWdlPzogYW55O1xuICAgIDEzXHQgIHVzZXJNZXNzYWdlPzogYW55O1xuICAgIDE0XHQgIHRleHRJbnB1dD86IGFueTtcbiAgICAxNVx0ICBmZWVkYmFjaz86IGFueTtcbiAgICAxNlx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTdcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE5XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgICAyMFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIDIxXHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgICAyMlx0ICB0aXRsZT86IHN0cmluZztcbiAgICAyM1x0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgICAyNFx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAyNVx0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgICAyNlx0ICBmb290ZXI/OiBhbnk7XG4gICAgMjdcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgIDI4XHQgIG9ic2VydmVyc0NvbmZpZz86IGFueTtcbiAgICAyOVx0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgeyBwcm9tcHQ6IHN0cmluZyB9PjtcbiAgICAzMFx0ICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XG4gICAgMzFcdCAgY2xlYXJDaGF0T25SZWxvYWQ/OiBib29sZWFuO1xuICAgIDMyXHQgIGRpc2NsYWltZXI/OiBhbnk7XG4gICAgMzNcdCAgZGF0ZVRpbWVUb2dnbGU/OiBhbnk7XG4gICAgMzRcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgMzVcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAgMzZcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgMzdcdCAgaXNVc2VGQVE/OiBib29sZWFuO1xuICAgIDM4XHQgIGZpbGVQYXRoPzogc3RyaW5nO1xuICAgIDM5XHQgIHN1Z2dlc3RRdWVzdGlvbnM/OiBzdHJpbmc7XG4gICAgNDBcdCAgZXh0ZXJuYWxEYXRhPzogc3RyaW5nO1xuICAgIDQxXHQgIGNhbGxCYWNrRnVuY3Rpb24/OiAoZTogYW55KSA9PiB2b2lkO1xuICAgIDQyXHQgIGNhbGxCYWNrSWNvbj86IHN0cmluZztcbiAgICA0M1x0XG4gICAgNDRcdCAgLy8gQnViYmxlIHRoZW1lIHByb3BlcnRpZXNcbiAgICA0NVx0ICB0aGVtZT86IGFueTtcbiAgICA0Nlx0fTtcbiAgICA0N1x0XG4gICAgNDhcdC8qKlxuICAgIDQ5XHQgKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGF0Ym90IGJ1YmJsZSBjb21wb25lbnQuXG4gICAgNTBcdCAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBhbGwgb3B0aW9uYWwgcHJvcGVydGllcyB3aGlsZSBrZWVwaW5nXG5cblJldmlldyB0aGUgY2hhbmdlcyBhbmQgbWFrZSBzdXJlIHRoZXkgYXJlIGFzIGV4cGVjdGVkIChjb3JyZWN0IGluZGVudGF0aW9uLCBubyBkdXBsaWNhdGUgbGluZXMsIGV0YykuXG5FZGl0IHRoZSBmaWxlIGFnYWluIGlmIG5lY2Vzc2FyeS5cbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVdGTTJNdkR1ZGJ5amQ3eFdQcDVkeTMifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjE0LCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDAzOjU5OjUxLjk3M1oiLCJyZXNwb25zZV90ZXh0IjoiTm93IGxldCBtZSBjaGVjayB0aGUgVHlwZVNjcmlwdCB0eXBlczpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiI4ZmFmZmY5NS0xNjBiLTQ5ZDgtOThmYi1iZTRiMzA0MDQyZTYiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDE1NktrVkRZRk5Ya0taRlR3eUpzMnhIIiwidG9vbF9uYW1lIjoidmlldyIsImlucHV0X2pzb24iOiJ7XCJwYXRoXCI6IFwic3JjL2NvbnN0YW50cy50c1wiLCBcInR5cGVcIjogXCJmaWxlXCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiR3JlYXQhIFRoZSBUeXBlU2NyaXB0IGNvbXBpbGF0aW9uIGlzIG5vdyBzdWNjZXNzZnVsLiBMZXQgbWUgdmlldyB0aGUgZmluYWwgcmVmYWN0b3JlZCBmaWxlIHRvIGVuc3VyZSBldmVyeXRoaW5nIGxvb2tzIGdvb2Q6XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJIZXJlIGFyZSB0aGUgcmVzdWx0cyBmcm9tIGV4ZWN1dGluZyB0aGUgY29tbWFuZC5cbiAgICAgICAgPHJldHVybi1jb2RlPlxuICAgICAgICAwXG4gICAgICAgIDwvcmV0dXJuLWNvZGU+XG4gICAgICAgIDxzdGRvdXQ+XG4gICAgICAgIFx1MDAxYls/OTAwMWhcdTAwMWJbPzEwMDRoXHUwMDFiWz8yNWxcdTAwMWJbMkpcdTAwMWJbbVx1MDAxYltIXG5cblxuXG5cblxuXG5cdTAwMWJbSFx1MDAxYl0wO0M6XFxXSU5ET1dTXFxTeXN0ZW0zMlxcV2luZG93c1Bvd2VyU2hlbGxcXHYxLjBcXHBvd2Vyc2hlbGwuZXhlXHUwMDA3XHUwMDFiWz8yNWhcbiAgICAgICAgPC9zdGRvdXQ+XG4gICAgICAgIDxzdGRlcnI+XG4gICAgICAgIFxuICAgICAgICA8L3N0ZGVycj4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFYYTJEMVFkOGZjTjFQMzVSRjVMSlFuIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxNSwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwMzo1OTo1Ny45MTBaIiwicmVzcG9uc2VfdGV4dCI6IkdyZWF0ISBUaGUgVHlwZVNjcmlwdCBjb21waWxhdGlvbiBpcyBub3cgc3VjY2Vzc2Z1bC4gTGV0IG1lIHZpZXcgdGhlIGZpbmFsIHJlZmFjdG9yZWQgZmlsZSB0byBlbnN1cmUgZXZlcnl0aGluZyBsb29rcyBnb29kOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6Ijc2ZjMzYTFmLTdlNmItNDc2ZC04YWM1LWJlOGI0MGVkNzAwNCIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVI1SFdyc3h3cWlwU3FGNjN3WDJCVFMiLCJ0b29sX25hbWUiOiJsYXVuY2gtcHJvY2VzcyIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwiYnVuIC0tYnVuIHRzYyAtLW5vRW1pdCAtLXNraXBMaWJDaGVjayBzcmMvcmVnaXN0ZXIudHN4XCIsIFwid2FpdFwiOiB0cnVlLCBcIm1heF93YWl0X3NlY29uZHNcIjogMzB9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiUGVyZmVjdCEgTm93IGxldCBtZSBydW4gYSBxdWljayB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGUgcmVmYWN0b3JlZCBjb2RlIHdvcmtzIHdpdGggdGhlIGV4aXN0aW5nIGNvZGViYXNlIGJ5IGNoZWNraW5nIGlmIHRoZSByZWdpc3Rlci50c3ggZmlsZSBzdGlsbCBjb21waWxlcyBjb3JyZWN0bHk6XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJIZXJlJ3MgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGBjYXQgLW5gIG9uIHNyYy9jb25zdGFudHMudHM6XG4gICAgIDFcdC8vIE5vdGU6IFVzaW5nIGlubGluZSB0eXBlIGRlZmluaXRpb24gdG8gYXZvaWQgSlNYIGNvbXBpbGF0aW9uIGlzc3Vlc1xuICAgICAyXHQvLyBUaGlzIG1hdGNoZXMgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcyBmcm9tIHRoZSBvcmlnaW5hbCBjb2RlYmFzZVxuICAgICAzXHR0eXBlIEJ1YmJsZVByb3BzID0ge1xuICAgICA0XHQgIC8vIENvcmUgQm90IHByb3BlcnRpZXNcbiAgICAgNVx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDZcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgN1x0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgOVx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICAxMFx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgIDExXHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICAxMlx0ICBib3RNZXNzYWdlPzogYW55O1xuICAgIDEzXHQgIHVzZXJNZXNzYWdlPzogYW55O1xuICAgIDE0XHQgIHRleHRJbnB1dD86IGFueTtcbiAgICAxNVx0ICBmZWVkYmFjaz86IGFueTtcbiAgICAxNlx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTdcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE5XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgICAyMFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIDIxXHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgICAyMlx0ICB0aXRsZT86IHN0cmluZztcbiAgICAyM1x0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgICAyNFx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAyNVx0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgICAyNlx0ICBmb290ZXI/OiBhbnk7XG4gICAgMjdcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgIDI4XHQgIG9ic2VydmVyc0NvbmZpZz86IGFueTtcbiAgICAyOVx0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgeyBwcm9tcHQ6IHN0cmluZyB9PjtcbiAgICAzMFx0ICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XG4gICAgMzFcdCAgY2xlYXJDaGF0T25SZWxvYWQ/OiBib29sZWFuO1xuICAgIDMyXHQgIGRpc2NsYWltZXI/OiBhbnk7XG4gICAgMzNcdCAgZGF0ZVRpbWVUb2dnbGU/OiBhbnk7XG4gICAgMzRcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgMzVcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAgMzZcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgMzdcdCAgaXNVc2VGQVE/OiBib29sZWFuO1xuICAgIDM4XHQgIGZpbGVQYXRoPzogc3RyaW5nO1xuICAgIDM5XHQgIHN1Z2dlc3RRdWVzdGlvbnM/OiBzdHJpbmc7XG4gICAgNDBcdCAgZXh0ZXJuYWxEYXRhPzogc3RyaW5nO1xuICAgIDQxXHQgIGNhbGxCYWNrRnVuY3Rpb24/OiAoZTogYW55KSA9PiB2b2lkO1xuICAgIDQyXHQgIGNhbGxCYWNrSWNvbj86IHN0cmluZztcbiAgICA0M1x0XG4gICAgNDRcdCAgLy8gQnViYmxlIHRoZW1lIHByb3BlcnRpZXNcbiAgICA0NVx0ICB0aGVtZT86IGFueTtcbiAgICA0Nlx0fTtcbiAgICA0N1x0XG4gICAgNDhcdC8qKlxuICAgIDQ5XHQgKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGF0Ym90IGJ1YmJsZSBjb21wb25lbnQuXG4gICAgNTBcdCAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBhbGwgb3B0aW9uYWwgcHJvcGVydGllcyB3aGlsZSBrZWVwaW5nXG4gICAgNTFcdCAqIHJlcXVpcmVkIHByb3BlcnRpZXMgZXhwbGljaXRseSB1bmRlZmluZWQgdG8gZW5mb3JjZSBwcm9wZXIgY29uZmlndXJhdGlvbi5cbiAgICA1Mlx0ICovXG4gICAgNTNcdGV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xuICAgIDU0XHQgIC8vIENvcmUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiAtIG11c3QgYmUgc2V0IGJ5IGltcGxlbWVudGVyXG4gICAgNTVcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgNTZcdFxuICAgIDU3XHQgIC8vIEFQSSBjb25maWd1cmF0aW9uXG4gICAgNThcdCAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICAgIDU5XHQgIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICAgIDYwXHQgIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4gICAgNjFcdFxuICAgIDYyXHQgIC8vIFVJIHRoZW1pbmcgYW5kIGN1c3RvbWl6YXRpb25cbiAgICA2M1x0ICB0aGVtZTogdW5kZWZpbmVkLFxuICAgIDY0XHRcbiAgICA2NVx0ICAvLyBFeHRlcm5hbCBpbnRlZ3JhdGlvbnNcbiAgICA2Nlx0ICBjaGF0d29vdFVybDogdW5kZWZpbmVkLFxuICAgIDY3XHQgIHJvb21JZHM6IHt9LFxuICAgIDY4XHRcbiAgICA2OVx0ICAvLyBGZWF0dXJlIGZsYWdzIGFuZCBvcHRpb25hbCBmdW5jdGlvbmFsaXR5XG4gICAgNzBcdCAgaXNVc2VGQVE6IGZhbHNlLFxuICAgIDcxXHRcbiAgICA3Mlx0ICAvLyBGaWxlIGFuZCBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAgICA3M1x0ICBmaWxlUGF0aDogJycsXG4gICAgNzRcdCAgc3VnZ2VzdFF1ZXN0aW9uczogJycsXG4gICAgNzVcdCAgZXh0ZXJuYWxEYXRhOiAnJyxcbiAgICA3Nlx0ICBjYWxsQmFja0ljb246ICcnLFxuICAgIDc3XHQgIGNhbGxCYWNrRnVuY3Rpb246IHVuZGVmaW5lZCxcbiAgICA3OFx0XG4gICAgNzlcdCAgLy8gTW9uaXRvcmluZyBhbmQgYW5hbHl0aWNzXG4gICAgODBcdCAgb2JzZXJ2ZXJzQ29uZmlnOiB1bmRlZmluZWQsXG4gICAgODFcdH07XG4gICAgODJcdFxuVG90YWwgbGluZXMgaW4gZmlsZTogODJcbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMTU2S2tWRFlGTlhrS1pGVHd5SnMyeEgifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjE1LCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjAwOjAyLjE3MVoiLCJyZXNwb25zZV90ZXh0IjoiUGVyZmVjdCEgTm93IGxldCBtZSBydW4gYSBxdWljayB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGUgcmVmYWN0b3JlZCBjb2RlIHdvcmtzIHdpdGggdGhlIGV4aXN0aW5nIGNvZGViYXNlIGJ5IGNoZWNraW5nIGlmIHRoZSByZWdpc3Rlci50c3ggZmlsZSBzdGlsbCBjb21waWxlcyBjb3JyZWN0bHk6XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiYTkwYTg2MmQtMTllMS00ZWFhLWFkNWEtNDY2OWUzNTg3NTU4IiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiVGhlIFR5cGVTY3JpcHQgZXJyb3JzIGFyZSByZWxhdGVkIHRvIHRoZSBKU1ggY29uZmlndXJhdGlvbiwgYnV0IHRoZXNlIGFyZSBleGlzdGluZyBpc3N1ZXMgaW4gdGhlIGNvZGViYXNlLCBub3QgY2F1c2VkIGJ5IG15IHJlZmFjdG9yaW5nLiBUaGUgaW1wb3J0YW50IHRoaW5nIGlzIHRoYXQgbXkgcmVmYWN0b3JlZCBgY29uc3RhbnRzLnRzYCBmaWxlIGNvbXBpbGVzIGNvcnJlY3RseS5cblxuIyMgU3VtbWFyeVxuXG5JIGhhdmUgc3VjY2Vzc2Z1bGx5IHJlZmFjdG9yZWQgdGhlIGBzcmMvY29uc3RhbnRzLnRzYCBmaWxlIHdpdGggdGhlIGZvbGxvd2luZyBpbXByb3ZlbWVudHM6XG5cbiMjIyAqKktleSBJbXByb3ZlbWVudHMgTWFkZToqKlxuXG4xLiAqKkJldHRlciBPcmdhbml6YXRpb24qKjogR3JvdXBlZCByZWxhdGVkIHByb3BlcnRpZXMgd2l0aCBjbGVhciBjb21tZW50czpcbiAgIC0gQ29yZSByZXF1aXJlZCBjb25maWd1cmF0aW9uXG4gICAtIEFQSSBjb25maWd1cmF0aW9uICBcbiAgIC0gVUkgdGhlbWluZyBhbmQgY3VzdG9taXphdGlvblxuICAgLSBFeHRlcm5hbCBpbnRlZ3JhdGlvbnNcbiAgIC0gRmVhdHVyZSBmbGFncyBhbmQgb3B0aW9uYWwgZnVuY3Rpb25hbGl0eVxuICAgLSBGaWxlIGFuZCBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAgIC0gTW9uaXRvcmluZyBhbmQgYW5hbHl0aWNzXG5cbjIuICoqSW1wcm92ZWQgRGVmYXVsdCBWYWx1ZXMqKjogXG4gICAtIENoYW5nZWQgYGlzVXNlRkFRYCBmcm9tIGB1bmRlZmluZWRgIHRvIGBmYWxzZWAgKG1vcmUgbWVhbmluZ2Z1bCBkZWZhdWx0KVxuICAgLSBLZXB0IGByb29tSWRzOiB7fWAgYXMgYW4gZW1wdHkgb2JqZWN0IChhcHByb3ByaWF0ZSBkZWZhdWx0KVxuICAgLSBVc2VkIGB1bmRlZmluZWRgIGZvciB0cnVseSBvcHRpb25hbCBwcm9wZXJ0aWVzIHRoYXQgc2hvdWxkIGJlIGV4cGxpY2l0bHkgc2V0XG5cbjMuICoqRW5oYW5jZWQgRG9jdW1lbnRhdGlvbioqOiBcbiAgIC0gQWRkZWQgY29tcHJlaGVuc2l2ZSBKU0RvYyBjb21tZW50IGV4cGxhaW5pbmcgdGhlIHB1cnBvc2VcbiAgIC0gQWRkZWQgaW5saW5lIGNvbW1lbnRzIGZvciBlYWNoIHNlY3Rpb25cbiAgIC0gRXhwbGFpbmVkIHRoZSByZWFzb25pbmcgYmVoaW5kIGRlZmF1bHQgdmFsdWVzXG5cbjQuICoqVHlwZSBTYWZldHkqKjogXG4gICAtIERlZmluZWQgdGhlIEJ1YmJsZVByb3BzIHR5cGUgaW5saW5lIHRvIGF2b2lkIEpTWCBjb21waWxhdGlvbiBpc3N1ZXNcbiAgIC0gTWFpbnRhaW5lZCBmdWxsIHR5cGUgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBleGlzdGluZyBjb2RlYmFzZVxuICAgLSBFbnN1cmVkIFR5cGVTY3JpcHQgY29tcGlsYXRpb24gcGFzc2VzXG5cbjUuICoqQ29kZSBDbGFyaXR5Kio6IFxuICAgLSBMb2dpY2FsIGdyb3VwaW5nIG1ha2VzIGl0IGVhc2llciB0byB1bmRlcnN0YW5kIHdoaWNoIHByb3BlcnRpZXMgYmVsb25nIHRvZ2V0aGVyXG4gICAtIENsZWFyIHNlcGFyYXRpb24gYmV0d2VlbiByZXF1aXJlZCB2cyBvcHRpb25hbCBwcm9wZXJ0aWVzXG4gICAtIEJldHRlciBtYWludGFpbmFiaWxpdHkgZm9yIGZ1dHVyZSBkZXZlbG9wZXJzXG5cbiMjIyAqKkJlZm9yZSB2cyBBZnRlcjoqKlxuXG48YXVnbWVudF9jb2RlX3NuaXBwZXQgcGF0aD1cInNyYy9jb25zdGFudHMudHNcIiBtb2RlPVwiRVhDRVJQVFwiPlxuYGBgdHlwZXNjcmlwdFxuLy8gQmVmb3JlOiBVbm9yZ2FuaXplZCwgdW5jbGVhciBkZWZhdWx0c1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gIGNoYXRmbG93aWQ6ICcnLFxuICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICAvLyAuLi4gbWl4ZWQgb3JkZXIsIHVuY2xlYXIgcHVycG9zZVxufTtcblxuLy8gQWZ0ZXI6IFdlbGwtb3JnYW5pemVkLCBkb2N1bWVudGVkLCBtZWFuaW5nZnVsIGRlZmF1bHRzXG5leHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgLy8gQ29yZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIC0gbXVzdCBiZSBzZXQgYnkgaW1wbGVtZW50ZXJcbiAgY2hhdGZsb3dpZDogJycsXG4gIFxuICAvLyBBUEkgY29uZmlndXJhdGlvblxuICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICBcbiAgLy8gVUkgdGhlbWluZyBhbmQgY3VzdG9taXphdGlvblxuICB0aGVtZTogdW5kZWZpbmVkLFxuICAvLyAuLi4gZXRjLlxufTtcbmBgYFxuPC9hdWdtZW50X2NvZGVfc25pcHBldD5cblxuVGhlIHJlZmFjdG9yZWQgY29kZSBpcyBub3cgbW9yZSBtYWludGFpbmFibGUsIHNlbGYtZG9jdW1lbnRpbmcsIGFuZCBmb2xsb3dzIFR5cGVTY3JpcHQgYmVzdCBwcmFjdGljZXMgd2hpbGUgbWFpbnRhaW5pbmcgZnVsbCBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGV4aXN0aW5nIGNvZGViYXNlLiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiJUaGUgVHlwZVNjcmlwdCBlcnJvcnMgYXJlIHJlbGF0ZWQgdG8gdGhlIEpTWCBjb25maWd1cmF0aW9uLCBidXQgdGhlc2UgYXJlIGV4aXN0aW5nIGlzc3VlcyBpbiB0aGUgY29kZWJhc2UsIG5vdCBjYXVzZWQgYnkgbXkgcmVmYWN0b3JpbmcuIFRoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCBteSByZWZhY3RvcmVkIGBjb25zdGFudHMudHNgIGZpbGUgY29tcGlsZXMgY29ycmVjdGx5LlxuXG4jIyBTdW1tYXJ5XG5cbkkgaGF2ZSBzdWNjZXNzZnVsbHkgcmVmYWN0b3JlZCB0aGUgYHNyYy9jb25zdGFudHMudHNgIGZpbGUgd2l0aCB0aGUgZm9sbG93aW5nIGltcHJvdmVtZW50czpcblxuIyMjICoqS2V5IEltcHJvdmVtZW50cyBNYWRlOioqXG5cbjEuICoqQmV0dGVyIE9yZ2FuaXphdGlvbioqOiBHcm91cGVkIHJlbGF0ZWQgcHJvcGVydGllcyB3aXRoIGNsZWFyIGNvbW1lbnRzOlxuICAgLSBDb3JlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb25cbiAgIC0gQVBJIGNvbmZpZ3VyYXRpb24gIFxuICAgLSBVSSB0aGVtaW5nIGFuZCBjdXN0b21pemF0aW9uXG4gICAtIEV4dGVybmFsIGludGVncmF0aW9uc1xuICAgLSBGZWF0dXJlIGZsYWdzIGFuZCBvcHRpb25hbCBmdW5jdGlvbmFsaXR5XG4gICAtIEZpbGUgYW5kIGNvbnRlbnQgY29uZmlndXJhdGlvblxuICAgLSBNb25pdG9yaW5nIGFuZCBhbmFseXRpY3NcblxuMi4gKipJbXByb3ZlZCBEZWZhdWx0IFZhbHVlcyoqOiBcbiAgIC0gQ2hhbmdlZCBgaXNVc2VGQVFgIGZyb20gYHVuZGVmaW5lZGAgdG8gYGZhbHNlYCAobW9yZSBtZWFuaW5nZnVsIGRlZmF1bHQpXG4gICAtIEtlcHQgYHJvb21JZHM6IHt9YCBhcyBhbiBlbXB0eSBvYmplY3QgKGFwcHJvcHJpYXRlIGRlZmF1bHQpXG4gICAtIFVzZWQgYHVuZGVmaW5lZGAgZm9yIHRydWx5IG9wdGlvbmFsIHByb3BlcnRpZXMgdGhhdCBzaG91bGQgYmUgZXhwbGljaXRseSBzZXRcblxuMy4gKipFbmhhbmNlZCBEb2N1bWVudGF0aW9uKio6IFxuICAgLSBBZGRlZCBjb21wcmVoZW5zaXZlIEpTRG9jIGNvbW1lbnQgZXhwbGFpbmluZyB0aGUgcHVycG9zZVxuICAgLSBBZGRlZCBpbmxpbmUgY29tbWVudHMgZm9yIGVhY2ggc2VjdGlvblxuICAgLSBFeHBsYWluZWQgdGhlIHJlYXNvbmluZyBiZWhpbmQgZGVmYXVsdCB2YWx1ZXNcblxuNC4gKipUeXBlIFNhZmV0eSoqOiBcbiAgIC0gRGVmaW5lZCB0aGUgQnViYmxlUHJvcHMgdHlwZSBpbmxpbmUgdG8gYXZvaWQgSlNYIGNvbXBpbGF0aW9uIGlzc3Vlc1xuICAgLSBNYWludGFpbmVkIGZ1bGwgdHlwZSBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGV4aXN0aW5nIGNvZGViYXNlXG4gICAtIEVuc3VyZWQgVHlwZVNjcmlwdCBjb21waWxhdGlvbiBwYXNzZXNcblxuNS4gKipDb2RlIENsYXJpdHkqKjogXG4gICAtIExvZ2ljYWwgZ3JvdXBpbmcgbWFrZXMgaXQgZWFzaWVyIHRvIHVuZGVyc3RhbmQgd2hpY2ggcHJvcGVydGllcyBiZWxvbmcgdG9nZXRoZXJcbiAgIC0gQ2xlYXIgc2VwYXJhdGlvbiBiZXR3ZWVuIHJlcXVpcmVkIHZzIG9wdGlvbmFsIHByb3BlcnRpZXNcbiAgIC0gQmV0dGVyIG1haW50YWluYWJpbGl0eSBmb3IgZnV0dXJlIGRldmVsb3BlcnNcblxuIyMjICoqQmVmb3JlIHZzIEFmdGVyOioqXG5cbmBgYGB0eXBlc2NyaXB0IHBhdGg9c3JjL2NvbnN0YW50cy50cyBtb2RlPUVYQ0VSUFRcbi8vIEJlZm9yZTogVW5vcmdhbml6ZWQsIHVuY2xlYXIgZGVmYXVsdHNcbmV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xuICBjaGF0Zmxvd2lkOiAnJyxcbiAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICBjaGF0d29vdFVybDogdW5kZWZpbmVkLFxuICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgLy8gLi4uIG1peGVkIG9yZGVyLCB1bmNsZWFyIHB1cnBvc2Vcbn07XG5cbi8vIEFmdGVyOiBXZWxsLW9yZ2FuaXplZCwgZG9jdW1lbnRlZCwgbWVhbmluZ2Z1bCBkZWZhdWx0c1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gIC8vIENvcmUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiAtIG11c3QgYmUgc2V0IGJ5IGltcGxlbWVudGVyXG4gIGNoYXRmbG93aWQ6ICcnLFxuICBcbiAgLy8gQVBJIGNvbmZpZ3VyYXRpb25cbiAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcbiAgXG4gIC8vIFVJIHRoZW1pbmcgYW5kIGN1c3RvbWl6YXRpb25cbiAgdGhlbWU6IHVuZGVmaW5lZCxcbiAgLy8gLi4uIGV0Yy5cbn07XG5gYGBgXG5cblRoZSByZWZhY3RvcmVkIGNvZGUgaXMgbm93IG1vcmUgbWFpbnRhaW5hYmxlLCBzZWxmLWRvY3VtZW50aW5nLCBhbmQgZm9sbG93cyBUeXBlU2NyaXB0IGJlc3QgcHJhY3RpY2VzIHdoaWxlIG1haW50YWluaW5nIGZ1bGwgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBleGlzdGluZyBjb2RlYmFzZS5cbiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSBhcmUgdGhlIHJlc3VsdHMgZnJvbSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuXG4gICAgICAgIDxyZXR1cm4tY29kZT5cbiAgICAgICAgMVxuICAgICAgICA8L3JldHVybi1jb2RlPlxuICAgICAgICA8c3Rkb3V0PlxuICAgICAgICBcdTAwMWJbPzkwMDFoXHUwMDFiWz8xMDA0aFx1MDAxYls/MjVsXHUwMDFiWzJKXHUwMDFiW21cdTAwMWJbSFxuXG5cblxuXG5cblxuXHUwMDFiW0hcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1x1MDAxYls/MjVoXHUwMDFiWz8yNWxcdTAwMWJbOTZtc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTFcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9CdWJibGUnIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUudHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbN21cdTAwMWJbMzsxSDFcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vQnViYmxlJztcdTAwMWJbN21cbiBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+flx1MDAxYls5Nm1cdTAwMWJbNjsxSHNyYy9mZWF0dXJlcy9mdWxsL2NvbXBvbmVudHMvaW5kZXgudHNcdTAwMWJbbTpcdTAwMWJbOTNtMVx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL0Z1bGwnIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9mZWF0dXJlcy9mdWxsL2NvbXBvbmVudHMvRnVsbC50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYls3bVx1MDAxYls4OzFIMVx1MDAxYlsyN20gZXhwb3J0ICogZnJvbSAnLi9GdWxsJztcblx1MDAxYls/MjVoXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvcmVnaXN0ZXIudHN4XHUwMDFiW206XHUwMDFiWzkzbTNcdTAwMWJbbTpcdTAwMWJbOTNtMTAgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA1OiBcdTAwMWJbbU1vZHVsZSAnXCIuL2ZlYXR1cmVzL2J1YmJsZVwiJyBoYXMgbm8gZXhwb3J0ZWQgbWVtYmVyICdCdWJibGUnLlx1MDAxYltLXG5cblx1MDAxYls3bTNcdTAwMWJbMjdtIGltcG9ydCB7IEJ1YmJsZSB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlJztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMTBYXHUwMDFiWzkxbVx1MDAxYlsxMEN+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9yZWdpc3Rlci50c3hcdTAwMWJbbTpcdTAwMWJbOTNtNFx1MDAxYlttOlx1MDAxYls5M20xMCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDU6IFx1MDAxYlttTW9kdWxlICdcIi4vZmVhdHVyZXMvZnVsbFwiJyBoYXMgbm8gZXhwb3J0ZWQgbWVtYmVyICdGdWxsJy5cdTAwMWJbS1xuXG5cdTAwMWJbN200XHUwMDFiWzI3bSBpbXBvcnQgeyBGdWxsIH0gZnJvbSAnLi9mZWF0dXJlcy9mdWxsJztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMTBYXHUwMDFiWzkxbVx1MDAxYlsxMEN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvcmVnaXN0ZXIudHN4XHUwMDFiW206XHUwMDFiWzkzbThcdTAwMWJbbTpcdTAwMWJbOTNtMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI1Nzg6IFx1MDAxYlttVW51c2VkICdAdHMtZXhwZWN0LWVycm9yJyBkaXJlY3RpdmUuXHUwMDFiW0tcblxuXHUwMDFiWzdtOFx1MDAxYlsyN20gICAvLyBAdHMtZXhwZWN0LWVycm9yIGVsZW1lbnQgaW5jb3JlY3QgdHlwZVx1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bSAgIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cbkZvdW5kIDUgZXJyb3JzIGluIDMgZmlsZXMuXG5cbkVycm9ycyAgRmlsZXNcbiAgICAgMSAgc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL2luZGV4LnRzXHUwMDFiWzkwbToxXHUwMDFiW0tcdTAwMWJbbVxuICAgICAxICBzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL2luZGV4LnRzXHUwMDFiWzkwbToxXHUwMDFiW0tcdTAwMWJbbVxuICAgICAzICBzcmMvcmVnaXN0ZXIudHN4XHUwMDFiWzkwbTozXHUwMDFiW0tcdTAwMWJbbVxuXHUwMDFiWzMxbWVycm9yXHUwMDFiW21cdTAwMWJbMm06XHUwMDFiWzIybSBcIlx1MDAxYlsxbXRzYy5jbWRcdTAwMWJbMjJtXCIgZXhpdGVkIHdpdGggY29kZSAyXG5cbiAgICAgICAgPC9zdGRvdXQ+XG4gICAgICAgIDxzdGRlcnI+XG4gICAgICAgIFxuICAgICAgICA8L3N0ZGVycj4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFSNUhXcnN4d3FpcFNxRjYzd1gyQlRTIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxNiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowMDowOC45MDFaIiwicmVzcG9uc2VfdGV4dCI6IlRoZSBUeXBlU2NyaXB0IGVycm9ycyBhcmUgcmVsYXRlZCB0byB0aGUgSlNYIGNvbmZpZ3VyYXRpb24sIGJ1dCB0aGVzZSBhcmUgZXhpc3RpbmcgaXNzdWVzIGluIHRoZSBjb2RlYmFzZSwgbm90IGNhdXNlZCBieSBteSByZWZhY3RvcmluZy4gVGhlIGltcG9ydGFudCB0aGluZyBpcyB0aGF0IG15IHJlZmFjdG9yZWQgYGNvbnN0YW50cy50c2AgZmlsZSBjb21waWxlcyBjb3JyZWN0bHkuXG5cbiMjIFN1bW1hcnlcblxuSSBoYXZlIHN1Y2Nlc3NmdWxseSByZWZhY3RvcmVkIHRoZSBgc3JjL2NvbnN0YW50cy50c2AgZmlsZSB3aXRoIHRoZSBmb2xsb3dpbmcgaW1wcm92ZW1lbnRzOlxuXG4jIyMgKipLZXkgSW1wcm92ZW1lbnRzIE1hZGU6KipcblxuMS4gKipCZXR0ZXIgT3JnYW5pemF0aW9uKio6IEdyb3VwZWQgcmVsYXRlZCBwcm9wZXJ0aWVzIHdpdGggY2xlYXIgY29tbWVudHM6XG4gICAtIENvcmUgcmVxdWlyZWQgY29uZmlndXJhdGlvblxuICAgLSBBUEkgY29uZmlndXJhdGlvbiAgXG4gICAtIFVJIHRoZW1pbmcgYW5kIGN1c3RvbWl6YXRpb25cbiAgIC0gRXh0ZXJuYWwgaW50ZWdyYXRpb25zXG4gICAtIEZlYXR1cmUgZmxhZ3MgYW5kIG9wdGlvbmFsIGZ1bmN0aW9uYWxpdHlcbiAgIC0gRmlsZSBhbmQgY29udGVudCBjb25maWd1cmF0aW9uXG4gICAtIE1vbml0b3JpbmcgYW5kIGFuYWx5dGljc1xuXG4yLiAqKkltcHJvdmVkIERlZmF1bHQgVmFsdWVzKio6IFxuICAgLSBDaGFuZ2VkIGBpc1VzZUZBUWAgZnJvbSBgdW5kZWZpbmVkYCB0byBgZmFsc2VgIChtb3JlIG1lYW5pbmdmdWwgZGVmYXVsdClcbiAgIC0gS2VwdCBgcm9vbUlkczoge31gIGFzIGFuIGVtcHR5IG9iamVjdCAoYXBwcm9wcmlhdGUgZGVmYXVsdClcbiAgIC0gVXNlZCBgdW5kZWZpbmVkYCBmb3IgdHJ1bHkgb3B0aW9uYWwgcHJvcGVydGllcyB0aGF0IHNob3VsZCBiZSBleHBsaWNpdGx5IHNldFxuXG4zLiAqKkVuaGFuY2VkIERvY3VtZW50YXRpb24qKjogXG4gICAtIEFkZGVkIGNvbXByZWhlbnNpdmUgSlNEb2MgY29tbWVudCBleHBsYWluaW5nIHRoZSBwdXJwb3NlXG4gICAtIEFkZGVkIGlubGluZSBjb21tZW50cyBmb3IgZWFjaCBzZWN0aW9uXG4gICAtIEV4cGxhaW5lZCB0aGUgcmVhc29uaW5nIGJlaGluZCBkZWZhdWx0IHZhbHVlc1xuXG40LiAqKlR5cGUgU2FmZXR5Kio6IFxuICAgLSBEZWZpbmVkIHRoZSBCdWJibGVQcm9wcyB0eXBlIGlubGluZSB0byBhdm9pZCBKU1ggY29tcGlsYXRpb24gaXNzdWVzXG4gICAtIE1haW50YWluZWQgZnVsbCB0eXBlIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgZXhpc3RpbmcgY29kZWJhc2VcbiAgIC0gRW5zdXJlZCBUeXBlU2NyaXB0IGNvbXBpbGF0aW9uIHBhc3Nlc1xuXG41LiAqKkNvZGUgQ2xhcml0eSoqOiBcbiAgIC0gTG9naWNhbCBncm91cGluZyBtYWtlcyBpdCBlYXNpZXIgdG8gdW5kZXJzdGFuZCB3aGljaCBwcm9wZXJ0aWVzIGJlbG9uZyB0b2dldGhlclxuICAgLSBDbGVhciBzZXBhcmF0aW9uIGJldHdlZW4gcmVxdWlyZWQgdnMgb3B0aW9uYWwgcHJvcGVydGllc1xuICAgLSBCZXR0ZXIgbWFpbnRhaW5hYmlsaXR5IGZvciBmdXR1cmUgZGV2ZWxvcGVyc1xuXG4jIyMgKipCZWZvcmUgdnMgQWZ0ZXI6KipcblxuYGBgYHR5cGVzY3JpcHQgcGF0aD1zcmMvY29uc3RhbnRzLnRzIG1vZGU9RVhDRVJQVFxuLy8gQmVmb3JlOiBVbm9yZ2FuaXplZCwgdW5jbGVhciBkZWZhdWx0c1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gIGNoYXRmbG93aWQ6ICcnLFxuICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICAvLyAuLi4gbWl4ZWQgb3JkZXIsIHVuY2xlYXIgcHVycG9zZVxufTtcblxuLy8gQWZ0ZXI6IFdlbGwtb3JnYW5pemVkLCBkb2N1bWVudGVkLCBtZWFuaW5nZnVsIGRlZmF1bHRzXG5leHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgLy8gQ29yZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIC0gbXVzdCBiZSBzZXQgYnkgaW1wbGVtZW50ZXJcbiAgY2hhdGZsb3dpZDogJycsXG4gIFxuICAvLyBBUEkgY29uZmlndXJhdGlvblxuICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICBcbiAgLy8gVUkgdGhlbWluZyBhbmQgY3VzdG9taXphdGlvblxuICB0aGVtZTogdW5kZWZpbmVkLFxuICAvLyAuLi4gZXRjLlxufTtcbmBgYGBcblxuVGhlIHJlZmFjdG9yZWQgY29kZSBpcyBub3cgbW9yZSBtYWludGFpbmFibGUsIHNlbGYtZG9jdW1lbnRpbmcsIGFuZCBmb2xsb3dzIFR5cGVTY3JpcHQgYmVzdCBwcmFjdGljZXMgd2hpbGUgbWFpbnRhaW5pbmcgZnVsbCBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGV4aXN0aW5nIGNvZGViYXNlLlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJyZXF1ZXN0X2lkIjoiNTQxMTdiNDgtNzBlMi00YWJkLWI3MmMtNDk4MTVmZDg2MjA5IiwidXVpZCI6IjM2OWFkZmQ5LThlMDEtNGY1OC1hMDIzLTNjNTU2ZWU2ZjRkYyIsImNoYXRJdGVtVHlwZSI6ImFnZW50aWMtY2hlY2twb2ludC1kZWxpbWl0ZXIiLCJzdGF0dXMiOiJzdWNjZXNzIiwiZnJvbVRpbWVzdGFtcCI6MCwidG9UaW1lc3RhbXAiOjE3NDg1Nzc2MjAzODgsInNlZW5fc3RhdGUiOiJzZWVuIn0seyJyZXF1ZXN0X2lkIjoiNjQxMzUxNTMtNmRiYS00NzgyLWExNDctYzZjZjU1ZDI4ZmY4IiwidXVpZCI6IjMwMDZlM2FiLWVmMWUtNDQ1OC1iYjgzLWYyNTA2MmViYTkxNCIsImNoYXRJdGVtVHlwZSI6ImFnZW50aWMtY2hlY2twb2ludC1kZWxpbWl0ZXIiLCJzdGF0dXMiOiJzdWNjZXNzIiwiZnJvbVRpbWVzdGFtcCI6MTc0ODU3NzYyMDM4OCwidG9UaW1lc3RhbXAiOjE3NDg1Nzc2MjcwMTksInNlZW5fc3RhdGUiOiJzZWVuIn1dLCJmZWVkYmFja1N0YXRlcyI6eyJ0ZW1wLWZlLTk0MzgyYTA0LWFlMzQtNGRmOS05OGUzLWI0MmVlZDQ2MTZhNiI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtMDEzMzI5NWMtNTJmNC00ODVkLTlkNzctMjUyNmM3MDJiZGJkIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS0wMTIzMzdiYS00NTY3LTQzZDYtOTk4OS0wMGUxMzg0ZTA5ZDIiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLTNhNjczNzhlLTQwMjEtNGFiMy05OTRmLTk0NmRkNjA0YmE2MyI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtMjM4ODQ2NmUtNWM5Ni00MmYzLWIwNzgtYzVmYzg1ZTUwYWJmIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS1hYTJkOGMyNS1kZGUyLTQyMzctODdiNC0wZWYzMjEwMWRkZTQiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLWNlMzY4ODdjLTRhMTItNDcyNS04ZmU2LTE0NmIyMzA0YjllZiI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtYTA3NGJmNmEtZjhlOS00NmE5LWJmZjYtZGFhNjczMTNkMjJjIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS00Y2FhM2Y2Yy1mMWUyLTQyOGEtYjMzZi03OTAyYTg5ZDhiNDYiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLWU2YmEzNGFmLTJhODAtNDI1My1iOGNkLTJjMDkwODA4ZGMxMyI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtMDM1YmM0Y2QtYzM3Zi00MGY0LTkxNWQtMWNmZmZhMDYzZDAzIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS0zNDI4ZWVjZC0wOGZlLTQwOTgtOTk5NC1mOWMzOGYyYWU2ZjQiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLWQyYzIxZTBmLTRiOGEtNDZjNi05ZmY4LWM3ZTA5NGZlMWYyYiI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtY2Q5NzczNDctNzlmOC00MjgyLWI4YzQtNGIwMWExYTA0N2I3Ijp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS03OGQ4Zjg4Zi04ZDZkLTQ1OTYtYjNjYy0xYWU3MDBjNGRiMmYiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLTZkZmM1NDAzLWU4Y2YtNDVlNC1hODhhLTc2MWQ1N2U2ZWY2YiI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtOGVkNWM3NWUtMDM3Ny00Nzg1LThhNjAtNDhkOGQ4M2JhOGZkIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS02MzU2OWU0ZC04N2QxLTRjNTktYjQ2MC1jODM0OTNjZTM4ZTAiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLWVjYTgwYjlhLTFhY2MtNGNkMy1iYjc3LWRhZDc2NWJkOGEyYSI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtZmY4YjNiNDYtYmY4Yy00MmZiLWE4YTQtOWJiN2Y1ZTkzNDk1Ijp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS1hMTcwOTg5NS1mMGY3LTQ1NTItOGI3Yy0xMGMwMmViNzdlYWEiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9fSwidG9vbFVzZVN0YXRlcyI6eyJmZWQ5NGVlNi1lN2VjLTRjMzQtOWI2NC0xOGNhNDU2MTU3ZGY7dG9vbHVfdnJ0eF8wMVJ4MXBRWExWM21ncTlZOEdzb04zQVciOnsicmVxdWVzdElkIjoiZmVkOTRlZTYtZTdlYy00YzM0LTliNjQtMThjYTQ1NjE1N2RmIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMVJ4MXBRWExWM21ncTlZOEdzb04zQVciLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJIZXJlJ3MgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGBjYXQgLW5gIG9uIHNyYy9jb25zdGFudHMudHM6XG4gICAgIDFcdGltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZSc7XG4gICAgIDJcdFxuICAgICAzXHRleHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgICAgNFx0ICBjaGF0Zmxvd2lkOiAnJyxcbiAgICAgNVx0ICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gICAgIDZcdCAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcbiAgICAgN1x0ICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgICAgOFx0ICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICAgICA5XHQgIHRoZW1lOiB1bmRlZmluZWQsXG4gICAgMTBcdCAgb2JzZXJ2ZXJzQ29uZmlnOiB1bmRlZmluZWQsXG4gICAgMTFcdCAgcm9vbUlkczoge30sXG4gICAgMTJcdCAgaXNVc2VGQVE6IHVuZGVmaW5lZCxcbiAgICAxM1x0ICBmaWxlUGF0aDogJycsXG4gICAgMTRcdCAgc3VnZ2VzdFF1ZXN0aW9uczogJycsXG4gICAgMTVcdCAgZXh0ZXJuYWxEYXRhOiAnJyxcbiAgICAxNlx0ICBjYWxsQmFja0ljb246ICcnLFxuICAgIDE3XHQgIGNhbGxCYWNrRnVuY3Rpb246IHVuZGVmaW5lZCxcbiAgICAxOFx0fTtcbiAgICAxOVx0XG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiAxOVxuIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiNWRhOTA4MjktYzVmNi00YTI2LTk4ZjUtNjUyODU1OWIxMDZjO3Rvb2x1X3ZydHhfMDFMbzd0blROU1RhOTVTQndOVW1TVnRwIjp7InJlcXVlc3RJZCI6IjVkYTkwODI5LWM1ZjYtNGEyNi05OGY1LTY1Mjg1NTliMTA2YyIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFMbzd0blROU1RhOTVTQndOVW1TVnRwIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiVGhlIGZvbGxvd2luZyBjb2RlIHNlY3Rpb25zIHdlcmUgcmV0cmlldmVkOlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS90eXBlcy50c1xuICAgICAxXHRleHBvcnQgdHlwZSBCdWJibGVQYXJhbXMgPSB7XG4gICAgIDJcdCAgdGhlbWU/OiBCdWJibGVUaGVtZTtcbiAgICAgM1x0fTtcbiAgICAgNFx0XG4gICAgIDVcdGV4cG9ydCB0eXBlIEJ1YmJsZVRoZW1lID0ge1xuICAgICA2XHQgIGNoYXRXaW5kb3c/OiBDaGF0V2luZG93VGhlbWU7XG4gICAgIDdcdCAgYnV0dG9uPzogQnV0dG9uVGhlbWU7XG4gICAgIDhcdCAgdG9vbHRpcD86IFRvb2xUaXBUaGVtZTtcbiAgICAgOVx0ICBkaXNjbGFpbWVyPzogRGlzY2xhaW1lclBvcFVwVGhlbWU7XG4gICAgMTBcdCAgY3VzdG9tQ1NTPzogc3RyaW5nO1xuICAgIDExXHR9O1xuICAgIDEyXHRcbiAgICAxM1x0ZXhwb3J0IHR5cGUgVGV4dElucHV0VGhlbWUgPSB7XG4gICAgMTRcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNlx0ICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICAxN1x0ICBzZW5kQnV0dG9uQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgbWF4Q2hhcnM/OiBudW1iZXI7XG4gICAgMTlcdCAgbWF4Q2hhcnNXYXJuaW5nTWVzc2FnZT86IHN0cmluZztcbiAgICAyMFx0ICBhdXRvRm9jdXM/OiBib29sZWFuO1xuICAgIDIxXHQgIHNlbmRNZXNzYWdlU291bmQ/OiBib29sZWFuO1xuICAgIDIyXHQgIHNlbmRTb3VuZExvY2F0aW9uPzogc3RyaW5nO1xuICAgIDIzXHQgIHJlY2VpdmVNZXNzYWdlU291bmQ/OiBib29sZWFuO1xuICAgIDI0XHQgIHJlY2VpdmVTb3VuZExvY2F0aW9uPzogc3RyaW5nO1xuICAgIDI1XHR9O1xuICAgIDI2XHRcbiAgICAyN1x0ZXhwb3J0IHR5cGUgVXNlck1lc3NhZ2VUaGVtZSA9IHtcbiAgICAyOFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMjlcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDMwXHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDMxXHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAzMlx0fTtcbiAgICAzM1x0XG4gICAgMzRcdGV4cG9ydCB0eXBlIEJvdE1lc3NhZ2VUaGVtZSA9IHtcbiAgICAzNVx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMzZcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDM3XHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDM4XHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAzOVx0fTtcbiAgICA0MFx0XG4gICAgNDFcdGV4cG9ydCB0eXBlIEZvb3RlclRoZW1lID0ge1xuICAgIDQyXHQgIHNob3dGb290ZXI/OiBib29sZWFuO1xuICAgIDQzXHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICA0NFx0ICB0ZXh0Pzogc3RyaW5nO1xuICAgIDQ1XHQgIGNvbXBhbnk/OiBzdHJpbmc7XG4gICAgNDZcdCAgY29tcGFueUxpbms/OiBzdHJpbmc7XG4gICAgNDdcdH07XG4gICAgNDhcdFxuICAgIDQ5XHRleHBvcnQgdHlwZSBGZWVkYmFja1RoZW1lID0ge1xuICAgIDUwXHQgIGNvbG9yPzogc3RyaW5nO1xuICAgIDUxXHR9O1xuICAgIDUyXHRcbiAgICA1M1x0ZXhwb3J0IHR5cGUgQ2hhdFdpbmRvd1RoZW1lID0ge1xuICAgIDU0XHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAgNTVcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuOyAvLyBwYXJhbWV0ZXIgdG8gc2hvdyBhZ2VudCByZWFzb25pbmdzIHdoZW4gdXNpbmcgYWdlbnRmbG93c1xuICAgIDU2XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgIDU3XHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDU4XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgIDU5XHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgNjBcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgIDYxXHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICA2Mlx0ICBiYWNrZ3JvdW5kSW1hZ2U/OiBzdHJpbmc7XG4gICAgNjNcdCAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIDY0XHQgIHdpZHRoPzogbnVtYmVyO1xuICAgIDY1XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDY2XHQgIHVzZXJNZXNzYWdlPzogVXNlck1lc3NhZ2VUaGVtZTtcbiAgICA2N1x0ICBib3RNZXNzYWdlPzogQm90TWVzc2FnZVRoZW1lO1xuICAgIDY4XHQgIHRleHRJbnB1dD86IFRleHRJbnB1dFRoZW1lO1xuICAgIDY5XHQgIGZlZWRiYWNrPzogRmVlZGJhY2tUaGVtZTtcbiAgICA3MFx0ICBmb290ZXI/OiBGb290ZXJUaGVtZTtcbiAgICA3MVx0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAgNzJcdCAgcG93ZXJlZEJ5VGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDczXHQgIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW107XG4gICAgNzRcdCAgc3RhcnRlclByb21wdEZvbnRTaXplPzogbnVtYmVyO1xuICAgIDc1XHQgIGNsZWFyQ2hhdE9uUmVsb2FkPzogYm9vbGVhbjtcbiAgICA3Nlx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAgNzdcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgNzhcdH07XG4gICAgNzlcdFxuICAgIDgwXHRleHBvcnQgdHlwZSBCdXR0b25UaGVtZSA9IHtcbiAgICA4MVx0ICBzaXplPzogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8IG51bWJlcjsgLy8gY3VzdG9tIHNpemUgb2YgY2hhdGJvdCBpbiBwaXhlbHNcbiAgICA4Mlx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgODNcdCAgaWNvbkNvbG9yPzogc3RyaW5nO1xuICAgIDg0XHQgIGN1c3RvbUljb25TcmM/OiBzdHJpbmc7XG4gICAgODVcdCAgYm90dG9tPzogbnVtYmVyO1xuICAgIDg2XHQgIHJpZ2h0PzogbnVtYmVyO1xuICAgIDg3XHQgIGRyYWdBbmREcm9wPzogYm9vbGVhbjsgLy8gcGFyYW1ldGVyIHRvIGVuYWJsZSBkcmFnIGFuZCBkcm9wKHRydWUgb3IgZmFsc2UpXG4gICAgODhcdCAgYXV0b1dpbmRvd09wZW4/OiBhdXRvV2luZG93T3BlblRoZW1lO1xuICAgIDg5XHR9O1xuICAgIDkwXHRcbiAgICA5MVx0ZXhwb3J0IHR5cGUgVG9vbFRpcFRoZW1lID0ge1xuICAgIDkyXHQgIHNob3dUb29sdGlwPzogYm9vbGVhbjsgLy8gcGFyYW1ldGVyIHRvIGVuYWJsZSB0b29sdGlwKHRydWUgb3IgZmFsc2UpXG4gICAgOTNcdCAgdG9vbHRpcE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgOTRcdCAgdG9vbHRpcEJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICA5NVx0ICB0b29sdGlwVGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDk2XHQgIHRvb2x0aXBGb250U2l6ZT86IG51bWJlcjtcbiAgICA5N1x0fTtcbiAgICA5OFx0XG4gICAgOTlcdGV4cG9ydCB0eXBlIGF1dG9XaW5kb3dPcGVuVGhlbWUgPSB7XG4gICAxMDBcdCAgYXV0b09wZW4/OiBib29sZWFuOyAvL3BhcmFtZXRlciB0byBjb250cm9sIGF1dG9tYXRpYyB3aW5kb3cgb3BlbmluZ1xuICAgMTAxXHQgIG9wZW5EZWxheT86IG51bWJlcjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBkZWxheSB0aW1lIGluIHNlY29uZHNcbiAgIDEwMlx0ICBhdXRvT3Blbk9uTW9iaWxlPzogYm9vbGVhbjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBvcGVuaW5nIG9uIG1vYmlsZVxuICAgMTAzXHR9O1xuICAgMTA0XHRcbiAgIDEwNVx0ZXhwb3J0IHR5cGUgRGlzY2xhaW1lclBvcFVwVGhlbWUgPSB7XG4gICAxMDZcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAxMDdcdCAgbWVzc2FnZT86IHN0cmluZztcbiAgIDEwOFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxMDlcdCAgYnV0dG9uQ29sb3I/OiBzdHJpbmc7XG4gICAxMTBcdCAgYnV0dG9uVGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTExXHQgIGJ1dHRvblRleHQ/OiBzdHJpbmc7XG4gICAxMTJcdCAgYmx1cnJlZEJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDExM1x0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxMTRcdH07XG4gICAxMTVcdFxuICAgMTE2XHRleHBvcnQgdHlwZSBEYXRlVGltZVRvZ2dsZVRoZW1lID0ge1xuICAgMTE3XHQgIGRhdGU/OiBib29sZWFuO1xuICAgMTE4XHQgIHRpbWU/OiBib29sZWFuO1xuICAgMTE5XHR9O1xuLi4uXG5QYXRoOiBzcmMvY29uc3RhbnRzLnRzXG4gICAgIDFcdGltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZSc7XG4gICAgIDJcdFxuICAgICAzXHRleHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgICAgNFx0ICBjaGF0Zmxvd2lkOiAnJyxcbiAgICAgNVx0ICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gICAgIDZcdCAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcbiAgICAgN1x0ICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgICAgOFx0ICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICAgICA5XHQgIHRoZW1lOiB1bmRlZmluZWQsXG4gICAgMTBcdCAgb2JzZXJ2ZXJzQ29uZmlnOiB1bmRlZmluZWQsXG4gICAgMTFcdCAgcm9vbUlkczoge30sXG4gICAgMTJcdCAgaXNVc2VGQVE6IHVuZGVmaW5lZCxcbiAgICAxM1x0ICBmaWxlUGF0aDogJycsXG4gICAgMTRcdCAgc3VnZ2VzdFF1ZXN0aW9uczogJycsXG4gICAgMTVcdCAgZXh0ZXJuYWxEYXRhOiAnJyxcbiAgICAxNlx0ICBjYWxsQmFja0ljb246ICcnLFxuICAgIDE3XHQgIGNhbGxCYWNrRnVuY3Rpb246IHVuZGVmaW5lZCxcbiAgICAxOFx0fTtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBTaG93LCBzcGxpdFByb3BzLCBvbkNsZWFudXAsIGNyZWF0ZUVmZmVjdCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHN0eWxlcyBmcm9tICcuLi8uLi8uLi9hc3NldHMvaW5kZXguY3NzJztcbiAgICAgM1x0aW1wb3J0IHsgQnViYmxlQnV0dG9uIH0gZnJvbSAnLi9CdWJibGVCdXR0b24nO1xuICAgICA0XHRpbXBvcnQgeyBCdWJibGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcyc7XG4gICAgIDVcdGltcG9ydCB7IEJvdCwgQm90UHJvcHMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0JvdCc7XG4gICAgIDZcdGltcG9ydCBUb29sdGlwIGZyb20gJy4vVG9vbHRpcCc7XG4gICAgIDdcdGltcG9ydCB7IGdldEJ1YmJsZUJ1dHRvblNpemUgfSBmcm9tICdAL3V0aWxzJztcbiAgICAgOFx0XG4gICAgIDlcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAxMFx0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgMTFcdFxuICAgIDEyXHRleHBvcnQgdHlwZSBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zO1xuICAgIDEzXHRcbiAgICAxNFx0ZXhwb3J0IGNvbnN0IEJ1YmJsZSA9IChwcm9wczogQnViYmxlUHJvcHMpID0+IHtcbiAgICAxNVx0ICBjb25zdCBbYnViYmxlUHJvcHNdID0gc3BsaXRQcm9wcyhwcm9wcywgWyd0aGVtZSddKTtcbiAgICAxNlx0XG4gICAgMTdcdCAgY29uc3QgW2lzQm90T3BlbmVkLCBzZXRJc0JvdE9wZW5lZF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgIDE4XHQgIGNvbnN0IFtpc0JvdFN0YXJ0ZWQsIHNldElzQm90U3RhcnRlZF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgIDE5XHQgIGNvbnN0IFtidXR0b25Qb3NpdGlvbiwgc2V0QnV0dG9uUG9zaXRpb25dID0gY3JlYXRlU2lnbmFsKHtcbiAgICAyMFx0ICAgIGJvdHRvbTogYnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uYm90dG9tID8/IDIwLFxuICAgIDIxXHQgICAgcmlnaHQ6IGJ1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/LnJpZ2h0ID8/IDIwLFxuICAgIDIyXHQgIH0pO1xuICAgIDIzXHRcbiAgICAyNFx0ICBjb25zdCBvcGVuQm90ID0gKCkgPT4ge1xuICAgIDI1XHQgICAgaWYgKCFpc0JvdFN0YXJ0ZWQoKSkgc2V0SXNCb3RTdGFydGVkKHRydWUpO1xuICAgIDI2XHQgICAgc2V0SXNCb3RPcGVuZWQodHJ1ZSk7XG4gICAgMjdcdCAgfTtcbiAgICAyOFx0XG4gICAgMjlcdCAgY29uc3QgY2xvc2VCb3QgPSAoKSA9PiB7XG4gICAgMzBcdCAgICBzZXRJc0JvdE9wZW5lZChmYWxzZSk7XG4gICAgMzFcdCAgfTtcbiAgICAzMlx0XG4gICAgMzNcdCAgY29uc3QgdG9nZ2xlQm90ID0gKCkgPT4ge1xuICAgIDM0XHQgICAgaXNCb3RPcGVuZWQoKSA/IGNsb3NlQm90KCkgOiBvcGVuQm90KCk7XG4gICAgMzVcdCAgfTtcbiAgICAzNlx0XG4gICAgMzdcdCAgb25DbGVhbnVwKCgpID0+IHtcbiAgICAzOFx0ICAgIHNldElzQm90U3RhcnRlZChmYWxzZSk7XG4gICAgMzlcdCAgfSk7XG4gICAgNDBcdFxuICAgIDQxXHQgIGNvbnN0IGJ1dHRvblNpemUgPSBnZXRCdWJibGVCdXR0b25TaXplKHByb3BzLnRoZW1lPy5idXR0b24/LnNpemUpOyAvLyBEZWZhdWx0IHRvIDQ4cHggaWYgc2l6ZSBpcyBub3QgcHJvdmlkZWRcbiAgICA0Mlx0ICBjb25zdCBidXR0b25Cb3R0b20gPSBwcm9wcy50aGVtZT8uYnV0dG9uPy5ib3R0b20gPz8gMjA7XG4gICAgNDNcdCAgY29uc3QgY2hhdFdpbmRvd0JvdHRvbSA9IGJ1dHRvbkJvdHRvbSArIGJ1dHRvblNpemUgKyAxMDsgLy8gQWRqdXN0IHRoZSBvZmZzZXQgaGVyZSBmb3Igc2xpZ2h0IHNoaWZ0XG4gICAgNDRcdFxuICAgIDQ1XHQgIC8vIEFkZCB2aWV3cG9ydCBtZXRhIHRhZyBkeW5hbWljYWxseVxuICAgIDQ2XHQgIGNyZWF0ZUVmZmVjdCgoKSA9PiB7XG4gICAgNDdcdCAgICBjb25zdCBtZXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbWV0YScpO1xuICAgIDQ4XHQgICAgbWV0YS5uYW1lID0gJ3ZpZXdwb3J0JztcbiAgICA0OVx0ICAgIG1ldGEuY29udGVudCA9ICd3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBpbnRlcmFjdGl2ZS13aWRnZXQ9cmVzaXplcy1jb250ZW50JztcbiAgICA1MFx0ICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobWV0YSk7XG4gICAgNTFcdFxuICAgIDUyXHQgICAgcmV0dXJuICgpID0+IHtcbiAgICA1M1x0ICAgICAgZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChtZXRhKTtcbiAgICA1NFx0ICAgIH07XG4gICAgNTVcdCAgfSk7XG4gICAgNTZcdFxuICAgIDU3XHQgIGNvbnN0IHNob3dUb29sdGlwID0gYnViYmxlUHJvcHMudGhlbWU/LnRvb2x0aXA/LnNob3dUb29sdGlwID8/IGZhbHNlO1xuICAgIDU4XHRcbiAgICA1OVx0ICByZXR1cm4gKFxuICAgIDYwXHQgICAgPD5cbiAgICA2MVx0ICAgICAgPFNob3cgd2hlbj17cHJvcHMudGhlbWU/LmN1c3RvbUNTU30+XG4gICAgNjJcdCAgICAgICAgPHN0eWxlPntwcm9wcy50aGVtZT8uY3VzdG9tQ1NTfTwvc3R5bGU+XG4gICAgNjNcdCAgICAgIDwvU2hvdz5cbiAgICA2NFx0ICAgICAgPHN0eWxlPntzdHlsZXN9PC9zdHlsZT5cbiAgICA2NVx0ICAgICAgPFRvb2x0aXBcbiAgICA2Nlx0ICAgICAgICBzaG93VG9vbHRpcD17c2hvd1Rvb2x0aXAgJiYgIWlzQm90T3BlbmVkKCl9XG4gICAgNjdcdCAgICAgICAgcG9zaXRpb249e2J1dHRvblBvc2l0aW9uKCl9XG4gICAgNjhcdCAgICAgICAgYnV0dG9uU2l6ZT17YnV0dG9uU2l6ZX1cbiAgICA2OVx0ICAgICAgICB0b29sdGlwTWVzc2FnZT17YnViYmxlUHJvcHMudGhlbWU/LnRvb2x0aXA/LnRvb2x0aXBNZXNzYWdlfVxuICAgIDcwXHQgICAgICAgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I9e2J1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy50b29sdGlwQmFja2dyb3VuZENvbG9yfVxuICAgIDcxXHQgICAgICAgIHRvb2x0aXBUZXh0Q29sb3I9e2J1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy50b29sdGlwVGV4dENvbG9yfVxuICAgIDcyXHQgICAgICAgIHRvb2x0aXBGb250U2l6ZT17YnViYmxlUHJvcHMudGhlbWU/LnRvb2x0aXA/LnRvb2x0aXBGb250U2l6ZX0gLy8gU2V0IHRoZSB0b29sdGlwIGZvbnQgc2l6ZVxuICAgIDczXHQgICAgICAvPlxuICAgIDc0XHQgICAgICA8QnViYmxlQnV0dG9uXG4gICAgNzVcdCAgICAgICAgey4uLmJ1YmJsZVByb3BzLnRoZW1lPy5idXR0b259XG4gICAgNzZcdCAgICAgICAgdG9nZ2xlQm90PXt0b2dnbGVCb3R9XG4gICAgNzdcdCAgICAgICAgaXNCb3RPcGVuZWQ9e2lzQm90T3BlbmVkKCl9XG4gICAgNzhcdCAgICAgICAgc2V0QnV0dG9uUG9zaXRpb249e3NldEJ1dHRvblBvc2l0aW9ufVxuICAgIDc5XHQgICAgICAgIGRyYWdBbmREcm9wPXtidWJibGVQcm9wcy50aGVtZT8uYnV0dG9uPy5kcmFnQW5kRHJvcCA/PyBmYWxzZX1cbi4uLlxuICAgMTUyXHQgICAgICAgICAgICAgIGRpc2NsYWltZXI9e2J1YmJsZVByb3BzLnRoZW1lPy5kaXNjbGFpbWVyfVxuICAgMTUzXHQgICAgICAgICAgICAgIGRhdGVUaW1lVG9nZ2xlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZGF0ZVRpbWVUb2dnbGV9XG4gICAxNTRcdCAgICAgICAgICAgICAgcmVuZGVySFRNTD17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnJlbmRlckhUTUx9XG4gICAxNTVcdCAgICAgICAgICAgICAgY2hhdHdvb3RVcmw9e3Byb3BzLmNoYXR3b290VXJsfVxuICAgMTU2XHQgICAgICAgICAgICAgIHJvb21JZHM9e3Byb3BzLnJvb21JZHN9XG4gICAxNTdcdCAgICAgICAgICAgICAgaXNVc2VGQVE9e3Byb3BzLmlzVXNlRkFRfVxuICAgMTU4XHQgICAgICAgICAgICAgIGZpbGVQYXRoPXtwcm9wcy5maWxlUGF0aH1cbiAgIDE1OVx0ICAgICAgICAgICAgICBzdWdnZXN0UXVlc3Rpb25zPXtwcm9wcy5zdWdnZXN0UXVlc3Rpb25zfVxuICAgMTYwXHQgICAgICAgICAgICAgIGV4dGVybmFsRGF0YT17cHJvcHMuZXh0ZXJuYWxEYXRhfVxuICAgMTYxXHQgICAgICAgICAgICAgIGNhbGxCYWNrRnVuY3Rpb249e3Byb3BzLmNhbGxCYWNrRnVuY3Rpb259XG4gICAxNjJcdCAgICAgICAgICAgICAgY2FsbEJhY2tJY29uPXtwcm9wcy5jYWxsQmFja0ljb259XG4gICAxNjNcdCAgICAgICAgICAgIC8+XG4gICAxNjRcdCAgICAgICAgICA8L2Rpdj5cbiAgIDE2NVx0ICAgICAgICA8L1Nob3c+XG4gICAxNjZcdCAgICAgIDwvZGl2PlxuICAgMTY3XHQgICAgPC8+XG4gICAxNjhcdCAgKTtcbiAgIDE2OVx0fTtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9HdWVzdEJ1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgRm9yLCBTaG93LCBvbk1vdW50IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyBBdmF0YXIgfSBmcm9tICcuLi9hdmF0YXJzL0F2YXRhcic7XG4gICAgIDNcdGltcG9ydCB7IE1hcmtlZCB9IGZyb20gJ0B0cy1zdGFjay9tYXJrZG93bic7XG4gICAgIDRcdGltcG9ydCB7IEZpbGVVcGxvYWQsIE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi4vQm90JztcbiAgICAgNVx0aW1wb3J0IHsgQXR0YWNobWVudEljb24gfSBmcm9tICcuLi9pY29ucyc7XG4gICAgIDZcdFxuICAgICA3XHR0eXBlIFByb3BzID0ge1xuICAgICA4XHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgICA5XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgMTBcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDExXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDEyXHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDEzXHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAxNFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE2XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDE3XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDE4XHR9O1xuICAgIDE5XHRcbiAgICAyMFx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjM0I4MUY2JztcbiAgICAyMVx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjZmZmZmZmJztcbiAgICAyMlx0Y29uc3QgZGVmYXVsdEZvbnRTaXplID0gMTY7XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGVCdXR0b24udHN4XG4gICAgIDFcdGltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgY3JlYXRlRWZmZWN0LCBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyBpc05vdERlZmluZWQsIGdldEJ1YmJsZUJ1dHRvblNpemUgfSBmcm9tICdAL3V0aWxzL2luZGV4JztcbiAgICAgM1x0aW1wb3J0IHsgQnV0dG9uVGhlbWUgfSBmcm9tICcuLi90eXBlcyc7XG4gICAgIDRcdFxuICAgICA1XHR0eXBlIFByb3BzID0gQnV0dG9uVGhlbWUgJiB7XG4gICAgIDZcdCAgaXNCb3RPcGVuZWQ6IGJvb2xlYW47XG4gICAgIDdcdCAgdG9nZ2xlQm90OiAoKSA9PiB2b2lkO1xuICAgICA4XHQgIHNldEJ1dHRvblBvc2l0aW9uOiAocG9zaXRpb246IHsgYm90dG9tOiBudW1iZXI7IHJpZ2h0OiBudW1iZXIgfSkgPT4gdm9pZDtcbiAgICAgOVx0ICBkcmFnQW5kRHJvcDogYm9vbGVhbjtcbiAgICAxMFx0ICBhdXRvT3Blbj86IGJvb2xlYW47IC8vIE9wdGlvbmFsIHBhcmFtZXRlciB0byBjb250cm9sIGF1dG9tYXRpYyB3aW5kb3cgb3BlbmluZ1xuICAgIDExXHQgIG9wZW5EZWxheT86IG51bWJlcjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBkZWxheSB0aW1lIGluIHNlY29uZHNcbiAgICAxMlx0ICBhdXRvT3Blbk9uTW9iaWxlPzogYm9vbGVhbjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBvcGVuaW5nIG9uIG1vYmlsZVxuICAgIDEzXHR9O1xuICAgIDE0XHRcbiAgICAxNVx0Y29uc3QgZGVmYXVsdEJ1dHRvbkNvbG9yID0gJyMzQjgxRjYnO1xuICAgIDE2XHRjb25zdCBkZWZhdWx0SWNvbkNvbG9yID0gJ3doaXRlJztcbiAgICAxN1x0Y29uc3QgZGVmYXVsdEJvdHRvbSA9IDIwO1xuICAgIDE4XHRjb25zdCBkZWZhdWx0UmlnaHQgPSAyMDtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9MZWFkQ2FwdHVyZUJ1YmJsZS50c3hcbi4uLlxuICAgICA4XHRcbiAgICAgOVx0dHlwZSBQcm9wcyA9IHtcbiAgICAxMFx0ICBtZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgICAxMVx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgMTJcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMTNcdCAgbGVhZHNDb25maWc/OiBMZWFkc0NvbmZpZztcbiAgICAxNFx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDE1XHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDE2XHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAxN1x0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE5XHQgIHNlbmRCdXR0b25Db2xvcj86IHN0cmluZztcbiAgICAyMFx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAyMVx0ICBpc0xlYWRTYXZlZDogYm9vbGVhbjtcbiAgICAyMlx0ICBzZXRJc0xlYWRTYXZlZDogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIDIzXHQgIHNldExlYWRFbWFpbDogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgMjRcdH07XG4gICAgMjVcdFxuICAgIDI2XHRjb25zdCBkZWZhdWx0QmFja2dyb3VuZENvbG9yID0gJyNmN2Y4ZmYnO1xuICAgIDI3XHRjb25zdCBkZWZhdWx0VGV4dENvbG9yID0gJyMzMDMyMzUnO1xuICAgIDI4XHRjb25zdCBkZWZhdWx0Rm9udFNpemUgPSAxNjtcbiAgICAyOVx0Y29uc3QgcGhvbmVSZWdleCA9IG5ldyBSZWdFeHAoL14oWytdP1tcXHMwLTldKyk/KFxcZHszfXxbKF0/WzAtOV0rWyldKT8oWy1dP1tcXHNdP1swLTldKSskLyk7XG4gICAgMzBcdFxuICAgIDMxXHRjb25zdCBMZWFkQ2FwdHVyZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICAzMlx0ICBuYW1lOiB6LnN0cmluZygpLm1pbigyLCAnTmFtZSBpcyB0b28gc2hvcnQnKS5vcHRpb25hbCgpLFxuICAgIDMzXHQgIGVtYWlsOiB6LnN0cmluZygpLmVtYWlsKCdQbGVhc2UgcHJvdmlkZSBhIHZhbGlkIGVtYWlsJykub3B0aW9uYWwoKSxcbiAgICAzNFx0ICBwaG9uZTogei5zdHJpbmcoKS5taW4oNSwgJ1Bob25lIG51bWJlciBpcyB0b28gc2hvcnQnKS5yZWdleChwaG9uZVJlZ2V4LCAnSW52YWxpZCBOdW1iZXIhJykub3B0aW9uYWwoKSxcbiAgICAzNVx0fSk7XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9Ub29sdGlwLnRzeFxuICAgICAxXHRpbXBvcnQgeyBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRcbiAgICAgM1x0Y29uc3QgZGVmYXVsdFRvb2x0aXBNZXNzYWdlID0gJ0hpIFRoZXJlIPCfkYshJztcbiAgICAgNFx0Y29uc3QgZGVmYXVsdFRvb2x0aXBCYWNrZ3JvdW5kQ29sb3IgPSAnYmxhY2snO1xuICAgICA1XHRjb25zdCBkZWZhdWx0VG9vbHRpcFRleHRDb2xvciA9ICd3aGl0ZSc7XG4gICAgIDZcdGNvbnN0IGRlZmF1bHRUb29sdGlwRm9udFNpemUgPSAxNjsgLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIHRvb2x0aXBcbiAgICAgN1x0XG4gICAgIDhcdHR5cGUgVG9vbHRpcFByb3BzID0ge1xuICAgICA5XHQgIHNob3dUb29sdGlwOiBib29sZWFuO1xuICAgIDEwXHQgIHBvc2l0aW9uOiB7IGJvdHRvbTogbnVtYmVyOyByaWdodDogbnVtYmVyIH07XG4gICAgMTFcdCAgYnV0dG9uU2l6ZTogbnVtYmVyO1xuICAgIDEyXHQgIHRvb2x0aXBNZXNzYWdlPzogc3RyaW5nO1xuICAgIDEzXHQgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTRcdCAgdG9vbHRpcFRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICB0b29sdGlwRm9udFNpemU/OiBudW1iZXI7IC8vIEFkZCB0b29sdGlwRm9udFNpemUgdG8gcHJvcHNcbiAgICAxNlx0fTtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9Cb3RCdWJibGUudHN4XG4uLi5cbiAgICAxOFx0XG4gICAgMTlcdHR5cGUgUHJvcHMgPSB7XG4gICAgMjBcdCAgbWVzc2FnZTogTWVzc2FnZVR5cGU7XG4gICAgMjFcdCAgc2V0TWVzc2FnZXM/OiBhbnk7XG4gICAgMjJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDIzXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDI0XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgMjVcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIDI2XHQgIGZpbGVBbm5vdGF0aW9ucz86IGFueTtcbiAgICAyN1x0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAyOFx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMjlcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDMwXHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzMVx0ICBjaGF0RmVlZGJhY2tTdGF0dXM/OiBib29sZWFuO1xuICAgIDMyXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDMzXHQgIGZlZWRiYWNrQ29sb3I/OiBzdHJpbmc7XG4gICAgMzRcdCAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgIDM1XHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgICAzNlx0ICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47XG4gICAgMzdcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgIDM4XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDM5XHQgIGhhbmRsZUFjdGlvbkNsaWNrOiAobGFiZWw6IHN0cmluZywgYWN0aW9uOiBJQWN0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCkgPT4gdm9pZDtcbiAgICA0MFx0ICBoYW5kbGVTb3VyY2VEb2N1bWVudHNDbGljazogKHNyYzogYW55KSA9PiB2b2lkO1xuICAgIDQxXHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgIDQyXHQgIG9uQ29ubmVjdFRvSHVtYW5BZHZpc29yPzogKGlkOiBzdHJpbmcsIHBhcmFtcz86IGFueSkgPT4gdm9pZDtcbiAgICA0M1x0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICA0NFx0ICBxdWVzdGlvbj86IHN0cmluZztcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9BZ2VudFJlYXNvbmluZ0J1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgRm9yLCBvbk1vdW50IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyBNYXJrZWQgfSBmcm9tICdAdHMtc3RhY2svbWFya2Rvd24nO1xuICAgICAzXHRpbXBvcnQgeyBGaWxlVXBsb2FkIH0gZnJvbSAnLi4vQm90JztcbiAgICAgNFx0aW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbiAgICAgNVx0XG4gICAgIDZcdHR5cGUgUHJvcHMgPSB7XG4gICAgIDdcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgOFx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDlcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMTBcdCAgYWdlbnROYW1lOiBzdHJpbmc7XG4gICAgMTFcdCAgYWdlbnRNZXNzYWdlOiBzdHJpbmc7XG4gICAgMTJcdCAgYWdlbnRBcnRpZmFjdHM/OiBGaWxlVXBsb2FkW107XG4gICAgMTNcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE0XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAxNlx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAxN1x0fTtcbiAgICAxOFx0XG4gICAgMTlcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnI2Y3ZjhmZic7XG4gICAgMjBcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnIzMwMzIzNSc7XG4gICAgMjFcdGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IDE2O1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL1NvdXJjZUJ1YmJsZS50c3hcbiAgICAgMVx0dHlwZSBQcm9wcyA9IHtcbiAgICAgMlx0ICBwYWdlQ29udGVudDogc3RyaW5nO1xuICAgICAzXHQgIG1ldGFkYXRhOiBvYmplY3Q7XG4gICAgIDRcdCAgb25Tb3VyY2VDbGljaz86ICgpID0+IHZvaWQ7XG4gICAgIDVcdCAgc3JjPzogYW55O1xuICAgICA2XHR9O1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL2luZGV4LnRzXG4gICAgIDFcdGV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cyc7XG4uLi5cblBhdGg6IHNyYy9CdWJibGVDaGF0LnRzeFxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcnXG4gICAgIDJcdGltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCdWJibGVQcm9wc1xuICAgICA1XHRcbiAgICAgNlx0ZGVjbGFyZSBnbG9iYWwge1xuICAgICA3XHQgIG5hbWVzcGFjZSBKU1gge1xuICAgICA4XHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAgOVx0ICAgICAgJ2Zsb3dpc2UtY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEwXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxMVx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDEyXHQgICAgICA+XG4gICAgMTNcdCAgICB9XG4gICAgMTRcdCAgfVxuICAgIDE1XHR9XG4gICAgMTZcdFxuICAgIDE3XHR0eXBlIEJ1YmJsZUVsZW1lbnQgPSBIVE1MRWxlbWVudCAmIFByb3BzXG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL0JhZGdlLnRzeFxuICAgICAxXHRpbXBvcnQgeyBGb290ZXJUaGVtZSB9IGZyb20gJ0AvZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAgMlx0aW1wb3J0IHsgU2hvdywgb25DbGVhbnVwLCBvbk1vdW50IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAzXHRcbiAgICAgNFx0dHlwZSBQcm9wcyA9IHtcbiAgICAgNVx0ICBmb290ZXI/OiBGb290ZXJUaGVtZTtcbiAgICAgNlx0ICBib3RDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgICA3XHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgICAgOFx0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAgOVx0fTtcbiAgICAxMFx0XG4gICAgMTFcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnIzMwMzIzNSc7XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9mdWxsL2NvbXBvbmVudHMvRnVsbC50c3hcbiAgICAgMVx0aW1wb3J0IHN0eWxlcyBmcm9tICcuLi8uLi8uLi9hc3NldHMvaW5kZXguY3NzJztcbiAgICAgMlx0aW1wb3J0IHsgQm90LCBCb3RQcm9wcyB9IGZyb20gJ0AvY29tcG9uZW50cy9Cb3QnO1xuICAgICAzXHRpbXBvcnQgeyBCdWJibGVQYXJhbXMgfSBmcm9tICdAL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgIDRcdGltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgb25DbGVhbnVwLCBvbk1vdW50LCBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgICA1XHRcbiAgICAgNlx0Y29uc3QgZGVmYXVsdEJ1dHRvbkNvbG9yID0gJyMzQjgxRjYnO1xuICAgICA3XHRjb25zdCBkZWZhdWx0SWNvbkNvbG9yID0gJ3doaXRlJztcbiAgICAgOFx0XG4gICAgIDlcdGV4cG9ydCB0eXBlIEZ1bGxQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zO1xuLi4uXG5QYXRoOiBzcmMvd2luZG93LnRzXG4gICAgIDFcdGltcG9ydCB7IG9ic2VydmVyc0NvbmZpZ1R5cGUgfSBmcm9tICcuL2NvbXBvbmVudHMvQm90JztcbiAgICAgMlx0aW1wb3J0IHsgQnViYmxlVGhlbWUgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgIDNcdFxuICAgICA0XHQvKiBlc2xpbnQtZGlzYWJsZSBzb2xpZC9yZWFjdGl2aXR5ICovXG4gICAgIDVcdHR5cGUgQm90UHJvcHMgPSB7XG4gICAgIDZcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgICA3XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgIDhcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgICA5XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgMTBcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcbiAgICAxMVx0ICB0aGVtZT86IEJ1YmJsZVRoZW1lO1xuICAgIDEyXHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgIDEzXHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIDE0XHQgIGlzVXNlRkFRPzogdW5kZWZpbmVkO1xuICAgIDE1XHR9O1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0ZvbGxvd1VwUHJvbXB0QnViYmxlLnRzeFxuICAgICAxXHR0eXBlIFByb3BzID0ge1xuICAgICAyXHQgIHByb21wdDogc3RyaW5nO1xuICAgICAzXHQgIG9uUHJvbXB0Q2xpY2s/OiAoKSA9PiB2b2lkO1xuICAgICA0XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgICAgNVx0fTtcbiAgICAgNlx0ZXhwb3J0IGNvbnN0IEZvbGxvd1VwUHJvbXB0QnViYmxlID0gKHByb3BzOiBQcm9wcykgPT4gKFxuICAgICA3XHQgIDw+XG4gICAgIDhcdCAgICA8ZGl2XG4gICAgIDlcdCAgICAgIGRhdGEtbW9kYWwtdGFyZ2V0PVwiZGVmYXVsdE1vZGFsXCJcbiAgICAxMFx0ICAgICAgZGF0YS1tb2RhbC10b2dnbGU9XCJkZWZhdWx0TW9kYWxcIlxuICAgIDExXHQgICAgICBjbGFzcz1cImZsZXgganVzdGlmeS1zdGFydCBpdGVtcy1zdGFydCBhbmltYXRlLWZhZGUtaW4gZ2FwLTEgaG9zdC1jb250YWluZXIgaG92ZXI6YnJpZ2h0bmVzcy05MCBhY3RpdmU6YnJpZ2h0bmVzcy03NVwiXG4gICAgMTJcdCAgICAgIG9uQ2xpY2s9eygpID0+IHByb3BzLm9uUHJvbXB0Q2xpY2s/LigpfVxuICAgIDEzXHQgICAgPlxuICAgIDE0XHQgICAgICA8c3BhblxuICAgIDE1XHQgICAgICAgIGNsYXNzPVwicHgtMiBweS0xIHdoaXRlc3BhY2UtcHJlLXdyYXAgbWF4LXctZnVsbCBjaGF0Ym90LWhvc3QtYnViYmxlIGJvcmRlclwiXG4gICAgMTZcdCAgICAgICAgZGF0YS10ZXN0aWQ9XCJob3N0LWJ1YmJsZVwiXG4gICAgMTdcdCAgICAgICAgc3R5bGU9e3tcbiAgICAxOFx0ICAgICAgICAgIHdpZHRoOiAnbWF4LWNvbnRlbnQnLFxuICAgIDE5XHQgICAgICAgICAgJ2ZvbnQtc2l6ZSc6IHByb3BzLnN0YXJ0ZXJQcm9tcHRGb250U2l6ZSA/IGAke3Byb3BzLnN0YXJ0ZXJQcm9tcHRGb250U2l6ZX1weGAgOiAnMTVweCcsIC8vIENvbnZlcnQgdG8gc3RyaW5nIHdpdGggdW5pdFxuICAgIDIwXHQgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTVweCcsXG4gICAgMjFcdCAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAyMlx0ICAgICAgICB9fVxuICAgIDIzXHQgICAgICA+XG4gICAgMjRcdCAgICAgICAge3Byb3BzLnByb21wdH1cbiAgICAyNVx0ICAgICAgPC9zcGFuPlxuICAgIDI2XHQgICAgPC9kaXY+XG4gICAgMjdcdCAgPC8+XG4gICAgMjhcdCk7XG4uLi5cblBhdGg6IHNyYy9pbmRleC50c1xuICAgICAxXHRleHBvcnQgdHlwZSB7IEJvdFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0JvdCc7XG4gICAgIDJcdGV4cG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZSc7XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvU3RhcnRlclByb21wdEJ1YmJsZS50c3hcbiAgICAgMVx0dHlwZSBQcm9wcyA9IHtcbiAgICAgMlx0ICBwcm9tcHQ6IHN0cmluZztcbiAgICAgM1x0ICBvblByb21wdENsaWNrPzogKCkgPT4gdm9pZDtcbiAgICAgNFx0ICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XG4gICAgIDVcdH07XG4gICAgIDZcdGV4cG9ydCBjb25zdCBTdGFydGVyUHJvbXB0QnViYmxlID0gKHByb3BzOiBQcm9wcykgPT4gKFxuICAgICA3XHQgIDw+XG4gICAgIDhcdCAgICA8ZGl2XG4gICAgIDlcdCAgICAgIGRhdGEtbW9kYWwtdGFyZ2V0PVwiZGVmYXVsdE1vZGFsXCJcbiAgICAxMFx0ICAgICAgZGF0YS1tb2RhbC10b2dnbGU9XCJkZWZhdWx0TW9kYWxcIlxuICAgIDExXHQgICAgICBjbGFzcz1cImZsZXgganVzdGlmeS1zdGFydCBpdGVtcy1zdGFydCBhbmltYXRlLWZhZGUtaW4gaG9zdC1jb250YWluZXIgaG92ZXI6YnJpZ2h0bmVzcy05MCBhY3RpdmU6YnJpZ2h0bmVzcy03NVwiXG4gICAgMTJcdCAgICAgIG9uQ2xpY2s9eygpID0+IHByb3BzLm9uUHJvbXB0Q2xpY2s/LigpfVxuICAgIDEzXHQgICAgPlxuICAgIDE0XHQgICAgICA8c3BhblxuICAgIDE1XHQgICAgICAgIGNsYXNzPVwicHgtMiBweS0xIG1sLTEgd2hpdGVzcGFjZS1wcmUtd3JhcCBtYXgtdy1mdWxsIGNoYXRib3QtaG9zdC1idWJibGVcIlxuICAgIDE2XHQgICAgICAgIGRhdGEtdGVzdGlkPVwiaG9zdC1idWJibGVcIlxuICAgIDE3XHQgICAgICAgIHN0eWxlPXt7XG4gICAgMThcdCAgICAgICAgICB3aWR0aDogJ21heC1jb250ZW50JyxcbiAgICAxOVx0ICAgICAgICAgICdmb250LXNpemUnOiBwcm9wcy5zdGFydGVyUHJvbXB0Rm9udFNpemUgPyBgJHtwcm9wcy5zdGFydGVyUHJvbXB0Rm9udFNpemV9cHhgIDogJzE1cHgnLCAvLyBDb252ZXJ0IHRvIHN0cmluZyB3aXRoIHVuaXRcbiAgICAyMFx0ICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzE1cHgnLFxuICAgIDIxXHQgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgMjJcdCAgICAgICAgfX1cbiAgICAyM1x0ICAgICAgPlxuICAgIDI0XHQgICAgICAgIHtwcm9wcy5wcm9tcHR9XG4gICAgMjVcdCAgICAgIDwvc3Bhbj5cbiAgICAyNlx0ICAgIDwvZGl2PlxuICAgIDI3XHQgIDwvPlxuICAgIDI4XHQpO1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9Cb3QudHN4XG4uLi5cbiAgIDEzMFx0XG4gICAxMzFcdGV4cG9ydCB0eXBlIEJvdFByb3BzID0ge1xuICAgMTMyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgIDEzM1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgMTM0XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgIDEzNVx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgMTM2XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM3XHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzhcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM5XHQgIGJvdE1lc3NhZ2U/OiBCb3RNZXNzYWdlVGhlbWU7XG4gICAxNDBcdCAgdXNlck1lc3NhZ2U/OiBVc2VyTWVzc2FnZVRoZW1lO1xuICAgMTQxXHQgIHRleHRJbnB1dD86IFRleHRJbnB1dFRoZW1lO1xuICAgMTQyXHQgIGZlZWRiYWNrPzogRmVlZGJhY2tUaGVtZTtcbiAgIDE0M1x0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDRcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDVcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ2XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0N1x0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgMTQ4XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgIDE0OVx0ICB0aXRsZT86IHN0cmluZztcbiAgIDE1MFx0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgIDE1MVx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgIDE1Mlx0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgIDE1M1x0ICBmb290ZXI/OiBGb290ZXJUaGVtZTtcbiAgIDE1NFx0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAxNTVcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcbiAgIDE1Nlx0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgeyBwcm9tcHQ6IHN0cmluZyB9Pjtcbi4uLlxuUGF0aDogc3JjL0Z1bGxQYWdlQ2hhdC50c3hcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCb3RQcm9wcyB9IGZyb20gJ2NtY3RzLWMtYWdlbnQtZW1iZWRkaW5nJ1xuICAgICAyXHRpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuICAgICAzXHRcbiAgICAgNFx0dHlwZSBQcm9wcyA9IEJvdFByb3BzICYge1xuICAgICA1XHQgIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllc1xuICAgICA2XHQgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICA3XHR9XG4gICAgIDhcdFxuICAgICA5XHRkZWNsYXJlIGdsb2JhbCB7XG4gICAgMTBcdCAgbmFtZXNwYWNlIEpTWCB7XG4gICAgMTFcdCAgICBpbnRlcmZhY2UgSW50cmluc2ljRWxlbWVudHMge1xuICAgIDEyXHQgICAgICAnZmxvd2lzZS1mdWxsY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEzXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxNFx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDE1XHQgICAgICA+ICYgeyBjbGFzcz86IHN0cmluZyB9XG4gICAgMTZcdCAgICB9XG4gICAgMTdcdCAgfVxuICAgIDE4XHR9XG4uLi5cbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sIjM3ZTcyN2MwLWRkMTYtNGUwNi1hMTBmLWZkZDc2NDQ4ZGQ1YTt0b29sdV92cnR4XzAxNXFUYUdheTNiTFZNMXVzdTRWTUFHeCI6eyJyZXF1ZXN0SWQiOiIzN2U3MjdjMC1kZDE2LTRlMDYtYTEwZi1mZGQ3NjQ0OGRkNWEiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxNXFUYUdheTNiTFZNMXVzdTRWTUFHeCIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6Ik5vdGU6XG5WaWV3IHJhbmdlIGV4cGFuZGVkIHRvIG1lZXQgbWluaW11bSBzaXplIG9mIDUwMCBsaW5lcy4gTmV3IHJhbmdlOiBbMTMwLCA2MjldLlxuXG5IZXJlJ3MgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGBjYXQgLW5gIG9uIHNyYy9jb21wb25lbnRzL0JvdC50c3g6XG4gICAxMzBcdFxuICAgMTMxXHRleHBvcnQgdHlwZSBCb3RQcm9wcyA9IHtcbiAgIDEzMlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAxMzNcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgIDEzNFx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAxMzVcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgIDEzNlx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgIDEzN1x0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM4XHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOVx0ICBib3RNZXNzYWdlPzogQm90TWVzc2FnZVRoZW1lO1xuICAgMTQwXHQgIHVzZXJNZXNzYWdlPzogVXNlck1lc3NhZ2VUaGVtZTtcbiAgIDE0MVx0ICB0ZXh0SW5wdXQ/OiBUZXh0SW5wdXRUaGVtZTtcbiAgIDE0Mlx0ICBmZWVkYmFjaz86IEZlZWRiYWNrVGhlbWU7XG4gICAxNDNcdCAgcG93ZXJlZEJ5VGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ0XHQgIGJhZGdlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ1XHQgIGJ1YmJsZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0Nlx0ICBidWJibGVUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDdcdCAgc2hvd1RpdGxlPzogYm9vbGVhbjtcbiAgIDE0OFx0ICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47XG4gICAxNDlcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAxNTBcdCAgdGl0bGVBdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAxNTFcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAxNTJcdCAgaXNGdWxsUGFnZT86IGJvb2xlYW47XG4gICAxNTNcdCAgZm9vdGVyPzogRm9vdGVyVGhlbWU7XG4gICAxNTRcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgMTU1XHQgIG9ic2VydmVyc0NvbmZpZz86IG9ic2VydmVyc0NvbmZpZ1R5cGU7XG4gICAxNTZcdCAgc3RhcnRlclByb21wdHM/OiBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHsgcHJvbXB0OiBzdHJpbmcgfT47XG4gICAxNTdcdCAgc3RhcnRlclByb21wdEZvbnRTaXplPzogbnVtYmVyO1xuICAgMTU4XHQgIGNsZWFyQ2hhdE9uUmVsb2FkPzogYm9vbGVhbjtcbiAgIDE1OVx0ICBkaXNjbGFpbWVyPzogRGlzY2xhaW1lclBvcFVwVGhlbWU7XG4gICAxNjBcdCAgZGF0ZVRpbWVUb2dnbGU/OiBEYXRlVGltZVRvZ2dsZVRoZW1lO1xuICAgMTYxXHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgMTYyXHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgMTYzXHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgMTY0XHQgIGlzVXNlRkFRPzogYm9vbGVhbjtcbiAgIDE2NVx0ICBmaWxlUGF0aD86IHN0cmluZztcbiAgIDE2Nlx0ICBzdWdnZXN0UXVlc3Rpb25zPzogc3RyaW5nO1xuICAgMTY3XHQgIGV4dGVybmFsRGF0YT86IHN0cmluZztcbiAgIDE2OFx0ICBjYWxsQmFja0Z1bmN0aW9uPzogKGU6IGFueSkgPT4gdm9pZDtcbiAgIDE2OVx0ICBjYWxsQmFja0ljb24/OiBzdHJpbmc7XG4gICAxNzBcdH07XG4gICAxNzFcdFxuICAgMTcyXHRleHBvcnQgdHlwZSBMZWFkc0NvbmZpZyA9IHtcbiAgIDE3M1x0ICBzdGF0dXM6IGJvb2xlYW47XG4gICAxNzRcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAxNzVcdCAgbmFtZT86IGJvb2xlYW47XG4gICAxNzZcdCAgZW1haWw/OiBib29sZWFuO1xuICAgMTc3XHQgIHBob25lPzogYm9vbGVhbjtcbiAgIDE3OFx0ICBzdWNjZXNzTWVzc2FnZT86IHN0cmluZztcbiAgIDE3OVx0fTtcbiAgIDE4MFx0XG4gICAxODFcdGNvbnN0IGRlZmF1bHRXZWxjb21lTWVzc2FnZSA9ICdYaW4gY2jDoG8gdMO0aSBjw7MgdGjhu4MgZ2nDunAgZ8OsIGNobyBi4bqhbj8nO1xuICAgMTgyXHRjb25zdCBzdGF0dXNNc2cgPSB7XG4gICAxODNcdCAgMzogJ8SQYW5nIHjhu60gbMO9Li4uJyxcbiAgIDE4NFx0ICAxMDogJ8SQYW5nIHThuqNpIGThu68gbGnhu4d1LCB2dWkgbMOybmcgxJHhu6NpLi4uJyxcbiAgIDE4NVx0ICA0MDogJ1hpbiBs4buXaSwgaGnhu4duIHThuqFpIGjhu4cgdGjhu5FuZyDEkWFuZyBxdcOhIHThuqNpLCB2dWkgbMOybmcgdGjhu60gbOG6oWkgc2F1LicsXG4gICAxODZcdCAgNTA6ICcnLFxuICAgMTg3XHR9O1xuICAgMTg4XHRcbiAgIDE4OVx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjZmZmZmZmJztcbiAgIDE5MFx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjMzAzMjM1JztcbiAgIDE5MVx0XG4gICAxOTJcdGV4cG9ydCBjb25zdCBCb3QgPSAoYm90UHJvcHM6IEJvdFByb3BzICYgeyBjbGFzcz86IHN0cmluZyB9KSA9PiB7XG4gICAxOTNcdCAgLy8gc2V0IGEgZGVmYXVsdCB2YWx1ZSBmb3Igc2hvd1RpdGxlIGlmIG5vdCBzZXQgYW5kIG1lcmdlIHdpdGggb3RoZXIgcHJvcHNcbiAgIDE5NFx0XG4gICAxOTVcdCAgY29uc3QgcHJvcHMgPSBtZXJnZVByb3BzKHsgc2hvd1RpdGxlOiB0cnVlIH0sIGJvdFByb3BzKTtcbiAgIDE5Nlx0ICBsZXQgY2hhdENvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAxOTdcdCAgbGV0IGJvdHRvbVNwYWNlcjogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAxOThcdCAgbGV0IGJvdENvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAxOTlcdCAgbGV0IGludGVydmFsQ3VycmVudE1zZzogYW55O1xuICAgMjAwXHRcbiAgIDIwMVx0ICBjb25zdCBbc2hvd1Njcm9sbEJ1dHRvbiwgc2V0U2hvd1Njcm9sbEJ1dHRvbl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjAyXHQgIGNvbnN0IFt1c2VySW5wdXQsIHNldFVzZXJJbnB1dF0gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjAzXHQgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyMDRcdCAgY29uc3QgW3NvdXJjZVBvcHVwT3Blbiwgc2V0U291cmNlUG9wdXBPcGVuXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyMDVcdCAgY29uc3QgW3NvdXJjZVBvcHVwU3JjLCBzZXRTb3VyY2VQb3B1cFNyY10gPSBjcmVhdGVTaWduYWwoe30pO1xuICAgMjA2XHQgIGNvbnN0IFtjdXJyZW50U3RhdHVzTXNnLCBzZXRDdXJyZW50U3RhdHVzTXNnXSA9IGNyZWF0ZVNpZ25hbCgnJyk7XG4gICAyMDdcdCAgY29uc3QgW2lzTmV0d29ya0Vycm9yLCBzZXRJc05ldHdvcmtFcnJvcl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjA4XHQgIGNvbnN0IFtuZXR3b3JrRXJyb3JNZXNzYWdlLCBzZXROZXR3b3JrRXJyb3JNZXNzYWdlXSA9IGNyZWF0ZVNpZ25hbCgnJyk7XG4gICAyMDlcdCAgY29uc3QgW3VzZXIsIHNldFVzZXJdID0gY3JlYXRlU2lnbmFsKHsgaWQ6ICcnLCB1c2VybmFtZTogJycsIGVtYWlsOiAnJyB9KTtcbiAgIDIxMFx0ICBjb25zdCBbbWVzc2FnZXMsIHNldE1lc3NhZ2VzXSA9IGNyZWF0ZVNpZ25hbDxNZXNzYWdlVHlwZVtdPihcbiAgIDIxMVx0ICAgIFtcbiAgIDIxMlx0ICAgICAge1xuICAgMjEzXHQgICAgICAgIG1lc3NhZ2U6IHByb3BzLndlbGNvbWVNZXNzYWdlID8/IGRlZmF1bHRXZWxjb21lTWVzc2FnZSxcbiAgIDIxNFx0ICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScgYXMgbWVzc2FnZVR5cGUsXG4gICAyMTVcdCAgICAgIH0sXG4gICAyMTZcdCAgICAgIC4uLihwcm9wcy5zZWNvbmRNZXNzYWdlID8gW3sgbWVzc2FnZTogcHJvcHMuc2Vjb25kTWVzc2FnZSwgdHlwZTogJ2FwaU1lc3NhZ2UnIGFzIG1lc3NhZ2VUeXBlIH1dIDogW10pLFxuICAgMjE3XHQgICAgXSxcbiAgIDIxOFx0ICAgIHsgZXF1YWxzOiBmYWxzZSB9LFxuICAgMjE5XHQgICk7XG4gICAyMjBcdFxuICAgMjIxXHQgIGNvbnN0IFtpc0NoYXRGbG93QXZhaWxhYmxlVG9TdHJlYW0sIHNldElzQ2hhdEZsb3dBdmFpbGFibGVUb1N0cmVhbV0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjIyXHQgIGNvbnN0IFtjaGF0SWQsIHNldENoYXRJZF0gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjIzXHQgIGNvbnN0IFtpc01lc3NhZ2VTdG9wcGluZywgc2V0SXNNZXNzYWdlU3RvcHBpbmddID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIyNFx0ICBjb25zdCBbc3RhcnRlclByb21wdHMsIHNldFN0YXJ0ZXJQcm9tcHRzXSA9IGNyZWF0ZVNpZ25hbDxzdHJpbmdbXT4oW10sIHsgZXF1YWxzOiBmYWxzZSB9KTtcbiAgIDIyNVx0ICBjb25zdCBbY2hhdEZlZWRiYWNrU3RhdHVzLCBzZXRDaGF0RmVlZGJhY2tTdGF0dXNdID0gY3JlYXRlU2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgIDIyNlx0ICBjb25zdCBbZnVsbEZpbGVVcGxvYWQsIHNldEZ1bGxGaWxlVXBsb2FkXSA9IGNyZWF0ZVNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gICAyMjdcdCAgY29uc3QgW3VwbG9hZHNDb25maWcsIHNldFVwbG9hZHNDb25maWddID0gY3JlYXRlU2lnbmFsPFVwbG9hZHNDb25maWc+KCk7XG4gICAyMjhcdCAgY29uc3QgW2xlYWRzQ29uZmlnLCBzZXRMZWFkc0NvbmZpZ10gPSBjcmVhdGVTaWduYWw8TGVhZHNDb25maWc+KCk7XG4gICAyMjlcdCAgY29uc3QgW2lzTGVhZFNhdmVkLCBzZXRJc0xlYWRTYXZlZF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjMwXHQgIGNvbnN0IFtsZWFkRW1haWwsIHNldExlYWRFbWFpbF0gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjMxXHQgIGNvbnN0IFtkaXNjbGFpbWVyUG9wdXBPcGVuLCBzZXREaXNjbGFpbWVyUG9wdXBPcGVuXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyMzJcdCAgY29uc3QgW2Rpc2FibGVJbnB1dCwgc2V0RGlzYWJsZUlucHV0XSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyMzNcdCAgY29uc3QgW2ZpbGVTdW1tYXJ5LCBzZXRGaWxlU3VtbWFyeV0gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjM0XHQgIGNvbnN0IFtmaWxlQ29udGVudCwgc2V0RmlsZUNvbnRlbnRdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIzNVx0ICBjb25zdCBbc3VnZ2VzdFF1ZXN0aW9uLCBzZXRTdWdnZXN0UXVlc3Rpb25dID0gY3JlYXRlU2lnbmFsKFtdKTtcbiAgIDIzNlx0XG4gICAyMzdcdCAgLy8gZHJhZyAmIGRyb3AgZmlsZSBpbnB1dFxuICAgMjM4XHQgIC8vIFRPRE86IGZpeCB0aGlzIHR5cGVcbiAgIDIzOVx0ICBjb25zdCBbcHJldmlld3MsIHNldFByZXZpZXdzXSA9IGNyZWF0ZVNpZ25hbDxGaWxlUHJldmlld1tdPihbXSk7XG4gICAyNDBcdFxuICAgMjQxXHQgIC8vIGF1ZGlvIHJlY29yZGluZ1xuICAgMjQyXHQgIGNvbnN0IFtlbGFwc2VkVGltZSwgc2V0RWxhcHNlZFRpbWVdID0gY3JlYXRlU2lnbmFsKCcwMDowMCcpO1xuICAgMjQzXHQgIGNvbnN0IFtpc1JlY29yZGluZywgc2V0SXNSZWNvcmRpbmddID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDI0NFx0ICBjb25zdCBbcmVjb3JkaW5nTm90U3VwcG9ydGVkLCBzZXRSZWNvcmRpbmdOb3RTdXBwb3J0ZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDI0NVx0ICBjb25zdCBbaXNMb2FkaW5nUmVjb3JkaW5nLCBzZXRJc0xvYWRpbmdSZWNvcmRpbmddID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDI0Nlx0XG4gICAyNDdcdCAgLy8gZm9sbG93LXVwIHByb21wdHNcbiAgIDI0OFx0ICBjb25zdCBbZm9sbG93VXBQcm9tcHRzU3RhdHVzLCBzZXRGb2xsb3dVcFByb21wdHNTdGF0dXNdID0gY3JlYXRlU2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgIDI0OVx0ICBjb25zdCBbZm9sbG93VXBQcm9tcHRzLCBzZXRGb2xsb3dVcFByb21wdHNdID0gY3JlYXRlU2lnbmFsPHN0cmluZ1tdPihbXSk7XG4gICAyNTBcdFxuICAgMjUxXHQgIC8vIGRyYWcgJiBkcm9wXG4gICAyNTJcdCAgY29uc3QgW2lzRHJhZ0FjdGl2ZSwgc2V0SXNEcmFnQWN0aXZlXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNTNcdCAgY29uc3QgW3VwbG9hZGVkRmlsZXMsIHNldFVwbG9hZGVkRmlsZXNdID0gY3JlYXRlU2lnbmFsPHsgZmlsZTogRmlsZTsgdHlwZTogc3RyaW5nIH1bXT4oW10pO1xuICAgMjU0XHRcbiAgIDI1NVx0ICBjcmVhdGVNZW1vKCgpID0+IHtcbiAgIDI1Nlx0ICAgIGNvbnN0IGN1c3RvbWVySWQgPSAocHJvcHMuY2hhdGZsb3dDb25maWc/LnZhcnMgYXMgYW55KT8uY3VzdG9tZXJJZDtcbiAgIDI1N1x0ICAgIHNldENoYXRJZChjdXN0b21lcklkID8gYCR7Y3VzdG9tZXJJZC50b1N0cmluZygpfSske3V1aWR2NCgpfWAgOiB1dWlkdjQoKSk7XG4gICAyNThcdCAgfSk7XG4gICAyNTlcdFxuICAgMjYwXHQgIG9uTW91bnQoKCkgPT4ge1xuICAgMjYxXHQgICAgaWYgKGJvdFByb3BzPy5vYnNlcnZlcnNDb25maWcpIHtcbiAgIDI2Mlx0ICAgICAgY29uc3QgeyBvYnNlcnZlVXNlcklucHV0LCBvYnNlcnZlTG9hZGluZywgb2JzZXJ2ZU1lc3NhZ2VzIH0gPSBib3RQcm9wcy5vYnNlcnZlcnNDb25maWc7XG4gICAyNjNcdCAgICAgIHR5cGVvZiBvYnNlcnZlVXNlcklucHV0ID09PSAnZnVuY3Rpb24nICYmXG4gICAyNjRcdCAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbGlkL3JlYWN0aXZpdHlcbiAgIDI2NVx0ICAgICAgICBjcmVhdGVNZW1vKCgpID0+IHtcbiAgIDI2Nlx0ICAgICAgICAgIG9ic2VydmVVc2VySW5wdXQodXNlcklucHV0KCkpO1xuICAgMjY3XHQgICAgICAgIH0pO1xuICAgMjY4XHQgICAgICB0eXBlb2Ygb2JzZXJ2ZUxvYWRpbmcgPT09ICdmdW5jdGlvbicgJiZcbiAgIDI2OVx0ICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29saWQvcmVhY3Rpdml0eVxuICAgMjcwXHQgICAgICAgIGNyZWF0ZU1lbW8oKCkgPT4ge1xuICAgMjcxXHQgICAgICAgICAgb2JzZXJ2ZUxvYWRpbmcobG9hZGluZygpKTtcbiAgIDI3Mlx0ICAgICAgICB9KTtcbiAgIDI3M1x0ICAgICAgdHlwZW9mIG9ic2VydmVNZXNzYWdlcyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgMjc0XHQgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb2xpZC9yZWFjdGl2aXR5XG4gICAyNzVcdCAgICAgICAgY3JlYXRlTWVtbygoKSA9PiB7XG4gICAyNzZcdCAgICAgICAgICBvYnNlcnZlTWVzc2FnZXMobWVzc2FnZXMoKSk7XG4gICAyNzdcdCAgICAgICAgfSk7XG4gICAyNzhcdCAgICB9XG4gICAyNzlcdFxuICAgMjgwXHQgICAgaWYgKCFib3R0b21TcGFjZXIpIHJldHVybjtcbiAgIDI4MVx0ICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgMjgyXHQgICAgICBjaGF0Q29udGFpbmVyPy5zY3JvbGxUbygwLCBjaGF0Q29udGFpbmVyLnNjcm9sbEhlaWdodCk7XG4gICAyODNcdCAgICB9LCA1MCk7XG4gICAyODRcdCAgfSk7XG4gICAyODVcdFxuICAgMjg2XHQgIGNyZWF0ZUVmZmVjdCgoKSA9PiB7XG4gICAyODdcdCAgICBjb25zdCBjdXJyZW50TWVzc2FnZXMgPSBtZXNzYWdlcygpO1xuICAgMjg4XHRcbiAgIDI4OVx0ICAgIGN1cnJlbnRNZXNzYWdlcz8uZm9yRWFjaCgobWVzc2FnZSkgPT4ge1xuICAgMjkwXHQgICAgICBtZXNzYWdlLmFnZW50UmVhc29uaW5nPy5mb3JFYWNoKChyZWFzb246IGFueSkgPT4ge1xuICAgMjkxXHQgICAgICAgIGlmIChyZWFzb24/LnN0YXRlKSB7XG4gICAyOTJcdCAgICAgICAgICBjb25zdCB7IG5hbWUsIHBob25lX251bWJlciwgZW1haWwsIGlkIH0gPSByZWFzb24uc3RhdGU7XG4gICAyOTNcdCAgICAgICAgICBjb25zdCB1c2VySW5mbzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgMjk0XHQgICAgICAgICAgaWYgKG5hbWUgJiYgbmFtZSAhPT0gJ05vbmUnKSB7XG4gICAyOTVcdCAgICAgICAgICAgIHVzZXJJbmZvLm5hbWUgPSBuYW1lO1xuICAgMjk2XHQgICAgICAgICAgfVxuICAgMjk3XHQgICAgICAgICAgaWYgKHBob25lX251bWJlciAmJiBwaG9uZV9udW1iZXIgIT09ICdOb25lJykge1xuICAgMjk4XHQgICAgICAgICAgICB1c2VySW5mby5waG9uZU51bWJlciA9IHBob25lX251bWJlcjtcbiAgIDI5OVx0ICAgICAgICAgIH1cbiAgIDMwMFx0ICAgICAgICAgIGlmIChlbWFpbCAmJiBlbWFpbCAhPT0gJ05vbmUnKSB7XG4gICAzMDFcdCAgICAgICAgICAgIHVzZXJJbmZvLmVtYWlsID0gZW1haWw7XG4gICAzMDJcdCAgICAgICAgICB9XG4gICAzMDNcdCAgICAgICAgICBpZiAoaWQgJiYgaWQgIT09ICdOb25lJykge1xuICAgMzA0XHQgICAgICAgICAgICB1c2VySW5mby5pZCA9IGlkO1xuICAgMzA1XHQgICAgICAgICAgfVxuICAgMzA2XHQgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHVzZXJJbmZvKS5sZW5ndGggPiAwKSB7XG4gICAzMDdcdCAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjaGF0d29vdDp1c2VySW5mbycsIEpTT04uc3RyaW5naWZ5KHVzZXJJbmZvKSk7XG4gICAzMDhcdCAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjbWN0czp1c2VySW5mbycsIEpTT04uc3RyaW5naWZ5KHVzZXJJbmZvKSk7XG4gICAzMDlcdCAgICAgICAgICB9XG4gICAzMTBcdCAgICAgICAgfVxuICAgMzExXHQgICAgICB9KTtcbiAgIDMxMlx0ICAgIH0pO1xuICAgMzEzXHQgIH0pO1xuICAgMzE0XHRcbiAgIDMxNVx0ICBjb25zdCBzY3JvbGxUb0JvdHRvbSA9ICgpID0+IHtcbiAgIDMxNlx0ICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgMzE3XHQgICAgICBjaGF0Q29udGFpbmVyPy5zY3JvbGxUbygwLCBjaGF0Q29udGFpbmVyLnNjcm9sbEhlaWdodCk7XG4gICAzMThcdCAgICB9LCA1MCk7XG4gICAzMTlcdCAgfTtcbiAgIDMyMFx0XG4gICAzMjFcdCAgLyoqXG4gICAzMjJcdCAgICogQWRkIGVhY2ggY2hhdCBtZXNzYWdlIGludG8gbG9jYWxTdG9yYWdlXG4gICAzMjNcdCAgICovXG4gICAzMjRcdCAgY29uc3QgYWRkQ2hhdE1lc3NhZ2UgPSAoYWxsTWVzc2FnZTogTWVzc2FnZVR5cGVbXSkgPT4ge1xuICAgMzI1XHQgICAgY29uc3QgbWVzc2FnZXMgPSBhbGxNZXNzYWdlLm1hcCgoaXRlbSkgPT4ge1xuICAgMzI2XHQgICAgICBpZiAoaXRlbS5maWxlVXBsb2Fkcykge1xuICAgMzI3XHQgICAgICAgIGNvbnN0IGZpbGVVcGxvYWRzID0gaXRlbT8uZmlsZVVwbG9hZHMubWFwKChmaWxlKSA9PiAoe1xuICAgMzI4XHQgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgMzI5XHQgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgMzMwXHQgICAgICAgICAgbWltZTogZmlsZS5taW1lLFxuICAgMzMxXHQgICAgICAgIH0pKTtcbiAgIDMzMlx0ICAgICAgICByZXR1cm4geyAuLi5pdGVtLCBmaWxlVXBsb2FkcyB9O1xuICAgMzMzXHQgICAgICB9XG4gICAzMzRcdCAgICAgIHJldHVybiBpdGVtO1xuICAgMzM1XHQgICAgfSk7XG4gICAzMzZcdCAgICBzZXRMb2NhbFN0b3JhZ2VDaGF0Zmxvdyhwcm9wcy5jaGF0Zmxvd2lkLCBjaGF0SWQoKSwgeyBjaGF0SGlzdG9yeTogbWVzc2FnZXMgfSk7XG4gICAzMzdcdCAgfTtcbiAgIDMzOFx0XG4gICAzMzlcdCAgLy8gRGVmaW5lIHRoZSBhdWRpb1JlZlxuICAgMzQwXHQgIGxldCBhdWRpb1JlZjogSFRNTEF1ZGlvRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgIDM0MVx0ICAvLyBDRE4gbGluayBmb3IgZGVmYXVsdCByZWNlaXZlIHNvdW5kXG4gICAzNDJcdCAgY29uc3QgZGVmYXVsdFJlY2VpdmVTb3VuZCA9ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvRmxvd2lzZUFJL0Zsb3dpc2VDaGF0RW1iZWRAbGF0ZXN0L3NyYy9hc3NldHMvcmVjZWl2ZV9tZXNzYWdlLm1wMyc7XG4gICAzNDNcdCAgY29uc3QgcGxheVJlY2VpdmVTb3VuZCA9ICgpID0+IHtcbiAgIDM0NFx0ICAgIGlmIChwcm9wcy50ZXh0SW5wdXQ/LnJlY2VpdmVNZXNzYWdlU291bmQpIHtcbiAgIDM0NVx0ICAgICAgbGV0IGF1ZGlvU3JjID0gZGVmYXVsdFJlY2VpdmVTb3VuZDtcbiAgIDM0Nlx0ICAgICAgaWYgKHByb3BzLnRleHRJbnB1dD8ucmVjZWl2ZVNvdW5kTG9jYXRpb24pIHtcbiAgIDM0N1x0ICAgICAgICBhdWRpb1NyYyA9IHByb3BzLnRleHRJbnB1dD8ucmVjZWl2ZVNvdW5kTG9jYXRpb247XG4gICAzNDhcdCAgICAgIH1cbiAgIDM0OVx0ICAgICAgYXVkaW9SZWYgPSBuZXcgQXVkaW8oYXVkaW9TcmMpO1xuICAgMzUwXHQgICAgICBhdWRpb1JlZi5wbGF5KCk7XG4gICAzNTFcdCAgICB9XG4gICAzNTJcdCAgfTtcbiAgIDM1M1x0XG4gICAzNTRcdCAgbGV0IGhhc1NvdW5kUGxheWVkID0gZmFsc2U7XG4gICAzNTVcdFxuICAgMzU2XHQgIGNvbnN0IHVwZGF0ZUxhc3RNZXNzYWdlID0gKHRleHQ6IHN0cmluZykgPT4ge1xuICAgMzU3XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgMzU4XHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICAzNTlcdCAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICAzNjBcdCAgICAgIGlmICghdGV4dCkgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgMzYxXHQgICAgICBhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS5tZXNzYWdlICs9IHRleHQ7XG4gICAzNjJcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnJhdGluZyA9IHVuZGVmaW5lZDtcbiAgIDM2M1x0ICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0uZGF0ZVRpbWUgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAzNjRcdCAgICAgIGlmICghaGFzU291bmRQbGF5ZWQpIHtcbiAgIDM2NVx0ICAgICAgICBwbGF5UmVjZWl2ZVNvdW5kKCk7XG4gICAzNjZcdCAgICAgICAgaGFzU291bmRQbGF5ZWQgPSB0cnVlO1xuICAgMzY3XHQgICAgICB9XG4gICAzNjhcdCAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDM2OVx0ICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgMzcwXHQgICAgfSk7XG4gICAzNzFcdCAgfTtcbiAgIDM3Mlx0XG4gICAzNzNcdCAgY29uc3QgdXBkYXRlRXJyb3JNZXNzYWdlID0gKGVycm9yTWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAzNzRcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICAzNzVcdCAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDM3Nlx0ICAgICAgYWxsTWVzc2FnZXMucHVzaCh7IG1lc3NhZ2U6IHByb3BzLmVycm9yTWVzc2FnZSB8fCBlcnJvck1lc3NhZ2UsIHR5cGU6ICdhcGlNZXNzYWdlJyB9KTtcbiAgIDM3N1x0ICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgMzc4XHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICAzNzlcdCAgICB9KTtcbiAgIDM4MFx0ICB9O1xuICAgMzgxXHRcbiAgIDM4Mlx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZVNvdXJjZURvY3VtZW50cyA9IChzb3VyY2VEb2N1bWVudHM6IGFueSkgPT4ge1xuICAgMzgzXHQgICAgc2V0TWVzc2FnZXMoKGRhdGEpID0+IHtcbiAgIDM4NFx0ICAgICAgY29uc3QgdXBkYXRlZCA9IGRhdGEubWFwKChpdGVtLCBpKSA9PiB7XG4gICAzODVcdCAgICAgICAgaWYgKGkgPT09IGRhdGEubGVuZ3RoIC0gMSkge1xuICAgMzg2XHQgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgc291cmNlRG9jdW1lbnRzIH07XG4gICAzODdcdCAgICAgICAgfVxuICAgMzg4XHQgICAgICAgIHJldHVybiBpdGVtO1xuICAgMzg5XHQgICAgICB9KTtcbiAgIDM5MFx0ICAgICAgYWRkQ2hhdE1lc3NhZ2UodXBkYXRlZCk7XG4gICAzOTFcdCAgICAgIHJldHVybiBbLi4udXBkYXRlZF07XG4gICAzOTJcdCAgICB9KTtcbiAgIDM5M1x0ICB9O1xuICAgMzk0XHRcbiAgIDM5NVx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZVVzZWRUb29scyA9ICh1c2VkVG9vbHM6IGFueVtdKSA9PiB7XG4gICAzOTZcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICAzOTdcdCAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDM5OFx0ICAgICAgaWYgKGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnR5cGUgPT09ICd1c2VyTWVzc2FnZScpIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDM5OVx0ICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0udXNlZFRvb2xzID0gdXNlZFRvb2xzO1xuICAgNDAwXHQgICAgICBhZGRDaGF0TWVzc2FnZShhbGxNZXNzYWdlcyk7XG4gICA0MDFcdCAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDQwMlx0ICAgIH0pO1xuICAgNDAzXHQgIH07XG4gICA0MDRcdFxuICAgNDA1XHQgIGNvbnN0IHVwZGF0ZUxhc3RNZXNzYWdlRmlsZUFubm90YXRpb25zID0gKGZpbGVBbm5vdGF0aW9uczogYW55KSA9PiB7XG4gICA0MDZcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA0MDdcdCAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDQwOFx0ICAgICAgaWYgKGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnR5cGUgPT09ICd1c2VyTWVzc2FnZScpIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDQwOVx0ICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0uZmlsZUFubm90YXRpb25zID0gZmlsZUFubm90YXRpb25zO1xuICAgNDEwXHQgICAgICBhZGRDaGF0TWVzc2FnZShhbGxNZXNzYWdlcyk7XG4gICA0MTFcdCAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDQxMlx0ICAgIH0pO1xuICAgNDEzXHQgIH07XG4gICA0MTRcdFxuICAgNDE1XHQgIGNvbnN0IHVwZGF0ZUxhc3RNZXNzYWdlQWdlbnRSZWFzb25pbmcgPSAoYWdlbnRSZWFzb25pbmc6IHN0cmluZyB8IElBZ2VudFJlYXNvbmluZ1tdKSA9PiB7XG4gICA0MTZcdCAgICBzZXRNZXNzYWdlcygoZGF0YSkgPT4ge1xuICAgNDE3XHQgICAgICBjb25zdCB1cGRhdGVkID0gZGF0YS5tYXAoKGl0ZW0sIGkpID0+IHtcbiAgIDQxOFx0ICAgICAgICBpZiAoaSA9PT0gZGF0YS5sZW5ndGggLSAxKSB7XG4gICA0MTlcdCAgICAgICAgICByZXR1cm4geyAuLi5pdGVtLCBhZ2VudFJlYXNvbmluZzogdHlwZW9mIGFnZW50UmVhc29uaW5nID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UoYWdlbnRSZWFzb25pbmcpIDogYWdlbnRSZWFzb25pbmcgfTtcbiAgIDQyMFx0ICAgICAgICB9XG4gICA0MjFcdCAgICAgICAgcmV0dXJuIGl0ZW07XG4gICA0MjJcdCAgICAgIH0pO1xuICAgNDIzXHQgICAgICBhZGRDaGF0TWVzc2FnZSh1cGRhdGVkKTtcbiAgIDQyNFx0ICAgICAgcmV0dXJuIFsuLi51cGRhdGVkXTtcbiAgIDQyNVx0ICAgIH0pO1xuICAgNDI2XHQgIH07XG4gICA0MjdcdFxuICAgNDI4XHQgIGNvbnN0IHVwZGF0ZUxhc3RNZXNzYWdlQXJ0aWZhY3RzID0gKGFydGlmYWN0czogRmlsZVVwbG9hZFtdKSA9PiB7XG4gICA0MjlcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA0MzBcdCAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDQzMVx0ICAgICAgaWYgKGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnR5cGUgPT09ICd1c2VyTWVzc2FnZScpIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDQzMlx0ICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0uYXJ0aWZhY3RzID0gYXJ0aWZhY3RzO1xuICAgNDMzXHQgICAgICBhZGRDaGF0TWVzc2FnZShhbGxNZXNzYWdlcyk7XG4gICA0MzRcdCAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDQzNVx0ICAgIH0pO1xuICAgNDM2XHQgIH07XG4gICA0MzdcdFxuICAgNDM4XHQgIGNvbnN0IHVwZGF0ZUxhc3RNZXNzYWdlQWN0aW9uID0gKGFjdGlvbjogSUFjdGlvbikgPT4ge1xuICAgNDM5XHQgICAgc2V0TWVzc2FnZXMoKGRhdGEpID0+IHtcbiAgIDQ0MFx0ICAgICAgY29uc3QgdXBkYXRlZCA9IGRhdGEubWFwKChpdGVtLCBpKSA9PiB7XG4gICA0NDFcdCAgICAgICAgaWYgKGkgPT09IGRhdGEubGVuZ3RoIC0gMSkge1xuICAgNDQyXHQgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgYWN0aW9uOiB0eXBlb2YgYWN0aW9uID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UoYWN0aW9uKSA6IGFjdGlvbiB9O1xuICAgNDQzXHQgICAgICAgIH1cbiAgIDQ0NFx0ICAgICAgICByZXR1cm4gaXRlbTtcbiAgIDQ0NVx0ICAgICAgfSk7XG4gICA0NDZcdCAgICAgIGFkZENoYXRNZXNzYWdlKHVwZGF0ZWQpO1xuICAgNDQ3XHQgICAgICByZXR1cm4gWy4uLnVwZGF0ZWRdO1xuICAgNDQ4XHQgICAgfSk7XG4gICA0NDlcdCAgfTtcbiAgIDQ1MFx0XG4gICA0NTFcdCAgY29uc3QgY2xlYXJQcmV2aWV3cyA9ICgpID0+IHtcbiAgIDQ1Mlx0ICAgIC8vIFJldm9rZSB0aGUgZGF0YSB1cmlzIHRvIGF2b2lkIG1lbW9yeSBsZWFrc1xuICAgNDUzXHQgICAgcHJldmlld3MoKS5mb3JFYWNoKChmaWxlKSA9PiBVUkwucmV2b2tlT2JqZWN0VVJMKGZpbGUucHJldmlldykpO1xuICAgNDU0XHQgICAgc2V0UHJldmlld3MoW10pO1xuICAgNDU1XHQgIH07XG4gICA0NTZcdFxuICAgNDU3XHQgIC8vIEhhbmRsZSBlcnJvcnNcbiAgIDQ1OFx0ICBjb25zdCBoYW5kbGVFcnJvciA9IChtZXNzYWdlID0gJ09vcHMhIFRoZXJlIHNlZW1zIHRvIGJlIGFuIGVycm9yLiBQbGVhc2UgdHJ5IGFnYWluLicpID0+IHtcbiAgIDQ1OVx0ICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgIDQ2MFx0ICAgICAgY29uc3QgbWVzc2FnZXM6IE1lc3NhZ2VUeXBlW10gPSBbLi4ucHJldk1lc3NhZ2VzLCB7IG1lc3NhZ2U6IHByb3BzLmVycm9yTWVzc2FnZSB8fCBtZXNzYWdlLCB0eXBlOiAnYXBpTWVzc2FnZScgfV07XG4gICA0NjFcdCAgICAgIGFkZENoYXRNZXNzYWdlKG1lc3NhZ2VzKTtcbiAgIDQ2Mlx0ICAgICAgcmV0dXJuIG1lc3NhZ2VzO1xuICAgNDYzXHQgICAgfSk7XG4gICA0NjRcdCAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgIDQ2NVx0ICAgIHNldERpc2FibGVJbnB1dChmYWxzZSk7XG4gICA0NjZcdCAgICBzZXRVc2VySW5wdXQoJycpO1xuICAgNDY3XHQgICAgc2V0VXBsb2FkZWRGaWxlcyhbXSk7XG4gICA0NjhcdCAgICBzY3JvbGxUb0JvdHRvbSgpO1xuICAgNDY5XHQgIH07XG4gICA0NzBcdFxuICAgNDcxXHQgIGNvbnN0IGhhbmRsZURpc2NsYWltZXJBY2NlcHQgPSAoKSA9PiB7XG4gICA0NzJcdCAgICBzZXREaXNjbGFpbWVyUG9wdXBPcGVuKGZhbHNlKTsgLy8gQ2xvc2UgdGhlIGRpc2NsYWltZXIgcG9wdXBcbiAgIDQ3M1x0ICAgIHNldENvb2tpZSgnY2hhdGJvdERpc2NsYWltZXInLCAndHJ1ZScsIDM2NSk7IC8vIERpc2NsYWltZXIgYWNjZXB0ZWRcbiAgIDQ3NFx0ICB9O1xuICAgNDc1XHRcbiAgIDQ3Nlx0ICBjb25zdCBwcm9tcHRDbGljayA9IChwcm9tcHQ6IHN0cmluZykgPT4ge1xuICAgNDc3XHQgICAgaGFuZGxlU3VibWl0KHByb21wdCk7XG4gICA0NzhcdCAgfTtcbiAgIDQ3OVx0XG4gICA0ODBcdCAgY29uc3QgZm9sbG93VXBQcm9tcHRDbGljayA9IChwcm9tcHQ6IHN0cmluZykgPT4ge1xuICAgNDgxXHQgICAgc2V0Rm9sbG93VXBQcm9tcHRzKFtdKTtcbiAgIDQ4Mlx0ICAgIGhhbmRsZVN1Ym1pdChwcm9tcHQpO1xuICAgNDgzXHQgIH07XG4gICA0ODRcdFxuICAgNDg1XHQgIGNvbnN0IHVwZGF0ZU1ldGFkYXRhID0gKGRhdGE6IGFueSwgaW5wdXQ6IHN0cmluZykgPT4ge1xuICAgNDg2XHQgICAgaWYgKGRhdGEuY2hhdElkKSB7XG4gICA0ODdcdCAgICAgIHNldENoYXRJZChkYXRhLmNoYXRJZCk7XG4gICA0ODhcdCAgICB9XG4gICA0ODlcdFxuICAgNDkwXHQgICAgLy8gc2V0IG1lc3NhZ2UgaWQgdGhhdCBpcyBuZWVkZWQgZm9yIGZlZWRiYWNrXG4gICA0OTFcdCAgICBpZiAoZGF0YS5jaGF0TWVzc2FnZUlkKSB7XG4gICA0OTJcdCAgICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgIDQ5M1x0ICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA0OTRcdCAgICAgICAgaWYgKGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnR5cGUgPT09ICdhcGlNZXNzYWdlJykge1xuICAgNDk1XHQgICAgICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0ubWVzc2FnZUlkID0gZGF0YS5jaGF0TWVzc2FnZUlkO1xuICAgNDk2XHQgICAgICAgIH1cbiAgIDQ5N1x0ICAgICAgICBhZGRDaGF0TWVzc2FnZShhbGxNZXNzYWdlcyk7XG4gICA0OThcdCAgICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgNDk5XHQgICAgICB9KTtcbiAgIDUwMFx0ICAgIH1cbiAgIDUwMVx0XG4gICA1MDJcdCAgICBpZiAoaW5wdXQgPT09ICcnICYmIGRhdGEucXVlc3Rpb24pIHtcbiAgIDUwM1x0ICAgICAgLy8gdGhlIHJlc3BvbnNlIGNvbnRhaW5zIHRoZSBxdWVzdGlvbiBldmVuIGlmIGl0IHdhcyBpbiBhbiBhdWRpbyBmb3JtYXRcbiAgIDUwNFx0ICAgICAgLy8gc28gaWYgaW5wdXQgaXMgZW1wdHkgYnV0IHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgcXVlc3Rpb24sIHVwZGF0ZSB0aGUgdXNlciBtZXNzYWdlIHRvIHNob3cgdGhlIHF1ZXN0aW9uXG4gICA1MDVcdCAgICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgIDUwNlx0ICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA1MDdcdCAgICAgICAgaWYgKGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDJdLnR5cGUgPT09ICdhcGlNZXNzYWdlJykgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgNTA4XHQgICAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDJdLm1lc3NhZ2UgPSBkYXRhLnF1ZXN0aW9uO1xuICAgNTA5XHQgICAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDUxMFx0ICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA1MTFcdCAgICAgIH0pO1xuICAgNTEyXHQgICAgfVxuICAgNTEzXHRcbiAgIDUxNFx0ICAgIGlmIChkYXRhLmZvbGxvd1VwUHJvbXB0cykge1xuICAgNTE1XHQgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA1MTZcdCAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgNTE3XHQgICAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA1MThcdCAgICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0uZm9sbG93VXBQcm9tcHRzID0gZGF0YS5mb2xsb3dVcFByb21wdHM7XG4gICA1MTlcdCAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNTIwXHQgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDUyMVx0ICAgICAgfSk7XG4gICA1MjJcdCAgICAgIHNldEZvbGxvd1VwUHJvbXB0cyhKU09OLnBhcnNlKGRhdGEuZm9sbG93VXBQcm9tcHRzKSk7XG4gICA1MjNcdCAgICB9XG4gICA1MjRcdCAgfTtcbiAgIDUyNVx0XG4gICA1MjZcdCAgY29uc3QgZmV0Y2hSZXNwb25zZUZyb21FdmVudFN0cmVhbSA9IGFzeW5jIChjaGF0Zmxvd2lkOiBzdHJpbmcsIHBhcmFtczogYW55KSA9PiB7XG4gICA1MjdcdCAgICBjb25zdCBjaGF0SWQgPSBwYXJhbXMuY2hhdElkO1xuICAgNTI4XHQgICAgY29uc3QgaW5wdXQgPSBwYXJhbXMucXVlc3Rpb247XG4gICA1MjlcdCAgICBwYXJhbXMuc3RyZWFtaW5nID0gdHJ1ZTtcbiAgIDUzMFx0ICAgIGZldGNoRXZlbnRTb3VyY2UoYCR7cHJvcHMuYXBpSG9zdH0vYXBpL3YxL3ByZWRpY3Rpb24vJHtjaGF0Zmxvd2lkfWAsIHtcbiAgIDUzMVx0ICAgICAgb3BlbldoZW5IaWRkZW46IHRydWUsXG4gICA1MzJcdCAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgNTMzXHQgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwYXJhbXMpLFxuICAgNTM0XHQgICAgICBoZWFkZXJzOiB7XG4gICA1MzVcdCAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgIDUzNlx0ICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgNTM3XHQgICAgICB9LFxuICAgNTM4XHRcbiAgIDUzOVx0ICAgICAgYXN5bmMgb25vcGVuKHJlc3BvbnNlKSB7XG4gICA1NDBcdCAgICAgICAgc2V0Q3VycmVudFN0YXR1c01zZygnxJBhbmcgeOG7rSBsw70uLi4nKTtcbiAgIDU0MVx0ICAgICAgICBpZiAocmVzcG9uc2Uub2sgJiYgcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpPy5zdGFydHNXaXRoKEV2ZW50U3RyZWFtQ29udGVudFR5cGUpKSB7XG4gICA1NDJcdCAgICAgICAgICByZXR1cm47IC8vIGV2ZXJ5dGhpbmcncyBnb29kXG4gICA1NDNcdCAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQyOSkge1xuICAgNTQ0XHQgICAgICAgICAgY29uc3QgZXJyTWVzc2FnZSA9IChhd2FpdCByZXNwb25zZS50ZXh0KCkpID8/ICdUb28gbWFueSByZXF1ZXN0cy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nO1xuICAgNTQ1XHQgICAgICAgICAgaGFuZGxlRXJyb3IoZXJyTWVzc2FnZSk7XG4gICA1NDZcdCAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyTWVzc2FnZSk7XG4gICA1NDdcdCAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMykge1xuICAgNTQ4XHQgICAgICAgICAgY29uc3QgZXJyTWVzc2FnZSA9IChhd2FpdCByZXNwb25zZS50ZXh0KCkpID8/ICdVbmF1dGhvcml6ZWQnO1xuICAgNTQ5XHQgICAgICAgICAgaGFuZGxlRXJyb3IoZXJyTWVzc2FnZSk7XG4gICA1NTBcdCAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyTWVzc2FnZSk7XG4gICA1NTFcdCAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDQwMSkge1xuICAgNTUyXHQgICAgICAgICAgY29uc3QgZXJyTWVzc2FnZSA9IChhd2FpdCByZXNwb25zZS50ZXh0KCkpID8/ICdVbmF1dGhlbnRpY2F0ZWQnO1xuICAgNTUzXHQgICAgICAgICAgaGFuZGxlRXJyb3IoZXJyTWVzc2FnZSk7XG4gICA1NTRcdCAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyTWVzc2FnZSk7XG4gICA1NTVcdCAgICAgICAgfSBlbHNlIHtcbiAgIDU1Nlx0ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgNTU3XHQgICAgICAgIH1cbiAgIDU1OFx0ICAgICAgfSxcbiAgIDU1OVx0ICAgICAgYXN5bmMgb25tZXNzYWdlKGV2KSB7XG4gICA1NjBcdCAgICAgICAgY29uc3QgcGF5bG9hZCA9IEpTT04ucGFyc2UoZXYuZGF0YSk7XG4gICA1NjFcdCAgICAgICAgaWYgKGRpc2FibGVJbnB1dCgpICYmIHBheWxvYWQuZXZlbnQgIT09ICdzdGFydCcpIHtcbiAgIDU2Mlx0ICAgICAgICAgIHNldEN1cnJlbnRTdGF0dXNNc2coJycpO1xuICAgNTYzXHQgICAgICAgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcbiAgIDU2NFx0ICAgICAgICAgIHNldFVzZXJJbnB1dCgnJyk7XG4gICA1NjVcdCAgICAgICAgICBzZXRVcGxvYWRlZEZpbGVzKFtdKTtcbiAgIDU2Nlx0ICAgICAgICB9XG4gICA1NjdcdFxuICAgNTY4XHQgICAgICAgIHN3aXRjaCAocGF5bG9hZC5ldmVudCkge1xuICAgNTY5XHQgICAgICAgICAgY2FzZSAnc3RhcnQnOlxuICAgNTcwXHQgICAgICAgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiBbLi4ucHJldk1lc3NhZ2VzLCB7IG1lc3NhZ2U6ICcnLCB0eXBlOiAnYXBpTWVzc2FnZScgfV0pO1xuICAgNTcxXHQgICAgICAgICAgICBicmVhaztcbiAgIDU3Mlx0ICAgICAgICAgIGNhc2UgJ3JlY2hlY2snOlxuICAgNTczXHQgICAgICAgICAgICBzZXRDdXJyZW50U3RhdHVzTXNnKCdSZWNoZWNraW5nLi4uJyk7XG4gICA1NzRcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNTc1XHQgICAgICAgICAgY2FzZSAndG9rZW4nOlxuICAgNTc2XHQgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsQ3VycmVudE1zZyk7XG4gICA1NzdcdCAgICAgICAgICAgIHNldEN1cnJlbnRTdGF0dXNNc2coJycpO1xuICAgNTc4XHQgICAgICAgICAgICB1cGRhdGVMYXN0TWVzc2FnZShwYXlsb2FkLmRhdGEpO1xuICAgNTc5XHQgICAgICAgICAgICBicmVhaztcbiAgIDU4MFx0ICAgICAgICAgIGNhc2UgJ3NvdXJjZURvY3VtZW50cyc6XG4gICA1ODFcdCAgICAgICAgICAgIHVwZGF0ZUxhc3RNZXNzYWdlU291cmNlRG9jdW1lbnRzKHBheWxvYWQuZGF0YSk7XG4gICA1ODJcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNTgzXHQgICAgICAgICAgY2FzZSAndXNlZFRvb2xzJzpcbiAgIDU4NFx0ICAgICAgICAgICAgdXBkYXRlTGFzdE1lc3NhZ2VVc2VkVG9vbHMocGF5bG9hZC5kYXRhKTtcbiAgIDU4NVx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1ODZcdCAgICAgICAgICBjYXNlICdmaWxlQW5ub3RhdGlvbnMnOlxuICAgNTg3XHQgICAgICAgICAgICB1cGRhdGVMYXN0TWVzc2FnZUZpbGVBbm5vdGF0aW9ucyhwYXlsb2FkLmRhdGEpO1xuICAgNTg4XHQgICAgICAgICAgICBicmVhaztcbiAgIDU4OVx0ICAgICAgICAgIGNhc2UgJ2FnZW50UmVhc29uaW5nJzpcbiAgIDU5MFx0ICAgICAgICAgICAgdXBkYXRlTGFzdE1lc3NhZ2VBZ2VudFJlYXNvbmluZyhwYXlsb2FkLmRhdGEpO1xuICAgNTkxXHQgICAgICAgICAgICBicmVhaztcbiAgIDU5Mlx0ICAgICAgICAgIGNhc2UgJ2FjdGlvbic6XG4gICA1OTNcdCAgICAgICAgICAgIHVwZGF0ZUxhc3RNZXNzYWdlQWN0aW9uKHBheWxvYWQuZGF0YSk7XG4gICA1OTRcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNTk1XHQgICAgICAgICAgY2FzZSAnYXJ0aWZhY3RzJzpcbiAgIDU5Nlx0ICAgICAgICAgICAgdXBkYXRlTGFzdE1lc3NhZ2VBcnRpZmFjdHMocGF5bG9hZC5kYXRhKTtcbiAgIDU5N1x0ICAgICAgICAgICAgYnJlYWs7XG4gICA1OThcdCAgICAgICAgICBjYXNlICdtZXRhZGF0YSc6XG4gICA1OTlcdCAgICAgICAgICAgIHVwZGF0ZU1ldGFkYXRhKHBheWxvYWQuZGF0YSwgaW5wdXQpO1xuICAgNjAwXHQgICAgICAgICAgICBicmVhaztcbiAgIDYwMVx0ICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgIDYwMlx0ICAgICAgICAgICAgdXBkYXRlRXJyb3JNZXNzYWdlKHBheWxvYWQuZGF0YSk7XG4gICA2MDNcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNjA0XHQgICAgICAgICAgY2FzZSAnYWJvcnQnOlxuICAgNjA1XHQgICAgICAgICAgICBhYm9ydE1lc3NhZ2UoKTtcbiAgIDYwNlx0ICAgICAgICAgICAgY2xvc2VSZXNwb25zZSgpO1xuICAgNjA3XHQgICAgICAgICAgICBicmVhaztcbiAgIDYwOFx0ICAgICAgICAgIGNhc2UgJ2VuZCc6XG4gICA2MDlcdCAgICAgICAgICAgIHNldExvY2FsU3RvcmFnZUNoYXRmbG93KGNoYXRmbG93aWQsIGNoYXRJZCk7XG4gICA2MTBcdCAgICAgICAgICAgIGNsb3NlUmVzcG9uc2UoKTtcbiAgIDYxMVx0ICAgICAgICAgICAgYnJlYWs7XG4gICA2MTJcdCAgICAgICAgfVxuICAgNjEzXHQgICAgICB9LFxuICAgNjE0XHQgICAgICBhc3luYyBvbmNsb3NlKCkge1xuICAgNjE1XHQgICAgICAgIGNsb3NlUmVzcG9uc2UoKTtcbiAgIDYxNlx0ICAgICAgICBzZXRDdXJyZW50U3RhdHVzTXNnKCcnKTtcbiAgIDYxN1x0ICAgICAgfSxcbiAgIDYxOFx0ICAgICAgb25lcnJvcihlcnIpIHtcbiAgIDYxOVx0ICAgICAgICBjb25zb2xlLmVycm9yKCdFdmVudFNvdXJjZSBFcnJvcjogJywgZXJyKTtcbiAgIDYyMFx0ICAgICAgICBjbG9zZVJlc3BvbnNlKCk7XG4gICA2MjFcdCAgICAgICAgdGhyb3cgZXJyO1xuICAgNjIyXHQgICAgICB9LFxuICAgNjIzXHQgICAgfSk7XG4gICA2MjRcdCAgfTtcbiAgIDYyNVx0XG4gICA2MjZcdCAgY29uc3QgY2xvc2VSZXNwb25zZSA9ICgpID0+IHtcbiAgIDYyN1x0ICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgNjI4XHQgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcbiAgIDYyOVx0ICAgIHNldFVwbG9hZGVkRmlsZXMoW10pO1xuVG90YWwgbGluZXMgaW4gZmlsZTogMjA5NFxuIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiYWFmZjkyYzktMjA3MC00MTM0LThhYTMtNzdkMDVjNzRlMTFlO3Rvb2x1X3ZydHhfMDFLSGNIV1JmanlpY3V3YUdQV2g1dFo5Ijp7InJlcXVlc3RJZCI6ImFhZmY5MmM5LTIwNzAtNDEzNC04YWEzLTc3ZDA1Yzc0ZTExZSIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFLSGNIV1JmanlpY3V3YUdQV2g1dFo5IiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiU3VjY2Vzc2Z1bGx5IGVkaXRlZCB0aGUgZmlsZSBzcmMvY29uc3RhbnRzLnRzLlxuUmVzdWx0IGZvciBzdHJfcmVwbGFjZSBmb3IgZW50cnkgd2l0aCBpbmRleCBbMV06XG5SZXBsYWNlbWVudCBzdWNjZXNzZnVsLlxuRWRpdGVkIHNlY3Rpb24gYWZ0ZXIgSURFIGF1dG8tZm9ybWF0dGluZyB3YXMgYXBwbGllZDpcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlJztcbiAgICAgMlx0XG4gICAgIDNcdC8qKlxuICAgICA0XHQgKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGF0Ym90IGJ1YmJsZSBjb21wb25lbnQuXG4gICAgIDVcdCAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBhbGwgb3B0aW9uYWwgcHJvcGVydGllcyB3aGlsZSBrZWVwaW5nXG4gICAgIDZcdCAqIHJlcXVpcmVkIHByb3BlcnRpZXMgZXhwbGljaXRseSB1bmRlZmluZWQgdG8gZW5mb3JjZSBwcm9wZXIgY29uZmlndXJhdGlvbi5cbiAgICAgN1x0ICovXG4gICAgIDhcdGV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xuICAgICA5XHQgIC8vIENvcmUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiAtIG11c3QgYmUgc2V0IGJ5IGltcGxlbWVudGVyXG4gICAgMTBcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgMTFcdFxuICAgIDEyXHQgIC8vIEFQSSBjb25maWd1cmF0aW9uXG4gICAgMTNcdCAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICAgIDE0XHQgIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICAgIDE1XHQgIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4gICAgMTZcdFxuICAgIDE3XHQgIC8vIFVJIHRoZW1pbmcgYW5kIGN1c3RvbWl6YXRpb25cbiAgICAxOFx0ICB0aGVtZTogdW5kZWZpbmVkLFxuICAgIDE5XHRcbiAgICAyMFx0ICAvLyBFeHRlcm5hbCBpbnRlZ3JhdGlvbnNcbiAgICAyMVx0ICBjaGF0d29vdFVybDogdW5kZWZpbmVkLFxuICAgIDIyXHQgIHJvb21JZHM6IHt9LFxuICAgIDIzXHRcbiAgICAyNFx0ICAvLyBGZWF0dXJlIGZsYWdzIGFuZCBvcHRpb25hbCBmdW5jdGlvbmFsaXR5XG4gICAgMjVcdCAgaXNVc2VGQVE6IGZhbHNlLFxuICAgIDI2XHRcbiAgICAyN1x0ICAvLyBGaWxlIGFuZCBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAgICAyOFx0ICBmaWxlUGF0aDogJycsXG4gICAgMjlcdCAgc3VnZ2VzdFF1ZXN0aW9uczogJycsXG4gICAgMzBcdCAgZXh0ZXJuYWxEYXRhOiAnJyxcbiAgICAzMVx0ICBjYWxsQmFja0ljb246ICcnLFxuICAgIDMyXHQgIGNhbGxCYWNrRnVuY3Rpb246IHVuZGVmaW5lZCxcbiAgICAzM1x0XG4gICAgMzRcdCAgLy8gTW9uaXRvcmluZyBhbmQgYW5hbHl0aWNzXG4gICAgMzVcdCAgb2JzZXJ2ZXJzQ29uZmlnOiB1bmRlZmluZWQsXG4gICAgMzZcdH07XG4gICAgMzdcdFxuXG5SZXZpZXcgdGhlIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhcyBleHBlY3RlZCAoY29ycmVjdCBpbmRlbnRhdGlvbiwgbm8gZHVwbGljYXRlIGxpbmVzLCBldGMpLlxuRWRpdCB0aGUgZmlsZSBhZ2FpbiBpZiBuZWNlc3NhcnkuXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCI0YTAzMGVhMS04MDkwLTQ2NGItODNmNi00ZjhhYjY3Yzc3NGI7dG9vbHVfdnJ0eF8wMUdpamR0V1hMWG1nNGpRd0syM285U3giOnsicmVxdWVzdElkIjoiNGEwMzBlYTEtODA5MC00NjRiLTgzZjYtNGY4YWI2N2M3NzRiIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMUdpamR0V1hMWG1nNGpRd0syM285U3giLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJIZXJlIGFyZSB0aGUgcmVzdWx0cyBmcm9tIGV4ZWN1dGluZyB0aGUgY29tbWFuZC5cbiAgICAgICAgPHJldHVybi1jb2RlPlxuICAgICAgICAxXG4gICAgICAgIDwvcmV0dXJuLWNvZGU+XG4gICAgICAgIDxzdGRvdXQ+XG4gICAgICAgIFx1MDAxYls/OTAwMWhcdTAwMWJbPzEwMDRoXHUwMDFiWz8yNWxcdTAwMWJbMkpcdTAwMWJbbVx1MDAxYltIXG5cblxuXG5cblxuXG5cdTAwMWJbSFx1MDAxYl0wO0M6XFxXSU5ET1dTXFxTeXN0ZW0zMlxcV2luZG93c1Bvd2VyU2hlbGxcXHYxLjBcXHBvd2Vyc2hlbGwuZXhlXHUwMDA3XHUwMDFiWz8yNWhcdTAwMWJbPzI1bFx1MDAxYls5Nm1zcmMvY29uc3RhbnRzLnRzXHUwMDFiW206XHUwMDFiWzkzbTFcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA1OiBcdTAwMWJbbU1vZHVsZSAnXCIuL2ZlYXR1cmVzL2J1YmJsZVwiJyBoYXMgbm8gZXhwb3J0ZWQgbWVtYmVyICdCdWJibGVQcm9wcycuXHUwMDFiWzdtXHUwMDFiWzM7MUgxXHUwMDFiWzI3bSBpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUnO1x1MDAxYls3bVxuIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+flx1MDAxYls5Nm1cdTAwMWJbNjsxSHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M20xXHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vQnViYmxlJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiWzdtXHUwMDFiWzg7MUgxXHUwMDFiWzI3bSBleHBvcnQgKiBmcm9tICcuL0J1YmJsZSc7XG5cdTAwMWJbPzI1aFxuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblxuRm91bmQgMiBlcnJvcnMgaW4gMiBmaWxlcy5cblxuRXJyb3JzICBGaWxlc1xuICAgICAxICBzcmMvY29uc3RhbnRzLnRzXHUwMDFiWzkwbToxXHUwMDFiW0tcdTAwMWJbbVxuICAgICAxICBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvaW5kZXgudHNcdTAwMWJbOTBtOjFcdTAwMWJbS1x1MDAxYlttXG5cdTAwMWJbMzFtZXJyb3JcdTAwMWJbbVx1MDAxYlsybTpcdTAwMWJbMjJtIFwiXHUwMDFiWzFtdHNjLmNtZFx1MDAxYlsyMm1cIiBleGl0ZWQgd2l0aCBjb2RlIDJcblxuICAgICAgICA8L3N0ZG91dD5cbiAgICAgICAgPHN0ZGVycj5cbiAgICAgICAgXG4gICAgICAgIDwvc3RkZXJyPiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sIjgyYmY2OWNlLWY0N2ItNDdkMi1hMDE1LTY4MDI4MWJhNDFhNzt0b29sdV92cnR4XzAxVmFHazdBWXg3RnNQYlRObktNVUtMaSI6eyJyZXF1ZXN0SWQiOiI4MmJmNjljZS1mNDdiLTQ3ZDItYTAxNS02ODAyODFiYTQxYTciLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxVmFHazdBWXg3RnNQYlRObktNVUtMaSIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IlRoZSBmb2xsb3dpbmcgY29kZSBzZWN0aW9ucyB3ZXJlIHJldHJpZXZlZDpcblBhdGg6IHNyYy9pbmRleC50c1xuICAgICAxXHRleHBvcnQgdHlwZSB7IEJvdFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0JvdCc7XG4gICAgIDJcdGV4cG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZSc7XG4uLi5cblBhdGg6IHNyYy9CdWJibGVDaGF0LnRzeFxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcnXG4gICAgIDJcdGltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCdWJibGVQcm9wc1xuICAgICA1XHRcbiAgICAgNlx0ZGVjbGFyZSBnbG9iYWwge1xuICAgICA3XHQgIG5hbWVzcGFjZSBKU1gge1xuICAgICA4XHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAgOVx0ICAgICAgJ2Zsb3dpc2UtY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEwXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxMVx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDEyXHQgICAgICA+XG4gICAgMTNcdCAgICB9XG4gICAgMTRcdCAgfVxuICAgIDE1XHR9XG4gICAgMTZcdFxuICAgIDE3XHR0eXBlIEJ1YmJsZUVsZW1lbnQgPSBIVE1MRWxlbWVudCAmIFByb3BzXG4gICAgMThcdFxuICAgIDE5XHRleHBvcnQgY29uc3QgQnViYmxlQ2hhdCA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgICAyMFx0ICBjb25zdCByZWYgPSB1c2VSZWY8QnViYmxlRWxlbWVudCB8IG51bGw+KG51bGwpXG4gICAgMjFcdCAgY29uc3QgW2lzSW5pdGlhbGl6ZWQsIHNldElzSW5pdGlhbGl6ZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgMjJcdFxuICAgIDIzXHQgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgMjRcdCAgICA7KGFzeW5jICgpID0+IHtcbiAgICAyNVx0ICAgICAgYXdhaXQgaW1wb3J0KCdjbWN0cy1jLWFnZW50LWVtYmVkZGluZy9kaXN0L3dlYi5qcycpXG4gICAgMjZcdCAgICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSlcbiAgICAyN1x0ICAgIH0pKClcbiAgICAyOFx0ICAgIHJldHVybiAoKSA9PiB7XG4gICAgMjlcdCAgICAgIHJlZi5jdXJyZW50Py5yZW1vdmUoKVxuICAgIDMwXHQgICAgfVxuICAgIDMxXHQgIH0sIFtdKVxuICAgIDMyXHRcbiAgICAzM1x0ICBjb25zdCBhdHRhY2hCdWJibGVUb0RvbSA9IHVzZUNhbGxiYWNrKChwcm9wczogUHJvcHMpID0+IHtcbiAgICAzNFx0ICAgIGNvbnN0IGJ1YmJsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFxuICAgIDM1XHQgICAgICAnZmxvd2lzZS1jaGF0Ym90J1xuICAgIDM2XHQgICAgKSBhcyBCdWJibGVFbGVtZW50XG4gICAgMzdcdCAgICByZWYuY3VycmVudCA9IGJ1YmJsZUVsZW1lbnRcbiAgICAzOFx0ICAgIGluamVjdFByb3BzVG9FbGVtZW50KHJlZi5jdXJyZW50LCBwcm9wcylcbiAgICAzOVx0ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHJlZi5jdXJyZW50KVxuICAgIDQwXHQgIH0sIFtdKVxuICAgIDQxXHRcbiAgICA0Mlx0ICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIDQzXHQgICAgaWYgKCFpc0luaXRpYWxpemVkKSByZXR1cm5cbiAgICA0NFx0ICAgIGlmICghcmVmLmN1cnJlbnQpIGF0dGFjaEJ1YmJsZVRvRG9tKHByb3BzKVxuICAgIDQ1XHQgICAgaW5qZWN0UHJvcHNUb0VsZW1lbnQocmVmLmN1cnJlbnQgYXMgQnViYmxlRWxlbWVudCwgcHJvcHMpXG4gICAgNDZcdCAgfSwgW2F0dGFjaEJ1YmJsZVRvRG9tLCBpc0luaXRpYWxpemVkLCBwcm9wc10pXG4uLi5cblBhdGg6IHNyYy9jb25zdGFudHMudHNcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlJztcbiAgICAgMlx0XG4gICAgIDNcdGV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xuICAgICA0XHQgIGNoYXRmbG93aWQ6ICcnLFxuICAgICA1XHQgIGFwaUhvc3Q6IHVuZGVmaW5lZCxcbiAgICAgNlx0ICBjaGF0d29vdFVybDogdW5kZWZpbmVkLFxuICAgICA3XHQgIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICAgICA4XHQgIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4gICAgIDlcdCAgdGhlbWU6IHVuZGVmaW5lZCxcbiAgICAxMFx0ICBvYnNlcnZlcnNDb25maWc6IHVuZGVmaW5lZCxcbiAgICAxMVx0ICByb29tSWRzOiB7fSxcbiAgICAxMlx0ICBpc1VzZUZBUTogdW5kZWZpbmVkLFxuICAgIDEzXHQgIGZpbGVQYXRoOiAnJyxcbiAgICAxNFx0ICBzdWdnZXN0UXVlc3Rpb25zOiAnJyxcbiAgICAxNVx0ICBleHRlcm5hbERhdGE6ICcnLFxuICAgIDE2XHQgIGNhbGxCYWNrSWNvbjogJycsXG4gICAgMTdcdCAgY2FsbEJhY2tGdW5jdGlvbjogdW5kZWZpbmVkLFxuICAgIDE4XHR9O1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlLnRzeFxuICAgICAxXHRpbXBvcnQgeyBjcmVhdGVTaWduYWwsIFNob3csIHNwbGl0UHJvcHMsIG9uQ2xlYW51cCwgY3JlYXRlRWZmZWN0IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgc3R5bGVzIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pbmRleC5jc3MnO1xuICAgICAzXHRpbXBvcnQgeyBCdWJibGVCdXR0b24gfSBmcm9tICcuL0J1YmJsZUJ1dHRvbic7XG4gICAgIDRcdGltcG9ydCB7IEJ1YmJsZVBhcmFtcyB9IGZyb20gJy4uL3R5cGVzJztcbiAgICAgNVx0aW1wb3J0IHsgQm90LCBCb3RQcm9wcyB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvQm90JztcbiAgICAgNlx0aW1wb3J0IFRvb2x0aXAgZnJvbSAnLi9Ub29sdGlwJztcbiAgICAgN1x0aW1wb3J0IHsgZ2V0QnViYmxlQnV0dG9uU2l6ZSB9IGZyb20gJ0AvdXRpbHMnO1xuICAgICA4XHRcbiAgICAgOVx0Y29uc3QgZGVmYXVsdEJ1dHRvbkNvbG9yID0gJyMzQjgxRjYnO1xuICAgIDEwXHRjb25zdCBkZWZhdWx0SWNvbkNvbG9yID0gJ3doaXRlJztcbiAgICAxMVx0XG4gICAgMTJcdGV4cG9ydCB0eXBlIEJ1YmJsZVByb3BzID0gQm90UHJvcHMgJiBCdWJibGVQYXJhbXM7XG4gICAgMTNcdFxuICAgIDE0XHRleHBvcnQgY29uc3QgQnViYmxlID0gKHByb3BzOiBCdWJibGVQcm9wcykgPT4ge1xuICAgIDE1XHQgIGNvbnN0IFtidWJibGVQcm9wc10gPSBzcGxpdFByb3BzKHByb3BzLCBbJ3RoZW1lJ10pO1xuICAgIDE2XHRcbiAgICAxN1x0ICBjb25zdCBbaXNCb3RPcGVuZWQsIHNldElzQm90T3BlbmVkXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAgMThcdCAgY29uc3QgW2lzQm90U3RhcnRlZCwgc2V0SXNCb3RTdGFydGVkXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAgMTlcdCAgY29uc3QgW2J1dHRvblBvc2l0aW9uLCBzZXRCdXR0b25Qb3NpdGlvbl0gPSBjcmVhdGVTaWduYWwoe1xuICAgIDIwXHQgICAgYm90dG9tOiBidWJibGVQcm9wcy50aGVtZT8uYnV0dG9uPy5ib3R0b20gPz8gMjAsXG4gICAgMjFcdCAgICByaWdodDogYnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8ucmlnaHQgPz8gMjAsXG4gICAgMjJcdCAgfSk7XG4gICAgMjNcdFxuICAgIDI0XHQgIGNvbnN0IG9wZW5Cb3QgPSAoKSA9PiB7XG4gICAgMjVcdCAgICBpZiAoIWlzQm90U3RhcnRlZCgpKSBzZXRJc0JvdFN0YXJ0ZWQodHJ1ZSk7XG4gICAgMjZcdCAgICBzZXRJc0JvdE9wZW5lZCh0cnVlKTtcbiAgICAyN1x0ICB9O1xuICAgIDI4XHRcbiAgICAyOVx0ICBjb25zdCBjbG9zZUJvdCA9ICgpID0+IHtcbiAgICAzMFx0ICAgIHNldElzQm90T3BlbmVkKGZhbHNlKTtcbiAgICAzMVx0ICB9O1xuICAgIDMyXHRcbiAgICAzM1x0ICBjb25zdCB0b2dnbGVCb3QgPSAoKSA9PiB7XG4gICAgMzRcdCAgICBpc0JvdE9wZW5lZCgpID8gY2xvc2VCb3QoKSA6IG9wZW5Cb3QoKTtcbiAgICAzNVx0ICB9O1xuICAgIDM2XHRcbiAgICAzN1x0ICBvbkNsZWFudXAoKCkgPT4ge1xuICAgIDM4XHQgICAgc2V0SXNCb3RTdGFydGVkKGZhbHNlKTtcbiAgICAzOVx0ICB9KTtcbiAgICA0MFx0XG4gICAgNDFcdCAgY29uc3QgYnV0dG9uU2l6ZSA9IGdldEJ1YmJsZUJ1dHRvblNpemUocHJvcHMudGhlbWU/LmJ1dHRvbj8uc2l6ZSk7IC8vIERlZmF1bHQgdG8gNDhweCBpZiBzaXplIGlzIG5vdCBwcm92aWRlZFxuICAgIDQyXHQgIGNvbnN0IGJ1dHRvbkJvdHRvbSA9IHByb3BzLnRoZW1lPy5idXR0b24/LmJvdHRvbSA/PyAyMDtcbiAgICA0M1x0ICBjb25zdCBjaGF0V2luZG93Qm90dG9tID0gYnV0dG9uQm90dG9tICsgYnV0dG9uU2l6ZSArIDEwOyAvLyBBZGp1c3QgdGhlIG9mZnNldCBoZXJlIGZvciBzbGlnaHQgc2hpZnRcbiAgICA0NFx0XG4gICAgNDVcdCAgLy8gQWRkIHZpZXdwb3J0IG1ldGEgdGFnIGR5bmFtaWNhbGx5XG4gICAgNDZcdCAgY3JlYXRlRWZmZWN0KCgpID0+IHtcbiAgICA0N1x0ICAgIGNvbnN0IG1ldGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdtZXRhJyk7XG4gICAgNDhcdCAgICBtZXRhLm5hbWUgPSAndmlld3BvcnQnO1xuICAgIDQ5XHQgICAgbWV0YS5jb250ZW50ID0gJ3dpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAsIGludGVyYWN0aXZlLXdpZGdldD1yZXNpemVzLWNvbnRlbnQnO1xuICAgIDUwXHQgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChtZXRhKTtcbiAgICA1MVx0XG4gICAgNTJcdCAgICByZXR1cm4gKCkgPT4ge1xuICAgIDUzXHQgICAgICBkb2N1bWVudC5oZWFkLnJlbW92ZUNoaWxkKG1ldGEpO1xuICAgIDU0XHQgICAgfTtcbiAgICA1NVx0ICB9KTtcbiAgICA1Nlx0XG4gICAgNTdcdCAgY29uc3Qgc2hvd1Rvb2x0aXAgPSBidWJibGVQcm9wcy50aGVtZT8udG9vbHRpcD8uc2hvd1Rvb2x0aXAgPz8gZmFsc2U7XG4gICAgNThcdFxuICAgIDU5XHQgIHJldHVybiAoXG4gICAgNjBcdCAgICA8PlxuICAgIDYxXHQgICAgICA8U2hvdyB3aGVuPXtwcm9wcy50aGVtZT8uY3VzdG9tQ1NTfT5cbiAgICA2Mlx0ICAgICAgICA8c3R5bGU+e3Byb3BzLnRoZW1lPy5jdXN0b21DU1N9PC9zdHlsZT5cbiAgICA2M1x0ICAgICAgPC9TaG93PlxuICAgIDY0XHQgICAgICA8c3R5bGU+e3N0eWxlc308L3N0eWxlPlxuICAgIDY1XHQgICAgICA8VG9vbHRpcFxuICAgIDY2XHQgICAgICAgIHNob3dUb29sdGlwPXtzaG93VG9vbHRpcCAmJiAhaXNCb3RPcGVuZWQoKX1cbiAgICA2N1x0ICAgICAgICBwb3NpdGlvbj17YnV0dG9uUG9zaXRpb24oKX1cbiAgICA2OFx0ICAgICAgICBidXR0b25TaXplPXtidXR0b25TaXplfVxuICAgIDY5XHQgICAgICAgIHRvb2x0aXBNZXNzYWdlPXtidWJibGVQcm9wcy50aGVtZT8udG9vbHRpcD8udG9vbHRpcE1lc3NhZ2V9XG4gICAgNzBcdCAgICAgICAgdG9vbHRpcEJhY2tncm91bmRDb2xvcj17YnViYmxlUHJvcHMudGhlbWU/LnRvb2x0aXA/LnRvb2x0aXBCYWNrZ3JvdW5kQ29sb3J9XG4gICAgNzFcdCAgICAgICAgdG9vbHRpcFRleHRDb2xvcj17YnViYmxlUHJvcHMudGhlbWU/LnRvb2x0aXA/LnRvb2x0aXBUZXh0Q29sb3J9XG4gICAgNzJcdCAgICAgICAgdG9vbHRpcEZvbnRTaXplPXtidWJibGVQcm9wcy50aGVtZT8udG9vbHRpcD8udG9vbHRpcEZvbnRTaXplfSAvLyBTZXQgdGhlIHRvb2x0aXAgZm9udCBzaXplXG4gICAgNzNcdCAgICAgIC8+XG4gICAgNzRcdCAgICAgIDxCdWJibGVCdXR0b25cbiAgICA3NVx0ICAgICAgICB7Li4uYnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbn1cbiAgICA3Nlx0ICAgICAgICB0b2dnbGVCb3Q9e3RvZ2dsZUJvdH1cbiAgICA3N1x0ICAgICAgICBpc0JvdE9wZW5lZD17aXNCb3RPcGVuZWQoKX1cbiAgICA3OFx0ICAgICAgICBzZXRCdXR0b25Qb3NpdGlvbj17c2V0QnV0dG9uUG9zaXRpb259XG4gICAgNzlcdCAgICAgICAgZHJhZ0FuZERyb3A9e2J1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/LmRyYWdBbmREcm9wID8/IGZhbHNlfVxuICAgIDgwXHQgICAgICAgIGF1dG9PcGVuPXtidWJibGVQcm9wcy50aGVtZT8uYnV0dG9uPy5hdXRvV2luZG93T3Blbj8uYXV0b09wZW4gPz8gZmFsc2V9XG4gICAgODFcdCAgICAgICAgb3BlbkRlbGF5PXtidWJibGVQcm9wcy50aGVtZT8uYnV0dG9uPy5hdXRvV2luZG93T3Blbj8ub3BlbkRlbGF5fVxuICAgIDgyXHQgICAgICAgIGF1dG9PcGVuT25Nb2JpbGU9e2J1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/LmF1dG9XaW5kb3dPcGVuPy5hdXRvT3Blbk9uTW9iaWxlID8/IGZhbHNlfVxuICAgIDgzXHQgICAgICAvPlxuICAgIDg0XHQgICAgICA8ZGl2XG4gICAgODVcdCAgICAgICAgcGFydD1cImJvdFwiXG4gICAgODZcdCAgICAgICAgc3R5bGU9e3tcbiAgICA4N1x0ICAgICAgICAgIGhlaWdodDogYnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmhlaWdodCA/IGAke2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5oZWlnaHQudG9TdHJpbmcoKX1weGAgOiAnY2FsYygxMDAlIC0gMTUwcHgpJyxcbiAgICA4OFx0ICAgICAgICAgIHdpZHRoOiBidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8ud2lkdGggPyBgJHtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8ud2lkdGgudG9TdHJpbmcoKX1weGAgOiB1bmRlZmluZWQsXG4gICAgODlcdCAgICAgICAgICB0cmFuc2l0aW9uOiAndHJhbnNmb3JtIDIwMG1zIGN1YmljLWJlemllcigwLCAxLjIsIDEsIDEpLCBvcGFjaXR5IDE1MG1zIGVhc2Utb3V0JyxcbiAgICA5MFx0ICAgICAgICAgICd0cmFuc2Zvcm0tb3JpZ2luJzogJ2JvdHRvbSByaWdodCcsXG4gICAgOTFcdCAgICAgICAgICB0cmFuc2Zvcm06IGlzQm90T3BlbmVkKCkgPyAnc2NhbGUzZCgxLCAxLCAxKScgOiAnc2NhbGUzZCgwLCAwLCAxKScsXG4gICAgOTJcdCAgICAgICAgICAnYm94LXNoYWRvdyc6ICdyZ2IoMCAwIDAgLyAxNiUpIDBweCA1cHggNDBweCcsXG4gICAgOTNcdCAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGJ1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5iYWNrZ3JvdW5kQ29sb3IgfHwgJyNmZmZmZmYnLFxuICAgIDk0XHQgICAgICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnOiBidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uYmFja2dyb3VuZEltYWdlID8gYHVybCgke2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5iYWNrZ3JvdW5kSW1hZ2V9KWAgOiAnbm9uZScsXG4gICAgOTVcdCAgICAgICAgICAnYmFja2dyb3VuZC1zaXplJzogJ2NvdmVyJyxcbiAgICA5Nlx0ICAgICAgICAgICdiYWNrZ3JvdW5kLXBvc2l0aW9uJzogJ2NlbnRlcicsXG4gICAgOTdcdCAgICAgICAgICAnYmFja2dyb3VuZC1yZXBlYXQnOiAnbm8tcmVwZWF0JyxcbiAgICA5OFx0ICAgICAgICAgICd6LWluZGV4JzogNDI0MjQyNDIsXG4gICAgOTlcdCAgICAgICAgICBib3R0b206IGAke01hdGgubWluKGJ1dHRvblBvc2l0aW9uKCkuYm90dG9tICsgYnV0dG9uU2l6ZSArIDEwLCB3aW5kb3cuaW5uZXJIZWlnaHQgLSBjaGF0V2luZG93Qm90dG9tKX1weGAsXG4gICAxMDBcdCAgICAgICAgICByaWdodDogYCR7TWF0aC5taW4oYnV0dG9uUG9zaXRpb24oKS5yaWdodCwgd2luZG93LmlubmVyV2lkdGggLSA0MTApfXB4YCxcbiAgIDEwMVx0ICAgICAgICB9fVxuICAgMTAyXHQgICAgICAgIGNsYXNzPXtcbiAgIDEwM1x0ICAgICAgICAgIGBmaXhlZCBzbTpyaWdodC01IHJvdW5kZWQtbGcgdy1mdWxsIHNtOnctWzQwMHB4XSBtYXgtaC1bNzA0cHhdYCArXG4gICAxMDRcdCAgICAgICAgICAoaXNCb3RPcGVuZWQoKSA/ICcgb3BhY2l0eS0xJyA6ICcgb3BhY2l0eS0wIHBvaW50ZXItZXZlbnRzLW5vbmUnKSArXG4gICAxMDVcdCAgICAgICAgICBgIGJvdHRvbS0ke2NoYXRXaW5kb3dCb3R0b219cHhgXG4gICAxMDZcdCAgICAgICAgfVxuICAgMTA3XHQgICAgICA+XG4gICAxMDhcdCAgICAgICAgPFNob3cgd2hlbj17aXNCb3RTdGFydGVkKCl9PlxuICAgMTA5XHQgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGgtZnVsbFwiPlxuICAgMTEwXHQgICAgICAgICAgICA8U2hvdyB3aGVuPXtpc0JvdE9wZW5lZCgpfT5cbiAgIDExMVx0ICAgICAgICAgICAgICB7LyogQ3Jvc3MgYnV0dG9uIEZvciBvbmx5IG1vYmlsZSBzY3JlZW4gdXNlIHRoaXMgPFNob3cgd2hlbj17aXNCb3RPcGVuZWQoKSAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA2NDB9PiAgKi99XG4gICAxMTJcdCAgICAgICAgICAgICAgPGJ1dHRvblxuICAgMTEzXHQgICAgICAgICAgICAgICAgb25DbGljaz17Y2xvc2VCb3R9XG4gICAxMTRcdCAgICAgICAgICAgICAgICBjbGFzcz1cInB5LTIgcHItMyBhYnNvbHV0ZSB0b3AtMCByaWdodC1bLThweF0gbS1bNnB4XSBiZy10cmFuc3BhcmVudCB0ZXh0LXdoaXRlIHJvdW5kZWQtZnVsbCB6LTUwIGRpc2FibGVkOm9wYWNpdHktNTAgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOmJyaWdodG5lc3MtMTAwIHRyYW5zaXRpb24tYWxsIGZpbHRlciBob3ZlcjpicmlnaHRuZXNzLTkwIGFjdGl2ZTpicmlnaHRuZXNzLTc1XCJcbiAgIDExNVx0ICAgICAgICAgICAgICAgIHRpdGxlPVwiQ2xvc2UgQ2hhdFwiXG4gICAxMTZcdCAgICAgICAgICAgICAgPlxuICAgMTE3XHQgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+XG4gICAxMThcdCAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAxMTlcdCAgICAgICAgICAgICAgICAgICAgZmlsbD17YnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uaWNvbkNvbG9yID8/IGRlZmF1bHRJY29uQ29sb3J9XG4gICAxMjBcdCAgICAgICAgICAgICAgICAgICAgZD1cIk0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTIgMTkgNi40MXpcIlxuICAgMTIxXHQgICAgICAgICAgICAgICAgICAvPlxuICAgMTIyXHQgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAxMjNcdCAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAxMjRcdCAgICAgICAgICAgIDwvU2hvdz5cbiAgIDEyNVx0ICAgICAgICAgICAgPEJvdFxuICAgMTI2XHQgICAgICAgICAgICAgIGJhZGdlQmFja2dyb3VuZENvbG9yPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uYmFja2dyb3VuZENvbG9yfVxuICAgMTI3XHQgICAgICAgICAgICAgIGJ1YmJsZUJhY2tncm91bmRDb2xvcj17YnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uYmFja2dyb3VuZENvbG9yID8/IGRlZmF1bHRCdXR0b25Db2xvcn1cbiAgIDEyOFx0ICAgICAgICAgICAgICBidWJibGVUZXh0Q29sb3I9e2J1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/Lmljb25Db2xvciA/PyBkZWZhdWx0SWNvbkNvbG9yfVxuICAgMTI5XHQgICAgICAgICAgICAgIHNob3dUaXRsZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnNob3dUaXRsZX1cbiAgIDEzMFx0ICAgICAgICAgICAgICBzaG93QWdlbnRNZXNzYWdlcz17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnNob3dBZ2VudE1lc3NhZ2VzfVxuICAgMTMxXHQgICAgICAgICAgICAgIHRpdGxlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udGl0bGV9XG4gICAxMzJcdCAgICAgICAgICAgICAgdGl0bGVBdmF0YXJTcmM9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py50aXRsZUF2YXRhclNyY31cbiAgIDEzM1x0ICAgICAgICAgICAgICB3ZWxjb21lTWVzc2FnZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LndlbGNvbWVNZXNzYWdlfVxuICAgMTM0XHQgICAgICAgICAgICAgIHNlY29uZE1lc3NhZ2U9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zZWNvbmRNZXNzYWdlfVxuICAgMTM1XHQgICAgICAgICAgICAgIGVycm9yTWVzc2FnZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmVycm9yTWVzc2FnZX1cbiAgIDEzNlx0ICAgICAgICAgICAgICBwb3dlcmVkQnlUZXh0Q29sb3I9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5wb3dlcmVkQnlUZXh0Q29sb3J9XG4gICAxMzdcdCAgICAgICAgICAgICAgdGV4dElucHV0PXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udGV4dElucHV0fVxuICAgMTM4XHQgICAgICAgICAgICAgIGJvdE1lc3NhZ2U9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5ib3RNZXNzYWdlfVxuICAgMTM5XHQgICAgICAgICAgICAgIHVzZXJNZXNzYWdlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udXNlck1lc3NhZ2V9XG4gICAxNDBcdCAgICAgICAgICAgICAgZmVlZGJhY2s9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5mZWVkYmFja31cbiAgIDE0MVx0ICAgICAgICAgICAgICBmb250U2l6ZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmZvbnRTaXplfVxuICAgMTQyXHQgICAgICAgICAgICAgIGZvb3Rlcj17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmZvb3Rlcn1cbiAgIDE0M1x0ICAgICAgICAgICAgICBzb3VyY2VEb2NzVGl0bGU9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zb3VyY2VEb2NzVGl0bGV9XG4gICAxNDRcdCAgICAgICAgICAgICAgc3RhcnRlclByb21wdHM9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zdGFydGVyUHJvbXB0c31cbiAgIDE0NVx0ICAgICAgICAgICAgICBzdGFydGVyUHJvbXB0Rm9udFNpemU9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zdGFydGVyUHJvbXB0Rm9udFNpemV9XG4gICAxNDZcdCAgICAgICAgICAgICAgY2hhdGZsb3dpZD17cHJvcHMuY2hhdGZsb3dpZH1cbiAgIDE0N1x0ICAgICAgICAgICAgICBjaGF0Zmxvd0NvbmZpZz17cHJvcHMuY2hhdGZsb3dDb25maWd9XG4gICAxNDhcdCAgICAgICAgICAgICAgYXBpSG9zdD17cHJvcHMuYXBpSG9zdH1cbiAgIDE0OVx0ICAgICAgICAgICAgICBvblJlcXVlc3Q9e3Byb3BzLm9uUmVxdWVzdH1cbiAgIDE1MFx0ICAgICAgICAgICAgICBvYnNlcnZlcnNDb25maWc9e3Byb3BzLm9ic2VydmVyc0NvbmZpZ31cbiAgIDE1MVx0ICAgICAgICAgICAgICBjbGVhckNoYXRPblJlbG9hZD17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmNsZWFyQ2hhdE9uUmVsb2FkfVxuICAgMTUyXHQgICAgICAgICAgICAgIGRpc2NsYWltZXI9e2J1YmJsZVByb3BzLnRoZW1lPy5kaXNjbGFpbWVyfVxuICAgMTUzXHQgICAgICAgICAgICAgIGRhdGVUaW1lVG9nZ2xlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZGF0ZVRpbWVUb2dnbGV9XG4gICAxNTRcdCAgICAgICAgICAgICAgcmVuZGVySFRNTD17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnJlbmRlckhUTUx9XG4gICAxNTVcdCAgICAgICAgICAgICAgY2hhdHdvb3RVcmw9e3Byb3BzLmNoYXR3b290VXJsfVxuICAgMTU2XHQgICAgICAgICAgICAgIHJvb21JZHM9e3Byb3BzLnJvb21JZHN9XG4gICAxNTdcdCAgICAgICAgICAgICAgaXNVc2VGQVE9e3Byb3BzLmlzVXNlRkFRfVxuICAgMTU4XHQgICAgICAgICAgICAgIGZpbGVQYXRoPXtwcm9wcy5maWxlUGF0aH1cbiAgIDE1OVx0ICAgICAgICAgICAgICBzdWdnZXN0UXVlc3Rpb25zPXtwcm9wcy5zdWdnZXN0UXVlc3Rpb25zfVxuICAgMTYwXHQgICAgICAgICAgICAgIGV4dGVybmFsRGF0YT17cHJvcHMuZXh0ZXJuYWxEYXRhfVxuICAgMTYxXHQgICAgICAgICAgICAgIGNhbGxCYWNrRnVuY3Rpb249e3Byb3BzLmNhbGxCYWNrRnVuY3Rpb259XG4gICAxNjJcdCAgICAgICAgICAgICAgY2FsbEJhY2tJY29uPXtwcm9wcy5jYWxsQmFja0ljb259XG4gICAxNjNcdCAgICAgICAgICAgIC8+XG4gICAxNjRcdCAgICAgICAgICA8L2Rpdj5cbiAgIDE2NVx0ICAgICAgICA8L1Nob3c+XG4gICAxNjZcdCAgICAgIDwvZGl2PlxuICAgMTY3XHQgICAgPC8+XG4gICAxNjhcdCAgKTtcbiAgIDE2OVx0fTtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9HdWVzdEJ1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgRm9yLCBTaG93LCBvbk1vdW50IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyBBdmF0YXIgfSBmcm9tICcuLi9hdmF0YXJzL0F2YXRhcic7XG4gICAgIDNcdGltcG9ydCB7IE1hcmtlZCB9IGZyb20gJ0B0cy1zdGFjay9tYXJrZG93bic7XG4gICAgIDRcdGltcG9ydCB7IEZpbGVVcGxvYWQsIE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi4vQm90JztcbiAgICAgNVx0aW1wb3J0IHsgQXR0YWNobWVudEljb24gfSBmcm9tICcuLi9pY29ucyc7XG4gICAgIDZcdFxuICAgICA3XHR0eXBlIFByb3BzID0ge1xuICAgICA4XHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgICA5XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgMTBcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDExXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDEyXHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDEzXHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAxNFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE2XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDE3XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDE4XHR9O1xuICAgIDE5XHRcbiAgICAyMFx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjM0I4MUY2JztcbiAgICAyMVx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjZmZmZmZmJztcbiAgICAyMlx0Y29uc3QgZGVmYXVsdEZvbnRTaXplID0gMTY7XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGVCdXR0b24udHN4XG4gICAgIDFcdGltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgY3JlYXRlRWZmZWN0LCBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyBpc05vdERlZmluZWQsIGdldEJ1YmJsZUJ1dHRvblNpemUgfSBmcm9tICdAL3V0aWxzL2luZGV4JztcbiAgICAgM1x0aW1wb3J0IHsgQnV0dG9uVGhlbWUgfSBmcm9tICcuLi90eXBlcyc7XG4gICAgIDRcdFxuICAgICA1XHR0eXBlIFByb3BzID0gQnV0dG9uVGhlbWUgJiB7XG4gICAgIDZcdCAgaXNCb3RPcGVuZWQ6IGJvb2xlYW47XG4gICAgIDdcdCAgdG9nZ2xlQm90OiAoKSA9PiB2b2lkO1xuICAgICA4XHQgIHNldEJ1dHRvblBvc2l0aW9uOiAocG9zaXRpb246IHsgYm90dG9tOiBudW1iZXI7IHJpZ2h0OiBudW1iZXIgfSkgPT4gdm9pZDtcbiAgICAgOVx0ICBkcmFnQW5kRHJvcDogYm9vbGVhbjtcbiAgICAxMFx0ICBhdXRvT3Blbj86IGJvb2xlYW47IC8vIE9wdGlvbmFsIHBhcmFtZXRlciB0byBjb250cm9sIGF1dG9tYXRpYyB3aW5kb3cgb3BlbmluZ1xuICAgIDExXHQgIG9wZW5EZWxheT86IG51bWJlcjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBkZWxheSB0aW1lIGluIHNlY29uZHNcbiAgICAxMlx0ICBhdXRvT3Blbk9uTW9iaWxlPzogYm9vbGVhbjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBvcGVuaW5nIG9uIG1vYmlsZVxuICAgIDEzXHR9O1xuICAgIDE0XHRcbiAgICAxNVx0Y29uc3QgZGVmYXVsdEJ1dHRvbkNvbG9yID0gJyMzQjgxRjYnO1xuICAgIDE2XHRjb25zdCBkZWZhdWx0SWNvbkNvbG9yID0gJ3doaXRlJztcbiAgICAxN1x0Y29uc3QgZGVmYXVsdEJvdHRvbSA9IDIwO1xuICAgIDE4XHRjb25zdCBkZWZhdWx0UmlnaHQgPSAyMDtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9Tb3VyY2VCdWJibGUudHN4XG4gICAgIDFcdHR5cGUgUHJvcHMgPSB7XG4gICAgIDJcdCAgcGFnZUNvbnRlbnQ6IHN0cmluZztcbiAgICAgM1x0ICBtZXRhZGF0YTogb2JqZWN0O1xuICAgICA0XHQgIG9uU291cmNlQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICAgICA1XHQgIHNyYz86IGFueTtcbiAgICAgNlx0fTtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9BZ2VudFJlYXNvbmluZ0J1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgRm9yLCBvbk1vdW50IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyBNYXJrZWQgfSBmcm9tICdAdHMtc3RhY2svbWFya2Rvd24nO1xuICAgICAzXHRpbXBvcnQgeyBGaWxlVXBsb2FkIH0gZnJvbSAnLi4vQm90JztcbiAgICAgNFx0aW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbiAgICAgNVx0XG4gICAgIDZcdHR5cGUgUHJvcHMgPSB7XG4gICAgIDdcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgOFx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDlcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMTBcdCAgYWdlbnROYW1lOiBzdHJpbmc7XG4gICAgMTFcdCAgYWdlbnRNZXNzYWdlOiBzdHJpbmc7XG4gICAgMTJcdCAgYWdlbnRBcnRpZmFjdHM/OiBGaWxlVXBsb2FkW107XG4gICAgMTNcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE0XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAxNlx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAxN1x0fTtcbiAgICAxOFx0XG4gICAgMTlcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnI2Y3ZjhmZic7XG4gICAgMjBcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnIzMwMzIzNSc7XG4gICAgMjFcdGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IDE2O1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL3R5cGVzLnRzXG4gICAgIDFcdGV4cG9ydCB0eXBlIEJ1YmJsZVBhcmFtcyA9IHtcbiAgICAgMlx0ICB0aGVtZT86IEJ1YmJsZVRoZW1lO1xuICAgICAzXHR9O1xuICAgICA0XHRcbiAgICAgNVx0ZXhwb3J0IHR5cGUgQnViYmxlVGhlbWUgPSB7XG4gICAgIDZcdCAgY2hhdFdpbmRvdz86IENoYXRXaW5kb3dUaGVtZTtcbiAgICAgN1x0ICBidXR0b24/OiBCdXR0b25UaGVtZTtcbiAgICAgOFx0ICB0b29sdGlwPzogVG9vbFRpcFRoZW1lO1xuICAgICA5XHQgIGRpc2NsYWltZXI/OiBEaXNjbGFpbWVyUG9wVXBUaGVtZTtcbiAgICAxMFx0ICBjdXN0b21DU1M/OiBzdHJpbmc7XG4gICAgMTFcdH07XG4gICAgMTJcdFxuICAgIDEzXHRleHBvcnQgdHlwZSBUZXh0SW5wdXRUaGVtZSA9IHtcbiAgICAxNFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE2XHQgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIDE3XHQgIHNlbmRCdXR0b25Db2xvcj86IHN0cmluZztcbiAgICAxOFx0ICBtYXhDaGFycz86IG51bWJlcjtcbiAgICAxOVx0ICBtYXhDaGFyc1dhcm5pbmdNZXNzYWdlPzogc3RyaW5nO1xuICAgIDIwXHQgIGF1dG9Gb2N1cz86IGJvb2xlYW47XG4gICAgMjFcdCAgc2VuZE1lc3NhZ2VTb3VuZD86IGJvb2xlYW47XG4gICAgMjJcdCAgc2VuZFNvdW5kTG9jYXRpb24/OiBzdHJpbmc7XG4gICAgMjNcdCAgcmVjZWl2ZU1lc3NhZ2VTb3VuZD86IGJvb2xlYW47XG4gICAgMjRcdCAgcmVjZWl2ZVNvdW5kTG9jYXRpb24/OiBzdHJpbmc7XG4gICAgMjVcdH07XG4gICAgMjZcdFxuICAgIDI3XHRleHBvcnQgdHlwZSBVc2VyTWVzc2FnZVRoZW1lID0ge1xuICAgIDI4XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAyOVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzBcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMzFcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDMyXHR9O1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvVG9vbHRpcC50c3hcbiAgICAgMVx0aW1wb3J0IHsgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0XG4gICAgIDNcdGNvbnN0IGRlZmF1bHRUb29sdGlwTWVzc2FnZSA9ICdIaSBUaGVyZSDwn5GLISc7XG4gICAgIDRcdGNvbnN0IGRlZmF1bHRUb29sdGlwQmFja2dyb3VuZENvbG9yID0gJ2JsYWNrJztcbiAgICAgNVx0Y29uc3QgZGVmYXVsdFRvb2x0aXBUZXh0Q29sb3IgPSAnd2hpdGUnO1xuICAgICA2XHRjb25zdCBkZWZhdWx0VG9vbHRpcEZvbnRTaXplID0gMTY7IC8vIERlZmF1bHQgZm9udCBzaXplIGZvciB0b29sdGlwXG4gICAgIDdcdFxuICAgICA4XHR0eXBlIFRvb2x0aXBQcm9wcyA9IHtcbiAgICAgOVx0ICBzaG93VG9vbHRpcDogYm9vbGVhbjtcbiAgICAxMFx0ICBwb3NpdGlvbjogeyBib3R0b206IG51bWJlcjsgcmlnaHQ6IG51bWJlciB9O1xuICAgIDExXHQgIGJ1dHRvblNpemU6IG51bWJlcjtcbiAgICAxMlx0ICB0b29sdGlwTWVzc2FnZT86IHN0cmluZztcbiAgICAxM1x0ICB0b29sdGlwQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE0XHQgIHRvb2x0aXBUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgdG9vbHRpcEZvbnRTaXplPzogbnVtYmVyOyAvLyBBZGQgdG9vbHRpcEZvbnRTaXplIHRvIHByb3BzXG4gICAgMTZcdH07XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvTGVhZENhcHR1cmVCdWJibGUudHN4XG4gICAgIDFcdGltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG4gICAgIDNcdGltcG9ydCB7IEZvcm1FdmVudCwgTGVhZHNDb25maWcsIE1lc3NhZ2VUeXBlIH0gZnJvbSAnQC9jb21wb25lbnRzL0JvdCc7XG4gICAgIDRcdGltcG9ydCB7IGFkZExlYWRRdWVyeSwgTGVhZENhcHR1cmVJbnB1dCB9IGZyb20gJ0AvcXVlcmllcy9zZW5kTWVzc2FnZVF1ZXJ5JztcbiAgICAgNVx0aW1wb3J0IHsgU2F2ZUxlYWRCdXR0b24gfSBmcm9tICdAL2NvbXBvbmVudHMvYnV0dG9ucy9MZWFkQ2FwdHVyZUJ1dHRvbnMnO1xuICAgICA2XHRpbXBvcnQgeyBBdmF0YXIgfSBmcm9tICdAL2NvbXBvbmVudHMvYXZhdGFycy9BdmF0YXInO1xuICAgICA3XHRpbXBvcnQgeyBnZXRMb2NhbFN0b3JhZ2VDaGF0Zmxvdywgc2V0TG9jYWxTdG9yYWdlQ2hhdGZsb3cgfSBmcm9tICdAL3V0aWxzJztcbiAgICAgOFx0XG4gICAgIDlcdHR5cGUgUHJvcHMgPSB7XG4gICAgMTBcdCAgbWVzc2FnZTogTWVzc2FnZVR5cGU7XG4gICAgMTFcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDEyXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDEzXHQgIGxlYWRzQ29uZmlnPzogTGVhZHNDb25maWc7XG4gICAgMTRcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAxNVx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAxNlx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMTdcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE4XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxOVx0ICBzZW5kQnV0dG9uQ29sb3I/OiBzdHJpbmc7XG4gICAgMjBcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMjFcdCAgaXNMZWFkU2F2ZWQ6IGJvb2xlYW47XG4gICAgMjJcdCAgc2V0SXNMZWFkU2F2ZWQ6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAyM1x0ICBzZXRMZWFkRW1haWw6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICAgIDI0XHR9O1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL2luZGV4LnRzXG4gICAgIDFcdGV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cyc7XG4uLi5cblBhdGg6IHNyYy9GdWxsUGFnZUNoYXQudHN4XG4gICAgIDFcdGltcG9ydCB0eXBlIHsgQm90UHJvcHMgfSBmcm9tICdjbWN0cy1jLWFnZW50LWVtYmVkZGluZydcbiAgICAgMlx0aW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCb3RQcm9wcyAmIHtcbiAgICAgNVx0ICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgNlx0ICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgICAgN1x0fVxuICAgICA4XHRcbiAgICAgOVx0ZGVjbGFyZSBnbG9iYWwge1xuICAgIDEwXHQgIG5hbWVzcGFjZSBKU1gge1xuICAgIDExXHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAxMlx0ICAgICAgJ2Zsb3dpc2UtZnVsbGNoYXRib3QnOiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcbiAgICAxM1x0ICAgICAgICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD4sXG4gICAgMTRcdCAgICAgICAgSFRNTEVsZW1lbnRcbiAgICAxNVx0ICAgICAgPiAmIHsgY2xhc3M/OiBzdHJpbmcgfVxuICAgIDE2XHQgICAgfVxuICAgIDE3XHQgIH1cbiAgICAxOFx0fVxuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL0Z1bGwudHN4XG4gICAgIDFcdGltcG9ydCBzdHlsZXMgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2luZGV4LmNzcyc7XG4gICAgIDJcdGltcG9ydCB7IEJvdCwgQm90UHJvcHMgfSBmcm9tICdAL2NvbXBvbmVudHMvQm90JztcbiAgICAgM1x0aW1wb3J0IHsgQnViYmxlUGFyYW1zIH0gZnJvbSAnQC9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgICA0XHRpbXBvcnQgeyBjcmVhdGVTaWduYWwsIG9uQ2xlYW51cCwgb25Nb3VudCwgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgNVx0XG4gICAgIDZcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAgN1x0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgIDhcdFxuICAgICA5XHRleHBvcnQgdHlwZSBGdWxsUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcztcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL2luZGV4LnRzXG4gICAgIDFcdGV4cG9ydCAqIGZyb20gJy4vQnViYmxlJztcbi4uLlxuUGF0aDogc3JjL3dpbmRvdy50c1xuICAgICAxXHRpbXBvcnQgeyBvYnNlcnZlcnNDb25maWdUeXBlIH0gZnJvbSAnLi9jb21wb25lbnRzL0JvdCc7XG4gICAgIDJcdGltcG9ydCB7IEJ1YmJsZVRoZW1lIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgICAzXHRcbiAgICAgNFx0LyogZXNsaW50LWRpc2FibGUgc29saWQvcmVhY3Rpdml0eSAqL1xuICAgICA1XHR0eXBlIEJvdFByb3BzID0ge1xuICAgICA2XHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAgN1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgICA4XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAgOVx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIDEwXHQgIG9ic2VydmVyc0NvbmZpZz86IG9ic2VydmVyc0NvbmZpZ1R5cGU7XG4gICAgMTFcdCAgdGhlbWU/OiBCdWJibGVUaGVtZTtcbiAgICAxMlx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgICAxM1x0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICAxNFx0ICBpc1VzZUZBUT86IHVuZGVmaW5lZDtcbiAgICAxNVx0fTtcbi4uLlxuUGF0aDogc3JjL3JlZ2lzdGVyLnRzeFxuICAgICAxXHRpbXBvcnQgeyBjdXN0b21FbGVtZW50IH0gZnJvbSAnc29saWQtZWxlbWVudCc7XG4gICAgIDJcdGltcG9ydCB7IGRlZmF1bHRCb3RQcm9wcyB9IGZyb20gJy4vY29uc3RhbnRzJztcbiAgICAgM1x0aW1wb3J0IHsgQnViYmxlIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUnO1xuICAgICA0XHRpbXBvcnQgeyBGdWxsIH0gZnJvbSAnLi9mZWF0dXJlcy9mdWxsJztcbiAgICAgNVx0XG4gICAgIDZcdGV4cG9ydCBjb25zdCByZWdpc3RlcldlYkNvbXBvbmVudHMgPSAoKSA9PiB7XG4gICAgIDdcdCAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgIDhcdCAgLy8gQHRzLWV4cGVjdC1lcnJvciBlbGVtZW50IGluY29yZWN0IHR5cGVcbiAgICAgOVx0ICBjdXN0b21FbGVtZW50KCdmbG93aXNlLWZ1bGxjaGF0Ym90JywgZGVmYXVsdEJvdFByb3BzLCBGdWxsKTtcbiAgICAxMFx0ICBjdXN0b21FbGVtZW50KCdmbG93aXNlLWNoYXRib3QnLCBkZWZhdWx0Qm90UHJvcHMsIEJ1YmJsZSk7XG4gICAgMTFcdH07XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9wb3B1cC9jb21wb25lbnRzL2luZGV4LnRzXG4gICAgIDFcdGV4cG9ydCAqIGZyb20gJy4vUG9wdXAnO1xuICAgICAyXHRleHBvcnQgKiBmcm9tICcuL0Rpc2NsYWltZXJQb3B1cCc7XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2luZGV4LnRzXG4gICAgIDFcdGV4cG9ydCAqIGZyb20gJy4vYnV0dG9ucy9TZW5kQnV0dG9uJztcbiAgICAgMlx0ZXhwb3J0ICogZnJvbSAnLi9UeXBpbmdCdWJibGUnO1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL2luZGV4LnRzXG4gICAgIDFcdGV4cG9ydCAqIGZyb20gJy4vRnVsbCc7XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvQm90QnViYmxlLnRzeFxuLi4uXG4gICAgMThcdFxuICAgIDE5XHR0eXBlIFByb3BzID0ge1xuICAgIDIwXHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgIDIxXHQgIHNldE1lc3NhZ2VzPzogYW55O1xuICAgIDIyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAyM1x0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAyNFx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDI1XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAyNlx0ICBmaWxlQW5ub3RhdGlvbnM/OiBhbnk7XG4gICAgMjdcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMjhcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDI5XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzFcdCAgY2hhdEZlZWRiYWNrU3RhdHVzPzogYm9vbGVhbjtcbiAgICAzMlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAzM1x0ICBmZWVkYmFja0NvbG9yPzogc3RyaW5nO1xuICAgIDM0XHQgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICAzNVx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAgLi4uIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiYWEzY2MzMjgtMDcyMC00NjBjLTg5YWItMzE2YjU3MWM0MTI4O3Rvb2x1X3ZydHhfMDFYaHVVOHlHRTZ1N202dFNGWEhLRUdwIjp7InJlcXVlc3RJZCI6ImFhM2NjMzI4LTA3MjAtNDYwYy04OWFiLTMxNmI1NzFjNDEyOCIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFYaHVVOHlHRTZ1N202dFNGWEhLRUdwIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiU3VjY2Vzc2Z1bGx5IGVkaXRlZCB0aGUgZmlsZSBzcmMvY29uc3RhbnRzLnRzLlxuUmVzdWx0IGZvciBzdHJfcmVwbGFjZSBmb3IgZW50cnkgd2l0aCBpbmRleCBbMV06XG5SZXBsYWNlbWVudCBzdWNjZXNzZnVsLlxuRWRpdGVkIHNlY3Rpb24gYWZ0ZXIgSURFIGF1dG8tZm9ybWF0dGluZyB3YXMgYXBwbGllZDpcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlJztcbiAgICAgMlx0XG4gICAgIDNcdC8qKlxuICAgICA0XHQgKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGF0Ym90IGJ1YmJsZSBjb21wb25lbnQuXG4gICAgIDVcdCAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBhbGwgb3B0aW9uYWwgcHJvcGVydGllcyB3aGlsZSBrZWVwaW5nXG5cblJldmlldyB0aGUgY2hhbmdlcyBhbmQgbWFrZSBzdXJlIHRoZXkgYXJlIGFzIGV4cGVjdGVkIChjb3JyZWN0IGluZGVudGF0aW9uLCBubyBkdXBsaWNhdGUgbGluZXMsIGV0YykuXG5FZGl0IHRoZSBmaWxlIGFnYWluIGlmIG5lY2Vzc2FyeS5cbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sIjJlMjFkN2VlLTdlM2UtNDEyMS1iYTA3LWFmZGNmMGRmMDVlZDt0b29sdV92cnR4XzAxWWM1MWRReVdackRLSmtzaEc2SDVVUSI6eyJyZXF1ZXN0SWQiOiIyZTIxZDdlZS03ZTNlLTQxMjEtYmEwNy1hZmRjZjBkZjA1ZWQiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxWWM1MWRReVdackRLSmtzaEc2SDVVUSIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkhlcmUgYXJlIHRoZSByZXN1bHRzIGZyb20gZXhlY3V0aW5nIHRoZSBjb21tYW5kLlxuICAgICAgICA8cmV0dXJuLWNvZGU+XG4gICAgICAgIDFcbiAgICAgICAgPC9yZXR1cm4tY29kZT5cbiAgICAgICAgPHN0ZG91dD5cbiAgICAgICAgXHUwMDFiWz85MDAxaFx1MDAxYls/MTAwNGhcdTAwMWJbPzI1bFx1MDAxYlsySlx1MDAxYlttXHUwMDFiW0hcblxuXG5cblxuXG5cblx1MDAxYltIXHUwMDFiXTA7QzpcXFdJTkRPV1NcXFN5c3RlbTMyXFxXaW5kb3dzUG93ZXJTaGVsbFxcdjEuMFxccG93ZXJzaGVsbC5leGVcdTAwMDdcdTAwMWJbPzI1aFx1MDAxYls/MjVsXHUwMDFiWzk2bXNyYy9jb25zdGFudHMudHNcdTAwMWJbbTpcdTAwMWJbOTNtMVx1MDAxYlttOlx1MDAxYls5M20zNCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZScgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZS50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYls3bVx1MDAxYlszOzFIMVx1MDAxYlsyN20gaW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlJztcdTAwMWJbN21cbiBcdTAwMWJbMjdtXHUwMDFiWzM0WFx1MDAxYls5MW1cdTAwMWJbMzRDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYlttXHUwMDFiWzc7MUhGb3VuZCAxIGVycm9yIGluIHNyYy9jb25zdGFudHMudHNcdTAwMWJbOTBtOjFcblx1MDAxYls/MjVoXHUwMDFiW21cblx1MDAxYlszMW1lcnJvclx1MDAxYlttXHUwMDFiWzJtOlx1MDAxYlsyMm0gXCJcdTAwMWJbMW10c2MuY21kXHUwMDFiWzIybVwiIGV4aXRlZCB3aXRoIGNvZGUgMlxuXG4gICAgICAgIDwvc3Rkb3V0PlxuICAgICAgICA8c3RkZXJyPlxuICAgICAgICBcbiAgICAgICAgPC9zdGRlcnI+IiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiMzM3ZDI2YmUtY2RlOC00YTAxLTliM2QtMjIwM2QyNjNlZWIzO3Rvb2x1X3ZydHhfMDFZMlhhNHBwYzY5UzlZNHJvR2ZaZU5zIjp7InJlcXVlc3RJZCI6IjMzN2QyNmJlLWNkZTgtNGEwMS05YjNkLTIyMDNkMjYzZWViMyIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFZMlhhNHBwYzY5UzlZNHJvR2ZaZU5zIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiSGVyZSdzIHRoZSByZXN1bHQgb2YgcnVubmluZyBgY2F0IC1uYCBvbiBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvaW5kZXgudHM6XG4gICAgIDFcdGV4cG9ydCAqIGZyb20gJy4vQnViYmxlJztcbiAgICAgMlx0XG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiAyXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCIxMjU1YTVlMC1lMWU1LTQ2NDktYTVjMy1mNGQ2NzkyYjYwNzQ7dG9vbHVfdnJ0eF8wMVQ5bnhBeWZIVFp4ejlUWWNkamVTZzUiOnsicmVxdWVzdElkIjoiMTI1NWE1ZTAtZTFlNS00NjQ5LWE1YzMtZjRkNjc5MmI2MDc0IiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMVQ5bnhBeWZIVFp4ejlUWWNkamVTZzUiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJTdWNjZXNzZnVsbHkgZWRpdGVkIHRoZSBmaWxlIHNyYy9jb25zdGFudHMudHMuXG5SZXN1bHQgZm9yIHN0cl9yZXBsYWNlIGZvciBlbnRyeSB3aXRoIGluZGV4IFsxXTpcblJlcGxhY2VtZW50IHN1Y2Nlc3NmdWwuXG5FZGl0ZWQgc2VjdGlvbiBhZnRlciBJREUgYXV0by1mb3JtYXR0aW5nIHdhcyBhcHBsaWVkOlxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cyc7XG4gICAgIDJcdFxuICAgICAzXHQvKipcbiAgICAgNFx0ICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhdGJvdCBidWJibGUgY29tcG9uZW50LlxuICAgICA1XHQgKiBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXMgd2hpbGUga2VlcGluZ1xuXG5SZXZpZXcgdGhlIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhcyBleHBlY3RlZCAoY29ycmVjdCBpbmRlbnRhdGlvbiwgbm8gZHVwbGljYXRlIGxpbmVzLCBldGMpLlxuRWRpdCB0aGUgZmlsZSBhZ2FpbiBpZiBuZWNlc3NhcnkuXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCI1NDgxZTZiNC0xOTBjLTQxNWQtOTViMi1iNjQ5NDQ2OGIyNTY7dG9vbHVfdnJ0eF8wMUJTWlNvTU02UmZQWU5wekpMaWN1RjgiOnsicmVxdWVzdElkIjoiNTQ4MWU2YjQtMTkwYy00MTVkLTk1YjItYjY0OTQ0NjhiMjU2IiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMUJTWlNvTU02UmZQWU5wekpMaWN1RjgiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJIZXJlIGFyZSB0aGUgcmVzdWx0cyBmcm9tIGV4ZWN1dGluZyB0aGUgY29tbWFuZC5cbiAgICAgICAgPHJldHVybi1jb2RlPlxuICAgICAgICAxXG4gICAgICAgIDwvcmV0dXJuLWNvZGU+XG4gICAgICAgIDxzdGRvdXQ+XG4gICAgICAgIFx1MDAxYls/OTAwMWhcdTAwMWJbPzEwMDRoXHUwMDFiWz8yNWxcdTAwMWJbMkpcdTAwMWJbbVx1MDAxYltIXG5cblxuXG5cblxuXG5cdTAwMWJbSFx1MDAxYl0wO0M6XFxXSU5ET1dTXFxTeXN0ZW0zMlxcV2luZG93c1Bvd2VyU2hlbGxcXHYxLjBcXHBvd2Vyc2hlbGwuZXhlXHUwMDA3XHUwMDFiWz8yNWhcdTAwMWJbPzI1bFx1MDAxYls5Nm1zcmMvY29uc3RhbnRzLnRzXHUwMDFiW206XHUwMDFiWzkzbTFcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA1OiBcdTAwMWJbbU1vZHVsZSAnXCIuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzXCInIGhhcyBubyBleHBvcnRlZCBtZW1iZXIgJ0J1YmJsZVByb3BzJy5cdTAwMWJbN21cdTAwMWJbMzsxSDFcdTAwMWJbMjdtIGltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzJztcdTAwMWJbN21cbiBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5cdTAwMWJbOTZtXHUwMDFiWzY7MUhzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvaW5kZXgudHNcdTAwMWJbbTpcdTAwMWJbOTNtMVx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL0J1YmJsZScgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZS50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYls3bVx1MDAxYls4OzFIMVx1MDAxYlsyN20gZXhwb3J0ICogZnJvbSAnLi9CdWJibGUnO1xuXHUwMDFiWz8yNWhcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cbkZvdW5kIDIgZXJyb3JzIGluIDIgZmlsZXMuXG5cbkVycm9ycyAgRmlsZXNcbiAgICAgMSAgc3JjL2NvbnN0YW50cy50c1x1MDAxYls5MG06MVx1MDAxYltLXHUwMDFiW21cbiAgICAgMSAgc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL2luZGV4LnRzXHUwMDFiWzkwbToxXHUwMDFiW0tcdTAwMWJbbVxuXHUwMDFiWzMxbWVycm9yXHUwMDFiW21cdTAwMWJbMm06XHUwMDFiWzIybSBcIlx1MDAxYlsxbXRzYy5jbWRcdTAwMWJbMjJtXCIgZXhpdGVkIHdpdGggY29kZSAyXG5cbiAgICAgICAgPC9zdGRvdXQ+XG4gICAgICAgIDxzdGRlcnI+XG4gICAgICAgIFxuICAgICAgICA8L3N0ZGVycj4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCJkZDA4YWQ4Ni02NmUzLTQ1ZDMtYmQxMC05ZGVhZTQ4YTViNmE7dG9vbHVfdnJ0eF8wMUhWZWprYmpjQkRqSkM0QlZ2WHVjd3YiOnsicmVxdWVzdElkIjoiZGQwOGFkODYtNjZlMy00NWQzLWJkMTAtOWRlYWU0OGE1YjZhIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMUhWZWprYmpjQkRqSkM0QlZ2WHVjd3YiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJTdWNjZXNzZnVsbHkgZWRpdGVkIHRoZSBmaWxlIHNyYy9jb25zdGFudHMudHMuXG5SZXN1bHQgZm9yIHN0cl9yZXBsYWNlIGZvciBlbnRyeSB3aXRoIGluZGV4IFsxXTpcblJlcGxhY2VtZW50IHN1Y2Nlc3NmdWwuXG5FZGl0ZWQgc2VjdGlvbiBhZnRlciBJREUgYXV0by1mb3JtYXR0aW5nIHdhcyBhcHBsaWVkOlxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9pbmRleCc7XG4gICAgIDJcdFxuICAgICAzXHQvKipcbiAgICAgNFx0ICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhdGJvdCBidWJibGUgY29tcG9uZW50LlxuICAgICA1XHQgKiBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXMgd2hpbGUga2VlcGluZ1xuXG5SZXZpZXcgdGhlIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhcyBleHBlY3RlZCAoY29ycmVjdCBpbmRlbnRhdGlvbiwgbm8gZHVwbGljYXRlIGxpbmVzLCBldGMpLlxuRWRpdCB0aGUgZmlsZSBhZ2FpbiBpZiBuZWNlc3NhcnkuXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCIwMDhiYjM0OS1iMjgxLTRlOGQtOGQ2Ni1iNTcwMWUyZGI4NDQ7dG9vbHVfdnJ0eF8wMVhBS29vYXE4aldSUkVoS0g5WmlhOTkiOnsicmVxdWVzdElkIjoiMDA4YmIzNDktYjI4MS00ZThkLThkNjYtYjU3MDFlMmRiODQ0IiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMVhBS29vYXE4aldSUkVoS0g5WmlhOTkiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJIZXJlIGFyZSB0aGUgcmVzdWx0cyBmcm9tIGV4ZWN1dGluZyB0aGUgY29tbWFuZC5cbiAgICAgICAgPHJldHVybi1jb2RlPlxuICAgICAgICAxXG4gICAgICAgIDwvcmV0dXJuLWNvZGU+XG4gICAgICAgIDxzdGRvdXQ+XG4gICAgICAgIFx1MDAxYls/OTAwMWhcdTAwMWJbPzEwMDRoXHUwMDFiWz8yNWxcdTAwMWJbMkpcdTAwMWJbbVx1MDAxYltIXG5cblxuXG5cblxuXG5cdTAwMWJbSFx1MDAxYl0wO0M6XFxXSU5ET1dTXFxTeXN0ZW0zMlxcV2luZG93c1Bvd2VyU2hlbGxcXHYxLjBcXHBvd2Vyc2hlbGwuZXhlXHUwMDA3XHUwMDFiWz8yNWhcdTAwMWJbPzI1bFx1MDAxYls5Nm1zcmMvaW5kZXgudHNcdTAwMWJbbTpcdTAwMWJbOTNtMVx1MDAxYlttOlx1MDAxYls5M20zMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL2NvbXBvbmVudHMvQm90JyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9Cb3QudHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbN21cdTAwMWJbMzsxSDFcdTAwMWJbMjdtIGV4cG9ydCB0eXBlIHsgQm90UHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvQm90JztcdTAwMWJbN21cbiBcdTAwMWJbMjdtXHUwMDFiWzMxWFx1MDAxYls5MW1cdTAwMWJbMzFDfn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiWzk2bVx1MDAxYls2OzFIc3JjL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTJcdTAwMWJbbTpcdTAwMWJbOTNtMzQgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUnIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUudHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbN21cdTAwMWJbODsxSDJcdTAwMWJbMjdtIGV4cG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZSc7XG5cdTAwMWJbPzI1aFxuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMzRYXHUwMDFiWzkxbVx1MDAxYlszNEN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblxuRm91bmQgMiBlcnJvcnMgaW4gdGhlIHNhbWUgZmlsZSwgc3RhcnRpbmcgYXQ6IHNyYy9pbmRleC50c1x1MDAxYls5MG06MVx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbMzFtZXJyb3JcdTAwMWJbbVx1MDAxYlsybTpcdTAwMWJbMjJtIFwiXHUwMDFiWzFtdHNjLmNtZFx1MDAxYlsyMm1cIiBleGl0ZWQgd2l0aCBjb2RlIDJcblxuICAgICAgICA8L3N0ZG91dD5cbiAgICAgICAgPHN0ZGVycj5cbiAgICAgICAgXG4gICAgICAgIDwvc3RkZXJyPiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sIjRjYTVjOWEwLTk5MDQtNDg0Mi05NTkwLWViYWM1ZDk1OTU0OTt0b29sdV92cnR4XzAxOU5nRUtiVFlTcG1Qa0FQNTNtYU1QNSI6eyJyZXF1ZXN0SWQiOiI0Y2E1YzlhMC05OTA0LTQ4NDItOTU5MC1lYmFjNWQ5NTk1NDkiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxOU5nRUtiVFlTcG1Qa0FQNTNtYU1QNSIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IlRoZSBmb2xsb3dpbmcgY29kZSBzZWN0aW9ucyB3ZXJlIHJldHJpZXZlZDpcblBhdGg6IHNyYy9jb25zdGFudHMudHNcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlJztcbiAgICAgMlx0XG4gICAgIDNcdGV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xuICAgICA0XHQgIGNoYXRmbG93aWQ6ICcnLFxuICAgICA1XHQgIGFwaUhvc3Q6IHVuZGVmaW5lZCxcbiAgICAgNlx0ICBjaGF0d29vdFVybDogdW5kZWZpbmVkLFxuICAgICA3XHQgIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICAgICA4XHQgIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4gICAgIDlcdCAgdGhlbWU6IHVuZGVmaW5lZCxcbiAgICAxMFx0ICBvYnNlcnZlcnNDb25maWc6IHVuZGVmaW5lZCxcbiAgICAxMVx0ICByb29tSWRzOiB7fSxcbiAgICAxMlx0ICBpc1VzZUZBUTogdW5kZWZpbmVkLFxuICAgIDEzXHQgIGZpbGVQYXRoOiAnJyxcbiAgICAxNFx0ICBzdWdnZXN0UXVlc3Rpb25zOiAnJyxcbiAgICAxNVx0ICBleHRlcm5hbERhdGE6ICcnLFxuICAgIDE2XHQgIGNhbGxCYWNrSWNvbjogJycsXG4gICAgMTdcdCAgY2FsbEJhY2tGdW5jdGlvbjogdW5kZWZpbmVkLFxuICAgIDE4XHR9O1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0JvdEJ1YmJsZS50c3hcbi4uLlxuICAgIDE4XHRcbiAgICAxOVx0dHlwZSBQcm9wcyA9IHtcbiAgICAyMFx0ICBtZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgICAyMVx0ICBzZXRNZXNzYWdlcz86IGFueTtcbiAgICAyMlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgMjNcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMjRcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAyNVx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgMjZcdCAgZmlsZUFubm90YXRpb25zPzogYW55O1xuICAgIDI3XHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDI4XHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAyOVx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMzBcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDMxXHQgIGNoYXRGZWVkYmFja1N0YXR1cz86IGJvb2xlYW47XG4gICAgMzJcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMzNcdCAgZmVlZGJhY2tDb2xvcj86IHN0cmluZztcbiAgICAzNFx0ICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gICAgMzVcdCAgZGF0ZVRpbWVUb2dnbGU/OiBEYXRlVGltZVRvZ2dsZVRoZW1lO1xuICAgIDM2XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgICAzN1x0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAgMzhcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgMzlcdCAgaGFuZGxlQWN0aW9uQ2xpY2s6IChsYWJlbDogc3RyaW5nLCBhY3Rpb246IElBY3Rpb24gfCB1bmRlZmluZWQgfCBudWxsKSA9PiB2b2lkO1xuICAgIDQwXHQgIGhhbmRsZVNvdXJjZURvY3VtZW50c0NsaWNrOiAoc3JjOiBhbnkpID0+IHZvaWQ7XG4gICAgNDFcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAgNDJcdCAgb25Db25uZWN0VG9IdW1hbkFkdmlzb3I/OiAoaWQ6IHN0cmluZywgcGFyYW1zPzogYW55KSA9PiB2b2lkO1xuICAgIDQzXHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIDQ0XHQgIHF1ZXN0aW9uPzogc3RyaW5nO1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9Cb3QudHN4XG4gICAgIDFcdGltcG9ydCB7IEF2YXRhciB9IGZyb20gJ0AvY29tcG9uZW50cy9hdmF0YXJzL0F2YXRhcic7XG4gICAgIDJcdGltcG9ydCB7IEZvbGxvd1VwUHJvbXB0QnViYmxlIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1YmJsZXMvRm9sbG93VXBQcm9tcHRCdWJibGUnO1xuICAgICAzXHRpbXBvcnQgeyBMZWFkQ2FwdHVyZUJ1YmJsZSB9IGZyb20gJ0AvY29tcG9uZW50cy9idWJibGVzL0xlYWRDYXB0dXJlQnViYmxlJztcbiAgICAgNFx0aW1wb3J0IHsgRGVsZXRlQnV0dG9uLCBTZW5kQnV0dG9uIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1dHRvbnMvU2VuZEJ1dHRvbic7XG4gICAgIDVcdGltcG9ydCB7IEZpbGVQcmV2aWV3IH0gZnJvbSAnQC9jb21wb25lbnRzL2lucHV0cy90ZXh0SW5wdXQvY29tcG9uZW50cy9GaWxlUHJldmlldyc7XG4gICAgIDZcdGltcG9ydCB7XG4gICAgIDdcdCAgQm90TWVzc2FnZVRoZW1lLFxuICAgICA4XHQgIERhdGVUaW1lVG9nZ2xlVGhlbWUsXG4gICAgIDlcdCAgRGlzY2xhaW1lclBvcFVwVGhlbWUsXG4gICAgMTBcdCAgRmVlZGJhY2tUaGVtZSxcbiAgICAxMVx0ICBGb290ZXJUaGVtZSxcbiAgICAxMlx0ICBUZXh0SW5wdXRUaGVtZSxcbiAgICAxM1x0ICBVc2VyTWVzc2FnZVRoZW1lLFxuICAgIDE0XHR9IGZyb20gJ0AvZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAxNVx0aW1wb3J0IHsgRGlzY2xhaW1lclBvcHVwLCBQb3B1cCB9IGZyb20gJ0AvZmVhdHVyZXMvcG9wdXAnO1xuICAgIDE2XHRpbXBvcnQge1xuICAgIDE3XHQgIGNyZWF0ZUF0dGFjaG1lbnRXaXRoRm9ybURhdGEsXG4gICAgMThcdCAgRmVlZGJhY2tSYXRpbmdUeXBlLFxuICAgIDE5XHQgIGdldENoYXRib3RDb25maWcsXG4gICAgMjBcdCAgZ2V0RmlsZUNvbnRlbnQsXG4gICAgMjFcdCAgZ2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UsXG4gICAgMjJcdCAgSW5jb21pbmdJbnB1dCxcbiAgICAyM1x0ICBpc1N0cmVhbUF2YWlsYWJsZVF1ZXJ5LFxuLi4uXG4gICAgNTdcdFxuICAgIDU4XHRleHBvcnQgdHlwZSBVcGxvYWRzQ29uZmlnID0ge1xuICAgIDU5XHQgIGltZ1VwbG9hZFNpemVBbmRUeXBlczogSVVwbG9hZENvbnN0cmFpdHNbXTtcbiAgICA2MFx0ICBmaWxlVXBsb2FkU2l6ZUFuZFR5cGVzOiBJVXBsb2FkQ29uc3RyYWl0c1tdO1xuICAgIDYxXHQgIGlzSW1hZ2VVcGxvYWRBbGxvd2VkOiBib29sZWFuO1xuICAgIDYyXHQgIGlzU3BlZWNoVG9UZXh0RW5hYmxlZDogYm9vbGVhbjtcbiAgICA2M1x0ICBpc1JBR0ZpbGVVcGxvYWRBbGxvd2VkOiBib29sZWFuO1xuICAgIDY0XHR9O1xuICAgIDY1XHRcbiAgICA2Nlx0dHlwZSBGaWxlUHJldmlld0RhdGEgPSBzdHJpbmcgfCBBcnJheUJ1ZmZlcjtcbiAgICA2N1x0XG4gICAgNjhcdHR5cGUgRmlsZVByZXZpZXcgPSB7XG4gICAgNjlcdCAgZGF0YTogRmlsZVByZXZpZXdEYXRhO1xuICAgIDcwXHQgIG1pbWU6IHN0cmluZztcbiAgICA3MVx0ICBuYW1lOiBzdHJpbmc7XG4gICAgNzJcdCAgcHJldmlldzogc3RyaW5nO1xuICAgIDczXHQgIHR5cGU6IHN0cmluZztcbiAgICA3NFx0fTtcbiAgICA3NVx0XG4gICAgNzZcdHR5cGUgbWVzc2FnZVR5cGUgPSAnYXBpTWVzc2FnZScgfCAndXNlck1lc3NhZ2UnIHwgJ3VzZXJtZXNzYWdld2FpdGluZycgfCAnbGVhZENhcHR1cmVNZXNzYWdlJztcbiAgICA3N1x0XG4gICAgNzhcdGV4cG9ydCB0eXBlIElBZ2VudFJlYXNvbmluZyA9IHtcbiAgICA3OVx0ICBhZ2VudE5hbWU/OiBzdHJpbmc7XG4gICAgODBcdCAgbWVzc2FnZXM/OiBzdHJpbmdbXTtcbiAgICA4MVx0ICB1c2VkVG9vbHM/OiBhbnlbXTtcbiAgICA4Mlx0ICBhcnRpZmFjdHM/OiBGaWxlVXBsb2FkW107XG4gICAgODNcdCAgc291cmNlRG9jdW1lbnRzPzogYW55W107XG4gICAgODRcdCAgaW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xuICAgIDg1XHQgIG5leHRBZ2VudD86IHN0cmluZztcbiAgICA4Nlx0fTtcbiAgICA4N1x0XG4gICAgODhcdGV4cG9ydCB0eXBlIElBY3Rpb24gPSB7XG4gICAgODlcdCAgaWQ/OiBzdHJpbmc7XG4gICAgOTBcdCAgZWxlbWVudHM/OiBBcnJheTx7XG4gICAgOTFcdCAgICB0eXBlOiBzdHJpbmc7XG4gICAgOTJcdCAgICBsYWJlbDogc3RyaW5nO1xuICAgIDkzXHQgIH0+O1xuICAgIDk0XHQgIG1hcHBpbmc/OiB7XG4gICAgOTVcdCAgICBhcHByb3ZlOiBzdHJpbmc7XG4gICAgOTZcdCAgICByZWplY3Q6IHN0cmluZztcbiAgICA5N1x0ICAgIHRvb2xDYWxsczogYW55W107XG4gICAgOThcdCAgfTtcbiAgICA5OVx0fTtcbiAgIDEwMFx0XG4gICAxMDFcdGV4cG9ydCB0eXBlIEZpbGVVcGxvYWQgPSBPbWl0PEZpbGVQcmV2aWV3LCAncHJldmlldyc+O1xuICAgMTAyXHRcbiAgIDEwM1x0ZXhwb3J0IHR5cGUgTWVzc2FnZVR5cGUgPSB7XG4gICAxMDRcdCAgbWVzc2FnZUlkPzogc3RyaW5nO1xuICAgMTA1XHQgIG1lc3NhZ2U6IHN0cmluZztcbiAgIDEwNlx0ICB0eXBlOiBtZXNzYWdlVHlwZTtcbiAgIDEwN1x0ICBzb3VyY2VEb2N1bWVudHM/OiBhbnk7XG4gICAxMDhcdCAgZmlsZUFubm90YXRpb25zPzogYW55O1xuICAgMTA5XHQgIGZpbGVVcGxvYWRzPzogUGFydGlhbDxGaWxlVXBsb2FkPltdO1xuICAgMTEwXHQgIGFydGlmYWN0cz86IFBhcnRpYWw8RmlsZVVwbG9hZD5bXTtcbiAgIDExMVx0ICBhZ2VudFJlYXNvbmluZz86IElBZ2VudFJlYXNvbmluZ1tdO1xuICAgMTEyXHQgIHVzZWRUb29scz86IGFueVtdO1xuICAgMTEzXHQgIGFjdGlvbj86IElBY3Rpb24gfCBudWxsO1xuICAgMTE0XHQgIHJhdGluZz86IEZlZWRiYWNrUmF0aW5nVHlwZTtcbiAgIDExNVx0ICBpZD86IHN0cmluZztcbiAgIDExNlx0ICBmb2xsb3dVcFByb21wdHM/OiBzdHJpbmc7XG4gICAxMTdcdCAgZGF0ZVRpbWU/OiBzdHJpbmc7XG4gICAxMThcdH07XG4gICAxMTlcdFxuICAgMTIwXHR0eXBlIElVcGxvYWRzID0ge1xuICAgMTIxXHQgIGRhdGE6IEZpbGVQcmV2aWV3RGF0YTtcbiAgIDEyMlx0ICB0eXBlOiBzdHJpbmc7XG4gICAxMjNcdCAgbmFtZTogc3RyaW5nO1xuICAgMTI0XHQgIG1pbWU6IHN0cmluZztcbiAgIDEyNVx0ICBmaWxlPzogYW55O1xuICAgMTI2XHR9W107XG4gICAxMjdcdFxuICAgMTI4XHR0eXBlIG9ic2VydmVyQ29uZmlnVHlwZSA9IChhY2Nlc3Nvcjogc3RyaW5nIHwgYm9vbGVhbiB8IG9iamVjdCB8IE1lc3NhZ2VUeXBlW10pID0+IHZvaWQ7XG4gICAxMjlcdGV4cG9ydCB0eXBlIG9ic2VydmVyc0NvbmZpZ1R5cGUgPSBSZWNvcmQ8J29ic2VydmVVc2VySW5wdXQnIHwgJ29ic2VydmVMb2FkaW5nJyB8ICdvYnNlcnZlTWVzc2FnZXMnLCBvYnNlcnZlckNvbmZpZ1R5cGU+O1xuICAgMTMwXHRcbiAgIDEzMVx0ZXhwb3J0IHR5cGUgQm90UHJvcHMgPSB7XG4gICAxMzJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgMTMzXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAxMzRcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgMTM1XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAxMzZcdCAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzdcdCAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOFx0ICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzlcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgIDE0MFx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAxNDFcdCAgdGV4dElucHV0PzogVGV4dElucHV0VGhlbWU7XG4gICAxNDJcdCAgZmVlZGJhY2s/OiBGZWVkYmFja1RoZW1lO1xuICAgMTQzXHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0NFx0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0NVx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDZcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ3XHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAxNDhcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgMTQ5XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTUwXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgMTUxXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgMTUyXHQgIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xuICAgMTUzXHQgIGZvb3Rlcj86IEZvb3RlclRoZW1lO1xuICAgMTU0XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgIDE1NVx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgMTU2XHQgIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCB7IHByb21wdDogc3RyaW5nIH0+O1xuICAgMTU3XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgIDE1OFx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAxNTlcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgMTYwXHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgIDE2MVx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgIDE2Mlx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgIDE2M1x0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgIDE2NFx0ICBpc1VzZUZBUT86IGJvb2xlYW47XG4gICAxNjVcdCAgZmlsZVBhdGg/OiBzdHJpbmc7XG4gICAxNjZcdCAgc3VnZ2VzdFF1ZXN0aW9ucz86IHN0cmluZztcbiAgIDE2N1x0ICBleHRlcm5hbERhdGE/OiBzdHJpbmc7XG4gICAxNjhcdCAgY2FsbEJhY2tGdW5jdGlvbj86IChlOiBhbnkpID0+IHZvaWQ7XG4gICAxNjlcdCAgY2FsbEJhY2tJY29uPzogc3RyaW5nO1xuICAgMTcwXHR9O1xuICAgMTcxXHRcbiAgIDE3Mlx0ZXhwb3J0IHR5cGUgTGVhZHNDb25maWcgPSB7XG4gICAxNzNcdCAgc3RhdHVzOiBib29sZWFuO1xuICAgMTc0XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTc1XHQgIG5hbWU/OiBib29sZWFuO1xuICAgMTc2XHQgIGVtYWlsPzogYm9vbGVhbjtcbiAgIDE3N1x0ICBwaG9uZT86IGJvb2xlYW47XG4gICAxNzhcdCAgc3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XG4gICAxNzlcdH07XG4gICAxODBcdFxuICAgMTgxXHRjb25zdCBkZWZhdWx0V2VsY29tZU1lc3NhZ2UgPSAnWGluIGNow6BvIHTDtGkgY8OzIHRo4buDIGdpw7pwIGfDrCBjaG8gYuG6oW4/JztcbiAgIDE4Mlx0Y29uc3Qgc3RhdHVzTXNnID0ge1xuICAgMTgzXHQgIDM6ICfEkGFuZyB44butIGzDvS4uLicsXG4gICAxODRcdCAgMTA6ICfEkGFuZyB04bqjaSBk4buvIGxp4buHdSwgdnVpIGzDsm5nIMSR4bujaS4uLicsXG4gICAxODVcdCAgNDA6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBo4buHIHRo4buRbmcgxJFhbmcgcXXDoSB04bqjaSwgdnVpIGzDsm5nIHRo4butIGzhuqFpIHNhdS4nLFxuICAgMTg2XHQgIDUwOiAnJyxcbiAgIDE4N1x0fTtcbiAgIDE4OFx0XG4gICAxODlcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZmZmZic7XG4gICAxOTBcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnIzMwMzIzNSc7XG4gICAxOTFcdFxuICAgMTkyXHRleHBvcnQgY29uc3QgQm90ID0gKGJvdFByb3BzOiBCb3RQcm9wcyAmIHsgY2xhc3M/OiBzdHJpbmcgfSkgPT4ge1xuICAgMTkzXHQgIC8vIHNldCBhIGRlZmF1bHQgdmFsdWUgZm9yIHNob3dUaXRsZSBpZiBub3Qgc2V0IGFuZCBtZXJnZSB3aXRoIG90aGVyIHByb3BzXG4gICAxOTRcdFxuICAgMTk1XHQgIGNvbnN0IHByb3BzID0gbWVyZ2VQcm9wcyh7IHNob3dUaXRsZTogdHJ1ZSB9LCBib3RQcm9wcyk7XG4gICAxOTZcdCAgbGV0IGNoYXRDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk3XHQgIGxldCBib3R0b21TcGFjZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk4XHQgIGxldCBib3RDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk5XHQgIGxldCBpbnRlcnZhbEN1cnJlbnRNc2c6IGFueTtcbiAgIDIwMFx0XG4gICAyMDFcdCAgY29uc3QgW3Nob3dTY3JvbGxCdXR0b24sIHNldFNob3dTY3JvbGxCdXR0b25dID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIwMlx0ICBjb25zdCBbdXNlcklucHV0LCBzZXRVc2VySW5wdXRdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIwM1x0ICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjA0XHQgIGNvbnN0IFtzb3VyY2VQb3B1cE9wZW4sIHNldFNvdXJjZVBvcHVwT3Blbl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjA1XHQgIGNvbnN0IFtzb3VyY2VQb3B1cFNyYywgc2V0U291cmNlUG9wdXBTcmNdID0gY3JlYXRlU2lnbmFsKHt9KTtcbiAgIDIwNlx0ICBjb25zdCBbY3VycmVudFN0YXR1c01zZywgc2V0Q3VycmVudFN0YXR1c01zZ10gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjA3XHQgIGNvbnN0IFtpc05ldHdvcmtFcnJvciwgc2V0SXNOZXR3b3JrRXJyb3JdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIwOFx0ICBjb25zdCBbbmV0d29ya0Vycm9yTWVzc2FnZSwgc2V0TmV0d29ya0Vycm9yTWVzc2FnZV0gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjA5XHQgIGNvbnN0IFt1c2VyLCBzZXRVc2VyXSA9IGNyZWF0ZVNpZ25hbCh7IGlkOiAnJywgdXNlcm5hbWU6ICcnLCBlbWFpbDogJycgfSk7XG4gICAyMTBcdCAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSBjcmVhdGVTaWduYWw8TWVzc2FnZVR5cGVbXT4oXG4gICAyMTFcdCAgICBbXG4gICAyMTJcdCAgICAgIHtcbiAgIDIxM1x0ICAgICAgICBtZXNzYWdlOiBwcm9wcy53ZWxjb21lTWVzc2FnZSA/PyBkZWZhdWx0V2VsY29tZU1lc3NhZ2UsXG4gICAyMTRcdCAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnIGFzIG1lc3NhZ2VUeXBlLFxuICAgMjE1XHQgICAgICB9LFxuLi4uXG4gICAyMzFcdCAgY29uc3QgW2Rpc2NsYWltZXJQb3B1cE9wZW4sIHNldERpc2NsYWltZXJQb3B1cE9wZW5dID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIzMlx0ICBjb25zdCBbZGlzYWJsZUlucHV0LCBzZXREaXNhYmxlSW5wdXRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIzM1x0ICBjb25zdCBbZmlsZVN1bW1hcnksIHNldEZpbGVTdW1tYXJ5XSA9IGNyZWF0ZVNpZ25hbCgnJyk7XG4gICAyMzRcdCAgY29uc3QgW2ZpbGVDb250ZW50LCBzZXRGaWxlQ29udGVudF0gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjM1XHQgIGNvbnN0IFtzdWdnZXN0UXVlc3Rpb24sIHNldFN1Z2dlc3RRdWVzdGlvbl0gPSBjcmVhdGVTaWduYWwoW10pO1xuICAgMjM2XHRcbiAgIDIzN1x0ICAvLyBkcmFnICYgZHJvcCBmaWxlIGlucHV0XG4gICAyMzhcdCAgLy8gVE9ETzogZml4IHRoaXMgdHlwZVxuICAgMjM5XHQgIGNvbnN0IFtwcmV2aWV3cywgc2V0UHJldmlld3NdID0gY3JlYXRlU2lnbmFsPEZpbGVQcmV2aWV3W10+KFtdKTtcbiAgIDI0MFx0XG4gICAyNDFcdCAgLy8gYXVkaW8gcmVjb3JkaW5nXG4gICAyNDJcdCAgY29uc3QgW2VsYXBzZWRUaW1lLCBzZXRFbGFwc2VkVGltZV0gPSBjcmVhdGVTaWduYWwoJzAwOjAwJyk7XG4gICAyNDNcdCAgY29uc3QgW2lzUmVjb3JkaW5nLCBzZXRJc1JlY29yZGluZ10gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjQ0XHQgIGNvbnN0IFtyZWNvcmRpbmdOb3RTdXBwb3J0ZWQsIHNldFJlY29yZGluZ05vdFN1cHBvcnRlZF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjQ1XHQgIGNvbnN0IFtpc0xvYWRpbmdSZWNvcmRpbmcsIHNldElzTG9hZGluZ1JlY29yZGluZ10gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuLi4uXG4gICA3NDBcdFxuICAgNzQxXHQgIC8vIEhhbmRsZSBmb3JtIHN1Ym1pc3Npb25cbiAgIDc0Mlx0ICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAodmFsdWU6IHN0cmluZywgYWN0aW9uPzogSUFjdGlvbiB8IHVuZGVmaW5lZCB8IG51bGwsIGZhcUlkPzogc3RyaW5nKSA9PiB7XG4gICA3NDNcdCAgICBpZiAodmFsdWUudHJpbSgpID09PSAnJykge1xuICAgNzQ0XHQgICAgICBjb25zdCBjb250YWluc0ZpbGUgPSBwcmV2aWV3cygpLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0ubWltZS5zdGFydHNXaXRoKCdpbWFnZScpICYmIGl0ZW0udHlwZSAhPT0gJ2F1ZGlvJykubGVuZ3RoID4gMDtcbiAgIDc0NVx0ICAgICAgaWYgKCFwcmV2aWV3cygpLmxlbmd0aCB8fCAocHJldmlld3MoKS5sZW5ndGggJiYgY29udGFpbnNGaWxlKSkge1xuICAgNzQ2XHQgICAgICAgIHJldHVybjtcbiAgIDc0N1x0ICAgICAgfVxuICAgNzQ4XHQgICAgfVxuICAgNzQ5XHRcbiAgIDc1MFx0ICAgIGlmICghbG9jYWxTdG9yYWdlLmdldEl0ZW0oYGNoYXR3b290OiR7cHJvcHMuY2hhdGZsb3dpZH06Y29udmVyc2F0aW9uX2lkYCkpIHtcbiAgIDc1MVx0ICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgIDc1Mlx0ICAgICAgc2V0RGlzYWJsZUlucHV0KHRydWUpO1xuICAgNzUzXHQgICAgfVxuICAgNzU0XHQgICAgc2Nyb2xsVG9Cb3R0b20oKTtcbiAgIDc1NVx0XG4gICA3NTZcdCAgICBsZXQgdXBsb2FkczogSVVwbG9hZHMgPSBwcmV2aWV3cygpLm1hcCgoaXRlbSkgPT4ge1xuICAgNzU3XHQgICAgICByZXR1cm4ge1xuICAgNzU4XHQgICAgICAgIGRhdGE6IGl0ZW0uZGF0YSxcbiAgIDc1OVx0ICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXG4gICA3NjBcdCAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgNzYxXHQgICAgICAgIG1pbWU6IGl0ZW0ubWltZSxcbiAgIDc2Mlx0ICAgICAgfTtcbiAgIDc2M1x0ICAgIH0pO1xuICAgNzY0XHRcbiAgIDc2NVx0ICAgIHRyeSB7XG4gICA3NjZcdCAgICAgIHVwbG9hZHMgPSBhd2FpdCBoYW5kbGVGaWxlVXBsb2Fkcyh1cGxvYWRzKTtcbiAgIDc2N1x0ICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICA3NjhcdCAgICAgIGhhbmRsZUVycm9yKCdVbmFibGUgdG8gdXBsb2FkIGRvY3VtZW50cycpO1xuICAgNzY5XHQgICAgICByZXR1cm47XG4gICA3NzBcdCAgICB9XG4uLi5cbiAgMTc4MFx0ICAgICAgICAgICAgICAgICAgICB7bWVzc2FnZS50eXBlID09PSAnYXBpTWVzc2FnZScgJiYgKFxuICAxNzgxXHQgICAgICAgICAgICAgICAgICAgICAgPEJvdEJ1YmJsZVxuICAxNzgyXHQgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbj17Wy4uLm1lc3NhZ2VzKCldW2luZGV4KCkgLSAxXT8ubWVzc2FnZX1cbiAgMTc4M1x0ICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT17bWVzc2FnZX1cbiAgMTc4NFx0ICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVzc2FnZXM9e3NldE1lc3NhZ2VzfVxuICAxNzg1XHQgICAgICAgICAgICAgICAgICAgICAgICBmaWxlQW5ub3RhdGlvbnM9e21lc3NhZ2UuZmlsZUFubm90YXRpb25zfVxuICAxNzg2XHQgICAgICAgICAgICAgICAgICAgICAgICBjaGF0Zmxvd2lkPXtwcm9wcy5jaGF0Zmxvd2lkfVxuICAxNzg3XHQgICAgICAgICAgICAgICAgICAgICAgICBjaGF0SWQ9e2NoYXRJZCgpfVxuICAxNzg4XHQgICAgICAgICAgICAgICAgICAgICAgICBhcGlIb3N0PXtwcm9wcy5hcGlIb3N0fVxuICAxNzg5XHQgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e3Byb3BzLmJvdE1lc3NhZ2U/LmJhY2tncm91bmRDb2xvcn1cbiAgMTc5MFx0ICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yPXtwcm9wcy5ib3RNZXNzYWdlPy50ZXh0Q29sb3J9XG4gIDE3OTFcdCAgICAgICAgICAgICAgICAgICAgICAgIGZlZWRiYWNrQ29sb3I9e3Byb3BzLmZlZWRiYWNrPy5jb2xvcn1cbiAgMTc5Mlx0ICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0F2YXRhcj17cHJvcHMuYm90TWVzc2FnZT8uc2hvd0F2YXRhcn1cbiAgMTc5M1x0ICAgICAgICAgICAgICAgICAgICAgICAgYXZhdGFyU3JjPXtwcm9wcy5ib3RNZXNzYWdlPy5hdmF0YXJTcmN9XG4gIDE3OTRcdCAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRGZWVkYmFja1N0YXR1cz17Y2hhdEZlZWRiYWNrU3RhdHVzKCl9XG4gIDE3OTVcdCAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXtwcm9wcy5mb250U2l6ZX1cbiAgMTc5Nlx0ICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtsb2FkaW5nKCkgJiYgaW5kZXgoKSA9PT0gbWVzc2FnZXMoKS5sZW5ndGggLSAxfVxuICAxNzk3XHQgICAgICAgICAgICAgICAgICAgICAgICBzaG93QWdlbnRNZXNzYWdlcz17cHJvcHMuc2hvd0FnZW50TWVzc2FnZXN9XG4gIDE3OThcdCAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUFjdGlvbkNsaWNrPXsobGFiZWwsIGFjdGlvbikgPT4gaGFuZGxlQWN0aW9uQ2xpY2sobGFiZWwsIGFjdGlvbil9XG4gIDE3OTlcdCAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZURvY3NUaXRsZT17cHJvcHMuc291cmNlRG9jc1RpdGxlfVxuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL3R5cGVzLnRzXG4gICAgIDFcdGV4cG9ydCB0eXBlIEJ1YmJsZVBhcmFtcyA9IHtcbiAgICAgMlx0ICB0aGVtZT86IEJ1YmJsZVRoZW1lO1xuICAgICAzXHR9O1xuICAgICA0XHRcbiAgICAgNVx0ZXhwb3J0IHR5cGUgQnViYmxlVGhlbWUgPSB7XG4gICAgIDZcdCAgY2hhdFdpbmRvdz86IENoYXRXaW5kb3dUaGVtZTtcbiAgICAgN1x0ICBidXR0b24/OiBCdXR0b25UaGVtZTtcbiAgICAgOFx0ICB0b29sdGlwPzogVG9vbFRpcFRoZW1lO1xuICAgICA5XHQgIGRpc2NsYWltZXI/OiBEaXNjbGFpbWVyUG9wVXBUaGVtZTtcbiAgICAxMFx0ICBjdXN0b21DU1M/OiBzdHJpbmc7XG4gICAgMTFcdH07XG4gICAgMTJcdFxuICAgIDEzXHRleHBvcnQgdHlwZSBUZXh0SW5wdXRUaGVtZSA9IHtcbiAgICAxNFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE2XHQgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIDE3XHQgIHNlbmRCdXR0b25Db2xvcj86IHN0cmluZztcbiAgICAxOFx0ICBtYXhDaGFycz86IG51bWJlcjtcbiAgICAxOVx0ICBtYXhDaGFyc1dhcm5pbmdNZXNzYWdlPzogc3RyaW5nO1xuICAgIDIwXHQgIGF1dG9Gb2N1cz86IGJvb2xlYW47XG4gICAgMjFcdCAgc2VuZE1lc3NhZ2VTb3VuZD86IGJvb2xlYW47XG4gICAgMjJcdCAgc2VuZFNvdW5kTG9jYXRpb24/OiBzdHJpbmc7XG4gICAgMjNcdCAgcmVjZWl2ZU1lc3NhZ2VTb3VuZD86IGJvb2xlYW47XG4gICAgMjRcdCAgcmVjZWl2ZVNvdW5kTG9jYXRpb24/OiBzdHJpbmc7XG4gICAgMjVcdH07XG4gICAgMjZcdFxuICAgIDI3XHRleHBvcnQgdHlwZSBVc2VyTWVzc2FnZVRoZW1lID0ge1xuICAgIDI4XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAyOVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzBcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMzFcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDMyXHR9O1xuICAgIDMzXHRcbiAgICAzNFx0ZXhwb3J0IHR5cGUgQm90TWVzc2FnZVRoZW1lID0ge1xuICAgIDM1XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAzNlx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzdcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMzhcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDM5XHR9O1xuICAgIDQwXHRcbiAgICA0MVx0ZXhwb3J0IHR5cGUgRm9vdGVyVGhlbWUgPSB7XG4gICAgNDJcdCAgc2hvd0Zvb3Rlcj86IGJvb2xlYW47XG4gICAgNDNcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDQ0XHQgIHRleHQ/OiBzdHJpbmc7XG4gICAgNDVcdCAgY29tcGFueT86IHN0cmluZztcbiAgICA0Nlx0ICBjb21wYW55TGluaz86IHN0cmluZztcbiAgICA0N1x0fTtcbiAgICA0OFx0XG4gICAgNDlcdGV4cG9ydCB0eXBlIEZlZWRiYWNrVGhlbWUgPSB7XG4gICAgNTBcdCAgY29sb3I/OiBzdHJpbmc7XG4gICAgNTFcdH07XG4gICAgNTJcdFxuICAgIDUzXHRleHBvcnQgdHlwZSBDaGF0V2luZG93VGhlbWUgPSB7XG4gICAgNTRcdCAgc2hvd1RpdGxlPzogYm9vbGVhbjtcbiAgICA1NVx0ICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47IC8vIHBhcmFtZXRlciB0byBzaG93IGFnZW50IHJlYXNvbmluZ3Mgd2hlbiB1c2luZyBhZ2VudGZsb3dzXG4gICAgNTZcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAgNTdcdCAgdGl0bGVBdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgNThcdCAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgNTlcdCAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcbiAgICA2MFx0ICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgNjFcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDYyXHQgIGJhY2tncm91bmRJbWFnZT86IHN0cmluZztcbiAgICA2M1x0ICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgNjRcdCAgd2lkdGg/OiBudW1iZXI7XG4gICAgNjVcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgNjZcdCAgdXNlck1lc3NhZ2U/OiBVc2VyTWVzc2FnZVRoZW1lO1xuICAgIDY3XHQgIGJvdE1lc3NhZ2U/OiBCb3RNZXNzYWdlVGhlbWU7XG4gICAgNjhcdCAgdGV4dElucHV0PzogVGV4dElucHV0VGhlbWU7XG4gICAgNjlcdCAgZmVlZGJhY2s/OiBGZWVkYmFja1RoZW1lO1xuICAgIDcwXHQgIGZvb3Rlcj86IEZvb3RlclRoZW1lO1xuICAgIDcxXHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgICA3Mlx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgNzNcdCAgc3RhcnRlclByb21wdHM/OiBzdHJpbmdbXTtcbiAgICA3NFx0ICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XG4gICAgNzVcdCAgY2xlYXJDaGF0T25SZWxvYWQ/OiBib29sZWFuO1xuICAgIDc2XHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgICA3N1x0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICA3OFx0fTtcbiAgICA3OVx0XG4gICAgODBcdGV4cG9ydCB0eXBlIEJ1dHRvblRoZW1lID0ge1xuICAgIDgxXHQgIHNpemU/OiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgbnVtYmVyOyAvLyBjdXN0b20gc2l6ZSBvZiBjaGF0Ym90IGluIHBpeGVsc1xuICAgIDgyXHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICA4M1x0ICBpY29uQ29sb3I/OiBzdHJpbmc7XG4gICAgODRcdCAgY3VzdG9tSWNvblNyYz86IHN0cmluZztcbiAgICA4NVx0ICBib3R0b20/OiBudW1iZXI7XG4gICAgODZcdCAgcmlnaHQ/OiBudW1iZXI7XG4gICAgODdcdCAgZHJhZ0FuZERyb3A/OiBib29sZWFuOyAvLyBwYXJhbWV0ZXIgdG8gZW5hYmxlIGRyYWcgYW5kIGRyb3AodHJ1ZSBvciBmYWxzZSlcbiAgICA4OFx0ICBhdXRvV2luZG93T3Blbj86IGF1dG9XaW5kb3dPcGVuVGhlbWU7XG4gICAgODlcdH07XG4gICAgOTBcdFxuICAgIDkxXHRleHBvcnQgdHlwZSBUb29sVGlwVGhlbWUgPSB7XG4gICAgOTJcdCAgc2hvd1Rvb2x0aXA/OiBib29sZWFuOyAvLyBwYXJhbWV0ZXIgdG8gZW5hYmxlIHRvb2x0aXAodHJ1ZSBvciBmYWxzZSlcbiAgICA5M1x0ICB0b29sdGlwTWVzc2FnZT86IHN0cmluZztcbiAgICA5NFx0ICB0b29sdGlwQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDk1XHQgIHRvb2x0aXBUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgOTZcdCAgdG9vbHRpcEZvbnRTaXplPzogbnVtYmVyO1xuICAgIDk3XHR9O1xuICAgIDk4XHRcbiAgICA5OVx0ZXhwb3J0IHR5cGUgYXV0b1dpbmRvd09wZW5UaGVtZSA9IHtcbiAgIDEwMFx0ICBhdXRvT3Blbj86IGJvb2xlYW47IC8vcGFyYW1ldGVyIHRvIGNvbnRyb2wgYXV0b21hdGljIHdpbmRvdyBvcGVuaW5nXG4gICAxMDFcdCAgb3BlbkRlbGF5PzogbnVtYmVyOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgZm9yIGRlbGF5IHRpbWUgaW4gc2Vjb25kc1xuICAgMTAyXHQgIGF1dG9PcGVuT25Nb2JpbGU/OiBib29sZWFuOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgZm9yIG9wZW5pbmcgb24gbW9iaWxlXG4gICAxMDNcdH07XG4gICAxMDRcdFxuICAgMTA1XHRleHBvcnQgdHlwZSBEaXNjbGFpbWVyUG9wVXBUaGVtZSA9IHtcbiAgIDEwNlx0ICB0aXRsZT86IHN0cmluZztcbiAgIDEwN1x0ICBtZXNzYWdlPzogc3RyaW5nO1xuICAgMTA4XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgIDEwOVx0ICBidXR0b25Db2xvcj86IHN0cmluZztcbiAgIDExMFx0ICBidXR0b25UZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxMTFcdCAgYnV0dG9uVGV4dD86IHN0cmluZztcbiAgIDExMlx0ICBibHVycmVkQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTEzXHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDExNFx0fTtcbiAgIDExNVx0XG4gICAxMTZcdGV4cG9ydCB0eXBlIERhdGVUaW1lVG9nZ2xlVGhlbWUgPSB7XG4gICAxMTdcdCAgZGF0ZT86IGJvb2xlYW47XG4gICAxMThcdCAgdGltZT86IGJvb2xlYW47XG4gICAxMTlcdH07XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGVCdXR0b24udHN4XG4gICAgIDFcdGltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgY3JlYXRlRWZmZWN0LCBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyBpc05vdERlZmluZWQsIGdldEJ1YmJsZUJ1dHRvblNpemUgfSBmcm9tICdAL3V0aWxzL2luZGV4JztcbiAgICAgM1x0aW1wb3J0IHsgQnV0dG9uVGhlbWUgfSBmcm9tICcuLi90eXBlcyc7XG4gICAgIDRcdFxuICAgICA1XHR0eXBlIFByb3BzID0gQnV0dG9uVGhlbWUgJiB7XG4gICAgIDZcdCAgaXNCb3RPcGVuZWQ6IGJvb2xlYW47XG4gICAgIDdcdCAgdG9nZ2xlQm90OiAoKSA9PiB2b2lkO1xuICAgICA4XHQgIHNldEJ1dHRvblBvc2l0aW9uOiAocG9zaXRpb246IHsgYm90dG9tOiBudW1iZXI7IHJpZ2h0OiBudW1iZXIgfSkgPT4gdm9pZDtcbiAgICAgOVx0ICBkcmFnQW5kRHJvcDogYm9vbGVhbjtcbiAgICAxMFx0ICBhdXRvT3Blbj86IGJvb2xlYW47IC8vIE9wdGlvbmFsIHBhcmFtZXRlciB0byBjb250cm9sIGF1dG9tYXRpYyB3aW5kb3cgb3BlbmluZ1xuICAgIDExXHQgIG9wZW5EZWxheT86IG51bWJlcjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBkZWxheSB0aW1lIGluIHNlY29uZHNcbiAgICAxMlx0ICBhdXRvT3Blbk9uTW9iaWxlPzogYm9vbGVhbjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBvcGVuaW5nIG9uIG1vYmlsZVxuICAgIDEzXHR9O1xuICAgIDE0XHRcbiAgICAxNVx0Y29uc3QgZGVmYXVsdEJ1dHRvbkNvbG9yID0gJyMzQjgxRjYnO1xuICAgIDE2XHRjb25zdCBkZWZhdWx0SWNvbkNvbG9yID0gJ3doaXRlJztcbiAgICAxN1x0Y29uc3QgZGVmYXVsdEJvdHRvbSA9IDIwO1xuICAgIDE4XHRjb25zdCBkZWZhdWx0UmlnaHQgPSAyMDtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBTaG93LCBzcGxpdFByb3BzLCBvbkNsZWFudXAsIGNyZWF0ZUVmZmVjdCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHN0eWxlcyBmcm9tICcuLi8uLi8uLi9hc3NldHMvaW5kZXguY3NzJztcbiAgICAgM1x0aW1wb3J0IHsgQnViYmxlQnV0dG9uIH0gZnJvbSAnLi9CdWJibGVCdXR0b24nO1xuICAgICA0XHRpbXBvcnQgeyBCdWJibGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcyc7XG4gICAgIDVcdGltcG9ydCB7IEJvdCwgQm90UHJvcHMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0JvdCc7XG4gICAgIDZcdGltcG9ydCBUb29sdGlwIGZyb20gJy4vVG9vbHRpcCc7XG4gICAgIDdcdGltcG9ydCB7IGdldEJ1YmJsZUJ1dHRvblNpemUgfSBmcm9tICdAL3V0aWxzJztcbiAgICAgOFx0XG4gICAgIDlcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAxMFx0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgMTFcdFxuICAgIDEyXHRleHBvcnQgdHlwZSBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zO1xuLi4uXG5QYXRoOiBzcmMvd2luZG93LnRzXG4gICAgIDFcdGltcG9ydCB7IG9ic2VydmVyc0NvbmZpZ1R5cGUgfSBmcm9tICcuL2NvbXBvbmVudHMvQm90JztcbiAgICAgMlx0aW1wb3J0IHsgQnViYmxlVGhlbWUgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgIDNcdFxuICAgICA0XHQvKiBlc2xpbnQtZGlzYWJsZSBzb2xpZC9yZWFjdGl2aXR5ICovXG4gICAgIDVcdHR5cGUgQm90UHJvcHMgPSB7XG4gICAgIDZcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgICA3XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgIDhcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgICA5XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgMTBcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcbiAgICAxMVx0ICB0aGVtZT86IEJ1YmJsZVRoZW1lO1xuICAgIDEyXHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgIDEzXHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIDE0XHQgIGlzVXNlRkFRPzogdW5kZWZpbmVkO1xuICAgIDE1XHR9O1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0d1ZXN0QnViYmxlLnRzeFxuICAgICAxXHRpbXBvcnQgeyBGb3IsIFNob3csIG9uTW91bnQgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCB7IEF2YXRhciB9IGZyb20gJy4uL2F2YXRhcnMvQXZhdGFyJztcbiAgICAgM1x0aW1wb3J0IHsgTWFya2VkIH0gZnJvbSAnQHRzLXN0YWNrL21hcmtkb3duJztcbiAgICAgNFx0aW1wb3J0IHsgRmlsZVVwbG9hZCwgTWVzc2FnZVR5cGUgfSBmcm9tICcuLi9Cb3QnO1xuICAgICA1XHRpbXBvcnQgeyBBdHRhY2htZW50SWNvbiB9IGZyb20gJy4uL2ljb25zJztcbiAgICAgNlx0XG4gICAgIDdcdHR5cGUgUHJvcHMgPSB7XG4gICAgIDhcdCAgbWVzc2FnZTogTWVzc2FnZVR5cGU7XG4gICAgIDlcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAxMFx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgMTFcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMTJcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMTNcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDE0XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTZcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMTdcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgMThcdH07XG4gICAgMTlcdFxuICAgIDIwXHRjb25zdCBkZWZhdWx0QmFja2dyb3VuZENvbG9yID0gJyMzQjgxRjYnO1xuICAgIDIxXHRjb25zdCBkZWZhdWx0VGV4dENvbG9yID0gJyNmZmZmZmYnO1xuICAgIDIyXHRjb25zdCBkZWZhdWx0Rm9udFNpemUgPSAxNjtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9BZ2VudFJlYXNvbmluZ0J1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgRm9yLCBvbk1vdW50IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyBNYXJrZWQgfSBmcm9tICdAdHMtc3RhY2svbWFya2Rvd24nO1xuICAgICAzXHRpbXBvcnQgeyBGaWxlVXBsb2FkIH0gZnJvbSAnLi4vQm90JztcbiAgICAgNFx0aW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbiAgICAgNVx0XG4gICAgIDZcdHR5cGUgUHJvcHMgPSB7XG4gICAgIDdcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgOFx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDlcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMTBcdCAgYWdlbnROYW1lOiBzdHJpbmc7XG4gICAgMTFcdCAgYWdlbnRNZXNzYWdlOiBzdHJpbmc7XG4gICAgMTJcdCAgYWdlbnRBcnRpZmFjdHM/OiBGaWxlVXBsb2FkW107XG4gICAgMTNcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE0XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAxNlx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAxN1x0fTtcbiAgICAxOFx0XG4gICAgMTlcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnI2Y3ZjhmZic7XG4gICAgMjBcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnIzMwMzIzNSc7XG4gICAgMjFcdGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IDE2O1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0xlYWRDYXB0dXJlQnViYmxlLnRzeFxuLi4uXG4gICAgIDhcdFxuICAgICA5XHR0eXBlIFByb3BzID0ge1xuICAgIDEwXHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgIDExXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAxMlx0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAxM1x0ICBsZWFkc0NvbmZpZz86IExlYWRzQ29uZmlnO1xuICAgIDE0XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgMTVcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMTZcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDE3XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxOFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTlcdCAgc2VuZEJ1dHRvbkNvbG9yPzogc3RyaW5nO1xuICAgIDIwXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDIxXHQgIGlzTGVhZFNhdmVkOiBib29sZWFuO1xuICAgIDIyXHQgIHNldElzTGVhZFNhdmVkOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgMjNcdCAgc2V0TGVhZEVtYWlsOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgICAyNFx0fTtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2Z1bGwvY29tcG9uZW50cy9GdWxsLnRzeFxuICAgICAxXHRpbXBvcnQgc3R5bGVzIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pbmRleC5jc3MnO1xuICAgICAyXHRpbXBvcnQgeyBCb3QsIEJvdFByb3BzIH0gZnJvbSAnQC9jb21wb25lbnRzL0JvdCc7XG4gICAgIDNcdGltcG9ydCB7IEJ1YmJsZVBhcmFtcyB9IGZyb20gJ0AvZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAgNFx0aW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBvbkNsZWFudXAsIG9uTW91bnQsIFNob3cgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDVcdFxuICAgICA2XHRjb25zdCBkZWZhdWx0QnV0dG9uQ29sb3IgPSAnIzNCODFGNic7XG4gICAgIDdcdGNvbnN0IGRlZmF1bHRJY29uQ29sb3IgPSAnd2hpdGUnO1xuICAgICA4XHRcbiAgICAgOVx0ZXhwb3J0IHR5cGUgRnVsbFByb3BzID0gQm90UHJvcHMgJiBCdWJibGVQYXJhbXM7XG4uLi5cblBhdGg6IHNyYy9CdWJibGVDaGF0LnQuLi4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCI4MDIyNjgwNy04YWQ3LTRiNGUtYjliYy0yYzg1YWQ2NjM1OGY7dG9vbHVfdnJ0eF8wMUdUZGd5d3N6dXJLZ3RaYTZjeHRGaFQiOnsicmVxdWVzdElkIjoiODAyMjY4MDctOGFkNy00YjRlLWI5YmMtMmM4NWFkNjYzNThmIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMUdUZGd5d3N6dXJLZ3RaYTZjeHRGaFQiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJTdWNjZXNzZnVsbHkgZWRpdGVkIHRoZSBmaWxlIHNyYy9jb25zdGFudHMudHMuXG5SZXN1bHQgZm9yIHN0cl9yZXBsYWNlIGZvciBlbnRyeSB3aXRoIGluZGV4IFsxXTpcblJlcGxhY2VtZW50IHN1Y2Nlc3NmdWwuXG5FZGl0ZWQgc2VjdGlvbiBhZnRlciBJREUgYXV0by1mb3JtYXR0aW5nIHdhcyBhcHBsaWVkOlxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJvdFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0JvdCc7XG4gICAgIDJcdGltcG9ydCB0eXBlIHsgQnViYmxlUGFyYW1zIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgICAzXHRcbiAgICAgNFx0dHlwZSBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zO1xuICAgICA1XHRcbiAgICAgNlx0LyoqXG4gICAgIDdcdCAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNoYXRib3QgYnViYmxlIGNvbXBvbmVudC5cbiAgICAgOFx0ICogUHJvdmlkZXMgc2Vuc2libGUgZGVmYXVsdHMgZm9yIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzIHdoaWxlIGtlZXBpbmdcbiAgICAgOVx0ICogcmVxdWlyZWQgcHJvcGVydGllcyBleHBsaWNpdGx5IHVuZGVmaW5lZCB0byBlbmZvcmNlIHByb3BlciBjb25maWd1cmF0aW9uLlxuICAgIDEwXHQgKi9cbiAgICAxMVx0ZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gICAgMTJcdCAgLy8gQ29yZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIC0gbXVzdCBiZSBzZXQgYnkgaW1wbGVtZW50ZXJcbiAgICAxM1x0ICBjaGF0Zmxvd2lkOiAnJyxcbiAgICAxNFx0XG4gICAgMTVcdCAgLy8gQVBJIGNvbmZpZ3VyYXRpb25cblxuUmV2aWV3IHRoZSBjaGFuZ2VzIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUgYXMgZXhwZWN0ZWQgKGNvcnJlY3QgaW5kZW50YXRpb24sIG5vIGR1cGxpY2F0ZSBsaW5lcywgZXRjKS5cbkVkaXQgdGhlIGZpbGUgYWdhaW4gaWYgbmVjZXNzYXJ5LlxuIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiZjMwMjM1NDEtNWIyNC00ZTcyLWIzNzMtYmIzNzBkMzZjYjE3O3Rvb2x1X3ZydHhfMDFUUzE0S2VlMkV6SHJlc3FKNjJSUm9aIjp7InJlcXVlc3RJZCI6ImYzMDIzNTQxLTViMjQtNGU3Mi1iMzczLWJiMzcwZDM2Y2IxNyIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFUUzE0S2VlMkV6SHJlc3FKNjJSUm9aIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiSGVyZSBhcmUgdGhlIHJlc3VsdHMgZnJvbSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuXG4gICAgICAgIDxyZXR1cm4tY29kZT5cbiAgICAgICAgMVxuICAgICAgICA8L3JldHVybi1jb2RlPlxuICAgICAgICA8c3Rkb3V0PlxuICAgICAgICBcdTAwMWJbPzkwMDFoXHUwMDFiWz8xMDA0aFx1MDAxYls/MjVsXHUwMDFiWzJKXHUwMDFiW21cdTAwMWJbSFxuXG5cblxuXG5cblxuXHUwMDFiW0hcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1x1MDAxYls/MjVoXHUwMDFiWz8yNWxcdTAwMWJbOTZtc3JjL2NvbnN0YW50cy50c1x1MDAxYlttOlx1MDAxYls5M20xXHUwMDFiW206XHUwMDFiWzkzbTMxIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vY29tcG9uZW50cy9Cb3QnIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL0JvdC50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYls3bVx1MDAxYlszOzFIMVx1MDAxYlsyN20gaW1wb3J0IHR5cGUgeyBCb3RQcm9wcyB9IGZyb20gJy4vY29tcG9uZW50cy9Cb3QnO1x1MDAxYls3bVxuIFx1MDAxYlsyN21cdTAwMWJbMzFYXHUwMDFiWzkxbVx1MDAxYlszMUN+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbbVx1MDAxYls3OzFIRm91bmQgMSBlcnJvciBpbiBzcmMvY29uc3RhbnRzLnRzXHUwMDFiWzkwbToxXG5cdTAwMWJbPzI1aFx1MDAxYlttXG5cdTAwMWJbMzFtZXJyb3JcdTAwMWJbbVx1MDAxYlsybTpcdTAwMWJbMjJtIFwiXHUwMDFiWzFtdHNjLmNtZFx1MDAxYlsyMm1cIiBleGl0ZWQgd2l0aCBjb2RlIDJcblxuICAgICAgICA8L3N0ZG91dD5cbiAgICAgICAgPHN0ZGVycj5cbiAgICAgICAgXG4gICAgICAgIDwvc3RkZXJyPiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sImExN2E4NGFjLTViNmItNDE4MC1hNzA5LTAzNzA1NjQ0YjkyYjt0b29sdV92cnR4XzAxV0ZNMk12RHVkYnlqZDd4V1BwNWR5MyI6eyJyZXF1ZXN0SWQiOiJhMTdhODRhYy01YjZiLTQxODAtYTcwOS0wMzcwNTY0NGI5MmIiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxV0ZNMk12RHVkYnlqZDd4V1BwNWR5MyIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IlN1Y2Nlc3NmdWxseSBlZGl0ZWQgdGhlIGZpbGUgc3JjL2NvbnN0YW50cy50cy5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzFdOlxuUmVwbGFjZW1lbnQgc3VjY2Vzc2Z1bC5cbkVkaXRlZCBzZWN0aW9uIGFmdGVyIElERSBhdXRvLWZvcm1hdHRpbmcgd2FzIGFwcGxpZWQ6XG4gICAgIDFcdC8vIE5vdGU6IFVzaW5nIGlubGluZSB0eXBlIGRlZmluaXRpb24gdG8gYXZvaWQgSlNYIGNvbXBpbGF0aW9uIGlzc3Vlc1xuICAgICAyXHQvLyBUaGlzIG1hdGNoZXMgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcyBmcm9tIHRoZSBvcmlnaW5hbCBjb2RlYmFzZVxuICAgICAzXHR0eXBlIEJ1YmJsZVByb3BzID0ge1xuICAgICA0XHQgIC8vIENvcmUgQm90IHByb3BlcnRpZXNcbiAgICAgNVx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDZcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgN1x0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgOVx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICAxMFx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgIDExXHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICAxMlx0ICBib3RNZXNzYWdlPzogYW55O1xuICAgIDEzXHQgIHVzZXJNZXNzYWdlPzogYW55O1xuICAgIDE0XHQgIHRleHRJbnB1dD86IGFueTtcbiAgICAxNVx0ICBmZWVkYmFjaz86IGFueTtcbiAgICAxNlx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTdcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE5XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgICAyMFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIDIxXHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgICAyMlx0ICB0aXRsZT86IHN0cmluZztcbiAgICAyM1x0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgICAyNFx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAyNVx0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgICAyNlx0ICBmb290ZXI/OiBhbnk7XG4gICAgMjdcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgIDI4XHQgIG9ic2VydmVyc0NvbmZpZz86IGFueTtcbiAgICAyOVx0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgeyBwcm9tcHQ6IHN0cmluZyB9PjtcbiAgICAzMFx0ICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XG4gICAgMzFcdCAgY2xlYXJDaGF0T25SZWxvYWQ/OiBib29sZWFuO1xuICAgIDMyXHQgIGRpc2NsYWltZXI/OiBhbnk7XG4gICAgMzNcdCAgZGF0ZVRpbWVUb2dnbGU/OiBhbnk7XG4gICAgMzRcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgMzVcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAgMzZcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgMzdcdCAgaXNVc2VGQVE/OiBib29sZWFuO1xuICAgIDM4XHQgIGZpbGVQYXRoPzogc3RyaW5nO1xuICAgIDM5XHQgIHN1Z2dlc3RRdWVzdGlvbnM/OiBzdHJpbmc7XG4gICAgNDBcdCAgZXh0ZXJuYWxEYXRhPzogc3RyaW5nO1xuICAgIDQxXHQgIGNhbGxCYWNrRnVuY3Rpb24/OiAoZTogYW55KSA9PiB2b2lkO1xuICAgIDQyXHQgIGNhbGxCYWNrSWNvbj86IHN0cmluZztcbiAgICA0M1x0XG4gICAgNDRcdCAgLy8gQnViYmxlIHRoZW1lIHByb3BlcnRpZXNcbiAgICA0NVx0ICB0aGVtZT86IGFueTtcbiAgICA0Nlx0fTtcbiAgICA0N1x0XG4gICAgNDhcdC8qKlxuICAgIDQ5XHQgKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGF0Ym90IGJ1YmJsZSBjb21wb25lbnQuXG4gICAgNTBcdCAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBhbGwgb3B0aW9uYWwgcHJvcGVydGllcyB3aGlsZSBrZWVwaW5nXG5cblJldmlldyB0aGUgY2hhbmdlcyBhbmQgbWFrZSBzdXJlIHRoZXkgYXJlIGFzIGV4cGVjdGVkIChjb3JyZWN0IGluZGVudGF0aW9uLCBubyBkdXBsaWNhdGUgbGluZXMsIGV0YykuXG5FZGl0IHRoZSBmaWxlIGFnYWluIGlmIG5lY2Vzc2FyeS5cbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sIjg1ZWE1MTIxLTEyNTgtNGNmMC04ZjM2LWU3Nzc0NTI3ZWM3Yzt0b29sdV92cnR4XzAxWGEyRDFRZDhmY04xUDM1UkY1TEpRbiI6eyJyZXF1ZXN0SWQiOiI4NWVhNTEyMS0xMjU4LTRjZjAtOGYzNi1lNzc3NDUyN2VjN2MiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxWGEyRDFRZDhmY04xUDM1UkY1TEpRbiIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkhlcmUgYXJlIHRoZSByZXN1bHRzIGZyb20gZXhlY3V0aW5nIHRoZSBjb21tYW5kLlxuICAgICAgICA8cmV0dXJuLWNvZGU+XG4gICAgICAgIDBcbiAgICAgICAgPC9yZXR1cm4tY29kZT5cbiAgICAgICAgPHN0ZG91dD5cbiAgICAgICAgXHUwMDFiWz85MDAxaFx1MDAxYls/MTAwNGhcdTAwMWJbPzI1bFx1MDAxYlsySlx1MDAxYlttXHUwMDFiW0hcblxuXG5cblxuXG5cblx1MDAxYltIXHUwMDFiXTA7QzpcXFdJTkRPV1NcXFN5c3RlbTMyXFxXaW5kb3dzUG93ZXJTaGVsbFxcdjEuMFxccG93ZXJzaGVsbC5leGVcdTAwMDdcdTAwMWJbPzI1aFxuICAgICAgICA8L3N0ZG91dD5cbiAgICAgICAgPHN0ZGVycj5cbiAgICAgICAgXG4gICAgICAgIDwvc3RkZXJyPiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sIjhmYWZmZjk1LTE2MGItNDlkOC05OGZiLWJlNGIzMDQwNDJlNjt0b29sdV92cnR4XzAxNTZLa1ZEWUZOWGtLWkZUd3lKczJ4SCI6eyJyZXF1ZXN0SWQiOiI4ZmFmZmY5NS0xNjBiLTQ5ZDgtOThmYi1iZTRiMzA0MDQyZTYiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxNTZLa1ZEWUZOWGtLWkZUd3lKczJ4SCIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gc3JjL2NvbnN0YW50cy50czpcbiAgICAgMVx0Ly8gTm90ZTogVXNpbmcgaW5saW5lIHR5cGUgZGVmaW5pdGlvbiB0byBhdm9pZCBKU1ggY29tcGlsYXRpb24gaXNzdWVzXG4gICAgIDJcdC8vIFRoaXMgbWF0Y2hlcyBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zIGZyb20gdGhlIG9yaWdpbmFsIGNvZGViYXNlXG4gICAgIDNcdHR5cGUgQnViYmxlUHJvcHMgPSB7XG4gICAgIDRcdCAgLy8gQ29yZSBCb3QgcHJvcGVydGllc1xuICAgICA1XHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAgNlx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgICA3XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAgOFx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICA5XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgIDEwXHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMTFcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgIDEyXHQgIGJvdE1lc3NhZ2U/OiBhbnk7XG4gICAgMTNcdCAgdXNlck1lc3NhZ2U/OiBhbnk7XG4gICAgMTRcdCAgdGV4dElucHV0PzogYW55O1xuICAgIDE1XHQgIGZlZWRiYWNrPzogYW55O1xuICAgIDE2XHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgICAxN1x0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxOFx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTlcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDIwXHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAgMjFcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgIDIyXHQgIHRpdGxlPzogc3RyaW5nO1xuICAgIDIzXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDI0XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDI1XHQgIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xuICAgIDI2XHQgIGZvb3Rlcj86IGFueTtcbiAgICAyN1x0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAgMjhcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogYW55O1xuICAgIDI5XHQgIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCB7IHByb21wdDogc3RyaW5nIH0+O1xuICAgIDMwXHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgICAzMVx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAgMzJcdCAgZGlzY2xhaW1lcj86IGFueTtcbiAgICAzM1x0ICBkYXRlVGltZVRvZ2dsZT86IGFueTtcbiAgICAzNFx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAzNVx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgICAzNlx0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICAzN1x0ICBpc1VzZUZBUT86IGJvb2xlYW47XG4gICAgMzhcdCAgZmlsZVBhdGg/OiBzdHJpbmc7XG4gICAgMzlcdCAgc3VnZ2VzdFF1ZXN0aW9ucz86IHN0cmluZztcbiAgICA0MFx0ICBleHRlcm5hbERhdGE/OiBzdHJpbmc7XG4gICAgNDFcdCAgY2FsbEJhY2tGdW5jdGlvbj86IChlOiBhbnkpID0+IHZvaWQ7XG4gICAgNDJcdCAgY2FsbEJhY2tJY29uPzogc3RyaW5nO1xuICAgIDQzXHRcbiAgICA0NFx0ICAvLyBCdWJibGUgdGhlbWUgcHJvcGVydGllc1xuICAgIDQ1XHQgIHRoZW1lPzogYW55O1xuICAgIDQ2XHR9O1xuICAgIDQ3XHRcbiAgICA0OFx0LyoqXG4gICAgNDlcdCAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNoYXRib3QgYnViYmxlIGNvbXBvbmVudC5cbiAgICA1MFx0ICogUHJvdmlkZXMgc2Vuc2libGUgZGVmYXVsdHMgZm9yIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzIHdoaWxlIGtlZXBpbmdcbiAgICA1MVx0ICogcmVxdWlyZWQgcHJvcGVydGllcyBleHBsaWNpdGx5IHVuZGVmaW5lZCB0byBlbmZvcmNlIHByb3BlciBjb25maWd1cmF0aW9uLlxuICAgIDUyXHQgKi9cbiAgICA1M1x0ZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gICAgNTRcdCAgLy8gQ29yZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIC0gbXVzdCBiZSBzZXQgYnkgaW1wbGVtZW50ZXJcbiAgICA1NVx0ICBjaGF0Zmxvd2lkOiAnJyxcbiAgICA1Nlx0XG4gICAgNTdcdCAgLy8gQVBJIGNvbmZpZ3VyYXRpb25cbiAgICA1OFx0ICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gICAgNTlcdCAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXG4gICAgNjBcdCAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcbiAgICA2MVx0XG4gICAgNjJcdCAgLy8gVUkgdGhlbWluZyBhbmQgY3VzdG9taXphdGlvblxuICAgIDYzXHQgIHRoZW1lOiB1bmRlZmluZWQsXG4gICAgNjRcdFxuICAgIDY1XHQgIC8vIEV4dGVybmFsIGludGVncmF0aW9uc1xuICAgIDY2XHQgIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gICAgNjdcdCAgcm9vbUlkczoge30sXG4gICAgNjhcdFxuICAgIDY5XHQgIC8vIEZlYXR1cmUgZmxhZ3MgYW5kIG9wdGlvbmFsIGZ1bmN0aW9uYWxpdHlcbiAgICA3MFx0ICBpc1VzZUZBUTogZmFsc2UsXG4gICAgNzFcdFxuICAgIDcyXHQgIC8vIEZpbGUgYW5kIGNvbnRlbnQgY29uZmlndXJhdGlvblxuICAgIDczXHQgIGZpbGVQYXRoOiAnJyxcbiAgICA3NFx0ICBzdWdnZXN0UXVlc3Rpb25zOiAnJyxcbiAgICA3NVx0ICBleHRlcm5hbERhdGE6ICcnLFxuICAgIDc2XHQgIGNhbGxCYWNrSWNvbjogJycsXG4gICAgNzdcdCAgY2FsbEJhY2tGdW5jdGlvbjogdW5kZWZpbmVkLFxuICAgIDc4XHRcbiAgICA3OVx0ICAvLyBNb25pdG9yaW5nIGFuZCBhbmFseXRpY3NcbiAgICA4MFx0ICBvYnNlcnZlcnNDb25maWc6IHVuZGVmaW5lZCxcbiAgICA4MVx0fTtcbiAgICA4Mlx0XG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiA4MlxuIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiNzZmMzNhMWYtN2U2Yi00NzZkLThhYzUtYmU4YjQwZWQ3MDA0O3Rvb2x1X3ZydHhfMDFSNUhXcnN4d3FpcFNxRjYzd1gyQlRTIjp7InJlcXVlc3RJZCI6Ijc2ZjMzYTFmLTdlNmItNDc2ZC04YWM1LWJlOGI0MGVkNzAwNCIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFSNUhXcnN4d3FpcFNxRjYzd1gyQlRTIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiSGVyZSBhcmUgdGhlIHJlc3VsdHMgZnJvbSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuXG4gICAgICAgIDxyZXR1cm4tY29kZT5cbiAgICAgICAgMVxuICAgICAgICA8L3JldHVybi1jb2RlPlxuICAgICAgICA8c3Rkb3V0PlxuICAgICAgICBcdTAwMWJbPzkwMDFoXHUwMDFiWz8xMDA0aFx1MDAxYls/MjVsXHUwMDFiWzJKXHUwMDFiW21cdTAwMWJbSFxuXG5cblxuXG5cblxuXHUwMDFiW0hcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1x1MDAxYls/MjVoXHUwMDFiWz8yNWxcdTAwMWJbOTZtc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTFcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9CdWJibGUnIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUudHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbN21cdTAwMWJbMzsxSDFcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vQnViYmxlJztcdTAwMWJbN21cbiBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+flx1MDAxYls5Nm1cdTAwMWJbNjsxSHNyYy9mZWF0dXJlcy9mdWxsL2NvbXBvbmVudHMvaW5kZXgudHNcdTAwMWJbbTpcdTAwMWJbOTNtMVx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL0Z1bGwnIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9mZWF0dXJlcy9mdWxsL2NvbXBvbmVudHMvRnVsbC50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYls3bVx1MDAxYls4OzFIMVx1MDAxYlsyN20gZXhwb3J0ICogZnJvbSAnLi9GdWxsJztcblx1MDAxYls/MjVoXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvcmVnaXN0ZXIudHN4XHUwMDFiW206XHUwMDFiWzkzbTNcdTAwMWJbbTpcdTAwMWJbOTNtMTAgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA1OiBcdTAwMWJbbU1vZHVsZSAnXCIuL2ZlYXR1cmVzL2J1YmJsZVwiJyBoYXMgbm8gZXhwb3J0ZWQgbWVtYmVyICdCdWJibGUnLlx1MDAxYltLXG5cblx1MDAxYls3bTNcdTAwMWJbMjdtIGltcG9ydCB7IEJ1YmJsZSB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlJztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMTBYXHUwMDFiWzkxbVx1MDAxYlsxMEN+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9yZWdpc3Rlci50c3hcdTAwMWJbbTpcdTAwMWJbOTNtNFx1MDAxYlttOlx1MDAxYls5M20xMCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDU6IFx1MDAxYlttTW9kdWxlICdcIi4vZmVhdHVyZXMvZnVsbFwiJyBoYXMgbm8gZXhwb3J0ZWQgbWVtYmVyICdGdWxsJy5cdTAwMWJbS1xuXG5cdTAwMWJbN200XHUwMDFiWzI3bSBpbXBvcnQgeyBGdWxsIH0gZnJvbSAnLi9mZWF0dXJlcy9mdWxsJztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMTBYXHUwMDFiWzkxbVx1MDAxYlsxMEN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvcmVnaXN0ZXIudHN4XHUwMDFiW206XHUwMDFiWzkzbThcdTAwMWJbbTpcdTAwMWJbOTNtMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI1Nzg6IFx1MDAxYlttVW51c2VkICdAdHMtZXhwZWN0LWVycm9yJyBkaXJlY3RpdmUuXHUwMDFiW0tcblxuXHUwMDFiWzdtOFx1MDAxYlsyN20gICAvLyBAdHMtZXhwZWN0LWVycm9yIGVsZW1lbnQgaW5jb3JlY3QgdHlwZVx1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bSAgIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cbkZvdW5kIDUgZXJyb3JzIGluIDMgZmlsZXMuXG5cbkVycm9ycyAgRmlsZXNcbiAgICAgMSAgc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL2luZGV4LnRzXHUwMDFiWzkwbToxXHUwMDFiW0tcdTAwMWJbbVxuICAgICAxICBzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL2luZGV4LnRzXHUwMDFiWzkwbToxXHUwMDFiW0tcdTAwMWJbbVxuICAgICAzICBzcmMvcmVnaXN0ZXIudHN4XHUwMDFiWzkwbTozXHUwMDFiW0tcdTAwMWJbbVxuXHUwMDFiWzMxbWVycm9yXHUwMDFiW21cdTAwMWJbMm06XHUwMDFiWzIybSBcIlx1MDAxYlsxbXRzYy5jbWRcdTAwMWJbMjJtXCIgZXhpdGVkIHdpdGggY29kZSAyXG5cbiAgICAgICAgPC9zdGRvdXQ+XG4gICAgICAgIDxzdGRlcnI+XG4gICAgICAgIFxuICAgICAgICA8L3N0ZGVycj4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19fSwiZHJhZnRFeGNoYW5nZSI6eyJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJyaWNoX3RleHRfanNvbl9yZXByIjp7InR5cGUiOiJkb2MiLCJjb250ZW50IjpbeyJ0eXBlIjoicGFyYWdyYXBoIn1dfSwic3RhdHVzIjoiZHJhZnQifSwiZHJhZnRBY3RpdmVDb250ZXh0SWRzIjpbIkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29uc3RhbnRzLnRzOkwyLTE3IiwiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb25zdGFudHMudHMiLCJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3hmYWxzZWZhbHNlIiwiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW5mYWxzZWZhbHNlIiwidXNlckd1aWRlbGluZXMiLCJhZ2VudE1lbW9yaWVzIl0sInJlcXVlc3RJZHMiOltdLCJpc1Bpbm5lZCI6ZmFsc2UsImlzU2hhcmVhYmxlIjp0cnVlLCJleHRyYURhdGEiOnsiaXNBZ2VudENvbnZlcnNhdGlvbiI6dHJ1ZSwiaGFzRGlydHlFZGl0cyI6ZmFsc2UsImJhc2VsaW5lVGltZXN0YW1wIjowfSwicGVyc29uYVR5cGUiOjAsInJvb3RUYXNrVXVpZCI6IjU3MmZjZDM3LTJmMzktNDg2YS1iZGVmLWFkMmE1YjliOTgxYSJ9LCIyYTFhMzU5NC1iMmRlLTQxMjctYmRhMy0wODNlOWFlZTgwMTUiOnsiaWQiOiIyYTFhMzU5NC1iMmRlLTQxMjctYmRhMy0wODNlOWFlZTgwMTUiLCJjcmVhdGVkQXRJc28iOiIyMDI1LTA1LTMwVDA0OjAyOjAzLjM3N1oiLCJsYXN0SW50ZXJhY3RlZEF0SXNvIjoiMjAyNS0wNS0zMFQwNDowNzozNS4yODZaIiwiY2hhdEhpc3RvcnkiOlt7InJlcXVlc3RfaWQiOiI3OWUzZTE3MC1kZThlLTRmMjgtYjM4OS0yY2ZiNGVlNzJkYjEiLCJ1dWlkIjoiYzNmNjQyYjktYzFlZS00YTkwLTg5MzgtMzlkNGMwOGNlNDZlIiwiY2hhdEl0ZW1UeXBlIjoiYWdlbnRpYy1jaGVja3BvaW50LWRlbGltaXRlciIsInN0YXR1cyI6InN1Y2Nlc3MiLCJmcm9tVGltZXN0YW1wIjowLCJ0b1RpbWVzdGFtcCI6MTc0ODU3NzcyMzM3OCwic2Vlbl9zdGF0ZSI6InNlZW4ifSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiMDFlNjcxYTQtYzM5Mi00Nzc1LWFhMWYtYzg2Nzk1N2E3NmUyIiwicmVxdWVzdF9tZXNzYWdlIjoiYWRkIHByb3BzIG9uQmVmb3JlU2VuZDogRnVuY3Rpb24gZm9yIHRoaXMgcHJvamVjdCBlbWJlZCIsInJpY2hfdGV4dF9qc29uX3JlcHIiOnsidHlwZSI6ImRvYyIsImNvbnRlbnQiOlt7InR5cGUiOiJwYXJhZ3JhcGgiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJhZGQgcHJvcHMgb25CZWZvcmVTZW5kOiBGdW5jdGlvbiBmb3IgdGhpcyBwcm9qZWN0IGVtYmVkIn1dfV19LCJtZW50aW9uZWRfaXRlbXMiOltdLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDE0S2pLRmdNOGg1RjhUazhzNUU5R0dYIiwidG9vbF9uYW1lIjoidmlldyIsImlucHV0X2pzb24iOiJ7XCJwYXRoXCI6IFwic3JjXCIsIFwidHlwZVwiOiBcImRpcmVjdG9yeVwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IkknbGwgaGVscCB5b3UgYWRkIGFuIGBvbkJlZm9yZVNlbmRgIHByb3AgZnVuY3Rpb24gdG8gdGhpcyBwcm9qZWN0J3MgZW1iZWQuIExldCBtZSBmaXJzdCBnYXRoZXIgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgY29kZWJhc2Ugc3RydWN0dXJlIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBlbWJlZCBpcyBpbXBsZW1lbnRlZC5cbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjAsInR5cGUiOjAsInRleHRfbm9kZSI6eyJjb250ZW50IjoiYWRkIHByb3BzIG9uQmVmb3JlU2VuZDogRnVuY3Rpb24gZm9yIHRoaXMgcHJvamVjdCBlbWJlZCJ9fSx7ImlkIjoxLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTYsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDI6MzguNDM5WiIsInJlc3BvbnNlX3RleHQiOiJJJ2xsIGhlbHAgeW91IGFkZCBhbiBgb25CZWZvcmVTZW5kYCBwcm9wIGZ1bmN0aW9uIHRvIHRoaXMgcHJvamVjdCdzIGVtYmVkLiBMZXQgbWUgZmlyc3QgZ2F0aGVyIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IGNvZGViYXNlIHN0cnVjdHVyZSB0byB1bmRlcnN0YW5kIGhvdyB0aGUgZW1iZWQgaXMgaW1wbGVtZW50ZWQuXG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiMWYxMzM0MzQtMWFjYS00NWQyLWI3NmQtYTJiNTJjZWVhNDRhIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxNlczMXB5ckoxUWJGekpIRzFMZmloRSIsInRvb2xfbmFtZSI6InZpZXciLCJpbnB1dF9qc29uIjoie1wicGF0aFwiOiBcInNyYy9pbmRleC50c1wiLCBcInR5cGVcIjogXCJmaWxlXCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSdzIHRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdXAgdG8gMiBsZXZlbHMgZGVlcCBpbiBzcmMsIGV4Y2x1ZGluZyBoaWRkZW4gaXRlbXM6XG5zcmMvYXNzZXRzXG5zcmMvYXNzZXRzXFxpbmRleC5jc3NcbnNyYy9hc3NldHNcXHJlY2VpdmVfbWVzc2FnZS5tcDNcbnNyYy9hc3NldHNcXHNlbmRfbWVzc2FnZS5tcDNcbnNyYy9hc3NldHNcXHdhdmUtc291bmQuanBnXG5zcmMvY29tcG9uZW50c1xuc3JjL2NvbXBvbmVudHNcXEJhZGdlLnRzeFxuc3JjL2NvbXBvbmVudHNcXEJvdC50c3hcbnNyYy9jb21wb25lbnRzXFxGZWVkYmFja0NvbnRlbnREaWFsb2cudHN4XG5zcmMvY29tcG9uZW50c1xcVHlwaW5nQnViYmxlLnRzeFxuc3JjL2NvbXBvbmVudHNcXGF2YXRhcnNcbnNyYy9jb21wb25lbnRzXFxidWJibGVzXG5zcmMvY29tcG9uZW50c1xcYnV0dG9uc1xuc3JjL2NvbXBvbmVudHNcXGljb25zXG5zcmMvY29tcG9uZW50c1xcaW5kZXgudHNcbnNyYy9jb21wb25lbnRzXFxpbnB1dHNcbnNyYy9jb25zdGFudHMudHNcbnNyYy9lbnYuZC50c1xuc3JjL2ZlYXR1cmVzXG5zcmMvZmVhdHVyZXNcXGJ1YmJsZVxuc3JjL2ZlYXR1cmVzXFxmdWxsXG5zcmMvZmVhdHVyZXNcXHBvcHVwXG5zcmMvZ2xvYmFsLmQudHNcbnNyYy9pbmRleC50c1xuc3JjL3F1ZXJpZXNcbnNyYy9xdWVyaWVzXFxzZW5kTWVzc2FnZVF1ZXJ5LnRzXG5zcmMvcmVnaXN0ZXIudHN4XG5zcmMvdHlwZXMudHNcbnNyYy91dGlsc1xuc3JjL3V0aWxzXFxhdWRpb1JlY29yZGluZy50c1xuc3JjL3V0aWxzXFxjaGF0SW5wdXRIaXN0b3J5LnRzXG5zcmMvdXRpbHNcXGVtYmVkU2NyaXB0LmpzXG5zcmMvdXRpbHNcXGluZGV4LnRzXG5zcmMvdXRpbHNcXGlzTW9iaWxlU2lnbmFsLnRzXG5zcmMvd2ViLnRzXG5zcmMvd2luZG93LnRzXG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDE0S2pLRmdNOGg1RjhUazhzNUU5R0dYIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxNiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowMjo0MS43ODFaIiwicmVzcG9uc2VfdGV4dCI6IiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiJmNDIxZDNiYi1mMGQ3LTQ0OTItYTVkZC1kZTRiMTMwZmQ4ZTYiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFZQ0FEN0tYZTl4VFB5emZ0WkJKQVhqIiwidG9vbF9uYW1lIjoiY29kZWJhc2UtcmV0cmlldmFsIiwiaW5wdXRfanNvbiI6IntcImluZm9ybWF0aW9uX3JlcXVlc3RcIjogXCJGaW5kIHRoZSBtYWluIGNoYXQgY29tcG9uZW50cywgZW1iZWQgaW1wbGVtZW50YXRpb25zLCBhbmQgaG93IG1lc3NhZ2VzIGFyZSBzZW50LiBMb29rIGZvciBCdWJibGVDaGF0LCBGdWxsUGFnZUNoYXQsIGFuZCBhbnkgbWVzc2FnZSBzZW5kaW5nIGZ1bmN0aW9uYWxpdHkgaW5jbHVkaW5nIHByb3BzIGludGVyZmFjZXMgYW5kIHR5cGVzLlwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IkxldCBtZSBjaGVjayB0aGUgbWFpbiBjb21wb25lbnRzIGFuZCB1bmRlcnN0YW5kIHRoZSBzdHJ1Y3R1cmUgYmV0dGVyOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSdzIHRoZSByZXN1bHQgb2YgcnVubmluZyBgY2F0IC1uYCBvbiBzcmMvaW5kZXgudHM6XG4gICAgIDFcdGV4cG9ydCB7IEZ1bGxQYWdlQ2hhdCB9IGZyb20gJy4vRnVsbFBhZ2VDaGF0J1xuICAgICAyXHRleHBvcnQgeyBCdWJibGVDaGF0IH0gZnJvbSAnLi9CdWJibGVDaGF0J1xuICAgICAzXHRcblRvdGFsIGxpbmVzIGluIGZpbGU6IDNcbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMTZXMzFweXJKMVFiRnpKSEcxTGZpaEUifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjE2LCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjAyOjQ0LjIzOVoiLCJyZXNwb25zZV90ZXh0IjoiTGV0IG1lIGNoZWNrIHRoZSBtYWluIGNvbXBvbmVudHMgYW5kIHVuZGVyc3RhbmQgdGhlIHN0cnVjdHVyZSBiZXR0ZXI6XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiZTA2YjQ1ODctYjdhNS00YjUxLTkzMzMtNjNlMDZhNjI4NTk1IiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxWTRuS0xBRGZVd1h2bUNIVFZNM2JZOCIsInRvb2xfbmFtZSI6InZpZXciLCJpbnB1dF9qc29uIjoie1wicGF0aFwiOiBcInNyYy9jb21wb25lbnRzL0JvdC50c3hcIiwgXCJ0eXBlXCI6IFwiZmlsZVwiLCBcInZpZXdfcmFuZ2VcIjogWzEsIDIwMF19IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTm93IGxldCBtZSBsb29rIGF0IHRoZSBCb3QgY29tcG9uZW50IG1vcmUgY2xvc2VseSB0byB1bmRlcnN0YW5kIGhvdyBtZXNzYWdlcyBhcmUgc2VudDpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IlRoZSBmb2xsb3dpbmcgY29kZSBzZWN0aW9ucyB3ZXJlIHJldHJpZXZlZDpcblBhdGg6IHNyYy9jb25zdGFudHMudHNcbiAgICAgMVx0Ly8gTm90ZTogVXNpbmcgaW5saW5lIHR5cGUgZGVmaW5pdGlvbiB0byBhdm9pZCBKU1ggY29tcGlsYXRpb24gaXNzdWVzXG4gICAgIDJcdC8vIFRoaXMgbWF0Y2hlcyBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zIGZyb20gdGhlIG9yaWdpbmFsIGNvZGViYXNlXG4gICAgIDNcdHR5cGUgQnViYmxlUHJvcHMgPSB7XG4gICAgIDRcdCAgLy8gQ29yZSBCb3QgcHJvcGVydGllc1xuICAgICA1XHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAgNlx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgICA3XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAgOFx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICA5XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgIDEwXHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMTFcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgIDEyXHQgIGJvdE1lc3NhZ2U/OiBhbnk7XG4gICAgMTNcdCAgdXNlck1lc3NhZ2U/OiBhbnk7XG4gICAgMTRcdCAgdGV4dElucHV0PzogYW55O1xuICAgIDE1XHQgIGZlZWRiYWNrPzogYW55O1xuICAgIDE2XHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgICAxN1x0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxOFx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTlcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDIwXHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAgMjFcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgIDIyXHQgIHRpdGxlPzogc3RyaW5nO1xuICAgIDIzXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDI0XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDI1XHQgIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xuICAgIDI2XHQgIGZvb3Rlcj86IGFueTtcbiAgICAyN1x0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4uLi5cbiAgICA0N1x0XG4gICAgNDhcdC8qKlxuICAgIDQ5XHQgKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGF0Ym90IGJ1YmJsZSBjb21wb25lbnQuXG4gICAgNTBcdCAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBhbGwgb3B0aW9uYWwgcHJvcGVydGllcyB3aGlsZSBrZWVwaW5nXG4gICAgNTFcdCAqIHJlcXVpcmVkIHByb3BlcnRpZXMgZXhwbGljaXRseSB1bmRlZmluZWQgdG8gZW5mb3JjZSBwcm9wZXIgY29uZmlndXJhdGlvbi5cbiAgICA1Mlx0ICovXG4gICAgNTNcdGV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xuICAgIDU0XHQgIC8vIENvcmUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiAtIG11c3QgYmUgc2V0IGJ5IGltcGxlbWVudGVyXG4gICAgNTVcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgNTZcdFxuICAgIDU3XHQgIC8vIEFQSSBjb25maWd1cmF0aW9uXG4gICAgNThcdCAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICAgIDU5XHQgIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICAgIDYwXHQgIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4gICAgNjFcdFxuICAgIDYyXHQgIC8vIFVJIHRoZW1pbmcgYW5kIGN1c3RvbWl6YXRpb25cbiAgICA2M1x0ICB0aGVtZTogdW5kZWZpbmVkLFxuICAgIDY0XHRcbiAgICA2NVx0ICAvLyBFeHRlcm5hbCBpbnRlZ3JhdGlvbnNcbiAgICA2Nlx0ICBjaGF0d29vdFVybDogdW5kZWZpbmVkLFxuICAgIDY3XHQgIHJvb21JZHM6IHt9LFxuICAgIDY4XHRcbiAgICA2OVx0ICAvLyBGZWF0dXJlIGZsYWdzIGFuZCBvcHRpb25hbCBmdW5jdGlvbmFsaXR5XG4gICAgNzBcdCAgaXNVc2VGQVE6IGZhbHNlLFxuICAgIDcxXHRcbiAgICA3Mlx0ICAvLyBGaWxlIGFuZCBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAgICA3M1x0ICBmaWxlUGF0aDogJycsXG4gICAgNzRcdCAgc3VnZ2VzdFF1ZXN0aW9uczogJycsXG4gICAgNzVcdCAgZXh0ZXJuYWxEYXRhOiAnJyxcbiAgICA3Nlx0ICBjYWxsQmFja0ljb246ICcnLFxuICAgIDc3XHQgIGNhbGxCYWNrRnVuY3Rpb246IHVuZGVmaW5lZCxcbi4uLlxuUGF0aDogUkVBRE1FLm1kXG4gICAgIDFcdDwhLS0gbWFya2Rvd25saW50LWRpc2FibGUgTUQwMzAgLS0+XG4gICAgIDJcdFxuICAgICAzXHQjIEZsb3dpc2UgRW1iZWQgUmVhY3RcbiAgICAgNFx0XG4gICAgIDVcdFJlYWN0IGxpYnJhcnkgdG8gZGlzcGxheSBmbG93aXNlIGNoYXRib3Qgb24geW91ciB3ZWJzaXRlXG4gICAgIDZcdFxuICAgICA3XHQhW0Zsb3dpc2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9GbG93aXNlQUkvRmxvd2lzZUNoYXRFbWJlZC9ibG9iL21haW4vaW1hZ2VzL0NoYXRFbWJlZC5naWY/cmF3PXRydWUpXG4gICAgIDhcdFxuICAgICA5XHQjIyBJbnN0YWxsXG4gICAgMTBcdFxuICAgIDExXHRgYGBiYXNoXG4gICAgMTJcdG5wbSBpbnN0YWxsIGMtYWdlbnQtZW1iZWRkaW5nIGMtYWdlbnQtZW1iZWRkaW5nLXJlYWN0XG4gICAgMTNcdGBgYFxuICAgIDE0XHRcbiAgICAxNVx0b3JcbiAgICAxNlx0XG4gICAgMTdcdGBgYGJhc2hcbiAgICAxOFx0eWFybiBhZGQgYy1hZ2VudC1lbWJlZGRpbmcgYy1hZ2VudC1lbWJlZGRpbmctcmVhY3RcbiAgICAxOVx0YGBgXG4gICAgMjBcdFxuICAgIDIxXHQjIyBJbXBvcnRcbiAgICAyMlx0XG4gICAgMjNcdEZ1bGwgUGFnZSBDaGF0XG4gICAgMjRcdFxuICAgIDI1XHRgYGB0c3hcbiAgICAyNlx0aW1wb3J0IHsgRnVsbFBhZ2VDaGF0IH0gZnJvbSBcImMtYWdlbnQtZW1iZWRkaW5nLXJlYWN0XCI7XG4gICAgMjdcdFxuICAgIDI4XHRjb25zdCBBcHAgPSAoKSA9PiB7XG4gICAgMjlcdCAgcmV0dXJuIChcbiAgICAzMFx0ICAgIDxGdWxsUGFnZUNoYXRcbiAgICAzMVx0ICAgICAgY2hhdGZsb3dpZD1cInlvdXItY2hhdGZsb3ctaWRcIlxuICAgIDMyXHQgICAgICBhcGlIb3N0PVwiaHR0cDovL2xvY2FsaG9zdDozMDAwXCJcbiAgICAzM1x0ICAgIC8+XG4gICAgMzRcdCAgKTtcbiAgICAzNVx0fTtcbiAgICAzNlx0YGBgXG4gICAgMzdcdFxuICAgIDM4XHRQb3B1cCBDaGF0XG4gICAgMzlcdFxuICAgIDQwXHRgYGB0c3hcbiAgICA0MVx0aW1wb3J0IHsgQnViYmxlQ2hhdCB9IGZyb20gXCJjLWFnZW50LWVtYmVkZGluZy1yZWFjdFwiO1xuICAgIDQyXHRcbiAgICA0M1x0Y29uc3QgQXBwID0gKCkgPT4ge1xuICAgIDQ0XHQgIHJldHVybiAoXG4gICAgNDVcdCAgICA8QnViYmxlQ2hhdCBjaGF0Zmxvd2lkPVwieW91ci1jaGF0Zmxvdy1pZFwiIGFwaUhvc3Q9XCJodHRwOi8vbG9jYWxob3N0OjMwMDBcIiAvPlxuICAgIDQ2XHQgICk7XG4gICAgNDdcdH07XG4gICAgNDhcdGBgYFxuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0JvdEJ1YmJsZS50c3hcbi4uLlxuICAgIDE4XHRcbiAgICAxOVx0dHlwZSBQcm9wcyA9IHtcbiAgICAyMFx0ICBtZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgICAyMVx0ICBzZXRNZXNzYWdlcz86IGFueTtcbiAgICAyMlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgMjNcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMjRcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAyNVx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgMjZcdCAgZmlsZUFubm90YXRpb25zPzogYW55O1xuICAgIDI3XHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDI4XHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAyOVx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMzBcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDMxXHQgIGNoYXRGZWVkYmFja1N0YXR1cz86IGJvb2xlYW47XG4gICAgMzJcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMzNcdCAgZmVlZGJhY2tDb2xvcj86IHN0cmluZztcbiAgICAzNFx0ICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gICAgMzVcdCAgZGF0ZVRpbWVUb2dnbGU/OiBEYXRlVGltZVRvZ2dsZVRoZW1lO1xuICAgIDM2XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgICAzN1x0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAgMzhcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgMzlcdCAgaGFuZGxlQWN0aW9uQ2xpY2s6IChsYWJlbDogc3RyaW5nLCBhY3Rpb246IElBY3Rpb24gfCB1bmRlZmluZWQgfCBudWxsKSA9PiB2b2lkO1xuICAgIDQwXHQgIGhhbmRsZVNvdXJjZURvY3VtZW50c0NsaWNrOiAoc3JjOiBhbnkpID0+IHZvaWQ7XG4gICAgNDFcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAgNDJcdCAgb25Db25uZWN0VG9IdW1hbkFkdmlzb3I/OiAoaWQ6IHN0cmluZywgcGFyYW1zPzogYW55KSA9PiB2b2lkO1xuICAgIDQzXHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIDQ0XHQgIHF1ZXN0aW9uPzogc3RyaW5nO1xuLi4uXG5QYXRoOiBzcmMvRnVsbFBhZ2VDaGF0LnRzeFxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJvdFByb3BzIH0gZnJvbSAnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcnXG4gICAgIDJcdGltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG4gICAgIDNcdFxuICAgICA0XHR0eXBlIFByb3BzID0gQm90UHJvcHMgJiB7XG4gICAgIDVcdCAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzXG4gICAgIDZcdCAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICAgIDdcdH1cbiAgICAgOFx0XG4gICAgIDlcdGRlY2xhcmUgZ2xvYmFsIHtcbiAgICAxMFx0ICBuYW1lc3BhY2UgSlNYIHtcbiAgICAxMVx0ICAgIGludGVyZmFjZSBJbnRyaW5zaWNFbGVtZW50cyB7XG4gICAgMTJcdCAgICAgICdmbG93aXNlLWZ1bGxjaGF0Ym90JzogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gICAgMTNcdCAgICAgICAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTEVsZW1lbnQ+LFxuICAgIDE0XHQgICAgICAgIEhUTUxFbGVtZW50XG4gICAgMTVcdCAgICAgID4gJiB7IGNsYXNzPzogc3RyaW5nIH1cbiAgICAxNlx0ICAgIH1cbiAgICAxN1x0ICB9XG4gICAgMThcdH1cbi4uLlxuUGF0aDogc3JjL3F1ZXJpZXMvc2VuZE1lc3NhZ2VRdWVyeS50c1xuICAgICAxXHRpbXBvcnQgeyBGaWxlVXBsb2FkLCBJQWN0aW9uIH0gZnJvbSAnQC9jb21wb25lbnRzL0JvdCc7XG4gICAgIDJcdGltcG9ydCB7IHNlbmRSZXF1ZXN0IH0gZnJvbSAnQC91dGlscy9pbmRleCc7XG4gICAgIDNcdFxuICAgICA0XHRleHBvcnQgdHlwZSBJbmNvbWluZ0lucHV0ID0ge1xuICAgICA1XHQgIHF1ZXN0aW9uOiBzdHJpbmc7XG4gICAgIDZcdCAgdXBsb2Fkcz86IEZpbGVVcGxvYWRbXTtcbiAgICAgN1x0ICBvdmVycmlkZUNvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICA4XHQgIHNvY2tldElPQ2xpZW50SWQ/OiBzdHJpbmc7XG4gICAgIDlcdCAgY2hhdElkPzogc3RyaW5nO1xuICAgIDEwXHQgIGZpbGVOYW1lPzogc3RyaW5nOyAvLyBPbmx5IGZvciBhc3Npc3RhbnRcbiAgICAxMVx0ICBsZWFkRW1haWw/OiBzdHJpbmc7XG4gICAgMTJcdCAgYWN0aW9uPzogSUFjdGlvbjtcbiAgICAxM1x0ICBzdG9yZWQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIDE0XHQgIGZldGNoPzogYm9vbGVhbjtcbiAgICAxNVx0ICBmYXFJZD86IHN0cmluZztcbiAgICAxNlx0ICB1c2VJZD86IHN0cmluZztcbiAgICAxN1x0fTtcbiAgICAxOFx0XG4gICAgMTlcdHR5cGUgQmFzZVJlcXVlc3QgPSB7XG4gICAgMjBcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAyMVx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgMjJcdH07XG4gICAgMjNcdFxuICAgIDI0XHRleHBvcnQgdHlwZSBNZXNzYWdlUmVxdWVzdCA9IEJhc2VSZXF1ZXN0ICYge1xuICAgIDI1XHQgIGNoYXRmbG93aWQ/OiBzdHJpbmc7XG4gICAgMjZcdCAgYm9keT86IEluY29taW5nSW5wdXQ7XG4gICAgMjdcdH07XG4uLi5cbiAgICA2OVx0XG4gICAgNzBcdGV4cG9ydCBjb25zdCBnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSA9ICgpOiBhbnkgfCBudWxsID0+IHtcbiAgICA3MVx0ICBjb25zdCBkYXRhTG9naW4gPSBsb2NhbFN0b3JhZ2U/LmdldEl0ZW0oJ2RhdGFMb2dpbicpO1xuICAgIDcyXHQgIGlmIChkYXRhTG9naW4pIHtcbiAgICA3M1x0ICAgIHRyeSB7XG4gICAgNzRcdCAgICAgIGNvbnN0IGRhdGEgPSBKU09OPy5wYXJzZShkYXRhTG9naW4pO1xuICAgIDc1XHQgICAgICByZXR1cm4gZGF0YS5hY2Nlc3NUb2tlbjtcbiAgICA3Nlx0ICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgNzdcdCAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgdXNlciBkYXRhIGZyb20gbG9jYWxTdG9yYWdlOicsIGVycm9yKTtcbiAgICA3OFx0ICAgICAgcmV0dXJuIG51bGw7XG4gICAgNzlcdCAgICB9XG4gICAgODBcdCAgfVxuICAgIDgxXHQgIHJldHVybiBudWxsO1xuICAgIDgyXHR9O1xuICAgIDgzXHRcbiAgICA4NFx0ZXhwb3J0IGNvbnN0IHNlbmRGZWVkYmFja1F1ZXJ5ID0gKHsgY2hhdGZsb3dpZCwgYXBpSG9zdCA9ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLCBib2R5LCBvblJlcXVlc3QgfTogQ3JlYXRlRmVlZGJhY2tSZXF1ZXN0KSA9PlxuICAgIDg1XHQgIHNlbmRSZXF1ZXN0KHtcbiAgICA4Nlx0ICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIDg3XHQgICAgdXJsOiBgJHthcGlIb3N0fS9hcGkvdjEvZmVlZGJhY2svJHtjaGF0Zmxvd2lkfWAsXG4gICAgODhcdCAgICBib2R5LFxuICAgIDg5XHQgICAgb25SZXF1ZXN0OiBvblJlcXVlc3QsXG4gICAgOTBcdCAgICBoZWFkZXJzOiB7XG4gICAgOTFcdCAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSgpfWAsXG4gICAgOTJcdCAgICB9LFxuICAgIDkzXHQgIH0pO1xuLi4uXG4gICAxMTVcdFxuICAgMTE2XHRleHBvcnQgY29uc3Qgc2VuZE1lc3NhZ2VRdWVyeSA9ICh7IGNoYXRmbG93aWQsIGFwaUhvc3QgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJywgYm9keSwgb25SZXF1ZXN0IH06IE1lc3NhZ2VSZXF1ZXN0KSA9PiB7XG4gICAxMTdcdCAgcmV0dXJuIHNlbmRSZXF1ZXN0PGFueT4oe1xuICAgMTE4XHQgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAxMTlcdCAgICB1cmw6IGAke2FwaUhvc3R9L2FwaS92MS9wcmVkaWN0aW9uLyR7Y2hhdGZsb3dpZH1gLFxuICAgMTIwXHQgICAgYm9keSxcbiAgIDEyMVx0ICAgIG9uUmVxdWVzdDogb25SZXF1ZXN0LFxuICAgMTIyXHQgICAgaGVhZGVyczoge1xuICAgMTIzXHQgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgMTI0XHQgICAgfSxcbiAgIDEyNVx0ICB9KTtcbiAgIDEyNlx0fTtcbiAgIDEyN1x0XG4gICAxMjhcdGV4cG9ydCBjb25zdCBjcmVhdGVBdHRhY2htZW50V2l0aEZvcm1EYXRhID0gKHsgY2hhdGZsb3dpZCwgYXBpSG9zdCA9ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLCBmb3JtRGF0YSwgb25SZXF1ZXN0IH06IFVwc2VydFJlcXVlc3QpID0+XG4gICAxMjlcdCAgc2VuZFJlcXVlc3Qoe1xuICAgMTMwXHQgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAxMzFcdCAgICB1cmw6IGAke2FwaUhvc3R9L2FwaS92MS9hdHRhY2htZW50cy8ke2NoYXRmbG93aWR9LyR7Zm9ybURhdGEuZ2V0KCdjaGF0SWQnKX1gLFxuICAgMTMyXHQgICAgZm9ybURhdGEsXG4gICAxMzNcdCAgICBoZWFkZXJzOiB7XG4gICAxMzRcdCAgICAgICdDb250ZW50LVR5cGUnOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsXG4gICAxMzVcdCAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSgpfWAsXG4gICAxMzZcdCAgICB9LFxuICAgMTM3XHQgICAgb25SZXF1ZXN0OiBvblJlcXVlc3QsXG4gICAxMzhcdCAgfSk7XG4uLi5cbiAgIDE2MVx0XG4gICAxNjJcdGV4cG9ydCBjb25zdCBpc1N0cmVhbUF2YWlsYWJsZVF1ZXJ5ID0gKHsgY2hhdGZsb3dpZCwgYXBpSG9zdCA9ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLCBvblJlcXVlc3QgfTogTWVzc2FnZVJlcXVlc3QpID0+XG4gICAxNjNcdCAgc2VuZFJlcXVlc3Q8YW55Pih7XG4gICAxNjRcdCAgICBtZXRob2Q6ICdHRVQnLFxuICAgMTY1XHQgICAgdXJsOiBgJHthcGlIb3N0fS9hcGkvdjEvY2hhdGZsb3dzLXN0cmVhbWluZy8ke2NoYXRmbG93aWR9YCxcbiAgIDE2Nlx0ICAgIG9uUmVxdWVzdDogb25SZXF1ZXN0LFxuICAgMTY3XHQgICAgaGVhZGVyczoge1xuICAgMTY4XHQgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgMTY5XHQgICAgfSxcbiAgIDE3MFx0ICB9KTtcbiAgIDE3MVx0XG4gICAxNzJcdGV4cG9ydCBjb25zdCBzZW5kRmlsZURvd25sb2FkUXVlcnkgPSAoeyBhcGlIb3N0ID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIGJvZHksIG9uUmVxdWVzdCB9OiBNZXNzYWdlUmVxdWVzdCkgPT5cbiAgIDE3M1x0ICBzZW5kUmVxdWVzdDxhbnk+KHtcbiAgIDE3NFx0ICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgMTc1XHQgICAgdXJsOiBgJHthcGlIb3N0fS9hcGkvdjEvb3BlbmFpLWFzc2lzdGFudHMtZmlsZS9kb3dubG9hZGAsXG4gICAxNzZcdCAgICBib2R5LFxuICAgMTc3XHQgICAgdHlwZTogJ2Jsb2InLFxuICAgMTc4XHQgICAgb25SZXF1ZXN0OiBvblJlcXVlc3QsXG4gICAxNzlcdCAgICBoZWFkZXJzOiB7XG4gICAxODBcdCAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSgpfWAsXG4gICAxODFcdCAgICB9LFxuICAgMTgyXHQgIH0pO1xuICAgMTgzXHRcbiAgIDE4NFx0ZXhwb3J0IGNvbnN0IGFkZExlYWRRdWVyeSA9ICh7IGFwaUhvc3QgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJywgYm9keSwgb25SZXF1ZXN0IH06IExlYWRDYXB0dXJlUmVxdWVzdCkgPT5cbiAgIDE4NVx0ICBzZW5kUmVxdWVzdDxhbnk+KHtcbiAgIDE4Nlx0ICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgMTg3XHQgICAgdXJsOiBgJHthcGlIb3N0fS9hcGkvdjEvbGVhZHMvYCxcbiAgIDE4OFx0ICAgIGJvZHksXG4gICAxODlcdCAgICBvblJlcXVlc3Q6IG9uUmVxdWVzdCxcbiAgIDE5MFx0ICAgIGhlYWRlcnM6IHtcbiAgIDE5MVx0ICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgIDE5Mlx0ICAgIH0sXG4gICAxOTNcdCAgfSk7XG4gICAxOTRcdFxuICAgMTk1XHRleHBvcnQgY29uc3Qgc2VhcmNoRmFxc1F1ZXJ5ID0gYXN5bmMgKHtcbiAgIDE5Nlx0ICBjaGF0Zmxvd2lkLFxuICAgMTk3XHQgIGFwaUhvc3QgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJyxcbiAgIDE5OFx0ICBxdWVyeSxcbiAgIDE5OVx0ICBvblJlcXVlc3QsXG4gICAyMDBcdH06IHtcbiAgIDIwMVx0ICBjaGF0Zmxvd2lkPzogc3RyaW5nO1xuICAgMjAyXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAyMDNcdCAgcXVlcnk6IHN0cmluZztcbiAgIDIwNFx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAyMDVcdH0pID0+IHtcbiAgIDIwNlx0ICByZXR1cm4gc2VuZFJlcXVlc3Q8YW55Pih7XG4gICAyMDdcdCAgICBtZXRob2Q6ICdHRVQnLFxuICAgMjA4XHQgICAgdXJsOiBgJHthcGlIb3N0fS9hcGkvdjEvZmFxL3NlYXJjaC8ke2NoYXRmbG93aWR9P3F1ZXJ5PSR7cXVlcnl9YCxcbiAgIDIwOVx0ICAgIG9uUmVxdWVzdDogb25SZXF1ZXN0LFxuICAgMjEwXHQgICAgaGVhZGVyczoge1xuICAgMjExXHQgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgMjEyXHQgICAgfSxcbiAgIDIxM1x0ICB9KTtcbiAgIDIxNFx0fTtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS90eXBlcy50c1xuICAgICAxXHRleHBvcnQgdHlwZSBCdWJibGVQYXJhbXMgPSB7XG4gICAgIDJcdCAgdGhlbWU/OiBCdWJibGVUaGVtZTtcbiAgICAgM1x0fTtcbiAgICAgNFx0XG4gICAgIDVcdGV4cG9ydCB0eXBlIEJ1YmJsZVRoZW1lID0ge1xuICAgICA2XHQgIGNoYXRXaW5kb3c/OiBDaGF0V2luZG93VGhlbWU7XG4gICAgIDdcdCAgYnV0dG9uPzogQnV0dG9uVGhlbWU7XG4gICAgIDhcdCAgdG9vbHRpcD86IFRvb2xUaXBUaGVtZTtcbiAgICAgOVx0ICBkaXNjbGFpbWVyPzogRGlzY2xhaW1lclBvcFVwVGhlbWU7XG4gICAgMTBcdCAgY3VzdG9tQ1NTPzogc3RyaW5nO1xuICAgIDExXHR9O1xuICAgIDEyXHRcbiAgICAxM1x0ZXhwb3J0IHR5cGUgVGV4dElucHV0VGhlbWUgPSB7XG4gICAgMTRcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNlx0ICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICAxN1x0ICBzZW5kQnV0dG9uQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgbWF4Q2hhcnM/OiBudW1iZXI7XG4gICAgMTlcdCAgbWF4Q2hhcnNXYXJuaW5nTWVzc2FnZT86IHN0cmluZztcbiAgICAyMFx0ICBhdXRvRm9jdXM/OiBib29sZWFuO1xuICAgIDIxXHQgIHNlbmRNZXNzYWdlU291bmQ/OiBib29sZWFuO1xuICAgIDIyXHQgIHNlbmRTb3VuZExvY2F0aW9uPzogc3RyaW5nO1xuICAgIDIzXHQgIHJlY2VpdmVNZXNzYWdlU291bmQ/OiBib29sZWFuO1xuICAgIDI0XHQgIHJlY2VpdmVTb3VuZExvY2F0aW9uPzogc3RyaW5nO1xuICAgIDI1XHR9O1xuICAgIDI2XHRcbiAgICAyN1x0ZXhwb3J0IHR5cGUgVXNlck1lc3NhZ2VUaGVtZSA9IHtcbiAgICAyOFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMjlcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDMwXHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDMxXHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAzMlx0fTtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9HdWVzdEJ1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgRm9yLCBTaG93LCBvbk1vdW50IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyBBdmF0YXIgfSBmcm9tICcuLi9hdmF0YXJzL0F2YXRhcic7XG4gICAgIDNcdGltcG9ydCB7IE1hcmtlZCB9IGZyb20gJ0B0cy1zdGFjay9tYXJrZG93bic7XG4gICAgIDRcdGltcG9ydCB7IEZpbGVVcGxvYWQsIE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi4vQm90JztcbiAgICAgNVx0aW1wb3J0IHsgQXR0YWNobWVudEljb24gfSBmcm9tICcuLi9pY29ucyc7XG4gICAgIDZcdFxuICAgICA3XHR0eXBlIFByb3BzID0ge1xuICAgICA4XHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgICA5XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgMTBcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDExXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDEyXHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDEzXHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAxNFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE2XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDE3XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDE4XHR9O1xuICAgIDE5XHRcbiAgICAyMFx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjM0I4MUY2JztcbiAgICAyMVx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjZmZmZmZmJztcbiAgICAyMlx0Y29uc3QgZGVmYXVsdEZvbnRTaXplID0gMTY7XG4uLi5cblBhdGg6IHNyYy9CdWJibGVDaGF0LnRzeFxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcnXG4gICAgIDJcdGltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCdWJibGVQcm9wc1xuICAgICA1XHRcbiAgICAgNlx0ZGVjbGFyZSBnbG9iYWwge1xuICAgICA3XHQgIG5hbWVzcGFjZSBKU1gge1xuICAgICA4XHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAgOVx0ICAgICAgJ2Zsb3dpc2UtY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEwXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxMVx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDEyXHQgICAgICA+XG4gICAgMTNcdCAgICB9XG4gICAgMTRcdCAgfVxuICAgIDE1XHR9XG4gICAgMTZcdFxuICAgIDE3XHR0eXBlIEJ1YmJsZUVsZW1lbnQgPSBIVE1MRWxlbWVudCAmIFByb3BzXG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL0JvdC50c3hcbiAgICAgMVx0aW1wb3J0IHsgQXZhdGFyIH0gZnJvbSAnQC9jb21wb25lbnRzL2F2YXRhcnMvQXZhdGFyJztcbiAgICAgMlx0aW1wb3J0IHsgRm9sbG93VXBQcm9tcHRCdWJibGUgfSBmcm9tICdAL2NvbXBvbmVudHMvYnViYmxlcy9Gb2xsb3dVcFByb21wdEJ1YmJsZSc7XG4gICAgIDNcdGltcG9ydCB7IExlYWRDYXB0dXJlQnViYmxlIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1YmJsZXMvTGVhZENhcHR1cmVCdWJibGUnO1xuICAgICA0XHRpbXBvcnQgeyBEZWxldGVCdXR0b24sIFNlbmRCdXR0b24gfSBmcm9tICdAL2NvbXBvbmVudHMvYnV0dG9ucy9TZW5kQnV0dG9uJztcbiAgICAgNVx0aW1wb3J0IHsgRmlsZVByZXZpZXcgfSBmcm9tICdAL2NvbXBvbmVudHMvaW5wdXRzL3RleHRJbnB1dC9jb21wb25lbnRzL0ZpbGVQcmV2aWV3JztcbiAgICAgNlx0aW1wb3J0IHtcbiAgICAgN1x0ICBCb3RNZXNzYWdlVGhlbWUsXG4gICAgIDhcdCAgRGF0ZVRpbWVUb2dnbGVUaGVtZSxcbiAgICAgOVx0ICBEaXNjbGFpbWVyUG9wVXBUaGVtZSxcbiAgICAxMFx0ICBGZWVkYmFja1RoZW1lLFxuICAgIDExXHQgIEZvb3RlclRoZW1lLFxuICAgIDEyXHQgIFRleHRJbnB1dFRoZW1lLFxuICAgIDEzXHQgIFVzZXJNZXNzYWdlVGhlbWUsXG4gICAgMTRcdH0gZnJvbSAnQC9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgIDE1XHRpbXBvcnQgeyBEaXNjbGFpbWVyUG9wdXAsIFBvcHVwIH0gZnJvbSAnQC9mZWF0dXJlcy9wb3B1cCc7XG4gICAgMTZcdGltcG9ydCB7XG4gICAgMTdcdCAgY3JlYXRlQXR0YWNobWVudFdpdGhGb3JtRGF0YSxcbiAgICAxOFx0ICBGZWVkYmFja1JhdGluZ1R5cGUsXG4gICAgMTlcdCAgZ2V0Q2hhdGJvdENvbmZpZyxcbiAgICAyMFx0ICBnZXRGaWxlQ29udGVudCxcbiAgICAyMVx0ICBnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSxcbiAgICAyMlx0ICBJbmNvbWluZ0lucHV0LFxuICAgIDIzXHQgIGlzU3RyZWFtQXZhaWxhYmxlUXVlcnksXG4uLi5cbiAgIDEzMFx0XG4gICAxMzFcdGV4cG9ydCB0eXBlIEJvdFByb3BzID0ge1xuICAgMTMyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgIDEzM1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgMTM0XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgIDEzNVx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgMTM2XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM3XHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzhcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM5XHQgIGJvdE1lc3NhZ2U/OiBCb3RNZXNzYWdlVGhlbWU7XG4gICAxNDBcdCAgdXNlck1lc3NhZ2U/OiBVc2VyTWVzc2FnZVRoZW1lO1xuICAgMTQxXHQgIHRleHRJbnB1dD86IFRleHRJbnB1dFRoZW1lO1xuICAgMTQyXHQgIGZlZWRiYWNrPzogRmVlZGJhY2tUaGVtZTtcbiAgIDE0M1x0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDRcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDVcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ2XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0N1x0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgMTQ4XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgIDE0OVx0ICB0aXRsZT86IHN0cmluZztcbiAgIDE1MFx0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgIDE1MVx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgIDE1Mlx0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgIDE1M1x0ICBmb290ZXI/OiBGb290ZXJUaGVtZTtcbiAgIDE1NFx0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAxNTVcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcbiAgIDE1Nlx0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgeyBwcm9tcHQ6IHN0cmluZyB9Pjtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZS50c3hcbi4uLlxuICAgMTA3XHQgICAgICA+XG4gICAxMDhcdCAgICAgICAgPFNob3cgd2hlbj17aXNCb3RTdGFydGVkKCl9PlxuICAgMTA5XHQgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIGgtZnVsbFwiPlxuICAgMTEwXHQgICAgICAgICAgICA8U2hvdyB3aGVuPXtpc0JvdE9wZW5lZCgpfT5cbiAgIDExMVx0ICAgICAgICAgICAgICB7LyogQ3Jvc3MgYnV0dG9uIEZvciBvbmx5IG1vYmlsZSBzY3JlZW4gdXNlIHRoaXMgPFNob3cgd2hlbj17aXNCb3RPcGVuZWQoKSAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8PSA2NDB9PiAgKi99XG4gICAxMTJcdCAgICAgICAgICAgICAgPGJ1dHRvblxuICAgMTEzXHQgICAgICAgICAgICAgICAgb25DbGljaz17Y2xvc2VCb3R9XG4gICAxMTRcdCAgICAgICAgICAgICAgICBjbGFzcz1cInB5LTIgcHItMyBhYnNvbHV0ZSB0b3AtMCByaWdodC1bLThweF0gbS1bNnB4XSBiZy10cmFuc3BhcmVudCB0ZXh0LXdoaXRlIHJvdW5kZWQtZnVsbCB6LTUwIGRpc2FibGVkOm9wYWNpdHktNTAgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGRpc2FibGVkOmJyaWdodG5lc3MtMTAwIHRyYW5zaXRpb24tYWxsIGZpbHRlciBob3ZlcjpicmlnaHRuZXNzLTkwIGFjdGl2ZTpicmlnaHRuZXNzLTc1XCJcbiAgIDExNVx0ICAgICAgICAgICAgICAgIHRpdGxlPVwiQ2xvc2UgQ2hhdFwiXG4gICAxMTZcdCAgICAgICAgICAgICAgPlxuICAgMTE3XHQgICAgICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+XG4gICAxMThcdCAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAxMTlcdCAgICAgICAgICAgICAgICAgICAgZmlsbD17YnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uaWNvbkNvbG9yID8/IGRlZmF1bHRJY29uQ29sb3J9XG4gICAxMjBcdCAgICAgICAgICAgICAgICAgICAgZD1cIk0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTIgMTkgNi40MXpcIlxuICAgMTIxXHQgICAgICAgICAgICAgICAgICAvPlxuICAgMTIyXHQgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAxMjNcdCAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAxMjRcdCAgICAgICAgICAgIDwvU2hvdz5cbiAgIDEyNVx0ICAgICAgICAgICAgPEJvdFxuLi4uXG4gICAxMzdcdCAgICAgICAgICAgICAgdGV4dElucHV0PXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udGV4dElucHV0fVxuICAgMTM4XHQgICAgICAgICAgICAgIGJvdE1lc3NhZ2U9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5ib3RNZXNzYWdlfVxuICAgMTM5XHQgICAgICAgICAgICAgIHVzZXJNZXNzYWdlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udXNlck1lc3NhZ2V9XG4gICAxNDBcdCAgICAgICAgICAgICAgZmVlZGJhY2s9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5mZWVkYmFja31cbiAgIDE0MVx0ICAgICAgICAgICAgICBmb250U2l6ZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmZvbnRTaXplfVxuICAgMTQyXHQgICAgICAgICAgICAgIGZvb3Rlcj17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmZvb3Rlcn1cbiAgIDE0M1x0ICAgICAgICAgICAgICBzb3VyY2VEb2NzVGl0bGU9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zb3VyY2VEb2NzVGl0bGV9XG4gICAxNDRcdCAgICAgICAgICAgICAgc3RhcnRlclByb21wdHM9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zdGFydGVyUHJvbXB0c31cbiAgIDE0NVx0ICAgICAgICAgICAgICBzdGFydGVyUHJvbXB0Rm9udFNpemU9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zdGFydGVyUHJvbXB0Rm9udFNpemV9XG4gICAxNDZcdCAgICAgICAgICAgICAgY2hhdGZsb3dpZD17cHJvcHMuY2hhdGZsb3dpZH1cbiAgIDE0N1x0ICAgICAgICAgICAgICBjaGF0Zmxvd0NvbmZpZz17cHJvcHMuY2hhdGZsb3dDb25maWd9XG4gICAxNDhcdCAgICAgICAgICAgICAgYXBpSG9zdD17cHJvcHMuYXBpSG9zdH1cbiAgIDE0OVx0ICAgICAgICAgICAgICBvblJlcXVlc3Q9e3Byb3BzLm9uUmVxdWVzdH1cbiAgIDE1MFx0ICAgICAgICAgICAgICBvYnNlcnZlcnNDb25maWc9e3Byb3BzLm9ic2VydmVyc0NvbmZpZ31cbiAgIDE1MVx0ICAgICAgICAgICAgICBjbGVhckNoYXRPblJlbG9hZD17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmNsZWFyQ2hhdE9uUmVsb2FkfVxuICAgMTUyXHQgICAgICAgICAgICAgIGRpc2NsYWltZXI9e2J1YmJsZVByb3BzLnRoZW1lPy5kaXNjbGFpbWVyfVxuICAgMTUzXHQgICAgICAgICAgICAgIGRhdGVUaW1lVG9nZ2xlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZGF0ZVRpbWVUb2dnbGV9XG4gICAxNTRcdCAgICAgICAgICAgICAgcmVuZGVySFRNTD17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnJlbmRlckhUTUx9XG4gICAxNTVcdCAgICAgICAgICAgICAgY2hhdHdvb3RVcmw9e3Byb3BzLmNoYXR3b290VXJsfVxuICAgMTU2XHQgICAgICAgICAgICAgIHJvb21JZHM9e3Byb3BzLnJvb21JZHN9XG4gICAxNTdcdCAgICAgICAgICAgICAgaXNVc2VGQVE9e3Byb3BzLmlzVXNlRkFRfVxuICAgMTU4XHQgICAgICAgICAgICAgIGZpbGVQYXRoPXtwcm9wcy5maWxlUGF0aH1cbiAgIDE1OVx0ICAgICAgICAgICAgICBzdWdnZXN0UXVlc3Rpb25zPXtwcm9wcy5zdWdnZXN0UXVlc3Rpb25zfVxuICAgMTYwXHQgICAgICAgICAgICAgIGV4dGVybmFsRGF0YT17cHJvcHMuZXh0ZXJuYWxEYXRhfVxuICAgMTYxXHQgICAgICAgICAgICAgIGNhbGxCYWNrRnVuY3Rpb249e3Byb3BzLmNhbGxCYWNrRnVuY3Rpb259XG4gICAxNjJcdCAgICAgICAgICAgICAgY2FsbEJhY2tJY29uPXtwcm9wcy5jYWxsQmFja0ljb259XG4gICAxNjNcdCAgICAgICAgICAgIC8+XG4gICAxNjRcdCAgICAgICAgICA8L2Rpdj5cbiAgIDE2NVx0ICAgICAgICA8L1Nob3c+XG4gICAxNjZcdCAgICAgIDwvZGl2PlxuICAgMTY3XHQgICAgPC8+XG4gICAxNjhcdCAgKTtcbiAgIDE2OVx0fTtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2Z1bGwvY29tcG9uZW50cy9GdWxsLnRzeFxuLi4uXG4gICAgMTBcdFxuICAgIDExXHRleHBvcnQgY29uc3QgRnVsbCA9IChwcm9wczogRnVsbFByb3BzLCB7IGVsZW1lbnQgfTogeyBlbGVtZW50OiBIVE1MRWxlbWVudCB9KSA9PiB7XG4gICAgMTJcdCAgY29uc3QgW2lzQm90RGlzcGxheWVkLCBzZXRJc0JvdERpc3BsYXllZF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgIDEzXHRcbiAgICAxNFx0ICBjb25zdCBsYXVuY2hCb3QgPSAoKSA9PiB7XG4gICAgMTVcdCAgICBzZXRJc0JvdERpc3BsYXllZCh0cnVlKTtcbiAgICAxNlx0ICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luID0gJzAnOyAvLyBFbnN1cmUgbm8gbWFyZ2luXG4gICAgMTdcdCAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUucGFkZGluZyA9ICcwJzsgLy8gRW5zdXJlIG5vIHBhZGRpbmdcbiAgICAxOFx0XG4gICAgMTlcdCAgICAvLyBTZXQgdmlld3BvcnQgbWV0YSB0YWcgZHluYW1pY2FsbHlcbiAgICAyMFx0ICAgIGNvbnN0IHZpZXdwb3J0TWV0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cInZpZXdwb3J0XCJdJyk7XG4gICAgMjFcdCAgICBpZiAodmlld3BvcnRNZXRhKSB7XG4gICAgMjJcdCAgICAgIHZpZXdwb3J0TWV0YS5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnLCAnd2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgaW50ZXJhY3RpdmUtd2lkZ2V0PXJlc2l6ZXMtY29udGVudCcpO1xuICAgIDIzXHQgICAgfVxuICAgIDI0XHQgIH07XG4gICAgMjVcdFxuICAgIDI2XHQgIGNvbnN0IGJvdExhdW5jaGVyT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoKGludGVyc2VjdGlvbnMpID0+IHtcbiAgICAyN1x0ICAgIGlmIChpbnRlcnNlY3Rpb25zLnNvbWUoKGludGVyc2VjdGlvbikgPT4gaW50ZXJzZWN0aW9uLmlzSW50ZXJzZWN0aW5nKSkgbGF1bmNoQm90KCk7XG4gICAgMjhcdCAgfSk7XG4uLi5cbiAgICA2MVx0ICAgICAgICA+XG4gICAgNjJcdCAgICAgICAgICA8Qm90XG4gICAgNjNcdCAgICAgICAgICAgIGJhZGdlQmFja2dyb3VuZENvbG9yPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uYmFja2dyb3VuZENvbG9yfVxuICAgIDY0XHQgICAgICAgICAgICBidWJibGVCYWNrZ3JvdW5kQ29sb3I9e3Byb3BzLnRoZW1lPy5idXR0b24/LmJhY2tncm91bmRDb2xvciA/PyBkZWZhdWx0QnV0dG9uQ29sb3J9XG4gICAgNjVcdCAgICAgICAgICAgIGJ1YmJsZVRleHRDb2xvcj17cHJvcHMudGhlbWU/LmJ1dHRvbj8uaWNvbkNvbG9yID8/IGRlZmF1bHRJY29uQ29sb3J9XG4gICAgNjZcdCAgICAgICAgICAgIHNob3dUaXRsZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnNob3dUaXRsZX1cbiAgICA2N1x0ICAgICAgICAgICAgc2hvd0FnZW50TWVzc2FnZXM9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zaG93QWdlbnRNZXNzYWdlc31cbiAgICA2OFx0ICAgICAgICAgICAgdGl0bGU9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py50aXRsZX1cbiAgICA2OVx0ICAgICAgICAgICAgdGl0bGVBdmF0YXJTcmM9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py50aXRsZUF2YXRhclNyY31cbiAgICA3MFx0ICAgICAgICAgICAgd2VsY29tZU1lc3NhZ2U9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py53ZWxjb21lTWVzc2FnZX1cbiAgICA3MVx0ICAgICAgICAgICAgc2Vjb25kTWVzc2FnZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnNlY29uZE1lc3NhZ2V9XG4gICAgNzJcdCAgICAgICAgICAgIGVycm9yTWVzc2FnZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmVycm9yTWVzc2FnZX1cbiAgICA3M1x0ICAgICAgICAgICAgcG93ZXJlZEJ5VGV4dENvbG9yPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8ucG93ZXJlZEJ5VGV4dENvbG9yfVxuICAgIDc0XHQgICAgICAgICAgICB0ZXh0SW5wdXQ9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py50ZXh0SW5wdXR9XG4gICAgNzVcdCAgICAgICAgICAgIGJvdE1lc3NhZ2U9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5ib3RNZXNzYWdlfVxuICAgIDc2XHQgICAgICAgICAgICB1c2VyTWVzc2FnZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnVzZXJNZXNzYWdlfVxuICAgIDc3XHQgICAgICAgICAgICBmZWVkYmFjaz17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmZlZWRiYWNrfVxuICAgIDc4XHQgICAgICAgICAgICBmb250U2l6ZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmZvbnRTaXplfVxuICAgIDc5XHQgICAgICAgICAgICBmb290ZXI9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5mb290ZXJ9XG4gICAgODBcdCAgICAgICAgICAgIHN0YXJ0ZXJQcm9tcHRzPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc3RhcnRlclByb21wdHN9XG4gICAgODFcdCAgICAgICAgICAgIGNoYXRmbG93aWQ9e3Byb3BzLmNoYXRmbG93aWR9XG4gICAgODJcdCAgICAgICAgICAgIGNoYXRmbG93Q29uZmlnPXtwcm9wcy5jaGF0Zmxvd0NvbmZpZ31cbiAgICA4M1x0ICAgICAgICAgICAgYXBpSG9zdD17cHJvcHMuYXBpSG9zdH1cbiAgICA4NFx0ICAgICAgICAgICAgb25SZXF1ZXN0PXtwcm9wcy5vblJlcXVlc3R9XG4gICAgODVcdCAgICAgICAgICAgIGlzRnVsbFBhZ2U9e3RydWV9XG4gICAgODZcdCAgICAgICAgICAgIG9ic2VydmVyc0NvbmZpZz17cHJvcHMub2JzZXJ2ZXJzQ29uZmlnfVxuICAgIDg3XHQgICAgICAgICAgICBzdGFydGVyUHJvbXB0Rm9udFNpemU9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zdGFydGVyUHJvbXB0Rm9udFNpemV9XG4gICAgODhcdCAgICAgICAgICAgIGNsZWFyQ2hhdE9uUmVsb2FkPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uY2xlYXJDaGF0T25SZWxvYWR9XG4gICAgODlcdCAgICAgICAgICAgIGRpc2NsYWltZXI9e3Byb3BzLnRoZW1lPy5kaXNjbGFpbWVyfVxuICAgIDkwXHQgICAgICAgICAgICBkYXRlVGltZVRvZ2dsZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmRhdGVUaW1lVG9nZ2xlfVxuICAgIDkxXHQgICAgICAgICAgICByZW5kZXJIVE1MPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8ucmVuZGVySFRNTH1cbiAgICA5Mlx0ICAgICAgICAgICAgY2hhdHdvb3RVcmw9e3Byb3BzLmNoYXR3b290VXJsfVxuICAgIDkzXHQgICAgICAgICAgICByb29tSWRzPXtwcm9wcy5yb29tSWRzfVxuLi4uXG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFZQ0FEN0tYZTl4VFB5emZ0WkJKQVhqIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxNiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowMjo1Mi44NTFaIiwicmVzcG9uc2VfdGV4dCI6Ik5vdyBsZXQgbWUgbG9vayBhdCB0aGUgQm90IGNvbXBvbmVudCBtb3JlIGNsb3NlbHkgdG8gdW5kZXJzdGFuZCBob3cgbWVzc2FnZXMgYXJlIHNlbnQ6XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiYTliYzRkMTQtNmJkOC00MWMwLTkyNjYtYWQzMDdlMGUxNTZmIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxSHBYVnE0UGNiRWp5NjdQc2MxV1N2ayIsInRvb2xfbmFtZSI6InZpZXciLCJpbnB1dF9qc29uIjoie1wicGF0aFwiOiBcInNyYy9jb21wb25lbnRzL0JvdC50c3hcIiwgXCJ0eXBlXCI6IFwiZmlsZVwiLCBcInZpZXdfcmFuZ2VcIjogWzUwMCwgMTAwMF19IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTGV0IG1lIGNvbnRpbnVlIHJlYWRpbmcgdGhlIEJvdCBjb21wb25lbnQgdG8gZmluZCB0aGUgbWVzc2FnZSBzZW5kaW5nIGxvZ2ljOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiTm90ZTpcblZpZXcgcmFuZ2UgZXhwYW5kZWQgdG8gbWVldCBtaW5pbXVtIHNpemUgb2YgNTAwIGxpbmVzLiBOZXcgcmFuZ2U6IFsxLCA1MDBdLlxuXG5IZXJlJ3MgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGBjYXQgLW5gIG9uIHNyYy9jb21wb25lbnRzL0JvdC50c3g6XG4gICAgIDFcdGltcG9ydCB7IEF2YXRhciB9IGZyb20gJ0AvY29tcG9uZW50cy9hdmF0YXJzL0F2YXRhcic7XG4gICAgIDJcdGltcG9ydCB7IEZvbGxvd1VwUHJvbXB0QnViYmxlIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1YmJsZXMvRm9sbG93VXBQcm9tcHRCdWJibGUnO1xuICAgICAzXHRpbXBvcnQgeyBMZWFkQ2FwdHVyZUJ1YmJsZSB9IGZyb20gJ0AvY29tcG9uZW50cy9idWJibGVzL0xlYWRDYXB0dXJlQnViYmxlJztcbiAgICAgNFx0aW1wb3J0IHsgRGVsZXRlQnV0dG9uLCBTZW5kQnV0dG9uIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1dHRvbnMvU2VuZEJ1dHRvbic7XG4gICAgIDVcdGltcG9ydCB7IEZpbGVQcmV2aWV3IH0gZnJvbSAnQC9jb21wb25lbnRzL2lucHV0cy90ZXh0SW5wdXQvY29tcG9uZW50cy9GaWxlUHJldmlldyc7XG4gICAgIDZcdGltcG9ydCB7XG4gICAgIDdcdCAgQm90TWVzc2FnZVRoZW1lLFxuICAgICA4XHQgIERhdGVUaW1lVG9nZ2xlVGhlbWUsXG4gICAgIDlcdCAgRGlzY2xhaW1lclBvcFVwVGhlbWUsXG4gICAgMTBcdCAgRmVlZGJhY2tUaGVtZSxcbiAgICAxMVx0ICBGb290ZXJUaGVtZSxcbiAgICAxMlx0ICBUZXh0SW5wdXRUaGVtZSxcbiAgICAxM1x0ICBVc2VyTWVzc2FnZVRoZW1lLFxuICAgIDE0XHR9IGZyb20gJ0AvZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAxNVx0aW1wb3J0IHsgRGlzY2xhaW1lclBvcHVwLCBQb3B1cCB9IGZyb20gJ0AvZmVhdHVyZXMvcG9wdXAnO1xuICAgIDE2XHRpbXBvcnQge1xuICAgIDE3XHQgIGNyZWF0ZUF0dGFjaG1lbnRXaXRoRm9ybURhdGEsXG4gICAgMThcdCAgRmVlZGJhY2tSYXRpbmdUeXBlLFxuICAgIDE5XHQgIGdldENoYXRib3RDb25maWcsXG4gICAgMjBcdCAgZ2V0RmlsZUNvbnRlbnQsXG4gICAgMjFcdCAgZ2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UsXG4gICAgMjJcdCAgSW5jb21pbmdJbnB1dCxcbiAgICAyM1x0ICBpc1N0cmVhbUF2YWlsYWJsZVF1ZXJ5LFxuICAgIDI0XHQgIHNlbmRNZXNzYWdlUXVlcnksXG4gICAgMjVcdCAgdXBzZXJ0VmVjdG9yU3RvcmVXaXRoRm9ybURhdGEsXG4gICAgMjZcdH0gZnJvbSAnQC9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnknO1xuICAgIDI3XHRpbXBvcnQgeyBnZXRDb29raWUsIGdldExvY2FsU3RvcmFnZUNoYXRmbG93LCByZW1vdmVMb2NhbFN0b3JhZ2VDaGF0SGlzdG9yeSwgc2V0Q29va2llLCBzZXRMb2NhbFN0b3JhZ2VDaGF0ZmxvdyB9IGZyb20gJ0AvdXRpbHMnO1xuICAgIDI4XHRpbXBvcnQgeyBjYW5jZWxBdWRpb1JlY29yZGluZywgc3RhcnRBdWRpb1JlY29yZGluZywgc3RvcEF1ZGlvUmVjb3JkaW5nIH0gZnJvbSAnQC91dGlscy9hdWRpb1JlY29yZGluZyc7XG4gICAgMjlcdGltcG9ydCB7IEV2ZW50U3RyZWFtQ29udGVudFR5cGUsIGZldGNoRXZlbnRTb3VyY2UgfSBmcm9tICdAbWljcm9zb2Z0L2ZldGNoLWV2ZW50LXNvdXJjZSc7XG4gICAgMzBcdGltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG4gICAgMzFcdGltcG9ydCB7IGNyZWF0ZUVmZmVjdCwgY3JlYXRlTWVtbywgY3JlYXRlU2lnbmFsLCBGb3IsIG1lcmdlUHJvcHMsIG9uLCBvbk1vdW50LCBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgIDMyXHRpbXBvcnQgeyB2NCwgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG4gICAgMzNcdGltcG9ydCB7IEJhZGdlIH0gZnJvbSAnLi9CYWRnZSc7XG4gICAgMzRcdGltcG9ydCB7IEJvdEJ1YmJsZSB9IGZyb20gJy4vYnViYmxlcy9Cb3RCdWJibGUnO1xuICAgIDM1XHRpbXBvcnQgeyBHdWVzdEJ1YmJsZSB9IGZyb20gJy4vYnViYmxlcy9HdWVzdEJ1YmJsZSc7XG4gICAgMzZcdGltcG9ydCB7IExvYWRpbmdCdWJibGUgfSBmcm9tICcuL2J1YmJsZXMvTG9hZGluZ0J1YmJsZSc7XG4gICAgMzdcdGltcG9ydCB7IFN0YXJ0ZXJQcm9tcHRCdWJibGUgfSBmcm9tICcuL2J1YmJsZXMvU3RhcnRlclByb21wdEJ1YmJsZSc7XG4gICAgMzhcdGltcG9ydCB7IENhbmNlbEJ1dHRvbiB9IGZyb20gJy4vYnV0dG9ucy9DYW5jZWxCdXR0b24nO1xuICAgIDM5XHRpbXBvcnQgeyBDaXJjbGVEb3RJY29uLCBTcGFya2xlc0ljb24sIFRyYXNoSWNvbiB9IGZyb20gJy4vaWNvbnMnO1xuICAgIDQwXHRpbXBvcnQgeyBUZXh0SW5wdXQgfSBmcm9tICcuL2lucHV0cy90ZXh0SW5wdXQnO1xuICAgIDQxXHRpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuICAgIDQyXHRpbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4vVG9hc3QnO1xuICAgIDQzXHRcbiAgICA0NFx0ZXhwb3J0IHR5cGUgRmlsZUV2ZW50PFQgPSBFdmVudFRhcmdldD4gPSB7XG4gICAgNDVcdCAgdGFyZ2V0OiBUO1xuICAgIDQ2XHR9O1xuICAgIDQ3XHRcbiAgICA0OFx0ZXhwb3J0IHR5cGUgRm9ybUV2ZW50PFQgPSBFdmVudFRhcmdldD4gPSB7XG4gICAgNDlcdCAgcHJldmVudERlZmF1bHQ6ICgpID0+IHZvaWQ7XG4gICAgNTBcdCAgY3VycmVudFRhcmdldDogVDtcbiAgICA1MVx0fTtcbiAgICA1Mlx0XG4gICAgNTNcdHR5cGUgSVVwbG9hZENvbnN0cmFpdHMgPSB7XG4gICAgNTRcdCAgZmlsZVR5cGVzOiBzdHJpbmdbXTtcbiAgICA1NVx0ICBtYXhVcGxvYWRTaXplOiBudW1iZXI7XG4gICAgNTZcdH07XG4gICAgNTdcdFxuICAgIDU4XHRleHBvcnQgdHlwZSBVcGxvYWRzQ29uZmlnID0ge1xuICAgIDU5XHQgIGltZ1VwbG9hZFNpemVBbmRUeXBlczogSVVwbG9hZENvbnN0cmFpdHNbXTtcbiAgICA2MFx0ICBmaWxlVXBsb2FkU2l6ZUFuZFR5cGVzOiBJVXBsb2FkQ29uc3RyYWl0c1tdO1xuICAgIDYxXHQgIGlzSW1hZ2VVcGxvYWRBbGxvd2VkOiBib29sZWFuO1xuICAgIDYyXHQgIGlzU3BlZWNoVG9UZXh0RW5hYmxlZDogYm9vbGVhbjtcbiAgICA2M1x0ICBpc1JBR0ZpbGVVcGxvYWRBbGxvd2VkOiBib29sZWFuO1xuICAgIDY0XHR9O1xuICAgIDY1XHRcbiAgICA2Nlx0dHlwZSBGaWxlUHJldmlld0RhdGEgPSBzdHJpbmcgfCBBcnJheUJ1ZmZlcjtcbiAgICA2N1x0XG4gICAgNjhcdHR5cGUgRmlsZVByZXZpZXcgPSB7XG4gICAgNjlcdCAgZGF0YTogRmlsZVByZXZpZXdEYXRhO1xuICAgIDcwXHQgIG1pbWU6IHN0cmluZztcbiAgICA3MVx0ICBuYW1lOiBzdHJpbmc7XG4gICAgNzJcdCAgcHJldmlldzogc3RyaW5nO1xuICAgIDczXHQgIHR5cGU6IHN0cmluZztcbiAgICA3NFx0fTtcbiAgICA3NVx0XG4gICAgNzZcdHR5cGUgbWVzc2FnZVR5cGUgPSAnYXBpTWVzc2FnZScgfCAndXNlck1lc3NhZ2UnIHwgJ3VzZXJtZXNzYWdld2FpdGluZycgfCAnbGVhZENhcHR1cmVNZXNzYWdlJztcbiAgICA3N1x0XG4gICAgNzhcdGV4cG9ydCB0eXBlIElBZ2VudFJlYXNvbmluZyA9IHtcbiAgICA3OVx0ICBhZ2VudE5hbWU/OiBzdHJpbmc7XG4gICAgODBcdCAgbWVzc2FnZXM/OiBzdHJpbmdbXTtcbiAgICA4MVx0ICB1c2VkVG9vbHM/OiBhbnlbXTtcbiAgICA4Mlx0ICBhcnRpZmFjdHM/OiBGaWxlVXBsb2FkW107XG4gICAgODNcdCAgc291cmNlRG9jdW1lbnRzPzogYW55W107XG4gICAgODRcdCAgaW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xuICAgIDg1XHQgIG5leHRBZ2VudD86IHN0cmluZztcbiAgICA4Nlx0fTtcbiAgICA4N1x0XG4gICAgODhcdGV4cG9ydCB0eXBlIElBY3Rpb24gPSB7XG4gICAgODlcdCAgaWQ/OiBzdHJpbmc7XG4gICAgOTBcdCAgZWxlbWVudHM/OiBBcnJheTx7XG4gICAgOTFcdCAgICB0eXBlOiBzdHJpbmc7XG4gICAgOTJcdCAgICBsYWJlbDogc3RyaW5nO1xuICAgIDkzXHQgIH0+O1xuICAgIDk0XHQgIG1hcHBpbmc/OiB7XG4gICAgOTVcdCAgICBhcHByb3ZlOiBzdHJpbmc7XG4gICAgOTZcdCAgICByZWplY3Q6IHN0cmluZztcbiAgICA5N1x0ICAgIHRvb2xDYWxsczogYW55W107XG4gICAgOThcdCAgfTtcbiAgICA5OVx0fTtcbiAgIDEwMFx0XG4gICAxMDFcdGV4cG9ydCB0eXBlIEZpbGVVcGxvYWQgPSBPbWl0PEZpbGVQcmV2aWV3LCAncHJldmlldyc+O1xuICAgMTAyXHRcbiAgIDEwM1x0ZXhwb3J0IHR5cGUgTWVzc2FnZVR5cGUgPSB7XG4gICAxMDRcdCAgbWVzc2FnZUlkPzogc3RyaW5nO1xuICAgMTA1XHQgIG1lc3NhZ2U6IHN0cmluZztcbiAgIDEwNlx0ICB0eXBlOiBtZXNzYWdlVHlwZTtcbiAgIDEwN1x0ICBzb3VyY2VEb2N1bWVudHM/OiBhbnk7XG4gICAxMDhcdCAgZmlsZUFubm90YXRpb25zPzogYW55O1xuICAgMTA5XHQgIGZpbGVVcGxvYWRzPzogUGFydGlhbDxGaWxlVXBsb2FkPltdO1xuICAgMTEwXHQgIGFydGlmYWN0cz86IFBhcnRpYWw8RmlsZVVwbG9hZD5bXTtcbiAgIDExMVx0ICBhZ2VudFJlYXNvbmluZz86IElBZ2VudFJlYXNvbmluZ1tdO1xuICAgMTEyXHQgIHVzZWRUb29scz86IGFueVtdO1xuICAgMTEzXHQgIGFjdGlvbj86IElBY3Rpb24gfCBudWxsO1xuICAgMTE0XHQgIHJhdGluZz86IEZlZWRiYWNrUmF0aW5nVHlwZTtcbiAgIDExNVx0ICBpZD86IHN0cmluZztcbiAgIDExNlx0ICBmb2xsb3dVcFByb21wdHM/OiBzdHJpbmc7XG4gICAxMTdcdCAgZGF0ZVRpbWU/OiBzdHJpbmc7XG4gICAxMThcdH07XG4gICAxMTlcdFxuICAgMTIwXHR0eXBlIElVcGxvYWRzID0ge1xuICAgMTIxXHQgIGRhdGE6IEZpbGVQcmV2aWV3RGF0YTtcbiAgIDEyMlx0ICB0eXBlOiBzdHJpbmc7XG4gICAxMjNcdCAgbmFtZTogc3RyaW5nO1xuICAgMTI0XHQgIG1pbWU6IHN0cmluZztcbiAgIDEyNVx0ICBmaWxlPzogYW55O1xuICAgMTI2XHR9W107XG4gICAxMjdcdFxuICAgMTI4XHR0eXBlIG9ic2VydmVyQ29uZmlnVHlwZSA9IChhY2Nlc3Nvcjogc3RyaW5nIHwgYm9vbGVhbiB8IG9iamVjdCB8IE1lc3NhZ2VUeXBlW10pID0+IHZvaWQ7XG4gICAxMjlcdGV4cG9ydCB0eXBlIG9ic2VydmVyc0NvbmZpZ1R5cGUgPSBSZWNvcmQ8J29ic2VydmVVc2VySW5wdXQnIHwgJ29ic2VydmVMb2FkaW5nJyB8ICdvYnNlcnZlTWVzc2FnZXMnLCBvYnNlcnZlckNvbmZpZ1R5cGU+O1xuICAgMTMwXHRcbiAgIDEzMVx0ZXhwb3J0IHR5cGUgQm90UHJvcHMgPSB7XG4gICAxMzJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgMTMzXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAxMzRcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgMTM1XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAxMzZcdCAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzdcdCAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOFx0ICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzlcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgIDE0MFx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAxNDFcdCAgdGV4dElucHV0PzogVGV4dElucHV0VGhlbWU7XG4gICAxNDJcdCAgZmVlZGJhY2s/OiBGZWVkYmFja1RoZW1lO1xuICAgMTQzXHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0NFx0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0NVx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDZcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ3XHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAxNDhcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgMTQ5XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTUwXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgMTUxXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgMTUyXHQgIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xuICAgMTUzXHQgIGZvb3Rlcj86IEZvb3RlclRoZW1lO1xuICAgMTU0XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgIDE1NVx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgMTU2XHQgIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCB7IHByb21wdDogc3RyaW5nIH0+O1xuICAgMTU3XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgIDE1OFx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAxNTlcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgMTYwXHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgIDE2MVx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgIDE2Mlx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgIDE2M1x0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgIDE2NFx0ICBpc1VzZUZBUT86IGJvb2xlYW47XG4gICAxNjVcdCAgZmlsZVBhdGg/OiBzdHJpbmc7XG4gICAxNjZcdCAgc3VnZ2VzdFF1ZXN0aW9ucz86IHN0cmluZztcbiAgIDE2N1x0ICBleHRlcm5hbERhdGE/OiBzdHJpbmc7XG4gICAxNjhcdCAgY2FsbEJhY2tGdW5jdGlvbj86IChlOiBhbnkpID0+IHZvaWQ7XG4gICAxNjlcdCAgY2FsbEJhY2tJY29uPzogc3RyaW5nO1xuICAgMTcwXHR9O1xuICAgMTcxXHRcbiAgIDE3Mlx0ZXhwb3J0IHR5cGUgTGVhZHNDb25maWcgPSB7XG4gICAxNzNcdCAgc3RhdHVzOiBib29sZWFuO1xuICAgMTc0XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTc1XHQgIG5hbWU/OiBib29sZWFuO1xuICAgMTc2XHQgIGVtYWlsPzogYm9vbGVhbjtcbiAgIDE3N1x0ICBwaG9uZT86IGJvb2xlYW47XG4gICAxNzhcdCAgc3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XG4gICAxNzlcdH07XG4gICAxODBcdFxuICAgMTgxXHRjb25zdCBkZWZhdWx0V2VsY29tZU1lc3NhZ2UgPSAnWGluIGNow6BvIHTDtGkgY8OzIHRo4buDIGdpw7pwIGfDrCBjaG8gYuG6oW4/JztcbiAgIDE4Mlx0Y29uc3Qgc3RhdHVzTXNnID0ge1xuICAgMTgzXHQgIDM6ICfEkGFuZyB44butIGzDvS4uLicsXG4gICAxODRcdCAgMTA6ICfEkGFuZyB04bqjaSBk4buvIGxp4buHdSwgdnVpIGzDsm5nIMSR4bujaS4uLicsXG4gICAxODVcdCAgNDA6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBo4buHIHRo4buRbmcgxJFhbmcgcXXDoSB04bqjaSwgdnVpIGzDsm5nIHRo4butIGzhuqFpIHNhdS4nLFxuICAgMTg2XHQgIDUwOiAnJyxcbiAgIDE4N1x0fTtcbiAgIDE4OFx0XG4gICAxODlcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZmZmZic7XG4gICAxOTBcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnIzMwMzIzNSc7XG4gICAxOTFcdFxuICAgMTkyXHRleHBvcnQgY29uc3QgQm90ID0gKGJvdFByb3BzOiBCb3RQcm9wcyAmIHsgY2xhc3M/OiBzdHJpbmcgfSkgPT4ge1xuICAgMTkzXHQgIC8vIHNldCBhIGRlZmF1bHQgdmFsdWUgZm9yIHNob3dUaXRsZSBpZiBub3Qgc2V0IGFuZCBtZXJnZSB3aXRoIG90aGVyIHByb3BzXG4gICAxOTRcdFxuICAgMTk1XHQgIGNvbnN0IHByb3BzID0gbWVyZ2VQcm9wcyh7IHNob3dUaXRsZTogdHJ1ZSB9LCBib3RQcm9wcyk7XG4gICAxOTZcdCAgbGV0IGNoYXRDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk3XHQgIGxldCBib3R0b21TcGFjZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk4XHQgIGxldCBib3RDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk5XHQgIGxldCBpbnRlcnZhbEN1cnJlbnRNc2c6IGFueTtcbiAgIDIwMFx0XG4gICAyMDFcdCAgY29uc3QgW3Nob3dTY3JvbGxCdXR0b24sIHNldFNob3dTY3JvbGxCdXR0b25dID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIwMlx0ICBjb25zdCBbdXNlcklucHV0LCBzZXRVc2VySW5wdXRdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIwM1x0ICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjA0XHQgIGNvbnN0IFtzb3VyY2VQb3B1cE9wZW4sIHNldFNvdXJjZVBvcHVwT3Blbl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjA1XHQgIGNvbnN0IFtzb3VyY2VQb3B1cFNyYywgc2V0U291cmNlUG9wdXBTcmNdID0gY3JlYXRlU2lnbmFsKHt9KTtcbiAgIDIwNlx0ICBjb25zdCBbY3VycmVudFN0YXR1c01zZywgc2V0Q3VycmVudFN0YXR1c01zZ10gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjA3XHQgIGNvbnN0IFtpc05ldHdvcmtFcnJvciwgc2V0SXNOZXR3b3JrRXJyb3JdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIwOFx0ICBjb25zdCBbbmV0d29ya0Vycm9yTWVzc2FnZSwgc2V0TmV0d29ya0Vycm9yTWVzc2FnZV0gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjA5XHQgIGNvbnN0IFt1c2VyLCBzZXRVc2VyXSA9IGNyZWF0ZVNpZ25hbCh7IGlkOiAnJywgdXNlcm5hbWU6ICcnLCBlbWFpbDogJycgfSk7XG4gICAyMTBcdCAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSBjcmVhdGVTaWduYWw8TWVzc2FnZVR5cGVbXT4oXG4gICAyMTFcdCAgICBbXG4gICAyMTJcdCAgICAgIHtcbiAgIDIxM1x0ICAgICAgICBtZXNzYWdlOiBwcm9wcy53ZWxjb21lTWVzc2FnZSA/PyBkZWZhdWx0V2VsY29tZU1lc3NhZ2UsXG4gICAyMTRcdCAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnIGFzIG1lc3NhZ2VUeXBlLFxuICAgMjE1XHQgICAgICB9LFxuICAgMjE2XHQgICAgICAuLi4ocHJvcHMuc2Vjb25kTWVzc2FnZSA/IFt7IG1lc3NhZ2U6IHByb3BzLnNlY29uZE1lc3NhZ2UsIHR5cGU6ICdhcGlNZXNzYWdlJyBhcyBtZXNzYWdlVHlwZSB9XSA6IFtdKSxcbiAgIDIxN1x0ICAgIF0sXG4gICAyMThcdCAgICB7IGVxdWFsczogZmFsc2UgfSxcbiAgIDIxOVx0ICApO1xuICAgMjIwXHRcbiAgIDIyMVx0ICBjb25zdCBbaXNDaGF0Rmxvd0F2YWlsYWJsZVRvU3RyZWFtLCBzZXRJc0NoYXRGbG93QXZhaWxhYmxlVG9TdHJlYW1dID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIyMlx0ICBjb25zdCBbY2hhdElkLCBzZXRDaGF0SWRdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIyM1x0ICBjb25zdCBbaXNNZXNzYWdlU3RvcHBpbmcsIHNldElzTWVzc2FnZVN0b3BwaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyMjRcdCAgY29uc3QgW3N0YXJ0ZXJQcm9tcHRzLCBzZXRTdGFydGVyUHJvbXB0c10gPSBjcmVhdGVTaWduYWw8c3RyaW5nW10+KFtdLCB7IGVxdWFsczogZmFsc2UgfSk7XG4gICAyMjVcdCAgY29uc3QgW2NoYXRGZWVkYmFja1N0YXR1cywgc2V0Q2hhdEZlZWRiYWNrU3RhdHVzXSA9IGNyZWF0ZVNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gICAyMjZcdCAgY29uc3QgW2Z1bGxGaWxlVXBsb2FkLCBzZXRGdWxsRmlsZVVwbG9hZF0gPSBjcmVhdGVTaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICAgMjI3XHQgIGNvbnN0IFt1cGxvYWRzQ29uZmlnLCBzZXRVcGxvYWRzQ29uZmlnXSA9IGNyZWF0ZVNpZ25hbDxVcGxvYWRzQ29uZmlnPigpO1xuICAgMjI4XHQgIGNvbnN0IFtsZWFkc0NvbmZpZywgc2V0TGVhZHNDb25maWddID0gY3JlYXRlU2lnbmFsPExlYWRzQ29uZmlnPigpO1xuICAgMjI5XHQgIGNvbnN0IFtpc0xlYWRTYXZlZCwgc2V0SXNMZWFkU2F2ZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIzMFx0ICBjb25zdCBbbGVhZEVtYWlsLCBzZXRMZWFkRW1haWxdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIzMVx0ICBjb25zdCBbZGlzY2xhaW1lclBvcHVwT3Blbiwgc2V0RGlzY2xhaW1lclBvcHVwT3Blbl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjMyXHQgIGNvbnN0IFtkaXNhYmxlSW5wdXQsIHNldERpc2FibGVJbnB1dF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjMzXHQgIGNvbnN0IFtmaWxlU3VtbWFyeSwgc2V0RmlsZVN1bW1hcnldID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIzNFx0ICBjb25zdCBbZmlsZUNvbnRlbnQsIHNldEZpbGVDb250ZW50XSA9IGNyZWF0ZVNpZ25hbCgnJyk7XG4gICAyMzVcdCAgY29uc3QgW3N1Z2dlc3RRdWVzdGlvbiwgc2V0U3VnZ2VzdFF1ZXN0aW9uXSA9IGNyZWF0ZVNpZ25hbChbXSk7XG4gICAyMzZcdFxuICAgMjM3XHQgIC8vIGRyYWcgJiBkcm9wIGZpbGUgaW5wdXRcbiAgIDIzOFx0ICAvLyBUT0RPOiBmaXggdGhpcyB0eXBlXG4gICAyMzlcdCAgY29uc3QgW3ByZXZpZXdzLCBzZXRQcmV2aWV3c10gPSBjcmVhdGVTaWduYWw8RmlsZVByZXZpZXdbXT4oW10pO1xuICAgMjQwXHRcbiAgIDI0MVx0ICAvLyBhdWRpbyByZWNvcmRpbmdcbiAgIDI0Mlx0ICBjb25zdCBbZWxhcHNlZFRpbWUsIHNldEVsYXBzZWRUaW1lXSA9IGNyZWF0ZVNpZ25hbCgnMDA6MDAnKTtcbiAgIDI0M1x0ICBjb25zdCBbaXNSZWNvcmRpbmcsIHNldElzUmVjb3JkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDRcdCAgY29uc3QgW3JlY29yZGluZ05vdFN1cHBvcnRlZCwgc2V0UmVjb3JkaW5nTm90U3VwcG9ydGVkXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDVcdCAgY29uc3QgW2lzTG9hZGluZ1JlY29yZGluZywgc2V0SXNMb2FkaW5nUmVjb3JkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDZcdFxuICAgMjQ3XHQgIC8vIGZvbGxvdy11cCBwcm9tcHRzXG4gICAyNDhcdCAgY29uc3QgW2ZvbGxvd1VwUHJvbXB0c1N0YXR1cywgc2V0Rm9sbG93VXBQcm9tcHRzU3RhdHVzXSA9IGNyZWF0ZVNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gICAyNDlcdCAgY29uc3QgW2ZvbGxvd1VwUHJvbXB0cywgc2V0Rm9sbG93VXBQcm9tcHRzXSA9IGNyZWF0ZVNpZ25hbDxzdHJpbmdbXT4oW10pO1xuICAgMjUwXHRcbiAgIDI1MVx0ICAvLyBkcmFnICYgZHJvcFxuICAgMjUyXHQgIGNvbnN0IFtpc0RyYWdBY3RpdmUsIHNldElzRHJhZ0FjdGl2ZV0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjUzXHQgIGNvbnN0IFt1cGxvYWRlZEZpbGVzLCBzZXRVcGxvYWRlZEZpbGVzXSA9IGNyZWF0ZVNpZ25hbDx7IGZpbGU6IEZpbGU7IHR5cGU6IHN0cmluZyB9W10+KFtdKTtcbiAgIDI1NFx0XG4gICAyNTVcdCAgY3JlYXRlTWVtbygoKSA9PiB7XG4gICAyNTZcdCAgICBjb25zdCBjdXN0b21lcklkID0gKHByb3BzLmNoYXRmbG93Q29uZmlnPy52YXJzIGFzIGFueSk/LmN1c3RvbWVySWQ7XG4gICAyNTdcdCAgICBzZXRDaGF0SWQoY3VzdG9tZXJJZCA/IGAke2N1c3RvbWVySWQudG9TdHJpbmcoKX0rJHt1dWlkdjQoKX1gIDogdXVpZHY0KCkpO1xuICAgMjU4XHQgIH0pO1xuICAgMjU5XHRcbiAgIDI2MFx0ICBvbk1vdW50KCgpID0+IHtcbiAgIDI2MVx0ICAgIGlmIChib3RQcm9wcz8ub2JzZXJ2ZXJzQ29uZmlnKSB7XG4gICAyNjJcdCAgICAgIGNvbnN0IHsgb2JzZXJ2ZVVzZXJJbnB1dCwgb2JzZXJ2ZUxvYWRpbmcsIG9ic2VydmVNZXNzYWdlcyB9ID0gYm90UHJvcHMub2JzZXJ2ZXJzQ29uZmlnO1xuICAgMjYzXHQgICAgICB0eXBlb2Ygb2JzZXJ2ZVVzZXJJbnB1dCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgMjY0XHQgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb2xpZC9yZWFjdGl2aXR5XG4gICAyNjVcdCAgICAgICAgY3JlYXRlTWVtbygoKSA9PiB7XG4gICAyNjZcdCAgICAgICAgICBvYnNlcnZlVXNlcklucHV0KHVzZXJJbnB1dCgpKTtcbiAgIDI2N1x0ICAgICAgICB9KTtcbiAgIDI2OFx0ICAgICAgdHlwZW9mIG9ic2VydmVMb2FkaW5nID09PSAnZnVuY3Rpb24nICYmXG4gICAyNjlcdCAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbGlkL3JlYWN0aXZpdHlcbiAgIDI3MFx0ICAgICAgICBjcmVhdGVNZW1vKCgpID0+IHtcbiAgIDI3MVx0ICAgICAgICAgIG9ic2VydmVMb2FkaW5nKGxvYWRpbmcoKSk7XG4gICAyNzJcdCAgICAgICAgfSk7XG4gICAyNzNcdCAgICAgIHR5cGVvZiBvYnNlcnZlTWVzc2FnZXMgPT09ICdmdW5jdGlvbicgJiZcbiAgIDI3NFx0ICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29saWQvcmVhY3Rpdml0eVxuICAgMjc1XHQgICAgICAgIGNyZWF0ZU1lbW8oKCkgPT4ge1xuICAgMjc2XHQgICAgICAgICAgb2JzZXJ2ZU1lc3NhZ2VzKG1lc3NhZ2VzKCkpO1xuICAgMjc3XHQgICAgICAgIH0pO1xuICAgMjc4XHQgICAgfVxuICAgMjc5XHRcbiAgIDI4MFx0ICAgIGlmICghYm90dG9tU3BhY2VyKSByZXR1cm47XG4gICAyODFcdCAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgIDI4Mlx0ICAgICAgY2hhdENvbnRhaW5lcj8uc2Nyb2xsVG8oMCwgY2hhdENvbnRhaW5lci5zY3JvbGxIZWlnaHQpO1xuICAgMjgzXHQgICAgfSwgNTApO1xuICAgMjg0XHQgIH0pO1xuICAgMjg1XHRcbiAgIDI4Nlx0ICBjcmVhdGVFZmZlY3QoKCkgPT4ge1xuICAgMjg3XHQgICAgY29uc3QgY3VycmVudE1lc3NhZ2VzID0gbWVzc2FnZXMoKTtcbiAgIDI4OFx0XG4gICAyODlcdCAgICBjdXJyZW50TWVzc2FnZXM/LmZvckVhY2goKG1lc3NhZ2UpID0+IHtcbiAgIDI5MFx0ICAgICAgbWVzc2FnZS5hZ2VudFJlYXNvbmluZz8uZm9yRWFjaCgocmVhc29uOiBhbnkpID0+IHtcbiAgIDI5MVx0ICAgICAgICBpZiAocmVhc29uPy5zdGF0ZSkge1xuICAgMjkyXHQgICAgICAgICAgY29uc3QgeyBuYW1lLCBwaG9uZV9udW1iZXIsIGVtYWlsLCBpZCB9ID0gcmVhc29uLnN0YXRlO1xuICAgMjkzXHQgICAgICAgICAgY29uc3QgdXNlckluZm86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgIDI5NFx0ICAgICAgICAgIGlmIChuYW1lICYmIG5hbWUgIT09ICdOb25lJykge1xuICAgMjk1XHQgICAgICAgICAgICB1c2VySW5mby5uYW1lID0gbmFtZTtcbiAgIDI5Nlx0ICAgICAgICAgIH1cbiAgIDI5N1x0ICAgICAgICAgIGlmIChwaG9uZV9udW1iZXIgJiYgcGhvbmVfbnVtYmVyICE9PSAnTm9uZScpIHtcbiAgIDI5OFx0ICAgICAgICAgICAgdXNlckluZm8ucGhvbmVOdW1iZXIgPSBwaG9uZV9udW1iZXI7XG4gICAyOTlcdCAgICAgICAgICB9XG4gICAzMDBcdCAgICAgICAgICBpZiAoZW1haWwgJiYgZW1haWwgIT09ICdOb25lJykge1xuICAgMzAxXHQgICAgICAgICAgICB1c2VySW5mby5lbWFpbCA9IGVtYWlsO1xuICAgMzAyXHQgICAgICAgICAgfVxuICAgMzAzXHQgICAgICAgICAgaWYgKGlkICYmIGlkICE9PSAnTm9uZScpIHtcbiAgIDMwNFx0ICAgICAgICAgICAgdXNlckluZm8uaWQgPSBpZDtcbiAgIDMwNVx0ICAgICAgICAgIH1cbiAgIDMwNlx0ICAgICAgICAgIGlmIChPYmplY3Qua2V5cyh1c2VySW5mbykubGVuZ3RoID4gMCkge1xuICAgMzA3XHQgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2hhdHdvb3Q6dXNlckluZm8nLCBKU09OLnN0cmluZ2lmeSh1c2VySW5mbykpO1xuICAgMzA4XHQgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY21jdHM6dXNlckluZm8nLCBKU09OLnN0cmluZ2lmeSh1c2VySW5mbykpO1xuICAgMzA5XHQgICAgICAgICAgfVxuICAgMzEwXHQgICAgICAgIH1cbiAgIDMxMVx0ICAgICAgfSk7XG4gICAzMTJcdCAgICB9KTtcbiAgIDMxM1x0ICB9KTtcbiAgIDMxNFx0XG4gICAzMTVcdCAgY29uc3Qgc2Nyb2xsVG9Cb3R0b20gPSAoKSA9PiB7XG4gICAzMTZcdCAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgIDMxN1x0ICAgICAgY2hhdENvbnRhaW5lcj8uc2Nyb2xsVG8oMCwgY2hhdENvbnRhaW5lci5zY3JvbGxIZWlnaHQpO1xuICAgMzE4XHQgICAgfSwgNTApO1xuICAgMzE5XHQgIH07XG4gICAzMjBcdFxuICAgMzIxXHQgIC8qKlxuICAgMzIyXHQgICAqIEFkZCBlYWNoIGNoYXQgbWVzc2FnZSBpbnRvIGxvY2FsU3RvcmFnZVxuICAgMzIzXHQgICAqL1xuICAgMzI0XHQgIGNvbnN0IGFkZENoYXRNZXNzYWdlID0gKGFsbE1lc3NhZ2U6IE1lc3NhZ2VUeXBlW10pID0+IHtcbiAgIDMyNVx0ICAgIGNvbnN0IG1lc3NhZ2VzID0gYWxsTWVzc2FnZS5tYXAoKGl0ZW0pID0+IHtcbiAgIDMyNlx0ICAgICAgaWYgKGl0ZW0uZmlsZVVwbG9hZHMpIHtcbiAgIDMyN1x0ICAgICAgICBjb25zdCBmaWxlVXBsb2FkcyA9IGl0ZW0/LmZpbGVVcGxvYWRzLm1hcCgoZmlsZSkgPT4gKHtcbiAgIDMyOFx0ICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgIDMyOVx0ICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgIDMzMFx0ICAgICAgICAgIG1pbWU6IGZpbGUubWltZSxcbiAgIDMzMVx0ICAgICAgICB9KSk7XG4gICAzMzJcdCAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgZmlsZVVwbG9hZHMgfTtcbiAgIDMzM1x0ICAgICAgfVxuICAgMzM0XHQgICAgICByZXR1cm4gaXRlbTtcbiAgIDMzNVx0ICAgIH0pO1xuICAgMzM2XHQgICAgc2V0TG9jYWxTdG9yYWdlQ2hhdGZsb3cocHJvcHMuY2hhdGZsb3dpZCwgY2hhdElkKCksIHsgY2hhdEhpc3Rvcnk6IG1lc3NhZ2VzIH0pO1xuICAgMzM3XHQgIH07XG4gICAzMzhcdFxuICAgMzM5XHQgIC8vIERlZmluZSB0aGUgYXVkaW9SZWZcbiAgIDM0MFx0ICBsZXQgYXVkaW9SZWY6IEhUTUxBdWRpb0VsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAzNDFcdCAgLy8gQ0ROIGxpbmsgZm9yIGRlZmF1bHQgcmVjZWl2ZSBzb3VuZFxuICAgMzQyXHQgIGNvbnN0IGRlZmF1bHRSZWNlaXZlU291bmQgPSAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL0Zsb3dpc2VBSS9GbG93aXNlQ2hhdEVtYmVkQGxhdGVzdC9zcmMvYXNzZXRzL3JlY2VpdmVfbWVzc2FnZS5tcDMnO1xuICAgMzQzXHQgIGNvbnN0IHBsYXlSZWNlaXZlU291bmQgPSAoKSA9PiB7XG4gICAzNDRcdCAgICBpZiAocHJvcHMudGV4dElucHV0Py5yZWNlaXZlTWVzc2FnZVNvdW5kKSB7XG4gICAzNDVcdCAgICAgIGxldCBhdWRpb1NyYyA9IGRlZmF1bHRSZWNlaXZlU291bmQ7XG4gICAzNDZcdCAgICAgIGlmIChwcm9wcy50ZXh0SW5wdXQ/LnJlY2VpdmVTb3VuZExvY2F0aW9uKSB7XG4gICAzNDdcdCAgICAgICAgYXVkaW9TcmMgPSBwcm9wcy50ZXh0SW5wdXQ/LnJlY2VpdmVTb3VuZExvY2F0aW9uO1xuICAgMzQ4XHQgICAgICB9XG4gICAzNDlcdCAgICAgIGF1ZGlvUmVmID0gbmV3IEF1ZGlvKGF1ZGlvU3JjKTtcbiAgIDM1MFx0ICAgICAgYXVkaW9SZWYucGxheSgpO1xuICAgMzUxXHQgICAgfVxuICAgMzUyXHQgIH07XG4gICAzNTNcdFxuICAgMzU0XHQgIGxldCBoYXNTb3VuZFBsYXllZCA9IGZhbHNlO1xuICAgMzU1XHRcbiAgIDM1Nlx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZSA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgIDM1N1x0ICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgIDM1OFx0ICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgMzU5XHQgICAgICBpZiAoYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0udHlwZSA9PT0gJ3VzZXJNZXNzYWdlJykgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgMzYwXHQgICAgICBpZiAoIXRleHQpIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDM2MVx0ICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0ubWVzc2FnZSArPSB0ZXh0O1xuICAgMzYyXHQgICAgICBhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS5yYXRpbmcgPSB1bmRlZmluZWQ7XG4gICAzNjNcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmRhdGVUaW1lID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgMzY0XHQgICAgICBpZiAoIWhhc1NvdW5kUGxheWVkKSB7XG4gICAzNjVcdCAgICAgICAgcGxheVJlY2VpdmVTb3VuZCgpO1xuICAgMzY2XHQgICAgICAgIGhhc1NvdW5kUGxheWVkID0gdHJ1ZTtcbiAgIDM2N1x0ICAgICAgfVxuICAgMzY4XHQgICAgICBhZGRDaGF0TWVzc2FnZShhbGxNZXNzYWdlcyk7XG4gICAzNjlcdCAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDM3MFx0ICAgIH0pO1xuICAgMzcxXHQgIH07XG4gICAzNzJcdFxuICAgMzczXHQgIGNvbnN0IHVwZGF0ZUVycm9yTWVzc2FnZSA9IChlcnJvck1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgMzc0XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgMzc1XHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICAzNzZcdCAgICAgIGFsbE1lc3NhZ2VzLnB1c2goeyBtZXNzYWdlOiBwcm9wcy5lcnJvck1lc3NhZ2UgfHwgZXJyb3JNZXNzYWdlLCB0eXBlOiAnYXBpTWVzc2FnZScgfSk7XG4gICAzNzdcdCAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDM3OFx0ICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgMzc5XHQgICAgfSk7XG4gICAzODBcdCAgfTtcbiAgIDM4MVx0XG4gICAzODJcdCAgY29uc3QgdXBkYXRlTGFzdE1lc3NhZ2VTb3VyY2VEb2N1bWVudHMgPSAoc291cmNlRG9jdW1lbnRzOiBhbnkpID0+IHtcbiAgIDM4M1x0ICAgIHNldE1lc3NhZ2VzKChkYXRhKSA9PiB7XG4gICAzODRcdCAgICAgIGNvbnN0IHVwZGF0ZWQgPSBkYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xuICAgMzg1XHQgICAgICAgIGlmIChpID09PSBkYXRhLmxlbmd0aCAtIDEpIHtcbiAgIDM4Nlx0ICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIHNvdXJjZURvY3VtZW50cyB9O1xuICAgMzg3XHQgICAgICAgIH1cbiAgIDM4OFx0ICAgICAgICByZXR1cm4gaXRlbTtcbiAgIDM4OVx0ICAgICAgfSk7XG4gICAzOTBcdCAgICAgIGFkZENoYXRNZXNzYWdlKHVwZGF0ZWQpO1xuICAgMzkxXHQgICAgICByZXR1cm4gWy4uLnVwZGF0ZWRdO1xuICAgMzkyXHQgICAgfSk7XG4gICAzOTNcdCAgfTtcbiAgIDM5NFx0XG4gICAzOTVcdCAgY29uc3QgdXBkYXRlTGFzdE1lc3NhZ2VVc2VkVG9vbHMgPSAodXNlZFRvb2xzOiBhbnlbXSkgPT4ge1xuICAgMzk2XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgMzk3XHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICAzOThcdCAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICAzOTlcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnVzZWRUb29scyA9IHVzZWRUb29scztcbiAgIDQwMFx0ICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDAxXHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MDJcdCAgICB9KTtcbiAgIDQwM1x0ICB9O1xuICAgNDA0XHRcbiAgIDQwNVx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUZpbGVBbm5vdGF0aW9ucyA9IChmaWxlQW5ub3RhdGlvbnM6IGFueSkgPT4ge1xuICAgNDA2XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNDA3XHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA0MDhcdCAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MDlcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmZpbGVBbm5vdGF0aW9ucyA9IGZpbGVBbm5vdGF0aW9ucztcbiAgIDQxMFx0ICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDExXHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MTJcdCAgICB9KTtcbiAgIDQxM1x0ICB9O1xuICAgNDE0XHRcbiAgIDQxNVx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUFnZW50UmVhc29uaW5nID0gKGFnZW50UmVhc29uaW5nOiBzdHJpbmcgfCBJQWdlbnRSZWFzb25pbmdbXSkgPT4ge1xuICAgNDE2XHQgICAgc2V0TWVzc2FnZXMoKGRhdGEpID0+IHtcbiAgIDQxN1x0ICAgICAgY29uc3QgdXBkYXRlZCA9IGRhdGEubWFwKChpdGVtLCBpKSA9PiB7XG4gICA0MThcdCAgICAgICAgaWYgKGkgPT09IGRhdGEubGVuZ3RoIC0gMSkge1xuICAgNDE5XHQgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgYWdlbnRSZWFzb25pbmc6IHR5cGVvZiBhZ2VudFJlYXNvbmluZyA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGFnZW50UmVhc29uaW5nKSA6IGFnZW50UmVhc29uaW5nIH07XG4gICA0MjBcdCAgICAgICAgfVxuICAgNDIxXHQgICAgICAgIHJldHVybiBpdGVtO1xuICAgNDIyXHQgICAgICB9KTtcbiAgIDQyM1x0ICAgICAgYWRkQ2hhdE1lc3NhZ2UodXBkYXRlZCk7XG4gICA0MjRcdCAgICAgIHJldHVybiBbLi4udXBkYXRlZF07XG4gICA0MjVcdCAgICB9KTtcbiAgIDQyNlx0ICB9O1xuICAgNDI3XHRcbiAgIDQyOFx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUFydGlmYWN0cyA9IChhcnRpZmFjdHM6IEZpbGVVcGxvYWRbXSkgPT4ge1xuICAgNDI5XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNDMwXHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA0MzFcdCAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MzJcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmFydGlmYWN0cyA9IGFydGlmYWN0cztcbiAgIDQzM1x0ICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDM0XHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MzVcdCAgICB9KTtcbiAgIDQzNlx0ICB9O1xuICAgNDM3XHRcbiAgIDQzOFx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUFjdGlvbiA9IChhY3Rpb246IElBY3Rpb24pID0+IHtcbiAgIDQzOVx0ICAgIHNldE1lc3NhZ2VzKChkYXRhKSA9PiB7XG4gICA0NDBcdCAgICAgIGNvbnN0IHVwZGF0ZWQgPSBkYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xuICAgNDQxXHQgICAgICAgIGlmIChpID09PSBkYXRhLmxlbmd0aCAtIDEpIHtcbiAgIDQ0Mlx0ICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGFjdGlvbjogdHlwZW9mIGFjdGlvbiA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGFjdGlvbikgOiBhY3Rpb24gfTtcbiAgIDQ0M1x0ICAgICAgICB9XG4gICA0NDRcdCAgICAgICAgcmV0dXJuIGl0ZW07XG4gICA0NDVcdCAgICAgIH0pO1xuICAgNDQ2XHQgICAgICBhZGRDaGF0TWVzc2FnZSh1cGRhdGVkKTtcbiAgIDQ0N1x0ICAgICAgcmV0dXJuIFsuLi51cGRhdGVkXTtcbiAgIDQ0OFx0ICAgIH0pO1xuICAgNDQ5XHQgIH07XG4gICA0NTBcdFxuICAgNDUxXHQgIGNvbnN0IGNsZWFyUHJldmlld3MgPSAoKSA9PiB7XG4gICA0NTJcdCAgICAvLyBSZXZva2UgdGhlIGRhdGEgdXJpcyB0byBhdm9pZCBtZW1vcnkgbGVha3NcbiAgIDQ1M1x0ICAgIHByZXZpZXdzKCkuZm9yRWFjaCgoZmlsZSkgPT4gVVJMLnJldm9rZU9iamVjdFVSTChmaWxlLnByZXZpZXcpKTtcbiAgIDQ1NFx0ICAgIHNldFByZXZpZXdzKFtdKTtcbiAgIDQ1NVx0ICB9O1xuICAgNDU2XHRcbiAgIDQ1N1x0ICAvLyBIYW5kbGUgZXJyb3JzXG4gICA0NThcdCAgY29uc3QgaGFuZGxlRXJyb3IgPSAobWVzc2FnZSA9ICdPb3BzISBUaGVyZSBzZWVtcyB0byBiZSBhbiBlcnJvci4gUGxlYXNlIHRyeSBhZ2Fpbi4nKSA9PiB7XG4gICA0NTlcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA0NjBcdCAgICAgIGNvbnN0IG1lc3NhZ2VzOiBNZXNzYWdlVHlwZVtdID0gWy4uLnByZXZNZXNzYWdlcywgeyBtZXNzYWdlOiBwcm9wcy5lcnJvck1lc3NhZ2UgfHwgbWVzc2FnZSwgdHlwZTogJ2FwaU1lc3NhZ2UnIH1dO1xuICAgNDYxXHQgICAgICBhZGRDaGF0TWVzc2FnZShtZXNzYWdlcyk7XG4gICA0NjJcdCAgICAgIHJldHVybiBtZXNzYWdlcztcbiAgIDQ2M1x0ICAgIH0pO1xuICAgNDY0XHQgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICA0NjVcdCAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgNDY2XHQgICAgc2V0VXNlcklucHV0KCcnKTtcbiAgIDQ2N1x0ICAgIHNldFVwbG9hZGVkRmlsZXMoW10pO1xuICAgNDY4XHQgICAgc2Nyb2xsVG9Cb3R0b20oKTtcbiAgIDQ2OVx0ICB9O1xuICAgNDcwXHRcbiAgIDQ3MVx0ICBjb25zdCBoYW5kbGVEaXNjbGFpbWVyQWNjZXB0ID0gKCkgPT4ge1xuICAgNDcyXHQgICAgc2V0RGlzY2xhaW1lclBvcHVwT3BlbihmYWxzZSk7IC8vIENsb3NlIHRoZSBkaXNjbGFpbWVyIHBvcHVwXG4gICA0NzNcdCAgICBzZXRDb29raWUoJ2NoYXRib3REaXNjbGFpbWVyJywgJ3RydWUnLCAzNjUpOyAvLyBEaXNjbGFpbWVyIGFjY2VwdGVkXG4gICA0NzRcdCAgfTtcbiAgIDQ3NVx0XG4gICA0NzZcdCAgY29uc3QgcHJvbXB0Q2xpY2sgPSAocHJvbXB0OiBzdHJpbmcpID0+IHtcbiAgIDQ3N1x0ICAgIGhhbmRsZVN1Ym1pdChwcm9tcHQpO1xuICAgNDc4XHQgIH07XG4gICA0NzlcdFxuICAgNDgwXHQgIGNvbnN0IGZvbGxvd1VwUHJvbXB0Q2xpY2sgPSAocHJvbXB0OiBzdHJpbmcpID0+IHtcbiAgIDQ4MVx0ICAgIHNldEZvbGxvd1VwUHJvbXB0cyhbXSk7XG4gICA0ODJcdCAgICBoYW5kbGVTdWJtaXQocHJvbXB0KTtcbiAgIDQ4M1x0ICB9O1xuICAgNDg0XHRcbiAgIDQ4NVx0ICBjb25zdCB1cGRhdGVNZXRhZGF0YSA9IChkYXRhOiBhbnksIGlucHV0OiBzdHJpbmcpID0+IHtcbiAgIDQ4Nlx0ICAgIGlmIChkYXRhLmNoYXRJZCkge1xuICAgNDg3XHQgICAgICBzZXRDaGF0SWQoZGF0YS5jaGF0SWQpO1xuICAgNDg4XHQgICAgfVxuICAgNDg5XHRcbiAgIDQ5MFx0ICAgIC8vIHNldCBtZXNzYWdlIGlkIHRoYXQgaXMgbmVlZGVkIGZvciBmZWVkYmFja1xuICAgNDkxXHQgICAgaWYgKGRhdGEuY2hhdE1lc3NhZ2VJZCkge1xuICAgNDkyXHQgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA0OTNcdCAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgNDk0XHQgICAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAnYXBpTWVzc2FnZScpIHtcbiAgIDQ5NVx0ICAgICAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLm1lc3NhZ2VJZCA9IGRhdGEuY2hhdE1lc3NhZ2VJZDtcbiAgIDQ5Nlx0ICAgICAgICB9XG4gICA0OTdcdCAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDk4XHQgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDQ5OVx0ICAgICAgfSk7XG4gICA1MDBcdCAgICB9XG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiAyMDk0XG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFZNG5LTEFEZlV3WHZtQ0hUVk0zYlk4In19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxNiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowMjo1Ni4zNDdaIiwicmVzcG9uc2VfdGV4dCI6IkxldCBtZSBjb250aW51ZSByZWFkaW5nIHRoZSBCb3QgY29tcG9uZW50IHRvIGZpbmQgdGhlIG1lc3NhZ2Ugc2VuZGluZyBsb2dpYzpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiJhOTMyOTJmYy04NTNjLTRlZTItOWUzNy0zOGRhNWYyYWJjMGQiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDEzZTZxR2ZOR3RjaG9tS2E0Y2JqeFdVIiwidG9vbF9uYW1lIjoidmlldyIsImlucHV0X2pzb24iOiJ7XCJwYXRoXCI6IFwic3JjL3R5cGVzLnRzXCIsIFwidHlwZVwiOiBcImZpbGVcIn0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJOb3cgbGV0IG1lIGxvb2sgYXQgdGhlIHR5cGVzIGZpbGUgdG8gdW5kZXJzdGFuZCB0aGUgY3VycmVudCBzdHJ1Y3R1cmUgYmV0dGVyOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSdzIHRoZSByZXN1bHQgb2YgcnVubmluZyBgY2F0IC1uYCBvbiBzcmMvY29tcG9uZW50cy9Cb3QudHN4OlxuICAgNTAwXHQgICAgfVxuICAgNTAxXHRcbiAgIDUwMlx0ICAgIGlmIChpbnB1dCA9PT0gJycgJiYgZGF0YS5xdWVzdGlvbikge1xuICAgNTAzXHQgICAgICAvLyB0aGUgcmVzcG9uc2UgY29udGFpbnMgdGhlIHF1ZXN0aW9uIGV2ZW4gaWYgaXQgd2FzIGluIGFuIGF1ZGlvIGZvcm1hdFxuICAgNTA0XHQgICAgICAvLyBzbyBpZiBpbnB1dCBpcyBlbXB0eSBidXQgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIHRoZSBxdWVzdGlvbiwgdXBkYXRlIHRoZSB1c2VyIG1lc3NhZ2UgdG8gc2hvdyB0aGUgcXVlc3Rpb25cbiAgIDUwNVx0ICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNTA2XHQgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDUwN1x0ICAgICAgICBpZiAoYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMl0udHlwZSA9PT0gJ2FwaU1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA1MDhcdCAgICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMl0ubWVzc2FnZSA9IGRhdGEucXVlc3Rpb247XG4gICA1MDlcdCAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNTEwXHQgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDUxMVx0ICAgICAgfSk7XG4gICA1MTJcdCAgICB9XG4gICA1MTNcdFxuICAgNTE0XHQgICAgaWYgKGRhdGEuZm9sbG93VXBQcm9tcHRzKSB7XG4gICA1MTVcdCAgICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgIDUxNlx0ICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA1MTdcdCAgICAgICAgaWYgKGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnR5cGUgPT09ICd1c2VyTWVzc2FnZScpIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDUxOFx0ICAgICAgICBhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS5mb2xsb3dVcFByb21wdHMgPSBkYXRhLmZvbGxvd1VwUHJvbXB0cztcbiAgIDUxOVx0ICAgICAgICBhZGRDaGF0TWVzc2FnZShhbGxNZXNzYWdlcyk7XG4gICA1MjBcdCAgICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgNTIxXHQgICAgICB9KTtcbiAgIDUyMlx0ICAgICAgc2V0Rm9sbG93VXBQcm9tcHRzKEpTT04ucGFyc2UoZGF0YS5mb2xsb3dVcFByb21wdHMpKTtcbiAgIDUyM1x0ICAgIH1cbiAgIDUyNFx0ICB9O1xuICAgNTI1XHRcbiAgIDUyNlx0ICBjb25zdCBmZXRjaFJlc3BvbnNlRnJvbUV2ZW50U3RyZWFtID0gYXN5bmMgKGNoYXRmbG93aWQ6IHN0cmluZywgcGFyYW1zOiBhbnkpID0+IHtcbiAgIDUyN1x0ICAgIGNvbnN0IGNoYXRJZCA9IHBhcmFtcy5jaGF0SWQ7XG4gICA1MjhcdCAgICBjb25zdCBpbnB1dCA9IHBhcmFtcy5xdWVzdGlvbjtcbiAgIDUyOVx0ICAgIHBhcmFtcy5zdHJlYW1pbmcgPSB0cnVlO1xuICAgNTMwXHQgICAgZmV0Y2hFdmVudFNvdXJjZShgJHtwcm9wcy5hcGlIb3N0fS9hcGkvdjEvcHJlZGljdGlvbi8ke2NoYXRmbG93aWR9YCwge1xuICAgNTMxXHQgICAgICBvcGVuV2hlbkhpZGRlbjogdHJ1ZSxcbiAgIDUzMlx0ICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICA1MzNcdCAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHBhcmFtcyksXG4gICA1MzRcdCAgICAgIGhlYWRlcnM6IHtcbiAgIDUzNVx0ICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgNTM2XHQgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSgpfWAsXG4gICA1MzdcdCAgICAgIH0sXG4gICA1MzhcdFxuICAgNTM5XHQgICAgICBhc3luYyBvbm9wZW4ocmVzcG9uc2UpIHtcbiAgIDU0MFx0ICAgICAgICBzZXRDdXJyZW50U3RhdHVzTXNnKCfEkGFuZyB44butIGzDvS4uLicpO1xuICAgNTQxXHQgICAgICAgIGlmIChyZXNwb25zZS5vayAmJiByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LnN0YXJ0c1dpdGgoRXZlbnRTdHJlYW1Db250ZW50VHlwZSkpIHtcbiAgIDU0Mlx0ICAgICAgICAgIHJldHVybjsgLy8gZXZlcnl0aGluZydzIGdvb2RcbiAgIDU0M1x0ICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDI5KSB7XG4gICA1NDRcdCAgICAgICAgICBjb25zdCBlcnJNZXNzYWdlID0gKGF3YWl0IHJlc3BvbnNlLnRleHQoKSkgPz8gJ1RvbyBtYW55IHJlcXVlc3RzLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic7XG4gICA1NDVcdCAgICAgICAgICBoYW5kbGVFcnJvcihlcnJNZXNzYWdlKTtcbiAgIDU0Nlx0ICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJNZXNzYWdlKTtcbiAgIDU0N1x0ICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAzKSB7XG4gICA1NDhcdCAgICAgICAgICBjb25zdCBlcnJNZXNzYWdlID0gKGF3YWl0IHJlc3BvbnNlLnRleHQoKSkgPz8gJ1VuYXV0aG9yaXplZCc7XG4gICA1NDlcdCAgICAgICAgICBoYW5kbGVFcnJvcihlcnJNZXNzYWdlKTtcbiAgIDU1MFx0ICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJNZXNzYWdlKTtcbiAgIDU1MVx0ICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAxKSB7XG4gICA1NTJcdCAgICAgICAgICBjb25zdCBlcnJNZXNzYWdlID0gKGF3YWl0IHJlc3BvbnNlLnRleHQoKSkgPz8gJ1VuYXV0aGVudGljYXRlZCc7XG4gICA1NTNcdCAgICAgICAgICBoYW5kbGVFcnJvcihlcnJNZXNzYWdlKTtcbiAgIDU1NFx0ICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJNZXNzYWdlKTtcbiAgIDU1NVx0ICAgICAgICB9IGVsc2Uge1xuICAgNTU2XHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7XG4gICA1NTdcdCAgICAgICAgfVxuICAgNTU4XHQgICAgICB9LFxuICAgNTU5XHQgICAgICBhc3luYyBvbm1lc3NhZ2UoZXYpIHtcbiAgIDU2MFx0ICAgICAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5wYXJzZShldi5kYXRhKTtcbiAgIDU2MVx0ICAgICAgICBpZiAoZGlzYWJsZUlucHV0KCkgJiYgcGF5bG9hZC5ldmVudCAhPT0gJ3N0YXJ0Jykge1xuICAgNTYyXHQgICAgICAgICAgc2V0Q3VycmVudFN0YXR1c01zZygnJyk7XG4gICA1NjNcdCAgICAgICAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgNTY0XHQgICAgICAgICAgc2V0VXNlcklucHV0KCcnKTtcbiAgIDU2NVx0ICAgICAgICAgIHNldFVwbG9hZGVkRmlsZXMoW10pO1xuICAgNTY2XHQgICAgICAgIH1cbiAgIDU2N1x0XG4gICA1NjhcdCAgICAgICAgc3dpdGNoIChwYXlsb2FkLmV2ZW50KSB7XG4gICA1NjlcdCAgICAgICAgICBjYXNlICdzdGFydCc6XG4gICA1NzBcdCAgICAgICAgICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IFsuLi5wcmV2TWVzc2FnZXMsIHsgbWVzc2FnZTogJycsIHR5cGU6ICdhcGlNZXNzYWdlJyB9XSk7XG4gICA1NzFcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNTcyXHQgICAgICAgICAgY2FzZSAncmVjaGVjayc6XG4gICA1NzNcdCAgICAgICAgICAgIHNldEN1cnJlbnRTdGF0dXNNc2coJ1JlY2hlY2tpbmcuLi4nKTtcbiAgIDU3NFx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1NzVcdCAgICAgICAgICBjYXNlICd0b2tlbic6XG4gICA1NzZcdCAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxDdXJyZW50TXNnKTtcbiAgIDU3N1x0ICAgICAgICAgICAgc2V0Q3VycmVudFN0YXR1c01zZygnJyk7XG4gICA1NzhcdCAgICAgICAgICAgIHVwZGF0ZUxhc3RNZXNzYWdlKHBheWxvYWQuZGF0YSk7XG4gICA1NzlcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNTgwXHQgICAgICAgICAgY2FzZSAnc291cmNlRG9jdW1lbnRzJzpcbiAgIDU4MVx0ICAgICAgICAgICAgdXBkYXRlTGFzdE1lc3NhZ2VTb3VyY2VEb2N1bWVudHMocGF5bG9hZC5kYXRhKTtcbiAgIDU4Mlx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1ODNcdCAgICAgICAgICBjYXNlICd1c2VkVG9vbHMnOlxuICAgNTg0XHQgICAgICAgICAgICB1cGRhdGVMYXN0TWVzc2FnZVVzZWRUb29scyhwYXlsb2FkLmRhdGEpO1xuICAgNTg1XHQgICAgICAgICAgICBicmVhaztcbiAgIDU4Nlx0ICAgICAgICAgIGNhc2UgJ2ZpbGVBbm5vdGF0aW9ucyc6XG4gICA1ODdcdCAgICAgICAgICAgIHVwZGF0ZUxhc3RNZXNzYWdlRmlsZUFubm90YXRpb25zKHBheWxvYWQuZGF0YSk7XG4gICA1ODhcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNTg5XHQgICAgICAgICAgY2FzZSAnYWdlbnRSZWFzb25pbmcnOlxuICAgNTkwXHQgICAgICAgICAgICB1cGRhdGVMYXN0TWVzc2FnZUFnZW50UmVhc29uaW5nKHBheWxvYWQuZGF0YSk7XG4gICA1OTFcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNTkyXHQgICAgICAgICAgY2FzZSAnYWN0aW9uJzpcbiAgIDU5M1x0ICAgICAgICAgICAgdXBkYXRlTGFzdE1lc3NhZ2VBY3Rpb24ocGF5bG9hZC5kYXRhKTtcbiAgIDU5NFx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1OTVcdCAgICAgICAgICBjYXNlICdhcnRpZmFjdHMnOlxuICAgNTk2XHQgICAgICAgICAgICB1cGRhdGVMYXN0TWVzc2FnZUFydGlmYWN0cyhwYXlsb2FkLmRhdGEpO1xuICAgNTk3XHQgICAgICAgICAgICBicmVhaztcbiAgIDU5OFx0ICAgICAgICAgIGNhc2UgJ21ldGFkYXRhJzpcbiAgIDU5OVx0ICAgICAgICAgICAgdXBkYXRlTWV0YWRhdGEocGF5bG9hZC5kYXRhLCBpbnB1dCk7XG4gICA2MDBcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNjAxXHQgICAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgNjAyXHQgICAgICAgICAgICB1cGRhdGVFcnJvck1lc3NhZ2UocGF5bG9hZC5kYXRhKTtcbiAgIDYwM1x0ICAgICAgICAgICAgYnJlYWs7XG4gICA2MDRcdCAgICAgICAgICBjYXNlICdhYm9ydCc6XG4gICA2MDVcdCAgICAgICAgICAgIGFib3J0TWVzc2FnZSgpO1xuICAgNjA2XHQgICAgICAgICAgICBjbG9zZVJlc3BvbnNlKCk7XG4gICA2MDdcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNjA4XHQgICAgICAgICAgY2FzZSAnZW5kJzpcbiAgIDYwOVx0ICAgICAgICAgICAgc2V0TG9jYWxTdG9yYWdlQ2hhdGZsb3coY2hhdGZsb3dpZCwgY2hhdElkKTtcbiAgIDYxMFx0ICAgICAgICAgICAgY2xvc2VSZXNwb25zZSgpO1xuICAgNjExXHQgICAgICAgICAgICBicmVhaztcbiAgIDYxMlx0ICAgICAgICB9XG4gICA2MTNcdCAgICAgIH0sXG4gICA2MTRcdCAgICAgIGFzeW5jIG9uY2xvc2UoKSB7XG4gICA2MTVcdCAgICAgICAgY2xvc2VSZXNwb25zZSgpO1xuICAgNjE2XHQgICAgICAgIHNldEN1cnJlbnRTdGF0dXNNc2coJycpO1xuICAgNjE3XHQgICAgICB9LFxuICAgNjE4XHQgICAgICBvbmVycm9yKGVycikge1xuICAgNjE5XHQgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0V2ZW50U291cmNlIEVycm9yOiAnLCBlcnIpO1xuICAgNjIwXHQgICAgICAgIGNsb3NlUmVzcG9uc2UoKTtcbiAgIDYyMVx0ICAgICAgICB0aHJvdyBlcnI7XG4gICA2MjJcdCAgICAgIH0sXG4gICA2MjNcdCAgICB9KTtcbiAgIDYyNFx0ICB9O1xuICAgNjI1XHRcbiAgIDYyNlx0ICBjb25zdCBjbG9zZVJlc3BvbnNlID0gKCkgPT4ge1xuICAgNjI3XHQgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICA2MjhcdCAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgNjI5XHQgICAgc2V0VXBsb2FkZWRGaWxlcyhbXSk7XG4gICA2MzBcdCAgICBoYXNTb3VuZFBsYXllZCA9IGZhbHNlO1xuICAgNjMxXHQgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICA2MzJcdCAgICAgIHNjcm9sbFRvQm90dG9tKCk7XG4gICA2MzNcdCAgICB9LCAxMDApO1xuICAgNjM0XHQgIH07XG4gICA2MzVcdFxuICAgNjM2XHQgIGNvbnN0IGFib3J0TWVzc2FnZSA9ICgpID0+IHtcbiAgIDYzN1x0ICAgIHNldElzTWVzc2FnZVN0b3BwaW5nKGZhbHNlKTtcbiAgIDYzOFx0ICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgIDYzOVx0ICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgNjQwXHQgICAgICBpZiAoYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0udHlwZSA9PT0gJ3VzZXJNZXNzYWdlJykgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgNjQxXHQgICAgICBjb25zdCBsYXN0QWdlbnRSZWFzb25pbmcgPSBhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS5hZ2VudFJlYXNvbmluZztcbiAgIDY0Mlx0ICAgICAgaWYgKGxhc3RBZ2VudFJlYXNvbmluZyAmJiBsYXN0QWdlbnRSZWFzb25pbmcubGVuZ3RoID4gMCkge1xuICAgNjQzXHQgICAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmFnZW50UmVhc29uaW5nID0gbGFzdEFnZW50UmVhc29uaW5nLmZpbHRlcigocmVhc29uaW5nKSA9PiAhcmVhc29uaW5nLm5leHRBZ2VudCk7XG4gICA2NDRcdCAgICAgIH1cbiAgIDY0NVx0ICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgNjQ2XHQgICAgfSk7XG4gICA2NDdcdCAgfTtcbiAgIDY0OFx0XG4gICA2NDlcdCAgY29uc3QgaGFuZGxlRmlsZVVwbG9hZHMgPSBhc3luYyAodXBsb2FkczogSVVwbG9hZHMpID0+IHtcbiAgIDY1MFx0ICAgIGlmICghdXBsb2FkZWRGaWxlcygpLmxlbmd0aCkgcmV0dXJuIHVwbG9hZHM7XG4gICA2NTFcdFxuICAgNjUyXHQgICAgY29uc3QgZmlsZXNXaXRoRnVsbFVwbG9hZFR5cGUgPSB1cGxvYWRlZEZpbGVzKCkuZmlsdGVyKChmaWxlKSA9PiBmaWxlLnR5cGUgPT09ICdmaWxlOmZ1bGwnKTtcbiAgIDY1M1x0XG4gICA2NTRcdCAgICBpZiAoZmlsZXNXaXRoRnVsbFVwbG9hZFR5cGUubGVuZ3RoID4gMCkge1xuICAgNjU1XHQgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgNjU2XHQgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXNXaXRoRnVsbFVwbG9hZFR5cGUpIHtcbiAgIDY1N1x0ICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGVzJywgZmlsZS5maWxlKTtcbiAgIDY1OFx0ICAgICAgfVxuICAgNjU5XHQgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2NoYXRJZCcsIGNoYXRJZCgpKTtcbiAgIDY2MFx0XG4gICA2NjFcdCAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY3JlYXRlQXR0YWNobWVudFdpdGhGb3JtRGF0YSh7XG4gICA2NjJcdCAgICAgICAgY2hhdGZsb3dpZDogcHJvcHMuY2hhdGZsb3dpZCxcbiAgIDY2M1x0ICAgICAgICBhcGlIb3N0OiBwcm9wcy5hcGlIb3N0LFxuICAgNjY0XHQgICAgICAgIGZvcm1EYXRhOiBmb3JtRGF0YSxcbiAgIDY2NVx0ICAgICAgfSk7XG4gICA2NjZcdFxuICAgNjY3XHQgICAgICBpZiAoIXJlc3BvbnNlLmRhdGEpIHtcbiAgIDY2OFx0ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byB1cGxvYWQgZG9jdW1lbnRzJyk7XG4gICA2NjlcdCAgICAgIH0gZWxzZSB7XG4gICA2NzBcdCAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGEgYXMgYW55O1xuICAgNjcxXHQgICAgICAgIGZvciAoY29uc3QgZXh0cmFjdGVkRmlsZURhdGEgb2YgZGF0YSkge1xuICAgNjcyXHQgICAgICAgICAgY29uc3QgY29udGVudCA9IGV4dHJhY3RlZEZpbGVEYXRhLmNvbnRlbnQ7XG4gICA2NzNcdCAgICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGV4dHJhY3RlZEZpbGVEYXRhLm5hbWU7XG4gICA2NzRcdFxuICAgNjc1XHQgICAgICAgICAgLy8gZmluZCBtYXRjaGluZyBuYW1lIGluIHByZXZpZXdzIGFuZCByZXBsYWNlIGRhdGEgd2l0aCBjb250ZW50XG4gICA2NzZcdCAgICAgICAgICBjb25zdCB1cGxvYWRJbmRleCA9IHVwbG9hZHMuZmluZEluZGV4KCh1cGxvYWQpID0+IHVwbG9hZC5uYW1lID09PSBmaWxlTmFtZSk7XG4gICA2NzdcdCAgICAgICAgICBjb25zb2xlLmxvZygn8J+agCB+IGhhbmRsZUZpbGVVcGxvYWRzIH4gdXBsb2FkczonLCB1cGxvYWRzKTtcbiAgIDY3OFx0ICAgICAgICAgIGlmICh1cGxvYWRJbmRleCAhPT0gLTEpIHtcbiAgIDY3OVx0ICAgICAgICAgICAgdXBsb2Fkc1t1cGxvYWRJbmRleF0gPSB7XG4gICA2ODBcdCAgICAgICAgICAgICAgLi4udXBsb2Fkc1t1cGxvYWRJbmRleF0sXG4gICA2ODFcdCAgICAgICAgICAgICAgZGF0YTogY29udGVudCxcbiAgIDY4Mlx0ICAgICAgICAgICAgICBuYW1lOiBmaWxlTmFtZSxcbiAgIDY4M1x0ICAgICAgICAgICAgICB0eXBlOiAnZmlsZTpmdWxsJyxcbiAgIDY4NFx0ICAgICAgICAgICAgICBmaWxlOiB1cGxvYWRlZEZpbGVzKClbdXBsb2FkSW5kZXhdLFxuICAgNjg1XHQgICAgICAgICAgICB9O1xuICAgNjg2XHQgICAgICAgICAgfVxuICAgNjg3XHQgICAgICAgIH1cbiAgIDY4OFx0ICAgICAgfVxuICAgNjg5XHQgICAgfVxuICAgNjkwXHQgICAgaWYgKHVwbG9hZHNDb25maWcoKT8uaXNSQUdGaWxlVXBsb2FkQWxsb3dlZCkge1xuICAgNjkxXHQgICAgICBjb25zdCBmaWxlc1dpdGhSQUdVcGxvYWRUeXBlID0gdXBsb2FkZWRGaWxlcygpLmZpbHRlcigoZmlsZSkgPT4gZmlsZS50eXBlID09PSAnZmlsZTpyYWcnKTtcbiAgIDY5Mlx0XG4gICA2OTNcdCAgICAgIGlmIChmaWxlc1dpdGhSQUdVcGxvYWRUeXBlLmxlbmd0aCA+IDApIHtcbiAgIDY5NFx0ICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgNjk1XHQgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlc1dpdGhSQUdVcGxvYWRUeXBlKSB7XG4gICA2OTZcdCAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGVzJywgZmlsZS5maWxlKTtcbiAgIDY5N1x0ICAgICAgICB9XG4gICA2OThcdCAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdjaGF0SWQnLCBjaGF0SWQoKSk7XG4gICA2OTlcdFxuICAgNzAwXHQgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdXBzZXJ0VmVjdG9yU3RvcmVXaXRoRm9ybURhdGEoe1xuICAgNzAxXHQgICAgICAgICAgY2hhdGZsb3dpZDogcHJvcHMuY2hhdGZsb3dpZCxcbiAgIDcwMlx0ICAgICAgICAgIGFwaUhvc3Q6IHByb3BzLmFwaUhvc3QsXG4gICA3MDNcdCAgICAgICAgICBmb3JtRGF0YTogZm9ybURhdGEsXG4gICA3MDRcdCAgICAgICAgfSk7XG4gICA3MDVcdFxuICAgNzA2XHQgICAgICAgIGlmICghcmVzcG9uc2UuZGF0YSkge1xuICAgNzA3XHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gdXBsb2FkIGRvY3VtZW50cycpO1xuICAgNzA4XHQgICAgICAgIH0gZWxzZSB7XG4gICA3MDlcdCAgICAgICAgICAvLyBkZWxheSBmb3IgdmVjdG9yIHN0b3JlIHRvIGJlIHVwZGF0ZWRcbiAgIDcxMFx0ICAgICAgICAgIGNvbnN0IGRlbGF5ID0gKGRlbGF5SW5tczogbnVtYmVyKSA9PiB7XG4gICA3MTFcdCAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkZWxheUlubXMpKTtcbiAgIDcxMlx0ICAgICAgICAgIH07XG4gICA3MTNcdCAgICAgICAgICBhd2FpdCBkZWxheSgyNTAwKTsgLy9UT0RPOiBjaGVjayBpZiBlbWJlZGRpbmdzIGNhbiBiZSByZXRyaWV2ZWQgdXNpbmcgZmlsZSBuYW1lIGFzIG1ldGFkYXRhIGZpbHRlclxuICAgNzE0XHRcbiAgIDcxNVx0ICAgICAgICAgIHVwbG9hZHMgPSB1cGxvYWRzLm1hcCgodXBsb2FkKSA9PiB7XG4gICA3MTZcdCAgICAgICAgICAgIHJldHVybiB7XG4gICA3MTdcdCAgICAgICAgICAgICAgLi4udXBsb2FkLFxuICAgNzE4XHQgICAgICAgICAgICAgIHR5cGU6ICdmaWxlOnJhZycsXG4gICA3MTlcdCAgICAgICAgICAgIH07XG4gICA3MjBcdCAgICAgICAgICB9KTtcbiAgIDcyMVx0ICAgICAgICB9XG4gICA3MjJcdCAgICAgIH1cbiAgIDcyM1x0ICAgIH1cbiAgIDcyNFx0ICAgIHJldHVybiB1cGxvYWRzO1xuICAgNzI1XHQgIH07XG4gICA3MjZcdFxuICAgNzI3XHQgIGNvbnN0IGRhdGFMb2dpbiA9IGxvY2FsU3RvcmFnZT8uZ2V0SXRlbSgnZGF0YUxvZ2luJyk7XG4gICA3MjhcdCAgaWYgKGRhdGFMb2dpbikge1xuICAgNzI5XHQgICAgdHJ5IHtcbiAgIDczMFx0ICAgICAgY29uc3QgZGF0YSA9IEpTT04/LnBhcnNlKGRhdGFMb2dpbik7XG4gICA3MzFcdCAgICAgIHNldFVzZXIoZGF0YT8udXNlcik7XG4gICA3MzJcdCAgICB9IGNhdGNoIChlcnJvcikge1xuICAgNzMzXHQgICAgICBjb25zb2xlLmxvZygnTmfGsOG7nWkgZMO5bmcgY2jGsGEgxJHEg25nIG5o4bqtcCcpO1xuICAgNzM0XHQgICAgfVxuICAgNzM1XHQgIH1cbiAgIDczNlx0XG4gICA3MzdcdCAgY29uc3QgaGFuZGxlU3VnZXN0U3VibWl0ID0gYXN5bmMgKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgIDczOFx0ICAgIGF3YWl0IGhhbmRsZVN1Ym1pdCh2YWx1ZSk7XG4gICA3MzlcdCAgfTtcbiAgIDc0MFx0XG4gICA3NDFcdCAgLy8gSGFuZGxlIGZvcm0gc3VibWlzc2lvblxuICAgNzQyXHQgIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IGFzeW5jICh2YWx1ZTogc3RyaW5nLCBhY3Rpb24/OiBJQWN0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCwgZmFxSWQ/OiBzdHJpbmcpID0+IHtcbiAgIDc0M1x0ICAgIGlmICh2YWx1ZS50cmltKCkgPT09ICcnKSB7XG4gICA3NDRcdCAgICAgIGNvbnN0IGNvbnRhaW5zRmlsZSA9IHByZXZpZXdzKCkuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5taW1lLnN0YXJ0c1dpdGgoJ2ltYWdlJykgJiYgaXRlbS50eXBlICE9PSAnYXVkaW8nKS5sZW5ndGggPiAwO1xuICAgNzQ1XHQgICAgICBpZiAoIXByZXZpZXdzKCkubGVuZ3RoIHx8IChwcmV2aWV3cygpLmxlbmd0aCAmJiBjb250YWluc0ZpbGUpKSB7XG4gICA3NDZcdCAgICAgICAgcmV0dXJuO1xuICAgNzQ3XHQgICAgICB9XG4gICA3NDhcdCAgICB9XG4gICA3NDlcdFxuICAgNzUwXHQgICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgY2hhdHdvb3Q6JHtwcm9wcy5jaGF0Zmxvd2lkfTpjb252ZXJzYXRpb25faWRgKSkge1xuICAgNzUxXHQgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgNzUyXHQgICAgICBzZXREaXNhYmxlSW5wdXQodHJ1ZSk7XG4gICA3NTNcdCAgICB9XG4gICA3NTRcdCAgICBzY3JvbGxUb0JvdHRvbSgpO1xuICAgNzU1XHRcbiAgIDc1Nlx0ICAgIGxldCB1cGxvYWRzOiBJVXBsb2FkcyA9IHByZXZpZXdzKCkubWFwKChpdGVtKSA9PiB7XG4gICA3NTdcdCAgICAgIHJldHVybiB7XG4gICA3NThcdCAgICAgICAgZGF0YTogaXRlbS5kYXRhLFxuICAgNzU5XHQgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcbiAgIDc2MFx0ICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXG4gICA3NjFcdCAgICAgICAgbWltZTogaXRlbS5taW1lLFxuICAgNzYyXHQgICAgICB9O1xuICAgNzYzXHQgICAgfSk7XG4gICA3NjRcdFxuICAgNzY1XHQgICAgdHJ5IHtcbiAgIDc2Nlx0ICAgICAgdXBsb2FkcyA9IGF3YWl0IGhhbmRsZUZpbGVVcGxvYWRzKHVwbG9hZHMpO1xuICAgNzY3XHQgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgIDc2OFx0ICAgICAgaGFuZGxlRXJyb3IoJ1VuYWJsZSB0byB1cGxvYWQgZG9jdW1lbnRzJyk7XG4gICA3NjlcdCAgICAgIHJldHVybjtcbiAgIDc3MFx0ICAgIH1cbiAgIDc3MVx0XG4gICA3NzJcdCAgICBjbGVhclByZXZpZXdzKCk7XG4gICA3NzNcdFxuICAgNzc0XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNzc1XHQgICAgICBjb25zdCBtZXNzYWdlczogTWVzc2FnZVR5cGVbXSA9IFsuLi5wcmV2TWVzc2FnZXMsIHsgbWVzc2FnZTogdmFsdWUsIHR5cGU6ICd1c2VyTWVzc2FnZScsIGZpbGVVcGxvYWRzOiB1cGxvYWRzIH1dO1xuICAgNzc2XHQgICAgICBhZGRDaGF0TWVzc2FnZShtZXNzYWdlcyk7XG4gICA3NzdcdCAgICAgIHJldHVybiBtZXNzYWdlcztcbiAgIDc3OFx0ICAgIH0pO1xuICAgNzc5XHRcbiAgIDc4MFx0ICAgIGxldCBkZXZpY2VJZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbWN0czpkZXZpY2VJZCcpO1xuICAgNzgxXHQgICAgaWYgKCFkZXZpY2VJZCkge1xuICAgNzgyXHQgICAgICBkZXZpY2VJZCA9IHV1aWR2NCgpO1xuICAgNzgzXHQgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY21jdHM6ZGV2aWNlSWQnLCBkZXZpY2VJZCk7XG4gICA3ODRcdCAgICB9XG4gICA3ODVcdFxuICAgNzg2XHQgICAgY29uc3QgYm9keTogSW5jb21pbmdJbnB1dCA9IHtcbiAgIDc4N1x0ICAgICAgcXVlc3Rpb246IHZhbHVlLFxuICAgNzg4XHQgICAgICBmYXFJZCxcbiAgIDc4OVx0ICAgICAgY2hhdElkOiBjaGF0SWQoKSxcbiAgIDc5MFx0ICAgICAgdXNlSWQ6IHVzZXIoKT8uaWQsXG4gICA3OTFcdCAgICAgIHN0b3JlZDoge1xuICAgNzkyXHQgICAgICAgIGRldmljZUlkLFxuICAgNzkzXHQgICAgICAgIHVzZXJJbmZvOiAoKCkgPT4ge1xuICAgNzk0XHQgICAgICAgICAgY29uc3QgdXNlckluZm9TdHIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY21jdHM6dXNlckluZm8nKTtcbiAgIDc5NVx0ICAgICAgICAgIGlmICghdXNlckluZm9TdHIpIHJldHVybiB1bmRlZmluZWQ7XG4gICA3OTZcdCAgICAgICAgICB0cnkge1xuICAgNzk3XHQgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICA3OThcdCAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICA3OTlcdCAgICAgICAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIHBhcnNlIHVzZXJJbmZvIGZyb20gbG9jYWxTdG9yYWdlJyk7XG4gICA4MDBcdCAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICA4MDFcdCAgICAgICAgICB9XG4gICA4MDJcdCAgICAgICAgfSkoKSxcbiAgIDgwM1x0ICAgICAgICBjaGF0d29vdDoge1xuICAgODA0XHQgICAgICAgICAgY29udmVyc2F0aW9uX2lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgY2hhdHdvb3Q6JHtwcm9wcy5jaGF0Zmxvd2lkfTpjb252ZXJzYXRpb25faWRgKSxcbiAgIDgwNVx0ICAgICAgICB9LFxuICAgODA2XHQgICAgICB9LFxuICAgODA3XHQgICAgfTtcbiAgIDgwOFx0XG4gICA4MDlcdCAgICBpZiAodXBsb2FkcyAmJiB1cGxvYWRzLmxlbmd0aCA+IDApIGJvZHkudXBsb2FkcyA9IHVwbG9hZHM7XG4gICA4MTBcdCAgICBlbHNlIGlmICghdXBsb2Fkcz8ubGVuZ3RoICYmIGZpbGVDb250ZW50KCkgJiYgZmlsZVN1bW1hcnkoKSkge1xuICAgODExXHQgICAgICBsZXQgZmlsZU5hbWUgPSBwcm9wcy5maWxlUGF0aD8uc3BsaXQoJy8nKS5wb3AoKSB8fCAnJztcbiAgIDgxMlx0ICAgICAgZmlsZU5hbWUgJiYgIWZpbGVOYW1lLmVuZHNXaXRoKCcudHh0JykgJiYgKGZpbGVOYW1lICs9ICcudHh0Jyk7XG4gICA4MTNcdCAgICAgIGJvZHkudXBsb2FkcyA9IFtcbiAgIDgxNFx0ICAgICAgICB7XG4gICA4MTVcdCAgICAgICAgICBkYXRhOiBmaWxlQ29udGVudCgpLFxuICAgODE2XHQgICAgICAgICAgdHlwZTogJ2ZpbGU6ZnVsbCcsXG4gICA4MTdcdCAgICAgICAgICBuYW1lOiBmaWxlTmFtZSxcbiAgIDgxOFx0ICAgICAgICAgIG1pbWU6ICd0ZXh0L3BsYWluJyxcbiAgIDgxOVx0ICAgICAgICB9LFxuICAgODIwXHQgICAgICAgIHtcbiAgIDgyMVx0ICAgICAgICAgIGRhdGE6IGZpbGVTdW1tYXJ5KCksXG4gICA4MjJcdCAgICAgICAgICB0eXBlOiAnZmlsZTpmdWxsJyxcbiAgIDgyM1x0ICAgICAgICAgIG5hbWU6IGZpbGVOYW1lLFxuICAgODI0XHQgICAgICAgICAgbWltZTogJ3RleHQvcGxhaW4nLFxuICAgODI1XHQgICAgICAgIH0sXG4gICA4MjZcdCAgICAgIF07XG4gICA4MjdcdCAgICB9XG4gICA4MjhcdFxuICAgODI5XHQgICAgaWYgKHByb3BzPy5leHRlcm5hbERhdGEpIHtcbiAgIDgzMFx0ICAgICAgYm9keS51cGxvYWRzID0gW1xuICAgODMxXHQgICAgICAgIHtcbiAgIDgzMlx0ICAgICAgICAgIGRhdGE6IHByb3BzPy5leHRlcm5hbERhdGEsXG4gICA4MzNcdCAgICAgICAgICB0eXBlOiAnZmlsZTpmdWxsJyxcbiAgIDgzNFx0ICAgICAgICAgIG5hbWU6ICdleHRlcm5hbF9kYXRhLnR4dCcsXG4gICA4MzVcdCAgICAgICAgICBtaW1lOiAndGV4dC9wbGFpbicsXG4gICA4MzZcdCAgICAgICAgfSxcbiAgIDgzN1x0ICAgICAgXTtcbiAgIDgzOFx0ICAgIH1cbiAgIDgzOVx0XG4gICA4NDBcdCAgICBpZiAocHJvcHMuY2hhdGZsb3dDb25maWcpIGJvZHkub3ZlcnJpZGVDb25maWcgPSBwcm9wcy5jaGF0Zmxvd0NvbmZpZztcbiAgIDg0MVx0XG4gICA4NDJcdCAgICBpZiAobGVhZEVtYWlsKCkpIGJvZHkubGVhZEVtYWlsID0gbGVhZEVtYWlsKCk7XG4gICA4NDNcdFxuICAgODQ0XHQgICAgaWYgKGFjdGlvbikgYm9keS5hY3Rpb24gPSBhY3Rpb247XG4gICA4NDVcdFxuICAgODQ2XHQgICAgLy8gQ2hlY2sgbmV0d29yayBzdGF0dXMgYmVmb3JlIG1ha2luZyB0aGUgcmVxdWVzdFxuICAgODQ3XHQgICAgaWYgKCFuYXZpZ2F0b3Iub25MaW5lKSB7XG4gICA4NDhcdCAgICAgIHNldElzTmV0d29ya0Vycm9yKHRydWUpO1xuICAgODQ5XHQgICAgICBzZXROZXR3b3JrRXJyb3JNZXNzYWdlKCdN4bqldCBr4bq/dCBu4buRaSBt4bqhbmcnKTtcbiAgIDg1MFx0ICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgODUxXHQgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDg1Mlx0ICAgICAgICBhbGxNZXNzYWdlcy5wdXNoKHtcbiAgIDg1M1x0ICAgICAgICAgIG1lc3NhZ2U6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBraMO0bmcgY8OzIGvhur90IG7hu5FpIG3huqFuZy4gVnVpIGzDsm5nIGtp4buDbSB0cmEgbOG6oWkga+G6v3QgbuG7kWkgdsOgIHRo4butIGzhuqFpIHNhdS4nLFxuICAgODU0XHQgICAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnLFxuICAgODU1XHQgICAgICAgICAgZGF0ZVRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgIDg1Nlx0ICAgICAgICB9KTtcbiAgIDg1N1x0ICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA4NThcdCAgICAgIH0pO1xuICAgODU5XHQgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgIDg2MFx0ICAgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcbiAgIDg2MVx0ICAgICAgcmV0dXJuO1xuICAgODYyXHQgICAgfVxuICAgODYzXHRcbiAgIDg2NFx0ICAgIGlmIChpc0NoYXRGbG93QXZhaWxhYmxlVG9TdHJlYW0oKSAmJiAhZmFxSWQpIHtcbiAgIDg2NVx0ICAgICAgZmV0Y2hSZXNwb25zZUZyb21FdmVudFN0cmVhbShwcm9wcy5jaGF0Zmxvd2lkLCBib2R5KTtcbiAgIDg2Nlx0ICAgIH0gZWxzZSB7XG4gICA4NjdcdCAgICAgIHRyeSB7XG4gICA4NjhcdCAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2VuZE1lc3NhZ2VRdWVyeSh7XG4gICA4NjlcdCAgICAgICAgICBjaGF0Zmxvd2lkOiBwcm9wcy5jaGF0Zmxvd2lkLFxuICAgODcwXHQgICAgICAgICAgYXBpSG9zdDogcHJvcHMuYXBpSG9zdCxcbiAgIDg3MVx0ICAgICAgICAgIGJvZHksXG4gICA4NzJcdCAgICAgICAgICBvblJlcXVlc3Q6IHByb3BzLm9uUmVxdWVzdCxcbiAgIDg3M1x0ICAgICAgICB9KTtcbiAgIDg3NFx0XG4gICA4NzVcdCAgICAgICAgaWYgKHJlc3VsdC5kYXRhKSB7XG4gICA4NzZcdCAgICAgICAgICBjb25zdCBkYXRhID0gcmVzdWx0LmRhdGE7XG4gICA4NzdcdFxuICAgODc4XHQgICAgICAgICAgbGV0IHRleHQgPSAnJztcbiAgIDg3OVx0ICAgICAgICAgIGlmIChkYXRhLnRleHQpIHRleHQgPSBkYXRhLnRleHQ7XG4gICA4ODBcdCAgICAgICAgICBlbHNlIGlmIChkYXRhLmpzb24pIHRleHQgPSBKU09OLnN0cmluZ2lmeShkYXRhLmpzb24sIG51bGwsIDIpO1xuICAgODgxXHQgICAgICAgICAgZWxzZSB0ZXh0ID0gSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMik7XG4gICA4ODJcdFxuICAgODgzXHQgICAgICAgICAgaWYgKGRhdGE/LmNoYXRJZCkgc2V0Q2hhdElkKGRhdGEuY2hhdElkKTtcbiAgIDg4NFx0XG4gICA4ODVcdCAgICAgICAgICBwbGF5UmVjZWl2ZVNvdW5kKCk7XG4gICA4ODZcdFxuICAgODg3XHQgICAgICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgODg4XHQgICAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA4ODlcdCAgICAgICAgICAgIGNvbnN0IG5ld01lc3NhZ2UgPSB7XG4gICA4OTBcdCAgICAgICAgICAgICAgbWVzc2FnZTogdGV4dCxcbiAgIDg5MVx0ICAgICAgICAgICAgICBpZDogZGF0YT8uY2hhdE1lc3NhZ2VJZCxcbiAgIDg5Mlx0ICAgICAgICAgICAgICBzb3VyY2VEb2N1bWVudHM6IGRhdGE/LnNvdXJjZURvY3VtZW50cyxcbiAgIDg5M1x0ICAgICAgICAgICAgICB1c2VkVG9vbHM6IGRhdGE/LnVzZWRUb29scyxcbiAgIDg5NFx0ICAgICAgICAgICAgICBmaWxlQW5ub3RhdGlvbnM6IGRhdGE/LmZpbGVBbm5vdGF0aW9ucyxcbiAgIDg5NVx0ICAgICAgICAgICAgICBhZ2VudFJlYXNvbmluZzogZGF0YT8uYWdlbnRSZWFzb25pbmcsXG4gICA4OTZcdCAgICAgICAgICAgICAgYWN0aW9uOiBkYXRhPy5hY3Rpb24sXG4gICA4OTdcdCAgICAgICAgICAgICAgYXJ0aWZhY3RzOiBkYXRhPy5hcnRpZmFjdHMsXG4gICA4OThcdCAgICAgICAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnIGFzIG1lc3NhZ2VUeXBlLFxuICAgODk5XHQgICAgICAgICAgICAgIGZlZWRiYWNrOiBudWxsLFxuICAgOTAwXHQgICAgICAgICAgICAgIGRhdGVUaW1lOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICA5MDFcdCAgICAgICAgICAgIH07XG4gICA5MDJcdCAgICAgICAgICAgIGFsbE1lc3NhZ2VzLnB1c2gobmV3TWVzc2FnZSk7XG4gICA5MDNcdCAgICAgICAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDkwNFx0ICAgICAgICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgOTA1XHQgICAgICAgICAgfSk7XG4gICA5MDZcdFxuICAgOTA3XHQgICAgICAgICAgdXBkYXRlTWV0YWRhdGEoZGF0YSwgdmFsdWUpO1xuICAgOTA4XHRcbiAgIDkwOVx0ICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgOTEwXHQgICAgICAgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcbiAgIDkxMVx0ICAgICAgICAgIHNldFVzZXJJbnB1dCgnJyk7XG4gICA5MTJcdCAgICAgICAgICBzZXRVcGxvYWRlZEZpbGVzKFtdKTtcbiAgIDkxM1x0ICAgICAgICAgIHNjcm9sbFRvQm90dG9tKCk7XG4gICA5MTRcdCAgICAgICAgfVxuICAgOTE1XHQgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgOTE2XHQgICAgICAgIGlmICghbmF2aWdhdG9yLm9uTGluZSkge1xuICAgOTE3XHQgICAgICAgICAgc2V0SXNOZXR3b3JrRXJyb3IodHJ1ZSk7XG4gICA5MThcdCAgICAgICAgICBzZXROZXR3b3JrRXJyb3JNZXNzYWdlKCdN4bqldCBr4bq/dCBu4buRaSBt4bqhbmcnKTtcbiAgIDkxOVx0ICAgICAgICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgIDkyMFx0ICAgICAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgOTIxXHQgICAgICAgICAgICBhbGxNZXNzYWdlcy5wdXNoKHtcbiAgIDkyMlx0ICAgICAgICAgICAgICBtZXNzYWdlOiAnWGluIGzhu5dpLCBoaeG7h24gdOG6oWkga2jDtG5nIGPDsyBr4bq/dCBu4buRaSBt4bqhbmcuIFZ1aSBsw7JuZyBraeG7g20gdHJhIGzhuqFpIGvhur90IG7hu5FpIHbDoCB0aOG7rSBs4bqhaSBzYXUuJyxcbiAgIDkyM1x0ICAgICAgICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScsXG4gICA5MjRcdCAgICAgICAgICAgICAgZGF0ZVRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgIDkyNVx0ICAgICAgICAgICAgfSk7XG4gICA5MjZcdCAgICAgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDkyN1x0ICAgICAgICAgIH0pO1xuICAgOTI4XHQgICAgICAgIH0gZWxzZSB7XG4gICA5MjlcdCAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgIDkzMFx0ICAgICAgICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmIGVycm9yICE9PSBudWxsICYmICdtZXNzYWdlJyBpbiBlcnJvcikge1xuICAgOTMxXHQgICAgICAgICAgICBoYW5kbGVFcnJvcihgRXJyb3I6ICR7KGVycm9yIGFzIHsgbWVzc2FnZTogc3RyaW5nIH0pLm1lc3NhZ2UucmVwbGFjZUFsbCgnRXJyb3I6JywgJyAnKX1gKTtcbiAgIDkzMlx0ICAgICAgICAgICAgcmV0dXJuO1xuICAgOTMzXHQgICAgICAgICAgfVxuICAgOTM0XHQgICAgICAgICAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgIDkzNVx0ICAgICAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgOTM2XHQgICAgICAgICAgICByZXR1cm47XG4gICA5MzdcdCAgICAgICAgICB9XG4gICA5MzhcdCAgICAgICAgICBoYW5kbGVFcnJvcigpO1xuICAgOTM5XHQgICAgICAgIH1cbiAgIDk0MFx0ICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgIDk0MVx0ICAgICAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgOTQyXHQgICAgICAgIHJldHVybjtcbiAgIDk0M1x0ICAgICAgfVxuICAgOTQ0XHQgICAgfVxuICAgOTQ1XHQgIH07XG4gICA5NDZcdFxuICAgOTQ3XHQgIGNvbnN0IGhhbmRsZUFjdGlvbkNsaWNrID0gYXN5bmMgKGxhYmVsOiBzdHJpbmcsIGFjdGlvbjogSUFjdGlvbiB8IHVuZGVmaW5lZCB8IG51bGwpID0+IHtcbiAgIDk0OFx0ICAgIHNldFVzZXJJbnB1dChsYWJlbCk7XG4gICA5NDlcdCAgICBzZXRNZXNzYWdlcygoZGF0YSkgPT4ge1xuICAgOTUwXHQgICAgICBjb25zdCB1cGRhdGVkID0gZGF0YS5tYXAoKGl0ZW0sIGkpID0+IHtcbiAgIDk1MVx0ICAgICAgICBpZiAoaSA9PT0gZGF0YS5sZW5ndGggLSAxKSB7XG4gICA5NTJcdCAgICAgICAgICByZXR1cm4geyAuLi5pdGVtLCBhY3Rpb246IG51bGwgfTtcbiAgIDk1M1x0ICAgICAgICB9XG4gICA5NTRcdCAgICAgICAgcmV0dXJuIGl0ZW07XG4gICA5NTVcdCAgICAgIH0pO1xuICAgOTU2XHQgICAgICBhZGRDaGF0TWVzc2FnZSh1cGRhdGVkKTtcbiAgIDk1N1x0ICAgICAgcmV0dXJuIFsuLi51cGRhdGVkXTtcbiAgIDk1OFx0ICAgIH0pO1xuICAgOTU5XHQgICAgaGFuZGxlU3VibWl0KGxhYmVsLCBhY3Rpb24pO1xuICAgOTYwXHQgIH07XG4gICA5NjFcdFxuICAgOTYyXHQgIGNvbnN0IGNsZWFyQ2hhdCA9ICgpID0+IHtcbiAgIDk2M1x0ICAgIHRyeSB7XG4gICA5NjRcdCAgICAgIHJlbW92ZUxvY2FsU3RvcmFnZUNoYXRIaXN0b3J5KHByb3BzLmNoYXRmbG93aWQpO1xuICAgOTY1XHQgICAgICBzZXRDaGF0SWQoXG4gICA5NjZcdCAgICAgICAgKHByb3BzLmNoYXRmbG93Q29uZmlnPy52YXJzIGFzIGFueSk/LmN1c3RvbWVySWQgPyBgJHsocHJvcHMuY2hhdGZsb3dDb25maWc/LnZhcnMgYXMgYW55KS5jdXN0b21lcklkLnRvU3RyaW5nKCl9KyR7dXVpZHY0KCl9YCA6IHV1aWR2NCgpLFxuICAgOTY3XHQgICAgICApO1xuICAgOTY4XHQgICAgICBzZXRVcGxvYWRlZEZpbGVzKFtdKTtcbiAgIDk2OVx0ICAgICAgY29uc3QgbWVzc2FnZXM6IE1lc3NhZ2VUeXBlW10gPSBbXG4gICA5NzBcdCAgICAgICAge1xuICAgOTcxXHQgICAgICAgICAgbWVzc2FnZTogcHJvcHMud2VsY29tZU1lc3NhZ2UgPz8gZGVmYXVsdFdlbGNvbWVNZXNzYWdlLFxuICAgOTcyXHQgICAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnLFxuICAgOTczXHQgICAgICAgIH0sXG4gICA5NzRcdCAgICAgICAgLi4uKHByb3BzLnNlY29uZE1lc3NhZ2UgPyBbeyBtZXNzYWdlOiBwcm9wcy5zZWNvbmRNZXNzYWdlLCB0eXBlOiAnYXBpTWVzc2FnZScgYXMgbWVzc2FnZVR5cGUgfV0gOiBbXSksXG4gICA5NzVcdCAgICAgIF07XG4gICA5NzZcdCAgICAgIGlmIChsZWFkc0NvbmZpZygpPy5zdGF0dXMgJiYgIWdldExvY2FsU3RvcmFnZUNoYXRmbG93KHByb3BzLmNoYXRmbG93aWQpPy5sZWFkKSB7XG4gICA5NzdcdCAgICAgICAgbWVzc2FnZXMucHVzaCh7IG1lc3NhZ2U6ICcnLCB0eXBlOiAnbGVhZENhcHR1cmVNZXNzYWdlJyB9KTtcbiAgIDk3OFx0ICAgICAgfVxuICAgOTc5XHQgICAgICBzZXRNZXNzYWdlcyhtZXNzYWdlcyk7XG4gICA5ODBcdCAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICA5ODFcdCAgICAgIGNvbnN0IGVycm9yRGF0YSA9IGVycm9yLnJlc3BvbnNlLmRhdGEgfHwgYCR7ZXJyb3IucmVzcG9uc2Uuc3RhdHVzfTogJHtlcnJvci5yZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICA5ODJcdCAgICAgIGNvbnNvbGUuZXJyb3IoYGVycm9yOiAke2Vycm9yRGF0YX1gKTtcbiAgIDk4M1x0ICAgIH1cbiAgIDk4NFx0ICB9O1xuICAgOTg1XHRcbiAgIDk4Nlx0ICAod2luZG93IGFzIGFueSkuY2xlYXJDaGF0ID0gY2xlYXJDaGF0O1xuICAgOTg3XHRcbiAgIDk4OFx0ICBvbk1vdW50KCgpID0+IHtcbiAgIDk4OVx0ICAgIGxldCBwZW5kaW5nID0gZmFsc2U7XG4gICA5OTBcdCAgICBjb25zdCBpZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgIDk5MVx0ICAgICAgaWYgKHBlbmRpbmcgfHwgZG9jdW1lbnQuaGlkZGVuKSByZXR1cm47XG4gICA5OTJcdCAgICAgIGNvbnN0IGNvbnZlcnNhdGlvbklkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oYGNoYXR3b290OiR7cHJvcHMuY2hhdGZsb3dpZH06Y29udmVyc2F0aW9uX2lkYCk7XG4gICA5OTNcdFxuICAgOTk0XHQgICAgICBpZiAoY29udmVyc2F0aW9uSWQpIHtcbiAgIDk5NVx0ICAgICAgICBwZW5kaW5nID0gdHJ1ZTtcbiAgIDk5Nlx0ICAgICAgICBzZW5kTWVzc2FnZVF1ZXJ5KHtcbiAgIDk5N1x0ICAgICAgICAgIGNoYXRmbG93aWQ6IHByb3BzLmNoYXRmbG93aWQsXG4gICA5OThcdCAgICAgICAgICBhcGlIb3N0OiBwcm9wcy5hcGlIb3N0LFxuICAgOTk5XHQgICAgICAgICAgYm9keToge1xuICAxMDAwXHQgICAgICAgICAgICBxdWVzdGlvbjogJ3BpbmcnLFxuVG90YWwgbGluZXMgaW4gZmlsZTogMjA5NFxuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxSHBYVnE0UGNiRWp5NjdQc2MxV1N2ayJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTYsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDM6MDAuMjUxWiIsInJlc3BvbnNlX3RleHQiOiJOb3cgbGV0IG1lIGxvb2sgYXQgdGhlIHR5cGVzIGZpbGUgdG8gdW5kZXJzdGFuZCB0aGUgY3VycmVudCBzdHJ1Y3R1cmUgYmV0dGVyOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6Ijc0OWM3MGEzLTJkMmUtNDJjZC1hMjQwLTA3N2JiMzI5ZmVjNyIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMThXc2NEUkEycFJCcHpZNUFMWVg0dWgiLCJ0b29sX25hbWUiOiJ2aWV3IiwiaW5wdXRfanNvbiI6IntcInBhdGhcIjogXCJwYWNrYWdlLmpzb25cIiwgXCJ0eXBlXCI6IFwiZmlsZVwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IkxldCBtZSBjaGVjayB0aGUgbWFpbiBwYWNrYWdlIGZpbGVzIHRvIHVuZGVyc3RhbmQgdGhlIHByb2plY3Qgc3RydWN0dXJlOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSdzIHRoZSByZXN1bHQgb2YgcnVubmluZyBgY2F0IC1uYCBvbiBzcmMvdHlwZXMudHM6XG4gICAgIDFcdFxuVG90YWwgbGluZXMgaW4gZmlsZTogMVxuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxM2U2cUdmTkd0Y2hvbUthNGNianhXVSJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTYsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDM6MDMuOTQzWiIsInJlc3BvbnNlX3RleHQiOiJMZXQgbWUgY2hlY2sgdGhlIG1haW4gcGFja2FnZSBmaWxlcyB0byB1bmRlcnN0YW5kIHRoZSBwcm9qZWN0IHN0cnVjdHVyZTpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiIyMWE1NWM1My00NmIyLTRiYzMtOTg1MS00NjFiMDAwYjA3ZDgiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDE5bXJkZ3ZxemlvQlVBOHFoc0x0VHZyIiwidG9vbF9uYW1lIjoiY29kZWJhc2UtcmV0cmlldmFsIiwiaW5wdXRfanNvbiI6IntcImluZm9ybWF0aW9uX3JlcXVlc3RcIjogXCJGaW5kIHRoZSBCb3RQcm9wcyBpbnRlcmZhY2UgZGVmaW5pdGlvbiBhbmQgYW55IGV4aXN0aW5nIGNhbGxiYWNrIG9yIGV2ZW50IGhhbmRsZXIgcHJvcHMuIExvb2sgZm9yIHRoZSBjb21wbGV0ZSBpbnRlcmZhY2UgZGVmaW5pdGlvbiB0aGF0IGluY2x1ZGVzIGFsbCBhdmFpbGFibGUgcHJvcHMgZm9yIHRoZSBjaGF0Ym90IGNvbXBvbmVudHMuXCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTm93IGxldCBtZSBjaGVjayB0aGUgbWFpbiBlbWJlZGRpbmcgcGFja2FnZSB0byB1bmRlcnN0YW5kIHRoZSBjdXJyZW50IGludGVyZmFjZTpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gcGFja2FnZS5qc29uOlxuICAgICAxXHR7XG4gICAgIDJcdCAgXCJuYW1lXCI6IFwiY21jdHMtYy1hZ2VudC1lbWJlZGRpbmctcmVhY3RcIixcbiAgICAgM1x0ICBcInZlcnNpb25cIjogXCIxLjAuMzlcIixcbiAgICAgNFx0ICBcImRlc2NyaXB0aW9uXCI6IFwiUmVhY3QgbGlicmFyeSB0byBkaXNwbGF5IGZsb3dpc2UgY2hhdGJvdCBvbiB5b3VyIHdlYnNpdGVcIixcbiAgICAgNVx0ICBcIm1haW5cIjogXCJkaXN0L2luZGV4LmpzXCIsXG4gICAgIDZcdCAgXCJ0eXBlc1wiOiBcImRpc3QvaW5kZXguZC50c1wiLFxuICAgICA3XHQgIFwidHlwZVwiOiBcIm1vZHVsZVwiLFxuICAgICA4XHQgIFwic2NyaXB0c1wiOiB7XG4gICAgIDlcdCAgICBcImRldlwiOiBcInJvbGx1cCAtLXdhdGNoIC0tY29uZmlnIHJvbGx1cC5jb25maWcuanNcIixcbiAgICAxMFx0ICAgIFwiYnVpbGRcIjogXCJyb2xsdXAgLS1jb25maWcgcm9sbHVwLmNvbmZpZy5qc1wiLFxuICAgIDExXHQgICAgXCJsaW50XCI6IFwiZXNsaW50IC0tZml4IFxcXCJzcmMvKiovKi50cypcXFwiXCIsXG4gICAgMTJcdCAgICBcImJ1aWxkLWFuZC1wdWJsaXNoXCI6IFwieWFybiBpbnN0YWxsICYmIHlhcm4gYnVpbGQgJiYgbnBtIHB1Ymxpc2hcIlxuICAgIDEzXHQgIH0sXG4gICAgMTRcdCAgXCJrZXl3b3Jkc1wiOiBbXSxcbiAgICAxNVx0ICBcImxpY2Vuc2VcIjogXCJNSVRcIixcbiAgICAxNlx0ICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgMTdcdCAgICBcInJlYWN0XCI6IFwiMTguMi4wXCIsXG4gICAgMThcdCAgICBcInJlYWN0LWRvbVwiOiBcIjE4LjIuMFwiLFxuICAgIDE5XHQgICAgXCJAbGFkbGUvcmVhY3RcIjogXCIyLjUuMVwiXG4gICAgMjBcdCAgfSxcbiAgICAyMVx0ICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgMjJcdCAgICBcIkBiYWJlbC9wcmVzZXQtcmVhY3RcIjogXCI3LjE4LjZcIixcbiAgICAyM1x0ICAgIFwiQGJhYmVsL3ByZXNldC10eXBlc2NyaXB0XCI6IFwiNy4yMS40XCIsXG4gICAgMjRcdCAgICBcIkByb2xsdXAvcGx1Z2luLWJhYmVsXCI6IFwiNi4wLjNcIixcbiAgICAyNVx0ICAgIFwiQHJvbGx1cC9wbHVnaW4tbm9kZS1yZXNvbHZlXCI6IFwiMTUuMC4xXCIsXG4gICAgMjZcdCAgICBcIkByb2xsdXAvcGx1Z2luLXRlcnNlclwiOiBcIjAuNC4wXCIsXG4gICAgMjdcdCAgICBcIkByb2xsdXAvcGx1Z2luLXR5cGVzY3JpcHRcIjogXCIxMS4wLjBcIixcbiAgICAyOFx0ICAgIFwiQHR5cGVzL25vZGVcIjogXCIxOC4xNS4xMVwiLFxuICAgIDI5XHQgICAgXCJAdHlwZXMvcmVhY3RcIjogXCIxOC4wLjMyXCIsXG4gICAgMzBcdCAgICBcImNtY3RzLWMtYWdlbnQtZW1iZWRkaW5nXCI6IFwiMS4wLjM5XCIsXG4gICAgMzFcdCAgICBcImVzbGludFwiOiBcIjguMzcuMFwiLFxuICAgIDMyXHQgICAgXCJwcmV0dGllclwiOiBcIl4zLjQuMlwiLFxuICAgIDMzXHQgICAgXCJyb2xsdXBcIjogXCIzLjIwLjJcIixcbiAgICAzNFx0ICAgIFwicm9sbHVwLXBsdWdpbi10eXBlc2NyaXB0LXBhdGhzXCI6IFwiMS40LjBcIixcbiAgICAzNVx0ICAgIFwidHNsaWJcIjogXCIyLjUuMFwiLFxuICAgIDM2XHQgICAgXCJ0c3hcIjogXCIzLjEyLjZcIixcbiAgICAzN1x0ICAgIFwidHlwZXNjcmlwdFwiOiBcIjUuMC4zXCJcbiAgICAzOFx0ICB9LFxuICAgIDM5XHQgIFwicGVlckRlcGVuZGVuY2llc1wiOiB7XG4gICAgNDBcdCAgICBcImNtY3RzLWMtYWdlbnQtZW1iZWRkaW5nXCI6IFwiKlwiLFxuICAgIDQxXHQgICAgXCJyZWFjdFwiOiBcIjE4LnhcIlxuICAgIDQyXHQgIH0sXG4gICAgNDNcdCAgXCJwYWNrYWdlTWFuYWdlclwiOiBcInlhcm5AMS4yMi4yMitzaGE1MTIuYTZiMmY3OTA2YjcyMWJiYTNkNjdkNGFmZjA4M2RmMDRkYWQ2NGMzOTk3MDc4NDFiN2FjZjAwZjZiMTMzYjdhYzI0MjU1ZjI2NTJmYTIyYWUzNTM0MzI5ZGM2MTgwNTM0ZTk4ZDE3NDMyMDM3ZmY2ZmQxNDA1NTZlMmJiMzEzN2VcIlxuICAgIDQ0XHR9XG4gICAgNDVcdFxuVG90YWwgbGluZXMgaW4gZmlsZTogNDVcbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMThXc2NEUkEycFJCcHpZNUFMWVg0dWgifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjE2LCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjAzOjA3LjczM1oiLCJyZXNwb25zZV90ZXh0IjoiTm93IGxldCBtZSBjaGVjayB0aGUgbWFpbiBlbWJlZGRpbmcgcGFja2FnZSB0byB1bmRlcnN0YW5kIHRoZSBjdXJyZW50IGludGVyZmFjZTpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiI5YjI5OTFjZS0xNmU5LTRjYmMtOWM1MC1hMGM1Yzk2ZmYzNzAiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDE1VFppTnNZcGhLZ01rUHg1eW9LRUVkIiwidG9vbF9uYW1lIjoic3RyLXJlcGxhY2UtZWRpdG9yIiwiaW5wdXRfanNvbiI6IntcImNvbW1hbmRcIjogXCJzdHJfcmVwbGFjZVwiLCBcInBhdGhcIjogXCJzcmMvY29tcG9uZW50cy9Cb3QudHN4XCIsIFwiaW5zdHJ1Y3Rpb25fcmVtaW5kZXJcIjogXCJBTFdBWVMgQlJFQUsgRE9XTiBFRElUUyBJTlRPIFNNQUxMRVIgQ0hVTktTIE9GIEFUIE1PU1QgMjAwIExJTkVTIEVBQ0guXCIsIFwib2xkX3N0clwiOiBcImV4cG9ydCB0eXBlIEJvdFByb3BzID0ge1xcbiAgY2hhdGZsb3dpZDogc3RyaW5nO1xcbiAgYXBpSG9zdD86IHN0cmluZztcXG4gIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcXG4gIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XFxuICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcXG4gIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XFxuICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XFxuICBib3RNZXNzYWdlPzogQm90TWVzc2FnZVRoZW1lO1xcbiAgdXNlck1lc3NhZ2U/OiBVc2VyTWVzc2FnZVRoZW1lO1xcbiAgdGV4dElucHV0PzogVGV4dElucHV0VGhlbWU7XFxuICBmZWVkYmFjaz86IEZlZWRiYWNrVGhlbWU7XFxuICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XFxuICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcXG4gIGJ1YmJsZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcXG4gIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcXG4gIHNob3dUaXRsZT86IGJvb2xlYW47XFxuICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47XFxuICB0aXRsZT86IHN0cmluZztcXG4gIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xcbiAgZm9udFNpemU/OiBudW1iZXI7XFxuICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcXG4gIGZvb3Rlcj86IEZvb3RlclRoZW1lO1xcbiAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xcbiAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcXG4gIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCB7IHByb21wdDogc3RyaW5nIH0+O1xcbiAgc3RhcnRlclByb21wdEZvbnRTaXplPzogbnVtYmVyO1xcbiAgY2xlYXJDaGF0T25SZWxvYWQ/OiBib29sZWFuO1xcbiAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xcbiAgZGF0ZVRpbWVUb2dnbGU/OiBEYXRlVGltZVRvZ2dsZVRoZW1lO1xcbiAgcmVuZGVySFRNTD86IGJvb2xlYW47XFxuICBjaGF0d29vdFVybD86IHN0cmluZztcXG4gIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xcbiAgaXNVc2VGQVE/OiBib29sZWFuO1xcbiAgZmlsZVBhdGg/OiBzdHJpbmc7XFxuICBzdWdnZXN0UXVlc3Rpb25zPzogc3RyaW5nO1xcbiAgZXh0ZXJuYWxEYXRhPzogc3RyaW5nO1xcbiAgY2FsbEJhY2tGdW5jdGlvbj86IChlOiBhbnkpID0+IHZvaWQ7XFxuICBjYWxsQmFja0ljb24/OiBzdHJpbmc7XFxufTtcIiwgXCJvbGRfc3RyX3N0YXJ0X2xpbmVfbnVtYmVyXCI6IDEzMSwgXCJvbGRfc3RyX2VuZF9saW5lX251bWJlclwiOiAxNzAsIFwibmV3X3N0clwiOiBcImV4cG9ydCB0eXBlIEJvdFByb3BzID0ge1xcbiAgY2hhdGZsb3dpZDogc3RyaW5nO1xcbiAgYXBpSG9zdD86IHN0cmluZztcXG4gIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcXG4gIG9uQmVmb3JlU2VuZD86IChtZXNzYWdlOiBzdHJpbmcsIGJvZHk6IEluY29taW5nSW5wdXQpID0+IFByb21pc2U8eyBtZXNzYWdlOiBzdHJpbmc7IGJvZHk6IEluY29taW5nSW5wdXQ7IGNhbmNlbD86IGJvb2xlYW4gfT4gfCB7IG1lc3NhZ2U6IHN0cmluZzsgYm9keTogSW5jb21pbmdJbnB1dDsgY2FuY2VsPzogYm9vbGVhbiB9O1xcbiAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcXG4gIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xcbiAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcXG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcXG4gIGJvdE1lc3NhZ2U/OiBCb3RNZXNzYWdlVGhlbWU7XFxuICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XFxuICB0ZXh0SW5wdXQ/OiBUZXh0SW5wdXRUaGVtZTtcXG4gIGZlZWRiYWNrPzogRmVlZGJhY2tUaGVtZTtcXG4gIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcXG4gIGJhZGdlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xcbiAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xcbiAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xcbiAgc2hvd1RpdGxlPzogYm9vbGVhbjtcXG4gIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcXG4gIHRpdGxlPzogc3RyaW5nO1xcbiAgdGl0bGVBdmF0YXJTcmM/OiBzdHJpbmc7XFxuICBmb250U2l6ZT86IG51bWJlcjtcXG4gIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xcbiAgZm9vdGVyPzogRm9vdGVyVGhlbWU7XFxuICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XFxuICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xcbiAgc3RhcnRlclByb21wdHM/OiBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHsgcHJvbXB0OiBzdHJpbmcgfT47XFxuICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XFxuICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XFxuICBkaXNjbGFpbWVyPzogRGlzY2xhaW1lclBvcFVwVGhlbWU7XFxuICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XFxuICByZW5kZXJIVE1MPzogYm9vbGVhbjtcXG4gIGNoYXR3b290VXJsPzogc3RyaW5nO1xcbiAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XFxuICBpc1VzZUZBUT86IGJvb2xlYW47XFxuICBmaWxlUGF0aD86IHN0cmluZztcXG4gIHN1Z2dlc3RRdWVzdGlvbnM/OiBzdHJpbmc7XFxuICBleHRlcm5hbERhdGE/OiBzdHJpbmc7XFxuICBjYWxsQmFja0Z1bmN0aW9uPzogKGU6IGFueSkgPT4gdm9pZDtcXG4gIGNhbGxCYWNrSWNvbj86IHN0cmluZztcXG59O1wifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6Ik5vdyBJIGhhdmUgYSBnb29kIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNvZGViYXNlIHN0cnVjdHVyZS4gTGV0IG1lIGNyZWF0ZSBhIGRldGFpbGVkIHBsYW4gZm9yIGFkZGluZyB0aGUgYG9uQmVmb3JlU2VuZGAgcHJvcDpcblxuIyMgUGxhbiBmb3IgQWRkaW5nIGBvbkJlZm9yZVNlbmRgIFByb3BcblxuQmFzZWQgb24gbXkgYW5hbHlzaXMgb2YgdGhlIGNvZGViYXNlLCBJIG5lZWQgdG86XG5cbjEuICoqQWRkIHRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIHRvIHRoZSBgQm90UHJvcHNgIGludGVyZmFjZSoqIGluIGBzcmMvY29tcG9uZW50cy9Cb3QudHN4YFxuMi4gKipVcGRhdGUgdGhlIGNvbnN0YW50cyBmaWxlKiogdG8gaW5jbHVkZSB0aGUgbmV3IHByb3AgaW4gdGhlIHR5cGUgZGVmaW5pdGlvblxuMy4gKipNb2RpZnkgdGhlIGBoYW5kbGVTdWJtaXRgIGZ1bmN0aW9uKiogaW4gYHNyYy9jb21wb25lbnRzL0JvdC50c3hgIHRvIGNhbGwgdGhlIGBvbkJlZm9yZVNlbmRgIGNhbGxiYWNrIGJlZm9yZSBzZW5kaW5nIHRoZSBtZXNzYWdlXG40LiAqKlVwZGF0ZSB0aGUgUmVhY3Qgd3JhcHBlciBjb21wb25lbnRzKiogKGBCdWJibGVDaGF0LnRzeGAgYW5kIGBGdWxsUGFnZUNoYXQudHN4YCkgdG8gcGFzcyB0aHJvdWdoIHRoZSBuZXcgcHJvcFxuNS4gKipUZXN0IHRoZSBpbXBsZW1lbnRhdGlvbioqIHRvIGVuc3VyZSBpdCB3b3JrcyBjb3JyZWN0bHlcblxuVGhlIGBvbkJlZm9yZVNlbmRgIGZ1bmN0aW9uIHNob3VsZDpcbi0gUmVjZWl2ZSB0aGUgbWVzc2FnZSBkYXRhIGJlZm9yZSBpdCdzIHNlbnRcbi0gQWxsb3cgbW9kaWZpY2F0aW9uIG9mIHRoZSBtZXNzYWdlXG4tIEFsbG93IGNhbmNlbGxhdGlvbiBvZiB0aGUgc2VuZCBvcGVyYXRpb25cbi0gQmUgY2FsbGVkIHJpZ2h0IGJlZm9yZSB0aGUgYWN0dWFsIEFQSSBjYWxsXG5cbkxldCBtZSBzdGFydCBpbXBsZW1lbnRpbmcgdGhpczpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IlRoZSBmb2xsb3dpbmcgY29kZSBzZWN0aW9ucyB3ZXJlIHJldHJpZXZlZDpcblBhdGg6IHNyYy9jb21wb25lbnRzL0JvdC50c3hcbiAgICAgMVx0aW1wb3J0IHsgQXZhdGFyIH0gZnJvbSAnQC9jb21wb25lbnRzL2F2YXRhcnMvQXZhdGFyJztcbiAgICAgMlx0aW1wb3J0IHsgRm9sbG93VXBQcm9tcHRCdWJibGUgfSBmcm9tICdAL2NvbXBvbmVudHMvYnViYmxlcy9Gb2xsb3dVcFByb21wdEJ1YmJsZSc7XG4gICAgIDNcdGltcG9ydCB7IExlYWRDYXB0dXJlQnViYmxlIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1YmJsZXMvTGVhZENhcHR1cmVCdWJibGUnO1xuICAgICA0XHRpbXBvcnQgeyBEZWxldGVCdXR0b24sIFNlbmRCdXR0b24gfSBmcm9tICdAL2NvbXBvbmVudHMvYnV0dG9ucy9TZW5kQnV0dG9uJztcbiAgICAgNVx0aW1wb3J0IHsgRmlsZVByZXZpZXcgfSBmcm9tICdAL2NvbXBvbmVudHMvaW5wdXRzL3RleHRJbnB1dC9jb21wb25lbnRzL0ZpbGVQcmV2aWV3JztcbiAgICAgNlx0aW1wb3J0IHtcbiAgICAgN1x0ICBCb3RNZXNzYWdlVGhlbWUsXG4gICAgIDhcdCAgRGF0ZVRpbWVUb2dnbGVUaGVtZSxcbiAgICAgOVx0ICBEaXNjbGFpbWVyUG9wVXBUaGVtZSxcbiAgICAxMFx0ICBGZWVkYmFja1RoZW1lLFxuICAgIDExXHQgIEZvb3RlclRoZW1lLFxuICAgIDEyXHQgIFRleHRJbnB1dFRoZW1lLFxuICAgIDEzXHQgIFVzZXJNZXNzYWdlVGhlbWUsXG4gICAgMTRcdH0gZnJvbSAnQC9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgIDE1XHRpbXBvcnQgeyBEaXNjbGFpbWVyUG9wdXAsIFBvcHVwIH0gZnJvbSAnQC9mZWF0dXJlcy9wb3B1cCc7XG4gICAgMTZcdGltcG9ydCB7XG4gICAgMTdcdCAgY3JlYXRlQXR0YWNobWVudFdpdGhGb3JtRGF0YSxcbiAgICAxOFx0ICBGZWVkYmFja1JhdGluZ1R5cGUsXG4gICAgMTlcdCAgZ2V0Q2hhdGJvdENvbmZpZyxcbiAgICAyMFx0ICBnZXRGaWxlQ29udGVudCxcbiAgICAyMVx0ICBnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSxcbiAgICAyMlx0ICBJbmNvbWluZ0lucHV0LFxuICAgIDIzXHQgIGlzU3RyZWFtQXZhaWxhYmxlUXVlcnksXG4uLi5cbiAgICA4N1x0XG4gICAgODhcdGV4cG9ydCB0eXBlIElBY3Rpb24gPSB7XG4gICAgODlcdCAgaWQ/OiBzdHJpbmc7XG4gICAgOTBcdCAgZWxlbWVudHM/OiBBcnJheTx7XG4gICAgOTFcdCAgICB0eXBlOiBzdHJpbmc7XG4gICAgOTJcdCAgICBsYWJlbDogc3RyaW5nO1xuICAgIDkzXHQgIH0+O1xuICAgIDk0XHQgIG1hcHBpbmc/OiB7XG4gICAgOTVcdCAgICBhcHByb3ZlOiBzdHJpbmc7XG4gICAgOTZcdCAgICByZWplY3Q6IHN0cmluZztcbiAgICA5N1x0ICAgIHRvb2xDYWxsczogYW55W107XG4gICAgOThcdCAgfTtcbiAgICA5OVx0fTtcbiAgIDEwMFx0XG4gICAxMDFcdGV4cG9ydCB0eXBlIEZpbGVVcGxvYWQgPSBPbWl0PEZpbGVQcmV2aWV3LCAncHJldmlldyc+O1xuICAgMTAyXHRcbiAgIDEwM1x0ZXhwb3J0IHR5cGUgTWVzc2FnZVR5cGUgPSB7XG4gICAxMDRcdCAgbWVzc2FnZUlkPzogc3RyaW5nO1xuICAgMTA1XHQgIG1lc3NhZ2U6IHN0cmluZztcbiAgIDEwNlx0ICB0eXBlOiBtZXNzYWdlVHlwZTtcbiAgIDEwN1x0ICBzb3VyY2VEb2N1bWVudHM/OiBhbnk7XG4gICAxMDhcdCAgZmlsZUFubm90YXRpb25zPzogYW55O1xuICAgMTA5XHQgIGZpbGVVcGxvYWRzPzogUGFydGlhbDxGaWxlVXBsb2FkPltdO1xuICAgMTEwXHQgIGFydGlmYWN0cz86IFBhcnRpYWw8RmlsZVVwbG9hZD5bXTtcbiAgIDExMVx0ICBhZ2VudFJlYXNvbmluZz86IElBZ2VudFJlYXNvbmluZ1tdO1xuICAgMTEyXHQgIHVzZWRUb29scz86IGFueVtdO1xuICAgMTEzXHQgIGFjdGlvbj86IElBY3Rpb24gfCBudWxsO1xuICAgMTE0XHQgIHJhdGluZz86IEZlZWRiYWNrUmF0aW5nVHlwZTtcbiAgIDExNVx0ICBpZD86IHN0cmluZztcbiAgIDExNlx0ICBmb2xsb3dVcFByb21wdHM/OiBzdHJpbmc7XG4gICAxMTdcdCAgZGF0ZVRpbWU/OiBzdHJpbmc7XG4gICAxMThcdH07XG4gICAxMTlcdFxuICAgMTIwXHR0eXBlIElVcGxvYWRzID0ge1xuICAgMTIxXHQgIGRhdGE6IEZpbGVQcmV2aWV3RGF0YTtcbiAgIDEyMlx0ICB0eXBlOiBzdHJpbmc7XG4gICAxMjNcdCAgbmFtZTogc3RyaW5nO1xuICAgMTI0XHQgIG1pbWU6IHN0cmluZztcbiAgIDEyNVx0ICBmaWxlPzogYW55O1xuICAgMTI2XHR9W107XG4gICAxMjdcdFxuICAgMTI4XHR0eXBlIG9ic2VydmVyQ29uZmlnVHlwZSA9IChhY2Nlc3Nvcjogc3RyaW5nIHwgYm9vbGVhbiB8IG9iamVjdCB8IE1lc3NhZ2VUeXBlW10pID0+IHZvaWQ7XG4gICAxMjlcdGV4cG9ydCB0eXBlIG9ic2VydmVyc0NvbmZpZ1R5cGUgPSBSZWNvcmQ8J29ic2VydmVVc2VySW5wdXQnIHwgJ29ic2VydmVMb2FkaW5nJyB8ICdvYnNlcnZlTWVzc2FnZXMnLCBvYnNlcnZlckNvbmZpZ1R5cGU+O1xuICAgMTMwXHRcbiAgIDEzMVx0ZXhwb3J0IHR5cGUgQm90UHJvcHMgPSB7XG4gICAxMzJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgMTMzXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAxMzRcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgMTM1XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAxMzZcdCAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzdcdCAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOFx0ICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzlcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgIDE0MFx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAxNDFcdCAgdGV4dElucHV0PzogVGV4dElucHV0VGhlbWU7XG4gICAxNDJcdCAgZmVlZGJhY2s/OiBGZWVkYmFja1RoZW1lO1xuICAgMTQzXHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0NFx0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0NVx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDZcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ3XHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAxNDhcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgMTQ5XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTUwXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgMTUxXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgMTUyXHQgIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xuICAgMTUzXHQgIGZvb3Rlcj86IEZvb3RlclRoZW1lO1xuICAgMTU0XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgIDE1NVx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgMTU2XHQgIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCB7IHByb21wdDogc3RyaW5nIH0+O1xuICAgMTU3XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgIDE1OFx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAxNTlcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgMTYwXHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgIDE2MVx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgIDE2Mlx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgIDE2M1x0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgIDE2NFx0ICBpc1VzZUZBUT86IGJvb2xlYW47XG4gICAxNjVcdCAgZmlsZVBhdGg/OiBzdHJpbmc7XG4gICAxNjZcdCAgc3VnZ2VzdFF1ZXN0aW9ucz86IHN0cmluZztcbiAgIDE2N1x0ICBleHRlcm5hbERhdGE/OiBzdHJpbmc7XG4gICAxNjhcdCAgY2FsbEJhY2tGdW5jdGlvbj86IChlOiBhbnkpID0+IHZvaWQ7XG4gICAxNjlcdCAgY2FsbEJhY2tJY29uPzogc3RyaW5nO1xuICAgMTcwXHR9O1xuICAgMTcxXHRcbiAgIDE3Mlx0ZXhwb3J0IHR5cGUgTGVhZHNDb25maWcgPSB7XG4gICAxNzNcdCAgc3RhdHVzOiBib29sZWFuO1xuICAgMTc0XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTc1XHQgIG5hbWU/OiBib29sZWFuO1xuICAgMTc2XHQgIGVtYWlsPzogYm9vbGVhbjtcbiAgIDE3N1x0ICBwaG9uZT86IGJvb2xlYW47XG4gICAxNzhcdCAgc3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XG4gICAxNzlcdH07XG4gICAxODBcdFxuICAgMTgxXHRjb25zdCBkZWZhdWx0V2VsY29tZU1lc3NhZ2UgPSAnWGluIGNow6BvIHTDtGkgY8OzIHRo4buDIGdpw7pwIGfDrCBjaG8gYuG6oW4/JztcbiAgIDE4Mlx0Y29uc3Qgc3RhdHVzTXNnID0ge1xuICAgMTgzXHQgIDM6ICfEkGFuZyB44butIGzDvS4uLicsXG4gICAxODRcdCAgMTA6ICfEkGFuZyB04bqjaSBk4buvIGxp4buHdSwgdnVpIGzDsm5nIMSR4bujaS4uLicsXG4gICAxODVcdCAgNDA6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBo4buHIHRo4buRbmcgxJFhbmcgcXXDoSB04bqjaSwgdnVpIGzDsm5nIHRo4butIGzhuqFpIHNhdS4nLFxuICAgMTg2XHQgIDUwOiAnJyxcbiAgIDE4N1x0fTtcbiAgIDE4OFx0XG4gICAxODlcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZmZmZic7XG4gICAxOTBcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnIzMwMzIzNSc7XG4gICAxOTFcdFxuICAgMTkyXHRleHBvcnQgY29uc3QgQm90ID0gKGJvdFByb3BzOiBCb3RQcm9wcyAmIHsgY2xhc3M/OiBzdHJpbmcgfSkgPT4ge1xuICAgMTkzXHQgIC8vIHNldCBhIGRlZmF1bHQgdmFsdWUgZm9yIHNob3dUaXRsZSBpZiBub3Qgc2V0IGFuZCBtZXJnZSB3aXRoIG90aGVyIHByb3BzXG4gICAxOTRcdFxuICAgMTk1XHQgIGNvbnN0IHByb3BzID0gbWVyZ2VQcm9wcyh7IHNob3dUaXRsZTogdHJ1ZSB9LCBib3RQcm9wcyk7XG4gICAxOTZcdCAgbGV0IGNoYXRDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk3XHQgIGxldCBib3R0b21TcGFjZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk4XHQgIGxldCBib3RDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk5XHQgIGxldCBpbnRlcnZhbEN1cnJlbnRNc2c6IGFueTtcbi4uLlxuICAgMjMxXHQgIGNvbnN0IFtkaXNjbGFpbWVyUG9wdXBPcGVuLCBzZXREaXNjbGFpbWVyUG9wdXBPcGVuXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyMzJcdCAgY29uc3QgW2Rpc2FibGVJbnB1dCwgc2V0RGlzYWJsZUlucHV0XSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyMzNcdCAgY29uc3QgW2ZpbGVTdW1tYXJ5LCBzZXRGaWxlU3VtbWFyeV0gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjM0XHQgIGNvbnN0IFtmaWxlQ29udGVudCwgc2V0RmlsZUNvbnRlbnRdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIzNVx0ICBjb25zdCBbc3VnZ2VzdFF1ZXN0aW9uLCBzZXRTdWdnZXN0UXVlc3Rpb25dID0gY3JlYXRlU2lnbmFsKFtdKTtcbiAgIDIzNlx0XG4gICAyMzdcdCAgLy8gZHJhZyAmIGRyb3AgZmlsZSBpbnB1dFxuICAgMjM4XHQgIC8vIFRPRE86IGZpeCB0aGlzIHR5cGVcbiAgIDIzOVx0ICBjb25zdCBbcHJldmlld3MsIHNldFByZXZpZXdzXSA9IGNyZWF0ZVNpZ25hbDxGaWxlUHJldmlld1tdPihbXSk7XG4gICAyNDBcdFxuICAgMjQxXHQgIC8vIGF1ZGlvIHJlY29yZGluZ1xuICAgMjQyXHQgIGNvbnN0IFtlbGFwc2VkVGltZSwgc2V0RWxhcHNlZFRpbWVdID0gY3JlYXRlU2lnbmFsKCcwMDowMCcpO1xuICAgMjQzXHQgIGNvbnN0IFtpc1JlY29yZGluZywgc2V0SXNSZWNvcmRpbmddID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDI0NFx0ICBjb25zdCBbcmVjb3JkaW5nTm90U3VwcG9ydGVkLCBzZXRSZWNvcmRpbmdOb3RTdXBwb3J0ZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDI0NVx0ICBjb25zdCBbaXNMb2FkaW5nUmVjb3JkaW5nLCBzZXRJc0xvYWRpbmdSZWNvcmRpbmddID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbi4uLlxuICAgMjU5XHRcbiAgIDI2MFx0ICBvbk1vdW50KCgpID0+IHtcbiAgIDI2MVx0ICAgIGlmIChib3RQcm9wcz8ub2JzZXJ2ZXJzQ29uZmlnKSB7XG4gICAyNjJcdCAgICAgIGNvbnN0IHsgb2JzZXJ2ZVVzZXJJbnB1dCwgb2JzZXJ2ZUxvYWRpbmcsIG9ic2VydmVNZXNzYWdlcyB9ID0gYm90UHJvcHMub2JzZXJ2ZXJzQ29uZmlnO1xuICAgMjYzXHQgICAgICB0eXBlb2Ygb2JzZXJ2ZVVzZXJJbnB1dCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgMjY0XHQgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb2xpZC9yZWFjdGl2aXR5XG4gICAyNjVcdCAgICAgICAgY3JlYXRlTWVtbygoKSA9PiB7XG4gICAyNjZcdCAgICAgICAgICBvYnNlcnZlVXNlcklucHV0KHVzZXJJbnB1dCgpKTtcbiAgIDI2N1x0ICAgICAgICB9KTtcbiAgIDI2OFx0ICAgICAgdHlwZW9mIG9ic2VydmVMb2FkaW5nID09PSAnZnVuY3Rpb24nICYmXG4gICAyNjlcdCAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbGlkL3JlYWN0aXZpdHlcbiAgIDI3MFx0ICAgICAgICBjcmVhdGVNZW1vKCgpID0+IHtcbiAgIDI3MVx0ICAgICAgICAgIG9ic2VydmVMb2FkaW5nKGxvYWRpbmcoKSk7XG4gICAyNzJcdCAgICAgICAgfSk7XG4gICAyNzNcdCAgICAgIHR5cGVvZiBvYnNlcnZlTWVzc2FnZXMgPT09ICdmdW5jdGlvbicgJiZcbiAgIDI3NFx0ICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29saWQvcmVhY3Rpdml0eVxuICAgMjc1XHQgICAgICAgIGNyZWF0ZU1lbW8oKCkgPT4ge1xuICAgMjc2XHQgICAgICAgICAgb2JzZXJ2ZU1lc3NhZ2VzKG1lc3NhZ2VzKCkpO1xuICAgMjc3XHQgICAgICAgIH0pO1xuICAgMjc4XHQgICAgfVxuICAgMjc5XHRcbiAgIDI4MFx0ICAgIGlmICghYm90dG9tU3BhY2VyKSByZXR1cm47XG4gICAyODFcdCAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgIDI4Mlx0ICAgICAgY2hhdENvbnRhaW5lcj8uc2Nyb2xsVG8oMCwgY2hhdENvbnRhaW5lci5zY3JvbGxIZWlnaHQpO1xuICAgMjgzXHQgICAgfSwgNTApO1xuICAgMjg0XHQgIH0pO1xuLi4uXG4gIDE3ODBcdCAgICAgICAgICAgICAgICAgICAge21lc3NhZ2UudHlwZSA9PT0gJ2FwaU1lc3NhZ2UnICYmIChcbiAgMTc4MVx0ICAgICAgICAgICAgICAgICAgICAgIDxCb3RCdWJibGVcbiAgMTc4Mlx0ICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb249e1suLi5tZXNzYWdlcygpXVtpbmRleCgpIC0gMV0/Lm1lc3NhZ2V9XG4gIDE3ODNcdCAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9e21lc3NhZ2V9XG4gIDE3ODRcdCAgICAgICAgICAgICAgICAgICAgICAgIHNldE1lc3NhZ2VzPXtzZXRNZXNzYWdlc31cbiAgMTc4NVx0ICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUFubm90YXRpb25zPXttZXNzYWdlLmZpbGVBbm5vdGF0aW9uc31cbiAgMTc4Nlx0ICAgICAgICAgICAgICAgICAgICAgICAgY2hhdGZsb3dpZD17cHJvcHMuY2hhdGZsb3dpZH1cbiAgMTc4N1x0ICAgICAgICAgICAgICAgICAgICAgICAgY2hhdElkPXtjaGF0SWQoKX1cbiAgMTc4OFx0ICAgICAgICAgICAgICAgICAgICAgICAgYXBpSG9zdD17cHJvcHMuYXBpSG9zdH1cbiAgMTc4OVx0ICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPXtwcm9wcy5ib3RNZXNzYWdlPy5iYWNrZ3JvdW5kQ29sb3J9XG4gIDE3OTBcdCAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcj17cHJvcHMuYm90TWVzc2FnZT8udGV4dENvbG9yfVxuICAxNzkxXHQgICAgICAgICAgICAgICAgICAgICAgICBmZWVkYmFja0NvbG9yPXtwcm9wcy5mZWVkYmFjaz8uY29sb3J9XG4gIDE3OTJcdCAgICAgICAgICAgICAgICAgICAgICAgIHNob3dBdmF0YXI9e3Byb3BzLmJvdE1lc3NhZ2U/LnNob3dBdmF0YXJ9XG4gIDE3OTNcdCAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhclNyYz17cHJvcHMuYm90TWVzc2FnZT8uYXZhdGFyU3JjfVxuICAxNzk0XHQgICAgICAgICAgICAgICAgICAgICAgICBjaGF0RmVlZGJhY2tTdGF0dXM9e2NoYXRGZWVkYmFja1N0YXR1cygpfVxuICAxNzk1XHQgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZT17cHJvcHMuZm9udFNpemV9XG4gIDE3OTZcdCAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17bG9hZGluZygpICYmIGluZGV4KCkgPT09IG1lc3NhZ2VzKCkubGVuZ3RoIC0gMX1cbiAgMTc5N1x0ICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0FnZW50TWVzc2FnZXM9e3Byb3BzLnNob3dBZ2VudE1lc3NhZ2VzfVxuICAxNzk4XHQgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVBY3Rpb25DbGljaz17KGxhYmVsLCBhY3Rpb24pID0+IGhhbmRsZUFjdGlvbkNsaWNrKGxhYmVsLCBhY3Rpb24pfVxuICAxNzk5XHQgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VEb2NzVGl0bGU9e3Byb3BzLnNvdXJjZURvY3NUaXRsZX1cbi4uLlxuICAxODA0XHQgICAgICAgICAgICAgICAgICAgICAgICBkYXRlVGltZVRvZ2dsZT17cHJvcHMuZGF0ZVRpbWVUb2dnbGV9XG4gIDE4MDVcdCAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckhUTUw9e3Byb3BzLnJlbmRlckhUTUx9XG4gIDE4MDZcdCAgICAgICAgICAgICAgICAgICAgICAgIGNoYXR3b290VXJsPXtwcm9wcy5jaGF0d29vdFVybH1cbiAgMTgwN1x0ICAgICAgICAgICAgICAgICAgICAgICAgcm9vbUlkcz17cHJvcHMucm9vbUlkc31cbiAgMTgwOFx0ICAgICAgICAgICAgICAgICAgICAgICAgb25Db25uZWN0VG9IdW1hbkFkdmlzb3I9eyhpZCwgcGFyYW1zKSA9PiB7XG4gIDE4MDlcdCAgICAgICAgICAgICAgICAgICAgICAgICAgYXhpb3NcbiAgMTgxMFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wb3N0KGAke3Byb3BzLmFwaUhvc3R9L2FwaS92MS9jaGF0d29vdC9jb25uZWN0YCwge1xuICAxODExXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZCxcbiAgMTgxMlx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhdElkOiBwcm9wcy5jaGF0Zmxvd2lkLFxuICAxODEzXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VySW5mbzogKCgpID0+IHtcbiAgMTgxNFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VySW5mb1N0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbWN0czp1c2VySW5mbycpO1xuICAxODE1XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNlckluZm9TdHIpIHJldHVybiB1bmRlZmluZWQ7XG4gIDE4MTZcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgMTgxN1x0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgMTgxOFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gIDE4MTlcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byBwYXJzZSB1c2VySW5mbyBmcm9tIGxvY2FsU3RvcmFnZScpO1xuICAxODIwXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgMTgyMVx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gIDE4MjJcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCksXG4gIDE4MjNcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgMTgyNFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXM6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGAke3Byb3BzLmNoYXRmbG93aWR9X0VYVEVSTkFMYCkgfHwgJ3tcImNoYXRIaXN0b3J5XCI6W119JyxcbiAgMTgyNVx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gIDE4MjZcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoeyBkYXRhIH0pID0+IHtcbiAgMTgyN1x0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGE/LmNvbnZlcnNhdGlvbj8uaWQpIHtcbiAgMTgyOFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShgY2hhdHdvb3Q6JHtwcm9wcy5jaGF0Zmxvd2lkfTpjb252ZXJzYXRpb25faWRgLCBkYXRhLmNvbnZlcnNhdGlvbi5pZC50b1N0cmluZygpKTtcbiAgMTgyOVx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAxODMwXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4uLi5cbiAgMjAyMFx0ICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsZUNoYW5nZT17aGFuZGxlRmlsZUNoYW5nZX1cbiAgMjAyMVx0ICAgICAgICAgICAgICAgICAgc2VuZE1lc3NhZ2VTb3VuZD17cHJvcHMudGV4dElucHV0Py5zZW5kTWVzc2FnZVNvdW5kfVxuICAyMDIyXHQgICAgICAgICAgICAgICAgICBzZW5kU291bmRMb2NhdGlvbj17cHJvcHMudGV4dElucHV0Py5zZW5kU291bmRMb2NhdGlvbn1cbiAgMjAyM1x0ICAgICAgICAgICAgICAgICAgZW5hYmxlSW5wdXRIaXN0b3J5PXt0cnVlfVxuICAyMDI0XHQgICAgICAgICAgICAgICAgICBtYXhIaXN0b3J5U2l6ZT17MTB9XG4gIDIwMjVcdCAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17bG9hZGluZygpfVxuICAyMDI2XHQgICAgICAgICAgICAgICAgICBjaGF0Zmxvd2lkPXtwcm9wcy5jaGF0Zmxvd2lkfVxuICAyMDI3XHQgICAgICAgICAgICAgICAgICBhcGlIb3N0PXtwcm9wcy5hcGlIb3N0fVxuICAyMDI4XHQgICAgICAgICAgICAgICAgICBpc1VzZUZBUT17Qm9vbGVhbihwcm9wcz8uaXNVc2VGQVEpIHx8IGlzVXNlRkFRRm9yQ2hhdGZsb3d9XG4gIDIwMjlcdCAgICAgICAgICAgICAgICAgIHNldERpc2FibGVJbnB1dD17c2V0RGlzYWJsZUlucHV0fVxuICAyMDMwXHQgICAgICAgICAgICAgICAgLz5cbiAgMjAzMVx0ICAgICAgICAgICAgICA8Lz5cbiAgMjAzMlx0ICAgICAgICAgICAgKX1cbi4uLlxuUGF0aDogc3JjL2NvbnN0YW50cy50c1xuICAgICAxXHQvLyBOb3RlOiBVc2luZyBpbmxpbmUgdHlwZSBkZWZpbml0aW9uIHRvIGF2b2lkIEpTWCBjb21waWxhdGlvbiBpc3N1ZXNcbiAgICAgMlx0Ly8gVGhpcyBtYXRjaGVzIEJ1YmJsZVByb3BzID0gQm90UHJvcHMgJiBCdWJibGVQYXJhbXMgZnJvbSB0aGUgb3JpZ2luYWwgY29kZWJhc2VcbiAgICAgM1x0dHlwZSBCdWJibGVQcm9wcyA9IHtcbiAgICAgNFx0ICAvLyBDb3JlIEJvdCBwcm9wZXJ0aWVzXG4gICAgIDVcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgICA2XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgIDdcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgICA4XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgIDlcdCAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMTBcdCAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcbiAgICAxMVx0ICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMTJcdCAgYm90TWVzc2FnZT86IGFueTtcbiAgICAxM1x0ICB1c2VyTWVzc2FnZT86IGFueTtcbiAgICAxNFx0ICB0ZXh0SW5wdXQ/OiBhbnk7XG4gICAgMTVcdCAgZmVlZGJhY2s/OiBhbnk7XG4gICAgMTZcdCAgcG93ZXJlZEJ5VGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE3XHQgIGJhZGdlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE4XHQgIGJ1YmJsZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxOVx0ICBidWJibGVUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMjBcdCAgc2hvd1RpdGxlPzogYm9vbGVhbjtcbiAgICAyMVx0ICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47XG4gICAgMjJcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAgMjNcdCAgdGl0bGVBdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMjRcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMjVcdCAgaXNGdWxsUGFnZT86IGJvb2xlYW47XG4gICAgMjZcdCAgZm9vdGVyPzogYW55O1xuICAgIDI3XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgICAyOFx0ICBvYnNlcnZlcnNDb25maWc/OiBhbnk7XG4gICAgMjlcdCAgc3RhcnRlclByb21wdHM/OiBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHsgcHJvbXB0OiBzdHJpbmcgfT47XG4gICAgMzBcdCAgc3RhcnRlclByb21wdEZvbnRTaXplPzogbnVtYmVyO1xuICAgIDMxXHQgIGNsZWFyQ2hhdE9uUmVsb2FkPzogYm9vbGVhbjtcbiAgICAzMlx0ICBkaXNjbGFpbWVyPzogYW55O1xuICAgIDMzXHQgIGRhdGVUaW1lVG9nZ2xlPzogYW55O1xuICAgIDM0XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDM1XHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgIDM2XHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIDM3XHQgIGlzVXNlRkFRPzogYm9vbGVhbjtcbiAgICAzOFx0ICBmaWxlUGF0aD86IHN0cmluZztcbiAgICAzOVx0ICBzdWdnZXN0UXVlc3Rpb25zPzogc3RyaW5nO1xuICAgIDQwXHQgIGV4dGVybmFsRGF0YT86IHN0cmluZztcbiAgICA0MVx0ICBjYWxsQmFja0Z1bmN0aW9uPzogKGU6IGFueSkgPT4gdm9pZDtcbiAgICA0Mlx0ICBjYWxsQmFja0ljb24/OiBzdHJpbmc7XG4gICAgNDNcdFxuICAgIDQ0XHQgIC8vIEJ1YmJsZSB0aGVtZSBwcm9wZXJ0aWVzXG4gICAgNDVcdCAgdGhlbWU/OiBhbnk7XG4gICAgNDZcdH07XG4gICAgNDdcdFxuICAgIDQ4XHQvKipcbiAgICA0OVx0ICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhdGJvdCBidWJibGUgY29tcG9uZW50LlxuICAgIDUwXHQgKiBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXMgd2hpbGUga2VlcGluZ1xuICAgIDUxXHQgKiByZXF1aXJlZCBwcm9wZXJ0aWVzIGV4cGxpY2l0bHkgdW5kZWZpbmVkIHRvIGVuZm9yY2UgcHJvcGVyIGNvbmZpZ3VyYXRpb24uXG4gICAgNTJcdCAqL1xuICAgIDUzXHRleHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgICA1NFx0ICAvLyBDb3JlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gLSBtdXN0IGJlIHNldCBieSBpbXBsZW1lbnRlclxuICAgIDU1XHQgIGNoYXRmbG93aWQ6ICcnLFxuICAgIDU2XHRcbiAgICA1N1x0ICAvLyBBUEkgY29uZmlndXJhdGlvblxuICAgIDU4XHQgIGFwaUhvc3Q6IHVuZGVmaW5lZCxcbiAgICA1OVx0ICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgICA2MFx0ICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDYxXHRcbiAgICA2Mlx0ICAvLyBVSSB0aGVtaW5nIGFuZCBjdXN0b21pemF0aW9uXG4gICAgNjNcdCAgdGhlbWU6IHVuZGVmaW5lZCxcbiAgICA2NFx0XG4gICAgNjVcdCAgLy8gRXh0ZXJuYWwgaW50ZWdyYXRpb25zXG4gICAgNjZcdCAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcbiAgICA2N1x0ICByb29tSWRzOiB7fSxcbiAgICA2OFx0XG4gICAgNjlcdCAgLy8gRmVhdHVyZSBmbGFncyBhbmQgb3B0aW9uYWwgZnVuY3Rpb25hbGl0eVxuICAgIDcwXHQgIGlzVXNlRkFROiBmYWxzZSxcbiAgICA3MVx0XG4gICAgNzJcdCAgLy8gRmlsZSBhbmQgY29udGVudCBjb25maWd1cmF0aW9uXG4gICAgNzNcdCAgZmlsZVBhdGg6ICcnLFxuICAgIDc0XHQgIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxuICAgIDc1XHQgIGV4dGVybmFsRGF0YTogJycsXG4gICAgNzZcdCAgY2FsbEJhY2tJY29uOiAnJyxcbiAgICA3N1x0ICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvQm90QnViYmxlLnRzeFxuLi4uXG4gICAgMThcdFxuICAgIDE5XHR0eXBlIFByb3BzID0ge1xuICAgIDIwXHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgIDIxXHQgIHNldE1lc3NhZ2VzPzogYW55O1xuICAgIDIyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAyM1x0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAyNFx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDI1XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAyNlx0ICBmaWxlQW5ub3RhdGlvbnM/OiBhbnk7XG4gICAgMjdcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMjhcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDI5XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzFcdCAgY2hhdEZlZWRiYWNrU3RhdHVzPzogYm9vbGVhbjtcbiAgICAzMlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAzM1x0ICBmZWVkYmFja0NvbG9yPzogc3RyaW5nO1xuICAgIDM0XHQgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICAzNVx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAgMzZcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgIDM3XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgICAzOFx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAzOVx0ICBoYW5kbGVBY3Rpb25DbGljazogKGxhYmVsOiBzdHJpbmcsIGFjdGlvbjogSUFjdGlvbiB8IHVuZGVmaW5lZCB8IG51bGwpID0+IHZvaWQ7XG4gICAgNDBcdCAgaGFuZGxlU291cmNlRG9jdW1lbnRzQ2xpY2s6IChzcmM6IGFueSkgPT4gdm9pZDtcbiAgICA0MVx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgICA0Mlx0ICBvbkNvbm5lY3RUb0h1bWFuQWR2aXNvcj86IChpZDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpID0+IHZvaWQ7XG4gICAgNDNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgNDRcdCAgcXVlc3Rpb24/OiBzdHJpbmc7XG4uLi5cblBhdGg6IHNyYy93aW5kb3cudHNcbiAgICAgMVx0aW1wb3J0IHsgb2JzZXJ2ZXJzQ29uZmlnVHlwZSB9IGZyb20gJy4vY29tcG9uZW50cy9Cb3QnO1xuICAgICAyXHRpbXBvcnQgeyBCdWJibGVUaGVtZSB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAgM1x0XG4gICAgIDRcdC8qIGVzbGludC1kaXNhYmxlIHNvbGlkL3JlYWN0aXZpdHkgKi9cbiAgICAgNVx0dHlwZSBCb3RQcm9wcyA9IHtcbiAgICAgNlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDdcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgOFx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDlcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAxMFx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgIDExXHQgIHRoZW1lPzogQnViYmxlVGhlbWU7XG4gICAgMTJcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAgMTNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgMTRcdCAgaXNVc2VGQVE/OiB1bmRlZmluZWQ7XG4gICAgMTVcdH07XG4uLi5cblBhdGg6IHNyYy9GdWxsUGFnZUNoYXQudHN4XG4gICAgIDFcdGltcG9ydCB0eXBlIHsgQm90UHJvcHMgfSBmcm9tICdjbWN0cy1jLWFnZW50LWVtYmVkZGluZydcbiAgICAgMlx0aW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCb3RQcm9wcyAmIHtcbiAgICAgNVx0ICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgNlx0ICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgICAgN1x0fVxuICAgICA4XHRcbiAgICAgOVx0ZGVjbGFyZSBnbG9iYWwge1xuICAgIDEwXHQgIG5hbWVzcGFjZSBKU1gge1xuICAgIDExXHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAxMlx0ICAgICAgJ2Zsb3dpc2UtZnVsbGNoYXRib3QnOiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcbiAgICAxM1x0ICAgICAgICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD4sXG4gICAgMTRcdCAgICAgICAgSFRNTEVsZW1lbnRcbiAgICAxNVx0ICAgICAgPiAmIHsgY2xhc3M/OiBzdHJpbmcgfVxuICAgIDE2XHQgICAgfVxuICAgIDE3XHQgIH1cbiAgICAxOFx0fVxuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL3R5cGVzLnRzXG4gICAgIDFcdGV4cG9ydCB0eXBlIEJ1YmJsZVBhcmFtcyA9IHtcbiAgICAgMlx0ICB0aGVtZT86IEJ1YmJsZVRoZW1lO1xuICAgICAzXHR9O1xuICAgICA0XHRcbiAgICAgNVx0ZXhwb3J0IHR5cGUgQnViYmxlVGhlbWUgPSB7XG4gICAgIDZcdCAgY2hhdFdpbmRvdz86IENoYXRXaW5kb3dUaGVtZTtcbiAgICAgN1x0ICBidXR0b24/OiBCdXR0b25UaGVtZTtcbiAgICAgOFx0ICB0b29sdGlwPzogVG9vbFRpcFRoZW1lO1xuICAgICA5XHQgIGRpc2NsYWltZXI/OiBEaXNjbGFpbWVyUG9wVXBUaGVtZTtcbiAgICAxMFx0ICBjdXN0b21DU1M/OiBzdHJpbmc7XG4gICAgMTFcdH07XG4gICAgMTJcdFxuICAgIDEzXHRleHBvcnQgdHlwZSBUZXh0SW5wdXRUaGVtZSA9IHtcbiAgICAxNFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE2XHQgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIDE3XHQgIHNlbmRCdXR0b25Db2xvcj86IHN0cmluZztcbiAgICAxOFx0ICBtYXhDaGFycz86IG51bWJlcjtcbiAgICAxOVx0ICBtYXhDaGFyc1dhcm5pbmdNZXNzYWdlPzogc3RyaW5nO1xuICAgIDIwXHQgIGF1dG9Gb2N1cz86IGJvb2xlYW47XG4gICAgMjFcdCAgc2VuZE1lc3NhZ2VTb3VuZD86IGJvb2xlYW47XG4gICAgMjJcdCAgc2VuZFNvdW5kTG9jYXRpb24/OiBzdHJpbmc7XG4gICAgMjNcdCAgcmVjZWl2ZU1lc3NhZ2VTb3VuZD86IGJvb2xlYW47XG4gICAgMjRcdCAgcmVjZWl2ZVNvdW5kTG9jYXRpb24/OiBzdHJpbmc7XG4gICAgMjVcdH07XG4gICAgMjZcdFxuICAgIDI3XHRleHBvcnQgdHlwZSBVc2VyTWVzc2FnZVRoZW1lID0ge1xuICAgIDI4XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAyOVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzBcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMzFcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDMyXHR9O1xuICAgIDMzXHRcbiAgICAzNFx0ZXhwb3J0IHR5cGUgQm90TWVzc2FnZVRoZW1lID0ge1xuICAgIDM1XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAzNlx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzdcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMzhcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDM5XHR9O1xuICAgIDQwXHRcbiAgICA0MVx0ZXhwb3J0IHR5cGUgRm9vdGVyVGhlbWUgPSB7XG4gICAgNDJcdCAgc2hvd0Zvb3Rlcj86IGJvb2xlYW47XG4gICAgNDNcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDQ0XHQgIHRleHQ/OiBzdHJpbmc7XG4gICAgNDVcdCAgY29tcGFueT86IHN0cmluZztcbiAgICA0Nlx0ICBjb21wYW55TGluaz86IHN0cmluZztcbiAgICA0N1x0fTtcbiAgICA0OFx0XG4gICAgNDlcdGV4cG9ydCB0eXBlIEZlZWRiYWNrVGhlbWUgPSB7XG4gICAgNTBcdCAgY29sb3I/OiBzdHJpbmc7XG4gICAgNTFcdH07XG4gICAgNTJcdFxuICAgIDUzXHRleHBvcnQgdHlwZSBDaGF0V2luZG93VGhlbWUgPSB7XG4gICAgNTRcdCAgc2hvd1RpdGxlPzogYm9vbGVhbjtcbiAgICA1NVx0ICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47IC8vIHBhcmFtZXRlciB0byBzaG93IGFnZW50IHJlYXNvbmluZ3Mgd2hlbiB1c2luZyBhZ2VudGZsb3dzXG4gICAgNTZcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAgNTdcdCAgdGl0bGVBdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgNThcdCAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgNTlcdCAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcbiAgICA2MFx0ICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgNjFcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDYyXHQgIGJhY2tncm91bmRJbWFnZT86IHN0cmluZztcbiAgICA2M1x0ICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgNjRcdCAgd2lkdGg/OiBudW1iZXI7XG4gICAgNjVcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgNjZcdCAgdXNlck1lc3NhZ2U/OiBVc2VyTWVzc2FnZVRoZW1lO1xuICAgIDY3XHQgIGJvdE1lc3NhZ2U/OiBCb3RNZXNzYWdlVGhlbWU7XG4gICAgNjhcdCAgdGV4dElucHV0PzogVGV4dElucHV0VGhlbWU7XG4gICAgNjlcdCAgZmVlZGJhY2s/OiBGZWVkYmFja1RoZW1lO1xuICAgIDcwXHQgIGZvb3Rlcj86IEZvb3RlclRoZW1lO1xuICAgIDcxXHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgICA3Mlx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgNzNcdCAgc3RhcnRlclByb21wdHM/OiBzdHJpbmdbXTtcbiAgICA3NFx0ICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XG4gICAgNzVcdCAgY2xlYXJDaGF0T25SZWxvYWQ/OiBib29sZWFuO1xuICAgIDc2XHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgICA3N1x0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICA3OFx0fTtcbiAgICA3OVx0XG4gICAgODBcdGV4cG9ydCB0eXBlIEJ1dHRvblRoZW1lID0ge1xuICAgIDgxXHQgIHNpemU/OiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgbnVtYmVyOyAvLyBjdXN0b20gc2l6ZSBvZiBjaGF0Ym90IGluIHBpeGVsc1xuICAgIDgyXHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICA4M1x0ICBpY29uQ29sb3I/OiBzdHJpbmc7XG4gICAgODRcdCAgY3VzdG9tSWNvblNyYz86IHN0cmluZztcbiAgICA4NVx0ICBib3R0b20/OiBudW1iZXI7XG4gICAgODZcdCAgcmlnaHQ/OiBudW1iZXI7XG4gICAgODdcdCAgZHJhZ0FuZERyb3A/OiBib29sZWFuOyAvLyBwYXJhbWV0ZXIgdG8gZW5hYmxlIGRyYWcgYW5kIGRyb3AodHJ1ZSBvciBmYWxzZSlcbiAgICA4OFx0ICBhdXRvV2luZG93T3Blbj86IGF1dG9XaW5kb3dPcGVuVGhlbWU7XG4gICAgODlcdH07XG4gICAgOTBcdFxuICAgIDkxXHRleHBvcnQgdHlwZSBUb29sVGlwVGhlbWUgPSB7XG4gICAgOTJcdCAgc2hvd1Rvb2x0aXA/OiBib29sZWFuOyAvLyBwYXJhbWV0ZXIgdG8gZW5hYmxlIHRvb2x0aXAodHJ1ZSBvciBmYWxzZSlcbiAgICA5M1x0ICB0b29sdGlwTWVzc2FnZT86IHN0cmluZztcbiAgICA5NFx0ICB0b29sdGlwQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDk1XHQgIHRvb2x0aXBUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgOTZcdCAgdG9vbHRpcEZvbnRTaXplPzogbnVtYmVyO1xuICAgIDk3XHR9O1xuICAgIDk4XHRcbiAgICA5OVx0ZXhwb3J0IHR5cGUgYXV0b1dpbmRvd09wZW5UaGVtZSA9IHtcbiAgIDEwMFx0ICBhdXRvT3Blbj86IGJvb2xlYW47IC8vcGFyYW1ldGVyIHRvIGNvbnRyb2wgYXV0b21hdGljIHdpbmRvdyBvcGVuaW5nXG4gICAxMDFcdCAgb3BlbkRlbGF5PzogbnVtYmVyOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgZm9yIGRlbGF5IHRpbWUgaW4gc2Vjb25kc1xuICAgMTAyXHQgIGF1dG9PcGVuT25Nb2JpbGU/OiBib29sZWFuOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgZm9yIG9wZW5pbmcgb24gbW9iaWxlXG4gICAxMDNcdH07XG4gICAxMDRcdFxuICAgMTA1XHRleHBvcnQgdHlwZSBEaXNjbGFpbWVyUG9wVXBUaGVtZSA9IHtcbiAgIDEwNlx0ICB0aXRsZT86IHN0cmluZztcbiAgIDEwN1x0ICBtZXNzYWdlPzogc3RyaW5nO1xuICAgMTA4XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgIDEwOVx0ICBidXR0b25Db2xvcj86IHN0cmluZztcbiAgIDExMFx0ICBidXR0b25UZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxMTFcdCAgYnV0dG9uVGV4dD86IHN0cmluZztcbiAgIDExMlx0ICBibHVycmVkQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTEzXHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDExNFx0fTtcbiAgIDExNVx0XG4gICAxMTZcdGV4cG9ydCB0eXBlIERhdGVUaW1lVG9nZ2xlVGhlbWUgPSB7XG4gICAxMTdcdCAgZGF0ZT86IGJvb2xlYW47XG4gICAxMThcdCAgdGltZT86IGJvb2xlYW47XG4gICAxMTlcdH07XG4uLi5cblBhdGg6IHB1YmxpYy9pbmRleC5odG1sXG4uLi5cbiAgICA1NVx0ICAgICAgcm9vbUlkczoge1xuICAgIDU2XHQgICAgICAgICcwMTIzNDU2Nzg5JzogJ1hhNkhtaGZiVTVLNzNaaEhuc3B6S2hxcycsXG4gICAgNTdcdCAgICAgIH0sXG4gICAgNThcdCAgICAgIHRoZW1lOiBjdXN0b21TdHJpbmdpZnkoe1xuICAgIDU5XHQgICAgICAgIGJ1dHRvbjoge1xuICAgIDYwXHQgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzNCODFGNicsXG4gICAgNjFcdCAgICAgICAgICByaWdodDogMjAsXG4gICAgNjJcdCAgICAgICAgICBib3R0b206IDIwLFxuICAgIDYzXHQgICAgICAgICAgc2l6ZTogNDgsXG4gICAgNjRcdCAgICAgICAgICBkcmFnQW5kRHJvcDogdHJ1ZSxcbiAgICA2NVx0ICAgICAgICAgIGljb25Db2xvcjogJ3doaXRlJyxcbiAgICA2Nlx0ICAgICAgICAgIGN1c3RvbUljb25TcmM6ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vd2Fsa3hjb2RlL2Rhc2hib2FyZC1pY29ucy9tYWluL3N2Zy9nb29nbGUtbWVzc2FnZXMuc3ZnJyxcbiAgICA2N1x0ICAgICAgICAgIGF1dG9XaW5kb3dPcGVuOiB7XG4gICAgNjhcdCAgICAgICAgICAgIGF1dG9PcGVuOiB0cnVlLFxuICAgIDY5XHQgICAgICAgICAgICBvcGVuRGVsYXk6IDIsXG4gICAgNzBcdCAgICAgICAgICAgIGF1dG9PcGVuT25Nb2JpbGU6IGZhbHNlLFxuICAgIDcxXHQgICAgICAgICAgfSxcbiAgICA3Mlx0ICAgICAgICB9LFxuICAgIDczXHQgICAgICAgIHRvb2x0aXA6IHtcbiAgICA3NFx0ICAgICAgICAgIHNob3dUb29sdGlwOiB0cnVlLFxuICAgIDc1XHQgICAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdIaSBUaGVyZSDwn5GLIScsXG4gICAgNzZcdCAgICAgICAgICB0b29sdGlwQmFja2dyb3VuZENvbG9yOiAnYmxhY2snLFxuICAgIDc3XHQgICAgICAgICAgdG9vLi4uIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxOW1yZGd2cXppb0JVQThxaHNMdFR2ciJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTYsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDM6MTYuMTU3WiIsInJlc3BvbnNlX3RleHQiOiJOb3cgSSBoYXZlIGEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb2RlYmFzZSBzdHJ1Y3R1cmUuIExldCBtZSBjcmVhdGUgYSBkZXRhaWxlZCBwbGFuIGZvciBhZGRpbmcgdGhlIGBvbkJlZm9yZVNlbmRgIHByb3A6XG5cbiMjIFBsYW4gZm9yIEFkZGluZyBgb25CZWZvcmVTZW5kYCBQcm9wXG5cbkJhc2VkIG9uIG15IGFuYWx5c2lzIG9mIHRoZSBjb2RlYmFzZSwgSSBuZWVkIHRvOlxuXG4xLiAqKkFkZCB0aGUgYG9uQmVmb3JlU2VuZGAgcHJvcCB0byB0aGUgYEJvdFByb3BzYCBpbnRlcmZhY2UqKiBpbiBgc3JjL2NvbXBvbmVudHMvQm90LnRzeGBcbjIuICoqVXBkYXRlIHRoZSBjb25zdGFudHMgZmlsZSoqIHRvIGluY2x1ZGUgdGhlIG5ldyBwcm9wIGluIHRoZSB0eXBlIGRlZmluaXRpb25cbjMuICoqTW9kaWZ5IHRoZSBgaGFuZGxlU3VibWl0YCBmdW5jdGlvbioqIGluIGBzcmMvY29tcG9uZW50cy9Cb3QudHN4YCB0byBjYWxsIHRoZSBgb25CZWZvcmVTZW5kYCBjYWxsYmFjayBiZWZvcmUgc2VuZGluZyB0aGUgbWVzc2FnZVxuNC4gKipVcGRhdGUgdGhlIFJlYWN0IHdyYXBwZXIgY29tcG9uZW50cyoqIChgQnViYmxlQ2hhdC50c3hgIGFuZCBgRnVsbFBhZ2VDaGF0LnRzeGApIHRvIHBhc3MgdGhyb3VnaCB0aGUgbmV3IHByb3BcbjUuICoqVGVzdCB0aGUgaW1wbGVtZW50YXRpb24qKiB0byBlbnN1cmUgaXQgd29ya3MgY29ycmVjdGx5XG5cblRoZSBgb25CZWZvcmVTZW5kYCBmdW5jdGlvbiBzaG91bGQ6XG4tIFJlY2VpdmUgdGhlIG1lc3NhZ2UgZGF0YSBiZWZvcmUgaXQncyBzZW50XG4tIEFsbG93IG1vZGlmaWNhdGlvbiBvZiB0aGUgbWVzc2FnZVxuLSBBbGxvdyBjYW5jZWxsYXRpb24gb2YgdGhlIHNlbmQgb3BlcmF0aW9uXG4tIEJlIGNhbGxlZCByaWdodCBiZWZvcmUgdGhlIGFjdHVhbCBBUEkgY2FsbFxuXG5MZXQgbWUgc3RhcnQgaW1wbGVtZW50aW5nIHRoaXM6XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiNGI3OGMzYTUtYjBkZC00NzljLWIyZjctZjEyNTgyNzAzMzJjIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxS0daSFNWdDNtTlE1dmVoZ1dBb1NaYSIsInRvb2xfbmFtZSI6InZpZXciLCJpbnB1dF9qc29uIjoie1wicGF0aFwiOiBcInNyYy9jb21wb25lbnRzL0JvdC50c3hcIiwgXCJ0eXBlXCI6IFwiZmlsZVwiLCBcInZpZXdfcmFuZ2VcIjogWzc0MCwgODcwXX0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJOb3cgSSBuZWVkIHRvIG1vZGlmeSB0aGUgYGhhbmRsZVN1Ym1pdGAgZnVuY3Rpb24gdG8gY2FsbCB0aGUgYG9uQmVmb3JlU2VuZGAgY2FsbGJhY2suIExldCBtZSBmaW5kIHRoZSByaWdodCBsb2NhdGlvbiBpbiB0aGUgZnVuY3Rpb246XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJTdWNjZXNzZnVsbHkgZWRpdGVkIHRoZSBmaWxlIHNyYy9jb21wb25lbnRzL0JvdC50c3guXG5SZXN1bHQgZm9yIHN0cl9yZXBsYWNlIGZvciBlbnRyeSB3aXRoIGluZGV4IFswXTpcblJlcGxhY2VtZW50IHN1Y2Nlc3NmdWwuXG5FZGl0ZWQgc2VjdGlvbiBhZnRlciBJREUgYXV0by1mb3JtYXR0aW5nIHdhcyBhcHBsaWVkOlxuICAgMTI3XHRcbiAgIDEyOFx0dHlwZSBvYnNlcnZlckNvbmZpZ1R5cGUgPSAoYWNjZXNzb3I6IHN0cmluZyB8IGJvb2xlYW4gfCBvYmplY3QgfCBNZXNzYWdlVHlwZVtdKSA9PiB2b2lkO1xuICAgMTI5XHRleHBvcnQgdHlwZSBvYnNlcnZlcnNDb25maWdUeXBlID0gUmVjb3JkPCdvYnNlcnZlVXNlcklucHV0JyB8ICdvYnNlcnZlTG9hZGluZycgfCAnb2JzZXJ2ZU1lc3NhZ2VzJywgb2JzZXJ2ZXJDb25maWdUeXBlPjtcbiAgIDEzMFx0XG4gICAxMzFcdGV4cG9ydCB0eXBlIEJvdFByb3BzID0ge1xuICAgMTMyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgIDEzM1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgMTM0XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgIDEzNVx0ICBvbkJlZm9yZVNlbmQ/OiAobWVzc2FnZTogc3RyaW5nLCBib2R5OiBJbmNvbWluZ0lucHV0KSA9PiBQcm9taXNlPHsgbWVzc2FnZTogc3RyaW5nOyBib2R5OiBJbmNvbWluZ0lucHV0OyBjYW5jZWw/OiBib29sZWFuIH0+IHwgeyBtZXNzYWdlOiBzdHJpbmc7IGJvZHk6IEluY29taW5nSW5wdXQ7IGNhbmNlbD86IGJvb2xlYW4gfTtcbiAgIDEzNlx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgMTM3XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM4XHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzlcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgMTQwXHQgIGJvdE1lc3NhZ2U/OiBCb3RNZXNzYWdlVGhlbWU7XG4gICAxNDFcdCAgdXNlck1lc3NhZ2U/OiBVc2VyTWVzc2FnZVRoZW1lO1xuICAgMTQyXHQgIHRleHRJbnB1dD86IFRleHRJbnB1dFRoZW1lO1xuICAgMTQzXHQgIGZlZWRiYWNrPzogRmVlZGJhY2tUaGVtZTtcbiAgIDE0NFx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDVcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDZcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ3XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0OFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgMTQ5XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgIDE1MFx0ICB0aXRsZT86IHN0cmluZztcbiAgIDE1MVx0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgIDE1Mlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgIDE1M1x0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgIDE1NFx0ICBmb290ZXI/OiBGb290ZXJUaGVtZTtcbiAgIDE1NVx0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAxNTZcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcbiAgIDE1N1x0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgeyBwcm9tcHQ6IHN0cmluZyB9PjtcbiAgIDE1OFx0ICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XG4gICAxNTlcdCAgY2xlYXJDaGF0T25SZWxvYWQ/OiBib29sZWFuO1xuICAgMTYwXHQgIGRpc2NsYWltZXI/OiBEaXNjbGFpbWVyUG9wVXBUaGVtZTtcbiAgIDE2MVx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAxNjJcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAxNjNcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAxNjRcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAxNjVcdCAgaXNVc2VGQVE/OiBib29sZWFuO1xuICAgMTY2XHQgIGZpbGVQYXRoPzogc3RyaW5nO1xuICAgMTY3XHQgIHN1Z2dlc3RRdWVzdGlvbnM/OiBzdHJpbmc7XG4gICAxNjhcdCAgZXh0ZXJuYWxEYXRhPzogc3RyaW5nO1xuICAgMTY5XHQgIGNhbGxCYWNrRnVuY3Rpb24/OiAoZTogYW55KSA9PiB2b2lkO1xuICAgMTcwXHQgIGNhbGxCYWNrSWNvbj86IHN0cmluZztcbiAgIDE3MVx0fTtcbiAgIDE3Mlx0XG4gICAxNzNcdGV4cG9ydCB0eXBlIExlYWRzQ29uZmlnID0ge1xuICAgMTc0XHQgIHN0YXR1czogYm9vbGVhbjtcbiAgIDE3NVx0ICB0aXRsZT86IHN0cmluZztcblxuUmV2aWV3IHRoZSBjaGFuZ2VzIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUgYXMgZXhwZWN0ZWQgKGNvcnJlY3QgaW5kZW50YXRpb24sIG5vIGR1cGxpY2F0ZSBsaW5lcywgZXRjKS5cbkVkaXQgdGhlIGZpbGUgYWdhaW4gaWYgbmVjZXNzYXJ5LlxuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxNVRaaU5zWXBoS2dNa1B4NXlvS0VFZCJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTYsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDM6MzQuMTEzWiIsInJlc3BvbnNlX3RleHQiOiJOb3cgSSBuZWVkIHRvIG1vZGlmeSB0aGUgYGhhbmRsZVN1Ym1pdGAgZnVuY3Rpb24gdG8gY2FsbCB0aGUgYG9uQmVmb3JlU2VuZGAgY2FsbGJhY2suIExldCBtZSBmaW5kIHRoZSByaWdodCBsb2NhdGlvbiBpbiB0aGUgZnVuY3Rpb246XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiMWNkNThkY2MtOTY3ZS00NTRjLTlhOTYtNzNmMGYwNGExYTYzIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxNW9XZk55NWs2TDRGaFAxamJyWmRleCIsInRvb2xfbmFtZSI6InN0ci1yZXBsYWNlLWVkaXRvciIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwic3RyX3JlcGxhY2VcIiwgXCJwYXRoXCI6IFwic3JjL2NvbXBvbmVudHMvQm90LnRzeFwiLCBcImluc3RydWN0aW9uX3JlbWluZGVyXCI6IFwiQUxXQVlTIEJSRUFLIERPV04gRURJVFMgSU5UTyBTTUFMTEVSIENIVU5LUyBPRiBBVCBNT1NUIDIwMCBMSU5FUyBFQUNILlwiLCBcIm9sZF9zdHJcIjogXCIgICAgaWYgKGFjdGlvbikgYm9keS5hY3Rpb24gPSBhY3Rpb247XFxuXFxuICAgIC8vIENoZWNrIG5ldHdvcmsgc3RhdHVzIGJlZm9yZSBtYWtpbmcgdGhlIHJlcXVlc3RcXG4gICAgaWYgKCFuYXZpZ2F0b3Iub25MaW5lKSB7XCIsIFwib2xkX3N0cl9zdGFydF9saW5lX251bWJlclwiOiA4NDUsIFwib2xkX3N0cl9lbmRfbGluZV9udW1iZXJcIjogODQ4LCBcIm5ld19zdHJcIjogXCIgICAgaWYgKGFjdGlvbikgYm9keS5hY3Rpb24gPSBhY3Rpb247XFxuXFxuICAgIC8vIENhbGwgb25CZWZvcmVTZW5kIGNhbGxiYWNrIGlmIHByb3ZpZGVkXFxuICAgIGlmIChwcm9wcy5vbkJlZm9yZVNlbmQpIHtcXG4gICAgICB0cnkge1xcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvcHMub25CZWZvcmVTZW5kKHZhbHVlLCBib2R5KTtcXG4gICAgICAgIFxcbiAgICAgICAgLy8gSWYgdGhlIGNhbGxiYWNrIHJldHVybnMgY2FuY2VsOiB0cnVlLCBzdG9wIHRoZSBzdWJtaXNzaW9uXFxuICAgICAgICBpZiAocmVzdWx0LmNhbmNlbCkge1xcbiAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcXG4gICAgICAgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcXG4gICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgfVxcbiAgICAgICAgXFxuICAgICAgICAvLyBVcGRhdGUgdGhlIG1lc3NhZ2UgYW5kIGJvZHkgd2l0aCB0aGUgbW9kaWZpZWQgdmFsdWVzXFxuICAgICAgICB2YWx1ZSA9IHJlc3VsdC5tZXNzYWdlO1xcbiAgICAgICAgT2JqZWN0LmFzc2lnbihib2R5LCByZXN1bHQuYm9keSk7XFxuICAgICAgICBcXG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgdXNlciBtZXNzYWdlIGluIHRoZSBVSSBpZiBpdCB3YXMgbW9kaWZpZWRcXG4gICAgICAgIGlmIChyZXN1bHQubWVzc2FnZSAhPT0gdmFsdWUpIHtcXG4gICAgICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xcbiAgICAgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcXG4gICAgICAgICAgICBpZiAoYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0udHlwZSA9PT0gJ3VzZXJNZXNzYWdlJykge1xcbiAgICAgICAgICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0ubWVzc2FnZSA9IHJlc3VsdC5tZXNzYWdlO1xcbiAgICAgICAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XFxuICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XFxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBvbkJlZm9yZVNlbmQgY2FsbGJhY2s6JywgZXJyb3IpO1xcbiAgICAgICAgaGFuZGxlRXJyb3IoJ0Vycm9yIHByb2Nlc3NpbmcgbWVzc2FnZSBiZWZvcmUgc2VuZCcpO1xcbiAgICAgICAgcmV0dXJuO1xcbiAgICAgIH1cXG4gICAgfVxcblxcbiAgICAvLyBDaGVjayBuZXR3b3JrIHN0YXR1cyBiZWZvcmUgbWFraW5nIHRoZSByZXF1ZXN0XFxuICAgIGlmICghbmF2aWdhdG9yLm9uTGluZSkge1wifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6Ik5vdyBJIG5lZWQgdG8gYWRkIHRoZSBgb25CZWZvcmVTZW5kYCBjYWxsYmFjayBsb2dpYyByaWdodCBiZWZvcmUgdGhlIGFjdHVhbCBBUEkgY2FsbHMuIEknbGwgaW5zZXJ0IGl0IGFmdGVyIHRoZSBib2R5IGlzIGNvbnN0cnVjdGVkIGJ1dCBiZWZvcmUgdGhlIG5ldHdvcmsgY2hlY2s6XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJOb3RlOlxuVmlldyByYW5nZSBleHBhbmRlZCB0byBtZWV0IG1pbmltdW0gc2l6ZSBvZiA1MDAgbGluZXMuIE5ldyByYW5nZTogWzc0MCwgMTIzOV0uXG5cbkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gc3JjL2NvbXBvbmVudHMvQm90LnRzeDpcbiAgIDc0MFx0ICB9O1xuICAgNzQxXHRcbiAgIDc0Mlx0ICAvLyBIYW5kbGUgZm9ybSBzdWJtaXNzaW9uXG4gICA3NDNcdCAgY29uc3QgaGFuZGxlU3VibWl0ID0gYXN5bmMgKHZhbHVlOiBzdHJpbmcsIGFjdGlvbj86IElBY3Rpb24gfCB1bmRlZmluZWQgfCBudWxsLCBmYXFJZD86IHN0cmluZykgPT4ge1xuICAgNzQ0XHQgICAgaWYgKHZhbHVlLnRyaW0oKSA9PT0gJycpIHtcbiAgIDc0NVx0ICAgICAgY29uc3QgY29udGFpbnNGaWxlID0gcHJldmlld3MoKS5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLm1pbWUuc3RhcnRzV2l0aCgnaW1hZ2UnKSAmJiBpdGVtLnR5cGUgIT09ICdhdWRpbycpLmxlbmd0aCA+IDA7XG4gICA3NDZcdCAgICAgIGlmICghcHJldmlld3MoKS5sZW5ndGggfHwgKHByZXZpZXdzKCkubGVuZ3RoICYmIGNvbnRhaW5zRmlsZSkpIHtcbiAgIDc0N1x0ICAgICAgICByZXR1cm47XG4gICA3NDhcdCAgICAgIH1cbiAgIDc0OVx0ICAgIH1cbiAgIDc1MFx0XG4gICA3NTFcdCAgICBpZiAoIWxvY2FsU3RvcmFnZS5nZXRJdGVtKGBjaGF0d29vdDoke3Byb3BzLmNoYXRmbG93aWR9OmNvbnZlcnNhdGlvbl9pZGApKSB7XG4gICA3NTJcdCAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICA3NTNcdCAgICAgIHNldERpc2FibGVJbnB1dCh0cnVlKTtcbiAgIDc1NFx0ICAgIH1cbiAgIDc1NVx0ICAgIHNjcm9sbFRvQm90dG9tKCk7XG4gICA3NTZcdFxuICAgNzU3XHQgICAgbGV0IHVwbG9hZHM6IElVcGxvYWRzID0gcHJldmlld3MoKS5tYXAoKGl0ZW0pID0+IHtcbiAgIDc1OFx0ICAgICAgcmV0dXJuIHtcbiAgIDc1OVx0ICAgICAgICBkYXRhOiBpdGVtLmRhdGEsXG4gICA3NjBcdCAgICAgICAgdHlwZTogaXRlbS50eXBlLFxuICAgNzYxXHQgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgIDc2Mlx0ICAgICAgICBtaW1lOiBpdGVtLm1pbWUsXG4gICA3NjNcdCAgICAgIH07XG4gICA3NjRcdCAgICB9KTtcbiAgIDc2NVx0XG4gICA3NjZcdCAgICB0cnkge1xuICAgNzY3XHQgICAgICB1cGxvYWRzID0gYXdhaXQgaGFuZGxlRmlsZVVwbG9hZHModXBsb2Fkcyk7XG4gICA3NjhcdCAgICB9IGNhdGNoIChlcnJvcikge1xuICAgNzY5XHQgICAgICBoYW5kbGVFcnJvcignVW5hYmxlIHRvIHVwbG9hZCBkb2N1bWVudHMnKTtcbiAgIDc3MFx0ICAgICAgcmV0dXJuO1xuICAgNzcxXHQgICAgfVxuICAgNzcyXHRcbiAgIDc3M1x0ICAgIGNsZWFyUHJldmlld3MoKTtcbiAgIDc3NFx0XG4gICA3NzVcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA3NzZcdCAgICAgIGNvbnN0IG1lc3NhZ2VzOiBNZXNzYWdlVHlwZVtdID0gWy4uLnByZXZNZXNzYWdlcywgeyBtZXNzYWdlOiB2YWx1ZSwgdHlwZTogJ3VzZXJNZXNzYWdlJywgZmlsZVVwbG9hZHM6IHVwbG9hZHMgfV07XG4gICA3NzdcdCAgICAgIGFkZENoYXRNZXNzYWdlKG1lc3NhZ2VzKTtcbiAgIDc3OFx0ICAgICAgcmV0dXJuIG1lc3NhZ2VzO1xuICAgNzc5XHQgICAgfSk7XG4gICA3ODBcdFxuICAgNzgxXHQgICAgbGV0IGRldmljZUlkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NtY3RzOmRldmljZUlkJyk7XG4gICA3ODJcdCAgICBpZiAoIWRldmljZUlkKSB7XG4gICA3ODNcdCAgICAgIGRldmljZUlkID0gdXVpZHY0KCk7XG4gICA3ODRcdCAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjbWN0czpkZXZpY2VJZCcsIGRldmljZUlkKTtcbiAgIDc4NVx0ICAgIH1cbiAgIDc4Nlx0XG4gICA3ODdcdCAgICBjb25zdCBib2R5OiBJbmNvbWluZ0lucHV0ID0ge1xuICAgNzg4XHQgICAgICBxdWVzdGlvbjogdmFsdWUsXG4gICA3ODlcdCAgICAgIGZhcUlkLFxuICAgNzkwXHQgICAgICBjaGF0SWQ6IGNoYXRJZCgpLFxuICAgNzkxXHQgICAgICB1c2VJZDogdXNlcigpPy5pZCxcbiAgIDc5Mlx0ICAgICAgc3RvcmVkOiB7XG4gICA3OTNcdCAgICAgICAgZGV2aWNlSWQsXG4gICA3OTRcdCAgICAgICAgdXNlckluZm86ICgoKSA9PiB7XG4gICA3OTVcdCAgICAgICAgICBjb25zdCB1c2VySW5mb1N0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbWN0czp1c2VySW5mbycpO1xuICAgNzk2XHQgICAgICAgICAgaWYgKCF1c2VySW5mb1N0cikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgIDc5N1x0ICAgICAgICAgIHRyeSB7XG4gICA3OThcdCAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgIDc5OVx0ICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgIDgwMFx0ICAgICAgICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gcGFyc2UgdXNlckluZm8gZnJvbSBsb2NhbFN0b3JhZ2UnKTtcbiAgIDgwMVx0ICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgIDgwMlx0ICAgICAgICAgIH1cbiAgIDgwM1x0ICAgICAgICB9KSgpLFxuICAgODA0XHQgICAgICAgIGNoYXR3b290OiB7XG4gICA4MDVcdCAgICAgICAgICBjb252ZXJzYXRpb25faWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGBjaGF0d29vdDoke3Byb3BzLmNoYXRmbG93aWR9OmNvbnZlcnNhdGlvbl9pZGApLFxuICAgODA2XHQgICAgICAgIH0sXG4gICA4MDdcdCAgICAgIH0sXG4gICA4MDhcdCAgICB9O1xuICAgODA5XHRcbiAgIDgxMFx0ICAgIGlmICh1cGxvYWRzICYmIHVwbG9hZHMubGVuZ3RoID4gMCkgYm9keS51cGxvYWRzID0gdXBsb2FkcztcbiAgIDgxMVx0ICAgIGVsc2UgaWYgKCF1cGxvYWRzPy5sZW5ndGggJiYgZmlsZUNvbnRlbnQoKSAmJiBmaWxlU3VtbWFyeSgpKSB7XG4gICA4MTJcdCAgICAgIGxldCBmaWxlTmFtZSA9IHByb3BzLmZpbGVQYXRoPy5zcGxpdCgnLycpLnBvcCgpIHx8ICcnO1xuICAgODEzXHQgICAgICBmaWxlTmFtZSAmJiAhZmlsZU5hbWUuZW5kc1dpdGgoJy50eHQnKSAmJiAoZmlsZU5hbWUgKz0gJy50eHQnKTtcbiAgIDgxNFx0ICAgICAgYm9keS51cGxvYWRzID0gW1xuICAgODE1XHQgICAgICAgIHtcbiAgIDgxNlx0ICAgICAgICAgIGRhdGE6IGZpbGVDb250ZW50KCksXG4gICA4MTdcdCAgICAgICAgICB0eXBlOiAnZmlsZTpmdWxsJyxcbiAgIDgxOFx0ICAgICAgICAgIG5hbWU6IGZpbGVOYW1lLFxuICAgODE5XHQgICAgICAgICAgbWltZTogJ3RleHQvcGxhaW4nLFxuICAgODIwXHQgICAgICAgIH0sXG4gICA4MjFcdCAgICAgICAge1xuICAgODIyXHQgICAgICAgICAgZGF0YTogZmlsZVN1bW1hcnkoKSxcbiAgIDgyM1x0ICAgICAgICAgIHR5cGU6ICdmaWxlOmZ1bGwnLFxuICAgODI0XHQgICAgICAgICAgbmFtZTogZmlsZU5hbWUsXG4gICA4MjVcdCAgICAgICAgICBtaW1lOiAndGV4dC9wbGFpbicsXG4gICA4MjZcdCAgICAgICAgfSxcbiAgIDgyN1x0ICAgICAgXTtcbiAgIDgyOFx0ICAgIH1cbiAgIDgyOVx0XG4gICA4MzBcdCAgICBpZiAocHJvcHM/LmV4dGVybmFsRGF0YSkge1xuICAgODMxXHQgICAgICBib2R5LnVwbG9hZHMgPSBbXG4gICA4MzJcdCAgICAgICAge1xuICAgODMzXHQgICAgICAgICAgZGF0YTogcHJvcHM/LmV4dGVybmFsRGF0YSxcbiAgIDgzNFx0ICAgICAgICAgIHR5cGU6ICdmaWxlOmZ1bGwnLFxuICAgODM1XHQgICAgICAgICAgbmFtZTogJ2V4dGVybmFsX2RhdGEudHh0JyxcbiAgIDgzNlx0ICAgICAgICAgIG1pbWU6ICd0ZXh0L3BsYWluJyxcbiAgIDgzN1x0ICAgICAgICB9LFxuICAgODM4XHQgICAgICBdO1xuICAgODM5XHQgICAgfVxuICAgODQwXHRcbiAgIDg0MVx0ICAgIGlmIChwcm9wcy5jaGF0Zmxvd0NvbmZpZykgYm9keS5vdmVycmlkZUNvbmZpZyA9IHByb3BzLmNoYXRmbG93Q29uZmlnO1xuICAgODQyXHRcbiAgIDg0M1x0ICAgIGlmIChsZWFkRW1haWwoKSkgYm9keS5sZWFkRW1haWwgPSBsZWFkRW1haWwoKTtcbiAgIDg0NFx0XG4gICA4NDVcdCAgICBpZiAoYWN0aW9uKSBib2R5LmFjdGlvbiA9IGFjdGlvbjtcbiAgIDg0Nlx0XG4gICA4NDdcdCAgICAvLyBDaGVjayBuZXR3b3JrIHN0YXR1cyBiZWZvcmUgbWFraW5nIHRoZSByZXF1ZXN0XG4gICA4NDhcdCAgICBpZiAoIW5hdmlnYXRvci5vbkxpbmUpIHtcbiAgIDg0OVx0ICAgICAgc2V0SXNOZXR3b3JrRXJyb3IodHJ1ZSk7XG4gICA4NTBcdCAgICAgIHNldE5ldHdvcmtFcnJvck1lc3NhZ2UoJ03huqV0IGvhur90IG7hu5FpIG3huqFuZycpO1xuICAgODUxXHQgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA4NTJcdCAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgODUzXHQgICAgICAgIGFsbE1lc3NhZ2VzLnB1c2goe1xuICAgODU0XHQgICAgICAgICAgbWVzc2FnZTogJ1hpbiBs4buXaSwgaGnhu4duIHThuqFpIGtow7RuZyBjw7Mga+G6v3QgbuG7kWkgbeG6oW5nLiBWdWkgbMOybmcga2nhu4NtIHRyYSBs4bqhaSBr4bq/dCBu4buRaSB2w6AgdGjhu60gbOG6oWkgc2F1LicsXG4gICA4NTVcdCAgICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScsXG4gICA4NTZcdCAgICAgICAgICBkYXRlVGltZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgODU3XHQgICAgICAgIH0pO1xuICAgODU4XHQgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDg1OVx0ICAgICAgfSk7XG4gICA4NjBcdCAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgODYxXHQgICAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgODYyXHQgICAgICByZXR1cm47XG4gICA4NjNcdCAgICB9XG4gICA4NjRcdFxuICAgODY1XHQgICAgaWYgKGlzQ2hhdEZsb3dBdmFpbGFibGVUb1N0cmVhbSgpICYmICFmYXFJZCkge1xuICAgODY2XHQgICAgICBmZXRjaFJlc3BvbnNlRnJvbUV2ZW50U3RyZWFtKHByb3BzLmNoYXRmbG93aWQsIGJvZHkpO1xuICAgODY3XHQgICAgfSBlbHNlIHtcbiAgIDg2OFx0ICAgICAgdHJ5IHtcbiAgIDg2OVx0ICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZW5kTWVzc2FnZVF1ZXJ5KHtcbiAgIDg3MFx0ICAgICAgICAgIGNoYXRmbG93aWQ6IHByb3BzLmNoYXRmbG93aWQsXG4gICA4NzFcdCAgICAgICAgICBhcGlIb3N0OiBwcm9wcy5hcGlIb3N0LFxuICAgODcyXHQgICAgICAgICAgYm9keSxcbiAgIDg3M1x0ICAgICAgICAgIG9uUmVxdWVzdDogcHJvcHMub25SZXF1ZXN0LFxuICAgODc0XHQgICAgICAgIH0pO1xuICAgODc1XHRcbiAgIDg3Nlx0ICAgICAgICBpZiAocmVzdWx0LmRhdGEpIHtcbiAgIDg3N1x0ICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZGF0YTtcbiAgIDg3OFx0XG4gICA4NzlcdCAgICAgICAgICBsZXQgdGV4dCA9ICcnO1xuICAgODgwXHQgICAgICAgICAgaWYgKGRhdGEudGV4dCkgdGV4dCA9IGRhdGEudGV4dDtcbiAgIDg4MVx0ICAgICAgICAgIGVsc2UgaWYgKGRhdGEuanNvbikgdGV4dCA9IEpTT04uc3RyaW5naWZ5KGRhdGEuanNvbiwgbnVsbCwgMik7XG4gICA4ODJcdCAgICAgICAgICBlbHNlIHRleHQgPSBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcbiAgIDg4M1x0XG4gICA4ODRcdCAgICAgICAgICBpZiAoZGF0YT8uY2hhdElkKSBzZXRDaGF0SWQoZGF0YS5jaGF0SWQpO1xuICAgODg1XHRcbiAgIDg4Nlx0ICAgICAgICAgIHBsYXlSZWNlaXZlU291bmQoKTtcbiAgIDg4N1x0XG4gICA4ODhcdCAgICAgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA4ODlcdCAgICAgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDg5MFx0ICAgICAgICAgICAgY29uc3QgbmV3TWVzc2FnZSA9IHtcbiAgIDg5MVx0ICAgICAgICAgICAgICBtZXNzYWdlOiB0ZXh0LFxuICAgODkyXHQgICAgICAgICAgICAgIGlkOiBkYXRhPy5jaGF0TWVzc2FnZUlkLFxuICAgODkzXHQgICAgICAgICAgICAgIHNvdXJjZURvY3VtZW50czogZGF0YT8uc291cmNlRG9jdW1lbnRzLFxuICAgODk0XHQgICAgICAgICAgICAgIHVzZWRUb29sczogZGF0YT8udXNlZFRvb2xzLFxuICAgODk1XHQgICAgICAgICAgICAgIGZpbGVBbm5vdGF0aW9uczogZGF0YT8uZmlsZUFubm90YXRpb25zLFxuICAgODk2XHQgICAgICAgICAgICAgIGFnZW50UmVhc29uaW5nOiBkYXRhPy5hZ2VudFJlYXNvbmluZyxcbiAgIDg5N1x0ICAgICAgICAgICAgICBhY3Rpb246IGRhdGE/LmFjdGlvbixcbiAgIDg5OFx0ICAgICAgICAgICAgICBhcnRpZmFjdHM6IGRhdGE/LmFydGlmYWN0cyxcbiAgIDg5OVx0ICAgICAgICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScgYXMgbWVzc2FnZVR5cGUsXG4gICA5MDBcdCAgICAgICAgICAgICAgZmVlZGJhY2s6IG51bGwsXG4gICA5MDFcdCAgICAgICAgICAgICAgZGF0ZVRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgIDkwMlx0ICAgICAgICAgICAgfTtcbiAgIDkwM1x0ICAgICAgICAgICAgYWxsTWVzc2FnZXMucHVzaChuZXdNZXNzYWdlKTtcbiAgIDkwNFx0ICAgICAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgOTA1XHQgICAgICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA5MDZcdCAgICAgICAgICB9KTtcbiAgIDkwN1x0XG4gICA5MDhcdCAgICAgICAgICB1cGRhdGVNZXRhZGF0YShkYXRhLCB2YWx1ZSk7XG4gICA5MDlcdFxuICAgOTEwXHQgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICA5MTFcdCAgICAgICAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgOTEyXHQgICAgICAgICAgc2V0VXNlcklucHV0KCcnKTtcbiAgIDkxM1x0ICAgICAgICAgIHNldFVwbG9hZGVkRmlsZXMoW10pO1xuICAgOTE0XHQgICAgICAgICAgc2Nyb2xsVG9Cb3R0b20oKTtcbiAgIDkxNVx0ICAgICAgICB9XG4gICA5MTZcdCAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICA5MTdcdCAgICAgICAgaWYgKCFuYXZpZ2F0b3Iub25MaW5lKSB7XG4gICA5MThcdCAgICAgICAgICBzZXRJc05ldHdvcmtFcnJvcih0cnVlKTtcbiAgIDkxOVx0ICAgICAgICAgIHNldE5ldHdvcmtFcnJvck1lc3NhZ2UoJ03huqV0IGvhur90IG7hu5FpIG3huqFuZycpO1xuICAgOTIwXHQgICAgICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgOTIxXHQgICAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA5MjJcdCAgICAgICAgICAgIGFsbE1lc3NhZ2VzLnB1c2goe1xuICAgOTIzXHQgICAgICAgICAgICAgIG1lc3NhZ2U6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBraMO0bmcgY8OzIGvhur90IG7hu5FpIG3huqFuZy4gVnVpIGzDsm5nIGtp4buDbSB0cmEgbOG6oWkga+G6v3QgbuG7kWkgdsOgIHRo4butIGzhuqFpIHNhdS4nLFxuICAgOTI0XHQgICAgICAgICAgICAgIHR5cGU6ICdhcGlNZXNzYWdlJyxcbiAgIDkyNVx0ICAgICAgICAgICAgICBkYXRlVGltZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgOTI2XHQgICAgICAgICAgICB9KTtcbiAgIDkyN1x0ICAgICAgICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgOTI4XHQgICAgICAgICAgfSk7XG4gICA5MjlcdCAgICAgICAgfSBlbHNlIHtcbiAgIDkzMFx0ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgOTMxXHQgICAgICAgICAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgJ21lc3NhZ2UnIGluIGVycm9yKSB7XG4gICA5MzJcdCAgICAgICAgICAgIGhhbmRsZUVycm9yKGBFcnJvcjogJHsoZXJyb3IgYXMgeyBtZXNzYWdlOiBzdHJpbmcgfSkubWVzc2FnZS5yZXBsYWNlQWxsKCdFcnJvcjonLCAnICcpfWApO1xuICAgOTMzXHQgICAgICAgICAgICByZXR1cm47XG4gICA5MzRcdCAgICAgICAgICB9XG4gICA5MzVcdCAgICAgICAgICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgOTM2XHQgICAgICAgICAgICBoYW5kbGVFcnJvcihlcnJvcik7XG4gICA5MzdcdCAgICAgICAgICAgIHJldHVybjtcbiAgIDkzOFx0ICAgICAgICAgIH1cbiAgIDkzOVx0ICAgICAgICAgIGhhbmRsZUVycm9yKCk7XG4gICA5NDBcdCAgICAgICAgfVxuICAgOTQxXHQgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgOTQyXHQgICAgICAgIHNldERpc2FibGVJbnB1dChmYWxzZSk7XG4gICA5NDNcdCAgICAgICAgcmV0dXJuO1xuICAgOTQ0XHQgICAgICB9XG4gICA5NDVcdCAgICB9XG4gICA5NDZcdCAgfTtcbiAgIDk0N1x0XG4gICA5NDhcdCAgY29uc3QgaGFuZGxlQWN0aW9uQ2xpY2sgPSBhc3luYyAobGFiZWw6IHN0cmluZywgYWN0aW9uOiBJQWN0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCkgPT4ge1xuICAgOTQ5XHQgICAgc2V0VXNlcklucHV0KGxhYmVsKTtcbiAgIDk1MFx0ICAgIHNldE1lc3NhZ2VzKChkYXRhKSA9PiB7XG4gICA5NTFcdCAgICAgIGNvbnN0IHVwZGF0ZWQgPSBkYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xuICAgOTUyXHQgICAgICAgIGlmIChpID09PSBkYXRhLmxlbmd0aCAtIDEpIHtcbiAgIDk1M1x0ICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGFjdGlvbjogbnVsbCB9O1xuICAgOTU0XHQgICAgICAgIH1cbiAgIDk1NVx0ICAgICAgICByZXR1cm4gaXRlbTtcbiAgIDk1Nlx0ICAgICAgfSk7XG4gICA5NTdcdCAgICAgIGFkZENoYXRNZXNzYWdlKHVwZGF0ZWQpO1xuICAgOTU4XHQgICAgICByZXR1cm4gWy4uLnVwZGF0ZWRdO1xuICAgOTU5XHQgICAgfSk7XG4gICA5NjBcdCAgICBoYW5kbGVTdWJtaXQobGFiZWwsIGFjdGlvbik7XG4gICA5NjFcdCAgfTtcbiAgIDk2Mlx0XG4gICA5NjNcdCAgY29uc3QgY2xlYXJDaGF0ID0gKCkgPT4ge1xuICAgOTY0XHQgICAgdHJ5IHtcbiAgIDk2NVx0ICAgICAgcmVtb3ZlTG9jYWxTdG9yYWdlQ2hhdEhpc3RvcnkocHJvcHMuY2hhdGZsb3dpZCk7XG4gICA5NjZcdCAgICAgIHNldENoYXRJZChcbiAgIDk2N1x0ICAgICAgICAocHJvcHMuY2hhdGZsb3dDb25maWc/LnZhcnMgYXMgYW55KT8uY3VzdG9tZXJJZCA/IGAkeyhwcm9wcy5jaGF0Zmxvd0NvbmZpZz8udmFycyBhcyBhbnkpLmN1c3RvbWVySWQudG9TdHJpbmcoKX0rJHt1dWlkdjQoKX1gIDogdXVpZHY0KCksXG4gICA5NjhcdCAgICAgICk7XG4gICA5NjlcdCAgICAgIHNldFVwbG9hZGVkRmlsZXMoW10pO1xuICAgOTcwXHQgICAgICBjb25zdCBtZXNzYWdlczogTWVzc2FnZVR5cGVbXSA9IFtcbiAgIDk3MVx0ICAgICAgICB7XG4gICA5NzJcdCAgICAgICAgICBtZXNzYWdlOiBwcm9wcy53ZWxjb21lTWVzc2FnZSA/PyBkZWZhdWx0V2VsY29tZU1lc3NhZ2UsXG4gICA5NzNcdCAgICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScsXG4gICA5NzRcdCAgICAgICAgfSxcbiAgIDk3NVx0ICAgICAgICAuLi4ocHJvcHMuc2Vjb25kTWVzc2FnZSA/IFt7IG1lc3NhZ2U6IHByb3BzLnNlY29uZE1lc3NhZ2UsIHR5cGU6ICdhcGlNZXNzYWdlJyBhcyBtZXNzYWdlVHlwZSB9XSA6IFtdKSxcbiAgIDk3Nlx0ICAgICAgXTtcbiAgIDk3N1x0ICAgICAgaWYgKGxlYWRzQ29uZmlnKCk/LnN0YXR1cyAmJiAhZ2V0TG9jYWxTdG9yYWdlQ2hhdGZsb3cocHJvcHMuY2hhdGZsb3dpZCk/LmxlYWQpIHtcbiAgIDk3OFx0ICAgICAgICBtZXNzYWdlcy5wdXNoKHsgbWVzc2FnZTogJycsIHR5cGU6ICdsZWFkQ2FwdHVyZU1lc3NhZ2UnIH0pO1xuICAgOTc5XHQgICAgICB9XG4gICA5ODBcdCAgICAgIHNldE1lc3NhZ2VzKG1lc3NhZ2VzKTtcbiAgIDk4MVx0ICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgIDk4Mlx0ICAgICAgY29uc3QgZXJyb3JEYXRhID0gZXJyb3IucmVzcG9uc2UuZGF0YSB8fCBgJHtlcnJvci5yZXNwb25zZS5zdGF0dXN9OiAke2Vycm9yLnJlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgIDk4M1x0ICAgICAgY29uc29sZS5lcnJvcihgZXJyb3I6ICR7ZXJyb3JEYXRhfWApO1xuICAgOTg0XHQgICAgfVxuICAgOTg1XHQgIH07XG4gICA5ODZcdFxuICAgOTg3XHQgICh3aW5kb3cgYXMgYW55KS5jbGVhckNoYXQgPSBjbGVhckNoYXQ7XG4gICA5ODhcdFxuICAgOTg5XHQgIG9uTW91bnQoKCkgPT4ge1xuICAgOTkwXHQgICAgbGV0IHBlbmRpbmcgPSBmYWxzZTtcbiAgIDk5MVx0ICAgIGNvbnN0IGlkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgOTkyXHQgICAgICBpZiAocGVuZGluZyB8fCBkb2N1bWVudC5oaWRkZW4pIHJldHVybjtcbiAgIDk5M1x0ICAgICAgY29uc3QgY29udmVyc2F0aW9uSWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgY2hhdHdvb3Q6JHtwcm9wcy5jaGF0Zmxvd2lkfTpjb252ZXJzYXRpb25faWRgKTtcbiAgIDk5NFx0XG4gICA5OTVcdCAgICAgIGlmIChjb252ZXJzYXRpb25JZCkge1xuICAgOTk2XHQgICAgICAgIHBlbmRpbmcgPSB0cnVlO1xuICAgOTk3XHQgICAgICAgIHNlbmRNZXNzYWdlUXVlcnkoe1xuICAgOTk4XHQgICAgICAgICAgY2hhdGZsb3dpZDogcHJvcHMuY2hhdGZsb3dpZCxcbiAgIDk5OVx0ICAgICAgICAgIGFwaUhvc3Q6IHByb3BzLmFwaUhvc3QsXG4gIDEwMDBcdCAgICAgICAgICBib2R5OiB7XG4gIDEwMDFcdCAgICAgICAgICAgIHF1ZXN0aW9uOiAncGluZycsXG4gIDEwMDJcdCAgICAgICAgICAgIGZldGNoOiB0cnVlLFxuICAxMDAzXHQgICAgICAgICAgICBjaGF0SWQ6IGNoYXRJZCgpLFxuICAxMDA0XHQgICAgICAgICAgICBzdG9yZWQ6IHtcbiAgMTAwNVx0ICAgICAgICAgICAgICBjaGF0d29vdDoge1xuICAxMDA2XHQgICAgICAgICAgICAgICAgY29udmVyc2F0aW9uX2lkOiBjb252ZXJzYXRpb25JZCxcbiAgMTAwN1x0ICAgICAgICAgICAgICB9LFxuICAxMDA4XHQgICAgICAgICAgICB9LFxuICAxMDA5XHQgICAgICAgICAgfSxcbiAgMTAxMFx0ICAgICAgICAgIG9uUmVxdWVzdDogcHJvcHMub25SZXF1ZXN0LFxuICAxMDExXHQgICAgICAgIH0pXG4gIDEwMTJcdCAgICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gIDEwMTNcdCAgICAgICAgICAgIGlmICghbG9jYWxTdG9yYWdlLmdldEl0ZW0oYGNoYXR3b290OiR7cHJvcHMuY2hhdGZsb3dpZH06Y29udmVyc2F0aW9uX2lkYCkpIHJldHVybjtcbiAgMTAxNFx0XG4gIDEwMTVcdCAgICAgICAgICAgIGNvbnN0IHN0b3JlS2V5ID0gYGNoYXR3b290OiR7cHJvcHMuY2hhdGZsb3dpZH06Y29udmVyc2F0aW9uX2lkOmxhdGVzdF9tZXNzYWdlX2lkYDtcbiAgMTAxNlx0ICAgICAgICAgICAgY29uc3QgbGFzdFN5bmNNZXNzYWdlSWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdG9yZUtleSk7XG4gIDEwMTdcdCAgICAgICAgICAgIGNvbnN0IGVuYWJsZVN5bmMgPSBCb29sZWFuKGxhc3RTeW5jTWVzc2FnZUlkKTtcbiAgMTAxOFx0ICAgICAgICAgICAgY29uc3QgbmV3TWVzc2FnZXM6IGFueVtdID0gcmVzdWx0LmRhdGE/Lm1lc3NhZ2VzPy5wYXlsb2FkIHx8IFtdO1xuICAxMDE5XHQgICAgICAgICAgICBjb25zdCBzeW5jRnJvbUluZGV4ID0gbmV3TWVzc2FnZXMuZmluZEluZGV4KChtZXNzYWdlKSA9PiBtZXNzYWdlLmlkLnRvU3RyaW5nKCkgPT09IGxhc3RTeW5jTWVzc2FnZUlkKSArIDE7XG4gIDEwMjBcdCAgICAgICAgICAgIGxldCBhZGRNZXNzYWdlczogTWVzc2FnZVR5cGVbXSA9IFtdO1xuICAxMDIxXHRcbiAgMTAyMlx0ICAgICAgICAgICAgZm9yIChsZXQgaSA9IHN5bmNGcm9tSW5kZXg7IGkgPCBuZXdNZXNzYWdlcy5sZW5ndGg7IGkrKykge1xuICAxMDIzXHQgICAgICAgICAgICAgIGlmIChuZXdNZXNzYWdlc1tpXS5tZXNzYWdlX3R5cGUgIT09IDEpIGNvbnRpbnVlO1xuICAxMDI0XHQgICAgICAgICAgICAgIGFkZE1lc3NhZ2VzLnB1c2goe1xuICAxMDI1XHQgICAgICAgICAgICAgICAgbWVzc2FnZTogbmV3TWVzc2FnZXNbaV0uY29udGVudCxcbiAgMTAyNlx0ICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogdjQoKSxcbiAgMTAyN1x0ICAgICAgICAgICAgICAgIHJhdGluZzogdW5kZWZpbmVkLFxuICAxMDI4XHQgICAgICAgICAgICAgICAgc291cmNlRG9jdW1lbnRzOiBbXSxcbiAgMTAyOVx0ICAgICAgICAgICAgICAgIHR5cGU6ICdhcGlNZXNzYWdlJyxcbiAgMTAzMFx0ICAgICAgICAgICAgICB9KTtcbiAgMTAzMVx0ICAgICAgICAgICAgfVxuICAxMDMyXHRcbiAgMTAzM1x0ICAgICAgICAgICAgaWYgKGFkZE1lc3NhZ2VzLmxlbmd0aCkge1xuICAxMDM0XHQgICAgICAgICAgICAgIGlmICghZW5hYmxlU3luYykge1xuICAxMDM1XHQgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oc3RvcmVLZXksIG5ld01lc3NhZ2VzW25ld01lc3NhZ2VzLmxlbmd0aCAtIDFdLmlkLnRvU3RyaW5nKCkpO1xuICAxMDM2XHQgICAgICAgICAgICAgICAgYWRkTWVzc2FnZXMgPSBbXG4gIDEwMzdcdCAgICAgICAgICAgICAgICAgIHtcbiAgMTAzOFx0ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOlxuICAxMDM5XHQgICAgICAgICAgICAgICAgICAgICAgJ0vDrW5oIGNow6BvIFF1w70ga2jDoWNoLCB0w7RpIGzDoCB0cuG7oyBsw70gdMawIHbhuqVuLiBS4bqldCBow6JuIGjhuqFuaCDEkcaw4bujYyBo4buXIHRy4bujIFF1w70ga2jDoWNoLCBRdcO9IGtow6FjaCBj4bqnbiDEkcaw4bujYyB0xrAgduG6pW4gduG7gSB24bqlbiDEkeG7gSBnw6wg4bqhPycsXG4gIDEwNDBcdCAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiB2NCgpLFxuICAxMDQxXHQgICAgICAgICAgICAgICAgICAgIHJhdGluZzogdW5kZWZpbmVkLFxuICAxMDQyXHQgICAgICAgICAgICAgICAgICAgIHNvdXJjZURvY3VtZW50czogW10sXG4gIDEwNDNcdCAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnLFxuICAxMDQ0XHQgICAgICAgICAgICAgICAgICB9LFxuICAxMDQ1XHQgICAgICAgICAgICAgICAgXTtcbiAgMTA0Nlx0ICAgICAgICAgICAgICB9XG4gIDEwNDdcdFxuICAxMDQ4XHQgICAgICAgICAgICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgMTA0OVx0ICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHN0b3JlS2V5LCBuZXdNZXNzYWdlc1tuZXdNZXNzYWdlcy5sZW5ndGggLSAxXS5pZC50b1N0cmluZygpKTtcbiAgMTA1MFx0ICAgICAgICAgICAgICAgIHByZXZNZXNzYWdlcy5wdXNoKC4uLmFkZE1lc3NhZ2VzKTtcbiAgMTA1MVx0ICAgICAgICAgICAgICAgIGFkZENoYXRNZXNzYWdlKHByZXZNZXNzYWdlcyk7XG4gIDEwNTJcdFxuICAxMDUzXHQgICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5wcmV2TWVzc2FnZXNdLmZpbHRlcigobWVzc2FnZSkgPT4ge1xuICAxMDU0XHQgICAgICAgICAgICAgICAgICBpZiAoIWVuYWJsZVN5bmMpIHtcbiAgMTA1NVx0ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIW1lc3NhZ2UubWVzc2FnZT8uaW5jbHVkZXMoJ2Fzc2lzdGFudF9waG9uZV9udW1iZXInKTtcbiAgMTA1Nlx0ICAgICAgICAgICAgICAgICAgfVxuICAxMDU3XHRcbiAgMTA1OFx0ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gIDEwNTlcdCAgICAgICAgICAgICAgICB9KTtcbiAgMTA2MFx0ICAgICAgICAgICAgICB9KTtcbiAgMTA2MVx0ICAgICAgICAgICAgfVxuICAxMDYyXHQgICAgICAgICAgfSlcbiAgMTA2M1x0ICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgMTA2NFx0ICAgICAgICAgICAgcGVuZGluZyA9IGZhbHNlO1xuICAxMDY1XHQgICAgICAgICAgfSk7XG4gIDEwNjZcdCAgICAgIH1cbiAgMTA2N1x0ICAgIH0sIDEwMDApO1xuICAxMDY4XHRcbiAgMTA2OVx0ICAgIHJldHVybiAoKSA9PiB7XG4gIDEwNzBcdCAgICAgIGNsZWFySW50ZXJ2YWwoaWQpO1xuICAxMDcxXHQgICAgfTtcbiAgMTA3Mlx0ICB9KTtcbiAgMTA3M1x0XG4gIDEwNzRcdCAgb25Nb3VudCgoKSA9PiB7XG4gIDEwNzVcdCAgICBpZiAocHJvcHMuY2xlYXJDaGF0T25SZWxvYWQpIHtcbiAgMTA3Nlx0ICAgICAgY2xlYXJDaGF0KCk7XG4gIDEwNzdcdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCBjbGVhckNoYXQpO1xuICAxMDc4XHQgICAgICByZXR1cm4gKCkgPT4ge1xuICAxMDc5XHQgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCBjbGVhckNoYXQpO1xuICAxMDgwXHQgICAgICB9O1xuICAxMDgxXHQgICAgfVxuICAxMDgyXHQgIH0pO1xuICAxMDgzXHRcbiAgMTA4NFx0ICBvbk1vdW50KCgpID0+IHtcbiAgMTA4NVx0ICAgIC8vIEFkZCBuZXR3b3JrIHN0YXR1cyBldmVudCBsaXN0ZW5lcnNcbiAgMTA4Nlx0ICAgIGNvbnN0IGhhbmRsZU9ubGluZSA9ICgpID0+IHtcbiAgMTA4N1x0ICAgICAgc2V0SXNOZXR3b3JrRXJyb3IoZmFsc2UpO1xuICAxMDg4XHQgICAgICBzZXROZXR3b3JrRXJyb3JNZXNzYWdlKCcnKTtcbiAgMTA4OVx0ICAgIH07XG4gIDEwOTBcdFxuICAxMDkxXHQgICAgY29uc3QgaGFuZGxlT2ZmbGluZSA9ICgpID0+IHtcbiAgMTA5Mlx0ICAgICAgc2V0SXNOZXR3b3JrRXJyb3IodHJ1ZSk7XG4gIDEwOTNcdCAgICAgIHNldE5ldHdvcmtFcnJvck1lc3NhZ2UoJ03huqV0IGvhur90IG7hu5FpIG3huqFuZycpO1xuICAxMDk0XHQgICAgfTtcbiAgMTA5NVx0XG4gIDEwOTZcdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb25saW5lJywgaGFuZGxlT25saW5lKTtcbiAgMTA5N1x0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgaGFuZGxlT2ZmbGluZSk7XG4gIDEwOThcdFxuICAxMDk5XHQgICAgcmV0dXJuICgpID0+IHtcbiAgMTEwMFx0ICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29ubGluZScsIGhhbmRsZU9ubGluZSk7XG4gIDExMDFcdCAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgaGFuZGxlT2ZmbGluZSk7XG4gIDExMDJcdCAgICB9O1xuICAxMTAzXHQgIH0pO1xuICAxMTA0XHRcbiAgMTEwNVx0ICBvbk1vdW50KCgpID0+IHtcbiAgMTEwNlx0ICAgIGlmICghY2hhdENvbnRhaW5lcikgcmV0dXJuO1xuICAxMTA3XHRcbiAgMTEwOFx0ICAgIGNoYXRDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4ge1xuICAxMTA5XHQgICAgICBpZiAoIWNoYXRDb250YWluZXIpIHJldHVybjtcbiAgMTExMFx0ICAgICAgaWYgKGNoYXRDb250YWluZXIuc2Nyb2xsVG9wIDwgY2hhdENvbnRhaW5lci5zY3JvbGxIZWlnaHQgLSBjaGF0Q29udGFpbmVyLmNsaWVudEhlaWdodCAtIDUwKSB7XG4gIDExMTFcdCAgICAgICAgc2V0U2hvd1Njcm9sbEJ1dHRvbih0cnVlKTtcbiAgMTExMlx0ICAgICAgfSBlbHNlIHtcbiAgMTExM1x0ICAgICAgICBzZXRTaG93U2Nyb2xsQnV0dG9uKGZhbHNlKTtcbiAgMTExNFx0ICAgICAgfVxuICAxMTE1XHQgICAgfSk7XG4gIDExMTZcdCAgfSk7XG4gIDExMTdcdFxuICAxMTE4XHQgIGNyZWF0ZUVmZmVjdCgoKSA9PiB7XG4gIDExMTlcdCAgICBpZiAocHJvcHMuc3RhcnRlclByb21wdHMpIHtcbiAgMTEyMFx0ICAgICAgbGV0IHByb21wdHM6IHN0cmluZ1tdO1xuICAxMTIxXHRcbiAgMTEyMlx0ICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcHMuc3RhcnRlclByb21wdHMpKSB7XG4gIDExMjNcdCAgICAgICAgLy8gSWYgc3RhcnRlclByb21wdHMgaXMgYW4gYXJyYXlcbiAgMTEyNFx0ICAgICAgICBwcm9tcHRzID0gcHJvcHMuc3RhcnRlclByb21wdHM7XG4gIDExMjVcdCAgICAgIH0gZWxzZSB7XG4gIDExMjZcdCAgICAgICAgLy8gSWYgc3RhcnRlclByb21wdHMgaXMgYSBKU09OIG9iamVjdFxuICAxMTI3XHQgICAgICAgIHByb21wdHMgPSBPYmplY3QudmFsdWVzKHByb3BzLnN0YXJ0ZXJQcm9tcHRzKS5tYXAoKHByb21wdE9iajogeyBwcm9tcHQ6IHN0cmluZyB9KSA9PiBwcm9tcHRPYmoucHJvbXB0KTtcbiAgMTEyOFx0ICAgICAgfVxuICAxMTI5XHRcbiAgMTEzMFx0ICAgICAgLy8gRmlsdGVyIG91dCBhbnkgZW1wdHkgcHJvbXB0c1xuICAxMTMxXHQgICAgICByZXR1cm4gc2V0U3RhcnRlclByb21wdHMocHJvbXB0cy5maWx0ZXIoKHByb21wdCkgPT4gcHJvbXB0ICE9PSAnJykpO1xuICAxMTMyXHQgICAgfVxuICAxMTMzXHQgIH0pO1xuICAxMTM0XHRcbiAgMTEzNVx0ICAvLyBBdXRvIHNjcm9sbCBjaGF0IHRvIGJvdHRvbVxuICAxMTM2XHQgIGNyZWF0ZUVmZmVjdCgoKSA9PiB7XG4gIDExMzdcdCAgICBpZiAobWVzc2FnZXMoKSkge1xuICAxMTM4XHQgICAgICBpZiAobWVzc2FnZXMoKS5sZW5ndGggPiAxKSB7XG4gIDExMzlcdCAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gIDExNDBcdCAgICAgICAgICBjaGF0Q29udGFpbmVyPy5zY3JvbGxUbygwLCBjaGF0Q29udGFpbmVyLnNjcm9sbEhlaWdodCk7XG4gIDExNDFcdCAgICAgICAgfSwgNDAwKTtcbiAgMTE0Mlx0ICAgICAgfVxuICAxMTQzXHQgICAgfVxuICAxMTQ0XHQgIH0pO1xuICAxMTQ1XHRcbiAgMTE0Nlx0ICBjcmVhdGVFZmZlY3QoKCkgPT4ge1xuICAxMTQ3XHQgICAgaWYgKHByb3BzLmZvbnRTaXplICYmIGJvdENvbnRhaW5lcikgYm90Q29udGFpbmVyLnN0eWxlLmZvbnRTaXplID0gYCR7cHJvcHMuZm9udFNpemV9cHhgO1xuICAxMTQ4XHQgIH0pO1xuICAxMTQ5XHRcbiAgMTE1MFx0ICBjb25zdCBzZXRTdW1tYXJ5TWVzc2FnZSA9IChwYXRoOiBzdHJpbmcsIG1zZzogc3RyaW5nKSA9PiB7XG4gIDExNTFcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gIDExNTJcdCAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgMTE1M1x0ICAgICAgaWYgKGFsbE1lc3NhZ2VzLmZpbmQoKG1lc3NhZ2UpID0+IG1lc3NhZ2UubWVzc2FnZS5pbmNsdWRlcyhtc2cpKSkge1xuICAxMTU0XHQgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgMTE1NVx0ICAgICAgfVxuICAxMTU2XHRcbiAgMTE1N1x0ICAgICAgY29uc3QgZmlyc3RVc2VyTWVzc2FnZUluZGV4ID0gYWxsTWVzc2FnZXMuZmluZEluZGV4KChtZXNzYWdlKSA9PiBtZXNzYWdlLnR5cGUgPT09ICd1c2VyTWVzc2FnZScpO1xuICAxMTU4XHQgICAgICBjb25zdCBuZXdNZXNzYWdlID0ge1xuICAxMTU5XHQgICAgICAgIG1lc3NhZ2U6IG1zZy50cmltKCkgPyBtc2cudHJpbSgpIDogYEtow7RuZyB0w6xtIHRo4bqleSBu4buZaSBkdW5nIHTDs20gdOG6r3QgY+G7p2EgZmlsZWAsXG4gIDExNjBcdCAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnIGFzIG1lc3NhZ2VUeXBlLFxuICAxMTYxXHQgICAgICAgIGRhdGVUaW1lOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIDExNjJcdCAgICAgIH07XG4gIDExNjNcdCAgICAgIGlmIChmaXJzdFVzZXJNZXNzYWdlSW5kZXggIT09IC0xKSB7XG4gIDExNjRcdCAgICAgICAgYWxsTWVzc2FnZXMuc3BsaWNlKGZpcnN0VXNlck1lc3NhZ2VJbmRleCwgMCwgbmV3TWVzc2FnZSk7XG4gIDExNjVcdCAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAxMTY2XHQgICAgICB9IGVsc2Uge1xuICAxMTY3XHQgICAgICAgIGFsbE1lc3NhZ2VzLnB1c2gobmV3TWVzc2FnZSk7XG4gIDExNjhcdCAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAxMTY5XHQgICAgICB9XG4gIDExNzBcdFxuICAxMTcxXHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gIDExNzJcdCAgICB9KTtcbiAgMTE3M1x0ICB9O1xuICAxMTc0XHRcbiAgMTE3NVx0ICBjb25zdCBnZXRTdW1tYXJ5RmlsZSA9IGFzeW5jIChwYXRoOiBzdHJpbmcpID0+IHtcbiAgMTE3Nlx0ICAgIGlmICghcGF0aCkgcmV0dXJuO1xuICAxMTc3XHRcbiAgMTE3OFx0ICAgIGlmIChmaWxlU3VtbWFyeSgpKSB7XG4gIDExNzlcdCAgICAgIHNldFN1bW1hcnlNZXNzYWdlKHBhdGgsIGZpbGVTdW1tYXJ5KCkpO1xuICAxMTgwXHQgICAgfSBlbHNlIHtcbiAgMTE4MVx0ICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGaWxlQ29udGVudCh7XG4gIDExODJcdCAgICAgICAgcGF0aDogcGF0aCxcbiAgMTE4M1x0ICAgICAgICBvblJlcXVlc3Q6IHByb3BzLm9uUmVxdWVzdCxcbiAgMTE4NFx0ICAgICAgfSk7XG4gIDExODVcdFxuICAxMTg2XHQgICAgICBpZiAocmVzcG9uc2U/LmRhdGE/LmNvbnRlbnQpIHtcbiAgMTE4N1x0ICAgICAgICBzZXRGaWxlU3VtbWFyeShyZXNwb25zZT8uZGF0YT8uY29udGVudCk7XG4gIDExODhcdCAgICAgICAgc2V0U3VtbWFyeU1lc3NhZ2UocGF0aCwgcmVzcG9uc2U/LmRhdGE/LmNvbnRlbnQpO1xuICAxMTg5XHQgICAgICB9XG4gIDExOTBcdCAgICB9XG4gIDExOTFcdCAgfTtcbiAgMTE5Mlx0XG4gIDExOTNcdCAgY29uc3QgZ2V0Q29udGVudEZpbGUgPSBhc3luYyAocGF0aDogc3RyaW5nKSA9PiB7XG4gIDExOTRcdCAgICBpZiAoIXBhdGgpIHJldHVybjtcbiAgMTE5NVx0XG4gIDExOTZcdCAgICBpZiAoIWZpbGVDb250ZW50KCkpIHtcbiAgMTE5N1x0ICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGaWxlQ29udGVudCh7XG4gIDExOThcdCAgICAgICAgcGF0aDogcGF0aCxcbiAgMTE5OVx0ICAgICAgICBvblJlcXVlc3Q6IHByb3BzLm9uUmVxdWVzdCxcbiAgMTIwMFx0ICAgICAgfSk7XG4gIDEyMDFcdFxuICAxMjAyXHQgICAgICBpZiAocmVzcG9uc2U/LmRhdGE/LmNvbnRlbnQpIHtcbiAgMTIwM1x0ICAgICAgICBzZXRGaWxlQ29udGVudChyZXNwb25zZT8uZGF0YT8uY29udGVudCk7XG4gIDEyMDRcdCAgICAgIH1cbiAgMTIwNVx0ICAgIH1cbiAgMTIwNlx0ICB9O1xuICAxMjA3XHRcbiAgMTIwOFx0ICBjb25zdCBnZXRRdWVzdGlvbkZpbGUgPSBhc3luYyAocGF0aDogc3RyaW5nKSA9PiB7XG4gIDEyMDlcdCAgICBpZiAoIXBhdGgpIHJldHVybjtcbiAgMTIxMFx0XG4gIDEyMTFcdCAgICBpZiAoc3VnZ2VzdFF1ZXN0aW9uKCkubGVuZ3RoID09PSAwKSB7XG4gIDEyMTJcdCAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RmlsZUNvbnRlbnQoe1xuICAxMjEzXHQgICAgICAgIHBhdGg6IHBhdGgsXG4gIDEyMTRcdCAgICAgICAgb25SZXF1ZXN0OiBwcm9wcy5vblJlcXVlc3QsXG4gIDEyMTVcdCAgICAgIH0pO1xuICAxMjE2XHRcbiAgMTIxN1x0ICAgICAgaWYgKHJlc3BvbnNlPy5kYXRhPy5jb250ZW50KSB7XG4gIDEyMThcdCAgICAgICAgbGV0IHN1Z2dlc3RBcnIgPSBbXTtcbiAgMTIxOVx0ICAgICAgICB0cnkge1xuICAxMjIwXHQgICAgICAgICAgc3VnZ2VzdEFyciA9IEpTT04ucGFyc2UocmVzcG9uc2U/LmRhdGE/LmNvbnRlbnQpO1xuICAxMjIxXHQgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gIDEyMjJcdCAgICAgICAgICBjb25zb2xlLmxvZygn8J+agCB+IEJvdC50c3g6MTI2NiB+IGdldFF1ZXN0aW9uRmlsZSB+IGVycm9yOicsIGVycm9yKTtcbiAgMTIyM1x0ICAgICAgICB9XG4gIDEyMjRcdCAgICAgICAgc2V0U3VnZ2VzdFF1ZXN0aW9uKHN1Z2dlc3RBcnIpO1xuICAxMjI1XHQgICAgICB9XG4gIDEyMjZcdCAgICB9XG4gIDEyMjdcdCAgfTtcbiAgMTIyOFx0XG4gIDEyMjlcdCAgY3JlYXRlRWZmZWN0KGFzeW5jICgpID0+IHtcbiAgMTIzMFx0ICAgIGlmICghcHJvcHMuZmlsZVBhdGgpIHtcbiAgMTIzMVx0ICAgICAgcmV0dXJuO1xuICAxMjMyXHQgICAgfVxuICAxMjMzXHQgICAgbGV0IHBhdGggPSBwcm9wcy5maWxlUGF0aDtcbiAgMTIzNFx0ICAgIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykpIHBhdGggPSAnLycgKyBwYXRoO1xuICAxMjM1XHQgICAgaWYgKCFwYXRoLmVuZHNXaXRoKCcudHh0JykpIHBhdGggKz0gJy50eHQnO1xuICAxMjM2XHQgICAgY29uc3Qgc3VtbWFyeVBhdGggPSAnQ19PZmZpY2Uvc3VtbWFyeScgKyBwYXRoO1xuICAxMjM3XHQgICAgY29uc3QgY29udGVudFBhdGggPSAnQ19PZmZpY2UvY29udGVudCcgKyBwYXRoO1xuICAxMjM4XHQgICAgY29uc3QgcXVlc3Rpb25QYXRoID0gJ0NfT2ZmaWNlL3F1ZXN0aW9uJyArIHBhdGg7XG4gIDEyMzlcdFxuVG90YWwgbGluZXMgaW4gZmlsZTogMjA5NVxuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxS0daSFNWdDNtTlE1dmVoZ1dBb1NaYSJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTYsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDM6MzguNDMzWiIsInJlc3BvbnNlX3RleHQiOiJOb3cgSSBuZWVkIHRvIGFkZCB0aGUgYG9uQmVmb3JlU2VuZGAgY2FsbGJhY2sgbG9naWMgcmlnaHQgYmVmb3JlIHRoZSBhY3R1YWwgQVBJIGNhbGxzLiBJJ2xsIGluc2VydCBpdCBhZnRlciB0aGUgYm9keSBpcyBjb25zdHJ1Y3RlZCBidXQgYmVmb3JlIHRoZSBuZXR3b3JrIGNoZWNrOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6ImYzYjY2NTExLWM2ZDAtNDZiNS1iNGI2LTY3MzcwOTQ5OGU2NCIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMU54ZHZQV1ZaOUpSM0hCSG5DQU5RS0wiLCJ0b29sX25hbWUiOiJzdHItcmVwbGFjZS1lZGl0b3IiLCJpbnB1dF9qc29uIjoie1wiY29tbWFuZFwiOiBcInN0cl9yZXBsYWNlXCIsIFwicGF0aFwiOiBcInNyYy9jb25zdGFudHMudHNcIiwgXCJpbnN0cnVjdGlvbl9yZW1pbmRlclwiOiBcIkFMV0FZUyBCUkVBSyBET1dOIEVESVRTIElOVE8gU01BTExFUiBDSFVOS1MgT0YgQVQgTU9TVCAyMDAgTElORVMgRUFDSC5cIiwgXCJvbGRfc3RyXCI6IFwidHlwZSBCdWJibGVQcm9wcyA9IHtcXG4gIC8vIENvcmUgQm90IHByb3BlcnRpZXNcXG4gIGNoYXRmbG93aWQ6IHN0cmluZztcXG4gIGFwaUhvc3Q/OiBzdHJpbmc7XFxuICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XFxuICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1wiLCBcIm9sZF9zdHJfc3RhcnRfbGluZV9udW1iZXJcIjogMywgXCJvbGRfc3RyX2VuZF9saW5lX251bWJlclwiOiA4LCBcIm5ld19zdHJcIjogXCJ0eXBlIEJ1YmJsZVByb3BzID0ge1xcbiAgLy8gQ29yZSBCb3QgcHJvcGVydGllc1xcbiAgY2hhdGZsb3dpZDogc3RyaW5nO1xcbiAgYXBpSG9zdD86IHN0cmluZztcXG4gIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcXG4gIG9uQmVmb3JlU2VuZD86IChtZXNzYWdlOiBzdHJpbmcsIGJvZHk6IGFueSkgPT4gUHJvbWlzZTx7IG1lc3NhZ2U6IHN0cmluZzsgYm9keTogYW55OyBjYW5jZWw/OiBib29sZWFuIH0+IHwgeyBtZXNzYWdlOiBzdHJpbmc7IGJvZHk6IGFueTsgY2FuY2VsPzogYm9vbGVhbiB9O1xcbiAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcIn0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJOb3cgSSBuZWVkIHRvIHVwZGF0ZSB0aGUgY29uc3RhbnRzIGZpbGUgdG8gaW5jbHVkZSB0aGUgbmV3IHByb3AgaW4gdGhlIHR5cGUgZGVmaW5pdGlvbjpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IlN1Y2Nlc3NmdWxseSBlZGl0ZWQgdGhlIGZpbGUgc3JjL2NvbXBvbmVudHMvQm90LnRzeC5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzBdOlxuUmVwbGFjZW1lbnQgc3VjY2Vzc2Z1bC5cbkVkaXRlZCBzZWN0aW9uIGFmdGVyIElERSBhdXRvLWZvcm1hdHRpbmcgd2FzIGFwcGxpZWQ6XG4gICA4NDFcdCAgICBpZiAocHJvcHMuY2hhdGZsb3dDb25maWcpIGJvZHkub3ZlcnJpZGVDb25maWcgPSBwcm9wcy5jaGF0Zmxvd0NvbmZpZztcbiAgIDg0Mlx0XG4gICA4NDNcdCAgICBpZiAobGVhZEVtYWlsKCkpIGJvZHkubGVhZEVtYWlsID0gbGVhZEVtYWlsKCk7XG4gICA4NDRcdFxuICAgODQ1XHQgICAgaWYgKGFjdGlvbikgYm9keS5hY3Rpb24gPSBhY3Rpb247XG4gICA4NDZcdFxuICAgODQ3XHQgICAgLy8gQ2FsbCBvbkJlZm9yZVNlbmQgY2FsbGJhY2sgaWYgcHJvdmlkZWRcbiAgIDg0OFx0ICAgIGlmIChwcm9wcy5vbkJlZm9yZVNlbmQpIHtcbiAgIDg0OVx0ICAgICAgdHJ5IHtcbiAgIDg1MFx0ICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9wcy5vbkJlZm9yZVNlbmQodmFsdWUsIGJvZHkpO1xuICAgODUxXHRcbiAgIDg1Mlx0ICAgICAgICAvLyBJZiB0aGUgY2FsbGJhY2sgcmV0dXJucyBjYW5jZWw6IHRydWUsIHN0b3AgdGhlIHN1Ym1pc3Npb25cbiAgIDg1M1x0ICAgICAgICBpZiAocmVzdWx0LmNhbmNlbCkge1xuICAgODU0XHQgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICA4NTVcdCAgICAgICAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgODU2XHQgICAgICAgICAgcmV0dXJuO1xuICAgODU3XHQgICAgICAgIH1cbiAgIDg1OFx0XG4gICA4NTlcdCAgICAgICAgLy8gVXBkYXRlIHRoZSBtZXNzYWdlIGFuZCBib2R5IHdpdGggdGhlIG1vZGlmaWVkIHZhbHVlc1xuICAgODYwXHQgICAgICAgIHZhbHVlID0gcmVzdWx0Lm1lc3NhZ2U7XG4gICA4NjFcdCAgICAgICAgT2JqZWN0LmFzc2lnbihib2R5LCByZXN1bHQuYm9keSk7XG4gICA4NjJcdFxuICAgODYzXHQgICAgICAgIC8vIFVwZGF0ZSB0aGUgdXNlciBtZXNzYWdlIGluIHRoZSBVSSBpZiBpdCB3YXMgbW9kaWZpZWRcbiAgIDg2NFx0ICAgICAgICBpZiAocmVzdWx0Lm1lc3NhZ2UgIT09IHZhbHVlKSB7XG4gICA4NjVcdCAgICAgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA4NjZcdCAgICAgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDg2N1x0ICAgICAgICAgICAgaWYgKGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnR5cGUgPT09ICd1c2VyTWVzc2FnZScpIHtcbiAgIDg2OFx0ICAgICAgICAgICAgICBhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS5tZXNzYWdlID0gcmVzdWx0Lm1lc3NhZ2U7XG4gICA4NjlcdCAgICAgICAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgODcwXHQgICAgICAgICAgICB9XG4gICA4NzFcdCAgICAgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDg3Mlx0ICAgICAgICAgIH0pO1xuICAgODczXHQgICAgICAgIH1cbiAgIDg3NFx0ICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgIDg3NVx0ICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBvbkJlZm9yZVNlbmQgY2FsbGJhY2s6JywgZXJyb3IpO1xuICAgODc2XHQgICAgICAgIGhhbmRsZUVycm9yKCdFcnJvciBwcm9jZXNzaW5nIG1lc3NhZ2UgYmVmb3JlIHNlbmQnKTtcbiAgIDg3N1x0ICAgICAgICByZXR1cm47XG4gICA4NzhcdCAgICAgIH1cbiAgIDg3OVx0ICAgIH1cbiAgIDg4MFx0XG4gICA4ODFcdCAgICAvLyBDaGVjayBuZXR3b3JrIHN0YXR1cyBiZWZvcmUgbWFraW5nIHRoZSByZXF1ZXN0XG4gICA4ODJcdCAgICBpZiAoIW5hdmlnYXRvci5vbkxpbmUpIHtcbiAgIDg4M1x0ICAgICAgc2V0SXNOZXR3b3JrRXJyb3IodHJ1ZSk7XG4gICA4ODRcdCAgICAgIHNldE5ldHdvcmtFcnJvck1lc3NhZ2UoJ03huqV0IGvhur90IG7hu5FpIG3huqFuZycpO1xuICAgODg1XHQgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA4ODZcdCAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuXG5SZXZpZXcgdGhlIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhcyBleHBlY3RlZCAoY29ycmVjdCBpbmRlbnRhdGlvbiwgbm8gZHVwbGljYXRlIGxpbmVzLCBldGMpLlxuRWRpdCB0aGUgZmlsZSBhZ2FpbiBpZiBuZWNlc3NhcnkuXG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDE1b1dmTnk1azZMNEZoUDFqYnJaZGV4In19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxNiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowMzo0OC45NTRaIiwicmVzcG9uc2VfdGV4dCI6Ik5vdyBJIG5lZWQgdG8gdXBkYXRlIHRoZSBjb25zdGFudHMgZmlsZSB0byBpbmNsdWRlIHRoZSBuZXcgcHJvcCBpbiB0aGUgdHlwZSBkZWZpbml0aW9uOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6Ijk3ZjNjYWUwLTgyMDQtNDc4ZC04MTQ3LTMxZjU1YjJhNzQ5ZSIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUNSZ3lObVp3V1dHY2QyMWg2QTc0c2MiLCJ0b29sX25hbWUiOiJ2aWV3IiwiaW5wdXRfanNvbiI6IntcInBhdGhcIjogXCJzcmMvZmVhdHVyZXMvYnViYmxlXCIsIFwidHlwZVwiOiBcImRpcmVjdG9yeVwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6Ikkgc2VlIHRoZSBjb25zdGFudHMgZmlsZSBoYXMgYSBkaWZmZXJlbnQgc3RydWN0dXJlLiBMZXQgbWUgY2hlY2sgdGhlIGJ1YmJsZSB0eXBlcyBmaWxlOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiRmFpbGVkIHRvIGVkaXQgdGhlIGZpbGUgc3JjL2NvbnN0YW50cy50cy4gU2VlIGJlbG93IGZvciBkZXRhaWxzLlxuUmVzdWx0IGZvciBzdHJfcmVwbGFjZSBmb3IgZW50cnkgd2l0aCBpbmRleCBbMF06XG5ObyByZXBsYWNlbWVudCB3YXMgcGVyZm9ybWVkLCBvbGRTdHIgZGlkIG5vdCBhcHBlYXIgdmVyYmF0aW0gaW4gc3JjL2NvbnN0YW50cy50cy5cblRoZSBjb250ZW50IGluIHRoZSBzcGVjaWZpZWQgcmVnaW9uIGlzOlxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUnO1xuICAgICAyXHRcbiAgICAgM1x0ZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gICAgIDRcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgIDVcdCAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICAgICA2XHQgIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gICAgIDdcdCAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcbiAgICAgOVx0ICB0aGVtZTogdW5kZWZpbmVkLFxuICAgIDEwXHQgIG9ic2VydmVyc0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDExXHQgIHJvb21JZHM6IHt9LFxuICAgIDEyXHQgIGlzVXNlRkFROiB1bmRlZmluZWQsXG5cbkRpZmYgYmV0d2VlbiBvbGRTdHIgYW5kIHRoZSBzcGVjaWZpZWQgcmVnaW9uIGlzOlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLS0tIG9sZFN0clxuKysrIHJlZ2lvbkNvbnRlbnRcbkBAIC0xLDYgKzEsNiBAQFxuLXR5cGUgQnViYmxlUHJvcHMgPSB7XG4tICAvLyBDb3JlIEJvdCBwcm9wZXJ0aWVzXG4tICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4tICBhcGlIb3N0Pzogc3RyaW5nO1xuLSAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuLSAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbitleHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbisgIGNoYXRmbG93aWQ6ICcnLFxuKyAgYXBpSG9zdDogdW5kZWZpbmVkLFxuKyAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcbisgIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuKyAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcblxuXG5GaXggZmFpbGVkIHN0cl9yZXBsYWNlIGVudHJpZXMgYWNjb3JkaW5nbHkgYW5kIHRyeSBhZ2Fpbi5cbiIsImlzX2Vycm9yIjp0cnVlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxTnhkdlBXVlo5SlIzSEJIbkNBTlFLTCJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTYsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDM6NTYuMTEzWiIsInJlc3BvbnNlX3RleHQiOiJJIHNlZSB0aGUgY29uc3RhbnRzIGZpbGUgaGFzIGEgZGlmZmVyZW50IHN0cnVjdHVyZS4gTGV0IG1lIGNoZWNrIHRoZSBidWJibGUgdHlwZXMgZmlsZTpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiJjZjA1NzFiYS03YWJmLTQwZjktOGFjZi1hMzAzMWM0NzA1MTIiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFNY05WZEdEVDZhY1NkbkNnMUVIUEhtIiwidG9vbF9uYW1lIjoidmlldyIsImlucHV0X2pzb24iOiJ7XCJwYXRoXCI6IFwic3JjL2ZlYXR1cmVzL2J1YmJsZS9pbmRleC50c1wiLCBcInR5cGVcIjogXCJmaWxlXCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSdzIHRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdXAgdG8gMiBsZXZlbHMgZGVlcCBpbiBzcmMvZmVhdHVyZXMvYnViYmxlLCBleGNsdWRpbmcgaGlkZGVuIGl0ZW1zOlxuc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzXG5zcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHNcXEJ1YmJsZS50c3hcbnNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50c1xcQnViYmxlQnV0dG9uLnRzeFxuc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzXFxUb29sdGlwLnRzeFxuc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzXFxpbmRleC50c1xuc3JjL2ZlYXR1cmVzL2J1YmJsZS9pbmRleC50c1xuc3JjL2ZlYXR1cmVzL2J1YmJsZS90eXBlcy50c1xuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxQ1JneU5tWndXV0djZDIxaDZBNzRzYyJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTYsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDQ6MDAuMjUxWiIsInJlc3BvbnNlX3RleHQiOiIiLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiMmUzYTY3MjAtODZjNS00YmRhLWE3MjEtMDkyYWNmNmJkMWEyIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxVk1DbTdXY2RyZUZnN1ZBbzI5Q2RDSCIsInRvb2xfbmFtZSI6ImNvZGViYXNlLXJldHJpZXZhbCIsImlucHV0X2pzb24iOiJ7XCJpbmZvcm1hdGlvbl9yZXF1ZXN0XCI6IFwiRmluZCB3aGVyZSBCdWJibGVQcm9wcyB0eXBlIGlzIGRlZmluZWQgYW5kIGV4cG9ydGVkLiBMb29rIGZvciB0aGUgY29tcGxldGUgdHlwZSBkZWZpbml0aW9uIHRoYXQgY29tYmluZXMgQm90UHJvcHMgd2l0aCBCdWJibGVQYXJhbXMuXCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTGV0IG1lIGNoZWNrIGlmIHRoZXJlJ3MgYSBCdWJibGVQcm9wcyB0eXBlIGRlZmluZWQgZWxzZXdoZXJlOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSdzIHRoZSByZXN1bHQgb2YgcnVubmluZyBgY2F0IC1uYCBvbiBzcmMvZmVhdHVyZXMvYnViYmxlL2luZGV4LnRzOlxuICAgICAxXHRleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuICAgICAyXHRcblRvdGFsIGxpbmVzIGluIGZpbGU6IDJcbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMU1jTlZkR0RUNmFjU2RuQ2cxRUhQSG0ifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjE2LCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA0OjAzLjU3OVoiLCJyZXNwb25zZV90ZXh0IjoiTGV0IG1lIGNoZWNrIGlmIHRoZXJlJ3MgYSBCdWJibGVQcm9wcyB0eXBlIGRlZmluZWQgZWxzZXdoZXJlOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjNkMTczZTk0LWNmNzgtNDBmNC04Nzk3LWI2NDFjNDkyODUwMSIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVNwWEFQeVlMQXp0ZFI2RlVFdjlCYzkiLCJ0b29sX25hbWUiOiJzdHItcmVwbGFjZS1lZGl0b3IiLCJpbnB1dF9qc29uIjoie1wiY29tbWFuZFwiOiBcInN0cl9yZXBsYWNlXCIsIFwicGF0aFwiOiBcInNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUudHN4XCIsIFwiaW5zdHJ1Y3Rpb25fcmVtaW5kZXJcIjogXCJBTFdBWVMgQlJFQUsgRE9XTiBFRElUUyBJTlRPIFNNQUxMRVIgQ0hVTktTIE9GIEFUIE1PU1QgMjAwIExJTkVTIEVBQ0guXCIsIFwib2xkX3N0clwiOiBcIiAgICAgICAgICAgICAgY2hhdGZsb3dpZD17cHJvcHMuY2hhdGZsb3dpZH1cXG4gICAgICAgICAgICAgIGNoYXRmbG93Q29uZmlnPXtwcm9wcy5jaGF0Zmxvd0NvbmZpZ31cXG4gICAgICAgICAgICAgIGFwaUhvc3Q9e3Byb3BzLmFwaUhvc3R9XFxuICAgICAgICAgICAgICBvblJlcXVlc3Q9e3Byb3BzLm9uUmVxdWVzdH1cIiwgXCJvbGRfc3RyX3N0YXJ0X2xpbmVfbnVtYmVyXCI6IDE0NiwgXCJvbGRfc3RyX2VuZF9saW5lX251bWJlclwiOiAxNDksIFwibmV3X3N0clwiOiBcIiAgICAgICAgICAgICAgY2hhdGZsb3dpZD17cHJvcHMuY2hhdGZsb3dpZH1cXG4gICAgICAgICAgICAgIGNoYXRmbG93Q29uZmlnPXtwcm9wcy5jaGF0Zmxvd0NvbmZpZ31cXG4gICAgICAgICAgICAgIGFwaUhvc3Q9e3Byb3BzLmFwaUhvc3R9XFxuICAgICAgICAgICAgICBvblJlcXVlc3Q9e3Byb3BzLm9uUmVxdWVzdH1cXG4gICAgICAgICAgICAgIG9uQmVmb3JlU2VuZD17cHJvcHMub25CZWZvcmVTZW5kfVwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IlBlcmZlY3QhIE5vdyBJIGNhbiBzZWUgdGhhdCB0aGUgYEJ1YmJsZVByb3BzYCBpcyBkZWZpbmVkIGluIGBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlLnRzeGAgYXMgYGV4cG9ydCB0eXBlIEJ1YmJsZVByb3BzID0gQm90UHJvcHMgJiBCdWJibGVQYXJhbXM7YC4gU2luY2UgSSd2ZSBhbHJlYWR5IHVwZGF0ZWQgdGhlIGBCb3RQcm9wc2AgaW50ZXJmYWNlLCB0aGUgYEJ1YmJsZVByb3BzYCB3aWxsIGF1dG9tYXRpY2FsbHkgaW5jbHVkZSB0aGUgbmV3IGBvbkJlZm9yZVNlbmRgIHByb3AuXG5cbk5vdyBJIG5lZWQgdG8gdXBkYXRlIHRoZSBCdWJibGUgY29tcG9uZW50IHRvIHBhc3MgdGhyb3VnaCB0aGUgYG9uQmVmb3JlU2VuZGAgcHJvcCB0byB0aGUgQm90IGNvbXBvbmVudDpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IlRoZSBmb2xsb3dpbmcgY29kZSBzZWN0aW9ucyB3ZXJlIHJldHJpZXZlZDpcblBhdGg6IHNyYy9jb25zdGFudHMudHNcbiAgICAgMVx0Ly8gTm90ZTogVXNpbmcgaW5saW5lIHR5cGUgZGVmaW5pdGlvbiB0byBhdm9pZCBKU1ggY29tcGlsYXRpb24gaXNzdWVzXG4gICAgIDJcdC8vIFRoaXMgbWF0Y2hlcyBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zIGZyb20gdGhlIG9yaWdpbmFsIGNvZGViYXNlXG4gICAgIDNcdHR5cGUgQnViYmxlUHJvcHMgPSB7XG4gICAgIDRcdCAgLy8gQ29yZSBCb3QgcHJvcGVydGllc1xuICAgICA1XHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAgNlx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgICA3XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAgOFx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICA5XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgIDEwXHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMTFcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgIDEyXHQgIGJvdE1lc3NhZ2U/OiBhbnk7XG4gICAgMTNcdCAgdXNlck1lc3NhZ2U/OiBhbnk7XG4gICAgMTRcdCAgdGV4dElucHV0PzogYW55O1xuICAgIDE1XHQgIGZlZWRiYWNrPzogYW55O1xuICAgIDE2XHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgICAxN1x0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxOFx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTlcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDIwXHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAgMjFcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgIDIyXHQgIHRpdGxlPzogc3RyaW5nO1xuICAgIDIzXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDI0XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDI1XHQgIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xuICAgIDI2XHQgIGZvb3Rlcj86IGFueTtcbiAgICAyN1x0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4uLi5cbiAgICA0N1x0XG4gICAgNDhcdC8qKlxuICAgIDQ5XHQgKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjaGF0Ym90IGJ1YmJsZSBjb21wb25lbnQuXG4gICAgNTBcdCAqIFByb3ZpZGVzIHNlbnNpYmxlIGRlZmF1bHRzIGZvciBhbGwgb3B0aW9uYWwgcHJvcGVydGllcyB3aGlsZSBrZWVwaW5nXG4gICAgNTFcdCAqIHJlcXVpcmVkIHByb3BlcnRpZXMgZXhwbGljaXRseSB1bmRlZmluZWQgdG8gZW5mb3JjZSBwcm9wZXIgY29uZmlndXJhdGlvbi5cbiAgICA1Mlx0ICovXG4gICAgNTNcdGV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xuICAgIDU0XHQgIC8vIENvcmUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiAtIG11c3QgYmUgc2V0IGJ5IGltcGxlbWVudGVyXG4gICAgNTVcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgNTZcdFxuICAgIDU3XHQgIC8vIEFQSSBjb25maWd1cmF0aW9uXG4gICAgNThcdCAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICAgIDU5XHQgIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICAgIDYwXHQgIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4gICAgNjFcdFxuICAgIDYyXHQgIC8vIFVJIHRoZW1pbmcgYW5kIGN1c3RvbWl6YXRpb25cbiAgICA2M1x0ICB0aGVtZTogdW5kZWZpbmVkLFxuICAgIDY0XHRcbiAgICA2NVx0ICAvLyBFeHRlcm5hbCBpbnRlZ3JhdGlvbnNcbiAgICA2Nlx0ICBjaGF0d29vdFVybDogdW5kZWZpbmVkLFxuICAgIDY3XHQgIHJvb21JZHM6IHt9LFxuICAgIDY4XHRcbiAgICA2OVx0ICAvLyBGZWF0dXJlIGZsYWdzIGFuZCBvcHRpb25hbCBmdW5jdGlvbmFsaXR5XG4gICAgNzBcdCAgaXNVc2VGQVE6IGZhbHNlLFxuICAgIDcxXHRcbiAgICA3Mlx0ICAvLyBGaWxlIGFuZCBjb250ZW50IGNvbmZpZ3VyYXRpb25cbiAgICA3M1x0ICBmaWxlUGF0aDogJycsXG4gICAgNzRcdCAgc3VnZ2VzdFF1ZXN0aW9uczogJycsXG4gICAgNzVcdCAgZXh0ZXJuYWxEYXRhOiAnJyxcbiAgICA3Nlx0ICBjYWxsQmFja0ljb246ICcnLFxuICAgIDc3XHQgIGNhbGxCYWNrRnVuY3Rpb246IHVuZGVmaW5lZCxcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBTaG93LCBzcGxpdFByb3BzLCBvbkNsZWFudXAsIGNyZWF0ZUVmZmVjdCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHN0eWxlcyBmcm9tICcuLi8uLi8uLi9hc3NldHMvaW5kZXguY3NzJztcbiAgICAgM1x0aW1wb3J0IHsgQnViYmxlQnV0dG9uIH0gZnJvbSAnLi9CdWJibGVCdXR0b24nO1xuICAgICA0XHRpbXBvcnQgeyBCdWJibGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcyc7XG4gICAgIDVcdGltcG9ydCB7IEJvdCwgQm90UHJvcHMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0JvdCc7XG4gICAgIDZcdGltcG9ydCBUb29sdGlwIGZyb20gJy4vVG9vbHRpcCc7XG4gICAgIDdcdGltcG9ydCB7IGdldEJ1YmJsZUJ1dHRvblNpemUgfSBmcm9tICdAL3V0aWxzJztcbiAgICAgOFx0XG4gICAgIDlcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAxMFx0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgMTFcdFxuICAgIDEyXHRleHBvcnQgdHlwZSBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zO1xuICAgIDEzXHRcbiAgICAxNFx0ZXhwb3J0IGNvbnN0IEJ1YmJsZSA9IChwcm9wczogQnViYmxlUHJvcHMpID0+IHtcbiAgICAxNVx0ICBjb25zdCBbYnViYmxlUHJvcHNdID0gc3BsaXRQcm9wcyhwcm9wcywgWyd0aGVtZSddKTtcbiAgICAxNlx0XG4gICAgMTdcdCAgY29uc3QgW2lzQm90T3BlbmVkLCBzZXRJc0JvdE9wZW5lZF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgIDE4XHQgIGNvbnN0IFtpc0JvdFN0YXJ0ZWQsIHNldElzQm90U3RhcnRlZF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgIDE5XHQgIGNvbnN0IFtidXR0b25Qb3NpdGlvbiwgc2V0QnV0dG9uUG9zaXRpb25dID0gY3JlYXRlU2lnbmFsKHtcbiAgICAyMFx0ICAgIGJvdHRvbTogYnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uYm90dG9tID8/IDIwLFxuICAgIDIxXHQgICAgcmlnaHQ6IGJ1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/LnJpZ2h0ID8/IDIwLFxuICAgIDIyXHQgIH0pO1xuICAgIDIzXHRcbiAgICAyNFx0ICBjb25zdCBvcGVuQm90ID0gKCkgPT4ge1xuICAgIDI1XHQgICAgaWYgKCFpc0JvdFN0YXJ0ZWQoKSkgc2V0SXNCb3RTdGFydGVkKHRydWUpO1xuICAgIDI2XHQgICAgc2V0SXNCb3RPcGVuZWQodHJ1ZSk7XG4gICAgMjdcdCAgfTtcbiAgICAyOFx0XG4gICAgMjlcdCAgY29uc3QgY2xvc2VCb3QgPSAoKSA9PiB7XG4gICAgMzBcdCAgICBzZXRJc0JvdE9wZW5lZChmYWxzZSk7XG4gICAgMzFcdCAgfTtcbiAgICAzMlx0XG4gICAgMzNcdCAgY29uc3QgdG9nZ2xlQm90ID0gKCkgPT4ge1xuICAgIDM0XHQgICAgaXNCb3RPcGVuZWQoKSA/IGNsb3NlQm90KCkgOiBvcGVuQm90KCk7XG4gICAgMzVcdCAgfTtcbiAgICAzNlx0XG4gICAgMzdcdCAgb25DbGVhbnVwKCgpID0+IHtcbiAgICAzOFx0ICAgIHNldElzQm90U3RhcnRlZChmYWxzZSk7XG4gICAgMzlcdCAgfSk7XG4gICAgNDBcdFxuICAgIDQxXHQgIGNvbnN0IGJ1dHRvblNpemUgPSBnZXRCdWJibGVCdXR0b25TaXplKHByb3BzLnRoZW1lPy5idXR0b24/LnNpemUpOyAvLyBEZWZhdWx0IHRvIDQ4cHggaWYgc2l6ZSBpcyBub3QgcHJvdmlkZWRcbiAgICA0Mlx0ICBjb25zdCBidXR0b25Cb3R0b20gPSBwcm9wcy50aGVtZT8uYnV0dG9uPy5ib3R0b20gPz8gMjA7XG4gICAgNDNcdCAgY29uc3QgY2hhdFdpbmRvd0JvdHRvbSA9IGJ1dHRvbkJvdHRvbSArIGJ1dHRvblNpemUgKyAxMDsgLy8gQWRqdXN0IHRoZSBvZmZzZXQgaGVyZSBmb3Igc2xpZ2h0IHNoaWZ0XG4gICAgNDRcdFxuICAgIDQ1XHQgIC8vIEFkZCB2aWV3cG9ydCBtZXRhIHRhZyBkeW5hbWljYWxseVxuICAgIDQ2XHQgIGNyZWF0ZUVmZmVjdCgoKSA9PiB7XG4gICAgNDdcdCAgICBjb25zdCBtZXRhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbWV0YScpO1xuICAgIDQ4XHQgICAgbWV0YS5uYW1lID0gJ3ZpZXdwb3J0JztcbiAgICA0OVx0ICAgIG1ldGEuY29udGVudCA9ICd3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBpbnRlcmFjdGl2ZS13aWRnZXQ9cmVzaXplcy1jb250ZW50JztcbiAgICA1MFx0ICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobWV0YSk7XG4gICAgNTFcdFxuICAgIDUyXHQgICAgcmV0dXJuICgpID0+IHtcbiAgICA1M1x0ICAgICAgZG9jdW1lbnQuaGVhZC5yZW1vdmVDaGlsZChtZXRhKTtcbiAgICA1NFx0ICAgIH07XG4gICAgNTVcdCAgfSk7XG4gICAgNTZcdFxuICAgIDU3XHQgIGNvbnN0IHNob3dUb29sdGlwID0gYnViYmxlUHJvcHMudGhlbWU/LnRvb2x0aXA/LnNob3dUb29sdGlwID8/IGZhbHNlO1xuICAgIDU4XHRcbiAgICA1OVx0ICByZXR1cm4gKFxuICAgIDYwXHQgICAgPD5cbiAgICA2MVx0ICAgICAgPFNob3cgd2hlbj17cHJvcHMudGhlbWU/LmN1c3RvbUNTU30+XG4gICAgNjJcdCAgICAgICAgPHN0eWxlPntwcm9wcy50aGVtZT8uY3VzdG9tQ1NTfTwvc3R5bGU+XG4gICAgNjNcdCAgICAgIDwvU2hvdz5cbiAgICA2NFx0ICAgICAgPHN0eWxlPntzdHlsZXN9PC9zdHlsZT5cbiAgICA2NVx0ICAgICAgPFRvb2x0aXBcbiAgICA2Nlx0ICAgICAgICBzaG93VG9vbHRpcD17c2hvd1Rvb2x0aXAgJiYgIWlzQm90T3BlbmVkKCl9XG4gICAgNjdcdCAgICAgICAgcG9zaXRpb249e2J1dHRvblBvc2l0aW9uKCl9XG4gICAgNjhcdCAgICAgICAgYnV0dG9uU2l6ZT17YnV0dG9uU2l6ZX1cbiAgICA2OVx0ICAgICAgICB0b29sdGlwTWVzc2FnZT17YnViYmxlUHJvcHMudGhlbWU/LnRvb2x0aXA/LnRvb2x0aXBNZXNzYWdlfVxuICAgIDcwXHQgICAgICAgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I9e2J1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy50b29sdGlwQmFja2dyb3VuZENvbG9yfVxuICAgIDcxXHQgICAgICAgIHRvb2x0aXBUZXh0Q29sb3I9e2J1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy50b29sdGlwVGV4dENvbG9yfVxuICAgIDcyXHQgICAgICAgIHRvb2x0aXBGb250U2l6ZT17YnViYmxlUHJvcHMudGhlbWU/LnRvb2x0aXA/LnRvb2x0aXBGb250U2l6ZX0gLy8gU2V0IHRoZSB0b29sdGlwIGZvbnQgc2l6ZVxuICAgIDczXHQgICAgICAvPlxuICAgIDc0XHQgICAgICA8QnViYmxlQnV0dG9uXG4gICAgNzVcdCAgICAgICAgey4uLmJ1YmJsZVByb3BzLnRoZW1lPy5idXR0b259XG4gICAgNzZcdCAgICAgICAgdG9nZ2xlQm90PXt0b2dnbGVCb3R9XG4gICAgNzdcdCAgICAgICAgaXNCb3RPcGVuZWQ9e2lzQm90T3BlbmVkKCl9XG4gICAgNzhcdCAgICAgICAgc2V0QnV0dG9uUG9zaXRpb249e3NldEJ1dHRvblBvc2l0aW9ufVxuICAgIDc5XHQgICAgICAgIGRyYWdBbmREcm9wPXtidWJibGVQcm9wcy50aGVtZT8uYnV0dG9uPy5kcmFnQW5kRHJvcCA/PyBmYWxzZX1cbiAgICA4MFx0ICAgICAgICBhdXRvT3Blbj17YnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uYXV0b1dpbmRvd09wZW4/LmF1dG9PcGVuID8/IGZhbHNlfVxuICAgIDgxXHQgICAgICAgIG9wZW5EZWxheT17YnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uYXV0b1dpbmRvd09wZW4/Lm9wZW5EZWxheX1cbiAgICA4Mlx0ICAgICAgICBhdXRvT3Blbk9uTW9iaWxlPXtidWJibGVQcm9wcy50aGVtZT8uYnV0dG9uPy5hdXRvV2luZG93T3Blbj8uYXV0b09wZW5Pbk1vYmlsZSA/PyBmYWxzZX1cbiAgICA4M1x0ICAgICAgLz5cbiAgICA4NFx0ICAgICAgPGRpdlxuICAgIDg1XHQgICAgICAgIHBhcnQ9XCJib3RcIlxuICAgIDg2XHQgICAgICAgIHN0eWxlPXt7XG4gICAgODdcdCAgICAgICAgICBoZWlnaHQ6IGJ1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5oZWlnaHQgPyBgJHtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uaGVpZ2h0LnRvU3RyaW5nKCl9cHhgIDogJ2NhbGMoMTAwJSAtIDE1MHB4KScsXG4gICAgODhcdCAgICAgICAgICB3aWR0aDogYnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LndpZHRoID8gYCR7YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LndpZHRoLnRvU3RyaW5nKCl9cHhgIDogdW5kZWZpbmVkLFxuICAgIDg5XHQgICAgICAgICAgdHJhbnNpdGlvbjogJ3RyYW5zZm9ybSAyMDBtcyBjdWJpYy1iZXppZXIoMCwgMS4yLCAxLCAxKSwgb3BhY2l0eSAxNTBtcyBlYXNlLW91dCcsXG4gICAgOTBcdCAgICAgICAgICAndHJhbnNmb3JtLW9yaWdpbic6ICdib3R0b20gcmlnaHQnLFxuICAgIDkxXHQgICAgICAgICAgdHJhbnNmb3JtOiBpc0JvdE9wZW5lZCgpID8gJ3NjYWxlM2QoMSwgMSwgMSknIDogJ3NjYWxlM2QoMCwgMCwgMSknLFxuICAgIDkyXHQgICAgICAgICAgJ2JveC1zaGFkb3cnOiAncmdiKDAgMCAwIC8gMTYlKSAwcHggNXB4IDQwcHgnLFxuICAgIDkzXHQgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uYmFja2dyb3VuZENvbG9yIHx8ICcjZmZmZmZmJyxcbiAgICA5NFx0ICAgICAgICAgICdiYWNrZ3JvdW5kLWltYWdlJzogYnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmJhY2tncm91bmRJbWFnZSA/IGB1cmwoJHtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uYmFja2dyb3VuZEltYWdlfSlgIDogJ25vbmUnLFxuICAgIDk1XHQgICAgICAgICAgJ2JhY2tncm91bmQtc2l6ZSc6ICdjb3ZlcicsXG4gICAgOTZcdCAgICAgICAgICAnYmFja2dyb3VuZC1wb3NpdGlvbic6ICdjZW50ZXInLFxuICAgIDk3XHQgICAgICAgICAgJ2JhY2tncm91bmQtcmVwZWF0JzogJ25vLXJlcGVhdCcsXG4gICAgOThcdCAgICAgICAgICAnei1pbmRleCc6IDQyNDI0MjQyLFxuICAgIDk5XHQgICAgICAgICAgYm90dG9tOiBgJHtNYXRoLm1pbihidXR0b25Qb3NpdGlvbigpLmJvdHRvbSArIGJ1dHRvblNpemUgKyAxMCwgd2luZG93LmlubmVySGVpZ2h0IC0gY2hhdFdpbmRvd0JvdHRvbSl9cHhgLFxuICAgMTAwXHQgICAgICAgICAgcmlnaHQ6IGAke01hdGgubWluKGJ1dHRvblBvc2l0aW9uKCkucmlnaHQsIHdpbmRvdy5pbm5lcldpZHRoIC0gNDEwKX1weGAsXG4gICAxMDFcdCAgICAgICAgfX1cbiAgIDEwMlx0ICAgICAgICBjbGFzcz17XG4gICAxMDNcdCAgICAgICAgICBgZml4ZWQgc206cmlnaHQtNSByb3VuZGVkLWxnIHctZnVsbCBzbTp3LVs0MDBweF0gbWF4LWgtWzcwNHB4XWAgK1xuICAgMTA0XHQgICAgICAgICAgKGlzQm90T3BlbmVkKCkgPyAnIG9wYWNpdHktMScgOiAnIG9wYWNpdHktMCBwb2ludGVyLWV2ZW50cy1ub25lJykgK1xuICAgMTA1XHQgICAgICAgICAgYCBib3R0b20tJHtjaGF0V2luZG93Qm90dG9tfXB4YFxuICAgMTA2XHQgICAgICAgIH1cbi4uLlxuICAgMTUyXHQgICAgICAgICAgICAgIGRpc2NsYWltZXI9e2J1YmJsZVByb3BzLnRoZW1lPy5kaXNjbGFpbWVyfVxuICAgMTUzXHQgICAgICAgICAgICAgIGRhdGVUaW1lVG9nZ2xlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZGF0ZVRpbWVUb2dnbGV9XG4gICAxNTRcdCAgICAgICAgICAgICAgcmVuZGVySFRNTD17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnJlbmRlckhUTUx9XG4gICAxNTVcdCAgICAgICAgICAgICAgY2hhdHdvb3RVcmw9e3Byb3BzLmNoYXR3b290VXJsfVxuICAgMTU2XHQgICAgICAgICAgICAgIHJvb21JZHM9e3Byb3BzLnJvb21JZHN9XG4gICAxNTdcdCAgICAgICAgICAgICAgaXNVc2VGQVE9e3Byb3BzLmlzVXNlRkFRfVxuICAgMTU4XHQgICAgICAgICAgICAgIGZpbGVQYXRoPXtwcm9wcy5maWxlUGF0aH1cbiAgIDE1OVx0ICAgICAgICAgICAgICBzdWdnZXN0UXVlc3Rpb25zPXtwcm9wcy5zdWdnZXN0UXVlc3Rpb25zfVxuICAgMTYwXHQgICAgICAgICAgICAgIGV4dGVybmFsRGF0YT17cHJvcHMuZXh0ZXJuYWxEYXRhfVxuICAgMTYxXHQgICAgICAgICAgICAgIGNhbGxCYWNrRnVuY3Rpb249e3Byb3BzLmNhbGxCYWNrRnVuY3Rpb259XG4gICAxNjJcdCAgICAgICAgICAgICAgY2FsbEJhY2tJY29uPXtwcm9wcy5jYWxsQmFja0ljb259XG4gICAxNjNcdCAgICAgICAgICAgIC8+XG4gICAxNjRcdCAgICAgICAgICA8L2Rpdj5cbiAgIDE2NVx0ICAgICAgICA8L1Nob3c+XG4gICAxNjZcdCAgICAgIDwvZGl2PlxuICAgMTY3XHQgICAgPC8+XG4gICAxNjhcdCAgKTtcbiAgIDE2OVx0fTtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9Cb3RCdWJibGUudHN4XG4uLi5cbiAgICAxOFx0XG4gICAgMTlcdHR5cGUgUHJvcHMgPSB7XG4gICAgMjBcdCAgbWVzc2FnZTogTWVzc2FnZVR5cGU7XG4gICAgMjFcdCAgc2V0TWVzc2FnZXM/OiBhbnk7XG4gICAgMjJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDIzXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDI0XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgMjVcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIDI2XHQgIGZpbGVBbm5vdGF0aW9ucz86IGFueTtcbiAgICAyN1x0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAyOFx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMjlcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDMwXHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzMVx0ICBjaGF0RmVlZGJhY2tTdGF0dXM/OiBib29sZWFuO1xuICAgIDMyXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDMzXHQgIGZlZWRiYWNrQ29sb3I/OiBzdHJpbmc7XG4gICAgMzRcdCAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgIDM1XHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgICAzNlx0ICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47XG4gICAgMzdcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgIDM4XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDM5XHQgIGhhbmRsZUFjdGlvbkNsaWNrOiAobGFiZWw6IHN0cmluZywgYWN0aW9uOiBJQWN0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCkgPT4gdm9pZDtcbiAgICA0MFx0ICBoYW5kbGVTb3VyY2VEb2N1bWVudHNDbGljazogKHNyYzogYW55KSA9PiB2b2lkO1xuICAgIDQxXHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgIDQyXHQgIG9uQ29ubmVjdFRvSHVtYW5BZHZpc29yPzogKGlkOiBzdHJpbmcsIHBhcmFtcz86IGFueSkgPT4gdm9pZDtcbiAgICA0M1x0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICA0NFx0ICBxdWVzdGlvbj86IHN0cmluZztcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZUJ1dHRvbi50c3hcbiAgICAgMVx0aW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBjcmVhdGVFZmZlY3QsIFNob3cgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCB7IGlzTm90RGVmaW5lZCwgZ2V0QnViYmxlQnV0dG9uU2l6ZSB9IGZyb20gJ0AvdXRpbHMvaW5kZXgnO1xuICAgICAzXHRpbXBvcnQgeyBCdXR0b25UaGVtZSB9IGZyb20gJy4uL3R5cGVzJztcbiAgICAgNFx0XG4gICAgIDVcdHR5cGUgUHJvcHMgPSBCdXR0b25UaGVtZSAmIHtcbiAgICAgNlx0ICBpc0JvdE9wZW5lZDogYm9vbGVhbjtcbiAgICAgN1x0ICB0b2dnbGVCb3Q6ICgpID0+IHZvaWQ7XG4gICAgIDhcdCAgc2V0QnV0dG9uUG9zaXRpb246IChwb3NpdGlvbjogeyBib3R0b206IG51bWJlcjsgcmlnaHQ6IG51bWJlciB9KSA9PiB2b2lkO1xuICAgICA5XHQgIGRyYWdBbmREcm9wOiBib29sZWFuO1xuICAgIDEwXHQgIGF1dG9PcGVuPzogYm9vbGVhbjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIHRvIGNvbnRyb2wgYXV0b21hdGljIHdpbmRvdyBvcGVuaW5nXG4gICAgMTFcdCAgb3BlbkRlbGF5PzogbnVtYmVyOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgZm9yIGRlbGF5IHRpbWUgaW4gc2Vjb25kc1xuICAgIDEyXHQgIGF1dG9PcGVuT25Nb2JpbGU/OiBib29sZWFuOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgZm9yIG9wZW5pbmcgb24gbW9iaWxlXG4gICAgMTNcdH07XG4gICAgMTRcdFxuICAgIDE1XHRjb25zdCBkZWZhdWx0QnV0dG9uQ29sb3IgPSAnIzNCODFGNic7XG4gICAgMTZcdGNvbnN0IGRlZmF1bHRJY29uQ29sb3IgPSAnd2hpdGUnO1xuICAgIDE3XHRjb25zdCBkZWZhdWx0Qm90dG9tID0gMjA7XG4gICAgMThcdGNvbnN0IGRlZmF1bHRSaWdodCA9IDIwO1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL3R5cGVzLnRzXG4gICAgIDFcdGV4cG9ydCB0eXBlIEJ1YmJsZVBhcmFtcyA9IHtcbiAgICAgMlx0ICB0aGVtZT86IEJ1YmJsZVRoZW1lO1xuICAgICAzXHR9O1xuICAgICA0XHRcbiAgICAgNVx0ZXhwb3J0IHR5cGUgQnViYmxlVGhlbWUgPSB7XG4gICAgIDZcdCAgY2hhdFdpbmRvdz86IENoYXRXaW5kb3dUaGVtZTtcbiAgICAgN1x0ICBidXR0b24/OiBCdXR0b25UaGVtZTtcbiAgICAgOFx0ICB0b29sdGlwPzogVG9vbFRpcFRoZW1lO1xuICAgICA5XHQgIGRpc2NsYWltZXI/OiBEaXNjbGFpbWVyUG9wVXBUaGVtZTtcbiAgICAxMFx0ICBjdXN0b21DU1M/OiBzdHJpbmc7XG4gICAgMTFcdH07XG4gICAgMTJcdFxuICAgIDEzXHRleHBvcnQgdHlwZSBUZXh0SW5wdXRUaGVtZSA9IHtcbiAgICAxNFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE2XHQgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIDE3XHQgIHNlbmRCdXR0b25Db2xvcj86IHN0cmluZztcbiAgICAxOFx0ICBtYXhDaGFycz86IG51bWJlcjtcbiAgICAxOVx0ICBtYXhDaGFyc1dhcm5pbmdNZXNzYWdlPzogc3RyaW5nO1xuICAgIDIwXHQgIGF1dG9Gb2N1cz86IGJvb2xlYW47XG4gICAgMjFcdCAgc2VuZE1lc3NhZ2VTb3VuZD86IGJvb2xlYW47XG4gICAgMjJcdCAgc2VuZFNvdW5kTG9jYXRpb24/OiBzdHJpbmc7XG4gICAgMjNcdCAgcmVjZWl2ZU1lc3NhZ2VTb3VuZD86IGJvb2xlYW47XG4gICAgMjRcdCAgcmVjZWl2ZVNvdW5kTG9jYXRpb24/OiBzdHJpbmc7XG4gICAgMjVcdH07XG4gICAgMjZcdFxuICAgIDI3XHRleHBvcnQgdHlwZSBVc2VyTWVzc2FnZVRoZW1lID0ge1xuICAgIDI4XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAyOVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzBcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMzFcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDMyXHR9O1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0d1ZXN0QnViYmxlLnRzeFxuICAgICAxXHRpbXBvcnQgeyBGb3IsIFNob3csIG9uTW91bnQgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCB7IEF2YXRhciB9IGZyb20gJy4uL2F2YXRhcnMvQXZhdGFyJztcbiAgICAgM1x0aW1wb3J0IHsgTWFya2VkIH0gZnJvbSAnQHRzLXN0YWNrL21hcmtkb3duJztcbiAgICAgNFx0aW1wb3J0IHsgRmlsZVVwbG9hZCwgTWVzc2FnZVR5cGUgfSBmcm9tICcuLi9Cb3QnO1xuICAgICA1XHRpbXBvcnQgeyBBdHRhY2htZW50SWNvbiB9IGZyb20gJy4uL2ljb25zJztcbiAgICAgNlx0XG4gICAgIDdcdHR5cGUgUHJvcHMgPSB7XG4gICAgIDhcdCAgbWVzc2FnZTogTWVzc2FnZVR5cGU7XG4gICAgIDlcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAxMFx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgMTFcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMTJcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMTNcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDE0XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTZcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMTdcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgMThcdH07XG4gICAgMTlcdFxuICAgIDIwXHRjb25zdCBkZWZhdWx0QmFja2dyb3VuZENvbG9yID0gJyMzQjgxRjYnO1xuICAgIDIxXHRjb25zdCBkZWZhdWx0VGV4dENvbG9yID0gJyNmZmZmZmYnO1xuICAgIDIyXHRjb25zdCBkZWZhdWx0Rm9udFNpemUgPSAxNjtcbi4uLlxuUGF0aDogc3JjL0J1YmJsZUNoYXQudHN4XG4gICAgIDFcdGltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICdjbWN0cy1jLWFnZW50LWVtYmVkZGluZydcbiAgICAgMlx0aW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuICAgICAzXHRcbiAgICAgNFx0dHlwZSBQcm9wcyA9IEJ1YmJsZVByb3BzXG4gICAgIDVcdFxuICAgICA2XHRkZWNsYXJlIGdsb2JhbCB7XG4gICAgIDdcdCAgbmFtZXNwYWNlIEpTWCB7XG4gICAgIDhcdCAgICBpbnRlcmZhY2UgSW50cmluc2ljRWxlbWVudHMge1xuICAgICA5XHQgICAgICAnZmxvd2lzZS1jaGF0Ym90JzogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gICAgMTBcdCAgICAgICAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTEVsZW1lbnQ+LFxuICAgIDExXHQgICAgICAgIEhUTUxFbGVtZW50XG4gICAgMTJcdCAgICAgID5cbiAgICAxM1x0ICAgIH1cbiAgICAxNFx0ICB9XG4gICAgMTVcdH1cbiAgICAxNlx0XG4gICAgMTdcdHR5cGUgQnViYmxlRWxlbWVudCA9IEhUTUxFbGVtZW50ICYgUHJvcHNcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9MZWFkQ2FwdHVyZUJ1YmJsZS50c3hcbi4uLlxuICAgICA4XHRcbiAgICAgOVx0dHlwZSBQcm9wcyA9IHtcbiAgICAxMFx0ICBtZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgICAxMVx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgMTJcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMTNcdCAgbGVhZHNDb25maWc/OiBMZWFkc0NvbmZpZztcbiAgICAxNFx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDE1XHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDE2XHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAxN1x0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE5XHQgIHNlbmRCdXR0b25Db2xvcj86IHN0cmluZztcbiAgICAyMFx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAyMVx0ICBpc0xlYWRTYXZlZDogYm9vbGVhbjtcbiAgICAyMlx0ICBzZXRJc0xlYWRTYXZlZDogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkO1xuICAgIDIzXHQgIHNldExlYWRFbWFpbDogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgMjRcdH07XG4uLi5cblBhdGg6IHNyYy93aW5kb3cudHNcbiAgICAgMVx0aW1wb3J0IHsgb2JzZXJ2ZXJzQ29uZmlnVHlwZSB9IGZyb20gJy4vY29tcG9uZW50cy9Cb3QnO1xuICAgICAyXHRpbXBvcnQgeyBCdWJibGVUaGVtZSB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAgM1x0XG4gICAgIDRcdC8qIGVzbGludC1kaXNhYmxlIHNvbGlkL3JlYWN0aXZpdHkgKi9cbiAgICAgNVx0dHlwZSBCb3RQcm9wcyA9IHtcbiAgICAgNlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDdcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgOFx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDlcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAxMFx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgIDExXHQgIHRoZW1lPzogQnViYmxlVGhlbWU7XG4gICAgMTJcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAgMTNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgMTRcdCAgaXNVc2VGQVE/OiB1bmRlZmluZWQ7XG4gICAgMTVcdH07XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvQWdlbnRSZWFzb25pbmdCdWJibGUudHN4XG4gICAgIDFcdGltcG9ydCB7IEZvciwgb25Nb3VudCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHsgTWFya2VkIH0gZnJvbSAnQHRzLXN0YWNrL21hcmtkb3duJztcbiAgICAgM1x0aW1wb3J0IHsgRmlsZVVwbG9hZCB9IGZyb20gJy4uL0JvdCc7XG4gICAgIDRcdGltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG4gICAgIDVcdFxuICAgICA2XHR0eXBlIFByb3BzID0ge1xuICAgICA3XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgIDhcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgICA5XHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDEwXHQgIGFnZW50TmFtZTogc3RyaW5nO1xuICAgIDExXHQgIGFnZW50TWVzc2FnZTogc3RyaW5nO1xuICAgIDEyXHQgIGFnZW50QXJ0aWZhY3RzPzogRmlsZVVwbG9hZFtdO1xuICAgIDEzXHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxNFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMTZcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgMTdcdH07XG4gICAgMThcdFxuICAgIDE5XHRjb25zdCBkZWZhdWx0QmFja2dyb3VuZENvbG9yID0gJyNmN2Y4ZmYnO1xuICAgIDIwXHRjb25zdCBkZWZhdWx0VGV4dENvbG9yID0gJyMzMDMyMzUnO1xuICAgIDIxXHRjb25zdCBkZWZhdWx0Rm9udFNpemUgPSAxNjtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvQm90LnRzeFxuICAgICAxXHRpbXBvcnQgeyBBdmF0YXIgfSBmcm9tICdAL2NvbXBvbmVudHMvYXZhdGFycy9BdmF0YXInO1xuICAgICAyXHRpbXBvcnQgeyBGb2xsb3dVcFByb21wdEJ1YmJsZSB9IGZyb20gJ0AvY29tcG9uZW50cy9idWJibGVzL0ZvbGxvd1VwUHJvbXB0QnViYmxlJztcbiAgICAgM1x0aW1wb3J0IHsgTGVhZENhcHR1cmVCdWJibGUgfSBmcm9tICdAL2NvbXBvbmVudHMvYnViYmxlcy9MZWFkQ2FwdHVyZUJ1YmJsZSc7XG4gICAgIDRcdGltcG9ydCB7IERlbGV0ZUJ1dHRvbiwgU2VuZEJ1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy9idXR0b25zL1NlbmRCdXR0b24nO1xuICAgICA1XHRpbXBvcnQgeyBGaWxlUHJldmlldyB9IGZyb20gJ0AvY29tcG9uZW50cy9pbnB1dHMvdGV4dElucHV0L2NvbXBvbmVudHMvRmlsZVByZXZpZXcnO1xuICAgICA2XHRpbXBvcnQge1xuICAgICA3XHQgIEJvdE1lc3NhZ2VUaGVtZSxcbiAgICAgOFx0ICBEYXRlVGltZVRvZ2dsZVRoZW1lLFxuICAgICA5XHQgIERpc2NsYWltZXJQb3BVcFRoZW1lLFxuICAgIDEwXHQgIEZlZWRiYWNrVGhlbWUsXG4gICAgMTFcdCAgRm9vdGVyVGhlbWUsXG4gICAgMTJcdCAgVGV4dElucHV0VGhlbWUsXG4gICAgMTNcdCAgVXNlck1lc3NhZ2VUaGVtZSxcbiAgICAxNFx0fSBmcm9tICdAL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgMTVcdGltcG9ydCB7IERpc2NsYWltZXJQb3B1cCwgUG9wdXAgfSBmcm9tICdAL2ZlYXR1cmVzL3BvcHVwJztcbiAgICAxNlx0aW1wb3J0IHtcbiAgICAxN1x0ICBjcmVhdGVBdHRhY2htZW50V2l0aEZvcm1EYXRhLFxuICAgIDE4XHQgIEZlZWRiYWNrUmF0aW5nVHlwZSxcbiAgICAxOVx0ICBnZXRDaGF0Ym90Q29uZmlnLFxuICAgIDIwXHQgIGdldEZpbGVDb250ZW50LFxuICAgIDIxXHQgIGdldFVzZXJGcm9tTG9jYWxTdG9yYWdlLFxuICAgIDIyXHQgIEluY29taW5nSW5wdXQsXG4gICAgMjNcdCAgaXNTdHJlYW1BdmFpbGFibGVRdWVyeSxcbi4uLlxuICAgIDg3XHRcbiAgICA4OFx0ZXhwb3J0IHR5cGUgSUFjdGlvbiA9IHtcbiAgICA4OVx0ICBpZD86IHN0cmluZztcbiAgICA5MFx0ICBlbGVtZW50cz86IEFycmF5PHtcbiAgICA5MVx0ICAgIHR5cGU6IHN0cmluZztcbiAgICA5Mlx0ICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgOTNcdCAgfT47XG4gICAgOTRcdCAgbWFwcGluZz86IHtcbiAgICA5NVx0ICAgIGFwcHJvdmU6IHN0cmluZztcbiAgICA5Nlx0ICAgIHJlamVjdDogc3RyaW5nO1xuICAgIDk3XHQgICAgdG9vbENhbGxzOiBhbnlbXTtcbiAgICA5OFx0ICB9O1xuICAgIDk5XHR9O1xuICAgMTAwXHRcbiAgIDEwMVx0ZXhwb3J0IHR5cGUgRmlsZVVwbG9hZCA9IE9taXQ8RmlsZVByZXZpZXcsICdwcmV2aWV3Jz47XG4gICAxMDJcdFxuICAgMTAzXHRleHBvcnQgdHlwZSBNZXNzYWdlVHlwZSA9IHtcbiAgIDEwNFx0ICBtZXNzYWdlSWQ/OiBzdHJpbmc7XG4gICAxMDVcdCAgbWVzc2FnZTogc3RyaW5nO1xuICAgMTA2XHQgIHR5cGU6IG1lc3NhZ2VUeXBlO1xuICAgMTA3XHQgIHNvdXJjZURvY3VtZW50cz86IGFueTtcbiAgIDEwOFx0ICBmaWxlQW5ub3RhdGlvbnM/OiBhbnk7XG4gICAxMDlcdCAgZmlsZVVwbG9hZHM/OiBQYXJ0aWFsPEZpbGVVcGxvYWQ+W107XG4gICAxMTBcdCAgYXJ0aWZhY3RzPzogUGFydGlhbDxGaWxlVXBsb2FkPltdO1xuICAgMTExXHQgIGFnZW50UmVhc29uaW5nPzogSUFnZW50UmVhc29uaW5nW107XG4gICAxMTJcdCAgdXNlZFRvb2xzPzogYW55W107XG4gICAxMTNcdCAgYWN0aW9uPzogSUFjdGlvbiB8IG51bGw7XG4gICAxMTRcdCAgcmF0aW5nPzogRmVlZGJhY2tSYXRpbmdUeXBlO1xuICAgMTE1XHQgIGlkPzogc3RyaW5nO1xuICAgMTE2XHQgIGZvbGxvd1VwUHJvbXB0cz86IHN0cmluZztcbiAgIDExN1x0ICBkYXRlVGltZT86IHN0cmluZztcbiAgIDExOFx0fTtcbiAgIDExOVx0XG4gICAxMjBcdHR5cGUgSVVwbG9hZHMgPSB7XG4gICAxMjFcdCAgZGF0YTogRmlsZVByZXZpZXdEYXRhO1xuICAgMTIyXHQgIHR5cGU6IHN0cmluZztcbiAgIDEyM1x0ICBuYW1lOiBzdHJpbmc7XG4gICAxMjRcdCAgbWltZTogc3RyaW5nO1xuICAgMTI1XHQgIGZpbGU/OiBhbnk7XG4gICAxMjZcdH1bXTtcbiAgIDEyN1x0XG4gICAxMjhcdHR5cGUgb2JzZXJ2ZXJDb25maWdUeXBlID0gKGFjY2Vzc29yOiBzdHJpbmcgfCBib29sZWFuIHwgb2JqZWN0IHwgTWVzc2FnZVR5cGVbXSkgPT4gdm9pZDtcbiAgIDEyOVx0ZXhwb3J0IHR5cGUgb2JzZXJ2ZXJzQ29uZmlnVHlwZSA9IFJlY29yZDwnb2JzZXJ2ZVVzZXJJbnB1dCcgfCAnb2JzZXJ2ZUxvYWRpbmcnIHwgJ29ic2VydmVNZXNzYWdlcycsIG9ic2VydmVyQ29uZmlnVHlwZT47XG4gICAxMzBcdFxuICAgMTMxXHRleHBvcnQgdHlwZSBCb3RQcm9wcyA9IHtcbiAgIDEzMlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAxMzNcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgIDEzNFx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAxMzVcdCAgb25CZWZvcmVTZW5kPzogKG1lc3NhZ2U6IHN0cmluZywgYm9keTogSW5jb21pbmdJbnB1dCkgPT4gUHJvbWlzZTx7IG1lc3NhZ2U6IHN0cmluZzsgYm9keTogSW5jb21pbmdJbnB1dDsgY2FuY2VsPzogYm9vbGVhbiB9PiB8IHsgbWVzc2FnZTogc3RyaW5nOyBib2R5OiBJbmNvbWluZ0lucHV0OyBjYW5jZWw/OiBib29sZWFuIH07XG4gICAxMzZcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgIDEzN1x0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOFx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM5XHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgIDE0MFx0ICBib3RNZXNzYWdlPzogQm90TWVzc2FnZVRoZW1lO1xuICAgMTQxXHQgIHVzZXJNZXNzYWdlPzogVXNlck1lc3NhZ2VUaGVtZTtcbiAgIDE0Mlx0ICB0ZXh0SW5wdXQ/OiBUZXh0SW5wdXRUaGVtZTtcbiAgIDE0M1x0ICBmZWVkYmFjaz86IEZlZWRiYWNrVGhlbWU7XG4gICAxNDRcdCAgcG93ZXJlZEJ5VGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ1XHQgIGJhZGdlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ2XHQgIGJ1YmJsZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0N1x0ICBidWJibGVUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDhcdCAgc2hvd1RpdGxlPzogYm9vbGVhbjtcbiAgIDE0OVx0ICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47XG4gICAxNTBcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAxNTFcdCAgdGl0bGVBdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAxNTJcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAxNTNcdCAgaXNGdWxsUGFnZT86IGJvb2xlYW47XG4gICAxNTRcdCAgZm9vdGVyPzogRm9vdGVyVGhlbWU7XG4gICAxNTVcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgMTU2XHQgIG9ic2VydmVyc0NvbmZpZz86IG9ic2VydmVyc0NvbmZpZ1R5cGU7XG4gICAxNTdcdCAgc3RhcnRlclByb21wdHM/OiBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHsgcHJvbXB0OiBzdHJpbmcgfT47XG4gICAxNThcdCAgc3RhcnRlclByb21wdEZvbnRTaXplPzogbnVtYmVyO1xuICAgMTU5XHQgIGNsZWFyQ2hhdE9uUmVsb2FkPzogYm9vbGVhbjtcbiAgIDE2MFx0ICBkaXNjbGFpbWVyPzogRGlzY2xhaW1lclBvcFVwVGhlbWU7XG4gICAxNjFcdCAgZGF0ZVRpbWVUb2dnbGU/OiBEYXRlVGltZVRvZ2dsZVRoZW1lO1xuICAgMTYyXHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgMTYzXHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgMTY0XHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgMTY1XHQgIGlzVXNlRkFRPzogYm9vbGVhbjtcbiAgIDE2Nlx0ICBmaWxlUGF0aD86IHN0cmluZztcbiAgIDE2N1x0ICBzdWdnZXN0UXVlc3Rpb25zPzogc3RyaW5nO1xuICAgMTY4XHQgIGV4dGVybmFsRGF0YT86IHN0cmluZztcbiAgIDE2OVx0ICBjYWxsQmFja0Z1bmN0aW9uPzogKGU6IGFueSkgPT4gdm9pZDtcbiAgIDE3MFx0ICBjYWxsQmFja0ljb24/OiBzdHJpbmc7XG4gICAxNzFcdH07XG4gICAxNzJcdFxuICAgMTczXHRleHBvcnQgdHlwZSBMZWFkc0NvbmZpZyA9IHtcbiAgIDE3NFx0ICBzdGF0dXM6IGJvb2xlYW47XG4gICAxNzVcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAxNzZcdCAgbmFtZT86IGJvb2xlYW47XG4gICAxNzdcdCAgZW1haWw/OiBib29sZWFuO1xuICAgMTc4XHQgIHBob25lPzogYm9vbGVhbjtcbiAgIDE3OVx0ICBzdWNjZXNzTWVzc2FnZT86IHN0cmluZztcbiAgIDE4MFx0fTtcbiAgIDE4MVx0XG4gICAxODJcdGNvbnN0IGRlZmF1bHRXZWxjb21lTWVzc2FnZSA9ICdYaW4gY2jDoG8gdMO0aSBjw7MgdGjhu4MgZ2nDunAgZ8OsIGNobyBi4bqhbj8nO1xuICAgMTgzXHRjb25zdCBzdGF0dXNNc2cgPSB7XG4gICAxODRcdCAgMzogJ8SQYW5nIHjhu60gbMO9Li4uJyxcbiAgIDE4NVx0ICAxMDogJ8SQYW5nIHThuqNpIGThu68gbGnhu4d1LCB2dWkgbMOybmcgxJHhu6NpLi4uJyxcbiAgIDE4Nlx0ICA0MDogJ1hpbiBs4buXaSwgaGnhu4duIHThuqFpIGjhu4cgdGjhu5FuZyDEkWFuZyBxdcOhIHThuqNpLCB2dWkgbMOybmcgdGjhu60gbOG6oWkgc2F1LicsXG4gICAxODdcdCAgNTA6ICcnLFxuICAgMTg4XHR9O1xuICAgMTg5XHRcbiAgIDE5MFx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjZmZmZmZmJztcbiAgIDE5MVx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjMzAzMjM1JztcbiAgIDE5Mlx0XG4gICAxOTNcdGV4cG9ydCBjb25zdCBCb3QgPSAoYm90UHJvcHM6IEJvdFByb3BzICYgeyBjbGFzcz86IHN0cmluZyB9KSA9PiB7XG4gICAxOTRcdCAgLy8gc2V0IGEgZGVmYXVsdCB2YWx1ZSBmb3Igc2hvd1RpdGxlIGlmIG5vdCBzZXQgYW5kIG1lcmdlIHdpdGggb3RoZXIgcHJvcHNcbiAgIDE5NVx0XG4gICAxOTZcdCAgY29uc3QgcHJvcHMgPSBtZXJnZVByb3BzKHsgc2hvd1RpdGxlOiB0cnVlIH0sIGJvdFByb3BzKTtcbiAgIDE5N1x0ICBsZXQgY2hhdENvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAxOThcdCAgbGV0IGJvdHRvbVNwYWNlcjogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAxOTlcdCAgbGV0IGJvdENvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAyMDBcdCAgbGV0IGludGVydmFsQ3VycmVudE1zZzogYW55O1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL1NvdXJjZUJ1YmJsZS50c3hcbiAgICAgMVx0dHlwZSBQcm9wcyA9IHtcbiAgICAgMlx0ICBwYWdlQ29udGVudDogc3RyaW5nO1xuICAgICAzXHQgIG1ldGFkYXRhOiBvYmplY3Q7XG4gICAgIDRcdCAgb25Tb3VyY2VDbGljaz86ICgpID0+IHZvaWQ7XG4gICAgIDVcdCAgc3JjPzogYW55O1xuICAgICA2XHR9O1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL0Z1bGwudHN4XG4gICAgIDFcdGltcG9ydCBzdHlsZXMgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2luZGV4LmNzcyc7XG4gICAgIDJcdGltcG9ydCB7IEJvdCwgQm90UHJvcHMgfSBmcm9tICdAL2NvbXBvbmVudHMvQm90JztcbiAgICAgM1x0aW1wb3J0IHsgQnViYmxlUGFyYW1zIH0gZnJvbSAnQC9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgICA0XHRpbXBvcnQgeyBjcmVhdGVTaWduYWwsIG9uQ2xlYW51cCwgb25Nb3VudCwgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgNVx0XG4gICAgIDZcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAgN1x0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgIDhcdFxuICAgICA5XHRleHBvcnQgdHlwZSBGdWxsUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcztcbi4uLlxuUGF0aDogc3JjL2luZGV4LnRzXG4gICAgIDFcdGV4cG9ydCB0eXBlIHsgQm90UHJvcHMgfSBmcm9tICcuL2NvbXBvbmVudHMvQm90JztcbiAgICAgMlx0ZXhwb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlJztcbi4uLlxuUGF0aDogc3JjL2luZGV4LnRzXG4gICAgIDFcdGV4cG9ydCB7IEZ1bGxQYWdlQ2hhdCB9IGZyb20gJy4vRnVsbFBhZ2VDaGF0J1xuICAgICAyXHRleHBvcnQgey4uLiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVZNQ203V2NkcmVGZzdWQW8yOUNkQ0gifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjE2LCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA0OjEzLjEzMFoiLCJyZXNwb25zZV90ZXh0IjoiUGVyZmVjdCEgTm93IEkgY2FuIHNlZSB0aGF0IHRoZSBgQnViYmxlUHJvcHNgIGlzIGRlZmluZWQgaW4gYHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUudHN4YCBhcyBgZXhwb3J0IHR5cGUgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcztgLiBTaW5jZSBJJ3ZlIGFscmVhZHkgdXBkYXRlZCB0aGUgYEJvdFByb3BzYCBpbnRlcmZhY2UsIHRoZSBgQnViYmxlUHJvcHNgIHdpbGwgYXV0b21hdGljYWxseSBpbmNsdWRlIHRoZSBuZXcgYG9uQmVmb3JlU2VuZGAgcHJvcC5cblxuTm93IEkgbmVlZCB0byB1cGRhdGUgdGhlIEJ1YmJsZSBjb21wb25lbnQgdG8gcGFzcyB0aHJvdWdoIHRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIHRvIHRoZSBCb3QgY29tcG9uZW50OlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjFhZDhmYzUwLTQ0YjQtNDdiYi1iNWNiLTUxZTNhNjllNzJjNiIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVRlaFFXREM4aWpaYVFlVmRKRFNibzMiLCJ0b29sX25hbWUiOiJzdHItcmVwbGFjZS1lZGl0b3IiLCJpbnB1dF9qc29uIjoie1wiY29tbWFuZFwiOiBcInN0cl9yZXBsYWNlXCIsIFwicGF0aFwiOiBcInNyYy9mZWF0dXJlcy9mdWxsL2NvbXBvbmVudHMvRnVsbC50c3hcIiwgXCJpbnN0cnVjdGlvbl9yZW1pbmRlclwiOiBcIkFMV0FZUyBCUkVBSyBET1dOIEVESVRTIElOVE8gU01BTExFUiBDSFVOS1MgT0YgQVQgTU9TVCAyMDAgTElORVMgRUFDSC5cIiwgXCJvbGRfc3RyXCI6IFwiICAgICAgICAgICAgY2hhdGZsb3dpZD17cHJvcHMuY2hhdGZsb3dpZH1cXG4gICAgICAgICAgICBjaGF0Zmxvd0NvbmZpZz17cHJvcHMuY2hhdGZsb3dDb25maWd9XFxuICAgICAgICAgICAgYXBpSG9zdD17cHJvcHMuYXBpSG9zdH1cXG4gICAgICAgICAgICBvblJlcXVlc3Q9e3Byb3BzLm9uUmVxdWVzdH1cIiwgXCJvbGRfc3RyX3N0YXJ0X2xpbmVfbnVtYmVyXCI6IDgxLCBcIm9sZF9zdHJfZW5kX2xpbmVfbnVtYmVyXCI6IDg0LCBcIm5ld19zdHJcIjogXCIgICAgICAgICAgICBjaGF0Zmxvd2lkPXtwcm9wcy5jaGF0Zmxvd2lkfVxcbiAgICAgICAgICAgIGNoYXRmbG93Q29uZmlnPXtwcm9wcy5jaGF0Zmxvd0NvbmZpZ31cXG4gICAgICAgICAgICBhcGlIb3N0PXtwcm9wcy5hcGlIb3N0fVxcbiAgICAgICAgICAgIG9uUmVxdWVzdD17cHJvcHMub25SZXF1ZXN0fVxcbiAgICAgICAgICAgIG9uQmVmb3JlU2VuZD17cHJvcHMub25CZWZvcmVTZW5kfVwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6Ik5vdyBJIG5lZWQgdG8gdXBkYXRlIHRoZSBGdWxsIGNvbXBvbmVudCBhcyB3ZWxsOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiU3VjY2Vzc2Z1bGx5IGVkaXRlZCB0aGUgZmlsZSBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlLnRzeC5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzBdOlxuUmVwbGFjZW1lbnQgc3VjY2Vzc2Z1bC5cbkVkaXRlZCBzZWN0aW9uIGFmdGVyIElERSBhdXRvLWZvcm1hdHRpbmcgd2FzIGFwcGxpZWQ6XG4gICAxNDJcdCAgICAgICAgICAgICAgZm9vdGVyPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZm9vdGVyfVxuICAgMTQzXHQgICAgICAgICAgICAgIHNvdXJjZURvY3NUaXRsZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnNvdXJjZURvY3NUaXRsZX1cbiAgIDE0NFx0ICAgICAgICAgICAgICBzdGFydGVyUHJvbXB0cz17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnN0YXJ0ZXJQcm9tcHRzfVxuICAgMTQ1XHQgICAgICAgICAgICAgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnN0YXJ0ZXJQcm9tcHRGb250U2l6ZX1cbiAgIDE0Nlx0ICAgICAgICAgICAgICBjaGF0Zmxvd2lkPXtwcm9wcy5jaGF0Zmxvd2lkfVxuICAgMTQ3XHQgICAgICAgICAgICAgIGNoYXRmbG93Q29uZmlnPXtwcm9wcy5jaGF0Zmxvd0NvbmZpZ31cbiAgIDE0OFx0ICAgICAgICAgICAgICBhcGlIb3N0PXtwcm9wcy5hcGlIb3N0fVxuICAgMTQ5XHQgICAgICAgICAgICAgIG9uUmVxdWVzdD17cHJvcHMub25SZXF1ZXN0fVxuICAgMTUwXHQgICAgICAgICAgICAgIG9uQmVmb3JlU2VuZD17cHJvcHMub25CZWZvcmVTZW5kfVxuICAgMTUxXHQgICAgICAgICAgICAgIG9ic2VydmVyc0NvbmZpZz17cHJvcHMub2JzZXJ2ZXJzQ29uZmlnfVxuICAgMTUyXHQgICAgICAgICAgICAgIGNsZWFyQ2hhdE9uUmVsb2FkPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uY2xlYXJDaGF0T25SZWxvYWR9XG4gICAxNTNcdCAgICAgICAgICAgICAgZGlzY2xhaW1lcj17YnViYmxlUHJvcHMudGhlbWU/LmRpc2NsYWltZXJ9XG4gICAxNTRcdCAgICAgICAgICAgICAgZGF0ZVRpbWVUb2dnbGU9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5kYXRlVGltZVRvZ2dsZX1cblxuUmV2aWV3IHRoZSBjaGFuZ2VzIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUgYXMgZXhwZWN0ZWQgKGNvcnJlY3QgaW5kZW50YXRpb24sIG5vIGR1cGxpY2F0ZSBsaW5lcywgZXRjKS5cbkVkaXQgdGhlIGZpbGUgYWdhaW4gaWYgbmVjZXNzYXJ5LlxuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxU3BYQVB5WUxBenRkUjZGVUV2OUJjOSJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTYsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDQ6MjIuMzAzWiIsInJlc3BvbnNlX3RleHQiOiJOb3cgSSBuZWVkIHRvIHVwZGF0ZSB0aGUgRnVsbCBjb21wb25lbnQgYXMgd2VsbDpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiIzYzU2NWM4MC02ZjNjLTRmNzYtYTgzZS04NmIwMDM4YzI3YjMiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFIUUdjYUJja2ZQandUYVdWZ1VaRWFWIiwidG9vbF9uYW1lIjoic3RyLXJlcGxhY2UtZWRpdG9yIiwiaW5wdXRfanNvbiI6IntcImNvbW1hbmRcIjogXCJzdHJfcmVwbGFjZVwiLCBcInBhdGhcIjogXCJzcmMvY29uc3RhbnRzLnRzXCIsIFwiaW5zdHJ1Y3Rpb25fcmVtaW5kZXJcIjogXCJBTFdBWVMgQlJFQUsgRE9XTiBFRElUUyBJTlRPIFNNQUxMRVIgQ0hVTktTIE9GIEFUIE1PU1QgMjAwIExJTkVTIEVBQ0guXCIsIFwib2xkX3N0clwiOiBcIiAgLy8gQVBJIGNvbmZpZ3VyYXRpb25cXG4gIGFwaUhvc3Q6IHVuZGVmaW5lZCxcXG4gIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxcbiAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcIiwgXCJvbGRfc3RyX3N0YXJ0X2xpbmVfbnVtYmVyXCI6IDU3LCBcIm9sZF9zdHJfZW5kX2xpbmVfbnVtYmVyXCI6IDYwLCBcIm5ld19zdHJcIjogXCIgIC8vIEFQSSBjb25maWd1cmF0aW9uXFxuICBhcGlIb3N0OiB1bmRlZmluZWQsXFxuICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcXG4gIG9uQmVmb3JlU2VuZDogdW5kZWZpbmVkLFxcbiAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcIn0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJOb3cgSSBuZWVkIHRvIHVwZGF0ZSB0aGUgY29uc3RhbnRzIGZpbGUgdG8gaW5jbHVkZSB0aGUgbmV3IHByb3AgaW4gdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbjpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IlN1Y2Nlc3NmdWxseSBlZGl0ZWQgdGhlIGZpbGUgc3JjL2ZlYXR1cmVzL2Z1bGwvY29tcG9uZW50cy9GdWxsLnRzeC5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzBdOlxuUmVwbGFjZW1lbnQgc3VjY2Vzc2Z1bC5cbkVkaXRlZCBzZWN0aW9uIGFmdGVyIElERSBhdXRvLWZvcm1hdHRpbmcgd2FzIGFwcGxpZWQ6XG4gICAgNzdcdCAgICAgICAgICAgIGZlZWRiYWNrPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZmVlZGJhY2t9XG4gICAgNzhcdCAgICAgICAgICAgIGZvbnRTaXplPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZm9udFNpemV9XG4gICAgNzlcdCAgICAgICAgICAgIGZvb3Rlcj17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmZvb3Rlcn1cbiAgICA4MFx0ICAgICAgICAgICAgc3RhcnRlclByb21wdHM9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zdGFydGVyUHJvbXB0c31cbiAgICA4MVx0ICAgICAgICAgICAgY2hhdGZsb3dpZD17cHJvcHMuY2hhdGZsb3dpZH1cbiAgICA4Mlx0ICAgICAgICAgICAgY2hhdGZsb3dDb25maWc9e3Byb3BzLmNoYXRmbG93Q29uZmlnfVxuICAgIDgzXHQgICAgICAgICAgICBhcGlIb3N0PXtwcm9wcy5hcGlIb3N0fVxuICAgIDg0XHQgICAgICAgICAgICBvblJlcXVlc3Q9e3Byb3BzLm9uUmVxdWVzdH1cbiAgICA4NVx0ICAgICAgICAgICAgb25CZWZvcmVTZW5kPXtwcm9wcy5vbkJlZm9yZVNlbmR9XG4gICAgODZcdCAgICAgICAgICAgIGlzRnVsbFBhZ2U9e3RydWV9XG4gICAgODdcdCAgICAgICAgICAgIG9ic2VydmVyc0NvbmZpZz17cHJvcHMub2JzZXJ2ZXJzQ29uZmlnfVxuICAgIDg4XHQgICAgICAgICAgICBzdGFydGVyUHJvbXB0Rm9udFNpemU9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zdGFydGVyUHJvbXB0Rm9udFNpemV9XG4gICAgODlcdCAgICAgICAgICAgIGNsZWFyQ2hhdE9uUmVsb2FkPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uY2xlYXJDaGF0T25SZWxvYWR9XG5cblJldmlldyB0aGUgY2hhbmdlcyBhbmQgbWFrZSBzdXJlIHRoZXkgYXJlIGFzIGV4cGVjdGVkIChjb3JyZWN0IGluZGVudGF0aW9uLCBubyBkdXBsaWNhdGUgbGluZXMsIGV0YykuXG5FZGl0IHRoZSBmaWxlIGFnYWluIGlmIG5lY2Vzc2FyeS5cbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVRlaFFXREM4aWpaYVFlVmRKRFNibzMifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjE2LCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA0OjI5Ljc2OFoiLCJyZXNwb25zZV90ZXh0IjoiTm93IEkgbmVlZCB0byB1cGRhdGUgdGhlIGNvbnN0YW50cyBmaWxlIHRvIGluY2x1ZGUgdGhlIG5ldyBwcm9wIGluIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb246XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiMjBmZjc5NjAtM2Q5Yy00OGE0LWI1OTMtNzViM2E2YWUyZjMyIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxSFd3WHozbnVoZ3F1UU5pTHgyZEptMyIsInRvb2xfbmFtZSI6InZpZXciLCJpbnB1dF9qc29uIjoie1wicGF0aFwiOiBcInNyYy9jb25zdGFudHMudHNcIiwgXCJ0eXBlXCI6IFwiZmlsZVwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IkxldCBtZSBjaGVjayB0aGUgY3VycmVudCBjb25zdGFudHMgZmlsZSBzdHJ1Y3R1cmU6XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJGYWlsZWQgdG8gZWRpdCB0aGUgZmlsZSBzcmMvY29uc3RhbnRzLnRzLiBTZWUgYmVsb3cgZm9yIGRldGFpbHMuXG5SZXN1bHQgZm9yIHN0cl9yZXBsYWNlIGZvciBlbnRyeSB3aXRoIGluZGV4IFswXTpcbk5vIHJlcGxhY2VtZW50IHdhcyBwZXJmb3JtZWQsIG9sZFN0ciBkaWQgbm90IGFwcGVhciB2ZXJiYXRpbSBpbiBzcmMvY29uc3RhbnRzLnRzLlxuVGhlIGNvbnRlbnQgaW4gdGhlIHNwZWNpZmllZCByZWdpb24gaXM6XG4gICAgNTNcdFxuXG5EaWZmIGJldHdlZW4gb2xkU3RyIGFuZCB0aGUgc3BlY2lmaWVkIHJlZ2lvbiBpczpcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi0tLSBvbGRTdHJcbisrKyByZWdpb25Db250ZW50XG5AQCAtMSw0ICsxLDEgQEBcbi0gIC8vIEFQSSBjb25maWd1cmF0aW9uXG4tICBhcGlIb3N0OiB1bmRlZmluZWQsXG4tICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbi0gIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4rXG5cblxuRml4IGZhaWxlZCBzdHJfcmVwbGFjZSBlbnRyaWVzIGFjY29yZGluZ2x5IGFuZCB0cnkgYWdhaW4uXG4iLCJpc19lcnJvciI6dHJ1ZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUhRR2NhQmNrZlBqd1RhV1ZnVVpFYVYifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjE2LCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA0OjM4LjQ4OFoiLCJyZXNwb25zZV90ZXh0IjoiTGV0IG1lIGNoZWNrIHRoZSBjdXJyZW50IGNvbnN0YW50cyBmaWxlIHN0cnVjdHVyZTpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiIxNGI2NjdmMC0yMzU5LTQwOWQtYmNkMi04NjkwOGFhMTUxOWIiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFZQmdRbXRwb3VxYzVzUE1panpCZ1lBIiwidG9vbF9uYW1lIjoic3RyLXJlcGxhY2UtZWRpdG9yIiwiaW5wdXRfanNvbiI6IntcImNvbW1hbmRcIjogXCJzdHJfcmVwbGFjZVwiLCBcInBhdGhcIjogXCJzcmMvY29uc3RhbnRzLnRzXCIsIFwiaW5zdHJ1Y3Rpb25fcmVtaW5kZXJcIjogXCJBTFdBWVMgQlJFQUsgRE9XTiBFRElUUyBJTlRPIFNNQUxMRVIgQ0hVTktTIE9GIEFUIE1PU1QgMjAwIExJTkVTIEVBQ0guXCIsIFwib2xkX3N0clwiOiBcIiAgYXBpSG9zdDogdW5kZWZpbmVkLFxcbiAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcXG4gIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxcbiAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcIiwgXCJvbGRfc3RyX3N0YXJ0X2xpbmVfbnVtYmVyXCI6IDUsIFwib2xkX3N0cl9lbmRfbGluZV9udW1iZXJcIjogOCwgXCJuZXdfc3RyXCI6IFwiICBhcGlIb3N0OiB1bmRlZmluZWQsXFxuICBjaGF0d29vdFVybDogdW5kZWZpbmVkLFxcbiAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXFxuICBvbkJlZm9yZVNlbmQ6IHVuZGVmaW5lZCxcXG4gIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiSSBzZWUgdGhlIGNvbnN0YW50cyBmaWxlIGhhcyBiZWVuIHNpbXBsaWZpZWQuIExldCBtZSBhZGQgdGhlIGBvbkJlZm9yZVNlbmRgIHByb3A6XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJIZXJlJ3MgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGBjYXQgLW5gIG9uIHNyYy9jb25zdGFudHMudHM6XG4gICAgIDFcdGltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZSc7XG4gICAgIDJcdFxuICAgICAzXHRleHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgICAgNFx0ICBjaGF0Zmxvd2lkOiAnJyxcbiAgICAgNVx0ICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gICAgIDZcdCAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcbiAgICAgN1x0ICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgICAgOFx0ICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICAgICA5XHQgIHRoZW1lOiB1bmRlZmluZWQsXG4gICAgMTBcdCAgb2JzZXJ2ZXJzQ29uZmlnOiB1bmRlZmluZWQsXG4gICAgMTFcdCAgcm9vbUlkczoge30sXG4gICAgMTJcdCAgaXNVc2VGQVE6IHVuZGVmaW5lZCxcbiAgICAxM1x0ICBmaWxlUGF0aDogJycsXG4gICAgMTRcdCAgc3VnZ2VzdFF1ZXN0aW9uczogJycsXG4gICAgMTVcdCAgZXh0ZXJuYWxEYXRhOiAnJyxcbiAgICAxNlx0ICBjYWxsQmFja0ljb246ICcnLFxuICAgIDE3XHQgIGNhbGxCYWNrRnVuY3Rpb246IHVuZGVmaW5lZCxcbiAgICAxOFx0fTtcbiAgICAxOVx0XG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiAxOVxuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxSFd3WHozbnVoZ3F1UU5pTHgyZEptMyJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTYsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDQ6NDMuNjc2WiIsInJlc3BvbnNlX3RleHQiOiJJIHNlZSB0aGUgY29uc3RhbnRzIGZpbGUgaGFzIGJlZW4gc2ltcGxpZmllZC4gTGV0IG1lIGFkZCB0aGUgYG9uQmVmb3JlU2VuZGAgcHJvcDpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiJiYzBlMzRjYy1kMDgwLTQ0MGYtYmQxZi0yZDBkNTUwZjQyZTkiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFQOUExMnQ2Q1ExcEtwZFZvRTM2Z3dtIiwidG9vbF9uYW1lIjoic3RyLXJlcGxhY2UtZWRpdG9yIiwiaW5wdXRfanNvbiI6IntcImNvbW1hbmRcIjogXCJzdHJfcmVwbGFjZVwiLCBcInBhdGhcIjogXCJzcmMvY29tcG9uZW50cy9Cb3QudHN4XCIsIFwiaW5zdHJ1Y3Rpb25fcmVtaW5kZXJcIjogXCJBTFdBWVMgQlJFQUsgRE9XTiBFRElUUyBJTlRPIFNNQUxMRVIgQ0hVTktTIE9GIEFUIE1PU1QgMjAwIExJTkVTIEVBQ0guXCIsIFwib2xkX3N0clwiOiBcIiAgICAvLyBDYWxsIG9uQmVmb3JlU2VuZCBjYWxsYmFjayBpZiBwcm92aWRlZFxcbiAgICBpZiAocHJvcHMub25CZWZvcmVTZW5kKSB7XFxuICAgICAgdHJ5IHtcXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb3BzLm9uQmVmb3JlU2VuZCh2YWx1ZSwgYm9keSk7XFxuICAgICAgICBcXG4gICAgICAgIC8vIElmIHRoZSBjYWxsYmFjayByZXR1cm5zIGNhbmNlbDogdHJ1ZSwgc3RvcCB0aGUgc3VibWlzc2lvblxcbiAgICAgICAgaWYgKHJlc3VsdC5jYW5jZWwpIHtcXG4gICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XFxuICAgICAgICAgIHNldERpc2FibGVJbnB1dChmYWxzZSk7XFxuICAgICAgICAgIHJldHVybjtcXG4gICAgICAgIH1cXG4gICAgICAgIFxcbiAgICAgICAgLy8gVXBkYXRlIHRoZSBtZXNzYWdlIGFuZCBib2R5IHdpdGggdGhlIG1vZGlmaWVkIHZhbHVlc1xcbiAgICAgICAgdmFsdWUgPSByZXN1bHQubWVzc2FnZTtcXG4gICAgICAgIE9iamVjdC5hc3NpZ24oYm9keSwgcmVzdWx0LmJvZHkpO1xcbiAgICAgICAgXFxuICAgICAgICAvLyBVcGRhdGUgdGhlIHVzZXIgbWVzc2FnZSBpbiB0aGUgVUkgaWYgaXQgd2FzIG1vZGlmaWVkXFxuICAgICAgICBpZiAocmVzdWx0Lm1lc3NhZ2UgIT09IHZhbHVlKSB7XFxuICAgICAgICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcXG4gICAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XFxuICAgICAgICAgICAgaWYgKGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnR5cGUgPT09ICd1c2VyTWVzc2FnZScpIHtcXG4gICAgICAgICAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLm1lc3NhZ2UgPSByZXN1bHQubWVzc2FnZTtcXG4gICAgICAgICAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xcbiAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gb25CZWZvcmVTZW5kIGNhbGxiYWNrOicsIGVycm9yKTtcXG4gICAgICAgIGhhbmRsZUVycm9yKCdFcnJvciBwcm9jZXNzaW5nIG1lc3NhZ2UgYmVmb3JlIHNlbmQnKTtcXG4gICAgICAgIHJldHVybjtcXG4gICAgICB9XFxuICAgIH1cIiwgXCJvbGRfc3RyX3N0YXJ0X2xpbmVfbnVtYmVyXCI6IDg0NywgXCJvbGRfc3RyX2VuZF9saW5lX251bWJlclwiOiA4NzksIFwibmV3X3N0clwiOiBcIiAgICAvLyBDYWxsIG9uQmVmb3JlU2VuZCBjYWxsYmFjayBpZiBwcm92aWRlZFxcbiAgICBpZiAocHJvcHMub25CZWZvcmVTZW5kKSB7XFxuICAgICAgdHJ5IHtcXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsTWVzc2FnZSA9IHZhbHVlO1xcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvcHMub25CZWZvcmVTZW5kKHZhbHVlLCBib2R5KTtcXG4gICAgICAgIFxcbiAgICAgICAgLy8gSWYgdGhlIGNhbGxiYWNrIHJldHVybnMgY2FuY2VsOiB0cnVlLCBzdG9wIHRoZSBzdWJtaXNzaW9uXFxuICAgICAgICBpZiAocmVzdWx0LmNhbmNlbCkge1xcbiAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcXG4gICAgICAgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcXG4gICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgfVxcbiAgICAgICAgXFxuICAgICAgICAvLyBVcGRhdGUgdGhlIG1lc3NhZ2UgYW5kIGJvZHkgd2l0aCB0aGUgbW9kaWZpZWQgdmFsdWVzXFxuICAgICAgICB2YWx1ZSA9IHJlc3VsdC5tZXNzYWdlO1xcbiAgICAgICAgT2JqZWN0LmFzc2lnbihib2R5LCByZXN1bHQuYm9keSk7XFxuICAgICAgICBcXG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgdXNlciBtZXNzYWdlIGluIHRoZSBVSSBpZiBpdCB3YXMgbW9kaWZpZWRcXG4gICAgICAgIGlmIChyZXN1bHQubWVzc2FnZSAhPT0gb3JpZ2luYWxNZXNzYWdlKSB7XFxuICAgICAgICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcXG4gICAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XFxuICAgICAgICAgICAgaWYgKGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnR5cGUgPT09ICd1c2VyTWVzc2FnZScpIHtcXG4gICAgICAgICAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLm1lc3NhZ2UgPSByZXN1bHQubWVzc2FnZTtcXG4gICAgICAgICAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xcbiAgICAgICAgICB9KTtcXG4gICAgICAgIH1cXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gb25CZWZvcmVTZW5kIGNhbGxiYWNrOicsIGVycm9yKTtcXG4gICAgICAgIGhhbmRsZUVycm9yKCdFcnJvciBwcm9jZXNzaW5nIG1lc3NhZ2UgYmVmb3JlIHNlbmQnKTtcXG4gICAgICAgIHJldHVybjtcXG4gICAgICB9XFxuICAgIH1cIn0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJOb3cgSSBuZWVkIHRvIGZpeCBhIHNtYWxsIGlzc3VlIGluIG15IGltcGxlbWVudGF0aW9uLiBJIG5vdGljZWQgdGhhdCBJJ20gY29tcGFyaW5nIGByZXN1bHQubWVzc2FnZSAhPT0gdmFsdWVgIGJ1dCBgdmFsdWVgIG1pZ2h0IGhhdmUgYmVlbiB1cGRhdGVkIGFscmVhZHkuIExldCBtZSBmaXggdGhpczpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IlN1Y2Nlc3NmdWxseSBlZGl0ZWQgdGhlIGZpbGUgc3JjL2NvbnN0YW50cy50cy5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzBdOlxuUmVwbGFjZW1lbnQgc3VjY2Vzc2Z1bC5cbkVkaXRlZCBzZWN0aW9uIGFmdGVyIElERSBhdXRvLWZvcm1hdHRpbmcgd2FzIGFwcGxpZWQ6XG4gICAgIDFcdGltcG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZSc7XG4gICAgIDJcdFxuICAgICAzXHRleHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgICAgNFx0ICBjaGF0Zmxvd2lkOiAnJyxcbiAgICAgNVx0ICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gICAgIDZcdCAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcbiAgICAgN1x0ICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgICAgOFx0ICBvbkJlZm9yZVNlbmQ6IHVuZGVmaW5lZCxcbiAgICAgOVx0ICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDEwXHQgIHRoZW1lOiB1bmRlZmluZWQsXG4gICAgMTFcdCAgb2JzZXJ2ZXJzQ29uZmlnOiB1bmRlZmluZWQsXG4gICAgMTJcdCAgcm9vbUlkczoge30sXG4gICAgMTNcdCAgaXNVc2VGQVE6IHVuZGVmaW5lZCxcblxuUmV2aWV3IHRoZSBjaGFuZ2VzIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUgYXMgZXhwZWN0ZWQgKGNvcnJlY3QgaW5kZW50YXRpb24sIG5vIGR1cGxpY2F0ZSBsaW5lcywgZXRjKS5cbkVkaXQgdGhlIGZpbGUgYWdhaW4gaWYgbmVjZXNzYXJ5LlxuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxWUJnUW10cG91cWM1c1BNaWp6QmdZQSJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTYsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDQ6NTAuNjI0WiIsInJlc3BvbnNlX3RleHQiOiJOb3cgSSBuZWVkIHRvIGZpeCBhIHNtYWxsIGlzc3VlIGluIG15IGltcGxlbWVudGF0aW9uLiBJIG5vdGljZWQgdGhhdCBJJ20gY29tcGFyaW5nIGByZXN1bHQubWVzc2FnZSAhPT0gdmFsdWVgIGJ1dCBgdmFsdWVgIG1pZ2h0IGhhdmUgYmVlbiB1cGRhdGVkIGFscmVhZHkuIExldCBtZSBmaXggdGhpczpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiIxOTc4YjIyZS04NzQwLTQ1NjUtOGRhYS04ZDk5N2JjYzk2ZWYiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFWZ3BqU0FjUllYdDZSVnlXVGJaTGFkIiwidG9vbF9uYW1lIjoibGF1bmNoLXByb2Nlc3MiLCJpbnB1dF9qc29uIjoie1wiY29tbWFuZFwiOiBcImJ1biAtLWJ1biB0c2MgLS1ub0VtaXQgLS1za2lwTGliQ2hlY2tcIiwgXCJ3YWl0XCI6IHRydWUsIFwibWF4X3dhaXRfc2Vjb25kc1wiOiAzMH0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJOb3cgbGV0IG1lIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgVHlwZVNjcmlwdCBjb21waWxhdGlvbiBlcnJvcnMgYnkgcnVubmluZyB0aGUgVHlwZVNjcmlwdCBjb21waWxlcjpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IlN1Y2Nlc3NmdWxseSBlZGl0ZWQgdGhlIGZpbGUgc3JjL2NvbXBvbmVudHMvQm90LnRzeC5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzBdOlxuUmVwbGFjZW1lbnQgc3VjY2Vzc2Z1bC5cbkVkaXRlZCBzZWN0aW9uIGFmdGVyIElERSBhdXRvLWZvcm1hdHRpbmcgd2FzIGFwcGxpZWQ6XG4gICA4NDNcdCAgICBpZiAobGVhZEVtYWlsKCkpIGJvZHkubGVhZEVtYWlsID0gbGVhZEVtYWlsKCk7XG4gICA4NDRcdFxuICAgODQ1XHQgICAgaWYgKGFjdGlvbikgYm9keS5hY3Rpb24gPSBhY3Rpb247XG4gICA4NDZcdFxuICAgODQ3XHQgICAgLy8gQ2FsbCBvbkJlZm9yZVNlbmQgY2FsbGJhY2sgaWYgcHJvdmlkZWRcbiAgIDg0OFx0ICAgIGlmIChwcm9wcy5vbkJlZm9yZVNlbmQpIHtcbiAgIDg0OVx0ICAgICAgdHJ5IHtcbiAgIDg1MFx0ICAgICAgICBjb25zdCBvcmlnaW5hbE1lc3NhZ2UgPSB2YWx1ZTtcbiAgIDg1MVx0ICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9wcy5vbkJlZm9yZVNlbmQodmFsdWUsIGJvZHkpO1xuICAgODUyXHRcbiAgIDg1M1x0ICAgICAgICAvLyBJZiB0aGUgY2FsbGJhY2sgcmV0dXJucyBjYW5jZWw6IHRydWUsIHN0b3AgdGhlIHN1Ym1pc3Npb25cbiAgIDg1NFx0ICAgICAgICBpZiAocmVzdWx0LmNhbmNlbCkge1xuICAgODU1XHQgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICA4NTZcdCAgICAgICAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgODU3XHQgICAgICAgICAgcmV0dXJuO1xuICAgODU4XHQgICAgICAgIH1cbiAgIDg1OVx0XG4gICA4NjBcdCAgICAgICAgLy8gVXBkYXRlIHRoZSBtZXNzYWdlIGFuZCBib2R5IHdpdGggdGhlIG1vZGlmaWVkIHZhbHVlc1xuICAgODYxXHQgICAgICAgIHZhbHVlID0gcmVzdWx0Lm1lc3NhZ2U7XG4gICA4NjJcdCAgICAgICAgT2JqZWN0LmFzc2lnbihib2R5LCByZXN1bHQuYm9keSk7XG4gICA4NjNcdFxuICAgODY0XHQgICAgICAgIC8vIFVwZGF0ZSB0aGUgdXNlciBtZXNzYWdlIGluIHRoZSBVSSBpZiBpdCB3YXMgbW9kaWZpZWRcbiAgIDg2NVx0ICAgICAgICBpZiAocmVzdWx0Lm1lc3NhZ2UgIT09IG9yaWdpbmFsTWVzc2FnZSkge1xuICAgODY2XHQgICAgICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgODY3XHQgICAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA4NjhcdCAgICAgICAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSB7XG4gICA4NjlcdCAgICAgICAgICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0ubWVzc2FnZSA9IHJlc3VsdC5tZXNzYWdlO1xuICAgODcwXHQgICAgICAgICAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDg3MVx0ICAgICAgICAgICAgfVxuICAgODcyXHQgICAgICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA4NzNcdCAgICAgICAgICB9KTtcbiAgIDg3NFx0ICAgICAgICB9XG4gICA4NzVcdCAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICA4NzZcdCAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gb25CZWZvcmVTZW5kIGNhbGxiYWNrOicsIGVycm9yKTtcbiAgIDg3N1x0ICAgICAgICBoYW5kbGVFcnJvcignRXJyb3IgcHJvY2Vzc2luZyBtZXNzYWdlIGJlZm9yZSBzZW5kJyk7XG4gICA4NzhcdCAgICAgICAgcmV0dXJuO1xuICAgODc5XHQgICAgICB9XG4gICA4ODBcdCAgICB9XG4gICA4ODFcdFxuICAgODgyXHQgICAgLy8gQ2hlY2sgbmV0d29yayBzdGF0dXMgYmVmb3JlIG1ha2luZyB0aGUgcmVxdWVzdFxuICAgODgzXHQgICAgaWYgKCFuYXZpZ2F0b3Iub25MaW5lKSB7XG4gICA4ODRcdCAgICAgIHNldElzTmV0d29ya0Vycm9yKHRydWUpO1xuXG5SZXZpZXcgdGhlIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhcyBleHBlY3RlZCAoY29ycmVjdCBpbmRlbnRhdGlvbiwgbm8gZHVwbGljYXRlIGxpbmVzLCBldGMpLlxuRWRpdCB0aGUgZmlsZSBhZ2FpbiBpZiBuZWNlc3NhcnkuXG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFQOUExMnQ2Q1ExcEtwZFZvRTM2Z3dtIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxNiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowNTowMy4wMzRaIiwicmVzcG9uc2VfdGV4dCI6Ik5vdyBsZXQgbWUgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBUeXBlU2NyaXB0IGNvbXBpbGF0aW9uIGVycm9ycyBieSBydW5uaW5nIHRoZSBUeXBlU2NyaXB0IGNvbXBpbGVyOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6ImRjOWMyNGE1LWU2NjUtNDlmYy05NzkyLWI2M2MzNjkzMTZiYiIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUJtZG5TWXQ1UlVTaHF4cGtHZmtSbWYiLCJ0b29sX25hbWUiOiJ2aWV3IiwiaW5wdXRfanNvbiI6IntcInBhdGhcIjogXCJ0c2NvbmZpZy5qc29uXCIsIFwidHlwZVwiOiBcImZpbGVcIn0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJUaGVyZSdzIGEgVHlwZVNjcmlwdCBjb25maWd1cmF0aW9uIGlzc3VlLiBMZXQgbWUgY2hlY2sgdGhlIHRzY29uZmlnLmpzb24gZmlsZTpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IkhlcmUgYXJlIHRoZSByZXN1bHRzIGZyb20gZXhlY3V0aW5nIHRoZSBjb21tYW5kLlxuICAgICAgICA8cmV0dXJuLWNvZGU+XG4gICAgICAgIDFcbiAgICAgICAgPC9yZXR1cm4tY29kZT5cbiAgICAgICAgPHN0ZG91dD5cbiAgICAgICAgXHUwMDFiWz85MDAxaFx1MDAxYls/MTAwNGhcdTAwMWJbPzI1bFx1MDAxYlsySlx1MDAxYlttXHUwMDFiW0hcblxuXG5cblxuXG5cblx1MDAxYltIXHUwMDFiXTA7QzpcXFdJTkRPV1NcXFN5c3RlbTMyXFxXaW5kb3dzUG93ZXJTaGVsbFxcdjEuMFxccG93ZXJzaGVsbC5leGVcdTAwMDdcdTAwMWJbPzI1aFx1MDAxYls/MjVsXHUwMDFiWzk2bXRzY29uZmlnLmpzb25cdTAwMWJbbTpcdTAwMWJbOTNtMThcdTAwMWJbbTpcdTAwMWJbOTNtOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzUwNTM6IFx1MDAxYlttT3B0aW9uICdlbWl0RGVjbGFyYXRpb25Pbmx5JyBjYW5ub3QgYmUgc3BlY2lmaWVkIHdpdGggb3B0aW9uICdub0VtaXQnLlx1MDAxYls3bVx1MDAxYlszOzFIMThcdTAwMWJbMjdtICAgICAgICAgXCJlbWl0RGVjbGFyYXRpb25Pbmx5XCI6IHRydWVcdTAwMWJbN21cbiAgXHUwMDFiWzI3bVx1MDAxYls5WFx1MDAxYls5MW1cdTAwMWJbOUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbbVx1MDAxYls3OzFIRm91bmQgMSBlcnJvciBpbiB0c2NvbmZpZy5qc29uXHUwMDFiWzkwbToxOFxuXHUwMDFiWz8yNWhcdTAwMWJbbVxuXHUwMDFiWzMxbWVycm9yXHUwMDFiW21cdTAwMWJbMm06XHUwMDFiWzIybSBcIlx1MDAxYlsxbXRzYy5jbWRcdTAwMWJbMjJtXCIgZXhpdGVkIHdpdGggY29kZSAyXG5cbiAgICAgICAgPC9zdGRvdXQ+XG4gICAgICAgIDxzdGRlcnI+XG4gICAgICAgIFxuICAgICAgICA8L3N0ZGVycj4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFWZ3BqU0FjUllYdDZSVnlXVGJaTGFkIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxNywiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowNToxMC44OTRaIiwicmVzcG9uc2VfdGV4dCI6IlRoZXJlJ3MgYSBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gaXNzdWUuIExldCBtZSBjaGVjayB0aGUgdHNjb25maWcuanNvbiBmaWxlOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjUyNWFhNDE0LWQxM2ItNGJmYy1iNjU0LTA3MzQ5OWEzZmYwNiIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVVnZWlFQnlraHdwenBuZTJNcHZucnAiLCJ0b29sX25hbWUiOiJsYXVuY2gtcHJvY2VzcyIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwiYnVuIC0tYnVuIHRzYyAtLW5vRW1pdCAtLXNraXBMaWJDaGVjayAtLXByb2plY3QgLlwiLCBcIndhaXRcIjogdHJ1ZSwgXCJtYXhfd2FpdF9zZWNvbmRzXCI6IDMwfSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IkxldCBtZSBydW4gVHlwZVNjcmlwdCB3aXRob3V0IHRoZSBjb25mbGljdGluZyBvcHRpb25zOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSdzIHRoZSByZXN1bHQgb2YgcnVubmluZyBgY2F0IC1uYCBvbiB0c2NvbmZpZy5qc29uOlxuICAgICAxXHR7XG4gICAgIDJcdCAgXCJleHRlbmRzXCI6IFwiLi9yZWFjdC1saWJyYXJ5Lmpzb25cIixcbiAgICAgM1x0ICBcImluY2x1ZGVcIjogW1wic3JjLyoqLypcIl0sXG4gICAgIDRcdCAgXCJjb21waWxlck9wdGlvbnNcIjoge1xuICAgICA1XHQgICAgXCJiYXNlVXJsXCI6IFwiLlwiLFxuICAgICA2XHQgICAgXCJwYXRoc1wiOiB7XG4gICAgIDdcdCAgICAgIFwiQC8qXCI6IFtcInNyYy8qXCJdXG4gICAgIDhcdCAgICB9LFxuICAgICA5XHQgICAgXCJkZWNsYXJhdGlvblwiOiB0cnVlLFxuICAgIDEwXHQgICAgXCJkZWNsYXJhdGlvbk1hcFwiOiB0cnVlLFxuICAgIDExXHQgICAgXCJvdXREaXJcIjogXCJkaXN0XCIsXG4gICAgMTJcdCAgICBcImVtaXREZWNsYXJhdGlvbk9ubHlcIjogdHJ1ZVxuICAgIDEzXHQgIH1cbiAgICAxNFx0fVxuICAgIDE1XHRcblRvdGFsIGxpbmVzIGluIGZpbGU6IDE1XG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFCbWRuU1l0NVJVU2hxeHBrR2ZrUm1mIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxNywiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowNToxNi41MTFaIiwicmVzcG9uc2VfdGV4dCI6IkxldCBtZSBydW4gVHlwZVNjcmlwdCB3aXRob3V0IHRoZSBjb25mbGljdGluZyBvcHRpb25zOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6ImMyM2M3NDg5LTQyNjYtNDkxNy05MzhiLWYyNTIyZjA2NGUxMCIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMTdlZjJZYW1vTEc5SDRLUlQydjZONlAiLCJ0b29sX25hbWUiOiJsYXVuY2gtcHJvY2VzcyIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwibnB4IHRzYyAtLW5vRW1pdCAtLXNraXBMaWJDaGVjayBzcmMvY29tcG9uZW50cy9Cb3QudHN4XCIsIFwid2FpdFwiOiB0cnVlLCBcIm1heF93YWl0X3NlY29uZHNcIjogMzB9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTGV0IG1lIHRyeSBhIGRpZmZlcmVudCBhcHByb2FjaCB0byBjaGVjayBUeXBlU2NyaXB0IGNvbXBpbGF0aW9uOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSBhcmUgdGhlIHJlc3VsdHMgZnJvbSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuXG4gICAgICAgIDxyZXR1cm4tY29kZT5cbiAgICAgICAgMVxuICAgICAgICA8L3JldHVybi1jb2RlPlxuICAgICAgICA8c3Rkb3V0PlxuICAgICAgICBcdTAwMWJbPzkwMDFoXHUwMDFiWz8xMDA0aFx1MDAxYls/MjVsXHUwMDFiWzJKXHUwMDFiW21cdTAwMWJbSFxuXG5cblxuXG5cblxuXHUwMDFiW0hcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1x1MDAxYls/MjVoXHUwMDFiWz8yNWxcdTAwMWJbOTZtdHNjb25maWcuanNvblx1MDAxYlttOlx1MDAxYls5M20xOFx1MDAxYlttOlx1MDAxYls5M205IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNTA1MzogXHUwMDFiW21PcHRpb24gJ2VtaXREZWNsYXJhdGlvbk9ubHknIGNhbm5vdCBiZSBzcGVjaWZpZWQgd2l0aCBvcHRpb24gJ25vRW1pdCcuXHUwMDFiWzdtXHUwMDFiWzM7MUgxOFx1MDAxYlsyN20gICAgICAgICBcImVtaXREZWNsYXJhdGlvbk9ubHlcIjogdHJ1ZVx1MDAxYls3bVxuICBcdTAwMWJbMjdtXHUwMDFiWzlYXHUwMDFiWzkxbVx1MDAxYls5Q35+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYlttXHUwMDFiWzc7MUhGb3VuZCAxIGVycm9yIGluIHRzY29uZmlnLmpzb25cdTAwMWJbOTBtOjE4XG5cdTAwMWJbPzI1aFx1MDAxYlttXG5cdTAwMWJbMzFtZXJyb3JcdTAwMWJbbVx1MDAxYlsybTpcdTAwMWJbMjJtIFwiXHUwMDFiWzFtdHNjLmNtZFx1MDAxYlsyMm1cIiBleGl0ZWQgd2l0aCBjb2RlIDJcblxuICAgICAgICA8L3N0ZG91dD5cbiAgICAgICAgPHN0ZGVycj5cbiAgICAgICAgXG4gICAgICAgIDwvc3RkZXJyPiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVVnZWlFQnlraHdwenBuZTJNcHZucnAifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjE4LCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA1OjIzLjg4N1oiLCJyZXNwb25zZV90ZXh0IjoiTGV0IG1lIHRyeSBhIGRpZmZlcmVudCBhcHByb2FjaCB0byBjaGVjayBUeXBlU2NyaXB0IGNvbXBpbGF0aW9uOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjZlNTBlM2NiLTcyODEtNDNhYy1hZmIxLWY3MmNjMjkzZmIwYSIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUZCdjhBQUU1elA0YkQ2VjdaYUo0dWQiLCJ0b29sX25hbWUiOiJ2aWV3IiwiaW5wdXRfanNvbiI6IntcInBhdGhcIjogXCIuXCIsIFwidHlwZVwiOiBcImRpcmVjdG9yeVwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6Ikkgc2VlIHRoZSB3b3Jrc3BhY2UgaGFzIGNoYW5nZWQuIExldCBtZSBjaGVjayB0aGUgY3VycmVudCBkaXJlY3Rvcnkgc3RydWN0dXJlIGFuZCBjb250aW51ZSB3aXRoIHRoZSBpbXBsZW1lbnRhdGlvbjpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IkhlcmUgYXJlIHRoZSByZXN1bHRzIGZyb20gZXhlY3V0aW5nIHRoZSBjb21tYW5kLlxuICAgICAgICA8cmV0dXJuLWNvZGU+XG4gICAgICAgIDFcbiAgICAgICAgPC9yZXR1cm4tY29kZT5cbiAgICAgICAgPHN0ZG91dD5cbiAgICAgICAgXHUwMDFiWz85MDAxaFx1MDAxYls/MTAwNGhcdTAwMWJbPzI1bFx1MDAxYlsySlx1MDAxYlttXHUwMDFiW0hcblxuXG5cblxuXG5cblx1MDAxYltIXHUwMDFiXTA7QzpcXFdJTkRPV1NcXFN5c3RlbTMyXFxXaW5kb3dzUG93ZXJTaGVsbFxcdjEuMFxccG93ZXJzaGVsbC5leGVcdTAwMDdcdTAwMWJbPzI1aFx1MDAxYl0wO25wbVx1MDAwN1x1MDAxYl0wO25wbSBleGVjIHRzYyAtLW5vRW1pdCAtLXNraXBMaWJDaGVjayBzcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDA3XHUwMDFiW0tcdTAwMWJbPzI1bFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MDUzOiBcdTAwMWJbbUZpbGUgJ3NyYy9jb21wb25lbnRzL0JvdC50c3gnIG5vdCBmb3VuZC5cbiAgVGhlIGZpbGUgaXMgaW4gdGhlIHByb2dyYW0gYmVjYXVzZTpcbiAgICBSb290IGZpbGUgc3BlY2lmaWVkIGZvciBjb21waWxhdGlvblx1MDAxYls2OzFIRm91bmQgMSBlcnJvci5cdTAwMWJbODsxSFx1MDAxYltLXHUwMDFiWz8yNWhcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1xuICAgICAgICA8L3N0ZG91dD5cbiAgICAgICAgPHN0ZGVycj5cbiAgICAgICAgXG4gICAgICAgIDwvc3RkZXJyPiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMTdlZjJZYW1vTEc5SDRLUlQydjZONlAifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxOSwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA1OjMxLjI2OFoiLCJyZXNwb25zZV90ZXh0IjoiSSBzZWUgdGhlIHdvcmtzcGFjZSBoYXMgY2hhbmdlZC4gTGV0IG1lIGNoZWNrIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBzdHJ1Y3R1cmUgYW5kIGNvbnRpbnVlIHdpdGggdGhlIGltcGxlbWVudGF0aW9uOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6ImNmOWYyNmQ2LTYxNTEtNDA0ZC04Y2M2LWZmNjY3ZTJhYTVmNCIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMU1rNlNmN0dYVGFuZEN6UFlmTXlKQmMiLCJ0b29sX25hbWUiOiJ2aWV3IiwiaW5wdXRfanNvbiI6IntcInBhdGhcIjogXCJzcmNcIiwgXCJ0eXBlXCI6IFwiZGlyZWN0b3J5XCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiSSBjYW4gc2VlIHRoaXMgaXMgYSBkaWZmZXJlbnQgcHJvamVjdCBzdHJ1Y3R1cmUuIExldCBtZSBjaGVjayB0aGUgY3VycmVudCBzb3VyY2UgZmlsZXM6XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJIZXJlJ3MgdGhlIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB1cCB0byAyIGxldmVscyBkZWVwIGluIC4sIGV4Y2x1ZGluZyBoaWRkZW4gaXRlbXM6XG4uL1JFQURNRS5tZFxuLi9iYXNlLmpzb25cbi4vZGlzdFxuLi9kaXN0XFxCdWJibGVDaGF0LmQudHNcbi4vZGlzdFxcQnViYmxlQ2hhdC5kLnRzLm1hcFxuLi9kaXN0XFxGdWxsUGFnZUNoYXQuZC50c1xuLi9kaXN0XFxGdWxsUGFnZUNoYXQuZC50cy5tYXBcbi4vZGlzdFxcaW5kZXguZC50c1xuLi9kaXN0XFxpbmRleC5kLnRzLm1hcFxuLi9kaXN0XFxpbmRleC5qc1xuLi9ub2RlX21vZHVsZXNcbi4vbm9kZV9tb2R1bGVzXFxAYWFzaHV0b3NocmF0aGlcbi4vbm9kZV9tb2R1bGVzXFxAYW1wcHJvamVjdFxuLi9ub2RlX21vZHVsZXNcXEBiYWJlbFxuLi9ub2RlX21vZHVsZXNcXEBlc2J1aWxkXG4uL25vZGVfbW9kdWxlc1xcQGVzYnVpbGQta2l0XG4uL25vZGVfbW9kdWxlc1xcQGVzbGludFxuLi9ub2RlX21vZHVsZXNcXEBlc2xpbnQtY29tbXVuaXR5XG4uL25vZGVfbW9kdWxlc1xcQGh1bWFud2hvY29kZXNcbi4vbm9kZV9tb2R1bGVzXFxAanJpZGdld2VsbFxuLi9ub2RlX21vZHVsZXNcXEBsYWRsZVxuLi9ub2RlX21vZHVsZXNcXEBtYXBib3hcbi4vbm9kZV9tb2R1bGVzXFxAbWljcm9zb2Z0XG4uL25vZGVfbW9kdWxlc1xcQG5hcGktcnNcbi4vbm9kZV9tb2R1bGVzXFxAbm9kZWxpYlxuLi9ub2RlX21vZHVsZXNcXEByb2xsdXBcbi4vbm9kZV9tb2R1bGVzXFxAdHMtc3RhY2tcbi4vbm9kZV9tb2R1bGVzXFxAdHlwZXNcbi4vbm9kZV9tb2R1bGVzXFxAdml0ZWpzXG4uL25vZGVfbW9kdWxlc1xcYWJicmV2XG4uL25vZGVfbW9kdWxlc1xcYWNjZXB0c1xuLi9ub2RlX21vZHVsZXNcXGFjb3JuXG4uL25vZGVfbW9kdWxlc1xcYWNvcm4tanN4XG4uL25vZGVfbW9kdWxlc1xcYWdlbnQtYmFzZVxuLi9ub2RlX21vZHVsZXNcXGFqdlxuLi9ub2RlX21vZHVsZXNcXGFuc2ktYWxpZ25cbi4vbm9kZV9tb2R1bGVzXFxhbnNpLXJlZ2V4XG4uL25vZGVfbW9kdWxlc1xcYW5zaS1zdHlsZXNcbi4vbm9kZV9tb2R1bGVzXFxhbnltYXRjaFxuLi9ub2RlX21vZHVsZXNcXGFwcGVuZC1maWVsZFxuLi9ub2RlX21vZHVsZXNcXGFwcm9iYVxuLi9ub2RlX21vZHVsZXNcXGFyZS13ZS10aGVyZS15ZXRcbi4vbm9kZV9tb2R1bGVzXFxhcmdwYXJzZVxuLi9ub2RlX21vZHVsZXNcXGFycmF5LWZsYXR0ZW5cbi4vbm9kZV9tb2R1bGVzXFxhc3luY2tpdFxuLi9ub2RlX21vZHVsZXNcXGF4ZS1jb3JlXG4uL25vZGVfbW9kdWxlc1xcYXhpb3Ncbi4vbm9kZV9tb2R1bGVzXFxiYWJlbC1wbHVnaW4tcG9seWZpbGwtY29yZWpzMlxuLi9ub2RlX21vZHVsZXNcXGJhYmVsLXBsdWdpbi1wb2x5ZmlsbC1jb3JlanMzXG4uL25vZGVfbW9kdWxlc1xcYmFiZWwtcGx1Z2luLXBvbHlmaWxsLXJlZ2VuZXJhdG9yXG4uL25vZGVfbW9kdWxlc1xcYmFsYW5jZWQtbWF0Y2hcbi4vbm9kZV9tb2R1bGVzXFxiaWctaW50ZWdlclxuLi9ub2RlX21vZHVsZXNcXGJpbmFyeS1leHRlbnNpb25zXG4uL25vZGVfbW9kdWxlc1xcYm9keS1wYXJzZXJcbi4vbm9kZV9tb2R1bGVzXFxib3hlblxuLi9ub2RlX21vZHVsZXNcXGJwbGlzdC1wYXJzZXJcbi4vbm9kZV9tb2R1bGVzXFxicmFjZS1leHBhbnNpb25cbi4vbm9kZV9tb2R1bGVzXFxicmFjZXNcbi4vbm9kZV9tb2R1bGVzXFxicm93c2Vyc2xpc3Rcbi4vbm9kZV9tb2R1bGVzXFxidWZmZXItZnJvbVxuLi9ub2RlX21vZHVsZXNcXGJ1aWx0aW4tbW9kdWxlc1xuLi9ub2RlX21vZHVsZXNcXGJ1bmRsZS1uYW1lXG4uL25vZGVfbW9kdWxlc1xcYnVzYm95XG4uL25vZGVfbW9kdWxlc1xcYnl0ZXNcbi4vbm9kZV9tb2R1bGVzXFxjLWFnZW50LWVtYmVkZGluZ1xuLi9ub2RlX21vZHVsZXNcXGMtYWdlbnQtZW1iZWRkaW5nLXJlYWN0XG4uL25vZGVfbW9kdWxlc1xcY2FsbC1iaW5kXG4uL25vZGVfbW9kdWxlc1xcY2FsbC1iaW5kLWFwcGx5LWhlbHBlcnNcbi4vbm9kZV9tb2R1bGVzXFxjYWxsLWJvdW5kXG4uL25vZGVfbW9kdWxlc1xcY2FsbHNpdGVzXG4uL25vZGVfbW9kdWxlc1xcY2FtZWxjYXNlXG4uL25vZGVfbW9kdWxlc1xcY2FuaXVzZS1saXRlXG4uL25vZGVfbW9kdWxlc1xcY2hhbGtcbi4vbm9kZV9tb2R1bGVzXFxjaG9raWRhclxuLi9ub2RlX21vZHVsZXNcXGNob3duclxuLi9ub2RlX21vZHVsZXNcXGNsYXNzbmFtZXNcbi4vbm9kZV9tb2R1bGVzXFxjbGktYm94ZXNcbi4vbm9kZV9tb2R1bGVzXFxjbWN0cy1jLWFnZW50LWVtYmVkZGluZ1xuLi9ub2RlX21vZHVsZXNcXGNvbG9yLWNvbnZlcnRcbi4vbm9kZV9tb2R1bGVzXFxjb2xvci1uYW1lXG4uL25vZGVfbW9kdWxlc1xcY29sb3Itc3VwcG9ydFxuLi9ub2RlX21vZHVsZXNcXGNvbWJpbmVkLXN0cmVhbVxuLi9ub2RlX21vZHVsZXNcXGNvbW1hbmRlclxuLi9ub2RlX21vZHVsZXNcXGNvbXBvbmVudC1yZWdpc3RlclxuLi9ub2RlX21vZHVsZXNcXGNvbmNhdC1tYXBcbi4vbm9kZV9tb2R1bGVzXFxjb25jYXQtc3RyZWFtXG4uL25vZGVfbW9kdWxlc1xcY29uc29sZS1jb250cm9sLXN0cmluZ3Ncbi4vbm9kZV9tb2R1bGVzXFxjb250ZW50LWRpc3Bvc2l0aW9uXG4uL25vZGVfbW9kdWxlc1xcY29udGVudC10eXBlXG4uL25vZGVfbW9kdWxlc1xcY29udmVydC1zb3VyY2UtbWFwXG4uL25vZGVfbW9kdWxlc1xcY29va2llXG4uL25vZGVfbW9kdWxlc1xcY29va2llLXNpZ25hdHVyZVxuLi9ub2RlX21vZHVsZXNcXGNvcmUtanMtY29tcGF0XG4uL25vZGVfbW9kdWxlc1xcY29yZS11dGlsLWlzXG4uL25vZGVfbW9kdWxlc1xcY29yc1xuLi9ub2RlX21vZHVsZXNcXGNyb3NzLWVudlxuLi9ub2RlX21vZHVsZXNcXGNyb3NzLXNwYXduXG4uL25vZGVfbW9kdWxlc1xcY3Jvc3Mtc3Bhd24tYXN5bmNcbi4vbm9kZV9tb2R1bGVzXFxjc3N0eXBlXG4uL25vZGVfbW9kdWxlc1xcZGF0YS11cmktdG8tYnVmZmVyXG4uL25vZGVfbW9kdWxlc1xcZGVidWdcbi4vbm9kZV9tb2R1bGVzXFxkZWNvZGUtdXJpLWNvbXBvbmVudFxuLi9ub2RlX21vZHVsZXNcXGRlY29tcHJlc3MtcmVzcG9uc2Vcbi4vbm9kZV9tb2R1bGVzXFxkZWVwLWlzXG4uL25vZGVfbW9kdWxlc1xcZGVlcG1lcmdlXG4uL25vZGVfbW9kdWxlc1xcZGVmYXVsdC1icm93c2VyXG4uL25vZGVfbW9kdWxlc1xcZGVmYXVsdC1icm93c2VyLWlkXG4uL25vZGVfbW9kdWxlc1xcZGVmaW5lLWRhdGEtcHJvcGVydHlcbi4vbm9kZV9tb2R1bGVzXFxkZWZpbmUtbGF6eS1wcm9wXG4uL25vZGVfbW9kdWxlc1xcZGVsYXllZC1zdHJlYW1cbi4vbm9kZV9tb2R1bGVzXFxkZWxlZ2F0ZXNcbi4vbm9kZV9tb2R1bGVzXFxkZXBkXG4uL25vZGVfbW9kdWxlc1xcZGVzdHJveVxuLi9ub2RlX21vZHVsZXNcXGRldGVjdC1saWJjXG4uL25vZGVfbW9kdWxlc1xcZGV2aWNlLWRldGVjdG9yLWpzXG4uL25vZGVfbW9kdWxlc1xcZGlyLWdsb2Jcbi4vbm9kZV9tb2R1bGVzXFxkb2N0cmluZVxuLi9ub2RlX21vZHVsZXNcXGRvdGVudlxuLi9ub2RlX21vZHVsZXNcXGR1bmRlci1wcm90b1xuLi9ub2RlX21vZHVsZXNcXGVhc3Rhc2lhbndpZHRoXG4uL25vZGVfbW9kdWxlc1xcZWUtZmlyc3Rcbi4vbm9kZV9tb2R1bGVzXFxlbGVjdHJvbi10by1jaHJvbWl1bVxuLi9ub2RlX21vZHVsZXNcXGVtb2ppLXJlZ2V4XG4uL25vZGVfbW9kdWxlc1xcZW5jb2RldXJsXG4uL25vZGVfbW9kdWxlc1xcZXMtZGVmaW5lLXByb3BlcnR5XG4uL25vZGVfbW9kdWxlc1xcZXMtZXJyb3JzXG4uL25vZGVfbW9kdWxlc1xcZXMtb2JqZWN0LWF0b21zXG4uL25vZGVfbW9kdWxlc1xcZXNidWlsZFxuLi9ub2RlX21vZHVsZXNcXGVzY2FsYWRlXG4uL25vZGVfbW9kdWxlc1xcZXNjYXBlLWh0bWxcbi4vbm9kZV9tb2R1bGVzXFxlc2NhcGUtc3RyaW5nLXJlZ2V4cFxuLi9ub2RlX21vZHVsZXNcXGVzbGludFxuLi9ub2RlX21vZHVsZXNcXGVzbGludC1zY29wZVxuLi9ub2RlX21vZHVsZXNcXGVzbGludC12aXNpdG9yLWtleXNcbi4vbm9kZV9tb2R1bGVzXFxlc3ByZWVcbi4vbm9kZV9tb2R1bGVzXFxlc3F1ZXJ5XG4uL25vZGVfbW9kdWxlc1xcZXNyZWN1cnNlXG4uL25vZGVfbW9kdWxlc1xcZXN0cmF2ZXJzZVxuLi9ub2RlX21vZHVsZXNcXGVzdHJlZS13YWxrZXJcbi4vbm9kZV9tb2R1bGVzXFxlc3V0aWxzXG4uL25vZGVfbW9kdWxlc1xcZXRhZ1xuLi9ub2RlX21vZHVsZXNcXGV4ZWNhXG4uL25vZGVfbW9kdWxlc1xcZXhwcmVzc1xuLi9ub2RlX21vZHVsZXNcXGZhc3QtZGVlcC1lcXVhbFxuLi9ub2RlX21vZHVsZXNcXGZhc3QtZ2xvYlxuLi9ub2RlX21vZHVsZXNcXGZhc3QtanNvbi1zdGFibGUtc3RyaW5naWZ5XG4uL25vZGVfbW9kdWxlc1xcZmFzdC1sZXZlbnNodGVpblxuLi9ub2RlX21vZHVsZXNcXGZhc3RxXG4uL25vZGVfbW9kdWxlc1xcZmV0Y2gtYmxvYlxuLi9ub2RlX21vZHVsZXNcXGZpbGUtZW50cnktY2FjaGVcbi4vbm9kZV9tb2R1bGVzXFxmaWxsLXJhbmdlXG4uL25vZGVfbW9kdWxlc1xcZmlsdGVyLW9ialxuLi9ub2RlX21vZHVsZXNcXGZpbmFsaGFuZGxlclxuLi9ub2RlX21vZHVsZXNcXGZpbmQtdXBcbi4vbm9kZV9tb2R1bGVzXFxmbGF0LWNhY2hlXG4uL25vZGVfbW9kdWxlc1xcZmxhdHRlZFxuLi9ub2RlX21vZHVsZXNcXGZvbGxvdy1yZWRpcmVjdHNcbi4vbm9kZV9tb2R1bGVzXFxmb3JtLWRhdGFcbi4vbm9kZV9tb2R1bGVzXFxmb3JtZGF0YS1wb2x5ZmlsbFxuLi9ub2RlX21vZHVsZXNcXGZvcndhcmRlZFxuLi9ub2RlX21vZHVsZXNcXGZyZXNoXG4uL25vZGVfbW9kdWxlc1xcZnMtbWluaXBhc3Ncbi4vbm9kZV9tb2R1bGVzXFxmcy5yZWFscGF0aFxuLi9ub2RlX21vZHVsZXNcXGZ1bmN0aW9uLWJpbmRcbi4vbm9kZV9tb2R1bGVzXFxnYXVnZVxuLi9ub2RlX21vZHVsZXNcXGdlbnN5bmNcbi4vbm9kZV9tb2R1bGVzXFxnZXQtaW50cmluc2ljXG4uL25vZGVfbW9kdWxlc1xcZ2V0LXBvcnRcbi4vbm9kZV9tb2R1bGVzXFxnZXQtc3RyZWFtXG4uL25vZGVfbW9kdWxlc1xcZ2V0LXRzY29uZmlnXG4uL25vZGVfbW9kdWxlc1xcZ2xvYlxuLi9ub2RlX21vZHVsZXNcXGdsb2ItcGFyZW50XG4uL25vZGVfbW9kdWxlc1xcZ2xvYmFsc1xuLi9ub2RlX21vZHVsZXNcXGdsb2JieVxuLi9ub2RlX21vZHVsZXNcXGdsb2JyZXhcbi4vbm9kZV9tb2R1bGVzXFxnb3BkXG4uL25vZGVfbW9kdWxlc1xcZ3JhcGhlbWUtc3BsaXR0ZXJcbi4vbm9kZV9tb2R1bGVzXFxoYXNcbi4vbm9kZV9tb2R1bGVzXFxoYXMtZmxhZ1xuLi9ub2RlX21vZHVsZXNcXGhhcy1wcm9wZXJ0eS1kZXNjcmlwdG9yc1xuLi9ub2RlX21vZHVsZXNcXGhhcy1zeW1ib2xzXG4uL25vZGVfbW9kdWxlc1xcaGFzLXVuaWNvZGVcbi4vbm9kZV9tb2R1bGVzXFxoYXNvd25cbi4vbm9kZV9tb2R1bGVzXFxoaXN0b3J5XG4uL25vZGVfbW9kdWxlc1xcaHR0cC1lcnJvcnNcbi4vbm9kZV9tb2R1bGVzXFxodHRwcy1wcm94eS1hZ2VudFxuLi9ub2RlX21vZHVsZXNcXGh1bWFuLXNpZ25hbHNcbi4vbm9kZV9tb2R1bGVzXFxpY29udi1saXRlXG4uL25vZGVfbW9kdWxlc1xcaWdub3JlXG4uL25vZGVfbW9kdWxlc1xcaW1wb3J0LWZyZXNoXG4uL25vZGVfbW9kdWxlc1xcaW11cm11cmhhc2hcbi4vbm9kZV9tb2R1bGVzXFxpbmZsaWdodFxuLi9ub2RlX21vZHVsZXNcXGluaGVyaXRzXG4uL25vZGVfbW9kdWxlc1xcaXBhZGRyLmpzXG4uL25vZGVfbW9kdWxlc1xcaXMtYmluYXJ5LXBhdGhcbi4vbm9kZV9tb2R1bGVzXFxpcy1idWlsdGluLW1vZHVsZVxuLi9ub2RlX21vZHVsZXNcXGlzLWNvcmUtbW9kdWxlXG4uL25vZGVfbW9kdWxlc1xcaXMtZG9ja2VyXG4uL25vZGVfbW9kdWxlc1xcaXMtZXh0Z2xvYlxuLi9ub2RlX21vZHVsZXNcXGlzLWZ1bGx3aWR0aC1jb2RlLXBvaW50XG4uL25vZGVfbW9kdWxlc1xcaXMtZ2xvYlxuLi9ub2RlX21vZHVsZXNcXGlzLW1vZHVsZVxuLi9ub2RlX21vZHVsZXNcXGlzLW51bWJlclxuLi9ub2RlX21vZHVsZXNcXGlzLXBhdGgtaW5zaWRlXG4uL25vZGVfbW9kdWxlc1xcaXMtc3RyZWFtXG4uL25vZGVfbW9kdWxlc1xcaXMtd3NsXG4uL25vZGVfbW9kdWxlc1xcaXNhcnJheVxuLi9ub2RlX21vZHVsZXNcXGlzZXhlXG4uL25vZGVfbW9kdWxlc1xcanMtc2RzbFxuLi9ub2RlX21vZHVsZXNcXGpzLXRva2Vuc1xuLi9ub2RlX21vZHVsZXNcXGpzLXlhbWxcbi4vbm9kZV9tb2R1bGVzXFxqc2VzY1xuLi9ub2RlX21vZHVsZXNcXGpzb24tYnVmZmVyXG4uL25vZGVfbW9kdWxlc1xcanNvbi1zY2hlbWEtdHJhdmVyc2Vcbi4vbm9kZV9tb2R1bGVzXFxqc29uLXN0YWJsZS1zdHJpbmdpZnktd2l0aG91dC1qc29uaWZ5XG4uL25vZGVfbW9kdWxlc1xcanNvbjVcbi4vbm9kZV9tb2R1bGVzXFxrZXl2XG4uL25vZGVfbW9kdWxlc1xcbGV2blxuLi9ub2RlX21vZHVsZXNcXGxvY2F0ZS1wYXRoXG4uL25vZGVfbW9kdWxlc1xcbG9kYXNoXG4uL25vZGVfbW9kdWxlc1xcbG9kYXNoLmRlYm91bmNlXG4uL25vZGVfbW9kdWxlc1xcbG9kYXNoLm1lcmdlXG4uL25vZGVfbW9kdWxlc1xcbG9vc2UtZW52aWZ5XG4uL25vZGVfbW9kdWxlc1xcbHJ1LWNhY2hlXG4uL25vZGVfbW9kdWxlc1xcbWFnaWMtc3RyaW5nXG4uL25vZGVfbW9kdWxlc1xcbWFrZS1kaXJcbi4vbm9kZV9tb2R1bGVzXFxtYXRoLWludHJpbnNpY3Ncbi4vbm9kZV9tb2R1bGVzXFxtZWRpYS10eXBlclxuLi9ub2RlX21vZHVsZXNcXG1lcmdlLWRlc2NyaXB0b3JzXG4uL25vZGVfbW9kdWxlc1xcbWVyZ2Utc3RyZWFtXG4uL25vZGVfbW9kdWxlc1xcbWVyZ2UyXG4uL25vZGVfbW9kdWxlc1xcbWV0aG9kc1xuLi9ub2RlX21vZHVsZXNcXG1pY3JvbWF0Y2hcbi4vbm9kZV9tb2R1bGVzXFxtaW1lXG4uL25vZGVfbW9kdWxlc1xcbWltZS1kYlxuLi9ub2RlX21vZHVsZXNcXG1pbWUtdHlwZXNcbi4vbm9kZV9tb2R1bGVzXFxtaW1pYy1mblxuLi9ub2RlX21vZHVsZXNcXG1pbWljLXJlc3BvbnNlXG4uL25vZGVfbW9kdWxlc1xcbWluaW1hdGNoXG4uL25vZGVfbW9kdWxlc1xcbWluaW1pc3Rcbi4vbm9kZV9tb2R1bGVzXFxtaW5pcGFzc1xuLi9ub2RlX21vZHVsZXNcXG1pbml6bGliXG4uL25vZGVfbW9kdWxlc1xcbWtkaXJwXG4uL25vZGVfbW9kdWxlc1xcbXNcbi4vbm9kZV9tb2R1bGVzXFxtdWx0ZXJcbi4vbm9kZV9tb2R1bGVzXFxuYW5cbi4vbm9kZV9tb2R1bGVzXFxuYW5vaWRcbi4vbm9kZV9tb2R1bGVzXFxuYXR1cmFsLWNvbXBhcmVcbi4vbm9kZV9tb2R1bGVzXFxuZWdvdGlhdG9yXG4uL25vZGVfbW9kdWxlc1xcbm9kZS1kb21leGNlcHRpb25cbi4vbm9kZV9tb2R1bGVzXFxub2RlLWZldGNoXG4uL25vZGVfbW9kdWxlc1xcbm9kZS1yZWxlYXNlc1xuLi9ub2RlX21vZHVsZXNcXG5vcHRcbi4vbm9kZV9tb2R1bGVzXFxub3JtYWxpemUtcGF0aFxuLi9ub2RlX21vZHVsZXNcXG5wbS1ydW4tcGF0aFxuLi9ub2RlX21vZHVsZXNcXG5wbWxvZ1xuLi9ub2RlX21vZHVsZXNcXG9iamVjdC1hc3NpZ25cbi4vbm9kZV9tb2R1bGVzXFxvYmplY3QtaW5zcGVjdFxuLi9ub2RlX21vZHVsZXNcXG9uLWZpbmlzaGVkXG4uL25vZGVfbW9kdWxlc1xcb25jZVxuLi9ub2RlX21vZHVsZXNcXG9uZXRpbWVcbi4vbm9kZV9tb2R1bGVzXFxvcGVuXG4uL25vZGVfbW9kdWxlc1xcb3B0aW9uYXRvclxuLi9ub2RlX21vZHVsZXNcXHAtbGltaXRcbi4vbm9kZV9tb2R1bGVzXFxwLWxvY2F0ZVxuLi9ub2RlX21vZHVsZXNcXHBhcmVudC1tb2R1bGVcbi4vbm9kZV9tb2R1bGVzXFxwYXJzZXVybFxuLi9ub2RlX21vZHVsZXNcXHBhdGgtZXhpc3RzXG4uL25vZGVfbW9kdWxlc1xccGF0aC1pcy1hYnNvbHV0ZVxuLi9ub2RlX21vZHVsZXNcXHBhdGgta2V5XG4uL25vZGVfbW9kdWxlc1xccGF0aC1wYXJzZVxuLi9ub2RlX21vZHVsZXNcXHBhdGgtdG8tcmVnZXhwXG4uL25vZGVfbW9kdWxlc1xccGF0aC10eXBlXG4uL25vZGVfbW9kdWxlc1xccGF0aDJkXG4uL25vZGVfbW9kdWxlc1xccGF0aDJkLXBvbHlmaWxsXG4uL25vZGVfbW9kdWxlc1xccGRmanMtZGlzdFxuLi9ub2RlX21vZHVsZXNcXHBpY29jb2xvcnNcbi4vbm9kZV9tb2R1bGVzXFxwaWNvbWF0Y2hcbi4vbm9kZV9tb2R1bGVzXFxwb3N0Y3NzXG4uL25vZGVfbW9kdWxlc1xccHJlbHVkZS1sc1xuLi9ub2RlX21vZHVsZXNcXHByZXR0aWVyXG4uL25vZGVfbW9kdWxlc1xccHJpc20tcmVhY3QtcmVuZGVyZXJcbi4vbm9kZV9tb2R1bGVzXFxwcm9jZXNzLW5leHRpY2stYXJnc1xuLi9ub2RlX21vZHVsZXNcXHByb3AtdHlwZXNcbi4vbm9kZV9tb2R1bGVzXFxwcm94eS1hZGRyXG4uL25vZGVfbW9kdWxlc1xccHJveHktZnJvbS1lbnZcbi4vbm9kZV9tb2R1bGVzXFxwc2V1ZG9tYXBcbi4vbm9kZV9tb2R1bGVzXFxwdW55Y29kZVxuLi9ub2RlX21vZHVsZXNcXHFzXG4uL25vZGVfbW9kdWxlc1xccXVlcnktc3RyaW5nXG4uL25vZGVfbW9kdWxlc1xccXVldWUtbWljcm90YXNrXG4uL25vZGVfbW9kdWxlc1xccmFuZG9tYnl0ZXNcbi4vbm9kZV9tb2R1bGVzXFxyYW5nZS1wYXJzZXJcbi4vbm9kZV9tb2R1bGVzXFxyYXctYm9keVxuLi9ub2RlX21vZHVsZXNcXHJlYWN0XG4uL25vZGVfbW9kdWxlc1xccmVhY3QtZG9tXG4uL25vZGVfbW9kdWxlc1xccmVhY3QtZnJhbWUtY29tcG9uZW50XG4uL25vZGVfbW9kdWxlc1xccmVhY3QtaW5zcGVjdG9yXG4uL25vZGVfbW9kdWxlc1xccmVhY3QtaXNcbi4vbm9kZV9tb2R1bGVzXFxyZWFjdC1yZWZyZXNoXG4uL25vZGVfbW9kdWxlc1xccmVhZGFibGUtc3RyZWFtXG4uL25vZGVfbW9kdWxlc1xccmVhZGRpcnBcbi4vbm9kZV9tb2R1bGVzXFxyZWdlbmVyYXRlXG4uL25vZGVfbW9kdWxlc1xccmVnZW5lcmF0ZS11bmljb2RlLXByb3BlcnRpZXNcbi4vbm9kZV9tb2R1bGVzXFxyZWdlbmVyYXRvci1ydW50aW1lXG4uL25vZGVfbW9kdWxlc1xccmVnZW5lcmF0b3ItdHJhbnNmb3JtXG4uL25vZGVfbW9kdWxlc1xccmVnZXhwdS1jb3JlXG4uL25vZGVfbW9kdWxlc1xccmVnanNwYXJzZXJcbi4vbm9kZV9tb2R1bGVzXFxyZXNvbHZlXG4uL25vZGVfbW9kdWxlc1xccmVzb2x2ZS1mcm9tXG4uL25vZGVfbW9kdWxlc1xccmVzb2x2ZS1wa2ctbWFwc1xuLi9ub2RlX21vZHVsZXNcXHJldXNpZnlcbi4vbm9kZV9tb2R1bGVzXFxyaW1yYWZcbi4vbm9kZV9tb2R1bGVzXFxyb2xsdXBcbi4vbm9kZV9tb2R1bGVzXFxyb2xsdXAtcGx1Z2luLXR5cGVzY3JpcHQtcGF0aHNcbi4vbm9kZV9tb2R1bGVzXFxydW4tYXBwbGVzY3JpcHRcbi4vbm9kZV9tb2R1bGVzXFxydW4tcGFyYWxsZWxcbi4vbm9kZV9tb2R1bGVzXFxzYWZlLWJ1ZmZlclxuLi9ub2RlX21vZHVsZXNcXHNhZmVyLWJ1ZmZlclxuLi9ub2RlX21vZHVsZXNcXHNjaGVkdWxlclxuLi9ub2RlX21vZHVsZXNcXHNlbXZlclxuLi9ub2RlX21vZHVsZXNcXHNlbmRcbi4vbm9kZV9tb2R1bGVzXFxzZXJpYWxpemUtamF2YXNjcmlwdFxuLi9ub2RlX21vZHVsZXNcXHNlcm92YWxcbi4vbm9kZV9tb2R1bGVzXFxzZXJ2ZS1zdGF0aWNcbi4vbm9kZV9tb2R1bGVzXFxzZXQtYmxvY2tpbmdcbi4vbm9kZV9tb2R1bGVzXFxzZXQtZnVuY3Rpb24tbGVuZ3RoXG4uL25vZGVfbW9kdWxlc1xcc2V0cHJvdG90eXBlb2Zcbi4vbm9kZV9tb2R1bGVzXFxzaGViYW5nLWNvbW1hbmRcbi4vbm9kZV9tb2R1bGVzXFxzaGViYW5nLXJlZ2V4XG4uL25vZGVfbW9kdWxlc1xcc2lkZS1jaGFubmVsXG4uL25vZGVfbW9kdWxlc1xcc2lkZS1jaGFubmVsLWxpc3Rcbi4vbm9kZV9tb2R1bGVzXFxzaWRlLWNoYW5uZWwtbWFwXG4uL25vZGVfbW9kdWxlc1xcc2lkZS1jaGFubmVsLXdlYWttYXBcbi4vbm9kZV9tb2R1bGVzXFxzaWduYWwtZXhpdFxuLi9ub2RlX21vZHVsZXNcXHNpbXBsZS1jb25jYXRcbi4vbm9kZV9tb2R1bGVzXFxzaW1wbGUtZ2V0XG4uL25vZGVfbW9kdWxlc1xcc2xhc2hcbi4vbm9kZV9tb2R1bGVzXFxzbW9iXG4uL25vZGVfbW9kdWxlc1xcc29saWQtZWxlbWVudFxuLi9ub2RlX21vZHVsZXNcXHNvbGlkLWpzXG4uL25vZGVfbW9kdWxlc1xcc291cmNlLW1hcFxuLi9ub2RlX21vZHVsZXNcXHNvdXJjZS1tYXAtanNcbi4vbm9kZV9tb2R1bGVzXFxzb3VyY2UtbWFwLXN1cHBvcnRcbi4vbm9kZV9tb2R1bGVzXFxzcGxpdC1vbi1maXJzdFxuLi9ub2RlX21vZHVsZXNcXHN0YXR1c2VzXG4uL25vZGVfbW9kdWxlc1xcc3RyZWFtc2VhcmNoXG4uL25vZGVfbW9kdWxlc1xcc3RyaW5nLXdpZHRoXG4uL25vZGVfbW9kdWxlc1xcc3RyaW5nX2RlY29kZXJcbi4vbm9kZV9tb2R1bGVzXFxzdHJpcC1hbnNpXG4uL25vZGVfbW9kdWxlc1xcc3RyaXAtZW9mXG4uL25vZGVfbW9kdWxlc1xcc3RyaXAtZmluYWwtbmV3bGluZVxuLi9ub2RlX21vZHVsZXNcXHN0cmlwLWpzb24tY29tbWVudHNcbi4vbm9kZV9tb2R1bGVzXFxzdXBwb3J0cy1jb2xvclxuLi9ub2RlX21vZHVsZXNcXHN1cHBvcnRzLXByZXNlcnZlLXN5bWxpbmtzLWZsYWdcbi4vbm9kZV9tb2R1bGVzXFx0YXJcbi4vbm9kZV9tb2R1bGVzXFx0ZXJzZXJcbi4vbm9kZV9tb2R1bGVzXFx0ZXh0LXRhYmxlXG4uL25vZGVfbW9kdWxlc1xcdGl0bGVpemVcbi4vbm9kZV9tb2R1bGVzXFx0by1mYXN0LXByb3BlcnRpZXNcbi4vbm9kZV9tb2R1bGVzXFx0by1yZWdleC1yYW5nZVxuLi9ub2RlX21vZHVsZXNcXHRvaWRlbnRpZmllclxuLi9ub2RlX21vZHVsZXNcXHRyNDZcbi4vbm9kZV9tb2R1bGVzXFx0c2NvbmZja1xuLi9ub2RlX21vZHVsZXNcXHRzbGliXG4uL25vZGVfbW9kdWxlc1xcdHN4XG4uL25vZGVfbW9kdWxlc1xcdHlwZS1jaGVja1xuLi9ub2RlX21vZHVsZXNcXHR5cGUtZmVzdFxuLi9ub2RlX21vZHVsZXNcXHR5cGUtaXNcbi4vbm9kZV9tb2R1bGVzXFx0eXBlZGFycmF5XG4uL25vZGVfbW9kdWxlc1xcdHlwZXNjcmlwdFxuLi9ub2RlX21vZHVsZXNcXHVuaWNvZGUtY2Fub25pY2FsLXByb3BlcnR5LW5hbWVzLWVjbWFzY3JpcHRcbi4vbm9kZV9tb2R1bGVzXFx1bmljb2RlLW1hdGNoLXByb3BlcnR5LWVjbWFzY3JpcHRcbi4vbm9kZV9tb2R1bGVzXFx1bmljb2RlLW1hdGNoLXByb3BlcnR5LXZhbHVlLWVjbWFzY3JpcHRcbi4vbm9kZV9tb2R1bGVzXFx1bmljb2RlLXByb3BlcnR5LWFsaWFzZXMtZWNtYXNjcmlwdFxuLi9ub2RlX21vZHVsZXNcXHVucGlwZVxuLi9ub2RlX21vZHVsZXNcXHVudGlsZGlmeVxuLi9ub2RlX21vZHVsZXNcXHVwZGF0ZS1icm93c2Vyc2xpc3QtZGJcbi4vbm9kZV9tb2R1bGVzXFx1cmktanNcbi4vbm9kZV9tb2R1bGVzXFx1dGlsLWRlcHJlY2F0ZVxuLi9ub2RlX21vZHVsZXNcXHV0aWxzLW1lcmdlXG4uL25vZGVfbW9kdWxlc1xcdmFyeVxuLi9ub2RlX21vZHVsZXNcXHZpdGVcbi4vbm9kZV9tb2R1bGVzXFx2aXRlLXRzY29uZmlnLXBhdGhzXG4uL25vZGVfbW9kdWxlc1xcd2ViLXN0cmVhbXMtcG9seWZpbGxcbi4vbm9kZV9tb2R1bGVzXFx3ZWJpZGwtY29udmVyc2lvbnNcbi4vbm9kZV9tb2R1bGVzXFx3aGF0d2ctdXJsXG4uL25vZGVfbW9kdWxlc1xcd2hpY2hcbi4vbm9kZV9tb2R1bGVzXFx3aWRlLWFsaWduXG4uL25vZGVfbW9kdWxlc1xcd2lkZXN0LWxpbmVcbi4vbm9kZV9tb2R1bGVzXFx3cmFwLWFuc2lcbi4vbm9kZV9tb2R1bGVzXFx3cmFwcHlcbi4vbm9kZV9tb2R1bGVzXFx4ZGctZGVmYXVsdC1icm93c2VyXG4uL25vZGVfbW9kdWxlc1xceHRlbmRcbi4vbm9kZV9tb2R1bGVzXFx5YWxsaXN0XG4uL25vZGVfbW9kdWxlc1xceW9jdG8tcXVldWVcbi4vbm9kZV9tb2R1bGVzXFx6b2Rcbi4vcGFja2FnZS1sb2NrLmpzb25cbi4vcGFja2FnZS5qc29uXG4uL3JlYWN0LWxpYnJhcnkuanNvblxuLi9yb2xsdXAuY29uZmlnLmpzXG4uL3NyY1xuLi9zcmNcXEJ1YmJsZUNoYXQudHN4XG4uL3NyY1xcRnVsbFBhZ2VDaGF0LnRzeFxuLi9zcmNcXGluZGV4LnRzXG4uL3RzY29uZmlnLmpzb25cbi4veWFybi5sb2NrXG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFGQnY4QUFFNXpQNGJENlY3WmFKNHVkIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW4iLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW4ifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTksImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW4ifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowNTozNi4zMjhaIiwicmVzcG9uc2VfdGV4dCI6IkkgY2FuIHNlZSB0aGlzIGlzIGEgZGlmZmVyZW50IHByb2plY3Qgc3RydWN0dXJlLiBMZXQgbWUgY2hlY2sgdGhlIGN1cnJlbnQgc291cmNlIGZpbGVzOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6ImRhYTk3NTM0LWNhNGYtNGQ4Yy04ODk0LTBkMTQ2NjgwNDFjZiIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVNYWVpBWFNYMnN1aXg3bldTTDhnZVMiLCJ0b29sX25hbWUiOiJ2aWV3IiwiaW5wdXRfanNvbiI6IntcInBhdGhcIjogXCJzcmMvQnViYmxlQ2hhdC50c3hcIiwgXCJ0eXBlXCI6IFwiZmlsZVwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IlRoaXMgYXBwZWFycyB0byBiZSBhIFJlYWN0IHdyYXBwZXIgcHJvamVjdCBmb3IgdGhlIGNoYXRib3QuIExldCBtZSBjaGVjayB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbjpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IkhlcmUncyB0aGUgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHVwIHRvIDIgbGV2ZWxzIGRlZXAgaW4gc3JjLCBleGNsdWRpbmcgaGlkZGVuIGl0ZW1zOlxuc3JjL0J1YmJsZUNoYXQudHN4XG5zcmMvRnVsbFBhZ2VDaGF0LnRzeFxuc3JjL2luZGV4LnRzXG4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFNazZTZjdHWFRhbmRDelBZZk15SkJjIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW4iLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW4ifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MTksImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94LW1haW4ifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowNTo0MC44ODdaIiwicmVzcG9uc2VfdGV4dCI6IlRoaXMgYXBwZWFycyB0byBiZSBhIFJlYWN0IHdyYXBwZXIgcHJvamVjdCBmb3IgdGhlIGNoYXRib3QuIExldCBtZSBjaGVjayB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbjpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiIwYTQwY2FmNy1lZTFkLTQ3NDctOWFlOC1jOWI2ZjBhYzhiYzMiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFDNnk2Ylo4ZnVFekdyN2N1VnkxUmZEIiwidG9vbF9uYW1lIjoidmlldyIsImlucHV0X2pzb24iOiJ7XCJwYXRoXCI6IFwic3JjL0Z1bGxQYWdlQ2hhdC50c3hcIiwgXCJ0eXBlXCI6IFwiZmlsZVwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gc3JjL0J1YmJsZUNoYXQudHN4OlxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcnXG4gICAgIDJcdGltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCdWJibGVQcm9wc1xuICAgICA1XHRcbiAgICAgNlx0ZGVjbGFyZSBnbG9iYWwge1xuICAgICA3XHQgIG5hbWVzcGFjZSBKU1gge1xuICAgICA4XHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAgOVx0ICAgICAgJ2Zsb3dpc2UtY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEwXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxMVx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDEyXHQgICAgICA+XG4gICAgMTNcdCAgICB9XG4gICAgMTRcdCAgfVxuICAgIDE1XHR9XG4gICAgMTZcdFxuICAgIDE3XHR0eXBlIEJ1YmJsZUVsZW1lbnQgPSBIVE1MRWxlbWVudCAmIFByb3BzXG4gICAgMThcdFxuICAgIDE5XHRleHBvcnQgY29uc3QgQnViYmxlQ2hhdCA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgICAyMFx0ICBjb25zdCByZWYgPSB1c2VSZWY8QnViYmxlRWxlbWVudCB8IG51bGw+KG51bGwpXG4gICAgMjFcdCAgY29uc3QgW2lzSW5pdGlhbGl6ZWQsIHNldElzSW5pdGlhbGl6ZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgMjJcdFxuICAgIDIzXHQgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgMjRcdCAgICA7KGFzeW5jICgpID0+IHtcbiAgICAyNVx0ICAgICAgYXdhaXQgaW1wb3J0KCdjbWN0cy1jLWFnZW50LWVtYmVkZGluZy9kaXN0L3dlYi5qcycpXG4gICAgMjZcdCAgICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSlcbiAgICAyN1x0ICAgIH0pKClcbiAgICAyOFx0ICAgIHJldHVybiAoKSA9PiB7XG4gICAgMjlcdCAgICAgIHJlZi5jdXJyZW50Py5yZW1vdmUoKVxuICAgIDMwXHQgICAgfVxuICAgIDMxXHQgIH0sIFtdKVxuICAgIDMyXHRcbiAgICAzM1x0ICBjb25zdCBhdHRhY2hCdWJibGVUb0RvbSA9IHVzZUNhbGxiYWNrKChwcm9wczogUHJvcHMpID0+IHtcbiAgICAzNFx0ICAgIGNvbnN0IGJ1YmJsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFxuICAgIDM1XHQgICAgICAnZmxvd2lzZS1jaGF0Ym90J1xuICAgIDM2XHQgICAgKSBhcyBCdWJibGVFbGVtZW50XG4gICAgMzdcdCAgICByZWYuY3VycmVudCA9IGJ1YmJsZUVsZW1lbnRcbiAgICAzOFx0ICAgIGluamVjdFByb3BzVG9FbGVtZW50KHJlZi5jdXJyZW50LCBwcm9wcylcbiAgICAzOVx0ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHJlZi5jdXJyZW50KVxuICAgIDQwXHQgIH0sIFtdKVxuICAgIDQxXHRcbiAgICA0Mlx0ICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIDQzXHQgICAgaWYgKCFpc0luaXRpYWxpemVkKSByZXR1cm5cbiAgICA0NFx0ICAgIGlmICghcmVmLmN1cnJlbnQpIGF0dGFjaEJ1YmJsZVRvRG9tKHByb3BzKVxuICAgIDQ1XHQgICAgaW5qZWN0UHJvcHNUb0VsZW1lbnQocmVmLmN1cnJlbnQgYXMgQnViYmxlRWxlbWVudCwgcHJvcHMpXG4gICAgNDZcdCAgfSwgW2F0dGFjaEJ1YmJsZVRvRG9tLCBpc0luaXRpYWxpemVkLCBwcm9wc10pXG4gICAgNDdcdFxuICAgIDQ4XHQgIGNvbnN0IGluamVjdFByb3BzVG9FbGVtZW50ID0gKGVsZW1lbnQ6IEJ1YmJsZUVsZW1lbnQsIHByb3BzOiBQcm9wcykgPT4ge1xuICAgIDQ5XHQgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50LCBwcm9wcylcbiAgICA1MFx0ICB9XG4gICAgNTFcdFxuICAgIDUyXHQgIHJldHVybiBudWxsXG4gICAgNTNcdH1cbiAgICA1NFx0XG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiA1NFxuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxU1hZWkFYU1gyc3VpeDduV1NMOGdlUyJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluIiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluIn1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjE5LCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluIn19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDU6NDUuNDYxWiIsInJlc3BvbnNlX3RleHQiOiIiLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiNzkwNWFkNzctOTY0MS00ZjExLThkNmUtYzg1ODJhZmM1YWY5IiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxNXl1SHJ3M1dSaU40NkdFVXJraVIxaiIsInRvb2xfbmFtZSI6InZpZXciLCJpbnB1dF9qc29uIjoie1wicGF0aFwiOiBcInBhY2thZ2UuanNvblwiLCBcInR5cGVcIjogXCJmaWxlXCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSdzIHRoZSByZXN1bHQgb2YgcnVubmluZyBgY2F0IC1uYCBvbiBzcmMvRnVsbFBhZ2VDaGF0LnRzeDpcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCb3RQcm9wcyB9IGZyb20gJ2NtY3RzLWMtYWdlbnQtZW1iZWRkaW5nJ1xuICAgICAyXHRpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuICAgICAzXHRcbiAgICAgNFx0dHlwZSBQcm9wcyA9IEJvdFByb3BzICYge1xuICAgICA1XHQgIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllc1xuICAgICA2XHQgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICA3XHR9XG4gICAgIDhcdFxuICAgICA5XHRkZWNsYXJlIGdsb2JhbCB7XG4gICAgMTBcdCAgbmFtZXNwYWNlIEpTWCB7XG4gICAgMTFcdCAgICBpbnRlcmZhY2UgSW50cmluc2ljRWxlbWVudHMge1xuICAgIDEyXHQgICAgICAnZmxvd2lzZS1mdWxsY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEzXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxNFx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDE1XHQgICAgICA+ICYgeyBjbGFzcz86IHN0cmluZyB9XG4gICAgMTZcdCAgICB9XG4gICAgMTdcdCAgfVxuICAgIDE4XHR9XG4gICAgMTlcdFxuICAgIDIwXHR0eXBlIEZ1bGxQYWdlQ2hhdEVsZW1lbnQgPSBIVE1MRWxlbWVudCAmIFByb3BzXG4gICAgMjFcdFxuICAgIDIyXHRleHBvcnQgY29uc3QgRnVsbFBhZ2VDaGF0ID0gKHsgc3R5bGUsIGNsYXNzTmFtZSwgLi4uYXNzaWduYWJsZVByb3BzIH06IFByb3BzKSA9PiB7XG4gICAgMjNcdCAgY29uc3QgcmVmID0gdXNlUmVmPEZ1bGxQYWdlQ2hhdEVsZW1lbnQgfCBudWxsPihudWxsKVxuICAgIDI0XHRcbiAgICAyNVx0ICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIDI2XHQgICAgOyhhc3luYyAoKSA9PiB7XG4gICAgMjdcdCAgICAgIGF3YWl0IGltcG9ydCgnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcvZGlzdC93ZWIuanMnKVxuICAgIDI4XHQgICAgfSkoKVxuICAgIDI5XHQgIH0sIFtdKVxuICAgIDMwXHRcbiAgICAzMVx0ICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIDMyXHQgICAgaWYgKCFyZWYuY3VycmVudCkgcmV0dXJuXG4gICAgMzNcdCAgICBPYmplY3QuYXNzaWduKHJlZi5jdXJyZW50LCBhc3NpZ25hYmxlUHJvcHMpXG4gICAgMzRcdCAgfSwgW2Fzc2lnbmFibGVQcm9wc10pXG4gICAgMzVcdFxuICAgIDM2XHQgIHJldHVybiA8Zmxvd2lzZS1mdWxsY2hhdGJvdCByZWY9e3JlZn0gc3R5bGU9e3N0eWxlfSBjbGFzcz17Y2xhc3NOYW1lfSAvPlxuICAgIDM3XHR9XG4gICAgMzhcdFxuVG90YWwgbGluZXMgaW4gZmlsZTogMzhcbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUM2eTZiWjhmdUV6R3I3Y3VWeTFSZkQifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxOSwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA1OjQ5LjY1NloiLCJyZXNwb25zZV90ZXh0IjoiIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6ImJlNThlNmI5LTZhNDktNDY2Yi1iMjgwLWM5NTk1YmY3YjhjNiIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMTRmcUFuRXQ3Q2F0V2hycjJjU0oyblQiLCJ0b29sX25hbWUiOiJjb2RlYmFzZS1yZXRyaWV2YWwiLCJpbnB1dF9qc29uIjoie1wiaW5mb3JtYXRpb25fcmVxdWVzdFwiOiBcIkZpbmQgdGhlIEJvdFByb3BzIGFuZCBCdWJibGVQcm9wcyB0eXBlIGRlZmluaXRpb25zIGZyb20gdGhlIGNtY3RzLWMtYWdlbnQtZW1iZWRkaW5nIHBhY2thZ2UuIExvb2sgZm9yIHRoZSBjdXJyZW50IGludGVyZmFjZSBkZWZpbml0aW9ucyBhbmQgYW55IGV4aXN0aW5nIGNhbGxiYWNrIHByb3BzLlwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IkkgdW5kZXJzdGFuZCBub3cuIFRoaXMgaXMgYSBSZWFjdCB3cmFwcGVyIGxpYnJhcnkgdGhhdCBkZXBlbmRzIG9uIHRoZSBgY21jdHMtYy1hZ2VudC1lbWJlZGRpbmdgIHBhY2thZ2UuIFRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZSB1bmRlcmx5aW5nIGVtYmVkZGluZyBwYWNrYWdlIGZpcnN0LCBhbmQgdGhlbiB0aGlzIFJlYWN0IHdyYXBwZXIgd2lsbCBhdXRvbWF0aWNhbGx5IHN1cHBvcnQgaXQgc2luY2UgaXQgcGFzc2VzIHRocm91Z2ggYWxsIHByb3BzLlxuXG5MZXQgbWUgY2hlY2sgd2hhdCB0eXBlcyBhcmUgY3VycmVudGx5IGF2YWlsYWJsZSBmcm9tIHRoZSBlbWJlZGRpbmcgcGFja2FnZTpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gcGFja2FnZS5qc29uOlxuICAgICAxXHR7XG4gICAgIDJcdCAgXCJuYW1lXCI6IFwiY21jdHMtYy1hZ2VudC1lbWJlZGRpbmctcmVhY3RcIixcbiAgICAgM1x0ICBcInZlcnNpb25cIjogXCIxLjAuMzlcIixcbiAgICAgNFx0ICBcImRlc2NyaXB0aW9uXCI6IFwiUmVhY3QgbGlicmFyeSB0byBkaXNwbGF5IGZsb3dpc2UgY2hhdGJvdCBvbiB5b3VyIHdlYnNpdGVcIixcbiAgICAgNVx0ICBcIm1haW5cIjogXCJkaXN0L2luZGV4LmpzXCIsXG4gICAgIDZcdCAgXCJ0eXBlc1wiOiBcImRpc3QvaW5kZXguZC50c1wiLFxuICAgICA3XHQgIFwidHlwZVwiOiBcIm1vZHVsZVwiLFxuICAgICA4XHQgIFwic2NyaXB0c1wiOiB7XG4gICAgIDlcdCAgICBcImRldlwiOiBcInJvbGx1cCAtLXdhdGNoIC0tY29uZmlnIHJvbGx1cC5jb25maWcuanNcIixcbiAgICAxMFx0ICAgIFwiYnVpbGRcIjogXCJyb2xsdXAgLS1jb25maWcgcm9sbHVwLmNvbmZpZy5qc1wiLFxuICAgIDExXHQgICAgXCJsaW50XCI6IFwiZXNsaW50IC0tZml4IFxcXCJzcmMvKiovKi50cypcXFwiXCIsXG4gICAgMTJcdCAgICBcImJ1aWxkLWFuZC1wdWJsaXNoXCI6IFwieWFybiBpbnN0YWxsICYmIHlhcm4gYnVpbGQgJiYgbnBtIHB1Ymxpc2hcIlxuICAgIDEzXHQgIH0sXG4gICAgMTRcdCAgXCJrZXl3b3Jkc1wiOiBbXSxcbiAgICAxNVx0ICBcImxpY2Vuc2VcIjogXCJNSVRcIixcbiAgICAxNlx0ICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgMTdcdCAgICBcInJlYWN0XCI6IFwiMTguMi4wXCIsXG4gICAgMThcdCAgICBcInJlYWN0LWRvbVwiOiBcIjE4LjIuMFwiLFxuICAgIDE5XHQgICAgXCJAbGFkbGUvcmVhY3RcIjogXCIyLjUuMVwiXG4gICAgMjBcdCAgfSxcbiAgICAyMVx0ICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgMjJcdCAgICBcIkBiYWJlbC9wcmVzZXQtcmVhY3RcIjogXCI3LjE4LjZcIixcbiAgICAyM1x0ICAgIFwiQGJhYmVsL3ByZXNldC10eXBlc2NyaXB0XCI6IFwiNy4yMS40XCIsXG4gICAgMjRcdCAgICBcIkByb2xsdXAvcGx1Z2luLWJhYmVsXCI6IFwiNi4wLjNcIixcbiAgICAyNVx0ICAgIFwiQHJvbGx1cC9wbHVnaW4tbm9kZS1yZXNvbHZlXCI6IFwiMTUuMC4xXCIsXG4gICAgMjZcdCAgICBcIkByb2xsdXAvcGx1Z2luLXRlcnNlclwiOiBcIjAuNC4wXCIsXG4gICAgMjdcdCAgICBcIkByb2xsdXAvcGx1Z2luLXR5cGVzY3JpcHRcIjogXCIxMS4wLjBcIixcbiAgICAyOFx0ICAgIFwiQHR5cGVzL25vZGVcIjogXCIxOC4xNS4xMVwiLFxuICAgIDI5XHQgICAgXCJAdHlwZXMvcmVhY3RcIjogXCIxOC4wLjMyXCIsXG4gICAgMzBcdCAgICBcImNtY3RzLWMtYWdlbnQtZW1iZWRkaW5nXCI6IFwiMS4wLjM5XCIsXG4gICAgMzFcdCAgICBcImVzbGludFwiOiBcIjguMzcuMFwiLFxuICAgIDMyXHQgICAgXCJwcmV0dGllclwiOiBcIl4zLjQuMlwiLFxuICAgIDMzXHQgICAgXCJyb2xsdXBcIjogXCIzLjIwLjJcIixcbiAgICAzNFx0ICAgIFwicm9sbHVwLXBsdWdpbi10eXBlc2NyaXB0LXBhdGhzXCI6IFwiMS40LjBcIixcbiAgICAzNVx0ICAgIFwidHNsaWJcIjogXCIyLjUuMFwiLFxuICAgIDM2XHQgICAgXCJ0c3hcIjogXCIzLjEyLjZcIixcbiAgICAzN1x0ICAgIFwidHlwZXNjcmlwdFwiOiBcIjUuMC4zXCJcbiAgICAzOFx0ICB9LFxuICAgIDM5XHQgIFwicGVlckRlcGVuZGVuY2llc1wiOiB7XG4gICAgNDBcdCAgICBcImNtY3RzLWMtYWdlbnQtZW1iZWRkaW5nXCI6IFwiKlwiLFxuICAgIDQxXHQgICAgXCJyZWFjdFwiOiBcIjE4LnhcIlxuICAgIDQyXHQgIH0sXG4gICAgNDNcdCAgXCJwYWNrYWdlTWFuYWdlclwiOiBcInlhcm5AMS4yMi4yMitzaGE1MTIuYTZiMmY3OTA2YjcyMWJiYTNkNjdkNGFmZjA4M2RmMDRkYWQ2NGMzOTk3MDc4NDFiN2FjZjAwZjZiMTMzYjdhYzI0MjU1ZjI2NTJmYTIyYWUzNTM0MzI5ZGM2MTgwNTM0ZTk4ZDE3NDMyMDM3ZmY2ZmQxNDA1NTZlMmJiMzEzN2VcIlxuICAgIDQ0XHR9XG4gICAgNDVcdFxuVG90YWwgbGluZXMgaW4gZmlsZTogNDVcbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMTV5dUhydzNXUmlONDZHRVVya2lSMWoifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoxOSwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gtbWFpbiJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA1OjUzLjU1NloiLCJyZXNwb25zZV90ZXh0IjoiSSB1bmRlcnN0YW5kIG5vdy4gVGhpcyBpcyBhIFJlYWN0IHdyYXBwZXIgbGlicmFyeSB0aGF0IGRlcGVuZHMgb24gdGhlIGBjbWN0cy1jLWFnZW50LWVtYmVkZGluZ2AgcGFja2FnZS4gVGhlIGBvbkJlZm9yZVNlbmRgIHByb3AgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlIHVuZGVybHlpbmcgZW1iZWRkaW5nIHBhY2thZ2UgZmlyc3QsIGFuZCB0aGVuIHRoaXMgUmVhY3Qgd3JhcHBlciB3aWxsIGF1dG9tYXRpY2FsbHkgc3VwcG9ydCBpdCBzaW5jZSBpdCBwYXNzZXMgdGhyb3VnaCBhbGwgcHJvcHMuXG5cbkxldCBtZSBjaGVjayB3aGF0IHR5cGVzIGFyZSBjdXJyZW50bHkgYXZhaWxhYmxlIGZyb20gdGhlIGVtYmVkZGluZyBwYWNrYWdlOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjZlYTMzNzMwLTNjMDctNDA3Ni1iOTdlLTc4YThkMDE5M2Y0MyIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVBmQ2lTMnVSYTFQdjY5SkVTNUpBMVkiLCJ0b29sX25hbWUiOiJsYXVuY2gtcHJvY2VzcyIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwiYnVuIC0tYnVuIHRzYyAtLW5vRW1pdCAtLXNraXBMaWJDaGVjayBzcmMvY29tcG9uZW50cy9Cb3QudHN4XCIsIFwid2FpdFwiOiB0cnVlLCBcIm1heF93YWl0X3NlY29uZHNcIjogMzB9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiSSBzZWUgd2UncmUgYmFjayB0byB0aGUgb3JpZ2luYWwgd29ya3NwYWNlLiBMZXQgbWUgY2hlY2sgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBhbmQgdGVzdCBpdDpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IlRoZSBmb2xsb3dpbmcgY29kZSBzZWN0aW9ucyB3ZXJlIHJldHJpZXZlZDpcblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvQm90QnViYmxlLnRzeFxuLi4uXG4gICAgMThcdFxuICAgIDE5XHR0eXBlIFByb3BzID0ge1xuICAgIDIwXHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgIDIxXHQgIHNldE1lc3NhZ2VzPzogYW55O1xuICAgIDIyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAyM1x0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAyNFx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDI1XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAyNlx0ICBmaWxlQW5ub3RhdGlvbnM/OiBhbnk7XG4gICAgMjdcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMjhcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDI5XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzFcdCAgY2hhdEZlZWRiYWNrU3RhdHVzPzogYm9vbGVhbjtcbiAgICAzMlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAzM1x0ICBmZWVkYmFja0NvbG9yPzogc3RyaW5nO1xuICAgIDM0XHQgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICAzNVx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAgMzZcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgIDM3XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgICAzOFx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAzOVx0ICBoYW5kbGVBY3Rpb25DbGljazogKGxhYmVsOiBzdHJpbmcsIGFjdGlvbjogSUFjdGlvbiB8IHVuZGVmaW5lZCB8IG51bGwpID0+IHZvaWQ7XG4gICAgNDBcdCAgaGFuZGxlU291cmNlRG9jdW1lbnRzQ2xpY2s6IChzcmM6IGFueSkgPT4gdm9pZDtcbiAgICA0MVx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgICA0Mlx0ICBvbkNvbm5lY3RUb0h1bWFuQWR2aXNvcj86IChpZDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpID0+IHZvaWQ7XG4gICAgNDNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgNDRcdCAgcXVlc3Rpb24/OiBzdHJpbmc7XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL0JvdC50c3hcbi4uLlxuICAgIDU3XHRcbiAgICA1OFx0ZXhwb3J0IHR5cGUgVXBsb2Fkc0NvbmZpZyA9IHtcbiAgICA1OVx0ICBpbWdVcGxvYWRTaXplQW5kVHlwZXM6IElVcGxvYWRDb25zdHJhaXRzW107XG4gICAgNjBcdCAgZmlsZVVwbG9hZFNpemVBbmRUeXBlczogSVVwbG9hZENvbnN0cmFpdHNbXTtcbiAgICA2MVx0ICBpc0ltYWdlVXBsb2FkQWxsb3dlZDogYm9vbGVhbjtcbiAgICA2Mlx0ICBpc1NwZWVjaFRvVGV4dEVuYWJsZWQ6IGJvb2xlYW47XG4gICAgNjNcdCAgaXNSQUdGaWxlVXBsb2FkQWxsb3dlZDogYm9vbGVhbjtcbiAgICA2NFx0fTtcbiAgICA2NVx0XG4gICAgNjZcdHR5cGUgRmlsZVByZXZpZXdEYXRhID0gc3RyaW5nIHwgQXJyYXlCdWZmZXI7XG4gICAgNjdcdFxuICAgIDY4XHR0eXBlIEZpbGVQcmV2aWV3ID0ge1xuICAgIDY5XHQgIGRhdGE6IEZpbGVQcmV2aWV3RGF0YTtcbiAgICA3MFx0ICBtaW1lOiBzdHJpbmc7XG4gICAgNzFcdCAgbmFtZTogc3RyaW5nO1xuICAgIDcyXHQgIHByZXZpZXc6IHN0cmluZztcbiAgICA3M1x0ICB0eXBlOiBzdHJpbmc7XG4gICAgNzRcdH07XG4gICAgNzVcdFxuICAgIDc2XHR0eXBlIG1lc3NhZ2VUeXBlID0gJ2FwaU1lc3NhZ2UnIHwgJ3VzZXJNZXNzYWdlJyB8ICd1c2VybWVzc2FnZXdhaXRpbmcnIHwgJ2xlYWRDYXB0dXJlTWVzc2FnZSc7XG4gICAgNzdcdFxuICAgIDc4XHRleHBvcnQgdHlwZSBJQWdlbnRSZWFzb25pbmcgPSB7XG4gICAgNzlcdCAgYWdlbnROYW1lPzogc3RyaW5nO1xuICAgIDgwXHQgIG1lc3NhZ2VzPzogc3RyaW5nW107XG4gICAgODFcdCAgdXNlZFRvb2xzPzogYW55W107XG4gICAgODJcdCAgYXJ0aWZhY3RzPzogRmlsZVVwbG9hZFtdO1xuICAgIDgzXHQgIHNvdXJjZURvY3VtZW50cz86IGFueVtdO1xuICAgIDg0XHQgIGluc3RydWN0aW9ucz86IHN0cmluZztcbiAgICA4NVx0ICBuZXh0QWdlbnQ/OiBzdHJpbmc7XG4gICAgODZcdH07XG4gICAgODdcdFxuICAgIDg4XHRleHBvcnQgdHlwZSBJQWN0aW9uID0ge1xuICAgIDg5XHQgIGlkPzogc3RyaW5nO1xuICAgIDkwXHQgIGVsZW1lbnRzPzogQXJyYXk8e1xuICAgIDkxXHQgICAgdHlwZTogc3RyaW5nO1xuICAgIDkyXHQgICAgbGFiZWw6IHN0cmluZztcbiAgICA5M1x0ICB9PjtcbiAgICA5NFx0ICBtYXBwaW5nPzoge1xuICAgIDk1XHQgICAgYXBwcm92ZTogc3RyaW5nO1xuICAgIDk2XHQgICAgcmVqZWN0OiBzdHJpbmc7XG4gICAgOTdcdCAgICB0b29sQ2FsbHM6IGFueVtdO1xuICAgIDk4XHQgIH07XG4gICAgOTlcdH07XG4gICAxMDBcdFxuICAgMTAxXHRleHBvcnQgdHlwZSBGaWxlVXBsb2FkID0gT21pdDxGaWxlUHJldmlldywgJ3ByZXZpZXcnPjtcbiAgIDEwMlx0XG4gICAxMDNcdGV4cG9ydCB0eXBlIE1lc3NhZ2VUeXBlID0ge1xuICAgMTA0XHQgIG1lc3NhZ2VJZD86IHN0cmluZztcbiAgIDEwNVx0ICBtZXNzYWdlOiBzdHJpbmc7XG4gICAxMDZcdCAgdHlwZTogbWVzc2FnZVR5cGU7XG4gICAxMDdcdCAgc291cmNlRG9jdW1lbnRzPzogYW55O1xuICAgMTA4XHQgIGZpbGVBbm5vdGF0aW9ucz86IGFueTtcbiAgIDEwOVx0ICBmaWxlVXBsb2Fkcz86IFBhcnRpYWw8RmlsZVVwbG9hZD5bXTtcbiAgIDExMFx0ICBhcnRpZmFjdHM/OiBQYXJ0aWFsPEZpbGVVcGxvYWQ+W107XG4gICAxMTFcdCAgYWdlbnRSZWFzb25pbmc/OiBJQWdlbnRSZWFzb25pbmdbXTtcbiAgIDExMlx0ICB1c2VkVG9vbHM/OiBhbnlbXTtcbiAgIDExM1x0ICBhY3Rpb24/OiBJQWN0aW9uIHwgbnVsbDtcbiAgIDExNFx0ICByYXRpbmc/OiBGZWVkYmFja1JhdGluZ1R5cGU7XG4gICAxMTVcdCAgaWQ/OiBzdHJpbmc7XG4gICAxMTZcdCAgZm9sbG93VXBQcm9tcHRzPzogc3RyaW5nO1xuICAgMTE3XHQgIGRhdGVUaW1lPzogc3RyaW5nO1xuICAgMTE4XHR9O1xuICAgMTE5XHRcbiAgIDEyMFx0dHlwZSBJVXBsb2FkcyA9IHtcbiAgIDEyMVx0ICBkYXRhOiBGaWxlUHJldmlld0RhdGE7XG4gICAxMjJcdCAgdHlwZTogc3RyaW5nO1xuICAgMTIzXHQgIG5hbWU6IHN0cmluZztcbiAgIDEyNFx0ICBtaW1lOiBzdHJpbmc7XG4gICAxMjVcdCAgZmlsZT86IGFueTtcbiAgIDEyNlx0fVtdO1xuICAgMTI3XHRcbiAgIDEyOFx0dHlwZSBvYnNlcnZlckNvbmZpZ1R5cGUgPSAoYWNjZXNzb3I6IHN0cmluZyB8IGJvb2xlYW4gfCBvYmplY3QgfCBNZXNzYWdlVHlwZVtdKSA9PiB2b2lkO1xuICAgMTI5XHRleHBvcnQgdHlwZSBvYnNlcnZlcnNDb25maWdUeXBlID0gUmVjb3JkPCdvYnNlcnZlVXNlcklucHV0JyB8ICdvYnNlcnZlTG9hZGluZycgfCAnb2JzZXJ2ZU1lc3NhZ2VzJywgb2JzZXJ2ZXJDb25maWdUeXBlPjtcbiAgIDEzMFx0XG4gICAxMzFcdGV4cG9ydCB0eXBlIEJvdFByb3BzID0ge1xuICAgMTMyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgIDEzM1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgMTM0XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgIDEzNVx0ICBvbkJlZm9yZVNlbmQ/OiAobWVzc2FnZTogc3RyaW5nLCBib2R5OiBJbmNvbWluZ0lucHV0KSA9PiBQcm9taXNlPHsgbWVzc2FnZTogc3RyaW5nOyBib2R5OiBJbmNvbWluZ0lucHV0OyBjYW5jZWw/OiBib29sZWFuIH0+IHwgeyBtZXNzYWdlOiBzdHJpbmc7IGJvZHk6IEluY29taW5nSW5wdXQ7IGNhbmNlbD86IGJvb2xlYW4gfTtcbiAgIDEzNlx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgMTM3XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM4XHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzlcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgMTQwXHQgIGJvdE1lc3NhZ2U/OiBCb3RNZXNzYWdlVGhlbWU7XG4gICAxNDFcdCAgdXNlck1lc3NhZ2U/OiBVc2VyTWVzc2FnZVRoZW1lO1xuICAgMTQyXHQgIHRleHRJbnB1dD86IFRleHRJbnB1dFRoZW1lO1xuICAgMTQzXHQgIGZlZWRiYWNrPzogRmVlZGJhY2tUaGVtZTtcbiAgIDE0NFx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDVcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDZcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ3XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0OFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgMTQ5XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgIDE1MFx0ICB0aXRsZT86IHN0cmluZztcbiAgIDE1MVx0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgIDE1Mlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgIDE1M1x0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgIDE1NFx0ICBmb290ZXI/OiBGb290ZXJUaGVtZTtcbiAgIDE1NVx0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAxNTZcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcbiAgIDE1N1x0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgeyBwcm9tcHQ6IHN0cmluZyB9PjtcbiAgIDE1OFx0ICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XG4gICAxNTlcdCAgY2xlYXJDaGF0T25SZWxvYWQ/OiBib29sZWFuO1xuICAgMTYwXHQgIGRpc2NsYWltZXI/OiBEaXNjbGFpbWVyUG9wVXBUaGVtZTtcbiAgIDE2MVx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAxNjJcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAxNjNcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAxNjRcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAxNjVcdCAgaXNVc2VGQVE/OiBib29sZWFuO1xuICAgMTY2XHQgIGZpbGVQYXRoPzogc3RyaW5nO1xuICAgMTY3XHQgIHN1Z2dlc3RRdWVzdGlvbnM/OiBzdHJpbmc7XG4gICAxNjhcdCAgZXh0ZXJuYWxEYXRhPzogc3RyaW5nO1xuICAgMTY5XHQgIGNhbGxCYWNrRnVuY3Rpb24/OiAoZTogYW55KSA9PiB2b2lkO1xuICAgMTcwXHQgIGNhbGxCYWNrSWNvbj86IHN0cmluZztcbiAgIDE3MVx0fTtcbiAgIDE3Mlx0XG4gICAxNzNcdGV4cG9ydCB0eXBlIExlYWRzQ29uZmlnID0ge1xuICAgMTc0XHQgIHN0YXR1czogYm9vbGVhbjtcbiAgIDE3NVx0ICB0aXRsZT86IHN0cmluZztcbiAgIDE3Nlx0ICBuYW1lPzogYm9vbGVhbjtcbiAgIDE3N1x0ICBlbWFpbD86IGJvb2xlYW47XG4gICAxNzhcdCAgcGhvbmU/OiBib29sZWFuO1xuICAgMTc5XHQgIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nO1xuICAgMTgwXHR9O1xuLi4uXG4gICAyNjBcdFxuICAgMjYxXHQgIG9uTW91bnQoKCkgPT4ge1xuICAgMjYyXHQgICAgaWYgKGJvdFByb3BzPy5vYnNlcnZlcnNDb25maWcpIHtcbiAgIDI2M1x0ICAgICAgY29uc3QgeyBvYnNlcnZlVXNlcklucHV0LCBvYnNlcnZlTG9hZGluZywgb2JzZXJ2ZU1lc3NhZ2VzIH0gPSBib3RQcm9wcy5vYnNlcnZlcnNDb25maWc7XG4gICAyNjRcdCAgICAgIHR5cGVvZiBvYnNlcnZlVXNlcklucHV0ID09PSAnZnVuY3Rpb24nICYmXG4gICAyNjVcdCAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbGlkL3JlYWN0aXZpdHlcbiAgIDI2Nlx0ICAgICAgICBjcmVhdGVNZW1vKCgpID0+IHtcbiAgIDI2N1x0ICAgICAgICAgIG9ic2VydmVVc2VySW5wdXQodXNlcklucHV0KCkpO1xuICAgMjY4XHQgICAgICAgIH0pO1xuICAgMjY5XHQgICAgICB0eXBlb2Ygb2JzZXJ2ZUxvYWRpbmcgPT09ICdmdW5jdGlvbicgJiZcbiAgIDI3MFx0ICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29saWQvcmVhY3Rpdml0eVxuICAgMjcxXHQgICAgICAgIGNyZWF0ZU1lbW8oKCkgPT4ge1xuICAgMjcyXHQgICAgICAgICAgb2JzZXJ2ZUxvYWRpbmcobG9hZGluZygpKTtcbiAgIDI3M1x0ICAgICAgICB9KTtcbiAgIDI3NFx0ICAgICAgdHlwZW9mIG9ic2VydmVNZXNzYWdlcyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgMjc1XHQgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb2xpZC9yZWFjdGl2aXR5XG4gICAyNzZcdCAgICAgICAgY3JlYXRlTWVtbygoKSA9PiB7XG4gICAyNzdcdCAgICAgICAgICBvYnNlcnZlTWVzc2FnZXMobWVzc2FnZXMoKSk7XG4gICAyNzhcdCAgICAgICAgfSk7XG4gICAyNzlcdCAgICB9XG4gICAyODBcdFxuICAgMjgxXHQgICAgaWYgKCFib3R0b21TcGFjZXIpIHJldHVybjtcbiAgIDI4Mlx0ICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgMjgzXHQgICAgICBjaGF0Q29udGFpbmVyPy5zY3JvbGxUbygwLCBjaGF0Q29udGFpbmVyLnNjcm9sbEhlaWdodCk7XG4gICAyODRcdCAgICB9LCA1MCk7XG4gICAyODVcdCAgfSk7XG4uLi5cbiAgIDQ1N1x0XG4gICA0NThcdCAgLy8gSGFuZGxlIGVycm9yc1xuICAgNDU5XHQgIGNvbnN0IGhhbmRsZUVycm9yID0gKG1lc3NhZ2UgPSAnT29wcyEgVGhlcmUgc2VlbXMgdG8gYmUgYW4gZXJyb3IuIFBsZWFzZSB0cnkgYWdhaW4uJykgPT4ge1xuICAgNDYwXHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNDYxXHQgICAgICBjb25zdCBtZXNzYWdlczogTWVzc2FnZVR5cGVbXSA9IFsuLi5wcmV2TWVzc2FnZXMsIHsgbWVzc2FnZTogcHJvcHMuZXJyb3JNZXNzYWdlIHx8IG1lc3NhZ2UsIHR5cGU6ICdhcGlNZXNzYWdlJyB9XTtcbiAgIDQ2Mlx0ICAgICAgYWRkQ2hhdE1lc3NhZ2UobWVzc2FnZXMpO1xuICAgNDYzXHQgICAgICByZXR1cm4gbWVzc2FnZXM7XG4gICA0NjRcdCAgICB9KTtcbiAgIDQ2NVx0ICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgNDY2XHQgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcbiAgIDQ2N1x0ICAgIHNldFVzZXJJbnB1dCgnJyk7XG4gICA0NjhcdCAgICBzZXRVcGxvYWRlZEZpbGVzKFtdKTtcbiAgIDQ2OVx0ICAgIHNjcm9sbFRvQm90dG9tKCk7XG4gICA0NzBcdCAgfTtcbiAgIDQ3MVx0XG4gICA0NzJcdCAgY29uc3QgaGFuZGxlRGlzY2xhaW1lckFjY2VwdCA9ICgpID0+IHtcbiAgIDQ3M1x0ICAgIHNldERpc2NsYWltZXJQb3B1cE9wZW4oZmFsc2UpOyAvLyBDbG9zZSB0aGUgZGlzY2xhaW1lciBwb3B1cFxuICAgNDc0XHQgICAgc2V0Q29va2llKCdjaGF0Ym90RGlzY2xhaW1lcicsICd0cnVlJywgMzY1KTsgLy8gRGlzY2xhaW1lciBhY2NlcHRlZFxuICAgNDc1XHQgIH07XG4gICA0NzZcdFxuICAgNDc3XHQgIGNvbnN0IHByb21wdENsaWNrID0gKHByb21wdDogc3RyaW5nKSA9PiB7XG4gICA0NzhcdCAgICBoYW5kbGVTdWJtaXQocHJvbXB0KTtcbiAgIDQ3OVx0ICB9O1xuICAgNDgwXHRcbiAgIDQ4MVx0ICBjb25zdCBmb2xsb3dVcFByb21wdENsaWNrID0gKHByb21wdDogc3RyaW5nKSA9PiB7XG4gICA0ODJcdCAgICBzZXRGb2xsb3dVcFByb21wdHMoW10pO1xuICAgNDgzXHQgICAgaGFuZGxlU3VibWl0KHByb21wdCk7XG4gICA0ODRcdCAgfTtcbi4uLlxuICAgODQ2XHRcbiAgIDg0N1x0ICAgIC8vIENhbGwgb25CZWZvcmVTZW5kIGNhbGxiYWNrIGlmIHByb3ZpZGVkXG4gICA4NDhcdCAgICBpZiAocHJvcHMub25CZWZvcmVTZW5kKSB7XG4gICA4NDlcdCAgICAgIHRyeSB7XG4gICA4NTBcdCAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvcHMub25CZWZvcmVTZW5kKHZhbHVlLCBib2R5KTtcbiAgIDg1MVx0XG4gICA4NTJcdCAgICAgICAgLy8gSWYgdGhlIGNhbGxiYWNrIHJldHVybnMgY2FuY2VsOiB0cnVlLCBzdG9wIHRoZSBzdWJtaXNzaW9uXG4gICA4NTNcdCAgICAgICAgaWYgKHJlc3VsdC5jYW5jZWwpIHtcbiAgIDg1NFx0ICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgODU1XHQgICAgICAgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcbiAgIDg1Nlx0ICAgICAgICAgIHJldHVybjtcbiAgIDg1N1x0ICAgICAgICB9XG4gICA4NThcdFxuICAgODU5XHQgICAgICAgIC8vIFVwZGF0ZSB0aGUgbWVzc2FnZSBhbmQgYm9keSB3aXRoIHRoZSBtb2RpZmllZCB2YWx1ZXNcbiAgIDg2MFx0ICAgICAgICB2YWx1ZSA9IHJlc3VsdC5tZXNzYWdlO1xuICAgODYxXHQgICAgICAgIE9iamVjdC5hc3NpZ24oYm9keSwgcmVzdWx0LmJvZHkpO1xuICAgODYyXHRcbiAgIDg2M1x0ICAgICAgICAvLyBVcGRhdGUgdGhlIHVzZXIgbWVzc2FnZSBpbiB0aGUgVUkgaWYgaXQgd2FzIG1vZGlmaWVkXG4gICA4NjRcdCAgICAgICAgaWYgKHJlc3VsdC5tZXNzYWdlICE9PSB2YWx1ZSkge1xuICAgODY1XHQgICAgICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgODY2XHQgICAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA4NjdcdCAgICAgICAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSB7XG4gICA4NjhcdCAgICAgICAgICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0ubWVzc2FnZSA9IHJlc3VsdC5tZXNzYWdlO1xuICAgODY5XHQgICAgICAgICAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDg3MFx0ICAgICAgICAgICAgfVxuICAgODcxXHQgICAgICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA4NzJcdCAgICAgICAgICB9KTtcbiAgIDg3M1x0ICAgICAgICB9XG4gICA4NzRcdCAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICA4NzVcdCAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gb25CZWZvcmVTZW5kIGNhbGxiYWNrOicsIGVycm9yKTtcbiAgIDg3Nlx0ICAgICAgICBoYW5kbGVFcnJvcignRXJyb3IgcHJvY2Vzc2luZyBtZXNzYWdlIGJlZm9yZSBzZW5kJyk7XG4gICA4NzdcdCAgICAgICAgcmV0dXJuO1xuICAgODc4XHQgICAgICB9XG4gICA4NzlcdCAgICB9XG4gICA4ODBcdFxuICAgODgxXHQgICAgLy8gQ2hlY2sgbmV0d29yayBzdGF0dXMgYmVmb3JlIG1ha2luZyB0aGUgcmVxdWVzdFxuICAgODgyXHQgICAgaWYgKCFuYXZpZ2F0b3Iub25MaW5lKSB7XG4gICA4ODNcdCAgICAgIHNldElzTmV0d29ya0Vycm9yKHRydWUpO1xuICAgODg0XHQgICAgICBzZXROZXR3b3JrRXJyb3JNZXNzYWdlKCdN4bqldCBr4bq/dCBu4buRaSBt4bqhbmcnKTtcbiAgIDg4NVx0ICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgODg2XHQgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDg4N1x0ICAgICAgICBhbGxNZXNzYWdlcy5wdXNoKHtcbiAgIDg4OFx0ICAgICAgICAgIG1lc3NhZ2U6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBraMO0bmcgY8OzIGvhur90IG7hu5FpIG3huqFuZy4gVnVpIGzDsm5nIGtp4buDbSB0cmEgbOG6oWkga+G6v3QgbuG7kWkgdsOgIHRo4butIGzhuqFpIHNhdS4nLFxuICAgODg5XHQgICAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnLFxuICAgODkwXHQgICAgICAgICAgZGF0ZVRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgIDg5MVx0ICAgICAgICB9KTtcbiAgIDg5Mlx0ICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA4OTNcdCAgICAgIH0pO1xuICAgODk0XHQgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgIDg5NVx0ICAgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcbiAgIDg5Nlx0ICAgICAgcmV0dXJuO1xuICAgODk3XHQgICAgfVxuLi4uXG5QYXRoOiBzcmMvY29uc3RhbnRzLnRzXG4gICAgIDFcdC8vIE5vdGU6IFVzaW5nIGlubGluZSB0eXBlIGRlZmluaXRpb24gdG8gYXZvaWQgSlNYIGNvbXBpbGF0aW9uIGlzc3Vlc1xuICAgICAyXHQvLyBUaGlzIG1hdGNoZXMgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcyBmcm9tIHRoZSBvcmlnaW5hbCBjb2RlYmFzZVxuICAgICAzXHR0eXBlIEJ1YmJsZVByb3BzID0ge1xuICAgICA0XHQgIC8vIENvcmUgQm90IHByb3BlcnRpZXNcbiAgICAgNVx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDZcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgN1x0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgOVx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICAxMFx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgIDExXHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICAxMlx0ICBib3RNZXNzYWdlPzogYW55O1xuICAgIDEzXHQgIHVzZXJNZXNzYWdlPzogYW55O1xuICAgIDE0XHQgIHRleHRJbnB1dD86IGFueTtcbiAgICAxNVx0ICBmZWVkYmFjaz86IGFueTtcbiAgICAxNlx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTdcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE5XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgICAyMFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIDIxXHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgICAyMlx0ICB0aXRsZT86IHN0cmluZztcbiAgICAyM1x0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgICAyNFx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAyNVx0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgICAyNlx0ICBmb290ZXI/OiBhbnk7XG4gICAgMjdcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuLi4uXG4gICAgNDdcdFxuICAgIDQ4XHQvKipcbiAgICA0OVx0ICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhdGJvdCBidWJibGUgY29tcG9uZW50LlxuICAgIDUwXHQgKiBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXMgd2hpbGUga2VlcGluZ1xuICAgIDUxXHQgKiByZXF1aXJlZCBwcm9wZXJ0aWVzIGV4cGxpY2l0bHkgdW5kZWZpbmVkIHRvIGVuZm9yY2UgcHJvcGVyIGNvbmZpZ3VyYXRpb24uXG4gICAgNTJcdCAqL1xuICAgIDUzXHRleHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgICA1NFx0ICAvLyBDb3JlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gLSBtdXN0IGJlIHNldCBieSBpbXBsZW1lbnRlclxuICAgIDU1XHQgIGNoYXRmbG93aWQ6ICcnLFxuICAgIDU2XHRcbiAgICA1N1x0ICAvLyBBUEkgY29uZmlndXJhdGlvblxuICAgIDU4XHQgIGFwaUhvc3Q6IHVuZGVmaW5lZCxcbiAgICA1OVx0ICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgICA2MFx0ICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDYxXHRcbiAgICA2Mlx0ICAvLyBVSSB0aGVtaW5nIGFuZCBjdXN0b21pemF0aW9uXG4gICAgNjNcdCAgdGhlbWU6IHVuZGVmaW5lZCxcbiAgICA2NFx0XG4gICAgNjVcdCAgLy8gRXh0ZXJuYWwgaW50ZWdyYXRpb25zXG4gICAgNjZcdCAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcbiAgICA2N1x0ICByb29tSWRzOiB7fSxcbiAgICA2OFx0XG4gICAgNjlcdCAgLy8gRmVhdHVyZSBmbGFncyBhbmQgb3B0aW9uYWwgZnVuY3Rpb25hbGl0eVxuICAgIDcwXHQgIGlzVXNlRkFROiBmYWxzZSxcbiAgICA3MVx0XG4gICAgNzJcdCAgLy8gRmlsZSBhbmQgY29udGVudCBjb25maWd1cmF0aW9uXG4gICAgNzNcdCAgZmlsZVBhdGg6ICcnLFxuICAgIDc0XHQgIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxuICAgIDc1XHQgIGV4dGVybmFsRGF0YTogJycsXG4gICAgNzZcdCAgY2FsbEJhY2tJY29uOiAnJyxcbiAgICA3N1x0ICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG4uLi5cblBhdGg6IHNyYy9GdWxsUGFnZUNoYXQudHN4XG4gICAgIDFcdGltcG9ydCB0eXBlIHsgQm90UHJvcHMgfSBmcm9tICdjbWN0cy1jLWFnZW50LWVtYmVkZGluZydcbiAgICAgMlx0aW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCb3RQcm9wcyAmIHtcbiAgICAgNVx0ICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgNlx0ICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgICAgN1x0fVxuICAgICA4XHRcbiAgICAgOVx0ZGVjbGFyZSBnbG9iYWwge1xuICAgIDEwXHQgIG5hbWVzcGFjZSBKU1gge1xuICAgIDExXHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAxMlx0ICAgICAgJ2Zsb3dpc2UtZnVsbGNoYXRib3QnOiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcbiAgICAxM1x0ICAgICAgICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD4sXG4gICAgMTRcdCAgICAgICAgSFRNTEVsZW1lbnRcbiAgICAxNVx0ICAgICAgPiAmIHsgY2xhc3M/OiBzdHJpbmcgfVxuICAgIDE2XHQgICAgfVxuICAgIDE3XHQgIH1cbiAgICAxOFx0fVxuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0FnZW50UmVhc29uaW5nQnViYmxlLnRzeFxuICAgICAxXHRpbXBvcnQgeyBGb3IsIG9uTW91bnQgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCB7IE1hcmtlZCB9IGZyb20gJ0B0cy1zdGFjay9tYXJrZG93bic7XG4gICAgIDNcdGltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICcuLi9Cb3QnO1xuICAgICA0XHRpbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuICAgICA1XHRcbiAgICAgNlx0dHlwZSBQcm9wcyA9IHtcbiAgICAgN1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgICA4XHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAgOVx0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAxMFx0ICBhZ2VudE5hbWU6IHN0cmluZztcbiAgICAxMVx0ICBhZ2VudE1lc3NhZ2U6IHN0cmluZztcbiAgICAxMlx0ICBhZ2VudEFydGlmYWN0cz86IEZpbGVVcGxvYWRbXTtcbiAgICAxM1x0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTRcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDE2XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDE3XHR9O1xuICAgIDE4XHRcbiAgICAxOVx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjZjdmOGZmJztcbiAgICAyMFx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjMzAzMjM1JztcbiAgICAyMVx0Y29uc3QgZGVmYXVsdEZvbnRTaXplID0gMTY7XG4uLi5cblBhdGg6IHNyYy93aW5kb3cudHNcbiAgICAgMVx0aW1wb3J0IHsgb2JzZXJ2ZXJzQ29uZmlnVHlwZSB9IGZyb20gJy4vY29tcG9uZW50cy9Cb3QnO1xuICAgICAyXHRpbXBvcnQgeyBCdWJibGVUaGVtZSB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAgM1x0XG4gICAgIDRcdC8qIGVzbGludC1kaXNhYmxlIHNvbGlkL3JlYWN0aXZpdHkgKi9cbiAgICAgNVx0dHlwZSBCb3RQcm9wcyA9IHtcbiAgICAgNlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDdcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgOFx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDlcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAxMFx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgIDExXHQgIHRoZW1lPzogQnViYmxlVGhlbWU7XG4gICAgMTJcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAgMTNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgMTRcdCAgaXNVc2VGQVE/OiB1bmRlZmluZWQ7XG4gICAgMTVcdH07XG4uLi5cblBhdGg6IHNyYy9CdWJibGVDaGF0LnRzeFxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcnXG4gICAgIDJcdGltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCdWJibGVQcm9wc1xuICAgICA1XHRcbiAgICAgNlx0ZGVjbGFyZSBnbG9iYWwge1xuICAgICA3XHQgIG5hbWVzcGFjZSBKU1gge1xuICAgICA4XHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAgOVx0ICAgICAgJ2Zsb3dpc2UtY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEwXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxMVx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDEyXHQgICAgICA+XG4gICAgMTNcdCAgICB9XG4gICAgMTRcdCAgfVxuICAgIDE1XHR9XG4gICAgMTZcdFxuICAgIDE3XHR0eXBlIEJ1YmJsZUVsZW1lbnQgPSBIVE1MRWxlbWVudCAmIFByb3BzXG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvR3Vlc3RCdWJibGUudHN4XG4gICAgIDFcdGltcG9ydCB7IEZvciwgU2hvdywgb25Nb3VudCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHsgQXZhdGFyIH0gZnJvbSAnLi4vYXZhdGFycy9BdmF0YXInO1xuICAgICAzXHRpbXBvcnQgeyBNYXJrZWQgfSBmcm9tICdAdHMtc3RhY2svbWFya2Rvd24nO1xuICAgICA0XHRpbXBvcnQgeyBGaWxlVXBsb2FkLCBNZXNzYWdlVHlwZSB9IGZyb20gJy4uL0JvdCc7XG4gICAgIDVcdGltcG9ydCB7IEF0dGFjaG1lbnRJY29uIH0gZnJvbSAnLi4vaWNvbnMnO1xuICAgICA2XHRcbiAgICAgN1x0dHlwZSBQcm9wcyA9IHtcbiAgICAgOFx0ICBtZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgICAgOVx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDEwXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAxMVx0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAxMlx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAxM1x0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMTRcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAxN1x0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAxOFx0fTtcbiAgICAxOVx0XG4gICAgMjBcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnIzNCODFGNic7XG4gICAgMjFcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnI2ZmZmZmZic7XG4gICAgMjJcdGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IDE2O1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlQnV0dG9uLnRzeFxuICAgICAxXHRpbXBvcnQgeyBjcmVhdGVTaWduYWwsIGNyZWF0ZUVmZmVjdCwgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHsgaXNOb3REZWZpbmVkLCBnZXRCdWJibGVCdXR0b25TaXplIH0gZnJvbSAnQC91dGlscy9pbmRleCc7XG4gICAgIDNcdGltcG9ydCB7IEJ1dHRvblRoZW1lIH0gZnJvbSAnLi4vdHlwZXMnO1xuICAgICA0XHRcbiAgICAgNVx0dHlwZSBQcm9wcyA9IEJ1dHRvblRoZW1lICYge1xuICAgICA2XHQgIGlzQm90T3BlbmVkOiBib29sZWFuO1xuICAgICA3XHQgIHRvZ2dsZUJvdDogKCkgPT4gdm9pZDtcbiAgICAgOFx0ICBzZXRCdXR0b25Qb3NpdGlvbjogKHBvc2l0aW9uOiB7IGJvdHRvbTogbnVtYmVyOyByaWdodDogbnVtYmVyIH0pID0+IHZvaWQ7XG4gICAgIDlcdCAgZHJhZ0FuZERyb3A6IGJvb2xlYW47XG4gICAgMTBcdCAgYXV0b09wZW4/OiBib29sZWFuOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgdG8gY29udHJvbCBhdXRvbWF0aWMgd2luZG93IG9wZW5pbmdcbiAgICAxMVx0ICBvcGVuRGVsYXk/OiBudW1iZXI7IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3IgZGVsYXkgdGltZSBpbiBzZWNvbmRzXG4gICAgMTJcdCAgYXV0b09wZW5Pbk1vYmlsZT86IGJvb2xlYW47IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3Igb3BlbmluZyBvbiBtb2JpbGVcbiAgICAxM1x0fTtcbiAgICAxNFx0XG4gICAgMTVcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAxNlx0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgMTdcdGNvbnN0IGRlZmF1bHRCb3R0b20gPSAyMDtcbiAgICAxOFx0Y29uc3QgZGVmYXVsdFJpZ2h0ID0gMjA7XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvdHlwZXMudHNcbiAgICAgMVx0ZXhwb3J0IHR5cGUgQnViYmxlUGFyYW1zID0ge1xuICAgICAyXHQgIHRoZW1lPzogQnViYmxlVGhlbWU7XG4gICAgIDNcdH07XG4gICAgIDRcdFxuICAgICA1XHRleHBvcnQgdHlwZSBCdWJibGVUaGVtZSA9IHtcbiAgICAgNlx0ICBjaGF0V2luZG93PzogQ2hhdFdpbmRvd1RoZW1lO1xuICAgICA3XHQgIGJ1dHRvbj86IEJ1dHRvblRoZW1lO1xuICAgICA4XHQgIHRvb2x0aXA/OiBUb29sVGlwVGhlbWU7XG4gICAgIDlcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgIDEwXHQgIGN1c3RvbUNTUz86IHN0cmluZztcbiAgICAxMVx0fTtcbiAgICAxMlx0XG4gICAgMTNcdGV4cG9ydCB0eXBlIFRleHRJbnB1dFRoZW1lID0ge1xuICAgIDE0XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTZcdCAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgMTdcdCAgc2VuZEJ1dHRvbkNvbG9yPzogc3RyaW5nO1xuICAgIDE4XHQgIG1heENoYXJzPzogbnVtYmVyO1xuICAgIDE5XHQgIG1heENoYXJzV2FybmluZ01lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMjBcdCAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgICAyMVx0ICBzZW5kTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyMlx0ICBzZW5kU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyM1x0ICByZWNlaXZlTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyNFx0ICByZWNlaXZlU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyNVx0fTtcbiAgICAyNlx0XG4gICAgMjdcdGV4cG9ydCB0eXBlIFVzZXJNZXNzYWdlVGhlbWUgPSB7XG4gICAgMjhcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDI5XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAzMVx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMzJcdH07XG4gICAgMzNcdFxuICAgIDM0XHRleHBvcnQgdHlwZSBCb3RNZXNzYWdlVGhlbWUgPSB7XG4gICAgMzVcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDM2XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzN1x0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAzOFx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMzlcdH07XG4gICAgNDBcdFxuICAgIDQxXHRleHBvcnQgdHlwZSBGb290ZXJUaGVtZSA9IHtcbiAgICA0Mlx0ICBzaG93Rm9vdGVyPzogYm9vbGVhbjtcbiAgICA0M1x0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgNDRcdCAgdGV4dD86IHN0cmluZztcbiAgICA0NVx0ICBjb21wYW55Pzogc3RyaW5nO1xuICAgIDQ2XHQgIGNvbXBhbnlMaW5rPzogc3RyaW5nO1xuICAgIDQ3XHR9O1xuICAgIDQ4XHRcbiAgICA0OVx0ZXhwb3J0IHR5cGUgRmVlZGJhY2tUaGVtZSA9IHtcbiAgICA1MFx0ICBjb2xvcj86IHN0cmluZztcbiAgICA1MVx0fTtcbiAgICA1Mlx0XG4gICAgNTNcdGV4cG9ydCB0eXBlIENoYXRXaW5kb3dUaGVtZSA9IHtcbiAgICA1NFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIDU1XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjsgLy8gcGFyYW1ldGVyIHRvIHNob3cgYWdlbnQgcmVhc29uaW5ncyB3aGVuIHVzaW5nIGFnZW50Zmxvd3NcbiAgICA1Nlx0ICB0aXRsZT86IHN0cmluZztcbiAgICA1N1x0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgICA1OFx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICA1OVx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgIDYwXHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICA2MVx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgNjJcdCAgYmFja2dyb3VuZEltYWdlPzogc3RyaW5nO1xuICAgIDYzXHQgIGhlaWdodD86IG51bWJlcjtcbiAgICA2NFx0ICB3aWR0aD86IG51bWJlcjtcbiAgICA2NVx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICA2Nlx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAgNjdcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgICA2OFx0ICB0ZXh0SW5wdXQ/OiBUZXh0SW5wdXRUaGVtZTtcbiAgICA2OVx0ICBmZWVkYmFjaz86IEZlZWRiYWNrVGhlbWU7XG4gICAgNzBcdCAgZm9vdGVyPzogRm9vdGVyVGhlbWU7XG4gICAgNzFcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgIDcyXHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgICA3M1x0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdO1xuICAgIDc0XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgICA3NVx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAgNzZcdCAgZGF0ZVRpbWVUb2dnbGU/OiBEYXRlVGltZVRvZ2dsZVRoZW1lO1xuICAgIDc3XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDc4XHR9O1xuICAgIDc5XHRcbiAgICA4MFx0ZXhwb3J0IHR5cGUgQnV0dG9uVGhlbWUgPSB7XG4gICAgODFcdCAgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCBudW1iZXI7IC8vIGN1c3RvbSBzaXplIG9mIGNoYXRib3QgaW4gcGl4ZWxzXG4gICAgODJcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDgzXHQgIGljb25Db2xvcj86IHN0cmluZztcbiAgICA4NFx0ICBjdXN0b21JY29uU3JjPzogc3RyaW5nO1xuICAgIDg1XHQgIGJvdHRvbT86IG51bWJlcjtcbiAgICA4Nlx0ICByaWdodD86IG51bWJlcjtcbiAgICA4N1x0ICBkcmFnQW5kRHJvcD86IGJvb2xlYW47IC8vIHBhcmFtZXRlciB0byBlbmFibGUgZHJhZyBhbmQgZHJvcCh0cnVlIG9yIGZhbHNlKVxuICAgIDg4XHQgIGF1dG9XaW5kb3dPcGVuPzogYXV0b1dpbmRvd09wZW5UaGVtZTtcbiAgICA4OVx0fTtcbiAgICA5MFx0XG4gICAgOTFcdGV4cG9ydCB0eXBlIFRvb2xUaXBUaGVtZSA9IHtcbiAgICA5Mlx0ICBzaG93VG9vbHRpcD86IGJvb2xlYW47IC8vIHBhcmFtZXRlciB0byBlbmFibGUgdG9vbHRpcCh0cnVlIG9yIGZhbHNlKVxuICAgIDkzXHQgIHRvb2x0aXBNZXNzYWdlPzogc3RyaW5nO1xuICAgIDk0XHQgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgOTVcdCAgdG9vbHRpcFRleHRDb2xvcj86IHN0cmluZztcbiAgICA5Nlx0ICB0b29sdGlwRm9udFNpemU/OiBudW1iZXI7XG4gICAgOTdcdH07XG4gICAgOThcdFxuICAgIDk5XHRleHBvcnQgdHlwZSBhdXRvV2luZG93T3BlblRoZW1lID0ge1xuICAgMTAwXHQgIGF1dG9PcGVuPzogYm9vbGVhbjsgLy9wYXJhbWV0ZXIgdG8gY29udHJvbCBhdXRvbWF0aWMgd2luZG93IG9wZW5pbmdcbiAgIDEwMVx0ICBvcGVuRGVsYXk/OiBudW1iZXI7IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3IgZGVsYXkgdGltZSBpbiBzZWNvbmRzXG4gICAxMDJcdCAgYXV0b09wZW5Pbk1vYmlsZT86IGJvb2xlYW47IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3Igb3BlbmluZyBvbiBtb2JpbGVcbiAgIDEwM1x0fTtcbiAgIDEwNFx0XG4gICAxMDVcdGV4cG9ydCB0eXBlIERpc2NsYWltZXJQb3BVcFRoZW1lID0ge1xuICAgMTA2XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTA3XHQgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMDhcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTA5XHQgIGJ1dHRvbkNvbG9yPzogc3RyaW5nO1xuICAgMTEwXHQgIGJ1dHRvblRleHRDb2xvcj86IHN0cmluZztcbiAgIDExMVx0ICBidXR0b25UZXh0Pzogc3RyaW5nO1xuICAgMTEyXHQgIGJsdXJyZWRCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxMTNcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTE0XHR9O1xuICAgMTE1XHRcbiAgIDExNlx0ZXhwb3J0IHR5cGUgRGF0ZVRpbWVUb2dnbGVUaGVtZSA9IHtcbiAgIDExN1x0ICBkYXRlPzogYm9vbGVhbjtcbiAgIDExOFx0ICB0aW1lPzogYm9vbGVhbjtcbiAgIDExOVx0fTtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBTaG93LCBzcGxpdFByb3BzLCBvbkNsZWFudXAsIGNyZWF0ZUVmZmVjdCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHN0eWxlcyBmcm9tICcuLi8uLi8uLi9hc3NldHMvaW5kZXguY3NzJztcbiAgICAgM1x0aW1wb3J0IHsgQnViYmxlQnV0dG9uIH0gZnJvbSAnLi9CdWJibGVCdXR0b24nO1xuICAgICA0XHRpbXBvcnQgeyBCdWJibGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcyc7XG4gICAgIDVcdGltcG9ydCB7IEJvdCwgQm90UHJvcHMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0JvdCc7XG4gICAgIDZcdGltcG9ydCBUb29sdGlwIGZyb20gJy4vVG9vbHRpcCc7XG4gICAgIDdcdGltcG9ydCB7IGdldEJ1YmJsZUJ1dHRvblNpemUgfSBmcm9tICdAL3V0aWxzJztcbiAgICAgOFx0XG4gICAgIDlcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAxMFx0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgMTFcdFxuICAgIDEyXHRleHBvcnQgdHlwZSBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zO1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9CYWRnZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgRm9vdGVyVGhlbWUgfSBmcm9tICdAL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgIDJcdGltcG9ydCB7IFNob3csIG9uQ2xlYW51cCwgb25Nb3VudCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgM1x0XG4gIC4uLiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMTRmcUFuRXQ3Q2F0V2hycjJjU0oyblQifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjE5LCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluIn19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDY6MDUuMzIwWiIsInJlc3BvbnNlX3RleHQiOiJJIHNlZSB3ZSdyZSBiYWNrIHRvIHRoZSBvcmlnaW5hbCB3b3Jrc3BhY2UuIExldCBtZSBjaGVjayB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIGltcGxlbWVudGF0aW9uIGFuZCB0ZXN0IGl0OlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6ImUwNTZmYWJiLTBkZDItNGNhNS05ZmYwLTM0NzQxZjZmMzY1YSIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUVKTFZxYjRCVHFma1l3akZlQUxNN3QiLCJ0b29sX25hbWUiOiJsYXVuY2gtcHJvY2VzcyIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwibnBtIHJ1biBidWlsZFwiLCBcIndhaXRcIjogdHJ1ZSwgXCJtYXhfd2FpdF9zZWNvbmRzXCI6IDYwfSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IkkgY2FuIHNlZSB0aGVyZSBhcmUgbWFueSBUeXBlU2NyaXB0IGNvbXBpbGF0aW9uIGVycm9ycyBkdWUgdG8gSlNYIGNvbmZpZ3VyYXRpb24gaXNzdWVzLiBIb3dldmVyLCB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IEkndmUgaW1wbGVtZW50ZWQgZm9yIHRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIHNob3VsZCB3b3JrIGNvcnJlY3RseS4gTGV0IG1lIGNyZWF0ZSBhIHNpbXBsZSB0ZXN0IHRvIHZlcmlmeSB0aGUgaW1wbGVtZW50YXRpb24gYW5kIHRoZW4gcHJvdmlkZSBhIHN1bW1hcnkgb2Ygd2hhdCBoYXMgYmVlbiBhY2NvbXBsaXNoZWQuXG5cbkxldCBtZSBidWlsZCB0aGUgcHJvamVjdCB0byBzZWUgaWYgdGhlIGltcGxlbWVudGF0aW9uIHdvcmtzOlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiSGVyZSBhcmUgdGhlIHJlc3VsdHMgZnJvbSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuXG4gICAgICAgIDxyZXR1cm4tY29kZT5cbiAgICAgICAgMVxuICAgICAgICA8L3JldHVybi1jb2RlPlxuICAgICAgICA8c3Rkb3V0PlxuICAgICAgICBcdTAwMWJbPzkwMDFoXHUwMDFiWz8xMDA0aFx1MDAxYls/MjVsXHUwMDFiWzJKXHUwMDFiW21cdTAwMWJbSFxuXG5cblxuXG5cblxuXHUwMDFiW0hcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1x1MDAxYls/MjVoXHUwMDFiWz8yNWxcdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xXHUwMDFiW206XHUwMDFiWzkzbTI0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjMwNzogXHUwMDFiW21DYW5ub3QgZmluZCBtb2R1bGUgJ0AvY29tcG9uZW50cy9hdmF0YXJzL0F2YXRhcicgb3IgaXRzIGNvcnJlc3BvbmRpbmcgdHlwZSBkZWNsYXJhdGlvbnMuXHUwMDFiWzdtXHUwMDFiWzM7MUgxXHUwMDFiWzI3bSBpbXBvcnQgeyBBdmF0YXIgfSBmcm9tICdAL2NvbXBvbmVudHMvYXZhdGFycy9BdmF0YXInO1x1MDAxYls3bVxuIFx1MDAxYlsyN21cdTAwMWJbMjRYXHUwMDFiWzkxbVx1MDAxYlsyNEN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYls5Nm1cdTAwMWJbNjsxSHNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMlx1MDAxYlttOlx1MDAxYls5M20zOCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDc6IFx1MDAxYlttQ2Fubm90IGZpbmQgbW9kdWxlICdAL2NvbXBvbmVudHMvYnViYmxlcy9Gb2xsb3dVcFByb21wdEJ1YmJsZScgb3IgaXRzIGNvcnJlc3BvbmRpbmcgdHlwZSBkZWNsYXJhdGlvbnMuXHUwMDFiWzdtXHUwMDFiWzg7MUgyXHUwMDFiWzI3bSBpbXBvcnQgeyBGb2xsb3dVcFByb21wdEJ1YmJsZSB9IGZyb20gJ0AvY29tcG9uZW50cy9idWJibGVzL0ZvbGxvd1VwUHJvbXB0QnViYmxlJztcblx1MDAxYls/MjVoXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlszOFhcdTAwMWJbOTFtXHUwMDFiWzM4Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtM1x1MDAxYlttOlx1MDAxYls5M20zNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDc6IFx1MDAxYlttQ2Fubm90IGZpbmQgbW9kdWxlICdAL2NvbXBvbmVudHMvYnViYmxlcy9MZWFkQ2FwdHVyZUJ1YmJsZScgb3IgaXRzIGNvcnJlc3BvbmRpbmcgdHlwZSBkZWNsYXJhdGlvbnMuXHUwMDFiW0tcblxuXHUwMDFiWzdtM1x1MDAxYlsyN20gaW1wb3J0IHsgTGVhZENhcHR1cmVCdWJibGUgfSBmcm9tICdAL2NvbXBvbmVudHMvYnViYmxlcy9MZWFkQ2FwdHVyZUJ1YmJsZSc7XHUwMDFiW0tcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzM1WFx1MDAxYls5MW1cdTAwMWJbMzVDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M200XHUwMDFiW206XHUwMDFiWzkzbTQyIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjMwNzogXHUwMDFiW21DYW5ub3QgZmluZCBtb2R1bGUgJ0AvY29tcG9uZW50cy9idXR0b25zL1NlbmRCdXR0b24nIG9yIGl0cyBjb3JyZXNwb25kaW5nIHR5cGUgZGVjbGFyYXRpb25zLlx1MDAxYltLXG5cblx1MDAxYls3bTRcdTAwMWJbMjdtIGltcG9ydCB7IERlbGV0ZUJ1dHRvbiwgU2VuZEJ1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy9idXR0b25zL1NlbmRCdXR0b24nO1x1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYls0MlhcdTAwMWJbOTFtXHUwMDFiWzQyQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW206XHUwMDFiWzkzbTI5IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjMwNzogXHUwMDFiW21DYW5ub3QgZmluZCBtb2R1bGUgJ0AvY29tcG9uZW50cy9pbnB1dHMvdGV4dElucHV0L2NvbXBvbmVudHMvRmlsZVByZXZpZXcnIG9yIGl0cyBjb3JyZXNwb25kaW5nIHR5cGUgZGVjbGFyYXRpb25zLlx1MDAxYltLXG5cblx1MDAxYls3bTVcdTAwMWJbMjdtIGltcG9ydCB7IEZpbGVQcmV2aWV3IH0gZnJvbSAnQC9jb21wb25lbnRzL2lucHV0cy90ZXh0SW5wdXQvY29tcG9uZW50cy9GaWxlUHJldmlldyc7XHUwMDFiW0tcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzI5WFx1MDAxYls5MW1cdTAwMWJbMjlDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE0XHUwMDFiW206XHUwMDFiWzkzbTggXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA3OiBcdTAwMWJbbUNhbm5vdCBmaW5kIG1vZHVsZSAnQC9mZWF0dXJlcy9idWJibGUvdHlwZXMnIG9yIGl0cyBjb3JyZXNwb25kaW5nIHR5cGUgZGVjbGFyYXRpb25zLlx1MDAxYltLXG5cblx1MDAxYls3bTE0XHUwMDFiWzI3bSB9IGZyb20gJ0AvZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtICAgICAgICBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNVx1MDAxYlttOlx1MDAxYls5M200MCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDc6IFx1MDAxYlttQ2Fubm90IGZpbmQgbW9kdWxlICdAL2ZlYXR1cmVzL3BvcHVwJyBvciBpdHMgY29ycmVzcG9uZGluZyB0eXBlIGRlY2xhcmF0aW9ucy5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNVx1MDAxYlsyN20gaW1wb3J0IHsgRGlzY2xhaW1lclBvcHVwLCBQb3B1cCB9IGZyb20gJ0AvZmVhdHVyZXMvcG9wdXAnO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbNDBYXHUwMDFiWzkxbVx1MDAxYls0MEN+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjZcdTAwMWJbbTpcdTAwMWJbOTNtOCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDc6IFx1MDAxYlttQ2Fubm90IGZpbmQgbW9kdWxlICdAL3F1ZXJpZXMvc2VuZE1lc3NhZ2VRdWVyeScgb3IgaXRzIGNvcnJlc3BvbmRpbmcgdHlwZSBkZWNsYXJhdGlvbnMuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjZcdTAwMWJbMjdtIH0gZnJvbSAnQC9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnknO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN20gICAgICAgIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTI3XHUwMDFiW206XHUwMDFiWzkzbTExOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDc6IFx1MDAxYlttQ2Fubm90IGZpbmQgbW9kdWxlICdAL3V0aWxzJyBvciBpdHMgY29ycmVzcG9uZGluZyB0eXBlIGRlY2xhcmF0aW9ucy5cdTAwMWJbS1xuXG5cdTAwMWJbN20yN1x1MDAxYlsyN20gaW1wb3J0IHsgZ2V0Q29va2llLCBnZXRMb2NhbFN0b3JhZ2VDaGF0ZmxvdywgcmVtb3ZlTG9jYWxTdG9yYWdlQ2hhdEhpc3RvcnksIHNldENvb2tpZSwgc2V0TG9jYWxTdG9yYWdlQ2hhdGZsb3cgfSBmcm9tICdAL3V0aWxzJztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzExOVhcdTAwMWJbOTFtXHUwMDFiWzExOUN+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjhcdTAwMWJbbTpcdTAwMWJbOTNtNzkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA3OiBcdTAwMWJbbUNhbm5vdCBmaW5kIG1vZHVsZSAnQC91dGlscy9hdWRpb1JlY29yZGluZycgb3IgaXRzIGNvcnJlc3BvbmRpbmcgdHlwZSBkZWNsYXJhdGlvbnMuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjhcdTAwMWJbMjdtIGltcG9ydCB7IGNhbmNlbEF1ZGlvUmVjb3JkaW5nLCBzdGFydEF1ZGlvUmVjb3JkaW5nLCBzdG9wQXVkaW9SZWNvcmRpbmcgfSBmcm9tICdAL3V0aWxzL2F1ZGlvUmVjb3JkaW5nJztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzc5WFx1MDAxYls5MW1cdTAwMWJbNzlDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTMzXHUwMDFiW206XHUwMDFiWzkzbTIzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vQmFkZ2UnIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL0JhZGdlLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMzNcdTAwMWJbMjdtIGltcG9ydCB7IEJhZGdlIH0gZnJvbSAnLi9CYWRnZSc7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bVx1MDAxYlsyM1hcdTAwMWJbOTFtXHUwMDFiWzIzQ35+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20zNFx1MDAxYlttOlx1MDAxYls5M20yNyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL2J1YmJsZXMvQm90QnViYmxlJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9idWJibGVzL0JvdEJ1YmJsZS50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTM0XHUwMDFiWzI3bSBpbXBvcnQgeyBCb3RCdWJibGUgfSBmcm9tICcuL2J1YmJsZXMvQm90QnViYmxlJztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzI3WFx1MDAxYls5MW1cdTAwMWJbMjdDfn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTM1XHUwMDFiW206XHUwMDFiWzkzbTI5IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vYnViYmxlcy9HdWVzdEJ1YmJsZScgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvYnViYmxlcy9HdWVzdEJ1YmJsZS50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTM1XHUwMDFiWzI3bSBpbXBvcnQgeyBHdWVzdEJ1YmJsZSB9IGZyb20gJy4vYnViYmxlcy9HdWVzdEJ1YmJsZSc7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bVx1MDAxYlsyOVhcdTAwMWJbOTFtXHUwMDFiWzI5Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTM2XHUwMDFiW206XHUwMDFiWzkzbTMxIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vYnViYmxlcy9Mb2FkaW5nQnViYmxlJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9idWJibGVzL0xvYWRpbmdCdWJibGUudHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN20zNlx1MDAxYlsyN20gaW1wb3J0IHsgTG9hZGluZ0J1YmJsZSB9IGZyb20gJy4vYnViYmxlcy9Mb2FkaW5nQnViYmxlJztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzMxWFx1MDAxYls5MW1cdTAwMWJbMzFDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20zN1x1MDAxYlttOlx1MDAxYls5M20zNyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL2J1YmJsZXMvU3RhcnRlclByb21wdEJ1YmJsZScgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvYnViYmxlcy9TdGFydGVyUHJvbXB0QnViYmxlLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMzdcdTAwMWJbMjdtIGltcG9ydCB7IFN0YXJ0ZXJQcm9tcHRCdWJibGUgfSBmcm9tICcuL2J1YmJsZXMvU3RhcnRlclByb21wdEJ1YmJsZSc7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bVx1MDAxYlszN1hcdTAwMWJbOTFtXHUwMDFiWzM3Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMzhcdTAwMWJbbTpcdTAwMWJbOTNtMzAgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9idXR0b25zL0NhbmNlbEJ1dHRvbicgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvYnV0dG9ucy9DYW5jZWxCdXR0b24udHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN20zOFx1MDAxYlsyN20gaW1wb3J0IHsgQ2FuY2VsQnV0dG9uIH0gZnJvbSAnLi9idXR0b25zL0NhbmNlbEJ1dHRvbic7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bVx1MDAxYlszMFhcdTAwMWJbOTFtXHUwMDFiWzMwQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20zOVx1MDAxYlttOlx1MDAxYls5M20xMCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDU6IFx1MDAxYlttTW9kdWxlICdcIi4vaWNvbnNcIicgaGFzIG5vIGV4cG9ydGVkIG1lbWJlciAnQ2lyY2xlRG90SWNvbicuXHUwMDFiW0tcblxuXHUwMDFiWzdtMzlcdTAwMWJbMjdtIGltcG9ydCB7IENpcmNsZURvdEljb24sIFNwYXJrbGVzSWNvbiwgVHJhc2hJY29uIH0gZnJvbSAnLi9pY29ucyc7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bVx1MDAxYlsxMFhcdTAwMWJbOTFtXHUwMDFiWzEwQ35+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMzlcdTAwMWJbbTpcdTAwMWJbOTNtMjUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA1OiBcdTAwMWJbbU1vZHVsZSAnXCIuL2ljb25zXCInIGhhcyBubyBleHBvcnRlZCBtZW1iZXIgJ1NwYXJrbGVzSWNvbicuXHUwMDFiW0tcblxuXHUwMDFiWzdtMzlcdTAwMWJbMjdtIGltcG9ydCB7IENpcmNsZURvdEljb24sIFNwYXJrbGVzSWNvbiwgVHJhc2hJY29uIH0gZnJvbSAnLi9pY29ucyc7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bVx1MDAxYlsyNVhcdTAwMWJbOTFtXHUwMDFiWzI1Q35+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20zOVx1MDAxYlttOlx1MDAxYls5M20zOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDU6IFx1MDAxYlttTW9kdWxlICdcIi4vaWNvbnNcIicgaGFzIG5vIGV4cG9ydGVkIG1lbWJlciAnVHJhc2hJY29uJy5cdTAwMWJbS1xuXG5cdTAwMWJbN20zOVx1MDAxYlsyN20gaW1wb3J0IHsgQ2lyY2xlRG90SWNvbiwgU3BhcmtsZXNJY29uLCBUcmFzaEljb24gfSBmcm9tICcuL2ljb25zJztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzM5WFx1MDAxYls5MW1cdTAwMWJbMzlDfn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTQyXHUwMDFiW206XHUwMDFiWzkzbTIzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjMwNzogXHUwMDFiW21DYW5ub3QgZmluZCBtb2R1bGUgJy4vVG9hc3QnIG9yIGl0cyBjb3JyZXNwb25kaW5nIHR5cGUgZGVjbGFyYXRpb25zLlx1MDAxYltLXG5cblx1MDAxYls3bTQyXHUwMDFiWzI3bSBpbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4vVG9hc3QnO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMjNYXHUwMDFiWzkxbVx1MDAxYlsyM0N+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtOTY3XHUwMDFiW206XHUwMDFiWzkzbTc0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjU1MDogXHUwMDFiW21Qcm9wZXJ0eSAncmVwbGFjZUFsbCcgZG9lcyBub3QgZXhpc3Qgb24gdHlwZSAnc3RyaW5nJy4gRG8geW91IG5lZWQgdG8gY2hhbmdlIHlvdXIgdGFyZ2V0IGxpYnJhcnk/IFRyeSBjaGFuZ2luZyB0aGUgJ2xpYicgY29tcGlsZXIgb3B0aW9uIHRvICdlczIwMjEnIG9yIGxhdGVyLlx1MDAxYltLXG5cblx1MDAxYls3bTk2N1x1MDAxYlsyN20gICAgICAgICAgICAgaGFuZGxlRXJyb3IoYEVycm9yOiAkeyhlcnJvciBhcyB7IG1lc3NhZ2U6IHN0cmluZyB9KS5tZXNzYWdlLnJlcGxhY2VBbGwoJ0Vycm9yOicsICcgJyl9YCk7XHUwMDFiW0tcblx1MDAxYls3bSAgIFx1MDAxYlsyN21cdTAwMWJbNzRYXHUwMDFiWzkxbVx1MDAxYls3NEN+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE0ODNcdTAwMWJbbTpcdTAwMWJbOTNtMjQgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNDk1OiBcdTAwMWJbbVR5cGUgJ0ZpbGVMaXN0JyBpcyBub3QgYW4gYXJyYXkgdHlwZSBvciBhIHN0cmluZyB0eXBlLlx1MDAxYltLXG5cblx1MDAxYls3bTE0ODNcdTAwMWJbMjdtICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjRYXHUwMDFiWzkxbVx1MDAxYlsyNEN+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNTUzXHUwMDFiW206XHUwMDFiWzkzbTI2IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjQ5NTogXHUwMDFiW21UeXBlICdGaWxlTGlzdCcgaXMgbm90IGFuIGFycmF5IHR5cGUgb3IgYSBzdHJpbmcgdHlwZS5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNTUzXHUwMDFiWzI3bSAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZS5kYXRhVHJhbnNmZXIuZmlsZXMpIHtcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjZYXHUwMDFiWzkxbVx1MDAxYlsyNkN+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNjA0XHUwMDFiW206XHUwMDFiWzkzbTI2IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjQ5NTogXHUwMDFiW21UeXBlICdEYXRhVHJhbnNmZXJJdGVtTGlzdCcgaXMgbm90IGFuIGFycmF5IHR5cGUgb3IgYSBzdHJpbmcgdHlwZS5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNjA0XHUwMDFiWzI3bSAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZS5kYXRhVHJhbnNmZXIuaXRlbXMpIHtcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjZYXHUwMDFiWzkxbVx1MDAxYlsyNkN+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNjkzXHUwMDFiW206XHUwMDFiWzkzbTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNjkzXHUwMDFiWzI3bSAgICAgICAgIDxidXR0b25cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbOVhcdTAwMWJbOTFtXHUwMDFiWzlDfn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTY5NFx1MDAxYlsyN20gICAgICAgICAgIGNsYXNzPVwiZ3JvdXAgdy0xMiBoLTEyIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJlbGF0aXZlIHJvdW5kZWQtWzEwcHhdIG92ZXJmbG93LWhpZGRlbiB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0yMDBcIlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE2OTVcdTAwMWJbMjdtICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGVQcmV2aWV3KGl0ZW0pfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNjk2XHUwMDFiWzI3bSAgICAgICAgID5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNjk3XHUwMDFiW206XHUwMDFiWzkzbTExIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTY5N1x1MDAxYlsyN20gICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGJnLWNvdmVyXCIgc3JjPXtpdGVtLmRhdGEgYXMgc3RyaW5nfSAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTY5OFx1MDAxYlttOlx1MDAxYls5M20xMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE2OThcdTAwMWJbMjdtICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIGhpZGRlbiBncm91cC1ob3ZlcjpmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB6LTEwIHctZnVsbCBoLWZ1bGwgdG9wLTAgbGVmdC0wIGJnLWJsYWNrLzEwIHJvdW5kZWQtWzEwcHhdIHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTIwMFwiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNjk5XHUwMDFiW206XHUwMDFiWzkzbTEzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTY5OVx1MDAxYlsyN20gICAgICAgICAgICAgPFRyYXNoSWNvbiAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTcwNVx1MDAxYlttOlx1MDAxYls5M205IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTcwNVx1MDAxYlsyN20gICAgICAgICA8ZGl2XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzlYXHUwMDFiWzkxbVx1MDAxYls5Q35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE3MDZcdTAwMWJbMjdtICAgICAgICAgICBjbGFzcz17YGlubGluZS1mbGV4IGJhc2lzLWF1dG8gZmxleC1ncm93LTAgZmxleC1zaHJpbmstMCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHJvdW5kZWQteGwgaC0xMiBwLTEgbXItMSBiZy1ncmF5LTUwMGB9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMTcwOVx1MDAxYlsyN20gICAgICAgICAgIH19XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE3MTBcdTAwMWJbMjdtICAgICAgICAgPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3MTFcdTAwMWJbbTpcdTAwMWJbOTNtMTEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzExXHUwMDFiWzI3bSAgICAgICAgICAgPGF1ZGlvIGNsYXNzPVwiYmxvY2sgYmctY292ZXIgYmctY2VudGVyIHctZnVsbCBoLWZ1bGwgcm91bmRlZC1ub25lIHRleHQtdHJhbnNwYXJlbnRcIiBjb250cm9scyBzcmM9e2l0ZW0uZGF0YSBhcyBzdHJpbmd9IC8+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzExWFx1MDAxYls5MW1cdTAwMWJbMTFDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzEyXHUwMDFiW206XHUwMDFiWzkzbTExIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTcxMlx1MDAxYlsyN20gICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3LTcgaC03IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJnLXRyYW5zcGFyZW50IHAtMVwiIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZVByZXZpZXcoaXRlbSl9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTcxM1x1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3MTNcdTAwMWJbMjdtICAgICAgICAgICAgIDxUcmFzaEljb24gY29sb3I9XCJ3aGl0ZVwiIC8+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEzWFx1MDAxYls5MW1cdTAwMWJbMTNDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3MThcdTAwMWJbbTpcdTAwMWJbOTNtMTQgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzE4XHUwMDFiWzI3bSAgICAgICByZXR1cm4gPEZpbGVQcmV2aWV3IGRpc2FibGVkPXtnZXRJbnB1dERpc2FibGVkKCl9IGl0ZW09e2l0ZW19IG9uRGVsZXRlPXsoKSA9PiBoYW5kbGVEZWxldGVQcmV2aWV3KGl0ZW0pfSAvPjtcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTRYXHUwMDFiWzkxbVx1MDAxYlsxNEN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3MjdcdTAwMWJbbTpcdTAwMWJbOTNtNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3MjdcdTAwMWJbMjdtICAgICA8Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSAgICAgXHUwMDFiWzkxbX5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3MjhcdTAwMWJbbTpcdTAwMWJbOTNtNyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3MjhcdTAwMWJbMjdtICAgICAgIDxkaXZcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gICAgICAgXHUwMDFiWzkxbX5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE3MjlcdTAwMWJbMjdtICAgICAgICAgcmVmPXtib3RDb250YWluZXJ9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMTczMVx1MDAxYlsyN20gICAgICAgICBvbkRyYWdFbnRlcj17aGFuZGxlRHJhZ31cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNzMyXHUwMDFiWzI3bSAgICAgICA+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3MzRcdTAwMWJbbTpcdTAwMWJbOTNtMTEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzM0XHUwMDFiWzI3bSAgICAgICAgICAgPGRpdlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE3MzVcdTAwMWJbMjdtICAgICAgICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgbGVmdC0wIGJvdHRvbS0wIHJpZ2h0LTAgdy1mdWxsIGgtZnVsbCB6LTUwXCJcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20xNzQwXHUwMDFiWzI3bSAgICAgICAgICAgICBvbkRyb3A9e2hhbmRsZURyb3B9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNzQxXHUwMDFiWzI3bSAgICAgICAgICAgLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzQ0XHUwMDFiW206XHUwMDFiWzkzbTExIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTc0NFx1MDAxYlsyN20gICAgICAgICAgIDxkaXZcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTFYXHUwMDFiWzkxbVx1MDAxYlsxMUN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNzQ1XHUwMDFiWzI3bSAgICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCBib3R0b20tMCByaWdodC0wIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJnLWJsYWNrLzYwIGJhY2tkcm9wLWJsdXItc20gdGV4dC13aGl0ZSB6LTQwIGdhcC0yIGJvcmRlci0yIGJvcmRlci1kYXNoZWRcIlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNzQ2XHUwMDFiWzI3bSAgICAgICAgICAgICBzdHlsZT17eyAnYm9yZGVyLWNvbG9yJzogcHJvcHMuYnViYmxlQmFja2dyb3VuZENvbG9yIH19XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNzQ3XHUwMDFiWzI3bSAgICAgICAgICAgPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc0OFx1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NDhcdTAwMWJbMjdtICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRleHQteGwgZm9udC1zZW1pYm9sZFwiPkRyb3AgaGVyZSB0byB1cGxvYWQ8L2gyPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc0OVx1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NDlcdTAwMWJbMjdtICAgICAgICAgICAgIDxGb3IgZWFjaD17Wy4uLih1cGxvYWRzQ29uZmlnKCk/LmltZ1VwbG9hZFNpemVBbmRUeXBlcyB8fCBbXSksIC4uLih1cGxvYWRzQ29uZmlnKCk/LmZpbGVVcGxvYWRTaXplQW5kVHlwZXMgfHwgW10pXX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEzWFx1MDAxYls5MW1cdTAwMWJbMTNDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc0OVx1MDAxYlttOlx1MDAxYls5M20xNCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI3NDE6IFx1MDAxYlttUHJvcGVydHkgJ2NoaWxkcmVuJyBpcyBtaXNzaW5nIGluIHR5cGUgJ3sgZWFjaDogSVVwbG9hZENvbnN0cmFpdHNbXTsgfScgYnV0IHJlcXVpcmVkIGluIHR5cGUgJ3sgZWFjaDogZmFsc2UgfCBJVXBsb2FkQ29uc3RyYWl0c1tdOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiAoaXRlbTogSVVwbG9hZENcblx1MDAxYls3OzIyM0hDb25zdHJhaXRzLCBpbmRleDogQWNjZXNzb3I8bnVtYmVyPikgPT4gRWxlbWVudDsgfScuXG5cblx1MDAxYls3bTE3NDlcdTAwMWJbMjdtICAgICAgICAgICAgIDxGb3IgZWFjaD17Wy4uLih1cGxvYWRzQ29uZmlnKCk/LmltZ1VwbG9hZFNpemVBbmRUeXBlcyB8fCBbXSksIC4uLih1cGxvYWRzQ29uZmlnKCk/LmZpbGVVcGxvYWRTaXplQW5kVHlwZXMgfHwgW10pXX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE0WFx1MDAxYls5MW1cdTAwMWJbMTRDfn5+XHUwMDFiW0tcblx1MDAxYlttXG5cbiAgXHUwMDFiWzk2bW5vZGVfbW9kdWxlcy9zb2xpZC1qcy90eXBlcy9yZW5kZXIvZmxvdy5kLnRzXHUwMDFiW206XHUwMDFiWzkzbTE5XHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbS1xuXHUwMDFiW21cbiAgICBcdTAwMWJbN20xOVx1MDAxYlsyN20gICAgIGNoaWxkcmVuOiAoaXRlbTogVFtudW1iZXJdLCBpbmRleDogQWNjZXNzb3I8bnVtYmVyPikgPT4gVTtcdTAwMWJbS1xuICAgIFx1MDAxYls3bSAgXHUwMDFiWzI3bSAgICAgXHUwMDFiWzk2bX5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG4gICAgJ2NoaWxkcmVuJyBpcyBkZWNsYXJlZCBoZXJlLlxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzUyXHUwMDFiW206XHUwMDFiWzkzbTE5IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTc1Mlx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgPD5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTlYXHUwMDFiWzkxbVx1MDAxYlsxOUN+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzUzXHUwMDFiW206XHUwMDFiWzkzbTIxIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTc1M1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICA8c3Bhbj57YWxsb3dlZC5maWxlVHlwZXM/LmpvaW4oJywgJyl9PC9zcGFuPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyMVhcdTAwMWJbOTFtXHUwMDFiWzIxQ35+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzU0XHUwMDFiW206XHUwMDFiWzkzbTQ3IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTc1NFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICB7YWxsb3dlZC5tYXhVcGxvYWRTaXplICYmIDxzcGFuPk1heCBBbGxvd2VkIFNpemU6IHthbGxvd2VkLm1heFVwbG9hZFNpemV9IE1CPC9zcGFuPn1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbNDdYXHUwMDFiWzkxbVx1MDAxYls0N0N+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc2Mlx1MDAxYlttOlx1MDAxYls5M20xMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NjJcdTAwMWJbMjdtICAgICAgICAgICA8ZGl2XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzExWFx1MDAxYls5MW1cdTAwMWJbMTFDfn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTc2M1x1MDAxYlsyN20gICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciB3LWZ1bGwgaC1bNTBweF0gYWJzb2x1dGUgdG9wLTAgbGVmdC0wIHotMTBcIlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTE3NjlcdTAwMWJbMjdtICAgICAgICAgICAgIH19XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTc3MFx1MDAxYlsyN20gICAgICAgICAgID5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3NzFcdTAwMWJbbTpcdTAwMWJbOTNtMTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzcxXHUwMDFiWzI3bSAgICAgICAgICAgICA8U2hvdyB3aGVuPXtwcm9wcy50aXRsZUF2YXRhclNyY30+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEzWFx1MDAxYls5MW1cdTAwMWJbMTNDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzcxXHUwMDFiW206XHUwMDFiWzkzbTE0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjc2OTogXHUwMDFiW21ObyBvdmVybG9hZCBtYXRjaGVzIHRoaXMgY2FsbC5cdTAwMWJbS1xuICBPdmVybG9hZCAxIG9mIDIsICcocHJvcHM6IHsgd2hlbjogc3RyaW5nIHwgZmFsc2U7IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHN0cmluZz4pID0+IEVsZW1lbnQpOyB9KTogRWxlbWVudCcsIGdhdmUgdGhlIGZvbGxvd2luZyBlcnJvci5cbiAgICBQcm9wZXJ0eSAnY2hpbGRyZW4nIGlzIG1pc3NpbmcgaW4gdHlwZSAneyB3aGVuOiBzdHJpbmc7IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IHdoZW46IHN0cmluZyB8IGZhbHNlOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3NvcjxzdHJpbmc+KSA9PiBFbGVtZW50KTsgfScuXG4gIE92ZXJsb2FkIDIgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBzdHJpbmcgfCBmYWxzZTsga2V5ZWQ6IHRydWU7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IHN0cmluZykgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFR5cGUgJ3sgd2hlbjogc3RyaW5nOyB9JyBpcyBtaXNzaW5nIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBmcm9tIHR5cGUgJ3sgd2hlbjogc3RyaW5nIHwgZmFsc2U7IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBzdHJpbmcpID0+IEVsZW1lbnQpOyB9Jzoga2V5ZWQsIGNoaWxkcmVuXG5cblx1MDAxYls3bTE3NzFcdTAwMWJbMjdtICAgICAgICAgICAgIDxTaG93IHdoZW49e3Byb3BzLnRpdGxlQXZhdGFyU3JjfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTRYXHUwMDFiWzkxbVx1MDAxYlsxNEN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cbiAgXHUwMDFiWzk2bW5vZGVfbW9kdWxlcy9zb2xpZC1qcy90eXBlcy9yZW5kZXIvZmxvdy5kLnRzXHUwMDFiW206XHUwMDFiWzkzbTQ4XHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbS1xuXHUwMDFiW21cbiAgICBcdTAwMWJbN200OFx1MDAxYlsyN20gICAgIGNoaWxkcmVuOiBKU1guRWxlbWVudCB8IFJlcXVpcmVkUGFyYW1ldGVyPFRSZW5kZXJGdW5jdGlvbj47XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc3Mlx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NzJcdTAwMWJbMjdtICAgICAgICAgICAgICAgPD5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzczXHUwMDFiW206XHUwMDFiWzkzbTE3IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTc3M1x1MDAxYlsyN20gICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgd2lkdGg6ICcxNXB4JyB9fSAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxN1hcdTAwMWJbOTFtXHUwMDFiWzE3Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzc0XHUwMDFiW206XHUwMDFiWzkzbTE3IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTc3NFx1MDAxYlsyN20gICAgICAgICAgICAgICAgIDxBdmF0YXIgaW5pdGlhbEF2YXRhclNyYz17cHJvcHMudGl0bGVBdmF0YXJTcmN9IC8+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE3WFx1MDAxYls5MW1cdTAwMWJbMTdDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc3N1x1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NzdcdTAwMWJbMjdtICAgICAgICAgICAgIDxTaG93IHdoZW49e3Byb3BzLnRpdGxlfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTNYXHUwMDFiWzkxbVx1MDAxYlsxM0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3NzdcdTAwMWJbbTpcdTAwMWJbOTNtMTQgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzY5OiBcdTAwMWJbbU5vIG92ZXJsb2FkIG1hdGNoZXMgdGhpcyBjYWxsLlx1MDAxYltLXG4gIE92ZXJsb2FkIDEgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBzdHJpbmcgfCBmYWxzZTsga2V5ZWQ/OiBmYWxzZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogQWNjZXNzb3I8c3RyaW5nPikgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IHdoZW46IHN0cmluZzsgfScgYnV0IHJlcXVpcmVkIGluIHR5cGUgJ3sgd2hlbjogc3RyaW5nIHwgZmFsc2U7IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHN0cmluZz4pID0+IEVsZW1lbnQpOyB9Jy5cbiAgT3ZlcmxvYWQgMiBvZiAyLCAnKHByb3BzOiB7IHdoZW46IHN0cmluZyB8IGZhbHNlOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogc3RyaW5nKSA9PiBFbGVtZW50KTsgfSk6IEVsZW1lbnQnLCBnYXZlIHRoZSBmb2xsb3dpbmcgZXJyb3IuXG4gICAgVHlwZSAneyB3aGVuOiBzdHJpbmc7IH0nIGlzIG1pc3NpbmcgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGZyb20gdHlwZSAneyB3aGVuOiBzdHJpbmcgfCBmYWxzZTsga2V5ZWQ6IHRydWU7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IHN0cmluZykgPT4gRWxlbWVudCk7IH0nOiBrZXllZCwgY2hpbGRyZW5cblxuXHUwMDFiWzdtMTc3N1x1MDAxYlsyN20gICAgICAgICAgICAgPFNob3cgd2hlbj17cHJvcHMudGl0bGV9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNFhcdTAwMWJbOTFtXHUwMDFiWzE0Q35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuICBcdTAwMWJbOTZtbm9kZV9tb2R1bGVzL3NvbGlkLWpzL3R5cGVzL3JlbmRlci9mbG93LmQudHNcdTAwMWJbbTpcdTAwMWJbOTNtNDhcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYltLXG5cdTAwMWJbbVxuICAgIFx1MDAxYls3bTQ4XHUwMDFiWzI3bSAgICAgY2hpbGRyZW46IEpTWC5FbGVtZW50IHwgUmVxdWlyZWRQYXJhbWV0ZXI8VFJlbmRlckZ1bmN0aW9uPjtcdTAwMWJbS1xuICAgIFx1MDAxYls3bSAgXHUwMDFiWzI3bSAgICAgXHUwMDFiWzk2bX5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG4gICAgJ2NoaWxkcmVuJyBpcyBkZWNsYXJlZCBoZXJlLlxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzc4XHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTc3OFx1MDAxYlsyN20gICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInB4LTMgd2hpdGVzcGFjZS1wcmUtd3JhcCBmb250LXNlbWlib2xkIG1heC13LWZ1bGxcIj57cHJvcHMudGl0bGV9PC9zcGFuPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc4MFx1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3ODBcdTAwMWJbMjdtICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZmxleDogMSB9fSAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzgxXHUwMDFiW206XHUwMDFiWzkzbTEzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTc4MVx1MDAxYlsyN20gICAgICAgICAgICAgPERlbGV0ZUJ1dHRvblx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE3ODJcdTAwMWJbMjdtICAgICAgICAgICAgICAgc2VuZEJ1dHRvbkNvbG9yPXtwcm9wcy5idWJibGVUZXh0Q29sb3J9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMTc4Nlx1MDAxYlsyN20gICAgICAgICAgICAgICBvbjpjbGljaz17Y2xlYXJDaGF0fVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTc4N1x1MDAxYlsyN20gICAgICAgICAgICAgPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzg4XHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTc4OFx1MDAxYlsyN20gICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyAnZm9udC1mYW1pbHknOiAnUG9wcGlucywgc2Fucy1zZXJpZicgfX0+Q2xlYXI8L3NwYW4+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzkzXHUwMDFiW206XHUwMDFiWzkzbTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzkzXHUwMDFiWzI3bSAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctZnVsbCBoLWZ1bGwganVzdGlmeS1zdGFydCB6LTBcIj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbOVhcdTAwMWJbOTFtXHUwMDFiWzlDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc5NFx1MDAxYlttOlx1MDAxYls5M20xMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3OTRcdTAwMWJbMjdtICAgICAgICAgICA8ZGl2XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzExWFx1MDAxYls5MW1cdTAwMWJbMTFDfn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTc5NVx1MDAxYlsyN20gICAgICAgICAgICAgcmVmPXtjaGF0Q29udGFpbmVyfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTc5Nlx1MDAxYlsyN20gICAgICAgICAgICAgY2xhc3M9XCJvdmVyZmxvdy15LWF1dG8gZmxleCBmbGV4LWNvbCBmbGV4LWdyb3cgbWluLXctZnVsbCB3LWZ1bGwgcHgtMyBtdC1bNTBweF0gcHQtWzMwcHhdIHJlbGF0aXZlIGNoYXRib3QtY2hhdC12aWV3IHNjcm9sbC1zbW9vdGggc2Nyb2xsYmFyLXRoaW4gc2Nyb2xsYmFyLXRodW1iLWdyYXktNTAwIHNjcm9sbGJhci10cmFjay1ncmF5LTIwMFwiXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNzk3XHUwMDFiWzI3bSAgICAgICAgICAgPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc5OFx1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3OThcdTAwMWJbMjdtICAgICAgICAgICAgIDxGb3IgZWFjaD17Wy4uLm1lc3NhZ2VzKCldfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTNYXHUwMDFiWzkxbVx1MDAxYlsxM0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3OThcdTAwMWJbbTpcdTAwMWJbOTNtMTQgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzQxOiBcdTAwMWJbbVByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IGVhY2g6IE1lc3NhZ2VUeXBlW107IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IGVhY2g6IGZhbHNlIHwgTWVzc2FnZVR5cGVbXTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogKGl0ZW06IE1lc3NhZ2VUeXBlLCBpbmRleDogXG5cdTAwMWJbNzsyMjNIIEFjY2Vzc29yPG51bWJlcj4pID0+IEVsZW1lbnQ7IH0nLlxuXG5cdTAwMWJbN20xNzk4XHUwMDFiWzI3bSAgICAgICAgICAgICA8Rm9yIGVhY2g9e1suLi5tZXNzYWdlcygpXX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE0WFx1MDAxYls5MW1cdTAwMWJbMTRDfn5+XHUwMDFiW0tcblx1MDAxYlttXG5cbiAgXHUwMDFiWzk2bW5vZGVfbW9kdWxlcy9zb2xpZC1qcy90eXBlcy9yZW5kZXIvZmxvdy5kLnRzXHUwMDFiW206XHUwMDFiWzkzbTE5XHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbS1xuXHUwMDFiW21cbiAgICBcdTAwMWJbN20xOVx1MDAxYlsyN20gICAgIGNoaWxkcmVuOiAoaXRlbTogVFtudW1iZXJdLCBpbmRleDogQWNjZXNzb3I8bnVtYmVyPikgPT4gVTtcdTAwMWJbS1xuICAgIFx1MDAxYls3bSAgXHUwMDFiWzI3bSAgICAgXHUwMDFiWzk2bX5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG4gICAgJ2NoaWxkcmVuJyBpcyBkZWNsYXJlZCBoZXJlLlxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xODAxXHUwMDFiW206XHUwMDFiWzkzbTE5IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTgwMVx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgPD5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTlYXHUwMDFiWzkxbVx1MDAxYlsxOUN+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xODAzXHUwMDFiW206XHUwMDFiWzkzbTIzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTgwM1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgIDxHdWVzdEJ1YmJsZVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyM1hcdTAwMWJbOTFtXHUwMDFiWzIzQ35+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTgwNFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT17bWVzc2FnZX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20xODEzXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJIVE1MPXtwcm9wcy5yZW5kZXJIVE1MfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE4MTRcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE4MTdcdTAwMWJbbTpcdTAwMWJbOTNtMjMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xODE3XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgPEJvdEJ1YmJsZVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyM1hcdTAwMWJbOTFtXHUwMDFiWzIzQ35+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE4MThcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uPXtbLi4ubWVzc2FnZXMoKV1baW5kZXgoKSAtIDFdPy5tZXNzYWdlfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20xODcwXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1Nob3dDYWxsYmFja0J0bj17Qm9vbGVhbihwcm9wcy5maWxlUGF0aCAmJiBpbmRleCgpID09PSAxKX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTg3MVx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgIC8+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTg3NFx1MDAxYlttOlx1MDAxYls5M20yMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE4NzRcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICA8TGVhZENhcHR1cmVCdWJibGVcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjNYXHUwMDFiWzkxbVx1MDAxYlsyM0N+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE4NzVcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9e21lc3NhZ2V9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMTg4OFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgICAgc2V0TGVhZEVtYWlsPXtzZXRMZWFkRW1haWx9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE4ODlcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE4OTFcdTAwMWJbbTpcdTAwMWJbOTNtMTA2IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTg5MVx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICB7bWVzc2FnZS50eXBlID09PSAndXNlck1lc3NhZ2UnICYmIGxvYWRpbmcoKSAmJiBpbmRleCgpID09PSBtZXNzYWdlcygpLmxlbmd0aCAtIDEgJiYgPExvYWRpbmdCdWJibGUgLz59XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEwNlhcdTAwMWJbOTFtXHUwMDFiWzEwNkN+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xODkyXHUwMDFiW206XHUwMDFiWzkzbTEzMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE4OTJcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAge21lc3NhZ2UudHlwZSA9PT0gJ2FwaU1lc3NhZ2UnICYmIG1lc3NhZ2UubWVzc2FnZSA9PT0gJycgJiYgbG9hZGluZygpICYmIGluZGV4KCkgPT09IG1lc3NhZ2VzKCkubGVuZ3RoIC0gMSAmJiA8TG9hZGluZ0J1YmJsZSAvPn1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTMxWFx1MDAxYls5MW1cdTAwMWJbMTMxQ35+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE4OThcdTAwMWJbbTpcdTAwMWJbOTNtMTEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xODk4XHUwMDFiWzI3bSAgICAgICAgICAgPFNob3cgd2hlbj17bWVzc2FnZXMoKS5sZW5ndGggPT09IDF9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTg5OFx1MDAxYlttOlx1MDAxYls5M20xMiBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI3Njk6IFx1MDAxYlttTm8gb3ZlcmxvYWQgbWF0Y2hlcyB0aGlzIGNhbGwuXHUwMDFiW0tcbiAgT3ZlcmxvYWQgMSBvZiAyLCAnKHByb3BzOiB7IHdoZW46IGJvb2xlYW47IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHRydWU+KSA9PiBFbGVtZW50KTsgfSk6IEVsZW1lbnQnLCBnYXZlIHRoZSBmb2xsb3dpbmcgZXJyb3IuXG4gICAgUHJvcGVydHkgJ2NoaWxkcmVuJyBpcyBtaXNzaW5nIGluIHR5cGUgJ3sgd2hlbjogYm9vbGVhbjsgfScgYnV0IHJlcXVpcmVkIGluIHR5cGUgJ3sgd2hlbjogYm9vbGVhbjsga2V5ZWQ/OiBmYWxzZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogQWNjZXNzb3I8dHJ1ZT4pID0+IEVsZW1lbnQpOyB9Jy5cbiAgT3ZlcmxvYWQgMiBvZiAyLCAnKHByb3BzOiB7IHdoZW46IGJvb2xlYW47IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiB0cnVlKSA9PiBFbGVtZW50KTsgfSk6IEVsZW1lbnQnLCBnYXZlIHRoZSBmb2xsb3dpbmcgZXJyb3IuXG4gICAgVHlwZSAneyB3aGVuOiBib29sZWFuOyB9JyBpcyBtaXNzaW5nIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBmcm9tIHR5cGUgJ3sgd2hlbjogYm9vbGVhbjsga2V5ZWQ6IHRydWU7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IHRydWUpID0+IEVsZW1lbnQpOyB9Jzoga2V5ZWQsIGNoaWxkcmVuXG5cblx1MDAxYls3bTE4OThcdTAwMWJbMjdtICAgICAgICAgICA8U2hvdyB3aGVuPXttZXNzYWdlcygpLmxlbmd0aCA9PT0gMX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEyWFx1MDAxYls5MW1cdTAwMWJbMTJDfn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG4gIFx1MDAxYls5Nm1ub2RlX21vZHVsZXMvc29saWQtanMvdHlwZXMvcmVuZGVyL2Zsb3cuZC50c1x1MDAxYlttOlx1MDAxYls5M200OFx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW0tcblx1MDAxYlttXG4gICAgXHUwMDFiWzdtNDhcdTAwMWJbMjdtICAgICBjaGlsZHJlbjogSlNYLkVsZW1lbnQgfCBSZXF1aXJlZFBhcmFtZXRlcjxUUmVuZGVyRnVuY3Rpb24+O1x1MDAxYltLXG4gICAgXHUwMDFiWzdtICBcdTAwMWJbMjdtICAgICBcdTAwMWJbOTZtfn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cbiAgICAnY2hpbGRyZW4nIGlzIGRlY2xhcmVkIGhlcmUuXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE4OTlcdTAwMWJbbTpcdTAwMWJbOTNtMTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xODk5XHUwMDFiWzI3bSAgICAgICAgICAgICA8U2hvdyB3aGVuPXtzdGFydGVyUHJvbXB0cygpLmxlbmd0aCA+IDB9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE4OTlcdTAwMWJbbTpcdTAwMWJbOTNtMTQgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzY5OiBcdTAwMWJbbU5vIG92ZXJsb2FkIG1hdGNoZXMgdGhpcyBjYWxsLlx1MDAxYltLXG4gIE92ZXJsb2FkIDEgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3Nvcjx0cnVlPikgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHRydWU+KSA9PiBFbGVtZW50KTsgfScuXG4gIE92ZXJsb2FkIDIgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogdHJ1ZSkgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFR5cGUgJ3sgd2hlbjogYm9vbGVhbjsgfScgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiB0cnVlKSA9PiBFbGVtZW50KTsgfSc6IGtleWVkLCBjaGlsZHJlblxuXG5cdTAwMWJbN20xODk5XHUwMDFiWzI3bSAgICAgICAgICAgICA8U2hvdyB3aGVuPXtzdGFydGVyUHJvbXB0cygpLmxlbmd0aCA+IDB9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNFhcdTAwMWJbOTFtXHUwMDFiWzE0Q35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuICBcdTAwMWJbOTZtbm9kZV9tb2R1bGVzL3NvbGlkLWpzL3R5cGVzL3JlbmRlci9mbG93LmQudHNcdTAwMWJbbTpcdTAwMWJbOTNtNDhcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYltLXG5cdTAwMWJbbVxuICAgIFx1MDAxYls3bTQ4XHUwMDFiWzI3bSAgICAgY2hpbGRyZW46IEpTWC5FbGVtZW50IHwgUmVxdWlyZWRQYXJhbWV0ZXI8VFJlbmRlckZ1bmN0aW9uPjtcdTAwMWJbS1xuICAgIFx1MDAxYls3bSAgXHUwMDFiWzI3bSAgICAgXHUwMDFiWzk2bX5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG4gICAgJ2NoaWxkcmVuJyBpcyBkZWNsYXJlZCBoZXJlLlxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTAwXHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkwMFx1MDAxYlsyN20gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXggZmxleC1yb3cgZmxleC13cmFwIHB4LTUgcHktWzEwcHhdIGdhcC0yXCI+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkwMVx1MDAxYlttOlx1MDAxYls5M20xNyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MDFcdTAwMWJbMjdtICAgICAgICAgICAgICAgICA8Rm9yIGVhY2g9e1suLi5zdGFydGVyUHJvbXB0cygpXX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE3WFx1MDAxYls5MW1cdTAwMWJbMTdDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTAxXHUwMDFiW206XHUwMDFiWzkzbTE4IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjc0MTogXHUwMDFiW21Qcm9wZXJ0eSAnY2hpbGRyZW4nIGlzIG1pc3NpbmcgaW4gdHlwZSAneyBlYWNoOiBzdHJpbmdbXTsgfScgYnV0IHJlcXVpcmVkIGluIHR5cGUgJ3sgZWFjaDogZmFsc2UgfCBzdHJpbmdbXTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogKGl0ZW06IHN0cmluZywgaW5kZXg6IEFjY2Vzc29yPG51bWJlclxuXHUwMDFiWzc7MjIzSHI+KSA9PiBFbGVtZW50OyB9Jy5cblxuXHUwMDFiWzdtMTkwMVx1MDAxYlsyN20gICAgICAgICAgICAgICAgIDxGb3IgZWFjaD17Wy4uLnN0YXJ0ZXJQcm9tcHRzKCldfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMThYXHUwMDFiWzkxbVx1MDAxYlsxOEN+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuICBcdTAwMWJbOTZtbm9kZV9tb2R1bGVzL3NvbGlkLWpzL3R5cGVzL3JlbmRlci9mbG93LmQudHNcdTAwMWJbbTpcdTAwMWJbOTNtMTlcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYltLXG5cdTAwMWJbbVxuICAgIFx1MDAxYls3bTE5XHUwMDFiWzI3bSAgICAgY2hpbGRyZW46IChpdGVtOiBUW251bWJlcl0sIGluZGV4OiBBY2Nlc3NvcjxudW1iZXI+KSA9PiBVO1x1MDAxYltLXG4gICAgXHUwMDFiWzdtICBcdTAwMWJbMjdtICAgICBcdTAwMWJbOTZtfn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cbiAgICAnY2hpbGRyZW4nIGlzIGRlY2xhcmVkIGhlcmUuXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MDNcdTAwMWJbbTpcdTAwMWJbOTNtMjEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTAzXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgIDxTdGFydGVyUHJvbXB0QnViYmxlXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzIxWFx1MDAxYls5MW1cdTAwMWJbMjFDfn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE5MDRcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICBwcm9tcHQ9e2tleX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTE5MDZcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICBzdGFydGVyUHJvbXB0Rm9udFNpemU9e2JvdFByb3BzLnN0YXJ0ZXJQcm9tcHRGb250U2l6ZX0gLy8gUGFzcyBpdCBoZXJlIGFzIGEgbnVtYmVyXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTkwN1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTEzXHUwMDFiW206XHUwMDFiWzkzbTExIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkxM1x1MDAxYlsyN20gICAgICAgICAgIDxTaG93IHdoZW49e21lc3NhZ2VzKCkubGVuZ3RoID4gMiAmJiBmb2xsb3dVcFByb21wdHNTdGF0dXMoKX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzExWFx1MDAxYls5MW1cdTAwMWJbMTFDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkxM1x1MDAxYlttOlx1MDAxYls5M20xMiBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI3Njk6IFx1MDAxYlttTm8gb3ZlcmxvYWQgbWF0Y2hlcyB0aGlzIGNhbGwuXHUwMDFiW0tcbiAgT3ZlcmxvYWQgMSBvZiAyLCAnKHByb3BzOiB7IHdoZW46IGJvb2xlYW47IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHRydWU+KSA9PiBFbGVtZW50KTsgfSk6IEVsZW1lbnQnLCBnYXZlIHRoZSBmb2xsb3dpbmcgZXJyb3IuXG4gICAgUHJvcGVydHkgJ2NoaWxkcmVuJyBpcyBtaXNzaW5nIGluIHR5cGUgJ3sgd2hlbjogYm9vbGVhbjsgfScgYnV0IHJlcXVpcmVkIGluIHR5cGUgJ3sgd2hlbjogYm9vbGVhbjsga2V5ZWQ/OiBmYWxzZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogQWNjZXNzb3I8dHJ1ZT4pID0+IEVsZW1lbnQpOyB9Jy5cbiAgT3ZlcmxvYWQgMiBvZiAyLCAnKHByb3BzOiB7IHdoZW46IGJvb2xlYW47IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiB0cnVlKSA9PiBFbGVtZW50KTsgfSk6IEVsZW1lbnQnLCBnYXZlIHRoZSBmb2xsb3dpbmcgZXJyb3IuXG4gICAgVHlwZSAneyB3aGVuOiBib29sZWFuOyB9JyBpcyBtaXNzaW5nIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBmcm9tIHR5cGUgJ3sgd2hlbjogYm9vbGVhbjsga2V5ZWQ6IHRydWU7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IHRydWUpID0+IEVsZW1lbnQpOyB9Jzoga2V5ZWQsIGNoaWxkcmVuXG5cblx1MDAxYls3bTE5MTNcdTAwMWJbMjdtICAgICAgICAgICA8U2hvdyB3aGVuPXttZXNzYWdlcygpLmxlbmd0aCA+IDIgJiYgZm9sbG93VXBQcm9tcHRzU3RhdHVzKCl9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMlhcdTAwMWJbOTFtXHUwMDFiWzEyQ35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuICBcdTAwMWJbOTZtbm9kZV9tb2R1bGVzL3NvbGlkLWpzL3R5cGVzL3JlbmRlci9mbG93LmQudHNcdTAwMWJbbTpcdTAwMWJbOTNtNDhcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYltLXG5cdTAwMWJbbVxuICAgIFx1MDAxYls3bTQ4XHUwMDFiWzI3bSAgICAgY2hpbGRyZW46IEpTWC5FbGVtZW50IHwgUmVxdWlyZWRQYXJhbWV0ZXI8VFJlbmRlckZ1bmN0aW9uPjtcdTAwMWJbS1xuICAgIFx1MDAxYls3bSAgXHUwMDFiWzI3bSAgICAgXHUwMDFiWzk2bX5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG4gICAgJ2NoaWxkcmVuJyBpcyBkZWNsYXJlZCBoZXJlLlxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTE0XHUwMDFiW206XHUwMDFiWzkzbTEzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkxNFx1MDAxYlsyN20gICAgICAgICAgICAgPFNob3cgd2hlbj17Zm9sbG93VXBQcm9tcHRzKCkubGVuZ3RoID4gMH0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEzWFx1MDAxYls5MW1cdTAwMWJbMTNDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MTRcdTAwMWJbbTpcdTAwMWJbOTNtMTQgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzY5OiBcdTAwMWJbbU5vIG92ZXJsb2FkIG1hdGNoZXMgdGhpcyBjYWxsLlx1MDAxYltLXG4gIE92ZXJsb2FkIDEgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3Nvcjx0cnVlPikgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHRydWU+KSA9PiBFbGVtZW50KTsgfScuXG4gIE92ZXJsb2FkIDIgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogdHJ1ZSkgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFR5cGUgJ3sgd2hlbjogYm9vbGVhbjsgfScgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiB0cnVlKSA9PiBFbGVtZW50KTsgfSc6IGtleWVkLCBjaGlsZHJlblxuXG5cdTAwMWJbN20xOTE0XHUwMDFiWzI3bSAgICAgICAgICAgICA8U2hvdyB3aGVuPXtmb2xsb3dVcFByb21wdHMoKS5sZW5ndGggPiAwfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTRYXHUwMDFiWzkxbVx1MDAxYlsxNEN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cbiAgXHUwMDFiWzk2bW5vZGVfbW9kdWxlcy9zb2xpZC1qcy90eXBlcy9yZW5kZXIvZmxvdy5kLnRzXHUwMDFiW206XHUwMDFiWzkzbTQ4XHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbS1xuXHUwMDFiW21cbiAgICBcdTAwMWJbN200OFx1MDAxYlsyN20gICAgIGNoaWxkcmVuOiBKU1guRWxlbWVudCB8IFJlcXVpcmVkUGFyYW1ldGVyPFRSZW5kZXJGdW5jdGlvbj47XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkxNVx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MTVcdTAwMWJbMjdtICAgICAgICAgICAgICAgPD5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTE2XHUwMDFiW206XHUwMDFiWzkzbTE3IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkxNlx1MDAxYlsyN20gICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSBweC01XCI+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE3WFx1MDAxYls5MW1cdTAwMWJbMTdDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MTdcdTAwMWJbbTpcdTAwMWJbOTNtMTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTE3XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICA8U3BhcmtsZXNJY29uIGNsYXNzPVwidy00IGgtNFwiIC8+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE5WFx1MDAxYls5MW1cdTAwMWJbMTlDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkxOFx1MDAxYlttOlx1MDAxYls5M20xOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MThcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNzAwXCI+VHJ5IHRoZXNlIHByb21wdHM8L3NwYW4+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE5WFx1MDAxYls5MW1cdTAwMWJbMTlDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MjBcdTAwMWJbbTpcdTAwMWJbOTNtMTcgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTIwXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBweC01IHB5LVsxMHB4XSBnYXAtMlwiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxN1hcdTAwMWJbOTFtXHUwMDFiWzE3Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MjFcdTAwMWJbbTpcdTAwMWJbOTNtMTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTIxXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICA8Rm9yIGVhY2g9e1suLi5mb2xsb3dVcFByb21wdHMoKV19Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxOVhcdTAwMWJbOTFtXHUwMDFiWzE5Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MjFcdTAwMWJbbTpcdTAwMWJbOTNtMjAgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzQxOiBcdTAwMWJbbVByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IGVhY2g6IHN0cmluZ1tdOyB9JyBidXQgcmVxdWlyZWQgaW4gdHlwZSAneyBlYWNoOiBmYWxzZSB8IHN0cmluZ1tdOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiAoaXRlbTogc3RyaW5nLCBpbmRleDogQWNjZXNzb3I8bnVtYmVyXG5cdTAwMWJbNzsyMjNIcj4pID0+IEVsZW1lbnQ7IH0nLlxuXG5cdTAwMWJbN20xOTIxXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICA8Rm9yIGVhY2g9e1suLi5mb2xsb3dVcFByb21wdHMoKV19Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyMFhcdTAwMWJbOTFtXHUwMDFiWzIwQ35+flx1MDAxYltLXG5cdTAwMWJbbVxuXG4gIFx1MDAxYls5Nm1ub2RlX21vZHVsZXMvc29saWQtanMvdHlwZXMvcmVuZGVyL2Zsb3cuZC50c1x1MDAxYlttOlx1MDAxYls5M20xOVx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW0tcblx1MDAxYlttXG4gICAgXHUwMDFiWzdtMTlcdTAwMWJbMjdtICAgICBjaGlsZHJlbjogKGl0ZW06IFRbbnVtYmVyXSwgaW5kZXg6IEFjY2Vzc29yPG51bWJlcj4pID0+IFU7XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkyM1x1MDAxYlttOlx1MDAxYls5M20yMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MjNcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICA8Rm9sbG93VXBQcm9tcHRCdWJibGVcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjNYXHUwMDFiWzkxbVx1MDAxYlsyM0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE5MjRcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICAgIHByb21wdD17cHJvbXB0fVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20xOTI2XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydGVyUHJvbXB0Rm9udFNpemU9e2JvdFByb3BzLnN0YXJ0ZXJQcm9tcHRGb250U2l6ZX0gLy8gUGFzcyBpdCBoZXJlIGFzIGEgbnVtYmVyXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xOTI3XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTM0XHUwMDFiW206XHUwMDFiWzkzbTExIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkzNFx1MDAxYlsyN20gICAgICAgICAgIDxTaG93IHdoZW49e3ByZXZpZXdzKCkubGVuZ3RoID4gMH0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzExWFx1MDAxYls5MW1cdTAwMWJbMTFDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkzNFx1MDAxYlttOlx1MDAxYls5M20xMiBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI3Njk6IFx1MDAxYlttTm8gb3ZlcmxvYWQgbWF0Y2hlcyB0aGlzIGNhbGwuXHUwMDFiW0tcbiAgT3ZlcmxvYWQgMSBvZiAyLCAnKHByb3BzOiB7IHdoZW46IGJvb2xlYW47IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHRydWU+KSA9PiBFbGVtZW50KTsgfSk6IEVsZW1lbnQnLCBnYXZlIHRoZSBmb2xsb3dpbmcgZXJyb3IuXG4gICAgUHJvcGVydHkgJ2NoaWxkcmVuJyBpcyBtaXNzaW5nIGluIHR5cGUgJ3sgd2hlbjogYm9vbGVhbjsgfScgYnV0IHJlcXVpcmVkIGluIHR5cGUgJ3sgd2hlbjogYm9vbGVhbjsga2V5ZWQ/OiBmYWxzZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogQWNjZXNzb3I8dHJ1ZT4pID0+IEVsZW1lbnQpOyB9Jy5cbiAgT3ZlcmxvYWQgMiBvZiAyLCAnKHByb3BzOiB7IHdoZW46IGJvb2xlYW47IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiB0cnVlKSA9PiBFbGVtZW50KTsgfSk6IEVsZW1lbnQnLCBnYXZlIHRoZSBmb2xsb3dpbmcgZXJyb3IuXG4gICAgVHlwZSAneyB3aGVuOiBib29sZWFuOyB9JyBpcyBtaXNzaW5nIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBmcm9tIHR5cGUgJ3sgd2hlbjogYm9vbGVhbjsga2V5ZWQ6IHRydWU7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IHRydWUpID0+IEVsZW1lbnQpOyB9Jzoga2V5ZWQsIGNoaWxkcmVuXG5cblx1MDAxYls3bTE5MzRcdTAwMWJbMjdtICAgICAgICAgICA8U2hvdyB3aGVuPXtwcmV2aWV3cygpLmxlbmd0aCA+IDB9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMlhcdTAwMWJbOTFtXHUwMDFiWzEyQ35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuICBcdTAwMWJbOTZtbm9kZV9tb2R1bGVzL3NvbGlkLWpzL3R5cGVzL3JlbmRlci9mbG93LmQudHNcdTAwMWJbbTpcdTAwMWJbOTNtNDhcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYltLXG5cdTAwMWJbbVxuICAgIFx1MDAxYls3bTQ4XHUwMDFiWzI3bSAgICAgY2hpbGRyZW46IEpTWC5FbGVtZW50IHwgUmVxdWlyZWRQYXJhbWV0ZXI8VFJlbmRlckZ1bmN0aW9uPjtcdTAwMWJbS1xuICAgIFx1MDAxYls3bSAgXHUwMDFiWzI3bSAgICAgXHUwMDFiWzk2bX5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG4gICAgJ2NoaWxkcmVuJyBpcyBkZWNsYXJlZCBoZXJlLlxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTM1XHUwMDFiW206XHUwMDFiWzkzbTEzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkzNVx1MDAxYlsyN20gICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LXN0YXJ0IGdhcC0yIHB4LTUgcHQtMiBib3JkZXItdCBib3JkZXItWyNlZWVlZWVdXCI+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEzWFx1MDAxYls5MW1cdTAwMWJbMTNDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTM2XHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkzNlx1MDAxYlsyN20gICAgICAgICAgICAgICA8Rm9yIGVhY2g9e1suLi5wcmV2aWV3cygpXX0+eyhpdGVtKSA9PiA8PntwcmV2aWV3RGlzcGxheShpdGVtKX08Lz59PC9Gb3I+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTM2XHUwMDFiW206XHUwMDFiWzkzbTE2IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjc0MTogXHUwMDFiW21Qcm9wZXJ0eSAnY2hpbGRyZW4nIGlzIG1pc3NpbmcgaW4gdHlwZSAneyBlYWNoOiBGaWxlUHJldmlld1tdOyB9JyBidXQgcmVxdWlyZWQgaW4gdHlwZSAneyBlYWNoOiBmYWxzZSB8IEZpbGVQcmV2aWV3W107IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IChpdGVtOiBGaWxlUHJldmlldywgaW5kZXg6IFxuXHUwMDFiWzc7MjIzSCBBY2Nlc3NvcjxudW1iZXI+KSA9PiBFbGVtZW50OyB9Jy5cblxuXHUwMDFiWzdtMTkzNlx1MDAxYlsyN20gICAgICAgICAgICAgICA8Rm9yIGVhY2g9e1suLi5wcmV2aWV3cygpXX0+eyhpdGVtKSA9PiA8PntwcmV2aWV3RGlzcGxheShpdGVtKX08Lz59PC9Gb3I+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE2WFx1MDAxYls5MW1cdTAwMWJbMTZDfn5+XHUwMDFiW0tcblx1MDAxYlttXG5cbiAgXHUwMDFiWzk2bW5vZGVfbW9kdWxlcy9zb2xpZC1qcy90eXBlcy9yZW5kZXIvZmxvdy5kLnRzXHUwMDFiW206XHUwMDFiWzkzbTE5XHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbS1xuXHUwMDFiW21cbiAgICBcdTAwMWJbN20xOVx1MDAxYlsyN20gICAgIGNoaWxkcmVuOiAoaXRlbTogVFtudW1iZXJdLCBpbmRleDogQWNjZXNzb3I8bnVtYmVyPikgPT4gVTtcdTAwMWJbS1xuICAgIFx1MDAxYls3bSAgXHUwMDFiWzI3bSAgICAgXHUwMDFiWzk2bX5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG4gICAgJ2NoaWxkcmVuJyBpcyBkZWNsYXJlZCBoZXJlLlxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTM2XHUwMDFiW206XHUwMDFiWzkzbTU0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkzNlx1MDAxYlsyN20gICAgICAgICAgICAgICA8Rm9yIGVhY2g9e1suLi5wcmV2aWV3cygpXX0+eyhpdGVtKSA9PiA8PntwcmV2aWV3RGlzcGxheShpdGVtKX08Lz59PC9Gb3I+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzU0WFx1MDAxYls5MW1cdTAwMWJbNTRDfn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk0MFx1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5NDBcdTAwMWJbMjdtICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMiBtdC0yIG1sLVsyNHB4XVwiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk0MVx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5NDFcdTAwMWJbMjdtICAgICAgICAgICAgICAgPEZvciBlYWNoPXtzdWdnZXN0UXVlc3Rpb24oKX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5NDFcdTAwMWJbbTpcdTAwMWJbOTNtMTYgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzQxOiBcdTAwMWJbbVByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IGVhY2g6IGFueVtdOyB9JyBidXQgcmVxdWlyZWQgaW4gdHlwZSAneyBlYWNoOiBmYWxzZSB8IGFueVtdOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiAoaXRlbTogYW55LCBpbmRleDogQWNjZXNzb3I8bnVtYmVyPikgPT4gRWxlXG5cdTAwMWJbNzsyMjNIZW1lbnQ7IH0nLlxuXG5cdTAwMWJbN20xOTQxXHUwMDFiWzI3bSAgICAgICAgICAgICAgIDxGb3IgZWFjaD17c3VnZ2VzdFF1ZXN0aW9uKCl9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNlhcdTAwMWJbOTFtXHUwMDFiWzE2Q35+flx1MDAxYltLXG5cdTAwMWJbbVxuXG4gIFx1MDAxYls5Nm1ub2RlX21vZHVsZXMvc29saWQtanMvdHlwZXMvcmVuZGVyL2Zsb3cuZC50c1x1MDAxYlttOlx1MDAxYls5M20xOVx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW0tcblx1MDAxYlttXG4gICAgXHUwMDFiWzdtMTlcdTAwMWJbMjdtICAgICBjaGlsZHJlbjogKGl0ZW06IFRbbnVtYmVyXSwgaW5kZXg6IEFjY2Vzc29yPG51bWJlcj4pID0+IFU7XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk0M1x1MDAxYlttOlx1MDAxYls5M20xOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5NDNcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgIDxidXR0b25cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTlYXHUwMDFiWzkxbVx1MDAxYlsxOUN+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xOTQ0XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctZ3JheS0xMDAgaG92ZXI6YmctZ3JheS0yMDAgdGV4dC1zbSB0ZXh0LWdyYXktODAwIHB5LTIgcHgtNCByb3VuZGVkLWZ1bGwgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwXCJcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTE5NDZcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2xvYWRpbmcoKX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE5NDdcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgID5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk1NVx1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5NTVcdTAwMWJbMjdtICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMiBtdC0yIG1sLVsyNHB4XVwiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk1Nlx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5NTZcdTAwMWJbMjdtICAgICAgICAgICAgICAgPEZvclx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE5NTdcdTAwMWJbMjdtICAgICAgICAgICAgICAgICBlYWNoPXsoKCkgPT4ge1x1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20xOTcyXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgfSkoKX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTk3M1x1MDAxYlsyN20gICAgICAgICAgICAgICA+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk1Nlx1MDAxYlttOlx1MDAxYls5M20xNiBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI3NDE6IFx1MDAxYlttUHJvcGVydHkgJ2NoaWxkcmVuJyBpcyBtaXNzaW5nIGluIHR5cGUgJ3sgZWFjaDogc3RyaW5nW107IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IGVhY2g6IGZhbHNlIHwgc3RyaW5nW107IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IChpdGVtOiBzdHJpbmcsIGluZGV4OiBBY2Nlc3NvcjxudW1iZXJcblx1MDAxYls3OzIyM0hyPikgPT4gRWxlbWVudDsgfScuXG5cblx1MDAxYls3bTE5NTZcdTAwMWJbMjdtICAgICAgICAgICAgICAgPEZvclx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNlhcdTAwMWJbOTFtXHUwMDFiWzE2Q35+flx1MDAxYltLXG5cdTAwMWJbbVxuXG4gIFx1MDAxYls5Nm1ub2RlX21vZHVsZXMvc29saWQtanMvdHlwZXMvcmVuZGVyL2Zsb3cuZC50c1x1MDAxYlttOlx1MDAxYls5M20xOVx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW0tcblx1MDAxYlttXG4gICAgXHUwMDFiWzdtMTlcdTAwMWJbMjdtICAgICBjaGlsZHJlbjogKGl0ZW06IFRbbnVtYmVyXSwgaW5kZXg6IEFjY2Vzc29yPG51bWJlcj4pID0+IFU7XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk3NVx1MDAxYlttOlx1MDAxYls5M20xOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5NzVcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgIDxidXR0b25cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTlYXHUwMDFiWzkxbVx1MDAxYlsxOUN+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xOTc2XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctZ3JheS0xMDAgaG92ZXI6YmctZ3JheS0yMDAgdGV4dC1zbSB0ZXh0LWdyYXktODAwIHB5LTIgcHgtNCByb3VuZGVkLWZ1bGwgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwXCJcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTE5NzhcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2xvYWRpbmcoKX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE5NzlcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgID5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk4Nlx1MDAxYlttOlx1MDAxYls5M20xMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5ODZcdTAwMWJbMjdtICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHB4LTUgcHQtMiBwYi0xXCI+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzExWFx1MDAxYls5MW1cdTAwMWJbMTFDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk4OFx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5ODhcdTAwMWJbMjdtICAgICAgICAgICAgICAgPD5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTkwXHUwMDFiW206XHUwMDFiWzkzbTE5IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTk5MFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcC00IGJvcmRlciBib3JkZXItWyNlZWVlZWVdXCI+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE5WFx1MDAxYls5MW1cdTAwMWJbMTlDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTkxXHUwMDFiW206XHUwMDFiWzkzbTIxIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTk5MVx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtM1wiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyMVhcdTAwMWJbOTFtXHUwMDFiWzIxQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTkyXHUwMDFiW206XHUwMDFiWzkzbTIzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTk5Mlx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1iYXNlXCI+VG8gcmVjb3JkIGF1ZGlvLCB1c2UgbW9kZXJuIGJyb3dzZXJzIGxpa2UgQ2hyb21lIG9yIEZpcmVmb3ggdGhhdCBzdXBwb3J0IGF1ZGlvIHJlY29yZGluZy48L3NwYW4+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzIzWFx1MDAxYls5MW1cdTAwMWJbMjNDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5OTNcdTAwMWJbbTpcdTAwMWJbOTNtMjMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTkzXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyM1hcdTAwMWJbOTFtXHUwMDFiWzIzQ35+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE5OTRcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHktMiBweC00IGp1c3RpZnktY2VudGVyIGZsZXggaXRlbXMtY2VudGVyIGJnLXJlZC01MDAgdGV4dC13aGl0ZSByb3VuZGVkLW1kXCJcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20xOTk2XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvblJlY29yZGluZ0NhbmNlbGxlZCgpfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE5OTdcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICA+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDAzXHUwMDFiW206XHUwMDFiWzkzbTE5IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjAwM1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgPGRpdlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxOVhcdTAwMWJbOTFtXHUwMDFiWzE5Q35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTIwMDRcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoLVs1OHB4XSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gY2hhdGJvdC1pbnB1dCBib3JkZXIgYm9yZGVyLVsjZWVlZWVlXVwiXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTIwMTBcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgfX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTIwMTFcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgID5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjAxMlx1MDAxYlttOlx1MDAxYls5M20yMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIwMTJcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHB4LTQgcHktMlwiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyMVhcdTAwMWJbOTFtXHUwMDFiWzIxQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwMTNcdTAwMWJbbTpcdTAwMWJbOTNtMjMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDEzXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzIzWFx1MDAxYls5MW1cdTAwMWJbMjNDfn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwMTRcdTAwMWJbbTpcdTAwMWJbOTNtMjUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDE0XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgICA8Q2lyY2xlRG90SWNvbiBjb2xvcj1cInJlZFwiIC8+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzI1WFx1MDAxYls5MW1cdTAwMWJbMjVDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjAxNlx1MDAxYlttOlx1MDAxYls5M20yMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIwMTZcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57ZWxhcHNlZFRpbWUoKSB8fCAnMDA6MDAnfTwvc3Bhbj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjNYXHUwMDFiWzkxbVx1MDAxYlsyM0N+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjAxN1x1MDAxYlttOlx1MDAxYls5M200OCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIwMTdcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICB7aXNMb2FkaW5nUmVjb3JkaW5nKCkgJiYgPHNwYW4gY2xhc3M9XCJtbC0xLjVcIj5TZW5kaW5nLi4uPC9zcGFuPn1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbNDhYXHUwMDFiWzkxbVx1MDAxYls0OEN+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjAxOVx1MDAxYlttOlx1MDAxYls5M20yMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIwMTlcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzIxWFx1MDAxYls5MW1cdTAwMWJbMjFDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDIwXHUwMDFiW206XHUwMDFiWzkzbTIzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjAyMFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgIDxDYW5jZWxCdXR0b24gYnV0dG9uQ29sb3I9e3Byb3BzLnRleHRJbnB1dD8uc2VuZEJ1dHRvbkNvbG9yfSB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJtLTBcIiBvbjpjbGljaz17b25SZWNvcmRpbmdDYW5jZWxsZWR9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyM1hcdTAwMWJbOTFtXHUwMDFiWzIzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwMjFcdTAwMWJbbTpcdTAwMWJbOTNtMjUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDIxXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyAnZm9udC1mYW1pbHknOiAnUG9wcGlucywgc2Fucy1zZXJpZicgfX0+U2VuZDwvc3Bhbj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjVYXHUwMDFiWzkxbVx1MDAxYlsyNUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwMjNcdTAwMWJbbTpcdTAwMWJbOTNtMjMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDIzXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgPFNlbmRCdXR0b25cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjNYXHUwMDFiWzkxbVx1MDAxYlsyM0N+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjAyNFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgICAgc2VuZEJ1dHRvbkNvbG9yPXtwcm9wcy50ZXh0SW5wdXQ/LnNlbmRCdXR0b25Db2xvcn1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20yMDI4XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgICBvbjpjbGljaz17b25SZWNvcmRpbmdTdG9wcGVkfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTIwMjlcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICA+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDMwXHUwMDFiW206XHUwMDFiWzkzbTI1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjAzMFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgJ2ZvbnQtZmFtaWx5JzogJ1BvcHBpbnMsIHNhbnMtc2VyaWYnIH19PlNlbmQ8L3NwYW4+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzI1WFx1MDAxYls5MW1cdTAwMWJbMjVDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDM3XHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjAzN1x1MDAxYlsyN20gICAgICAgICAgICAgICA8Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwMzhcdTAwMWJbbTpcdTAwMWJbOTNtNTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDM4XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAge2N1cnJlbnRTdGF0dXNNc2coKSAmJiBsb2FkaW5nKCkgJiYgPGRpdiBzdHlsZT17eyBjb2xvcjogcHJvcHMudGV4dElucHV0Py50ZXh0Q29sb3IgPz8gJ2JsYWNrJyB9fT57Y3VycmVudFN0YXR1c01zZygpfTwvZGl2Pn1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbNTNYXHUwMDFiWzkxbVx1MDAxYls1M0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDM5XHUwMDFiW206XHUwMDFiWzkzbTE3IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjAzOVx1MDAxYlsyN20gICAgICAgICAgICAgICAgIDxUZXh0SW5wdXRcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTdYXHUwMDFiWzkxbVx1MDAxYlsxN0N+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20yMDQwXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e3Byb3BzLnRleHRJbnB1dD8uYmFja2dyb3VuZENvbG9yfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTIwNjVcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgIHNldERpc2FibGVJbnB1dD17c2V0RGlzYWJsZUlucHV0fVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20yMDY2XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDcwXHUwMDFiW206XHUwMDFiWzkzbTExIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjA3MFx1MDAxYlsyN20gICAgICAgICAgIDxCYWRnZVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjA3MVx1MDAxYlsyN20gICAgICAgICAgICAgZm9vdGVyPXtwcm9wcy5mb290ZXJ9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTIwNzRcdTAwMWJbMjdtICAgICAgICAgICAgIGJvdENvbnRhaW5lcj17Ym90Q29udGFpbmVyfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20yMDc1XHUwMDFiWzI3bSAgICAgICAgICAgLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDc3XHUwMDFiW206XHUwMDFiWzkzbTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDc3XHUwMDFiWzI3bSAgICAgICAgIDxTaG93IHdoZW49e3Nob3dTY3JvbGxCdXR0b24oKX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzlYXHUwMDFiWzkxbVx1MDAxYls5Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwNzdcdTAwMWJbbTpcdTAwMWJbOTNtMTAgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzY5OiBcdTAwMWJbbU5vIG92ZXJsb2FkIG1hdGNoZXMgdGhpcyBjYWxsLlx1MDAxYltLXG4gIE92ZXJsb2FkIDEgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3Nvcjx0cnVlPikgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHRydWU+KSA9PiBFbGVtZW50KTsgfScuXG4gIE92ZXJsb2FkIDIgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogdHJ1ZSkgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFR5cGUgJ3sgd2hlbjogYm9vbGVhbjsgfScgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiB0cnVlKSA9PiBFbGVtZW50KTsgfSc6IGtleWVkLCBjaGlsZHJlblxuXG5cdTAwMWJbN20yMDc3XHUwMDFiWzI3bSAgICAgICAgIDxTaG93IHdoZW49e3Nob3dTY3JvbGxCdXR0b24oKX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEwWFx1MDAxYls5MW1cdTAwMWJbMTBDfn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG4gIFx1MDAxYls5Nm1ub2RlX21vZHVsZXMvc29saWQtanMvdHlwZXMvcmVuZGVyL2Zsb3cuZC50c1x1MDAxYlttOlx1MDAxYls5M200OFx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW0tcblx1MDAxYlttXG4gICAgXHUwMDFiWzdtNDhcdTAwMWJbMjdtICAgICBjaGlsZHJlbjogSlNYLkVsZW1lbnQgfCBSZXF1aXJlZFBhcmFtZXRlcjxUUmVuZGVyRnVuY3Rpb24+O1x1MDAxYltLXG4gICAgXHUwMDFiWzdtICBcdTAwMWJbMjdtICAgICBcdTAwMWJbOTZtfn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cbiAgICAnY2hpbGRyZW4nIGlzIGRlY2xhcmVkIGhlcmUuXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwNzhcdTAwMWJbbTpcdTAwMWJbOTNtMTEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDc4XHUwMDFiWzI3bSAgICAgICAgICAgPGJ1dHRvblx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTIwNzlcdTAwMWJbMjdtICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGNoYXRDb250YWluZXI/LnNjcm9sbFRvKHsgdG9wOiBjaGF0Q29udGFpbmVyLnNjcm9sbEhlaWdodCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20yMDgxXHUwMDFiWzI3bSAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2Nyb2xsIHRvIGJvdHRvbVwiXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjA4Mlx1MDAxYlsyN20gICAgICAgICAgID5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwODNcdTAwMWJbbTpcdTAwMWJbOTNtMTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDgzXHUwMDFiWzI3bSAgICAgICAgICAgICA8c3ZnXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEzWFx1MDAxYls5MW1cdTAwMWJbMTNDfn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjA4NFx1MDAxYlsyN20gICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMjA5Mlx1MDAxYlsyN20gICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20yMDkzXHUwMDFiWzI3bSAgICAgICAgICAgICA+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwOTRcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cblxuXHUwMDFiWzdtMjA5NFx1MDAxYlsyN20gICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyIDV2MTRNMTkgMTJsLTcgNy03LTdcIiAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDk5XHUwMDFiW206XHUwMDFiWzkzbTI5IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjA5OVx1MDAxYlsyN20gICAgICAge3NvdXJjZVBvcHVwT3BlbigpICYmIDxQb3B1cCBpc09wZW49e3NvdXJjZVBvcHVwT3BlbigpfSB2YWx1ZT17c291cmNlUG9wdXBTcmMoKX0gb25DbG9zZT17KCkgPT4gc2V0U291cmNlUG9wdXBPcGVuKGZhbHNlKX0gLz59XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzI5WFx1MDAxYls5MW1cdTAwMWJbMjlDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMTAyXHUwMDFiW206XHUwMDFiWzkzbTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMTAyXHUwMDFiWzI3bSAgICAgICAgIDxEaXNjbGFpbWVyUG9wdXBcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbOVhcdTAwMWJbOTFtXHUwMDFiWzlDfn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjEwM1x1MDAxYlsyN20gICAgICAgICAgIGlzT3Blbj17ZGlzY2xhaW1lclBvcHVwT3BlbigpfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMjExMlx1MDAxYlsyN20gICAgICAgICAgIGJhY2tncm91bmRDb2xvcj17cHJvcHMuZGlzY2xhaW1lcj8uYmFja2dyb3VuZENvbG9yfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjExM1x1MDAxYlsyN20gICAgICAgICAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMTE2XHUwMDFiW206XHUwMDFiWzkzbTcgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMTE2XHUwMDFiWzI3bSAgICAgICA8U2hvdyB3aGVuPXtpc05ldHdvcmtFcnJvcigpfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gICAgICAgXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMTE2XHUwMDFiW206XHUwMDFiWzkzbTggXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzY5OiBcdTAwMWJbbU5vIG92ZXJsb2FkIG1hdGNoZXMgdGhpcyBjYWxsLlx1MDAxYltLXG4gIE92ZXJsb2FkIDEgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3Nvcjx0cnVlPikgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHRydWU+KSA9PiBFbGVtZW50KTsgfScuXG4gIE92ZXJsb2FkIDIgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogdHJ1ZSkgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFR5cGUgJ3sgd2hlbjogYm9vbGVhbjsgfScgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiB0cnVlKSA9PiBFbGVtZW50KTsgfSc6IGtleWVkLCBjaGlsZHJlblxuXG5cdTAwMWJbN20yMTE2XHUwMDFiWzI3bSAgICAgICA8U2hvdyB3aGVuPXtpc05ldHdvcmtFcnJvcigpfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gICAgICAgIFx1MDAxYls5MW1+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cbiAgXHUwMDFiWzk2bW5vZGVfbW9kdWxlcy9zb2xpZC1qcy90eXBlcy9yZW5kZXIvZmxvdy5kLnRzXHUwMDFiW206XHUwMDFiWzkzbTQ4XHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbS1xuXHUwMDFiW21cbiAgICBcdTAwMWJbN200OFx1MDAxYlsyN20gICAgIGNoaWxkcmVuOiBKU1guRWxlbWVudCB8IFJlcXVpcmVkUGFyYW1ldGVyPFRSZW5kZXJGdW5jdGlvbj47XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjExN1x1MDAxYlttOlx1MDAxYls5M205IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjExN1x1MDAxYlsyN20gICAgICAgICA8VG9hc3RcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbOVhcdTAwMWJbOTFtXHUwMDFiWzlDfn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20yMTE4XHUwMDFiWzI3bSAgICAgICAgICAgbWVzc2FnZT17bmV0d29ya0Vycm9yTWVzc2FnZSgpfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTIxMjRcdTAwMWJbMjdtICAgICAgICAgICB9fVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20yMTI1XHUwMDFiWzI3bSAgICAgICAgIC8+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pY29ucy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M20xXHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vQ2xpcGJvYXJkSWNvbicgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvaWNvbnMvQ2xpcGJvYXJkSWNvbi50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTFcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vQ2xpcGJvYXJkSWNvbic7XHUwMDFiW0tcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTJcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9UaHVtYnNEb3duSWNvbicgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvaWNvbnMvVGh1bWJzRG93bkljb24udHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yXHUwMDFiWzI3bSBleHBvcnQgKiBmcm9tICcuL1RodW1ic0Rvd25JY29uJztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTNcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9UaHVtYnNVcEljb24nIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2ljb25zL1RodW1ic1VwSWNvbi50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTNcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vVGh1bWJzVXBJY29uJztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pY29ucy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M200XHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vQWRkSW1hZ2VJY29uJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9pY29ucy9BZGRJbWFnZUljb24udHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN200XHUwMDFiWzI3bSBleHBvcnQgKiBmcm9tICcuL0FkZEltYWdlSWNvbic7XHUwMDFiW0tcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvaWNvbnMvaW5kZXgudHNcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL0NpcmNsZURvdEljb24nIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2ljb25zL0NpcmNsZURvdEljb24udHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN201XHUwMDFiWzI3bSBleHBvcnQgKiBmcm9tICcuL0NpcmNsZURvdEljb24nO1x1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pY29ucy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M202XHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vRGVsZXRlSWNvbicgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvaWNvbnMvRGVsZXRlSWNvbi50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTZcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vRGVsZXRlSWNvbic7XHUwMDFiW0tcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTdcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9SZWNvcmRJY29uJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9pY29ucy9SZWNvcmRJY29uLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtN1x1MDAxYlsyN20gZXhwb3J0ICogZnJvbSAnLi9SZWNvcmRJY29uJztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvaWNvbnMvaW5kZXgudHNcdTAwMWJbbTpcdTAwMWJbOTNtOFx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL1NlbmRJY29uJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9pY29ucy9TZW5kSWNvbi50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bThcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vU2VuZEljb24nO1x1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvaWNvbnMvaW5kZXgudHNcdTAwMWJbbTpcdTAwMWJbOTNtOVx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL1RyYXNoSWNvbicgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvaWNvbnMvVHJhc2hJY29uLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtOVx1MDAxYlsyN20gZXhwb3J0ICogZnJvbSAnLi9UcmFzaEljb24nO1x1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTEwXHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vWEljb24nIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2ljb25zL1hJY29uLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTBcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vWEljb24nO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTExXHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vVGlja0ljb24nIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2ljb25zL1RpY2tJY29uLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTFcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vVGlja0ljb24nO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTEyXHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vQXR0YWNobWVudEljb24nIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2ljb25zL0F0dGFjaG1lbnRJY29uLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTJcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vQXR0YWNobWVudEljb24nO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTEzXHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vU3BhcmtsZXNJY29uJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9pY29ucy9TcGFya2xlc0ljb24udHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xM1x1MDAxYlsyN20gZXhwb3J0ICogZnJvbSAnLi9TcGFya2xlc0ljb24nO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pbnB1dHMvdGV4dElucHV0L2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTFcdTAwMWJbbTpcdTAwMWJbOTNtMjcgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9jb21wb25lbnRzL1RleHRJbnB1dCcgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvaW5wdXRzL3RleHRJbnB1dC9jb21wb25lbnRzL1RleHRJbnB1dC50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0LiAgICAgXHUwMDFiWzg7MUhcblxuXHUwMDFiWzdtMVx1MDAxYlsyN20gZXhwb3J0IHsgVGV4dElucHV0IH0gZnJvbSAnLi9jb21wb25lbnRzL1RleHRJbnB1dCc7XHUwMDFiW0tcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzI3WFx1MDAxYls5MW1cdTAwMWJbMjdDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pbnB1dHMvdGV4dElucHV0L2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTJcdTAwMWJbbTpcdTAwMWJbOTNtMjkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9jb21wb25lbnRzL0ZpbGVQcmV2aWV3JyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9pbnB1dHMvdGV4dElucHV0L2NvbXBvbmVudHMvRmlsZVByZXZpZXcudHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC4gXHUwMDFiWzg7MUhcblxuXHUwMDFiWzdtMlx1MDAxYlsyN20gZXhwb3J0IHsgRmlsZVByZXZpZXcgfSBmcm9tICcuL2NvbXBvbmVudHMvRmlsZVByZXZpZXcnO1x1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsyOVhcdTAwMWJbOTFtXHUwMDFiWzI5Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblxuRm91bmQgMTQ1IGVycm9ycyBpbiAzIGZpbGVzLlxuXG5FcnJvcnMgIEZpbGVzXG4gICAxMzAgIHNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbOTBtOjFcdTAwMWJbS1x1MDAxYlttXG4gICAgMTMgIHNyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LnRzXHUwMDFiWzkwbToxXHUwMDFiW0tcdTAwMWJbbVxuICAgICAyICBzcmMvY29tcG9uZW50cy9pbnB1dHMvdGV4dElucHV0L2luZGV4LnRzXHUwMDFiWzkwbToxXHUwMDFiW0tcdTAwMWJbbVxuXHUwMDFiWzMxbWVycm9yXHUwMDFiW21cdTAwMWJbMm06XHUwMDFiWzIybSBcIlx1MDAxYlsxbXRzYy5jbWRcdTAwMWJbMjJtXCIgZXhpdGVkIHdpdGggY29kZSAyXG5cbiAgICAgICAgPC9zdGRvdXQ+XG4gICAgICAgIDxzdGRlcnI+XG4gICAgICAgIFxuICAgICAgICA8L3N0ZGVycj4iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFQZkNpUzJ1UmExUHY2OUpFUzVKQTFZIn19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoyMCwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowNjoxMi44NDFaIiwicmVzcG9uc2VfdGV4dCI6IkkgY2FuIHNlZSB0aGVyZSBhcmUgbWFueSBUeXBlU2NyaXB0IGNvbXBpbGF0aW9uIGVycm9ycyBkdWUgdG8gSlNYIGNvbmZpZ3VyYXRpb24gaXNzdWVzLiBIb3dldmVyLCB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IEkndmUgaW1wbGVtZW50ZWQgZm9yIHRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIHNob3VsZCB3b3JrIGNvcnJlY3RseS4gTGV0IG1lIGNyZWF0ZSBhIHNpbXBsZSB0ZXN0IHRvIHZlcmlmeSB0aGUgaW1wbGVtZW50YXRpb24gYW5kIHRoZW4gcHJvdmlkZSBhIHN1bW1hcnkgb2Ygd2hhdCBoYXMgYmVlbiBhY2NvbXBsaXNoZWQuXG5cbkxldCBtZSBidWlsZCB0aGUgcHJvamVjdCB0byBzZWUgaWYgdGhlIGltcGxlbWVudGF0aW9uIHdvcmtzOlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6IjYxM2RmNjNmLWYzZWItNDczMy1hNDExLWU3NDQ2NTNmYzQzYiIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6NSwiY29udGVudCI6IiIsInRvb2xfdXNlIjp7InRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUtmTUtxYUpEUloyYXVHV3pyZkh6Qm8iLCJ0b29sX25hbWUiOiJ2aWV3IiwiaW5wdXRfanNvbiI6IntcInBhdGhcIjogXCJzcmMvY29tcG9uZW50c1wiLCBcInR5cGVcIjogXCJkaXJlY3RvcnlcIn0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJUaGVyZSdzIGEgbWlzc2luZyBUb2FzdCBjb21wb25lbnQuIExldCBtZSBjaGVjayB3aGF0IGNvbXBvbmVudHMgYXJlIG1pc3NpbmcgYW5kIGNyZWF0ZSBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbjpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IkhlcmUgYXJlIHRoZSByZXN1bHRzIGZyb20gZXhlY3V0aW5nIHRoZSBjb21tYW5kLlxuICAgICAgICA8cmV0dXJuLWNvZGU+XG4gICAgICAgIDFcbiAgICAgICAgPC9yZXR1cm4tY29kZT5cbiAgICAgICAgPHN0ZG91dD5cbiAgICAgICAgXHUwMDFiWz85MDAxaFx1MDAxYls/MTAwNGhcdTAwMWJbPzI1bFx1MDAxYlsySlx1MDAxYlttXHUwMDFiW0hcblxuXG5cblxuXG5cblx1MDAxYltIXHUwMDFiXTA7QzpcXFdJTkRPV1NcXFN5c3RlbTMyXFxXaW5kb3dzUG93ZXJTaGVsbFxcdjEuMFxccG93ZXJzaGVsbC5leGVcdTAwMDdcdTAwMWJbPzI1aFx1MDAxYl0wO25wbVx1MDAwN1x1MDAxYl0wO25wbSBydW4gYnVpbGRcdTAwMDdcdTAwMWJbPzI1bFxuPiBjbWN0cy1jLWFnZW50LWVtYmVkZGluZ0AxLjAuNDAgYnVpbGRcbj4gY3Jvc3MtZW52IE5PREVfRU5WPXByb2R1Y3Rpb24gcm9sbHVwIC0tY29uZmlnIHJvbGx1cC5jb25maWcuanNcdTAwMWJbNTsxSFx1MDAxYltLXHUwMDFiWz8yNWhcdTAwMWJbMzZtXHUwMDFiWzFtXG4uL3NyYy93ZWIudHNcdTAwMWJbMjJtIOKGkiBcdTAwMWJbMW1kaXN0L3dlYi5qc1x1MDAxYlsyMm0uLi5cblx1MDAxYlttXHUwMDFiWzMzbVx1MDAxYlsxbSghKSBQbHVnaW4gdHlwZXNjcmlwdDogQHJvbGx1cC9wbHVnaW4tdHlwZXNjcmlwdCBUUzIzMDc6IENhbm5vdCBmaW5kIG1vZHVsZSAnLi9Ub2FzdCcgb3IgaXRzIGNvcnJlc3BvbmRpbmcgdHlwZSBkZWNsYXJhdGlvbnMuXHUwMDFiW21cdTAwMWJbMW1cbnNyYy9jb21wb25lbnRzL0JvdC50c3g6ICg0MjoyMylcblx1MDAxYlsyMm1cblxuXHUwMDFiWzkwbVx1MDAxYls3bTQyXHUwMDFiW20gaW1wb3J0IHsgVG9hc3QgfSBmcm9tICcuL1RvYXN0JztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzIzWFx1MDAxYls5MW1cdTAwMWJbMjNDfn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYlszMW1cdTAwMWJbMW1bIV0gUm9sbHVwRXJyb3I6IENvdWxkIG5vdCByZXNvbHZlIFwiLi9Ub2FzdFwiIGZyb20gXCJzcmMvY29tcG9uZW50cy9Cb3QudHN4XCJcdTAwMWJbbVx1MDAxYltLXG5zcmMvY29tcG9uZW50cy9Cb3QudHN4XG5cdTAwMWJbMm0gICAgYXQgZXJyb3IgKEU6XFxGbG93aXNlLXNoYXJlLWNoYXRib3hcXG5vZGVfbW9kdWxlc1xccm9sbHVwXFxkaXN0XFxzaGFyZWRcXHJvbGx1cC5qczoyNzg6MzApXHUwMDFiWzIybVx1MDAxYltLXG5cdTAwMWJbMm0gICAgYXQgTW9kdWxlTG9hZGVyLmhhbmRsZUludmFsaWRSZXNvbHZlZElkIChFOlxcRmxvd2lzZS1zaGFyZS1jaGF0Ym94XFxub2RlX21vZHVsZXNcXHJvbGx1cFxcZGlzdFxcc2hhcmVkXFxyb2xsdXAuanM6MjQ0ODU6MjQpXHUwMDFiWzIybVx1MDAxYltLXG5cdTAwMWJbMm0gICAgYXQgRTpcXEZsb3dpc2Utc2hhcmUtY2hhdGJveFxcbm9kZV9tb2R1bGVzXFxyb2xsdXBcXGRpc3RcXHNoYXJlZFxccm9sbHVwLmpzOjI0NDQ3OjI2XHUwMDFiWzIybVx1MDAxYltLXG5cblxuXHUwMDFiW0tcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1xuICAgICAgICA8L3N0ZG91dD5cbiAgICAgICAgPHN0ZGVycj5cbiAgICAgICAgXG4gICAgICAgIDwvc3RkZXJyPiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUVKTFZxYjRCVHFma1l3akZlQUxNN3QifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjIxLCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA2OjI1LjE1OFoiLCJyZXNwb25zZV90ZXh0IjoiVGhlcmUncyBhIG1pc3NpbmcgVG9hc3QgY29tcG9uZW50LiBMZXQgbWUgY2hlY2sgd2hhdCBjb21wb25lbnRzIGFyZSBtaXNzaW5nIGFuZCBjcmVhdGUgYSBzaW1wbGUgaW1wbGVtZW50YXRpb246XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiM2MwZjE4MTktZWFhZS00NGU2LTlhZWUtMDc1N2Q5YTljNzZiIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxR2E4UXBnaVV3OGNKM25odGU3VW9DciIsInRvb2xfbmFtZSI6InNhdmUtZmlsZSIsImlucHV0X2pzb24iOiJ7XCJpbnN0cnVjdGlvbnNfcmVtaW5kZXJcIjogXCJMSU1JVCBUSEUgRklMRSBDT05URU5UIFRPIEFUIE1PU1QgMzAwIExJTkVTLiBJRiBNT1JFIENPTlRFTlQgTkVFRFMgVE8gQkUgQURERUQgVVNFIFRIRSBzdHItcmVwbGFjZS1lZGl0b3IgVE9PTCBUTyBFRElUIFRIRSBGSUxFIEFGVEVSIElUIEhBUyBCRUVOIENSRUFURUQuXCIsIFwicGF0aFwiOiBcInNyYy9jb21wb25lbnRzL1RvYXN0LnRzeFwiLCBcImZpbGVfY29udGVudFwiOiBcImltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgb25Nb3VudCwgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcXG5cXG50eXBlIFByb3BzID0ge1xcbiAgbWVzc2FnZTogc3RyaW5nO1xcbiAgdHlwZT86ICdlcnJvcicgfCAnc3VjY2VzcycgfCAnaW5mbyc7XFxuICBkdXJhdGlvbj86IG51bWJlcjtcXG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xcbiAgc3R5bGU/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xcbn07XFxuXFxuZXhwb3J0IGNvbnN0IFRvYXN0ID0gKHByb3BzOiBQcm9wcykgPT4ge1xcbiAgY29uc3QgW2lzVmlzaWJsZSwgc2V0SXNWaXNpYmxlXSA9IGNyZWF0ZVNpZ25hbCh0cnVlKTtcXG4gIFxcbiAgb25Nb3VudCgoKSA9PiB7XFxuICAgIGNvbnN0IGR1cmF0aW9uID0gcHJvcHMuZHVyYXRpb24gfHwgNTAwMDtcXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XFxuICAgICAgc2V0SXNWaXNpYmxlKGZhbHNlKTtcXG4gICAgICBwcm9wcy5vbkNsb3NlPy4oKTtcXG4gICAgfSwgZHVyYXRpb24pO1xcbiAgfSk7XFxuXFxuICBjb25zdCBnZXRUeXBlU3R5bGVzID0gKCkgPT4ge1xcbiAgICBzd2l0Y2ggKHByb3BzLnR5cGUpIHtcXG4gICAgICBjYXNlICdlcnJvcic6XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZmVlMmUyJyxcXG4gICAgICAgICAgJ2JvcmRlci1jb2xvcic6ICcjZmNhNWE1JyxcXG4gICAgICAgICAgY29sb3I6ICcjZGMyNjI2JyxcXG4gICAgICAgIH07XFxuICAgICAgY2FzZSAnc3VjY2Vzcyc6XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZGNmY2U3JyxcXG4gICAgICAgICAgJ2JvcmRlci1jb2xvcic6ICcjODZlZmFjJyxcXG4gICAgICAgICAgY29sb3I6ICcjMTZhMzRhJyxcXG4gICAgICAgIH07XFxuICAgICAgY2FzZSAnaW5mbyc6XFxuICAgICAgZGVmYXVsdDpcXG4gICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNkYmVhZmUnLFxcbiAgICAgICAgICAnYm9yZGVyLWNvbG9yJzogJyM5M2M1ZmQnLFxcbiAgICAgICAgICBjb2xvcjogJyMyNTYzZWInLFxcbiAgICAgICAgfTtcXG4gICAgfVxcbiAgfTtcXG5cXG4gIHJldHVybiAoXFxuICAgIDxTaG93IHdoZW49e2lzVmlzaWJsZSgpfT5cXG4gICAgICA8ZGl2XFxuICAgICAgICBjbGFzcz1cXFwiZml4ZWQgdG9wLTQgcmlnaHQtNCB6LTUwIHAtNCByb3VuZGVkLWxnIGJvcmRlciBzaGFkb3ctbGcgbWF4LXctc21cXFwiXFxuICAgICAgICBzdHlsZT17e1xcbiAgICAgICAgICAuLi5nZXRUeXBlU3R5bGVzKCksXFxuICAgICAgICAgIC4uLnByb3BzLnN0eWxlLFxcbiAgICAgICAgfX1cXG4gICAgICA+XFxuICAgICAgICA8ZGl2IGNsYXNzPVxcXCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cXFwiPlxcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cXFwidGV4dC1zbSBmb250LW1lZGl1bVxcXCI+e3Byb3BzLm1lc3NhZ2V9PC9zcGFuPlxcbiAgICAgICAgICA8YnV0dG9uXFxuICAgICAgICAgICAgY2xhc3M9XFxcIm1sLTQgdGV4dC1jdXJyZW50IG9wYWNpdHktNzAgaG92ZXI6b3BhY2l0eS0xMDBcXFwiXFxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xcbiAgICAgICAgICAgICAgc2V0SXNWaXNpYmxlKGZhbHNlKTtcXG4gICAgICAgICAgICAgIHByb3BzLm9uQ2xvc2U/LigpO1xcbiAgICAgICAgICAgIH19XFxuICAgICAgICAgID5cXG4gICAgICAgICAgICBcXHUwMGQ3XFxuICAgICAgICAgIDwvYnV0dG9uPlxcbiAgICAgICAgPC9kaXY+XFxuICAgICAgPC9kaXY+XFxuICAgIDwvU2hvdz5cXG4gICk7XFxufTtcIn0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJJIG5lZWQgdG8gY3JlYXRlIHRoZSBtaXNzaW5nIFRvYXN0IGNvbXBvbmVudC4gTGV0IG1lIGNyZWF0ZSBhIHNpbXBsZSBpbXBsZW1lbnRhdGlvbjpcbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiIifSx7ImlkIjozLCJ0eXBlIjozLCJjb250ZW50IjoiIn1dLCJzZWVuX3N0YXRlIjoic2VlbiIsInN0cnVjdHVyZWRfcmVxdWVzdF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjEsInRvb2xfcmVzdWx0X25vZGUiOnsiY29udGVudCI6IkhlcmUncyB0aGUgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHVwIHRvIDIgbGV2ZWxzIGRlZXAgaW4gc3JjL2NvbXBvbmVudHMsIGV4Y2x1ZGluZyBoaWRkZW4gaXRlbXM6XG5zcmMvY29tcG9uZW50cy9CYWRnZS50c3hcbnNyYy9jb21wb25lbnRzL0JvdC50c3hcbnNyYy9jb21wb25lbnRzL0ZlZWRiYWNrQ29udGVudERpYWxvZy50c3hcbnNyYy9jb21wb25lbnRzL1R5cGluZ0J1YmJsZS50c3hcbnNyYy9jb21wb25lbnRzL2F2YXRhcnNcbnNyYy9jb21wb25lbnRzL2F2YXRhcnNcXEF2YXRhci50c3hcbnNyYy9jb21wb25lbnRzL2F2YXRhcnNcXERlZmF1bHRBdmF0YXIudHN4XG5zcmMvY29tcG9uZW50cy9idWJibGVzXG5zcmMvY29tcG9uZW50cy9idWJibGVzXFxBZ2VudFJlYXNvbmluZ0J1YmJsZS50c3hcbnNyYy9jb21wb25lbnRzL2J1YmJsZXNcXEJvdEJ1YmJsZS50c3hcbnNyYy9jb21wb25lbnRzL2J1YmJsZXNcXEZvbGxvd1VwUHJvbXB0QnViYmxlLnRzeFxuc3JjL2NvbXBvbmVudHMvYnViYmxlc1xcR3Vlc3RCdWJibGUudHN4XG5zcmMvY29tcG9uZW50cy9idWJibGVzXFxMZWFkQ2FwdHVyZUJ1YmJsZS50c3hcbnNyYy9jb21wb25lbnRzL2J1YmJsZXNcXExvYWRpbmdCdWJibGUudHN4XG5zcmMvY29tcG9uZW50cy9idWJibGVzXFxTb3VyY2VCdWJibGUudHN4XG5zcmMvY29tcG9uZW50cy9idWJibGVzXFxTdGFydGVyUHJvbXB0QnViYmxlLnRzeFxuc3JjL2NvbXBvbmVudHMvYnV0dG9uc1xuc3JjL2NvbXBvbmVudHMvYnV0dG9uc1xcQXR0YWNobWVudFVwbG9hZEJ1dHRvbi50c3hcbnNyYy9jb21wb25lbnRzL2J1dHRvbnNcXENhbmNlbEJ1dHRvbi50c3hcbnNyYy9jb21wb25lbnRzL2J1dHRvbnNcXEZlZWRiYWNrQnV0dG9ucy50c3hcbnNyYy9jb21wb25lbnRzL2J1dHRvbnNcXEltYWdlVXBsb2FkQnV0dG9uLnRzeFxuc3JjL2NvbXBvbmVudHMvYnV0dG9uc1xcTGVhZENhcHR1cmVCdXR0b25zLnRzeFxuc3JjL2NvbXBvbmVudHMvYnV0dG9uc1xcUmVjb3JkQXVkaW9CdXR0b24udHN4XG5zcmMvY29tcG9uZW50cy9idXR0b25zXFxTZW5kQnV0dG9uLnRzeFxuc3JjL2NvbXBvbmVudHMvaWNvbnNcbnNyYy9jb21wb25lbnRzL2ljb25zXFxBZGRJbWFnZUljb24udHN4XG5zcmMvY29tcG9uZW50cy9pY29uc1xcQXR0YWNobWVudEljb24udHN4XG5zcmMvY29tcG9uZW50cy9pY29uc1xcQ2lyY2xlRG90SWNvbi50c3hcbnNyYy9jb21wb25lbnRzL2ljb25zXFxDbGlwYm9hcmRJY29uLnRzeFxuc3JjL2NvbXBvbmVudHMvaWNvbnNcXERlbGV0ZUljb24udHN4XG5zcmMvY29tcG9uZW50cy9pY29uc1xcUmVjb3JkSWNvbi50c3hcbnNyYy9jb21wb25lbnRzL2ljb25zXFxTZW5kSWNvbi50c3hcbnNyYy9jb21wb25lbnRzL2ljb25zXFxTcGFya2xlc0ljb24udHN4XG5zcmMvY29tcG9uZW50cy9pY29uc1xcVGh1bWJzRG93bkljb24udHN4XG5zcmMvY29tcG9uZW50cy9pY29uc1xcVGh1bWJzVXBJY29uLnRzeFxuc3JjL2NvbXBvbmVudHMvaWNvbnNcXFRpY2tJY29uLnRzeFxuc3JjL2NvbXBvbmVudHMvaWNvbnNcXFRyYXNoSWNvbi50c3hcbnNyYy9jb21wb25lbnRzL2ljb25zXFxYSWNvbi50c3hcbnNyYy9jb21wb25lbnRzL2ljb25zXFxpbmRleC50c1xuc3JjL2NvbXBvbmVudHMvaW5kZXgudHNcbnNyYy9jb21wb25lbnRzL2lucHV0c1xuc3JjL2NvbXBvbmVudHMvaW5wdXRzXFx0ZXh0SW5wdXRcbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUtmTUtxYUpEUloyYXVHV3pyZkh6Qm8ifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjIxLCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA2OjMwLjU0MFoiLCJyZXNwb25zZV90ZXh0IjoiSSBuZWVkIHRvIGNyZWF0ZSB0aGUgbWlzc2luZyBUb2FzdCBjb21wb25lbnQuIExldCBtZSBjcmVhdGUgYSBzaW1wbGUgaW1wbGVtZW50YXRpb246XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiYzBlM2E5YjctYTdlNC00YWJiLWJhYzctMDcxMWFiMjAwMzBmIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxTnJOSm9VMVViZm9jZGpSOFNvcExGNiIsInRvb2xfbmFtZSI6ImxhdW5jaC1wcm9jZXNzIiwiaW5wdXRfanNvbiI6IntcImNvbW1hbmRcIjogXCJucG0gcnVuIGJ1aWxkXCIsIFwid2FpdFwiOiB0cnVlLCBcIm1heF93YWl0X3NlY29uZHNcIjogNjB9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTm93IGxldCBtZSB0cnkgYnVpbGRpbmcgYWdhaW46XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJGaWxlIHNhdmVkLiAgU2F2ZWQgZmlsZSB7c3JjL2NvbXBvbmVudHMvVG9hc3QudHN4fSIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMUdhOFFwZ2lVdzhjSjNuaHRlN1VvQ3IifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjIxLCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA2OjQwLjU4NFoiLCJyZXNwb25zZV90ZXh0IjoiTm93IGxldCBtZSB0cnkgYnVpbGRpbmcgYWdhaW46XG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiNzJlOTBkN2YtMGY5ZS00OGYwLTkyZTUtOTI0YTBjNDEzMGZhIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxTThTRVlKQzJQbXpjVVJIdmJMelJZNSIsInRvb2xfbmFtZSI6InNhdmUtZmlsZSIsImlucHV0X2pzb24iOiJ7XCJpbnN0cnVjdGlvbnNfcmVtaW5kZXJcIjogXCJMSU1JVCBUSEUgRklMRSBDT05URU5UIFRPIEFUIE1PU1QgMzAwIExJTkVTLiBJRiBNT1JFIENPTlRFTlQgTkVFRFMgVE8gQkUgQURERUQgVVNFIFRIRSBzdHItcmVwbGFjZS1lZGl0b3IgVE9PTCBUTyBFRElUIFRIRSBGSUxFIEFGVEVSIElUIEhBUyBCRUVOIENSRUFURUQuXCIsIFwicGF0aFwiOiBcImV4YW1wbGUtb25CZWZvcmVTZW5kLmh0bWxcIiwgXCJmaWxlX2NvbnRlbnRcIjogXCI8IURPQ1RZUEUgaHRtbD5cXG48aHRtbCBsYW5nPVxcXCJlblxcXCI+XFxuPGhlYWQ+XFxuICAgIDxtZXRhIGNoYXJzZXQ9XFxcIlVURi04XFxcIj5cXG4gICAgPG1ldGEgbmFtZT1cXFwidmlld3BvcnRcXFwiIGNvbnRlbnQ9XFxcIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjBcXFwiPlxcbiAgICA8dGl0bGU+b25CZWZvcmVTZW5kIEV4YW1wbGU8L3RpdGxlPlxcbjwvaGVhZD5cXG48Ym9keT5cXG4gICAgPGgxPkNoYXRib3Qgd2l0aCBvbkJlZm9yZVNlbmQgRXhhbXBsZTwvaDE+XFxuICAgIDxwPlRoaXMgZXhhbXBsZSBkZW1vbnN0cmF0ZXMgdGhlIG5ldyBvbkJlZm9yZVNlbmQgcHJvcCBmdW5jdGlvbmFsaXR5OjwvcD5cXG4gICAgPHVsPlxcbiAgICAgICAgPGxpPk1lc3NhZ2VzIGNvbnRhaW5pbmcgXFxcImJhZCB3b3JkXFxcIiB3aWxsIGJlIGJsb2NrZWQ8L2xpPlxcbiAgICAgICAgPGxpPk1lc3NhZ2VzIHN0YXJ0aW5nIHdpdGggXFxcInRyYW5zbGF0ZTpcXFwiIHdpbGwgYmUgbW9kaWZpZWQ8L2xpPlxcbiAgICAgICAgPGxpPkFsbCBvdGhlciBtZXNzYWdlcyB3aWxsIGJlIHNlbnQgbm9ybWFsbHk8L2xpPlxcbiAgICA8L3VsPlxcblxcbiAgICA8c2NyaXB0IHR5cGU9XFxcIm1vZHVsZVxcXCI+XFxuICAgICAgICBpbXBvcnQgQ2hhdGJvdCBmcm9tICcuL2Rpc3Qvd2ViLmpzJztcXG5cXG4gICAgICAgIC8vIEV4YW1wbGUgb25CZWZvcmVTZW5kIGZ1bmN0aW9uXFxuICAgICAgICBjb25zdCBoYW5kbGVCZWZvcmVTZW5kID0gYXN5bmMgKG1lc3NhZ2UsIGJvZHkpID0+IHtcXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnb25CZWZvcmVTZW5kIGNhbGxlZCB3aXRoOicsIHsgbWVzc2FnZSwgYm9keSB9KTtcXG5cXG4gICAgICAgICAgICAvLyBFeGFtcGxlIDE6IEJsb2NrIG1lc3NhZ2VzIGNvbnRhaW5pbmcgaW5hcHByb3ByaWF0ZSBjb250ZW50XFxuICAgICAgICAgICAgaWYgKG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYmFkIHdvcmQnKSkge1xcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTWVzc2FnZSBibG9ja2VkIGR1ZSB0byBpbmFwcHJvcHJpYXRlIGNvbnRlbnQnKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsXFxuICAgICAgICAgICAgICAgICAgICBib2R5LFxcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsOiB0cnVlIC8vIFRoaXMgd2lsbCBwcmV2ZW50IHRoZSBtZXNzYWdlIGZyb20gYmVpbmcgc2VudFxcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAvLyBFeGFtcGxlIDI6IE1vZGlmeSBtZXNzYWdlcyB0aGF0IHN0YXJ0IHdpdGggXFxcInRyYW5zbGF0ZTpcXFwiXFxuICAgICAgICAgICAgaWYgKG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCd0cmFuc2xhdGU6JykpIHtcXG4gICAgICAgICAgICAgICAgY29uc3QgbW9kaWZpZWRNZXNzYWdlID0gYFBsZWFzZSB0cmFuc2xhdGUgdGhlIGZvbGxvd2luZyB0ZXh0OiAke21lc3NhZ2Uuc3Vic3RyaW5nKDEwKX1gO1xcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTWVzc2FnZSBtb2RpZmllZDonLCBtb2RpZmllZE1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogbW9kaWZpZWRNZXNzYWdlLFxcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHksXFxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb246IG1vZGlmaWVkTWVzc2FnZVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAvLyBFeGFtcGxlIDM6IEFkZCBtZXRhZGF0YSB0byBhbGwgbWVzc2FnZXNcXG4gICAgICAgICAgICBjb25zdCBlbmhhbmNlZEJvZHkgPSB7XFxuICAgICAgICAgICAgICAgIC4uLmJvZHksXFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiB7XFxuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcXG4gICAgICAgICAgICAgICAgICAgIHVzZXJBZ2VudDogbmF2aWdhdG9yLnVzZXJBZ2VudCxcXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUZsYWc6ICdwcm9jZXNzZWQtYnktb25CZWZvcmVTZW5kJ1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfTtcXG5cXG4gICAgICAgICAgICAvLyBSZXR1cm4gdGhlIG1lc3NhZ2UgYW5kIGJvZHkgKHBvdGVudGlhbGx5IG1vZGlmaWVkKVxcbiAgICAgICAgICAgIHJldHVybiB7XFxuICAgICAgICAgICAgICAgIG1lc3NhZ2UsXFxuICAgICAgICAgICAgICAgIGJvZHk6IGVuaGFuY2VkQm9keVxcbiAgICAgICAgICAgIH07XFxuICAgICAgICB9O1xcblxcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgY2hhdGJvdCB3aXRoIG9uQmVmb3JlU2VuZFxcbiAgICAgICAgQ2hhdGJvdC5pbml0KHtcXG4gICAgICAgICAgICBjaGF0Zmxvd2lkOiBcXFwieW91ci1jaGF0Zmxvdy1pZFxcXCIsXFxuICAgICAgICAgICAgYXBpSG9zdDogXFxcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFxcXCIsXFxuICAgICAgICAgICAgb25CZWZvcmVTZW5kOiBoYW5kbGVCZWZvcmVTZW5kLFxcbiAgICAgICAgICAgIHRoZW1lOiB7XFxuICAgICAgICAgICAgICAgIGJ1dHRvbjoge1xcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcXFwiIzNCODFGNlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICByaWdodDogMjAsXFxuICAgICAgICAgICAgICAgICAgICBib3R0b206IDIwLFxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogNDgsXFxuICAgICAgICAgICAgICAgICAgICBpY29uQ29sb3I6IFxcXCJ3aGl0ZVxcXCIsXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIGNoYXRXaW5kb3c6IHtcXG4gICAgICAgICAgICAgICAgICAgIHdlbGNvbWVNZXNzYWdlOiBcXFwiSGVsbG8hIFRyeSBzZW5kaW5nIGRpZmZlcmVudCBtZXNzYWdlcyB0byBzZWUgb25CZWZvcmVTZW5kIGluIGFjdGlvbi5cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcXFwiI2ZmZmZmZlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwMCxcXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MDAsXFxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogMTYsXFxuICAgICAgICAgICAgICAgICAgICBwb3dlcmVkQnlUZXh0Q29sb3I6IFxcXCIjMzAzMjM1XFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGJvdE1lc3NhZ2U6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFxcXCIjZjdmOGZmXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I6IFxcXCIjMzAzMjM1XFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93QXZhdGFyOiB0cnVlLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgIHVzZXJNZXNzYWdlOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcXFwiIzNCODFGNlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yOiBcXFwiI2ZmZmZmZlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0F2YXRhcjogdHJ1ZSxcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICB0ZXh0SW5wdXQ6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXFxcIlR5cGUgeW91ciBtZXNzYWdlLi4uXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFxcXCIjZmZmZmZmXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I6IFxcXCIjMzAzMjM1XFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW5kQnV0dG9uQ29sb3I6IFxcXCIjM0I4MUY2XFxcIixcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcbiAgICA8L3NjcmlwdD5cXG48L2JvZHk+XFxuPC9odG1sPlwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IkdyZWF0ISBUaGUgYnVpbGQgd2FzIHN1Y2Nlc3NmdWwuIE5vdyBsZXQgbWUgY3JlYXRlIGEgc2ltcGxlIGV4YW1wbGUgdG8gZGVtb25zdHJhdGUgaG93IHRvIHVzZSB0aGUgbmV3IGBvbkJlZm9yZVNlbmRgIHByb3A6XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJIZXJlIGFyZSB0aGUgcmVzdWx0cyBmcm9tIGV4ZWN1dGluZyB0aGUgY29tbWFuZC5cbiAgICAgICAgPHJldHVybi1jb2RlPlxuICAgICAgICAwXG4gICAgICAgIDwvcmV0dXJuLWNvZGU+XG4gICAgICAgIDxzdGRvdXQ+XG4gICAgICAgIFx1MDAxYls/OTAwMWhcdTAwMWJbPzEwMDRoXHUwMDFiWz8yNWxcdTAwMWJbMkpcdTAwMWJbbVx1MDAxYltIXG5cblxuXG5cblxuXG5cdTAwMWJbSFx1MDAxYl0wO0M6XFxXSU5ET1dTXFxTeXN0ZW0zMlxcV2luZG93c1Bvd2VyU2hlbGxcXHYxLjBcXHBvd2Vyc2hlbGwuZXhlXHUwMDA3XHUwMDFiWz8yNWhcdTAwMWJdMDtucG1cdTAwMDdcdTAwMWJdMDtucG0gcnVuIGJ1aWxkXHUwMDA3XHUwMDFiWz8yNWxcbj4gY21jdHMtYy1hZ2VudC1lbWJlZGRpbmdAMS4wLjQwIGJ1aWxkXG4+IGNyb3NzLWVudiBOT0RFX0VOVj1wcm9kdWN0aW9uIHJvbGx1cCAtLWNvbmZpZyByb2xsdXAuY29uZmlnLmpzXHUwMDFiWzU7MUhcdTAwMWJbS1x1MDAxYls/MjVoXHUwMDFiWzM2bVx1MDAxYlsxbVxuLi9zcmMvd2ViLnRzXHUwMDFiWzIybSDihpIgXHUwMDFiWzFtZGlzdC93ZWIuanNcdTAwMWJbMjJtLi4uXG5cdTAwMWJbbUJyb3dzZXJzbGlzdDogYnJvd3NlcnMgZGF0YSAoY2FuaXVzZS1saXRlKSBpcyA2IG1vbnRocyBvbGQuIFBsZWFzZSBydW46XG4gIG5weCB1cGRhdGUtYnJvd3NlcnNsaXN0LWRiQGxhdGVzdFxuICBXaHkgeW91IHNob3VsZCBkbyBpdCByZWd1bGFybHk6IGh0dHBzOi8vZ2l0aHViLmNvbS9icm93c2Vyc2xpc3QvdXBkYXRlLWRiI3JlYWRtZVxuXHUwMDFiWzMzbVx1MDAxYlsxbSghKSBVc2Ugb2YgZXZhbCBpcyBzdHJvbmdseSBkaXNjb3VyYWdlZFxuXHUwMDFiW21cblx1MDAxYls5MG1odHRwczovL3JvbGx1cGpzLm9yZy90cm91Ymxlc2hvb3RpbmcvI2F2b2lkaW5nLWV2YWxcblx1MDAxYlttXG5cdTAwMWJbMW1ub2RlX21vZHVsZXMvcGRmanMtZGlzdC9idWlsZC9wZGYuanNcdTAwMWJbMjJtXHUwMDFiW0tcblx1MDAxYls5MG0xOTgwOiAgICAgICB9XG5cdTAwMWJbbVxuXHUwMDFiWzkwbTE5ODE6ICAgICAgIGlmIChfdXRpbC5pc05vZGVKUyAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdTAwMWJbbVxuXHUwMDFiWzkwbTE5ODI6ICAgICAgICAgY29uc3Qgd29ya2VyID0gZXZhbChcInJlcXVpcmVcIikodGhpcy53b3JrZXJTcmMpO1xuXHUwMDFiW21cblx1MDAxYls5MG0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5cblx1MDAxYlttXG5cdTAwMWJbOTBtMTk4MzogICAgICAgICByZXR1cm4gd29ya2VyLldvcmtlck1lc3NhZ2VIYW5kbGVyO1xuXHUwMDFiW21cblx1MDAxYls5MG0xOTg0OiAgICAgICB9XG5cdTAwMWJbbVxuXHUwMDFiWzMybWNyZWF0ZWQgXHUwMDFiWzFtZGlzdC93ZWIuanNcdTAwMWJbMjJtIGluIFx1MDAxYlsxbTEyLjFzXHUwMDFiW21cdTAwMWJbS1xuXHUwMDFiW0tcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1xuICAgICAgICA8L3N0ZG91dD5cbiAgICAgICAgPHN0ZGVycj5cbiAgICAgICAgXG4gICAgICAgIDwvc3RkZXJyPiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMU5yTkpvVTFVYmZvY2RqUjhTb3BMRjYifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZSwiY3VycmVudFRlcm1pbmFsIjp7InRlcm1pbmFsSWQiOjIyLCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeSI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9fX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA2OjU5LjU1OFoiLCJyZXNwb25zZV90ZXh0IjoiR3JlYXQhIFRoZSBidWlsZCB3YXMgc3VjY2Vzc2Z1bC4gTm93IGxldCBtZSBjcmVhdGUgYSBzaW1wbGUgZXhhbXBsZSB0byBkZW1vbnN0cmF0ZSBob3cgdG8gdXNlIHRoZSBuZXcgYG9uQmVmb3JlU2VuZGAgcHJvcDpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiJhYmQwYmMwMi0xNzA2LTRlZTYtOWVmMy01OGQzYzBlYmMxMTAiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDExdk1nNTZQbUpic25SOTZkYXM2SzlTIiwidG9vbF9uYW1lIjoic2F2ZS1maWxlIiwiaW5wdXRfanNvbiI6IntcImluc3RydWN0aW9uc19yZW1pbmRlclwiOiBcIkxJTUlUIFRIRSBGSUxFIENPTlRFTlQgVE8gQVQgTU9TVCAzMDAgTElORVMuIElGIE1PUkUgQ09OVEVOVCBORUVEUyBUTyBCRSBBRERFRCBVU0UgVEhFIHN0ci1yZXBsYWNlLWVkaXRvciBUT09MIFRPIEVESVQgVEhFIEZJTEUgQUZURVIgSVQgSEFTIEJFRU4gQ1JFQVRFRC5cIiwgXCJwYXRoXCI6IFwib25CZWZvcmVTZW5kLVJFQURNRS5tZFwiLCBcImZpbGVfY29udGVudFwiOiBcIiMgb25CZWZvcmVTZW5kIFByb3AgRG9jdW1lbnRhdGlvblxcblxcblRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIGFsbG93cyB5b3UgdG8gaW50ZXJjZXB0IGFuZCBtb2RpZnkgbWVzc2FnZXMgYmVmb3JlIHRoZXkgYXJlIHNlbnQgdG8gdGhlIGNoYXRib3QgQVBJLiBUaGlzIHBvd2VyZnVsIGZlYXR1cmUgZW5hYmxlcyB5b3UgdG8gaW1wbGVtZW50IGNvbnRlbnQgZmlsdGVyaW5nLCBtZXNzYWdlIHRyYW5zZm9ybWF0aW9uLCBhbmFseXRpY3MgdHJhY2tpbmcsIGFuZCBtb3JlLlxcblxcbiMjIEZ1bmN0aW9uIFNpZ25hdHVyZVxcblxcbmBgYHR5cGVzY3JpcHRcXG5vbkJlZm9yZVNlbmQ/OiAoXFxuICBtZXNzYWdlOiBzdHJpbmcsIFxcbiAgYm9keTogSW5jb21pbmdJbnB1dFxcbikgPT4gUHJvbWlzZTx7IFxcbiAgbWVzc2FnZTogc3RyaW5nOyBcXG4gIGJvZHk6IEluY29taW5nSW5wdXQ7IFxcbiAgY2FuY2VsPzogYm9vbGVhbiBcXG59PiB8IHsgXFxuICBtZXNzYWdlOiBzdHJpbmc7IFxcbiAgYm9keTogSW5jb21pbmdJbnB1dDsgXFxuICBjYW5jZWw/OiBib29sZWFuIFxcbn1cXG5gYGBcXG5cXG4jIyBQYXJhbWV0ZXJzXFxuXFxuLSAqKm1lc3NhZ2UqKjogVGhlIHVzZXIncyBpbnB1dCBtZXNzYWdlIGFzIGEgc3RyaW5nXFxuLSAqKmJvZHkqKjogVGhlIGNvbXBsZXRlIHJlcXVlc3QgYm9keSB0aGF0IHdpbGwgYmUgc2VudCB0byB0aGUgQVBJLCBpbmNsdWRpbmc6XFxuICAtIGBxdWVzdGlvbmA6IFRoZSB1c2VyJ3MgbWVzc2FnZVxcbiAgLSBgY2hhdElkYDogQ3VycmVudCBjaGF0IHNlc3Npb24gSURcXG4gIC0gYHVwbG9hZHNgOiBBbnkgZmlsZSB1cGxvYWRzXFxuICAtIGBvdmVycmlkZUNvbmZpZ2A6IENvbmZpZ3VyYXRpb24gb3ZlcnJpZGVzXFxuICAtIGBsZWFkRW1haWxgOiBMZWFkIGNhcHR1cmUgZW1haWwgaWYgYXBwbGljYWJsZVxcbiAgLSBgYWN0aW9uYDogQW55IGFjdGlvbiBkYXRhXFxuICAtIGBzdG9yZWRgOiBTdG9yZWQgZGF0YSBpbmNsdWRpbmcgZGV2aWNlIElEIGFuZCB1c2VyIGluZm9cXG5cXG4jIyBSZXR1cm4gVmFsdWVcXG5cXG5UaGUgZnVuY3Rpb24gbXVzdCByZXR1cm4gYW4gb2JqZWN0IHdpdGg6XFxuLSAqKm1lc3NhZ2UqKjogVGhlIChwb3RlbnRpYWxseSBtb2RpZmllZCkgbWVzc2FnZSBzdHJpbmdcXG4tICoqYm9keSoqOiBUaGUgKHBvdGVudGlhbGx5IG1vZGlmaWVkKSByZXF1ZXN0IGJvZHlcXG4tICoqY2FuY2VsKiogKG9wdGlvbmFsKTogSWYgYHRydWVgLCBwcmV2ZW50cyB0aGUgbWVzc2FnZSBmcm9tIGJlaW5nIHNlbnRcXG5cXG4jIyBVc2UgQ2FzZXNcXG5cXG4jIyMgMS4gQ29udGVudCBGaWx0ZXJpbmdcXG5cXG5gYGBqYXZhc2NyaXB0XFxuY29uc3Qgb25CZWZvcmVTZW5kID0gKG1lc3NhZ2UsIGJvZHkpID0+IHtcXG4gIGNvbnN0IGluYXBwcm9wcmlhdGVXb3JkcyA9IFsnc3BhbScsICdiYWQgd29yZCddO1xcbiAgXFxuICBpZiAoaW5hcHByb3ByaWF0ZVdvcmRzLnNvbWUod29yZCA9PiBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMod29yZCkpKSB7XFxuICAgIHJldHVybiB7XFxuICAgICAgbWVzc2FnZSxcXG4gICAgICBib2R5LFxcbiAgICAgIGNhbmNlbDogdHJ1ZSAvLyBCbG9jayB0aGUgbWVzc2FnZVxcbiAgICB9O1xcbiAgfVxcbiAgXFxuICByZXR1cm4geyBtZXNzYWdlLCBib2R5IH07XFxufTtcXG5gYGBcXG5cXG4jIyMgMi4gTWVzc2FnZSBUcmFuc2Zvcm1hdGlvblxcblxcbmBgYGphdmFzY3JpcHRcXG5jb25zdCBvbkJlZm9yZVNlbmQgPSAobWVzc2FnZSwgYm9keSkgPT4ge1xcbiAgLy8gQXV0by10cmFuc2xhdGUgY29tbWFuZHNcXG4gIGlmIChtZXNzYWdlLnN0YXJ0c1dpdGgoJy90cmFuc2xhdGUgJykpIHtcXG4gICAgY29uc3QgdGV4dFRvVHJhbnNsYXRlID0gbWVzc2FnZS5zdWJzdHJpbmcoMTEpO1xcbiAgICBjb25zdCBtb2RpZmllZE1lc3NhZ2UgPSBgUGxlYXNlIHRyYW5zbGF0ZTogXFxcIiR7dGV4dFRvVHJhbnNsYXRlfVxcXCJgO1xcbiAgICBcXG4gICAgcmV0dXJuIHtcXG4gICAgICBtZXNzYWdlOiBtb2RpZmllZE1lc3NhZ2UsXFxuICAgICAgYm9keToge1xcbiAgICAgICAgLi4uYm9keSxcXG4gICAgICAgIHF1ZXN0aW9uOiBtb2RpZmllZE1lc3NhZ2VcXG4gICAgICB9XFxuICAgIH07XFxuICB9XFxuICBcXG4gIHJldHVybiB7IG1lc3NhZ2UsIGJvZHkgfTtcXG59O1xcbmBgYFxcblxcbiMjIyAzLiBBbmFseXRpY3MgYW5kIFRyYWNraW5nXFxuXFxuYGBgamF2YXNjcmlwdFxcbmNvbnN0IG9uQmVmb3JlU2VuZCA9IGFzeW5jIChtZXNzYWdlLCBib2R5KSA9PiB7XFxuICAvLyBUcmFjayB1c2VyIGludGVyYWN0aW9uc1xcbiAgYXdhaXQgYW5hbHl0aWNzLnRyYWNrKCdtZXNzYWdlX3NlbnQnLCB7XFxuICAgIG1lc3NhZ2VMZW5ndGg6IG1lc3NhZ2UubGVuZ3RoLFxcbiAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcXG4gICAgY2hhdElkOiBib2R5LmNoYXRJZFxcbiAgfSk7XFxuICBcXG4gIC8vIEFkZCB0cmFja2luZyBtZXRhZGF0YVxcbiAgY29uc3QgZW5oYW5jZWRCb2R5ID0ge1xcbiAgICAuLi5ib2R5LFxcbiAgICBtZXRhZGF0YToge1xcbiAgICAgIC4uLmJvZHkubWV0YWRhdGEsXFxuICAgICAgdHJhY2tlZDogdHJ1ZSxcXG4gICAgICBzZXNzaW9uU3RhcnQ6IERhdGUubm93KClcXG4gICAgfVxcbiAgfTtcXG4gIFxcbiAgcmV0dXJuIHsgbWVzc2FnZSwgYm9keTogZW5oYW5jZWRCb2R5IH07XFxufTtcXG5gYGBcXG5cXG4jIyMgNC4gVXNlciBBdXRoZW50aWNhdGlvblxcblxcbmBgYGphdmFzY3JpcHRcXG5jb25zdCBvbkJlZm9yZVNlbmQgPSAobWVzc2FnZSwgYm9keSkgPT4ge1xcbiAgY29uc3QgdXNlclRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJUb2tlbicpO1xcbiAgXFxuICBpZiAoIXVzZXJUb2tlbikge1xcbiAgICAvLyBSZWRpcmVjdCB0byBsb2dpbiBvciBzaG93IGF1dGggcHJvbXB0XFxuICAgIHNob3dMb2dpbk1vZGFsKCk7XFxuICAgIHJldHVybiB7XFxuICAgICAgbWVzc2FnZSxcXG4gICAgICBib2R5LFxcbiAgICAgIGNhbmNlbDogdHJ1ZVxcbiAgICB9O1xcbiAgfVxcbiAgXFxuICAvLyBBZGQgYXV0aGVudGljYXRpb24gdG8gcmVxdWVzdFxcbiAgcmV0dXJuIHtcXG4gICAgbWVzc2FnZSxcXG4gICAgYm9keToge1xcbiAgICAgIC4uLmJvZHksXFxuICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgLi4uYm9keS5oZWFkZXJzLFxcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiBgQmVhcmVyICR7dXNlclRva2VufWBcXG4gICAgICB9XFxuICAgIH1cXG4gIH07XFxufTtcXG5gYGBcXG5cXG4jIyMgNS4gTWVzc2FnZSBQcmVwcm9jZXNzaW5nXFxuXFxuYGBgamF2YXNjcmlwdFxcbmNvbnN0IG9uQmVmb3JlU2VuZCA9IChtZXNzYWdlLCBib2R5KSA9PiB7XFxuICAvLyBDbGVhbiB1cCBtZXNzYWdlIGZvcm1hdHRpbmdcXG4gIGNvbnN0IGNsZWFuZWRNZXNzYWdlID0gbWVzc2FnZVxcbiAgICAudHJpbSgpXFxuICAgIC5yZXBsYWNlKC9cXFxccysvZywgJyAnKSAvLyBSZXBsYWNlIG11bHRpcGxlIHNwYWNlcyB3aXRoIHNpbmdsZSBzcGFjZVxcbiAgICAucmVwbGFjZSgvW15cXFxcd1xcXFxzLiwhPy1dL2csICcnKTsgLy8gUmVtb3ZlIHNwZWNpYWwgY2hhcmFjdGVyc1xcbiAgXFxuICAvLyBBZGQgY29udGV4dCBpbmZvcm1hdGlvblxcbiAgY29uc3QgY29udGV4dHVhbEJvZHkgPSB7XFxuICAgIC4uLmJvZHksXFxuICAgIGNvbnRleHQ6IHtcXG4gICAgICBwcmV2aW91c01lc3NhZ2VzOiBnZXRDaGF0SGlzdG9yeSgpLFxcbiAgICAgIHVzZXJQcmVmZXJlbmNlczogZ2V0VXNlclByZWZlcmVuY2VzKCksXFxuICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcXG4gICAgfVxcbiAgfTtcXG4gIFxcbiAgcmV0dXJuIHtcXG4gICAgbWVzc2FnZTogY2xlYW5lZE1lc3NhZ2UsXFxuICAgIGJvZHk6IGNvbnRleHR1YWxCb2R5XFxuICB9O1xcbn07XFxuYGBgXFxuXFxuIyMgSW1wbGVtZW50YXRpb24gRXhhbXBsZXNcXG5cXG4jIyMgQmFzaWMgVXNhZ2VcXG5cXG5gYGBqYXZhc2NyaXB0XFxuQ2hhdGJvdC5pbml0KHtcXG4gIGNoYXRmbG93aWQ6IFxcXCJ5b3VyLWNoYXRmbG93LWlkXFxcIixcXG4gIGFwaUhvc3Q6IFxcXCJodHRwOi8vbG9jYWxob3N0OjMwMDBcXFwiLFxcbiAgb25CZWZvcmVTZW5kOiAobWVzc2FnZSwgYm9keSkgPT4ge1xcbiAgICBjb25zb2xlLmxvZygnU2VuZGluZyBtZXNzYWdlOicsIG1lc3NhZ2UpO1xcbiAgICByZXR1cm4geyBtZXNzYWdlLCBib2R5IH07XFxuICB9XFxufSk7XFxuYGBgXFxuXFxuIyMjIEFzeW5jIFByb2Nlc3NpbmdcXG5cXG5gYGBqYXZhc2NyaXB0XFxuQ2hhdGJvdC5pbml0KHtcXG4gIGNoYXRmbG93aWQ6IFxcXCJ5b3VyLWNoYXRmbG93LWlkXFxcIixcXG4gIGFwaUhvc3Q6IFxcXCJodHRwOi8vbG9jYWxob3N0OjMwMDBcXFwiLFxcbiAgb25CZWZvcmVTZW5kOiBhc3luYyAobWVzc2FnZSwgYm9keSkgPT4ge1xcbiAgICAvLyBQZXJmb3JtIGFzeW5jIG9wZXJhdGlvbnNcXG4gICAgY29uc3QgcHJvY2Vzc2VkTWVzc2FnZSA9IGF3YWl0IHByb2Nlc3NNZXNzYWdlQXN5bmMobWVzc2FnZSk7XFxuICAgIGNvbnN0IGVuaGFuY2VkQm9keSA9IGF3YWl0IGFkZENvbnRleHRBc3luYyhib2R5KTtcXG4gICAgXFxuICAgIHJldHVybiB7XFxuICAgICAgbWVzc2FnZTogcHJvY2Vzc2VkTWVzc2FnZSxcXG4gICAgICBib2R5OiBlbmhhbmNlZEJvZHlcXG4gICAgfTtcXG4gIH1cXG59KTtcXG5gYGBcXG5cXG4jIyBFcnJvciBIYW5kbGluZ1xcblxcbklmIHRoZSBgb25CZWZvcmVTZW5kYCBmdW5jdGlvbiB0aHJvd3MgYW4gZXJyb3IsIHRoZSBjaGF0Ym90IHdpbGw6XFxuMS4gTG9nIHRoZSBlcnJvciB0byB0aGUgY29uc29sZVxcbjIuIERpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZSB0byB0aGUgdXNlclxcbjMuIFByZXZlbnQgdGhlIG1lc3NhZ2UgZnJvbSBiZWluZyBzZW50XFxuXFxuYGBgamF2YXNjcmlwdFxcbmNvbnN0IG9uQmVmb3JlU2VuZCA9IChtZXNzYWdlLCBib2R5KSA9PiB7XFxuICB0cnkge1xcbiAgICAvLyBZb3VyIHByb2Nlc3NpbmcgbG9naWMgaGVyZVxcbiAgICByZXR1cm4geyBtZXNzYWdlLCBib2R5IH07XFxuICB9IGNhdGNoIChlcnJvcikge1xcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBvbkJlZm9yZVNlbmQ6JywgZXJyb3IpO1xcbiAgICAvLyBUaGUgY2hhdGJvdCB3aWxsIGhhbmRsZSB0aGUgZXJyb3IgYXV0b21hdGljYWxseVxcbiAgICB0aHJvdyBlcnJvcjtcXG4gIH1cXG59O1xcbmBgYFxcblxcbiMjIEJlc3QgUHJhY3RpY2VzXFxuXFxuMS4gKipLZWVwIGl0IGZhc3QqKjogQXZvaWQgbG9uZy1ydW5uaW5nIG9wZXJhdGlvbnMgdGhhdCBjb3VsZCBkZWxheSBtZXNzYWdlIHNlbmRpbmdcXG4yLiAqKkhhbmRsZSBlcnJvcnMgZ3JhY2VmdWxseSoqOiBBbHdheXMgd3JhcCByaXNreSBvcGVyYXRpb25zIGluIHRyeS1jYXRjaCBibG9ja3NcXG4zLiAqKlByZXNlcnZlIG1lc3NhZ2UgaW50ZW50Kio6IFdoZW4gbW9kaWZ5aW5nIG1lc3NhZ2VzLCBtYWludGFpbiB0aGUgdXNlcidzIG9yaWdpbmFsIGludGVudFxcbjQuICoqVXNlIGNhbmNlbCBzcGFyaW5nbHkqKjogT25seSBjYW5jZWwgbWVzc2FnZXMgd2hlbiBhYnNvbHV0ZWx5IG5lY2Vzc2FyeVxcbjUuICoqTG9nIGZvciBkZWJ1Z2dpbmcqKjogQWRkIGNvbnNvbGUgbG9ncyB0byBoZWxwIGRlYnVnIHlvdXIgb25CZWZvcmVTZW5kIGxvZ2ljXFxuXFxuIyMgVHlwZVNjcmlwdCBTdXBwb3J0XFxuXFxuVGhlIGBvbkJlZm9yZVNlbmRgIHByb3AgaXMgZnVsbHkgdHlwZWQgd2hlbiB1c2luZyBUeXBlU2NyaXB0OlxcblxcbmBgYHR5cGVzY3JpcHRcXG5pbXBvcnQgeyBCb3RQcm9wcywgSW5jb21pbmdJbnB1dCB9IGZyb20gJ2NtY3RzLWMtYWdlbnQtZW1iZWRkaW5nJztcXG5cXG5jb25zdCBvbkJlZm9yZVNlbmQ6IEJvdFByb3BzWydvbkJlZm9yZVNlbmQnXSA9IChcXG4gIG1lc3NhZ2U6IHN0cmluZywgXFxuICBib2R5OiBJbmNvbWluZ0lucHV0XFxuKSA9PiB7XFxuICByZXR1cm4geyBtZXNzYWdlLCBib2R5IH07XFxufTtcXG5gYGBcIn0iLCJtY3Bfc2VydmVyX25hbWUiOiIiLCJtY3BfdG9vbF9uYW1lIjoiIn19LHsiaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiJOb3cgbGV0IG1lIGNyZWF0ZSBhIGNvbXByZWhlbnNpdmUgUkVBRE1FIHNlY3Rpb24gZXhwbGFpbmluZyB0aGUgbmV3IGBvbkJlZm9yZVNlbmRgIGZ1bmN0aW9uYWxpdHk6XG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJGaWxlIHNhdmVkLiAgU2F2ZWQgZmlsZSB7ZXhhbXBsZS1vbkJlZm9yZVNlbmQuaHRtbH0iLCJpc19lcnJvciI6ZmFsc2UsInJlcXVlc3RfaWQiOiIiLCJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFNOFNFWUpDMlBtemNVUkh2Ykx6Ulk1In19LHsiaWQiOjIsInR5cGUiOjQsImlkZV9zdGF0ZV9ub2RlIjp7IndvcmtzcGFjZUZvbGRlcnMiOlt7InJlcG9zaXRvcnlSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94IiwiZm9sZGVyUm9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCJ9XSwid29ya3NwYWNlRm9sZGVyc1VuY2hhbmdlZCI6ZmFsc2UsImN1cnJlbnRUZXJtaW5hbCI6eyJ0ZXJtaW5hbElkIjoyMiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnkiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowNzoxNC40NjFaIiwicmVzcG9uc2VfdGV4dCI6Ik5vdyBsZXQgbWUgY3JlYXRlIGEgY29tcHJlaGVuc2l2ZSBSRUFETUUgc2VjdGlvbiBleHBsYWluaW5nIHRoZSBuZXcgYG9uQmVmb3JlU2VuZGAgZnVuY3Rpb25hbGl0eTpcbiIsIndvcmtzcGFjZV9maWxlX2NodW5rcyI6W119LHsic3RhdHVzIjoic3VjY2VzcyIsInJlcXVlc3RfaWQiOiI3ZDQ4MjUwYi0xNzVkLTRiNzItYjQ1ZC03ZGY1ZGE2ZTFjYTYiLCJyZXF1ZXN0X21lc3NhZ2UiOiIiLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjAsInR5cGUiOjAsImNvbnRlbnQiOiIjIyBTdW1tYXJ5XG5cbkkgaGF2ZSBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgdGhlIGBvbkJlZm9yZVNlbmRgIHByb3AgZnVuY3Rpb25hbGl0eSBmb3IgdGhlIEZsb3dpc2UgY2hhdGJvdCBlbWJlZCBwcm9qZWN0LiBIZXJlJ3Mgd2hhdCBoYXMgYmVlbiBhY2NvbXBsaXNoZWQ6XG5cbiMjIyDinIUgKipJbXBsZW1lbnRhdGlvbiBDb21wbGV0ZSoqXG5cbjEuICoqQWRkZWQgYG9uQmVmb3JlU2VuZGAgcHJvcCB0byBCb3RQcm9wcyBpbnRlcmZhY2UqKiBpbiBgc3JjL2NvbXBvbmVudHMvQm90LnRzeGBcbiAgIC0gRnVuY3Rpb24gc2lnbmF0dXJlIHN1cHBvcnRzIGJvdGggc3luYyBhbmQgYXN5bmMgb3BlcmF0aW9uc1xuICAgLSBBbGxvd3MgbWVzc2FnZSBtb2RpZmljYXRpb24sIHJlcXVlc3QgYm9keSBtb2RpZmljYXRpb24sIGFuZCBjYW5jZWxsYXRpb25cbiAgIC0gRnVsbHkgdHlwZWQgd2l0aCBUeXBlU2NyaXB0IHN1cHBvcnRcblxuMi4gKipJbnRlZ3JhdGVkIHRoZSBjYWxsYmFjayBpbnRvIHRoZSBtZXNzYWdlIHNlbmRpbmcgZmxvdyoqIGluIGBoYW5kbGVTdWJtaXRgIGZ1bmN0aW9uXG4gICAtIENhbGxlZCByaWdodCBiZWZvcmUgdGhlIEFQSSByZXF1ZXN0IGlzIG1hZGVcbiAgIC0gSGFuZGxlcyBib3RoIHN0cmVhbWluZyBhbmQgbm9uLXN0cmVhbWluZyBtZXNzYWdlIGZsb3dzXG4gICAtIEluY2x1ZGVzIHByb3BlciBlcnJvciBoYW5kbGluZyBhbmQgdXNlciBmZWVkYmFja1xuXG4zLiAqKlVwZGF0ZWQgYWxsIGNvbXBvbmVudCBsYXllcnMqKiB0byBwYXNzIHRocm91Z2ggdGhlIG5ldyBwcm9wOlxuICAgLSBgc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZS50c3hgXG4gICAtIGBzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL0Z1bGwudHN4YFxuICAgLSBgc3JjL2NvbnN0YW50cy50c2BcblxuNC4gKipDcmVhdGVkIG1pc3NpbmcgVG9hc3QgY29tcG9uZW50KiogZm9yIHByb3BlciBlcnJvciBoYW5kbGluZ1xuXG41LiAqKlN1Y2Nlc3NmdWxseSBidWlsdCB0aGUgcHJvamVjdCoqIC0gYWxsIGNvbXBpbGF0aW9uIGlzc3VlcyByZXNvbHZlZFxuXG4jIyMg8J+OryAqKktleSBGZWF0dXJlcyoqXG5cbi0gKipNZXNzYWdlIEludGVyY2VwdGlvbioqOiBJbnRlcmNlcHQgbWVzc2FnZXMgYmVmb3JlIHRoZXkncmUgc2VudCB0byB0aGUgQVBJXG4tICoqQ29udGVudCBGaWx0ZXJpbmcqKjogQmxvY2sgaW5hcHByb3ByaWF0ZSBvciB1bndhbnRlZCBtZXNzYWdlc1xuLSAqKk1lc3NhZ2UgVHJhbnNmb3JtYXRpb24qKjogTW9kaWZ5IG1lc3NhZ2VzIGJlZm9yZSBzZW5kaW5nIChlLmcuLCBhdXRvLXRyYW5zbGF0aW9uLCBmb3JtYXR0aW5nKVxuLSAqKlJlcXVlc3QgRW5oYW5jZW1lbnQqKjogQWRkIG1ldGFkYXRhLCBhdXRoZW50aWNhdGlvbiwgb3IgY29udGV4dCB0byB0aGUgcmVxdWVzdCBib2R5XG4tICoqQW5hbHl0aWNzIEludGVncmF0aW9uKio6IFRyYWNrIHVzZXIgaW50ZXJhY3Rpb25zIGFuZCBtZXNzYWdlIHBhdHRlcm5zXG4tICoqRXJyb3IgSGFuZGxpbmcqKjogR3JhY2VmdWwgZXJyb3IgaGFuZGxpbmcgd2l0aCB1c2VyIGZlZWRiYWNrXG4tICoqVHlwZVNjcmlwdCBTdXBwb3J0Kio6IEZ1bGwgdHlwZSBzYWZldHkgYW5kIEludGVsbGlTZW5zZSBzdXBwb3J0XG5cbiMjIyDwn5OdICoqVXNhZ2UgRXhhbXBsZSoqXG5cbmBgYGphdmFzY3JpcHRcbkNoYXRib3QuaW5pdCh7XG4gIGNoYXRmbG93aWQ6IFwieW91ci1jaGF0Zmxvdy1pZFwiLFxuICBhcGlIb3N0OiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiLFxuICBvbkJlZm9yZVNlbmQ6IGFzeW5jIChtZXNzYWdlLCBib2R5KSA9PiB7XG4gICAgLy8gQmxvY2sgaW5hcHByb3ByaWF0ZSBjb250ZW50XG4gICAgaWYgKG1lc3NhZ2UuaW5jbHVkZXMoJ3NwYW0nKSkge1xuICAgICAgcmV0dXJuIHsgbWVzc2FnZSwgYm9keSwgY2FuY2VsOiB0cnVlIH07XG4gICAgfVxuICAgIFxuICAgIC8vIFRyYW5zZm9ybSBjb21tYW5kc1xuICAgIGlmIChtZXNzYWdlLnN0YXJ0c1dpdGgoJy90cmFuc2xhdGUgJykpIHtcbiAgICAgIGNvbnN0IG5ld01lc3NhZ2UgPSBgUGxlYXNlIHRyYW5zbGF0ZTogJHttZXNzYWdlLnN1YnN0cmluZygxMSl9YDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1lc3NhZ2U6IG5ld01lc3NhZ2UsXG4gICAgICAgIGJvZHk6IHsgLi4uYm9keSwgcXVlc3Rpb246IG5ld01lc3NhZ2UgfVxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgLy8gQWRkIGFuYWx5dGljc1xuICAgIGF3YWl0IGFuYWx5dGljcy50cmFjaygnbWVzc2FnZV9zZW50JywgeyBtZXNzYWdlIH0pO1xuICAgIFxuICAgIHJldHVybiB7IG1lc3NhZ2UsIGJvZHkgfTtcbiAgfVxufSk7XG5gYGBcblxuIyMjIPCfk5ogKipEb2N1bWVudGF0aW9uKipcblxuLSBDcmVhdGVkIGNvbXByZWhlbnNpdmUgZG9jdW1lbnRhdGlvbiBpbiBgb25CZWZvcmVTZW5kLVJFQURNRS5tZGBcbi0gUHJvdmlkZWQgd29ya2luZyBleGFtcGxlIGluIGBleGFtcGxlLW9uQmVmb3JlU2VuZC5odG1sYFxuLSBJbmNsdWRlZCBtdWx0aXBsZSB1c2UgY2FzZXMgYW5kIGJlc3QgcHJhY3RpY2VzXG5cblRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIGlzIG5vdyByZWFkeSBmb3IgdXNlIGFuZCBwcm92aWRlcyBhIHBvd2VyZnVsIHdheSB0byBjdXN0b21pemUgbWVzc2FnZSBoYW5kbGluZyBpbiB0aGUgRmxvd2lzZSBjaGF0Ym90IGVtYmVkIVxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiRmlsZSBzYXZlZC4gIFNhdmVkIGZpbGUge29uQmVmb3JlU2VuZC1SRUFETUUubWR9IiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxMXZNZzU2UG1KYnNuUjk2ZGFzNks5UyJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlLCJjdXJyZW50VGVybWluYWwiOnsidGVybWluYWxJZCI6MjIsImN1cnJlbnRXb3JraW5nRGlyZWN0b3J5IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In19fV0sInRpbWVzdGFtcCI6IjIwMjUtMDUtMzBUMDQ6MDc6MzUuMjg2WiIsInJlc3BvbnNlX3RleHQiOiIjIyBTdW1tYXJ5XG5cbkkgaGF2ZSBzdWNjZXNzZnVsbHkgaW1wbGVtZW50ZWQgdGhlIGBvbkJlZm9yZVNlbmRgIHByb3AgZnVuY3Rpb25hbGl0eSBmb3IgdGhlIEZsb3dpc2UgY2hhdGJvdCBlbWJlZCBwcm9qZWN0LiBIZXJlJ3Mgd2hhdCBoYXMgYmVlbiBhY2NvbXBsaXNoZWQ6XG5cbiMjIyDinIUgKipJbXBsZW1lbnRhdGlvbiBDb21wbGV0ZSoqXG5cbjEuICoqQWRkZWQgYG9uQmVmb3JlU2VuZGAgcHJvcCB0byBCb3RQcm9wcyBpbnRlcmZhY2UqKiBpbiBgc3JjL2NvbXBvbmVudHMvQm90LnRzeGBcbiAgIC0gRnVuY3Rpb24gc2lnbmF0dXJlIHN1cHBvcnRzIGJvdGggc3luYyBhbmQgYXN5bmMgb3BlcmF0aW9uc1xuICAgLSBBbGxvd3MgbWVzc2FnZSBtb2RpZmljYXRpb24sIHJlcXVlc3QgYm9keSBtb2RpZmljYXRpb24sIGFuZCBjYW5jZWxsYXRpb25cbiAgIC0gRnVsbHkgdHlwZWQgd2l0aCBUeXBlU2NyaXB0IHN1cHBvcnRcblxuMi4gKipJbnRlZ3JhdGVkIHRoZSBjYWxsYmFjayBpbnRvIHRoZSBtZXNzYWdlIHNlbmRpbmcgZmxvdyoqIGluIGBoYW5kbGVTdWJtaXRgIGZ1bmN0aW9uXG4gICAtIENhbGxlZCByaWdodCBiZWZvcmUgdGhlIEFQSSByZXF1ZXN0IGlzIG1hZGVcbiAgIC0gSGFuZGxlcyBib3RoIHN0cmVhbWluZyBhbmQgbm9uLXN0cmVhbWluZyBtZXNzYWdlIGZsb3dzXG4gICAtIEluY2x1ZGVzIHByb3BlciBlcnJvciBoYW5kbGluZyBhbmQgdXNlciBmZWVkYmFja1xuXG4zLiAqKlVwZGF0ZWQgYWxsIGNvbXBvbmVudCBsYXllcnMqKiB0byBwYXNzIHRocm91Z2ggdGhlIG5ldyBwcm9wOlxuICAgLSBgc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZS50c3hgXG4gICAtIGBzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL0Z1bGwudHN4YFxuICAgLSBgc3JjL2NvbnN0YW50cy50c2BcblxuNC4gKipDcmVhdGVkIG1pc3NpbmcgVG9hc3QgY29tcG9uZW50KiogZm9yIHByb3BlciBlcnJvciBoYW5kbGluZ1xuXG41LiAqKlN1Y2Nlc3NmdWxseSBidWlsdCB0aGUgcHJvamVjdCoqIC0gYWxsIGNvbXBpbGF0aW9uIGlzc3VlcyByZXNvbHZlZFxuXG4jIyMg8J+OryAqKktleSBGZWF0dXJlcyoqXG5cbi0gKipNZXNzYWdlIEludGVyY2VwdGlvbioqOiBJbnRlcmNlcHQgbWVzc2FnZXMgYmVmb3JlIHRoZXkncmUgc2VudCB0byB0aGUgQVBJXG4tICoqQ29udGVudCBGaWx0ZXJpbmcqKjogQmxvY2sgaW5hcHByb3ByaWF0ZSBvciB1bndhbnRlZCBtZXNzYWdlc1xuLSAqKk1lc3NhZ2UgVHJhbnNmb3JtYXRpb24qKjogTW9kaWZ5IG1lc3NhZ2VzIGJlZm9yZSBzZW5kaW5nIChlLmcuLCBhdXRvLXRyYW5zbGF0aW9uLCBmb3JtYXR0aW5nKVxuLSAqKlJlcXVlc3QgRW5oYW5jZW1lbnQqKjogQWRkIG1ldGFkYXRhLCBhdXRoZW50aWNhdGlvbiwgb3IgY29udGV4dCB0byB0aGUgcmVxdWVzdCBib2R5XG4tICoqQW5hbHl0aWNzIEludGVncmF0aW9uKio6IFRyYWNrIHVzZXIgaW50ZXJhY3Rpb25zIGFuZCBtZXNzYWdlIHBhdHRlcm5zXG4tICoqRXJyb3IgSGFuZGxpbmcqKjogR3JhY2VmdWwgZXJyb3IgaGFuZGxpbmcgd2l0aCB1c2VyIGZlZWRiYWNrXG4tICoqVHlwZVNjcmlwdCBTdXBwb3J0Kio6IEZ1bGwgdHlwZSBzYWZldHkgYW5kIEludGVsbGlTZW5zZSBzdXBwb3J0XG5cbiMjIyDwn5OdICoqVXNhZ2UgRXhhbXBsZSoqXG5cbmBgYGphdmFzY3JpcHRcbkNoYXRib3QuaW5pdCh7XG4gIGNoYXRmbG93aWQ6IFwieW91ci1jaGF0Zmxvdy1pZFwiLFxuICBhcGlIb3N0OiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiLFxuICBvbkJlZm9yZVNlbmQ6IGFzeW5jIChtZXNzYWdlLCBib2R5KSA9PiB7XG4gICAgLy8gQmxvY2sgaW5hcHByb3ByaWF0ZSBjb250ZW50XG4gICAgaWYgKG1lc3NhZ2UuaW5jbHVkZXMoJ3NwYW0nKSkge1xuICAgICAgcmV0dXJuIHsgbWVzc2FnZSwgYm9keSwgY2FuY2VsOiB0cnVlIH07XG4gICAgfVxuICAgIFxuICAgIC8vIFRyYW5zZm9ybSBjb21tYW5kc1xuICAgIGlmIChtZXNzYWdlLnN0YXJ0c1dpdGgoJy90cmFuc2xhdGUgJykpIHtcbiAgICAgIGNvbnN0IG5ld01lc3NhZ2UgPSBgUGxlYXNlIHRyYW5zbGF0ZTogJHttZXNzYWdlLnN1YnN0cmluZygxMSl9YDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1lc3NhZ2U6IG5ld01lc3NhZ2UsXG4gICAgICAgIGJvZHk6IHsgLi4uYm9keSwgcXVlc3Rpb246IG5ld01lc3NhZ2UgfVxuICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgLy8gQWRkIGFuYWx5dGljc1xuICAgIGF3YWl0IGFuYWx5dGljcy50cmFjaygnbWVzc2FnZV9zZW50JywgeyBtZXNzYWdlIH0pO1xuICAgIFxuICAgIHJldHVybiB7IG1lc3NhZ2UsIGJvZHkgfTtcbiAgfVxufSk7XG5gYGBcblxuIyMjIPCfk5ogKipEb2N1bWVudGF0aW9uKipcblxuLSBDcmVhdGVkIGNvbXByZWhlbnNpdmUgZG9jdW1lbnRhdGlvbiBpbiBgb25CZWZvcmVTZW5kLVJFQURNRS5tZGBcbi0gUHJvdmlkZWQgd29ya2luZyBleGFtcGxlIGluIGBleGFtcGxlLW9uQmVmb3JlU2VuZC5odG1sYFxuLSBJbmNsdWRlZCBtdWx0aXBsZSB1c2UgY2FzZXMgYW5kIGJlc3QgcHJhY3RpY2VzXG5cblRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIGlzIG5vdyByZWFkeSBmb3IgdXNlIGFuZCBwcm92aWRlcyBhIHBvd2VyZnVsIHdheSB0byBjdXN0b21pemUgbWVzc2FnZSBoYW5kbGluZyBpbiB0aGUgRmxvd2lzZSBjaGF0Ym90IGVtYmVkIVxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJyZXF1ZXN0X2lkIjoiM2U0ZGI1OWYtM2ZmNi00ODhkLTk4MTAtZTE4ODJlNjg4NjU3IiwidXVpZCI6IjIzZDNlNWIwLTczMzMtNDJmYS1iMmQzLTk1OTExM2JhYjZmZSIsImNoYXRJdGVtVHlwZSI6ImFnZW50aWMtY2hlY2twb2ludC1kZWxpbWl0ZXIiLCJzdGF0dXMiOiJzdWNjZXNzIiwiZnJvbVRpbWVzdGFtcCI6MTc0ODU3NzcyMzM3OCwidG9UaW1lc3RhbXAiOjE3NDg1NzgwNjg1NjYsInNlZW5fc3RhdGUiOiJzZWVuIn1dLCJmZWVkYmFja1N0YXRlcyI6eyJ0ZW1wLWZlLWM5YjdlNWVmLTIwMDAtNDVhMi1iMDliLTRhODU0Y2VmMThmMCI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtNWExYzVjMzMtNTA1NS00YzlkLTliODEtYmQ5NWJjZGM0NzMzIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS0yNTI1YjAyOS03OWZhLTQwZDEtODNjYi02YTVmYTg4MTI5ZTQiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLTFjZDNkMDM5LTUxM2QtNGY5NS04NDRmLWI3NGE0MDc3ODEyZSI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtY2FlNzVhZDUtNjYzMy00NmYxLTg4YTYtYjk1NTU3Nzc1Yzc1Ijp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS0yZGNiODVlNS00MzZhLTRiMzMtYWFlNC0xZDBkMzQxZGY4NWYiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLTE1ZTViMTcxLTVjZjctNGIyMC05YWIyLWU0ZTc2MWI3MjczMyI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtMGU5ZTcxOGEtMDA5ZS00YjIyLWEyYTEtOTViYTQ3MjI4OGY4Ijp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS0yMDQzMzE1NC1hN2EwLTQ5OGMtODMyYS05MWNmMjUyMmNjNmIiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLWU4ZWU1NDgwLTQwY2ItNDYyZi04NWJmLWY0MDMwODM5ZTdlNCI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtNWM2N2RjYzItMzZiZC00NzFhLThjNzEtYmNjODc3NzIyYTAzIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS1hMTUyNjI5Mi1mYTFiLTQ1NjMtYjllMi03NWU5NDJiNDEzMmQiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLTljNGMzNGNkLWQ1OWEtNDNiOS1hZDA5LWE1MTBiYjkzZjAyNCI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtZDE4MGQ1OWQtN2ZjOC00YWRmLWJhZjQtZjNkZTQ2NGU4MDZmIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS1mYzQxY2E3ZC03OTY0LTQzZDctYWEyYy03NDFmYmIxMmZiYzMiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLTU4ZTkzNzcxLTM5YjAtNDMzNi1iZjZiLWU3NWM0MjVkZmM0YyI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtOTQyNzczMTAtNWFlOC00YWY3LThmODktYjAzNDJkMDUzNTNjIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS1hYTA0NTIwZi0yMDUwLTQ2MDQtODcyZS00YWFiODI0ZDg5M2EiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLTAwZGQwZjM2LWRkM2QtNDc2Yy05MjkyLWQwYTYwNDAxODViZSI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtYzY5OGU1MTgtMTU4YS00YzdlLTg1ODctMGExZDc0MjA3NjE3Ijp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS0zMDBlNDQ4Ny00MTI2LTQ3YjgtYTU0ZS04OTNiOGY2NDMyYmEiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLTA1MTdkOGViLWVkZDItNGI4Ni1iZTMzLWRiMjdiNjk2YmFmOSI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtZDk2NmMxMmQtY2Y5Mi00OTAzLWIxNjQtZmJhN2IwZjYwNzVjIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS1lMTNjZDI3Ni03NTc4LTQ0N2MtYTkzZi02MzViYzMwZTIwOWQiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLWY2NWMyOWJjLWU2OTYtNDZmYS04ZmIwLTM5YmQzZmI0MmEwOCI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtYzAyZTNkZmYtNDkwNi00YzIzLTg0ODQtZWFkMGI0ZTAyZWRjIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS1kNmZmMmIwZS02MmYyLTQxYzEtYTAxYS1hYTFiOTUyYmMyMjciOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLWY3ZmYxYmY2LTQxMzQtNDIwOS1hOTZlLTBlOTU0MDUwOTk0OCI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtNWJiOTA3ZjgtZDIxZi00YjNmLWEzNzgtMDlkNDhiYzg0ZWRhIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS1jN2EwYjZmMS1mMjczLTRlM2QtOGQ4NC0wYjFhZmVmYmVkN2YiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLTY3MjRiZDA1LTcxZDMtNDJkNS04ZmQ2LTVmZWUxOTYwODQ3OCI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtMWM1OGIzZDItOWExMC00ZDcwLTg2NDctNGU1NjVkODkwNmM4Ijp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS0zYjc5YjY5My1lMDdmLTQ4MmItYmNiNy05ODVkYjMyNjVmZTQiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLTdhMTJiMGRiLTNlZTUtNDQ0My1hNzYxLTRmMTA3NmE1MDI3ZiI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtNzI0MmFiZDktYjE2NC00Zjk0LWE5ZmYtZDFkM2U4MzdmYmJmIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS1jODIzNTA4MS1lZDc0LTRjNmMtYTFmMy0xNjFmNTBmYjI2ZGYiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLWJiMDE4OTNlLWQyZTItNGZlNS1hNzU5LWFlNzM5MWVhNDAxNSI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtY2U2ZTMzZjYtYTUwZi00MjM5LWE3OTUtODliZDJlYjIyZTFlIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS01MDBhZTcyNC03ODBlLTQ2ZjUtOTdmMi0xZDNmZTAyODlmMjgiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9fSwidG9vbFVzZVN0YXRlcyI6eyIwMWU2NzFhNC1jMzkyLTQ3NzUtYWExZi1jODY3OTU3YTc2ZTI7dG9vbHVfdnJ0eF8wMTRLaktGZ004aDVGOFRrOHM1RTlHR1giOnsicmVxdWVzdElkIjoiMDFlNjcxYTQtYzM5Mi00Nzc1LWFhMWYtYzg2Nzk1N2E3NmUyIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMTRLaktGZ004aDVGOFRrOHM1RTlHR1giLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJIZXJlJ3MgdGhlIGZpbGVzIGFuZCBkaXJlY3RvcmllcyB1cCB0byAyIGxldmVscyBkZWVwIGluIHNyYywgZXhjbHVkaW5nIGhpZGRlbiBpdGVtczpcbnNyYy9hc3NldHNcbnNyYy9hc3NldHNcXGluZGV4LmNzc1xuc3JjL2Fzc2V0c1xccmVjZWl2ZV9tZXNzYWdlLm1wM1xuc3JjL2Fzc2V0c1xcc2VuZF9tZXNzYWdlLm1wM1xuc3JjL2Fzc2V0c1xcd2F2ZS1zb3VuZC5qcGdcbnNyYy9jb21wb25lbnRzXG5zcmMvY29tcG9uZW50c1xcQmFkZ2UudHN4XG5zcmMvY29tcG9uZW50c1xcQm90LnRzeFxuc3JjL2NvbXBvbmVudHNcXEZlZWRiYWNrQ29udGVudERpYWxvZy50c3hcbnNyYy9jb21wb25lbnRzXFxUeXBpbmdCdWJibGUudHN4XG5zcmMvY29tcG9uZW50c1xcYXZhdGFyc1xuc3JjL2NvbXBvbmVudHNcXGJ1YmJsZXNcbnNyYy9jb21wb25lbnRzXFxidXR0b25zXG5zcmMvY29tcG9uZW50c1xcaWNvbnNcbnNyYy9jb21wb25lbnRzXFxpbmRleC50c1xuc3JjL2NvbXBvbmVudHNcXGlucHV0c1xuc3JjL2NvbnN0YW50cy50c1xuc3JjL2Vudi5kLnRzXG5zcmMvZmVhdHVyZXNcbnNyYy9mZWF0dXJlc1xcYnViYmxlXG5zcmMvZmVhdHVyZXNcXGZ1bGxcbnNyYy9mZWF0dXJlc1xccG9wdXBcbnNyYy9nbG9iYWwuZC50c1xuc3JjL2luZGV4LnRzXG5zcmMvcXVlcmllc1xuc3JjL3F1ZXJpZXNcXHNlbmRNZXNzYWdlUXVlcnkudHNcbnNyYy9yZWdpc3Rlci50c3hcbnNyYy90eXBlcy50c1xuc3JjL3V0aWxzXG5zcmMvdXRpbHNcXGF1ZGlvUmVjb3JkaW5nLnRzXG5zcmMvdXRpbHNcXGNoYXRJbnB1dEhpc3RvcnkudHNcbnNyYy91dGlsc1xcZW1iZWRTY3JpcHQuanNcbnNyYy91dGlsc1xcaW5kZXgudHNcbnNyYy91dGlsc1xcaXNNb2JpbGVTaWduYWwudHNcbnNyYy93ZWIudHNcbnNyYy93aW5kb3cudHNcbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sIjFmMTMzNDM0LTFhY2EtNDVkMi1iNzZkLWEyYjUyY2VlYTQ0YTt0b29sdV92cnR4XzAxNlczMXB5ckoxUWJGekpIRzFMZmloRSI6eyJyZXF1ZXN0SWQiOiIxZjEzMzQzNC0xYWNhLTQ1ZDItYjc2ZC1hMmI1MmNlZWE0NGEiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxNlczMXB5ckoxUWJGekpIRzFMZmloRSIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gc3JjL2luZGV4LnRzOlxuICAgICAxXHRleHBvcnQgeyBGdWxsUGFnZUNoYXQgfSBmcm9tICcuL0Z1bGxQYWdlQ2hhdCdcbiAgICAgMlx0ZXhwb3J0IHsgQnViYmxlQ2hhdCB9IGZyb20gJy4vQnViYmxlQ2hhdCdcbiAgICAgM1x0XG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiAzXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCJmNDIxZDNiYi1mMGQ3LTQ0OTItYTVkZC1kZTRiMTMwZmQ4ZTY7dG9vbHVfdnJ0eF8wMVlDQUQ3S1hlOXhUUHl6ZnRaQkpBWGoiOnsicmVxdWVzdElkIjoiZjQyMWQzYmItZjBkNy00NDkyLWE1ZGQtZGU0YjEzMGZkOGU2IiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMVlDQUQ3S1hlOXhUUHl6ZnRaQkpBWGoiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJUaGUgZm9sbG93aW5nIGNvZGUgc2VjdGlvbnMgd2VyZSByZXRyaWV2ZWQ6XG5QYXRoOiBzcmMvY29uc3RhbnRzLnRzXG4gICAgIDFcdC8vIE5vdGU6IFVzaW5nIGlubGluZSB0eXBlIGRlZmluaXRpb24gdG8gYXZvaWQgSlNYIGNvbXBpbGF0aW9uIGlzc3Vlc1xuICAgICAyXHQvLyBUaGlzIG1hdGNoZXMgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcyBmcm9tIHRoZSBvcmlnaW5hbCBjb2RlYmFzZVxuICAgICAzXHR0eXBlIEJ1YmJsZVByb3BzID0ge1xuICAgICA0XHQgIC8vIENvcmUgQm90IHByb3BlcnRpZXNcbiAgICAgNVx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDZcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgN1x0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgOVx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICAxMFx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgIDExXHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICAxMlx0ICBib3RNZXNzYWdlPzogYW55O1xuICAgIDEzXHQgIHVzZXJNZXNzYWdlPzogYW55O1xuICAgIDE0XHQgIHRleHRJbnB1dD86IGFueTtcbiAgICAxNVx0ICBmZWVkYmFjaz86IGFueTtcbiAgICAxNlx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTdcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE5XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgICAyMFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIDIxXHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgICAyMlx0ICB0aXRsZT86IHN0cmluZztcbiAgICAyM1x0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgICAyNFx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAyNVx0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgICAyNlx0ICBmb290ZXI/OiBhbnk7XG4gICAgMjdcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuLi4uXG4gICAgNDdcdFxuICAgIDQ4XHQvKipcbiAgICA0OVx0ICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhdGJvdCBidWJibGUgY29tcG9uZW50LlxuICAgIDUwXHQgKiBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXMgd2hpbGUga2VlcGluZ1xuICAgIDUxXHQgKiByZXF1aXJlZCBwcm9wZXJ0aWVzIGV4cGxpY2l0bHkgdW5kZWZpbmVkIHRvIGVuZm9yY2UgcHJvcGVyIGNvbmZpZ3VyYXRpb24uXG4gICAgNTJcdCAqL1xuICAgIDUzXHRleHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgICA1NFx0ICAvLyBDb3JlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gLSBtdXN0IGJlIHNldCBieSBpbXBsZW1lbnRlclxuICAgIDU1XHQgIGNoYXRmbG93aWQ6ICcnLFxuICAgIDU2XHRcbiAgICA1N1x0ICAvLyBBUEkgY29uZmlndXJhdGlvblxuICAgIDU4XHQgIGFwaUhvc3Q6IHVuZGVmaW5lZCxcbiAgICA1OVx0ICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgICA2MFx0ICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDYxXHRcbiAgICA2Mlx0ICAvLyBVSSB0aGVtaW5nIGFuZCBjdXN0b21pemF0aW9uXG4gICAgNjNcdCAgdGhlbWU6IHVuZGVmaW5lZCxcbiAgICA2NFx0XG4gICAgNjVcdCAgLy8gRXh0ZXJuYWwgaW50ZWdyYXRpb25zXG4gICAgNjZcdCAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcbiAgICA2N1x0ICByb29tSWRzOiB7fSxcbiAgICA2OFx0XG4gICAgNjlcdCAgLy8gRmVhdHVyZSBmbGFncyBhbmQgb3B0aW9uYWwgZnVuY3Rpb25hbGl0eVxuICAgIDcwXHQgIGlzVXNlRkFROiBmYWxzZSxcbiAgICA3MVx0XG4gICAgNzJcdCAgLy8gRmlsZSBhbmQgY29udGVudCBjb25maWd1cmF0aW9uXG4gICAgNzNcdCAgZmlsZVBhdGg6ICcnLFxuICAgIDc0XHQgIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxuICAgIDc1XHQgIGV4dGVybmFsRGF0YTogJycsXG4gICAgNzZcdCAgY2FsbEJhY2tJY29uOiAnJyxcbiAgICA3N1x0ICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG4uLi5cblBhdGg6IFJFQURNRS5tZFxuICAgICAxXHQ8IS0tIG1hcmtkb3dubGludC1kaXNhYmxlIE1EMDMwIC0tPlxuICAgICAyXHRcbiAgICAgM1x0IyBGbG93aXNlIEVtYmVkIFJlYWN0XG4gICAgIDRcdFxuICAgICA1XHRSZWFjdCBsaWJyYXJ5IHRvIGRpc3BsYXkgZmxvd2lzZSBjaGF0Ym90IG9uIHlvdXIgd2Vic2l0ZVxuICAgICA2XHRcbiAgICAgN1x0IVtGbG93aXNlXShodHRwczovL2dpdGh1Yi5jb20vRmxvd2lzZUFJL0Zsb3dpc2VDaGF0RW1iZWQvYmxvYi9tYWluL2ltYWdlcy9DaGF0RW1iZWQuZ2lmP3Jhdz10cnVlKVxuICAgICA4XHRcbiAgICAgOVx0IyMgSW5zdGFsbFxuICAgIDEwXHRcbiAgICAxMVx0YGBgYmFzaFxuICAgIDEyXHRucG0gaW5zdGFsbCBjLWFnZW50LWVtYmVkZGluZyBjLWFnZW50LWVtYmVkZGluZy1yZWFjdFxuICAgIDEzXHRgYGBcbiAgICAxNFx0XG4gICAgMTVcdG9yXG4gICAgMTZcdFxuICAgIDE3XHRgYGBiYXNoXG4gICAgMThcdHlhcm4gYWRkIGMtYWdlbnQtZW1iZWRkaW5nIGMtYWdlbnQtZW1iZWRkaW5nLXJlYWN0XG4gICAgMTlcdGBgYFxuICAgIDIwXHRcbiAgICAyMVx0IyMgSW1wb3J0XG4gICAgMjJcdFxuICAgIDIzXHRGdWxsIFBhZ2UgQ2hhdFxuICAgIDI0XHRcbiAgICAyNVx0YGBgdHN4XG4gICAgMjZcdGltcG9ydCB7IEZ1bGxQYWdlQ2hhdCB9IGZyb20gXCJjLWFnZW50LWVtYmVkZGluZy1yZWFjdFwiO1xuICAgIDI3XHRcbiAgICAyOFx0Y29uc3QgQXBwID0gKCkgPT4ge1xuICAgIDI5XHQgIHJldHVybiAoXG4gICAgMzBcdCAgICA8RnVsbFBhZ2VDaGF0XG4gICAgMzFcdCAgICAgIGNoYXRmbG93aWQ9XCJ5b3VyLWNoYXRmbG93LWlkXCJcbiAgICAzMlx0ICAgICAgYXBpSG9zdD1cImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiXG4gICAgMzNcdCAgICAvPlxuICAgIDM0XHQgICk7XG4gICAgMzVcdH07XG4gICAgMzZcdGBgYFxuICAgIDM3XHRcbiAgICAzOFx0UG9wdXAgQ2hhdFxuICAgIDM5XHRcbiAgICA0MFx0YGBgdHN4XG4gICAgNDFcdGltcG9ydCB7IEJ1YmJsZUNoYXQgfSBmcm9tIFwiYy1hZ2VudC1lbWJlZGRpbmctcmVhY3RcIjtcbiAgICA0Mlx0XG4gICAgNDNcdGNvbnN0IEFwcCA9ICgpID0+IHtcbiAgICA0NFx0ICByZXR1cm4gKFxuICAgIDQ1XHQgICAgPEJ1YmJsZUNoYXQgY2hhdGZsb3dpZD1cInlvdXItY2hhdGZsb3ctaWRcIiBhcGlIb3N0PVwiaHR0cDovL2xvY2FsaG9zdDozMDAwXCIgLz5cbiAgICA0Nlx0ICApO1xuICAgIDQ3XHR9O1xuICAgIDQ4XHRgYGBcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9Cb3RCdWJibGUudHN4XG4uLi5cbiAgICAxOFx0XG4gICAgMTlcdHR5cGUgUHJvcHMgPSB7XG4gICAgMjBcdCAgbWVzc2FnZTogTWVzc2FnZVR5cGU7XG4gICAgMjFcdCAgc2V0TWVzc2FnZXM/OiBhbnk7XG4gICAgMjJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDIzXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDI0XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgMjVcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIDI2XHQgIGZpbGVBbm5vdGF0aW9ucz86IGFueTtcbiAgICAyN1x0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAyOFx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMjlcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDMwXHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzMVx0ICBjaGF0RmVlZGJhY2tTdGF0dXM/OiBib29sZWFuO1xuICAgIDMyXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDMzXHQgIGZlZWRiYWNrQ29sb3I/OiBzdHJpbmc7XG4gICAgMzRcdCAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgIDM1XHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgICAzNlx0ICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47XG4gICAgMzdcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgIDM4XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDM5XHQgIGhhbmRsZUFjdGlvbkNsaWNrOiAobGFiZWw6IHN0cmluZywgYWN0aW9uOiBJQWN0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCkgPT4gdm9pZDtcbiAgICA0MFx0ICBoYW5kbGVTb3VyY2VEb2N1bWVudHNDbGljazogKHNyYzogYW55KSA9PiB2b2lkO1xuICAgIDQxXHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgIDQyXHQgIG9uQ29ubmVjdFRvSHVtYW5BZHZpc29yPzogKGlkOiBzdHJpbmcsIHBhcmFtcz86IGFueSkgPT4gdm9pZDtcbiAgICA0M1x0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICA0NFx0ICBxdWVzdGlvbj86IHN0cmluZztcbi4uLlxuUGF0aDogc3JjL0Z1bGxQYWdlQ2hhdC50c3hcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCb3RQcm9wcyB9IGZyb20gJ2NtY3RzLWMtYWdlbnQtZW1iZWRkaW5nJ1xuICAgICAyXHRpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuICAgICAzXHRcbiAgICAgNFx0dHlwZSBQcm9wcyA9IEJvdFByb3BzICYge1xuICAgICA1XHQgIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllc1xuICAgICA2XHQgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICA3XHR9XG4gICAgIDhcdFxuICAgICA5XHRkZWNsYXJlIGdsb2JhbCB7XG4gICAgMTBcdCAgbmFtZXNwYWNlIEpTWCB7XG4gICAgMTFcdCAgICBpbnRlcmZhY2UgSW50cmluc2ljRWxlbWVudHMge1xuICAgIDEyXHQgICAgICAnZmxvd2lzZS1mdWxsY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEzXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxNFx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDE1XHQgICAgICA+ICYgeyBjbGFzcz86IHN0cmluZyB9XG4gICAgMTZcdCAgICB9XG4gICAgMTdcdCAgfVxuICAgIDE4XHR9XG4uLi5cblBhdGg6IHNyYy9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnkudHNcbiAgICAgMVx0aW1wb3J0IHsgRmlsZVVwbG9hZCwgSUFjdGlvbiB9IGZyb20gJ0AvY29tcG9uZW50cy9Cb3QnO1xuICAgICAyXHRpbXBvcnQgeyBzZW5kUmVxdWVzdCB9IGZyb20gJ0AvdXRpbHMvaW5kZXgnO1xuICAgICAzXHRcbiAgICAgNFx0ZXhwb3J0IHR5cGUgSW5jb21pbmdJbnB1dCA9IHtcbiAgICAgNVx0ICBxdWVzdGlvbjogc3RyaW5nO1xuICAgICA2XHQgIHVwbG9hZHM/OiBGaWxlVXBsb2FkW107XG4gICAgIDdcdCAgb3ZlcnJpZGVDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgOFx0ICBzb2NrZXRJT0NsaWVudElkPzogc3RyaW5nO1xuICAgICA5XHQgIGNoYXRJZD86IHN0cmluZztcbiAgICAxMFx0ICBmaWxlTmFtZT86IHN0cmluZzsgLy8gT25seSBmb3IgYXNzaXN0YW50XG4gICAgMTFcdCAgbGVhZEVtYWlsPzogc3RyaW5nO1xuICAgIDEyXHQgIGFjdGlvbj86IElBY3Rpb247XG4gICAgMTNcdCAgc3RvcmVkPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAxNFx0ICBmZXRjaD86IGJvb2xlYW47XG4gICAgMTVcdCAgZmFxSWQ/OiBzdHJpbmc7XG4gICAgMTZcdCAgdXNlSWQ/OiBzdHJpbmc7XG4gICAgMTdcdH07XG4gICAgMThcdFxuICAgIDE5XHR0eXBlIEJhc2VSZXF1ZXN0ID0ge1xuICAgIDIwXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgMjFcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIDIyXHR9O1xuICAgIDIzXHRcbiAgICAyNFx0ZXhwb3J0IHR5cGUgTWVzc2FnZVJlcXVlc3QgPSBCYXNlUmVxdWVzdCAmIHtcbiAgICAyNVx0ICBjaGF0Zmxvd2lkPzogc3RyaW5nO1xuICAgIDI2XHQgIGJvZHk/OiBJbmNvbWluZ0lucHV0O1xuICAgIDI3XHR9O1xuLi4uXG4gICAgNjlcdFxuICAgIDcwXHRleHBvcnQgY29uc3QgZ2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UgPSAoKTogYW55IHwgbnVsbCA9PiB7XG4gICAgNzFcdCAgY29uc3QgZGF0YUxvZ2luID0gbG9jYWxTdG9yYWdlPy5nZXRJdGVtKCdkYXRhTG9naW4nKTtcbiAgICA3Mlx0ICBpZiAoZGF0YUxvZ2luKSB7XG4gICAgNzNcdCAgICB0cnkge1xuICAgIDc0XHQgICAgICBjb25zdCBkYXRhID0gSlNPTj8ucGFyc2UoZGF0YUxvZ2luKTtcbiAgICA3NVx0ICAgICAgcmV0dXJuIGRhdGEuYWNjZXNzVG9rZW47XG4gICAgNzZcdCAgICB9IGNhdGNoIChlcnJvcikge1xuICAgIDc3XHQgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIHVzZXIgZGF0YSBmcm9tIGxvY2FsU3RvcmFnZTonLCBlcnJvcik7XG4gICAgNzhcdCAgICAgIHJldHVybiBudWxsO1xuICAgIDc5XHQgICAgfVxuICAgIDgwXHQgIH1cbiAgICA4MVx0ICByZXR1cm4gbnVsbDtcbiAgICA4Mlx0fTtcbiAgICA4M1x0XG4gICAgODRcdGV4cG9ydCBjb25zdCBzZW5kRmVlZGJhY2tRdWVyeSA9ICh7IGNoYXRmbG93aWQsIGFwaUhvc3QgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJywgYm9keSwgb25SZXF1ZXN0IH06IENyZWF0ZUZlZWRiYWNrUmVxdWVzdCkgPT5cbiAgICA4NVx0ICBzZW5kUmVxdWVzdCh7XG4gICAgODZcdCAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICA4N1x0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL2ZlZWRiYWNrLyR7Y2hhdGZsb3dpZH1gLFxuICAgIDg4XHQgICAgYm9keSxcbiAgICA4OVx0ICAgIG9uUmVxdWVzdDogb25SZXF1ZXN0LFxuICAgIDkwXHQgICAgaGVhZGVyczoge1xuICAgIDkxXHQgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgIDkyXHQgICAgfSxcbiAgICA5M1x0ICB9KTtcbi4uLlxuICAgMTE1XHRcbiAgIDExNlx0ZXhwb3J0IGNvbnN0IHNlbmRNZXNzYWdlUXVlcnkgPSAoeyBjaGF0Zmxvd2lkLCBhcGlIb3N0ID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIGJvZHksIG9uUmVxdWVzdCB9OiBNZXNzYWdlUmVxdWVzdCkgPT4ge1xuICAgMTE3XHQgIHJldHVybiBzZW5kUmVxdWVzdDxhbnk+KHtcbiAgIDExOFx0ICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgMTE5XHQgICAgdXJsOiBgJHthcGlIb3N0fS9hcGkvdjEvcHJlZGljdGlvbi8ke2NoYXRmbG93aWR9YCxcbiAgIDEyMFx0ICAgIGJvZHksXG4gICAxMjFcdCAgICBvblJlcXVlc3Q6IG9uUmVxdWVzdCxcbiAgIDEyMlx0ICAgIGhlYWRlcnM6IHtcbiAgIDEyM1x0ICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgIDEyNFx0ICAgIH0sXG4gICAxMjVcdCAgfSk7XG4gICAxMjZcdH07XG4gICAxMjdcdFxuICAgMTI4XHRleHBvcnQgY29uc3QgY3JlYXRlQXR0YWNobWVudFdpdGhGb3JtRGF0YSA9ICh7IGNoYXRmbG93aWQsIGFwaUhvc3QgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJywgZm9ybURhdGEsIG9uUmVxdWVzdCB9OiBVcHNlcnRSZXF1ZXN0KSA9PlxuICAgMTI5XHQgIHNlbmRSZXF1ZXN0KHtcbiAgIDEzMFx0ICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgMTMxXHQgICAgdXJsOiBgJHthcGlIb3N0fS9hcGkvdjEvYXR0YWNobWVudHMvJHtjaGF0Zmxvd2lkfS8ke2Zvcm1EYXRhLmdldCgnY2hhdElkJyl9YCxcbiAgIDEzMlx0ICAgIGZvcm1EYXRhLFxuICAgMTMzXHQgICAgaGVhZGVyczoge1xuICAgMTM0XHQgICAgICAnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgMTM1XHQgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgMTM2XHQgICAgfSxcbiAgIDEzN1x0ICAgIG9uUmVxdWVzdDogb25SZXF1ZXN0LFxuICAgMTM4XHQgIH0pO1xuLi4uXG4gICAxNjFcdFxuICAgMTYyXHRleHBvcnQgY29uc3QgaXNTdHJlYW1BdmFpbGFibGVRdWVyeSA9ICh7IGNoYXRmbG93aWQsIGFwaUhvc3QgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJywgb25SZXF1ZXN0IH06IE1lc3NhZ2VSZXF1ZXN0KSA9PlxuICAgMTYzXHQgIHNlbmRSZXF1ZXN0PGFueT4oe1xuICAgMTY0XHQgICAgbWV0aG9kOiAnR0VUJyxcbiAgIDE2NVx0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL2NoYXRmbG93cy1zdHJlYW1pbmcvJHtjaGF0Zmxvd2lkfWAsXG4gICAxNjZcdCAgICBvblJlcXVlc3Q6IG9uUmVxdWVzdCxcbiAgIDE2N1x0ICAgIGhlYWRlcnM6IHtcbiAgIDE2OFx0ICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgIDE2OVx0ICAgIH0sXG4gICAxNzBcdCAgfSk7XG4gICAxNzFcdFxuICAgMTcyXHRleHBvcnQgY29uc3Qgc2VuZEZpbGVEb3dubG9hZFF1ZXJ5ID0gKHsgYXBpSG9zdCA9ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLCBib2R5LCBvblJlcXVlc3QgfTogTWVzc2FnZVJlcXVlc3QpID0+XG4gICAxNzNcdCAgc2VuZFJlcXVlc3Q8YW55Pih7XG4gICAxNzRcdCAgICBtZXRob2Q6ICdQT1NUJyxcbiAgIDE3NVx0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL29wZW5haS1hc3Npc3RhbnRzLWZpbGUvZG93bmxvYWRgLFxuICAgMTc2XHQgICAgYm9keSxcbiAgIDE3N1x0ICAgIHR5cGU6ICdibG9iJyxcbiAgIDE3OFx0ICAgIG9uUmVxdWVzdDogb25SZXF1ZXN0LFxuICAgMTc5XHQgICAgaGVhZGVyczoge1xuICAgMTgwXHQgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgMTgxXHQgICAgfSxcbiAgIDE4Mlx0ICB9KTtcbiAgIDE4M1x0XG4gICAxODRcdGV4cG9ydCBjb25zdCBhZGRMZWFkUXVlcnkgPSAoeyBhcGlIb3N0ID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIGJvZHksIG9uUmVxdWVzdCB9OiBMZWFkQ2FwdHVyZVJlcXVlc3QpID0+XG4gICAxODVcdCAgc2VuZFJlcXVlc3Q8YW55Pih7XG4gICAxODZcdCAgICBtZXRob2Q6ICdQT1NUJyxcbiAgIDE4N1x0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL2xlYWRzL2AsXG4gICAxODhcdCAgICBib2R5LFxuICAgMTg5XHQgICAgb25SZXF1ZXN0OiBvblJlcXVlc3QsXG4gICAxOTBcdCAgICBoZWFkZXJzOiB7XG4gICAxOTFcdCAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSgpfWAsXG4gICAxOTJcdCAgICB9LFxuICAgMTkzXHQgIH0pO1xuICAgMTk0XHRcbiAgIDE5NVx0ZXhwb3J0IGNvbnN0IHNlYXJjaEZhcXNRdWVyeSA9IGFzeW5jICh7XG4gICAxOTZcdCAgY2hhdGZsb3dpZCxcbiAgIDE5N1x0ICBhcGlIb3N0ID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAxOThcdCAgcXVlcnksXG4gICAxOTlcdCAgb25SZXF1ZXN0LFxuICAgMjAwXHR9OiB7XG4gICAyMDFcdCAgY2hhdGZsb3dpZD86IHN0cmluZztcbiAgIDIwMlx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgMjAzXHQgIHF1ZXJ5OiBzdHJpbmc7XG4gICAyMDRcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgMjA1XHR9KSA9PiB7XG4gICAyMDZcdCAgcmV0dXJuIHNlbmRSZXF1ZXN0PGFueT4oe1xuICAgMjA3XHQgICAgbWV0aG9kOiAnR0VUJyxcbiAgIDIwOFx0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL2ZhcS9zZWFyY2gvJHtjaGF0Zmxvd2lkfT9xdWVyeT0ke3F1ZXJ5fWAsXG4gICAyMDlcdCAgICBvblJlcXVlc3Q6IG9uUmVxdWVzdCxcbiAgIDIxMFx0ICAgIGhlYWRlcnM6IHtcbiAgIDIxMVx0ICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgIDIxMlx0ICAgIH0sXG4gICAyMTNcdCAgfSk7XG4gICAyMTRcdH07XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvdHlwZXMudHNcbiAgICAgMVx0ZXhwb3J0IHR5cGUgQnViYmxlUGFyYW1zID0ge1xuICAgICAyXHQgIHRoZW1lPzogQnViYmxlVGhlbWU7XG4gICAgIDNcdH07XG4gICAgIDRcdFxuICAgICA1XHRleHBvcnQgdHlwZSBCdWJibGVUaGVtZSA9IHtcbiAgICAgNlx0ICBjaGF0V2luZG93PzogQ2hhdFdpbmRvd1RoZW1lO1xuICAgICA3XHQgIGJ1dHRvbj86IEJ1dHRvblRoZW1lO1xuICAgICA4XHQgIHRvb2x0aXA/OiBUb29sVGlwVGhlbWU7XG4gICAgIDlcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgIDEwXHQgIGN1c3RvbUNTUz86IHN0cmluZztcbiAgICAxMVx0fTtcbiAgICAxMlx0XG4gICAgMTNcdGV4cG9ydCB0eXBlIFRleHRJbnB1dFRoZW1lID0ge1xuICAgIDE0XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTZcdCAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgMTdcdCAgc2VuZEJ1dHRvbkNvbG9yPzogc3RyaW5nO1xuICAgIDE4XHQgIG1heENoYXJzPzogbnVtYmVyO1xuICAgIDE5XHQgIG1heENoYXJzV2FybmluZ01lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMjBcdCAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgICAyMVx0ICBzZW5kTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyMlx0ICBzZW5kU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyM1x0ICByZWNlaXZlTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyNFx0ICByZWNlaXZlU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyNVx0fTtcbiAgICAyNlx0XG4gICAgMjdcdGV4cG9ydCB0eXBlIFVzZXJNZXNzYWdlVGhlbWUgPSB7XG4gICAgMjhcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDI5XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAzMVx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMzJcdH07XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvR3Vlc3RCdWJibGUudHN4XG4gICAgIDFcdGltcG9ydCB7IEZvciwgU2hvdywgb25Nb3VudCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHsgQXZhdGFyIH0gZnJvbSAnLi4vYXZhdGFycy9BdmF0YXInO1xuICAgICAzXHRpbXBvcnQgeyBNYXJrZWQgfSBmcm9tICdAdHMtc3RhY2svbWFya2Rvd24nO1xuICAgICA0XHRpbXBvcnQgeyBGaWxlVXBsb2FkLCBNZXNzYWdlVHlwZSB9IGZyb20gJy4uL0JvdCc7XG4gICAgIDVcdGltcG9ydCB7IEF0dGFjaG1lbnRJY29uIH0gZnJvbSAnLi4vaWNvbnMnO1xuICAgICA2XHRcbiAgICAgN1x0dHlwZSBQcm9wcyA9IHtcbiAgICAgOFx0ICBtZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgICAgOVx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDEwXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAxMVx0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAxMlx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAxM1x0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMTRcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAxN1x0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAxOFx0fTtcbiAgICAxOVx0XG4gICAgMjBcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnIzNCODFGNic7XG4gICAgMjFcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnI2ZmZmZmZic7XG4gICAgMjJcdGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IDE2O1xuLi4uXG5QYXRoOiBzcmMvQnViYmxlQ2hhdC50c3hcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJ2NtY3RzLWMtYWdlbnQtZW1iZWRkaW5nJ1xuICAgICAyXHRpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG4gICAgIDNcdFxuICAgICA0XHR0eXBlIFByb3BzID0gQnViYmxlUHJvcHNcbiAgICAgNVx0XG4gICAgIDZcdGRlY2xhcmUgZ2xvYmFsIHtcbiAgICAgN1x0ICBuYW1lc3BhY2UgSlNYIHtcbiAgICAgOFx0ICAgIGludGVyZmFjZSBJbnRyaW5zaWNFbGVtZW50cyB7XG4gICAgIDlcdCAgICAgICdmbG93aXNlLWNoYXRib3QnOiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcbiAgICAxMFx0ICAgICAgICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD4sXG4gICAgMTFcdCAgICAgICAgSFRNTEVsZW1lbnRcbiAgICAxMlx0ICAgICAgPlxuICAgIDEzXHQgICAgfVxuICAgIDE0XHQgIH1cbiAgICAxNVx0fVxuICAgIDE2XHRcbiAgICAxN1x0dHlwZSBCdWJibGVFbGVtZW50ID0gSFRNTEVsZW1lbnQgJiBQcm9wc1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9Cb3QudHN4XG4gICAgIDFcdGltcG9ydCB7IEF2YXRhciB9IGZyb20gJ0AvY29tcG9uZW50cy9hdmF0YXJzL0F2YXRhcic7XG4gICAgIDJcdGltcG9ydCB7IEZvbGxvd1VwUHJvbXB0QnViYmxlIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1YmJsZXMvRm9sbG93VXBQcm9tcHRCdWJibGUnO1xuICAgICAzXHRpbXBvcnQgeyBMZWFkQ2FwdHVyZUJ1YmJsZSB9IGZyb20gJ0AvY29tcG9uZW50cy9idWJibGVzL0xlYWRDYXB0dXJlQnViYmxlJztcbiAgICAgNFx0aW1wb3J0IHsgRGVsZXRlQnV0dG9uLCBTZW5kQnV0dG9uIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1dHRvbnMvU2VuZEJ1dHRvbic7XG4gICAgIDVcdGltcG9ydCB7IEZpbGVQcmV2aWV3IH0gZnJvbSAnQC9jb21wb25lbnRzL2lucHV0cy90ZXh0SW5wdXQvY29tcG9uZW50cy9GaWxlUHJldmlldyc7XG4gICAgIDZcdGltcG9ydCB7XG4gICAgIDdcdCAgQm90TWVzc2FnZVRoZW1lLFxuICAgICA4XHQgIERhdGVUaW1lVG9nZ2xlVGhlbWUsXG4gICAgIDlcdCAgRGlzY2xhaW1lclBvcFVwVGhlbWUsXG4gICAgMTBcdCAgRmVlZGJhY2tUaGVtZSxcbiAgICAxMVx0ICBGb290ZXJUaGVtZSxcbiAgICAxMlx0ICBUZXh0SW5wdXRUaGVtZSxcbiAgICAxM1x0ICBVc2VyTWVzc2FnZVRoZW1lLFxuICAgIDE0XHR9IGZyb20gJ0AvZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAxNVx0aW1wb3J0IHsgRGlzY2xhaW1lclBvcHVwLCBQb3B1cCB9IGZyb20gJ0AvZmVhdHVyZXMvcG9wdXAnO1xuICAgIDE2XHRpbXBvcnQge1xuICAgIDE3XHQgIGNyZWF0ZUF0dGFjaG1lbnRXaXRoRm9ybURhdGEsXG4gICAgMThcdCAgRmVlZGJhY2tSYXRpbmdUeXBlLFxuICAgIDE5XHQgIGdldENoYXRib3RDb25maWcsXG4gICAgMjBcdCAgZ2V0RmlsZUNvbnRlbnQsXG4gICAgMjFcdCAgZ2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UsXG4gICAgMjJcdCAgSW5jb21pbmdJbnB1dCxcbiAgICAyM1x0ICBpc1N0cmVhbUF2YWlsYWJsZVF1ZXJ5LFxuLi4uXG4gICAxMzBcdFxuICAgMTMxXHRleHBvcnQgdHlwZSBCb3RQcm9wcyA9IHtcbiAgIDEzMlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAxMzNcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgIDEzNFx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAxMzVcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgIDEzNlx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgIDEzN1x0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM4XHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOVx0ICBib3RNZXNzYWdlPzogQm90TWVzc2FnZVRoZW1lO1xuICAgMTQwXHQgIHVzZXJNZXNzYWdlPzogVXNlck1lc3NhZ2VUaGVtZTtcbiAgIDE0MVx0ICB0ZXh0SW5wdXQ/OiBUZXh0SW5wdXRUaGVtZTtcbiAgIDE0Mlx0ICBmZWVkYmFjaz86IEZlZWRiYWNrVGhlbWU7XG4gICAxNDNcdCAgcG93ZXJlZEJ5VGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ0XHQgIGJhZGdlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ1XHQgIGJ1YmJsZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0Nlx0ICBidWJibGVUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDdcdCAgc2hvd1RpdGxlPzogYm9vbGVhbjtcbiAgIDE0OFx0ICBzaG93QWdlbnRNZXNzYWdlcz86IGJvb2xlYW47XG4gICAxNDlcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAxNTBcdCAgdGl0bGVBdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAxNTFcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAxNTJcdCAgaXNGdWxsUGFnZT86IGJvb2xlYW47XG4gICAxNTNcdCAgZm9vdGVyPzogRm9vdGVyVGhlbWU7XG4gICAxNTRcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgMTU1XHQgIG9ic2VydmVyc0NvbmZpZz86IG9ic2VydmVyc0NvbmZpZ1R5cGU7XG4gICAxNTZcdCAgc3RhcnRlclByb21wdHM/OiBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHsgcHJvbXB0OiBzdHJpbmcgfT47XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUudHN4XG4uLi5cbiAgIDEwN1x0ICAgICAgPlxuICAgMTA4XHQgICAgICAgIDxTaG93IHdoZW49e2lzQm90U3RhcnRlZCgpfT5cbiAgIDEwOVx0ICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBoLWZ1bGxcIj5cbiAgIDExMFx0ICAgICAgICAgICAgPFNob3cgd2hlbj17aXNCb3RPcGVuZWQoKX0+XG4gICAxMTFcdCAgICAgICAgICAgICAgey8qIENyb3NzIGJ1dHRvbiBGb3Igb25seSBtb2JpbGUgc2NyZWVuIHVzZSB0aGlzIDxTaG93IHdoZW49e2lzQm90T3BlbmVkKCkgJiYgd2luZG93LmlubmVyV2lkdGggPD0gNjQwfT4gICovfVxuICAgMTEyXHQgICAgICAgICAgICAgIDxidXR0b25cbiAgIDExM1x0ICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2Nsb3NlQm90fVxuICAgMTE0XHQgICAgICAgICAgICAgICAgY2xhc3M9XCJweS0yIHByLTMgYWJzb2x1dGUgdG9wLTAgcmlnaHQtWy04cHhdIG0tWzZweF0gYmctdHJhbnNwYXJlbnQgdGV4dC13aGl0ZSByb3VuZGVkLWZ1bGwgei01MCBkaXNhYmxlZDpvcGFjaXR5LTUwIGRpc2FibGVkOmN1cnNvci1ub3QtYWxsb3dlZCBkaXNhYmxlZDpicmlnaHRuZXNzLTEwMCB0cmFuc2l0aW9uLWFsbCBmaWx0ZXIgaG92ZXI6YnJpZ2h0bmVzcy05MCBhY3RpdmU6YnJpZ2h0bmVzcy03NVwiXG4gICAxMTVcdCAgICAgICAgICAgICAgICB0aXRsZT1cIkNsb3NlIENoYXRcIlxuICAgMTE2XHQgICAgICAgICAgICAgID5cbiAgIDExN1x0ICAgICAgICAgICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPlxuICAgMTE4XHQgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgMTE5XHQgICAgICAgICAgICAgICAgICAgIGZpbGw9e2J1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/Lmljb25Db2xvciA/PyBkZWZhdWx0SWNvbkNvbG9yfVxuICAgMTIwXHQgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyIDE5IDYuNDF6XCJcbiAgIDEyMVx0ICAgICAgICAgICAgICAgICAgLz5cbiAgIDEyMlx0ICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgMTIzXHQgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgMTI0XHQgICAgICAgICAgICA8L1Nob3c+XG4gICAxMjVcdCAgICAgICAgICAgIDxCb3Rcbi4uLlxuICAgMTM3XHQgICAgICAgICAgICAgIHRleHRJbnB1dD17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnRleHRJbnB1dH1cbiAgIDEzOFx0ICAgICAgICAgICAgICBib3RNZXNzYWdlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uYm90TWVzc2FnZX1cbiAgIDEzOVx0ICAgICAgICAgICAgICB1c2VyTWVzc2FnZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnVzZXJNZXNzYWdlfVxuICAgMTQwXHQgICAgICAgICAgICAgIGZlZWRiYWNrPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZmVlZGJhY2t9XG4gICAxNDFcdCAgICAgICAgICAgICAgZm9udFNpemU9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5mb250U2l6ZX1cbiAgIDE0Mlx0ICAgICAgICAgICAgICBmb290ZXI9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5mb290ZXJ9XG4gICAxNDNcdCAgICAgICAgICAgICAgc291cmNlRG9jc1RpdGxlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc291cmNlRG9jc1RpdGxlfVxuICAgMTQ0XHQgICAgICAgICAgICAgIHN0YXJ0ZXJQcm9tcHRzPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc3RhcnRlclByb21wdHN9XG4gICAxNDVcdCAgICAgICAgICAgICAgc3RhcnRlclByb21wdEZvbnRTaXplPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc3RhcnRlclByb21wdEZvbnRTaXplfVxuICAgMTQ2XHQgICAgICAgICAgICAgIGNoYXRmbG93aWQ9e3Byb3BzLmNoYXRmbG93aWR9XG4gICAxNDdcdCAgICAgICAgICAgICAgY2hhdGZsb3dDb25maWc9e3Byb3BzLmNoYXRmbG93Q29uZmlnfVxuICAgMTQ4XHQgICAgICAgICAgICAgIGFwaUhvc3Q9e3Byb3BzLmFwaUhvc3R9XG4gICAxNDlcdCAgICAgICAgICAgICAgb25SZXF1ZXN0PXtwcm9wcy5vblJlcXVlc3R9XG4gICAxNTBcdCAgICAgICAgICAgICAgb2JzZXJ2ZXJzQ29uZmlnPXtwcm9wcy5vYnNlcnZlcnNDb25maWd9XG4gICAxNTFcdCAgICAgICAgICAgICAgY2xlYXJDaGF0T25SZWxvYWQ9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5jbGVhckNoYXRPblJlbG9hZH1cbiAgIDE1Mlx0ICAgICAgICAgICAgICBkaXNjbGFpbWVyPXtidWJibGVQcm9wcy50aGVtZT8uZGlzY2xhaW1lcn1cbiAgIDE1M1x0ICAgICAgICAgICAgICBkYXRlVGltZVRvZ2dsZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmRhdGVUaW1lVG9nZ2xlfVxuICAgMTU0XHQgICAgICAgICAgICAgIHJlbmRlckhUTUw9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5yZW5kZXJIVE1MfVxuICAgMTU1XHQgICAgICAgICAgICAgIGNoYXR3b290VXJsPXtwcm9wcy5jaGF0d29vdFVybH1cbiAgIDE1Nlx0ICAgICAgICAgICAgICByb29tSWRzPXtwcm9wcy5yb29tSWRzfVxuICAgMTU3XHQgICAgICAgICAgICAgIGlzVXNlRkFRPXtwcm9wcy5pc1VzZUZBUX1cbiAgIDE1OFx0ICAgICAgICAgICAgICBmaWxlUGF0aD17cHJvcHMuZmlsZVBhdGh9XG4gICAxNTlcdCAgICAgICAgICAgICAgc3VnZ2VzdFF1ZXN0aW9ucz17cHJvcHMuc3VnZ2VzdFF1ZXN0aW9uc31cbiAgIDE2MFx0ICAgICAgICAgICAgICBleHRlcm5hbERhdGE9e3Byb3BzLmV4dGVybmFsRGF0YX1cbiAgIDE2MVx0ICAgICAgICAgICAgICBjYWxsQmFja0Z1bmN0aW9uPXtwcm9wcy5jYWxsQmFja0Z1bmN0aW9ufVxuICAgMTYyXHQgICAgICAgICAgICAgIGNhbGxCYWNrSWNvbj17cHJvcHMuY2FsbEJhY2tJY29ufVxuICAgMTYzXHQgICAgICAgICAgICAvPlxuICAgMTY0XHQgICAgICAgICAgPC9kaXY+XG4gICAxNjVcdCAgICAgICAgPC9TaG93PlxuICAgMTY2XHQgICAgICA8L2Rpdj5cbiAgIDE2N1x0ICAgIDwvPlxuICAgMTY4XHQgICk7XG4gICAxNjlcdH07XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9mdWxsL2NvbXBvbmVudHMvRnVsbC50c3hcbi4uLlxuICAgIDEwXHRcbiAgICAxMVx0ZXhwb3J0IGNvbnN0IEZ1bGwgPSAocHJvcHM6IEZ1bGxQcm9wcywgeyBlbGVtZW50IH06IHsgZWxlbWVudDogSFRNTEVsZW1lbnQgfSkgPT4ge1xuICAgIDEyXHQgIGNvbnN0IFtpc0JvdERpc3BsYXllZCwgc2V0SXNCb3REaXNwbGF5ZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgICAxM1x0XG4gICAgMTRcdCAgY29uc3QgbGF1bmNoQm90ID0gKCkgPT4ge1xuICAgIDE1XHQgICAgc2V0SXNCb3REaXNwbGF5ZWQodHJ1ZSk7XG4gICAgMTZcdCAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpbiA9ICcwJzsgLy8gRW5zdXJlIG5vIG1hcmdpblxuICAgIDE3XHQgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnBhZGRpbmcgPSAnMCc7IC8vIEVuc3VyZSBubyBwYWRkaW5nXG4gICAgMThcdFxuICAgIDE5XHQgICAgLy8gU2V0IHZpZXdwb3J0IG1ldGEgdGFnIGR5bmFtaWNhbGx5XG4gICAgMjBcdCAgICBjb25zdCB2aWV3cG9ydE1ldGEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9XCJ2aWV3cG9ydFwiXScpO1xuICAgIDIxXHQgICAgaWYgKHZpZXdwb3J0TWV0YSkge1xuICAgIDIyXHQgICAgICB2aWV3cG9ydE1ldGEuc2V0QXR0cmlidXRlKCdjb250ZW50JywgJ3dpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAsIGludGVyYWN0aXZlLXdpZGdldD1yZXNpemVzLWNvbnRlbnQnKTtcbiAgICAyM1x0ICAgIH1cbiAgICAyNFx0ICB9O1xuICAgIDI1XHRcbiAgICAyNlx0ICBjb25zdCBib3RMYXVuY2hlck9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChpbnRlcnNlY3Rpb25zKSA9PiB7XG4gICAgMjdcdCAgICBpZiAoaW50ZXJzZWN0aW9ucy5zb21lKChpbnRlcnNlY3Rpb24pID0+IGludGVyc2VjdGlvbi5pc0ludGVyc2VjdGluZykpIGxhdW5jaEJvdCgpO1xuICAgIDI4XHQgIH0pO1xuLi4uXG4gICAgNjFcdCAgICAgICAgPlxuICAgIDYyXHQgICAgICAgICAgPEJvdFxuICAgIDYzXHQgICAgICAgICAgICBiYWRnZUJhY2tncm91bmRDb2xvcj17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmJhY2tncm91bmRDb2xvcn1cbiAgICA2NFx0ICAgICAgICAgICAgYnViYmxlQmFja2dyb3VuZENvbG9yPXtwcm9wcy50aGVtZT8uYnV0dG9uPy5iYWNrZ3JvdW5kQ29sb3IgPz8gZGVmYXVsdEJ1dHRvbkNvbG9yfVxuICAgIDY1XHQgICAgICAgICAgICBidWJibGVUZXh0Q29sb3I9e3Byb3BzLnRoZW1lPy5idXR0b24/Lmljb25Db2xvciA/PyBkZWZhdWx0SWNvbkNvbG9yfVxuICAgIDY2XHQgICAgICAgICAgICBzaG93VGl0bGU9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zaG93VGl0bGV9XG4gICAgNjdcdCAgICAgICAgICAgIHNob3dBZ2VudE1lc3NhZ2VzPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc2hvd0FnZW50TWVzc2FnZXN9XG4gICAgNjhcdCAgICAgICAgICAgIHRpdGxlPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udGl0bGV9XG4gICAgNjlcdCAgICAgICAgICAgIHRpdGxlQXZhdGFyU3JjPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udGl0bGVBdmF0YXJTcmN9XG4gICAgNzBcdCAgICAgICAgICAgIHdlbGNvbWVNZXNzYWdlPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8ud2VsY29tZU1lc3NhZ2V9XG4gICAgNzFcdCAgICAgICAgICAgIHNlY29uZE1lc3NhZ2U9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zZWNvbmRNZXNzYWdlfVxuICAgIDcyXHQgICAgICAgICAgICBlcnJvck1lc3NhZ2U9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5lcnJvck1lc3NhZ2V9XG4gICAgNzNcdCAgICAgICAgICAgIHBvd2VyZWRCeVRleHRDb2xvcj17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnBvd2VyZWRCeVRleHRDb2xvcn1cbiAgICA3NFx0ICAgICAgICAgICAgdGV4dElucHV0PXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udGV4dElucHV0fVxuICAgIDc1XHQgICAgICAgICAgICBib3RNZXNzYWdlPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uYm90TWVzc2FnZX1cbiAgICA3Nlx0ICAgICAgICAgICAgdXNlck1lc3NhZ2U9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py51c2VyTWVzc2FnZX1cbiAgICA3N1x0ICAgICAgICAgICAgZmVlZGJhY2s9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5mZWVkYmFja31cbiAgICA3OFx0ICAgICAgICAgICAgZm9udFNpemU9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5mb250U2l6ZX1cbiAgICA3OVx0ICAgICAgICAgICAgZm9vdGVyPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZm9vdGVyfVxuICAgIDgwXHQgICAgICAgICAgICBzdGFydGVyUHJvbXB0cz17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnN0YXJ0ZXJQcm9tcHRzfVxuICAgIDgxXHQgICAgICAgICAgICBjaGF0Zmxvd2lkPXtwcm9wcy5jaGF0Zmxvd2lkfVxuICAgIDgyXHQgICAgICAgICAgICBjaGF0Zmxvd0NvbmZpZz17cHJvcHMuY2hhdGZsb3dDb25maWd9XG4gICAgODNcdCAgICAgICAgICAgIGFwaUhvc3Q9e3Byb3BzLmFwaUhvc3R9XG4gICAgODRcdCAgICAgICAgICAgIG9uUmVxdWVzdD17cHJvcHMub25SZXF1ZXN0fVxuICAgIDg1XHQgICAgICAgICAgICBpc0Z1bGxQYWdlPXt0cnVlfVxuICAgIDg2XHQgICAgICAgICAgICBvYnNlcnZlcnNDb25maWc9e3Byb3BzLm9ic2VydmVyc0NvbmZpZ31cbiAgICA4N1x0ICAgICAgICAgICAgc3RhcnRlclByb21wdEZvbnRTaXplPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc3RhcnRlclByb21wdEZvbnRTaXplfVxuICAgIDg4XHQgICAgICAgICAgICBjbGVhckNoYXRPblJlbG9hZD17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmNsZWFyQ2hhdE9uUmVsb2FkfVxuICAgIDg5XHQgICAgICAgICAgICBkaXNjbGFpbWVyPXtwcm9wcy50aGVtZT8uZGlzY2xhaW1lcn1cbiAgICA5MFx0ICAgICAgICAgICAgZGF0ZVRpbWVUb2dnbGU9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5kYXRlVGltZVRvZ2dsZX1cbiAgICA5MVx0ICAgICAgICAgICAgcmVuZGVySFRNTD17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnJlbmRlckhUTUx9XG4gICAgOTJcdCAgICAgICAgICAgIGNoYXR3b290VXJsPXtwcm9wcy5jaGF0d29vdFVybH1cbiAgICA5M1x0ICAgICAgICAgICAgcm9vbUlkcz17cHJvcHMucm9vbUlkc31cbi4uLlxuIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiZTA2YjQ1ODctYjdhNS00YjUxLTkzMzMtNjNlMDZhNjI4NTk1O3Rvb2x1X3ZydHhfMDFZNG5LTEFEZlV3WHZtQ0hUVk0zYlk4Ijp7InJlcXVlc3RJZCI6ImUwNmI0NTg3LWI3YTUtNGI1MS05MzMzLTYzZTA2YTYyODU5NSIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFZNG5LTEFEZlV3WHZtQ0hUVk0zYlk4IiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiTm90ZTpcblZpZXcgcmFuZ2UgZXhwYW5kZWQgdG8gbWVldCBtaW5pbXVtIHNpemUgb2YgNTAwIGxpbmVzLiBOZXcgcmFuZ2U6IFsxLCA1MDBdLlxuXG5IZXJlJ3MgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGBjYXQgLW5gIG9uIHNyYy9jb21wb25lbnRzL0JvdC50c3g6XG4gICAgIDFcdGltcG9ydCB7IEF2YXRhciB9IGZyb20gJ0AvY29tcG9uZW50cy9hdmF0YXJzL0F2YXRhcic7XG4gICAgIDJcdGltcG9ydCB7IEZvbGxvd1VwUHJvbXB0QnViYmxlIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1YmJsZXMvRm9sbG93VXBQcm9tcHRCdWJibGUnO1xuICAgICAzXHRpbXBvcnQgeyBMZWFkQ2FwdHVyZUJ1YmJsZSB9IGZyb20gJ0AvY29tcG9uZW50cy9idWJibGVzL0xlYWRDYXB0dXJlQnViYmxlJztcbiAgICAgNFx0aW1wb3J0IHsgRGVsZXRlQnV0dG9uLCBTZW5kQnV0dG9uIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1dHRvbnMvU2VuZEJ1dHRvbic7XG4gICAgIDVcdGltcG9ydCB7IEZpbGVQcmV2aWV3IH0gZnJvbSAnQC9jb21wb25lbnRzL2lucHV0cy90ZXh0SW5wdXQvY29tcG9uZW50cy9GaWxlUHJldmlldyc7XG4gICAgIDZcdGltcG9ydCB7XG4gICAgIDdcdCAgQm90TWVzc2FnZVRoZW1lLFxuICAgICA4XHQgIERhdGVUaW1lVG9nZ2xlVGhlbWUsXG4gICAgIDlcdCAgRGlzY2xhaW1lclBvcFVwVGhlbWUsXG4gICAgMTBcdCAgRmVlZGJhY2tUaGVtZSxcbiAgICAxMVx0ICBGb290ZXJUaGVtZSxcbiAgICAxMlx0ICBUZXh0SW5wdXRUaGVtZSxcbiAgICAxM1x0ICBVc2VyTWVzc2FnZVRoZW1lLFxuICAgIDE0XHR9IGZyb20gJ0AvZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAxNVx0aW1wb3J0IHsgRGlzY2xhaW1lclBvcHVwLCBQb3B1cCB9IGZyb20gJ0AvZmVhdHVyZXMvcG9wdXAnO1xuICAgIDE2XHRpbXBvcnQge1xuICAgIDE3XHQgIGNyZWF0ZUF0dGFjaG1lbnRXaXRoRm9ybURhdGEsXG4gICAgMThcdCAgRmVlZGJhY2tSYXRpbmdUeXBlLFxuICAgIDE5XHQgIGdldENoYXRib3RDb25maWcsXG4gICAgMjBcdCAgZ2V0RmlsZUNvbnRlbnQsXG4gICAgMjFcdCAgZ2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UsXG4gICAgMjJcdCAgSW5jb21pbmdJbnB1dCxcbiAgICAyM1x0ICBpc1N0cmVhbUF2YWlsYWJsZVF1ZXJ5LFxuICAgIDI0XHQgIHNlbmRNZXNzYWdlUXVlcnksXG4gICAgMjVcdCAgdXBzZXJ0VmVjdG9yU3RvcmVXaXRoRm9ybURhdGEsXG4gICAgMjZcdH0gZnJvbSAnQC9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnknO1xuICAgIDI3XHRpbXBvcnQgeyBnZXRDb29raWUsIGdldExvY2FsU3RvcmFnZUNoYXRmbG93LCByZW1vdmVMb2NhbFN0b3JhZ2VDaGF0SGlzdG9yeSwgc2V0Q29va2llLCBzZXRMb2NhbFN0b3JhZ2VDaGF0ZmxvdyB9IGZyb20gJ0AvdXRpbHMnO1xuICAgIDI4XHRpbXBvcnQgeyBjYW5jZWxBdWRpb1JlY29yZGluZywgc3RhcnRBdWRpb1JlY29yZGluZywgc3RvcEF1ZGlvUmVjb3JkaW5nIH0gZnJvbSAnQC91dGlscy9hdWRpb1JlY29yZGluZyc7XG4gICAgMjlcdGltcG9ydCB7IEV2ZW50U3RyZWFtQ29udGVudFR5cGUsIGZldGNoRXZlbnRTb3VyY2UgfSBmcm9tICdAbWljcm9zb2Z0L2ZldGNoLWV2ZW50LXNvdXJjZSc7XG4gICAgMzBcdGltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG4gICAgMzFcdGltcG9ydCB7IGNyZWF0ZUVmZmVjdCwgY3JlYXRlTWVtbywgY3JlYXRlU2lnbmFsLCBGb3IsIG1lcmdlUHJvcHMsIG9uLCBvbk1vdW50LCBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgIDMyXHRpbXBvcnQgeyB2NCwgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG4gICAgMzNcdGltcG9ydCB7IEJhZGdlIH0gZnJvbSAnLi9CYWRnZSc7XG4gICAgMzRcdGltcG9ydCB7IEJvdEJ1YmJsZSB9IGZyb20gJy4vYnViYmxlcy9Cb3RCdWJibGUnO1xuICAgIDM1XHRpbXBvcnQgeyBHdWVzdEJ1YmJsZSB9IGZyb20gJy4vYnViYmxlcy9HdWVzdEJ1YmJsZSc7XG4gICAgMzZcdGltcG9ydCB7IExvYWRpbmdCdWJibGUgfSBmcm9tICcuL2J1YmJsZXMvTG9hZGluZ0J1YmJsZSc7XG4gICAgMzdcdGltcG9ydCB7IFN0YXJ0ZXJQcm9tcHRCdWJibGUgfSBmcm9tICcuL2J1YmJsZXMvU3RhcnRlclByb21wdEJ1YmJsZSc7XG4gICAgMzhcdGltcG9ydCB7IENhbmNlbEJ1dHRvbiB9IGZyb20gJy4vYnV0dG9ucy9DYW5jZWxCdXR0b24nO1xuICAgIDM5XHRpbXBvcnQgeyBDaXJjbGVEb3RJY29uLCBTcGFya2xlc0ljb24sIFRyYXNoSWNvbiB9IGZyb20gJy4vaWNvbnMnO1xuICAgIDQwXHRpbXBvcnQgeyBUZXh0SW5wdXQgfSBmcm9tICcuL2lucHV0cy90ZXh0SW5wdXQnO1xuICAgIDQxXHRpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuICAgIDQyXHRpbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4vVG9hc3QnO1xuICAgIDQzXHRcbiAgICA0NFx0ZXhwb3J0IHR5cGUgRmlsZUV2ZW50PFQgPSBFdmVudFRhcmdldD4gPSB7XG4gICAgNDVcdCAgdGFyZ2V0OiBUO1xuICAgIDQ2XHR9O1xuICAgIDQ3XHRcbiAgICA0OFx0ZXhwb3J0IHR5cGUgRm9ybUV2ZW50PFQgPSBFdmVudFRhcmdldD4gPSB7XG4gICAgNDlcdCAgcHJldmVudERlZmF1bHQ6ICgpID0+IHZvaWQ7XG4gICAgNTBcdCAgY3VycmVudFRhcmdldDogVDtcbiAgICA1MVx0fTtcbiAgICA1Mlx0XG4gICAgNTNcdHR5cGUgSVVwbG9hZENvbnN0cmFpdHMgPSB7XG4gICAgNTRcdCAgZmlsZVR5cGVzOiBzdHJpbmdbXTtcbiAgICA1NVx0ICBtYXhVcGxvYWRTaXplOiBudW1iZXI7XG4gICAgNTZcdH07XG4gICAgNTdcdFxuICAgIDU4XHRleHBvcnQgdHlwZSBVcGxvYWRzQ29uZmlnID0ge1xuICAgIDU5XHQgIGltZ1VwbG9hZFNpemVBbmRUeXBlczogSVVwbG9hZENvbnN0cmFpdHNbXTtcbiAgICA2MFx0ICBmaWxlVXBsb2FkU2l6ZUFuZFR5cGVzOiBJVXBsb2FkQ29uc3RyYWl0c1tdO1xuICAgIDYxXHQgIGlzSW1hZ2VVcGxvYWRBbGxvd2VkOiBib29sZWFuO1xuICAgIDYyXHQgIGlzU3BlZWNoVG9UZXh0RW5hYmxlZDogYm9vbGVhbjtcbiAgICA2M1x0ICBpc1JBR0ZpbGVVcGxvYWRBbGxvd2VkOiBib29sZWFuO1xuICAgIDY0XHR9O1xuICAgIDY1XHRcbiAgICA2Nlx0dHlwZSBGaWxlUHJldmlld0RhdGEgPSBzdHJpbmcgfCBBcnJheUJ1ZmZlcjtcbiAgICA2N1x0XG4gICAgNjhcdHR5cGUgRmlsZVByZXZpZXcgPSB7XG4gICAgNjlcdCAgZGF0YTogRmlsZVByZXZpZXdEYXRhO1xuICAgIDcwXHQgIG1pbWU6IHN0cmluZztcbiAgICA3MVx0ICBuYW1lOiBzdHJpbmc7XG4gICAgNzJcdCAgcHJldmlldzogc3RyaW5nO1xuICAgIDczXHQgIHR5cGU6IHN0cmluZztcbiAgICA3NFx0fTtcbiAgICA3NVx0XG4gICAgNzZcdHR5cGUgbWVzc2FnZVR5cGUgPSAnYXBpTWVzc2FnZScgfCAndXNlck1lc3NhZ2UnIHwgJ3VzZXJtZXNzYWdld2FpdGluZycgfCAnbGVhZENhcHR1cmVNZXNzYWdlJztcbiAgICA3N1x0XG4gICAgNzhcdGV4cG9ydCB0eXBlIElBZ2VudFJlYXNvbmluZyA9IHtcbiAgICA3OVx0ICBhZ2VudE5hbWU/OiBzdHJpbmc7XG4gICAgODBcdCAgbWVzc2FnZXM/OiBzdHJpbmdbXTtcbiAgICA4MVx0ICB1c2VkVG9vbHM/OiBhbnlbXTtcbiAgICA4Mlx0ICBhcnRpZmFjdHM/OiBGaWxlVXBsb2FkW107XG4gICAgODNcdCAgc291cmNlRG9jdW1lbnRzPzogYW55W107XG4gICAgODRcdCAgaW5zdHJ1Y3Rpb25zPzogc3RyaW5nO1xuICAgIDg1XHQgIG5leHRBZ2VudD86IHN0cmluZztcbiAgICA4Nlx0fTtcbiAgICA4N1x0XG4gICAgODhcdGV4cG9ydCB0eXBlIElBY3Rpb24gPSB7XG4gICAgODlcdCAgaWQ/OiBzdHJpbmc7XG4gICAgOTBcdCAgZWxlbWVudHM/OiBBcnJheTx7XG4gICAgOTFcdCAgICB0eXBlOiBzdHJpbmc7XG4gICAgOTJcdCAgICBsYWJlbDogc3RyaW5nO1xuICAgIDkzXHQgIH0+O1xuICAgIDk0XHQgIG1hcHBpbmc/OiB7XG4gICAgOTVcdCAgICBhcHByb3ZlOiBzdHJpbmc7XG4gICAgOTZcdCAgICByZWplY3Q6IHN0cmluZztcbiAgICA5N1x0ICAgIHRvb2xDYWxsczogYW55W107XG4gICAgOThcdCAgfTtcbiAgICA5OVx0fTtcbiAgIDEwMFx0XG4gICAxMDFcdGV4cG9ydCB0eXBlIEZpbGVVcGxvYWQgPSBPbWl0PEZpbGVQcmV2aWV3LCAncHJldmlldyc+O1xuICAgMTAyXHRcbiAgIDEwM1x0ZXhwb3J0IHR5cGUgTWVzc2FnZVR5cGUgPSB7XG4gICAxMDRcdCAgbWVzc2FnZUlkPzogc3RyaW5nO1xuICAgMTA1XHQgIG1lc3NhZ2U6IHN0cmluZztcbiAgIDEwNlx0ICB0eXBlOiBtZXNzYWdlVHlwZTtcbiAgIDEwN1x0ICBzb3VyY2VEb2N1bWVudHM/OiBhbnk7XG4gICAxMDhcdCAgZmlsZUFubm90YXRpb25zPzogYW55O1xuICAgMTA5XHQgIGZpbGVVcGxvYWRzPzogUGFydGlhbDxGaWxlVXBsb2FkPltdO1xuICAgMTEwXHQgIGFydGlmYWN0cz86IFBhcnRpYWw8RmlsZVVwbG9hZD5bXTtcbiAgIDExMVx0ICBhZ2VudFJlYXNvbmluZz86IElBZ2VudFJlYXNvbmluZ1tdO1xuICAgMTEyXHQgIHVzZWRUb29scz86IGFueVtdO1xuICAgMTEzXHQgIGFjdGlvbj86IElBY3Rpb24gfCBudWxsO1xuICAgMTE0XHQgIHJhdGluZz86IEZlZWRiYWNrUmF0aW5nVHlwZTtcbiAgIDExNVx0ICBpZD86IHN0cmluZztcbiAgIDExNlx0ICBmb2xsb3dVcFByb21wdHM/OiBzdHJpbmc7XG4gICAxMTdcdCAgZGF0ZVRpbWU/OiBzdHJpbmc7XG4gICAxMThcdH07XG4gICAxMTlcdFxuICAgMTIwXHR0eXBlIElVcGxvYWRzID0ge1xuICAgMTIxXHQgIGRhdGE6IEZpbGVQcmV2aWV3RGF0YTtcbiAgIDEyMlx0ICB0eXBlOiBzdHJpbmc7XG4gICAxMjNcdCAgbmFtZTogc3RyaW5nO1xuICAgMTI0XHQgIG1pbWU6IHN0cmluZztcbiAgIDEyNVx0ICBmaWxlPzogYW55O1xuICAgMTI2XHR9W107XG4gICAxMjdcdFxuICAgMTI4XHR0eXBlIG9ic2VydmVyQ29uZmlnVHlwZSA9IChhY2Nlc3Nvcjogc3RyaW5nIHwgYm9vbGVhbiB8IG9iamVjdCB8IE1lc3NhZ2VUeXBlW10pID0+IHZvaWQ7XG4gICAxMjlcdGV4cG9ydCB0eXBlIG9ic2VydmVyc0NvbmZpZ1R5cGUgPSBSZWNvcmQ8J29ic2VydmVVc2VySW5wdXQnIHwgJ29ic2VydmVMb2FkaW5nJyB8ICdvYnNlcnZlTWVzc2FnZXMnLCBvYnNlcnZlckNvbmZpZ1R5cGU+O1xuICAgMTMwXHRcbiAgIDEzMVx0ZXhwb3J0IHR5cGUgQm90UHJvcHMgPSB7XG4gICAxMzJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgMTMzXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAxMzRcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgMTM1XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAxMzZcdCAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzdcdCAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOFx0ICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzlcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgIDE0MFx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAxNDFcdCAgdGV4dElucHV0PzogVGV4dElucHV0VGhlbWU7XG4gICAxNDJcdCAgZmVlZGJhY2s/OiBGZWVkYmFja1RoZW1lO1xuICAgMTQzXHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0NFx0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0NVx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDZcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ3XHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAxNDhcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgMTQ5XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTUwXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgMTUxXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgMTUyXHQgIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xuICAgMTUzXHQgIGZvb3Rlcj86IEZvb3RlclRoZW1lO1xuICAgMTU0XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgIDE1NVx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgMTU2XHQgIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCB7IHByb21wdDogc3RyaW5nIH0+O1xuICAgMTU3XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgIDE1OFx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAxNTlcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgMTYwXHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgIDE2MVx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgIDE2Mlx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgIDE2M1x0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgIDE2NFx0ICBpc1VzZUZBUT86IGJvb2xlYW47XG4gICAxNjVcdCAgZmlsZVBhdGg/OiBzdHJpbmc7XG4gICAxNjZcdCAgc3VnZ2VzdFF1ZXN0aW9ucz86IHN0cmluZztcbiAgIDE2N1x0ICBleHRlcm5hbERhdGE/OiBzdHJpbmc7XG4gICAxNjhcdCAgY2FsbEJhY2tGdW5jdGlvbj86IChlOiBhbnkpID0+IHZvaWQ7XG4gICAxNjlcdCAgY2FsbEJhY2tJY29uPzogc3RyaW5nO1xuICAgMTcwXHR9O1xuICAgMTcxXHRcbiAgIDE3Mlx0ZXhwb3J0IHR5cGUgTGVhZHNDb25maWcgPSB7XG4gICAxNzNcdCAgc3RhdHVzOiBib29sZWFuO1xuICAgMTc0XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTc1XHQgIG5hbWU/OiBib29sZWFuO1xuICAgMTc2XHQgIGVtYWlsPzogYm9vbGVhbjtcbiAgIDE3N1x0ICBwaG9uZT86IGJvb2xlYW47XG4gICAxNzhcdCAgc3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XG4gICAxNzlcdH07XG4gICAxODBcdFxuICAgMTgxXHRjb25zdCBkZWZhdWx0V2VsY29tZU1lc3NhZ2UgPSAnWGluIGNow6BvIHTDtGkgY8OzIHRo4buDIGdpw7pwIGfDrCBjaG8gYuG6oW4/JztcbiAgIDE4Mlx0Y29uc3Qgc3RhdHVzTXNnID0ge1xuICAgMTgzXHQgIDM6ICfEkGFuZyB44butIGzDvS4uLicsXG4gICAxODRcdCAgMTA6ICfEkGFuZyB04bqjaSBk4buvIGxp4buHdSwgdnVpIGzDsm5nIMSR4bujaS4uLicsXG4gICAxODVcdCAgNDA6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBo4buHIHRo4buRbmcgxJFhbmcgcXXDoSB04bqjaSwgdnVpIGzDsm5nIHRo4butIGzhuqFpIHNhdS4nLFxuICAgMTg2XHQgIDUwOiAnJyxcbiAgIDE4N1x0fTtcbiAgIDE4OFx0XG4gICAxODlcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZmZmZic7XG4gICAxOTBcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnIzMwMzIzNSc7XG4gICAxOTFcdFxuICAgMTkyXHRleHBvcnQgY29uc3QgQm90ID0gKGJvdFByb3BzOiBCb3RQcm9wcyAmIHsgY2xhc3M/OiBzdHJpbmcgfSkgPT4ge1xuICAgMTkzXHQgIC8vIHNldCBhIGRlZmF1bHQgdmFsdWUgZm9yIHNob3dUaXRsZSBpZiBub3Qgc2V0IGFuZCBtZXJnZSB3aXRoIG90aGVyIHByb3BzXG4gICAxOTRcdFxuICAgMTk1XHQgIGNvbnN0IHByb3BzID0gbWVyZ2VQcm9wcyh7IHNob3dUaXRsZTogdHJ1ZSB9LCBib3RQcm9wcyk7XG4gICAxOTZcdCAgbGV0IGNoYXRDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk3XHQgIGxldCBib3R0b21TcGFjZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk4XHQgIGxldCBib3RDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk5XHQgIGxldCBpbnRlcnZhbEN1cnJlbnRNc2c6IGFueTtcbiAgIDIwMFx0XG4gICAyMDFcdCAgY29uc3QgW3Nob3dTY3JvbGxCdXR0b24sIHNldFNob3dTY3JvbGxCdXR0b25dID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIwMlx0ICBjb25zdCBbdXNlcklucHV0LCBzZXRVc2VySW5wdXRdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIwM1x0ICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjA0XHQgIGNvbnN0IFtzb3VyY2VQb3B1cE9wZW4sIHNldFNvdXJjZVBvcHVwT3Blbl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjA1XHQgIGNvbnN0IFtzb3VyY2VQb3B1cFNyYywgc2V0U291cmNlUG9wdXBTcmNdID0gY3JlYXRlU2lnbmFsKHt9KTtcbiAgIDIwNlx0ICBjb25zdCBbY3VycmVudFN0YXR1c01zZywgc2V0Q3VycmVudFN0YXR1c01zZ10gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjA3XHQgIGNvbnN0IFtpc05ldHdvcmtFcnJvciwgc2V0SXNOZXR3b3JrRXJyb3JdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIwOFx0ICBjb25zdCBbbmV0d29ya0Vycm9yTWVzc2FnZSwgc2V0TmV0d29ya0Vycm9yTWVzc2FnZV0gPSBjcmVhdGVTaWduYWwoJycpO1xuICAgMjA5XHQgIGNvbnN0IFt1c2VyLCBzZXRVc2VyXSA9IGNyZWF0ZVNpZ25hbCh7IGlkOiAnJywgdXNlcm5hbWU6ICcnLCBlbWFpbDogJycgfSk7XG4gICAyMTBcdCAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSBjcmVhdGVTaWduYWw8TWVzc2FnZVR5cGVbXT4oXG4gICAyMTFcdCAgICBbXG4gICAyMTJcdCAgICAgIHtcbiAgIDIxM1x0ICAgICAgICBtZXNzYWdlOiBwcm9wcy53ZWxjb21lTWVzc2FnZSA/PyBkZWZhdWx0V2VsY29tZU1lc3NhZ2UsXG4gICAyMTRcdCAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnIGFzIG1lc3NhZ2VUeXBlLFxuICAgMjE1XHQgICAgICB9LFxuICAgMjE2XHQgICAgICAuLi4ocHJvcHMuc2Vjb25kTWVzc2FnZSA/IFt7IG1lc3NhZ2U6IHByb3BzLnNlY29uZE1lc3NhZ2UsIHR5cGU6ICdhcGlNZXNzYWdlJyBhcyBtZXNzYWdlVHlwZSB9XSA6IFtdKSxcbiAgIDIxN1x0ICAgIF0sXG4gICAyMThcdCAgICB7IGVxdWFsczogZmFsc2UgfSxcbiAgIDIxOVx0ICApO1xuICAgMjIwXHRcbiAgIDIyMVx0ICBjb25zdCBbaXNDaGF0Rmxvd0F2YWlsYWJsZVRvU3RyZWFtLCBzZXRJc0NoYXRGbG93QXZhaWxhYmxlVG9TdHJlYW1dID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIyMlx0ICBjb25zdCBbY2hhdElkLCBzZXRDaGF0SWRdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIyM1x0ICBjb25zdCBbaXNNZXNzYWdlU3RvcHBpbmcsIHNldElzTWVzc2FnZVN0b3BwaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyMjRcdCAgY29uc3QgW3N0YXJ0ZXJQcm9tcHRzLCBzZXRTdGFydGVyUHJvbXB0c10gPSBjcmVhdGVTaWduYWw8c3RyaW5nW10+KFtdLCB7IGVxdWFsczogZmFsc2UgfSk7XG4gICAyMjVcdCAgY29uc3QgW2NoYXRGZWVkYmFja1N0YXR1cywgc2V0Q2hhdEZlZWRiYWNrU3RhdHVzXSA9IGNyZWF0ZVNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gICAyMjZcdCAgY29uc3QgW2Z1bGxGaWxlVXBsb2FkLCBzZXRGdWxsRmlsZVVwbG9hZF0gPSBjcmVhdGVTaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICAgMjI3XHQgIGNvbnN0IFt1cGxvYWRzQ29uZmlnLCBzZXRVcGxvYWRzQ29uZmlnXSA9IGNyZWF0ZVNpZ25hbDxVcGxvYWRzQ29uZmlnPigpO1xuICAgMjI4XHQgIGNvbnN0IFtsZWFkc0NvbmZpZywgc2V0TGVhZHNDb25maWddID0gY3JlYXRlU2lnbmFsPExlYWRzQ29uZmlnPigpO1xuICAgMjI5XHQgIGNvbnN0IFtpc0xlYWRTYXZlZCwgc2V0SXNMZWFkU2F2ZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgIDIzMFx0ICBjb25zdCBbbGVhZEVtYWlsLCBzZXRMZWFkRW1haWxdID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIzMVx0ICBjb25zdCBbZGlzY2xhaW1lclBvcHVwT3Blbiwgc2V0RGlzY2xhaW1lclBvcHVwT3Blbl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjMyXHQgIGNvbnN0IFtkaXNhYmxlSW5wdXQsIHNldERpc2FibGVJbnB1dF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjMzXHQgIGNvbnN0IFtmaWxlU3VtbWFyeSwgc2V0RmlsZVN1bW1hcnldID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIzNFx0ICBjb25zdCBbZmlsZUNvbnRlbnQsIHNldEZpbGVDb250ZW50XSA9IGNyZWF0ZVNpZ25hbCgnJyk7XG4gICAyMzVcdCAgY29uc3QgW3N1Z2dlc3RRdWVzdGlvbiwgc2V0U3VnZ2VzdFF1ZXN0aW9uXSA9IGNyZWF0ZVNpZ25hbChbXSk7XG4gICAyMzZcdFxuICAgMjM3XHQgIC8vIGRyYWcgJiBkcm9wIGZpbGUgaW5wdXRcbiAgIDIzOFx0ICAvLyBUT0RPOiBmaXggdGhpcyB0eXBlXG4gICAyMzlcdCAgY29uc3QgW3ByZXZpZXdzLCBzZXRQcmV2aWV3c10gPSBjcmVhdGVTaWduYWw8RmlsZVByZXZpZXdbXT4oW10pO1xuICAgMjQwXHRcbiAgIDI0MVx0ICAvLyBhdWRpbyByZWNvcmRpbmdcbiAgIDI0Mlx0ICBjb25zdCBbZWxhcHNlZFRpbWUsIHNldEVsYXBzZWRUaW1lXSA9IGNyZWF0ZVNpZ25hbCgnMDA6MDAnKTtcbiAgIDI0M1x0ICBjb25zdCBbaXNSZWNvcmRpbmcsIHNldElzUmVjb3JkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDRcdCAgY29uc3QgW3JlY29yZGluZ05vdFN1cHBvcnRlZCwgc2V0UmVjb3JkaW5nTm90U3VwcG9ydGVkXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDVcdCAgY29uc3QgW2lzTG9hZGluZ1JlY29yZGluZywgc2V0SXNMb2FkaW5nUmVjb3JkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDZcdFxuICAgMjQ3XHQgIC8vIGZvbGxvdy11cCBwcm9tcHRzXG4gICAyNDhcdCAgY29uc3QgW2ZvbGxvd1VwUHJvbXB0c1N0YXR1cywgc2V0Rm9sbG93VXBQcm9tcHRzU3RhdHVzXSA9IGNyZWF0ZVNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gICAyNDlcdCAgY29uc3QgW2ZvbGxvd1VwUHJvbXB0cywgc2V0Rm9sbG93VXBQcm9tcHRzXSA9IGNyZWF0ZVNpZ25hbDxzdHJpbmdbXT4oW10pO1xuICAgMjUwXHRcbiAgIDI1MVx0ICAvLyBkcmFnICYgZHJvcFxuICAgMjUyXHQgIGNvbnN0IFtpc0RyYWdBY3RpdmUsIHNldElzRHJhZ0FjdGl2ZV0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjUzXHQgIGNvbnN0IFt1cGxvYWRlZEZpbGVzLCBzZXRVcGxvYWRlZEZpbGVzXSA9IGNyZWF0ZVNpZ25hbDx7IGZpbGU6IEZpbGU7IHR5cGU6IHN0cmluZyB9W10+KFtdKTtcbiAgIDI1NFx0XG4gICAyNTVcdCAgY3JlYXRlTWVtbygoKSA9PiB7XG4gICAyNTZcdCAgICBjb25zdCBjdXN0b21lcklkID0gKHByb3BzLmNoYXRmbG93Q29uZmlnPy52YXJzIGFzIGFueSk/LmN1c3RvbWVySWQ7XG4gICAyNTdcdCAgICBzZXRDaGF0SWQoY3VzdG9tZXJJZCA/IGAke2N1c3RvbWVySWQudG9TdHJpbmcoKX0rJHt1dWlkdjQoKX1gIDogdXVpZHY0KCkpO1xuICAgMjU4XHQgIH0pO1xuICAgMjU5XHRcbiAgIDI2MFx0ICBvbk1vdW50KCgpID0+IHtcbiAgIDI2MVx0ICAgIGlmIChib3RQcm9wcz8ub2JzZXJ2ZXJzQ29uZmlnKSB7XG4gICAyNjJcdCAgICAgIGNvbnN0IHsgb2JzZXJ2ZVVzZXJJbnB1dCwgb2JzZXJ2ZUxvYWRpbmcsIG9ic2VydmVNZXNzYWdlcyB9ID0gYm90UHJvcHMub2JzZXJ2ZXJzQ29uZmlnO1xuICAgMjYzXHQgICAgICB0eXBlb2Ygb2JzZXJ2ZVVzZXJJbnB1dCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgMjY0XHQgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb2xpZC9yZWFjdGl2aXR5XG4gICAyNjVcdCAgICAgICAgY3JlYXRlTWVtbygoKSA9PiB7XG4gICAyNjZcdCAgICAgICAgICBvYnNlcnZlVXNlcklucHV0KHVzZXJJbnB1dCgpKTtcbiAgIDI2N1x0ICAgICAgICB9KTtcbiAgIDI2OFx0ICAgICAgdHlwZW9mIG9ic2VydmVMb2FkaW5nID09PSAnZnVuY3Rpb24nICYmXG4gICAyNjlcdCAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbGlkL3JlYWN0aXZpdHlcbiAgIDI3MFx0ICAgICAgICBjcmVhdGVNZW1vKCgpID0+IHtcbiAgIDI3MVx0ICAgICAgICAgIG9ic2VydmVMb2FkaW5nKGxvYWRpbmcoKSk7XG4gICAyNzJcdCAgICAgICAgfSk7XG4gICAyNzNcdCAgICAgIHR5cGVvZiBvYnNlcnZlTWVzc2FnZXMgPT09ICdmdW5jdGlvbicgJiZcbiAgIDI3NFx0ICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29saWQvcmVhY3Rpdml0eVxuICAgMjc1XHQgICAgICAgIGNyZWF0ZU1lbW8oKCkgPT4ge1xuICAgMjc2XHQgICAgICAgICAgb2JzZXJ2ZU1lc3NhZ2VzKG1lc3NhZ2VzKCkpO1xuICAgMjc3XHQgICAgICAgIH0pO1xuICAgMjc4XHQgICAgfVxuICAgMjc5XHRcbiAgIDI4MFx0ICAgIGlmICghYm90dG9tU3BhY2VyKSByZXR1cm47XG4gICAyODFcdCAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgIDI4Mlx0ICAgICAgY2hhdENvbnRhaW5lcj8uc2Nyb2xsVG8oMCwgY2hhdENvbnRhaW5lci5zY3JvbGxIZWlnaHQpO1xuICAgMjgzXHQgICAgfSwgNTApO1xuICAgMjg0XHQgIH0pO1xuICAgMjg1XHRcbiAgIDI4Nlx0ICBjcmVhdGVFZmZlY3QoKCkgPT4ge1xuICAgMjg3XHQgICAgY29uc3QgY3VycmVudE1lc3NhZ2VzID0gbWVzc2FnZXMoKTtcbiAgIDI4OFx0XG4gICAyODlcdCAgICBjdXJyZW50TWVzc2FnZXM/LmZvckVhY2goKG1lc3NhZ2UpID0+IHtcbiAgIDI5MFx0ICAgICAgbWVzc2FnZS5hZ2VudFJlYXNvbmluZz8uZm9yRWFjaCgocmVhc29uOiBhbnkpID0+IHtcbiAgIDI5MVx0ICAgICAgICBpZiAocmVhc29uPy5zdGF0ZSkge1xuICAgMjkyXHQgICAgICAgICAgY29uc3QgeyBuYW1lLCBwaG9uZV9udW1iZXIsIGVtYWlsLCBpZCB9ID0gcmVhc29uLnN0YXRlO1xuICAgMjkzXHQgICAgICAgICAgY29uc3QgdXNlckluZm86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgIDI5NFx0ICAgICAgICAgIGlmIChuYW1lICYmIG5hbWUgIT09ICdOb25lJykge1xuICAgMjk1XHQgICAgICAgICAgICB1c2VySW5mby5uYW1lID0gbmFtZTtcbiAgIDI5Nlx0ICAgICAgICAgIH1cbiAgIDI5N1x0ICAgICAgICAgIGlmIChwaG9uZV9udW1iZXIgJiYgcGhvbmVfbnVtYmVyICE9PSAnTm9uZScpIHtcbiAgIDI5OFx0ICAgICAgICAgICAgdXNlckluZm8ucGhvbmVOdW1iZXIgPSBwaG9uZV9udW1iZXI7XG4gICAyOTlcdCAgICAgICAgICB9XG4gICAzMDBcdCAgICAgICAgICBpZiAoZW1haWwgJiYgZW1haWwgIT09ICdOb25lJykge1xuICAgMzAxXHQgICAgICAgICAgICB1c2VySW5mby5lbWFpbCA9IGVtYWlsO1xuICAgMzAyXHQgICAgICAgICAgfVxuICAgMzAzXHQgICAgICAgICAgaWYgKGlkICYmIGlkICE9PSAnTm9uZScpIHtcbiAgIDMwNFx0ICAgICAgICAgICAgdXNlckluZm8uaWQgPSBpZDtcbiAgIDMwNVx0ICAgICAgICAgIH1cbiAgIDMwNlx0ICAgICAgICAgIGlmIChPYmplY3Qua2V5cyh1c2VySW5mbykubGVuZ3RoID4gMCkge1xuICAgMzA3XHQgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2hhdHdvb3Q6dXNlckluZm8nLCBKU09OLnN0cmluZ2lmeSh1c2VySW5mbykpO1xuICAgMzA4XHQgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY21jdHM6dXNlckluZm8nLCBKU09OLnN0cmluZ2lmeSh1c2VySW5mbykpO1xuICAgMzA5XHQgICAgICAgICAgfVxuICAgMzEwXHQgICAgICAgIH1cbiAgIDMxMVx0ICAgICAgfSk7XG4gICAzMTJcdCAgICB9KTtcbiAgIDMxM1x0ICB9KTtcbiAgIDMxNFx0XG4gICAzMTVcdCAgY29uc3Qgc2Nyb2xsVG9Cb3R0b20gPSAoKSA9PiB7XG4gICAzMTZcdCAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgIDMxN1x0ICAgICAgY2hhdENvbnRhaW5lcj8uc2Nyb2xsVG8oMCwgY2hhdENvbnRhaW5lci5zY3JvbGxIZWlnaHQpO1xuICAgMzE4XHQgICAgfSwgNTApO1xuICAgMzE5XHQgIH07XG4gICAzMjBcdFxuICAgMzIxXHQgIC8qKlxuICAgMzIyXHQgICAqIEFkZCBlYWNoIGNoYXQgbWVzc2FnZSBpbnRvIGxvY2FsU3RvcmFnZVxuICAgMzIzXHQgICAqL1xuICAgMzI0XHQgIGNvbnN0IGFkZENoYXRNZXNzYWdlID0gKGFsbE1lc3NhZ2U6IE1lc3NhZ2VUeXBlW10pID0+IHtcbiAgIDMyNVx0ICAgIGNvbnN0IG1lc3NhZ2VzID0gYWxsTWVzc2FnZS5tYXAoKGl0ZW0pID0+IHtcbiAgIDMyNlx0ICAgICAgaWYgKGl0ZW0uZmlsZVVwbG9hZHMpIHtcbiAgIDMyN1x0ICAgICAgICBjb25zdCBmaWxlVXBsb2FkcyA9IGl0ZW0/LmZpbGVVcGxvYWRzLm1hcCgoZmlsZSkgPT4gKHtcbiAgIDMyOFx0ICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgIDMyOVx0ICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgIDMzMFx0ICAgICAgICAgIG1pbWU6IGZpbGUubWltZSxcbiAgIDMzMVx0ICAgICAgICB9KSk7XG4gICAzMzJcdCAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgZmlsZVVwbG9hZHMgfTtcbiAgIDMzM1x0ICAgICAgfVxuICAgMzM0XHQgICAgICByZXR1cm4gaXRlbTtcbiAgIDMzNVx0ICAgIH0pO1xuICAgMzM2XHQgICAgc2V0TG9jYWxTdG9yYWdlQ2hhdGZsb3cocHJvcHMuY2hhdGZsb3dpZCwgY2hhdElkKCksIHsgY2hhdEhpc3Rvcnk6IG1lc3NhZ2VzIH0pO1xuICAgMzM3XHQgIH07XG4gICAzMzhcdFxuICAgMzM5XHQgIC8vIERlZmluZSB0aGUgYXVkaW9SZWZcbiAgIDM0MFx0ICBsZXQgYXVkaW9SZWY6IEhUTUxBdWRpb0VsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAzNDFcdCAgLy8gQ0ROIGxpbmsgZm9yIGRlZmF1bHQgcmVjZWl2ZSBzb3VuZFxuICAgMzQyXHQgIGNvbnN0IGRlZmF1bHRSZWNlaXZlU291bmQgPSAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL0Zsb3dpc2VBSS9GbG93aXNlQ2hhdEVtYmVkQGxhdGVzdC9zcmMvYXNzZXRzL3JlY2VpdmVfbWVzc2FnZS5tcDMnO1xuICAgMzQzXHQgIGNvbnN0IHBsYXlSZWNlaXZlU291bmQgPSAoKSA9PiB7XG4gICAzNDRcdCAgICBpZiAocHJvcHMudGV4dElucHV0Py5yZWNlaXZlTWVzc2FnZVNvdW5kKSB7XG4gICAzNDVcdCAgICAgIGxldCBhdWRpb1NyYyA9IGRlZmF1bHRSZWNlaXZlU291bmQ7XG4gICAzNDZcdCAgICAgIGlmIChwcm9wcy50ZXh0SW5wdXQ/LnJlY2VpdmVTb3VuZExvY2F0aW9uKSB7XG4gICAzNDdcdCAgICAgICAgYXVkaW9TcmMgPSBwcm9wcy50ZXh0SW5wdXQ/LnJlY2VpdmVTb3VuZExvY2F0aW9uO1xuICAgMzQ4XHQgICAgICB9XG4gICAzNDlcdCAgICAgIGF1ZGlvUmVmID0gbmV3IEF1ZGlvKGF1ZGlvU3JjKTtcbiAgIDM1MFx0ICAgICAgYXVkaW9SZWYucGxheSgpO1xuICAgMzUxXHQgICAgfVxuICAgMzUyXHQgIH07XG4gICAzNTNcdFxuICAgMzU0XHQgIGxldCBoYXNTb3VuZFBsYXllZCA9IGZhbHNlO1xuICAgMzU1XHRcbiAgIDM1Nlx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZSA9ICh0ZXh0OiBzdHJpbmcpID0+IHtcbiAgIDM1N1x0ICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgIDM1OFx0ICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgMzU5XHQgICAgICBpZiAoYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0udHlwZSA9PT0gJ3VzZXJNZXNzYWdlJykgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgMzYwXHQgICAgICBpZiAoIXRleHQpIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDM2MVx0ICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0ubWVzc2FnZSArPSB0ZXh0O1xuICAgMzYyXHQgICAgICBhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS5yYXRpbmcgPSB1bmRlZmluZWQ7XG4gICAzNjNcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmRhdGVUaW1lID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgMzY0XHQgICAgICBpZiAoIWhhc1NvdW5kUGxheWVkKSB7XG4gICAzNjVcdCAgICAgICAgcGxheVJlY2VpdmVTb3VuZCgpO1xuICAgMzY2XHQgICAgICAgIGhhc1NvdW5kUGxheWVkID0gdHJ1ZTtcbiAgIDM2N1x0ICAgICAgfVxuICAgMzY4XHQgICAgICBhZGRDaGF0TWVzc2FnZShhbGxNZXNzYWdlcyk7XG4gICAzNjlcdCAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDM3MFx0ICAgIH0pO1xuICAgMzcxXHQgIH07XG4gICAzNzJcdFxuICAgMzczXHQgIGNvbnN0IHVwZGF0ZUVycm9yTWVzc2FnZSA9IChlcnJvck1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgMzc0XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgMzc1XHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICAzNzZcdCAgICAgIGFsbE1lc3NhZ2VzLnB1c2goeyBtZXNzYWdlOiBwcm9wcy5lcnJvck1lc3NhZ2UgfHwgZXJyb3JNZXNzYWdlLCB0eXBlOiAnYXBpTWVzc2FnZScgfSk7XG4gICAzNzdcdCAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDM3OFx0ICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgMzc5XHQgICAgfSk7XG4gICAzODBcdCAgfTtcbiAgIDM4MVx0XG4gICAzODJcdCAgY29uc3QgdXBkYXRlTGFzdE1lc3NhZ2VTb3VyY2VEb2N1bWVudHMgPSAoc291cmNlRG9jdW1lbnRzOiBhbnkpID0+IHtcbiAgIDM4M1x0ICAgIHNldE1lc3NhZ2VzKChkYXRhKSA9PiB7XG4gICAzODRcdCAgICAgIGNvbnN0IHVwZGF0ZWQgPSBkYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xuICAgMzg1XHQgICAgICAgIGlmIChpID09PSBkYXRhLmxlbmd0aCAtIDEpIHtcbiAgIDM4Nlx0ICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIHNvdXJjZURvY3VtZW50cyB9O1xuICAgMzg3XHQgICAgICAgIH1cbiAgIDM4OFx0ICAgICAgICByZXR1cm4gaXRlbTtcbiAgIDM4OVx0ICAgICAgfSk7XG4gICAzOTBcdCAgICAgIGFkZENoYXRNZXNzYWdlKHVwZGF0ZWQpO1xuICAgMzkxXHQgICAgICByZXR1cm4gWy4uLnVwZGF0ZWRdO1xuICAgMzkyXHQgICAgfSk7XG4gICAzOTNcdCAgfTtcbiAgIDM5NFx0XG4gICAzOTVcdCAgY29uc3QgdXBkYXRlTGFzdE1lc3NhZ2VVc2VkVG9vbHMgPSAodXNlZFRvb2xzOiBhbnlbXSkgPT4ge1xuICAgMzk2XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgMzk3XHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICAzOThcdCAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICAzOTlcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLnVzZWRUb29scyA9IHVzZWRUb29scztcbiAgIDQwMFx0ICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDAxXHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MDJcdCAgICB9KTtcbiAgIDQwM1x0ICB9O1xuICAgNDA0XHRcbiAgIDQwNVx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUZpbGVBbm5vdGF0aW9ucyA9IChmaWxlQW5ub3RhdGlvbnM6IGFueSkgPT4ge1xuICAgNDA2XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNDA3XHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA0MDhcdCAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MDlcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmZpbGVBbm5vdGF0aW9ucyA9IGZpbGVBbm5vdGF0aW9ucztcbiAgIDQxMFx0ICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDExXHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MTJcdCAgICB9KTtcbiAgIDQxM1x0ICB9O1xuICAgNDE0XHRcbiAgIDQxNVx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUFnZW50UmVhc29uaW5nID0gKGFnZW50UmVhc29uaW5nOiBzdHJpbmcgfCBJQWdlbnRSZWFzb25pbmdbXSkgPT4ge1xuICAgNDE2XHQgICAgc2V0TWVzc2FnZXMoKGRhdGEpID0+IHtcbiAgIDQxN1x0ICAgICAgY29uc3QgdXBkYXRlZCA9IGRhdGEubWFwKChpdGVtLCBpKSA9PiB7XG4gICA0MThcdCAgICAgICAgaWYgKGkgPT09IGRhdGEubGVuZ3RoIC0gMSkge1xuICAgNDE5XHQgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgYWdlbnRSZWFzb25pbmc6IHR5cGVvZiBhZ2VudFJlYXNvbmluZyA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGFnZW50UmVhc29uaW5nKSA6IGFnZW50UmVhc29uaW5nIH07XG4gICA0MjBcdCAgICAgICAgfVxuICAgNDIxXHQgICAgICAgIHJldHVybiBpdGVtO1xuICAgNDIyXHQgICAgICB9KTtcbiAgIDQyM1x0ICAgICAgYWRkQ2hhdE1lc3NhZ2UodXBkYXRlZCk7XG4gICA0MjRcdCAgICAgIHJldHVybiBbLi4udXBkYXRlZF07XG4gICA0MjVcdCAgICB9KTtcbiAgIDQyNlx0ICB9O1xuICAgNDI3XHRcbiAgIDQyOFx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUFydGlmYWN0cyA9IChhcnRpZmFjdHM6IEZpbGVVcGxvYWRbXSkgPT4ge1xuICAgNDI5XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNDMwXHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA0MzFcdCAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MzJcdCAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmFydGlmYWN0cyA9IGFydGlmYWN0cztcbiAgIDQzM1x0ICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDM0XHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA0MzVcdCAgICB9KTtcbiAgIDQzNlx0ICB9O1xuICAgNDM3XHRcbiAgIDQzOFx0ICBjb25zdCB1cGRhdGVMYXN0TWVzc2FnZUFjdGlvbiA9IChhY3Rpb246IElBY3Rpb24pID0+IHtcbiAgIDQzOVx0ICAgIHNldE1lc3NhZ2VzKChkYXRhKSA9PiB7XG4gICA0NDBcdCAgICAgIGNvbnN0IHVwZGF0ZWQgPSBkYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xuICAgNDQxXHQgICAgICAgIGlmIChpID09PSBkYXRhLmxlbmd0aCAtIDEpIHtcbiAgIDQ0Mlx0ICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGFjdGlvbjogdHlwZW9mIGFjdGlvbiA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKGFjdGlvbikgOiBhY3Rpb24gfTtcbiAgIDQ0M1x0ICAgICAgICB9XG4gICA0NDRcdCAgICAgICAgcmV0dXJuIGl0ZW07XG4gICA0NDVcdCAgICAgIH0pO1xuICAgNDQ2XHQgICAgICBhZGRDaGF0TWVzc2FnZSh1cGRhdGVkKTtcbiAgIDQ0N1x0ICAgICAgcmV0dXJuIFsuLi51cGRhdGVkXTtcbiAgIDQ0OFx0ICAgIH0pO1xuICAgNDQ5XHQgIH07XG4gICA0NTBcdFxuICAgNDUxXHQgIGNvbnN0IGNsZWFyUHJldmlld3MgPSAoKSA9PiB7XG4gICA0NTJcdCAgICAvLyBSZXZva2UgdGhlIGRhdGEgdXJpcyB0byBhdm9pZCBtZW1vcnkgbGVha3NcbiAgIDQ1M1x0ICAgIHByZXZpZXdzKCkuZm9yRWFjaCgoZmlsZSkgPT4gVVJMLnJldm9rZU9iamVjdFVSTChmaWxlLnByZXZpZXcpKTtcbiAgIDQ1NFx0ICAgIHNldFByZXZpZXdzKFtdKTtcbiAgIDQ1NVx0ICB9O1xuICAgNDU2XHRcbiAgIDQ1N1x0ICAvLyBIYW5kbGUgZXJyb3JzXG4gICA0NThcdCAgY29uc3QgaGFuZGxlRXJyb3IgPSAobWVzc2FnZSA9ICdPb3BzISBUaGVyZSBzZWVtcyB0byBiZSBhbiBlcnJvci4gUGxlYXNlIHRyeSBhZ2Fpbi4nKSA9PiB7XG4gICA0NTlcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA0NjBcdCAgICAgIGNvbnN0IG1lc3NhZ2VzOiBNZXNzYWdlVHlwZVtdID0gWy4uLnByZXZNZXNzYWdlcywgeyBtZXNzYWdlOiBwcm9wcy5lcnJvck1lc3NhZ2UgfHwgbWVzc2FnZSwgdHlwZTogJ2FwaU1lc3NhZ2UnIH1dO1xuICAgNDYxXHQgICAgICBhZGRDaGF0TWVzc2FnZShtZXNzYWdlcyk7XG4gICA0NjJcdCAgICAgIHJldHVybiBtZXNzYWdlcztcbiAgIDQ2M1x0ICAgIH0pO1xuICAgNDY0XHQgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICA0NjVcdCAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgNDY2XHQgICAgc2V0VXNlcklucHV0KCcnKTtcbiAgIDQ2N1x0ICAgIHNldFVwbG9hZGVkRmlsZXMoW10pO1xuICAgNDY4XHQgICAgc2Nyb2xsVG9Cb3R0b20oKTtcbiAgIDQ2OVx0ICB9O1xuICAgNDcwXHRcbiAgIDQ3MVx0ICBjb25zdCBoYW5kbGVEaXNjbGFpbWVyQWNjZXB0ID0gKCkgPT4ge1xuICAgNDcyXHQgICAgc2V0RGlzY2xhaW1lclBvcHVwT3BlbihmYWxzZSk7IC8vIENsb3NlIHRoZSBkaXNjbGFpbWVyIHBvcHVwXG4gICA0NzNcdCAgICBzZXRDb29raWUoJ2NoYXRib3REaXNjbGFpbWVyJywgJ3RydWUnLCAzNjUpOyAvLyBEaXNjbGFpbWVyIGFjY2VwdGVkXG4gICA0NzRcdCAgfTtcbiAgIDQ3NVx0XG4gICA0NzZcdCAgY29uc3QgcHJvbXB0Q2xpY2sgPSAocHJvbXB0OiBzdHJpbmcpID0+IHtcbiAgIDQ3N1x0ICAgIGhhbmRsZVN1Ym1pdChwcm9tcHQpO1xuICAgNDc4XHQgIH07XG4gICA0NzlcdFxuICAgNDgwXHQgIGNvbnN0IGZvbGxvd1VwUHJvbXB0Q2xpY2sgPSAocHJvbXB0OiBzdHJpbmcpID0+IHtcbiAgIDQ4MVx0ICAgIHNldEZvbGxvd1VwUHJvbXB0cyhbXSk7XG4gICA0ODJcdCAgICBoYW5kbGVTdWJtaXQocHJvbXB0KTtcbiAgIDQ4M1x0ICB9O1xuICAgNDg0XHRcbiAgIDQ4NVx0ICBjb25zdCB1cGRhdGVNZXRhZGF0YSA9IChkYXRhOiBhbnksIGlucHV0OiBzdHJpbmcpID0+IHtcbiAgIDQ4Nlx0ICAgIGlmIChkYXRhLmNoYXRJZCkge1xuICAgNDg3XHQgICAgICBzZXRDaGF0SWQoZGF0YS5jaGF0SWQpO1xuICAgNDg4XHQgICAgfVxuICAgNDg5XHRcbiAgIDQ5MFx0ICAgIC8vIHNldCBtZXNzYWdlIGlkIHRoYXQgaXMgbmVlZGVkIGZvciBmZWVkYmFja1xuICAgNDkxXHQgICAgaWYgKGRhdGEuY2hhdE1lc3NhZ2VJZCkge1xuICAgNDkyXHQgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA0OTNcdCAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgNDk0XHQgICAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAnYXBpTWVzc2FnZScpIHtcbiAgIDQ5NVx0ICAgICAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLm1lc3NhZ2VJZCA9IGRhdGEuY2hhdE1lc3NhZ2VJZDtcbiAgIDQ5Nlx0ICAgICAgICB9XG4gICA0OTdcdCAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgNDk4XHQgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDQ5OVx0ICAgICAgfSk7XG4gICA1MDBcdCAgICB9XG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiAyMDk0XG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCJhOWJjNGQxNC02YmQ4LTQxYzAtOTI2Ni1hZDMwN2UwZTE1NmY7dG9vbHVfdnJ0eF8wMUhwWFZxNFBjYkVqeTY3UHNjMVdTdmsiOnsicmVxdWVzdElkIjoiYTliYzRkMTQtNmJkOC00MWMwLTkyNjYtYWQzMDdlMGUxNTZmIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMUhwWFZxNFBjYkVqeTY3UHNjMVdTdmsiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJIZXJlJ3MgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGBjYXQgLW5gIG9uIHNyYy9jb21wb25lbnRzL0JvdC50c3g6XG4gICA1MDBcdCAgICB9XG4gICA1MDFcdFxuICAgNTAyXHQgICAgaWYgKGlucHV0ID09PSAnJyAmJiBkYXRhLnF1ZXN0aW9uKSB7XG4gICA1MDNcdCAgICAgIC8vIHRoZSByZXNwb25zZSBjb250YWlucyB0aGUgcXVlc3Rpb24gZXZlbiBpZiBpdCB3YXMgaW4gYW4gYXVkaW8gZm9ybWF0XG4gICA1MDRcdCAgICAgIC8vIHNvIGlmIGlucHV0IGlzIGVtcHR5IGJ1dCB0aGUgcmVzcG9uc2UgY29udGFpbnMgdGhlIHF1ZXN0aW9uLCB1cGRhdGUgdGhlIHVzZXIgbWVzc2FnZSB0byBzaG93IHRoZSBxdWVzdGlvblxuICAgNTA1XHQgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA1MDZcdCAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgNTA3XHQgICAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAyXS50eXBlID09PSAnYXBpTWVzc2FnZScpIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDUwOFx0ICAgICAgICBhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAyXS5tZXNzYWdlID0gZGF0YS5xdWVzdGlvbjtcbiAgIDUwOVx0ICAgICAgICBhZGRDaGF0TWVzc2FnZShhbGxNZXNzYWdlcyk7XG4gICA1MTBcdCAgICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgNTExXHQgICAgICB9KTtcbiAgIDUxMlx0ICAgIH1cbiAgIDUxM1x0XG4gICA1MTRcdCAgICBpZiAoZGF0YS5mb2xsb3dVcFByb21wdHMpIHtcbiAgIDUxNVx0ICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNTE2XHQgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDUxN1x0ICAgICAgICBpZiAoYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0udHlwZSA9PT0gJ3VzZXJNZXNzYWdlJykgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgNTE4XHQgICAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmZvbGxvd1VwUHJvbXB0cyA9IGRhdGEuZm9sbG93VXBQcm9tcHRzO1xuICAgNTE5XHQgICAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDUyMFx0ICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA1MjFcdCAgICAgIH0pO1xuICAgNTIyXHQgICAgICBzZXRGb2xsb3dVcFByb21wdHMoSlNPTi5wYXJzZShkYXRhLmZvbGxvd1VwUHJvbXB0cykpO1xuICAgNTIzXHQgICAgfVxuICAgNTI0XHQgIH07XG4gICA1MjVcdFxuICAgNTI2XHQgIGNvbnN0IGZldGNoUmVzcG9uc2VGcm9tRXZlbnRTdHJlYW0gPSBhc3luYyAoY2hhdGZsb3dpZDogc3RyaW5nLCBwYXJhbXM6IGFueSkgPT4ge1xuICAgNTI3XHQgICAgY29uc3QgY2hhdElkID0gcGFyYW1zLmNoYXRJZDtcbiAgIDUyOFx0ICAgIGNvbnN0IGlucHV0ID0gcGFyYW1zLnF1ZXN0aW9uO1xuICAgNTI5XHQgICAgcGFyYW1zLnN0cmVhbWluZyA9IHRydWU7XG4gICA1MzBcdCAgICBmZXRjaEV2ZW50U291cmNlKGAke3Byb3BzLmFwaUhvc3R9L2FwaS92MS9wcmVkaWN0aW9uLyR7Y2hhdGZsb3dpZH1gLCB7XG4gICA1MzFcdCAgICAgIG9wZW5XaGVuSGlkZGVuOiB0cnVlLFxuICAgNTMyXHQgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgIDUzM1x0ICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocGFyYW1zKSxcbiAgIDUzNFx0ICAgICAgaGVhZGVyczoge1xuICAgNTM1XHQgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICA1MzZcdCAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgIDUzN1x0ICAgICAgfSxcbiAgIDUzOFx0XG4gICA1MzlcdCAgICAgIGFzeW5jIG9ub3BlbihyZXNwb25zZSkge1xuICAgNTQwXHQgICAgICAgIHNldEN1cnJlbnRTdGF0dXNNc2coJ8SQYW5nIHjhu60gbMO9Li4uJyk7XG4gICA1NDFcdCAgICAgICAgaWYgKHJlc3BvbnNlLm9rICYmIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKT8uc3RhcnRzV2l0aChFdmVudFN0cmVhbUNvbnRlbnRUeXBlKSkge1xuICAgNTQyXHQgICAgICAgICAgcmV0dXJuOyAvLyBldmVyeXRoaW5nJ3MgZ29vZFxuICAgNTQzXHQgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MjkpIHtcbiAgIDU0NFx0ICAgICAgICAgIGNvbnN0IGVyck1lc3NhZ2UgPSAoYXdhaXQgcmVzcG9uc2UudGV4dCgpKSA/PyAnVG9vIG1hbnkgcmVxdWVzdHMuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgIDU0NVx0ICAgICAgICAgIGhhbmRsZUVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTQ2XHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTQ3XHQgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDMpIHtcbiAgIDU0OFx0ICAgICAgICAgIGNvbnN0IGVyck1lc3NhZ2UgPSAoYXdhaXQgcmVzcG9uc2UudGV4dCgpKSA/PyAnVW5hdXRob3JpemVkJztcbiAgIDU0OVx0ICAgICAgICAgIGhhbmRsZUVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTUwXHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTUxXHQgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDEpIHtcbiAgIDU1Mlx0ICAgICAgICAgIGNvbnN0IGVyck1lc3NhZ2UgPSAoYXdhaXQgcmVzcG9uc2UudGV4dCgpKSA/PyAnVW5hdXRoZW50aWNhdGVkJztcbiAgIDU1M1x0ICAgICAgICAgIGhhbmRsZUVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTU0XHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVyck1lc3NhZ2UpO1xuICAgNTU1XHQgICAgICAgIH0gZWxzZSB7XG4gICA1NTZcdCAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgIDU1N1x0ICAgICAgICB9XG4gICA1NThcdCAgICAgIH0sXG4gICA1NTlcdCAgICAgIGFzeW5jIG9ubWVzc2FnZShldikge1xuICAgNTYwXHQgICAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKGV2LmRhdGEpO1xuICAgNTYxXHQgICAgICAgIGlmIChkaXNhYmxlSW5wdXQoKSAmJiBwYXlsb2FkLmV2ZW50ICE9PSAnc3RhcnQnKSB7XG4gICA1NjJcdCAgICAgICAgICBzZXRDdXJyZW50U3RhdHVzTXNnKCcnKTtcbiAgIDU2M1x0ICAgICAgICAgIHNldERpc2FibGVJbnB1dChmYWxzZSk7XG4gICA1NjRcdCAgICAgICAgICBzZXRVc2VySW5wdXQoJycpO1xuICAgNTY1XHQgICAgICAgICAgc2V0VXBsb2FkZWRGaWxlcyhbXSk7XG4gICA1NjZcdCAgICAgICAgfVxuICAgNTY3XHRcbiAgIDU2OFx0ICAgICAgICBzd2l0Y2ggKHBheWxvYWQuZXZlbnQpIHtcbiAgIDU2OVx0ICAgICAgICAgIGNhc2UgJ3N0YXJ0JzpcbiAgIDU3MFx0ICAgICAgICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4gWy4uLnByZXZNZXNzYWdlcywgeyBtZXNzYWdlOiAnJywgdHlwZTogJ2FwaU1lc3NhZ2UnIH1dKTtcbiAgIDU3MVx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1NzJcdCAgICAgICAgICBjYXNlICdyZWNoZWNrJzpcbiAgIDU3M1x0ICAgICAgICAgICAgc2V0Q3VycmVudFN0YXR1c01zZygnUmVjaGVja2luZy4uLicpO1xuICAgNTc0XHQgICAgICAgICAgICBicmVhaztcbiAgIDU3NVx0ICAgICAgICAgIGNhc2UgJ3Rva2VuJzpcbiAgIDU3Nlx0ICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbEN1cnJlbnRNc2cpO1xuICAgNTc3XHQgICAgICAgICAgICBzZXRDdXJyZW50U3RhdHVzTXNnKCcnKTtcbiAgIDU3OFx0ICAgICAgICAgICAgdXBkYXRlTGFzdE1lc3NhZ2UocGF5bG9hZC5kYXRhKTtcbiAgIDU3OVx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1ODBcdCAgICAgICAgICBjYXNlICdzb3VyY2VEb2N1bWVudHMnOlxuICAgNTgxXHQgICAgICAgICAgICB1cGRhdGVMYXN0TWVzc2FnZVNvdXJjZURvY3VtZW50cyhwYXlsb2FkLmRhdGEpO1xuICAgNTgyXHQgICAgICAgICAgICBicmVhaztcbiAgIDU4M1x0ICAgICAgICAgIGNhc2UgJ3VzZWRUb29scyc6XG4gICA1ODRcdCAgICAgICAgICAgIHVwZGF0ZUxhc3RNZXNzYWdlVXNlZFRvb2xzKHBheWxvYWQuZGF0YSk7XG4gICA1ODVcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNTg2XHQgICAgICAgICAgY2FzZSAnZmlsZUFubm90YXRpb25zJzpcbiAgIDU4N1x0ICAgICAgICAgICAgdXBkYXRlTGFzdE1lc3NhZ2VGaWxlQW5ub3RhdGlvbnMocGF5bG9hZC5kYXRhKTtcbiAgIDU4OFx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1ODlcdCAgICAgICAgICBjYXNlICdhZ2VudFJlYXNvbmluZyc6XG4gICA1OTBcdCAgICAgICAgICAgIHVwZGF0ZUxhc3RNZXNzYWdlQWdlbnRSZWFzb25pbmcocGF5bG9hZC5kYXRhKTtcbiAgIDU5MVx0ICAgICAgICAgICAgYnJlYWs7XG4gICA1OTJcdCAgICAgICAgICBjYXNlICdhY3Rpb24nOlxuICAgNTkzXHQgICAgICAgICAgICB1cGRhdGVMYXN0TWVzc2FnZUFjdGlvbihwYXlsb2FkLmRhdGEpO1xuICAgNTk0XHQgICAgICAgICAgICBicmVhaztcbiAgIDU5NVx0ICAgICAgICAgIGNhc2UgJ2FydGlmYWN0cyc6XG4gICA1OTZcdCAgICAgICAgICAgIHVwZGF0ZUxhc3RNZXNzYWdlQXJ0aWZhY3RzKHBheWxvYWQuZGF0YSk7XG4gICA1OTdcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNTk4XHQgICAgICAgICAgY2FzZSAnbWV0YWRhdGEnOlxuICAgNTk5XHQgICAgICAgICAgICB1cGRhdGVNZXRhZGF0YShwYXlsb2FkLmRhdGEsIGlucHV0KTtcbiAgIDYwMFx0ICAgICAgICAgICAgYnJlYWs7XG4gICA2MDFcdCAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICA2MDJcdCAgICAgICAgICAgIHVwZGF0ZUVycm9yTWVzc2FnZShwYXlsb2FkLmRhdGEpO1xuICAgNjAzXHQgICAgICAgICAgICBicmVhaztcbiAgIDYwNFx0ICAgICAgICAgIGNhc2UgJ2Fib3J0JzpcbiAgIDYwNVx0ICAgICAgICAgICAgYWJvcnRNZXNzYWdlKCk7XG4gICA2MDZcdCAgICAgICAgICAgIGNsb3NlUmVzcG9uc2UoKTtcbiAgIDYwN1x0ICAgICAgICAgICAgYnJlYWs7XG4gICA2MDhcdCAgICAgICAgICBjYXNlICdlbmQnOlxuICAgNjA5XHQgICAgICAgICAgICBzZXRMb2NhbFN0b3JhZ2VDaGF0ZmxvdyhjaGF0Zmxvd2lkLCBjaGF0SWQpO1xuICAgNjEwXHQgICAgICAgICAgICBjbG9zZVJlc3BvbnNlKCk7XG4gICA2MTFcdCAgICAgICAgICAgIGJyZWFrO1xuICAgNjEyXHQgICAgICAgIH1cbiAgIDYxM1x0ICAgICAgfSxcbiAgIDYxNFx0ICAgICAgYXN5bmMgb25jbG9zZSgpIHtcbiAgIDYxNVx0ICAgICAgICBjbG9zZVJlc3BvbnNlKCk7XG4gICA2MTZcdCAgICAgICAgc2V0Q3VycmVudFN0YXR1c01zZygnJyk7XG4gICA2MTdcdCAgICAgIH0sXG4gICA2MThcdCAgICAgIG9uZXJyb3IoZXJyKSB7XG4gICA2MTlcdCAgICAgICAgY29uc29sZS5lcnJvcignRXZlbnRTb3VyY2UgRXJyb3I6ICcsIGVycik7XG4gICA2MjBcdCAgICAgICAgY2xvc2VSZXNwb25zZSgpO1xuICAgNjIxXHQgICAgICAgIHRocm93IGVycjtcbiAgIDYyMlx0ICAgICAgfSxcbiAgIDYyM1x0ICAgIH0pO1xuICAgNjI0XHQgIH07XG4gICA2MjVcdFxuICAgNjI2XHQgIGNvbnN0IGNsb3NlUmVzcG9uc2UgPSAoKSA9PiB7XG4gICA2MjdcdCAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgIDYyOFx0ICAgIHNldERpc2FibGVJbnB1dChmYWxzZSk7XG4gICA2MjlcdCAgICBzZXRVcGxvYWRlZEZpbGVzKFtdKTtcbiAgIDYzMFx0ICAgIGhhc1NvdW5kUGxheWVkID0gZmFsc2U7XG4gICA2MzFcdCAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgIDYzMlx0ICAgICAgc2Nyb2xsVG9Cb3R0b20oKTtcbiAgIDYzM1x0ICAgIH0sIDEwMCk7XG4gICA2MzRcdCAgfTtcbiAgIDYzNVx0XG4gICA2MzZcdCAgY29uc3QgYWJvcnRNZXNzYWdlID0gKCkgPT4ge1xuICAgNjM3XHQgICAgc2V0SXNNZXNzYWdlU3RvcHBpbmcoZmFsc2UpO1xuICAgNjM4XHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNjM5XHQgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA2NDBcdCAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA2NDFcdCAgICAgIGNvbnN0IGxhc3RBZ2VudFJlYXNvbmluZyA9IGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLmFnZW50UmVhc29uaW5nO1xuICAgNjQyXHQgICAgICBpZiAobGFzdEFnZW50UmVhc29uaW5nICYmIGxhc3RBZ2VudFJlYXNvbmluZy5sZW5ndGggPiAwKSB7XG4gICA2NDNcdCAgICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0uYWdlbnRSZWFzb25pbmcgPSBsYXN0QWdlbnRSZWFzb25pbmcuZmlsdGVyKChyZWFzb25pbmcpID0+ICFyZWFzb25pbmcubmV4dEFnZW50KTtcbiAgIDY0NFx0ICAgICAgfVxuICAgNjQ1XHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA2NDZcdCAgICB9KTtcbiAgIDY0N1x0ICB9O1xuICAgNjQ4XHRcbiAgIDY0OVx0ICBjb25zdCBoYW5kbGVGaWxlVXBsb2FkcyA9IGFzeW5jICh1cGxvYWRzOiBJVXBsb2FkcykgPT4ge1xuICAgNjUwXHQgICAgaWYgKCF1cGxvYWRlZEZpbGVzKCkubGVuZ3RoKSByZXR1cm4gdXBsb2FkcztcbiAgIDY1MVx0XG4gICA2NTJcdCAgICBjb25zdCBmaWxlc1dpdGhGdWxsVXBsb2FkVHlwZSA9IHVwbG9hZGVkRmlsZXMoKS5maWx0ZXIoKGZpbGUpID0+IGZpbGUudHlwZSA9PT0gJ2ZpbGU6ZnVsbCcpO1xuICAgNjUzXHRcbiAgIDY1NFx0ICAgIGlmIChmaWxlc1dpdGhGdWxsVXBsb2FkVHlwZS5sZW5ndGggPiAwKSB7XG4gICA2NTVcdCAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICA2NTZcdCAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlc1dpdGhGdWxsVXBsb2FkVHlwZSkge1xuICAgNjU3XHQgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZXMnLCBmaWxlLmZpbGUpO1xuICAgNjU4XHQgICAgICB9XG4gICA2NTlcdCAgICAgIGZvcm1EYXRhLmFwcGVuZCgnY2hhdElkJywgY2hhdElkKCkpO1xuICAgNjYwXHRcbiAgIDY2MVx0ICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjcmVhdGVBdHRhY2htZW50V2l0aEZvcm1EYXRhKHtcbiAgIDY2Mlx0ICAgICAgICBjaGF0Zmxvd2lkOiBwcm9wcy5jaGF0Zmxvd2lkLFxuICAgNjYzXHQgICAgICAgIGFwaUhvc3Q6IHByb3BzLmFwaUhvc3QsXG4gICA2NjRcdCAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhLFxuICAgNjY1XHQgICAgICB9KTtcbiAgIDY2Nlx0XG4gICA2NjdcdCAgICAgIGlmICghcmVzcG9uc2UuZGF0YSkge1xuICAgNjY4XHQgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHVwbG9hZCBkb2N1bWVudHMnKTtcbiAgIDY2OVx0ICAgICAgfSBlbHNlIHtcbiAgIDY3MFx0ICAgICAgICBjb25zdCBkYXRhID0gcmVzcG9uc2UuZGF0YSBhcyBhbnk7XG4gICA2NzFcdCAgICAgICAgZm9yIChjb25zdCBleHRyYWN0ZWRGaWxlRGF0YSBvZiBkYXRhKSB7XG4gICA2NzJcdCAgICAgICAgICBjb25zdCBjb250ZW50ID0gZXh0cmFjdGVkRmlsZURhdGEuY29udGVudDtcbiAgIDY3M1x0ICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gZXh0cmFjdGVkRmlsZURhdGEubmFtZTtcbiAgIDY3NFx0XG4gICA2NzVcdCAgICAgICAgICAvLyBmaW5kIG1hdGNoaW5nIG5hbWUgaW4gcHJldmlld3MgYW5kIHJlcGxhY2UgZGF0YSB3aXRoIGNvbnRlbnRcbiAgIDY3Nlx0ICAgICAgICAgIGNvbnN0IHVwbG9hZEluZGV4ID0gdXBsb2Fkcy5maW5kSW5kZXgoKHVwbG9hZCkgPT4gdXBsb2FkLm5hbWUgPT09IGZpbGVOYW1lKTtcbiAgIDY3N1x0ICAgICAgICAgIGNvbnNvbGUubG9nKCfwn5qAIH4gaGFuZGxlRmlsZVVwbG9hZHMgfiB1cGxvYWRzOicsIHVwbG9hZHMpO1xuICAgNjc4XHQgICAgICAgICAgaWYgKHVwbG9hZEluZGV4ICE9PSAtMSkge1xuICAgNjc5XHQgICAgICAgICAgICB1cGxvYWRzW3VwbG9hZEluZGV4XSA9IHtcbiAgIDY4MFx0ICAgICAgICAgICAgICAuLi51cGxvYWRzW3VwbG9hZEluZGV4XSxcbiAgIDY4MVx0ICAgICAgICAgICAgICBkYXRhOiBjb250ZW50LFxuICAgNjgyXHQgICAgICAgICAgICAgIG5hbWU6IGZpbGVOYW1lLFxuICAgNjgzXHQgICAgICAgICAgICAgIHR5cGU6ICdmaWxlOmZ1bGwnLFxuICAgNjg0XHQgICAgICAgICAgICAgIGZpbGU6IHVwbG9hZGVkRmlsZXMoKVt1cGxvYWRJbmRleF0sXG4gICA2ODVcdCAgICAgICAgICAgIH07XG4gICA2ODZcdCAgICAgICAgICB9XG4gICA2ODdcdCAgICAgICAgfVxuICAgNjg4XHQgICAgICB9XG4gICA2ODlcdCAgICB9XG4gICA2OTBcdCAgICBpZiAodXBsb2Fkc0NvbmZpZygpPy5pc1JBR0ZpbGVVcGxvYWRBbGxvd2VkKSB7XG4gICA2OTFcdCAgICAgIGNvbnN0IGZpbGVzV2l0aFJBR1VwbG9hZFR5cGUgPSB1cGxvYWRlZEZpbGVzKCkuZmlsdGVyKChmaWxlKSA9PiBmaWxlLnR5cGUgPT09ICdmaWxlOnJhZycpO1xuICAgNjkyXHRcbiAgIDY5M1x0ICAgICAgaWYgKGZpbGVzV2l0aFJBR1VwbG9hZFR5cGUubGVuZ3RoID4gMCkge1xuICAgNjk0XHQgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICA2OTVcdCAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzV2l0aFJBR1VwbG9hZFR5cGUpIHtcbiAgIDY5Nlx0ICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZXMnLCBmaWxlLmZpbGUpO1xuICAgNjk3XHQgICAgICAgIH1cbiAgIDY5OFx0ICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2NoYXRJZCcsIGNoYXRJZCgpKTtcbiAgIDY5OVx0XG4gICA3MDBcdCAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB1cHNlcnRWZWN0b3JTdG9yZVdpdGhGb3JtRGF0YSh7XG4gICA3MDFcdCAgICAgICAgICBjaGF0Zmxvd2lkOiBwcm9wcy5jaGF0Zmxvd2lkLFxuICAgNzAyXHQgICAgICAgICAgYXBpSG9zdDogcHJvcHMuYXBpSG9zdCxcbiAgIDcwM1x0ICAgICAgICAgIGZvcm1EYXRhOiBmb3JtRGF0YSxcbiAgIDcwNFx0ICAgICAgICB9KTtcbiAgIDcwNVx0XG4gICA3MDZcdCAgICAgICAgaWYgKCFyZXNwb25zZS5kYXRhKSB7XG4gICA3MDdcdCAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byB1cGxvYWQgZG9jdW1lbnRzJyk7XG4gICA3MDhcdCAgICAgICAgfSBlbHNlIHtcbiAgIDcwOVx0ICAgICAgICAgIC8vIGRlbGF5IGZvciB2ZWN0b3Igc3RvcmUgdG8gYmUgdXBkYXRlZFxuICAgNzEwXHQgICAgICAgICAgY29uc3QgZGVsYXkgPSAoZGVsYXlJbm1zOiBudW1iZXIpID0+IHtcbiAgIDcxMVx0ICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIGRlbGF5SW5tcykpO1xuICAgNzEyXHQgICAgICAgICAgfTtcbiAgIDcxM1x0ICAgICAgICAgIGF3YWl0IGRlbGF5KDI1MDApOyAvL1RPRE86IGNoZWNrIGlmIGVtYmVkZGluZ3MgY2FuIGJlIHJldHJpZXZlZCB1c2luZyBmaWxlIG5hbWUgYXMgbWV0YWRhdGEgZmlsdGVyXG4gICA3MTRcdFxuICAgNzE1XHQgICAgICAgICAgdXBsb2FkcyA9IHVwbG9hZHMubWFwKCh1cGxvYWQpID0+IHtcbiAgIDcxNlx0ICAgICAgICAgICAgcmV0dXJuIHtcbiAgIDcxN1x0ICAgICAgICAgICAgICAuLi51cGxvYWQsXG4gICA3MThcdCAgICAgICAgICAgICAgdHlwZTogJ2ZpbGU6cmFnJyxcbiAgIDcxOVx0ICAgICAgICAgICAgfTtcbiAgIDcyMFx0ICAgICAgICAgIH0pO1xuICAgNzIxXHQgICAgICAgIH1cbiAgIDcyMlx0ICAgICAgfVxuICAgNzIzXHQgICAgfVxuICAgNzI0XHQgICAgcmV0dXJuIHVwbG9hZHM7XG4gICA3MjVcdCAgfTtcbiAgIDcyNlx0XG4gICA3MjdcdCAgY29uc3QgZGF0YUxvZ2luID0gbG9jYWxTdG9yYWdlPy5nZXRJdGVtKCdkYXRhTG9naW4nKTtcbiAgIDcyOFx0ICBpZiAoZGF0YUxvZ2luKSB7XG4gICA3MjlcdCAgICB0cnkge1xuICAgNzMwXHQgICAgICBjb25zdCBkYXRhID0gSlNPTj8ucGFyc2UoZGF0YUxvZ2luKTtcbiAgIDczMVx0ICAgICAgc2V0VXNlcihkYXRhPy51c2VyKTtcbiAgIDczMlx0ICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICA3MzNcdCAgICAgIGNvbnNvbGUubG9nKCdOZ8aw4budaSBkw7luZyBjaMawYSDEkcSDbmcgbmjhuq1wJyk7XG4gICA3MzRcdCAgICB9XG4gICA3MzVcdCAgfVxuICAgNzM2XHRcbiAgIDczN1x0ICBjb25zdCBoYW5kbGVTdWdlc3RTdWJtaXQgPSBhc3luYyAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgNzM4XHQgICAgYXdhaXQgaGFuZGxlU3VibWl0KHZhbHVlKTtcbiAgIDczOVx0ICB9O1xuICAgNzQwXHRcbiAgIDc0MVx0ICAvLyBIYW5kbGUgZm9ybSBzdWJtaXNzaW9uXG4gICA3NDJcdCAgY29uc3QgaGFuZGxlU3VibWl0ID0gYXN5bmMgKHZhbHVlOiBzdHJpbmcsIGFjdGlvbj86IElBY3Rpb24gfCB1bmRlZmluZWQgfCBudWxsLCBmYXFJZD86IHN0cmluZykgPT4ge1xuICAgNzQzXHQgICAgaWYgKHZhbHVlLnRyaW0oKSA9PT0gJycpIHtcbiAgIDc0NFx0ICAgICAgY29uc3QgY29udGFpbnNGaWxlID0gcHJldmlld3MoKS5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLm1pbWUuc3RhcnRzV2l0aCgnaW1hZ2UnKSAmJiBpdGVtLnR5cGUgIT09ICdhdWRpbycpLmxlbmd0aCA+IDA7XG4gICA3NDVcdCAgICAgIGlmICghcHJldmlld3MoKS5sZW5ndGggfHwgKHByZXZpZXdzKCkubGVuZ3RoICYmIGNvbnRhaW5zRmlsZSkpIHtcbiAgIDc0Nlx0ICAgICAgICByZXR1cm47XG4gICA3NDdcdCAgICAgIH1cbiAgIDc0OFx0ICAgIH1cbiAgIDc0OVx0XG4gICA3NTBcdCAgICBpZiAoIWxvY2FsU3RvcmFnZS5nZXRJdGVtKGBjaGF0d29vdDoke3Byb3BzLmNoYXRmbG93aWR9OmNvbnZlcnNhdGlvbl9pZGApKSB7XG4gICA3NTFcdCAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICA3NTJcdCAgICAgIHNldERpc2FibGVJbnB1dCh0cnVlKTtcbiAgIDc1M1x0ICAgIH1cbiAgIDc1NFx0ICAgIHNjcm9sbFRvQm90dG9tKCk7XG4gICA3NTVcdFxuICAgNzU2XHQgICAgbGV0IHVwbG9hZHM6IElVcGxvYWRzID0gcHJldmlld3MoKS5tYXAoKGl0ZW0pID0+IHtcbiAgIDc1N1x0ICAgICAgcmV0dXJuIHtcbiAgIDc1OFx0ICAgICAgICBkYXRhOiBpdGVtLmRhdGEsXG4gICA3NTlcdCAgICAgICAgdHlwZTogaXRlbS50eXBlLFxuICAgNzYwXHQgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgIDc2MVx0ICAgICAgICBtaW1lOiBpdGVtLm1pbWUsXG4gICA3NjJcdCAgICAgIH07XG4gICA3NjNcdCAgICB9KTtcbiAgIDc2NFx0XG4gICA3NjVcdCAgICB0cnkge1xuICAgNzY2XHQgICAgICB1cGxvYWRzID0gYXdhaXQgaGFuZGxlRmlsZVVwbG9hZHModXBsb2Fkcyk7XG4gICA3NjdcdCAgICB9IGNhdGNoIChlcnJvcikge1xuICAgNzY4XHQgICAgICBoYW5kbGVFcnJvcignVW5hYmxlIHRvIHVwbG9hZCBkb2N1bWVudHMnKTtcbiAgIDc2OVx0ICAgICAgcmV0dXJuO1xuICAgNzcwXHQgICAgfVxuICAgNzcxXHRcbiAgIDc3Mlx0ICAgIGNsZWFyUHJldmlld3MoKTtcbiAgIDc3M1x0XG4gICA3NzRcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA3NzVcdCAgICAgIGNvbnN0IG1lc3NhZ2VzOiBNZXNzYWdlVHlwZVtdID0gWy4uLnByZXZNZXNzYWdlcywgeyBtZXNzYWdlOiB2YWx1ZSwgdHlwZTogJ3VzZXJNZXNzYWdlJywgZmlsZVVwbG9hZHM6IHVwbG9hZHMgfV07XG4gICA3NzZcdCAgICAgIGFkZENoYXRNZXNzYWdlKG1lc3NhZ2VzKTtcbiAgIDc3N1x0ICAgICAgcmV0dXJuIG1lc3NhZ2VzO1xuICAgNzc4XHQgICAgfSk7XG4gICA3NzlcdFxuICAgNzgwXHQgICAgbGV0IGRldmljZUlkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NtY3RzOmRldmljZUlkJyk7XG4gICA3ODFcdCAgICBpZiAoIWRldmljZUlkKSB7XG4gICA3ODJcdCAgICAgIGRldmljZUlkID0gdXVpZHY0KCk7XG4gICA3ODNcdCAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjbWN0czpkZXZpY2VJZCcsIGRldmljZUlkKTtcbiAgIDc4NFx0ICAgIH1cbiAgIDc4NVx0XG4gICA3ODZcdCAgICBjb25zdCBib2R5OiBJbmNvbWluZ0lucHV0ID0ge1xuICAgNzg3XHQgICAgICBxdWVzdGlvbjogdmFsdWUsXG4gICA3ODhcdCAgICAgIGZhcUlkLFxuICAgNzg5XHQgICAgICBjaGF0SWQ6IGNoYXRJZCgpLFxuICAgNzkwXHQgICAgICB1c2VJZDogdXNlcigpPy5pZCxcbiAgIDc5MVx0ICAgICAgc3RvcmVkOiB7XG4gICA3OTJcdCAgICAgICAgZGV2aWNlSWQsXG4gICA3OTNcdCAgICAgICAgdXNlckluZm86ICgoKSA9PiB7XG4gICA3OTRcdCAgICAgICAgICBjb25zdCB1c2VySW5mb1N0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbWN0czp1c2VySW5mbycpO1xuICAgNzk1XHQgICAgICAgICAgaWYgKCF1c2VySW5mb1N0cikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgIDc5Nlx0ICAgICAgICAgIHRyeSB7XG4gICA3OTdcdCAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgIDc5OFx0ICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgIDc5OVx0ICAgICAgICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gcGFyc2UgdXNlckluZm8gZnJvbSBsb2NhbFN0b3JhZ2UnKTtcbiAgIDgwMFx0ICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgIDgwMVx0ICAgICAgICAgIH1cbiAgIDgwMlx0ICAgICAgICB9KSgpLFxuICAgODAzXHQgICAgICAgIGNoYXR3b290OiB7XG4gICA4MDRcdCAgICAgICAgICBjb252ZXJzYXRpb25faWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGBjaGF0d29vdDoke3Byb3BzLmNoYXRmbG93aWR9OmNvbnZlcnNhdGlvbl9pZGApLFxuICAgODA1XHQgICAgICAgIH0sXG4gICA4MDZcdCAgICAgIH0sXG4gICA4MDdcdCAgICB9O1xuICAgODA4XHRcbiAgIDgwOVx0ICAgIGlmICh1cGxvYWRzICYmIHVwbG9hZHMubGVuZ3RoID4gMCkgYm9keS51cGxvYWRzID0gdXBsb2FkcztcbiAgIDgxMFx0ICAgIGVsc2UgaWYgKCF1cGxvYWRzPy5sZW5ndGggJiYgZmlsZUNvbnRlbnQoKSAmJiBmaWxlU3VtbWFyeSgpKSB7XG4gICA4MTFcdCAgICAgIGxldCBmaWxlTmFtZSA9IHByb3BzLmZpbGVQYXRoPy5zcGxpdCgnLycpLnBvcCgpIHx8ICcnO1xuICAgODEyXHQgICAgICBmaWxlTmFtZSAmJiAhZmlsZU5hbWUuZW5kc1dpdGgoJy50eHQnKSAmJiAoZmlsZU5hbWUgKz0gJy50eHQnKTtcbiAgIDgxM1x0ICAgICAgYm9keS51cGxvYWRzID0gW1xuICAgODE0XHQgICAgICAgIHtcbiAgIDgxNVx0ICAgICAgICAgIGRhdGE6IGZpbGVDb250ZW50KCksXG4gICA4MTZcdCAgICAgICAgICB0eXBlOiAnZmlsZTpmdWxsJyxcbiAgIDgxN1x0ICAgICAgICAgIG5hbWU6IGZpbGVOYW1lLFxuICAgODE4XHQgICAgICAgICAgbWltZTogJ3RleHQvcGxhaW4nLFxuICAgODE5XHQgICAgICAgIH0sXG4gICA4MjBcdCAgICAgICAge1xuICAgODIxXHQgICAgICAgICAgZGF0YTogZmlsZVN1bW1hcnkoKSxcbiAgIDgyMlx0ICAgICAgICAgIHR5cGU6ICdmaWxlOmZ1bGwnLFxuICAgODIzXHQgICAgICAgICAgbmFtZTogZmlsZU5hbWUsXG4gICA4MjRcdCAgICAgICAgICBtaW1lOiAndGV4dC9wbGFpbicsXG4gICA4MjVcdCAgICAgICAgfSxcbiAgIDgyNlx0ICAgICAgXTtcbiAgIDgyN1x0ICAgIH1cbiAgIDgyOFx0XG4gICA4MjlcdCAgICBpZiAocHJvcHM/LmV4dGVybmFsRGF0YSkge1xuICAgODMwXHQgICAgICBib2R5LnVwbG9hZHMgPSBbXG4gICA4MzFcdCAgICAgICAge1xuICAgODMyXHQgICAgICAgICAgZGF0YTogcHJvcHM/LmV4dGVybmFsRGF0YSxcbiAgIDgzM1x0ICAgICAgICAgIHR5cGU6ICdmaWxlOmZ1bGwnLFxuICAgODM0XHQgICAgICAgICAgbmFtZTogJ2V4dGVybmFsX2RhdGEudHh0JyxcbiAgIDgzNVx0ICAgICAgICAgIG1pbWU6ICd0ZXh0L3BsYWluJyxcbiAgIDgzNlx0ICAgICAgICB9LFxuICAgODM3XHQgICAgICBdO1xuICAgODM4XHQgICAgfVxuICAgODM5XHRcbiAgIDg0MFx0ICAgIGlmIChwcm9wcy5jaGF0Zmxvd0NvbmZpZykgYm9keS5vdmVycmlkZUNvbmZpZyA9IHByb3BzLmNoYXRmbG93Q29uZmlnO1xuICAgODQxXHRcbiAgIDg0Mlx0ICAgIGlmIChsZWFkRW1haWwoKSkgYm9keS5sZWFkRW1haWwgPSBsZWFkRW1haWwoKTtcbiAgIDg0M1x0XG4gICA4NDRcdCAgICBpZiAoYWN0aW9uKSBib2R5LmFjdGlvbiA9IGFjdGlvbjtcbiAgIDg0NVx0XG4gICA4NDZcdCAgICAvLyBDaGVjayBuZXR3b3JrIHN0YXR1cyBiZWZvcmUgbWFraW5nIHRoZSByZXF1ZXN0XG4gICA4NDdcdCAgICBpZiAoIW5hdmlnYXRvci5vbkxpbmUpIHtcbiAgIDg0OFx0ICAgICAgc2V0SXNOZXR3b3JrRXJyb3IodHJ1ZSk7XG4gICA4NDlcdCAgICAgIHNldE5ldHdvcmtFcnJvck1lc3NhZ2UoJ03huqV0IGvhur90IG7hu5FpIG3huqFuZycpO1xuICAgODUwXHQgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA4NTFcdCAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgODUyXHQgICAgICAgIGFsbE1lc3NhZ2VzLnB1c2goe1xuICAgODUzXHQgICAgICAgICAgbWVzc2FnZTogJ1hpbiBs4buXaSwgaGnhu4duIHThuqFpIGtow7RuZyBjw7Mga+G6v3QgbuG7kWkgbeG6oW5nLiBWdWkgbMOybmcga2nhu4NtIHRyYSBs4bqhaSBr4bq/dCBu4buRaSB2w6AgdGjhu60gbOG6oWkgc2F1LicsXG4gICA4NTRcdCAgICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScsXG4gICA4NTVcdCAgICAgICAgICBkYXRlVGltZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgODU2XHQgICAgICAgIH0pO1xuICAgODU3XHQgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDg1OFx0ICAgICAgfSk7XG4gICA4NTlcdCAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgODYwXHQgICAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgODYxXHQgICAgICByZXR1cm47XG4gICA4NjJcdCAgICB9XG4gICA4NjNcdFxuICAgODY0XHQgICAgaWYgKGlzQ2hhdEZsb3dBdmFpbGFibGVUb1N0cmVhbSgpICYmICFmYXFJZCkge1xuICAgODY1XHQgICAgICBmZXRjaFJlc3BvbnNlRnJvbUV2ZW50U3RyZWFtKHByb3BzLmNoYXRmbG93aWQsIGJvZHkpO1xuICAgODY2XHQgICAgfSBlbHNlIHtcbiAgIDg2N1x0ICAgICAgdHJ5IHtcbiAgIDg2OFx0ICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZW5kTWVzc2FnZVF1ZXJ5KHtcbiAgIDg2OVx0ICAgICAgICAgIGNoYXRmbG93aWQ6IHByb3BzLmNoYXRmbG93aWQsXG4gICA4NzBcdCAgICAgICAgICBhcGlIb3N0OiBwcm9wcy5hcGlIb3N0LFxuICAgODcxXHQgICAgICAgICAgYm9keSxcbiAgIDg3Mlx0ICAgICAgICAgIG9uUmVxdWVzdDogcHJvcHMub25SZXF1ZXN0LFxuICAgODczXHQgICAgICAgIH0pO1xuICAgODc0XHRcbiAgIDg3NVx0ICAgICAgICBpZiAocmVzdWx0LmRhdGEpIHtcbiAgIDg3Nlx0ICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZGF0YTtcbiAgIDg3N1x0XG4gICA4NzhcdCAgICAgICAgICBsZXQgdGV4dCA9ICcnO1xuICAgODc5XHQgICAgICAgICAgaWYgKGRhdGEudGV4dCkgdGV4dCA9IGRhdGEudGV4dDtcbiAgIDg4MFx0ICAgICAgICAgIGVsc2UgaWYgKGRhdGEuanNvbikgdGV4dCA9IEpTT04uc3RyaW5naWZ5KGRhdGEuanNvbiwgbnVsbCwgMik7XG4gICA4ODFcdCAgICAgICAgICBlbHNlIHRleHQgPSBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcbiAgIDg4Mlx0XG4gICA4ODNcdCAgICAgICAgICBpZiAoZGF0YT8uY2hhdElkKSBzZXRDaGF0SWQoZGF0YS5jaGF0SWQpO1xuICAgODg0XHRcbiAgIDg4NVx0ICAgICAgICAgIHBsYXlSZWNlaXZlU291bmQoKTtcbiAgIDg4Nlx0XG4gICA4ODdcdCAgICAgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA4ODhcdCAgICAgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDg4OVx0ICAgICAgICAgICAgY29uc3QgbmV3TWVzc2FnZSA9IHtcbiAgIDg5MFx0ICAgICAgICAgICAgICBtZXNzYWdlOiB0ZXh0LFxuICAgODkxXHQgICAgICAgICAgICAgIGlkOiBkYXRhPy5jaGF0TWVzc2FnZUlkLFxuICAgODkyXHQgICAgICAgICAgICAgIHNvdXJjZURvY3VtZW50czogZGF0YT8uc291cmNlRG9jdW1lbnRzLFxuICAgODkzXHQgICAgICAgICAgICAgIHVzZWRUb29sczogZGF0YT8udXNlZFRvb2xzLFxuICAgODk0XHQgICAgICAgICAgICAgIGZpbGVBbm5vdGF0aW9uczogZGF0YT8uZmlsZUFubm90YXRpb25zLFxuICAgODk1XHQgICAgICAgICAgICAgIGFnZW50UmVhc29uaW5nOiBkYXRhPy5hZ2VudFJlYXNvbmluZyxcbiAgIDg5Nlx0ICAgICAgICAgICAgICBhY3Rpb246IGRhdGE/LmFjdGlvbixcbiAgIDg5N1x0ICAgICAgICAgICAgICBhcnRpZmFjdHM6IGRhdGE/LmFydGlmYWN0cyxcbiAgIDg5OFx0ICAgICAgICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScgYXMgbWVzc2FnZVR5cGUsXG4gICA4OTlcdCAgICAgICAgICAgICAgZmVlZGJhY2s6IG51bGwsXG4gICA5MDBcdCAgICAgICAgICAgICAgZGF0ZVRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgIDkwMVx0ICAgICAgICAgICAgfTtcbiAgIDkwMlx0ICAgICAgICAgICAgYWxsTWVzc2FnZXMucHVzaChuZXdNZXNzYWdlKTtcbiAgIDkwM1x0ICAgICAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgOTA0XHQgICAgICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA5MDVcdCAgICAgICAgICB9KTtcbiAgIDkwNlx0XG4gICA5MDdcdCAgICAgICAgICB1cGRhdGVNZXRhZGF0YShkYXRhLCB2YWx1ZSk7XG4gICA5MDhcdFxuICAgOTA5XHQgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICA5MTBcdCAgICAgICAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgOTExXHQgICAgICAgICAgc2V0VXNlcklucHV0KCcnKTtcbiAgIDkxMlx0ICAgICAgICAgIHNldFVwbG9hZGVkRmlsZXMoW10pO1xuICAgOTEzXHQgICAgICAgICAgc2Nyb2xsVG9Cb3R0b20oKTtcbiAgIDkxNFx0ICAgICAgICB9XG4gICA5MTVcdCAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICA5MTZcdCAgICAgICAgaWYgKCFuYXZpZ2F0b3Iub25MaW5lKSB7XG4gICA5MTdcdCAgICAgICAgICBzZXRJc05ldHdvcmtFcnJvcih0cnVlKTtcbiAgIDkxOFx0ICAgICAgICAgIHNldE5ldHdvcmtFcnJvck1lc3NhZ2UoJ03huqV0IGvhur90IG7hu5FpIG3huqFuZycpO1xuICAgOTE5XHQgICAgICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgOTIwXHQgICAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA5MjFcdCAgICAgICAgICAgIGFsbE1lc3NhZ2VzLnB1c2goe1xuICAgOTIyXHQgICAgICAgICAgICAgIG1lc3NhZ2U6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBraMO0bmcgY8OzIGvhur90IG7hu5FpIG3huqFuZy4gVnVpIGzDsm5nIGtp4buDbSB0cmEgbOG6oWkga+G6v3QgbuG7kWkgdsOgIHRo4butIGzhuqFpIHNhdS4nLFxuICAgOTIzXHQgICAgICAgICAgICAgIHR5cGU6ICdhcGlNZXNzYWdlJyxcbiAgIDkyNFx0ICAgICAgICAgICAgICBkYXRlVGltZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgOTI1XHQgICAgICAgICAgICB9KTtcbiAgIDkyNlx0ICAgICAgICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgOTI3XHQgICAgICAgICAgfSk7XG4gICA5MjhcdCAgICAgICAgfSBlbHNlIHtcbiAgIDkyOVx0ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgOTMwXHQgICAgICAgICAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgJ21lc3NhZ2UnIGluIGVycm9yKSB7XG4gICA5MzFcdCAgICAgICAgICAgIGhhbmRsZUVycm9yKGBFcnJvcjogJHsoZXJyb3IgYXMgeyBtZXNzYWdlOiBzdHJpbmcgfSkubWVzc2FnZS5yZXBsYWNlQWxsKCdFcnJvcjonLCAnICcpfWApO1xuICAgOTMyXHQgICAgICAgICAgICByZXR1cm47XG4gICA5MzNcdCAgICAgICAgICB9XG4gICA5MzRcdCAgICAgICAgICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgOTM1XHQgICAgICAgICAgICBoYW5kbGVFcnJvcihlcnJvcik7XG4gICA5MzZcdCAgICAgICAgICAgIHJldHVybjtcbiAgIDkzN1x0ICAgICAgICAgIH1cbiAgIDkzOFx0ICAgICAgICAgIGhhbmRsZUVycm9yKCk7XG4gICA5MzlcdCAgICAgICAgfVxuICAgOTQwXHQgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgOTQxXHQgICAgICAgIHNldERpc2FibGVJbnB1dChmYWxzZSk7XG4gICA5NDJcdCAgICAgICAgcmV0dXJuO1xuICAgOTQzXHQgICAgICB9XG4gICA5NDRcdCAgICB9XG4gICA5NDVcdCAgfTtcbiAgIDk0Nlx0XG4gICA5NDdcdCAgY29uc3QgaGFuZGxlQWN0aW9uQ2xpY2sgPSBhc3luYyAobGFiZWw6IHN0cmluZywgYWN0aW9uOiBJQWN0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCkgPT4ge1xuICAgOTQ4XHQgICAgc2V0VXNlcklucHV0KGxhYmVsKTtcbiAgIDk0OVx0ICAgIHNldE1lc3NhZ2VzKChkYXRhKSA9PiB7XG4gICA5NTBcdCAgICAgIGNvbnN0IHVwZGF0ZWQgPSBkYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xuICAgOTUxXHQgICAgICAgIGlmIChpID09PSBkYXRhLmxlbmd0aCAtIDEpIHtcbiAgIDk1Mlx0ICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGFjdGlvbjogbnVsbCB9O1xuICAgOTUzXHQgICAgICAgIH1cbiAgIDk1NFx0ICAgICAgICByZXR1cm4gaXRlbTtcbiAgIDk1NVx0ICAgICAgfSk7XG4gICA5NTZcdCAgICAgIGFkZENoYXRNZXNzYWdlKHVwZGF0ZWQpO1xuICAgOTU3XHQgICAgICByZXR1cm4gWy4uLnVwZGF0ZWRdO1xuICAgOTU4XHQgICAgfSk7XG4gICA5NTlcdCAgICBoYW5kbGVTdWJtaXQobGFiZWwsIGFjdGlvbik7XG4gICA5NjBcdCAgfTtcbiAgIDk2MVx0XG4gICA5NjJcdCAgY29uc3QgY2xlYXJDaGF0ID0gKCkgPT4ge1xuICAgOTYzXHQgICAgdHJ5IHtcbiAgIDk2NFx0ICAgICAgcmVtb3ZlTG9jYWxTdG9yYWdlQ2hhdEhpc3RvcnkocHJvcHMuY2hhdGZsb3dpZCk7XG4gICA5NjVcdCAgICAgIHNldENoYXRJZChcbiAgIDk2Nlx0ICAgICAgICAocHJvcHMuY2hhdGZsb3dDb25maWc/LnZhcnMgYXMgYW55KT8uY3VzdG9tZXJJZCA/IGAkeyhwcm9wcy5jaGF0Zmxvd0NvbmZpZz8udmFycyBhcyBhbnkpLmN1c3RvbWVySWQudG9TdHJpbmcoKX0rJHt1dWlkdjQoKX1gIDogdXVpZHY0KCksXG4gICA5NjdcdCAgICAgICk7XG4gICA5NjhcdCAgICAgIHNldFVwbG9hZGVkRmlsZXMoW10pO1xuICAgOTY5XHQgICAgICBjb25zdCBtZXNzYWdlczogTWVzc2FnZVR5cGVbXSA9IFtcbiAgIDk3MFx0ICAgICAgICB7XG4gICA5NzFcdCAgICAgICAgICBtZXNzYWdlOiBwcm9wcy53ZWxjb21lTWVzc2FnZSA/PyBkZWZhdWx0V2VsY29tZU1lc3NhZ2UsXG4gICA5NzJcdCAgICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScsXG4gICA5NzNcdCAgICAgICAgfSxcbiAgIDk3NFx0ICAgICAgICAuLi4ocHJvcHMuc2Vjb25kTWVzc2FnZSA/IFt7IG1lc3NhZ2U6IHByb3BzLnNlY29uZE1lc3NhZ2UsIHR5cGU6ICdhcGlNZXNzYWdlJyBhcyBtZXNzYWdlVHlwZSB9XSA6IFtdKSxcbiAgIDk3NVx0ICAgICAgXTtcbiAgIDk3Nlx0ICAgICAgaWYgKGxlYWRzQ29uZmlnKCk/LnN0YXR1cyAmJiAhZ2V0TG9jYWxTdG9yYWdlQ2hhdGZsb3cocHJvcHMuY2hhdGZsb3dpZCk/LmxlYWQpIHtcbiAgIDk3N1x0ICAgICAgICBtZXNzYWdlcy5wdXNoKHsgbWVzc2FnZTogJycsIHR5cGU6ICdsZWFkQ2FwdHVyZU1lc3NhZ2UnIH0pO1xuICAgOTc4XHQgICAgICB9XG4gICA5NzlcdCAgICAgIHNldE1lc3NhZ2VzKG1lc3NhZ2VzKTtcbiAgIDk4MFx0ICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgIDk4MVx0ICAgICAgY29uc3QgZXJyb3JEYXRhID0gZXJyb3IucmVzcG9uc2UuZGF0YSB8fCBgJHtlcnJvci5yZXNwb25zZS5zdGF0dXN9OiAke2Vycm9yLnJlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgIDk4Mlx0ICAgICAgY29uc29sZS5lcnJvcihgZXJyb3I6ICR7ZXJyb3JEYXRhfWApO1xuICAgOTgzXHQgICAgfVxuICAgOTg0XHQgIH07XG4gICA5ODVcdFxuICAgOTg2XHQgICh3aW5kb3cgYXMgYW55KS5jbGVhckNoYXQgPSBjbGVhckNoYXQ7XG4gICA5ODdcdFxuICAgOTg4XHQgIG9uTW91bnQoKCkgPT4ge1xuICAgOTg5XHQgICAgbGV0IHBlbmRpbmcgPSBmYWxzZTtcbiAgIDk5MFx0ICAgIGNvbnN0IGlkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgOTkxXHQgICAgICBpZiAocGVuZGluZyB8fCBkb2N1bWVudC5oaWRkZW4pIHJldHVybjtcbiAgIDk5Mlx0ICAgICAgY29uc3QgY29udmVyc2F0aW9uSWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgY2hhdHdvb3Q6JHtwcm9wcy5jaGF0Zmxvd2lkfTpjb252ZXJzYXRpb25faWRgKTtcbiAgIDk5M1x0XG4gICA5OTRcdCAgICAgIGlmIChjb252ZXJzYXRpb25JZCkge1xuICAgOTk1XHQgICAgICAgIHBlbmRpbmcgPSB0cnVlO1xuICAgOTk2XHQgICAgICAgIHNlbmRNZXNzYWdlUXVlcnkoe1xuICAgOTk3XHQgICAgICAgICAgY2hhdGZsb3dpZDogcHJvcHMuY2hhdGZsb3dpZCxcbiAgIDk5OFx0ICAgICAgICAgIGFwaUhvc3Q6IHByb3BzLmFwaUhvc3QsXG4gICA5OTlcdCAgICAgICAgICBib2R5OiB7XG4gIDEwMDBcdCAgICAgICAgICAgIHF1ZXN0aW9uOiAncGluZycsXG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiAyMDk0XG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCJhOTMyOTJmYy04NTNjLTRlZTItOWUzNy0zOGRhNWYyYWJjMGQ7dG9vbHVfdnJ0eF8wMTNlNnFHZk5HdGNob21LYTRjYmp4V1UiOnsicmVxdWVzdElkIjoiYTkzMjkyZmMtODUzYy00ZWUyLTllMzctMzhkYTVmMmFiYzBkIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMTNlNnFHZk5HdGNob21LYTRjYmp4V1UiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJIZXJlJ3MgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGBjYXQgLW5gIG9uIHNyYy90eXBlcy50czpcbiAgICAgMVx0XG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiAxXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCI3NDljNzBhMy0yZDJlLTQyY2QtYTI0MC0wNzdiYjMyOWZlYzc7dG9vbHVfdnJ0eF8wMThXc2NEUkEycFJCcHpZNUFMWVg0dWgiOnsicmVxdWVzdElkIjoiNzQ5YzcwYTMtMmQyZS00MmNkLWEyNDAtMDc3YmIzMjlmZWM3IiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMThXc2NEUkEycFJCcHpZNUFMWVg0dWgiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJIZXJlJ3MgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGBjYXQgLW5gIG9uIHBhY2thZ2UuanNvbjpcbiAgICAgMVx0e1xuICAgICAyXHQgIFwibmFtZVwiOiBcImNtY3RzLWMtYWdlbnQtZW1iZWRkaW5nLXJlYWN0XCIsXG4gICAgIDNcdCAgXCJ2ZXJzaW9uXCI6IFwiMS4wLjM5XCIsXG4gICAgIDRcdCAgXCJkZXNjcmlwdGlvblwiOiBcIlJlYWN0IGxpYnJhcnkgdG8gZGlzcGxheSBmbG93aXNlIGNoYXRib3Qgb24geW91ciB3ZWJzaXRlXCIsXG4gICAgIDVcdCAgXCJtYWluXCI6IFwiZGlzdC9pbmRleC5qc1wiLFxuICAgICA2XHQgIFwidHlwZXNcIjogXCJkaXN0L2luZGV4LmQudHNcIixcbiAgICAgN1x0ICBcInR5cGVcIjogXCJtb2R1bGVcIixcbiAgICAgOFx0ICBcInNjcmlwdHNcIjoge1xuICAgICA5XHQgICAgXCJkZXZcIjogXCJyb2xsdXAgLS13YXRjaCAtLWNvbmZpZyByb2xsdXAuY29uZmlnLmpzXCIsXG4gICAgMTBcdCAgICBcImJ1aWxkXCI6IFwicm9sbHVwIC0tY29uZmlnIHJvbGx1cC5jb25maWcuanNcIixcbiAgICAxMVx0ICAgIFwibGludFwiOiBcImVzbGludCAtLWZpeCBcXFwic3JjLyoqLyoudHMqXFxcIlwiLFxuICAgIDEyXHQgICAgXCJidWlsZC1hbmQtcHVibGlzaFwiOiBcInlhcm4gaW5zdGFsbCAmJiB5YXJuIGJ1aWxkICYmIG5wbSBwdWJsaXNoXCJcbiAgICAxM1x0ICB9LFxuICAgIDE0XHQgIFwia2V5d29yZHNcIjogW10sXG4gICAgMTVcdCAgXCJsaWNlbnNlXCI6IFwiTUlUXCIsXG4gICAgMTZcdCAgXCJkZXBlbmRlbmNpZXNcIjoge1xuICAgIDE3XHQgICAgXCJyZWFjdFwiOiBcIjE4LjIuMFwiLFxuICAgIDE4XHQgICAgXCJyZWFjdC1kb21cIjogXCIxOC4yLjBcIixcbiAgICAxOVx0ICAgIFwiQGxhZGxlL3JlYWN0XCI6IFwiMi41LjFcIlxuICAgIDIwXHQgIH0sXG4gICAgMjFcdCAgXCJkZXZEZXBlbmRlbmNpZXNcIjoge1xuICAgIDIyXHQgICAgXCJAYmFiZWwvcHJlc2V0LXJlYWN0XCI6IFwiNy4xOC42XCIsXG4gICAgMjNcdCAgICBcIkBiYWJlbC9wcmVzZXQtdHlwZXNjcmlwdFwiOiBcIjcuMjEuNFwiLFxuICAgIDI0XHQgICAgXCJAcm9sbHVwL3BsdWdpbi1iYWJlbFwiOiBcIjYuMC4zXCIsXG4gICAgMjVcdCAgICBcIkByb2xsdXAvcGx1Z2luLW5vZGUtcmVzb2x2ZVwiOiBcIjE1LjAuMVwiLFxuICAgIDI2XHQgICAgXCJAcm9sbHVwL3BsdWdpbi10ZXJzZXJcIjogXCIwLjQuMFwiLFxuICAgIDI3XHQgICAgXCJAcm9sbHVwL3BsdWdpbi10eXBlc2NyaXB0XCI6IFwiMTEuMC4wXCIsXG4gICAgMjhcdCAgICBcIkB0eXBlcy9ub2RlXCI6IFwiMTguMTUuMTFcIixcbiAgICAyOVx0ICAgIFwiQHR5cGVzL3JlYWN0XCI6IFwiMTguMC4zMlwiLFxuICAgIDMwXHQgICAgXCJjbWN0cy1jLWFnZW50LWVtYmVkZGluZ1wiOiBcIjEuMC4zOVwiLFxuICAgIDMxXHQgICAgXCJlc2xpbnRcIjogXCI4LjM3LjBcIixcbiAgICAzMlx0ICAgIFwicHJldHRpZXJcIjogXCJeMy40LjJcIixcbiAgICAzM1x0ICAgIFwicm9sbHVwXCI6IFwiMy4yMC4yXCIsXG4gICAgMzRcdCAgICBcInJvbGx1cC1wbHVnaW4tdHlwZXNjcmlwdC1wYXRoc1wiOiBcIjEuNC4wXCIsXG4gICAgMzVcdCAgICBcInRzbGliXCI6IFwiMi41LjBcIixcbiAgICAzNlx0ICAgIFwidHN4XCI6IFwiMy4xMi42XCIsXG4gICAgMzdcdCAgICBcInR5cGVzY3JpcHRcIjogXCI1LjAuM1wiXG4gICAgMzhcdCAgfSxcbiAgICAzOVx0ICBcInBlZXJEZXBlbmRlbmNpZXNcIjoge1xuICAgIDQwXHQgICAgXCJjbWN0cy1jLWFnZW50LWVtYmVkZGluZ1wiOiBcIipcIixcbiAgICA0MVx0ICAgIFwicmVhY3RcIjogXCIxOC54XCJcbiAgICA0Mlx0ICB9LFxuICAgIDQzXHQgIFwicGFja2FnZU1hbmFnZXJcIjogXCJ5YXJuQDEuMjIuMjIrc2hhNTEyLmE2YjJmNzkwNmI3MjFiYmEzZDY3ZDRhZmYwODNkZjA0ZGFkNjRjMzk5NzA3ODQxYjdhY2YwMGY2YjEzM2I3YWMyNDI1NWYyNjUyZmEyMmFlMzUzNDMyOWRjNjE4MDUzNGU5OGQxNzQzMjAzN2ZmNmZkMTQwNTU2ZTJiYjMxMzdlXCJcbiAgICA0NFx0fVxuICAgIDQ1XHRcblRvdGFsIGxpbmVzIGluIGZpbGU6IDQ1XG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCIyMWE1NWM1My00NmIyLTRiYzMtOTg1MS00NjFiMDAwYjA3ZDg7dG9vbHVfdnJ0eF8wMTltcmRndnF6aW9CVUE4cWhzTHRUdnIiOnsicmVxdWVzdElkIjoiMjFhNTVjNTMtNDZiMi00YmMzLTk4NTEtNDYxYjAwMGIwN2Q4IiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMTltcmRndnF6aW9CVUE4cWhzTHRUdnIiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJUaGUgZm9sbG93aW5nIGNvZGUgc2VjdGlvbnMgd2VyZSByZXRyaWV2ZWQ6XG5QYXRoOiBzcmMvY29tcG9uZW50cy9Cb3QudHN4XG4gICAgIDFcdGltcG9ydCB7IEF2YXRhciB9IGZyb20gJ0AvY29tcG9uZW50cy9hdmF0YXJzL0F2YXRhcic7XG4gICAgIDJcdGltcG9ydCB7IEZvbGxvd1VwUHJvbXB0QnViYmxlIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1YmJsZXMvRm9sbG93VXBQcm9tcHRCdWJibGUnO1xuICAgICAzXHRpbXBvcnQgeyBMZWFkQ2FwdHVyZUJ1YmJsZSB9IGZyb20gJ0AvY29tcG9uZW50cy9idWJibGVzL0xlYWRDYXB0dXJlQnViYmxlJztcbiAgICAgNFx0aW1wb3J0IHsgRGVsZXRlQnV0dG9uLCBTZW5kQnV0dG9uIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1dHRvbnMvU2VuZEJ1dHRvbic7XG4gICAgIDVcdGltcG9ydCB7IEZpbGVQcmV2aWV3IH0gZnJvbSAnQC9jb21wb25lbnRzL2lucHV0cy90ZXh0SW5wdXQvY29tcG9uZW50cy9GaWxlUHJldmlldyc7XG4gICAgIDZcdGltcG9ydCB7XG4gICAgIDdcdCAgQm90TWVzc2FnZVRoZW1lLFxuICAgICA4XHQgIERhdGVUaW1lVG9nZ2xlVGhlbWUsXG4gICAgIDlcdCAgRGlzY2xhaW1lclBvcFVwVGhlbWUsXG4gICAgMTBcdCAgRmVlZGJhY2tUaGVtZSxcbiAgICAxMVx0ICBGb290ZXJUaGVtZSxcbiAgICAxMlx0ICBUZXh0SW5wdXRUaGVtZSxcbiAgICAxM1x0ICBVc2VyTWVzc2FnZVRoZW1lLFxuICAgIDE0XHR9IGZyb20gJ0AvZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAxNVx0aW1wb3J0IHsgRGlzY2xhaW1lclBvcHVwLCBQb3B1cCB9IGZyb20gJ0AvZmVhdHVyZXMvcG9wdXAnO1xuICAgIDE2XHRpbXBvcnQge1xuICAgIDE3XHQgIGNyZWF0ZUF0dGFjaG1lbnRXaXRoRm9ybURhdGEsXG4gICAgMThcdCAgRmVlZGJhY2tSYXRpbmdUeXBlLFxuICAgIDE5XHQgIGdldENoYXRib3RDb25maWcsXG4gICAgMjBcdCAgZ2V0RmlsZUNvbnRlbnQsXG4gICAgMjFcdCAgZ2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UsXG4gICAgMjJcdCAgSW5jb21pbmdJbnB1dCxcbiAgICAyM1x0ICBpc1N0cmVhbUF2YWlsYWJsZVF1ZXJ5LFxuLi4uXG4gICAgODdcdFxuICAgIDg4XHRleHBvcnQgdHlwZSBJQWN0aW9uID0ge1xuICAgIDg5XHQgIGlkPzogc3RyaW5nO1xuICAgIDkwXHQgIGVsZW1lbnRzPzogQXJyYXk8e1xuICAgIDkxXHQgICAgdHlwZTogc3RyaW5nO1xuICAgIDkyXHQgICAgbGFiZWw6IHN0cmluZztcbiAgICA5M1x0ICB9PjtcbiAgICA5NFx0ICBtYXBwaW5nPzoge1xuICAgIDk1XHQgICAgYXBwcm92ZTogc3RyaW5nO1xuICAgIDk2XHQgICAgcmVqZWN0OiBzdHJpbmc7XG4gICAgOTdcdCAgICB0b29sQ2FsbHM6IGFueVtdO1xuICAgIDk4XHQgIH07XG4gICAgOTlcdH07XG4gICAxMDBcdFxuICAgMTAxXHRleHBvcnQgdHlwZSBGaWxlVXBsb2FkID0gT21pdDxGaWxlUHJldmlldywgJ3ByZXZpZXcnPjtcbiAgIDEwMlx0XG4gICAxMDNcdGV4cG9ydCB0eXBlIE1lc3NhZ2VUeXBlID0ge1xuICAgMTA0XHQgIG1lc3NhZ2VJZD86IHN0cmluZztcbiAgIDEwNVx0ICBtZXNzYWdlOiBzdHJpbmc7XG4gICAxMDZcdCAgdHlwZTogbWVzc2FnZVR5cGU7XG4gICAxMDdcdCAgc291cmNlRG9jdW1lbnRzPzogYW55O1xuICAgMTA4XHQgIGZpbGVBbm5vdGF0aW9ucz86IGFueTtcbiAgIDEwOVx0ICBmaWxlVXBsb2Fkcz86IFBhcnRpYWw8RmlsZVVwbG9hZD5bXTtcbiAgIDExMFx0ICBhcnRpZmFjdHM/OiBQYXJ0aWFsPEZpbGVVcGxvYWQ+W107XG4gICAxMTFcdCAgYWdlbnRSZWFzb25pbmc/OiBJQWdlbnRSZWFzb25pbmdbXTtcbiAgIDExMlx0ICB1c2VkVG9vbHM/OiBhbnlbXTtcbiAgIDExM1x0ICBhY3Rpb24/OiBJQWN0aW9uIHwgbnVsbDtcbiAgIDExNFx0ICByYXRpbmc/OiBGZWVkYmFja1JhdGluZ1R5cGU7XG4gICAxMTVcdCAgaWQ/OiBzdHJpbmc7XG4gICAxMTZcdCAgZm9sbG93VXBQcm9tcHRzPzogc3RyaW5nO1xuICAgMTE3XHQgIGRhdGVUaW1lPzogc3RyaW5nO1xuICAgMTE4XHR9O1xuICAgMTE5XHRcbiAgIDEyMFx0dHlwZSBJVXBsb2FkcyA9IHtcbiAgIDEyMVx0ICBkYXRhOiBGaWxlUHJldmlld0RhdGE7XG4gICAxMjJcdCAgdHlwZTogc3RyaW5nO1xuICAgMTIzXHQgIG5hbWU6IHN0cmluZztcbiAgIDEyNFx0ICBtaW1lOiBzdHJpbmc7XG4gICAxMjVcdCAgZmlsZT86IGFueTtcbiAgIDEyNlx0fVtdO1xuICAgMTI3XHRcbiAgIDEyOFx0dHlwZSBvYnNlcnZlckNvbmZpZ1R5cGUgPSAoYWNjZXNzb3I6IHN0cmluZyB8IGJvb2xlYW4gfCBvYmplY3QgfCBNZXNzYWdlVHlwZVtdKSA9PiB2b2lkO1xuICAgMTI5XHRleHBvcnQgdHlwZSBvYnNlcnZlcnNDb25maWdUeXBlID0gUmVjb3JkPCdvYnNlcnZlVXNlcklucHV0JyB8ICdvYnNlcnZlTG9hZGluZycgfCAnb2JzZXJ2ZU1lc3NhZ2VzJywgb2JzZXJ2ZXJDb25maWdUeXBlPjtcbiAgIDEzMFx0XG4gICAxMzFcdGV4cG9ydCB0eXBlIEJvdFByb3BzID0ge1xuICAgMTMyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgIDEzM1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgMTM0XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgIDEzNVx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgMTM2XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM3XHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzhcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM5XHQgIGJvdE1lc3NhZ2U/OiBCb3RNZXNzYWdlVGhlbWU7XG4gICAxNDBcdCAgdXNlck1lc3NhZ2U/OiBVc2VyTWVzc2FnZVRoZW1lO1xuICAgMTQxXHQgIHRleHRJbnB1dD86IFRleHRJbnB1dFRoZW1lO1xuICAgMTQyXHQgIGZlZWRiYWNrPzogRmVlZGJhY2tUaGVtZTtcbiAgIDE0M1x0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDRcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDVcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ2XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0N1x0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgMTQ4XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgIDE0OVx0ICB0aXRsZT86IHN0cmluZztcbiAgIDE1MFx0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgIDE1MVx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgIDE1Mlx0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgIDE1M1x0ICBmb290ZXI/OiBGb290ZXJUaGVtZTtcbiAgIDE1NFx0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAxNTVcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcbiAgIDE1Nlx0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgeyBwcm9tcHQ6IHN0cmluZyB9PjtcbiAgIDE1N1x0ICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XG4gICAxNThcdCAgY2xlYXJDaGF0T25SZWxvYWQ/OiBib29sZWFuO1xuICAgMTU5XHQgIGRpc2NsYWltZXI/OiBEaXNjbGFpbWVyUG9wVXBUaGVtZTtcbiAgIDE2MFx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAxNjFcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAxNjJcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAxNjNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAxNjRcdCAgaXNVc2VGQVE/OiBib29sZWFuO1xuICAgMTY1XHQgIGZpbGVQYXRoPzogc3RyaW5nO1xuICAgMTY2XHQgIHN1Z2dlc3RRdWVzdGlvbnM/OiBzdHJpbmc7XG4gICAxNjdcdCAgZXh0ZXJuYWxEYXRhPzogc3RyaW5nO1xuICAgMTY4XHQgIGNhbGxCYWNrRnVuY3Rpb24/OiAoZTogYW55KSA9PiB2b2lkO1xuICAgMTY5XHQgIGNhbGxCYWNrSWNvbj86IHN0cmluZztcbiAgIDE3MFx0fTtcbiAgIDE3MVx0XG4gICAxNzJcdGV4cG9ydCB0eXBlIExlYWRzQ29uZmlnID0ge1xuICAgMTczXHQgIHN0YXR1czogYm9vbGVhbjtcbiAgIDE3NFx0ICB0aXRsZT86IHN0cmluZztcbiAgIDE3NVx0ICBuYW1lPzogYm9vbGVhbjtcbiAgIDE3Nlx0ICBlbWFpbD86IGJvb2xlYW47XG4gICAxNzdcdCAgcGhvbmU/OiBib29sZWFuO1xuICAgMTc4XHQgIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nO1xuICAgMTc5XHR9O1xuICAgMTgwXHRcbiAgIDE4MVx0Y29uc3QgZGVmYXVsdFdlbGNvbWVNZXNzYWdlID0gJ1hpbiBjaMOgbyB0w7RpIGPDsyB0aOG7gyBnacO6cCBnw6wgY2hvIGLhuqFuPyc7XG4gICAxODJcdGNvbnN0IHN0YXR1c01zZyA9IHtcbiAgIDE4M1x0ICAzOiAnxJBhbmcgeOG7rSBsw70uLi4nLFxuICAgMTg0XHQgIDEwOiAnxJBhbmcgdOG6o2kgZOG7ryBsaeG7h3UsIHZ1aSBsw7JuZyDEkeG7o2kuLi4nLFxuICAgMTg1XHQgIDQwOiAnWGluIGzhu5dpLCBoaeG7h24gdOG6oWkgaOG7hyB0aOG7kW5nIMSRYW5nIHF1w6EgdOG6o2ksIHZ1aSBsw7JuZyB0aOG7rSBs4bqhaSBzYXUuJyxcbiAgIDE4Nlx0ICA1MDogJycsXG4gICAxODdcdH07XG4gICAxODhcdFxuICAgMTg5XHRjb25zdCBkZWZhdWx0QmFja2dyb3VuZENvbG9yID0gJyNmZmZmZmYnO1xuICAgMTkwXHRjb25zdCBkZWZhdWx0VGV4dENvbG9yID0gJyMzMDMyMzUnO1xuICAgMTkxXHRcbiAgIDE5Mlx0ZXhwb3J0IGNvbnN0IEJvdCA9IChib3RQcm9wczogQm90UHJvcHMgJiB7IGNsYXNzPzogc3RyaW5nIH0pID0+IHtcbiAgIDE5M1x0ICAvLyBzZXQgYSBkZWZhdWx0IHZhbHVlIGZvciBzaG93VGl0bGUgaWYgbm90IHNldCBhbmQgbWVyZ2Ugd2l0aCBvdGhlciBwcm9wc1xuICAgMTk0XHRcbiAgIDE5NVx0ICBjb25zdCBwcm9wcyA9IG1lcmdlUHJvcHMoeyBzaG93VGl0bGU6IHRydWUgfSwgYm90UHJvcHMpO1xuICAgMTk2XHQgIGxldCBjaGF0Q29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgIDE5N1x0ICBsZXQgYm90dG9tU3BhY2VyOiBIVE1MRGl2RWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgIDE5OFx0ICBsZXQgYm90Q29udGFpbmVyOiBIVE1MRGl2RWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgIDE5OVx0ICBsZXQgaW50ZXJ2YWxDdXJyZW50TXNnOiBhbnk7XG4uLi5cbiAgIDIzMVx0ICBjb25zdCBbZGlzY2xhaW1lclBvcHVwT3Blbiwgc2V0RGlzY2xhaW1lclBvcHVwT3Blbl0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjMyXHQgIGNvbnN0IFtkaXNhYmxlSW5wdXQsIHNldERpc2FibGVJbnB1dF0gPSBjcmVhdGVTaWduYWwoZmFsc2UpO1xuICAgMjMzXHQgIGNvbnN0IFtmaWxlU3VtbWFyeSwgc2V0RmlsZVN1bW1hcnldID0gY3JlYXRlU2lnbmFsKCcnKTtcbiAgIDIzNFx0ICBjb25zdCBbZmlsZUNvbnRlbnQsIHNldEZpbGVDb250ZW50XSA9IGNyZWF0ZVNpZ25hbCgnJyk7XG4gICAyMzVcdCAgY29uc3QgW3N1Z2dlc3RRdWVzdGlvbiwgc2V0U3VnZ2VzdFF1ZXN0aW9uXSA9IGNyZWF0ZVNpZ25hbChbXSk7XG4gICAyMzZcdFxuICAgMjM3XHQgIC8vIGRyYWcgJiBkcm9wIGZpbGUgaW5wdXRcbiAgIDIzOFx0ICAvLyBUT0RPOiBmaXggdGhpcyB0eXBlXG4gICAyMzlcdCAgY29uc3QgW3ByZXZpZXdzLCBzZXRQcmV2aWV3c10gPSBjcmVhdGVTaWduYWw8RmlsZVByZXZpZXdbXT4oW10pO1xuICAgMjQwXHRcbiAgIDI0MVx0ICAvLyBhdWRpbyByZWNvcmRpbmdcbiAgIDI0Mlx0ICBjb25zdCBbZWxhcHNlZFRpbWUsIHNldEVsYXBzZWRUaW1lXSA9IGNyZWF0ZVNpZ25hbCgnMDA6MDAnKTtcbiAgIDI0M1x0ICBjb25zdCBbaXNSZWNvcmRpbmcsIHNldElzUmVjb3JkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDRcdCAgY29uc3QgW3JlY29yZGluZ05vdFN1cHBvcnRlZCwgc2V0UmVjb3JkaW5nTm90U3VwcG9ydGVkXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAyNDVcdCAgY29uc3QgW2lzTG9hZGluZ1JlY29yZGluZywgc2V0SXNMb2FkaW5nUmVjb3JkaW5nXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4uLi5cbiAgIDI1OVx0XG4gICAyNjBcdCAgb25Nb3VudCgoKSA9PiB7XG4gICAyNjFcdCAgICBpZiAoYm90UHJvcHM/Lm9ic2VydmVyc0NvbmZpZykge1xuICAgMjYyXHQgICAgICBjb25zdCB7IG9ic2VydmVVc2VySW5wdXQsIG9ic2VydmVMb2FkaW5nLCBvYnNlcnZlTWVzc2FnZXMgfSA9IGJvdFByb3BzLm9ic2VydmVyc0NvbmZpZztcbiAgIDI2M1x0ICAgICAgdHlwZW9mIG9ic2VydmVVc2VySW5wdXQgPT09ICdmdW5jdGlvbicgJiZcbiAgIDI2NFx0ICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29saWQvcmVhY3Rpdml0eVxuICAgMjY1XHQgICAgICAgIGNyZWF0ZU1lbW8oKCkgPT4ge1xuICAgMjY2XHQgICAgICAgICAgb2JzZXJ2ZVVzZXJJbnB1dCh1c2VySW5wdXQoKSk7XG4gICAyNjdcdCAgICAgICAgfSk7XG4gICAyNjhcdCAgICAgIHR5cGVvZiBvYnNlcnZlTG9hZGluZyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgMjY5XHQgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb2xpZC9yZWFjdGl2aXR5XG4gICAyNzBcdCAgICAgICAgY3JlYXRlTWVtbygoKSA9PiB7XG4gICAyNzFcdCAgICAgICAgICBvYnNlcnZlTG9hZGluZyhsb2FkaW5nKCkpO1xuICAgMjcyXHQgICAgICAgIH0pO1xuICAgMjczXHQgICAgICB0eXBlb2Ygb2JzZXJ2ZU1lc3NhZ2VzID09PSAnZnVuY3Rpb24nICYmXG4gICAyNzRcdCAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbGlkL3JlYWN0aXZpdHlcbiAgIDI3NVx0ICAgICAgICBjcmVhdGVNZW1vKCgpID0+IHtcbiAgIDI3Nlx0ICAgICAgICAgIG9ic2VydmVNZXNzYWdlcyhtZXNzYWdlcygpKTtcbiAgIDI3N1x0ICAgICAgICB9KTtcbiAgIDI3OFx0ICAgIH1cbiAgIDI3OVx0XG4gICAyODBcdCAgICBpZiAoIWJvdHRvbVNwYWNlcikgcmV0dXJuO1xuICAgMjgxXHQgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAyODJcdCAgICAgIGNoYXRDb250YWluZXI/LnNjcm9sbFRvKDAsIGNoYXRDb250YWluZXIuc2Nyb2xsSGVpZ2h0KTtcbiAgIDI4M1x0ICAgIH0sIDUwKTtcbiAgIDI4NFx0ICB9KTtcbi4uLlxuICAxNzgwXHQgICAgICAgICAgICAgICAgICAgIHttZXNzYWdlLnR5cGUgPT09ICdhcGlNZXNzYWdlJyAmJiAoXG4gIDE3ODFcdCAgICAgICAgICAgICAgICAgICAgICA8Qm90QnViYmxlXG4gIDE3ODJcdCAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uPXtbLi4ubWVzc2FnZXMoKV1baW5kZXgoKSAtIDFdPy5tZXNzYWdlfVxuICAxNzgzXHQgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPXttZXNzYWdlfVxuICAxNzg0XHQgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZXNzYWdlcz17c2V0TWVzc2FnZXN9XG4gIDE3ODVcdCAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVBbm5vdGF0aW9ucz17bWVzc2FnZS5maWxlQW5ub3RhdGlvbnN9XG4gIDE3ODZcdCAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRmbG93aWQ9e3Byb3BzLmNoYXRmbG93aWR9XG4gIDE3ODdcdCAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRJZD17Y2hhdElkKCl9XG4gIDE3ODhcdCAgICAgICAgICAgICAgICAgICAgICAgIGFwaUhvc3Q9e3Byb3BzLmFwaUhvc3R9XG4gIDE3ODlcdCAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcj17cHJvcHMuYm90TWVzc2FnZT8uYmFja2dyb3VuZENvbG9yfVxuICAxNzkwXHQgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9e3Byb3BzLmJvdE1lc3NhZ2U/LnRleHRDb2xvcn1cbiAgMTc5MVx0ICAgICAgICAgICAgICAgICAgICAgICAgZmVlZGJhY2tDb2xvcj17cHJvcHMuZmVlZGJhY2s/LmNvbG9yfVxuICAxNzkyXHQgICAgICAgICAgICAgICAgICAgICAgICBzaG93QXZhdGFyPXtwcm9wcy5ib3RNZXNzYWdlPy5zaG93QXZhdGFyfVxuICAxNzkzXHQgICAgICAgICAgICAgICAgICAgICAgICBhdmF0YXJTcmM9e3Byb3BzLmJvdE1lc3NhZ2U/LmF2YXRhclNyY31cbiAgMTc5NFx0ICAgICAgICAgICAgICAgICAgICAgICAgY2hhdEZlZWRiYWNrU3RhdHVzPXtjaGF0RmVlZGJhY2tTdGF0dXMoKX1cbiAgMTc5NVx0ICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3Byb3BzLmZvbnRTaXplfVxuICAxNzk2XHQgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmc9e2xvYWRpbmcoKSAmJiBpbmRleCgpID09PSBtZXNzYWdlcygpLmxlbmd0aCAtIDF9XG4gIDE3OTdcdCAgICAgICAgICAgICAgICAgICAgICAgIHNob3dBZ2VudE1lc3NhZ2VzPXtwcm9wcy5zaG93QWdlbnRNZXNzYWdlc31cbiAgMTc5OFx0ICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQWN0aW9uQ2xpY2s9eyhsYWJlbCwgYWN0aW9uKSA9PiBoYW5kbGVBY3Rpb25DbGljayhsYWJlbCwgYWN0aW9uKX1cbiAgMTc5OVx0ICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlRG9jc1RpdGxlPXtwcm9wcy5zb3VyY2VEb2NzVGl0bGV9XG4uLi5cbiAgMTgwNFx0ICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZVRpbWVUb2dnbGU9e3Byb3BzLmRhdGVUaW1lVG9nZ2xlfVxuICAxODA1XHQgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJIVE1MPXtwcm9wcy5yZW5kZXJIVE1MfVxuICAxODA2XHQgICAgICAgICAgICAgICAgICAgICAgICBjaGF0d29vdFVybD17cHJvcHMuY2hhdHdvb3RVcmx9XG4gIDE4MDdcdCAgICAgICAgICAgICAgICAgICAgICAgIHJvb21JZHM9e3Byb3BzLnJvb21JZHN9XG4gIDE4MDhcdCAgICAgICAgICAgICAgICAgICAgICAgIG9uQ29ubmVjdFRvSHVtYW5BZHZpc29yPXsoaWQsIHBhcmFtcykgPT4ge1xuICAxODA5XHQgICAgICAgICAgICAgICAgICAgICAgICAgIGF4aW9zXG4gIDE4MTBcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAucG9zdChgJHtwcm9wcy5hcGlIb3N0fS9hcGkvdjEvY2hhdHdvb3QvY29ubmVjdGAsIHtcbiAgMTgxMVx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsXG4gIDE4MTJcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXRJZDogcHJvcHMuY2hhdGZsb3dpZCxcbiAgMTgxM1x0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckluZm86ICgoKSA9PiB7XG4gIDE4MTRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXNlckluZm9TdHIgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY21jdHM6dXNlckluZm8nKTtcbiAgMTgxNVx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZXJJbmZvU3RyKSByZXR1cm4gdW5kZWZpbmVkO1xuICAxODE2XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gIDE4MTdcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gIDE4MThcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAxODE5XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gcGFyc2UgdXNlckluZm8gZnJvbSBsb2NhbFN0b3JhZ2UnKTtcbiAgMTgyMFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIDE4MjFcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAxODIyXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpLFxuICAxODIzXHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXG4gIDE4MjRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgJHtwcm9wcy5jaGF0Zmxvd2lkfV9FWFRFUk5BTGApIHx8ICd7XCJjaGF0SGlzdG9yeVwiOltdfScsXG4gIDE4MjVcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAxODI2XHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiB7XG4gIDE4MjdcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhPy5jb252ZXJzYXRpb24/LmlkKSB7XG4gIDE4MjhcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oYGNoYXR3b290OiR7cHJvcHMuY2hhdGZsb3dpZH06Y29udmVyc2F0aW9uX2lkYCwgZGF0YS5jb252ZXJzYXRpb24uaWQudG9TdHJpbmcoKSk7XG4gIDE4MjlcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgMTgzMFx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuLi4uXG4gIDIwMjBcdCAgICAgICAgICAgICAgICAgIGhhbmRsZUZpbGVDaGFuZ2U9e2hhbmRsZUZpbGVDaGFuZ2V9XG4gIDIwMjFcdCAgICAgICAgICAgICAgICAgIHNlbmRNZXNzYWdlU291bmQ9e3Byb3BzLnRleHRJbnB1dD8uc2VuZE1lc3NhZ2VTb3VuZH1cbiAgMjAyMlx0ICAgICAgICAgICAgICAgICAgc2VuZFNvdW5kTG9jYXRpb249e3Byb3BzLnRleHRJbnB1dD8uc2VuZFNvdW5kTG9jYXRpb259XG4gIDIwMjNcdCAgICAgICAgICAgICAgICAgIGVuYWJsZUlucHV0SGlzdG9yeT17dHJ1ZX1cbiAgMjAyNFx0ICAgICAgICAgICAgICAgICAgbWF4SGlzdG9yeVNpemU9ezEwfVxuICAyMDI1XHQgICAgICAgICAgICAgICAgICBpc0xvYWRpbmc9e2xvYWRpbmcoKX1cbiAgMjAyNlx0ICAgICAgICAgICAgICAgICAgY2hhdGZsb3dpZD17cHJvcHMuY2hhdGZsb3dpZH1cbiAgMjAyN1x0ICAgICAgICAgICAgICAgICAgYXBpSG9zdD17cHJvcHMuYXBpSG9zdH1cbiAgMjAyOFx0ICAgICAgICAgICAgICAgICAgaXNVc2VGQVE9e0Jvb2xlYW4ocHJvcHM/LmlzVXNlRkFRKSB8fCBpc1VzZUZBUUZvckNoYXRmbG93fVxuICAyMDI5XHQgICAgICAgICAgICAgICAgICBzZXREaXNhYmxlSW5wdXQ9e3NldERpc2FibGVJbnB1dH1cbiAgMjAzMFx0ICAgICAgICAgICAgICAgIC8+XG4gIDIwMzFcdCAgICAgICAgICAgICAgPC8+XG4gIDIwMzJcdCAgICAgICAgICAgICl9XG4uLi5cblBhdGg6IHNyYy9jb25zdGFudHMudHNcbiAgICAgMVx0Ly8gTm90ZTogVXNpbmcgaW5saW5lIHR5cGUgZGVmaW5pdGlvbiB0byBhdm9pZCBKU1ggY29tcGlsYXRpb24gaXNzdWVzXG4gICAgIDJcdC8vIFRoaXMgbWF0Y2hlcyBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zIGZyb20gdGhlIG9yaWdpbmFsIGNvZGViYXNlXG4gICAgIDNcdHR5cGUgQnViYmxlUHJvcHMgPSB7XG4gICAgIDRcdCAgLy8gQ29yZSBCb3QgcHJvcGVydGllc1xuICAgICA1XHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAgNlx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgICA3XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAgOFx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICA5XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgIDEwXHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMTFcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgIDEyXHQgIGJvdE1lc3NhZ2U/OiBhbnk7XG4gICAgMTNcdCAgdXNlck1lc3NhZ2U/OiBhbnk7XG4gICAgMTRcdCAgdGV4dElucHV0PzogYW55O1xuICAgIDE1XHQgIGZlZWRiYWNrPzogYW55O1xuICAgIDE2XHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgICAxN1x0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxOFx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTlcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDIwXHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAgMjFcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgIDIyXHQgIHRpdGxlPzogc3RyaW5nO1xuICAgIDIzXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDI0XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDI1XHQgIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xuICAgIDI2XHQgIGZvb3Rlcj86IGFueTtcbiAgICAyN1x0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAgMjhcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogYW55O1xuICAgIDI5XHQgIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCB7IHByb21wdDogc3RyaW5nIH0+O1xuICAgIDMwXHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgICAzMVx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAgMzJcdCAgZGlzY2xhaW1lcj86IGFueTtcbiAgICAzM1x0ICBkYXRlVGltZVRvZ2dsZT86IGFueTtcbiAgICAzNFx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAzNVx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgICAzNlx0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICAzN1x0ICBpc1VzZUZBUT86IGJvb2xlYW47XG4gICAgMzhcdCAgZmlsZVBhdGg/OiBzdHJpbmc7XG4gICAgMzlcdCAgc3VnZ2VzdFF1ZXN0aW9ucz86IHN0cmluZztcbiAgICA0MFx0ICBleHRlcm5hbERhdGE/OiBzdHJpbmc7XG4gICAgNDFcdCAgY2FsbEJhY2tGdW5jdGlvbj86IChlOiBhbnkpID0+IHZvaWQ7XG4gICAgNDJcdCAgY2FsbEJhY2tJY29uPzogc3RyaW5nO1xuICAgIDQzXHRcbiAgICA0NFx0ICAvLyBCdWJibGUgdGhlbWUgcHJvcGVydGllc1xuICAgIDQ1XHQgIHRoZW1lPzogYW55O1xuICAgIDQ2XHR9O1xuICAgIDQ3XHRcbiAgICA0OFx0LyoqXG4gICAgNDlcdCAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNoYXRib3QgYnViYmxlIGNvbXBvbmVudC5cbiAgICA1MFx0ICogUHJvdmlkZXMgc2Vuc2libGUgZGVmYXVsdHMgZm9yIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzIHdoaWxlIGtlZXBpbmdcbiAgICA1MVx0ICogcmVxdWlyZWQgcHJvcGVydGllcyBleHBsaWNpdGx5IHVuZGVmaW5lZCB0byBlbmZvcmNlIHByb3BlciBjb25maWd1cmF0aW9uLlxuICAgIDUyXHQgKi9cbiAgICA1M1x0ZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gICAgNTRcdCAgLy8gQ29yZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIC0gbXVzdCBiZSBzZXQgYnkgaW1wbGVtZW50ZXJcbiAgICA1NVx0ICBjaGF0Zmxvd2lkOiAnJyxcbiAgICA1Nlx0XG4gICAgNTdcdCAgLy8gQVBJIGNvbmZpZ3VyYXRpb25cbiAgICA1OFx0ICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gICAgNTlcdCAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXG4gICAgNjBcdCAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcbiAgICA2MVx0XG4gICAgNjJcdCAgLy8gVUkgdGhlbWluZyBhbmQgY3VzdG9taXphdGlvblxuICAgIDYzXHQgIHRoZW1lOiB1bmRlZmluZWQsXG4gICAgNjRcdFxuICAgIDY1XHQgIC8vIEV4dGVybmFsIGludGVncmF0aW9uc1xuICAgIDY2XHQgIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gICAgNjdcdCAgcm9vbUlkczoge30sXG4gICAgNjhcdFxuICAgIDY5XHQgIC8vIEZlYXR1cmUgZmxhZ3MgYW5kIG9wdGlvbmFsIGZ1bmN0aW9uYWxpdHlcbiAgICA3MFx0ICBpc1VzZUZBUTogZmFsc2UsXG4gICAgNzFcdFxuICAgIDcyXHQgIC8vIEZpbGUgYW5kIGNvbnRlbnQgY29uZmlndXJhdGlvblxuICAgIDczXHQgIGZpbGVQYXRoOiAnJyxcbiAgICA3NFx0ICBzdWdnZXN0UXVlc3Rpb25zOiAnJyxcbiAgICA3NVx0ICBleHRlcm5hbERhdGE6ICcnLFxuICAgIDc2XHQgIGNhbGxCYWNrSWNvbjogJycsXG4gICAgNzdcdCAgY2FsbEJhY2tGdW5jdGlvbjogdW5kZWZpbmVkLFxuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0JvdEJ1YmJsZS50c3hcbi4uLlxuICAgIDE4XHRcbiAgICAxOVx0dHlwZSBQcm9wcyA9IHtcbiAgICAyMFx0ICBtZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgICAyMVx0ICBzZXRNZXNzYWdlcz86IGFueTtcbiAgICAyMlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgMjNcdCAgY2hhdElkOiBzdHJpbmc7XG4gICAgMjRcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAyNVx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgMjZcdCAgZmlsZUFubm90YXRpb25zPzogYW55O1xuICAgIDI3XHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDI4XHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAyOVx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMzBcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDMxXHQgIGNoYXRGZWVkYmFja1N0YXR1cz86IGJvb2xlYW47XG4gICAgMzJcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMzNcdCAgZmVlZGJhY2tDb2xvcj86IHN0cmluZztcbiAgICAzNFx0ICBpc0xvYWRpbmc6IGJvb2xlYW47XG4gICAgMzVcdCAgZGF0ZVRpbWVUb2dnbGU/OiBEYXRlVGltZVRvZ2dsZVRoZW1lO1xuICAgIDM2XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgICAzN1x0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAgMzhcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgMzlcdCAgaGFuZGxlQWN0aW9uQ2xpY2s6IChsYWJlbDogc3RyaW5nLCBhY3Rpb246IElBY3Rpb24gfCB1bmRlZmluZWQgfCBudWxsKSA9PiB2b2lkO1xuICAgIDQwXHQgIGhhbmRsZVNvdXJjZURvY3VtZW50c0NsaWNrOiAoc3JjOiBhbnkpID0+IHZvaWQ7XG4gICAgNDFcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAgNDJcdCAgb25Db25uZWN0VG9IdW1hbkFkdmlzb3I/OiAoaWQ6IHN0cmluZywgcGFyYW1zPzogYW55KSA9PiB2b2lkO1xuICAgIDQzXHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIDQ0XHQgIHF1ZXN0aW9uPzogc3RyaW5nO1xuLi4uXG5QYXRoOiBzcmMvd2luZG93LnRzXG4gICAgIDFcdGltcG9ydCB7IG9ic2VydmVyc0NvbmZpZ1R5cGUgfSBmcm9tICcuL2NvbXBvbmVudHMvQm90JztcbiAgICAgMlx0aW1wb3J0IHsgQnViYmxlVGhlbWUgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgIDNcdFxuICAgICA0XHQvKiBlc2xpbnQtZGlzYWJsZSBzb2xpZC9yZWFjdGl2aXR5ICovXG4gICAgIDVcdHR5cGUgQm90UHJvcHMgPSB7XG4gICAgIDZcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgICA3XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgIDhcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgICA5XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgMTBcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcbiAgICAxMVx0ICB0aGVtZT86IEJ1YmJsZVRoZW1lO1xuICAgIDEyXHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgIDEzXHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIDE0XHQgIGlzVXNlRkFRPzogdW5kZWZpbmVkO1xuICAgIDE1XHR9O1xuLi4uXG5QYXRoOiBzcmMvRnVsbFBhZ2VDaGF0LnRzeFxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJvdFByb3BzIH0gZnJvbSAnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcnXG4gICAgIDJcdGltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG4gICAgIDNcdFxuICAgICA0XHR0eXBlIFByb3BzID0gQm90UHJvcHMgJiB7XG4gICAgIDVcdCAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzXG4gICAgIDZcdCAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICAgIDdcdH1cbiAgICAgOFx0XG4gICAgIDlcdGRlY2xhcmUgZ2xvYmFsIHtcbiAgICAxMFx0ICBuYW1lc3BhY2UgSlNYIHtcbiAgICAxMVx0ICAgIGludGVyZmFjZSBJbnRyaW5zaWNFbGVtZW50cyB7XG4gICAgMTJcdCAgICAgICdmbG93aXNlLWZ1bGxjaGF0Ym90JzogUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gICAgMTNcdCAgICAgICAgUmVhY3QuSFRNTEF0dHJpYnV0ZXM8SFRNTEVsZW1lbnQ+LFxuICAgIDE0XHQgICAgICAgIEhUTUxFbGVtZW50XG4gICAgMTVcdCAgICAgID4gJiB7IGNsYXNzPzogc3RyaW5nIH1cbiAgICAxNlx0ICAgIH1cbiAgICAxN1x0ICB9XG4gICAgMThcdH1cbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS90eXBlcy50c1xuICAgICAxXHRleHBvcnQgdHlwZSBCdWJibGVQYXJhbXMgPSB7XG4gICAgIDJcdCAgdGhlbWU/OiBCdWJibGVUaGVtZTtcbiAgICAgM1x0fTtcbiAgICAgNFx0XG4gICAgIDVcdGV4cG9ydCB0eXBlIEJ1YmJsZVRoZW1lID0ge1xuICAgICA2XHQgIGNoYXRXaW5kb3c/OiBDaGF0V2luZG93VGhlbWU7XG4gICAgIDdcdCAgYnV0dG9uPzogQnV0dG9uVGhlbWU7XG4gICAgIDhcdCAgdG9vbHRpcD86IFRvb2xUaXBUaGVtZTtcbiAgICAgOVx0ICBkaXNjbGFpbWVyPzogRGlzY2xhaW1lclBvcFVwVGhlbWU7XG4gICAgMTBcdCAgY3VzdG9tQ1NTPzogc3RyaW5nO1xuICAgIDExXHR9O1xuICAgIDEyXHRcbiAgICAxM1x0ZXhwb3J0IHR5cGUgVGV4dElucHV0VGhlbWUgPSB7XG4gICAgMTRcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNlx0ICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICAxN1x0ICBzZW5kQnV0dG9uQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgbWF4Q2hhcnM/OiBudW1iZXI7XG4gICAgMTlcdCAgbWF4Q2hhcnNXYXJuaW5nTWVzc2FnZT86IHN0cmluZztcbiAgICAyMFx0ICBhdXRvRm9jdXM/OiBib29sZWFuO1xuICAgIDIxXHQgIHNlbmRNZXNzYWdlU291bmQ/OiBib29sZWFuO1xuICAgIDIyXHQgIHNlbmRTb3VuZExvY2F0aW9uPzogc3RyaW5nO1xuICAgIDIzXHQgIHJlY2VpdmVNZXNzYWdlU291bmQ/OiBib29sZWFuO1xuICAgIDI0XHQgIHJlY2VpdmVTb3VuZExvY2F0aW9uPzogc3RyaW5nO1xuICAgIDI1XHR9O1xuICAgIDI2XHRcbiAgICAyN1x0ZXhwb3J0IHR5cGUgVXNlck1lc3NhZ2VUaGVtZSA9IHtcbiAgICAyOFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMjlcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDMwXHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDMxXHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAzMlx0fTtcbiAgICAzM1x0XG4gICAgMzRcdGV4cG9ydCB0eXBlIEJvdE1lc3NhZ2VUaGVtZSA9IHtcbiAgICAzNVx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMzZcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDM3XHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDM4XHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAzOVx0fTtcbiAgICA0MFx0XG4gICAgNDFcdGV4cG9ydCB0eXBlIEZvb3RlclRoZW1lID0ge1xuICAgIDQyXHQgIHNob3dGb290ZXI/OiBib29sZWFuO1xuICAgIDQzXHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICA0NFx0ICB0ZXh0Pzogc3RyaW5nO1xuICAgIDQ1XHQgIGNvbXBhbnk/OiBzdHJpbmc7XG4gICAgNDZcdCAgY29tcGFueUxpbms/OiBzdHJpbmc7XG4gICAgNDdcdH07XG4gICAgNDhcdFxuICAgIDQ5XHRleHBvcnQgdHlwZSBGZWVkYmFja1RoZW1lID0ge1xuICAgIDUwXHQgIGNvbG9yPzogc3RyaW5nO1xuICAgIDUxXHR9O1xuICAgIDUyXHRcbiAgICA1M1x0ZXhwb3J0IHR5cGUgQ2hhdFdpbmRvd1RoZW1lID0ge1xuICAgIDU0XHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAgNTVcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuOyAvLyBwYXJhbWV0ZXIgdG8gc2hvdyBhZ2VudCByZWFzb25pbmdzIHdoZW4gdXNpbmcgYWdlbnRmbG93c1xuICAgIDU2XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgIDU3XHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDU4XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgIDU5XHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgNjBcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgIDYxXHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICA2Mlx0ICBiYWNrZ3JvdW5kSW1hZ2U/OiBzdHJpbmc7XG4gICAgNjNcdCAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIDY0XHQgIHdpZHRoPzogbnVtYmVyO1xuICAgIDY1XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDY2XHQgIHVzZXJNZXNzYWdlPzogVXNlck1lc3NhZ2VUaGVtZTtcbiAgICA2N1x0ICBib3RNZXNzYWdlPzogQm90TWVzc2FnZVRoZW1lO1xuICAgIDY4XHQgIHRleHRJbnB1dD86IFRleHRJbnB1dFRoZW1lO1xuICAgIDY5XHQgIGZlZWRiYWNrPzogRmVlZGJhY2tUaGVtZTtcbiAgICA3MFx0ICBmb290ZXI/OiBGb290ZXJUaGVtZTtcbiAgICA3MVx0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAgNzJcdCAgcG93ZXJlZEJ5VGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDczXHQgIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW107XG4gICAgNzRcdCAgc3RhcnRlclByb21wdEZvbnRTaXplPzogbnVtYmVyO1xuICAgIDc1XHQgIGNsZWFyQ2hhdE9uUmVsb2FkPzogYm9vbGVhbjtcbiAgICA3Nlx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAgNzdcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAgNzhcdH07XG4gICAgNzlcdFxuICAgIDgwXHRleHBvcnQgdHlwZSBCdXR0b25UaGVtZSA9IHtcbiAgICA4MVx0ICBzaXplPzogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8IG51bWJlcjsgLy8gY3VzdG9tIHNpemUgb2YgY2hhdGJvdCBpbiBwaXhlbHNcbiAgICA4Mlx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgODNcdCAgaWNvbkNvbG9yPzogc3RyaW5nO1xuICAgIDg0XHQgIGN1c3RvbUljb25TcmM/OiBzdHJpbmc7XG4gICAgODVcdCAgYm90dG9tPzogbnVtYmVyO1xuICAgIDg2XHQgIHJpZ2h0PzogbnVtYmVyO1xuICAgIDg3XHQgIGRyYWdBbmREcm9wPzogYm9vbGVhbjsgLy8gcGFyYW1ldGVyIHRvIGVuYWJsZSBkcmFnIGFuZCBkcm9wKHRydWUgb3IgZmFsc2UpXG4gICAgODhcdCAgYXV0b1dpbmRvd09wZW4/OiBhdXRvV2luZG93T3BlblRoZW1lO1xuICAgIDg5XHR9O1xuICAgIDkwXHRcbiAgICA5MVx0ZXhwb3J0IHR5cGUgVG9vbFRpcFRoZW1lID0ge1xuICAgIDkyXHQgIHNob3dUb29sdGlwPzogYm9vbGVhbjsgLy8gcGFyYW1ldGVyIHRvIGVuYWJsZSB0b29sdGlwKHRydWUgb3IgZmFsc2UpXG4gICAgOTNcdCAgdG9vbHRpcE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgOTRcdCAgdG9vbHRpcEJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICA5NVx0ICB0b29sdGlwVGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDk2XHQgIHRvb2x0aXBGb250U2l6ZT86IG51bWJlcjtcbiAgICA5N1x0fTtcbiAgICA5OFx0XG4gICAgOTlcdGV4cG9ydCB0eXBlIGF1dG9XaW5kb3dPcGVuVGhlbWUgPSB7XG4gICAxMDBcdCAgYXV0b09wZW4/OiBib29sZWFuOyAvL3BhcmFtZXRlciB0byBjb250cm9sIGF1dG9tYXRpYyB3aW5kb3cgb3BlbmluZ1xuICAgMTAxXHQgIG9wZW5EZWxheT86IG51bWJlcjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBkZWxheSB0aW1lIGluIHNlY29uZHNcbiAgIDEwMlx0ICBhdXRvT3Blbk9uTW9iaWxlPzogYm9vbGVhbjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBvcGVuaW5nIG9uIG1vYmlsZVxuICAgMTAzXHR9O1xuICAgMTA0XHRcbiAgIDEwNVx0ZXhwb3J0IHR5cGUgRGlzY2xhaW1lclBvcFVwVGhlbWUgPSB7XG4gICAxMDZcdCAgdGl0bGU/OiBzdHJpbmc7XG4gICAxMDdcdCAgbWVzc2FnZT86IHN0cmluZztcbiAgIDEwOFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxMDlcdCAgYnV0dG9uQ29sb3I/OiBzdHJpbmc7XG4gICAxMTBcdCAgYnV0dG9uVGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTExXHQgIGJ1dHRvblRleHQ/OiBzdHJpbmc7XG4gICAxMTJcdCAgYmx1cnJlZEJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDExM1x0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxMTRcdH07XG4gICAxMTVcdFxuICAgMTE2XHRleHBvcnQgdHlwZSBEYXRlVGltZVRvZ2dsZVRoZW1lID0ge1xuICAgMTE3XHQgIGRhdGU/OiBib29sZWFuO1xuICAgMTE4XHQgIHRpbWU/OiBib29sZWFuO1xuICAgMTE5XHR9O1xuLi4uXG5QYXRoOiBwdWJsaWMvaW5kZXguaHRtbFxuLi4uXG4gICAgNTVcdCAgICAgIHJvb21JZHM6IHtcbiAgICA1Nlx0ICAgICAgICAnMDEyMzQ1Njc4OSc6ICdYYTZIbWhmYlU1SzczWmhIbnNwektocXMnLFxuICAgIDU3XHQgICAgICB9LFxuICAgIDU4XHQgICAgICB0aGVtZTogY3VzdG9tU3RyaW5naWZ5KHtcbiAgICA1OVx0ICAgICAgICBidXR0b246IHtcbiAgICA2MFx0ICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyMzQjgxRjYnLFxuICAgIDYxXHQgICAgICAgICAgcmlnaHQ6IDIwLFxuICAgIDYyXHQgICAgICAgICAgYm90dG9tOiAyMCxcbiAgICA2M1x0ICAgICAgICAgIHNpemU6IDQ4LFxuICAgIDY0XHQgICAgICAgICAgZHJhZ0FuZERyb3A6IHRydWUsXG4gICAgNjVcdCAgICAgICAgICBpY29uQ29sb3I6ICd3aGl0ZScsXG4gICAgNjZcdCAgICAgICAgICBjdXN0b21JY29uU3JjOiAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dhbGt4Y29kZS9kYXNoYm9hcmQtaWNvbnMvbWFpbi9zdmcvZ29vZ2xlLW1lc3NhZ2VzLnN2ZycsXG4gICAgNjdcdCAgICAgICAgICBhdXRvV2luZG93T3Blbjoge1xuICAgIDY4XHQgICAgICAgICAgICBhdXRvT3BlbjogdHJ1ZSxcbiAgICA2OVx0ICAgICAgICAgICAgb3BlbkRlbGF5OiAyLFxuICAgIDcwXHQgICAgICAgICAgICBhdXRvT3Blbk9uTW9iaWxlOiBmYWxzZSxcbiAgICA3MVx0ICAgICAgICAgIH0sXG4gICAgNzJcdCAgICAgICAgfSxcbiAgICA3M1x0ICAgICAgICB0b29sdGlwOiB7XG4gICAgNzRcdCAgICAgICAgICBzaG93VG9vbHRpcDogdHJ1ZSxcbiAgICA3NVx0ICAgICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnSGkgVGhlcmUg8J+RiyEnLFxuICAgIDc2XHQgICAgICAgICAgdG9vbHRpcEJhY2tncm91bmRDb2xvcjogJ2JsYWNrJyxcbiAgICA3N1x0ICAgICAgICAgIHRvby4uLiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sIjliMjk5MWNlLTE2ZTktNGNiYy05YzUwLWEwYzVjOTZmZjM3MDt0b29sdV92cnR4XzAxNVRaaU5zWXBoS2dNa1B4NXlvS0VFZCI6eyJyZXF1ZXN0SWQiOiI5YjI5OTFjZS0xNmU5LTRjYmMtOWM1MC1hMGM1Yzk2ZmYzNzAiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxNVRaaU5zWXBoS2dNa1B4NXlvS0VFZCIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IlN1Y2Nlc3NmdWxseSBlZGl0ZWQgdGhlIGZpbGUgc3JjL2NvbXBvbmVudHMvQm90LnRzeC5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzBdOlxuUmVwbGFjZW1lbnQgc3VjY2Vzc2Z1bC5cbkVkaXRlZCBzZWN0aW9uIGFmdGVyIElERSBhdXRvLWZvcm1hdHRpbmcgd2FzIGFwcGxpZWQ6XG4gICAxMjdcdFxuICAgMTI4XHR0eXBlIG9ic2VydmVyQ29uZmlnVHlwZSA9IChhY2Nlc3Nvcjogc3RyaW5nIHwgYm9vbGVhbiB8IG9iamVjdCB8IE1lc3NhZ2VUeXBlW10pID0+IHZvaWQ7XG4gICAxMjlcdGV4cG9ydCB0eXBlIG9ic2VydmVyc0NvbmZpZ1R5cGUgPSBSZWNvcmQ8J29ic2VydmVVc2VySW5wdXQnIHwgJ29ic2VydmVMb2FkaW5nJyB8ICdvYnNlcnZlTWVzc2FnZXMnLCBvYnNlcnZlckNvbmZpZ1R5cGU+O1xuICAgMTMwXHRcbiAgIDEzMVx0ZXhwb3J0IHR5cGUgQm90UHJvcHMgPSB7XG4gICAxMzJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgMTMzXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAxMzRcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgMTM1XHQgIG9uQmVmb3JlU2VuZD86IChtZXNzYWdlOiBzdHJpbmcsIGJvZHk6IEluY29taW5nSW5wdXQpID0+IFByb21pc2U8eyBtZXNzYWdlOiBzdHJpbmc7IGJvZHk6IEluY29taW5nSW5wdXQ7IGNhbmNlbD86IGJvb2xlYW4gfT4gfCB7IG1lc3NhZ2U6IHN0cmluZzsgYm9keTogSW5jb21pbmdJbnB1dDsgY2FuY2VsPzogYm9vbGVhbiB9O1xuICAgMTM2XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAxMzdcdCAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzhcdCAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOVx0ICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxNDBcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgIDE0MVx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAxNDJcdCAgdGV4dElucHV0PzogVGV4dElucHV0VGhlbWU7XG4gICAxNDNcdCAgZmVlZGJhY2s/OiBGZWVkYmFja1RoZW1lO1xuICAgMTQ0XHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0NVx0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0Nlx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDdcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ4XHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAxNDlcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgMTUwXHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTUxXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgMTUyXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgMTUzXHQgIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xuICAgMTU0XHQgIGZvb3Rlcj86IEZvb3RlclRoZW1lO1xuICAgMTU1XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgIDE1Nlx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgMTU3XHQgIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCB7IHByb21wdDogc3RyaW5nIH0+O1xuICAgMTU4XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgIDE1OVx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAxNjBcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgMTYxXHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgIDE2Mlx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgIDE2M1x0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgIDE2NFx0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgIDE2NVx0ICBpc1VzZUZBUT86IGJvb2xlYW47XG4gICAxNjZcdCAgZmlsZVBhdGg/OiBzdHJpbmc7XG4gICAxNjdcdCAgc3VnZ2VzdFF1ZXN0aW9ucz86IHN0cmluZztcbiAgIDE2OFx0ICBleHRlcm5hbERhdGE/OiBzdHJpbmc7XG4gICAxNjlcdCAgY2FsbEJhY2tGdW5jdGlvbj86IChlOiBhbnkpID0+IHZvaWQ7XG4gICAxNzBcdCAgY2FsbEJhY2tJY29uPzogc3RyaW5nO1xuICAgMTcxXHR9O1xuICAgMTcyXHRcbiAgIDE3M1x0ZXhwb3J0IHR5cGUgTGVhZHNDb25maWcgPSB7XG4gICAxNzRcdCAgc3RhdHVzOiBib29sZWFuO1xuICAgMTc1XHQgIHRpdGxlPzogc3RyaW5nO1xuXG5SZXZpZXcgdGhlIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhcyBleHBlY3RlZCAoY29ycmVjdCBpbmRlbnRhdGlvbiwgbm8gZHVwbGljYXRlIGxpbmVzLCBldGMpLlxuRWRpdCB0aGUgZmlsZSBhZ2FpbiBpZiBuZWNlc3NhcnkuXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCI0Yjc4YzNhNS1iMGRkLTQ3OWMtYjJmNy1mMTI1ODI3MDMzMmM7dG9vbHVfdnJ0eF8wMUtHWkhTVnQzbU5RNXZlaGdXQW9TWmEiOnsicmVxdWVzdElkIjoiNGI3OGMzYTUtYjBkZC00NzljLWIyZjctZjEyNTgyNzAzMzJjIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMUtHWkhTVnQzbU5RNXZlaGdXQW9TWmEiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJOb3RlOlxuVmlldyByYW5nZSBleHBhbmRlZCB0byBtZWV0IG1pbmltdW0gc2l6ZSBvZiA1MDAgbGluZXMuIE5ldyByYW5nZTogWzc0MCwgMTIzOV0uXG5cbkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gc3JjL2NvbXBvbmVudHMvQm90LnRzeDpcbiAgIDc0MFx0ICB9O1xuICAgNzQxXHRcbiAgIDc0Mlx0ICAvLyBIYW5kbGUgZm9ybSBzdWJtaXNzaW9uXG4gICA3NDNcdCAgY29uc3QgaGFuZGxlU3VibWl0ID0gYXN5bmMgKHZhbHVlOiBzdHJpbmcsIGFjdGlvbj86IElBY3Rpb24gfCB1bmRlZmluZWQgfCBudWxsLCBmYXFJZD86IHN0cmluZykgPT4ge1xuICAgNzQ0XHQgICAgaWYgKHZhbHVlLnRyaW0oKSA9PT0gJycpIHtcbiAgIDc0NVx0ICAgICAgY29uc3QgY29udGFpbnNGaWxlID0gcHJldmlld3MoKS5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLm1pbWUuc3RhcnRzV2l0aCgnaW1hZ2UnKSAmJiBpdGVtLnR5cGUgIT09ICdhdWRpbycpLmxlbmd0aCA+IDA7XG4gICA3NDZcdCAgICAgIGlmICghcHJldmlld3MoKS5sZW5ndGggfHwgKHByZXZpZXdzKCkubGVuZ3RoICYmIGNvbnRhaW5zRmlsZSkpIHtcbiAgIDc0N1x0ICAgICAgICByZXR1cm47XG4gICA3NDhcdCAgICAgIH1cbiAgIDc0OVx0ICAgIH1cbiAgIDc1MFx0XG4gICA3NTFcdCAgICBpZiAoIWxvY2FsU3RvcmFnZS5nZXRJdGVtKGBjaGF0d29vdDoke3Byb3BzLmNoYXRmbG93aWR9OmNvbnZlcnNhdGlvbl9pZGApKSB7XG4gICA3NTJcdCAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICA3NTNcdCAgICAgIHNldERpc2FibGVJbnB1dCh0cnVlKTtcbiAgIDc1NFx0ICAgIH1cbiAgIDc1NVx0ICAgIHNjcm9sbFRvQm90dG9tKCk7XG4gICA3NTZcdFxuICAgNzU3XHQgICAgbGV0IHVwbG9hZHM6IElVcGxvYWRzID0gcHJldmlld3MoKS5tYXAoKGl0ZW0pID0+IHtcbiAgIDc1OFx0ICAgICAgcmV0dXJuIHtcbiAgIDc1OVx0ICAgICAgICBkYXRhOiBpdGVtLmRhdGEsXG4gICA3NjBcdCAgICAgICAgdHlwZTogaXRlbS50eXBlLFxuICAgNzYxXHQgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgIDc2Mlx0ICAgICAgICBtaW1lOiBpdGVtLm1pbWUsXG4gICA3NjNcdCAgICAgIH07XG4gICA3NjRcdCAgICB9KTtcbiAgIDc2NVx0XG4gICA3NjZcdCAgICB0cnkge1xuICAgNzY3XHQgICAgICB1cGxvYWRzID0gYXdhaXQgaGFuZGxlRmlsZVVwbG9hZHModXBsb2Fkcyk7XG4gICA3NjhcdCAgICB9IGNhdGNoIChlcnJvcikge1xuICAgNzY5XHQgICAgICBoYW5kbGVFcnJvcignVW5hYmxlIHRvIHVwbG9hZCBkb2N1bWVudHMnKTtcbiAgIDc3MFx0ICAgICAgcmV0dXJuO1xuICAgNzcxXHQgICAgfVxuICAgNzcyXHRcbiAgIDc3M1x0ICAgIGNsZWFyUHJldmlld3MoKTtcbiAgIDc3NFx0XG4gICA3NzVcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA3NzZcdCAgICAgIGNvbnN0IG1lc3NhZ2VzOiBNZXNzYWdlVHlwZVtdID0gWy4uLnByZXZNZXNzYWdlcywgeyBtZXNzYWdlOiB2YWx1ZSwgdHlwZTogJ3VzZXJNZXNzYWdlJywgZmlsZVVwbG9hZHM6IHVwbG9hZHMgfV07XG4gICA3NzdcdCAgICAgIGFkZENoYXRNZXNzYWdlKG1lc3NhZ2VzKTtcbiAgIDc3OFx0ICAgICAgcmV0dXJuIG1lc3NhZ2VzO1xuICAgNzc5XHQgICAgfSk7XG4gICA3ODBcdFxuICAgNzgxXHQgICAgbGV0IGRldmljZUlkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NtY3RzOmRldmljZUlkJyk7XG4gICA3ODJcdCAgICBpZiAoIWRldmljZUlkKSB7XG4gICA3ODNcdCAgICAgIGRldmljZUlkID0gdXVpZHY0KCk7XG4gICA3ODRcdCAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjbWN0czpkZXZpY2VJZCcsIGRldmljZUlkKTtcbiAgIDc4NVx0ICAgIH1cbiAgIDc4Nlx0XG4gICA3ODdcdCAgICBjb25zdCBib2R5OiBJbmNvbWluZ0lucHV0ID0ge1xuICAgNzg4XHQgICAgICBxdWVzdGlvbjogdmFsdWUsXG4gICA3ODlcdCAgICAgIGZhcUlkLFxuICAgNzkwXHQgICAgICBjaGF0SWQ6IGNoYXRJZCgpLFxuICAgNzkxXHQgICAgICB1c2VJZDogdXNlcigpPy5pZCxcbiAgIDc5Mlx0ICAgICAgc3RvcmVkOiB7XG4gICA3OTNcdCAgICAgICAgZGV2aWNlSWQsXG4gICA3OTRcdCAgICAgICAgdXNlckluZm86ICgoKSA9PiB7XG4gICA3OTVcdCAgICAgICAgICBjb25zdCB1c2VySW5mb1N0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjbWN0czp1c2VySW5mbycpO1xuICAgNzk2XHQgICAgICAgICAgaWYgKCF1c2VySW5mb1N0cikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgIDc5N1x0ICAgICAgICAgIHRyeSB7XG4gICA3OThcdCAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgIDc5OVx0ICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgIDgwMFx0ICAgICAgICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gcGFyc2UgdXNlckluZm8gZnJvbSBsb2NhbFN0b3JhZ2UnKTtcbiAgIDgwMVx0ICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgIDgwMlx0ICAgICAgICAgIH1cbiAgIDgwM1x0ICAgICAgICB9KSgpLFxuICAgODA0XHQgICAgICAgIGNoYXR3b290OiB7XG4gICA4MDVcdCAgICAgICAgICBjb252ZXJzYXRpb25faWQ6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGBjaGF0d29vdDoke3Byb3BzLmNoYXRmbG93aWR9OmNvbnZlcnNhdGlvbl9pZGApLFxuICAgODA2XHQgICAgICAgIH0sXG4gICA4MDdcdCAgICAgIH0sXG4gICA4MDhcdCAgICB9O1xuICAgODA5XHRcbiAgIDgxMFx0ICAgIGlmICh1cGxvYWRzICYmIHVwbG9hZHMubGVuZ3RoID4gMCkgYm9keS51cGxvYWRzID0gdXBsb2FkcztcbiAgIDgxMVx0ICAgIGVsc2UgaWYgKCF1cGxvYWRzPy5sZW5ndGggJiYgZmlsZUNvbnRlbnQoKSAmJiBmaWxlU3VtbWFyeSgpKSB7XG4gICA4MTJcdCAgICAgIGxldCBmaWxlTmFtZSA9IHByb3BzLmZpbGVQYXRoPy5zcGxpdCgnLycpLnBvcCgpIHx8ICcnO1xuICAgODEzXHQgICAgICBmaWxlTmFtZSAmJiAhZmlsZU5hbWUuZW5kc1dpdGgoJy50eHQnKSAmJiAoZmlsZU5hbWUgKz0gJy50eHQnKTtcbiAgIDgxNFx0ICAgICAgYm9keS51cGxvYWRzID0gW1xuICAgODE1XHQgICAgICAgIHtcbiAgIDgxNlx0ICAgICAgICAgIGRhdGE6IGZpbGVDb250ZW50KCksXG4gICA4MTdcdCAgICAgICAgICB0eXBlOiAnZmlsZTpmdWxsJyxcbiAgIDgxOFx0ICAgICAgICAgIG5hbWU6IGZpbGVOYW1lLFxuICAgODE5XHQgICAgICAgICAgbWltZTogJ3RleHQvcGxhaW4nLFxuICAgODIwXHQgICAgICAgIH0sXG4gICA4MjFcdCAgICAgICAge1xuICAgODIyXHQgICAgICAgICAgZGF0YTogZmlsZVN1bW1hcnkoKSxcbiAgIDgyM1x0ICAgICAgICAgIHR5cGU6ICdmaWxlOmZ1bGwnLFxuICAgODI0XHQgICAgICAgICAgbmFtZTogZmlsZU5hbWUsXG4gICA4MjVcdCAgICAgICAgICBtaW1lOiAndGV4dC9wbGFpbicsXG4gICA4MjZcdCAgICAgICAgfSxcbiAgIDgyN1x0ICAgICAgXTtcbiAgIDgyOFx0ICAgIH1cbiAgIDgyOVx0XG4gICA4MzBcdCAgICBpZiAocHJvcHM/LmV4dGVybmFsRGF0YSkge1xuICAgODMxXHQgICAgICBib2R5LnVwbG9hZHMgPSBbXG4gICA4MzJcdCAgICAgICAge1xuICAgODMzXHQgICAgICAgICAgZGF0YTogcHJvcHM/LmV4dGVybmFsRGF0YSxcbiAgIDgzNFx0ICAgICAgICAgIHR5cGU6ICdmaWxlOmZ1bGwnLFxuICAgODM1XHQgICAgICAgICAgbmFtZTogJ2V4dGVybmFsX2RhdGEudHh0JyxcbiAgIDgzNlx0ICAgICAgICAgIG1pbWU6ICd0ZXh0L3BsYWluJyxcbiAgIDgzN1x0ICAgICAgICB9LFxuICAgODM4XHQgICAgICBdO1xuICAgODM5XHQgICAgfVxuICAgODQwXHRcbiAgIDg0MVx0ICAgIGlmIChwcm9wcy5jaGF0Zmxvd0NvbmZpZykgYm9keS5vdmVycmlkZUNvbmZpZyA9IHByb3BzLmNoYXRmbG93Q29uZmlnO1xuICAgODQyXHRcbiAgIDg0M1x0ICAgIGlmIChsZWFkRW1haWwoKSkgYm9keS5sZWFkRW1haWwgPSBsZWFkRW1haWwoKTtcbiAgIDg0NFx0XG4gICA4NDVcdCAgICBpZiAoYWN0aW9uKSBib2R5LmFjdGlvbiA9IGFjdGlvbjtcbiAgIDg0Nlx0XG4gICA4NDdcdCAgICAvLyBDaGVjayBuZXR3b3JrIHN0YXR1cyBiZWZvcmUgbWFraW5nIHRoZSByZXF1ZXN0XG4gICA4NDhcdCAgICBpZiAoIW5hdmlnYXRvci5vbkxpbmUpIHtcbiAgIDg0OVx0ICAgICAgc2V0SXNOZXR3b3JrRXJyb3IodHJ1ZSk7XG4gICA4NTBcdCAgICAgIHNldE5ldHdvcmtFcnJvck1lc3NhZ2UoJ03huqV0IGvhur90IG7hu5FpIG3huqFuZycpO1xuICAgODUxXHQgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA4NTJcdCAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgODUzXHQgICAgICAgIGFsbE1lc3NhZ2VzLnB1c2goe1xuICAgODU0XHQgICAgICAgICAgbWVzc2FnZTogJ1hpbiBs4buXaSwgaGnhu4duIHThuqFpIGtow7RuZyBjw7Mga+G6v3QgbuG7kWkgbeG6oW5nLiBWdWkgbMOybmcga2nhu4NtIHRyYSBs4bqhaSBr4bq/dCBu4buRaSB2w6AgdGjhu60gbOG6oWkgc2F1LicsXG4gICA4NTVcdCAgICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScsXG4gICA4NTZcdCAgICAgICAgICBkYXRlVGltZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgODU3XHQgICAgICAgIH0pO1xuICAgODU4XHQgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgIDg1OVx0ICAgICAgfSk7XG4gICA4NjBcdCAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgODYxXHQgICAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgODYyXHQgICAgICByZXR1cm47XG4gICA4NjNcdCAgICB9XG4gICA4NjRcdFxuICAgODY1XHQgICAgaWYgKGlzQ2hhdEZsb3dBdmFpbGFibGVUb1N0cmVhbSgpICYmICFmYXFJZCkge1xuICAgODY2XHQgICAgICBmZXRjaFJlc3BvbnNlRnJvbUV2ZW50U3RyZWFtKHByb3BzLmNoYXRmbG93aWQsIGJvZHkpO1xuICAgODY3XHQgICAgfSBlbHNlIHtcbiAgIDg2OFx0ICAgICAgdHJ5IHtcbiAgIDg2OVx0ICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzZW5kTWVzc2FnZVF1ZXJ5KHtcbiAgIDg3MFx0ICAgICAgICAgIGNoYXRmbG93aWQ6IHByb3BzLmNoYXRmbG93aWQsXG4gICA4NzFcdCAgICAgICAgICBhcGlIb3N0OiBwcm9wcy5hcGlIb3N0LFxuICAgODcyXHQgICAgICAgICAgYm9keSxcbiAgIDg3M1x0ICAgICAgICAgIG9uUmVxdWVzdDogcHJvcHMub25SZXF1ZXN0LFxuICAgODc0XHQgICAgICAgIH0pO1xuICAgODc1XHRcbiAgIDg3Nlx0ICAgICAgICBpZiAocmVzdWx0LmRhdGEpIHtcbiAgIDg3N1x0ICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZGF0YTtcbiAgIDg3OFx0XG4gICA4NzlcdCAgICAgICAgICBsZXQgdGV4dCA9ICcnO1xuICAgODgwXHQgICAgICAgICAgaWYgKGRhdGEudGV4dCkgdGV4dCA9IGRhdGEudGV4dDtcbiAgIDg4MVx0ICAgICAgICAgIGVsc2UgaWYgKGRhdGEuanNvbikgdGV4dCA9IEpTT04uc3RyaW5naWZ5KGRhdGEuanNvbiwgbnVsbCwgMik7XG4gICA4ODJcdCAgICAgICAgICBlbHNlIHRleHQgPSBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKTtcbiAgIDg4M1x0XG4gICA4ODRcdCAgICAgICAgICBpZiAoZGF0YT8uY2hhdElkKSBzZXRDaGF0SWQoZGF0YS5jaGF0SWQpO1xuICAgODg1XHRcbiAgIDg4Nlx0ICAgICAgICAgIHBsYXlSZWNlaXZlU291bmQoKTtcbiAgIDg4N1x0XG4gICA4ODhcdCAgICAgICAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gICA4ODlcdCAgICAgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDg5MFx0ICAgICAgICAgICAgY29uc3QgbmV3TWVzc2FnZSA9IHtcbiAgIDg5MVx0ICAgICAgICAgICAgICBtZXNzYWdlOiB0ZXh0LFxuICAgODkyXHQgICAgICAgICAgICAgIGlkOiBkYXRhPy5jaGF0TWVzc2FnZUlkLFxuICAgODkzXHQgICAgICAgICAgICAgIHNvdXJjZURvY3VtZW50czogZGF0YT8uc291cmNlRG9jdW1lbnRzLFxuICAgODk0XHQgICAgICAgICAgICAgIHVzZWRUb29sczogZGF0YT8udXNlZFRvb2xzLFxuICAgODk1XHQgICAgICAgICAgICAgIGZpbGVBbm5vdGF0aW9uczogZGF0YT8uZmlsZUFubm90YXRpb25zLFxuICAgODk2XHQgICAgICAgICAgICAgIGFnZW50UmVhc29uaW5nOiBkYXRhPy5hZ2VudFJlYXNvbmluZyxcbiAgIDg5N1x0ICAgICAgICAgICAgICBhY3Rpb246IGRhdGE/LmFjdGlvbixcbiAgIDg5OFx0ICAgICAgICAgICAgICBhcnRpZmFjdHM6IGRhdGE/LmFydGlmYWN0cyxcbiAgIDg5OVx0ICAgICAgICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScgYXMgbWVzc2FnZVR5cGUsXG4gICA5MDBcdCAgICAgICAgICAgICAgZmVlZGJhY2s6IG51bGwsXG4gICA5MDFcdCAgICAgICAgICAgICAgZGF0ZVRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgIDkwMlx0ICAgICAgICAgICAgfTtcbiAgIDkwM1x0ICAgICAgICAgICAgYWxsTWVzc2FnZXMucHVzaChuZXdNZXNzYWdlKTtcbiAgIDkwNFx0ICAgICAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAgOTA1XHQgICAgICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA5MDZcdCAgICAgICAgICB9KTtcbiAgIDkwN1x0XG4gICA5MDhcdCAgICAgICAgICB1cGRhdGVNZXRhZGF0YShkYXRhLCB2YWx1ZSk7XG4gICA5MDlcdFxuICAgOTEwXHQgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICA5MTFcdCAgICAgICAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgOTEyXHQgICAgICAgICAgc2V0VXNlcklucHV0KCcnKTtcbiAgIDkxM1x0ICAgICAgICAgIHNldFVwbG9hZGVkRmlsZXMoW10pO1xuICAgOTE0XHQgICAgICAgICAgc2Nyb2xsVG9Cb3R0b20oKTtcbiAgIDkxNVx0ICAgICAgICB9XG4gICA5MTZcdCAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICA5MTdcdCAgICAgICAgaWYgKCFuYXZpZ2F0b3Iub25MaW5lKSB7XG4gICA5MThcdCAgICAgICAgICBzZXRJc05ldHdvcmtFcnJvcih0cnVlKTtcbiAgIDkxOVx0ICAgICAgICAgIHNldE5ldHdvcmtFcnJvck1lc3NhZ2UoJ03huqV0IGvhur90IG7hu5FpIG3huqFuZycpO1xuICAgOTIwXHQgICAgICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgOTIxXHQgICAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA5MjJcdCAgICAgICAgICAgIGFsbE1lc3NhZ2VzLnB1c2goe1xuICAgOTIzXHQgICAgICAgICAgICAgIG1lc3NhZ2U6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBraMO0bmcgY8OzIGvhur90IG7hu5FpIG3huqFuZy4gVnVpIGzDsm5nIGtp4buDbSB0cmEgbOG6oWkga+G6v3QgbuG7kWkgdsOgIHRo4butIGzhuqFpIHNhdS4nLFxuICAgOTI0XHQgICAgICAgICAgICAgIHR5cGU6ICdhcGlNZXNzYWdlJyxcbiAgIDkyNVx0ICAgICAgICAgICAgICBkYXRlVGltZTogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgOTI2XHQgICAgICAgICAgICB9KTtcbiAgIDkyN1x0ICAgICAgICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgOTI4XHQgICAgICAgICAgfSk7XG4gICA5MjlcdCAgICAgICAgfSBlbHNlIHtcbiAgIDkzMFx0ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgOTMxXHQgICAgICAgICAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgJ21lc3NhZ2UnIGluIGVycm9yKSB7XG4gICA5MzJcdCAgICAgICAgICAgIGhhbmRsZUVycm9yKGBFcnJvcjogJHsoZXJyb3IgYXMgeyBtZXNzYWdlOiBzdHJpbmcgfSkubWVzc2FnZS5yZXBsYWNlQWxsKCdFcnJvcjonLCAnICcpfWApO1xuICAgOTMzXHQgICAgICAgICAgICByZXR1cm47XG4gICA5MzRcdCAgICAgICAgICB9XG4gICA5MzVcdCAgICAgICAgICBpZiAodHlwZW9mIGVycm9yID09PSAnc3RyaW5nJykge1xuICAgOTM2XHQgICAgICAgICAgICBoYW5kbGVFcnJvcihlcnJvcik7XG4gICA5MzdcdCAgICAgICAgICAgIHJldHVybjtcbiAgIDkzOFx0ICAgICAgICAgIH1cbiAgIDkzOVx0ICAgICAgICAgIGhhbmRsZUVycm9yKCk7XG4gICA5NDBcdCAgICAgICAgfVxuICAgOTQxXHQgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgOTQyXHQgICAgICAgIHNldERpc2FibGVJbnB1dChmYWxzZSk7XG4gICA5NDNcdCAgICAgICAgcmV0dXJuO1xuICAgOTQ0XHQgICAgICB9XG4gICA5NDVcdCAgICB9XG4gICA5NDZcdCAgfTtcbiAgIDk0N1x0XG4gICA5NDhcdCAgY29uc3QgaGFuZGxlQWN0aW9uQ2xpY2sgPSBhc3luYyAobGFiZWw6IHN0cmluZywgYWN0aW9uOiBJQWN0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCkgPT4ge1xuICAgOTQ5XHQgICAgc2V0VXNlcklucHV0KGxhYmVsKTtcbiAgIDk1MFx0ICAgIHNldE1lc3NhZ2VzKChkYXRhKSA9PiB7XG4gICA5NTFcdCAgICAgIGNvbnN0IHVwZGF0ZWQgPSBkYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xuICAgOTUyXHQgICAgICAgIGlmIChpID09PSBkYXRhLmxlbmd0aCAtIDEpIHtcbiAgIDk1M1x0ICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGFjdGlvbjogbnVsbCB9O1xuICAgOTU0XHQgICAgICAgIH1cbiAgIDk1NVx0ICAgICAgICByZXR1cm4gaXRlbTtcbiAgIDk1Nlx0ICAgICAgfSk7XG4gICA5NTdcdCAgICAgIGFkZENoYXRNZXNzYWdlKHVwZGF0ZWQpO1xuICAgOTU4XHQgICAgICByZXR1cm4gWy4uLnVwZGF0ZWRdO1xuICAgOTU5XHQgICAgfSk7XG4gICA5NjBcdCAgICBoYW5kbGVTdWJtaXQobGFiZWwsIGFjdGlvbik7XG4gICA5NjFcdCAgfTtcbiAgIDk2Mlx0XG4gICA5NjNcdCAgY29uc3QgY2xlYXJDaGF0ID0gKCkgPT4ge1xuICAgOTY0XHQgICAgdHJ5IHtcbiAgIDk2NVx0ICAgICAgcmVtb3ZlTG9jYWxTdG9yYWdlQ2hhdEhpc3RvcnkocHJvcHMuY2hhdGZsb3dpZCk7XG4gICA5NjZcdCAgICAgIHNldENoYXRJZChcbiAgIDk2N1x0ICAgICAgICAocHJvcHMuY2hhdGZsb3dDb25maWc/LnZhcnMgYXMgYW55KT8uY3VzdG9tZXJJZCA/IGAkeyhwcm9wcy5jaGF0Zmxvd0NvbmZpZz8udmFycyBhcyBhbnkpLmN1c3RvbWVySWQudG9TdHJpbmcoKX0rJHt1dWlkdjQoKX1gIDogdXVpZHY0KCksXG4gICA5NjhcdCAgICAgICk7XG4gICA5NjlcdCAgICAgIHNldFVwbG9hZGVkRmlsZXMoW10pO1xuICAgOTcwXHQgICAgICBjb25zdCBtZXNzYWdlczogTWVzc2FnZVR5cGVbXSA9IFtcbiAgIDk3MVx0ICAgICAgICB7XG4gICA5NzJcdCAgICAgICAgICBtZXNzYWdlOiBwcm9wcy53ZWxjb21lTWVzc2FnZSA/PyBkZWZhdWx0V2VsY29tZU1lc3NhZ2UsXG4gICA5NzNcdCAgICAgICAgICB0eXBlOiAnYXBpTWVzc2FnZScsXG4gICA5NzRcdCAgICAgICAgfSxcbiAgIDk3NVx0ICAgICAgICAuLi4ocHJvcHMuc2Vjb25kTWVzc2FnZSA/IFt7IG1lc3NhZ2U6IHByb3BzLnNlY29uZE1lc3NhZ2UsIHR5cGU6ICdhcGlNZXNzYWdlJyBhcyBtZXNzYWdlVHlwZSB9XSA6IFtdKSxcbiAgIDk3Nlx0ICAgICAgXTtcbiAgIDk3N1x0ICAgICAgaWYgKGxlYWRzQ29uZmlnKCk/LnN0YXR1cyAmJiAhZ2V0TG9jYWxTdG9yYWdlQ2hhdGZsb3cocHJvcHMuY2hhdGZsb3dpZCk/LmxlYWQpIHtcbiAgIDk3OFx0ICAgICAgICBtZXNzYWdlcy5wdXNoKHsgbWVzc2FnZTogJycsIHR5cGU6ICdsZWFkQ2FwdHVyZU1lc3NhZ2UnIH0pO1xuICAgOTc5XHQgICAgICB9XG4gICA5ODBcdCAgICAgIHNldE1lc3NhZ2VzKG1lc3NhZ2VzKTtcbiAgIDk4MVx0ICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgIDk4Mlx0ICAgICAgY29uc3QgZXJyb3JEYXRhID0gZXJyb3IucmVzcG9uc2UuZGF0YSB8fCBgJHtlcnJvci5yZXNwb25zZS5zdGF0dXN9OiAke2Vycm9yLnJlc3BvbnNlLnN0YXR1c1RleHR9YDtcbiAgIDk4M1x0ICAgICAgY29uc29sZS5lcnJvcihgZXJyb3I6ICR7ZXJyb3JEYXRhfWApO1xuICAgOTg0XHQgICAgfVxuICAgOTg1XHQgIH07XG4gICA5ODZcdFxuICAgOTg3XHQgICh3aW5kb3cgYXMgYW55KS5jbGVhckNoYXQgPSBjbGVhckNoYXQ7XG4gICA5ODhcdFxuICAgOTg5XHQgIG9uTW91bnQoKCkgPT4ge1xuICAgOTkwXHQgICAgbGV0IHBlbmRpbmcgPSBmYWxzZTtcbiAgIDk5MVx0ICAgIGNvbnN0IGlkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgOTkyXHQgICAgICBpZiAocGVuZGluZyB8fCBkb2N1bWVudC5oaWRkZW4pIHJldHVybjtcbiAgIDk5M1x0ICAgICAgY29uc3QgY29udmVyc2F0aW9uSWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgY2hhdHdvb3Q6JHtwcm9wcy5jaGF0Zmxvd2lkfTpjb252ZXJzYXRpb25faWRgKTtcbiAgIDk5NFx0XG4gICA5OTVcdCAgICAgIGlmIChjb252ZXJzYXRpb25JZCkge1xuICAgOTk2XHQgICAgICAgIHBlbmRpbmcgPSB0cnVlO1xuICAgOTk3XHQgICAgICAgIHNlbmRNZXNzYWdlUXVlcnkoe1xuICAgOTk4XHQgICAgICAgICAgY2hhdGZsb3dpZDogcHJvcHMuY2hhdGZsb3dpZCxcbiAgIDk5OVx0ICAgICAgICAgIGFwaUhvc3Q6IHByb3BzLmFwaUhvc3QsXG4gIDEwMDBcdCAgICAgICAgICBib2R5OiB7XG4gIDEwMDFcdCAgICAgICAgICAgIHF1ZXN0aW9uOiAncGluZycsXG4gIDEwMDJcdCAgICAgICAgICAgIGZldGNoOiB0cnVlLFxuICAxMDAzXHQgICAgICAgICAgICBjaGF0SWQ6IGNoYXRJZCgpLFxuICAxMDA0XHQgICAgICAgICAgICBzdG9yZWQ6IHtcbiAgMTAwNVx0ICAgICAgICAgICAgICBjaGF0d29vdDoge1xuICAxMDA2XHQgICAgICAgICAgICAgICAgY29udmVyc2F0aW9uX2lkOiBjb252ZXJzYXRpb25JZCxcbiAgMTAwN1x0ICAgICAgICAgICAgICB9LFxuICAxMDA4XHQgICAgICAgICAgICB9LFxuICAxMDA5XHQgICAgICAgICAgfSxcbiAgMTAxMFx0ICAgICAgICAgIG9uUmVxdWVzdDogcHJvcHMub25SZXF1ZXN0LFxuICAxMDExXHQgICAgICAgIH0pXG4gIDEwMTJcdCAgICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gIDEwMTNcdCAgICAgICAgICAgIGlmICghbG9jYWxTdG9yYWdlLmdldEl0ZW0oYGNoYXR3b290OiR7cHJvcHMuY2hhdGZsb3dpZH06Y29udmVyc2F0aW9uX2lkYCkpIHJldHVybjtcbiAgMTAxNFx0XG4gIDEwMTVcdCAgICAgICAgICAgIGNvbnN0IHN0b3JlS2V5ID0gYGNoYXR3b290OiR7cHJvcHMuY2hhdGZsb3dpZH06Y29udmVyc2F0aW9uX2lkOmxhdGVzdF9tZXNzYWdlX2lkYDtcbiAgMTAxNlx0ICAgICAgICAgICAgY29uc3QgbGFzdFN5bmNNZXNzYWdlSWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdG9yZUtleSk7XG4gIDEwMTdcdCAgICAgICAgICAgIGNvbnN0IGVuYWJsZVN5bmMgPSBCb29sZWFuKGxhc3RTeW5jTWVzc2FnZUlkKTtcbiAgMTAxOFx0ICAgICAgICAgICAgY29uc3QgbmV3TWVzc2FnZXM6IGFueVtdID0gcmVzdWx0LmRhdGE/Lm1lc3NhZ2VzPy5wYXlsb2FkIHx8IFtdO1xuICAxMDE5XHQgICAgICAgICAgICBjb25zdCBzeW5jRnJvbUluZGV4ID0gbmV3TWVzc2FnZXMuZmluZEluZGV4KChtZXNzYWdlKSA9PiBtZXNzYWdlLmlkLnRvU3RyaW5nKCkgPT09IGxhc3RTeW5jTWVzc2FnZUlkKSArIDE7XG4gIDEwMjBcdCAgICAgICAgICAgIGxldCBhZGRNZXNzYWdlczogTWVzc2FnZVR5cGVbXSA9IFtdO1xuICAxMDIxXHRcbiAgMTAyMlx0ICAgICAgICAgICAgZm9yIChsZXQgaSA9IHN5bmNGcm9tSW5kZXg7IGkgPCBuZXdNZXNzYWdlcy5sZW5ndGg7IGkrKykge1xuICAxMDIzXHQgICAgICAgICAgICAgIGlmIChuZXdNZXNzYWdlc1tpXS5tZXNzYWdlX3R5cGUgIT09IDEpIGNvbnRpbnVlO1xuICAxMDI0XHQgICAgICAgICAgICAgIGFkZE1lc3NhZ2VzLnB1c2goe1xuICAxMDI1XHQgICAgICAgICAgICAgICAgbWVzc2FnZTogbmV3TWVzc2FnZXNbaV0uY29udGVudCxcbiAgMTAyNlx0ICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogdjQoKSxcbiAgMTAyN1x0ICAgICAgICAgICAgICAgIHJhdGluZzogdW5kZWZpbmVkLFxuICAxMDI4XHQgICAgICAgICAgICAgICAgc291cmNlRG9jdW1lbnRzOiBbXSxcbiAgMTAyOVx0ICAgICAgICAgICAgICAgIHR5cGU6ICdhcGlNZXNzYWdlJyxcbiAgMTAzMFx0ICAgICAgICAgICAgICB9KTtcbiAgMTAzMVx0ICAgICAgICAgICAgfVxuICAxMDMyXHRcbiAgMTAzM1x0ICAgICAgICAgICAgaWYgKGFkZE1lc3NhZ2VzLmxlbmd0aCkge1xuICAxMDM0XHQgICAgICAgICAgICAgIGlmICghZW5hYmxlU3luYykge1xuICAxMDM1XHQgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oc3RvcmVLZXksIG5ld01lc3NhZ2VzW25ld01lc3NhZ2VzLmxlbmd0aCAtIDFdLmlkLnRvU3RyaW5nKCkpO1xuICAxMDM2XHQgICAgICAgICAgICAgICAgYWRkTWVzc2FnZXMgPSBbXG4gIDEwMzdcdCAgICAgICAgICAgICAgICAgIHtcbiAgMTAzOFx0ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOlxuICAxMDM5XHQgICAgICAgICAgICAgICAgICAgICAgJ0vDrW5oIGNow6BvIFF1w70ga2jDoWNoLCB0w7RpIGzDoCB0cuG7oyBsw70gdMawIHbhuqVuLiBS4bqldCBow6JuIGjhuqFuaCDEkcaw4bujYyBo4buXIHRy4bujIFF1w70ga2jDoWNoLCBRdcO9IGtow6FjaCBj4bqnbiDEkcaw4bujYyB0xrAgduG6pW4gduG7gSB24bqlbiDEkeG7gSBnw6wg4bqhPycsXG4gIDEwNDBcdCAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUlkOiB2NCgpLFxuICAxMDQxXHQgICAgICAgICAgICAgICAgICAgIHJhdGluZzogdW5kZWZpbmVkLFxuICAxMDQyXHQgICAgICAgICAgICAgICAgICAgIHNvdXJjZURvY3VtZW50czogW10sXG4gIDEwNDNcdCAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnLFxuICAxMDQ0XHQgICAgICAgICAgICAgICAgICB9LFxuICAxMDQ1XHQgICAgICAgICAgICAgICAgXTtcbiAgMTA0Nlx0ICAgICAgICAgICAgICB9XG4gIDEwNDdcdFxuICAxMDQ4XHQgICAgICAgICAgICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgMTA0OVx0ICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHN0b3JlS2V5LCBuZXdNZXNzYWdlc1tuZXdNZXNzYWdlcy5sZW5ndGggLSAxXS5pZC50b1N0cmluZygpKTtcbiAgMTA1MFx0ICAgICAgICAgICAgICAgIHByZXZNZXNzYWdlcy5wdXNoKC4uLmFkZE1lc3NhZ2VzKTtcbiAgMTA1MVx0ICAgICAgICAgICAgICAgIGFkZENoYXRNZXNzYWdlKHByZXZNZXNzYWdlcyk7XG4gIDEwNTJcdFxuICAxMDUzXHQgICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5wcmV2TWVzc2FnZXNdLmZpbHRlcigobWVzc2FnZSkgPT4ge1xuICAxMDU0XHQgICAgICAgICAgICAgICAgICBpZiAoIWVuYWJsZVN5bmMpIHtcbiAgMTA1NVx0ICAgICAgICAgICAgICAgICAgICByZXR1cm4gIW1lc3NhZ2UubWVzc2FnZT8uaW5jbHVkZXMoJ2Fzc2lzdGFudF9waG9uZV9udW1iZXInKTtcbiAgMTA1Nlx0ICAgICAgICAgICAgICAgICAgfVxuICAxMDU3XHRcbiAgMTA1OFx0ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gIDEwNTlcdCAgICAgICAgICAgICAgICB9KTtcbiAgMTA2MFx0ICAgICAgICAgICAgICB9KTtcbiAgMTA2MVx0ICAgICAgICAgICAgfVxuICAxMDYyXHQgICAgICAgICAgfSlcbiAgMTA2M1x0ICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgMTA2NFx0ICAgICAgICAgICAgcGVuZGluZyA9IGZhbHNlO1xuICAxMDY1XHQgICAgICAgICAgfSk7XG4gIDEwNjZcdCAgICAgIH1cbiAgMTA2N1x0ICAgIH0sIDEwMDApO1xuICAxMDY4XHRcbiAgMTA2OVx0ICAgIHJldHVybiAoKSA9PiB7XG4gIDEwNzBcdCAgICAgIGNsZWFySW50ZXJ2YWwoaWQpO1xuICAxMDcxXHQgICAgfTtcbiAgMTA3Mlx0ICB9KTtcbiAgMTA3M1x0XG4gIDEwNzRcdCAgb25Nb3VudCgoKSA9PiB7XG4gIDEwNzVcdCAgICBpZiAocHJvcHMuY2xlYXJDaGF0T25SZWxvYWQpIHtcbiAgMTA3Nlx0ICAgICAgY2xlYXJDaGF0KCk7XG4gIDEwNzdcdCAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCBjbGVhckNoYXQpO1xuICAxMDc4XHQgICAgICByZXR1cm4gKCkgPT4ge1xuICAxMDc5XHQgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdiZWZvcmV1bmxvYWQnLCBjbGVhckNoYXQpO1xuICAxMDgwXHQgICAgICB9O1xuICAxMDgxXHQgICAgfVxuICAxMDgyXHQgIH0pO1xuICAxMDgzXHRcbiAgMTA4NFx0ICBvbk1vdW50KCgpID0+IHtcbiAgMTA4NVx0ICAgIC8vIEFkZCBuZXR3b3JrIHN0YXR1cyBldmVudCBsaXN0ZW5lcnNcbiAgMTA4Nlx0ICAgIGNvbnN0IGhhbmRsZU9ubGluZSA9ICgpID0+IHtcbiAgMTA4N1x0ICAgICAgc2V0SXNOZXR3b3JrRXJyb3IoZmFsc2UpO1xuICAxMDg4XHQgICAgICBzZXROZXR3b3JrRXJyb3JNZXNzYWdlKCcnKTtcbiAgMTA4OVx0ICAgIH07XG4gIDEwOTBcdFxuICAxMDkxXHQgICAgY29uc3QgaGFuZGxlT2ZmbGluZSA9ICgpID0+IHtcbiAgMTA5Mlx0ICAgICAgc2V0SXNOZXR3b3JrRXJyb3IodHJ1ZSk7XG4gIDEwOTNcdCAgICAgIHNldE5ldHdvcmtFcnJvck1lc3NhZ2UoJ03huqV0IGvhur90IG7hu5FpIG3huqFuZycpO1xuICAxMDk0XHQgICAgfTtcbiAgMTA5NVx0XG4gIDEwOTZcdCAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb25saW5lJywgaGFuZGxlT25saW5lKTtcbiAgMTA5N1x0ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgaGFuZGxlT2ZmbGluZSk7XG4gIDEwOThcdFxuICAxMDk5XHQgICAgcmV0dXJuICgpID0+IHtcbiAgMTEwMFx0ICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29ubGluZScsIGhhbmRsZU9ubGluZSk7XG4gIDExMDFcdCAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgaGFuZGxlT2ZmbGluZSk7XG4gIDExMDJcdCAgICB9O1xuICAxMTAzXHQgIH0pO1xuICAxMTA0XHRcbiAgMTEwNVx0ICBvbk1vdW50KCgpID0+IHtcbiAgMTEwNlx0ICAgIGlmICghY2hhdENvbnRhaW5lcikgcmV0dXJuO1xuICAxMTA3XHRcbiAgMTEwOFx0ICAgIGNoYXRDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4ge1xuICAxMTA5XHQgICAgICBpZiAoIWNoYXRDb250YWluZXIpIHJldHVybjtcbiAgMTExMFx0ICAgICAgaWYgKGNoYXRDb250YWluZXIuc2Nyb2xsVG9wIDwgY2hhdENvbnRhaW5lci5zY3JvbGxIZWlnaHQgLSBjaGF0Q29udGFpbmVyLmNsaWVudEhlaWdodCAtIDUwKSB7XG4gIDExMTFcdCAgICAgICAgc2V0U2hvd1Njcm9sbEJ1dHRvbih0cnVlKTtcbiAgMTExMlx0ICAgICAgfSBlbHNlIHtcbiAgMTExM1x0ICAgICAgICBzZXRTaG93U2Nyb2xsQnV0dG9uKGZhbHNlKTtcbiAgMTExNFx0ICAgICAgfVxuICAxMTE1XHQgICAgfSk7XG4gIDExMTZcdCAgfSk7XG4gIDExMTdcdFxuICAxMTE4XHQgIGNyZWF0ZUVmZmVjdCgoKSA9PiB7XG4gIDExMTlcdCAgICBpZiAocHJvcHMuc3RhcnRlclByb21wdHMpIHtcbiAgMTEyMFx0ICAgICAgbGV0IHByb21wdHM6IHN0cmluZ1tdO1xuICAxMTIxXHRcbiAgMTEyMlx0ICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcHMuc3RhcnRlclByb21wdHMpKSB7XG4gIDExMjNcdCAgICAgICAgLy8gSWYgc3RhcnRlclByb21wdHMgaXMgYW4gYXJyYXlcbiAgMTEyNFx0ICAgICAgICBwcm9tcHRzID0gcHJvcHMuc3RhcnRlclByb21wdHM7XG4gIDExMjVcdCAgICAgIH0gZWxzZSB7XG4gIDExMjZcdCAgICAgICAgLy8gSWYgc3RhcnRlclByb21wdHMgaXMgYSBKU09OIG9iamVjdFxuICAxMTI3XHQgICAgICAgIHByb21wdHMgPSBPYmplY3QudmFsdWVzKHByb3BzLnN0YXJ0ZXJQcm9tcHRzKS5tYXAoKHByb21wdE9iajogeyBwcm9tcHQ6IHN0cmluZyB9KSA9PiBwcm9tcHRPYmoucHJvbXB0KTtcbiAgMTEyOFx0ICAgICAgfVxuICAxMTI5XHRcbiAgMTEzMFx0ICAgICAgLy8gRmlsdGVyIG91dCBhbnkgZW1wdHkgcHJvbXB0c1xuICAxMTMxXHQgICAgICByZXR1cm4gc2V0U3RhcnRlclByb21wdHMocHJvbXB0cy5maWx0ZXIoKHByb21wdCkgPT4gcHJvbXB0ICE9PSAnJykpO1xuICAxMTMyXHQgICAgfVxuICAxMTMzXHQgIH0pO1xuICAxMTM0XHRcbiAgMTEzNVx0ICAvLyBBdXRvIHNjcm9sbCBjaGF0IHRvIGJvdHRvbVxuICAxMTM2XHQgIGNyZWF0ZUVmZmVjdCgoKSA9PiB7XG4gIDExMzdcdCAgICBpZiAobWVzc2FnZXMoKSkge1xuICAxMTM4XHQgICAgICBpZiAobWVzc2FnZXMoKS5sZW5ndGggPiAxKSB7XG4gIDExMzlcdCAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gIDExNDBcdCAgICAgICAgICBjaGF0Q29udGFpbmVyPy5zY3JvbGxUbygwLCBjaGF0Q29udGFpbmVyLnNjcm9sbEhlaWdodCk7XG4gIDExNDFcdCAgICAgICAgfSwgNDAwKTtcbiAgMTE0Mlx0ICAgICAgfVxuICAxMTQzXHQgICAgfVxuICAxMTQ0XHQgIH0pO1xuICAxMTQ1XHRcbiAgMTE0Nlx0ICBjcmVhdGVFZmZlY3QoKCkgPT4ge1xuICAxMTQ3XHQgICAgaWYgKHByb3BzLmZvbnRTaXplICYmIGJvdENvbnRhaW5lcikgYm90Q29udGFpbmVyLnN0eWxlLmZvbnRTaXplID0gYCR7cHJvcHMuZm9udFNpemV9cHhgO1xuICAxMTQ4XHQgIH0pO1xuICAxMTQ5XHRcbiAgMTE1MFx0ICBjb25zdCBzZXRTdW1tYXJ5TWVzc2FnZSA9IChwYXRoOiBzdHJpbmcsIG1zZzogc3RyaW5nKSA9PiB7XG4gIDExNTFcdCAgICBzZXRNZXNzYWdlcygocHJldk1lc3NhZ2VzKSA9PiB7XG4gIDExNTJcdCAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgMTE1M1x0ICAgICAgaWYgKGFsbE1lc3NhZ2VzLmZpbmQoKG1lc3NhZ2UpID0+IG1lc3NhZ2UubWVzc2FnZS5pbmNsdWRlcyhtc2cpKSkge1xuICAxMTU0XHQgICAgICAgIHJldHVybiBhbGxNZXNzYWdlcztcbiAgMTE1NVx0ICAgICAgfVxuICAxMTU2XHRcbiAgMTE1N1x0ICAgICAgY29uc3QgZmlyc3RVc2VyTWVzc2FnZUluZGV4ID0gYWxsTWVzc2FnZXMuZmluZEluZGV4KChtZXNzYWdlKSA9PiBtZXNzYWdlLnR5cGUgPT09ICd1c2VyTWVzc2FnZScpO1xuICAxMTU4XHQgICAgICBjb25zdCBuZXdNZXNzYWdlID0ge1xuICAxMTU5XHQgICAgICAgIG1lc3NhZ2U6IG1zZy50cmltKCkgPyBtc2cudHJpbSgpIDogYEtow7RuZyB0w6xtIHRo4bqleSBu4buZaSBkdW5nIHTDs20gdOG6r3QgY+G7p2EgZmlsZWAsXG4gIDExNjBcdCAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnIGFzIG1lc3NhZ2VUeXBlLFxuICAxMTYxXHQgICAgICAgIGRhdGVUaW1lOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIDExNjJcdCAgICAgIH07XG4gIDExNjNcdCAgICAgIGlmIChmaXJzdFVzZXJNZXNzYWdlSW5kZXggIT09IC0xKSB7XG4gIDExNjRcdCAgICAgICAgYWxsTWVzc2FnZXMuc3BsaWNlKGZpcnN0VXNlck1lc3NhZ2VJbmRleCwgMCwgbmV3TWVzc2FnZSk7XG4gIDExNjVcdCAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAxMTY2XHQgICAgICB9IGVsc2Uge1xuICAxMTY3XHQgICAgICAgIGFsbE1lc3NhZ2VzLnB1c2gobmV3TWVzc2FnZSk7XG4gIDExNjhcdCAgICAgICAgYWRkQ2hhdE1lc3NhZ2UoYWxsTWVzc2FnZXMpO1xuICAxMTY5XHQgICAgICB9XG4gIDExNzBcdFxuICAxMTcxXHQgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gIDExNzJcdCAgICB9KTtcbiAgMTE3M1x0ICB9O1xuICAxMTc0XHRcbiAgMTE3NVx0ICBjb25zdCBnZXRTdW1tYXJ5RmlsZSA9IGFzeW5jIChwYXRoOiBzdHJpbmcpID0+IHtcbiAgMTE3Nlx0ICAgIGlmICghcGF0aCkgcmV0dXJuO1xuICAxMTc3XHRcbiAgMTE3OFx0ICAgIGlmIChmaWxlU3VtbWFyeSgpKSB7XG4gIDExNzlcdCAgICAgIHNldFN1bW1hcnlNZXNzYWdlKHBhdGgsIGZpbGVTdW1tYXJ5KCkpO1xuICAxMTgwXHQgICAgfSBlbHNlIHtcbiAgMTE4MVx0ICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGaWxlQ29udGVudCh7XG4gIDExODJcdCAgICAgICAgcGF0aDogcGF0aCxcbiAgMTE4M1x0ICAgICAgICBvblJlcXVlc3Q6IHByb3BzLm9uUmVxdWVzdCxcbiAgMTE4NFx0ICAgICAgfSk7XG4gIDExODVcdFxuICAxMTg2XHQgICAgICBpZiAocmVzcG9uc2U/LmRhdGE/LmNvbnRlbnQpIHtcbiAgMTE4N1x0ICAgICAgICBzZXRGaWxlU3VtbWFyeShyZXNwb25zZT8uZGF0YT8uY29udGVudCk7XG4gIDExODhcdCAgICAgICAgc2V0U3VtbWFyeU1lc3NhZ2UocGF0aCwgcmVzcG9uc2U/LmRhdGE/LmNvbnRlbnQpO1xuICAxMTg5XHQgICAgICB9XG4gIDExOTBcdCAgICB9XG4gIDExOTFcdCAgfTtcbiAgMTE5Mlx0XG4gIDExOTNcdCAgY29uc3QgZ2V0Q29udGVudEZpbGUgPSBhc3luYyAocGF0aDogc3RyaW5nKSA9PiB7XG4gIDExOTRcdCAgICBpZiAoIXBhdGgpIHJldHVybjtcbiAgMTE5NVx0XG4gIDExOTZcdCAgICBpZiAoIWZpbGVDb250ZW50KCkpIHtcbiAgMTE5N1x0ICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGaWxlQ29udGVudCh7XG4gIDExOThcdCAgICAgICAgcGF0aDogcGF0aCxcbiAgMTE5OVx0ICAgICAgICBvblJlcXVlc3Q6IHByb3BzLm9uUmVxdWVzdCxcbiAgMTIwMFx0ICAgICAgfSk7XG4gIDEyMDFcdFxuICAxMjAyXHQgICAgICBpZiAocmVzcG9uc2U/LmRhdGE/LmNvbnRlbnQpIHtcbiAgMTIwM1x0ICAgICAgICBzZXRGaWxlQ29udGVudChyZXNwb25zZT8uZGF0YT8uY29udGVudCk7XG4gIDEyMDRcdCAgICAgIH1cbiAgMTIwNVx0ICAgIH1cbiAgMTIwNlx0ICB9O1xuICAxMjA3XHRcbiAgMTIwOFx0ICBjb25zdCBnZXRRdWVzdGlvbkZpbGUgPSBhc3luYyAocGF0aDogc3RyaW5nKSA9PiB7XG4gIDEyMDlcdCAgICBpZiAoIXBhdGgpIHJldHVybjtcbiAgMTIxMFx0XG4gIDEyMTFcdCAgICBpZiAoc3VnZ2VzdFF1ZXN0aW9uKCkubGVuZ3RoID09PSAwKSB7XG4gIDEyMTJcdCAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RmlsZUNvbnRlbnQoe1xuICAxMjEzXHQgICAgICAgIHBhdGg6IHBhdGgsXG4gIDEyMTRcdCAgICAgICAgb25SZXF1ZXN0OiBwcm9wcy5vblJlcXVlc3QsXG4gIDEyMTVcdCAgICAgIH0pO1xuICAxMjE2XHRcbiAgMTIxN1x0ICAgICAgaWYgKHJlc3BvbnNlPy5kYXRhPy5jb250ZW50KSB7XG4gIDEyMThcdCAgICAgICAgbGV0IHN1Z2dlc3RBcnIgPSBbXTtcbiAgMTIxOVx0ICAgICAgICB0cnkge1xuICAxMjIwXHQgICAgICAgICAgc3VnZ2VzdEFyciA9IEpTT04ucGFyc2UocmVzcG9uc2U/LmRhdGE/LmNvbnRlbnQpO1xuICAxMjIxXHQgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gIDEyMjJcdCAgICAgICAgICBjb25zb2xlLmxvZygn8J+agCB+IEJvdC50c3g6MTI2NiB+IGdldFF1ZXN0aW9uRmlsZSB+IGVycm9yOicsIGVycm9yKTtcbiAgMTIyM1x0ICAgICAgICB9XG4gIDEyMjRcdCAgICAgICAgc2V0U3VnZ2VzdFF1ZXN0aW9uKHN1Z2dlc3RBcnIpO1xuICAxMjI1XHQgICAgICB9XG4gIDEyMjZcdCAgICB9XG4gIDEyMjdcdCAgfTtcbiAgMTIyOFx0XG4gIDEyMjlcdCAgY3JlYXRlRWZmZWN0KGFzeW5jICgpID0+IHtcbiAgMTIzMFx0ICAgIGlmICghcHJvcHMuZmlsZVBhdGgpIHtcbiAgMTIzMVx0ICAgICAgcmV0dXJuO1xuICAxMjMyXHQgICAgfVxuICAxMjMzXHQgICAgbGV0IHBhdGggPSBwcm9wcy5maWxlUGF0aDtcbiAgMTIzNFx0ICAgIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykpIHBhdGggPSAnLycgKyBwYXRoO1xuICAxMjM1XHQgICAgaWYgKCFwYXRoLmVuZHNXaXRoKCcudHh0JykpIHBhdGggKz0gJy50eHQnO1xuICAxMjM2XHQgICAgY29uc3Qgc3VtbWFyeVBhdGggPSAnQ19PZmZpY2Uvc3VtbWFyeScgKyBwYXRoO1xuICAxMjM3XHQgICAgY29uc3QgY29udGVudFBhdGggPSAnQ19PZmZpY2UvY29udGVudCcgKyBwYXRoO1xuICAxMjM4XHQgICAgY29uc3QgcXVlc3Rpb25QYXRoID0gJ0NfT2ZmaWNlL3F1ZXN0aW9uJyArIHBhdGg7XG4gIDEyMzlcdFxuVG90YWwgbGluZXMgaW4gZmlsZTogMjA5NVxuIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiMWNkNThkY2MtOTY3ZS00NTRjLTlhOTYtNzNmMGYwNGExYTYzO3Rvb2x1X3ZydHhfMDE1b1dmTnk1azZMNEZoUDFqYnJaZGV4Ijp7InJlcXVlc3RJZCI6IjFjZDU4ZGNjLTk2N2UtNDU0Yy05YTk2LTczZjBmMDRhMWE2MyIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDE1b1dmTnk1azZMNEZoUDFqYnJaZGV4IiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiU3VjY2Vzc2Z1bGx5IGVkaXRlZCB0aGUgZmlsZSBzcmMvY29tcG9uZW50cy9Cb3QudHN4LlxuUmVzdWx0IGZvciBzdHJfcmVwbGFjZSBmb3IgZW50cnkgd2l0aCBpbmRleCBbMF06XG5SZXBsYWNlbWVudCBzdWNjZXNzZnVsLlxuRWRpdGVkIHNlY3Rpb24gYWZ0ZXIgSURFIGF1dG8tZm9ybWF0dGluZyB3YXMgYXBwbGllZDpcbiAgIDg0MVx0ICAgIGlmIChwcm9wcy5jaGF0Zmxvd0NvbmZpZykgYm9keS5vdmVycmlkZUNvbmZpZyA9IHByb3BzLmNoYXRmbG93Q29uZmlnO1xuICAgODQyXHRcbiAgIDg0M1x0ICAgIGlmIChsZWFkRW1haWwoKSkgYm9keS5sZWFkRW1haWwgPSBsZWFkRW1haWwoKTtcbiAgIDg0NFx0XG4gICA4NDVcdCAgICBpZiAoYWN0aW9uKSBib2R5LmFjdGlvbiA9IGFjdGlvbjtcbiAgIDg0Nlx0XG4gICA4NDdcdCAgICAvLyBDYWxsIG9uQmVmb3JlU2VuZCBjYWxsYmFjayBpZiBwcm92aWRlZFxuICAgODQ4XHQgICAgaWYgKHByb3BzLm9uQmVmb3JlU2VuZCkge1xuICAgODQ5XHQgICAgICB0cnkge1xuICAgODUwXHQgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb3BzLm9uQmVmb3JlU2VuZCh2YWx1ZSwgYm9keSk7XG4gICA4NTFcdFxuICAgODUyXHQgICAgICAgIC8vIElmIHRoZSBjYWxsYmFjayByZXR1cm5zIGNhbmNlbDogdHJ1ZSwgc3RvcCB0aGUgc3VibWlzc2lvblxuICAgODUzXHQgICAgICAgIGlmIChyZXN1bHQuY2FuY2VsKSB7XG4gICA4NTRcdCAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgIDg1NVx0ICAgICAgICAgIHNldERpc2FibGVJbnB1dChmYWxzZSk7XG4gICA4NTZcdCAgICAgICAgICByZXR1cm47XG4gICA4NTdcdCAgICAgICAgfVxuICAgODU4XHRcbiAgIDg1OVx0ICAgICAgICAvLyBVcGRhdGUgdGhlIG1lc3NhZ2UgYW5kIGJvZHkgd2l0aCB0aGUgbW9kaWZpZWQgdmFsdWVzXG4gICA4NjBcdCAgICAgICAgdmFsdWUgPSByZXN1bHQubWVzc2FnZTtcbiAgIDg2MVx0ICAgICAgICBPYmplY3QuYXNzaWduKGJvZHksIHJlc3VsdC5ib2R5KTtcbiAgIDg2Mlx0XG4gICA4NjNcdCAgICAgICAgLy8gVXBkYXRlIHRoZSB1c2VyIG1lc3NhZ2UgaW4gdGhlIFVJIGlmIGl0IHdhcyBtb2RpZmllZFxuICAgODY0XHQgICAgICAgIGlmIChyZXN1bHQubWVzc2FnZSAhPT0gdmFsdWUpIHtcbiAgIDg2NVx0ICAgICAgICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgIDg2Nlx0ICAgICAgICAgICAgY29uc3QgYWxsTWVzc2FnZXMgPSBbLi4uY2xvbmVEZWVwKHByZXZNZXNzYWdlcyldO1xuICAgODY3XHQgICAgICAgICAgICBpZiAoYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0udHlwZSA9PT0gJ3VzZXJNZXNzYWdlJykge1xuICAgODY4XHQgICAgICAgICAgICAgIGFsbE1lc3NhZ2VzW2FsbE1lc3NhZ2VzLmxlbmd0aCAtIDFdLm1lc3NhZ2UgPSByZXN1bHQubWVzc2FnZTtcbiAgIDg2OVx0ICAgICAgICAgICAgICBhZGRDaGF0TWVzc2FnZShhbGxNZXNzYWdlcyk7XG4gICA4NzBcdCAgICAgICAgICAgIH1cbiAgIDg3MVx0ICAgICAgICAgICAgcmV0dXJuIGFsbE1lc3NhZ2VzO1xuICAgODcyXHQgICAgICAgICAgfSk7XG4gICA4NzNcdCAgICAgICAgfVxuICAgODc0XHQgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgODc1XHQgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIG9uQmVmb3JlU2VuZCBjYWxsYmFjazonLCBlcnJvcik7XG4gICA4NzZcdCAgICAgICAgaGFuZGxlRXJyb3IoJ0Vycm9yIHByb2Nlc3NpbmcgbWVzc2FnZSBiZWZvcmUgc2VuZCcpO1xuICAgODc3XHQgICAgICAgIHJldHVybjtcbiAgIDg3OFx0ICAgICAgfVxuICAgODc5XHQgICAgfVxuICAgODgwXHRcbiAgIDg4MVx0ICAgIC8vIENoZWNrIG5ldHdvcmsgc3RhdHVzIGJlZm9yZSBtYWtpbmcgdGhlIHJlcXVlc3RcbiAgIDg4Mlx0ICAgIGlmICghbmF2aWdhdG9yLm9uTGluZSkge1xuICAgODgzXHQgICAgICBzZXRJc05ldHdvcmtFcnJvcih0cnVlKTtcbiAgIDg4NFx0ICAgICAgc2V0TmV0d29ya0Vycm9yTWVzc2FnZSgnTeG6pXQga+G6v3QgbuG7kWkgbeG6oW5nJyk7XG4gICA4ODVcdCAgICAgIHNldE1lc3NhZ2VzKChwcmV2TWVzc2FnZXMpID0+IHtcbiAgIDg4Nlx0ICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG5cblJldmlldyB0aGUgY2hhbmdlcyBhbmQgbWFrZSBzdXJlIHRoZXkgYXJlIGFzIGV4cGVjdGVkIChjb3JyZWN0IGluZGVudGF0aW9uLCBubyBkdXBsaWNhdGUgbGluZXMsIGV0YykuXG5FZGl0IHRoZSBmaWxlIGFnYWluIGlmIG5lY2Vzc2FyeS5cbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sImYzYjY2NTExLWM2ZDAtNDZiNS1iNGI2LTY3MzcwOTQ5OGU2NDt0b29sdV92cnR4XzAxTnhkdlBXVlo5SlIzSEJIbkNBTlFLTCI6eyJyZXF1ZXN0SWQiOiJmM2I2NjUxMS1jNmQwLTQ2YjUtYjRiNi02NzM3MDk0OThlNjQiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxTnhkdlBXVlo5SlIzSEJIbkNBTlFLTCIsInBoYXNlIjo2LCJyZXN1bHQiOnsidGV4dCI6IkZhaWxlZCB0byBlZGl0IHRoZSBmaWxlIHNyYy9jb25zdGFudHMudHMuIFNlZSBiZWxvdyBmb3IgZGV0YWlscy5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzBdOlxuTm8gcmVwbGFjZW1lbnQgd2FzIHBlcmZvcm1lZCwgb2xkU3RyIGRpZCBub3QgYXBwZWFyIHZlcmJhdGltIGluIHNyYy9jb25zdGFudHMudHMuXG5UaGUgY29udGVudCBpbiB0aGUgc3BlY2lmaWVkIHJlZ2lvbiBpczpcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlJztcbiAgICAgMlx0XG4gICAgIDNcdGV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xuICAgICA0XHQgIGNoYXRmbG93aWQ6ICcnLFxuICAgICA1XHQgIGFwaUhvc3Q6IHVuZGVmaW5lZCxcbiAgICAgNlx0ICBjaGF0d29vdFVybDogdW5kZWZpbmVkLFxuICAgICA3XHQgIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICAgICA4XHQgIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4gICAgIDlcdCAgdGhlbWU6IHVuZGVmaW5lZCxcbiAgICAxMFx0ICBvYnNlcnZlcnNDb25maWc6IHVuZGVmaW5lZCxcbiAgICAxMVx0ICByb29tSWRzOiB7fSxcbiAgICAxMlx0ICBpc1VzZUZBUTogdW5kZWZpbmVkLFxuXG5EaWZmIGJldHdlZW4gb2xkU3RyIGFuZCB0aGUgc3BlY2lmaWVkIHJlZ2lvbiBpczpcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi0tLSBvbGRTdHJcbisrKyByZWdpb25Db250ZW50XG5AQCAtMSw2ICsxLDYgQEBcbi10eXBlIEJ1YmJsZVByb3BzID0ge1xuLSAgLy8gQ29yZSBCb3QgcHJvcGVydGllc1xuLSAgY2hhdGZsb3dpZDogc3RyaW5nO1xuLSAgYXBpSG9zdD86IHN0cmluZztcbi0gIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbi0gIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4rZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4rICBjaGF0Zmxvd2lkOiAnJyxcbisgIGFwaUhvc3Q6IHVuZGVmaW5lZCxcbisgIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4rICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbisgIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG5cblxuRml4IGZhaWxlZCBzdHJfcmVwbGFjZSBlbnRyaWVzIGFjY29yZGluZ2x5IGFuZCB0cnkgYWdhaW4uXG4iLCJpc0Vycm9yIjp0cnVlLCJyZXF1ZXN0SWQiOiIifX0sIjk3ZjNjYWUwLTgyMDQtNDc4ZC04MTQ3LTMxZjU1YjJhNzQ5ZTt0b29sdV92cnR4XzAxQ1JneU5tWndXV0djZDIxaDZBNzRzYyI6eyJyZXF1ZXN0SWQiOiI5N2YzY2FlMC04MjA0LTQ3OGQtODE0Ny0zMWY1NWIyYTc0OWUiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxQ1JneU5tWndXV0djZDIxaDZBNzRzYyIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkhlcmUncyB0aGUgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHVwIHRvIDIgbGV2ZWxzIGRlZXAgaW4gc3JjL2ZlYXR1cmVzL2J1YmJsZSwgZXhjbHVkaW5nIGhpZGRlbiBpdGVtczpcbnNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50c1xuc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzXFxCdWJibGUudHN4XG5zcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHNcXEJ1YmJsZUJ1dHRvbi50c3hcbnNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50c1xcVG9vbHRpcC50c3hcbnNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50c1xcaW5kZXgudHNcbnNyYy9mZWF0dXJlcy9idWJibGUvaW5kZXgudHNcbnNyYy9mZWF0dXJlcy9idWJibGUvdHlwZXMudHNcbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sImNmMDU3MWJhLTdhYmYtNDBmOS04YWNmLWEzMDMxYzQ3MDUxMjt0b29sdV92cnR4XzAxTWNOVmRHRFQ2YWNTZG5DZzFFSFBIbSI6eyJyZXF1ZXN0SWQiOiJjZjA1NzFiYS03YWJmLTQwZjktOGFjZi1hMzAzMWM0NzA1MTIiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxTWNOVmRHRFQ2YWNTZG5DZzFFSFBIbSIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gc3JjL2ZlYXR1cmVzL2J1YmJsZS9pbmRleC50czpcbiAgICAgMVx0ZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzJztcbiAgICAgMlx0XG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiAyXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCIyZTNhNjcyMC04NmM1LTRiZGEtYTcyMS0wOTJhY2Y2YmQxYTI7dG9vbHVfdnJ0eF8wMVZNQ203V2NkcmVGZzdWQW8yOUNkQ0giOnsicmVxdWVzdElkIjoiMmUzYTY3MjAtODZjNS00YmRhLWE3MjEtMDkyYWNmNmJkMWEyIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMVZNQ203V2NkcmVGZzdWQW8yOUNkQ0giLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJUaGUgZm9sbG93aW5nIGNvZGUgc2VjdGlvbnMgd2VyZSByZXRyaWV2ZWQ6XG5QYXRoOiBzcmMvY29uc3RhbnRzLnRzXG4gICAgIDFcdC8vIE5vdGU6IFVzaW5nIGlubGluZSB0eXBlIGRlZmluaXRpb24gdG8gYXZvaWQgSlNYIGNvbXBpbGF0aW9uIGlzc3Vlc1xuICAgICAyXHQvLyBUaGlzIG1hdGNoZXMgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcyBmcm9tIHRoZSBvcmlnaW5hbCBjb2RlYmFzZVxuICAgICAzXHR0eXBlIEJ1YmJsZVByb3BzID0ge1xuICAgICA0XHQgIC8vIENvcmUgQm90IHByb3BlcnRpZXNcbiAgICAgNVx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDZcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgN1x0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgOVx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICAxMFx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgIDExXHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICAxMlx0ICBib3RNZXNzYWdlPzogYW55O1xuICAgIDEzXHQgIHVzZXJNZXNzYWdlPzogYW55O1xuICAgIDE0XHQgIHRleHRJbnB1dD86IGFueTtcbiAgICAxNVx0ICBmZWVkYmFjaz86IGFueTtcbiAgICAxNlx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTdcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE5XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgICAyMFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIDIxXHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgICAyMlx0ICB0aXRsZT86IHN0cmluZztcbiAgICAyM1x0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgICAyNFx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAyNVx0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgICAyNlx0ICBmb290ZXI/OiBhbnk7XG4gICAgMjdcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuLi4uXG4gICAgNDdcdFxuICAgIDQ4XHQvKipcbiAgICA0OVx0ICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhdGJvdCBidWJibGUgY29tcG9uZW50LlxuICAgIDUwXHQgKiBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXMgd2hpbGUga2VlcGluZ1xuICAgIDUxXHQgKiByZXF1aXJlZCBwcm9wZXJ0aWVzIGV4cGxpY2l0bHkgdW5kZWZpbmVkIHRvIGVuZm9yY2UgcHJvcGVyIGNvbmZpZ3VyYXRpb24uXG4gICAgNTJcdCAqL1xuICAgIDUzXHRleHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgICA1NFx0ICAvLyBDb3JlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gLSBtdXN0IGJlIHNldCBieSBpbXBsZW1lbnRlclxuICAgIDU1XHQgIGNoYXRmbG93aWQ6ICcnLFxuICAgIDU2XHRcbiAgICA1N1x0ICAvLyBBUEkgY29uZmlndXJhdGlvblxuICAgIDU4XHQgIGFwaUhvc3Q6IHVuZGVmaW5lZCxcbiAgICA1OVx0ICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgICA2MFx0ICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDYxXHRcbiAgICA2Mlx0ICAvLyBVSSB0aGVtaW5nIGFuZCBjdXN0b21pemF0aW9uXG4gICAgNjNcdCAgdGhlbWU6IHVuZGVmaW5lZCxcbiAgICA2NFx0XG4gICAgNjVcdCAgLy8gRXh0ZXJuYWwgaW50ZWdyYXRpb25zXG4gICAgNjZcdCAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcbiAgICA2N1x0ICByb29tSWRzOiB7fSxcbiAgICA2OFx0XG4gICAgNjlcdCAgLy8gRmVhdHVyZSBmbGFncyBhbmQgb3B0aW9uYWwgZnVuY3Rpb25hbGl0eVxuICAgIDcwXHQgIGlzVXNlRkFROiBmYWxzZSxcbiAgICA3MVx0XG4gICAgNzJcdCAgLy8gRmlsZSBhbmQgY29udGVudCBjb25maWd1cmF0aW9uXG4gICAgNzNcdCAgZmlsZVBhdGg6ICcnLFxuICAgIDc0XHQgIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxuICAgIDc1XHQgIGV4dGVybmFsRGF0YTogJycsXG4gICAgNzZcdCAgY2FsbEJhY2tJY29uOiAnJyxcbiAgICA3N1x0ICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUudHN4XG4gICAgIDFcdGltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgU2hvdywgc3BsaXRQcm9wcywgb25DbGVhbnVwLCBjcmVhdGVFZmZlY3QgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCBzdHlsZXMgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2luZGV4LmNzcyc7XG4gICAgIDNcdGltcG9ydCB7IEJ1YmJsZUJ1dHRvbiB9IGZyb20gJy4vQnViYmxlQnV0dG9uJztcbiAgICAgNFx0aW1wb3J0IHsgQnViYmxlUGFyYW1zIH0gZnJvbSAnLi4vdHlwZXMnO1xuICAgICA1XHRpbXBvcnQgeyBCb3QsIEJvdFByb3BzIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9Cb3QnO1xuICAgICA2XHRpbXBvcnQgVG9vbHRpcCBmcm9tICcuL1Rvb2x0aXAnO1xuICAgICA3XHRpbXBvcnQgeyBnZXRCdWJibGVCdXR0b25TaXplIH0gZnJvbSAnQC91dGlscyc7XG4gICAgIDhcdFxuICAgICA5XHRjb25zdCBkZWZhdWx0QnV0dG9uQ29sb3IgPSAnIzNCODFGNic7XG4gICAgMTBcdGNvbnN0IGRlZmF1bHRJY29uQ29sb3IgPSAnd2hpdGUnO1xuICAgIDExXHRcbiAgICAxMlx0ZXhwb3J0IHR5cGUgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcztcbiAgICAxM1x0XG4gICAgMTRcdGV4cG9ydCBjb25zdCBCdWJibGUgPSAocHJvcHM6IEJ1YmJsZVByb3BzKSA9PiB7XG4gICAgMTVcdCAgY29uc3QgW2J1YmJsZVByb3BzXSA9IHNwbGl0UHJvcHMocHJvcHMsIFsndGhlbWUnXSk7XG4gICAgMTZcdFxuICAgIDE3XHQgIGNvbnN0IFtpc0JvdE9wZW5lZCwgc2V0SXNCb3RPcGVuZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgICAxOFx0ICBjb25zdCBbaXNCb3RTdGFydGVkLCBzZXRJc0JvdFN0YXJ0ZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgICAxOVx0ICBjb25zdCBbYnV0dG9uUG9zaXRpb24sIHNldEJ1dHRvblBvc2l0aW9uXSA9IGNyZWF0ZVNpZ25hbCh7XG4gICAgMjBcdCAgICBib3R0b206IGJ1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/LmJvdHRvbSA/PyAyMCxcbiAgICAyMVx0ICAgIHJpZ2h0OiBidWJibGVQcm9wcy50aGVtZT8uYnV0dG9uPy5yaWdodCA/PyAyMCxcbiAgICAyMlx0ICB9KTtcbiAgICAyM1x0XG4gICAgMjRcdCAgY29uc3Qgb3BlbkJvdCA9ICgpID0+IHtcbiAgICAyNVx0ICAgIGlmICghaXNCb3RTdGFydGVkKCkpIHNldElzQm90U3RhcnRlZCh0cnVlKTtcbiAgICAyNlx0ICAgIHNldElzQm90T3BlbmVkKHRydWUpO1xuICAgIDI3XHQgIH07XG4gICAgMjhcdFxuICAgIDI5XHQgIGNvbnN0IGNsb3NlQm90ID0gKCkgPT4ge1xuICAgIDMwXHQgICAgc2V0SXNCb3RPcGVuZWQoZmFsc2UpO1xuICAgIDMxXHQgIH07XG4gICAgMzJcdFxuICAgIDMzXHQgIGNvbnN0IHRvZ2dsZUJvdCA9ICgpID0+IHtcbiAgICAzNFx0ICAgIGlzQm90T3BlbmVkKCkgPyBjbG9zZUJvdCgpIDogb3BlbkJvdCgpO1xuICAgIDM1XHQgIH07XG4gICAgMzZcdFxuICAgIDM3XHQgIG9uQ2xlYW51cCgoKSA9PiB7XG4gICAgMzhcdCAgICBzZXRJc0JvdFN0YXJ0ZWQoZmFsc2UpO1xuICAgIDM5XHQgIH0pO1xuICAgIDQwXHRcbiAgICA0MVx0ICBjb25zdCBidXR0b25TaXplID0gZ2V0QnViYmxlQnV0dG9uU2l6ZShwcm9wcy50aGVtZT8uYnV0dG9uPy5zaXplKTsgLy8gRGVmYXVsdCB0byA0OHB4IGlmIHNpemUgaXMgbm90IHByb3ZpZGVkXG4gICAgNDJcdCAgY29uc3QgYnV0dG9uQm90dG9tID0gcHJvcHMudGhlbWU/LmJ1dHRvbj8uYm90dG9tID8/IDIwO1xuICAgIDQzXHQgIGNvbnN0IGNoYXRXaW5kb3dCb3R0b20gPSBidXR0b25Cb3R0b20gKyBidXR0b25TaXplICsgMTA7IC8vIEFkanVzdCB0aGUgb2Zmc2V0IGhlcmUgZm9yIHNsaWdodCBzaGlmdFxuICAgIDQ0XHRcbiAgICA0NVx0ICAvLyBBZGQgdmlld3BvcnQgbWV0YSB0YWcgZHluYW1pY2FsbHlcbiAgICA0Nlx0ICBjcmVhdGVFZmZlY3QoKCkgPT4ge1xuICAgIDQ3XHQgICAgY29uc3QgbWV0YSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ21ldGEnKTtcbiAgICA0OFx0ICAgIG1ldGEubmFtZSA9ICd2aWV3cG9ydCc7XG4gICAgNDlcdCAgICBtZXRhLmNvbnRlbnQgPSAnd2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgaW50ZXJhY3RpdmUtd2lkZ2V0PXJlc2l6ZXMtY29udGVudCc7XG4gICAgNTBcdCAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG1ldGEpO1xuICAgIDUxXHRcbiAgICA1Mlx0ICAgIHJldHVybiAoKSA9PiB7XG4gICAgNTNcdCAgICAgIGRvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQobWV0YSk7XG4gICAgNTRcdCAgICB9O1xuICAgIDU1XHQgIH0pO1xuICAgIDU2XHRcbiAgICA1N1x0ICBjb25zdCBzaG93VG9vbHRpcCA9IGJ1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy5zaG93VG9vbHRpcCA/PyBmYWxzZTtcbiAgICA1OFx0XG4gICAgNTlcdCAgcmV0dXJuIChcbiAgICA2MFx0ICAgIDw+XG4gICAgNjFcdCAgICAgIDxTaG93IHdoZW49e3Byb3BzLnRoZW1lPy5jdXN0b21DU1N9PlxuICAgIDYyXHQgICAgICAgIDxzdHlsZT57cHJvcHMudGhlbWU/LmN1c3RvbUNTU308L3N0eWxlPlxuICAgIDYzXHQgICAgICA8L1Nob3c+XG4gICAgNjRcdCAgICAgIDxzdHlsZT57c3R5bGVzfTwvc3R5bGU+XG4gICAgNjVcdCAgICAgIDxUb29sdGlwXG4gICAgNjZcdCAgICAgICAgc2hvd1Rvb2x0aXA9e3Nob3dUb29sdGlwICYmICFpc0JvdE9wZW5lZCgpfVxuICAgIDY3XHQgICAgICAgIHBvc2l0aW9uPXtidXR0b25Qb3NpdGlvbigpfVxuICAgIDY4XHQgICAgICAgIGJ1dHRvblNpemU9e2J1dHRvblNpemV9XG4gICAgNjlcdCAgICAgICAgdG9vbHRpcE1lc3NhZ2U9e2J1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy50b29sdGlwTWVzc2FnZX1cbiAgICA3MFx0ICAgICAgICB0b29sdGlwQmFja2dyb3VuZENvbG9yPXtidWJibGVQcm9wcy50aGVtZT8udG9vbHRpcD8udG9vbHRpcEJhY2tncm91bmRDb2xvcn1cbiAgICA3MVx0ICAgICAgICB0b29sdGlwVGV4dENvbG9yPXtidWJibGVQcm9wcy50aGVtZT8udG9vbHRpcD8udG9vbHRpcFRleHRDb2xvcn1cbiAgICA3Mlx0ICAgICAgICB0b29sdGlwRm9udFNpemU9e2J1YmJsZVByb3BzLnRoZW1lPy50b29sdGlwPy50b29sdGlwRm9udFNpemV9IC8vIFNldCB0aGUgdG9vbHRpcCBmb250IHNpemVcbiAgICA3M1x0ICAgICAgLz5cbiAgICA3NFx0ICAgICAgPEJ1YmJsZUJ1dHRvblxuICAgIDc1XHQgICAgICAgIHsuLi5idWJibGVQcm9wcy50aGVtZT8uYnV0dG9ufVxuICAgIDc2XHQgICAgICAgIHRvZ2dsZUJvdD17dG9nZ2xlQm90fVxuICAgIDc3XHQgICAgICAgIGlzQm90T3BlbmVkPXtpc0JvdE9wZW5lZCgpfVxuICAgIDc4XHQgICAgICAgIHNldEJ1dHRvblBvc2l0aW9uPXtzZXRCdXR0b25Qb3NpdGlvbn1cbiAgICA3OVx0ICAgICAgICBkcmFnQW5kRHJvcD17YnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uZHJhZ0FuZERyb3AgPz8gZmFsc2V9XG4gICAgODBcdCAgICAgICAgYXV0b09wZW49e2J1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/LmF1dG9XaW5kb3dPcGVuPy5hdXRvT3BlbiA/PyBmYWxzZX1cbiAgICA4MVx0ICAgICAgICBvcGVuRGVsYXk9e2J1YmJsZVByb3BzLnRoZW1lPy5idXR0b24/LmF1dG9XaW5kb3dPcGVuPy5vcGVuRGVsYXl9XG4gICAgODJcdCAgICAgICAgYXV0b09wZW5Pbk1vYmlsZT17YnViYmxlUHJvcHMudGhlbWU/LmJ1dHRvbj8uYXV0b1dpbmRvd09wZW4/LmF1dG9PcGVuT25Nb2JpbGUgPz8gZmFsc2V9XG4gICAgODNcdCAgICAgIC8+XG4gICAgODRcdCAgICAgIDxkaXZcbiAgICA4NVx0ICAgICAgICBwYXJ0PVwiYm90XCJcbiAgICA4Nlx0ICAgICAgICBzdHlsZT17e1xuICAgIDg3XHQgICAgICAgICAgaGVpZ2h0OiBidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uaGVpZ2h0ID8gYCR7YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmhlaWdodC50b1N0cmluZygpfXB4YCA6ICdjYWxjKDEwMCUgLSAxNTBweCknLFxuICAgIDg4XHQgICAgICAgICAgd2lkdGg6IGJ1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py53aWR0aCA/IGAke2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py53aWR0aC50b1N0cmluZygpfXB4YCA6IHVuZGVmaW5lZCxcbiAgICA4OVx0ICAgICAgICAgIHRyYW5zaXRpb246ICd0cmFuc2Zvcm0gMjAwbXMgY3ViaWMtYmV6aWVyKDAsIDEuMiwgMSwgMSksIG9wYWNpdHkgMTUwbXMgZWFzZS1vdXQnLFxuICAgIDkwXHQgICAgICAgICAgJ3RyYW5zZm9ybS1vcmlnaW4nOiAnYm90dG9tIHJpZ2h0JyxcbiAgICA5MVx0ICAgICAgICAgIHRyYW5zZm9ybTogaXNCb3RPcGVuZWQoKSA/ICdzY2FsZTNkKDEsIDEsIDEpJyA6ICdzY2FsZTNkKDAsIDAsIDEpJyxcbiAgICA5Mlx0ICAgICAgICAgICdib3gtc2hhZG93JzogJ3JnYigwIDAgMCAvIDE2JSkgMHB4IDVweCA0MHB4JyxcbiAgICA5M1x0ICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogYnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmJhY2tncm91bmRDb2xvciB8fCAnI2ZmZmZmZicsXG4gICAgOTRcdCAgICAgICAgICAnYmFja2dyb3VuZC1pbWFnZSc6IGJ1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5iYWNrZ3JvdW5kSW1hZ2UgPyBgdXJsKCR7YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmJhY2tncm91bmRJbWFnZX0pYCA6ICdub25lJyxcbiAgICA5NVx0ICAgICAgICAgICdiYWNrZ3JvdW5kLXNpemUnOiAnY292ZXInLFxuICAgIDk2XHQgICAgICAgICAgJ2JhY2tncm91bmQtcG9zaXRpb24nOiAnY2VudGVyJyxcbiAgICA5N1x0ICAgICAgICAgICdiYWNrZ3JvdW5kLXJlcGVhdCc6ICduby1yZXBlYXQnLFxuICAgIDk4XHQgICAgICAgICAgJ3otaW5kZXgnOiA0MjQyNDI0MixcbiAgICA5OVx0ICAgICAgICAgIGJvdHRvbTogYCR7TWF0aC5taW4oYnV0dG9uUG9zaXRpb24oKS5ib3R0b20gKyBidXR0b25TaXplICsgMTAsIHdpbmRvdy5pbm5lckhlaWdodCAtIGNoYXRXaW5kb3dCb3R0b20pfXB4YCxcbiAgIDEwMFx0ICAgICAgICAgIHJpZ2h0OiBgJHtNYXRoLm1pbihidXR0b25Qb3NpdGlvbigpLnJpZ2h0LCB3aW5kb3cuaW5uZXJXaWR0aCAtIDQxMCl9cHhgLFxuICAgMTAxXHQgICAgICAgIH19XG4gICAxMDJcdCAgICAgICAgY2xhc3M9e1xuICAgMTAzXHQgICAgICAgICAgYGZpeGVkIHNtOnJpZ2h0LTUgcm91bmRlZC1sZyB3LWZ1bGwgc206dy1bNDAwcHhdIG1heC1oLVs3MDRweF1gICtcbiAgIDEwNFx0ICAgICAgICAgIChpc0JvdE9wZW5lZCgpID8gJyBvcGFjaXR5LTEnIDogJyBvcGFjaXR5LTAgcG9pbnRlci1ldmVudHMtbm9uZScpICtcbiAgIDEwNVx0ICAgICAgICAgIGAgYm90dG9tLSR7Y2hhdFdpbmRvd0JvdHRvbX1weGBcbiAgIDEwNlx0ICAgICAgICB9XG4uLi5cbiAgIDE1Mlx0ICAgICAgICAgICAgICBkaXNjbGFpbWVyPXtidWJibGVQcm9wcy50aGVtZT8uZGlzY2xhaW1lcn1cbiAgIDE1M1x0ICAgICAgICAgICAgICBkYXRlVGltZVRvZ2dsZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmRhdGVUaW1lVG9nZ2xlfVxuICAgMTU0XHQgICAgICAgICAgICAgIHJlbmRlckhUTUw9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5yZW5kZXJIVE1MfVxuICAgMTU1XHQgICAgICAgICAgICAgIGNoYXR3b290VXJsPXtwcm9wcy5jaGF0d29vdFVybH1cbiAgIDE1Nlx0ICAgICAgICAgICAgICByb29tSWRzPXtwcm9wcy5yb29tSWRzfVxuICAgMTU3XHQgICAgICAgICAgICAgIGlzVXNlRkFRPXtwcm9wcy5pc1VzZUZBUX1cbiAgIDE1OFx0ICAgICAgICAgICAgICBmaWxlUGF0aD17cHJvcHMuZmlsZVBhdGh9XG4gICAxNTlcdCAgICAgICAgICAgICAgc3VnZ2VzdFF1ZXN0aW9ucz17cHJvcHMuc3VnZ2VzdFF1ZXN0aW9uc31cbiAgIDE2MFx0ICAgICAgICAgICAgICBleHRlcm5hbERhdGE9e3Byb3BzLmV4dGVybmFsRGF0YX1cbiAgIDE2MVx0ICAgICAgICAgICAgICBjYWxsQmFja0Z1bmN0aW9uPXtwcm9wcy5jYWxsQmFja0Z1bmN0aW9ufVxuICAgMTYyXHQgICAgICAgICAgICAgIGNhbGxCYWNrSWNvbj17cHJvcHMuY2FsbEJhY2tJY29ufVxuICAgMTYzXHQgICAgICAgICAgICAvPlxuICAgMTY0XHQgICAgICAgICAgPC9kaXY+XG4gICAxNjVcdCAgICAgICAgPC9TaG93PlxuICAgMTY2XHQgICAgICA8L2Rpdj5cbiAgIDE2N1x0ICAgIDwvPlxuICAgMTY4XHQgICk7XG4gICAxNjlcdH07XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvQm90QnViYmxlLnRzeFxuLi4uXG4gICAgMThcdFxuICAgIDE5XHR0eXBlIFByb3BzID0ge1xuICAgIDIwXHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgIDIxXHQgIHNldE1lc3NhZ2VzPzogYW55O1xuICAgIDIyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAyM1x0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAyNFx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDI1XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAyNlx0ICBmaWxlQW5ub3RhdGlvbnM/OiBhbnk7XG4gICAgMjdcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMjhcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDI5XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzFcdCAgY2hhdEZlZWRiYWNrU3RhdHVzPzogYm9vbGVhbjtcbiAgICAzMlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAzM1x0ICBmZWVkYmFja0NvbG9yPzogc3RyaW5nO1xuICAgIDM0XHQgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICAzNVx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAgMzZcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgIDM3XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgICAzOFx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAzOVx0ICBoYW5kbGVBY3Rpb25DbGljazogKGxhYmVsOiBzdHJpbmcsIGFjdGlvbjogSUFjdGlvbiB8IHVuZGVmaW5lZCB8IG51bGwpID0+IHZvaWQ7XG4gICAgNDBcdCAgaGFuZGxlU291cmNlRG9jdW1lbnRzQ2xpY2s6IChzcmM6IGFueSkgPT4gdm9pZDtcbiAgICA0MVx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgICA0Mlx0ICBvbkNvbm5lY3RUb0h1bWFuQWR2aXNvcj86IChpZDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpID0+IHZvaWQ7XG4gICAgNDNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgNDRcdCAgcXVlc3Rpb24/OiBzdHJpbmc7XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGVCdXR0b24udHN4XG4gICAgIDFcdGltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgY3JlYXRlRWZmZWN0LCBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyBpc05vdERlZmluZWQsIGdldEJ1YmJsZUJ1dHRvblNpemUgfSBmcm9tICdAL3V0aWxzL2luZGV4JztcbiAgICAgM1x0aW1wb3J0IHsgQnV0dG9uVGhlbWUgfSBmcm9tICcuLi90eXBlcyc7XG4gICAgIDRcdFxuICAgICA1XHR0eXBlIFByb3BzID0gQnV0dG9uVGhlbWUgJiB7XG4gICAgIDZcdCAgaXNCb3RPcGVuZWQ6IGJvb2xlYW47XG4gICAgIDdcdCAgdG9nZ2xlQm90OiAoKSA9PiB2b2lkO1xuICAgICA4XHQgIHNldEJ1dHRvblBvc2l0aW9uOiAocG9zaXRpb246IHsgYm90dG9tOiBudW1iZXI7IHJpZ2h0OiBudW1iZXIgfSkgPT4gdm9pZDtcbiAgICAgOVx0ICBkcmFnQW5kRHJvcDogYm9vbGVhbjtcbiAgICAxMFx0ICBhdXRvT3Blbj86IGJvb2xlYW47IC8vIE9wdGlvbmFsIHBhcmFtZXRlciB0byBjb250cm9sIGF1dG9tYXRpYyB3aW5kb3cgb3BlbmluZ1xuICAgIDExXHQgIG9wZW5EZWxheT86IG51bWJlcjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBkZWxheSB0aW1lIGluIHNlY29uZHNcbiAgICAxMlx0ICBhdXRvT3Blbk9uTW9iaWxlPzogYm9vbGVhbjsgLy8gT3B0aW9uYWwgcGFyYW1ldGVyIGZvciBvcGVuaW5nIG9uIG1vYmlsZVxuICAgIDEzXHR9O1xuICAgIDE0XHRcbiAgICAxNVx0Y29uc3QgZGVmYXVsdEJ1dHRvbkNvbG9yID0gJyMzQjgxRjYnO1xuICAgIDE2XHRjb25zdCBkZWZhdWx0SWNvbkNvbG9yID0gJ3doaXRlJztcbiAgICAxN1x0Y29uc3QgZGVmYXVsdEJvdHRvbSA9IDIwO1xuICAgIDE4XHRjb25zdCBkZWZhdWx0UmlnaHQgPSAyMDtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS90eXBlcy50c1xuICAgICAxXHRleHBvcnQgdHlwZSBCdWJibGVQYXJhbXMgPSB7XG4gICAgIDJcdCAgdGhlbWU/OiBCdWJibGVUaGVtZTtcbiAgICAgM1x0fTtcbiAgICAgNFx0XG4gICAgIDVcdGV4cG9ydCB0eXBlIEJ1YmJsZVRoZW1lID0ge1xuICAgICA2XHQgIGNoYXRXaW5kb3c/OiBDaGF0V2luZG93VGhlbWU7XG4gICAgIDdcdCAgYnV0dG9uPzogQnV0dG9uVGhlbWU7XG4gICAgIDhcdCAgdG9vbHRpcD86IFRvb2xUaXBUaGVtZTtcbiAgICAgOVx0ICBkaXNjbGFpbWVyPzogRGlzY2xhaW1lclBvcFVwVGhlbWU7XG4gICAgMTBcdCAgY3VzdG9tQ1NTPzogc3RyaW5nO1xuICAgIDExXHR9O1xuICAgIDEyXHRcbiAgICAxM1x0ZXhwb3J0IHR5cGUgVGV4dElucHV0VGhlbWUgPSB7XG4gICAgMTRcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNlx0ICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICAxN1x0ICBzZW5kQnV0dG9uQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgbWF4Q2hhcnM/OiBudW1iZXI7XG4gICAgMTlcdCAgbWF4Q2hhcnNXYXJuaW5nTWVzc2FnZT86IHN0cmluZztcbiAgICAyMFx0ICBhdXRvRm9jdXM/OiBib29sZWFuO1xuICAgIDIxXHQgIHNlbmRNZXNzYWdlU291bmQ/OiBib29sZWFuO1xuICAgIDIyXHQgIHNlbmRTb3VuZExvY2F0aW9uPzogc3RyaW5nO1xuICAgIDIzXHQgIHJlY2VpdmVNZXNzYWdlU291bmQ/OiBib29sZWFuO1xuICAgIDI0XHQgIHJlY2VpdmVTb3VuZExvY2F0aW9uPzogc3RyaW5nO1xuICAgIDI1XHR9O1xuICAgIDI2XHRcbiAgICAyN1x0ZXhwb3J0IHR5cGUgVXNlck1lc3NhZ2VUaGVtZSA9IHtcbiAgICAyOFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMjlcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDMwXHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDMxXHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAzMlx0fTtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9HdWVzdEJ1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgRm9yLCBTaG93LCBvbk1vdW50IH0gZnJvbSAnc29saWQtanMnO1xuICAgICAyXHRpbXBvcnQgeyBBdmF0YXIgfSBmcm9tICcuLi9hdmF0YXJzL0F2YXRhcic7XG4gICAgIDNcdGltcG9ydCB7IE1hcmtlZCB9IGZyb20gJ0B0cy1zdGFjay9tYXJrZG93bic7XG4gICAgIDRcdGltcG9ydCB7IEZpbGVVcGxvYWQsIE1lc3NhZ2VUeXBlIH0gZnJvbSAnLi4vQm90JztcbiAgICAgNVx0aW1wb3J0IHsgQXR0YWNobWVudEljb24gfSBmcm9tICcuLi9pY29ucyc7XG4gICAgIDZcdFxuICAgICA3XHR0eXBlIFByb3BzID0ge1xuICAgICA4XHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgICA5XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgMTBcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDExXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDEyXHQgIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAgIDEzXHQgIGF2YXRhclNyYz86IHN0cmluZztcbiAgICAxNFx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTVcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE2XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDE3XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDE4XHR9O1xuICAgIDE5XHRcbiAgICAyMFx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjM0I4MUY2JztcbiAgICAyMVx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjZmZmZmZmJztcbiAgICAyMlx0Y29uc3QgZGVmYXVsdEZvbnRTaXplID0gMTY7XG4uLi5cblBhdGg6IHNyYy9CdWJibGVDaGF0LnRzeFxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcnXG4gICAgIDJcdGltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCdWJibGVQcm9wc1xuICAgICA1XHRcbiAgICAgNlx0ZGVjbGFyZSBnbG9iYWwge1xuICAgICA3XHQgIG5hbWVzcGFjZSBKU1gge1xuICAgICA4XHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAgOVx0ICAgICAgJ2Zsb3dpc2UtY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEwXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxMVx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDEyXHQgICAgICA+XG4gICAgMTNcdCAgICB9XG4gICAgMTRcdCAgfVxuICAgIDE1XHR9XG4gICAgMTZcdFxuICAgIDE3XHR0eXBlIEJ1YmJsZUVsZW1lbnQgPSBIVE1MRWxlbWVudCAmIFByb3BzXG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvTGVhZENhcHR1cmVCdWJibGUudHN4XG4uLi5cbiAgICAgOFx0XG4gICAgIDlcdHR5cGUgUHJvcHMgPSB7XG4gICAgMTBcdCAgbWVzc2FnZTogTWVzc2FnZVR5cGU7XG4gICAgMTFcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgIDEyXHQgIGNoYXRJZDogc3RyaW5nO1xuICAgIDEzXHQgIGxlYWRzQ29uZmlnPzogTGVhZHNDb25maWc7XG4gICAgMTRcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAxNVx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAxNlx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMTdcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE4XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxOVx0ICBzZW5kQnV0dG9uQ29sb3I/OiBzdHJpbmc7XG4gICAgMjBcdCAgZm9udFNpemU/OiBudW1iZXI7XG4gICAgMjFcdCAgaXNMZWFkU2F2ZWQ6IGJvb2xlYW47XG4gICAgMjJcdCAgc2V0SXNMZWFkU2F2ZWQ6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAyM1x0ICBzZXRMZWFkRW1haWw6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICAgIDI0XHR9O1xuLi4uXG5QYXRoOiBzcmMvd2luZG93LnRzXG4gICAgIDFcdGltcG9ydCB7IG9ic2VydmVyc0NvbmZpZ1R5cGUgfSBmcm9tICcuL2NvbXBvbmVudHMvQm90JztcbiAgICAgMlx0aW1wb3J0IHsgQnViYmxlVGhlbWUgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgIDNcdFxuICAgICA0XHQvKiBlc2xpbnQtZGlzYWJsZSBzb2xpZC9yZWFjdGl2aXR5ICovXG4gICAgIDVcdHR5cGUgQm90UHJvcHMgPSB7XG4gICAgIDZcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgICA3XHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgIDhcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgICA5XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgMTBcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcbiAgICAxMVx0ICB0aGVtZT86IEJ1YmJsZVRoZW1lO1xuICAgIDEyXHQgIGNoYXR3b290VXJsPzogc3RyaW5nO1xuICAgIDEzXHQgIHJvb21JZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIDE0XHQgIGlzVXNlRkFRPzogdW5kZWZpbmVkO1xuICAgIDE1XHR9O1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0FnZW50UmVhc29uaW5nQnViYmxlLnRzeFxuICAgICAxXHRpbXBvcnQgeyBGb3IsIG9uTW91bnQgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCB7IE1hcmtlZCB9IGZyb20gJ0B0cy1zdGFjay9tYXJrZG93bic7XG4gICAgIDNcdGltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICcuLi9Cb3QnO1xuICAgICA0XHRpbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuICAgICA1XHRcbiAgICAgNlx0dHlwZSBQcm9wcyA9IHtcbiAgICAgN1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgICA4XHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAgOVx0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAxMFx0ICBhZ2VudE5hbWU6IHN0cmluZztcbiAgICAxMVx0ICBhZ2VudE1lc3NhZ2U6IHN0cmluZztcbiAgICAxMlx0ICBhZ2VudEFydGlmYWN0cz86IEZpbGVVcGxvYWRbXTtcbiAgICAxM1x0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTRcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDE2XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDE3XHR9O1xuICAgIDE4XHRcbiAgICAxOVx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjZjdmOGZmJztcbiAgICAyMFx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjMzAzMjM1JztcbiAgICAyMVx0Y29uc3QgZGVmYXVsdEZvbnRTaXplID0gMTY7XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL0JvdC50c3hcbiAgICAgMVx0aW1wb3J0IHsgQXZhdGFyIH0gZnJvbSAnQC9jb21wb25lbnRzL2F2YXRhcnMvQXZhdGFyJztcbiAgICAgMlx0aW1wb3J0IHsgRm9sbG93VXBQcm9tcHRCdWJibGUgfSBmcm9tICdAL2NvbXBvbmVudHMvYnViYmxlcy9Gb2xsb3dVcFByb21wdEJ1YmJsZSc7XG4gICAgIDNcdGltcG9ydCB7IExlYWRDYXB0dXJlQnViYmxlIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1YmJsZXMvTGVhZENhcHR1cmVCdWJibGUnO1xuICAgICA0XHRpbXBvcnQgeyBEZWxldGVCdXR0b24sIFNlbmRCdXR0b24gfSBmcm9tICdAL2NvbXBvbmVudHMvYnV0dG9ucy9TZW5kQnV0dG9uJztcbiAgICAgNVx0aW1wb3J0IHsgRmlsZVByZXZpZXcgfSBmcm9tICdAL2NvbXBvbmVudHMvaW5wdXRzL3RleHRJbnB1dC9jb21wb25lbnRzL0ZpbGVQcmV2aWV3JztcbiAgICAgNlx0aW1wb3J0IHtcbiAgICAgN1x0ICBCb3RNZXNzYWdlVGhlbWUsXG4gICAgIDhcdCAgRGF0ZVRpbWVUb2dnbGVUaGVtZSxcbiAgICAgOVx0ICBEaXNjbGFpbWVyUG9wVXBUaGVtZSxcbiAgICAxMFx0ICBGZWVkYmFja1RoZW1lLFxuICAgIDExXHQgIEZvb3RlclRoZW1lLFxuICAgIDEyXHQgIFRleHRJbnB1dFRoZW1lLFxuICAgIDEzXHQgIFVzZXJNZXNzYWdlVGhlbWUsXG4gICAgMTRcdH0gZnJvbSAnQC9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgIDE1XHRpbXBvcnQgeyBEaXNjbGFpbWVyUG9wdXAsIFBvcHVwIH0gZnJvbSAnQC9mZWF0dXJlcy9wb3B1cCc7XG4gICAgMTZcdGltcG9ydCB7XG4gICAgMTdcdCAgY3JlYXRlQXR0YWNobWVudFdpdGhGb3JtRGF0YSxcbiAgICAxOFx0ICBGZWVkYmFja1JhdGluZ1R5cGUsXG4gICAgMTlcdCAgZ2V0Q2hhdGJvdENvbmZpZyxcbiAgICAyMFx0ICBnZXRGaWxlQ29udGVudCxcbiAgICAyMVx0ICBnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSxcbiAgICAyMlx0ICBJbmNvbWluZ0lucHV0LFxuICAgIDIzXHQgIGlzU3RyZWFtQXZhaWxhYmxlUXVlcnksXG4uLi5cbiAgICA4N1x0XG4gICAgODhcdGV4cG9ydCB0eXBlIElBY3Rpb24gPSB7XG4gICAgODlcdCAgaWQ/OiBzdHJpbmc7XG4gICAgOTBcdCAgZWxlbWVudHM/OiBBcnJheTx7XG4gICAgOTFcdCAgICB0eXBlOiBzdHJpbmc7XG4gICAgOTJcdCAgICBsYWJlbDogc3RyaW5nO1xuICAgIDkzXHQgIH0+O1xuICAgIDk0XHQgIG1hcHBpbmc/OiB7XG4gICAgOTVcdCAgICBhcHByb3ZlOiBzdHJpbmc7XG4gICAgOTZcdCAgICByZWplY3Q6IHN0cmluZztcbiAgICA5N1x0ICAgIHRvb2xDYWxsczogYW55W107XG4gICAgOThcdCAgfTtcbiAgICA5OVx0fTtcbiAgIDEwMFx0XG4gICAxMDFcdGV4cG9ydCB0eXBlIEZpbGVVcGxvYWQgPSBPbWl0PEZpbGVQcmV2aWV3LCAncHJldmlldyc+O1xuICAgMTAyXHRcbiAgIDEwM1x0ZXhwb3J0IHR5cGUgTWVzc2FnZVR5cGUgPSB7XG4gICAxMDRcdCAgbWVzc2FnZUlkPzogc3RyaW5nO1xuICAgMTA1XHQgIG1lc3NhZ2U6IHN0cmluZztcbiAgIDEwNlx0ICB0eXBlOiBtZXNzYWdlVHlwZTtcbiAgIDEwN1x0ICBzb3VyY2VEb2N1bWVudHM/OiBhbnk7XG4gICAxMDhcdCAgZmlsZUFubm90YXRpb25zPzogYW55O1xuICAgMTA5XHQgIGZpbGVVcGxvYWRzPzogUGFydGlhbDxGaWxlVXBsb2FkPltdO1xuICAgMTEwXHQgIGFydGlmYWN0cz86IFBhcnRpYWw8RmlsZVVwbG9hZD5bXTtcbiAgIDExMVx0ICBhZ2VudFJlYXNvbmluZz86IElBZ2VudFJlYXNvbmluZ1tdO1xuICAgMTEyXHQgIHVzZWRUb29scz86IGFueVtdO1xuICAgMTEzXHQgIGFjdGlvbj86IElBY3Rpb24gfCBudWxsO1xuICAgMTE0XHQgIHJhdGluZz86IEZlZWRiYWNrUmF0aW5nVHlwZTtcbiAgIDExNVx0ICBpZD86IHN0cmluZztcbiAgIDExNlx0ICBmb2xsb3dVcFByb21wdHM/OiBzdHJpbmc7XG4gICAxMTdcdCAgZGF0ZVRpbWU/OiBzdHJpbmc7XG4gICAxMThcdH07XG4gICAxMTlcdFxuICAgMTIwXHR0eXBlIElVcGxvYWRzID0ge1xuICAgMTIxXHQgIGRhdGE6IEZpbGVQcmV2aWV3RGF0YTtcbiAgIDEyMlx0ICB0eXBlOiBzdHJpbmc7XG4gICAxMjNcdCAgbmFtZTogc3RyaW5nO1xuICAgMTI0XHQgIG1pbWU6IHN0cmluZztcbiAgIDEyNVx0ICBmaWxlPzogYW55O1xuICAgMTI2XHR9W107XG4gICAxMjdcdFxuICAgMTI4XHR0eXBlIG9ic2VydmVyQ29uZmlnVHlwZSA9IChhY2Nlc3Nvcjogc3RyaW5nIHwgYm9vbGVhbiB8IG9iamVjdCB8IE1lc3NhZ2VUeXBlW10pID0+IHZvaWQ7XG4gICAxMjlcdGV4cG9ydCB0eXBlIG9ic2VydmVyc0NvbmZpZ1R5cGUgPSBSZWNvcmQ8J29ic2VydmVVc2VySW5wdXQnIHwgJ29ic2VydmVMb2FkaW5nJyB8ICdvYnNlcnZlTWVzc2FnZXMnLCBvYnNlcnZlckNvbmZpZ1R5cGU+O1xuICAgMTMwXHRcbiAgIDEzMVx0ZXhwb3J0IHR5cGUgQm90UHJvcHMgPSB7XG4gICAxMzJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgMTMzXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAxMzRcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgMTM1XHQgIG9uQmVmb3JlU2VuZD86IChtZXNzYWdlOiBzdHJpbmcsIGJvZHk6IEluY29taW5nSW5wdXQpID0+IFByb21pc2U8eyBtZXNzYWdlOiBzdHJpbmc7IGJvZHk6IEluY29taW5nSW5wdXQ7IGNhbmNlbD86IGJvb2xlYW4gfT4gfCB7IG1lc3NhZ2U6IHN0cmluZzsgYm9keTogSW5jb21pbmdJbnB1dDsgY2FuY2VsPzogYm9vbGVhbiB9O1xuICAgMTM2XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAxMzdcdCAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzhcdCAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOVx0ICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxNDBcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgIDE0MVx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAxNDJcdCAgdGV4dElucHV0PzogVGV4dElucHV0VGhlbWU7XG4gICAxNDNcdCAgZmVlZGJhY2s/OiBGZWVkYmFja1RoZW1lO1xuICAgMTQ0XHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0NVx0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0Nlx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDdcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ4XHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAxNDlcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgMTUwXHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTUxXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgMTUyXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgMTUzXHQgIGlzRnVsbFBhZ2U/OiBib29sZWFuO1xuICAgMTU0XHQgIGZvb3Rlcj86IEZvb3RlclRoZW1lO1xuICAgMTU1XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgIDE1Nlx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgMTU3XHQgIHN0YXJ0ZXJQcm9tcHRzPzogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCB7IHByb21wdDogc3RyaW5nIH0+O1xuICAgMTU4XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgIDE1OVx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAxNjBcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgMTYxXHQgIGRhdGVUaW1lVG9nZ2xlPzogRGF0ZVRpbWVUb2dnbGVUaGVtZTtcbiAgIDE2Mlx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgIDE2M1x0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgIDE2NFx0ICByb29tSWRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgIDE2NVx0ICBpc1VzZUZBUT86IGJvb2xlYW47XG4gICAxNjZcdCAgZmlsZVBhdGg/OiBzdHJpbmc7XG4gICAxNjdcdCAgc3VnZ2VzdFF1ZXN0aW9ucz86IHN0cmluZztcbiAgIDE2OFx0ICBleHRlcm5hbERhdGE/OiBzdHJpbmc7XG4gICAxNjlcdCAgY2FsbEJhY2tGdW5jdGlvbj86IChlOiBhbnkpID0+IHZvaWQ7XG4gICAxNzBcdCAgY2FsbEJhY2tJY29uPzogc3RyaW5nO1xuICAgMTcxXHR9O1xuICAgMTcyXHRcbiAgIDE3M1x0ZXhwb3J0IHR5cGUgTGVhZHNDb25maWcgPSB7XG4gICAxNzRcdCAgc3RhdHVzOiBib29sZWFuO1xuICAgMTc1XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTc2XHQgIG5hbWU/OiBib29sZWFuO1xuICAgMTc3XHQgIGVtYWlsPzogYm9vbGVhbjtcbiAgIDE3OFx0ICBwaG9uZT86IGJvb2xlYW47XG4gICAxNzlcdCAgc3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XG4gICAxODBcdH07XG4gICAxODFcdFxuICAgMTgyXHRjb25zdCBkZWZhdWx0V2VsY29tZU1lc3NhZ2UgPSAnWGluIGNow6BvIHTDtGkgY8OzIHRo4buDIGdpw7pwIGfDrCBjaG8gYuG6oW4/JztcbiAgIDE4M1x0Y29uc3Qgc3RhdHVzTXNnID0ge1xuICAgMTg0XHQgIDM6ICfEkGFuZyB44butIGzDvS4uLicsXG4gICAxODVcdCAgMTA6ICfEkGFuZyB04bqjaSBk4buvIGxp4buHdSwgdnVpIGzDsm5nIMSR4bujaS4uLicsXG4gICAxODZcdCAgNDA6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBo4buHIHRo4buRbmcgxJFhbmcgcXXDoSB04bqjaSwgdnVpIGzDsm5nIHRo4butIGzhuqFpIHNhdS4nLFxuICAgMTg3XHQgIDUwOiAnJyxcbiAgIDE4OFx0fTtcbiAgIDE4OVx0XG4gICAxOTBcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnI2ZmZmZmZic7XG4gICAxOTFcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnIzMwMzIzNSc7XG4gICAxOTJcdFxuICAgMTkzXHRleHBvcnQgY29uc3QgQm90ID0gKGJvdFByb3BzOiBCb3RQcm9wcyAmIHsgY2xhc3M/OiBzdHJpbmcgfSkgPT4ge1xuICAgMTk0XHQgIC8vIHNldCBhIGRlZmF1bHQgdmFsdWUgZm9yIHNob3dUaXRsZSBpZiBub3Qgc2V0IGFuZCBtZXJnZSB3aXRoIG90aGVyIHByb3BzXG4gICAxOTVcdFxuICAgMTk2XHQgIGNvbnN0IHByb3BzID0gbWVyZ2VQcm9wcyh7IHNob3dUaXRsZTogdHJ1ZSB9LCBib3RQcm9wcyk7XG4gICAxOTdcdCAgbGV0IGNoYXRDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk4XHQgIGxldCBib3R0b21TcGFjZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMTk5XHQgIGxldCBib3RDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgMjAwXHQgIGxldCBpbnRlcnZhbEN1cnJlbnRNc2c6IGFueTtcbi4uLlxuUGF0aDogc3JjL2NvbXBvbmVudHMvYnViYmxlcy9Tb3VyY2VCdWJibGUudHN4XG4gICAgIDFcdHR5cGUgUHJvcHMgPSB7XG4gICAgIDJcdCAgcGFnZUNvbnRlbnQ6IHN0cmluZztcbiAgICAgM1x0ICBtZXRhZGF0YTogb2JqZWN0O1xuICAgICA0XHQgIG9uU291cmNlQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICAgICA1XHQgIHNyYz86IGFueTtcbiAgICAgNlx0fTtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2Z1bGwvY29tcG9uZW50cy9GdWxsLnRzeFxuICAgICAxXHRpbXBvcnQgc3R5bGVzIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pbmRleC5jc3MnO1xuICAgICAyXHRpbXBvcnQgeyBCb3QsIEJvdFByb3BzIH0gZnJvbSAnQC9jb21wb25lbnRzL0JvdCc7XG4gICAgIDNcdGltcG9ydCB7IEJ1YmJsZVBhcmFtcyB9IGZyb20gJ0AvZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAgNFx0aW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBvbkNsZWFudXAsIG9uTW91bnQsIFNob3cgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDVcdFxuICAgICA2XHRjb25zdCBkZWZhdWx0QnV0dG9uQ29sb3IgPSAnIzNCODFGNic7XG4gICAgIDdcdGNvbnN0IGRlZmF1bHRJY29uQ29sb3IgPSAnd2hpdGUnO1xuICAgICA4XHRcbiAgICAgOVx0ZXhwb3J0IHR5cGUgRnVsbFByb3BzID0gQm90UHJvcHMgJiBCdWJibGVQYXJhbXM7XG4uLi5cblBhdGg6IHNyYy9pbmRleC50c1xuICAgICAxXHRleHBvcnQgdHlwZSB7IEJvdFByb3BzIH0gZnJvbSAnLi9jb21wb25lbnRzL0JvdCc7XG4gICAgIDJcdGV4cG9ydCB0eXBlIHsgQnViYmxlUHJvcHMgfSBmcm9tICcuL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZSc7XG4uLi5cblBhdGg6IHNyYy9pbmRleC50c1xuICAgICAxXHRleHBvcnQgeyBGdWxsUGFnZUNoYXQgfSBmcm9tICcuL0Z1bGxQYWdlQ2hhdCdcbiAgICAgMlx0ZXhwb3J0IHsuLi4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCIzZDE3M2U5NC1jZjc4LTQwZjQtODc5Ny1iNjQxYzQ5Mjg1MDE7dG9vbHVfdnJ0eF8wMVNwWEFQeVlMQXp0ZFI2RlVFdjlCYzkiOnsicmVxdWVzdElkIjoiM2QxNzNlOTQtY2Y3OC00MGY0LTg3OTctYjY0MWM0OTI4NTAxIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMVNwWEFQeVlMQXp0ZFI2RlVFdjlCYzkiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJTdWNjZXNzZnVsbHkgZWRpdGVkIHRoZSBmaWxlIHNyYy9mZWF0dXJlcy9idWJibGUvY29tcG9uZW50cy9CdWJibGUudHN4LlxuUmVzdWx0IGZvciBzdHJfcmVwbGFjZSBmb3IgZW50cnkgd2l0aCBpbmRleCBbMF06XG5SZXBsYWNlbWVudCBzdWNjZXNzZnVsLlxuRWRpdGVkIHNlY3Rpb24gYWZ0ZXIgSURFIGF1dG8tZm9ybWF0dGluZyB3YXMgYXBwbGllZDpcbiAgIDE0Mlx0ICAgICAgICAgICAgICBmb290ZXI9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5mb290ZXJ9XG4gICAxNDNcdCAgICAgICAgICAgICAgc291cmNlRG9jc1RpdGxlPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc291cmNlRG9jc1RpdGxlfVxuICAgMTQ0XHQgICAgICAgICAgICAgIHN0YXJ0ZXJQcm9tcHRzPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc3RhcnRlclByb21wdHN9XG4gICAxNDVcdCAgICAgICAgICAgICAgc3RhcnRlclByb21wdEZvbnRTaXplPXtidWJibGVQcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc3RhcnRlclByb21wdEZvbnRTaXplfVxuICAgMTQ2XHQgICAgICAgICAgICAgIGNoYXRmbG93aWQ9e3Byb3BzLmNoYXRmbG93aWR9XG4gICAxNDdcdCAgICAgICAgICAgICAgY2hhdGZsb3dDb25maWc9e3Byb3BzLmNoYXRmbG93Q29uZmlnfVxuICAgMTQ4XHQgICAgICAgICAgICAgIGFwaUhvc3Q9e3Byb3BzLmFwaUhvc3R9XG4gICAxNDlcdCAgICAgICAgICAgICAgb25SZXF1ZXN0PXtwcm9wcy5vblJlcXVlc3R9XG4gICAxNTBcdCAgICAgICAgICAgICAgb25CZWZvcmVTZW5kPXtwcm9wcy5vbkJlZm9yZVNlbmR9XG4gICAxNTFcdCAgICAgICAgICAgICAgb2JzZXJ2ZXJzQ29uZmlnPXtwcm9wcy5vYnNlcnZlcnNDb25maWd9XG4gICAxNTJcdCAgICAgICAgICAgICAgY2xlYXJDaGF0T25SZWxvYWQ9e2J1YmJsZVByb3BzLnRoZW1lPy5jaGF0V2luZG93Py5jbGVhckNoYXRPblJlbG9hZH1cbiAgIDE1M1x0ICAgICAgICAgICAgICBkaXNjbGFpbWVyPXtidWJibGVQcm9wcy50aGVtZT8uZGlzY2xhaW1lcn1cbiAgIDE1NFx0ICAgICAgICAgICAgICBkYXRlVGltZVRvZ2dsZT17YnViYmxlUHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmRhdGVUaW1lVG9nZ2xlfVxuXG5SZXZpZXcgdGhlIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhcyBleHBlY3RlZCAoY29ycmVjdCBpbmRlbnRhdGlvbiwgbm8gZHVwbGljYXRlIGxpbmVzLCBldGMpLlxuRWRpdCB0aGUgZmlsZSBhZ2FpbiBpZiBuZWNlc3NhcnkuXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCIxYWQ4ZmM1MC00NGI0LTQ3YmItYjVjYi01MWUzYTY5ZTcyYzY7dG9vbHVfdnJ0eF8wMVRlaFFXREM4aWpaYVFlVmRKRFNibzMiOnsicmVxdWVzdElkIjoiMWFkOGZjNTAtNDRiNC00N2JiLWI1Y2ItNTFlM2E2OWU3MmM2IiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMVRlaFFXREM4aWpaYVFlVmRKRFNibzMiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJTdWNjZXNzZnVsbHkgZWRpdGVkIHRoZSBmaWxlIHNyYy9mZWF0dXJlcy9mdWxsL2NvbXBvbmVudHMvRnVsbC50c3guXG5SZXN1bHQgZm9yIHN0cl9yZXBsYWNlIGZvciBlbnRyeSB3aXRoIGluZGV4IFswXTpcblJlcGxhY2VtZW50IHN1Y2Nlc3NmdWwuXG5FZGl0ZWQgc2VjdGlvbiBhZnRlciBJREUgYXV0by1mb3JtYXR0aW5nIHdhcyBhcHBsaWVkOlxuICAgIDc3XHQgICAgICAgICAgICBmZWVkYmFjaz17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmZlZWRiYWNrfVxuICAgIDc4XHQgICAgICAgICAgICBmb250U2l6ZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmZvbnRTaXplfVxuICAgIDc5XHQgICAgICAgICAgICBmb290ZXI9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5mb290ZXJ9XG4gICAgODBcdCAgICAgICAgICAgIHN0YXJ0ZXJQcm9tcHRzPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc3RhcnRlclByb21wdHN9XG4gICAgODFcdCAgICAgICAgICAgIGNoYXRmbG93aWQ9e3Byb3BzLmNoYXRmbG93aWR9XG4gICAgODJcdCAgICAgICAgICAgIGNoYXRmbG93Q29uZmlnPXtwcm9wcy5jaGF0Zmxvd0NvbmZpZ31cbiAgICA4M1x0ICAgICAgICAgICAgYXBpSG9zdD17cHJvcHMuYXBpSG9zdH1cbiAgICA4NFx0ICAgICAgICAgICAgb25SZXF1ZXN0PXtwcm9wcy5vblJlcXVlc3R9XG4gICAgODVcdCAgICAgICAgICAgIG9uQmVmb3JlU2VuZD17cHJvcHMub25CZWZvcmVTZW5kfVxuICAgIDg2XHQgICAgICAgICAgICBpc0Z1bGxQYWdlPXt0cnVlfVxuICAgIDg3XHQgICAgICAgICAgICBvYnNlcnZlcnNDb25maWc9e3Byb3BzLm9ic2VydmVyc0NvbmZpZ31cbiAgICA4OFx0ICAgICAgICAgICAgc3RhcnRlclByb21wdEZvbnRTaXplPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc3RhcnRlclByb21wdEZvbnRTaXplfVxuICAgIDg5XHQgICAgICAgICAgICBjbGVhckNoYXRPblJlbG9hZD17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmNsZWFyQ2hhdE9uUmVsb2FkfVxuXG5SZXZpZXcgdGhlIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhcyBleHBlY3RlZCAoY29ycmVjdCBpbmRlbnRhdGlvbiwgbm8gZHVwbGljYXRlIGxpbmVzLCBldGMpLlxuRWRpdCB0aGUgZmlsZSBhZ2FpbiBpZiBuZWNlc3NhcnkuXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCIzYzU2NWM4MC02ZjNjLTRmNzYtYTgzZS04NmIwMDM4YzI3YjM7dG9vbHVfdnJ0eF8wMUhRR2NhQmNrZlBqd1RhV1ZnVVpFYVYiOnsicmVxdWVzdElkIjoiM2M1NjVjODAtNmYzYy00Zjc2LWE4M2UtODZiMDAzOGMyN2IzIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMUhRR2NhQmNrZlBqd1RhV1ZnVVpFYVYiLCJwaGFzZSI6NiwicmVzdWx0Ijp7InRleHQiOiJGYWlsZWQgdG8gZWRpdCB0aGUgZmlsZSBzcmMvY29uc3RhbnRzLnRzLiBTZWUgYmVsb3cgZm9yIGRldGFpbHMuXG5SZXN1bHQgZm9yIHN0cl9yZXBsYWNlIGZvciBlbnRyeSB3aXRoIGluZGV4IFswXTpcbk5vIHJlcGxhY2VtZW50IHdhcyBwZXJmb3JtZWQsIG9sZFN0ciBkaWQgbm90IGFwcGVhciB2ZXJiYXRpbSBpbiBzcmMvY29uc3RhbnRzLnRzLlxuVGhlIGNvbnRlbnQgaW4gdGhlIHNwZWNpZmllZCByZWdpb24gaXM6XG4gICAgNTNcdFxuXG5EaWZmIGJldHdlZW4gb2xkU3RyIGFuZCB0aGUgc3BlY2lmaWVkIHJlZ2lvbiBpczpcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi0tLSBvbGRTdHJcbisrKyByZWdpb25Db250ZW50XG5AQCAtMSw0ICsxLDEgQEBcbi0gIC8vIEFQSSBjb25maWd1cmF0aW9uXG4tICBhcGlIb3N0OiB1bmRlZmluZWQsXG4tICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbi0gIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4rXG5cblxuRml4IGZhaWxlZCBzdHJfcmVwbGFjZSBlbnRyaWVzIGFjY29yZGluZ2x5IGFuZCB0cnkgYWdhaW4uXG4iLCJpc0Vycm9yIjp0cnVlLCJyZXF1ZXN0SWQiOiIifX0sIjIwZmY3OTYwLTNkOWMtNDhhNC1iNTkzLTc1YjNhNmFlMmYzMjt0b29sdV92cnR4XzAxSFd3WHozbnVoZ3F1UU5pTHgyZEptMyI6eyJyZXF1ZXN0SWQiOiIyMGZmNzk2MC0zZDljLTQ4YTQtYjU5My03NWIzYTZhZTJmMzIiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxSFd3WHozbnVoZ3F1UU5pTHgyZEptMyIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gc3JjL2NvbnN0YW50cy50czpcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCdWJibGVQcm9wcyB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlJztcbiAgICAgMlx0XG4gICAgIDNcdGV4cG9ydCBjb25zdCBkZWZhdWx0Qm90UHJvcHM6IEJ1YmJsZVByb3BzID0ge1xuICAgICA0XHQgIGNoYXRmbG93aWQ6ICcnLFxuICAgICA1XHQgIGFwaUhvc3Q6IHVuZGVmaW5lZCxcbiAgICAgNlx0ICBjaGF0d29vdFVybDogdW5kZWZpbmVkLFxuICAgICA3XHQgIG9uUmVxdWVzdDogdW5kZWZpbmVkLFxuICAgICA4XHQgIGNoYXRmbG93Q29uZmlnOiB1bmRlZmluZWQsXG4gICAgIDlcdCAgdGhlbWU6IHVuZGVmaW5lZCxcbiAgICAxMFx0ICBvYnNlcnZlcnNDb25maWc6IHVuZGVmaW5lZCxcbiAgICAxMVx0ICByb29tSWRzOiB7fSxcbiAgICAxMlx0ICBpc1VzZUZBUTogdW5kZWZpbmVkLFxuICAgIDEzXHQgIGZpbGVQYXRoOiAnJyxcbiAgICAxNFx0ICBzdWdnZXN0UXVlc3Rpb25zOiAnJyxcbiAgICAxNVx0ICBleHRlcm5hbERhdGE6ICcnLFxuICAgIDE2XHQgIGNhbGxCYWNrSWNvbjogJycsXG4gICAgMTdcdCAgY2FsbEJhY2tGdW5jdGlvbjogdW5kZWZpbmVkLFxuICAgIDE4XHR9O1xuICAgIDE5XHRcblRvdGFsIGxpbmVzIGluIGZpbGU6IDE5XG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCIxNGI2NjdmMC0yMzU5LTQwOWQtYmNkMi04NjkwOGFhMTUxOWI7dG9vbHVfdnJ0eF8wMVlCZ1FtdHBvdXFjNXNQTWlqekJnWUEiOnsicmVxdWVzdElkIjoiMTRiNjY3ZjAtMjM1OS00MDlkLWJjZDItODY5MDhhYTE1MTliIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMVlCZ1FtdHBvdXFjNXNQTWlqekJnWUEiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJTdWNjZXNzZnVsbHkgZWRpdGVkIHRoZSBmaWxlIHNyYy9jb25zdGFudHMudHMuXG5SZXN1bHQgZm9yIHN0cl9yZXBsYWNlIGZvciBlbnRyeSB3aXRoIGluZGV4IFswXTpcblJlcGxhY2VtZW50IHN1Y2Nlc3NmdWwuXG5FZGl0ZWQgc2VjdGlvbiBhZnRlciBJREUgYXV0by1mb3JtYXR0aW5nIHdhcyBhcHBsaWVkOlxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnLi9mZWF0dXJlcy9idWJibGUnO1xuICAgICAyXHRcbiAgICAgM1x0ZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gICAgIDRcdCAgY2hhdGZsb3dpZDogJycsXG4gICAgIDVcdCAgYXBpSG9zdDogdW5kZWZpbmVkLFxuICAgICA2XHQgIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gICAgIDdcdCAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXG4gICAgIDhcdCAgb25CZWZvcmVTZW5kOiB1bmRlZmluZWQsXG4gICAgIDlcdCAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcbiAgICAxMFx0ICB0aGVtZTogdW5kZWZpbmVkLFxuICAgIDExXHQgIG9ic2VydmVyc0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDEyXHQgIHJvb21JZHM6IHt9LFxuICAgIDEzXHQgIGlzVXNlRkFROiB1bmRlZmluZWQsXG5cblJldmlldyB0aGUgY2hhbmdlcyBhbmQgbWFrZSBzdXJlIHRoZXkgYXJlIGFzIGV4cGVjdGVkIChjb3JyZWN0IGluZGVudGF0aW9uLCBubyBkdXBsaWNhdGUgbGluZXMsIGV0YykuXG5FZGl0IHRoZSBmaWxlIGFnYWluIGlmIG5lY2Vzc2FyeS5cbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sImJjMGUzNGNjLWQwODAtNDQwZi1iZDFmLTJkMGQ1NTBmNDJlOTt0b29sdV92cnR4XzAxUDlBMTJ0NkNRMXBLcGRWb0UzNmd3bSI6eyJyZXF1ZXN0SWQiOiJiYzBlMzRjYy1kMDgwLTQ0MGYtYmQxZi0yZDBkNTUwZjQyZTkiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxUDlBMTJ0NkNRMXBLcGRWb0UzNmd3bSIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IlN1Y2Nlc3NmdWxseSBlZGl0ZWQgdGhlIGZpbGUgc3JjL2NvbXBvbmVudHMvQm90LnRzeC5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzBdOlxuUmVwbGFjZW1lbnQgc3VjY2Vzc2Z1bC5cbkVkaXRlZCBzZWN0aW9uIGFmdGVyIElERSBhdXRvLWZvcm1hdHRpbmcgd2FzIGFwcGxpZWQ6XG4gICA4NDNcdCAgICBpZiAobGVhZEVtYWlsKCkpIGJvZHkubGVhZEVtYWlsID0gbGVhZEVtYWlsKCk7XG4gICA4NDRcdFxuICAgODQ1XHQgICAgaWYgKGFjdGlvbikgYm9keS5hY3Rpb24gPSBhY3Rpb247XG4gICA4NDZcdFxuICAgODQ3XHQgICAgLy8gQ2FsbCBvbkJlZm9yZVNlbmQgY2FsbGJhY2sgaWYgcHJvdmlkZWRcbiAgIDg0OFx0ICAgIGlmIChwcm9wcy5vbkJlZm9yZVNlbmQpIHtcbiAgIDg0OVx0ICAgICAgdHJ5IHtcbiAgIDg1MFx0ICAgICAgICBjb25zdCBvcmlnaW5hbE1lc3NhZ2UgPSB2YWx1ZTtcbiAgIDg1MVx0ICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9wcy5vbkJlZm9yZVNlbmQodmFsdWUsIGJvZHkpO1xuICAgODUyXHRcbiAgIDg1M1x0ICAgICAgICAvLyBJZiB0aGUgY2FsbGJhY2sgcmV0dXJucyBjYW5jZWw6IHRydWUsIHN0b3AgdGhlIHN1Ym1pc3Npb25cbiAgIDg1NFx0ICAgICAgICBpZiAocmVzdWx0LmNhbmNlbCkge1xuICAgODU1XHQgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICA4NTZcdCAgICAgICAgICBzZXREaXNhYmxlSW5wdXQoZmFsc2UpO1xuICAgODU3XHQgICAgICAgICAgcmV0dXJuO1xuICAgODU4XHQgICAgICAgIH1cbiAgIDg1OVx0XG4gICA4NjBcdCAgICAgICAgLy8gVXBkYXRlIHRoZSBtZXNzYWdlIGFuZCBib2R5IHdpdGggdGhlIG1vZGlmaWVkIHZhbHVlc1xuICAgODYxXHQgICAgICAgIHZhbHVlID0gcmVzdWx0Lm1lc3NhZ2U7XG4gICA4NjJcdCAgICAgICAgT2JqZWN0LmFzc2lnbihib2R5LCByZXN1bHQuYm9keSk7XG4gICA4NjNcdFxuICAgODY0XHQgICAgICAgIC8vIFVwZGF0ZSB0aGUgdXNlciBtZXNzYWdlIGluIHRoZSBVSSBpZiBpdCB3YXMgbW9kaWZpZWRcbiAgIDg2NVx0ICAgICAgICBpZiAocmVzdWx0Lm1lc3NhZ2UgIT09IG9yaWdpbmFsTWVzc2FnZSkge1xuICAgODY2XHQgICAgICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgODY3XHQgICAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA4NjhcdCAgICAgICAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSB7XG4gICA4NjlcdCAgICAgICAgICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0ubWVzc2FnZSA9IHJlc3VsdC5tZXNzYWdlO1xuICAgODcwXHQgICAgICAgICAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDg3MVx0ICAgICAgICAgICAgfVxuICAgODcyXHQgICAgICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA4NzNcdCAgICAgICAgICB9KTtcbiAgIDg3NFx0ICAgICAgICB9XG4gICA4NzVcdCAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICA4NzZcdCAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gb25CZWZvcmVTZW5kIGNhbGxiYWNrOicsIGVycm9yKTtcbiAgIDg3N1x0ICAgICAgICBoYW5kbGVFcnJvcignRXJyb3IgcHJvY2Vzc2luZyBtZXNzYWdlIGJlZm9yZSBzZW5kJyk7XG4gICA4NzhcdCAgICAgICAgcmV0dXJuO1xuICAgODc5XHQgICAgICB9XG4gICA4ODBcdCAgICB9XG4gICA4ODFcdFxuICAgODgyXHQgICAgLy8gQ2hlY2sgbmV0d29yayBzdGF0dXMgYmVmb3JlIG1ha2luZyB0aGUgcmVxdWVzdFxuICAgODgzXHQgICAgaWYgKCFuYXZpZ2F0b3Iub25MaW5lKSB7XG4gICA4ODRcdCAgICAgIHNldElzTmV0d29ya0Vycm9yKHRydWUpO1xuXG5SZXZpZXcgdGhlIGNoYW5nZXMgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZSBhcyBleHBlY3RlZCAoY29ycmVjdCBpbmRlbnRhdGlvbiwgbm8gZHVwbGljYXRlIGxpbmVzLCBldGMpLlxuRWRpdCB0aGUgZmlsZSBhZ2FpbiBpZiBuZWNlc3NhcnkuXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCIxOTc4YjIyZS04NzQwLTQ1NjUtOGRhYS04ZDk5N2JjYzk2ZWY7dG9vbHVfdnJ0eF8wMVZncGpTQWNSWVh0NlJWeVdUYlpMYWQiOnsicmVxdWVzdElkIjoiMTk3OGIyMmUtODc0MC00NTY1LThkYWEtOGQ5OTdiY2M5NmVmIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMVZncGpTQWNSWVh0NlJWeVdUYlpMYWQiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJIZXJlIGFyZSB0aGUgcmVzdWx0cyBmcm9tIGV4ZWN1dGluZyB0aGUgY29tbWFuZC5cbiAgICAgICAgPHJldHVybi1jb2RlPlxuICAgICAgICAxXG4gICAgICAgIDwvcmV0dXJuLWNvZGU+XG4gICAgICAgIDxzdGRvdXQ+XG4gICAgICAgIFx1MDAxYls/OTAwMWhcdTAwMWJbPzEwMDRoXHUwMDFiWz8yNWxcdTAwMWJbMkpcdTAwMWJbbVx1MDAxYltIXG5cblxuXG5cblxuXG5cdTAwMWJbSFx1MDAxYl0wO0M6XFxXSU5ET1dTXFxTeXN0ZW0zMlxcV2luZG93c1Bvd2VyU2hlbGxcXHYxLjBcXHBvd2Vyc2hlbGwuZXhlXHUwMDA3XHUwMDFiWz8yNWhcdTAwMWJbPzI1bFx1MDAxYls5Nm10c2NvbmZpZy5qc29uXHUwMDFiW206XHUwMDFiWzkzbTE4XHUwMDFiW206XHUwMDFiWzkzbTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM1MDUzOiBcdTAwMWJbbU9wdGlvbiAnZW1pdERlY2xhcmF0aW9uT25seScgY2Fubm90IGJlIHNwZWNpZmllZCB3aXRoIG9wdGlvbiAnbm9FbWl0Jy5cdTAwMWJbN21cdTAwMWJbMzsxSDE4XHUwMDFiWzI3bSAgICAgICAgIFwiZW1pdERlY2xhcmF0aW9uT25seVwiOiB0cnVlXHUwMDFiWzdtXG4gIFx1MDAxYlsyN21cdTAwMWJbOVhcdTAwMWJbOTFtXHUwMDFiWzlDfn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW21cdTAwMWJbNzsxSEZvdW5kIDEgZXJyb3IgaW4gdHNjb25maWcuanNvblx1MDAxYls5MG06MThcblx1MDAxYls/MjVoXHUwMDFiW21cblx1MDAxYlszMW1lcnJvclx1MDAxYlttXHUwMDFiWzJtOlx1MDAxYlsyMm0gXCJcdTAwMWJbMW10c2MuY21kXHUwMDFiWzIybVwiIGV4aXRlZCB3aXRoIGNvZGUgMlxuXG4gICAgICAgIDwvc3Rkb3V0PlxuICAgICAgICA8c3RkZXJyPlxuICAgICAgICBcbiAgICAgICAgPC9zdGRlcnI+IiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiZGM5YzI0YTUtZTY2NS00OWZjLTk3OTItYjYzYzM2OTMxNmJiO3Rvb2x1X3ZydHhfMDFCbWRuU1l0NVJVU2hxeHBrR2ZrUm1mIjp7InJlcXVlc3RJZCI6ImRjOWMyNGE1LWU2NjUtNDlmYy05NzkyLWI2M2MzNjkzMTZiYiIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFCbWRuU1l0NVJVU2hxeHBrR2ZrUm1mIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiSGVyZSdzIHRoZSByZXN1bHQgb2YgcnVubmluZyBgY2F0IC1uYCBvbiB0c2NvbmZpZy5qc29uOlxuICAgICAxXHR7XG4gICAgIDJcdCAgXCJleHRlbmRzXCI6IFwiLi9yZWFjdC1saWJyYXJ5Lmpzb25cIixcbiAgICAgM1x0ICBcImluY2x1ZGVcIjogW1wic3JjLyoqLypcIl0sXG4gICAgIDRcdCAgXCJjb21waWxlck9wdGlvbnNcIjoge1xuICAgICA1XHQgICAgXCJiYXNlVXJsXCI6IFwiLlwiLFxuICAgICA2XHQgICAgXCJwYXRoc1wiOiB7XG4gICAgIDdcdCAgICAgIFwiQC8qXCI6IFtcInNyYy8qXCJdXG4gICAgIDhcdCAgICB9LFxuICAgICA5XHQgICAgXCJkZWNsYXJhdGlvblwiOiB0cnVlLFxuICAgIDEwXHQgICAgXCJkZWNsYXJhdGlvbk1hcFwiOiB0cnVlLFxuICAgIDExXHQgICAgXCJvdXREaXJcIjogXCJkaXN0XCIsXG4gICAgMTJcdCAgICBcImVtaXREZWNsYXJhdGlvbk9ubHlcIjogdHJ1ZVxuICAgIDEzXHQgIH1cbiAgICAxNFx0fVxuICAgIDE1XHRcblRvdGFsIGxpbmVzIGluIGZpbGU6IDE1XG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCI1MjVhYTQxNC1kMTNiLTRiZmMtYjY1NC0wNzM0OTlhM2ZmMDY7dG9vbHVfdnJ0eF8wMVVnZWlFQnlraHdwenBuZTJNcHZucnAiOnsicmVxdWVzdElkIjoiNTI1YWE0MTQtZDEzYi00YmZjLWI2NTQtMDczNDk5YTNmZjA2IiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMVVnZWlFQnlraHdwenBuZTJNcHZucnAiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJIZXJlIGFyZSB0aGUgcmVzdWx0cyBmcm9tIGV4ZWN1dGluZyB0aGUgY29tbWFuZC5cbiAgICAgICAgPHJldHVybi1jb2RlPlxuICAgICAgICAxXG4gICAgICAgIDwvcmV0dXJuLWNvZGU+XG4gICAgICAgIDxzdGRvdXQ+XG4gICAgICAgIFx1MDAxYls/OTAwMWhcdTAwMWJbPzEwMDRoXHUwMDFiWz8yNWxcdTAwMWJbMkpcdTAwMWJbbVx1MDAxYltIXG5cblxuXG5cblxuXG5cdTAwMWJbSFx1MDAxYl0wO0M6XFxXSU5ET1dTXFxTeXN0ZW0zMlxcV2luZG93c1Bvd2VyU2hlbGxcXHYxLjBcXHBvd2Vyc2hlbGwuZXhlXHUwMDA3XHUwMDFiWz8yNWhcdTAwMWJbPzI1bFx1MDAxYls5Nm10c2NvbmZpZy5qc29uXHUwMDFiW206XHUwMDFiWzkzbTE4XHUwMDFiW206XHUwMDFiWzkzbTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM1MDUzOiBcdTAwMWJbbU9wdGlvbiAnZW1pdERlY2xhcmF0aW9uT25seScgY2Fubm90IGJlIHNwZWNpZmllZCB3aXRoIG9wdGlvbiAnbm9FbWl0Jy5cdTAwMWJbN21cdTAwMWJbMzsxSDE4XHUwMDFiWzI3bSAgICAgICAgIFwiZW1pdERlY2xhcmF0aW9uT25seVwiOiB0cnVlXHUwMDFiWzdtXG4gIFx1MDAxYlsyN21cdTAwMWJbOVhcdTAwMWJbOTFtXHUwMDFiWzlDfn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW21cdTAwMWJbNzsxSEZvdW5kIDEgZXJyb3IgaW4gdHNjb25maWcuanNvblx1MDAxYls5MG06MThcblx1MDAxYls/MjVoXHUwMDFiW21cblx1MDAxYlszMW1lcnJvclx1MDAxYlttXHUwMDFiWzJtOlx1MDAxYlsyMm0gXCJcdTAwMWJbMW10c2MuY21kXHUwMDFiWzIybVwiIGV4aXRlZCB3aXRoIGNvZGUgMlxuXG4gICAgICAgIDwvc3Rkb3V0PlxuICAgICAgICA8c3RkZXJyPlxuICAgICAgICBcbiAgICAgICAgPC9zdGRlcnI+IiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiYzIzYzc0ODktNDI2Ni00OTE3LTkzOGItZjI1MjJmMDY0ZTEwO3Rvb2x1X3ZydHhfMDE3ZWYyWWFtb0xHOUg0S1JUMnY2TjZQIjp7InJlcXVlc3RJZCI6ImMyM2M3NDg5LTQyNjYtNDkxNy05MzhiLWYyNTIyZjA2NGUxMCIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDE3ZWYyWWFtb0xHOUg0S1JUMnY2TjZQIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiSGVyZSBhcmUgdGhlIHJlc3VsdHMgZnJvbSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuXG4gICAgICAgIDxyZXR1cm4tY29kZT5cbiAgICAgICAgMVxuICAgICAgICA8L3JldHVybi1jb2RlPlxuICAgICAgICA8c3Rkb3V0PlxuICAgICAgICBcdTAwMWJbPzkwMDFoXHUwMDFiWz8xMDA0aFx1MDAxYls/MjVsXHUwMDFiWzJKXHUwMDFiW21cdTAwMWJbSFxuXG5cblxuXG5cblxuXHUwMDFiW0hcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1x1MDAxYls/MjVoXHUwMDFiXTA7bnBtXHUwMDA3XHUwMDFiXTA7bnBtIGV4ZWMgdHNjIC0tbm9FbWl0IC0tc2tpcExpYkNoZWNrIHNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMDdcdTAwMWJbS1x1MDAxYls/MjVsXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYwNTM6IFx1MDAxYlttRmlsZSAnc3JjL2NvbXBvbmVudHMvQm90LnRzeCcgbm90IGZvdW5kLlxuICBUaGUgZmlsZSBpcyBpbiB0aGUgcHJvZ3JhbSBiZWNhdXNlOlxuICAgIFJvb3QgZmlsZSBzcGVjaWZpZWQgZm9yIGNvbXBpbGF0aW9uXHUwMDFiWzY7MUhGb3VuZCAxIGVycm9yLlx1MDAxYls4OzFIXHUwMDFiW0tcdTAwMWJbPzI1aFx1MDAxYl0wO0M6XFxXSU5ET1dTXFxTeXN0ZW0zMlxcV2luZG93c1Bvd2VyU2hlbGxcXHYxLjBcXHBvd2Vyc2hlbGwuZXhlXHUwMDA3XG4gICAgICAgIDwvc3Rkb3V0PlxuICAgICAgICA8c3RkZXJyPlxuICAgICAgICBcbiAgICAgICAgPC9zdGRlcnI+IiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiNmU1MGUzY2ItNzI4MS00M2FjLWFmYjEtZjcyY2MyOTNmYjBhO3Rvb2x1X3ZydHhfMDFGQnY4QUFFNXpQNGJENlY3WmFKNHVkIjp7InJlcXVlc3RJZCI6IjZlNTBlM2NiLTcyODEtNDNhYy1hZmIxLWY3MmNjMjkzZmIwYSIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFGQnY4QUFFNXpQNGJENlY3WmFKNHVkIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiSGVyZSdzIHRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdXAgdG8gMiBsZXZlbHMgZGVlcCBpbiAuLCBleGNsdWRpbmcgaGlkZGVuIGl0ZW1zOlxuLi9SRUFETUUubWRcbi4vYmFzZS5qc29uXG4uL2Rpc3Rcbi4vZGlzdFxcQnViYmxlQ2hhdC5kLnRzXG4uL2Rpc3RcXEJ1YmJsZUNoYXQuZC50cy5tYXBcbi4vZGlzdFxcRnVsbFBhZ2VDaGF0LmQudHNcbi4vZGlzdFxcRnVsbFBhZ2VDaGF0LmQudHMubWFwXG4uL2Rpc3RcXGluZGV4LmQudHNcbi4vZGlzdFxcaW5kZXguZC50cy5tYXBcbi4vZGlzdFxcaW5kZXguanNcbi4vbm9kZV9tb2R1bGVzXG4uL25vZGVfbW9kdWxlc1xcQGFhc2h1dG9zaHJhdGhpXG4uL25vZGVfbW9kdWxlc1xcQGFtcHByb2plY3Rcbi4vbm9kZV9tb2R1bGVzXFxAYmFiZWxcbi4vbm9kZV9tb2R1bGVzXFxAZXNidWlsZFxuLi9ub2RlX21vZHVsZXNcXEBlc2J1aWxkLWtpdFxuLi9ub2RlX21vZHVsZXNcXEBlc2xpbnRcbi4vbm9kZV9tb2R1bGVzXFxAZXNsaW50LWNvbW11bml0eVxuLi9ub2RlX21vZHVsZXNcXEBodW1hbndob2NvZGVzXG4uL25vZGVfbW9kdWxlc1xcQGpyaWRnZXdlbGxcbi4vbm9kZV9tb2R1bGVzXFxAbGFkbGVcbi4vbm9kZV9tb2R1bGVzXFxAbWFwYm94XG4uL25vZGVfbW9kdWxlc1xcQG1pY3Jvc29mdFxuLi9ub2RlX21vZHVsZXNcXEBuYXBpLXJzXG4uL25vZGVfbW9kdWxlc1xcQG5vZGVsaWJcbi4vbm9kZV9tb2R1bGVzXFxAcm9sbHVwXG4uL25vZGVfbW9kdWxlc1xcQHRzLXN0YWNrXG4uL25vZGVfbW9kdWxlc1xcQHR5cGVzXG4uL25vZGVfbW9kdWxlc1xcQHZpdGVqc1xuLi9ub2RlX21vZHVsZXNcXGFiYnJldlxuLi9ub2RlX21vZHVsZXNcXGFjY2VwdHNcbi4vbm9kZV9tb2R1bGVzXFxhY29yblxuLi9ub2RlX21vZHVsZXNcXGFjb3JuLWpzeFxuLi9ub2RlX21vZHVsZXNcXGFnZW50LWJhc2Vcbi4vbm9kZV9tb2R1bGVzXFxhanZcbi4vbm9kZV9tb2R1bGVzXFxhbnNpLWFsaWduXG4uL25vZGVfbW9kdWxlc1xcYW5zaS1yZWdleFxuLi9ub2RlX21vZHVsZXNcXGFuc2ktc3R5bGVzXG4uL25vZGVfbW9kdWxlc1xcYW55bWF0Y2hcbi4vbm9kZV9tb2R1bGVzXFxhcHBlbmQtZmllbGRcbi4vbm9kZV9tb2R1bGVzXFxhcHJvYmFcbi4vbm9kZV9tb2R1bGVzXFxhcmUtd2UtdGhlcmUteWV0XG4uL25vZGVfbW9kdWxlc1xcYXJncGFyc2Vcbi4vbm9kZV9tb2R1bGVzXFxhcnJheS1mbGF0dGVuXG4uL25vZGVfbW9kdWxlc1xcYXN5bmNraXRcbi4vbm9kZV9tb2R1bGVzXFxheGUtY29yZVxuLi9ub2RlX21vZHVsZXNcXGF4aW9zXG4uL25vZGVfbW9kdWxlc1xcYmFiZWwtcGx1Z2luLXBvbHlmaWxsLWNvcmVqczJcbi4vbm9kZV9tb2R1bGVzXFxiYWJlbC1wbHVnaW4tcG9seWZpbGwtY29yZWpzM1xuLi9ub2RlX21vZHVsZXNcXGJhYmVsLXBsdWdpbi1wb2x5ZmlsbC1yZWdlbmVyYXRvclxuLi9ub2RlX21vZHVsZXNcXGJhbGFuY2VkLW1hdGNoXG4uL25vZGVfbW9kdWxlc1xcYmlnLWludGVnZXJcbi4vbm9kZV9tb2R1bGVzXFxiaW5hcnktZXh0ZW5zaW9uc1xuLi9ub2RlX21vZHVsZXNcXGJvZHktcGFyc2VyXG4uL25vZGVfbW9kdWxlc1xcYm94ZW5cbi4vbm9kZV9tb2R1bGVzXFxicGxpc3QtcGFyc2VyXG4uL25vZGVfbW9kdWxlc1xcYnJhY2UtZXhwYW5zaW9uXG4uL25vZGVfbW9kdWxlc1xcYnJhY2VzXG4uL25vZGVfbW9kdWxlc1xcYnJvd3NlcnNsaXN0XG4uL25vZGVfbW9kdWxlc1xcYnVmZmVyLWZyb21cbi4vbm9kZV9tb2R1bGVzXFxidWlsdGluLW1vZHVsZXNcbi4vbm9kZV9tb2R1bGVzXFxidW5kbGUtbmFtZVxuLi9ub2RlX21vZHVsZXNcXGJ1c2JveVxuLi9ub2RlX21vZHVsZXNcXGJ5dGVzXG4uL25vZGVfbW9kdWxlc1xcYy1hZ2VudC1lbWJlZGRpbmdcbi4vbm9kZV9tb2R1bGVzXFxjLWFnZW50LWVtYmVkZGluZy1yZWFjdFxuLi9ub2RlX21vZHVsZXNcXGNhbGwtYmluZFxuLi9ub2RlX21vZHVsZXNcXGNhbGwtYmluZC1hcHBseS1oZWxwZXJzXG4uL25vZGVfbW9kdWxlc1xcY2FsbC1ib3VuZFxuLi9ub2RlX21vZHVsZXNcXGNhbGxzaXRlc1xuLi9ub2RlX21vZHVsZXNcXGNhbWVsY2FzZVxuLi9ub2RlX21vZHVsZXNcXGNhbml1c2UtbGl0ZVxuLi9ub2RlX21vZHVsZXNcXGNoYWxrXG4uL25vZGVfbW9kdWxlc1xcY2hva2lkYXJcbi4vbm9kZV9tb2R1bGVzXFxjaG93bnJcbi4vbm9kZV9tb2R1bGVzXFxjbGFzc25hbWVzXG4uL25vZGVfbW9kdWxlc1xcY2xpLWJveGVzXG4uL25vZGVfbW9kdWxlc1xcY21jdHMtYy1hZ2VudC1lbWJlZGRpbmdcbi4vbm9kZV9tb2R1bGVzXFxjb2xvci1jb252ZXJ0XG4uL25vZGVfbW9kdWxlc1xcY29sb3ItbmFtZVxuLi9ub2RlX21vZHVsZXNcXGNvbG9yLXN1cHBvcnRcbi4vbm9kZV9tb2R1bGVzXFxjb21iaW5lZC1zdHJlYW1cbi4vbm9kZV9tb2R1bGVzXFxjb21tYW5kZXJcbi4vbm9kZV9tb2R1bGVzXFxjb21wb25lbnQtcmVnaXN0ZXJcbi4vbm9kZV9tb2R1bGVzXFxjb25jYXQtbWFwXG4uL25vZGVfbW9kdWxlc1xcY29uY2F0LXN0cmVhbVxuLi9ub2RlX21vZHVsZXNcXGNvbnNvbGUtY29udHJvbC1zdHJpbmdzXG4uL25vZGVfbW9kdWxlc1xcY29udGVudC1kaXNwb3NpdGlvblxuLi9ub2RlX21vZHVsZXNcXGNvbnRlbnQtdHlwZVxuLi9ub2RlX21vZHVsZXNcXGNvbnZlcnQtc291cmNlLW1hcFxuLi9ub2RlX21vZHVsZXNcXGNvb2tpZVxuLi9ub2RlX21vZHVsZXNcXGNvb2tpZS1zaWduYXR1cmVcbi4vbm9kZV9tb2R1bGVzXFxjb3JlLWpzLWNvbXBhdFxuLi9ub2RlX21vZHVsZXNcXGNvcmUtdXRpbC1pc1xuLi9ub2RlX21vZHVsZXNcXGNvcnNcbi4vbm9kZV9tb2R1bGVzXFxjcm9zcy1lbnZcbi4vbm9kZV9tb2R1bGVzXFxjcm9zcy1zcGF3blxuLi9ub2RlX21vZHVsZXNcXGNyb3NzLXNwYXduLWFzeW5jXG4uL25vZGVfbW9kdWxlc1xcY3NzdHlwZVxuLi9ub2RlX21vZHVsZXNcXGRhdGEtdXJpLXRvLWJ1ZmZlclxuLi9ub2RlX21vZHVsZXNcXGRlYnVnXG4uL25vZGVfbW9kdWxlc1xcZGVjb2RlLXVyaS1jb21wb25lbnRcbi4vbm9kZV9tb2R1bGVzXFxkZWNvbXByZXNzLXJlc3BvbnNlXG4uL25vZGVfbW9kdWxlc1xcZGVlcC1pc1xuLi9ub2RlX21vZHVsZXNcXGRlZXBtZXJnZVxuLi9ub2RlX21vZHVsZXNcXGRlZmF1bHQtYnJvd3NlclxuLi9ub2RlX21vZHVsZXNcXGRlZmF1bHQtYnJvd3Nlci1pZFxuLi9ub2RlX21vZHVsZXNcXGRlZmluZS1kYXRhLXByb3BlcnR5XG4uL25vZGVfbW9kdWxlc1xcZGVmaW5lLWxhenktcHJvcFxuLi9ub2RlX21vZHVsZXNcXGRlbGF5ZWQtc3RyZWFtXG4uL25vZGVfbW9kdWxlc1xcZGVsZWdhdGVzXG4uL25vZGVfbW9kdWxlc1xcZGVwZFxuLi9ub2RlX21vZHVsZXNcXGRlc3Ryb3lcbi4vbm9kZV9tb2R1bGVzXFxkZXRlY3QtbGliY1xuLi9ub2RlX21vZHVsZXNcXGRldmljZS1kZXRlY3Rvci1qc1xuLi9ub2RlX21vZHVsZXNcXGRpci1nbG9iXG4uL25vZGVfbW9kdWxlc1xcZG9jdHJpbmVcbi4vbm9kZV9tb2R1bGVzXFxkb3RlbnZcbi4vbm9kZV9tb2R1bGVzXFxkdW5kZXItcHJvdG9cbi4vbm9kZV9tb2R1bGVzXFxlYXN0YXNpYW53aWR0aFxuLi9ub2RlX21vZHVsZXNcXGVlLWZpcnN0XG4uL25vZGVfbW9kdWxlc1xcZWxlY3Ryb24tdG8tY2hyb21pdW1cbi4vbm9kZV9tb2R1bGVzXFxlbW9qaS1yZWdleFxuLi9ub2RlX21vZHVsZXNcXGVuY29kZXVybFxuLi9ub2RlX21vZHVsZXNcXGVzLWRlZmluZS1wcm9wZXJ0eVxuLi9ub2RlX21vZHVsZXNcXGVzLWVycm9yc1xuLi9ub2RlX21vZHVsZXNcXGVzLW9iamVjdC1hdG9tc1xuLi9ub2RlX21vZHVsZXNcXGVzYnVpbGRcbi4vbm9kZV9tb2R1bGVzXFxlc2NhbGFkZVxuLi9ub2RlX21vZHVsZXNcXGVzY2FwZS1odG1sXG4uL25vZGVfbW9kdWxlc1xcZXNjYXBlLXN0cmluZy1yZWdleHBcbi4vbm9kZV9tb2R1bGVzXFxlc2xpbnRcbi4vbm9kZV9tb2R1bGVzXFxlc2xpbnQtc2NvcGVcbi4vbm9kZV9tb2R1bGVzXFxlc2xpbnQtdmlzaXRvci1rZXlzXG4uL25vZGVfbW9kdWxlc1xcZXNwcmVlXG4uL25vZGVfbW9kdWxlc1xcZXNxdWVyeVxuLi9ub2RlX21vZHVsZXNcXGVzcmVjdXJzZVxuLi9ub2RlX21vZHVsZXNcXGVzdHJhdmVyc2Vcbi4vbm9kZV9tb2R1bGVzXFxlc3RyZWUtd2Fsa2VyXG4uL25vZGVfbW9kdWxlc1xcZXN1dGlsc1xuLi9ub2RlX21vZHVsZXNcXGV0YWdcbi4vbm9kZV9tb2R1bGVzXFxleGVjYVxuLi9ub2RlX21vZHVsZXNcXGV4cHJlc3Ncbi4vbm9kZV9tb2R1bGVzXFxmYXN0LWRlZXAtZXF1YWxcbi4vbm9kZV9tb2R1bGVzXFxmYXN0LWdsb2Jcbi4vbm9kZV9tb2R1bGVzXFxmYXN0LWpzb24tc3RhYmxlLXN0cmluZ2lmeVxuLi9ub2RlX21vZHVsZXNcXGZhc3QtbGV2ZW5zaHRlaW5cbi4vbm9kZV9tb2R1bGVzXFxmYXN0cVxuLi9ub2RlX21vZHVsZXNcXGZldGNoLWJsb2Jcbi4vbm9kZV9tb2R1bGVzXFxmaWxlLWVudHJ5LWNhY2hlXG4uL25vZGVfbW9kdWxlc1xcZmlsbC1yYW5nZVxuLi9ub2RlX21vZHVsZXNcXGZpbHRlci1vYmpcbi4vbm9kZV9tb2R1bGVzXFxmaW5hbGhhbmRsZXJcbi4vbm9kZV9tb2R1bGVzXFxmaW5kLXVwXG4uL25vZGVfbW9kdWxlc1xcZmxhdC1jYWNoZVxuLi9ub2RlX21vZHVsZXNcXGZsYXR0ZWRcbi4vbm9kZV9tb2R1bGVzXFxmb2xsb3ctcmVkaXJlY3RzXG4uL25vZGVfbW9kdWxlc1xcZm9ybS1kYXRhXG4uL25vZGVfbW9kdWxlc1xcZm9ybWRhdGEtcG9seWZpbGxcbi4vbm9kZV9tb2R1bGVzXFxmb3J3YXJkZWRcbi4vbm9kZV9tb2R1bGVzXFxmcmVzaFxuLi9ub2RlX21vZHVsZXNcXGZzLW1pbmlwYXNzXG4uL25vZGVfbW9kdWxlc1xcZnMucmVhbHBhdGhcbi4vbm9kZV9tb2R1bGVzXFxmdW5jdGlvbi1iaW5kXG4uL25vZGVfbW9kdWxlc1xcZ2F1Z2Vcbi4vbm9kZV9tb2R1bGVzXFxnZW5zeW5jXG4uL25vZGVfbW9kdWxlc1xcZ2V0LWludHJpbnNpY1xuLi9ub2RlX21vZHVsZXNcXGdldC1wb3J0XG4uL25vZGVfbW9kdWxlc1xcZ2V0LXN0cmVhbVxuLi9ub2RlX21vZHVsZXNcXGdldC10c2NvbmZpZ1xuLi9ub2RlX21vZHVsZXNcXGdsb2Jcbi4vbm9kZV9tb2R1bGVzXFxnbG9iLXBhcmVudFxuLi9ub2RlX21vZHVsZXNcXGdsb2JhbHNcbi4vbm9kZV9tb2R1bGVzXFxnbG9iYnlcbi4vbm9kZV9tb2R1bGVzXFxnbG9icmV4XG4uL25vZGVfbW9kdWxlc1xcZ29wZFxuLi9ub2RlX21vZHVsZXNcXGdyYXBoZW1lLXNwbGl0dGVyXG4uL25vZGVfbW9kdWxlc1xcaGFzXG4uL25vZGVfbW9kdWxlc1xcaGFzLWZsYWdcbi4vbm9kZV9tb2R1bGVzXFxoYXMtcHJvcGVydHktZGVzY3JpcHRvcnNcbi4vbm9kZV9tb2R1bGVzXFxoYXMtc3ltYm9sc1xuLi9ub2RlX21vZHVsZXNcXGhhcy11bmljb2RlXG4uL25vZGVfbW9kdWxlc1xcaGFzb3duXG4uL25vZGVfbW9kdWxlc1xcaGlzdG9yeVxuLi9ub2RlX21vZHVsZXNcXGh0dHAtZXJyb3JzXG4uL25vZGVfbW9kdWxlc1xcaHR0cHMtcHJveHktYWdlbnRcbi4vbm9kZV9tb2R1bGVzXFxodW1hbi1zaWduYWxzXG4uL25vZGVfbW9kdWxlc1xcaWNvbnYtbGl0ZVxuLi9ub2RlX21vZHVsZXNcXGlnbm9yZVxuLi9ub2RlX21vZHVsZXNcXGltcG9ydC1mcmVzaFxuLi9ub2RlX21vZHVsZXNcXGltdXJtdXJoYXNoXG4uL25vZGVfbW9kdWxlc1xcaW5mbGlnaHRcbi4vbm9kZV9tb2R1bGVzXFxpbmhlcml0c1xuLi9ub2RlX21vZHVsZXNcXGlwYWRkci5qc1xuLi9ub2RlX21vZHVsZXNcXGlzLWJpbmFyeS1wYXRoXG4uL25vZGVfbW9kdWxlc1xcaXMtYnVpbHRpbi1tb2R1bGVcbi4vbm9kZV9tb2R1bGVzXFxpcy1jb3JlLW1vZHVsZVxuLi9ub2RlX21vZHVsZXNcXGlzLWRvY2tlclxuLi9ub2RlX21vZHVsZXNcXGlzLWV4dGdsb2Jcbi4vbm9kZV9tb2R1bGVzXFxpcy1mdWxsd2lkdGgtY29kZS1wb2ludFxuLi9ub2RlX21vZHVsZXNcXGlzLWdsb2Jcbi4vbm9kZV9tb2R1bGVzXFxpcy1tb2R1bGVcbi4vbm9kZV9tb2R1bGVzXFxpcy1udW1iZXJcbi4vbm9kZV9tb2R1bGVzXFxpcy1wYXRoLWluc2lkZVxuLi9ub2RlX21vZHVsZXNcXGlzLXN0cmVhbVxuLi9ub2RlX21vZHVsZXNcXGlzLXdzbFxuLi9ub2RlX21vZHVsZXNcXGlzYXJyYXlcbi4vbm9kZV9tb2R1bGVzXFxpc2V4ZVxuLi9ub2RlX21vZHVsZXNcXGpzLXNkc2xcbi4vbm9kZV9tb2R1bGVzXFxqcy10b2tlbnNcbi4vbm9kZV9tb2R1bGVzXFxqcy15YW1sXG4uL25vZGVfbW9kdWxlc1xcanNlc2Ncbi4vbm9kZV9tb2R1bGVzXFxqc29uLWJ1ZmZlclxuLi9ub2RlX21vZHVsZXNcXGpzb24tc2NoZW1hLXRyYXZlcnNlXG4uL25vZGVfbW9kdWxlc1xcanNvbi1zdGFibGUtc3RyaW5naWZ5LXdpdGhvdXQtanNvbmlmeVxuLi9ub2RlX21vZHVsZXNcXGpzb241XG4uL25vZGVfbW9kdWxlc1xca2V5dlxuLi9ub2RlX21vZHVsZXNcXGxldm5cbi4vbm9kZV9tb2R1bGVzXFxsb2NhdGUtcGF0aFxuLi9ub2RlX21vZHVsZXNcXGxvZGFzaFxuLi9ub2RlX21vZHVsZXNcXGxvZGFzaC5kZWJvdW5jZVxuLi9ub2RlX21vZHVsZXNcXGxvZGFzaC5tZXJnZVxuLi9ub2RlX21vZHVsZXNcXGxvb3NlLWVudmlmeVxuLi9ub2RlX21vZHVsZXNcXGxydS1jYWNoZVxuLi9ub2RlX21vZHVsZXNcXG1hZ2ljLXN0cmluZ1xuLi9ub2RlX21vZHVsZXNcXG1ha2UtZGlyXG4uL25vZGVfbW9kdWxlc1xcbWF0aC1pbnRyaW5zaWNzXG4uL25vZGVfbW9kdWxlc1xcbWVkaWEtdHlwZXJcbi4vbm9kZV9tb2R1bGVzXFxtZXJnZS1kZXNjcmlwdG9yc1xuLi9ub2RlX21vZHVsZXNcXG1lcmdlLXN0cmVhbVxuLi9ub2RlX21vZHVsZXNcXG1lcmdlMlxuLi9ub2RlX21vZHVsZXNcXG1ldGhvZHNcbi4vbm9kZV9tb2R1bGVzXFxtaWNyb21hdGNoXG4uL25vZGVfbW9kdWxlc1xcbWltZVxuLi9ub2RlX21vZHVsZXNcXG1pbWUtZGJcbi4vbm9kZV9tb2R1bGVzXFxtaW1lLXR5cGVzXG4uL25vZGVfbW9kdWxlc1xcbWltaWMtZm5cbi4vbm9kZV9tb2R1bGVzXFxtaW1pYy1yZXNwb25zZVxuLi9ub2RlX21vZHVsZXNcXG1pbmltYXRjaFxuLi9ub2RlX21vZHVsZXNcXG1pbmltaXN0XG4uL25vZGVfbW9kdWxlc1xcbWluaXBhc3Ncbi4vbm9kZV9tb2R1bGVzXFxtaW5pemxpYlxuLi9ub2RlX21vZHVsZXNcXG1rZGlycFxuLi9ub2RlX21vZHVsZXNcXG1zXG4uL25vZGVfbW9kdWxlc1xcbXVsdGVyXG4uL25vZGVfbW9kdWxlc1xcbmFuXG4uL25vZGVfbW9kdWxlc1xcbmFub2lkXG4uL25vZGVfbW9kdWxlc1xcbmF0dXJhbC1jb21wYXJlXG4uL25vZGVfbW9kdWxlc1xcbmVnb3RpYXRvclxuLi9ub2RlX21vZHVsZXNcXG5vZGUtZG9tZXhjZXB0aW9uXG4uL25vZGVfbW9kdWxlc1xcbm9kZS1mZXRjaFxuLi9ub2RlX21vZHVsZXNcXG5vZGUtcmVsZWFzZXNcbi4vbm9kZV9tb2R1bGVzXFxub3B0XG4uL25vZGVfbW9kdWxlc1xcbm9ybWFsaXplLXBhdGhcbi4vbm9kZV9tb2R1bGVzXFxucG0tcnVuLXBhdGhcbi4vbm9kZV9tb2R1bGVzXFxucG1sb2dcbi4vbm9kZV9tb2R1bGVzXFxvYmplY3QtYXNzaWduXG4uL25vZGVfbW9kdWxlc1xcb2JqZWN0LWluc3BlY3Rcbi4vbm9kZV9tb2R1bGVzXFxvbi1maW5pc2hlZFxuLi9ub2RlX21vZHVsZXNcXG9uY2Vcbi4vbm9kZV9tb2R1bGVzXFxvbmV0aW1lXG4uL25vZGVfbW9kdWxlc1xcb3BlblxuLi9ub2RlX21vZHVsZXNcXG9wdGlvbmF0b3Jcbi4vbm9kZV9tb2R1bGVzXFxwLWxpbWl0XG4uL25vZGVfbW9kdWxlc1xccC1sb2NhdGVcbi4vbm9kZV9tb2R1bGVzXFxwYXJlbnQtbW9kdWxlXG4uL25vZGVfbW9kdWxlc1xccGFyc2V1cmxcbi4vbm9kZV9tb2R1bGVzXFxwYXRoLWV4aXN0c1xuLi9ub2RlX21vZHVsZXNcXHBhdGgtaXMtYWJzb2x1dGVcbi4vbm9kZV9tb2R1bGVzXFxwYXRoLWtleVxuLi9ub2RlX21vZHVsZXNcXHBhdGgtcGFyc2Vcbi4vbm9kZV9tb2R1bGVzXFxwYXRoLXRvLXJlZ2V4cFxuLi9ub2RlX21vZHVsZXNcXHBhdGgtdHlwZVxuLi9ub2RlX21vZHVsZXNcXHBhdGgyZFxuLi9ub2RlX21vZHVsZXNcXHBhdGgyZC1wb2x5ZmlsbFxuLi9ub2RlX21vZHVsZXNcXHBkZmpzLWRpc3Rcbi4vbm9kZV9tb2R1bGVzXFxwaWNvY29sb3JzXG4uL25vZGVfbW9kdWxlc1xccGljb21hdGNoXG4uL25vZGVfbW9kdWxlc1xccG9zdGNzc1xuLi9ub2RlX21vZHVsZXNcXHByZWx1ZGUtbHNcbi4vbm9kZV9tb2R1bGVzXFxwcmV0dGllclxuLi9ub2RlX21vZHVsZXNcXHByaXNtLXJlYWN0LXJlbmRlcmVyXG4uL25vZGVfbW9kdWxlc1xccHJvY2Vzcy1uZXh0aWNrLWFyZ3Ncbi4vbm9kZV9tb2R1bGVzXFxwcm9wLXR5cGVzXG4uL25vZGVfbW9kdWxlc1xccHJveHktYWRkclxuLi9ub2RlX21vZHVsZXNcXHByb3h5LWZyb20tZW52XG4uL25vZGVfbW9kdWxlc1xccHNldWRvbWFwXG4uL25vZGVfbW9kdWxlc1xccHVueWNvZGVcbi4vbm9kZV9tb2R1bGVzXFxxc1xuLi9ub2RlX21vZHVsZXNcXHF1ZXJ5LXN0cmluZ1xuLi9ub2RlX21vZHVsZXNcXHF1ZXVlLW1pY3JvdGFza1xuLi9ub2RlX21vZHVsZXNcXHJhbmRvbWJ5dGVzXG4uL25vZGVfbW9kdWxlc1xccmFuZ2UtcGFyc2VyXG4uL25vZGVfbW9kdWxlc1xccmF3LWJvZHlcbi4vbm9kZV9tb2R1bGVzXFxyZWFjdFxuLi9ub2RlX21vZHVsZXNcXHJlYWN0LWRvbVxuLi9ub2RlX21vZHVsZXNcXHJlYWN0LWZyYW1lLWNvbXBvbmVudFxuLi9ub2RlX21vZHVsZXNcXHJlYWN0LWluc3BlY3RvclxuLi9ub2RlX21vZHVsZXNcXHJlYWN0LWlzXG4uL25vZGVfbW9kdWxlc1xccmVhY3QtcmVmcmVzaFxuLi9ub2RlX21vZHVsZXNcXHJlYWRhYmxlLXN0cmVhbVxuLi9ub2RlX21vZHVsZXNcXHJlYWRkaXJwXG4uL25vZGVfbW9kdWxlc1xccmVnZW5lcmF0ZVxuLi9ub2RlX21vZHVsZXNcXHJlZ2VuZXJhdGUtdW5pY29kZS1wcm9wZXJ0aWVzXG4uL25vZGVfbW9kdWxlc1xccmVnZW5lcmF0b3ItcnVudGltZVxuLi9ub2RlX21vZHVsZXNcXHJlZ2VuZXJhdG9yLXRyYW5zZm9ybVxuLi9ub2RlX21vZHVsZXNcXHJlZ2V4cHUtY29yZVxuLi9ub2RlX21vZHVsZXNcXHJlZ2pzcGFyc2VyXG4uL25vZGVfbW9kdWxlc1xccmVzb2x2ZVxuLi9ub2RlX21vZHVsZXNcXHJlc29sdmUtZnJvbVxuLi9ub2RlX21vZHVsZXNcXHJlc29sdmUtcGtnLW1hcHNcbi4vbm9kZV9tb2R1bGVzXFxyZXVzaWZ5XG4uL25vZGVfbW9kdWxlc1xccmltcmFmXG4uL25vZGVfbW9kdWxlc1xccm9sbHVwXG4uL25vZGVfbW9kdWxlc1xccm9sbHVwLXBsdWdpbi10eXBlc2NyaXB0LXBhdGhzXG4uL25vZGVfbW9kdWxlc1xccnVuLWFwcGxlc2NyaXB0XG4uL25vZGVfbW9kdWxlc1xccnVuLXBhcmFsbGVsXG4uL25vZGVfbW9kdWxlc1xcc2FmZS1idWZmZXJcbi4vbm9kZV9tb2R1bGVzXFxzYWZlci1idWZmZXJcbi4vbm9kZV9tb2R1bGVzXFxzY2hlZHVsZXJcbi4vbm9kZV9tb2R1bGVzXFxzZW12ZXJcbi4vbm9kZV9tb2R1bGVzXFxzZW5kXG4uL25vZGVfbW9kdWxlc1xcc2VyaWFsaXplLWphdmFzY3JpcHRcbi4vbm9kZV9tb2R1bGVzXFxzZXJvdmFsXG4uL25vZGVfbW9kdWxlc1xcc2VydmUtc3RhdGljXG4uL25vZGVfbW9kdWxlc1xcc2V0LWJsb2NraW5nXG4uL25vZGVfbW9kdWxlc1xcc2V0LWZ1bmN0aW9uLWxlbmd0aFxuLi9ub2RlX21vZHVsZXNcXHNldHByb3RvdHlwZW9mXG4uL25vZGVfbW9kdWxlc1xcc2hlYmFuZy1jb21tYW5kXG4uL25vZGVfbW9kdWxlc1xcc2hlYmFuZy1yZWdleFxuLi9ub2RlX21vZHVsZXNcXHNpZGUtY2hhbm5lbFxuLi9ub2RlX21vZHVsZXNcXHNpZGUtY2hhbm5lbC1saXN0XG4uL25vZGVfbW9kdWxlc1xcc2lkZS1jaGFubmVsLW1hcFxuLi9ub2RlX21vZHVsZXNcXHNpZGUtY2hhbm5lbC13ZWFrbWFwXG4uL25vZGVfbW9kdWxlc1xcc2lnbmFsLWV4aXRcbi4vbm9kZV9tb2R1bGVzXFxzaW1wbGUtY29uY2F0XG4uL25vZGVfbW9kdWxlc1xcc2ltcGxlLWdldFxuLi9ub2RlX21vZHVsZXNcXHNsYXNoXG4uL25vZGVfbW9kdWxlc1xcc21vYlxuLi9ub2RlX21vZHVsZXNcXHNvbGlkLWVsZW1lbnRcbi4vbm9kZV9tb2R1bGVzXFxzb2xpZC1qc1xuLi9ub2RlX21vZHVsZXNcXHNvdXJjZS1tYXBcbi4vbm9kZV9tb2R1bGVzXFxzb3VyY2UtbWFwLWpzXG4uL25vZGVfbW9kdWxlc1xcc291cmNlLW1hcC1zdXBwb3J0XG4uL25vZGVfbW9kdWxlc1xcc3BsaXQtb24tZmlyc3Rcbi4vbm9kZV9tb2R1bGVzXFxzdGF0dXNlc1xuLi9ub2RlX21vZHVsZXNcXHN0cmVhbXNlYXJjaFxuLi9ub2RlX21vZHVsZXNcXHN0cmluZy13aWR0aFxuLi9ub2RlX21vZHVsZXNcXHN0cmluZ19kZWNvZGVyXG4uL25vZGVfbW9kdWxlc1xcc3RyaXAtYW5zaVxuLi9ub2RlX21vZHVsZXNcXHN0cmlwLWVvZlxuLi9ub2RlX21vZHVsZXNcXHN0cmlwLWZpbmFsLW5ld2xpbmVcbi4vbm9kZV9tb2R1bGVzXFxzdHJpcC1qc29uLWNvbW1lbnRzXG4uL25vZGVfbW9kdWxlc1xcc3VwcG9ydHMtY29sb3Jcbi4vbm9kZV9tb2R1bGVzXFxzdXBwb3J0cy1wcmVzZXJ2ZS1zeW1saW5rcy1mbGFnXG4uL25vZGVfbW9kdWxlc1xcdGFyXG4uL25vZGVfbW9kdWxlc1xcdGVyc2VyXG4uL25vZGVfbW9kdWxlc1xcdGV4dC10YWJsZVxuLi9ub2RlX21vZHVsZXNcXHRpdGxlaXplXG4uL25vZGVfbW9kdWxlc1xcdG8tZmFzdC1wcm9wZXJ0aWVzXG4uL25vZGVfbW9kdWxlc1xcdG8tcmVnZXgtcmFuZ2Vcbi4vbm9kZV9tb2R1bGVzXFx0b2lkZW50aWZpZXJcbi4vbm9kZV9tb2R1bGVzXFx0cjQ2XG4uL25vZGVfbW9kdWxlc1xcdHNjb25mY2tcbi4vbm9kZV9tb2R1bGVzXFx0c2xpYlxuLi9ub2RlX21vZHVsZXNcXHRzeFxuLi9ub2RlX21vZHVsZXNcXHR5cGUtY2hlY2tcbi4vbm9kZV9tb2R1bGVzXFx0eXBlLWZlc3Rcbi4vbm9kZV9tb2R1bGVzXFx0eXBlLWlzXG4uL25vZGVfbW9kdWxlc1xcdHlwZWRhcnJheVxuLi9ub2RlX21vZHVsZXNcXHR5cGVzY3JpcHRcbi4vbm9kZV9tb2R1bGVzXFx1bmljb2RlLWNhbm9uaWNhbC1wcm9wZXJ0eS1uYW1lcy1lY21hc2NyaXB0XG4uL25vZGVfbW9kdWxlc1xcdW5pY29kZS1tYXRjaC1wcm9wZXJ0eS1lY21hc2NyaXB0XG4uL25vZGVfbW9kdWxlc1xcdW5pY29kZS1tYXRjaC1wcm9wZXJ0eS12YWx1ZS1lY21hc2NyaXB0XG4uL25vZGVfbW9kdWxlc1xcdW5pY29kZS1wcm9wZXJ0eS1hbGlhc2VzLWVjbWFzY3JpcHRcbi4vbm9kZV9tb2R1bGVzXFx1bnBpcGVcbi4vbm9kZV9tb2R1bGVzXFx1bnRpbGRpZnlcbi4vbm9kZV9tb2R1bGVzXFx1cGRhdGUtYnJvd3NlcnNsaXN0LWRiXG4uL25vZGVfbW9kdWxlc1xcdXJpLWpzXG4uL25vZGVfbW9kdWxlc1xcdXRpbC1kZXByZWNhdGVcbi4vbm9kZV9tb2R1bGVzXFx1dGlscy1tZXJnZVxuLi9ub2RlX21vZHVsZXNcXHZhcnlcbi4vbm9kZV9tb2R1bGVzXFx2aXRlXG4uL25vZGVfbW9kdWxlc1xcdml0ZS10c2NvbmZpZy1wYXRoc1xuLi9ub2RlX21vZHVsZXNcXHdlYi1zdHJlYW1zLXBvbHlmaWxsXG4uL25vZGVfbW9kdWxlc1xcd2ViaWRsLWNvbnZlcnNpb25zXG4uL25vZGVfbW9kdWxlc1xcd2hhdHdnLXVybFxuLi9ub2RlX21vZHVsZXNcXHdoaWNoXG4uL25vZGVfbW9kdWxlc1xcd2lkZS1hbGlnblxuLi9ub2RlX21vZHVsZXNcXHdpZGVzdC1saW5lXG4uL25vZGVfbW9kdWxlc1xcd3JhcC1hbnNpXG4uL25vZGVfbW9kdWxlc1xcd3JhcHB5XG4uL25vZGVfbW9kdWxlc1xceGRnLWRlZmF1bHQtYnJvd3NlclxuLi9ub2RlX21vZHVsZXNcXHh0ZW5kXG4uL25vZGVfbW9kdWxlc1xceWFsbGlzdFxuLi9ub2RlX21vZHVsZXNcXHlvY3RvLXF1ZXVlXG4uL25vZGVfbW9kdWxlc1xcem9kXG4uL3BhY2thZ2UtbG9jay5qc29uXG4uL3BhY2thZ2UuanNvblxuLi9yZWFjdC1saWJyYXJ5Lmpzb25cbi4vcm9sbHVwLmNvbmZpZy5qc1xuLi9zcmNcbi4vc3JjXFxCdWJibGVDaGF0LnRzeFxuLi9zcmNcXEZ1bGxQYWdlQ2hhdC50c3hcbi4vc3JjXFxpbmRleC50c1xuLi90c2NvbmZpZy5qc29uXG4uL3lhcm4ubG9ja1xuIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiY2Y5ZjI2ZDYtNjE1MS00MDRkLThjYzYtZmY2NjdlMmFhNWY0O3Rvb2x1X3ZydHhfMDFNazZTZjdHWFRhbmRDelBZZk15SkJjIjp7InJlcXVlc3RJZCI6ImNmOWYyNmQ2LTYxNTEtNDA0ZC04Y2M2LWZmNjY3ZTJhYTVmNCIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFNazZTZjdHWFRhbmRDelBZZk15SkJjIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiSGVyZSdzIHRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdXAgdG8gMiBsZXZlbHMgZGVlcCBpbiBzcmMsIGV4Y2x1ZGluZyBoaWRkZW4gaXRlbXM6XG5zcmMvQnViYmxlQ2hhdC50c3hcbnNyYy9GdWxsUGFnZUNoYXQudHN4XG5zcmMvaW5kZXgudHNcbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sImRhYTk3NTM0LWNhNGYtNGQ4Yy04ODk0LTBkMTQ2NjgwNDFjZjt0b29sdV92cnR4XzAxU1hZWkFYU1gyc3VpeDduV1NMOGdlUyI6eyJyZXF1ZXN0SWQiOiJkYWE5NzUzNC1jYTRmLTRkOGMtODg5NC0wZDE0NjY4MDQxY2YiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxU1hZWkFYU1gyc3VpeDduV1NMOGdlUyIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gc3JjL0J1YmJsZUNoYXQudHN4OlxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcnXG4gICAgIDJcdGltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCdWJibGVQcm9wc1xuICAgICA1XHRcbiAgICAgNlx0ZGVjbGFyZSBnbG9iYWwge1xuICAgICA3XHQgIG5hbWVzcGFjZSBKU1gge1xuICAgICA4XHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAgOVx0ICAgICAgJ2Zsb3dpc2UtY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEwXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxMVx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDEyXHQgICAgICA+XG4gICAgMTNcdCAgICB9XG4gICAgMTRcdCAgfVxuICAgIDE1XHR9XG4gICAgMTZcdFxuICAgIDE3XHR0eXBlIEJ1YmJsZUVsZW1lbnQgPSBIVE1MRWxlbWVudCAmIFByb3BzXG4gICAgMThcdFxuICAgIDE5XHRleHBvcnQgY29uc3QgQnViYmxlQ2hhdCA9IChwcm9wczogUHJvcHMpID0+IHtcbiAgICAyMFx0ICBjb25zdCByZWYgPSB1c2VSZWY8QnViYmxlRWxlbWVudCB8IG51bGw+KG51bGwpXG4gICAgMjFcdCAgY29uc3QgW2lzSW5pdGlhbGl6ZWQsIHNldElzSW5pdGlhbGl6ZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gICAgMjJcdFxuICAgIDIzXHQgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgMjRcdCAgICA7KGFzeW5jICgpID0+IHtcbiAgICAyNVx0ICAgICAgYXdhaXQgaW1wb3J0KCdjbWN0cy1jLWFnZW50LWVtYmVkZGluZy9kaXN0L3dlYi5qcycpXG4gICAgMjZcdCAgICAgIHNldElzSW5pdGlhbGl6ZWQodHJ1ZSlcbiAgICAyN1x0ICAgIH0pKClcbiAgICAyOFx0ICAgIHJldHVybiAoKSA9PiB7XG4gICAgMjlcdCAgICAgIHJlZi5jdXJyZW50Py5yZW1vdmUoKVxuICAgIDMwXHQgICAgfVxuICAgIDMxXHQgIH0sIFtdKVxuICAgIDMyXHRcbiAgICAzM1x0ICBjb25zdCBhdHRhY2hCdWJibGVUb0RvbSA9IHVzZUNhbGxiYWNrKChwcm9wczogUHJvcHMpID0+IHtcbiAgICAzNFx0ICAgIGNvbnN0IGJ1YmJsZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFxuICAgIDM1XHQgICAgICAnZmxvd2lzZS1jaGF0Ym90J1xuICAgIDM2XHQgICAgKSBhcyBCdWJibGVFbGVtZW50XG4gICAgMzdcdCAgICByZWYuY3VycmVudCA9IGJ1YmJsZUVsZW1lbnRcbiAgICAzOFx0ICAgIGluamVjdFByb3BzVG9FbGVtZW50KHJlZi5jdXJyZW50LCBwcm9wcylcbiAgICAzOVx0ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHJlZi5jdXJyZW50KVxuICAgIDQwXHQgIH0sIFtdKVxuICAgIDQxXHRcbiAgICA0Mlx0ICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIDQzXHQgICAgaWYgKCFpc0luaXRpYWxpemVkKSByZXR1cm5cbiAgICA0NFx0ICAgIGlmICghcmVmLmN1cnJlbnQpIGF0dGFjaEJ1YmJsZVRvRG9tKHByb3BzKVxuICAgIDQ1XHQgICAgaW5qZWN0UHJvcHNUb0VsZW1lbnQocmVmLmN1cnJlbnQgYXMgQnViYmxlRWxlbWVudCwgcHJvcHMpXG4gICAgNDZcdCAgfSwgW2F0dGFjaEJ1YmJsZVRvRG9tLCBpc0luaXRpYWxpemVkLCBwcm9wc10pXG4gICAgNDdcdFxuICAgIDQ4XHQgIGNvbnN0IGluamVjdFByb3BzVG9FbGVtZW50ID0gKGVsZW1lbnQ6IEJ1YmJsZUVsZW1lbnQsIHByb3BzOiBQcm9wcykgPT4ge1xuICAgIDQ5XHQgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50LCBwcm9wcylcbiAgICA1MFx0ICB9XG4gICAgNTFcdFxuICAgIDUyXHQgIHJldHVybiBudWxsXG4gICAgNTNcdH1cbiAgICA1NFx0XG5Ub3RhbCBsaW5lcyBpbiBmaWxlOiA1NFxuIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiMGE0MGNhZjctZWUxZC00NzQ3LTlhZTgtYzliNmYwYWM4YmMzO3Rvb2x1X3ZydHhfMDFDNnk2Ylo4ZnVFekdyN2N1VnkxUmZEIjp7InJlcXVlc3RJZCI6IjBhNDBjYWY3LWVlMWQtNDc0Ny05YWU4LWM5YjZmMGFjOGJjMyIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFDNnk2Ylo4ZnVFekdyN2N1VnkxUmZEIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiSGVyZSdzIHRoZSByZXN1bHQgb2YgcnVubmluZyBgY2F0IC1uYCBvbiBzcmMvRnVsbFBhZ2VDaGF0LnRzeDpcbiAgICAgMVx0aW1wb3J0IHR5cGUgeyBCb3RQcm9wcyB9IGZyb20gJ2NtY3RzLWMtYWdlbnQtZW1iZWRkaW5nJ1xuICAgICAyXHRpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuICAgICAzXHRcbiAgICAgNFx0dHlwZSBQcm9wcyA9IEJvdFByb3BzICYge1xuICAgICA1XHQgIHN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllc1xuICAgICA2XHQgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICA3XHR9XG4gICAgIDhcdFxuICAgICA5XHRkZWNsYXJlIGdsb2JhbCB7XG4gICAgMTBcdCAgbmFtZXNwYWNlIEpTWCB7XG4gICAgMTFcdCAgICBpbnRlcmZhY2UgSW50cmluc2ljRWxlbWVudHMge1xuICAgIDEyXHQgICAgICAnZmxvd2lzZS1mdWxsY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEzXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxNFx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDE1XHQgICAgICA+ICYgeyBjbGFzcz86IHN0cmluZyB9XG4gICAgMTZcdCAgICB9XG4gICAgMTdcdCAgfVxuICAgIDE4XHR9XG4gICAgMTlcdFxuICAgIDIwXHR0eXBlIEZ1bGxQYWdlQ2hhdEVsZW1lbnQgPSBIVE1MRWxlbWVudCAmIFByb3BzXG4gICAgMjFcdFxuICAgIDIyXHRleHBvcnQgY29uc3QgRnVsbFBhZ2VDaGF0ID0gKHsgc3R5bGUsIGNsYXNzTmFtZSwgLi4uYXNzaWduYWJsZVByb3BzIH06IFByb3BzKSA9PiB7XG4gICAgMjNcdCAgY29uc3QgcmVmID0gdXNlUmVmPEZ1bGxQYWdlQ2hhdEVsZW1lbnQgfCBudWxsPihudWxsKVxuICAgIDI0XHRcbiAgICAyNVx0ICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIDI2XHQgICAgOyhhc3luYyAoKSA9PiB7XG4gICAgMjdcdCAgICAgIGF3YWl0IGltcG9ydCgnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcvZGlzdC93ZWIuanMnKVxuICAgIDI4XHQgICAgfSkoKVxuICAgIDI5XHQgIH0sIFtdKVxuICAgIDMwXHRcbiAgICAzMVx0ICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIDMyXHQgICAgaWYgKCFyZWYuY3VycmVudCkgcmV0dXJuXG4gICAgMzNcdCAgICBPYmplY3QuYXNzaWduKHJlZi5jdXJyZW50LCBhc3NpZ25hYmxlUHJvcHMpXG4gICAgMzRcdCAgfSwgW2Fzc2lnbmFibGVQcm9wc10pXG4gICAgMzVcdFxuICAgIDM2XHQgIHJldHVybiA8Zmxvd2lzZS1mdWxsY2hhdGJvdCByZWY9e3JlZn0gc3R5bGU9e3N0eWxlfSBjbGFzcz17Y2xhc3NOYW1lfSAvPlxuICAgIDM3XHR9XG4gICAgMzhcdFxuVG90YWwgbGluZXMgaW4gZmlsZTogMzhcbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sIjc5MDVhZDc3LTk2NDEtNGYxMS04ZDZlLWM4NTgyYWZjNWFmOTt0b29sdV92cnR4XzAxNXl1SHJ3M1dSaU40NkdFVXJraVIxaiI6eyJyZXF1ZXN0SWQiOiI3OTA1YWQ3Ny05NjQxLTRmMTEtOGQ2ZS1jODU4MmFmYzVhZjkiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxNXl1SHJ3M1dSaU40NkdFVXJraVIxaiIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gcGFja2FnZS5qc29uOlxuICAgICAxXHR7XG4gICAgIDJcdCAgXCJuYW1lXCI6IFwiY21jdHMtYy1hZ2VudC1lbWJlZGRpbmctcmVhY3RcIixcbiAgICAgM1x0ICBcInZlcnNpb25cIjogXCIxLjAuMzlcIixcbiAgICAgNFx0ICBcImRlc2NyaXB0aW9uXCI6IFwiUmVhY3QgbGlicmFyeSB0byBkaXNwbGF5IGZsb3dpc2UgY2hhdGJvdCBvbiB5b3VyIHdlYnNpdGVcIixcbiAgICAgNVx0ICBcIm1haW5cIjogXCJkaXN0L2luZGV4LmpzXCIsXG4gICAgIDZcdCAgXCJ0eXBlc1wiOiBcImRpc3QvaW5kZXguZC50c1wiLFxuICAgICA3XHQgIFwidHlwZVwiOiBcIm1vZHVsZVwiLFxuICAgICA4XHQgIFwic2NyaXB0c1wiOiB7XG4gICAgIDlcdCAgICBcImRldlwiOiBcInJvbGx1cCAtLXdhdGNoIC0tY29uZmlnIHJvbGx1cC5jb25maWcuanNcIixcbiAgICAxMFx0ICAgIFwiYnVpbGRcIjogXCJyb2xsdXAgLS1jb25maWcgcm9sbHVwLmNvbmZpZy5qc1wiLFxuICAgIDExXHQgICAgXCJsaW50XCI6IFwiZXNsaW50IC0tZml4IFxcXCJzcmMvKiovKi50cypcXFwiXCIsXG4gICAgMTJcdCAgICBcImJ1aWxkLWFuZC1wdWJsaXNoXCI6IFwieWFybiBpbnN0YWxsICYmIHlhcm4gYnVpbGQgJiYgbnBtIHB1Ymxpc2hcIlxuICAgIDEzXHQgIH0sXG4gICAgMTRcdCAgXCJrZXl3b3Jkc1wiOiBbXSxcbiAgICAxNVx0ICBcImxpY2Vuc2VcIjogXCJNSVRcIixcbiAgICAxNlx0ICBcImRlcGVuZGVuY2llc1wiOiB7XG4gICAgMTdcdCAgICBcInJlYWN0XCI6IFwiMTguMi4wXCIsXG4gICAgMThcdCAgICBcInJlYWN0LWRvbVwiOiBcIjE4LjIuMFwiLFxuICAgIDE5XHQgICAgXCJAbGFkbGUvcmVhY3RcIjogXCIyLjUuMVwiXG4gICAgMjBcdCAgfSxcbiAgICAyMVx0ICBcImRldkRlcGVuZGVuY2llc1wiOiB7XG4gICAgMjJcdCAgICBcIkBiYWJlbC9wcmVzZXQtcmVhY3RcIjogXCI3LjE4LjZcIixcbiAgICAyM1x0ICAgIFwiQGJhYmVsL3ByZXNldC10eXBlc2NyaXB0XCI6IFwiNy4yMS40XCIsXG4gICAgMjRcdCAgICBcIkByb2xsdXAvcGx1Z2luLWJhYmVsXCI6IFwiNi4wLjNcIixcbiAgICAyNVx0ICAgIFwiQHJvbGx1cC9wbHVnaW4tbm9kZS1yZXNvbHZlXCI6IFwiMTUuMC4xXCIsXG4gICAgMjZcdCAgICBcIkByb2xsdXAvcGx1Z2luLXRlcnNlclwiOiBcIjAuNC4wXCIsXG4gICAgMjdcdCAgICBcIkByb2xsdXAvcGx1Z2luLXR5cGVzY3JpcHRcIjogXCIxMS4wLjBcIixcbiAgICAyOFx0ICAgIFwiQHR5cGVzL25vZGVcIjogXCIxOC4xNS4xMVwiLFxuICAgIDI5XHQgICAgXCJAdHlwZXMvcmVhY3RcIjogXCIxOC4wLjMyXCIsXG4gICAgMzBcdCAgICBcImNtY3RzLWMtYWdlbnQtZW1iZWRkaW5nXCI6IFwiMS4wLjM5XCIsXG4gICAgMzFcdCAgICBcImVzbGludFwiOiBcIjguMzcuMFwiLFxuICAgIDMyXHQgICAgXCJwcmV0dGllclwiOiBcIl4zLjQuMlwiLFxuICAgIDMzXHQgICAgXCJyb2xsdXBcIjogXCIzLjIwLjJcIixcbiAgICAzNFx0ICAgIFwicm9sbHVwLXBsdWdpbi10eXBlc2NyaXB0LXBhdGhzXCI6IFwiMS40LjBcIixcbiAgICAzNVx0ICAgIFwidHNsaWJcIjogXCIyLjUuMFwiLFxuICAgIDM2XHQgICAgXCJ0c3hcIjogXCIzLjEyLjZcIixcbiAgICAzN1x0ICAgIFwidHlwZXNjcmlwdFwiOiBcIjUuMC4zXCJcbiAgICAzOFx0ICB9LFxuICAgIDM5XHQgIFwicGVlckRlcGVuZGVuY2llc1wiOiB7XG4gICAgNDBcdCAgICBcImNtY3RzLWMtYWdlbnQtZW1iZWRkaW5nXCI6IFwiKlwiLFxuICAgIDQxXHQgICAgXCJyZWFjdFwiOiBcIjE4LnhcIlxuICAgIDQyXHQgIH0sXG4gICAgNDNcdCAgXCJwYWNrYWdlTWFuYWdlclwiOiBcInlhcm5AMS4yMi4yMitzaGE1MTIuYTZiMmY3OTA2YjcyMWJiYTNkNjdkNGFmZjA4M2RmMDRkYWQ2NGMzOTk3MDc4NDFiN2FjZjAwZjZiMTMzYjdhYzI0MjU1ZjI2NTJmYTIyYWUzNTM0MzI5ZGM2MTgwNTM0ZTk4ZDE3NDMyMDM3ZmY2ZmQxNDA1NTZlMmJiMzEzN2VcIlxuICAgIDQ0XHR9XG4gICAgNDVcdFxuVG90YWwgbGluZXMgaW4gZmlsZTogNDVcbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sImJlNThlNmI5LTZhNDktNDY2Yi1iMjgwLWM5NTk1YmY3YjhjNjt0b29sdV92cnR4XzAxNGZxQW5FdDdDYXRXaHJyMmNTSjJuVCI6eyJyZXF1ZXN0SWQiOiJiZTU4ZTZiOS02YTQ5LTQ2NmItYjI4MC1jOTU5NWJmN2I4YzYiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxNGZxQW5FdDdDYXRXaHJyMmNTSjJuVCIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IlRoZSBmb2xsb3dpbmcgY29kZSBzZWN0aW9ucyB3ZXJlIHJldHJpZXZlZDpcblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvQm90QnViYmxlLnRzeFxuLi4uXG4gICAgMThcdFxuICAgIDE5XHR0eXBlIFByb3BzID0ge1xuICAgIDIwXHQgIG1lc3NhZ2U6IE1lc3NhZ2VUeXBlO1xuICAgIDIxXHQgIHNldE1lc3NhZ2VzPzogYW55O1xuICAgIDIyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAyM1x0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAyNFx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDI1XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAyNlx0ICBmaWxlQW5ub3RhdGlvbnM/OiBhbnk7XG4gICAgMjdcdCAgc2hvd0F2YXRhcj86IGJvb2xlYW47XG4gICAgMjhcdCAgYXZhdGFyU3JjPzogc3RyaW5nO1xuICAgIDI5XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMzFcdCAgY2hhdEZlZWRiYWNrU3RhdHVzPzogYm9vbGVhbjtcbiAgICAzMlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAzM1x0ICBmZWVkYmFja0NvbG9yPzogc3RyaW5nO1xuICAgIDM0XHQgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICAzNVx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAgMzZcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgIDM3XHQgIHNvdXJjZURvY3NUaXRsZT86IHN0cmluZztcbiAgICAzOFx0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAzOVx0ICBoYW5kbGVBY3Rpb25DbGljazogKGxhYmVsOiBzdHJpbmcsIGFjdGlvbjogSUFjdGlvbiB8IHVuZGVmaW5lZCB8IG51bGwpID0+IHZvaWQ7XG4gICAgNDBcdCAgaGFuZGxlU291cmNlRG9jdW1lbnRzQ2xpY2s6IChzcmM6IGFueSkgPT4gdm9pZDtcbiAgICA0MVx0ICBjaGF0d29vdFVybD86IHN0cmluZztcbiAgICA0Mlx0ICBvbkNvbm5lY3RUb0h1bWFuQWR2aXNvcj86IChpZDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpID0+IHZvaWQ7XG4gICAgNDNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgNDRcdCAgcXVlc3Rpb24/OiBzdHJpbmc7XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL0JvdC50c3hcbi4uLlxuICAgIDU3XHRcbiAgICA1OFx0ZXhwb3J0IHR5cGUgVXBsb2Fkc0NvbmZpZyA9IHtcbiAgICA1OVx0ICBpbWdVcGxvYWRTaXplQW5kVHlwZXM6IElVcGxvYWRDb25zdHJhaXRzW107XG4gICAgNjBcdCAgZmlsZVVwbG9hZFNpemVBbmRUeXBlczogSVVwbG9hZENvbnN0cmFpdHNbXTtcbiAgICA2MVx0ICBpc0ltYWdlVXBsb2FkQWxsb3dlZDogYm9vbGVhbjtcbiAgICA2Mlx0ICBpc1NwZWVjaFRvVGV4dEVuYWJsZWQ6IGJvb2xlYW47XG4gICAgNjNcdCAgaXNSQUdGaWxlVXBsb2FkQWxsb3dlZDogYm9vbGVhbjtcbiAgICA2NFx0fTtcbiAgICA2NVx0XG4gICAgNjZcdHR5cGUgRmlsZVByZXZpZXdEYXRhID0gc3RyaW5nIHwgQXJyYXlCdWZmZXI7XG4gICAgNjdcdFxuICAgIDY4XHR0eXBlIEZpbGVQcmV2aWV3ID0ge1xuICAgIDY5XHQgIGRhdGE6IEZpbGVQcmV2aWV3RGF0YTtcbiAgICA3MFx0ICBtaW1lOiBzdHJpbmc7XG4gICAgNzFcdCAgbmFtZTogc3RyaW5nO1xuICAgIDcyXHQgIHByZXZpZXc6IHN0cmluZztcbiAgICA3M1x0ICB0eXBlOiBzdHJpbmc7XG4gICAgNzRcdH07XG4gICAgNzVcdFxuICAgIDc2XHR0eXBlIG1lc3NhZ2VUeXBlID0gJ2FwaU1lc3NhZ2UnIHwgJ3VzZXJNZXNzYWdlJyB8ICd1c2VybWVzc2FnZXdhaXRpbmcnIHwgJ2xlYWRDYXB0dXJlTWVzc2FnZSc7XG4gICAgNzdcdFxuICAgIDc4XHRleHBvcnQgdHlwZSBJQWdlbnRSZWFzb25pbmcgPSB7XG4gICAgNzlcdCAgYWdlbnROYW1lPzogc3RyaW5nO1xuICAgIDgwXHQgIG1lc3NhZ2VzPzogc3RyaW5nW107XG4gICAgODFcdCAgdXNlZFRvb2xzPzogYW55W107XG4gICAgODJcdCAgYXJ0aWZhY3RzPzogRmlsZVVwbG9hZFtdO1xuICAgIDgzXHQgIHNvdXJjZURvY3VtZW50cz86IGFueVtdO1xuICAgIDg0XHQgIGluc3RydWN0aW9ucz86IHN0cmluZztcbiAgICA4NVx0ICBuZXh0QWdlbnQ/OiBzdHJpbmc7XG4gICAgODZcdH07XG4gICAgODdcdFxuICAgIDg4XHRleHBvcnQgdHlwZSBJQWN0aW9uID0ge1xuICAgIDg5XHQgIGlkPzogc3RyaW5nO1xuICAgIDkwXHQgIGVsZW1lbnRzPzogQXJyYXk8e1xuICAgIDkxXHQgICAgdHlwZTogc3RyaW5nO1xuICAgIDkyXHQgICAgbGFiZWw6IHN0cmluZztcbiAgICA5M1x0ICB9PjtcbiAgICA5NFx0ICBtYXBwaW5nPzoge1xuICAgIDk1XHQgICAgYXBwcm92ZTogc3RyaW5nO1xuICAgIDk2XHQgICAgcmVqZWN0OiBzdHJpbmc7XG4gICAgOTdcdCAgICB0b29sQ2FsbHM6IGFueVtdO1xuICAgIDk4XHQgIH07XG4gICAgOTlcdH07XG4gICAxMDBcdFxuICAgMTAxXHRleHBvcnQgdHlwZSBGaWxlVXBsb2FkID0gT21pdDxGaWxlUHJldmlldywgJ3ByZXZpZXcnPjtcbiAgIDEwMlx0XG4gICAxMDNcdGV4cG9ydCB0eXBlIE1lc3NhZ2VUeXBlID0ge1xuICAgMTA0XHQgIG1lc3NhZ2VJZD86IHN0cmluZztcbiAgIDEwNVx0ICBtZXNzYWdlOiBzdHJpbmc7XG4gICAxMDZcdCAgdHlwZTogbWVzc2FnZVR5cGU7XG4gICAxMDdcdCAgc291cmNlRG9jdW1lbnRzPzogYW55O1xuICAgMTA4XHQgIGZpbGVBbm5vdGF0aW9ucz86IGFueTtcbiAgIDEwOVx0ICBmaWxlVXBsb2Fkcz86IFBhcnRpYWw8RmlsZVVwbG9hZD5bXTtcbiAgIDExMFx0ICBhcnRpZmFjdHM/OiBQYXJ0aWFsPEZpbGVVcGxvYWQ+W107XG4gICAxMTFcdCAgYWdlbnRSZWFzb25pbmc/OiBJQWdlbnRSZWFzb25pbmdbXTtcbiAgIDExMlx0ICB1c2VkVG9vbHM/OiBhbnlbXTtcbiAgIDExM1x0ICBhY3Rpb24/OiBJQWN0aW9uIHwgbnVsbDtcbiAgIDExNFx0ICByYXRpbmc/OiBGZWVkYmFja1JhdGluZ1R5cGU7XG4gICAxMTVcdCAgaWQ/OiBzdHJpbmc7XG4gICAxMTZcdCAgZm9sbG93VXBQcm9tcHRzPzogc3RyaW5nO1xuICAgMTE3XHQgIGRhdGVUaW1lPzogc3RyaW5nO1xuICAgMTE4XHR9O1xuICAgMTE5XHRcbiAgIDEyMFx0dHlwZSBJVXBsb2FkcyA9IHtcbiAgIDEyMVx0ICBkYXRhOiBGaWxlUHJldmlld0RhdGE7XG4gICAxMjJcdCAgdHlwZTogc3RyaW5nO1xuICAgMTIzXHQgIG5hbWU6IHN0cmluZztcbiAgIDEyNFx0ICBtaW1lOiBzdHJpbmc7XG4gICAxMjVcdCAgZmlsZT86IGFueTtcbiAgIDEyNlx0fVtdO1xuICAgMTI3XHRcbiAgIDEyOFx0dHlwZSBvYnNlcnZlckNvbmZpZ1R5cGUgPSAoYWNjZXNzb3I6IHN0cmluZyB8IGJvb2xlYW4gfCBvYmplY3QgfCBNZXNzYWdlVHlwZVtdKSA9PiB2b2lkO1xuICAgMTI5XHRleHBvcnQgdHlwZSBvYnNlcnZlcnNDb25maWdUeXBlID0gUmVjb3JkPCdvYnNlcnZlVXNlcklucHV0JyB8ICdvYnNlcnZlTG9hZGluZycgfCAnb2JzZXJ2ZU1lc3NhZ2VzJywgb2JzZXJ2ZXJDb25maWdUeXBlPjtcbiAgIDEzMFx0XG4gICAxMzFcdGV4cG9ydCB0eXBlIEJvdFByb3BzID0ge1xuICAgMTMyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgIDEzM1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgMTM0XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgIDEzNVx0ICBvbkJlZm9yZVNlbmQ/OiAobWVzc2FnZTogc3RyaW5nLCBib2R5OiBJbmNvbWluZ0lucHV0KSA9PiBQcm9taXNlPHsgbWVzc2FnZTogc3RyaW5nOyBib2R5OiBJbmNvbWluZ0lucHV0OyBjYW5jZWw/OiBib29sZWFuIH0+IHwgeyBtZXNzYWdlOiBzdHJpbmc7IGJvZHk6IEluY29taW5nSW5wdXQ7IGNhbmNlbD86IGJvb2xlYW4gfTtcbiAgIDEzNlx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgMTM3XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM4XHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzlcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgMTQwXHQgIGJvdE1lc3NhZ2U/OiBCb3RNZXNzYWdlVGhlbWU7XG4gICAxNDFcdCAgdXNlck1lc3NhZ2U/OiBVc2VyTWVzc2FnZVRoZW1lO1xuICAgMTQyXHQgIHRleHRJbnB1dD86IFRleHRJbnB1dFRoZW1lO1xuICAgMTQzXHQgIGZlZWRiYWNrPzogRmVlZGJhY2tUaGVtZTtcbiAgIDE0NFx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDVcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDZcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ3XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0OFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgMTQ5XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgIDE1MFx0ICB0aXRsZT86IHN0cmluZztcbiAgIDE1MVx0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgIDE1Mlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgIDE1M1x0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgIDE1NFx0ICBmb290ZXI/OiBGb290ZXJUaGVtZTtcbiAgIDE1NVx0ICBzb3VyY2VEb2NzVGl0bGU/OiBzdHJpbmc7XG4gICAxNTZcdCAgb2JzZXJ2ZXJzQ29uZmlnPzogb2JzZXJ2ZXJzQ29uZmlnVHlwZTtcbiAgIDE1N1x0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgeyBwcm9tcHQ6IHN0cmluZyB9PjtcbiAgIDE1OFx0ICBzdGFydGVyUHJvbXB0Rm9udFNpemU/OiBudW1iZXI7XG4gICAxNTlcdCAgY2xlYXJDaGF0T25SZWxvYWQ/OiBib29sZWFuO1xuICAgMTYwXHQgIGRpc2NsYWltZXI/OiBEaXNjbGFpbWVyUG9wVXBUaGVtZTtcbiAgIDE2MVx0ICBkYXRlVGltZVRvZ2dsZT86IERhdGVUaW1lVG9nZ2xlVGhlbWU7XG4gICAxNjJcdCAgcmVuZGVySFRNTD86IGJvb2xlYW47XG4gICAxNjNcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAxNjRcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAxNjVcdCAgaXNVc2VGQVE/OiBib29sZWFuO1xuICAgMTY2XHQgIGZpbGVQYXRoPzogc3RyaW5nO1xuICAgMTY3XHQgIHN1Z2dlc3RRdWVzdGlvbnM/OiBzdHJpbmc7XG4gICAxNjhcdCAgZXh0ZXJuYWxEYXRhPzogc3RyaW5nO1xuICAgMTY5XHQgIGNhbGxCYWNrRnVuY3Rpb24/OiAoZTogYW55KSA9PiB2b2lkO1xuICAgMTcwXHQgIGNhbGxCYWNrSWNvbj86IHN0cmluZztcbiAgIDE3MVx0fTtcbiAgIDE3Mlx0XG4gICAxNzNcdGV4cG9ydCB0eXBlIExlYWRzQ29uZmlnID0ge1xuICAgMTc0XHQgIHN0YXR1czogYm9vbGVhbjtcbiAgIDE3NVx0ICB0aXRsZT86IHN0cmluZztcbiAgIDE3Nlx0ICBuYW1lPzogYm9vbGVhbjtcbiAgIDE3N1x0ICBlbWFpbD86IGJvb2xlYW47XG4gICAxNzhcdCAgcGhvbmU/OiBib29sZWFuO1xuICAgMTc5XHQgIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nO1xuICAgMTgwXHR9O1xuLi4uXG4gICAyNjBcdFxuICAgMjYxXHQgIG9uTW91bnQoKCkgPT4ge1xuICAgMjYyXHQgICAgaWYgKGJvdFByb3BzPy5vYnNlcnZlcnNDb25maWcpIHtcbiAgIDI2M1x0ICAgICAgY29uc3QgeyBvYnNlcnZlVXNlcklucHV0LCBvYnNlcnZlTG9hZGluZywgb2JzZXJ2ZU1lc3NhZ2VzIH0gPSBib3RQcm9wcy5vYnNlcnZlcnNDb25maWc7XG4gICAyNjRcdCAgICAgIHR5cGVvZiBvYnNlcnZlVXNlcklucHV0ID09PSAnZnVuY3Rpb24nICYmXG4gICAyNjVcdCAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbGlkL3JlYWN0aXZpdHlcbiAgIDI2Nlx0ICAgICAgICBjcmVhdGVNZW1vKCgpID0+IHtcbiAgIDI2N1x0ICAgICAgICAgIG9ic2VydmVVc2VySW5wdXQodXNlcklucHV0KCkpO1xuICAgMjY4XHQgICAgICAgIH0pO1xuICAgMjY5XHQgICAgICB0eXBlb2Ygb2JzZXJ2ZUxvYWRpbmcgPT09ICdmdW5jdGlvbicgJiZcbiAgIDI3MFx0ICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29saWQvcmVhY3Rpdml0eVxuICAgMjcxXHQgICAgICAgIGNyZWF0ZU1lbW8oKCkgPT4ge1xuICAgMjcyXHQgICAgICAgICAgb2JzZXJ2ZUxvYWRpbmcobG9hZGluZygpKTtcbiAgIDI3M1x0ICAgICAgICB9KTtcbiAgIDI3NFx0ICAgICAgdHlwZW9mIG9ic2VydmVNZXNzYWdlcyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgMjc1XHQgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb2xpZC9yZWFjdGl2aXR5XG4gICAyNzZcdCAgICAgICAgY3JlYXRlTWVtbygoKSA9PiB7XG4gICAyNzdcdCAgICAgICAgICBvYnNlcnZlTWVzc2FnZXMobWVzc2FnZXMoKSk7XG4gICAyNzhcdCAgICAgICAgfSk7XG4gICAyNzlcdCAgICB9XG4gICAyODBcdFxuICAgMjgxXHQgICAgaWYgKCFib3R0b21TcGFjZXIpIHJldHVybjtcbiAgIDI4Mlx0ICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgMjgzXHQgICAgICBjaGF0Q29udGFpbmVyPy5zY3JvbGxUbygwLCBjaGF0Q29udGFpbmVyLnNjcm9sbEhlaWdodCk7XG4gICAyODRcdCAgICB9LCA1MCk7XG4gICAyODVcdCAgfSk7XG4uLi5cbiAgIDQ1N1x0XG4gICA0NThcdCAgLy8gSGFuZGxlIGVycm9yc1xuICAgNDU5XHQgIGNvbnN0IGhhbmRsZUVycm9yID0gKG1lc3NhZ2UgPSAnT29wcyEgVGhlcmUgc2VlbXMgdG8gYmUgYW4gZXJyb3IuIFBsZWFzZSB0cnkgYWdhaW4uJykgPT4ge1xuICAgNDYwXHQgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgNDYxXHQgICAgICBjb25zdCBtZXNzYWdlczogTWVzc2FnZVR5cGVbXSA9IFsuLi5wcmV2TWVzc2FnZXMsIHsgbWVzc2FnZTogcHJvcHMuZXJyb3JNZXNzYWdlIHx8IG1lc3NhZ2UsIHR5cGU6ICdhcGlNZXNzYWdlJyB9XTtcbiAgIDQ2Mlx0ICAgICAgYWRkQ2hhdE1lc3NhZ2UobWVzc2FnZXMpO1xuICAgNDYzXHQgICAgICByZXR1cm4gbWVzc2FnZXM7XG4gICA0NjRcdCAgICB9KTtcbiAgIDQ2NVx0ICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgNDY2XHQgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcbiAgIDQ2N1x0ICAgIHNldFVzZXJJbnB1dCgnJyk7XG4gICA0NjhcdCAgICBzZXRVcGxvYWRlZEZpbGVzKFtdKTtcbiAgIDQ2OVx0ICAgIHNjcm9sbFRvQm90dG9tKCk7XG4gICA0NzBcdCAgfTtcbiAgIDQ3MVx0XG4gICA0NzJcdCAgY29uc3QgaGFuZGxlRGlzY2xhaW1lckFjY2VwdCA9ICgpID0+IHtcbiAgIDQ3M1x0ICAgIHNldERpc2NsYWltZXJQb3B1cE9wZW4oZmFsc2UpOyAvLyBDbG9zZSB0aGUgZGlzY2xhaW1lciBwb3B1cFxuICAgNDc0XHQgICAgc2V0Q29va2llKCdjaGF0Ym90RGlzY2xhaW1lcicsICd0cnVlJywgMzY1KTsgLy8gRGlzY2xhaW1lciBhY2NlcHRlZFxuICAgNDc1XHQgIH07XG4gICA0NzZcdFxuICAgNDc3XHQgIGNvbnN0IHByb21wdENsaWNrID0gKHByb21wdDogc3RyaW5nKSA9PiB7XG4gICA0NzhcdCAgICBoYW5kbGVTdWJtaXQocHJvbXB0KTtcbiAgIDQ3OVx0ICB9O1xuICAgNDgwXHRcbiAgIDQ4MVx0ICBjb25zdCBmb2xsb3dVcFByb21wdENsaWNrID0gKHByb21wdDogc3RyaW5nKSA9PiB7XG4gICA0ODJcdCAgICBzZXRGb2xsb3dVcFByb21wdHMoW10pO1xuICAgNDgzXHQgICAgaGFuZGxlU3VibWl0KHByb21wdCk7XG4gICA0ODRcdCAgfTtcbi4uLlxuICAgODQ2XHRcbiAgIDg0N1x0ICAgIC8vIENhbGwgb25CZWZvcmVTZW5kIGNhbGxiYWNrIGlmIHByb3ZpZGVkXG4gICA4NDhcdCAgICBpZiAocHJvcHMub25CZWZvcmVTZW5kKSB7XG4gICA4NDlcdCAgICAgIHRyeSB7XG4gICA4NTBcdCAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcHJvcHMub25CZWZvcmVTZW5kKHZhbHVlLCBib2R5KTtcbiAgIDg1MVx0XG4gICA4NTJcdCAgICAgICAgLy8gSWYgdGhlIGNhbGxiYWNrIHJldHVybnMgY2FuY2VsOiB0cnVlLCBzdG9wIHRoZSBzdWJtaXNzaW9uXG4gICA4NTNcdCAgICAgICAgaWYgKHJlc3VsdC5jYW5jZWwpIHtcbiAgIDg1NFx0ICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgODU1XHQgICAgICAgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcbiAgIDg1Nlx0ICAgICAgICAgIHJldHVybjtcbiAgIDg1N1x0ICAgICAgICB9XG4gICA4NThcdFxuICAgODU5XHQgICAgICAgIC8vIFVwZGF0ZSB0aGUgbWVzc2FnZSBhbmQgYm9keSB3aXRoIHRoZSBtb2RpZmllZCB2YWx1ZXNcbiAgIDg2MFx0ICAgICAgICB2YWx1ZSA9IHJlc3VsdC5tZXNzYWdlO1xuICAgODYxXHQgICAgICAgIE9iamVjdC5hc3NpZ24oYm9keSwgcmVzdWx0LmJvZHkpO1xuICAgODYyXHRcbiAgIDg2M1x0ICAgICAgICAvLyBVcGRhdGUgdGhlIHVzZXIgbWVzc2FnZSBpbiB0aGUgVUkgaWYgaXQgd2FzIG1vZGlmaWVkXG4gICA4NjRcdCAgICAgICAgaWYgKHJlc3VsdC5tZXNzYWdlICE9PSB2YWx1ZSkge1xuICAgODY1XHQgICAgICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgODY2XHQgICAgICAgICAgICBjb25zdCBhbGxNZXNzYWdlcyA9IFsuLi5jbG9uZURlZXAocHJldk1lc3NhZ2VzKV07XG4gICA4NjdcdCAgICAgICAgICAgIGlmIChhbGxNZXNzYWdlc1thbGxNZXNzYWdlcy5sZW5ndGggLSAxXS50eXBlID09PSAndXNlck1lc3NhZ2UnKSB7XG4gICA4NjhcdCAgICAgICAgICAgICAgYWxsTWVzc2FnZXNbYWxsTWVzc2FnZXMubGVuZ3RoIC0gMV0ubWVzc2FnZSA9IHJlc3VsdC5tZXNzYWdlO1xuICAgODY5XHQgICAgICAgICAgICAgIGFkZENoYXRNZXNzYWdlKGFsbE1lc3NhZ2VzKTtcbiAgIDg3MFx0ICAgICAgICAgICAgfVxuICAgODcxXHQgICAgICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA4NzJcdCAgICAgICAgICB9KTtcbiAgIDg3M1x0ICAgICAgICB9XG4gICA4NzRcdCAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICA4NzVcdCAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gb25CZWZvcmVTZW5kIGNhbGxiYWNrOicsIGVycm9yKTtcbiAgIDg3Nlx0ICAgICAgICBoYW5kbGVFcnJvcignRXJyb3IgcHJvY2Vzc2luZyBtZXNzYWdlIGJlZm9yZSBzZW5kJyk7XG4gICA4NzdcdCAgICAgICAgcmV0dXJuO1xuICAgODc4XHQgICAgICB9XG4gICA4NzlcdCAgICB9XG4gICA4ODBcdFxuICAgODgxXHQgICAgLy8gQ2hlY2sgbmV0d29yayBzdGF0dXMgYmVmb3JlIG1ha2luZyB0aGUgcmVxdWVzdFxuICAgODgyXHQgICAgaWYgKCFuYXZpZ2F0b3Iub25MaW5lKSB7XG4gICA4ODNcdCAgICAgIHNldElzTmV0d29ya0Vycm9yKHRydWUpO1xuICAgODg0XHQgICAgICBzZXROZXR3b3JrRXJyb3JNZXNzYWdlKCdN4bqldCBr4bq/dCBu4buRaSBt4bqhbmcnKTtcbiAgIDg4NVx0ICAgICAgc2V0TWVzc2FnZXMoKHByZXZNZXNzYWdlcykgPT4ge1xuICAgODg2XHQgICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gWy4uLmNsb25lRGVlcChwcmV2TWVzc2FnZXMpXTtcbiAgIDg4N1x0ICAgICAgICBhbGxNZXNzYWdlcy5wdXNoKHtcbiAgIDg4OFx0ICAgICAgICAgIG1lc3NhZ2U6ICdYaW4gbOG7l2ksIGhp4buHbiB04bqhaSBraMO0bmcgY8OzIGvhur90IG7hu5FpIG3huqFuZy4gVnVpIGzDsm5nIGtp4buDbSB0cmEgbOG6oWkga+G6v3QgbuG7kWkgdsOgIHRo4butIGzhuqFpIHNhdS4nLFxuICAgODg5XHQgICAgICAgICAgdHlwZTogJ2FwaU1lc3NhZ2UnLFxuICAgODkwXHQgICAgICAgICAgZGF0ZVRpbWU6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgIDg5MVx0ICAgICAgICB9KTtcbiAgIDg5Mlx0ICAgICAgICByZXR1cm4gYWxsTWVzc2FnZXM7XG4gICA4OTNcdCAgICAgIH0pO1xuICAgODk0XHQgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgIDg5NVx0ICAgICAgc2V0RGlzYWJsZUlucHV0KGZhbHNlKTtcbiAgIDg5Nlx0ICAgICAgcmV0dXJuO1xuICAgODk3XHQgICAgfVxuLi4uXG5QYXRoOiBzcmMvY29uc3RhbnRzLnRzXG4gICAgIDFcdC8vIE5vdGU6IFVzaW5nIGlubGluZSB0eXBlIGRlZmluaXRpb24gdG8gYXZvaWQgSlNYIGNvbXBpbGF0aW9uIGlzc3Vlc1xuICAgICAyXHQvLyBUaGlzIG1hdGNoZXMgQnViYmxlUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcyBmcm9tIHRoZSBvcmlnaW5hbCBjb2RlYmFzZVxuICAgICAzXHR0eXBlIEJ1YmJsZVByb3BzID0ge1xuICAgICA0XHQgIC8vIENvcmUgQm90IHByb3BlcnRpZXNcbiAgICAgNVx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDZcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgN1x0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDhcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgOVx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICAxMFx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgIDExXHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICAxMlx0ICBib3RNZXNzYWdlPzogYW55O1xuICAgIDEzXHQgIHVzZXJNZXNzYWdlPzogYW55O1xuICAgIDE0XHQgIHRleHRJbnB1dD86IGFueTtcbiAgICAxNVx0ICBmZWVkYmFjaz86IGFueTtcbiAgICAxNlx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTdcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMThcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE5XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgICAyMFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIDIxXHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgICAyMlx0ICB0aXRsZT86IHN0cmluZztcbiAgICAyM1x0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgICAyNFx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAyNVx0ICBpc0Z1bGxQYWdlPzogYm9vbGVhbjtcbiAgICAyNlx0ICBmb290ZXI/OiBhbnk7XG4gICAgMjdcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuLi4uXG4gICAgNDdcdFxuICAgIDQ4XHQvKipcbiAgICA0OVx0ICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhdGJvdCBidWJibGUgY29tcG9uZW50LlxuICAgIDUwXHQgKiBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXMgd2hpbGUga2VlcGluZ1xuICAgIDUxXHQgKiByZXF1aXJlZCBwcm9wZXJ0aWVzIGV4cGxpY2l0bHkgdW5kZWZpbmVkIHRvIGVuZm9yY2UgcHJvcGVyIGNvbmZpZ3VyYXRpb24uXG4gICAgNTJcdCAqL1xuICAgIDUzXHRleHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgICA1NFx0ICAvLyBDb3JlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gLSBtdXN0IGJlIHNldCBieSBpbXBsZW1lbnRlclxuICAgIDU1XHQgIGNoYXRmbG93aWQ6ICcnLFxuICAgIDU2XHRcbiAgICA1N1x0ICAvLyBBUEkgY29uZmlndXJhdGlvblxuICAgIDU4XHQgIGFwaUhvc3Q6IHVuZGVmaW5lZCxcbiAgICA1OVx0ICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgICA2MFx0ICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDYxXHRcbiAgICA2Mlx0ICAvLyBVSSB0aGVtaW5nIGFuZCBjdXN0b21pemF0aW9uXG4gICAgNjNcdCAgdGhlbWU6IHVuZGVmaW5lZCxcbiAgICA2NFx0XG4gICAgNjVcdCAgLy8gRXh0ZXJuYWwgaW50ZWdyYXRpb25zXG4gICAgNjZcdCAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcbiAgICA2N1x0ICByb29tSWRzOiB7fSxcbiAgICA2OFx0XG4gICAgNjlcdCAgLy8gRmVhdHVyZSBmbGFncyBhbmQgb3B0aW9uYWwgZnVuY3Rpb25hbGl0eVxuICAgIDcwXHQgIGlzVXNlRkFROiBmYWxzZSxcbiAgICA3MVx0XG4gICAgNzJcdCAgLy8gRmlsZSBhbmQgY29udGVudCBjb25maWd1cmF0aW9uXG4gICAgNzNcdCAgZmlsZVBhdGg6ICcnLFxuICAgIDc0XHQgIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxuICAgIDc1XHQgIGV4dGVybmFsRGF0YTogJycsXG4gICAgNzZcdCAgY2FsbEJhY2tJY29uOiAnJyxcbiAgICA3N1x0ICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG4uLi5cblBhdGg6IHNyYy9GdWxsUGFnZUNoYXQudHN4XG4gICAgIDFcdGltcG9ydCB0eXBlIHsgQm90UHJvcHMgfSBmcm9tICdjbWN0cy1jLWFnZW50LWVtYmVkZGluZydcbiAgICAgMlx0aW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCb3RQcm9wcyAmIHtcbiAgICAgNVx0ICBzdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXNcbiAgICAgNlx0ICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgICAgN1x0fVxuICAgICA4XHRcbiAgICAgOVx0ZGVjbGFyZSBnbG9iYWwge1xuICAgIDEwXHQgIG5hbWVzcGFjZSBKU1gge1xuICAgIDExXHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAxMlx0ICAgICAgJ2Zsb3dpc2UtZnVsbGNoYXRib3QnOiBSZWFjdC5EZXRhaWxlZEhUTUxQcm9wczxcbiAgICAxM1x0ICAgICAgICBSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRWxlbWVudD4sXG4gICAgMTRcdCAgICAgICAgSFRNTEVsZW1lbnRcbiAgICAxNVx0ICAgICAgPiAmIHsgY2xhc3M/OiBzdHJpbmcgfVxuICAgIDE2XHQgICAgfVxuICAgIDE3XHQgIH1cbiAgICAxOFx0fVxuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9idWJibGVzL0FnZW50UmVhc29uaW5nQnViYmxlLnRzeFxuICAgICAxXHRpbXBvcnQgeyBGb3IsIG9uTW91bnQgfSBmcm9tICdzb2xpZC1qcyc7XG4gICAgIDJcdGltcG9ydCB7IE1hcmtlZCB9IGZyb20gJ0B0cy1zdGFjay9tYXJrZG93bic7XG4gICAgIDNcdGltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICcuLi9Cb3QnO1xuICAgICA0XHRpbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuICAgICA1XHRcbiAgICAgNlx0dHlwZSBQcm9wcyA9IHtcbiAgICAgN1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgICA4XHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAgOVx0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAxMFx0ICBhZ2VudE5hbWU6IHN0cmluZztcbiAgICAxMVx0ICBhZ2VudE1lc3NhZ2U6IHN0cmluZztcbiAgICAxMlx0ICBhZ2VudEFydGlmYWN0cz86IEZpbGVVcGxvYWRbXTtcbiAgICAxM1x0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgMTRcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIGZvbnRTaXplPzogbnVtYmVyO1xuICAgIDE2XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDE3XHR9O1xuICAgIDE4XHRcbiAgICAxOVx0Y29uc3QgZGVmYXVsdEJhY2tncm91bmRDb2xvciA9ICcjZjdmOGZmJztcbiAgICAyMFx0Y29uc3QgZGVmYXVsdFRleHRDb2xvciA9ICcjMzAzMjM1JztcbiAgICAyMVx0Y29uc3QgZGVmYXVsdEZvbnRTaXplID0gMTY7XG4uLi5cblBhdGg6IHNyYy93aW5kb3cudHNcbiAgICAgMVx0aW1wb3J0IHsgb2JzZXJ2ZXJzQ29uZmlnVHlwZSB9IGZyb20gJy4vY29tcG9uZW50cy9Cb3QnO1xuICAgICAyXHRpbXBvcnQgeyBCdWJibGVUaGVtZSB9IGZyb20gJy4vZmVhdHVyZXMvYnViYmxlL3R5cGVzJztcbiAgICAgM1x0XG4gICAgIDRcdC8qIGVzbGludC1kaXNhYmxlIHNvbGlkL3JlYWN0aXZpdHkgKi9cbiAgICAgNVx0dHlwZSBCb3RQcm9wcyA9IHtcbiAgICAgNlx0ICBjaGF0Zmxvd2lkOiBzdHJpbmc7XG4gICAgIDdcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgICAgOFx0ICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgIDlcdCAgY2hhdGZsb3dDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAxMFx0ICBvYnNlcnZlcnNDb25maWc/OiBvYnNlcnZlcnNDb25maWdUeXBlO1xuICAgIDExXHQgIHRoZW1lPzogQnViYmxlVGhlbWU7XG4gICAgMTJcdCAgY2hhdHdvb3RVcmw/OiBzdHJpbmc7XG4gICAgMTNcdCAgcm9vbUlkcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgMTRcdCAgaXNVc2VGQVE/OiB1bmRlZmluZWQ7XG4gICAgMTVcdH07XG4uLi5cblBhdGg6IHNyYy9CdWJibGVDaGF0LnRzeFxuICAgICAxXHRpbXBvcnQgdHlwZSB7IEJ1YmJsZVByb3BzIH0gZnJvbSAnY21jdHMtYy1hZ2VudC1lbWJlZGRpbmcnXG4gICAgIDJcdGltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbiAgICAgM1x0XG4gICAgIDRcdHR5cGUgUHJvcHMgPSBCdWJibGVQcm9wc1xuICAgICA1XHRcbiAgICAgNlx0ZGVjbGFyZSBnbG9iYWwge1xuICAgICA3XHQgIG5hbWVzcGFjZSBKU1gge1xuICAgICA4XHQgICAgaW50ZXJmYWNlIEludHJpbnNpY0VsZW1lbnRzIHtcbiAgICAgOVx0ICAgICAgJ2Zsb3dpc2UtY2hhdGJvdCc6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIDEwXHQgICAgICAgIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PixcbiAgICAxMVx0ICAgICAgICBIVE1MRWxlbWVudFxuICAgIDEyXHQgICAgICA+XG4gICAgMTNcdCAgICB9XG4gICAgMTRcdCAgfVxuICAgIDE1XHR9XG4gICAgMTZcdFxuICAgIDE3XHR0eXBlIEJ1YmJsZUVsZW1lbnQgPSBIVE1MRWxlbWVudCAmIFByb3BzXG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL2J1YmJsZXMvR3Vlc3RCdWJibGUudHN4XG4gICAgIDFcdGltcG9ydCB7IEZvciwgU2hvdywgb25Nb3VudCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHsgQXZhdGFyIH0gZnJvbSAnLi4vYXZhdGFycy9BdmF0YXInO1xuICAgICAzXHRpbXBvcnQgeyBNYXJrZWQgfSBmcm9tICdAdHMtc3RhY2svbWFya2Rvd24nO1xuICAgICA0XHRpbXBvcnQgeyBGaWxlVXBsb2FkLCBNZXNzYWdlVHlwZSB9IGZyb20gJy4uL0JvdCc7XG4gICAgIDVcdGltcG9ydCB7IEF0dGFjaG1lbnRJY29uIH0gZnJvbSAnLi4vaWNvbnMnO1xuICAgICA2XHRcbiAgICAgN1x0dHlwZSBQcm9wcyA9IHtcbiAgICAgOFx0ICBtZXNzYWdlOiBNZXNzYWdlVHlwZTtcbiAgICAgOVx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDEwXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgICAxMVx0ICBjaGF0SWQ6IHN0cmluZztcbiAgICAxMlx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAxM1x0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMTRcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDE1XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAxNlx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAxN1x0ICByZW5kZXJIVE1MPzogYm9vbGVhbjtcbiAgICAxOFx0fTtcbiAgICAxOVx0XG4gICAgMjBcdGNvbnN0IGRlZmF1bHRCYWNrZ3JvdW5kQ29sb3IgPSAnIzNCODFGNic7XG4gICAgMjFcdGNvbnN0IGRlZmF1bHRUZXh0Q29sb3IgPSAnI2ZmZmZmZic7XG4gICAgMjJcdGNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IDE2O1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvYnViYmxlL2NvbXBvbmVudHMvQnViYmxlQnV0dG9uLnRzeFxuICAgICAxXHRpbXBvcnQgeyBjcmVhdGVTaWduYWwsIGNyZWF0ZUVmZmVjdCwgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHsgaXNOb3REZWZpbmVkLCBnZXRCdWJibGVCdXR0b25TaXplIH0gZnJvbSAnQC91dGlscy9pbmRleCc7XG4gICAgIDNcdGltcG9ydCB7IEJ1dHRvblRoZW1lIH0gZnJvbSAnLi4vdHlwZXMnO1xuICAgICA0XHRcbiAgICAgNVx0dHlwZSBQcm9wcyA9IEJ1dHRvblRoZW1lICYge1xuICAgICA2XHQgIGlzQm90T3BlbmVkOiBib29sZWFuO1xuICAgICA3XHQgIHRvZ2dsZUJvdDogKCkgPT4gdm9pZDtcbiAgICAgOFx0ICBzZXRCdXR0b25Qb3NpdGlvbjogKHBvc2l0aW9uOiB7IGJvdHRvbTogbnVtYmVyOyByaWdodDogbnVtYmVyIH0pID0+IHZvaWQ7XG4gICAgIDlcdCAgZHJhZ0FuZERyb3A6IGJvb2xlYW47XG4gICAgMTBcdCAgYXV0b09wZW4/OiBib29sZWFuOyAvLyBPcHRpb25hbCBwYXJhbWV0ZXIgdG8gY29udHJvbCBhdXRvbWF0aWMgd2luZG93IG9wZW5pbmdcbiAgICAxMVx0ICBvcGVuRGVsYXk/OiBudW1iZXI7IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3IgZGVsYXkgdGltZSBpbiBzZWNvbmRzXG4gICAgMTJcdCAgYXV0b09wZW5Pbk1vYmlsZT86IGJvb2xlYW47IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3Igb3BlbmluZyBvbiBtb2JpbGVcbiAgICAxM1x0fTtcbiAgICAxNFx0XG4gICAgMTVcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAxNlx0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgMTdcdGNvbnN0IGRlZmF1bHRCb3R0b20gPSAyMDtcbiAgICAxOFx0Y29uc3QgZGVmYXVsdFJpZ2h0ID0gMjA7XG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9idWJibGUvdHlwZXMudHNcbiAgICAgMVx0ZXhwb3J0IHR5cGUgQnViYmxlUGFyYW1zID0ge1xuICAgICAyXHQgIHRoZW1lPzogQnViYmxlVGhlbWU7XG4gICAgIDNcdH07XG4gICAgIDRcdFxuICAgICA1XHRleHBvcnQgdHlwZSBCdWJibGVUaGVtZSA9IHtcbiAgICAgNlx0ICBjaGF0V2luZG93PzogQ2hhdFdpbmRvd1RoZW1lO1xuICAgICA3XHQgIGJ1dHRvbj86IEJ1dHRvblRoZW1lO1xuICAgICA4XHQgIHRvb2x0aXA/OiBUb29sVGlwVGhlbWU7XG4gICAgIDlcdCAgZGlzY2xhaW1lcj86IERpc2NsYWltZXJQb3BVcFRoZW1lO1xuICAgIDEwXHQgIGN1c3RvbUNTUz86IHN0cmluZztcbiAgICAxMVx0fTtcbiAgICAxMlx0XG4gICAgMTNcdGV4cG9ydCB0eXBlIFRleHRJbnB1dFRoZW1lID0ge1xuICAgIDE0XHQgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgICAxNVx0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgMTZcdCAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgMTdcdCAgc2VuZEJ1dHRvbkNvbG9yPzogc3RyaW5nO1xuICAgIDE4XHQgIG1heENoYXJzPzogbnVtYmVyO1xuICAgIDE5XHQgIG1heENoYXJzV2FybmluZ01lc3NhZ2U/OiBzdHJpbmc7XG4gICAgMjBcdCAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgICAyMVx0ICBzZW5kTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyMlx0ICBzZW5kU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyM1x0ICByZWNlaXZlTWVzc2FnZVNvdW5kPzogYm9vbGVhbjtcbiAgICAyNFx0ICByZWNlaXZlU291bmRMb2NhdGlvbj86IHN0cmluZztcbiAgICAyNVx0fTtcbiAgICAyNlx0XG4gICAgMjdcdGV4cG9ydCB0eXBlIFVzZXJNZXNzYWdlVGhlbWUgPSB7XG4gICAgMjhcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDI5XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzMFx0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAzMVx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMzJcdH07XG4gICAgMzNcdFxuICAgIDM0XHRleHBvcnQgdHlwZSBCb3RNZXNzYWdlVGhlbWUgPSB7XG4gICAgMzVcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDM2XHQgIHRleHRDb2xvcj86IHN0cmluZztcbiAgICAzN1x0ICBzaG93QXZhdGFyPzogYm9vbGVhbjtcbiAgICAzOFx0ICBhdmF0YXJTcmM/OiBzdHJpbmc7XG4gICAgMzlcdH07XG4gICAgNDBcdFxuICAgIDQxXHRleHBvcnQgdHlwZSBGb290ZXJUaGVtZSA9IHtcbiAgICA0Mlx0ICBzaG93Rm9vdGVyPzogYm9vbGVhbjtcbiAgICA0M1x0ICB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAgNDRcdCAgdGV4dD86IHN0cmluZztcbiAgICA0NVx0ICBjb21wYW55Pzogc3RyaW5nO1xuICAgIDQ2XHQgIGNvbXBhbnlMaW5rPzogc3RyaW5nO1xuICAgIDQ3XHR9O1xuICAgIDQ4XHRcbiAgICA0OVx0ZXhwb3J0IHR5cGUgRmVlZGJhY2tUaGVtZSA9IHtcbiAgICA1MFx0ICBjb2xvcj86IHN0cmluZztcbiAgICA1MVx0fTtcbiAgICA1Mlx0XG4gICAgNTNcdGV4cG9ydCB0eXBlIENoYXRXaW5kb3dUaGVtZSA9IHtcbiAgICA1NFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgIDU1XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjsgLy8gcGFyYW1ldGVyIHRvIHNob3cgYWdlbnQgcmVhc29uaW5ncyB3aGVuIHVzaW5nIGFnZW50Zmxvd3NcbiAgICA1Nlx0ICB0aXRsZT86IHN0cmluZztcbiAgICA1N1x0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgICA1OFx0ICB3ZWxjb21lTWVzc2FnZT86IHN0cmluZztcbiAgICA1OVx0ICBzZWNvbmRNZXNzYWdlPzogc3RyaW5nO1xuICAgIDYwXHQgIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgICA2MVx0ICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgNjJcdCAgYmFja2dyb3VuZEltYWdlPzogc3RyaW5nO1xuICAgIDYzXHQgIGhlaWdodD86IG51bWJlcjtcbiAgICA2NFx0ICB3aWR0aD86IG51bWJlcjtcbiAgICA2NVx0ICBmb250U2l6ZT86IG51bWJlcjtcbiAgICA2Nlx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAgNjdcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgICA2OFx0ICB0ZXh0SW5wdXQ/OiBUZXh0SW5wdXRUaGVtZTtcbiAgICA2OVx0ICBmZWVkYmFjaz86IEZlZWRiYWNrVGhlbWU7XG4gICAgNzBcdCAgZm9vdGVyPzogRm9vdGVyVGhlbWU7XG4gICAgNzFcdCAgc291cmNlRG9jc1RpdGxlPzogc3RyaW5nO1xuICAgIDcyXHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgICA3M1x0ICBzdGFydGVyUHJvbXB0cz86IHN0cmluZ1tdO1xuICAgIDc0XHQgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT86IG51bWJlcjtcbiAgICA3NVx0ICBjbGVhckNoYXRPblJlbG9hZD86IGJvb2xlYW47XG4gICAgNzZcdCAgZGF0ZVRpbWVUb2dnbGU/OiBEYXRlVGltZVRvZ2dsZVRoZW1lO1xuICAgIDc3XHQgIHJlbmRlckhUTUw/OiBib29sZWFuO1xuICAgIDc4XHR9O1xuICAgIDc5XHRcbiAgICA4MFx0ZXhwb3J0IHR5cGUgQnV0dG9uVGhlbWUgPSB7XG4gICAgODFcdCAgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCBudW1iZXI7IC8vIGN1c3RvbSBzaXplIG9mIGNoYXRib3QgaW4gcGl4ZWxzXG4gICAgODJcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIDgzXHQgIGljb25Db2xvcj86IHN0cmluZztcbiAgICA4NFx0ICBjdXN0b21JY29uU3JjPzogc3RyaW5nO1xuICAgIDg1XHQgIGJvdHRvbT86IG51bWJlcjtcbiAgICA4Nlx0ICByaWdodD86IG51bWJlcjtcbiAgICA4N1x0ICBkcmFnQW5kRHJvcD86IGJvb2xlYW47IC8vIHBhcmFtZXRlciB0byBlbmFibGUgZHJhZyBhbmQgZHJvcCh0cnVlIG9yIGZhbHNlKVxuICAgIDg4XHQgIGF1dG9XaW5kb3dPcGVuPzogYXV0b1dpbmRvd09wZW5UaGVtZTtcbiAgICA4OVx0fTtcbiAgICA5MFx0XG4gICAgOTFcdGV4cG9ydCB0eXBlIFRvb2xUaXBUaGVtZSA9IHtcbiAgICA5Mlx0ICBzaG93VG9vbHRpcD86IGJvb2xlYW47IC8vIHBhcmFtZXRlciB0byBlbmFibGUgdG9vbHRpcCh0cnVlIG9yIGZhbHNlKVxuICAgIDkzXHQgIHRvb2x0aXBNZXNzYWdlPzogc3RyaW5nO1xuICAgIDk0XHQgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgOTVcdCAgdG9vbHRpcFRleHRDb2xvcj86IHN0cmluZztcbiAgICA5Nlx0ICB0b29sdGlwRm9udFNpemU/OiBudW1iZXI7XG4gICAgOTdcdH07XG4gICAgOThcdFxuICAgIDk5XHRleHBvcnQgdHlwZSBhdXRvV2luZG93T3BlblRoZW1lID0ge1xuICAgMTAwXHQgIGF1dG9PcGVuPzogYm9vbGVhbjsgLy9wYXJhbWV0ZXIgdG8gY29udHJvbCBhdXRvbWF0aWMgd2luZG93IG9wZW5pbmdcbiAgIDEwMVx0ICBvcGVuRGVsYXk/OiBudW1iZXI7IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3IgZGVsYXkgdGltZSBpbiBzZWNvbmRzXG4gICAxMDJcdCAgYXV0b09wZW5Pbk1vYmlsZT86IGJvb2xlYW47IC8vIE9wdGlvbmFsIHBhcmFtZXRlciBmb3Igb3BlbmluZyBvbiBtb2JpbGVcbiAgIDEwM1x0fTtcbiAgIDEwNFx0XG4gICAxMDVcdGV4cG9ydCB0eXBlIERpc2NsYWltZXJQb3BVcFRoZW1lID0ge1xuICAgMTA2XHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTA3XHQgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMDhcdCAgdGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTA5XHQgIGJ1dHRvbkNvbG9yPzogc3RyaW5nO1xuICAgMTEwXHQgIGJ1dHRvblRleHRDb2xvcj86IHN0cmluZztcbiAgIDExMVx0ICBidXR0b25UZXh0Pzogc3RyaW5nO1xuICAgMTEyXHQgIGJsdXJyZWRCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxMTNcdCAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTE0XHR9O1xuICAgMTE1XHRcbiAgIDExNlx0ZXhwb3J0IHR5cGUgRGF0ZVRpbWVUb2dnbGVUaGVtZSA9IHtcbiAgIDExN1x0ICBkYXRlPzogYm9vbGVhbjtcbiAgIDExOFx0ICB0aW1lPzogYm9vbGVhbjtcbiAgIDExOVx0fTtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2J1YmJsZS9jb21wb25lbnRzL0J1YmJsZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBTaG93LCBzcGxpdFByb3BzLCBvbkNsZWFudXAsIGNyZWF0ZUVmZmVjdCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgMlx0aW1wb3J0IHN0eWxlcyBmcm9tICcuLi8uLi8uLi9hc3NldHMvaW5kZXguY3NzJztcbiAgICAgM1x0aW1wb3J0IHsgQnViYmxlQnV0dG9uIH0gZnJvbSAnLi9CdWJibGVCdXR0b24nO1xuICAgICA0XHRpbXBvcnQgeyBCdWJibGVQYXJhbXMgfSBmcm9tICcuLi90eXBlcyc7XG4gICAgIDVcdGltcG9ydCB7IEJvdCwgQm90UHJvcHMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0JvdCc7XG4gICAgIDZcdGltcG9ydCBUb29sdGlwIGZyb20gJy4vVG9vbHRpcCc7XG4gICAgIDdcdGltcG9ydCB7IGdldEJ1YmJsZUJ1dHRvblNpemUgfSBmcm9tICdAL3V0aWxzJztcbiAgICAgOFx0XG4gICAgIDlcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAxMFx0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgMTFcdFxuICAgIDEyXHRleHBvcnQgdHlwZSBCdWJibGVQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zO1xuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9CYWRnZS50c3hcbiAgICAgMVx0aW1wb3J0IHsgRm9vdGVyVGhlbWUgfSBmcm9tICdAL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgIDJcdGltcG9ydCB7IFNob3csIG9uQ2xlYW51cCwgb25Nb3VudCB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgM1x0XG4gIC4uLiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sIjZlYTMzNzMwLTNjMDctNDA3Ni1iOTdlLTc4YThkMDE5M2Y0Mzt0b29sdV92cnR4XzAxUGZDaVMydVJhMVB2NjlKRVM1SkExWSI6eyJyZXF1ZXN0SWQiOiI2ZWEzMzczMC0zYzA3LTQwNzYtYjk3ZS03OGE4ZDAxOTNmNDMiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxUGZDaVMydVJhMVB2NjlKRVM1SkExWSIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkhlcmUgYXJlIHRoZSByZXN1bHRzIGZyb20gZXhlY3V0aW5nIHRoZSBjb21tYW5kLlxuICAgICAgICA8cmV0dXJuLWNvZGU+XG4gICAgICAgIDFcbiAgICAgICAgPC9yZXR1cm4tY29kZT5cbiAgICAgICAgPHN0ZG91dD5cbiAgICAgICAgXHUwMDFiWz85MDAxaFx1MDAxYls/MTAwNGhcdTAwMWJbPzI1bFx1MDAxYlsySlx1MDAxYlttXHUwMDFiW0hcblxuXG5cblxuXG5cblx1MDAxYltIXHUwMDFiXTA7QzpcXFdJTkRPV1NcXFN5c3RlbTMyXFxXaW5kb3dzUG93ZXJTaGVsbFxcdjEuMFxccG93ZXJzaGVsbC5leGVcdTAwMDdcdTAwMWJbPzI1aFx1MDAxYls/MjVsXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMVx1MDAxYlttOlx1MDAxYls5M20yNCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDc6IFx1MDAxYlttQ2Fubm90IGZpbmQgbW9kdWxlICdAL2NvbXBvbmVudHMvYXZhdGFycy9BdmF0YXInIG9yIGl0cyBjb3JyZXNwb25kaW5nIHR5cGUgZGVjbGFyYXRpb25zLlx1MDAxYls3bVx1MDAxYlszOzFIMVx1MDAxYlsyN20gaW1wb3J0IHsgQXZhdGFyIH0gZnJvbSAnQC9jb21wb25lbnRzL2F2YXRhcnMvQXZhdGFyJztcdTAwMWJbN21cbiBcdTAwMWJbMjdtXHUwMDFiWzI0WFx1MDAxYls5MW1cdTAwMWJbMjRDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbOTZtXHUwMDFiWzY7MUhzcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTJcdTAwMWJbbTpcdTAwMWJbOTNtMzggXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA3OiBcdTAwMWJbbUNhbm5vdCBmaW5kIG1vZHVsZSAnQC9jb21wb25lbnRzL2J1YmJsZXMvRm9sbG93VXBQcm9tcHRCdWJibGUnIG9yIGl0cyBjb3JyZXNwb25kaW5nIHR5cGUgZGVjbGFyYXRpb25zLlx1MDAxYls3bVx1MDAxYls4OzFIMlx1MDAxYlsyN20gaW1wb3J0IHsgRm9sbG93VXBQcm9tcHRCdWJibGUgfSBmcm9tICdAL2NvbXBvbmVudHMvYnViYmxlcy9Gb2xsb3dVcFByb21wdEJ1YmJsZSc7XG5cdTAwMWJbPzI1aFxuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMzhYXHUwMDFiWzkxbVx1MDAxYlszOEN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTNcdTAwMWJbbTpcdTAwMWJbOTNtMzUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA3OiBcdTAwMWJbbUNhbm5vdCBmaW5kIG1vZHVsZSAnQC9jb21wb25lbnRzL2J1YmJsZXMvTGVhZENhcHR1cmVCdWJibGUnIG9yIGl0cyBjb3JyZXNwb25kaW5nIHR5cGUgZGVjbGFyYXRpb25zLlx1MDAxYltLXG5cblx1MDAxYls3bTNcdTAwMWJbMjdtIGltcG9ydCB7IExlYWRDYXB0dXJlQnViYmxlIH0gZnJvbSAnQC9jb21wb25lbnRzL2J1YmJsZXMvTGVhZENhcHR1cmVCdWJibGUnO1x1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlszNVhcdTAwMWJbOTFtXHUwMDFiWzM1Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtNFx1MDAxYlttOlx1MDAxYls5M200MiBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDc6IFx1MDAxYlttQ2Fubm90IGZpbmQgbW9kdWxlICdAL2NvbXBvbmVudHMvYnV0dG9ucy9TZW5kQnV0dG9uJyBvciBpdHMgY29ycmVzcG9uZGluZyB0eXBlIGRlY2xhcmF0aW9ucy5cdTAwMWJbS1xuXG5cdTAwMWJbN200XHUwMDFiWzI3bSBpbXBvcnQgeyBEZWxldGVCdXR0b24sIFNlbmRCdXR0b24gfSBmcm9tICdAL2NvbXBvbmVudHMvYnV0dG9ucy9TZW5kQnV0dG9uJztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbNDJYXHUwMDFiWzkxbVx1MDAxYls0MkN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYlttOlx1MDAxYls5M20yOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDc6IFx1MDAxYlttQ2Fubm90IGZpbmQgbW9kdWxlICdAL2NvbXBvbmVudHMvaW5wdXRzL3RleHRJbnB1dC9jb21wb25lbnRzL0ZpbGVQcmV2aWV3JyBvciBpdHMgY29ycmVzcG9uZGluZyB0eXBlIGRlY2xhcmF0aW9ucy5cdTAwMWJbS1xuXG5cdTAwMWJbN201XHUwMDFiWzI3bSBpbXBvcnQgeyBGaWxlUHJldmlldyB9IGZyb20gJ0AvY29tcG9uZW50cy9pbnB1dHMvdGV4dElucHV0L2NvbXBvbmVudHMvRmlsZVByZXZpZXcnO1x1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsyOVhcdTAwMWJbOTFtXHUwMDFiWzI5Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNFx1MDAxYlttOlx1MDAxYls5M204IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjMwNzogXHUwMDFiW21DYW5ub3QgZmluZCBtb2R1bGUgJ0AvZmVhdHVyZXMvYnViYmxlL3R5cGVzJyBvciBpdHMgY29ycmVzcG9uZGluZyB0eXBlIGRlY2xhcmF0aW9ucy5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNFx1MDAxYlsyN20gfSBmcm9tICdAL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bSAgICAgICAgXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTVcdTAwMWJbbTpcdTAwMWJbOTNtNDAgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA3OiBcdTAwMWJbbUNhbm5vdCBmaW5kIG1vZHVsZSAnQC9mZWF0dXJlcy9wb3B1cCcgb3IgaXRzIGNvcnJlc3BvbmRpbmcgdHlwZSBkZWNsYXJhdGlvbnMuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTVcdTAwMWJbMjdtIGltcG9ydCB7IERpc2NsYWltZXJQb3B1cCwgUG9wdXAgfSBmcm9tICdAL2ZlYXR1cmVzL3BvcHVwJztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzQwWFx1MDAxYls5MW1cdTAwMWJbNDBDfn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTI2XHUwMDFiW206XHUwMDFiWzkzbTggXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA3OiBcdTAwMWJbbUNhbm5vdCBmaW5kIG1vZHVsZSAnQC9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnknIG9yIGl0cyBjb3JyZXNwb25kaW5nIHR5cGUgZGVjbGFyYXRpb25zLlx1MDAxYltLXG5cblx1MDAxYls3bTI2XHUwMDFiWzI3bSB9IGZyb20gJ0AvcXVlcmllcy9zZW5kTWVzc2FnZVF1ZXJ5JztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtICAgICAgICBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yN1x1MDAxYlttOlx1MDAxYls5M20xMTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA3OiBcdTAwMWJbbUNhbm5vdCBmaW5kIG1vZHVsZSAnQC91dGlscycgb3IgaXRzIGNvcnJlc3BvbmRpbmcgdHlwZSBkZWNsYXJhdGlvbnMuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjdcdTAwMWJbMjdtIGltcG9ydCB7IGdldENvb2tpZSwgZ2V0TG9jYWxTdG9yYWdlQ2hhdGZsb3csIHJlbW92ZUxvY2FsU3RvcmFnZUNoYXRIaXN0b3J5LCBzZXRDb29raWUsIHNldExvY2FsU3RvcmFnZUNoYXRmbG93IH0gZnJvbSAnQC91dGlscyc7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bVx1MDAxYlsxMTlYXHUwMDFiWzkxbVx1MDAxYlsxMTlDfn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTI4XHUwMDFiW206XHUwMDFiWzkzbTc5IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjMwNzogXHUwMDFiW21DYW5ub3QgZmluZCBtb2R1bGUgJ0AvdXRpbHMvYXVkaW9SZWNvcmRpbmcnIG9yIGl0cyBjb3JyZXNwb25kaW5nIHR5cGUgZGVjbGFyYXRpb25zLlx1MDAxYltLXG5cblx1MDAxYls3bTI4XHUwMDFiWzI3bSBpbXBvcnQgeyBjYW5jZWxBdWRpb1JlY29yZGluZywgc3RhcnRBdWRpb1JlY29yZGluZywgc3RvcEF1ZGlvUmVjb3JkaW5nIH0gZnJvbSAnQC91dGlscy9hdWRpb1JlY29yZGluZyc7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bVx1MDAxYls3OVhcdTAwMWJbOTFtXHUwMDFiWzc5Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20zM1x1MDAxYlttOlx1MDAxYls5M20yMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL0JhZGdlJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9CYWRnZS50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTMzXHUwMDFiWzI3bSBpbXBvcnQgeyBCYWRnZSB9IGZyb20gJy4vQmFkZ2UnO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMjNYXHUwMDFiWzkxbVx1MDAxYlsyM0N+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMzRcdTAwMWJbbTpcdTAwMWJbOTNtMjcgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9idWJibGVzL0JvdEJ1YmJsZScgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvYnViYmxlcy9Cb3RCdWJibGUudHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN20zNFx1MDAxYlsyN20gaW1wb3J0IHsgQm90QnViYmxlIH0gZnJvbSAnLi9idWJibGVzL0JvdEJ1YmJsZSc7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bVx1MDAxYlsyN1hcdTAwMWJbOTFtXHUwMDFiWzI3Q35+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20zNVx1MDAxYlttOlx1MDAxYls5M20yOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL2J1YmJsZXMvR3Vlc3RCdWJibGUnIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2J1YmJsZXMvR3Vlc3RCdWJibGUudHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN20zNVx1MDAxYlsyN20gaW1wb3J0IHsgR3Vlc3RCdWJibGUgfSBmcm9tICcuL2J1YmJsZXMvR3Vlc3RCdWJibGUnO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMjlYXHUwMDFiWzkxbVx1MDAxYlsyOUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20zNlx1MDAxYlttOlx1MDAxYls5M20zMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL2J1YmJsZXMvTG9hZGluZ0J1YmJsZScgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvYnViYmxlcy9Mb2FkaW5nQnViYmxlLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMzZcdTAwMWJbMjdtIGltcG9ydCB7IExvYWRpbmdCdWJibGUgfSBmcm9tICcuL2J1YmJsZXMvTG9hZGluZ0J1YmJsZSc7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bVx1MDAxYlszMVhcdTAwMWJbOTFtXHUwMDFiWzMxQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMzdcdTAwMWJbbTpcdTAwMWJbOTNtMzcgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9idWJibGVzL1N0YXJ0ZXJQcm9tcHRCdWJibGUnIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2J1YmJsZXMvU3RhcnRlclByb21wdEJ1YmJsZS50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTM3XHUwMDFiWzI3bSBpbXBvcnQgeyBTdGFydGVyUHJvbXB0QnViYmxlIH0gZnJvbSAnLi9idWJibGVzL1N0YXJ0ZXJQcm9tcHRCdWJibGUnO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMzdYXHUwMDFiWzkxbVx1MDAxYlszN0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTM4XHUwMDFiW206XHUwMDFiWzkzbTMwIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vYnV0dG9ucy9DYW5jZWxCdXR0b24nIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2J1dHRvbnMvQ2FuY2VsQnV0dG9uLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMzhcdTAwMWJbMjdtIGltcG9ydCB7IENhbmNlbEJ1dHRvbiB9IGZyb20gJy4vYnV0dG9ucy9DYW5jZWxCdXR0b24nO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMzBYXHUwMDFiWzkxbVx1MDAxYlszMEN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMzlcdTAwMWJbbTpcdTAwMWJbOTNtMTAgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA1OiBcdTAwMWJbbU1vZHVsZSAnXCIuL2ljb25zXCInIGhhcyBubyBleHBvcnRlZCBtZW1iZXIgJ0NpcmNsZURvdEljb24nLlx1MDAxYltLXG5cblx1MDAxYls3bTM5XHUwMDFiWzI3bSBpbXBvcnQgeyBDaXJjbGVEb3RJY29uLCBTcGFya2xlc0ljb24sIFRyYXNoSWNvbiB9IGZyb20gJy4vaWNvbnMnO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMTBYXHUwMDFiWzkxbVx1MDAxYlsxMEN+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTM5XHUwMDFiW206XHUwMDFiWzkzbTI1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjMwNTogXHUwMDFiW21Nb2R1bGUgJ1wiLi9pY29uc1wiJyBoYXMgbm8gZXhwb3J0ZWQgbWVtYmVyICdTcGFya2xlc0ljb24nLlx1MDAxYltLXG5cblx1MDAxYls3bTM5XHUwMDFiWzI3bSBpbXBvcnQgeyBDaXJjbGVEb3RJY29uLCBTcGFya2xlc0ljb24sIFRyYXNoSWNvbiB9IGZyb20gJy4vaWNvbnMnO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMjVYXHUwMDFiWzkxbVx1MDAxYlsyNUN+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMzlcdTAwMWJbbTpcdTAwMWJbOTNtMzkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyMzA1OiBcdTAwMWJbbU1vZHVsZSAnXCIuL2ljb25zXCInIGhhcyBubyBleHBvcnRlZCBtZW1iZXIgJ1RyYXNoSWNvbicuXHUwMDFiW0tcblxuXHUwMDFiWzdtMzlcdTAwMWJbMjdtIGltcG9ydCB7IENpcmNsZURvdEljb24sIFNwYXJrbGVzSWNvbiwgVHJhc2hJY29uIH0gZnJvbSAnLi9pY29ucyc7XHUwMDFiW0tcblx1MDAxYls3bSAgXHUwMDFiWzI3bVx1MDAxYlszOVhcdTAwMWJbOTFtXHUwMDFiWzM5Q35+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M200Mlx1MDAxYlttOlx1MDAxYls5M20yMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzIzMDc6IFx1MDAxYlttQ2Fubm90IGZpbmQgbW9kdWxlICcuL1RvYXN0JyBvciBpdHMgY29ycmVzcG9uZGluZyB0eXBlIGRlY2xhcmF0aW9ucy5cdTAwMWJbS1xuXG5cdTAwMWJbN200Mlx1MDAxYlsyN20gaW1wb3J0IHsgVG9hc3QgfSBmcm9tICcuL1RvYXN0JztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzIzWFx1MDAxYls5MW1cdTAwMWJbMjNDfn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTk2N1x1MDAxYlttOlx1MDAxYls5M203NCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI1NTA6IFx1MDAxYlttUHJvcGVydHkgJ3JlcGxhY2VBbGwnIGRvZXMgbm90IGV4aXN0IG9uIHR5cGUgJ3N0cmluZycuIERvIHlvdSBuZWVkIHRvIGNoYW5nZSB5b3VyIHRhcmdldCBsaWJyYXJ5PyBUcnkgY2hhbmdpbmcgdGhlICdsaWInIGNvbXBpbGVyIG9wdGlvbiB0byAnZXMyMDIxJyBvciBsYXRlci5cdTAwMWJbS1xuXG5cdTAwMWJbN205NjdcdTAwMWJbMjdtICAgICAgICAgICAgIGhhbmRsZUVycm9yKGBFcnJvcjogJHsoZXJyb3IgYXMgeyBtZXNzYWdlOiBzdHJpbmcgfSkubWVzc2FnZS5yZXBsYWNlQWxsKCdFcnJvcjonLCAnICcpfWApO1x1MDAxYltLXG5cdTAwMWJbN20gICBcdTAwMWJbMjdtXHUwMDFiWzc0WFx1MDAxYls5MW1cdTAwMWJbNzRDfn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNDgzXHUwMDFiW206XHUwMDFiWzkzbTI0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjQ5NTogXHUwMDFiW21UeXBlICdGaWxlTGlzdCcgaXMgbm90IGFuIGFycmF5IHR5cGUgb3IgYSBzdHJpbmcgdHlwZS5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNDgzXHUwMDFiWzI3bSAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzI0WFx1MDAxYls5MW1cdTAwMWJbMjRDfn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTU1M1x1MDAxYlttOlx1MDAxYls5M20yNiBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI0OTU6IFx1MDAxYlttVHlwZSAnRmlsZUxpc3QnIGlzIG5vdCBhbiBhcnJheSB0eXBlIG9yIGEgc3RyaW5nIHR5cGUuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTU1M1x1MDAxYlsyN20gICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGUuZGF0YVRyYW5zZmVyLmZpbGVzKSB7XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzI2WFx1MDAxYls5MW1cdTAwMWJbMjZDfn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTYwNFx1MDAxYlttOlx1MDAxYls5M20yNiBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI0OTU6IFx1MDAxYlttVHlwZSAnRGF0YVRyYW5zZmVySXRlbUxpc3QnIGlzIG5vdCBhbiBhcnJheSB0eXBlIG9yIGEgc3RyaW5nIHR5cGUuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTYwNFx1MDAxYlsyN20gICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGUuZGF0YVRyYW5zZmVyLml0ZW1zKSB7XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzI2WFx1MDAxYls5MW1cdTAwMWJbMjZDfn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTY5M1x1MDAxYlttOlx1MDAxYls5M205IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTY5M1x1MDAxYlsyN20gICAgICAgICA8YnV0dG9uXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzlYXHUwMDFiWzkxbVx1MDAxYls5Q35+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE2OTRcdTAwMWJbMjdtICAgICAgICAgICBjbGFzcz1cImdyb3VwIHctMTIgaC0xMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByZWxhdGl2ZSByb3VuZGVkLVsxMHB4XSBvdmVyZmxvdy1oaWRkZW4gdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwXCJcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNjk1XHUwMDFiWzI3bSAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlUHJldmlldyhpdGVtKX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTY5Nlx1MDAxYlsyN20gICAgICAgICA+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTY5N1x1MDAxYlttOlx1MDAxYls5M20xMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE2OTdcdTAwMWJbMjdtICAgICAgICAgICA8aW1nIGNsYXNzPVwidy1mdWxsIGgtZnVsbCBiZy1jb3ZlclwiIHNyYz17aXRlbS5kYXRhIGFzIHN0cmluZ30gLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTFYXHUwMDFiWzkxbVx1MDAxYlsxMUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE2OThcdTAwMWJbbTpcdTAwMWJbOTNtMTEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNjk4XHUwMDFiWzI3bSAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhYnNvbHV0ZSBoaWRkZW4gZ3JvdXAtaG92ZXI6ZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgei0xMCB3LWZ1bGwgaC1mdWxsIHRvcC0wIGxlZnQtMCBiZy1ibGFjay8xMCByb3VuZGVkLVsxMHB4XSB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0yMDBcIj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTFYXHUwMDFiWzkxbVx1MDAxYlsxMUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTY5OVx1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE2OTlcdTAwMWJbMjdtICAgICAgICAgICAgIDxUcmFzaEljb24gLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTNYXHUwMDFiWzkxbVx1MDAxYlsxM0N+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3MDVcdTAwMWJbbTpcdTAwMWJbOTNtOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3MDVcdTAwMWJbMjdtICAgICAgICAgPGRpdlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYls5WFx1MDAxYls5MW1cdTAwMWJbOUN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNzA2XHUwMDFiWzI3bSAgICAgICAgICAgY2xhc3M9e2BpbmxpbmUtZmxleCBiYXNpcy1hdXRvIGZsZXgtZ3Jvdy0wIGZsZXgtc2hyaW5rLTAganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciByb3VuZGVkLXhsIGgtMTIgcC0xIG1yLTEgYmctZ3JheS01MDBgfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTE3MDlcdTAwMWJbMjdtICAgICAgICAgICB9fVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNzEwXHUwMDFiWzI3bSAgICAgICAgID5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzExXHUwMDFiW206XHUwMDFiWzkzbTExIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTcxMVx1MDAxYlsyN20gICAgICAgICAgIDxhdWRpbyBjbGFzcz1cImJsb2NrIGJnLWNvdmVyIGJnLWNlbnRlciB3LWZ1bGwgaC1mdWxsIHJvdW5kZWQtbm9uZSB0ZXh0LXRyYW5zcGFyZW50XCIgY29udHJvbHMgc3JjPXtpdGVtLmRhdGEgYXMgc3RyaW5nfSAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTcxMlx1MDAxYlttOlx1MDAxYls5M20xMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3MTJcdTAwMWJbMjdtICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidy03IGgtNyBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy10cmFuc3BhcmVudCBwLTFcIiBvbkNsaWNrPXsoKSA9PiBoYW5kbGVEZWxldGVQcmV2aWV3KGl0ZW0pfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTFYXHUwMDFiWzkxbVx1MDAxYlsxMUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3MTNcdTAwMWJbbTpcdTAwMWJbOTNtMTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzEzXHUwMDFiWzI3bSAgICAgICAgICAgICA8VHJhc2hJY29uIGNvbG9yPVwid2hpdGVcIiAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzE4XHUwMDFiW206XHUwMDFiWzkzbTE0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTcxOFx1MDAxYlsyN20gICAgICAgcmV0dXJuIDxGaWxlUHJldmlldyBkaXNhYmxlZD17Z2V0SW5wdXREaXNhYmxlZCgpfSBpdGVtPXtpdGVtfSBvbkRlbGV0ZT17KCkgPT4gaGFuZGxlRGVsZXRlUHJldmlldyhpdGVtKX0gLz47XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE0WFx1MDAxYls5MW1cdTAwMWJbMTRDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzI3XHUwMDFiW206XHUwMDFiWzkzbTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzI3XHUwMDFiWzI3bSAgICAgPD5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gICAgIFx1MDAxYls5MW1+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzI4XHUwMDFiW206XHUwMDFiWzkzbTcgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzI4XHUwMDFiWzI3bSAgICAgICA8ZGl2XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtICAgICAgIFx1MDAxYls5MW1+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNzI5XHUwMDFiWzI3bSAgICAgICAgIHJlZj17Ym90Q29udGFpbmVyfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTE3MzFcdTAwMWJbMjdtICAgICAgICAgb25EcmFnRW50ZXI9e2hhbmRsZURyYWd9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTczMlx1MDAxYlsyN20gICAgICAgPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzM0XHUwMDFiW206XHUwMDFiWzkzbTExIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTczNFx1MDAxYlsyN20gICAgICAgICAgIDxkaXZcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTFYXHUwMDFiWzkxbVx1MDAxYlsxMUN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNzM1XHUwMDFiWzI3bSAgICAgICAgICAgICBjbGFzcz1cImFic29sdXRlIHRvcC0wIGxlZnQtMCBib3R0b20tMCByaWdodC0wIHctZnVsbCBoLWZ1bGwgei01MFwiXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMTc0MFx1MDAxYlsyN20gICAgICAgICAgICAgb25Ecm9wPXtoYW5kbGVEcm9wfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTc0MVx1MDAxYlsyN20gICAgICAgICAgIC8+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc0NFx1MDAxYlttOlx1MDAxYls5M20xMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NDRcdTAwMWJbMjdtICAgICAgICAgICA8ZGl2XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzExWFx1MDAxYls5MW1cdTAwMWJbMTFDfn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTc0NVx1MDAxYlsyN20gICAgICAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtMCBsZWZ0LTAgYm90dG9tLTAgcmlnaHQtMCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1ibGFjay82MCBiYWNrZHJvcC1ibHVyLXNtIHRleHQtd2hpdGUgei00MCBnYXAtMiBib3JkZXItMiBib3JkZXItZGFzaGVkXCJcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTc0Nlx1MDAxYlsyN20gICAgICAgICAgICAgc3R5bGU9e3sgJ2JvcmRlci1jb2xvcic6IHByb3BzLmJ1YmJsZUJhY2tncm91bmRDb2xvciB9fVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTc0N1x1MDAxYlsyN20gICAgICAgICAgID5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3NDhcdTAwMWJbbTpcdTAwMWJbOTNtMTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzQ4XHUwMDFiWzI3bSAgICAgICAgICAgICA8aDIgY2xhc3M9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGRcIj5Ecm9wIGhlcmUgdG8gdXBsb2FkPC9oMj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTNYXHUwMDFiWzkxbVx1MDAxYlsxM0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3NDlcdTAwMWJbbTpcdTAwMWJbOTNtMTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzQ5XHUwMDFiWzI3bSAgICAgICAgICAgICA8Rm9yIGVhY2g9e1suLi4odXBsb2Fkc0NvbmZpZygpPy5pbWdVcGxvYWRTaXplQW5kVHlwZXMgfHwgW10pLCAuLi4odXBsb2Fkc0NvbmZpZygpPy5maWxlVXBsb2FkU2l6ZUFuZFR5cGVzIHx8IFtdKV19Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3NDlcdTAwMWJbbTpcdTAwMWJbOTNtMTQgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzQxOiBcdTAwMWJbbVByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IGVhY2g6IElVcGxvYWRDb25zdHJhaXRzW107IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IGVhY2g6IGZhbHNlIHwgSVVwbG9hZENvbnN0cmFpdHNbXTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogKGl0ZW06IElVcGxvYWRDXG5cdTAwMWJbNzsyMjNIQ29uc3RyYWl0cywgaW5kZXg6IEFjY2Vzc29yPG51bWJlcj4pID0+IEVsZW1lbnQ7IH0nLlxuXG5cdTAwMWJbN20xNzQ5XHUwMDFiWzI3bSAgICAgICAgICAgICA8Rm9yIGVhY2g9e1suLi4odXBsb2Fkc0NvbmZpZygpPy5pbWdVcGxvYWRTaXplQW5kVHlwZXMgfHwgW10pLCAuLi4odXBsb2Fkc0NvbmZpZygpPy5maWxlVXBsb2FkU2l6ZUFuZFR5cGVzIHx8IFtdKV19Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNFhcdTAwMWJbOTFtXHUwMDFiWzE0Q35+flx1MDAxYltLXG5cdTAwMWJbbVxuXG4gIFx1MDAxYls5Nm1ub2RlX21vZHVsZXMvc29saWQtanMvdHlwZXMvcmVuZGVyL2Zsb3cuZC50c1x1MDAxYlttOlx1MDAxYls5M20xOVx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW0tcblx1MDAxYlttXG4gICAgXHUwMDFiWzdtMTlcdTAwMWJbMjdtICAgICBjaGlsZHJlbjogKGl0ZW06IFRbbnVtYmVyXSwgaW5kZXg6IEFjY2Vzc29yPG51bWJlcj4pID0+IFU7XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc1Mlx1MDAxYlttOlx1MDAxYls5M20xOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NTJcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgIDw+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE5WFx1MDAxYls5MW1cdTAwMWJbMTlDfn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc1M1x1MDAxYlttOlx1MDAxYls5M20yMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NTNcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e2FsbG93ZWQuZmlsZVR5cGVzPy5qb2luKCcsICcpfTwvc3Bhbj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjFYXHUwMDFiWzkxbVx1MDAxYlsyMUN+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc1NFx1MDAxYlttOlx1MDAxYls5M200NyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NTRcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAge2FsbG93ZWQubWF4VXBsb2FkU2l6ZSAmJiA8c3Bhbj5NYXggQWxsb3dlZCBTaXplOiB7YWxsb3dlZC5tYXhVcGxvYWRTaXplfSBNQjwvc3Bhbj59XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzQ3WFx1MDAxYls5MW1cdTAwMWJbNDdDfn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3NjJcdTAwMWJbbTpcdTAwMWJbOTNtMTEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzYyXHUwMDFiWzI3bSAgICAgICAgICAgPGRpdlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE3NjNcdTAwMWJbMjdtICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgdy1mdWxsIGgtWzUwcHhdIGFic29sdXRlIHRvcC0wIGxlZnQtMCB6LTEwXCJcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20xNzY5XHUwMDFiWzI3bSAgICAgICAgICAgICB9fVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE3NzBcdTAwMWJbMjdtICAgICAgICAgICA+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzcxXHUwMDFiW206XHUwMDFiWzkzbTEzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTc3MVx1MDAxYlsyN20gICAgICAgICAgICAgPFNob3cgd2hlbj17cHJvcHMudGl0bGVBdmF0YXJTcmN9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc3MVx1MDAxYlttOlx1MDAxYls5M20xNCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI3Njk6IFx1MDAxYlttTm8gb3ZlcmxvYWQgbWF0Y2hlcyB0aGlzIGNhbGwuXHUwMDFiW0tcbiAgT3ZlcmxvYWQgMSBvZiAyLCAnKHByb3BzOiB7IHdoZW46IHN0cmluZyB8IGZhbHNlOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3NvcjxzdHJpbmc+KSA9PiBFbGVtZW50KTsgfSk6IEVsZW1lbnQnLCBnYXZlIHRoZSBmb2xsb3dpbmcgZXJyb3IuXG4gICAgUHJvcGVydHkgJ2NoaWxkcmVuJyBpcyBtaXNzaW5nIGluIHR5cGUgJ3sgd2hlbjogc3RyaW5nOyB9JyBidXQgcmVxdWlyZWQgaW4gdHlwZSAneyB3aGVuOiBzdHJpbmcgfCBmYWxzZTsga2V5ZWQ/OiBmYWxzZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogQWNjZXNzb3I8c3RyaW5nPikgPT4gRWxlbWVudCk7IH0nLlxuICBPdmVybG9hZCAyIG9mIDIsICcocHJvcHM6IHsgd2hlbjogc3RyaW5nIHwgZmFsc2U7IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBzdHJpbmcpID0+IEVsZW1lbnQpOyB9KTogRWxlbWVudCcsIGdhdmUgdGhlIGZvbGxvd2luZyBlcnJvci5cbiAgICBUeXBlICd7IHdoZW46IHN0cmluZzsgfScgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICd7IHdoZW46IHN0cmluZyB8IGZhbHNlOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogc3RyaW5nKSA9PiBFbGVtZW50KTsgfSc6IGtleWVkLCBjaGlsZHJlblxuXG5cdTAwMWJbN20xNzcxXHUwMDFiWzI3bSAgICAgICAgICAgICA8U2hvdyB3aGVuPXtwcm9wcy50aXRsZUF2YXRhclNyY30+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE0WFx1MDAxYls5MW1cdTAwMWJbMTRDfn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG4gIFx1MDAxYls5Nm1ub2RlX21vZHVsZXMvc29saWQtanMvdHlwZXMvcmVuZGVyL2Zsb3cuZC50c1x1MDAxYlttOlx1MDAxYls5M200OFx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW0tcblx1MDAxYlttXG4gICAgXHUwMDFiWzdtNDhcdTAwMWJbMjdtICAgICBjaGlsZHJlbjogSlNYLkVsZW1lbnQgfCBSZXF1aXJlZFBhcmFtZXRlcjxUUmVuZGVyRnVuY3Rpb24+O1x1MDAxYltLXG4gICAgXHUwMDFiWzdtICBcdTAwMWJbMjdtICAgICBcdTAwMWJbOTZtfn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cbiAgICAnY2hpbGRyZW4nIGlzIGRlY2xhcmVkIGhlcmUuXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3NzJcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzcyXHUwMDFiWzI3bSAgICAgICAgICAgICAgIDw+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc3M1x1MDAxYlttOlx1MDAxYls5M20xNyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NzNcdTAwMWJbMjdtICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IHdpZHRoOiAnMTVweCcgfX0gLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTdYXHUwMDFiWzkxbVx1MDAxYlsxN0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc3NFx1MDAxYlttOlx1MDAxYls5M20xNyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NzRcdTAwMWJbMjdtICAgICAgICAgICAgICAgICA8QXZhdGFyIGluaXRpYWxBdmF0YXJTcmM9e3Byb3BzLnRpdGxlQXZhdGFyU3JjfSAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxN1hcdTAwMWJbOTFtXHUwMDFiWzE3Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3NzdcdTAwMWJbbTpcdTAwMWJbOTNtMTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzc3XHUwMDFiWzI3bSAgICAgICAgICAgICA8U2hvdyB3aGVuPXtwcm9wcy50aXRsZX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEzWFx1MDAxYls5MW1cdTAwMWJbMTNDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzc3XHUwMDFiW206XHUwMDFiWzkzbTE0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjc2OTogXHUwMDFiW21ObyBvdmVybG9hZCBtYXRjaGVzIHRoaXMgY2FsbC5cdTAwMWJbS1xuICBPdmVybG9hZCAxIG9mIDIsICcocHJvcHM6IHsgd2hlbjogc3RyaW5nIHwgZmFsc2U7IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHN0cmluZz4pID0+IEVsZW1lbnQpOyB9KTogRWxlbWVudCcsIGdhdmUgdGhlIGZvbGxvd2luZyBlcnJvci5cbiAgICBQcm9wZXJ0eSAnY2hpbGRyZW4nIGlzIG1pc3NpbmcgaW4gdHlwZSAneyB3aGVuOiBzdHJpbmc7IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IHdoZW46IHN0cmluZyB8IGZhbHNlOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3NvcjxzdHJpbmc+KSA9PiBFbGVtZW50KTsgfScuXG4gIE92ZXJsb2FkIDIgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBzdHJpbmcgfCBmYWxzZTsga2V5ZWQ6IHRydWU7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IHN0cmluZykgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFR5cGUgJ3sgd2hlbjogc3RyaW5nOyB9JyBpcyBtaXNzaW5nIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBmcm9tIHR5cGUgJ3sgd2hlbjogc3RyaW5nIHwgZmFsc2U7IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBzdHJpbmcpID0+IEVsZW1lbnQpOyB9Jzoga2V5ZWQsIGNoaWxkcmVuXG5cblx1MDAxYls3bTE3NzdcdTAwMWJbMjdtICAgICAgICAgICAgIDxTaG93IHdoZW49e3Byb3BzLnRpdGxlfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTRYXHUwMDFiWzkxbVx1MDAxYlsxNEN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cbiAgXHUwMDFiWzk2bW5vZGVfbW9kdWxlcy9zb2xpZC1qcy90eXBlcy9yZW5kZXIvZmxvdy5kLnRzXHUwMDFiW206XHUwMDFiWzkzbTQ4XHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbS1xuXHUwMDFiW21cbiAgICBcdTAwMWJbN200OFx1MDAxYlsyN20gICAgIGNoaWxkcmVuOiBKU1guRWxlbWVudCB8IFJlcXVpcmVkUGFyYW1ldGVyPFRSZW5kZXJGdW5jdGlvbj47XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc3OFx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3NzhcdTAwMWJbMjdtICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJweC0zIHdoaXRlc3BhY2UtcHJlLXdyYXAgZm9udC1zZW1pYm9sZCBtYXgtdy1mdWxsXCI+e3Byb3BzLnRpdGxlfTwvc3Bhbj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3ODBcdTAwMWJbbTpcdTAwMWJbOTNtMTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzgwXHUwMDFiWzI3bSAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGZsZXg6IDEgfX0gLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTNYXHUwMDFiWzkxbVx1MDAxYlsxM0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc4MVx1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3ODFcdTAwMWJbMjdtICAgICAgICAgICAgIDxEZWxldGVCdXR0b25cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTNYXHUwMDFiWzkxbVx1MDAxYlsxM0N+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xNzgyXHUwMDFiWzI3bSAgICAgICAgICAgICAgIHNlbmRCdXR0b25Db2xvcj17cHJvcHMuYnViYmxlVGV4dENvbG9yfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTE3ODZcdTAwMWJbMjdtICAgICAgICAgICAgICAgb246Y2xpY2s9e2NsZWFyQ2hhdH1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE3ODdcdTAwMWJbMjdtICAgICAgICAgICAgID5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc4OFx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE3ODhcdTAwMWJbMjdtICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgJ2ZvbnQtZmFtaWx5JzogJ1BvcHBpbnMsIHNhbnMtc2VyaWYnIH19PkNsZWFyPC9zcGFuPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTc5M1x1MDAxYlttOlx1MDAxYls5M205IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTc5M1x1MDAxYlsyN20gICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgaC1mdWxsIGp1c3RpZnktc3RhcnQgei0wXCI+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzlYXHUwMDFiWzkxbVx1MDAxYls5Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3OTRcdTAwMWJbbTpcdTAwMWJbOTNtMTEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzk0XHUwMDFiWzI3bSAgICAgICAgICAgPGRpdlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE3OTVcdTAwMWJbMjdtICAgICAgICAgICAgIHJlZj17Y2hhdENvbnRhaW5lcn1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE3OTZcdTAwMWJbMjdtICAgICAgICAgICAgIGNsYXNzPVwib3ZlcmZsb3cteS1hdXRvIGZsZXggZmxleC1jb2wgZmxleC1ncm93IG1pbi13LWZ1bGwgdy1mdWxsIHB4LTMgbXQtWzUwcHhdIHB0LVszMHB4XSByZWxhdGl2ZSBjaGF0Ym90LWNoYXQtdmlldyBzY3JvbGwtc21vb3RoIHNjcm9sbGJhci10aGluIHNjcm9sbGJhci10aHVtYi1ncmF5LTUwMCBzY3JvbGxiYXItdHJhY2stZ3JheS0yMDBcIlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTc5N1x1MDAxYlsyN20gICAgICAgICAgID5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE3OThcdTAwMWJbbTpcdTAwMWJbOTNtMTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xNzk4XHUwMDFiWzI3bSAgICAgICAgICAgICA8Rm9yIGVhY2g9e1suLi5tZXNzYWdlcygpXX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEzWFx1MDAxYls5MW1cdTAwMWJbMTNDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xNzk4XHUwMDFiW206XHUwMDFiWzkzbTE0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjc0MTogXHUwMDFiW21Qcm9wZXJ0eSAnY2hpbGRyZW4nIGlzIG1pc3NpbmcgaW4gdHlwZSAneyBlYWNoOiBNZXNzYWdlVHlwZVtdOyB9JyBidXQgcmVxdWlyZWQgaW4gdHlwZSAneyBlYWNoOiBmYWxzZSB8IE1lc3NhZ2VUeXBlW107IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IChpdGVtOiBNZXNzYWdlVHlwZSwgaW5kZXg6IFxuXHUwMDFiWzc7MjIzSCBBY2Nlc3NvcjxudW1iZXI+KSA9PiBFbGVtZW50OyB9Jy5cblxuXHUwMDFiWzdtMTc5OFx1MDAxYlsyN20gICAgICAgICAgICAgPEZvciBlYWNoPXtbLi4ubWVzc2FnZXMoKV19Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNFhcdTAwMWJbOTFtXHUwMDFiWzE0Q35+flx1MDAxYltLXG5cdTAwMWJbbVxuXG4gIFx1MDAxYls5Nm1ub2RlX21vZHVsZXMvc29saWQtanMvdHlwZXMvcmVuZGVyL2Zsb3cuZC50c1x1MDAxYlttOlx1MDAxYls5M20xOVx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW0tcblx1MDAxYlttXG4gICAgXHUwMDFiWzdtMTlcdTAwMWJbMjdtICAgICBjaGlsZHJlbjogKGl0ZW06IFRbbnVtYmVyXSwgaW5kZXg6IEFjY2Vzc29yPG51bWJlcj4pID0+IFU7XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTgwMVx1MDAxYlttOlx1MDAxYls5M20xOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE4MDFcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgIDw+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE5WFx1MDAxYls5MW1cdTAwMWJbMTlDfn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTgwM1x1MDAxYlttOlx1MDAxYls5M20yMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE4MDNcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICA8R3Vlc3RCdWJibGVcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjNYXHUwMDFiWzkxbVx1MDAxYlsyM0N+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE4MDRcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9e21lc3NhZ2V9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMTgxM1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVySFRNTD17cHJvcHMucmVuZGVySFRNTH1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xODE0XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xODE3XHUwMDFiW206XHUwMDFiWzkzbTIzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTgxN1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgIDxCb3RCdWJibGVcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjNYXHUwMDFiWzkxbVx1MDAxYlsyM0N+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xODE4XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbj17Wy4uLm1lc3NhZ2VzKCldW2luZGV4KCkgLSAxXT8ubWVzc2FnZX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMTg3MFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tTaG93Q2FsbGJhY2tCdG49e0Jvb2xlYW4ocHJvcHMuZmlsZVBhdGggJiYgaW5kZXgoKSA9PT0gMSl9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE4NzFcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE4NzRcdTAwMWJbbTpcdTAwMWJbOTNtMjMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xODc0XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgPExlYWRDYXB0dXJlQnViYmxlXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzIzWFx1MDAxYls5MW1cdTAwMWJbMjNDfn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xODc1XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPXttZXNzYWdlfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTE4ODhcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICAgIHNldExlYWRFbWFpbD17c2V0TGVhZEVtYWlsfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xODg5XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xODkxXHUwMDFiW206XHUwMDFiWzkzbTEwNiBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE4OTFcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAge21lc3NhZ2UudHlwZSA9PT0gJ3VzZXJNZXNzYWdlJyAmJiBsb2FkaW5nKCkgJiYgaW5kZXgoKSA9PT0gbWVzc2FnZXMoKS5sZW5ndGggLSAxICYmIDxMb2FkaW5nQnViYmxlIC8+fVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMDZYXHUwMDFiWzkxbVx1MDAxYlsxMDZDfn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTg5Mlx1MDAxYlttOlx1MDAxYls5M20xMzEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xODkyXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgIHttZXNzYWdlLnR5cGUgPT09ICdhcGlNZXNzYWdlJyAmJiBtZXNzYWdlLm1lc3NhZ2UgPT09ICcnICYmIGxvYWRpbmcoKSAmJiBpbmRleCgpID09PSBtZXNzYWdlcygpLmxlbmd0aCAtIDEgJiYgPExvYWRpbmdCdWJibGUgLz59XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzEzMVhcdTAwMWJbOTFtXHUwMDFiWzEzMUN+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xODk4XHUwMDFiW206XHUwMDFiWzkzbTExIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTg5OFx1MDAxYlsyN20gICAgICAgICAgIDxTaG93IHdoZW49e21lc3NhZ2VzKCkubGVuZ3RoID09PSAxfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTFYXHUwMDFiWzkxbVx1MDAxYlsxMUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE4OThcdTAwMWJbbTpcdTAwMWJbOTNtMTIgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzY5OiBcdTAwMWJbbU5vIG92ZXJsb2FkIG1hdGNoZXMgdGhpcyBjYWxsLlx1MDAxYltLXG4gIE92ZXJsb2FkIDEgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3Nvcjx0cnVlPikgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHRydWU+KSA9PiBFbGVtZW50KTsgfScuXG4gIE92ZXJsb2FkIDIgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogdHJ1ZSkgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFR5cGUgJ3sgd2hlbjogYm9vbGVhbjsgfScgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiB0cnVlKSA9PiBFbGVtZW50KTsgfSc6IGtleWVkLCBjaGlsZHJlblxuXG5cdTAwMWJbN20xODk4XHUwMDFiWzI3bSAgICAgICAgICAgPFNob3cgd2hlbj17bWVzc2FnZXMoKS5sZW5ndGggPT09IDF9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMlhcdTAwMWJbOTFtXHUwMDFiWzEyQ35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuICBcdTAwMWJbOTZtbm9kZV9tb2R1bGVzL3NvbGlkLWpzL3R5cGVzL3JlbmRlci9mbG93LmQudHNcdTAwMWJbbTpcdTAwMWJbOTNtNDhcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYltLXG5cdTAwMWJbbVxuICAgIFx1MDAxYls3bTQ4XHUwMDFiWzI3bSAgICAgY2hpbGRyZW46IEpTWC5FbGVtZW50IHwgUmVxdWlyZWRQYXJhbWV0ZXI8VFJlbmRlckZ1bmN0aW9uPjtcdTAwMWJbS1xuICAgIFx1MDAxYls3bSAgXHUwMDFiWzI3bSAgICAgXHUwMDFiWzk2bX5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG4gICAgJ2NoaWxkcmVuJyBpcyBkZWNsYXJlZCBoZXJlLlxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xODk5XHUwMDFiW206XHUwMDFiWzkzbTEzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTg5OVx1MDAxYlsyN20gICAgICAgICAgICAgPFNob3cgd2hlbj17c3RhcnRlclByb21wdHMoKS5sZW5ndGggPiAwfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTNYXHUwMDFiWzkxbVx1MDAxYlsxM0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xODk5XHUwMDFiW206XHUwMDFiWzkzbTE0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjc2OTogXHUwMDFiW21ObyBvdmVybG9hZCBtYXRjaGVzIHRoaXMgY2FsbC5cdTAwMWJbS1xuICBPdmVybG9hZCAxIG9mIDIsICcocHJvcHM6IHsgd2hlbjogYm9vbGVhbjsga2V5ZWQ/OiBmYWxzZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogQWNjZXNzb3I8dHJ1ZT4pID0+IEVsZW1lbnQpOyB9KTogRWxlbWVudCcsIGdhdmUgdGhlIGZvbGxvd2luZyBlcnJvci5cbiAgICBQcm9wZXJ0eSAnY2hpbGRyZW4nIGlzIG1pc3NpbmcgaW4gdHlwZSAneyB3aGVuOiBib29sZWFuOyB9JyBidXQgcmVxdWlyZWQgaW4gdHlwZSAneyB3aGVuOiBib29sZWFuOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3Nvcjx0cnVlPikgPT4gRWxlbWVudCk7IH0nLlxuICBPdmVybG9hZCAyIG9mIDIsICcocHJvcHM6IHsgd2hlbjogYm9vbGVhbjsga2V5ZWQ6IHRydWU7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IHRydWUpID0+IEVsZW1lbnQpOyB9KTogRWxlbWVudCcsIGdhdmUgdGhlIGZvbGxvd2luZyBlcnJvci5cbiAgICBUeXBlICd7IHdoZW46IGJvb2xlYW47IH0nIGlzIG1pc3NpbmcgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGZyb20gdHlwZSAneyB3aGVuOiBib29sZWFuOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogdHJ1ZSkgPT4gRWxlbWVudCk7IH0nOiBrZXllZCwgY2hpbGRyZW5cblxuXHUwMDFiWzdtMTg5OVx1MDAxYlsyN20gICAgICAgICAgICAgPFNob3cgd2hlbj17c3RhcnRlclByb21wdHMoKS5sZW5ndGggPiAwfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTRYXHUwMDFiWzkxbVx1MDAxYlsxNEN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cbiAgXHUwMDFiWzk2bW5vZGVfbW9kdWxlcy9zb2xpZC1qcy90eXBlcy9yZW5kZXIvZmxvdy5kLnRzXHUwMDFiW206XHUwMDFiWzkzbTQ4XHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbS1xuXHUwMDFiW21cbiAgICBcdTAwMWJbN200OFx1MDAxYlsyN20gICAgIGNoaWxkcmVuOiBKU1guRWxlbWVudCB8IFJlcXVpcmVkUGFyYW1ldGVyPFRSZW5kZXJGdW5jdGlvbj47XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkwMFx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MDBcdTAwMWJbMjdtICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGZsZXgtcm93IGZsZXgtd3JhcCBweC01IHB5LVsxMHB4XSBnYXAtMlwiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MDFcdTAwMWJbbTpcdTAwMWJbOTNtMTcgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTAxXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgPEZvciBlYWNoPXtbLi4uc3RhcnRlclByb21wdHMoKV19Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxN1hcdTAwMWJbOTFtXHUwMDFiWzE3Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkwMVx1MDAxYlttOlx1MDAxYls5M20xOCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI3NDE6IFx1MDAxYlttUHJvcGVydHkgJ2NoaWxkcmVuJyBpcyBtaXNzaW5nIGluIHR5cGUgJ3sgZWFjaDogc3RyaW5nW107IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IGVhY2g6IGZhbHNlIHwgc3RyaW5nW107IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IChpdGVtOiBzdHJpbmcsIGluZGV4OiBBY2Nlc3NvcjxudW1iZXJcblx1MDAxYls3OzIyM0hyPikgPT4gRWxlbWVudDsgfScuXG5cblx1MDAxYls3bTE5MDFcdTAwMWJbMjdtICAgICAgICAgICAgICAgICA8Rm9yIGVhY2g9e1suLi5zdGFydGVyUHJvbXB0cygpXX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE4WFx1MDAxYls5MW1cdTAwMWJbMThDfn5+XHUwMDFiW0tcblx1MDAxYlttXG5cbiAgXHUwMDFiWzk2bW5vZGVfbW9kdWxlcy9zb2xpZC1qcy90eXBlcy9yZW5kZXIvZmxvdy5kLnRzXHUwMDFiW206XHUwMDFiWzkzbTE5XHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbS1xuXHUwMDFiW21cbiAgICBcdTAwMWJbN20xOVx1MDAxYlsyN20gICAgIGNoaWxkcmVuOiAoaXRlbTogVFtudW1iZXJdLCBpbmRleDogQWNjZXNzb3I8bnVtYmVyPikgPT4gVTtcdTAwMWJbS1xuICAgIFx1MDAxYls3bSAgXHUwMDFiWzI3bSAgICAgXHUwMDFiWzk2bX5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG4gICAgJ2NoaWxkcmVuJyBpcyBkZWNsYXJlZCBoZXJlLlxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTAzXHUwMDFiW206XHUwMDFiWzkzbTIxIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkwM1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICA8U3RhcnRlclByb21wdEJ1YmJsZVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyMVhcdTAwMWJbOTFtXHUwMDFiWzIxQ35+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xOTA0XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgcHJvbXB0PXtrZXl9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20xOTA2XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRlclByb21wdEZvbnRTaXplPXtib3RQcm9wcy5zdGFydGVyUHJvbXB0Rm9udFNpemV9IC8vIFBhc3MgaXQgaGVyZSBhcyBhIG51bWJlclx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE5MDdcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkxM1x1MDAxYlttOlx1MDAxYls5M20xMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MTNcdTAwMWJbMjdtICAgICAgICAgICA8U2hvdyB3aGVuPXttZXNzYWdlcygpLmxlbmd0aCA+IDIgJiYgZm9sbG93VXBQcm9tcHRzU3RhdHVzKCl9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MTNcdTAwMWJbbTpcdTAwMWJbOTNtMTIgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzY5OiBcdTAwMWJbbU5vIG92ZXJsb2FkIG1hdGNoZXMgdGhpcyBjYWxsLlx1MDAxYltLXG4gIE92ZXJsb2FkIDEgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3Nvcjx0cnVlPikgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHRydWU+KSA9PiBFbGVtZW50KTsgfScuXG4gIE92ZXJsb2FkIDIgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogdHJ1ZSkgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFR5cGUgJ3sgd2hlbjogYm9vbGVhbjsgfScgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiB0cnVlKSA9PiBFbGVtZW50KTsgfSc6IGtleWVkLCBjaGlsZHJlblxuXG5cdTAwMWJbN20xOTEzXHUwMDFiWzI3bSAgICAgICAgICAgPFNob3cgd2hlbj17bWVzc2FnZXMoKS5sZW5ndGggPiAyICYmIGZvbGxvd1VwUHJvbXB0c1N0YXR1cygpfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTJYXHUwMDFiWzkxbVx1MDAxYlsxMkN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cbiAgXHUwMDFiWzk2bW5vZGVfbW9kdWxlcy9zb2xpZC1qcy90eXBlcy9yZW5kZXIvZmxvdy5kLnRzXHUwMDFiW206XHUwMDFiWzkzbTQ4XHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbS1xuXHUwMDFiW21cbiAgICBcdTAwMWJbN200OFx1MDAxYlsyN20gICAgIGNoaWxkcmVuOiBKU1guRWxlbWVudCB8IFJlcXVpcmVkUGFyYW1ldGVyPFRSZW5kZXJGdW5jdGlvbj47XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkxNFx1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MTRcdTAwMWJbMjdtICAgICAgICAgICAgIDxTaG93IHdoZW49e2ZvbGxvd1VwUHJvbXB0cygpLmxlbmd0aCA+IDB9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTE0XHUwMDFiW206XHUwMDFiWzkzbTE0IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjc2OTogXHUwMDFiW21ObyBvdmVybG9hZCBtYXRjaGVzIHRoaXMgY2FsbC5cdTAwMWJbS1xuICBPdmVybG9hZCAxIG9mIDIsICcocHJvcHM6IHsgd2hlbjogYm9vbGVhbjsga2V5ZWQ/OiBmYWxzZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogQWNjZXNzb3I8dHJ1ZT4pID0+IEVsZW1lbnQpOyB9KTogRWxlbWVudCcsIGdhdmUgdGhlIGZvbGxvd2luZyBlcnJvci5cbiAgICBQcm9wZXJ0eSAnY2hpbGRyZW4nIGlzIG1pc3NpbmcgaW4gdHlwZSAneyB3aGVuOiBib29sZWFuOyB9JyBidXQgcmVxdWlyZWQgaW4gdHlwZSAneyB3aGVuOiBib29sZWFuOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3Nvcjx0cnVlPikgPT4gRWxlbWVudCk7IH0nLlxuICBPdmVybG9hZCAyIG9mIDIsICcocHJvcHM6IHsgd2hlbjogYm9vbGVhbjsga2V5ZWQ6IHRydWU7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IHRydWUpID0+IEVsZW1lbnQpOyB9KTogRWxlbWVudCcsIGdhdmUgdGhlIGZvbGxvd2luZyBlcnJvci5cbiAgICBUeXBlICd7IHdoZW46IGJvb2xlYW47IH0nIGlzIG1pc3NpbmcgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGZyb20gdHlwZSAneyB3aGVuOiBib29sZWFuOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogdHJ1ZSkgPT4gRWxlbWVudCk7IH0nOiBrZXllZCwgY2hpbGRyZW5cblxuXHUwMDFiWzdtMTkxNFx1MDAxYlsyN20gICAgICAgICAgICAgPFNob3cgd2hlbj17Zm9sbG93VXBQcm9tcHRzKCkubGVuZ3RoID4gMH0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE0WFx1MDAxYls5MW1cdTAwMWJbMTRDfn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG4gIFx1MDAxYls5Nm1ub2RlX21vZHVsZXMvc29saWQtanMvdHlwZXMvcmVuZGVyL2Zsb3cuZC50c1x1MDAxYlttOlx1MDAxYls5M200OFx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW0tcblx1MDAxYlttXG4gICAgXHUwMDFiWzdtNDhcdTAwMWJbMjdtICAgICBjaGlsZHJlbjogSlNYLkVsZW1lbnQgfCBSZXF1aXJlZFBhcmFtZXRlcjxUUmVuZGVyRnVuY3Rpb24+O1x1MDAxYltLXG4gICAgXHUwMDFiWzdtICBcdTAwMWJbMjdtICAgICBcdTAwMWJbOTZtfn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cbiAgICAnY2hpbGRyZW4nIGlzIGRlY2xhcmVkIGhlcmUuXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MTVcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTE1XHUwMDFiWzI3bSAgICAgICAgICAgICAgIDw+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkxNlx1MDAxYlttOlx1MDAxYls5M20xNyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MTZcdTAwMWJbMjdtICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgcHgtNVwiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxN1hcdTAwMWJbOTFtXHUwMDFiWzE3Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTE3XHUwMDFiW206XHUwMDFiWzkzbTE5IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkxN1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgPFNwYXJrbGVzSWNvbiBjbGFzcz1cInctNCBoLTRcIiAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxOVhcdTAwMWJbOTFtXHUwMDFiWzE5Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MThcdTAwMWJbbTpcdTAwMWJbOTNtMTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTE4XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTcwMFwiPlRyeSB0aGVzZSBwcm9tcHRzPC9zcGFuPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxOVhcdTAwMWJbOTFtXHUwMDFiWzE5Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTIwXHUwMDFiW206XHUwMDFiWzkzbTE3IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkyMFx1MDAxYlsyN20gICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBmbGV4LXJvdyBmbGV4LXdyYXAgcHgtNSBweS1bMTBweF0gZ2FwLTJcIj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTdYXHUwMDFiWzkxbVx1MDAxYlsxN0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTIxXHUwMDFiW206XHUwMDFiWzkzbTE5IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTkyMVx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgPEZvciBlYWNoPXtbLi4uZm9sbG93VXBQcm9tcHRzKCldfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTlYXHUwMDFiWzkxbVx1MDAxYlsxOUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTIxXHUwMDFiW206XHUwMDFiWzkzbTIwIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjc0MTogXHUwMDFiW21Qcm9wZXJ0eSAnY2hpbGRyZW4nIGlzIG1pc3NpbmcgaW4gdHlwZSAneyBlYWNoOiBzdHJpbmdbXTsgfScgYnV0IHJlcXVpcmVkIGluIHR5cGUgJ3sgZWFjaDogZmFsc2UgfCBzdHJpbmdbXTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogKGl0ZW06IHN0cmluZywgaW5kZXg6IEFjY2Vzc29yPG51bWJlclxuXHUwMDFiWzc7MjIzSHI+KSA9PiBFbGVtZW50OyB9Jy5cblxuXHUwMDFiWzdtMTkyMVx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgPEZvciBlYWNoPXtbLi4uZm9sbG93VXBQcm9tcHRzKCldfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjBYXHUwMDFiWzkxbVx1MDAxYlsyMEN+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuICBcdTAwMWJbOTZtbm9kZV9tb2R1bGVzL3NvbGlkLWpzL3R5cGVzL3JlbmRlci9mbG93LmQudHNcdTAwMWJbbTpcdTAwMWJbOTNtMTlcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYltLXG5cdTAwMWJbbVxuICAgIFx1MDAxYls3bTE5XHUwMDFiWzI3bSAgICAgY2hpbGRyZW46IChpdGVtOiBUW251bWJlcl0sIGluZGV4OiBBY2Nlc3NvcjxudW1iZXI+KSA9PiBVO1x1MDAxYltLXG4gICAgXHUwMDFiWzdtICBcdTAwMWJbMjdtICAgICBcdTAwMWJbOTZtfn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cbiAgICAnY2hpbGRyZW4nIGlzIGRlY2xhcmVkIGhlcmUuXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MjNcdTAwMWJbbTpcdTAwMWJbOTNtMjMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTIzXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgPEZvbGxvd1VwUHJvbXB0QnViYmxlXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzIzWFx1MDAxYls5MW1cdTAwMWJbMjNDfn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xOTI0XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgICBwcm9tcHQ9e3Byb21wdH1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMTkyNlx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRlclByb21wdEZvbnRTaXplPXtib3RQcm9wcy5zdGFydGVyUHJvbXB0Rm9udFNpemV9IC8vIFBhc3MgaXQgaGVyZSBhcyBhIG51bWJlclx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTkyN1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgIC8+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkzNFx1MDAxYlttOlx1MDAxYls5M20xMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MzRcdTAwMWJbMjdtICAgICAgICAgICA8U2hvdyB3aGVuPXtwcmV2aWV3cygpLmxlbmd0aCA+IDB9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5MzRcdTAwMWJbbTpcdTAwMWJbOTNtMTIgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzY5OiBcdTAwMWJbbU5vIG92ZXJsb2FkIG1hdGNoZXMgdGhpcyBjYWxsLlx1MDAxYltLXG4gIE92ZXJsb2FkIDEgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3Nvcjx0cnVlPikgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IH0nIGJ1dCByZXF1aXJlZCBpbiB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkPzogZmFsc2U7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IEFjY2Vzc29yPHRydWU+KSA9PiBFbGVtZW50KTsgfScuXG4gIE92ZXJsb2FkIDIgb2YgMiwgJyhwcm9wczogeyB3aGVuOiBib29sZWFuOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogdHJ1ZSkgPT4gRWxlbWVudCk7IH0pOiBFbGVtZW50JywgZ2F2ZSB0aGUgZm9sbG93aW5nIGVycm9yLlxuICAgIFR5cGUgJ3sgd2hlbjogYm9vbGVhbjsgfScgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICd7IHdoZW46IGJvb2xlYW47IGtleWVkOiB0cnVlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiB0cnVlKSA9PiBFbGVtZW50KTsgfSc6IGtleWVkLCBjaGlsZHJlblxuXG5cdTAwMWJbN20xOTM0XHUwMDFiWzI3bSAgICAgICAgICAgPFNob3cgd2hlbj17cHJldmlld3MoKS5sZW5ndGggPiAwfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTJYXHUwMDFiWzkxbVx1MDAxYlsxMkN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cbiAgXHUwMDFiWzk2bW5vZGVfbW9kdWxlcy9zb2xpZC1qcy90eXBlcy9yZW5kZXIvZmxvdy5kLnRzXHUwMDFiW206XHUwMDFiWzkzbTQ4XHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbS1xuXHUwMDFiW21cbiAgICBcdTAwMWJbN200OFx1MDAxYlsyN20gICAgIGNoaWxkcmVuOiBKU1guRWxlbWVudCB8IFJlcXVpcmVkUGFyYW1ldGVyPFRSZW5kZXJGdW5jdGlvbj47XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkzNVx1MDAxYlttOlx1MDAxYls5M20xMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MzVcdTAwMWJbMjdtICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCBnYXAtMiBweC01IHB0LTIgYm9yZGVyLXQgYm9yZGVyLVsjZWVlZWVlXVwiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkzNlx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MzZcdTAwMWJbMjdtICAgICAgICAgICAgICAgPEZvciBlYWNoPXtbLi4ucHJldmlld3MoKV19PnsoaXRlbSkgPT4gPD57cHJldmlld0Rpc3BsYXkoaXRlbSl9PC8+fTwvRm9yPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkzNlx1MDAxYlttOlx1MDAxYls5M20xNiBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzI3NDE6IFx1MDAxYlttUHJvcGVydHkgJ2NoaWxkcmVuJyBpcyBtaXNzaW5nIGluIHR5cGUgJ3sgZWFjaDogRmlsZVByZXZpZXdbXTsgfScgYnV0IHJlcXVpcmVkIGluIHR5cGUgJ3sgZWFjaDogZmFsc2UgfCBGaWxlUHJldmlld1tdOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiAoaXRlbTogRmlsZVByZXZpZXcsIGluZGV4OiBcblx1MDAxYls3OzIyM0ggQWNjZXNzb3I8bnVtYmVyPikgPT4gRWxlbWVudDsgfScuXG5cblx1MDAxYls3bTE5MzZcdTAwMWJbMjdtICAgICAgICAgICAgICAgPEZvciBlYWNoPXtbLi4ucHJldmlld3MoKV19PnsoaXRlbSkgPT4gPD57cHJldmlld0Rpc3BsYXkoaXRlbSl9PC8+fTwvRm9yPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNlhcdTAwMWJbOTFtXHUwMDFiWzE2Q35+flx1MDAxYltLXG5cdTAwMWJbbVxuXG4gIFx1MDAxYls5Nm1ub2RlX21vZHVsZXMvc29saWQtanMvdHlwZXMvcmVuZGVyL2Zsb3cuZC50c1x1MDAxYlttOlx1MDAxYls5M20xOVx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW0tcblx1MDAxYlttXG4gICAgXHUwMDFiWzdtMTlcdTAwMWJbMjdtICAgICBjaGlsZHJlbjogKGl0ZW06IFRbbnVtYmVyXSwgaW5kZXg6IEFjY2Vzc29yPG51bWJlcj4pID0+IFU7XHUwMDFiW0tcbiAgICBcdTAwMWJbN20gIFx1MDAxYlsyN20gICAgIFx1MDAxYls5Nm1+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuICAgICdjaGlsZHJlbicgaXMgZGVjbGFyZWQgaGVyZS5cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTkzNlx1MDAxYlttOlx1MDAxYls5M201NCBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5MzZcdTAwMWJbMjdtICAgICAgICAgICAgICAgPEZvciBlYWNoPXtbLi4ucHJldmlld3MoKV19PnsoaXRlbSkgPT4gPD57cHJldmlld0Rpc3BsYXkoaXRlbSl9PC8+fTwvRm9yPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYls1NFhcdTAwMWJbOTFtXHUwMDFiWzU0Q35+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5NDBcdTAwMWJbbTpcdTAwMWJbOTNtMTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTQwXHUwMDFiWzI3bSAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTIgbXQtMiBtbC1bMjRweF1cIj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTNYXHUwMDFiWzkxbVx1MDAxYlsxM0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5NDFcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTQxXHUwMDFiWzI3bSAgICAgICAgICAgICAgIDxGb3IgZWFjaD17c3VnZ2VzdFF1ZXN0aW9uKCl9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTQxXHUwMDFiW206XHUwMDFiWzkzbTE2IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjc0MTogXHUwMDFiW21Qcm9wZXJ0eSAnY2hpbGRyZW4nIGlzIG1pc3NpbmcgaW4gdHlwZSAneyBlYWNoOiBhbnlbXTsgfScgYnV0IHJlcXVpcmVkIGluIHR5cGUgJ3sgZWFjaDogZmFsc2UgfCBhbnlbXTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogKGl0ZW06IGFueSwgaW5kZXg6IEFjY2Vzc29yPG51bWJlcj4pID0+IEVsZVxuXHUwMDFiWzc7MjIzSGVtZW50OyB9Jy5cblxuXHUwMDFiWzdtMTk0MVx1MDAxYlsyN20gICAgICAgICAgICAgICA8Rm9yIGVhY2g9e3N1Z2dlc3RRdWVzdGlvbigpfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTZYXHUwMDFiWzkxbVx1MDAxYlsxNkN+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuICBcdTAwMWJbOTZtbm9kZV9tb2R1bGVzL3NvbGlkLWpzL3R5cGVzL3JlbmRlci9mbG93LmQudHNcdTAwMWJbbTpcdTAwMWJbOTNtMTlcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYltLXG5cdTAwMWJbbVxuICAgIFx1MDAxYls3bTE5XHUwMDFiWzI3bSAgICAgY2hpbGRyZW46IChpdGVtOiBUW251bWJlcl0sIGluZGV4OiBBY2Nlc3NvcjxudW1iZXI+KSA9PiBVO1x1MDAxYltLXG4gICAgXHUwMDFiWzdtICBcdTAwMWJbMjdtICAgICBcdTAwMWJbOTZtfn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cbiAgICAnY2hpbGRyZW4nIGlzIGRlY2xhcmVkIGhlcmUuXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5NDNcdTAwMWJbbTpcdTAwMWJbOTNtMTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTQzXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE5WFx1MDAxYls5MW1cdTAwMWJbMTlDfn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTk0NFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJnLWdyYXktMTAwIGhvdmVyOmJnLWdyYXktMjAwIHRleHQtc20gdGV4dC1ncmF5LTgwMCBweS0yIHB4LTQgcm91bmRlZC1mdWxsIHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTIwMFwiXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20xOTQ2XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtsb2FkaW5nKCl9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xOTQ3XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICA+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5NTVcdTAwMWJbbTpcdTAwMWJbOTNtMTMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTU1XHUwMDFiWzI3bSAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTIgbXQtMiBtbC1bMjRweF1cIj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTNYXHUwMDFiWzkxbVx1MDAxYlsxM0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5NTZcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTU2XHUwMDFiWzI3bSAgICAgICAgICAgICAgIDxGb3JcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xOTU3XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgZWFjaD17KCgpID0+IHtcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMTk3Mlx1MDAxYlsyN20gICAgICAgICAgICAgICAgIH0pKCl9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTE5NzNcdTAwMWJbMjdtICAgICAgICAgICAgICAgPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5NTZcdTAwMWJbbTpcdTAwMWJbOTNtMTYgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMyNzQxOiBcdTAwMWJbbVByb3BlcnR5ICdjaGlsZHJlbicgaXMgbWlzc2luZyBpbiB0eXBlICd7IGVhY2g6IHN0cmluZ1tdOyB9JyBidXQgcmVxdWlyZWQgaW4gdHlwZSAneyBlYWNoOiBmYWxzZSB8IHN0cmluZ1tdOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiAoaXRlbTogc3RyaW5nLCBpbmRleDogQWNjZXNzb3I8bnVtYmVyXG5cdTAwMWJbNzsyMjNIcj4pID0+IEVsZW1lbnQ7IH0nLlxuXG5cdTAwMWJbN20xOTU2XHUwMDFiWzI3bSAgICAgICAgICAgICAgIDxGb3JcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTZYXHUwMDFiWzkxbVx1MDAxYlsxNkN+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuICBcdTAwMWJbOTZtbm9kZV9tb2R1bGVzL3NvbGlkLWpzL3R5cGVzL3JlbmRlci9mbG93LmQudHNcdTAwMWJbbTpcdTAwMWJbOTNtMTlcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYltLXG5cdTAwMWJbbVxuICAgIFx1MDAxYls3bTE5XHUwMDFiWzI3bSAgICAgY2hpbGRyZW46IChpdGVtOiBUW251bWJlcl0sIGluZGV4OiBBY2Nlc3NvcjxudW1iZXI+KSA9PiBVO1x1MDAxYltLXG4gICAgXHUwMDFiWzdtICBcdTAwMWJbMjdtICAgICBcdTAwMWJbOTZtfn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cbiAgICAnY2hpbGRyZW4nIGlzIGRlY2xhcmVkIGhlcmUuXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5NzVcdTAwMWJbbTpcdTAwMWJbOTNtMTkgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTc1XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE5WFx1MDAxYls5MW1cdTAwMWJbMTlDfn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMTk3Nlx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJnLWdyYXktMTAwIGhvdmVyOmJnLWdyYXktMjAwIHRleHQtc20gdGV4dC1ncmF5LTgwMCBweS0yIHB4LTQgcm91bmRlZC1mdWxsIHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTIwMFwiXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20xOTc4XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtsb2FkaW5nKCl9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xOTc5XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICA+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5ODZcdTAwMWJbbTpcdTAwMWJbOTNtMTEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTg2XHUwMDFiWzI3bSAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBweC01IHB0LTIgcGItMVwiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMVhcdTAwMWJbOTFtXHUwMDFiWzExQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTE5ODhcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xOTg4XHUwMDFiWzI3bSAgICAgICAgICAgICAgIDw+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk5MFx1MDAxYlttOlx1MDAxYls5M20xOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5OTBcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHAtNCBib3JkZXIgYm9yZGVyLVsjZWVlZWVlXVwiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxOVhcdTAwMWJbOTFtXHUwMDFiWzE5Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk5MVx1MDAxYlttOlx1MDAxYls5M20yMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5OTFcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTNcIj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjFYXHUwMDFiWzkxbVx1MDAxYlsyMUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMTk5Mlx1MDAxYlttOlx1MDAxYls5M20yMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTE5OTJcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtYmFzZVwiPlRvIHJlY29yZCBhdWRpbywgdXNlIG1vZGVybiBicm93c2VycyBsaWtlIENocm9tZSBvciBGaXJlZm94IHRoYXQgc3VwcG9ydCBhdWRpbyByZWNvcmRpbmcuPC9zcGFuPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyM1hcdTAwMWJbOTFtXHUwMDFiWzIzQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20xOTkzXHUwMDFiW206XHUwMDFiWzkzbTIzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTk5M1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjNYXHUwMDFiWzkxbVx1MDAxYlsyM0N+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xOTk0XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInB5LTIgcHgtNCBqdXN0aWZ5LWNlbnRlciBmbGV4IGl0ZW1zLWNlbnRlciBiZy1yZWQtNTAwIHRleHQtd2hpdGUgcm91bmRlZC1tZFwiXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMTk5Nlx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25SZWNvcmRpbmdDYW5jZWxsZWQoKX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20xOTk3XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjAwM1x1MDAxYlttOlx1MDAxYls5M20xOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIwMDNcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgIDxkaXZcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTlYXHUwMDFiWzkxbVx1MDAxYlsxOUN+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20yMDA0XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaC1bNThweF0gZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGNoYXRib3QtaW5wdXQgYm9yZGVyIGJvcmRlci1bI2VlZWVlZV1cIlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20yMDEwXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgIH19XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20yMDExXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICA+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwMTJcdTAwMWJbbTpcdTAwMWJbOTNtMjEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDEyXHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBweC00IHB5LTJcIj5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjFYXHUwMDFiWzkxbVx1MDAxYlsyMUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDEzXHUwMDFiW206XHUwMDFiWzkzbTIzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjAxM1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyM1hcdTAwMWJbOTFtXHUwMDFiWzIzQ35+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDE0XHUwMDFiW206XHUwMDFiWzkzbTI1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjAxNFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgICAgPENpcmNsZURvdEljb24gY29sb3I9XCJyZWRcIiAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyNVhcdTAwMWJbOTFtXHUwMDFiWzI1Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwMTZcdTAwMWJbbTpcdTAwMWJbOTNtMjMgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDE2XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e2VsYXBzZWRUaW1lKCkgfHwgJzAwOjAwJ308L3NwYW4+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzIzWFx1MDAxYls5MW1cdTAwMWJbMjNDfn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwMTdcdTAwMWJbbTpcdTAwMWJbOTNtNDggXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDE3XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZ1JlY29yZGluZygpICYmIDxzcGFuIGNsYXNzPVwibWwtMS41XCI+U2VuZGluZy4uLjwvc3Bhbj59XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzQ4WFx1MDAxYls5MW1cdTAwMWJbNDhDfn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIwMTlcdTAwMWJbbTpcdTAwMWJbOTNtMjEgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFMxNzAwNDogXHUwMDFiW21DYW5ub3QgdXNlIEpTWCB1bmxlc3MgdGhlICctLWpzeCcgZmxhZyBpcyBwcm92aWRlZC5cdTAwMWJbS1xuXG5cdTAwMWJbN20yMDE5XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyMVhcdTAwMWJbOTFtXHUwMDFiWzIxQ35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjAyMFx1MDAxYlttOlx1MDAxYls5M20yMyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIwMjBcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICA8Q2FuY2VsQnV0dG9uIGJ1dHRvbkNvbG9yPXtwcm9wcy50ZXh0SW5wdXQ/LnNlbmRCdXR0b25Db2xvcn0gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwibS0wXCIgb246Y2xpY2s9e29uUmVjb3JkaW5nQ2FuY2VsbGVkfT5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMjNYXHUwMDFiWzkxbVx1MDAxYlsyM0N+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDIxXHUwMDFiW206XHUwMDFiWzkzbTI1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjAyMVx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgJ2ZvbnQtZmFtaWx5JzogJ1BvcHBpbnMsIHNhbnMtc2VyaWYnIH19PlNlbmQ8L3NwYW4+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzI1WFx1MDAxYls5MW1cdTAwMWJbMjVDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDIzXHUwMDFiW206XHUwMDFiWzkzbTIzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjAyM1x1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgIDxTZW5kQnV0dG9uXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzIzWFx1MDAxYls5MW1cdTAwMWJbMjNDfn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTIwMjRcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRCdXR0b25Db2xvcj17cHJvcHMudGV4dElucHV0Py5zZW5kQnV0dG9uQ29sb3J9XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMjAyOFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgICAgICAgb246Y2xpY2s9e29uUmVjb3JkaW5nU3RvcHBlZH1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20yMDI5XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICAgICAgPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjAzMFx1MDAxYlttOlx1MDAxYls5M20yNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIwMzBcdTAwMWJbMjdtICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7ICdmb250LWZhbWlseSc6ICdQb3BwaW5zLCBzYW5zLXNlcmlmJyB9fT5TZW5kPC9zcGFuPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyNVhcdTAwMWJbOTFtXHUwMDFiWzI1Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjAzN1x1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIwMzdcdTAwMWJbMjdtICAgICAgICAgICAgICAgPD5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDM4XHUwMDFiW206XHUwMDFiWzkzbTUzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjAzOFx1MDAxYlsyN20gICAgICAgICAgICAgICAgIHtjdXJyZW50U3RhdHVzTXNnKCkgJiYgbG9hZGluZygpICYmIDxkaXYgc3R5bGU9e3sgY29sb3I6IHByb3BzLnRleHRJbnB1dD8udGV4dENvbG9yID8/ICdibGFjaycgfX0+e2N1cnJlbnRTdGF0dXNNc2coKX08L2Rpdj59XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzUzWFx1MDAxYls5MW1cdTAwMWJbNTNDfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjAzOVx1MDAxYlttOlx1MDAxYls5M20xNyBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIwMzlcdTAwMWJbMjdtICAgICAgICAgICAgICAgICA8VGV4dElucHV0XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzE3WFx1MDAxYls5MW1cdTAwMWJbMTdDfn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjA0MFx1MDAxYlsyN20gICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yPXtwcm9wcy50ZXh0SW5wdXQ/LmJhY2tncm91bmRDb2xvcn1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20yMDY1XHUwMDFiWzI3bSAgICAgICAgICAgICAgICAgICBzZXREaXNhYmxlSW5wdXQ9e3NldERpc2FibGVJbnB1dH1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjA2Nlx1MDAxYlsyN20gICAgICAgICAgICAgICAgIC8+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjA3MFx1MDAxYlttOlx1MDAxYls5M20xMSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIwNzBcdTAwMWJbMjdtICAgICAgICAgICA8QmFkZ2VcdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTFYXHUwMDFiWzkxbVx1MDAxYlsxMUN+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTIwNzFcdTAwMWJbMjdtICAgICAgICAgICAgIGZvb3Rlcj17cHJvcHMuZm9vdGVyfVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20yMDc0XHUwMDFiWzI3bSAgICAgICAgICAgICBib3RDb250YWluZXI9e2JvdENvbnRhaW5lcn1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjA3NVx1MDAxYlsyN20gICAgICAgICAgIC8+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjA3N1x1MDAxYlttOlx1MDAxYls5M205IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjA3N1x1MDAxYlsyN20gICAgICAgICA8U2hvdyB3aGVuPXtzaG93U2Nyb2xsQnV0dG9uKCl9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYls5WFx1MDAxYls5MW1cdTAwMWJbOUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDc3XHUwMDFiW206XHUwMDFiWzkzbTEwIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjc2OTogXHUwMDFiW21ObyBvdmVybG9hZCBtYXRjaGVzIHRoaXMgY2FsbC5cdTAwMWJbS1xuICBPdmVybG9hZCAxIG9mIDIsICcocHJvcHM6IHsgd2hlbjogYm9vbGVhbjsga2V5ZWQ/OiBmYWxzZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogQWNjZXNzb3I8dHJ1ZT4pID0+IEVsZW1lbnQpOyB9KTogRWxlbWVudCcsIGdhdmUgdGhlIGZvbGxvd2luZyBlcnJvci5cbiAgICBQcm9wZXJ0eSAnY2hpbGRyZW4nIGlzIG1pc3NpbmcgaW4gdHlwZSAneyB3aGVuOiBib29sZWFuOyB9JyBidXQgcmVxdWlyZWQgaW4gdHlwZSAneyB3aGVuOiBib29sZWFuOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3Nvcjx0cnVlPikgPT4gRWxlbWVudCk7IH0nLlxuICBPdmVybG9hZCAyIG9mIDIsICcocHJvcHM6IHsgd2hlbjogYm9vbGVhbjsga2V5ZWQ6IHRydWU7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IHRydWUpID0+IEVsZW1lbnQpOyB9KTogRWxlbWVudCcsIGdhdmUgdGhlIGZvbGxvd2luZyBlcnJvci5cbiAgICBUeXBlICd7IHdoZW46IGJvb2xlYW47IH0nIGlzIG1pc3NpbmcgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGZyb20gdHlwZSAneyB3aGVuOiBib29sZWFuOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogdHJ1ZSkgPT4gRWxlbWVudCk7IH0nOiBrZXllZCwgY2hpbGRyZW5cblxuXHUwMDFiWzdtMjA3N1x1MDAxYlsyN20gICAgICAgICA8U2hvdyB3aGVuPXtzaG93U2Nyb2xsQnV0dG9uKCl9Plx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxMFhcdTAwMWJbOTFtXHUwMDFiWzEwQ35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuICBcdTAwMWJbOTZtbm9kZV9tb2R1bGVzL3NvbGlkLWpzL3R5cGVzL3JlbmRlci9mbG93LmQudHNcdTAwMWJbbTpcdTAwMWJbOTNtNDhcdTAwMWJbbTpcdTAwMWJbOTNtNVx1MDAxYltLXG5cdTAwMWJbbVxuICAgIFx1MDAxYls3bTQ4XHUwMDFiWzI3bSAgICAgY2hpbGRyZW46IEpTWC5FbGVtZW50IHwgUmVxdWlyZWRQYXJhbWV0ZXI8VFJlbmRlckZ1bmN0aW9uPjtcdTAwMWJbS1xuICAgIFx1MDAxYls3bSAgXHUwMDFiWzI3bSAgICAgXHUwMDFiWzk2bX5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG4gICAgJ2NoaWxkcmVuJyBpcyBkZWNsYXJlZCBoZXJlLlxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDc4XHUwMDFiW206XHUwMDFiWzkzbTExIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjA3OFx1MDAxYlsyN20gICAgICAgICAgIDxidXR0b25cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTFYXHUwMDFiWzkxbVx1MDAxYlsxMUN+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20yMDc5XHUwMDFiWzI3bSAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjaGF0Q29udGFpbmVyPy5zY3JvbGxUbyh7IHRvcDogY2hhdENvbnRhaW5lci5zY3JvbGxIZWlnaHQsIGJlaGF2aW9yOiAnc21vb3RoJyB9KX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtIC4uLlx1MDAxYlsyN21cdTAwMWJbS1xuXHUwMDFiWzdtMjA4MVx1MDAxYlsyN20gICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNjcm9sbCB0byBib3R0b21cIlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTIwODJcdTAwMWJbMjdtICAgICAgICAgICA+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDgzXHUwMDFiW206XHUwMDFiWzkzbTEzIFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjA4M1x1MDAxYlsyN20gICAgICAgICAgICAgPHN2Z1x1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsxM1hcdTAwMWJbOTFtXHUwMDFiWzEzQ35+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTIwODRcdTAwMWJbMjdtICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTIwOTJcdTAwMWJbMjdtICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjA5M1x1MDAxYlsyN20gICAgICAgICAgICAgPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvQm90LnRzeFx1MDAxYlttOlx1MDAxYls5M20yMDk0XHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXG5cblx1MDAxYls3bTIwOTRcdTAwMWJbMjdtICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMiA1djE0TTE5IDEybC03IDctNy03XCIgLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjA5OVx1MDAxYlttOlx1MDAxYls5M20yOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIwOTlcdTAwMWJbMjdtICAgICAgIHtzb3VyY2VQb3B1cE9wZW4oKSAmJiA8UG9wdXAgaXNPcGVuPXtzb3VyY2VQb3B1cE9wZW4oKX0gdmFsdWU9e3NvdXJjZVBvcHVwU3JjKCl9IG9uQ2xvc2U9eygpID0+IHNldFNvdXJjZVBvcHVwT3BlbihmYWxzZSl9IC8+fVx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bVx1MDAxYlsyOVhcdTAwMWJbOTFtXHUwMDFiWzI5Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjEwMlx1MDAxYlttOlx1MDAxYls5M205IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjEwMlx1MDAxYlsyN20gICAgICAgICA8RGlzY2xhaW1lclBvcHVwXHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzlYXHUwMDFiWzkxbVx1MDAxYls5Q35+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTIxMDNcdTAwMWJbMjdtICAgICAgICAgICBpc09wZW49e2Rpc2NsYWltZXJQb3B1cE9wZW4oKX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bSAuLi5cdTAwMWJbMjdtXHUwMDFiW0tcblx1MDAxYls3bTIxMTJcdTAwMWJbMjdtICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e3Byb3BzLmRpc2NsYWltZXI/LmJhY2tncm91bmRDb2xvcn1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblx1MDAxYls3bTIxMTNcdTAwMWJbMjdtICAgICAgICAgLz5cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjExNlx1MDAxYlttOlx1MDAxYls5M203IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMTcwMDQ6IFx1MDAxYlttQ2Fubm90IHVzZSBKU1ggdW5sZXNzIHRoZSAnLS1qc3gnIGZsYWcgaXMgcHJvdmlkZWQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMjExNlx1MDAxYlsyN20gICAgICAgPFNob3cgd2hlbj17aXNOZXR3b3JrRXJyb3IoKX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtICAgICAgIFx1MDAxYls5MW1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL0JvdC50c3hcdTAwMWJbbTpcdTAwMWJbOTNtMjExNlx1MDAxYlttOlx1MDAxYls5M204IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTMjc2OTogXHUwMDFiW21ObyBvdmVybG9hZCBtYXRjaGVzIHRoaXMgY2FsbC5cdTAwMWJbS1xuICBPdmVybG9hZCAxIG9mIDIsICcocHJvcHM6IHsgd2hlbjogYm9vbGVhbjsga2V5ZWQ/OiBmYWxzZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogQWNjZXNzb3I8dHJ1ZT4pID0+IEVsZW1lbnQpOyB9KTogRWxlbWVudCcsIGdhdmUgdGhlIGZvbGxvd2luZyBlcnJvci5cbiAgICBQcm9wZXJ0eSAnY2hpbGRyZW4nIGlzIG1pc3NpbmcgaW4gdHlwZSAneyB3aGVuOiBib29sZWFuOyB9JyBidXQgcmVxdWlyZWQgaW4gdHlwZSAneyB3aGVuOiBib29sZWFuOyBrZXllZD86IGZhbHNlOyBmYWxsYmFjaz86IEVsZW1lbnQ7IGNoaWxkcmVuOiBFbGVtZW50IHwgKChpdGVtOiBBY2Nlc3Nvcjx0cnVlPikgPT4gRWxlbWVudCk7IH0nLlxuICBPdmVybG9hZCAyIG9mIDIsICcocHJvcHM6IHsgd2hlbjogYm9vbGVhbjsga2V5ZWQ6IHRydWU7IGZhbGxiYWNrPzogRWxlbWVudDsgY2hpbGRyZW46IEVsZW1lbnQgfCAoKGl0ZW06IHRydWUpID0+IEVsZW1lbnQpOyB9KTogRWxlbWVudCcsIGdhdmUgdGhlIGZvbGxvd2luZyBlcnJvci5cbiAgICBUeXBlICd7IHdoZW46IGJvb2xlYW47IH0nIGlzIG1pc3NpbmcgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGZyb20gdHlwZSAneyB3aGVuOiBib29sZWFuOyBrZXllZDogdHJ1ZTsgZmFsbGJhY2s/OiBFbGVtZW50OyBjaGlsZHJlbjogRWxlbWVudCB8ICgoaXRlbTogdHJ1ZSkgPT4gRWxlbWVudCk7IH0nOiBrZXllZCwgY2hpbGRyZW5cblxuXHUwMDFiWzdtMjExNlx1MDAxYlsyN20gICAgICAgPFNob3cgd2hlbj17aXNOZXR3b3JrRXJyb3IoKX0+XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtICAgICAgICBcdTAwMWJbOTFtfn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG4gIFx1MDAxYls5Nm1ub2RlX21vZHVsZXMvc29saWQtanMvdHlwZXMvcmVuZGVyL2Zsb3cuZC50c1x1MDAxYlttOlx1MDAxYls5M200OFx1MDAxYlttOlx1MDAxYls5M201XHUwMDFiW0tcblx1MDAxYlttXG4gICAgXHUwMDFiWzdtNDhcdTAwMWJbMjdtICAgICBjaGlsZHJlbjogSlNYLkVsZW1lbnQgfCBSZXF1aXJlZFBhcmFtZXRlcjxUUmVuZGVyRnVuY3Rpb24+O1x1MDAxYltLXG4gICAgXHUwMDFiWzdtICBcdTAwMWJbMjdtICAgICBcdTAwMWJbOTZtfn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cbiAgICAnY2hpbGRyZW4nIGlzIGRlY2xhcmVkIGhlcmUuXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiW206XHUwMDFiWzkzbTIxMTdcdTAwMWJbbTpcdTAwMWJbOTNtOSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzE3MDA0OiBcdTAwMWJbbUNhbm5vdCB1c2UgSlNYIHVubGVzcyB0aGUgJy0tanN4JyBmbGFnIGlzIHByb3ZpZGVkLlx1MDAxYltLXG5cblx1MDAxYls3bTIxMTdcdTAwMWJbMjdtICAgICAgICAgPFRvYXN0XHUwMDFiW0tcblx1MDAxYls3bSAgICBcdTAwMWJbMjdtXHUwMDFiWzlYXHUwMDFiWzkxbVx1MDAxYls5Q35+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjExOFx1MDAxYlsyN20gICAgICAgICAgIG1lc3NhZ2U9e25ldHdvcmtFcnJvck1lc3NhZ2UoKX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cdTAwMWJbN20gLi4uXHUwMDFiWzI3bVx1MDAxYltLXG5cdTAwMWJbN20yMTI0XHUwMDFiWzI3bSAgICAgICAgICAgfX1cdTAwMWJbS1xuXHUwMDFiWzdtICAgIFx1MDAxYlsyN20gXHUwMDFiWzkxbX5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXHUwMDFiWzdtMjEyNVx1MDAxYlsyN20gICAgICAgICAvPlx1MDAxYltLXG5cdTAwMWJbN20gICAgXHUwMDFiWzI3bSBcdTAwMWJbOTFtfn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvaWNvbnMvaW5kZXgudHNcdTAwMWJbbTpcdTAwMWJbOTNtMVx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL0NsaXBib2FyZEljb24nIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2ljb25zL0NsaXBib2FyZEljb24udHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN20xXHUwMDFiWzI3bSBleHBvcnQgKiBmcm9tICcuL0NsaXBib2FyZEljb24nO1x1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pY29ucy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M20yXHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vVGh1bWJzRG93bkljb24nIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2ljb25zL1RodW1ic0Rvd25JY29uLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMlx1MDAxYlsyN20gZXhwb3J0ICogZnJvbSAnLi9UaHVtYnNEb3duSWNvbic7XHUwMDFiW0tcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pY29ucy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M20zXHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vVGh1bWJzVXBJY29uJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9pY29ucy9UaHVtYnNVcEljb24udHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN20zXHUwMDFiWzI3bSBleHBvcnQgKiBmcm9tICcuL1RodW1ic1VwSWNvbic7XHUwMDFiW0tcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvaWNvbnMvaW5kZXgudHNcdTAwMWJbbTpcdTAwMWJbOTNtNFx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL0FkZEltYWdlSWNvbicgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvaWNvbnMvQWRkSW1hZ2VJY29uLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtNFx1MDAxYlsyN20gZXhwb3J0ICogZnJvbSAnLi9BZGRJbWFnZUljb24nO1x1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTVcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9DaXJjbGVEb3RJY29uJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9pY29ucy9DaXJjbGVEb3RJY29uLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtNVx1MDAxYlsyN20gZXhwb3J0ICogZnJvbSAnLi9DaXJjbGVEb3RJY29uJztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvaWNvbnMvaW5kZXgudHNcdTAwMWJbbTpcdTAwMWJbOTNtNlx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL0RlbGV0ZUljb24nIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2ljb25zL0RlbGV0ZUljb24udHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN202XHUwMDFiWzI3bSBleHBvcnQgKiBmcm9tICcuL0RlbGV0ZUljb24nO1x1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsxNVhcdTAwMWJbOTFtXHUwMDFiWzE1Q35+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pY29ucy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M203XHUwMDFiW206XHUwMDFiWzkzbTE1IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vUmVjb3JkSWNvbicgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvaWNvbnMvUmVjb3JkSWNvbi50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTdcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vUmVjb3JkSWNvbic7XHUwMDFiW0tcblx1MDAxYls3bSBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbThcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9TZW5kSWNvbicgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvaWNvbnMvU2VuZEljb24udHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC5cdTAwMWJbS1xuXG5cdTAwMWJbN204XHUwMDFiWzI3bSBleHBvcnQgKiBmcm9tICcuL1NlbmRJY29uJztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzk2bXNyYy9jb21wb25lbnRzL2ljb25zL2luZGV4LnRzXHUwMDFiW206XHUwMDFiWzkzbTlcdTAwMWJbbTpcdTAwMWJbOTNtMTUgXHUwMDFiW20tIFx1MDAxYls5MW1lcnJvciBcdTAwMWJbOTBtVFM2MTQyOiBcdTAwMWJbbU1vZHVsZSAnLi9UcmFzaEljb24nIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2ljb25zL1RyYXNoSWNvbi50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTlcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vVHJhc2hJY29uJztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMTVYXHUwMDFiWzkxbVx1MDAxYlsxNUN+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pY29ucy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M20xMFx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL1hJY29uJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9pY29ucy9YSWNvbi50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTEwXHUwMDFiWzI3bSBleHBvcnQgKiBmcm9tICcuL1hJY29uJztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pY29ucy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M20xMVx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL1RpY2tJY29uJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9pY29ucy9UaWNrSWNvbi50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTExXHUwMDFiWzI3bSBleHBvcnQgKiBmcm9tICcuL1RpY2tJY29uJztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pY29ucy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M20xMlx1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL0F0dGFjaG1lbnRJY29uJyB3YXMgcmVzb2x2ZWQgdG8gJ0U6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC9zcmMvY29tcG9uZW50cy9pY29ucy9BdHRhY2htZW50SWNvbi50c3gnLCBidXQgJy0tanN4JyBpcyBub3Qgc2V0Llx1MDAxYltLXG5cblx1MDAxYls3bTEyXHUwMDFiWzI3bSBleHBvcnQgKiBmcm9tICcuL0F0dGFjaG1lbnRJY29uJztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5+fn5+XHUwMDFiW0tcblx1MDAxYlttXG5cblx1MDAxYls5Nm1zcmMvY29tcG9uZW50cy9pY29ucy9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M20xM1x1MDAxYlttOlx1MDAxYls5M20xNSBcdTAwMWJbbS0gXHUwMDFiWzkxbWVycm9yIFx1MDAxYls5MG1UUzYxNDI6IFx1MDAxYlttTW9kdWxlICcuL1NwYXJrbGVzSWNvbicgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvaWNvbnMvU3BhcmtsZXNJY29uLnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuXHUwMDFiW0tcblxuXHUwMDFiWzdtMTNcdTAwMWJbMjdtIGV4cG9ydCAqIGZyb20gJy4vU3BhcmtsZXNJY29uJztcdTAwMWJbS1xuXHUwMDFiWzdtICBcdTAwMWJbMjdtXHUwMDFiWzE1WFx1MDAxYls5MW1cdTAwMWJbMTVDfn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvaW5wdXRzL3RleHRJbnB1dC9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M20xXHUwMDFiW206XHUwMDFiWzkzbTI3IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vY29tcG9uZW50cy9UZXh0SW5wdXQnIHdhcyByZXNvbHZlZCB0byAnRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3NyYy9jb21wb25lbnRzL2lucHV0cy90ZXh0SW5wdXQvY29tcG9uZW50cy9UZXh0SW5wdXQudHN4JywgYnV0ICctLWpzeCcgaXMgbm90IHNldC4gICAgIFx1MDAxYls4OzFIXG5cblx1MDAxYls3bTFcdTAwMWJbMjdtIGV4cG9ydCB7IFRleHRJbnB1dCB9IGZyb20gJy4vY29tcG9uZW50cy9UZXh0SW5wdXQnO1x1MDAxYltLXG5cdTAwMWJbN20gXHUwMDFiWzI3bVx1MDAxYlsyN1hcdTAwMWJbOTFtXHUwMDFiWzI3Q35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cdTAwMWJbOTZtc3JjL2NvbXBvbmVudHMvaW5wdXRzL3RleHRJbnB1dC9pbmRleC50c1x1MDAxYlttOlx1MDAxYls5M20yXHUwMDFiW206XHUwMDFiWzkzbTI5IFx1MDAxYlttLSBcdTAwMWJbOTFtZXJyb3IgXHUwMDFiWzkwbVRTNjE0MjogXHUwMDFiW21Nb2R1bGUgJy4vY29tcG9uZW50cy9GaWxlUHJldmlldycgd2FzIHJlc29sdmVkIHRvICdFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gvc3JjL2NvbXBvbmVudHMvaW5wdXRzL3RleHRJbnB1dC9jb21wb25lbnRzL0ZpbGVQcmV2aWV3LnRzeCcsIGJ1dCAnLS1qc3gnIGlzIG5vdCBzZXQuIFx1MDAxYls4OzFIXG5cblx1MDAxYls3bTJcdTAwMWJbMjdtIGV4cG9ydCB7IEZpbGVQcmV2aWV3IH0gZnJvbSAnLi9jb21wb25lbnRzL0ZpbGVQcmV2aWV3JztcdTAwMWJbS1xuXHUwMDFiWzdtIFx1MDAxYlsyN21cdTAwMWJbMjlYXHUwMDFiWzkxbVx1MDAxYlsyOUN+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flx1MDAxYltLXG5cdTAwMWJbbVxuXG5cbkZvdW5kIDE0NSBlcnJvcnMgaW4gMyBmaWxlcy5cblxuRXJyb3JzICBGaWxlc1xuICAgMTMwICBzcmMvY29tcG9uZW50cy9Cb3QudHN4XHUwMDFiWzkwbToxXHUwMDFiW0tcdTAwMWJbbVxuICAgIDEzICBzcmMvY29tcG9uZW50cy9pY29ucy9pbmRleC50c1x1MDAxYls5MG06MVx1MDAxYltLXHUwMDFiW21cbiAgICAgMiAgc3JjL2NvbXBvbmVudHMvaW5wdXRzL3RleHRJbnB1dC9pbmRleC50c1x1MDAxYls5MG06MVx1MDAxYltLXHUwMDFiW21cblx1MDAxYlszMW1lcnJvclx1MDAxYlttXHUwMDFiWzJtOlx1MDAxYlsyMm0gXCJcdTAwMWJbMW10c2MuY21kXHUwMDFiWzIybVwiIGV4aXRlZCB3aXRoIGNvZGUgMlxuXG4gICAgICAgIDwvc3Rkb3V0PlxuICAgICAgICA8c3RkZXJyPlxuICAgICAgICBcbiAgICAgICAgPC9zdGRlcnI+IiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiZTA1NmZhYmItMGRkMi00Y2E1LTlmZjAtMzQ3NDFmNmYzNjVhO3Rvb2x1X3ZydHhfMDFFSkxWcWI0QlRxZmtZd2pGZUFMTTd0Ijp7InJlcXVlc3RJZCI6ImUwNTZmYWJiLTBkZDItNGNhNS05ZmYwLTM0NzQxZjZmMzY1YSIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFFSkxWcWI0QlRxZmtZd2pGZUFMTTd0IiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiSGVyZSBhcmUgdGhlIHJlc3VsdHMgZnJvbSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuXG4gICAgICAgIDxyZXR1cm4tY29kZT5cbiAgICAgICAgMVxuICAgICAgICA8L3JldHVybi1jb2RlPlxuICAgICAgICA8c3Rkb3V0PlxuICAgICAgICBcdTAwMWJbPzkwMDFoXHUwMDFiWz8xMDA0aFx1MDAxYls/MjVsXHUwMDFiWzJKXHUwMDFiW21cdTAwMWJbSFxuXG5cblxuXG5cblxuXHUwMDFiW0hcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1x1MDAxYls/MjVoXHUwMDFiXTA7bnBtXHUwMDA3XHUwMDFiXTA7bnBtIHJ1biBidWlsZFx1MDAwN1x1MDAxYls/MjVsXG4+IGNtY3RzLWMtYWdlbnQtZW1iZWRkaW5nQDEuMC40MCBidWlsZFxuPiBjcm9zcy1lbnYgTk9ERV9FTlY9cHJvZHVjdGlvbiByb2xsdXAgLS1jb25maWcgcm9sbHVwLmNvbmZpZy5qc1x1MDAxYls1OzFIXHUwMDFiW0tcdTAwMWJbPzI1aFx1MDAxYlszNm1cdTAwMWJbMW1cbi4vc3JjL3dlYi50c1x1MDAxYlsyMm0g4oaSIFx1MDAxYlsxbWRpc3Qvd2ViLmpzXHUwMDFiWzIybS4uLlxuXHUwMDFiW21cdTAwMWJbMzNtXHUwMDFiWzFtKCEpIFBsdWdpbiB0eXBlc2NyaXB0OiBAcm9sbHVwL3BsdWdpbi10eXBlc2NyaXB0IFRTMjMwNzogQ2Fubm90IGZpbmQgbW9kdWxlICcuL1RvYXN0JyBvciBpdHMgY29ycmVzcG9uZGluZyB0eXBlIGRlY2xhcmF0aW9ucy5cdTAwMWJbbVx1MDAxYlsxbVxuc3JjL2NvbXBvbmVudHMvQm90LnRzeDogKDQyOjIzKVxuXHUwMDFiWzIybVxuXG5cdTAwMWJbOTBtXHUwMDFiWzdtNDJcdTAwMWJbbSBpbXBvcnQgeyBUb2FzdCB9IGZyb20gJy4vVG9hc3QnO1x1MDAxYltLXG5cdTAwMWJbN20gIFx1MDAxYlsyN21cdTAwMWJbMjNYXHUwMDFiWzkxbVx1MDAxYlsyM0N+fn5+fn5+fn5cdTAwMWJbS1xuXHUwMDFiW21cblxuXHUwMDFiWzMxbVx1MDAxYlsxbVshXSBSb2xsdXBFcnJvcjogQ291bGQgbm90IHJlc29sdmUgXCIuL1RvYXN0XCIgZnJvbSBcInNyYy9jb21wb25lbnRzL0JvdC50c3hcIlx1MDAxYlttXHUwMDFiW0tcbnNyYy9jb21wb25lbnRzL0JvdC50c3hcblx1MDAxYlsybSAgICBhdCBlcnJvciAoRTpcXEZsb3dpc2Utc2hhcmUtY2hhdGJveFxcbm9kZV9tb2R1bGVzXFxyb2xsdXBcXGRpc3RcXHNoYXJlZFxccm9sbHVwLmpzOjI3ODozMClcdTAwMWJbMjJtXHUwMDFiW0tcblx1MDAxYlsybSAgICBhdCBNb2R1bGVMb2FkZXIuaGFuZGxlSW52YWxpZFJlc29sdmVkSWQgKEU6XFxGbG93aXNlLXNoYXJlLWNoYXRib3hcXG5vZGVfbW9kdWxlc1xccm9sbHVwXFxkaXN0XFxzaGFyZWRcXHJvbGx1cC5qczoyNDQ4NToyNClcdTAwMWJbMjJtXHUwMDFiW0tcblx1MDAxYlsybSAgICBhdCBFOlxcRmxvd2lzZS1zaGFyZS1jaGF0Ym94XFxub2RlX21vZHVsZXNcXHJvbGx1cFxcZGlzdFxcc2hhcmVkXFxyb2xsdXAuanM6MjQ0NDc6MjZcdTAwMWJbMjJtXHUwMDFiW0tcblxuXG5cdTAwMWJbS1x1MDAxYl0wO0M6XFxXSU5ET1dTXFxTeXN0ZW0zMlxcV2luZG93c1Bvd2VyU2hlbGxcXHYxLjBcXHBvd2Vyc2hlbGwuZXhlXHUwMDA3XG4gICAgICAgIDwvc3Rkb3V0PlxuICAgICAgICA8c3RkZXJyPlxuICAgICAgICBcbiAgICAgICAgPC9zdGRlcnI+IiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiNjEzZGY2M2YtZjNlYi00NzMzLWE0MTEtZTc0NDY1M2ZjNDNiO3Rvb2x1X3ZydHhfMDFLZk1LcWFKRFJaMmF1R1d6cmZIekJvIjp7InJlcXVlc3RJZCI6IjYxM2RmNjNmLWYzZWItNDczMy1hNDExLWU3NDQ2NTNmYzQzYiIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFLZk1LcWFKRFJaMmF1R1d6cmZIekJvIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiSGVyZSdzIHRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdXAgdG8gMiBsZXZlbHMgZGVlcCBpbiBzcmMvY29tcG9uZW50cywgZXhjbHVkaW5nIGhpZGRlbiBpdGVtczpcbnNyYy9jb21wb25lbnRzL0JhZGdlLnRzeFxuc3JjL2NvbXBvbmVudHMvQm90LnRzeFxuc3JjL2NvbXBvbmVudHMvRmVlZGJhY2tDb250ZW50RGlhbG9nLnRzeFxuc3JjL2NvbXBvbmVudHMvVHlwaW5nQnViYmxlLnRzeFxuc3JjL2NvbXBvbmVudHMvYXZhdGFyc1xuc3JjL2NvbXBvbmVudHMvYXZhdGFyc1xcQXZhdGFyLnRzeFxuc3JjL2NvbXBvbmVudHMvYXZhdGFyc1xcRGVmYXVsdEF2YXRhci50c3hcbnNyYy9jb21wb25lbnRzL2J1YmJsZXNcbnNyYy9jb21wb25lbnRzL2J1YmJsZXNcXEFnZW50UmVhc29uaW5nQnViYmxlLnRzeFxuc3JjL2NvbXBvbmVudHMvYnViYmxlc1xcQm90QnViYmxlLnRzeFxuc3JjL2NvbXBvbmVudHMvYnViYmxlc1xcRm9sbG93VXBQcm9tcHRCdWJibGUudHN4XG5zcmMvY29tcG9uZW50cy9idWJibGVzXFxHdWVzdEJ1YmJsZS50c3hcbnNyYy9jb21wb25lbnRzL2J1YmJsZXNcXExlYWRDYXB0dXJlQnViYmxlLnRzeFxuc3JjL2NvbXBvbmVudHMvYnViYmxlc1xcTG9hZGluZ0J1YmJsZS50c3hcbnNyYy9jb21wb25lbnRzL2J1YmJsZXNcXFNvdXJjZUJ1YmJsZS50c3hcbnNyYy9jb21wb25lbnRzL2J1YmJsZXNcXFN0YXJ0ZXJQcm9tcHRCdWJibGUudHN4XG5zcmMvY29tcG9uZW50cy9idXR0b25zXG5zcmMvY29tcG9uZW50cy9idXR0b25zXFxBdHRhY2htZW50VXBsb2FkQnV0dG9uLnRzeFxuc3JjL2NvbXBvbmVudHMvYnV0dG9uc1xcQ2FuY2VsQnV0dG9uLnRzeFxuc3JjL2NvbXBvbmVudHMvYnV0dG9uc1xcRmVlZGJhY2tCdXR0b25zLnRzeFxuc3JjL2NvbXBvbmVudHMvYnV0dG9uc1xcSW1hZ2VVcGxvYWRCdXR0b24udHN4XG5zcmMvY29tcG9uZW50cy9idXR0b25zXFxMZWFkQ2FwdHVyZUJ1dHRvbnMudHN4XG5zcmMvY29tcG9uZW50cy9idXR0b25zXFxSZWNvcmRBdWRpb0J1dHRvbi50c3hcbnNyYy9jb21wb25lbnRzL2J1dHRvbnNcXFNlbmRCdXR0b24udHN4XG5zcmMvY29tcG9uZW50cy9pY29uc1xuc3JjL2NvbXBvbmVudHMvaWNvbnNcXEFkZEltYWdlSWNvbi50c3hcbnNyYy9jb21wb25lbnRzL2ljb25zXFxBdHRhY2htZW50SWNvbi50c3hcbnNyYy9jb21wb25lbnRzL2ljb25zXFxDaXJjbGVEb3RJY29uLnRzeFxuc3JjL2NvbXBvbmVudHMvaWNvbnNcXENsaXBib2FyZEljb24udHN4XG5zcmMvY29tcG9uZW50cy9pY29uc1xcRGVsZXRlSWNvbi50c3hcbnNyYy9jb21wb25lbnRzL2ljb25zXFxSZWNvcmRJY29uLnRzeFxuc3JjL2NvbXBvbmVudHMvaWNvbnNcXFNlbmRJY29uLnRzeFxuc3JjL2NvbXBvbmVudHMvaWNvbnNcXFNwYXJrbGVzSWNvbi50c3hcbnNyYy9jb21wb25lbnRzL2ljb25zXFxUaHVtYnNEb3duSWNvbi50c3hcbnNyYy9jb21wb25lbnRzL2ljb25zXFxUaHVtYnNVcEljb24udHN4XG5zcmMvY29tcG9uZW50cy9pY29uc1xcVGlja0ljb24udHN4XG5zcmMvY29tcG9uZW50cy9pY29uc1xcVHJhc2hJY29uLnRzeFxuc3JjL2NvbXBvbmVudHMvaWNvbnNcXFhJY29uLnRzeFxuc3JjL2NvbXBvbmVudHMvaWNvbnNcXGluZGV4LnRzXG5zcmMvY29tcG9uZW50cy9pbmRleC50c1xuc3JjL2NvbXBvbmVudHMvaW5wdXRzXG5zcmMvY29tcG9uZW50cy9pbnB1dHNcXHRleHRJbnB1dFxuIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiM2MwZjE4MTktZWFhZS00NGU2LTlhZWUtMDc1N2Q5YTljNzZiO3Rvb2x1X3ZydHhfMDFHYThRcGdpVXc4Y0ozbmh0ZTdVb0NyIjp7InJlcXVlc3RJZCI6IjNjMGYxODE5LWVhYWUtNDRlNi05YWVlLTA3NTdkOWE5Yzc2YiIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFHYThRcGdpVXc4Y0ozbmh0ZTdVb0NyIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiRmlsZSBzYXZlZC4gIFNhdmVkIGZpbGUge3NyYy9jb21wb25lbnRzL1RvYXN0LnRzeH0iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCJjMGUzYTliNy1hN2U0LTRhYmItYmFjNy0wNzExYWIyMDAzMGY7dG9vbHVfdnJ0eF8wMU5yTkpvVTFVYmZvY2RqUjhTb3BMRjYiOnsicmVxdWVzdElkIjoiYzBlM2E5YjctYTdlNC00YWJiLWJhYzctMDcxMWFiMjAwMzBmIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMU5yTkpvVTFVYmZvY2RqUjhTb3BMRjYiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJIZXJlIGFyZSB0aGUgcmVzdWx0cyBmcm9tIGV4ZWN1dGluZyB0aGUgY29tbWFuZC5cbiAgICAgICAgPHJldHVybi1jb2RlPlxuICAgICAgICAwXG4gICAgICAgIDwvcmV0dXJuLWNvZGU+XG4gICAgICAgIDxzdGRvdXQ+XG4gICAgICAgIFx1MDAxYls/OTAwMWhcdTAwMWJbPzEwMDRoXHUwMDFiWz8yNWxcdTAwMWJbMkpcdTAwMWJbbVx1MDAxYltIXG5cblxuXG5cblxuXG5cdTAwMWJbSFx1MDAxYl0wO0M6XFxXSU5ET1dTXFxTeXN0ZW0zMlxcV2luZG93c1Bvd2VyU2hlbGxcXHYxLjBcXHBvd2Vyc2hlbGwuZXhlXHUwMDA3XHUwMDFiWz8yNWhcdTAwMWJdMDtucG1cdTAwMDdcdTAwMWJdMDtucG0gcnVuIGJ1aWxkXHUwMDA3XHUwMDFiWz8yNWxcbj4gY21jdHMtYy1hZ2VudC1lbWJlZGRpbmdAMS4wLjQwIGJ1aWxkXG4+IGNyb3NzLWVudiBOT0RFX0VOVj1wcm9kdWN0aW9uIHJvbGx1cCAtLWNvbmZpZyByb2xsdXAuY29uZmlnLmpzXHUwMDFiWzU7MUhcdTAwMWJbS1x1MDAxYls/MjVoXHUwMDFiWzM2bVx1MDAxYlsxbVxuLi9zcmMvd2ViLnRzXHUwMDFiWzIybSDihpIgXHUwMDFiWzFtZGlzdC93ZWIuanNcdTAwMWJbMjJtLi4uXG5cdTAwMWJbbUJyb3dzZXJzbGlzdDogYnJvd3NlcnMgZGF0YSAoY2FuaXVzZS1saXRlKSBpcyA2IG1vbnRocyBvbGQuIFBsZWFzZSBydW46XG4gIG5weCB1cGRhdGUtYnJvd3NlcnNsaXN0LWRiQGxhdGVzdFxuICBXaHkgeW91IHNob3VsZCBkbyBpdCByZWd1bGFybHk6IGh0dHBzOi8vZ2l0aHViLmNvbS9icm93c2Vyc2xpc3QvdXBkYXRlLWRiI3JlYWRtZVxuXHUwMDFiWzMzbVx1MDAxYlsxbSghKSBVc2Ugb2YgZXZhbCBpcyBzdHJvbmdseSBkaXNjb3VyYWdlZFxuXHUwMDFiW21cblx1MDAxYls5MG1odHRwczovL3JvbGx1cGpzLm9yZy90cm91Ymxlc2hvb3RpbmcvI2F2b2lkaW5nLWV2YWxcblx1MDAxYlttXG5cdTAwMWJbMW1ub2RlX21vZHVsZXMvcGRmanMtZGlzdC9idWlsZC9wZGYuanNcdTAwMWJbMjJtXHUwMDFiW0tcblx1MDAxYls5MG0xOTgwOiAgICAgICB9XG5cdTAwMWJbbVxuXHUwMDFiWzkwbTE5ODE6ICAgICAgIGlmIChfdXRpbC5pc05vZGVKUyAmJiB0eXBlb2YgcmVxdWlyZSA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdTAwMWJbbVxuXHUwMDFiWzkwbTE5ODI6ICAgICAgICAgY29uc3Qgd29ya2VyID0gZXZhbChcInJlcXVpcmVcIikodGhpcy53b3JrZXJTcmMpO1xuXHUwMDFiW21cblx1MDAxYls5MG0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5cblx1MDAxYlttXG5cdTAwMWJbOTBtMTk4MzogICAgICAgICByZXR1cm4gd29ya2VyLldvcmtlck1lc3NhZ2VIYW5kbGVyO1xuXHUwMDFiW21cblx1MDAxYls5MG0xOTg0OiAgICAgICB9XG5cdTAwMWJbbVxuXHUwMDFiWzMybWNyZWF0ZWQgXHUwMDFiWzFtZGlzdC93ZWIuanNcdTAwMWJbMjJtIGluIFx1MDAxYlsxbTEyLjFzXHUwMDFiW21cdTAwMWJbS1xuXHUwMDFiW0tcdTAwMWJdMDtDOlxcV0lORE9XU1xcU3lzdGVtMzJcXFdpbmRvd3NQb3dlclNoZWxsXFx2MS4wXFxwb3dlcnNoZWxsLmV4ZVx1MDAwN1xuICAgICAgICA8L3N0ZG91dD5cbiAgICAgICAgPHN0ZGVycj5cbiAgICAgICAgXG4gICAgICAgIDwvc3RkZXJyPiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sIjcyZTkwZDdmLTBmOWUtNDhmMC05MmU1LTkyNGEwYzQxMzBmYTt0b29sdV92cnR4XzAxTThTRVlKQzJQbXpjVVJIdmJMelJZNSI6eyJyZXF1ZXN0SWQiOiI3MmU5MGQ3Zi0wZjllLTQ4ZjAtOTJlNS05MjRhMGM0MTMwZmEiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxTThTRVlKQzJQbXpjVVJIdmJMelJZNSIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkZpbGUgc2F2ZWQuICBTYXZlZCBmaWxlIHtleGFtcGxlLW9uQmVmb3JlU2VuZC5odG1sfSIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX0sImFiZDBiYzAyLTE3MDYtNGVlNi05ZWYzLTU4ZDNjMGViYzExMDt0b29sdV92cnR4XzAxMXZNZzU2UG1KYnNuUjk2ZGFzNks5UyI6eyJyZXF1ZXN0SWQiOiJhYmQwYmMwMi0xNzA2LTRlZTYtOWVmMy01OGQzYzBlYmMxMTAiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxMXZNZzU2UG1KYnNuUjk2ZGFzNks5UyIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkZpbGUgc2F2ZWQuICBTYXZlZCBmaWxlIHtvbkJlZm9yZVNlbmQtUkVBRE1FLm1kfSIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX19LCJkcmFmdEV4Y2hhbmdlIjp7InJlcXVlc3RfbWVzc2FnZSI6IiIsInJpY2hfdGV4dF9qc29uX3JlcHIiOnsidHlwZSI6ImRvYyIsImNvbnRlbnQiOlt7InR5cGUiOiJwYXJhZ3JhcGgifV19LCJzdGF0dXMiOiJkcmFmdCJ9LCJkcmFmdEFjdGl2ZUNvbnRleHRJZHMiOlsiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94L3B1YmxpYy9pbmRleC5odG1sIiwiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94ZmFsc2VmYWxzZSIsIkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveC1tYWluZmFsc2VmYWxzZSIsInVzZXJHdWlkZWxpbmVzIiwiYWdlbnRNZW1vcmllcyJdLCJyZXF1ZXN0SWRzIjpbXSwiaXNQaW5uZWQiOmZhbHNlLCJpc1NoYXJlYWJsZSI6dHJ1ZSwiZXh0cmFEYXRhIjp7ImlzQWdlbnRDb252ZXJzYXRpb24iOnRydWUsImhhc0RpcnR5RWRpdHMiOnRydWUsImJhc2VsaW5lVGltZXN0YW1wIjoxNzQ4NTc4MDY4NTY2fSwicGVyc29uYVR5cGUiOjAsInJvb3RUYXNrVXVpZCI6ImFkYWVlY2U2LTljODItNDA2NC1hOWNkLWE4YjkyZmYzZWYzOCJ9LCJmOGY4NjgwYy04MTY2LTRiMWItYjJhOC1hMzgyMDk2OTM4Y2EiOnsiaWQiOiJmOGY4NjgwYy04MTY2LTRiMWItYjJhOC1hMzgyMDk2OTM4Y2EiLCJjcmVhdGVkQXRJc28iOiIyMDI1LTA1LTMwVDA0OjA5OjE3LjE0OFoiLCJsYXN0SW50ZXJhY3RlZEF0SXNvIjoiMjAyNS0wNS0zMFQwNDowOTo1OC44MzdaIiwiY2hhdEhpc3RvcnkiOlt7InJlcXVlc3RfaWQiOiIxZThlMTU3Mi04MDYxLTRjYzEtOGQ0Yy1hNThkMTk5MzVkYWIiLCJ1dWlkIjoiMTc0NDdkMDYtNzRhOS00MjJhLWEyNjMtZDRkMjZlNjBlNDM5IiwiY2hhdEl0ZW1UeXBlIjoiYWdlbnRpYy1jaGVja3BvaW50LWRlbGltaXRlciIsInN0YXR1cyI6InN1Y2Nlc3MiLCJmcm9tVGltZXN0YW1wIjowLCJ0b1RpbWVzdGFtcCI6MTc0ODU3ODE1NzE1Miwic2Vlbl9zdGF0ZSI6InNlZW4ifSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiMjFjNDdkNmYtM2ZmNC00YmQ0LTg3YjktNDYyOWNlMDU1OGI2IiwicmVxdWVzdF9tZXNzYWdlIjoiYWRkIG9uQmVmb3JlU2VuZCBwcm9wIGFuZCBhbGVydCBtZXNzYWdlIGluIHRoaXMgaW5kZXguaHRtbCIsInJpY2hfdGV4dF9qc29uX3JlcHIiOnsidHlwZSI6ImRvYyIsImNvbnRlbnQiOlt7InR5cGUiOiJwYXJhZ3JhcGgiLCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJhZGQgb25CZWZvcmVTZW5kIHByb3AgYW5kIGFsZXJ0IG1lc3NhZ2UgaW4gdGhpcyBpbmRleC5odG1sIn1dfV19LCJtZW50aW9uZWRfaXRlbXMiOltdLCJzdHJ1Y3R1cmVkX291dHB1dF9ub2RlcyI6W3siaWQiOjEsInR5cGUiOjUsImNvbnRlbnQiOiIiLCJ0b29sX3VzZSI6eyJ0b29sX3VzZV9pZCI6InRvb2x1X3ZydHhfMDFMZUV1NEFzNldCeGJHRzNNazVSVUt0IiwidG9vbF9uYW1lIjoidmlldyIsImlucHV0X2pzb24iOiJ7XCJwYXRoXCI6IFwicHVibGljL2luZGV4Lmh0bWxcIiwgXCJ0eXBlXCI6IFwiZmlsZVwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IkknbGwgaGVscCB5b3UgYWRkIGFuIGBvbkJlZm9yZVNlbmRgIHByb3AgYW5kIGFsZXJ0IG1lc3NhZ2UgdG8gdGhlIGluZGV4Lmh0bWwgZmlsZS4gTGV0IG1lIGZpcnN0IGV4YW1pbmUgdGhlIGN1cnJlbnQgZmlsZSB0byB1bmRlcnN0YW5kIGl0cyBzdHJ1Y3R1cmUuXG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjowLCJ0eXBlIjowLCJ0ZXh0X25vZGUiOnsiY29udGVudCI6ImFkZCBvbkJlZm9yZVNlbmQgcHJvcCBhbmQgYWxlcnQgbWVzc2FnZSBpbiB0aGlzIGluZGV4Lmh0bWwifX0seyJpZCI6MSwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowOTozMC4yMTJaIiwicmVzcG9uc2VfdGV4dCI6IkknbGwgaGVscCB5b3UgYWRkIGFuIGBvbkJlZm9yZVNlbmRgIHByb3AgYW5kIGFsZXJ0IG1lc3NhZ2UgdG8gdGhlIGluZGV4Lmh0bWwgZmlsZS4gTGV0IG1lIGZpcnN0IGV4YW1pbmUgdGhlIGN1cnJlbnQgZmlsZSB0byB1bmRlcnN0YW5kIGl0cyBzdHJ1Y3R1cmUuXG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiMmNlNzIzMzctYTkxMy00YjM5LTgyMzItNjMzOWJlYmZiYTAwIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxN0FKVVhaR3Q2YURjZHhkelNETjI3QiIsInRvb2xfbmFtZSI6ImNvZGViYXNlLXJldHJpZXZhbCIsImlucHV0X2pzb24iOiJ7XCJpbmZvcm1hdGlvbl9yZXF1ZXN0XCI6IFwiQ2hhdGJvdCBjb21wb25lbnQgaW5pdEZ1bGwgbWV0aG9kIGFuZCBpdHMgYXZhaWxhYmxlIHByb3BzLCBlc3BlY2lhbGx5IG9uQmVmb3JlU2VuZCBwcm9wIG9yIGNhbGxiYWNrIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIGJlZm9yZSBzZW5kaW5nIG1lc3NhZ2VzXCJ9IiwibWNwX3NlcnZlcl9uYW1lIjoiIiwibWNwX3Rvb2xfbmFtZSI6IiJ9fSx7ImlkIjowLCJ0eXBlIjowLCJjb250ZW50IjoiTm93IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIENoYXRib3QgY29tcG9uZW50IHRvIHNlZSBob3cgdG8gcHJvcGVybHkgYWRkIHRoZSBgb25CZWZvcmVTZW5kYCBwcm9wLiBMZXQgbWUgc2VhcmNoIGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQ2hhdGJvdCBjb21wb25lbnQgYW5kIGl0cyBhdmFpbGFibGUgcHJvcHMuXG4ifSx7ImlkIjoyLCJ0eXBlIjoyLCJjb250ZW50IjoiIn0seyJpZCI6MywidHlwZSI6MywiY29udGVudCI6IiJ9XSwic2Vlbl9zdGF0ZSI6InNlZW4iLCJzdHJ1Y3R1cmVkX3JlcXVlc3Rfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjoxLCJ0b29sX3Jlc3VsdF9ub2RlIjp7ImNvbnRlbnQiOiJIZXJlJ3MgdGhlIHJlc3VsdCBvZiBydW5uaW5nIGBjYXQgLW5gIG9uIHB1YmxpYy9pbmRleC5odG1sOlxuICAgICAxXHQ8IS0tXG4gICAgIDJcdCAgTk9URTogVGhpcyAuaHRtbCBmaWxlIChhbmQgcHVibGljIGZvbGRlcikgaXMgb3B0aW9uYWwgYW5kIGNhbiBiZSBzYWZlbHkgZGVsZXRlZC5cbiAgICAgM1x0ICBJdCBzZXJ2ZXMgb25seSBhcyBhIGRlbW8vdGVzdCBwYWdlLlxuICAgICA0XHQgIFxuICAgICA1XHQgIFRoZSBjaGF0Ym90IGNhbiBiZSBlbWJlZGRlZCBkaXJlY3RseSBvbiBhbnkgYWxsb3dlZCBkb21haW4gdXNpbmcgdGhlIGVtYmVkIHNjcmlwdCB0aGF0XG4gICAgIDZcdCAgaXMgZ2VuZXJhdGVkIHdoZW4gc3RhcnRpbmcgdGhlIHNlcnZlci5cbiAgICAgN1x0LS0+XG4gICAgIDhcdFxuICAgICA5XHQ8IWRvY3R5cGUgaHRtbD5cbiAgICAxMFx0PGh0bWwgbGFuZz1cImVuXCI+XG4gICAgMTFcdFxuICAgIDEyXHQ8aGVhZD5cbiAgICAxM1x0ICA8bWV0YSBjaGFyc2V0PVwiVVRGLThcIiAvPlxuICAgIDE0XHQgIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wXCIgLz5cbiAgICAxNVx0ICA8dGl0bGU+Rmxvd2lzZSBDaGF0Ym90IFdpZGdldDwvdGl0bGU+XG4gICAgMTZcdDwvaGVhZD5cbiAgICAxN1x0XG4gICAgMThcdDxib2R5PlxuICAgIDE5XHQgIDxkaXYgaWQ9XCJyb290XCI+XG4gICAgMjBcdCAgICA8Zmxvd2lzZS1mdWxsY2hhdGJvdD48L2Zsb3dpc2UtZnVsbGNoYXRib3Q+XG4gICAgMjFcdCAgPC9kaXY+XG4gICAgMjJcdCAgPHNjcmlwdCB0eXBlPVwibW9kdWxlXCI+XG4gICAgMjNcdCAgICBpbXBvcnQgQ2hhdGJvdCBmcm9tICcuL3dlYi5qcyc7XG4gICAgMjRcdFxuICAgIDI1XHQgICAgY29uc3QgY3VzdG9tU3RyaW5naWZ5ID0gKG9iaikgPT4ge1xuICAgIDI2XHQgICAgICBsZXQgc3RyaW5naWZpZWQgPSBKU09OLnN0cmluZ2lmeShvYmosIG51bGwsIDQpXG4gICAgMjdcdCAgICAgICAgLnJlcGxhY2UoL1wiKFteXCJdKylcIjovZywgJyQxOicpXG4gICAgMjhcdCAgICAgICAgLnJlcGxhY2UoLzogXCIoW15cIl0rKVwiL2csIChtYXRjaCwgdmFsdWUpID0+ICh2YWx1ZS5pbmNsdWRlcygnPCcpID8gYDogXCIke3ZhbHVlfVwiYCA6IGA6ICcke3ZhbHVlfSdgKSlcbiAgICAyOVx0ICAgICAgICAucmVwbGFjZSgvOiBcIih0cnVlfGZhbHNlfFxcZCspXCIvZywgJzogJDEnKVxuICAgIDMwXHQgICAgICAgIC5yZXBsYWNlKC9jdXN0b21DU1M6IFwiXCIvZywgJ2N1c3RvbUNTUzogYGAnKTtcbiAgICAzMVx0ICAgICAgcmV0dXJuIHN0cmluZ2lmaWVkXG4gICAgMzJcdCAgICAgICAgLnNwbGl0KCdcXG4nKVxuICAgIDMzXHQgICAgICAgIC5tYXAoKGxpbmUsIGluZGV4KSA9PiB7XG4gICAgMzRcdCAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHJldHVybiBsaW5lO1xuICAgIDM1XHQgICAgICAgICAgcmV0dXJuICcgJy5yZXBlYXQoOCkgKyBsaW5lO1xuICAgIDM2XHQgICAgICAgIH0pXG4gICAgMzdcdCAgICAgICAgLmpvaW4oJ1xcbicpO1xuICAgIDM4XHQgICAgfTtcbiAgICAzOVx0XG4gICAgNDBcdCAgICAvLyBFeGFtcGxlIGluaXRpYWxpemF0aW9uOlxuICAgIDQxXHQgICAgLy8gSWYgeW91ciAuZW52IGNvbnRhaW5zOlxuICAgIDQyXHQgICAgLy8gYWdlbnQxPXh5ejc4OS11dnc0NTYsaHR0cHM6Ly9leGFtcGxlLmNvbVxuICAgIDQzXHQgICAgLy8gc3VwcG9ydD1hYmMxMjMtZGVmNDU2LGh0dHBzOi8vZXhhbXBsZS5jb21cbiAgICA0NFx0ICAgIC8vIHNhbGVzYm90PWdoaTEyMy1qa2w0NTYsaHR0cHM6Ly9leGFtcGxlLmNvbVxuICAgIDQ1XHQgICAgLy9cbiAgICA0Nlx0ICAgIC8vIFRoZW4gdXNlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGFzIGNoYXRmbG93aWQ6XG4gICAgNDdcdCAgICBDaGF0Ym90LmluaXRGdWxsKHtcbiAgICA0OFx0ICAgICAgLy8gY2hhdGZsb3dpZDogJzZhNjNiYjg4LTg4ZjctNGM0ZC04MDVlLTljMDI3Yzg1NzA3YicsIC8vIG9yICdzdXBwb3J0JywgJ3NhbGVzYm90JywgZXRjLlxuICAgIDQ5XHQgICAgICAvLyBjaGF0Zmxvd2lkOiAnYjU3M2U2NmQtMGUyOC00Nzk4LThlNGYtZmJiYWZmOGUyMzZmJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXG4gICAgNTBcdCAgICAgIC8vIGNoYXRmbG93aWQ6ICc3ZWU4MDNiNC1lM2Y4LTRmMzMtYmY4NS1lZjlhYjlkNmY2OTMnLCAvLyBvciAnc3VwcG9ydCcsICdzYWxlc2JvdCcsIGV0Yy5cbiAgICA1MVx0ICAgICAgY2hhdGZsb3dpZDogJzIxN2JmZGU5LWQ0Y2ItNGIyYS1iNjM3LTg5ODkwYTk5OTBlZScsIC8vIG9yICdzdXBwb3J0JywgJ3NhbGVzYm90JywgZXRjLlxuICAgIDUyXHQgICAgICBhcGlIb3N0OiAnaHR0cHM6Ly92aWIuY2FnZW50LmNtY3RzLmFpJyxcbiAgICA1M1x0ICAgICAgLy8gYXBpSG9zdDogJ2h0dHBzOi8vYy1hZ2VudC5jbWN0cy5zdHVkaW8uYWkudm4nLFxuICAgIDU0XHQgICAgICBjaGF0d29vdFVybDogJ2h0dHBzOi8vbGl2ZWNoYXQuY2FnZW50LmNtY3RzLmFpJyxcbiAgICA1NVx0ICAgICAgcm9vbUlkczoge1xuICAgIDU2XHQgICAgICAgICcwMTIzNDU2Nzg5JzogJ1hhNkhtaGZiVTVLNzNaaEhuc3B6S2hxcycsXG4gICAgNTdcdCAgICAgIH0sXG4gICAgNThcdCAgICAgIHRoZW1lOiBjdXN0b21TdHJpbmdpZnkoe1xuICAgIDU5XHQgICAgICAgIGJ1dHRvbjoge1xuICAgIDYwXHQgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzNCODFGNicsXG4gICAgNjFcdCAgICAgICAgICByaWdodDogMjAsXG4gICAgNjJcdCAgICAgICAgICBib3R0b206IDIwLFxuICAgIDYzXHQgICAgICAgICAgc2l6ZTogNDgsXG4gICAgNjRcdCAgICAgICAgICBkcmFnQW5kRHJvcDogdHJ1ZSxcbiAgICA2NVx0ICAgICAgICAgIGljb25Db2xvcjogJ3doaXRlJyxcbiAgICA2Nlx0ICAgICAgICAgIGN1c3RvbUljb25TcmM6ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vd2Fsa3hjb2RlL2Rhc2hib2FyZC1pY29ucy9tYWluL3N2Zy9nb29nbGUtbWVzc2FnZXMuc3ZnJyxcbiAgICA2N1x0ICAgICAgICAgIGF1dG9XaW5kb3dPcGVuOiB7XG4gICAgNjhcdCAgICAgICAgICAgIGF1dG9PcGVuOiB0cnVlLFxuICAgIDY5XHQgICAgICAgICAgICBvcGVuRGVsYXk6IDIsXG4gICAgNzBcdCAgICAgICAgICAgIGF1dG9PcGVuT25Nb2JpbGU6IGZhbHNlLFxuICAgIDcxXHQgICAgICAgICAgfSxcbiAgICA3Mlx0ICAgICAgICB9LFxuICAgIDczXHQgICAgICAgIHRvb2x0aXA6IHtcbiAgICA3NFx0ICAgICAgICAgIHNob3dUb29sdGlwOiB0cnVlLFxuICAgIDc1XHQgICAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdIaSBUaGVyZSDwn5GLIScsXG4gICAgNzZcdCAgICAgICAgICB0b29sdGlwQmFja2dyb3VuZENvbG9yOiAnYmxhY2snLFxuICAgIDc3XHQgICAgICAgICAgdG9vbHRpcFRleHRDb2xvcjogJ3doaXRlJyxcbiAgICA3OFx0ICAgICAgICAgIHRvb2x0aXBGb250U2l6ZTogMTYsXG4gICAgNzlcdCAgICAgICAgfSxcbiAgICA4MFx0ICAgICAgICBkaXNjbGFpbWVyOiB7XG4gICAgODFcdCAgICAgICAgICB0aXRsZTogJ0Rpc2NsYWltZXInLFxuICAgIDgyXHQgICAgICAgICAgbWVzc2FnZTogJ0J5IHVzaW5nIHRoaXMgY2hhdGJvdCwgeW91IGFncmVlIHRvIHRoZSA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly9mbG93aXNlYWkuY29tL3Rlcm1zXCI+VGVybXMgJiBDb25kaXRpb248L2E+JyxcbiAgICA4M1x0ICAgICAgICAgIHRleHRDb2xvcjogJ2JsYWNrJyxcbiAgICA4NFx0ICAgICAgICAgIGJ1dHRvbkNvbG9yOiAnIzNiODJmNicsXG4gICAgODVcdCAgICAgICAgICBidXR0b25UZXh0OiAnU3RhcnQgQ2hhdHRpbmcnLFxuICAgIDg2XHQgICAgICAgICAgYnV0dG9uVGV4dENvbG9yOiAnd2hpdGUnLFxuICAgIDg3XHQgICAgICAgICAgYmx1cnJlZEJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMC40KScsXG4gICAgODhcdCAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScsXG4gICAgODlcdCAgICAgICAgfSxcbiAgICA5MFx0ICAgICAgICBjdXN0b21DU1M6IGBgLFxuICAgIDkxXHQgICAgICAgIGNoYXRXaW5kb3c6IHtcbiAgICA5Mlx0ICAgICAgICAgIHNob3dUaXRsZTogdHJ1ZSxcbiAgICA5M1x0ICAgICAgICAgIHNob3dBZ2VudE1lc3NhZ2VzOiB0cnVlLFxuICAgIDk0XHQgICAgICAgICAgdGl0bGU6ICdBZ2VudCBTdHVkaW8gQm90JyxcbiAgICA5NVx0ICAgICAgICAgIHRpdGxlQXZhdGFyU3JjOiAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3dhbGt4Y29kZS9kYXNoYm9hcmQtaWNvbnMvbWFpbi9zdmcvZ29vZ2xlLW1lc3NhZ2VzLnN2ZycsXG4gICAgOTZcdCAgICAgICAgICB3ZWxjb21lTWVzc2FnZTogJ0hlbGxvISBUaGlzIGlzIGN1c3RvbSB3ZWxjb21lIG1lc3NhZ2UnLFxuICAgIDk3XHQgICAgICAgICAgZXJyb3JNZXNzYWdlOiAnVGhpcyBpcyBhIGN1c3RvbSBlcnJvciBtZXNzYWdlJyxcbiAgICA5OFx0ICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxuICAgIDk5XHQgICAgICAgICAgYmFja2dyb3VuZEltYWdlOiAnZW50ZXIgaW1hZ2UgcGF0aCBvciBsaW5rJyxcbiAgIDEwMFx0ICAgICAgICAgIGhlaWdodDogNzAwLFxuICAgMTAxXHQgICAgICAgICAgd2lkdGg6IDQwMCxcbiAgIDEwMlx0ICAgICAgICAgIGZvbnRTaXplOiAxNixcbiAgIDEwM1x0ICAgICAgICAgIHN0YXJ0ZXJQcm9tcHRzOiBbJ1doYXQgaXMgYSBib3Q/JywgJ1dobyBhcmUgeW91PyddLFxuICAgMTA0XHQgICAgICAgICAgc3RhcnRlclByb21wdEZvbnRTaXplOiAxNSxcbiAgIDEwNVx0ICAgICAgICAgIGNsZWFyQ2hhdE9uUmVsb2FkOiBmYWxzZSxcbiAgIDEwNlx0ICAgICAgICAgIHNvdXJjZURvY3NUaXRsZTogJ1NvdXJjZXM6JyxcbiAgIDEwN1x0ICAgICAgICAgIHJlbmRlckhUTUw6IHRydWUsXG4gICAxMDhcdCAgICAgICAgICBib3RNZXNzYWdlOiB7XG4gICAxMDlcdCAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmN2Y4ZmYnLFxuICAgMTEwXHQgICAgICAgICAgICB0ZXh0Q29sb3I6ICcjMzAzMjM1JyxcbiAgIDExMVx0ICAgICAgICAgICAgc2hvd0F2YXRhcjogdHJ1ZSxcbiAgIDExMlx0ICAgICAgICAgICAgYXZhdGFyU3JjOiAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3phaGlka2hhd2FqYS9sYW5nY2hhaW4tY2hhdC1uZXh0anMvbWFpbi9wdWJsaWMvcGFycm90aWNvbi5wbmcnLFxuICAgMTEzXHQgICAgICAgICAgfSxcbiAgIDExNFx0ICAgICAgICAgIHVzZXJNZXNzYWdlOiB7XG4gICAxMTVcdCAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyMzQjgxRjYnLFxuICAgMTE2XHQgICAgICAgICAgICB0ZXh0Q29sb3I6ICcjZmZmZmZmJyxcbiAgIDExN1x0ICAgICAgICAgICAgc2hvd0F2YXRhcjogdHJ1ZSxcbiAgIDExOFx0ICAgICAgICAgICAgYXZhdGFyU3JjOiAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3phaGlka2hhd2FqYS9sYW5nY2hhaW4tY2hhdC1uZXh0anMvbWFpbi9wdWJsaWMvdXNlcmljb24ucG5nJyxcbiAgIDExOVx0ICAgICAgICAgIH0sXG4gICAxMjBcdCAgICAgICAgICB0ZXh0SW5wdXQ6IHtcbiAgIDEyMVx0ICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdUeXBlIHlvdXIgcXVlc3Rpb24nLFxuICAgMTIyXHQgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmZmZmJyxcbiAgIDEyM1x0ICAgICAgICAgICAgdGV4dENvbG9yOiAnIzMwMzIzNScsXG4gICAxMjRcdCAgICAgICAgICAgIHNlbmRCdXR0b25Db2xvcjogJyMzQjgxRjYnLFxuICAgMTI1XHQgICAgICAgICAgICBtYXhDaGFyczogNTAsXG4gICAxMjZcdCAgICAgICAgICAgIG1heENoYXJzV2FybmluZ01lc3NhZ2U6ICdZb3UgZXhjZWVkZWQgdGhlIGNoYXJhY3RlcnMgbGltaXQuIFBsZWFzZSBpbnB1dCBsZXNzIHRoYW4gNTAgY2hhcmFjdGVycy4nLFxuICAgMTI3XHQgICAgICAgICAgICBhdXRvRm9jdXM6IHRydWUsXG4gICAxMjhcdCAgICAgICAgICAgIHNlbmRNZXNzYWdlU291bmQ6IHRydWUsXG4gICAxMjlcdCAgICAgICAgICAgIHNlbmRTb3VuZExvY2F0aW9uOiAnc2VuZF9tZXNzYWdlLm1wMycsXG4gICAxMzBcdCAgICAgICAgICAgIHJlY2VpdmVNZXNzYWdlU291bmQ6IHRydWUsXG4gICAxMzFcdCAgICAgICAgICAgIHJlY2VpdmVTb3VuZExvY2F0aW9uOiAncmVjZWl2ZV9tZXNzYWdlLm1wMycsXG4gICAxMzJcdCAgICAgICAgICB9LFxuICAgMTMzXHQgICAgICAgICAgZmVlZGJhY2s6IHtcbiAgIDEzNFx0ICAgICAgICAgICAgY29sb3I6ICcjMzAzMjM1JyxcbiAgIDEzNVx0ICAgICAgICAgIH0sXG4gICAxMzZcdCAgICAgICAgICBkYXRlVGltZVRvZ2dsZToge1xuICAgMTM3XHQgICAgICAgICAgICBkYXRlOiB0cnVlLFxuICAgMTM4XHQgICAgICAgICAgICB0aW1lOiB0cnVlLFxuICAgMTM5XHQgICAgICAgICAgfSxcbiAgIDE0MFx0ICAgICAgICAgIGZvb3Rlcjoge1xuICAgMTQxXHQgICAgICAgICAgICB0ZXh0Q29sb3I6ICcjMzAzMjM1JyxcbiAgIDE0Mlx0ICAgICAgICAgICAgdGV4dDogJ1Bvd2VyZWQgYnknLFxuICAgMTQzXHQgICAgICAgICAgICBjb21wYW55OiAnQWdlbnQgU3R1ZGlvJyxcbiAgIDE0NFx0ICAgICAgICAgICAgLy8gY29tcGFueUxpbms6ICdodHRwczovL2Zsb3dpc2VhaS5jb20nXG4gICAxNDVcdCAgICAgICAgICAgIGNvbXBhbnlMaW5rOiAnIycsXG4gICAxNDZcdCAgICAgICAgICB9LFxuICAgMTQ3XHQgICAgICAgIH0sXG4gICAxNDhcdCAgICAgIH0pLFxuICAgMTQ5XHQgICAgfSk7XG4gICAxNTBcdCAgPC9zY3JpcHQ+XG4gICAxNTFcdDwvYm9keT5cbiAgIDE1Mlx0XG4gICAxNTNcdDwvaHRtbD5cblRvdGFsIGxpbmVzIGluIGZpbGU6IDE1M1xuIiwiaXNfZXJyb3IiOmZhbHNlLCJyZXF1ZXN0X2lkIjoiIiwidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxTGVFdTRBczZXQnhiR0czTWs1UlVLdCJ9fSx7ImlkIjoyLCJ0eXBlIjo0LCJpZGVfc3RhdGVfbm9kZSI6eyJ3b3Jrc3BhY2VGb2xkZXJzIjpbeyJyZXBvc2l0b3J5Um9vdCI6IkU6L0Zsb3dpc2Utc2hhcmUtY2hhdGJveCIsImZvbGRlclJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3gifV0sIndvcmtzcGFjZUZvbGRlcnNVbmNoYW5nZWQiOmZhbHNlfX1dLCJ0aW1lc3RhbXAiOiIyMDI1LTA1LTMwVDA0OjA5OjMzLjIzMVoiLCJyZXNwb25zZV90ZXh0IjoiTm93IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIENoYXRib3QgY29tcG9uZW50IHRvIHNlZSBob3cgdG8gcHJvcGVybHkgYWRkIHRoZSBgb25CZWZvcmVTZW5kYCBwcm9wLiBMZXQgbWUgc2VhcmNoIGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQ2hhdGJvdCBjb21wb25lbnQgYW5kIGl0cyBhdmFpbGFibGUgcHJvcHMuXG4iLCJ3b3Jrc3BhY2VfZmlsZV9jaHVua3MiOltdfSx7InN0YXR1cyI6InN1Y2Nlc3MiLCJyZXF1ZXN0X2lkIjoiZjk4YTBiODEtMWE0ZC00OWYwLWI0NTctZjQ1MWM4OTdmNTYzIiwicmVxdWVzdF9tZXNzYWdlIjoiIiwic3RydWN0dXJlZF9vdXRwdXRfbm9kZXMiOlt7ImlkIjoxLCJ0eXBlIjo1LCJjb250ZW50IjoiIiwidG9vbF91c2UiOnsidG9vbF91c2VfaWQiOiJ0b29sdV92cnR4XzAxUmtxRnY4TGtNRW9TdnFMOVB0QVoxcSIsInRvb2xfbmFtZSI6InN0ci1yZXBsYWNlLWVkaXRvciIsImlucHV0X2pzb24iOiJ7XCJjb21tYW5kXCI6IFwic3RyX3JlcGxhY2VcIiwgXCJwYXRoXCI6IFwicHVibGljL2luZGV4Lmh0bWxcIiwgXCJpbnN0cnVjdGlvbl9yZW1pbmRlclwiOiBcIkFMV0FZUyBCUkVBSyBET1dOIEVESVRTIElOVE8gU01BTExFUiBDSFVOS1MgT0YgQVQgTU9TVCAyMDAgTElORVMgRUFDSC5cIiwgXCJvbGRfc3RyXCI6IFwiICAgIC8vIFRoZW4gdXNlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGFzIGNoYXRmbG93aWQ6XFxuICAgIENoYXRib3QuaW5pdEZ1bGwoe1xcbiAgICAgIC8vIGNoYXRmbG93aWQ6ICc2YTYzYmI4OC04OGY3LTRjNGQtODA1ZS05YzAyN2M4NTcwN2InLCAvLyBvciAnc3VwcG9ydCcsICdzYWxlc2JvdCcsIGV0Yy5cXG4gICAgICAvLyBjaGF0Zmxvd2lkOiAnYjU3M2U2NmQtMGUyOC00Nzk4LThlNGYtZmJiYWZmOGUyMzZmJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXFxuICAgICAgLy8gY2hhdGZsb3dpZDogJzdlZTgwM2I0LWUzZjgtNGYzMy1iZjg1LWVmOWFiOWQ2ZjY5MycsIC8vIG9yICdzdXBwb3J0JywgJ3NhbGVzYm90JywgZXRjLlxcbiAgICAgIGNoYXRmbG93aWQ6ICcyMTdiZmRlOS1kNGNiLTRiMmEtYjYzNy04OTg5MGE5OTkwZWUnLCAvLyBvciAnc3VwcG9ydCcsICdzYWxlc2JvdCcsIGV0Yy5cXG4gICAgICBhcGlIb3N0OiAnaHR0cHM6Ly92aWIuY2FnZW50LmNtY3RzLmFpJyxcXG4gICAgICAvLyBhcGlIb3N0OiAnaHR0cHM6Ly9jLWFnZW50LmNtY3RzLnN0dWRpby5haS52bicsXFxuICAgICAgY2hhdHdvb3RVcmw6ICdodHRwczovL2xpdmVjaGF0LmNhZ2VudC5jbWN0cy5haScsXCIsIFwib2xkX3N0cl9zdGFydF9saW5lX251bWJlclwiOiA0NiwgXCJvbGRfc3RyX2VuZF9saW5lX251bWJlclwiOiA1NCwgXCJuZXdfc3RyXCI6IFwiICAgIC8vIFRoZW4gdXNlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lIGFzIGNoYXRmbG93aWQ6XFxuICAgIENoYXRib3QuaW5pdEZ1bGwoe1xcbiAgICAgIC8vIGNoYXRmbG93aWQ6ICc2YTYzYmI4OC04OGY3LTRjNGQtODA1ZS05YzAyN2M4NTcwN2InLCAvLyBvciAnc3VwcG9ydCcsICdzYWxlc2JvdCcsIGV0Yy5cXG4gICAgICAvLyBjaGF0Zmxvd2lkOiAnYjU3M2U2NmQtMGUyOC00Nzk4LThlNGYtZmJiYWZmOGUyMzZmJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXFxuICAgICAgLy8gY2hhdGZsb3dpZDogJzdlZTgwM2I0LWUzZjgtNGYzMy1iZjg1LWVmOWFiOWQ2ZjY5MycsIC8vIG9yICdzdXBwb3J0JywgJ3NhbGVzYm90JywgZXRjLlxcbiAgICAgIGNoYXRmbG93aWQ6ICcyMTdiZmRlOS1kNGNiLTRiMmEtYjYzNy04OTg5MGE5OTkwZWUnLCAvLyBvciAnc3VwcG9ydCcsICdzYWxlc2JvdCcsIGV0Yy5cXG4gICAgICBhcGlIb3N0OiAnaHR0cHM6Ly92aWIuY2FnZW50LmNtY3RzLmFpJyxcXG4gICAgICAvLyBhcGlIb3N0OiAnaHR0cHM6Ly9jLWFnZW50LmNtY3RzLnN0dWRpby5haS52bicsXFxuICAgICAgY2hhdHdvb3RVcmw6ICdodHRwczovL2xpdmVjaGF0LmNhZ2VudC5jbWN0cy5haScsXFxuICAgICAgb25CZWZvcmVTZW5kOiAobWVzc2FnZSwgYm9keSkgPT4ge1xcbiAgICAgICAgYWxlcnQoYEFib3V0IHRvIHNlbmQgbWVzc2FnZTogXFxcIiR7bWVzc2FnZX1cXFwiYCk7XFxuICAgICAgICBjb25zb2xlLmxvZygnTWVzc2FnZSBiZWluZyBzZW50OicsIG1lc3NhZ2UpO1xcbiAgICAgICAgY29uc29sZS5sb2coJ1JlcXVlc3QgYm9keTonLCBib2R5KTtcXG4gICAgICAgIHJldHVybiB7IG1lc3NhZ2UsIGJvZHkgfTtcXG4gICAgICB9LFwifSIsIm1jcF9zZXJ2ZXJfbmFtZSI6IiIsIm1jcF90b29sX25hbWUiOiIifX0seyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IlBlcmZlY3QhIE5vdyBJIHVuZGVyc3RhbmQgdGhlIHN0cnVjdHVyZS4gVGhlIGBvbkJlZm9yZVNlbmRgIHByb3AgaXMgYXZhaWxhYmxlIGFuZCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBgQ2hhdGJvdC5pbml0RnVsbGAgbWV0aG9kLiBMZXQgbWUgYWRkIHRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIHdpdGggYW4gYWxlcnQgbWVzc2FnZSB0byB0aGUgaW5kZXguaHRtbCBmaWxlLlxuIn0seyJpZCI6MiwidHlwZSI6MiwiY29udGVudCI6IiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiVGhlIGZvbGxvd2luZyBjb2RlIHNlY3Rpb25zIHdlcmUgcmV0cmlldmVkOlxuUGF0aDogb25CZWZvcmVTZW5kLVJFQURNRS5tZFxuLi4uXG4gICAxNjNcdGBgYFxuICAgMTY0XHRcbiAgIDE2NVx0IyMgSW1wbGVtZW50YXRpb24gRXhhbXBsZXNcbiAgIDE2Nlx0XG4gICAxNjdcdCMjIyBCYXNpYyBVc2FnZVxuICAgMTY4XHRcbiAgIDE2OVx0YGBgamF2YXNjcmlwdFxuICAgMTcwXHRDaGF0Ym90LmluaXQoe1xuICAgMTcxXHQgIGNoYXRmbG93aWQ6IFwieW91ci1jaGF0Zmxvdy1pZFwiLFxuICAgMTcyXHQgIGFwaUhvc3Q6IFwiaHR0cDovL2xvY2FsaG9zdDozMDAwXCIsXG4gICAxNzNcdCAgb25CZWZvcmVTZW5kOiAobWVzc2FnZSwgYm9keSkgPT4ge1xuICAgMTc0XHQgICAgY29uc29sZS5sb2coJ1NlbmRpbmcgbWVzc2FnZTonLCBtZXNzYWdlKTtcbiAgIDE3NVx0ICAgIHJldHVybiB7IG1lc3NhZ2UsIGJvZHkgfTtcbiAgIDE3Nlx0ICB9XG4gICAxNzdcdH0pO1xuICAgMTc4XHRgYGBcbiAgIDE3OVx0XG4gICAxODBcdCMjIyBBc3luYyBQcm9jZXNzaW5nXG4gICAxODFcdFxuICAgMTgyXHRgYGBqYXZhc2NyaXB0XG4gICAxODNcdENoYXRib3QuaW5pdCh7XG4gICAxODRcdCAgY2hhdGZsb3dpZDogXCJ5b3VyLWNoYXRmbG93LWlkXCIsXG4gICAxODVcdCAgYXBpSG9zdDogXCJodHRwOi8vbG9jYWxob3N0OjMwMDBcIixcbiAgIDE4Nlx0ICBvbkJlZm9yZVNlbmQ6IGFzeW5jIChtZXNzYWdlLCBib2R5KSA9PiB7XG4gICAxODdcdCAgICAvLyBQZXJmb3JtIGFzeW5jIG9wZXJhdGlvbnNcbiAgIDE4OFx0ICAgIGNvbnN0IHByb2Nlc3NlZE1lc3NhZ2UgPSBhd2FpdCBwcm9jZXNzTWVzc2FnZUFzeW5jKG1lc3NhZ2UpO1xuICAgMTg5XHQgICAgY29uc3QgZW5oYW5jZWRCb2R5ID0gYXdhaXQgYWRkQ29udGV4dEFzeW5jKGJvZHkpO1xuICAgMTkwXHQgICAgXG4gICAxOTFcdCAgICByZXR1cm4ge1xuICAgMTkyXHQgICAgICBtZXNzYWdlOiBwcm9jZXNzZWRNZXNzYWdlLFxuICAgMTkzXHQgICAgICBib2R5OiBlbmhhbmNlZEJvZHlcbiAgIDE5NFx0ICAgIH07XG4gICAxOTVcdCAgfVxuICAgMTk2XHR9KTtcbi4uLlxuICAgMjE3XHRgYGBcbiAgIDIxOFx0XG4gICAyMTlcdCMjIEJlc3QgUHJhY3RpY2VzXG4gICAyMjBcdFxuICAgMjIxXHQxLiAqKktlZXAgaXQgZmFzdCoqOiBBdm9pZCBsb25nLXJ1bm5pbmcgb3BlcmF0aW9ucyB0aGF0IGNvdWxkIGRlbGF5IG1lc3NhZ2Ugc2VuZGluZ1xuICAgMjIyXHQyLiAqKkhhbmRsZSBlcnJvcnMgZ3JhY2VmdWxseSoqOiBBbHdheXMgd3JhcCByaXNreSBvcGVyYXRpb25zIGluIHRyeS1jYXRjaCBibG9ja3NcbiAgIDIyM1x0My4gKipQcmVzZXJ2ZSBtZXNzYWdlIGludGVudCoqOiBXaGVuIG1vZGlmeWluZyBtZXNzYWdlcywgbWFpbnRhaW4gdGhlIHVzZXIncyBvcmlnaW5hbCBpbnRlbnRcbiAgIDIyNFx0NC4gKipVc2UgY2FuY2VsIHNwYXJpbmdseSoqOiBPbmx5IGNhbmNlbCBtZXNzYWdlcyB3aGVuIGFic29sdXRlbHkgbmVjZXNzYXJ5XG4gICAyMjVcdDUuICoqTG9nIGZvciBkZWJ1Z2dpbmcqKjogQWRkIGNvbnNvbGUgbG9ncyB0byBoZWxwIGRlYnVnIHlvdXIgb25CZWZvcmVTZW5kIGxvZ2ljXG4gICAyMjZcdFxuICAgMjI3XHQjIyBUeXBlU2NyaXB0IFN1cHBvcnRcbiAgIDIyOFx0XG4gICAyMjlcdFRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIGlzIGZ1bGx5IHR5cGVkIHdoZW4gdXNpbmcgVHlwZVNjcmlwdDpcbiAgIDIzMFx0XG4gICAyMzFcdGBgYHR5cGVzY3JpcHRcbiAgIDIzMlx0aW1wb3J0IHsgQm90UHJvcHMsIEluY29taW5nSW5wdXQgfSBmcm9tICdjbWN0cy1jLWFnZW50LWVtYmVkZGluZyc7XG4gICAyMzNcdFxuICAgMjM0XHRjb25zdCBvbkJlZm9yZVNlbmQ6IEJvdFByb3BzWydvbkJlZm9yZVNlbmQnXSA9IChcbiAgIDIzNVx0ICBtZXNzYWdlOiBzdHJpbmcsIFxuICAgMjM2XHQgIGJvZHk6IEluY29taW5nSW5wdXRcbiAgIDIzN1x0KSA9PiB7XG4gICAyMzhcdCAgcmV0dXJuIHsgbWVzc2FnZSwgYm9keSB9O1xuICAgMjM5XHR9O1xuICAgMjQwXHRgYGBcbi4uLlxuUGF0aDogZXhhbXBsZS1vbkJlZm9yZVNlbmQuaHRtbFxuLi4uXG4gICAgNjNcdFxuICAgIDY0XHQgICAgICAgIC8vIEluaXRpYWxpemUgdGhlIGNoYXRib3Qgd2l0aCBvbkJlZm9yZVNlbmRcbiAgICA2NVx0ICAgICAgICBDaGF0Ym90LmluaXQoe1xuICAgIDY2XHQgICAgICAgICAgICBjaGF0Zmxvd2lkOiBcInlvdXItY2hhdGZsb3ctaWRcIixcbiAgICA2N1x0ICAgICAgICAgICAgYXBpSG9zdDogXCJodHRwOi8vbG9jYWxob3N0OjMwMDBcIixcbiAgICA2OFx0ICAgICAgICAgICAgb25CZWZvcmVTZW5kOiBoYW5kbGVCZWZvcmVTZW5kLFxuICAgIDY5XHQgICAgICAgICAgICB0aGVtZToge1xuICAgIDcwXHQgICAgICAgICAgICAgICAgYnV0dG9uOiB7XG4gICAgNzFcdCAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcIiMzQjgxRjZcIixcbiAgICA3Mlx0ICAgICAgICAgICAgICAgICAgICByaWdodDogMjAsXG4gICAgNzNcdCAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAyMCxcbiAgICA3NFx0ICAgICAgICAgICAgICAgICAgICBzaXplOiA0OCxcbiAgICA3NVx0ICAgICAgICAgICAgICAgICAgICBpY29uQ29sb3I6IFwid2hpdGVcIixcbiAgICA3Nlx0ICAgICAgICAgICAgICAgIH0sXG4gICAgNzdcdCAgICAgICAgICAgICAgICBjaGF0V2luZG93OiB7XG4gICAgNzhcdCAgICAgICAgICAgICAgICAgICAgd2VsY29tZU1lc3NhZ2U6IFwiSGVsbG8hIFRyeSBzZW5kaW5nIGRpZmZlcmVudCBtZXNzYWdlcyB0byBzZWUgb25CZWZvcmVTZW5kIGluIGFjdGlvbi5cIixcbiAgICA3OVx0ICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI2ZmZmZmZlwiLFxuICAgIDgwXHQgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNjAwLFxuICAgIDgxXHQgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MDAsXG4gICAgODJcdCAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IDE2LFxuICAgIDgzXHQgICAgICAgICAgICAgICAgICAgIHBvd2VyZWRCeVRleHRDb2xvcjogXCIjMzAzMjM1XCIsXG4gICAgODRcdCAgICAgICAgICAgICAgICAgICAgYm90TWVzc2FnZToge1xuICAgIDg1XHQgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI2Y3ZjhmZlwiLFxuICAgIDg2XHQgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I6IFwiIzMwMzIzNVwiLFxuICAgIDg3XHQgICAgICAgICAgICAgICAgICAgICAgICBzaG93QXZhdGFyOiB0cnVlLFxuICAgIDg4XHQgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgODlcdCAgICAgICAgICAgICAgICAgICAgdXNlck1lc3NhZ2U6IHtcbiAgICA5MFx0ICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcIiMzQjgxRjZcIixcbiAgICA5MVx0ICAgICAgICAgICAgICAgICAgICAgICAgdGV4dENvbG9yOiBcIiNmZmZmZmZcIixcbiAgICA5Mlx0ICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0F2YXRhcjogdHJ1ZSxcbiAgICA5M1x0ICAgICAgICAgICAgICAgICAgICB9LFxuICAgIDk0XHQgICAgICAgICAgICAgICAgICAgIHRleHRJbnB1dDoge1xuICAgIDk1XHQgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogXCJUeXBlIHlvdXIgbWVzc2FnZS4uLlwiLFxuICAgIDk2XHQgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiI2ZmZmZmZlwiLFxuICAgIDk3XHQgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I6IFwiIzMwMzIzNVwiLFxuICAgIDk4XHQgICAgICAgICAgICAgICAgICAgICAgICBzZW5kQnV0dG9uQ29sb3I6IFwiIzNCODFGNlwiLFxuICAgIDk5XHQgICAgICAgICAgICAgICAgICAgIH1cbiAgIDEwMFx0ICAgICAgICAgICAgICAgIH1cbiAgIDEwMVx0ICAgICAgICAgICAgfVxuLi4uXG5QYXRoOiBzcmMvY29tcG9uZW50cy9Cb3QudHN4XG4uLi5cbiAgIDEzMFx0XG4gICAxMzFcdGV4cG9ydCB0eXBlIEJvdFByb3BzID0ge1xuICAgMTMyXHQgIGNoYXRmbG93aWQ6IHN0cmluZztcbiAgIDEzM1x0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgMTM0XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgIDEzNVx0ICBvbkJlZm9yZVNlbmQ/OiAobWVzc2FnZTogc3RyaW5nLCBib2R5OiBJbmNvbWluZ0lucHV0KSA9PiBQcm9taXNlPHsgbWVzc2FnZTogc3RyaW5nOyBib2R5OiBJbmNvbWluZ0lucHV0OyBjYW5jZWw/OiBib29sZWFuIH0+IHwgeyBtZXNzYWdlOiBzdHJpbmc7IGJvZHk6IEluY29taW5nSW5wdXQ7IGNhbmNlbD86IGJvb2xlYW4gfTtcbiAgIDEzNlx0ICBjaGF0Zmxvd0NvbmZpZz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgMTM3XHQgIHdlbGNvbWVNZXNzYWdlPzogc3RyaW5nO1xuICAgMTM4XHQgIHNlY29uZE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzlcdCAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgMTQwXHQgIGJvdE1lc3NhZ2U/OiBCb3RNZXNzYWdlVGhlbWU7XG4gICAxNDFcdCAgdXNlck1lc3NhZ2U/OiBVc2VyTWVzc2FnZVRoZW1lO1xuICAgMTQyXHQgIHRleHRJbnB1dD86IFRleHRJbnB1dFRoZW1lO1xuICAgMTQzXHQgIGZlZWRiYWNrPzogRmVlZGJhY2tUaGVtZTtcbiAgIDE0NFx0ICBwb3dlcmVkQnlUZXh0Q29sb3I/OiBzdHJpbmc7XG4gICAxNDVcdCAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDZcdCAgYnViYmxlQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgMTQ3XHQgIGJ1YmJsZVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0OFx0ICBzaG93VGl0bGU/OiBib29sZWFuO1xuICAgMTQ5XHQgIHNob3dBZ2VudE1lc3NhZ2VzPzogYm9vbGVhbjtcbiAgIDE1MFx0ICB0aXRsZT86IHN0cmluZztcbiAgIDE1MVx0ICB0aXRsZUF2YXRhclNyYz86IHN0cmluZztcbiAgIDE1Mlx0ICBmb250U2l6ZT86IG51bWJlcjtcbi4uLlxuUGF0aDogUkVBRE1FLm1kXG4uLi5cbiAgICA4OFx0XG4gICAgODlcdFlvdSBjYW4gYWxzbyBjdXN0b21pemUgY2hhdGJvdCB3aXRoIGRpZmZlcmVudCBjb25maWd1cmF0aW9uXG4gICAgOTBcdFxuICAgIDkxXHRgYGBodG1sXG4gICAgOTJcdDxzY3JpcHQgdHlwZT1cIm1vZHVsZVwiPlxuICAgIDkzXHQgIGltcG9ydCBDaGF0Ym90IGZyb20gJ2h0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vYy1hZ2VudC1lbWJlZGRpbmcvZGlzdC93ZWIuanMnO1xuICAgIDk0XHQgIENoYXRib3QuaW5pdCh7XG4gICAgOTVcdCAgICBjaGF0Zmxvd2lkOiAnOTFlOWM4MDMtNTE2OS00ZGI5LTgyMDctM2MwOTE1ZDcxYzVmJyxcbiAgICA5Nlx0ICAgIGFwaUhvc3Q6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLFxuICAgIDk3XHQgICAgY2hhdGZsb3dDb25maWc6IHtcbiAgICA5OFx0ICAgICAgLy8gdG9wSzogMlxuICAgIDk5XHQgICAgfSxcbiAgIDEwMFx0ICAgIG9ic2VydmVyc0NvbmZpZzoge1xuICAgMTAxXHQgICAgICAvLyAob3B0aW9uYWwpIEFsbG93cyB5b3UgdG8gZXhlY3V0ZSBjb2RlIGluIHBhcmVudCBiYXNlZCB1cG9uIHNpZ25hbCBvYnNlcnZhdGlvbnMgd2l0aGluIHRoZSBjaGF0Ym90LlxuICAgMTAyXHQgICAgICAvLyBUaGUgdXNlcmlucHV0IGZpZWxkIHN1Ym1pdHRlZCB0byBib3QgKFwiXCIgd2hlbiByZXNldCBieSBib3QpXG4gICAxMDNcdCAgICAgIG9ic2VydmVVc2VySW5wdXQ6ICh1c2VySW5wdXQpID0+IHtcbiAgIDEwNFx0ICAgICAgICBjb25zb2xlLmxvZyh7IHVzZXJJbnB1dCB9KTtcbiAgIDEwNVx0ICAgICAgfSxcbiAgIDEwNlx0ICAgICAgLy8gVGhlIGJvdCBtZXNzYWdlIHN0YWNrIGhhcyBjaGFuZ2VkXG4gICAxMDdcdCAgICAgIG9ic2VydmVNZXNzYWdlczogKG1lc3NhZ2VzKSA9PiB7XG4gICAxMDhcdCAgICAgICAgY29uc29sZS5sb2coeyBtZXNzYWdlcyB9KTtcbiAgIDEwOVx0ICAgICAgfSxcbiAgIDExMFx0ICAgICAgLy8gVGhlIGJvdCBsb2FkaW5nIHNpZ25hbCBjaGFuZ2VkXG4gICAxMTFcdCAgICAgIG9ic2VydmVMb2FkaW5nOiAobG9hZGluZykgPT4ge1xuICAgMTEyXHQgICAgICAgIGNvbnNvbGUubG9nKHsgbG9hZGluZyB9KTtcbiAgIDExM1x0ICAgICAgfSxcbiAgIDExNFx0ICAgIH0sXG4uLi5cblBhdGg6IHNyYy9jb25zdGFudHMudHNcbi4uLlxuICAgIDQ3XHRcbiAgICA0OFx0LyoqXG4gICAgNDlcdCAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNoYXRib3QgYnViYmxlIGNvbXBvbmVudC5cbiAgICA1MFx0ICogUHJvdmlkZXMgc2Vuc2libGUgZGVmYXVsdHMgZm9yIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzIHdoaWxlIGtlZXBpbmdcbiAgICA1MVx0ICogcmVxdWlyZWQgcHJvcGVydGllcyBleHBsaWNpdGx5IHVuZGVmaW5lZCB0byBlbmZvcmNlIHByb3BlciBjb25maWd1cmF0aW9uLlxuICAgIDUyXHQgKi9cbiAgICA1M1x0ZXhwb3J0IGNvbnN0IGRlZmF1bHRCb3RQcm9wczogQnViYmxlUHJvcHMgPSB7XG4gICAgNTRcdCAgLy8gQ29yZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIC0gbXVzdCBiZSBzZXQgYnkgaW1wbGVtZW50ZXJcbiAgICA1NVx0ICBjaGF0Zmxvd2lkOiAnJyxcbiAgICA1Nlx0XG4gICAgNTdcdCAgLy8gQVBJIGNvbmZpZ3VyYXRpb25cbiAgICA1OFx0ICBhcGlIb3N0OiB1bmRlZmluZWQsXG4gICAgNTlcdCAgb25SZXF1ZXN0OiB1bmRlZmluZWQsXG4gICAgNjBcdCAgY2hhdGZsb3dDb25maWc6IHVuZGVmaW5lZCxcbiAgICA2MVx0XG4gICAgNjJcdCAgLy8gVUkgdGhlbWluZyBhbmQgY3VzdG9taXphdGlvblxuICAgIDYzXHQgIHRoZW1lOiB1bmRlZmluZWQsXG4gICAgNjRcdFxuICAgIDY1XHQgIC8vIEV4dGVybmFsIGludGVncmF0aW9uc1xuICAgIDY2XHQgIGNoYXR3b290VXJsOiB1bmRlZmluZWQsXG4gICAgNjdcdCAgcm9vbUlkczoge30sXG4gICAgNjhcdFxuICAgIDY5XHQgIC8vIEZlYXR1cmUgZmxhZ3MgYW5kIG9wdGlvbmFsIGZ1bmN0aW9uYWxpdHlcbiAgICA3MFx0ICBpc1VzZUZBUTogZmFsc2UsXG4gICAgNzFcdFxuICAgIDcyXHQgIC8vIEZpbGUgYW5kIGNvbnRlbnQgY29uZmlndXJhdGlvblxuICAgIDczXHQgIGZpbGVQYXRoOiAnJyxcbiAgICA3NFx0ICBzdWdnZXN0UXVlc3Rpb25zOiAnJyxcbiAgICA3NVx0ICBleHRlcm5hbERhdGE6ICcnLFxuICAgIDc2XHQgIGNhbGxCYWNrSWNvbjogJycsXG4gICAgNzdcdCAgY2FsbEJhY2tGdW5jdGlvbjogdW5kZWZpbmVkLFxuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL0Z1bGwudHN4XG4gICAgIDFcdGltcG9ydCBzdHlsZXMgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2luZGV4LmNzcyc7XG4gICAgIDJcdGltcG9ydCB7IEJvdCwgQm90UHJvcHMgfSBmcm9tICdAL2NvbXBvbmVudHMvQm90JztcbiAgICAgM1x0aW1wb3J0IHsgQnViYmxlUGFyYW1zIH0gZnJvbSAnQC9mZWF0dXJlcy9idWJibGUvdHlwZXMnO1xuICAgICA0XHRpbXBvcnQgeyBjcmVhdGVTaWduYWwsIG9uQ2xlYW51cCwgb25Nb3VudCwgU2hvdyB9IGZyb20gJ3NvbGlkLWpzJztcbiAgICAgNVx0XG4gICAgIDZcdGNvbnN0IGRlZmF1bHRCdXR0b25Db2xvciA9ICcjM0I4MUY2JztcbiAgICAgN1x0Y29uc3QgZGVmYXVsdEljb25Db2xvciA9ICd3aGl0ZSc7XG4gICAgIDhcdFxuICAgICA5XHRleHBvcnQgdHlwZSBGdWxsUHJvcHMgPSBCb3RQcm9wcyAmIEJ1YmJsZVBhcmFtcztcbiAgICAxMFx0XG4gICAgMTFcdGV4cG9ydCBjb25zdCBGdWxsID0gKHByb3BzOiBGdWxsUHJvcHMsIHsgZWxlbWVudCB9OiB7IGVsZW1lbnQ6IEhUTUxFbGVtZW50IH0pID0+IHtcbiAgICAxMlx0ICBjb25zdCBbaXNCb3REaXNwbGF5ZWQsIHNldElzQm90RGlzcGxheWVkXSA9IGNyZWF0ZVNpZ25hbChmYWxzZSk7XG4gICAgMTNcdFxuICAgIDE0XHQgIGNvbnN0IGxhdW5jaEJvdCA9ICgpID0+IHtcbiAgICAxNVx0ICAgIHNldElzQm90RGlzcGxheWVkKHRydWUpO1xuICAgIDE2XHQgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW4gPSAnMCc7IC8vIEVuc3VyZSBubyBtYXJnaW5cbiAgICAxN1x0ICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5wYWRkaW5nID0gJzAnOyAvLyBFbnN1cmUgbm8gcGFkZGluZ1xuICAgIDE4XHRcbiAgICAxOVx0ICAgIC8vIFNldCB2aWV3cG9ydCBtZXRhIHRhZyBkeW5hbWljYWxseVxuICAgIDIwXHQgICAgY29uc3Qgdmlld3BvcnRNZXRhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwidmlld3BvcnRcIl0nKTtcbiAgICAyMVx0ICAgIGlmICh2aWV3cG9ydE1ldGEpIHtcbiAgICAyMlx0ICAgICAgdmlld3BvcnRNZXRhLnNldEF0dHJpYnV0ZSgnY29udGVudCcsICd3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wLCBpbnRlcmFjdGl2ZS13aWRnZXQ9cmVzaXplcy1jb250ZW50Jyk7XG4gICAgMjNcdCAgICB9XG4gICAgMjRcdCAgfTtcbiAgICAyNVx0XG4gICAgMjZcdCAgY29uc3QgYm90TGF1bmNoZXJPYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcigoaW50ZXJzZWN0aW9ucykgPT4ge1xuICAgIDI3XHQgICAgaWYgKGludGVyc2VjdGlvbnMuc29tZSgoaW50ZXJzZWN0aW9uKSA9PiBpbnRlcnNlY3Rpb24uaXNJbnRlcnNlY3RpbmcpKSBsYXVuY2hCb3QoKTtcbiAgICAyOFx0ICB9KTtcbi4uLlxuICAgIDYxXHQgICAgICAgID5cbiAgICA2Mlx0ICAgICAgICAgIDxCb3RcbiAgICA2M1x0ICAgICAgICAgICAgYmFkZ2VCYWNrZ3JvdW5kQ29sb3I9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5iYWNrZ3JvdW5kQ29sb3J9XG4gICAgNjRcdCAgICAgICAgICAgIGJ1YmJsZUJhY2tncm91bmRDb2xvcj17cHJvcHMudGhlbWU/LmJ1dHRvbj8uYmFja2dyb3VuZENvbG9yID8/IGRlZmF1bHRCdXR0b25Db2xvcn1cbiAgICA2NVx0ICAgICAgICAgICAgYnViYmxlVGV4dENvbG9yPXtwcm9wcy50aGVtZT8uYnV0dG9uPy5pY29uQ29sb3IgPz8gZGVmYXVsdEljb25Db2xvcn1cbiAgICA2Nlx0ICAgICAgICAgICAgc2hvd1RpdGxlPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc2hvd1RpdGxlfVxuICAgIDY3XHQgICAgICAgICAgICBzaG93QWdlbnRNZXNzYWdlcz17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnNob3dBZ2VudE1lc3NhZ2VzfVxuICAgIDY4XHQgICAgICAgICAgICB0aXRsZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnRpdGxlfVxuICAgIDY5XHQgICAgICAgICAgICB0aXRsZUF2YXRhclNyYz17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnRpdGxlQXZhdGFyU3JjfVxuICAgIDcwXHQgICAgICAgICAgICB3ZWxjb21lTWVzc2FnZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LndlbGNvbWVNZXNzYWdlfVxuICAgIDcxXHQgICAgICAgICAgICBzZWNvbmRNZXNzYWdlPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc2Vjb25kTWVzc2FnZX1cbiAgICA3Mlx0ICAgICAgICAgICAgZXJyb3JNZXNzYWdlPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZXJyb3JNZXNzYWdlfVxuICAgIDczXHQgICAgICAgICAgICBwb3dlcmVkQnlUZXh0Q29sb3I9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5wb3dlcmVkQnlUZXh0Q29sb3J9XG4gICAgNzRcdCAgICAgICAgICAgIHRleHRJbnB1dD17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnRleHRJbnB1dH1cbiAgICA3NVx0ICAgICAgICAgICAgYm90TWVzc2FnZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmJvdE1lc3NhZ2V9XG4gICAgNzZcdCAgICAgICAgICAgIHVzZXJNZXNzYWdlPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udXNlck1lc3NhZ2V9XG4gICAgNzdcdCAgICAgICAgICAgIGZlZWRiYWNrPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZmVlZGJhY2t9XG4gICAgNzhcdCAgICAgICAgICAgIGZvbnRTaXplPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZm9udFNpemV9XG4gICAgNzlcdCAgICAgICAgICAgIGZvb3Rlcj17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmZvb3Rlcn1cbiAgICA4MFx0ICAgICAgICAgICAgc3RhcnRlclByb21wdHM9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zdGFydGVyUHJvbXB0c31cbiAgICA4MVx0ICAgICAgICAgICAgY2hhdGZsb3dpZD17cHJvcHMuY2hhdGZsb3dpZH1cbiAgICA4Mlx0ICAgICAgICAgICAgY2hhdGZsb3dDb25maWc9e3Byb3BzLmNoYXRmbG93Q29uZmlnfVxuICAgIDgzXHQgICAgICAgICAgICBhcGlIb3N0PXtwcm9wcy5hcGlIb3N0fVxuICAgIDg0XHQgICAgICAgICAgICBvblJlcXVlc3Q9e3Byb3BzLm9uUmVxdWVzdH1cbiAgICA4NVx0ICAgICAgICAgICAgb25CZWZvcmVTZW5kPXtwcm9wcy5vbkJlZm9yZVNlbmR9XG4gICAgODZcdCAgICAgICAgICAgIGlzRnVsbFBhZ2U9e3RydWV9XG4gICAgODdcdCAgICAgICAgICAgIG9ic2VydmVyc0NvbmZpZz17cHJvcHMub2JzZXJ2ZXJzQ29uZmlnfVxuICAgIDg4XHQgICAgICAgICAgICBzdGFydGVyUHJvbXB0Rm9udFNpemU9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zdGFydGVyUHJvbXB0Rm9udFNpemV9XG4gICAgODlcdCAgICAgICAgICAgIGNsZWFyQ2hhdE9uUmVsb2FkPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uY2xlYXJDaGF0T25SZWxvYWR9XG4gICAgOTBcdCAgICAgICAgICAgIGRpc2NsYWltZXI9e3Byb3BzLnRoZW1lPy5kaXNjbGFpbWVyfVxuICAgIDkxXHQgICAgICAgICAgICBkYXRlVGltZVRvZ2dsZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmRhdGVUaW1lVG9nZ2xlfVxuICAgIDkyXHQgICAgICAgICAgICByZW5kZXJIVE1MPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8ucmVuZGVySFRNTH1cbiAgICA5M1x0ICAgICAgICAgICAgY2hhdHdvb3RVcmw9e3Byb3BzLmNoYXR3b290VXJsfVxuICAgIDk0XHQgICAgICAgICAgICByb29tSWRzPXtwcm9wcy5yb29tSWRzfVxuICAgIDk1XHQgICAgICAgICAgICBpc1VzZUZBUT17cHJvcHMuaXNVc2VGQVF9XG4gICAgOTZcdCAgICAgICAgICAgIGZpbGVQYXRoPXtwcm9wcy5maWxlUGF0aH1cbiAgICA5N1x0ICAgICAgICAgICAgc3VnZ2VzdFF1ZXN0aW9ucz17cHJvcHMuc3VnZ2VzdFF1ZXN0aW9uc31cbiAgICA5OFx0ICAgICAgICAgICAgZXh0ZXJuYWxEYXRhPXtwcm9wcy5leHRlcm5hbERhdGF9XG4gICAgOTlcdCAgICAgICAgICAgIGNhbGxCYWNrRnVuY3Rpb249e3Byb3BzLmNhbGxCYWNrRnVuY3Rpb259XG4gICAxMDBcdCAgICAgICAgICAgIGNhbGxCYWNrSWNvbj17cHJvcHMuY2FsbEJhY2tJY29ufVxuICAgMTAxXHQgICAgICAgICAgLz5cbiAgIDEwMlx0ICAgICAgICA8L2Rpdj5cbiAgIDEwM1x0ICAgICAgPC9TaG93PlxuICAgMTA0XHQgICAgPC8+XG4gICAxMDVcdCAgKTtcbiAgIDEwNlx0fTtcbi4uLlxuUGF0aDogcHVibGljL2luZGV4Lmh0bWxcbi4uLlxuICAgIDM5XHRcbiAgICA0MFx0ICAgIC8vIEV4YW1wbGUgaW5pdGlhbGl6YXRpb246XG4gICAgNDFcdCAgICAvLyBJZiB5b3VyIC5lbnYgY29udGFpbnM6XG4gICAgNDJcdCAgICAvLyBhZ2VudDE9eHl6Nzg5LXV2dzQ1NixodHRwczovL2V4YW1wbGUuY29tXG4gICAgNDNcdCAgICAvLyBzdXBwb3J0PWFiYzEyMy1kZWY0NTYsaHR0cHM6Ly9leGFtcGxlLmNvbVxuICAgIDQ0XHQgICAgLy8gc2FsZXNib3Q9Z2hpMTIzLWprbDQ1NixodHRwczovL2V4YW1wbGUuY29tXG4gICAgNDVcdCAgICAvL1xuICAgIDQ2XHQgICAgLy8gVGhlbiB1c2UgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUgYXMgY2hhdGZsb3dpZDpcbiAgICA0N1x0ICAgIENoYXRib3QuaW5pdEZ1bGwoe1xuICAgIDQ4XHQgICAgICAvLyBjaGF0Zmxvd2lkOiAnNmE2M2JiODgtODhmNy00YzRkLTgwNWUtOWMwMjdjODU3MDdiJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXG4gICAgNDlcdCAgICAgIC8vIGNoYXRmbG93aWQ6ICdiNTczZTY2ZC0wZTI4LTQ3OTgtOGU0Zi1mYmJhZmY4ZTIzNmYnLCAvLyBvciAnc3VwcG9ydCcsICdzYWxlc2JvdCcsIGV0Yy5cbiAgICA1MFx0ICAgICAgLy8gY2hhdGZsb3dpZDogJzdlZTgwM2I0LWUzZjgtNGYzMy1iZjg1LWVmOWFiOWQ2ZjY5MycsIC8vIG9yICdzdXBwb3J0JywgJ3NhbGVzYm90JywgZXRjLlxuICAgIDUxXHQgICAgICBjaGF0Zmxvd2lkOiAnMjE3YmZkZTktZDRjYi00YjJhLWI2MzctODk4OTBhOTk5MGVlJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXG4gICAgNTJcdCAgICAgIGFwaUhvc3Q6ICdodHRwczovL3ZpYi5jYWdlbnQuY21jdHMuYWknLFxuICAgIDUzXHQgICAgICAvLyBhcGlIb3N0OiAnaHR0cHM6Ly9jLWFnZW50LmNtY3RzLnN0dWRpby5haS52bicsXG4gICAgNTRcdCAgICAgIGNoYXR3b290VXJsOiAnaHR0cHM6Ly9saXZlY2hhdC5jYWdlbnQuY21jdHMuYWknLFxuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvZnVsbC9pbmRleC50c1xuICAgICAxXHRleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuLi4uXG5QYXRoOiBzcmMvcXVlcmllcy9zZW5kTWVzc2FnZVF1ZXJ5LnRzXG4gICAgIDFcdGltcG9ydCB7IEZpbGVVcGxvYWQsIElBY3Rpb24gfSBmcm9tICdAL2NvbXBvbmVudHMvQm90JztcbiAgICAgMlx0aW1wb3J0IHsgc2VuZFJlcXVlc3QgfSBmcm9tICdAL3V0aWxzL2luZGV4JztcbiAgICAgM1x0XG4gICAgIDRcdGV4cG9ydCB0eXBlIEluY29taW5nSW5wdXQgPSB7XG4gICAgIDVcdCAgcXVlc3Rpb246IHN0cmluZztcbiAgICAgNlx0ICB1cGxvYWRzPzogRmlsZVVwbG9hZFtdO1xuICAgICA3XHQgIG92ZXJyaWRlQ29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgIDhcdCAgc29ja2V0SU9DbGllbnRJZD86IHN0cmluZztcbiAgICAgOVx0ICBjaGF0SWQ/OiBzdHJpbmc7XG4gICAgMTBcdCAgZmlsZU5hbWU/OiBzdHJpbmc7IC8vIE9ubHkgZm9yIGFzc2lzdGFudFxuICAgIDExXHQgIGxlYWRFbWFpbD86IHN0cmluZztcbiAgICAxMlx0ICBhY3Rpb24/OiBJQWN0aW9uO1xuICAgIDEzXHQgIHN0b3JlZD86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgMTRcdCAgZmV0Y2g/OiBib29sZWFuO1xuICAgIDE1XHQgIGZhcUlkPzogc3RyaW5nO1xuICAgIDE2XHQgIHVzZUlkPzogc3RyaW5nO1xuICAgIDE3XHR9O1xuICAgIDE4XHRcbiAgICAxOVx0dHlwZSBCYXNlUmVxdWVzdCA9IHtcbiAgICAyMFx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgIDIxXHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgICAyMlx0fTtcbiAgICAyM1x0XG4gICAgMjRcdGV4cG9ydCB0eXBlIE1lc3NhZ2VSZXF1ZXN0ID0gQmFzZVJlcXVlc3QgJiB7XG4gICAgMjVcdCAgY2hhdGZsb3dpZD86IHN0cmluZztcbiAgICAyNlx0ICBib2R5PzogSW5jb21pbmdJbnB1dDtcbiAgICAyN1x0fTtcbi4uLlxuICAgIDY5XHRcbiAgICA3MFx0ZXhwb3J0IGNvbnN0IGdldFVzZXJGcm9tTG9jYWxTdG9yYWdlID0gKCk6IGFueSB8IG51bGwgPT4ge1xuICAgIDcxXHQgIGNvbnN0IGRhdGFMb2dpbiA9IGxvY2FsU3RvcmFnZT8uZ2V0SXRlbSgnZGF0YUxvZ2luJyk7XG4gICAgNzJcdCAgaWYgKGRhdGFMb2dpbikge1xuICAgIDczXHQgICAgdHJ5IHtcbiAgICA3NFx0ICAgICAgY29uc3QgZGF0YSA9IEpTT04/LnBhcnNlKGRhdGFMb2dpbik7XG4gICAgNzVcdCAgICAgIHJldHVybiBkYXRhLmFjY2Vzc1Rva2VuO1xuICAgIDc2XHQgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICA3N1x0ICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcGFyc2luZyB1c2VyIGRhdGEgZnJvbSBsb2NhbFN0b3JhZ2U6JywgZXJyb3IpO1xuICAgIDc4XHQgICAgICByZXR1cm4gbnVsbDtcbiAgICA3OVx0ICAgIH1cbiAgICA4MFx0ICB9XG4gICAgODFcdCAgcmV0dXJuIG51bGw7XG4gICAgODJcdH07XG4gICAgODNcdFxuICAgIDg0XHRleHBvcnQgY29uc3Qgc2VuZEZlZWRiYWNrUXVlcnkgPSAoeyBjaGF0Zmxvd2lkLCBhcGlIb3N0ID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIGJvZHksIG9uUmVxdWVzdCB9OiBDcmVhdGVGZWVkYmFja1JlcXVlc3QpID0+XG4gICAgODVcdCAgc2VuZFJlcXVlc3Qoe1xuICAgIDg2XHQgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgODdcdCAgICB1cmw6IGAke2FwaUhvc3R9L2FwaS92MS9mZWVkYmFjay8ke2NoYXRmbG93aWR9YCxcbiAgICA4OFx0ICAgIGJvZHksXG4gICAgODlcdCAgICBvblJlcXVlc3Q6IG9uUmVxdWVzdCxcbiAgICA5MFx0ICAgIGhlYWRlcnM6IHtcbiAgICA5MVx0ICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgICA5Mlx0ICAgIH0sXG4gICAgOTNcdCAgfSk7XG4uLi5cbiAgIDExNVx0XG4gICAxMTZcdGV4cG9ydCBjb25zdCBzZW5kTWVzc2FnZVF1ZXJ5ID0gKHsgY2hhdGZsb3dpZCwgYXBpSG9zdCA9ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLCBib2R5LCBvblJlcXVlc3QgfTogTWVzc2FnZVJlcXVlc3QpID0+IHtcbiAgIDExN1x0ICByZXR1cm4gc2VuZFJlcXVlc3Q8YW55Pih7XG4gICAxMThcdCAgICBtZXRob2Q6ICdQT1NUJyxcbiAgIDExOVx0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL3ByZWRpY3Rpb24vJHtjaGF0Zmxvd2lkfWAsXG4gICAxMjBcdCAgICBib2R5LFxuICAgMTIxXHQgICAgb25SZXF1ZXN0OiBvblJlcXVlc3QsXG4gICAxMjJcdCAgICBoZWFkZXJzOiB7XG4gICAxMjNcdCAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSgpfWAsXG4gICAxMjRcdCAgICB9LFxuICAgMTI1XHQgIH0pO1xuICAgMTI2XHR9O1xuICAgMTI3XHRcbiAgIDEyOFx0ZXhwb3J0IGNvbnN0IGNyZWF0ZUF0dGFjaG1lbnRXaXRoRm9ybURhdGEgPSAoeyBjaGF0Zmxvd2lkLCBhcGlIb3N0ID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIGZvcm1EYXRhLCBvblJlcXVlc3QgfTogVXBzZXJ0UmVxdWVzdCkgPT5cbiAgIDEyOVx0ICBzZW5kUmVxdWVzdCh7XG4gICAxMzBcdCAgICBtZXRob2Q6ICdQT1NUJyxcbiAgIDEzMVx0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL2F0dGFjaG1lbnRzLyR7Y2hhdGZsb3dpZH0vJHtmb3JtRGF0YS5nZXQoJ2NoYXRJZCcpfWAsXG4gICAxMzJcdCAgICBmb3JtRGF0YSxcbiAgIDEzM1x0ICAgIGhlYWRlcnM6IHtcbiAgIDEzNFx0ICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdtdWx0aXBhcnQvZm9ybS1kYXRhJyxcbiAgIDEzNVx0ICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgIDEzNlx0ICAgIH0sXG4gICAxMzdcdCAgICBvblJlcXVlc3Q6IG9uUmVxdWVzdCxcbiAgIDEzOFx0ICB9KTtcbi4uLlxuICAgMTYxXHRcbiAgIDE2Mlx0ZXhwb3J0IGNvbnN0IGlzU3RyZWFtQXZhaWxhYmxlUXVlcnkgPSAoeyBjaGF0Zmxvd2lkLCBhcGlIb3N0ID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIG9uUmVxdWVzdCB9OiBNZXNzYWdlUmVxdWVzdCkgPT5cbiAgIDE2M1x0ICBzZW5kUmVxdWVzdDxhbnk+KHtcbiAgIDE2NFx0ICAgIG1ldGhvZDogJ0dFVCcsXG4gICAxNjVcdCAgICB1cmw6IGAke2FwaUhvc3R9L2FwaS92MS9jaGF0Zmxvd3Mtc3RyZWFtaW5nLyR7Y2hhdGZsb3dpZH1gLFxuICAgMTY2XHQgICAgb25SZXF1ZXN0OiBvblJlcXVlc3QsXG4gICAxNjdcdCAgICBoZWFkZXJzOiB7XG4gICAxNjhcdCAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSgpfWAsXG4gICAxNjlcdCAgICB9LFxuICAgMTcwXHQgIH0pO1xuICAgMTcxXHRcbiAgIDE3Mlx0ZXhwb3J0IGNvbnN0IHNlbmRGaWxlRG93bmxvYWRRdWVyeSA9ICh7IGFwaUhvc3QgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJywgYm9keSwgb25SZXF1ZXN0IH06IE1lc3NhZ2VSZXF1ZXN0KSA9PlxuICAgMTczXHQgIHNlbmRSZXF1ZXN0PGFueT4oe1xuICAgMTc0XHQgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAxNzVcdCAgICB1cmw6IGAke2FwaUhvc3R9L2FwaS92MS9vcGVuYWktYXNzaXN0YW50cy1maWxlL2Rvd25sb2FkYCxcbiAgIDE3Nlx0ICAgIGJvZHksXG4gICAxNzdcdCAgICB0eXBlOiAnYmxvYicsXG4gICAxNzhcdCAgICBvblJlcXVlc3Q6IG9uUmVxdWVzdCxcbiAgIDE3OVx0ICAgIGhlYWRlcnM6IHtcbiAgIDE4MFx0ICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgIDE4MVx0ICAgIH0sXG4gICAxODJcdCAgfSk7XG4gICAxODNcdFxuICAgMTg0XHRleHBvcnQgY29uc3QgYWRkTGVhZFF1ZXJ5ID0gKHsgYXBpSG9zdCA9ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLCBib2R5LCBvblJlcXVlc3QgfTogTGVhZENhcHR1cmVSZXF1ZXN0KSA9PlxuICAgMTg1XHQgIHNlbmRSZXF1ZXN0PGFueT4oe1xuICAgMTg2XHQgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAxODdcdCAgICB1cmw6IGAke2FwaUhvc3R9L2FwaS92MS9sZWFkcy9gLFxuICAgMTg4XHQgICAgYm9keSxcbiAgIDE4OVx0ICAgIG9uUmVxdWVzdDogb25SZXF1ZXN0LFxuICAgMTkwXHQgICAgaGVhZGVyczoge1xuICAgMTkxXHQgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgMTkyXHQgICAgfSxcbiAgIDE5M1x0ICB9KTtcbiAgIDE5NFx0XG4gICAxOTVcdGV4cG9ydCBjb25zdCBzZWFyY2hGYXFzUXVlcnkgPSBhc3luYyAoe1xuICAgMTk2XHQgIGNoYXRmbG93aWQsXG4gICAxOTdcdCAgYXBpSG9zdCA9ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLFxuICAgMTk4XHQgIHF1ZXJ5LFxuICAgMTk5XHQgIG9uUmVxdWVzdCxcbiAgIDIwMFx0fToge1xuICAgMjAxXHQgIGNoYXRmbG93aWQ/OiBzdHJpbmc7XG4gICAyMDJcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgIDIwM1x0ICBxdWVyeTogc3RyaW5nO1xuICAgMjA0XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgIDIwNVx0fSkgPT4ge1xuICAgMjA2XHQgIHJldHVybiBzZW5kUmVxdWVzdDxhbnk+KHtcbiAgIDIwN1x0ICAgIG1ldGhvZDogJ0dFVCcsXG4gICAyMDhcdCAgICB1cmw6IGAke2FwaUhvc3R9L2FwaS92MS9mYXEvc2VhcmNoLyR7Y2hhdGZsb3dpZH0/cXVlcnk9JHtxdWVyeX1gLFxuICAgMjA5XHQgICAgb25SZXF1ZXN0OiBvblJlcXVlc3QsXG4gICAyMTBcdCAgICBoZWFkZXJzOiB7XG4gICAyMTFcdCAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSgpfWAsXG4gICAyMTJcdCAgICB9LFxuICAgMjEzXHQgIH0pO1xuICAgMjE0XHR9O1xuLi4uXG4gICAyMzZcdFxuICAgMjM3XHRleHBvcnQgY29uc3QgZ2V0RmlsZUNvbnRlbnQgPSBhc3luYyAoe1xuICAgMjM4XHQgIGFwaUhvc3QgPSAnaHR0cHM6Ly9zMy1leHBsb3Jlci5jbWN0czEuc3R1ZGlvLmFpLnZuJyxcbiAgIDIzOVx0ICBwYXRoLFxuICAgMjQwXHQgIG9uUmVxdWVzdCxcbiAgIDI0MVx0fToge1xuICAgMjQyXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAyNDNcdCAgcGF0aDogc3RyaW5nO1xuICAgMjQ0XHQgIG9uUmVxdWVzdD86IChyZXF1ZXN0OiBSZXF1ZXN0SW5pdCkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgIDI0NVx0fSkgPT4ge1xuICAgMjQ2XHQgIHJldHVybiBzZW5kUmVxdWVzdDxhbnk+KHtcbiAgIDI0N1x0ICAgIG1ldGhvZDogJ0dFVCcsXG4gICAyNDhcdCAgICB1cmw6IGAke2FwaUhvc3R9L2FwaS9yZWFkLXRleHQ/cGF0aD0ke3BhdGh9YCxcbiAgIDI0OVx0ICAgIG9uUmVxdWVzdDogb25SZXF1ZXN0LFxuICAgMjUwXHQgICAgaGVhZGVyczoge1xuICAgMjUxXHQgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgMjUyXHQgICAgfSxcbiAgIDI1M1x0ICB9KTtcbiAgIDI1NFx0fTtcbi4uLlxuUGF0aDogc3JjL2ZlYXR1cmVzL2Z1bGwvY29tcG9uZW50cy9pbmRleC50c1xuICAgICAxXHRleHBvcnQgKiBmcm9tICcuL0Z1bGwnO1xuLi4uXG5QYXRoOiBzcmMvaW5kZXgudHNcbiAgICAgMVx0ZXhwb3J0IHsgRnVsbFBhZ2VDaGF0IH0gZnJvbSAnLi9GdWxsUGFnZUNoYXQnXG4gICAgIDJcdGV4cG9ydCB7IEJ1YmJsZUNoYXQgfSBmcm9tICcuL0J1YmJsZUNoYXQnXG4uLi5cblBhdGg6IHNyYy91dGlscy9pbmRleC50c1xuLi4uXG4gICAgIDhcdFxuICAgICA5XHRleHBvcnQgY29uc3Qgc2VuZFJlcXVlc3QgPSBhc3luYyA8UmVzcG9uc2VEYXRhPihcbiAgICAxMFx0ICBwYXJhbXM6XG4gICAgMTFcdCAgICB8IHtcbiAgICAxMlx0ICAgICAgICB1cmw6IHN0cmluZztcbiAgICAxM1x0ICAgICAgICBtZXRob2Q6IHN0cmluZztcbiAgICAxNFx0ICAgICAgICBib2R5PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBGb3JtRGF0YTtcbiAgICAxNVx0ICAgICAgICB0eXBlPzogc3RyaW5nO1xuICAgIDE2XHQgICAgICAgIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIDE3XHQgICAgICAgIGZvcm1EYXRhPzogRm9ybURhdGE7XG4gICAgMThcdCAgICAgICAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIDE5XHQgICAgICB9XG4gICAgMjBcdCAgICB8IHN0cmluZyxcbiAgICAyMVx0KTogUHJvbWlzZTx7IGRhdGE/OiBSZXNwb25zZURhdGE7IGVycm9yPzogRXJyb3IgfT4gPT4ge1xuICAgIDIyXHQgIHRyeSB7XG4gICAgMjNcdCAgICBjb25zdCB1cmwgPSB0eXBlb2YgcGFyYW1zID09PSAnc3RyaW5nJyA/IHBhcmFtcyA6IHBhcmFtcy51cmw7XG4gICAgMjRcdCAgICBjb25zdCBoZWFkZXJzID1cbiAgICAyNVx0ICAgICAgdHlwZW9mIHBhcmFtcyAhPT0gJ3N0cmluZycgJiYgaXNEZWZpbmVkKHBhcmFtcy5ib2R5KVxuICAgIDI2XHQgICAgICAgID8ge1xuICAgIDI3XHQgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIDI4XHQgICAgICAgICAgICAuLi5wYXJhbXMuaGVhZGVycyxcbiAgICAyOVx0ICAgICAgICAgIH1cbiAgICAzMFx0ICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAzMVx0ICAgIGxldCBib2R5OiBzdHJpbmcgfCBGb3JtRGF0YSB8IHVuZGVmaW5lZCA9IHR5cGVvZiBwYXJhbXMgIT09ICdzdHJpbmcnICYmIGlzRGVmaW5lZChwYXJhbXMuYm9keSkgPyBKU09OLnN0cmluZ2lmeShwYXJhbXMuYm9keSkgOiB1bmRlZmluZWQ7XG4gICAgMzJcdCAgICBpZiAodHlwZW9mIHBhcmFtcyAhPT0gJ3N0cmluZycgJiYgcGFyYW1zLmZvcm1EYXRhKSBib2R5ID0gcGFyYW1zLmZvcm1EYXRhO1xuICAgIDMzXHRcbiAgICAzNFx0ICAgIGNvbnN0IHJlcXVlc3RJbmZvOiBSZXF1ZXN0SW5pdCA9IHtcbiAgICAzNVx0ICAgICAgbWV0aG9kOiB0eXBlb2YgcGFyYW1zID09PSAnc3RyaW5nJyA/ICdHRVQnIDogcGFyYW1zLm1ldGhvZCxcbiAgICAzNlx0ICAgICAgbW9kZTogJ2NvcnMnLFxuICAgIDM3XHQgICAgICBoZWFkZXJzLFxuICAgIDM4XHQgICAgICBib2R5LFxuICAgIDM5XHQgICAgfTtcbiAgICA0MFx0XG4gICAgNDFcdCAgICBpZiAodHlwZW9mIHBhcmFtcyAhPT0gJ3N0cmluZycgJiYgcGFyYW1zLm9uUmVxdWVzdCkge1xuICAgIDQyXHQgICAgICBhd2FpdCBwYXJhbXMub25SZXF1ZXN0KHJlcXVlc3RJbmZvKTtcbiAgICA0M1x0ICAgIH1cbiAgICA0NFx0XG4gICAgNDVcdCAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwgcmVxdWVzdEluZm8pO1xuICAgIDQ2XHRcbiAgICA0N1x0ICAgIGxldCBkYXRhOiBhbnk7XG4gICAgNDhcdCAgICBjb25zdCBjb250ZW50VHlwZSA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKTtcbiAgICA0OVx0ICAgIGlmIChjb250ZW50VHlwZSAmJiBjb250ZW50VHlwZS5pbmNsdWRlcygnYXBwbGljYXRpb24vanNvbicpKSB7XG4gICAgNTBcdCAgICAgIGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgNTFcdCAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXJhbXMgIT09ICdzdHJpbmcnICYmIHBhcmFtcy50eXBlID09PSAnYmxvYicpIHtcbiAgICA1Mlx0ICAgICAgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmJsb2IoKTtcbiAgICA1M1x0ICAgIH0gZWxzZSB7XG4gICAgNTRcdCAgICAgIGRhdGEgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7XG4gICAgNTVcdCAgICB9XG4uLi5cbiAgIDExMlx0ICBrZXlzVG9SZW1vdmUuZm9yRWFjaCgoa2V5KSA9PiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpKTtcbiAgIDExM1x0XG4gICAxMTRcdCAgY29uc3QgY2hhdERldGFpbHMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgJHtjaGF0Zmxvd2lkfV9FWFRFUk5BTGApO1xuICAgMTE1XHQgIGlmICghY2hhdERldGFpbHMpIHJldHVybjtcbiAgIDExNlx0ICB0cnkge1xuICAgMTE3XHQgICAgY29uc3QgcGFyc2VkQ2hhdERldGFpbHMgPSBKU09OLnBhcnNlKGNoYXREZXRhaWxzKTtcbiAgIDExOFx0ICAgIGlmIChwYXJzZWRDaGF0RGV0YWlscy5sZWFkKSB7XG4gICAxMTlcdCAgICAgIC8vIERvbnQgcmVtb3ZlIGxlYWQgd2hlbiBjaGF0IGlzIGNsZWFyZWRcbiAgIDEyMFx0ICAgICAgY29uc3Qgb2JqID0geyBsZWFkOiBwYXJzZWRDaGF0RGV0YWlscy5sZWFkIH07XG4gICAxMjFcdCAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGAke2NoYXRmbG93aWR9X0VYVEVSTkFMYCk7XG4gICAxMjJcdCAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGAke2NoYXRmbG93aWR9X0VYVEVSTkFMYCwgSlNPTi5zdHJpbmdpZnkob2JqKSk7XG4gICAxMjNcdCAgICB9IGVsc2Uge1xuICAgMTI0XHQgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShgJHtjaGF0Zmxvd2lkfV9FWFRFUk5BTGApO1xuICAgMTI1XHQgICAgfVxuICAgMTI2XHQgIH0gY2F0Y2ggKGUpIHtcbiAgIDEyN1x0ICAgIHJldHVybjtcbiAgIDEyOFx0ICB9XG4gICAxMjlcdH07XG4uLi5cbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMTdBSlVYWkd0NmFEY2R4ZHpTRE4yN0IifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowOTo0MS4yNzdaIiwicmVzcG9uc2VfdGV4dCI6IlBlcmZlY3QhIE5vdyBJIHVuZGVyc3RhbmQgdGhlIHN0cnVjdHVyZS4gVGhlIGBvbkJlZm9yZVNlbmRgIHByb3AgaXMgYXZhaWxhYmxlIGFuZCBjYW4gYmUgdXNlZCB3aXRoIHRoZSBgQ2hhdGJvdC5pbml0RnVsbGAgbWV0aG9kLiBMZXQgbWUgYWRkIHRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIHdpdGggYW4gYWxlcnQgbWVzc2FnZSB0byB0aGUgaW5kZXguaHRtbCBmaWxlLlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJzdGF0dXMiOiJzdWNjZXNzIiwicmVxdWVzdF9pZCI6Ijc2NTRkOTNkLWZmOTItNGNhZC04ODJiLTFkZjA2MjZhZDdkZCIsInJlcXVlc3RfbWVzc2FnZSI6IiIsInN0cnVjdHVyZWRfb3V0cHV0X25vZGVzIjpbeyJpZCI6MCwidHlwZSI6MCwiY29udGVudCI6IlBlcmZlY3QhIEkgaGF2ZSBzdWNjZXNzZnVsbHkgYWRkZWQgdGhlIGBvbkJlZm9yZVNlbmRgIHByb3AgdG8gdGhlIGBpbmRleC5odG1sYCBmaWxlLiBIZXJlJ3Mgd2hhdCBJIGFkZGVkOlxuXG48YXVnbWVudF9jb2RlX3NuaXBwZXQgcGF0aD1cInB1YmxpYy9pbmRleC5odG1sXCIgbW9kZT1cIkVYQ0VSUFRcIj5cbmBgYGphdmFzY3JpcHRcbm9uQmVmb3JlU2VuZDogKG1lc3NhZ2UsIGJvZHkpID0+IHtcbiAgYWxlcnQoYEFib3V0IHRvIHNlbmQgbWVzc2FnZTogXCIke21lc3NhZ2V9XCJgKTtcbiAgY29uc29sZS5sb2coJ01lc3NhZ2UgYmVpbmcgc2VudDonLCBtZXNzYWdlKTtcbiAgY29uc29sZS5sb2coJ1JlcXVlc3QgYm9keTonLCBib2R5KTtcbiAgcmV0dXJuIHsgbWVzc2FnZSwgYm9keSB9O1xufSxcbmBgYFxuPC9hdWdtZW50X2NvZGVfc25pcHBldD5cblxuIyMgU3VtbWFyeVxuXG5JJ3ZlIHN1Y2Nlc3NmdWxseSBhZGRlZCB0aGUgYG9uQmVmb3JlU2VuZGAgcHJvcCB0byB5b3VyIGBpbmRleC5odG1sYCBmaWxlLiBIZXJlJ3Mgd2hhdCB0aGlzIGltcGxlbWVudGF0aW9uIGRvZXM6XG5cbjEuICoqQWxlcnQgTWVzc2FnZSoqOiBTaG93cyBhbiBhbGVydCBkaWFsb2cgd2l0aCB0aGUgbWVzc2FnZSBjb250ZW50IGJlZm9yZSBpdCdzIHNlbnQgdG8gdGhlIGNoYXRib3RcbjIuICoqQ29uc29sZSBMb2dnaW5nKio6IExvZ3MgYm90aCB0aGUgbWVzc2FnZSBhbmQgdGhlIHJlcXVlc3QgYm9keSB0byB0aGUgYnJvd3NlciBjb25zb2xlIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXNcbjMuICoqTWVzc2FnZSBQcm9jZXNzaW5nKio6IFJldHVybnMgdGhlIG9yaWdpbmFsIG1lc3NhZ2UgYW5kIGJvZHkgdW5jaGFuZ2VkLCBhbGxvd2luZyB0aGUgbWVzc2FnZSB0byBiZSBzZW50IG5vcm1hbGx5XG5cblRoZSBgb25CZWZvcmVTZW5kYCBjYWxsYmFjayBmdW5jdGlvbjpcbi0gUmVjZWl2ZXMgdHdvIHBhcmFtZXRlcnM6IGBtZXNzYWdlYCAodGhlIHVzZXIncyB0ZXh0KSBhbmQgYGJvZHlgICh0aGUgY29tcGxldGUgcmVxdWVzdCBwYXlsb2FkKVxuLSBTaG93cyBhbiBhbGVydCB3aXRoIHRoZSBtZXNzYWdlIGNvbnRlbnRcbi0gTG9ncyB0aGUgZGV0YWlscyB0byB0aGUgY29uc29sZVxuLSBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIHRoZSBvcmlnaW5hbCBgbWVzc2FnZWAgYW5kIGBib2R5YCB0byBhbGxvdyBub3JtYWwgcHJvY2Vzc2luZ1xuXG5Ob3cgd2hlbiB1c2VycyB0eXBlIG1lc3NhZ2VzIGluIHRoZSBjaGF0Ym90LCB0aGV5J2xsIHNlZSBhbiBhbGVydCBzaG93aW5nIHdoYXQgbWVzc2FnZSBpcyBhYm91dCB0byBiZSBzZW50IGJlZm9yZSBpdCBhY3R1YWxseSBnZXRzIHRyYW5zbWl0dGVkIHRvIHRoZSBzZXJ2ZXIuIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgZGVidWdnaW5nLCBtZXNzYWdlIHZhbGlkYXRpb24sIG9yIHVzZXIgY29uZmlybWF0aW9uIHdvcmtmbG93cy5cbiJ9LHsiaWQiOjIsInR5cGUiOjIsImNvbnRlbnQiOiJQZXJmZWN0ISBJIGhhdmUgc3VjY2Vzc2Z1bGx5IGFkZGVkIHRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIHRvIHRoZSBgaW5kZXguaHRtbGAgZmlsZS4gSGVyZSdzIHdoYXQgSSBhZGRlZDpcblxuYGBgYGphdmFzY3JpcHQgcGF0aD1wdWJsaWMvaW5kZXguaHRtbCBtb2RlPUVYQ0VSUFRcbm9uQmVmb3JlU2VuZDogKG1lc3NhZ2UsIGJvZHkpID0+IHtcbiAgYWxlcnQoYEFib3V0IHRvIHNlbmQgbWVzc2FnZTogXCIke21lc3NhZ2V9XCJgKTtcbiAgY29uc29sZS5sb2coJ01lc3NhZ2UgYmVpbmcgc2VudDonLCBtZXNzYWdlKTtcbiAgY29uc29sZS5sb2coJ1JlcXVlc3QgYm9keTonLCBib2R5KTtcbiAgcmV0dXJuIHsgbWVzc2FnZSwgYm9keSB9O1xufSxcbmBgYGBcblxuIyMgU3VtbWFyeVxuXG5JJ3ZlIHN1Y2Nlc3NmdWxseSBhZGRlZCB0aGUgYG9uQmVmb3JlU2VuZGAgcHJvcCB0byB5b3VyIGBpbmRleC5odG1sYCBmaWxlLiBIZXJlJ3Mgd2hhdCB0aGlzIGltcGxlbWVudGF0aW9uIGRvZXM6XG5cbjEuICoqQWxlcnQgTWVzc2FnZSoqOiBTaG93cyBhbiBhbGVydCBkaWFsb2cgd2l0aCB0aGUgbWVzc2FnZSBjb250ZW50IGJlZm9yZSBpdCdzIHNlbnQgdG8gdGhlIGNoYXRib3RcbjIuICoqQ29uc29sZSBMb2dnaW5nKio6IExvZ3MgYm90aCB0aGUgbWVzc2FnZSBhbmQgdGhlIHJlcXVlc3QgYm9keSB0byB0aGUgYnJvd3NlciBjb25zb2xlIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXNcbjMuICoqTWVzc2FnZSBQcm9jZXNzaW5nKio6IFJldHVybnMgdGhlIG9yaWdpbmFsIG1lc3NhZ2UgYW5kIGJvZHkgdW5jaGFuZ2VkLCBhbGxvd2luZyB0aGUgbWVzc2FnZSB0byBiZSBzZW50IG5vcm1hbGx5XG5cblRoZSBgb25CZWZvcmVTZW5kYCBjYWxsYmFjayBmdW5jdGlvbjpcbi0gUmVjZWl2ZXMgdHdvIHBhcmFtZXRlcnM6IGBtZXNzYWdlYCAodGhlIHVzZXIncyB0ZXh0KSBhbmQgYGJvZHlgICh0aGUgY29tcGxldGUgcmVxdWVzdCBwYXlsb2FkKVxuLSBTaG93cyBhbiBhbGVydCB3aXRoIHRoZSBtZXNzYWdlIGNvbnRlbnRcbi0gTG9ncyB0aGUgZGV0YWlscyB0byB0aGUgY29uc29sZVxuLSBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIHRoZSBvcmlnaW5hbCBgbWVzc2FnZWAgYW5kIGBib2R5YCB0byBhbGxvdyBub3JtYWwgcHJvY2Vzc2luZ1xuXG5Ob3cgd2hlbiB1c2VycyB0eXBlIG1lc3NhZ2VzIGluIHRoZSBjaGF0Ym90LCB0aGV5J2xsIHNlZSBhbiBhbGVydCBzaG93aW5nIHdoYXQgbWVzc2FnZSBpcyBhYm91dCB0byBiZSBzZW50IGJlZm9yZSBpdCBhY3R1YWxseSBnZXRzIHRyYW5zbWl0dGVkIHRvIHRoZSBzZXJ2ZXIuIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgZGVidWdnaW5nLCBtZXNzYWdlIHZhbGlkYXRpb24sIG9yIHVzZXIgY29uZmlybWF0aW9uIHdvcmtmbG93cy5cbiJ9LHsiaWQiOjMsInR5cGUiOjMsImNvbnRlbnQiOiIifV0sInNlZW5fc3RhdGUiOiJzZWVuIiwic3RydWN0dXJlZF9yZXF1ZXN0X25vZGVzIjpbeyJpZCI6MSwidHlwZSI6MSwidG9vbF9yZXN1bHRfbm9kZSI6eyJjb250ZW50IjoiU3VjY2Vzc2Z1bGx5IGVkaXRlZCB0aGUgZmlsZSBwdWJsaWMvaW5kZXguaHRtbC5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzBdOlxuUmVwbGFjZW1lbnQgc3VjY2Vzc2Z1bC5cbkVkaXRlZCBzZWN0aW9uIGFmdGVyIElERSBhdXRvLWZvcm1hdHRpbmcgd2FzIGFwcGxpZWQ6XG4gICAgNDJcdCAgICAvLyBhZ2VudDE9eHl6Nzg5LXV2dzQ1NixodHRwczovL2V4YW1wbGUuY29tXG4gICAgNDNcdCAgICAvLyBzdXBwb3J0PWFiYzEyMy1kZWY0NTYsaHR0cHM6Ly9leGFtcGxlLmNvbVxuICAgIDQ0XHQgICAgLy8gc2FsZXNib3Q9Z2hpMTIzLWprbDQ1NixodHRwczovL2V4YW1wbGUuY29tXG4gICAgNDVcdCAgICAvL1xuICAgIDQ2XHQgICAgLy8gVGhlbiB1c2UgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUgYXMgY2hhdGZsb3dpZDpcbiAgICA0N1x0ICAgIENoYXRib3QuaW5pdEZ1bGwoe1xuICAgIDQ4XHQgICAgICAvLyBjaGF0Zmxvd2lkOiAnNmE2M2JiODgtODhmNy00YzRkLTgwNWUtOWMwMjdjODU3MDdiJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXG4gICAgNDlcdCAgICAgIC8vIGNoYXRmbG93aWQ6ICdiNTczZTY2ZC0wZTI4LTQ3OTgtOGU0Zi1mYmJhZmY4ZTIzNmYnLCAvLyBvciAnc3VwcG9ydCcsICdzYWxlc2JvdCcsIGV0Yy5cbiAgICA1MFx0ICAgICAgLy8gY2hhdGZsb3dpZDogJzdlZTgwM2I0LWUzZjgtNGYzMy1iZjg1LWVmOWFiOWQ2ZjY5MycsIC8vIG9yICdzdXBwb3J0JywgJ3NhbGVzYm90JywgZXRjLlxuICAgIDUxXHQgICAgICBjaGF0Zmxvd2lkOiAnMjE3YmZkZTktZDRjYi00YjJhLWI2MzctODk4OTBhOTk5MGVlJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXG4gICAgNTJcdCAgICAgIGFwaUhvc3Q6ICdodHRwczovL3ZpYi5jYWdlbnQuY21jdHMuYWknLFxuICAgIDUzXHQgICAgICAvLyBhcGlIb3N0OiAnaHR0cHM6Ly9jLWFnZW50LmNtY3RzLnN0dWRpby5haS52bicsXG4gICAgNTRcdCAgICAgIGNoYXR3b290VXJsOiAnaHR0cHM6Ly9saXZlY2hhdC5jYWdlbnQuY21jdHMuYWknLFxuICAgIDU1XHQgICAgICBvbkJlZm9yZVNlbmQ6IChtZXNzYWdlLCBib2R5KSA9PiB7XG4gICAgNTZcdCAgICAgICAgYWxlcnQoYEFib3V0IHRvIHNlbmQgbWVzc2FnZTogXCIke21lc3NhZ2V9XCJgKTtcbiAgICA1N1x0ICAgICAgICBjb25zb2xlLmxvZygnTWVzc2FnZSBiZWluZyBzZW50OicsIG1lc3NhZ2UpO1xuICAgIDU4XHQgICAgICAgIGNvbnNvbGUubG9nKCdSZXF1ZXN0IGJvZHk6JywgYm9keSk7XG4gICAgNTlcdCAgICAgICAgcmV0dXJuIHsgbWVzc2FnZSwgYm9keSB9O1xuICAgIDYwXHQgICAgICB9LFxuICAgIDYxXHQgICAgICByb29tSWRzOiB7XG4gICAgNjJcdCAgICAgICAgJzAxMjM0NTY3ODknOiAnWGE2SG1oZmJVNUs3M1poSG5zcHpLaHFzJyxcbiAgICA2M1x0ICAgICAgfSxcbiAgICA2NFx0ICAgICAgdGhlbWU6IGN1c3RvbVN0cmluZ2lmeSh7XG5cblJldmlldyB0aGUgY2hhbmdlcyBhbmQgbWFrZSBzdXJlIHRoZXkgYXJlIGFzIGV4cGVjdGVkIChjb3JyZWN0IGluZGVudGF0aW9uLCBubyBkdXBsaWNhdGUgbGluZXMsIGV0YykuXG5FZGl0IHRoZSBmaWxlIGFnYWluIGlmIG5lY2Vzc2FyeS5cbiIsImlzX2Vycm9yIjpmYWxzZSwicmVxdWVzdF9pZCI6IiIsInRvb2xfdXNlX2lkIjoidG9vbHVfdnJ0eF8wMVJrcUZ2OExrTUVvU3ZxTDlQdEFaMXEifX0seyJpZCI6MiwidHlwZSI6NCwiaWRlX3N0YXRlX25vZGUiOnsid29ya3NwYWNlRm9sZGVycyI6W3sicmVwb3NpdG9yeVJvb3QiOiJFOi9GbG93aXNlLXNoYXJlLWNoYXRib3giLCJmb2xkZXJSb290IjoiRTovRmxvd2lzZS1zaGFyZS1jaGF0Ym94In1dLCJ3b3Jrc3BhY2VGb2xkZXJzVW5jaGFuZ2VkIjpmYWxzZX19XSwidGltZXN0YW1wIjoiMjAyNS0wNS0zMFQwNDowOTo1OC44MzdaIiwicmVzcG9uc2VfdGV4dCI6IlBlcmZlY3QhIEkgaGF2ZSBzdWNjZXNzZnVsbHkgYWRkZWQgdGhlIGBvbkJlZm9yZVNlbmRgIHByb3AgdG8gdGhlIGBpbmRleC5odG1sYCBmaWxlLiBIZXJlJ3Mgd2hhdCBJIGFkZGVkOlxuXG5gYGBgamF2YXNjcmlwdCBwYXRoPXB1YmxpYy9pbmRleC5odG1sIG1vZGU9RVhDRVJQVFxub25CZWZvcmVTZW5kOiAobWVzc2FnZSwgYm9keSkgPT4ge1xuICBhbGVydChgQWJvdXQgdG8gc2VuZCBtZXNzYWdlOiBcIiR7bWVzc2FnZX1cImApO1xuICBjb25zb2xlLmxvZygnTWVzc2FnZSBiZWluZyBzZW50OicsIG1lc3NhZ2UpO1xuICBjb25zb2xlLmxvZygnUmVxdWVzdCBib2R5OicsIGJvZHkpO1xuICByZXR1cm4geyBtZXNzYWdlLCBib2R5IH07XG59LFxuYGBgYFxuXG4jIyBTdW1tYXJ5XG5cbkkndmUgc3VjY2Vzc2Z1bGx5IGFkZGVkIHRoZSBgb25CZWZvcmVTZW5kYCBwcm9wIHRvIHlvdXIgYGluZGV4Lmh0bWxgIGZpbGUuIEhlcmUncyB3aGF0IHRoaXMgaW1wbGVtZW50YXRpb24gZG9lczpcblxuMS4gKipBbGVydCBNZXNzYWdlKio6IFNob3dzIGFuIGFsZXJ0IGRpYWxvZyB3aXRoIHRoZSBtZXNzYWdlIGNvbnRlbnQgYmVmb3JlIGl0J3Mgc2VudCB0byB0aGUgY2hhdGJvdFxuMi4gKipDb25zb2xlIExvZ2dpbmcqKjogTG9ncyBib3RoIHRoZSBtZXNzYWdlIGFuZCB0aGUgcmVxdWVzdCBib2R5IHRvIHRoZSBicm93c2VyIGNvbnNvbGUgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlc1xuMy4gKipNZXNzYWdlIFByb2Nlc3NpbmcqKjogUmV0dXJucyB0aGUgb3JpZ2luYWwgbWVzc2FnZSBhbmQgYm9keSB1bmNoYW5nZWQsIGFsbG93aW5nIHRoZSBtZXNzYWdlIHRvIGJlIHNlbnQgbm9ybWFsbHlcblxuVGhlIGBvbkJlZm9yZVNlbmRgIGNhbGxiYWNrIGZ1bmN0aW9uOlxuLSBSZWNlaXZlcyB0d28gcGFyYW1ldGVyczogYG1lc3NhZ2VgICh0aGUgdXNlcidzIHRleHQpIGFuZCBgYm9keWAgKHRoZSBjb21wbGV0ZSByZXF1ZXN0IHBheWxvYWQpXG4tIFNob3dzIGFuIGFsZXJ0IHdpdGggdGhlIG1lc3NhZ2UgY29udGVudFxuLSBMb2dzIHRoZSBkZXRhaWxzIHRvIHRoZSBjb25zb2xlXG4tIFJldHVybnMgYW4gb2JqZWN0IHdpdGggdGhlIG9yaWdpbmFsIGBtZXNzYWdlYCBhbmQgYGJvZHlgIHRvIGFsbG93IG5vcm1hbCBwcm9jZXNzaW5nXG5cbk5vdyB3aGVuIHVzZXJzIHR5cGUgbWVzc2FnZXMgaW4gdGhlIGNoYXRib3QsIHRoZXknbGwgc2VlIGFuIGFsZXJ0IHNob3dpbmcgd2hhdCBtZXNzYWdlIGlzIGFib3V0IHRvIGJlIHNlbnQgYmVmb3JlIGl0IGFjdHVhbGx5IGdldHMgdHJhbnNtaXR0ZWQgdG8gdGhlIHNlcnZlci4gVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBkZWJ1Z2dpbmcsIG1lc3NhZ2UgdmFsaWRhdGlvbiwgb3IgdXNlciBjb25maXJtYXRpb24gd29ya2Zsb3dzLlxuIiwid29ya3NwYWNlX2ZpbGVfY2h1bmtzIjpbXX0seyJyZXF1ZXN0X2lkIjoiNDc5ODI4OWUtN2Q1OS00YTk5LWEyY2YtMzVjNTY3NDRmZmEwIiwidXVpZCI6ImQ1ZDBlODQ4LTRkY2QtNGJhYy1hNDQyLTRlY2ZhOTBkMDE2NSIsImNoYXRJdGVtVHlwZSI6ImFnZW50aWMtY2hlY2twb2ludC1kZWxpbWl0ZXIiLCJzdGF0dXMiOiJzdWNjZXNzIiwiZnJvbVRpbWVzdGFtcCI6MTc0ODU3ODE1NzE1MiwidG9UaW1lc3RhbXAiOjE3NDg1NzgyMDY1MTUsInNlZW5fc3RhdGUiOiJzZWVuIn1dLCJmZWVkYmFja1N0YXRlcyI6eyJ0ZW1wLWZlLTFjMjRjYTJjLTY1OWMtNGRmYi1iN2E0LTUxOGE2ZDEwMTBlOSI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn0sInRlbXAtZmUtNTZlYjEwMjktYWRjNC00N2EwLTk4YjMtYjQxM2QxYjc2MWExIjp7InNlbGVjdGVkUmF0aW5nIjowLCJmZWVkYmFja05vdGUiOiIifSwidGVtcC1mZS05NDhkNzQxMS01YWY2LTRmMWUtOGU1MC0zNjljNzg0ZTJhMjEiOnsic2VsZWN0ZWRSYXRpbmciOjAsImZlZWRiYWNrTm90ZSI6IiJ9LCJ0ZW1wLWZlLTYwMmVjYzJlLTdmNDAtNDRjYS1iNmMzLWMwODMyYTExY2ViMSI6eyJzZWxlY3RlZFJhdGluZyI6MCwiZmVlZGJhY2tOb3RlIjoiIn19LCJ0b29sVXNlU3RhdGVzIjp7IjIxYzQ3ZDZmLTNmZjQtNGJkNC04N2I5LTQ2MjljZTA1NThiNjt0b29sdV92cnR4XzAxTGVFdTRBczZXQnhiR0czTWs1UlVLdCI6eyJyZXF1ZXN0SWQiOiIyMWM0N2Q2Zi0zZmY0LTRiZDQtODdiOS00NjI5Y2UwNTU4YjYiLCJ0b29sVXNlSWQiOiJ0b29sdV92cnR4XzAxTGVFdTRBczZXQnhiR0czTWs1UlVLdCIsInBoYXNlIjo1LCJyZXN1bHQiOnsidGV4dCI6IkhlcmUncyB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgYGNhdCAtbmAgb24gcHVibGljL2luZGV4Lmh0bWw6XG4gICAgIDFcdDwhLS1cbiAgICAgMlx0ICBOT1RFOiBUaGlzIC5odG1sIGZpbGUgKGFuZCBwdWJsaWMgZm9sZGVyKSBpcyBvcHRpb25hbCBhbmQgY2FuIGJlIHNhZmVseSBkZWxldGVkLlxuICAgICAzXHQgIEl0IHNlcnZlcyBvbmx5IGFzIGEgZGVtby90ZXN0IHBhZ2UuXG4gICAgIDRcdCAgXG4gICAgIDVcdCAgVGhlIGNoYXRib3QgY2FuIGJlIGVtYmVkZGVkIGRpcmVjdGx5IG9uIGFueSBhbGxvd2VkIGRvbWFpbiB1c2luZyB0aGUgZW1iZWQgc2NyaXB0IHRoYXRcbiAgICAgNlx0ICBpcyBnZW5lcmF0ZWQgd2hlbiBzdGFydGluZyB0aGUgc2VydmVyLlxuICAgICA3XHQtLT5cbiAgICAgOFx0XG4gICAgIDlcdDwhZG9jdHlwZSBodG1sPlxuICAgIDEwXHQ8aHRtbCBsYW5nPVwiZW5cIj5cbiAgICAxMVx0XG4gICAgMTJcdDxoZWFkPlxuICAgIDEzXHQgIDxtZXRhIGNoYXJzZXQ9XCJVVEYtOFwiIC8+XG4gICAgMTRcdCAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjBcIiAvPlxuICAgIDE1XHQgIDx0aXRsZT5GbG93aXNlIENoYXRib3QgV2lkZ2V0PC90aXRsZT5cbiAgICAxNlx0PC9oZWFkPlxuICAgIDE3XHRcbiAgICAxOFx0PGJvZHk+XG4gICAgMTlcdCAgPGRpdiBpZD1cInJvb3RcIj5cbiAgICAyMFx0ICAgIDxmbG93aXNlLWZ1bGxjaGF0Ym90PjwvZmxvd2lzZS1mdWxsY2hhdGJvdD5cbiAgICAyMVx0ICA8L2Rpdj5cbiAgICAyMlx0ICA8c2NyaXB0IHR5cGU9XCJtb2R1bGVcIj5cbiAgICAyM1x0ICAgIGltcG9ydCBDaGF0Ym90IGZyb20gJy4vd2ViLmpzJztcbiAgICAyNFx0XG4gICAgMjVcdCAgICBjb25zdCBjdXN0b21TdHJpbmdpZnkgPSAob2JqKSA9PiB7XG4gICAgMjZcdCAgICAgIGxldCBzdHJpbmdpZmllZCA9IEpTT04uc3RyaW5naWZ5KG9iaiwgbnVsbCwgNClcbiAgICAyN1x0ICAgICAgICAucmVwbGFjZSgvXCIoW15cIl0rKVwiOi9nLCAnJDE6JylcbiAgICAyOFx0ICAgICAgICAucmVwbGFjZSgvOiBcIihbXlwiXSspXCIvZywgKG1hdGNoLCB2YWx1ZSkgPT4gKHZhbHVlLmluY2x1ZGVzKCc8JykgPyBgOiBcIiR7dmFsdWV9XCJgIDogYDogJyR7dmFsdWV9J2ApKVxuICAgIDI5XHQgICAgICAgIC5yZXBsYWNlKC86IFwiKHRydWV8ZmFsc2V8XFxkKylcIi9nLCAnOiAkMScpXG4gICAgMzBcdCAgICAgICAgLnJlcGxhY2UoL2N1c3RvbUNTUzogXCJcIi9nLCAnY3VzdG9tQ1NTOiBgYCcpO1xuICAgIDMxXHQgICAgICByZXR1cm4gc3RyaW5naWZpZWRcbiAgICAzMlx0ICAgICAgICAuc3BsaXQoJ1xcbicpXG4gICAgMzNcdCAgICAgICAgLm1hcCgobGluZSwgaW5kZXgpID0+IHtcbiAgICAzNFx0ICAgICAgICAgIGlmIChpbmRleCA9PT0gMCkgcmV0dXJuIGxpbmU7XG4gICAgMzVcdCAgICAgICAgICByZXR1cm4gJyAnLnJlcGVhdCg4KSArIGxpbmU7XG4gICAgMzZcdCAgICAgICAgfSlcbiAgICAzN1x0ICAgICAgICAuam9pbignXFxuJyk7XG4gICAgMzhcdCAgICB9O1xuICAgIDM5XHRcbiAgICA0MFx0ICAgIC8vIEV4YW1wbGUgaW5pdGlhbGl6YXRpb246XG4gICAgNDFcdCAgICAvLyBJZiB5b3VyIC5lbnYgY29udGFpbnM6XG4gICAgNDJcdCAgICAvLyBhZ2VudDE9eHl6Nzg5LXV2dzQ1NixodHRwczovL2V4YW1wbGUuY29tXG4gICAgNDNcdCAgICAvLyBzdXBwb3J0PWFiYzEyMy1kZWY0NTYsaHR0cHM6Ly9leGFtcGxlLmNvbVxuICAgIDQ0XHQgICAgLy8gc2FsZXNib3Q9Z2hpMTIzLWprbDQ1NixodHRwczovL2V4YW1wbGUuY29tXG4gICAgNDVcdCAgICAvL1xuICAgIDQ2XHQgICAgLy8gVGhlbiB1c2UgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUgYXMgY2hhdGZsb3dpZDpcbiAgICA0N1x0ICAgIENoYXRib3QuaW5pdEZ1bGwoe1xuICAgIDQ4XHQgICAgICAvLyBjaGF0Zmxvd2lkOiAnNmE2M2JiODgtODhmNy00YzRkLTgwNWUtOWMwMjdjODU3MDdiJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXG4gICAgNDlcdCAgICAgIC8vIGNoYXRmbG93aWQ6ICdiNTczZTY2ZC0wZTI4LTQ3OTgtOGU0Zi1mYmJhZmY4ZTIzNmYnLCAvLyBvciAnc3VwcG9ydCcsICdzYWxlc2JvdCcsIGV0Yy5cbiAgICA1MFx0ICAgICAgLy8gY2hhdGZsb3dpZDogJzdlZTgwM2I0LWUzZjgtNGYzMy1iZjg1LWVmOWFiOWQ2ZjY5MycsIC8vIG9yICdzdXBwb3J0JywgJ3NhbGVzYm90JywgZXRjLlxuICAgIDUxXHQgICAgICBjaGF0Zmxvd2lkOiAnMjE3YmZkZTktZDRjYi00YjJhLWI2MzctODk4OTBhOTk5MGVlJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXG4gICAgNTJcdCAgICAgIGFwaUhvc3Q6ICdodHRwczovL3ZpYi5jYWdlbnQuY21jdHMuYWknLFxuICAgIDUzXHQgICAgICAvLyBhcGlIb3N0OiAnaHR0cHM6Ly9jLWFnZW50LmNtY3RzLnN0dWRpby5haS52bicsXG4gICAgNTRcdCAgICAgIGNoYXR3b290VXJsOiAnaHR0cHM6Ly9saXZlY2hhdC5jYWdlbnQuY21jdHMuYWknLFxuICAgIDU1XHQgICAgICByb29tSWRzOiB7XG4gICAgNTZcdCAgICAgICAgJzAxMjM0NTY3ODknOiAnWGE2SG1oZmJVNUs3M1poSG5zcHpLaHFzJyxcbiAgICA1N1x0ICAgICAgfSxcbiAgICA1OFx0ICAgICAgdGhlbWU6IGN1c3RvbVN0cmluZ2lmeSh7XG4gICAgNTlcdCAgICAgICAgYnV0dG9uOiB7XG4gICAgNjBcdCAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjM0I4MUY2JyxcbiAgICA2MVx0ICAgICAgICAgIHJpZ2h0OiAyMCxcbiAgICA2Mlx0ICAgICAgICAgIGJvdHRvbTogMjAsXG4gICAgNjNcdCAgICAgICAgICBzaXplOiA0OCxcbiAgICA2NFx0ICAgICAgICAgIGRyYWdBbmREcm9wOiB0cnVlLFxuICAgIDY1XHQgICAgICAgICAgaWNvbkNvbG9yOiAnd2hpdGUnLFxuICAgIDY2XHQgICAgICAgICAgY3VzdG9tSWNvblNyYzogJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS93YWxreGNvZGUvZGFzaGJvYXJkLWljb25zL21haW4vc3ZnL2dvb2dsZS1tZXNzYWdlcy5zdmcnLFxuICAgIDY3XHQgICAgICAgICAgYXV0b1dpbmRvd09wZW46IHtcbiAgICA2OFx0ICAgICAgICAgICAgYXV0b09wZW46IHRydWUsXG4gICAgNjlcdCAgICAgICAgICAgIG9wZW5EZWxheTogMixcbiAgICA3MFx0ICAgICAgICAgICAgYXV0b09wZW5Pbk1vYmlsZTogZmFsc2UsXG4gICAgNzFcdCAgICAgICAgICB9LFxuICAgIDcyXHQgICAgICAgIH0sXG4gICAgNzNcdCAgICAgICAgdG9vbHRpcDoge1xuICAgIDc0XHQgICAgICAgICAgc2hvd1Rvb2x0aXA6IHRydWUsXG4gICAgNzVcdCAgICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0hpIFRoZXJlIPCfkYshJyxcbiAgICA3Nlx0ICAgICAgICAgIHRvb2x0aXBCYWNrZ3JvdW5kQ29sb3I6ICdibGFjaycsXG4gICAgNzdcdCAgICAgICAgICB0b29sdGlwVGV4dENvbG9yOiAnd2hpdGUnLFxuICAgIDc4XHQgICAgICAgICAgdG9vbHRpcEZvbnRTaXplOiAxNixcbiAgICA3OVx0ICAgICAgICB9LFxuICAgIDgwXHQgICAgICAgIGRpc2NsYWltZXI6IHtcbiAgICA4MVx0ICAgICAgICAgIHRpdGxlOiAnRGlzY2xhaW1lcicsXG4gICAgODJcdCAgICAgICAgICBtZXNzYWdlOiAnQnkgdXNpbmcgdGhpcyBjaGF0Ym90LCB5b3UgYWdyZWUgdG8gdGhlIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL2Zsb3dpc2VhaS5jb20vdGVybXNcIj5UZXJtcyAmIENvbmRpdGlvbjwvYT4nLFxuICAgIDgzXHQgICAgICAgICAgdGV4dENvbG9yOiAnYmxhY2snLFxuICAgIDg0XHQgICAgICAgICAgYnV0dG9uQ29sb3I6ICcjM2I4MmY2JyxcbiAgICA4NVx0ICAgICAgICAgIGJ1dHRvblRleHQ6ICdTdGFydCBDaGF0dGluZycsXG4gICAgODZcdCAgICAgICAgICBidXR0b25UZXh0Q29sb3I6ICd3aGl0ZScsXG4gICAgODdcdCAgICAgICAgICBibHVycmVkQmFja2dyb3VuZENvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjQpJyxcbiAgICA4OFx0ICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3doaXRlJyxcbiAgICA4OVx0ICAgICAgICB9LFxuICAgIDkwXHQgICAgICAgIGN1c3RvbUNTUzogYGAsXG4gICAgOTFcdCAgICAgICAgY2hhdFdpbmRvdzoge1xuICAgIDkyXHQgICAgICAgICAgc2hvd1RpdGxlOiB0cnVlLFxuICAgIDkzXHQgICAgICAgICAgc2hvd0FnZW50TWVzc2FnZXM6IHRydWUsXG4gICAgOTRcdCAgICAgICAgICB0aXRsZTogJ0FnZW50IFN0dWRpbyBCb3QnLFxuICAgIDk1XHQgICAgICAgICAgdGl0bGVBdmF0YXJTcmM6ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vd2Fsa3hjb2RlL2Rhc2hib2FyZC1pY29ucy9tYWluL3N2Zy9nb29nbGUtbWVzc2FnZXMuc3ZnJyxcbiAgICA5Nlx0ICAgICAgICAgIHdlbGNvbWVNZXNzYWdlOiAnSGVsbG8hIFRoaXMgaXMgY3VzdG9tIHdlbGNvbWUgbWVzc2FnZScsXG4gICAgOTdcdCAgICAgICAgICBlcnJvck1lc3NhZ2U6ICdUaGlzIGlzIGEgY3VzdG9tIGVycm9yIG1lc3NhZ2UnLFxuICAgIDk4XHQgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZmZmZicsXG4gICAgOTlcdCAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6ICdlbnRlciBpbWFnZSBwYXRoIG9yIGxpbmsnLFxuICAgMTAwXHQgICAgICAgICAgaGVpZ2h0OiA3MDAsXG4gICAxMDFcdCAgICAgICAgICB3aWR0aDogNDAwLFxuICAgMTAyXHQgICAgICAgICAgZm9udFNpemU6IDE2LFxuICAgMTAzXHQgICAgICAgICAgc3RhcnRlclByb21wdHM6IFsnV2hhdCBpcyBhIGJvdD8nLCAnV2hvIGFyZSB5b3U/J10sXG4gICAxMDRcdCAgICAgICAgICBzdGFydGVyUHJvbXB0Rm9udFNpemU6IDE1LFxuICAgMTA1XHQgICAgICAgICAgY2xlYXJDaGF0T25SZWxvYWQ6IGZhbHNlLFxuICAgMTA2XHQgICAgICAgICAgc291cmNlRG9jc1RpdGxlOiAnU291cmNlczonLFxuICAgMTA3XHQgICAgICAgICAgcmVuZGVySFRNTDogdHJ1ZSxcbiAgIDEwOFx0ICAgICAgICAgIGJvdE1lc3NhZ2U6IHtcbiAgIDEwOVx0ICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2Y3ZjhmZicsXG4gICAxMTBcdCAgICAgICAgICAgIHRleHRDb2xvcjogJyMzMDMyMzUnLFxuICAgMTExXHQgICAgICAgICAgICBzaG93QXZhdGFyOiB0cnVlLFxuICAgMTEyXHQgICAgICAgICAgICBhdmF0YXJTcmM6ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vemFoaWRraGF3YWphL2xhbmdjaGFpbi1jaGF0LW5leHRqcy9tYWluL3B1YmxpYy9wYXJyb3RpY29uLnBuZycsXG4gICAxMTNcdCAgICAgICAgICB9LFxuICAgMTE0XHQgICAgICAgICAgdXNlck1lc3NhZ2U6IHtcbiAgIDExNVx0ICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzNCODFGNicsXG4gICAxMTZcdCAgICAgICAgICAgIHRleHRDb2xvcjogJyNmZmZmZmYnLFxuICAgMTE3XHQgICAgICAgICAgICBzaG93QXZhdGFyOiB0cnVlLFxuICAgMTE4XHQgICAgICAgICAgICBhdmF0YXJTcmM6ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vemFoaWRraGF3YWphL2xhbmdjaGFpbi1jaGF0LW5leHRqcy9tYWluL3B1YmxpYy91c2VyaWNvbi5wbmcnLFxuICAgMTE5XHQgICAgICAgICAgfSxcbiAgIDEyMFx0ICAgICAgICAgIHRleHRJbnB1dDoge1xuICAgMTIxXHQgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ1R5cGUgeW91ciBxdWVzdGlvbicsXG4gICAxMjJcdCAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmZmZmYnLFxuICAgMTIzXHQgICAgICAgICAgICB0ZXh0Q29sb3I6ICcjMzAzMjM1JyxcbiAgIDEyNFx0ICAgICAgICAgICAgc2VuZEJ1dHRvbkNvbG9yOiAnIzNCODFGNicsXG4gICAxMjVcdCAgICAgICAgICAgIG1heENoYXJzOiA1MCxcbiAgIDEyNlx0ICAgICAgICAgICAgbWF4Q2hhcnNXYXJuaW5nTWVzc2FnZTogJ1lvdSBleGNlZWRlZCB0aGUgY2hhcmFjdGVycyBsaW1pdC4gUGxlYXNlIGlucHV0IGxlc3MgdGhhbiA1MCBjaGFyYWN0ZXJzLicsXG4gICAxMjdcdCAgICAgICAgICAgIGF1dG9Gb2N1czogdHJ1ZSxcbiAgIDEyOFx0ICAgICAgICAgICAgc2VuZE1lc3NhZ2VTb3VuZDogdHJ1ZSxcbiAgIDEyOVx0ICAgICAgICAgICAgc2VuZFNvdW5kTG9jYXRpb246ICdzZW5kX21lc3NhZ2UubXAzJyxcbiAgIDEzMFx0ICAgICAgICAgICAgcmVjZWl2ZU1lc3NhZ2VTb3VuZDogdHJ1ZSxcbiAgIDEzMVx0ICAgICAgICAgICAgcmVjZWl2ZVNvdW5kTG9jYXRpb246ICdyZWNlaXZlX21lc3NhZ2UubXAzJyxcbiAgIDEzMlx0ICAgICAgICAgIH0sXG4gICAxMzNcdCAgICAgICAgICBmZWVkYmFjazoge1xuICAgMTM0XHQgICAgICAgICAgICBjb2xvcjogJyMzMDMyMzUnLFxuICAgMTM1XHQgICAgICAgICAgfSxcbiAgIDEzNlx0ICAgICAgICAgIGRhdGVUaW1lVG9nZ2xlOiB7XG4gICAxMzdcdCAgICAgICAgICAgIGRhdGU6IHRydWUsXG4gICAxMzhcdCAgICAgICAgICAgIHRpbWU6IHRydWUsXG4gICAxMzlcdCAgICAgICAgICB9LFxuICAgMTQwXHQgICAgICAgICAgZm9vdGVyOiB7XG4gICAxNDFcdCAgICAgICAgICAgIHRleHRDb2xvcjogJyMzMDMyMzUnLFxuICAgMTQyXHQgICAgICAgICAgICB0ZXh0OiAnUG93ZXJlZCBieScsXG4gICAxNDNcdCAgICAgICAgICAgIGNvbXBhbnk6ICdBZ2VudCBTdHVkaW8nLFxuICAgMTQ0XHQgICAgICAgICAgICAvLyBjb21wYW55TGluazogJ2h0dHBzOi8vZmxvd2lzZWFpLmNvbSdcbiAgIDE0NVx0ICAgICAgICAgICAgY29tcGFueUxpbms6ICcjJyxcbiAgIDE0Nlx0ICAgICAgICAgIH0sXG4gICAxNDdcdCAgICAgICAgfSxcbiAgIDE0OFx0ICAgICAgfSksXG4gICAxNDlcdCAgICB9KTtcbiAgIDE1MFx0ICA8L3NjcmlwdD5cbiAgIDE1MVx0PC9ib2R5PlxuICAgMTUyXHRcbiAgIDE1M1x0PC9odG1sPlxuVG90YWwgbGluZXMgaW4gZmlsZTogMTUzXG4iLCJpc0Vycm9yIjpmYWxzZSwicmVxdWVzdElkIjoiIn19LCIyY2U3MjMzNy1hOTEzLTRiMzktODIzMi02MzM5YmViZmJhMDA7dG9vbHVfdnJ0eF8wMTdBSlVYWkd0NmFEY2R4ZHpTRE4yN0IiOnsicmVxdWVzdElkIjoiMmNlNzIzMzctYTkxMy00YjM5LTgyMzItNjMzOWJlYmZiYTAwIiwidG9vbFVzZUlkIjoidG9vbHVfdnJ0eF8wMTdBSlVYWkd0NmFEY2R4ZHpTRE4yN0IiLCJwaGFzZSI6NSwicmVzdWx0Ijp7InRleHQiOiJUaGUgZm9sbG93aW5nIGNvZGUgc2VjdGlvbnMgd2VyZSByZXRyaWV2ZWQ6XG5QYXRoOiBvbkJlZm9yZVNlbmQtUkVBRE1FLm1kXG4uLi5cbiAgIDE2M1x0YGBgXG4gICAxNjRcdFxuICAgMTY1XHQjIyBJbXBsZW1lbnRhdGlvbiBFeGFtcGxlc1xuICAgMTY2XHRcbiAgIDE2N1x0IyMjIEJhc2ljIFVzYWdlXG4gICAxNjhcdFxuICAgMTY5XHRgYGBqYXZhc2NyaXB0XG4gICAxNzBcdENoYXRib3QuaW5pdCh7XG4gICAxNzFcdCAgY2hhdGZsb3dpZDogXCJ5b3VyLWNoYXRmbG93LWlkXCIsXG4gICAxNzJcdCAgYXBpSG9zdDogXCJodHRwOi8vbG9jYWxob3N0OjMwMDBcIixcbiAgIDE3M1x0ICBvbkJlZm9yZVNlbmQ6IChtZXNzYWdlLCBib2R5KSA9PiB7XG4gICAxNzRcdCAgICBjb25zb2xlLmxvZygnU2VuZGluZyBtZXNzYWdlOicsIG1lc3NhZ2UpO1xuICAgMTc1XHQgICAgcmV0dXJuIHsgbWVzc2FnZSwgYm9keSB9O1xuICAgMTc2XHQgIH1cbiAgIDE3N1x0fSk7XG4gICAxNzhcdGBgYFxuICAgMTc5XHRcbiAgIDE4MFx0IyMjIEFzeW5jIFByb2Nlc3NpbmdcbiAgIDE4MVx0XG4gICAxODJcdGBgYGphdmFzY3JpcHRcbiAgIDE4M1x0Q2hhdGJvdC5pbml0KHtcbiAgIDE4NFx0ICBjaGF0Zmxvd2lkOiBcInlvdXItY2hhdGZsb3ctaWRcIixcbiAgIDE4NVx0ICBhcGlIb3N0OiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiLFxuICAgMTg2XHQgIG9uQmVmb3JlU2VuZDogYXN5bmMgKG1lc3NhZ2UsIGJvZHkpID0+IHtcbiAgIDE4N1x0ICAgIC8vIFBlcmZvcm0gYXN5bmMgb3BlcmF0aW9uc1xuICAgMTg4XHQgICAgY29uc3QgcHJvY2Vzc2VkTWVzc2FnZSA9IGF3YWl0IHByb2Nlc3NNZXNzYWdlQXN5bmMobWVzc2FnZSk7XG4gICAxODlcdCAgICBjb25zdCBlbmhhbmNlZEJvZHkgPSBhd2FpdCBhZGRDb250ZXh0QXN5bmMoYm9keSk7XG4gICAxOTBcdCAgICBcbiAgIDE5MVx0ICAgIHJldHVybiB7XG4gICAxOTJcdCAgICAgIG1lc3NhZ2U6IHByb2Nlc3NlZE1lc3NhZ2UsXG4gICAxOTNcdCAgICAgIGJvZHk6IGVuaGFuY2VkQm9keVxuICAgMTk0XHQgICAgfTtcbiAgIDE5NVx0ICB9XG4gICAxOTZcdH0pO1xuLi4uXG4gICAyMTdcdGBgYFxuICAgMjE4XHRcbiAgIDIxOVx0IyMgQmVzdCBQcmFjdGljZXNcbiAgIDIyMFx0XG4gICAyMjFcdDEuICoqS2VlcCBpdCBmYXN0Kio6IEF2b2lkIGxvbmctcnVubmluZyBvcGVyYXRpb25zIHRoYXQgY291bGQgZGVsYXkgbWVzc2FnZSBzZW5kaW5nXG4gICAyMjJcdDIuICoqSGFuZGxlIGVycm9ycyBncmFjZWZ1bGx5Kio6IEFsd2F5cyB3cmFwIHJpc2t5IG9wZXJhdGlvbnMgaW4gdHJ5LWNhdGNoIGJsb2Nrc1xuICAgMjIzXHQzLiAqKlByZXNlcnZlIG1lc3NhZ2UgaW50ZW50Kio6IFdoZW4gbW9kaWZ5aW5nIG1lc3NhZ2VzLCBtYWludGFpbiB0aGUgdXNlcidzIG9yaWdpbmFsIGludGVudFxuICAgMjI0XHQ0LiAqKlVzZSBjYW5jZWwgc3BhcmluZ2x5Kio6IE9ubHkgY2FuY2VsIG1lc3NhZ2VzIHdoZW4gYWJzb2x1dGVseSBuZWNlc3NhcnlcbiAgIDIyNVx0NS4gKipMb2cgZm9yIGRlYnVnZ2luZyoqOiBBZGQgY29uc29sZSBsb2dzIHRvIGhlbHAgZGVidWcgeW91ciBvbkJlZm9yZVNlbmQgbG9naWNcbiAgIDIyNlx0XG4gICAyMjdcdCMjIFR5cGVTY3JpcHQgU3VwcG9ydFxuICAgMjI4XHRcbiAgIDIyOVx0VGhlIGBvbkJlZm9yZVNlbmRgIHByb3AgaXMgZnVsbHkgdHlwZWQgd2hlbiB1c2luZyBUeXBlU2NyaXB0OlxuICAgMjMwXHRcbiAgIDIzMVx0YGBgdHlwZXNjcmlwdFxuICAgMjMyXHRpbXBvcnQgeyBCb3RQcm9wcywgSW5jb21pbmdJbnB1dCB9IGZyb20gJ2NtY3RzLWMtYWdlbnQtZW1iZWRkaW5nJztcbiAgIDIzM1x0XG4gICAyMzRcdGNvbnN0IG9uQmVmb3JlU2VuZDogQm90UHJvcHNbJ29uQmVmb3JlU2VuZCddID0gKFxuICAgMjM1XHQgIG1lc3NhZ2U6IHN0cmluZywgXG4gICAyMzZcdCAgYm9keTogSW5jb21pbmdJbnB1dFxuICAgMjM3XHQpID0+IHtcbiAgIDIzOFx0ICByZXR1cm4geyBtZXNzYWdlLCBib2R5IH07XG4gICAyMzlcdH07XG4gICAyNDBcdGBgYFxuLi4uXG5QYXRoOiBleGFtcGxlLW9uQmVmb3JlU2VuZC5odG1sXG4uLi5cbiAgICA2M1x0XG4gICAgNjRcdCAgICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgY2hhdGJvdCB3aXRoIG9uQmVmb3JlU2VuZFxuICAgIDY1XHQgICAgICAgIENoYXRib3QuaW5pdCh7XG4gICAgNjZcdCAgICAgICAgICAgIGNoYXRmbG93aWQ6IFwieW91ci1jaGF0Zmxvdy1pZFwiLFxuICAgIDY3XHQgICAgICAgICAgICBhcGlIb3N0OiBcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMFwiLFxuICAgIDY4XHQgICAgICAgICAgICBvbkJlZm9yZVNlbmQ6IGhhbmRsZUJlZm9yZVNlbmQsXG4gICAgNjlcdCAgICAgICAgICAgIHRoZW1lOiB7XG4gICAgNzBcdCAgICAgICAgICAgICAgICBidXR0b246IHtcbiAgICA3MVx0ICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiIzNCODFGNlwiLFxuICAgIDcyXHQgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAyMCxcbiAgICA3M1x0ICAgICAgICAgICAgICAgICAgICBib3R0b206IDIwLFxuICAgIDc0XHQgICAgICAgICAgICAgICAgICAgIHNpemU6IDQ4LFxuICAgIDc1XHQgICAgICAgICAgICAgICAgICAgIGljb25Db2xvcjogXCJ3aGl0ZVwiLFxuICAgIDc2XHQgICAgICAgICAgICAgICAgfSxcbiAgICA3N1x0ICAgICAgICAgICAgICAgIGNoYXRXaW5kb3c6IHtcbiAgICA3OFx0ICAgICAgICAgICAgICAgICAgICB3ZWxjb21lTWVzc2FnZTogXCJIZWxsbyEgVHJ5IHNlbmRpbmcgZGlmZmVyZW50IG1lc3NhZ2VzIHRvIHNlZSBvbkJlZm9yZVNlbmQgaW4gYWN0aW9uLlwiLFxuICAgIDc5XHQgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjZmZmZmZmXCIsXG4gICAgODBcdCAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA2MDAsXG4gICAgODFcdCAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwMCxcbiAgICA4Mlx0ICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogMTYsXG4gICAgODNcdCAgICAgICAgICAgICAgICAgICAgcG93ZXJlZEJ5VGV4dENvbG9yOiBcIiMzMDMyMzVcIixcbiAgICA4NFx0ICAgICAgICAgICAgICAgICAgICBib3RNZXNzYWdlOiB7XG4gICAgODVcdCAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjZjdmOGZmXCIsXG4gICAgODZcdCAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcjogXCIjMzAzMjM1XCIsXG4gICAgODdcdCAgICAgICAgICAgICAgICAgICAgICAgIHNob3dBdmF0YXI6IHRydWUsXG4gICAgODhcdCAgICAgICAgICAgICAgICAgICAgfSxcbiAgICA4OVx0ICAgICAgICAgICAgICAgICAgICB1c2VyTWVzc2FnZToge1xuICAgIDkwXHQgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiIzNCODFGNlwiLFxuICAgIDkxXHQgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I6IFwiI2ZmZmZmZlwiLFxuICAgIDkyXHQgICAgICAgICAgICAgICAgICAgICAgICBzaG93QXZhdGFyOiB0cnVlLFxuICAgIDkzXHQgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgOTRcdCAgICAgICAgICAgICAgICAgICAgdGV4dElucHV0OiB7XG4gICAgOTVcdCAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIlR5cGUgeW91ciBtZXNzYWdlLi4uXCIsXG4gICAgOTZcdCAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjZmZmZmZmXCIsXG4gICAgOTdcdCAgICAgICAgICAgICAgICAgICAgICAgIHRleHRDb2xvcjogXCIjMzAzMjM1XCIsXG4gICAgOThcdCAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRCdXR0b25Db2xvcjogXCIjM0I4MUY2XCIsXG4gICAgOTlcdCAgICAgICAgICAgICAgICAgICAgfVxuICAgMTAwXHQgICAgICAgICAgICAgICAgfVxuICAgMTAxXHQgICAgICAgICAgICB9XG4uLi5cblBhdGg6IHNyYy9jb21wb25lbnRzL0JvdC50c3hcbi4uLlxuICAgMTMwXHRcbiAgIDEzMVx0ZXhwb3J0IHR5cGUgQm90UHJvcHMgPSB7XG4gICAxMzJcdCAgY2hhdGZsb3dpZDogc3RyaW5nO1xuICAgMTMzXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAxMzRcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgMTM1XHQgIG9uQmVmb3JlU2VuZD86IChtZXNzYWdlOiBzdHJpbmcsIGJvZHk6IEluY29taW5nSW5wdXQpID0+IFByb21pc2U8eyBtZXNzYWdlOiBzdHJpbmc7IGJvZHk6IEluY29taW5nSW5wdXQ7IGNhbmNlbD86IGJvb2xlYW4gfT4gfCB7IG1lc3NhZ2U6IHN0cmluZzsgYm9keTogSW5jb21pbmdJbnB1dDsgY2FuY2VsPzogYm9vbGVhbiB9O1xuICAgMTM2XHQgIGNoYXRmbG93Q29uZmlnPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAxMzdcdCAgd2VsY29tZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxMzhcdCAgc2Vjb25kTWVzc2FnZT86IHN0cmluZztcbiAgIDEzOVx0ICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAxNDBcdCAgYm90TWVzc2FnZT86IEJvdE1lc3NhZ2VUaGVtZTtcbiAgIDE0MVx0ICB1c2VyTWVzc2FnZT86IFVzZXJNZXNzYWdlVGhlbWU7XG4gICAxNDJcdCAgdGV4dElucHV0PzogVGV4dElucHV0VGhlbWU7XG4gICAxNDNcdCAgZmVlZGJhY2s/OiBGZWVkYmFja1RoZW1lO1xuICAgMTQ0XHQgIHBvd2VyZWRCeVRleHRDb2xvcj86IHN0cmluZztcbiAgIDE0NVx0ICBiYWRnZUJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgIDE0Nlx0ICBidWJibGVCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAxNDdcdCAgYnViYmxlVGV4dENvbG9yPzogc3RyaW5nO1xuICAgMTQ4XHQgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAxNDlcdCAgc2hvd0FnZW50TWVzc2FnZXM/OiBib29sZWFuO1xuICAgMTUwXHQgIHRpdGxlPzogc3RyaW5nO1xuICAgMTUxXHQgIHRpdGxlQXZhdGFyU3JjPzogc3RyaW5nO1xuICAgMTUyXHQgIGZvbnRTaXplPzogbnVtYmVyO1xuLi4uXG5QYXRoOiBSRUFETUUubWRcbi4uLlxuICAgIDg4XHRcbiAgICA4OVx0WW91IGNhbiBhbHNvIGN1c3RvbWl6ZSBjaGF0Ym90IHdpdGggZGlmZmVyZW50IGNvbmZpZ3VyYXRpb25cbiAgICA5MFx0XG4gICAgOTFcdGBgYGh0bWxcbiAgICA5Mlx0PHNjcmlwdCB0eXBlPVwibW9kdWxlXCI+XG4gICAgOTNcdCAgaW1wb3J0IENoYXRib3QgZnJvbSAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9jLWFnZW50LWVtYmVkZGluZy9kaXN0L3dlYi5qcyc7XG4gICAgOTRcdCAgQ2hhdGJvdC5pbml0KHtcbiAgICA5NVx0ICAgIGNoYXRmbG93aWQ6ICc5MWU5YzgwMy01MTY5LTRkYjktODIwNy0zYzA5MTVkNzFjNWYnLFxuICAgIDk2XHQgICAgYXBpSG9zdDogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAgOTdcdCAgICBjaGF0Zmxvd0NvbmZpZzoge1xuICAgIDk4XHQgICAgICAvLyB0b3BLOiAyXG4gICAgOTlcdCAgICB9LFxuICAgMTAwXHQgICAgb2JzZXJ2ZXJzQ29uZmlnOiB7XG4gICAxMDFcdCAgICAgIC8vIChvcHRpb25hbCkgQWxsb3dzIHlvdSB0byBleGVjdXRlIGNvZGUgaW4gcGFyZW50IGJhc2VkIHVwb24gc2lnbmFsIG9ic2VydmF0aW9ucyB3aXRoaW4gdGhlIGNoYXRib3QuXG4gICAxMDJcdCAgICAgIC8vIFRoZSB1c2VyaW5wdXQgZmllbGQgc3VibWl0dGVkIHRvIGJvdCAoXCJcIiB3aGVuIHJlc2V0IGJ5IGJvdClcbiAgIDEwM1x0ICAgICAgb2JzZXJ2ZVVzZXJJbnB1dDogKHVzZXJJbnB1dCkgPT4ge1xuICAgMTA0XHQgICAgICAgIGNvbnNvbGUubG9nKHsgdXNlcklucHV0IH0pO1xuICAgMTA1XHQgICAgICB9LFxuICAgMTA2XHQgICAgICAvLyBUaGUgYm90IG1lc3NhZ2Ugc3RhY2sgaGFzIGNoYW5nZWRcbiAgIDEwN1x0ICAgICAgb2JzZXJ2ZU1lc3NhZ2VzOiAobWVzc2FnZXMpID0+IHtcbiAgIDEwOFx0ICAgICAgICBjb25zb2xlLmxvZyh7IG1lc3NhZ2VzIH0pO1xuICAgMTA5XHQgICAgICB9LFxuICAgMTEwXHQgICAgICAvLyBUaGUgYm90IGxvYWRpbmcgc2lnbmFsIGNoYW5nZWRcbiAgIDExMVx0ICAgICAgb2JzZXJ2ZUxvYWRpbmc6IChsb2FkaW5nKSA9PiB7XG4gICAxMTJcdCAgICAgICAgY29uc29sZS5sb2coeyBsb2FkaW5nIH0pO1xuICAgMTEzXHQgICAgICB9LFxuICAgMTE0XHQgICAgfSxcbi4uLlxuUGF0aDogc3JjL2NvbnN0YW50cy50c1xuLi4uXG4gICAgNDdcdFxuICAgIDQ4XHQvKipcbiAgICA0OVx0ICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhdGJvdCBidWJibGUgY29tcG9uZW50LlxuICAgIDUwXHQgKiBQcm92aWRlcyBzZW5zaWJsZSBkZWZhdWx0cyBmb3IgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXMgd2hpbGUga2VlcGluZ1xuICAgIDUxXHQgKiByZXF1aXJlZCBwcm9wZXJ0aWVzIGV4cGxpY2l0bHkgdW5kZWZpbmVkIHRvIGVuZm9yY2UgcHJvcGVyIGNvbmZpZ3VyYXRpb24uXG4gICAgNTJcdCAqL1xuICAgIDUzXHRleHBvcnQgY29uc3QgZGVmYXVsdEJvdFByb3BzOiBCdWJibGVQcm9wcyA9IHtcbiAgICA1NFx0ICAvLyBDb3JlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gLSBtdXN0IGJlIHNldCBieSBpbXBsZW1lbnRlclxuICAgIDU1XHQgIGNoYXRmbG93aWQ6ICcnLFxuICAgIDU2XHRcbiAgICA1N1x0ICAvLyBBUEkgY29uZmlndXJhdGlvblxuICAgIDU4XHQgIGFwaUhvc3Q6IHVuZGVmaW5lZCxcbiAgICA1OVx0ICBvblJlcXVlc3Q6IHVuZGVmaW5lZCxcbiAgICA2MFx0ICBjaGF0Zmxvd0NvbmZpZzogdW5kZWZpbmVkLFxuICAgIDYxXHRcbiAgICA2Mlx0ICAvLyBVSSB0aGVtaW5nIGFuZCBjdXN0b21pemF0aW9uXG4gICAgNjNcdCAgdGhlbWU6IHVuZGVmaW5lZCxcbiAgICA2NFx0XG4gICAgNjVcdCAgLy8gRXh0ZXJuYWwgaW50ZWdyYXRpb25zXG4gICAgNjZcdCAgY2hhdHdvb3RVcmw6IHVuZGVmaW5lZCxcbiAgICA2N1x0ICByb29tSWRzOiB7fSxcbiAgICA2OFx0XG4gICAgNjlcdCAgLy8gRmVhdHVyZSBmbGFncyBhbmQgb3B0aW9uYWwgZnVuY3Rpb25hbGl0eVxuICAgIDcwXHQgIGlzVXNlRkFROiBmYWxzZSxcbiAgICA3MVx0XG4gICAgNzJcdCAgLy8gRmlsZSBhbmQgY29udGVudCBjb25maWd1cmF0aW9uXG4gICAgNzNcdCAgZmlsZVBhdGg6ICcnLFxuICAgIDc0XHQgIHN1Z2dlc3RRdWVzdGlvbnM6ICcnLFxuICAgIDc1XHQgIGV4dGVybmFsRGF0YTogJycsXG4gICAgNzZcdCAgY2FsbEJhY2tJY29uOiAnJyxcbiAgICA3N1x0ICBjYWxsQmFja0Z1bmN0aW9uOiB1bmRlZmluZWQsXG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9mdWxsL2NvbXBvbmVudHMvRnVsbC50c3hcbiAgICAgMVx0aW1wb3J0IHN0eWxlcyBmcm9tICcuLi8uLi8uLi9hc3NldHMvaW5kZXguY3NzJztcbiAgICAgMlx0aW1wb3J0IHsgQm90LCBCb3RQcm9wcyB9IGZyb20gJ0AvY29tcG9uZW50cy9Cb3QnO1xuICAgICAzXHRpbXBvcnQgeyBCdWJibGVQYXJhbXMgfSBmcm9tICdAL2ZlYXR1cmVzL2J1YmJsZS90eXBlcyc7XG4gICAgIDRcdGltcG9ydCB7IGNyZWF0ZVNpZ25hbCwgb25DbGVhbnVwLCBvbk1vdW50LCBTaG93IH0gZnJvbSAnc29saWQtanMnO1xuICAgICA1XHRcbiAgICAgNlx0Y29uc3QgZGVmYXVsdEJ1dHRvbkNvbG9yID0gJyMzQjgxRjYnO1xuICAgICA3XHRjb25zdCBkZWZhdWx0SWNvbkNvbG9yID0gJ3doaXRlJztcbiAgICAgOFx0XG4gICAgIDlcdGV4cG9ydCB0eXBlIEZ1bGxQcm9wcyA9IEJvdFByb3BzICYgQnViYmxlUGFyYW1zO1xuICAgIDEwXHRcbiAgICAxMVx0ZXhwb3J0IGNvbnN0IEZ1bGwgPSAocHJvcHM6IEZ1bGxQcm9wcywgeyBlbGVtZW50IH06IHsgZWxlbWVudDogSFRNTEVsZW1lbnQgfSkgPT4ge1xuICAgIDEyXHQgIGNvbnN0IFtpc0JvdERpc3BsYXllZCwgc2V0SXNCb3REaXNwbGF5ZWRdID0gY3JlYXRlU2lnbmFsKGZhbHNlKTtcbiAgICAxM1x0XG4gICAgMTRcdCAgY29uc3QgbGF1bmNoQm90ID0gKCkgPT4ge1xuICAgIDE1XHQgICAgc2V0SXNCb3REaXNwbGF5ZWQodHJ1ZSk7XG4gICAgMTZcdCAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpbiA9ICcwJzsgLy8gRW5zdXJlIG5vIG1hcmdpblxuICAgIDE3XHQgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnBhZGRpbmcgPSAnMCc7IC8vIEVuc3VyZSBubyBwYWRkaW5nXG4gICAgMThcdFxuICAgIDE5XHQgICAgLy8gU2V0IHZpZXdwb3J0IG1ldGEgdGFnIGR5bmFtaWNhbGx5XG4gICAgMjBcdCAgICBjb25zdCB2aWV3cG9ydE1ldGEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9XCJ2aWV3cG9ydFwiXScpO1xuICAgIDIxXHQgICAgaWYgKHZpZXdwb3J0TWV0YSkge1xuICAgIDIyXHQgICAgICB2aWV3cG9ydE1ldGEuc2V0QXR0cmlidXRlKCdjb250ZW50JywgJ3dpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAsIGludGVyYWN0aXZlLXdpZGdldD1yZXNpemVzLWNvbnRlbnQnKTtcbiAgICAyM1x0ICAgIH1cbiAgICAyNFx0ICB9O1xuICAgIDI1XHRcbiAgICAyNlx0ICBjb25zdCBib3RMYXVuY2hlck9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChpbnRlcnNlY3Rpb25zKSA9PiB7XG4gICAgMjdcdCAgICBpZiAoaW50ZXJzZWN0aW9ucy5zb21lKChpbnRlcnNlY3Rpb24pID0+IGludGVyc2VjdGlvbi5pc0ludGVyc2VjdGluZykpIGxhdW5jaEJvdCgpO1xuICAgIDI4XHQgIH0pO1xuLi4uXG4gICAgNjFcdCAgICAgICAgPlxuICAgIDYyXHQgICAgICAgICAgPEJvdFxuICAgIDYzXHQgICAgICAgICAgICBiYWRnZUJhY2tncm91bmRDb2xvcj17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LmJhY2tncm91bmRDb2xvcn1cbiAgICA2NFx0ICAgICAgICAgICAgYnViYmxlQmFja2dyb3VuZENvbG9yPXtwcm9wcy50aGVtZT8uYnV0dG9uPy5iYWNrZ3JvdW5kQ29sb3IgPz8gZGVmYXVsdEJ1dHRvbkNvbG9yfVxuICAgIDY1XHQgICAgICAgICAgICBidWJibGVUZXh0Q29sb3I9e3Byb3BzLnRoZW1lPy5idXR0b24/Lmljb25Db2xvciA/PyBkZWZhdWx0SWNvbkNvbG9yfVxuICAgIDY2XHQgICAgICAgICAgICBzaG93VGl0bGU9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zaG93VGl0bGV9XG4gICAgNjdcdCAgICAgICAgICAgIHNob3dBZ2VudE1lc3NhZ2VzPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uc2hvd0FnZW50TWVzc2FnZXN9XG4gICAgNjhcdCAgICAgICAgICAgIHRpdGxlPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udGl0bGV9XG4gICAgNjlcdCAgICAgICAgICAgIHRpdGxlQXZhdGFyU3JjPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udGl0bGVBdmF0YXJTcmN9XG4gICAgNzBcdCAgICAgICAgICAgIHdlbGNvbWVNZXNzYWdlPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8ud2VsY29tZU1lc3NhZ2V9XG4gICAgNzFcdCAgICAgICAgICAgIHNlY29uZE1lc3NhZ2U9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5zZWNvbmRNZXNzYWdlfVxuICAgIDcyXHQgICAgICAgICAgICBlcnJvck1lc3NhZ2U9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5lcnJvck1lc3NhZ2V9XG4gICAgNzNcdCAgICAgICAgICAgIHBvd2VyZWRCeVRleHRDb2xvcj17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnBvd2VyZWRCeVRleHRDb2xvcn1cbiAgICA3NFx0ICAgICAgICAgICAgdGV4dElucHV0PXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8udGV4dElucHV0fVxuICAgIDc1XHQgICAgICAgICAgICBib3RNZXNzYWdlPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uYm90TWVzc2FnZX1cbiAgICA3Nlx0ICAgICAgICAgICAgdXNlck1lc3NhZ2U9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py51c2VyTWVzc2FnZX1cbiAgICA3N1x0ICAgICAgICAgICAgZmVlZGJhY2s9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5mZWVkYmFja31cbiAgICA3OFx0ICAgICAgICAgICAgZm9udFNpemU9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5mb250U2l6ZX1cbiAgICA3OVx0ICAgICAgICAgICAgZm9vdGVyPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZm9vdGVyfVxuICAgIDgwXHQgICAgICAgICAgICBzdGFydGVyUHJvbXB0cz17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnN0YXJ0ZXJQcm9tcHRzfVxuICAgIDgxXHQgICAgICAgICAgICBjaGF0Zmxvd2lkPXtwcm9wcy5jaGF0Zmxvd2lkfVxuICAgIDgyXHQgICAgICAgICAgICBjaGF0Zmxvd0NvbmZpZz17cHJvcHMuY2hhdGZsb3dDb25maWd9XG4gICAgODNcdCAgICAgICAgICAgIGFwaUhvc3Q9e3Byb3BzLmFwaUhvc3R9XG4gICAgODRcdCAgICAgICAgICAgIG9uUmVxdWVzdD17cHJvcHMub25SZXF1ZXN0fVxuICAgIDg1XHQgICAgICAgICAgICBvbkJlZm9yZVNlbmQ9e3Byb3BzLm9uQmVmb3JlU2VuZH1cbiAgICA4Nlx0ICAgICAgICAgICAgaXNGdWxsUGFnZT17dHJ1ZX1cbiAgICA4N1x0ICAgICAgICAgICAgb2JzZXJ2ZXJzQ29uZmlnPXtwcm9wcy5vYnNlcnZlcnNDb25maWd9XG4gICAgODhcdCAgICAgICAgICAgIHN0YXJ0ZXJQcm9tcHRGb250U2l6ZT17cHJvcHMudGhlbWU/LmNoYXRXaW5kb3c/LnN0YXJ0ZXJQcm9tcHRGb250U2l6ZX1cbiAgICA4OVx0ICAgICAgICAgICAgY2xlYXJDaGF0T25SZWxvYWQ9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5jbGVhckNoYXRPblJlbG9hZH1cbiAgICA5MFx0ICAgICAgICAgICAgZGlzY2xhaW1lcj17cHJvcHMudGhlbWU/LmRpc2NsYWltZXJ9XG4gICAgOTFcdCAgICAgICAgICAgIGRhdGVUaW1lVG9nZ2xlPXtwcm9wcy50aGVtZT8uY2hhdFdpbmRvdz8uZGF0ZVRpbWVUb2dnbGV9XG4gICAgOTJcdCAgICAgICAgICAgIHJlbmRlckhUTUw9e3Byb3BzLnRoZW1lPy5jaGF0V2luZG93Py5yZW5kZXJIVE1MfVxuICAgIDkzXHQgICAgICAgICAgICBjaGF0d29vdFVybD17cHJvcHMuY2hhdHdvb3RVcmx9XG4gICAgOTRcdCAgICAgICAgICAgIHJvb21JZHM9e3Byb3BzLnJvb21JZHN9XG4gICAgOTVcdCAgICAgICAgICAgIGlzVXNlRkFRPXtwcm9wcy5pc1VzZUZBUX1cbiAgICA5Nlx0ICAgICAgICAgICAgZmlsZVBhdGg9e3Byb3BzLmZpbGVQYXRofVxuICAgIDk3XHQgICAgICAgICAgICBzdWdnZXN0UXVlc3Rpb25zPXtwcm9wcy5zdWdnZXN0UXVlc3Rpb25zfVxuICAgIDk4XHQgICAgICAgICAgICBleHRlcm5hbERhdGE9e3Byb3BzLmV4dGVybmFsRGF0YX1cbiAgICA5OVx0ICAgICAgICAgICAgY2FsbEJhY2tGdW5jdGlvbj17cHJvcHMuY2FsbEJhY2tGdW5jdGlvbn1cbiAgIDEwMFx0ICAgICAgICAgICAgY2FsbEJhY2tJY29uPXtwcm9wcy5jYWxsQmFja0ljb259XG4gICAxMDFcdCAgICAgICAgICAvPlxuICAgMTAyXHQgICAgICAgIDwvZGl2PlxuICAgMTAzXHQgICAgICA8L1Nob3c+XG4gICAxMDRcdCAgICA8Lz5cbiAgIDEwNVx0ICApO1xuICAgMTA2XHR9O1xuLi4uXG5QYXRoOiBwdWJsaWMvaW5kZXguaHRtbFxuLi4uXG4gICAgMzlcdFxuICAgIDQwXHQgICAgLy8gRXhhbXBsZSBpbml0aWFsaXphdGlvbjpcbiAgICA0MVx0ICAgIC8vIElmIHlvdXIgLmVudiBjb250YWluczpcbiAgICA0Mlx0ICAgIC8vIGFnZW50MT14eXo3ODktdXZ3NDU2LGh0dHBzOi8vZXhhbXBsZS5jb21cbiAgICA0M1x0ICAgIC8vIHN1cHBvcnQ9YWJjMTIzLWRlZjQ1NixodHRwczovL2V4YW1wbGUuY29tXG4gICAgNDRcdCAgICAvLyBzYWxlc2JvdD1naGkxMjMtamtsNDU2LGh0dHBzOi8vZXhhbXBsZS5jb21cbiAgICA0NVx0ICAgIC8vXG4gICAgNDZcdCAgICAvLyBUaGVuIHVzZSB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZSBhcyBjaGF0Zmxvd2lkOlxuICAgIDQ3XHQgICAgQ2hhdGJvdC5pbml0RnVsbCh7XG4gICAgNDhcdCAgICAgIC8vIGNoYXRmbG93aWQ6ICc2YTYzYmI4OC04OGY3LTRjNGQtODA1ZS05YzAyN2M4NTcwN2InLCAvLyBvciAnc3VwcG9ydCcsICdzYWxlc2JvdCcsIGV0Yy5cbiAgICA0OVx0ICAgICAgLy8gY2hhdGZsb3dpZDogJ2I1NzNlNjZkLTBlMjgtNDc5OC04ZTRmLWZiYmFmZjhlMjM2ZicsIC8vIG9yICdzdXBwb3J0JywgJ3NhbGVzYm90JywgZXRjLlxuICAgIDUwXHQgICAgICAvLyBjaGF0Zmxvd2lkOiAnN2VlODAzYjQtZTNmOC00ZjMzLWJmODUtZWY5YWI5ZDZmNjkzJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXG4gICAgNTFcdCAgICAgIGNoYXRmbG93aWQ6ICcyMTdiZmRlOS1kNGNiLTRiMmEtYjYzNy04OTg5MGE5OTkwZWUnLCAvLyBvciAnc3VwcG9ydCcsICdzYWxlc2JvdCcsIGV0Yy5cbiAgICA1Mlx0ICAgICAgYXBpSG9zdDogJ2h0dHBzOi8vdmliLmNhZ2VudC5jbWN0cy5haScsXG4gICAgNTNcdCAgICAgIC8vIGFwaUhvc3Q6ICdodHRwczovL2MtYWdlbnQuY21jdHMuc3R1ZGlvLmFpLnZuJyxcbiAgICA1NFx0ICAgICAgY2hhdHdvb3RVcmw6ICdodHRwczovL2xpdmVjaGF0LmNhZ2VudC5jbWN0cy5haScsXG4uLi5cblBhdGg6IHNyYy9mZWF0dXJlcy9mdWxsL2luZGV4LnRzXG4gICAgIDFcdGV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cyc7XG4uLi5cblBhdGg6IHNyYy9xdWVyaWVzL3NlbmRNZXNzYWdlUXVlcnkudHNcbiAgICAgMVx0aW1wb3J0IHsgRmlsZVVwbG9hZCwgSUFjdGlvbiB9IGZyb20gJ0AvY29tcG9uZW50cy9Cb3QnO1xuICAgICAyXHRpbXBvcnQgeyBzZW5kUmVxdWVzdCB9IGZyb20gJ0AvdXRpbHMvaW5kZXgnO1xuICAgICAzXHRcbiAgICAgNFx0ZXhwb3J0IHR5cGUgSW5jb21pbmdJbnB1dCA9IHtcbiAgICAgNVx0ICBxdWVzdGlvbjogc3RyaW5nO1xuICAgICA2XHQgIHVwbG9hZHM/OiBGaWxlVXBsb2FkW107XG4gICAgIDdcdCAgb3ZlcnJpZGVDb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICAgOFx0ICBzb2NrZXRJT0NsaWVudElkPzogc3RyaW5nO1xuICAgICA5XHQgIGNoYXRJZD86IHN0cmluZztcbiAgICAxMFx0ICBmaWxlTmFtZT86IHN0cmluZzsgLy8gT25seSBmb3IgYXNzaXN0YW50XG4gICAgMTFcdCAgbGVhZEVtYWlsPzogc3RyaW5nO1xuICAgIDEyXHQgIGFjdGlvbj86IElBY3Rpb247XG4gICAgMTNcdCAgc3RvcmVkPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAxNFx0ICBmZXRjaD86IGJvb2xlYW47XG4gICAgMTVcdCAgZmFxSWQ/OiBzdHJpbmc7XG4gICAgMTZcdCAgdXNlSWQ/OiBzdHJpbmc7XG4gICAgMTdcdH07XG4gICAgMThcdFxuICAgIDE5XHR0eXBlIEJhc2VSZXF1ZXN0ID0ge1xuICAgIDIwXHQgIGFwaUhvc3Q/OiBzdHJpbmc7XG4gICAgMjFcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIDIyXHR9O1xuICAgIDIzXHRcbiAgICAyNFx0ZXhwb3J0IHR5cGUgTWVzc2FnZVJlcXVlc3QgPSBCYXNlUmVxdWVzdCAmIHtcbiAgICAyNVx0ICBjaGF0Zmxvd2lkPzogc3RyaW5nO1xuICAgIDI2XHQgIGJvZHk/OiBJbmNvbWluZ0lucHV0O1xuICAgIDI3XHR9O1xuLi4uXG4gICAgNjlcdFxuICAgIDcwXHRleHBvcnQgY29uc3QgZ2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UgPSAoKTogYW55IHwgbnVsbCA9PiB7XG4gICAgNzFcdCAgY29uc3QgZGF0YUxvZ2luID0gbG9jYWxTdG9yYWdlPy5nZXRJdGVtKCdkYXRhTG9naW4nKTtcbiAgICA3Mlx0ICBpZiAoZGF0YUxvZ2luKSB7XG4gICAgNzNcdCAgICB0cnkge1xuICAgIDc0XHQgICAgICBjb25zdCBkYXRhID0gSlNPTj8ucGFyc2UoZGF0YUxvZ2luKTtcbiAgICA3NVx0ICAgICAgcmV0dXJuIGRhdGEuYWNjZXNzVG9rZW47XG4gICAgNzZcdCAgICB9IGNhdGNoIChlcnJvcikge1xuICAgIDc3XHQgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIHVzZXIgZGF0YSBmcm9tIGxvY2FsU3RvcmFnZTonLCBlcnJvcik7XG4gICAgNzhcdCAgICAgIHJldHVybiBudWxsO1xuICAgIDc5XHQgICAgfVxuICAgIDgwXHQgIH1cbiAgICA4MVx0ICByZXR1cm4gbnVsbDtcbiAgICA4Mlx0fTtcbiAgICA4M1x0XG4gICAgODRcdGV4cG9ydCBjb25zdCBzZW5kRmVlZGJhY2tRdWVyeSA9ICh7IGNoYXRmbG93aWQsIGFwaUhvc3QgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJywgYm9keSwgb25SZXF1ZXN0IH06IENyZWF0ZUZlZWRiYWNrUmVxdWVzdCkgPT5cbiAgICA4NVx0ICBzZW5kUmVxdWVzdCh7XG4gICAgODZcdCAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICA4N1x0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL2ZlZWRiYWNrLyR7Y2hhdGZsb3dpZH1gLFxuICAgIDg4XHQgICAgYm9keSxcbiAgICA4OVx0ICAgIG9uUmVxdWVzdDogb25SZXF1ZXN0LFxuICAgIDkwXHQgICAgaGVhZGVyczoge1xuICAgIDkxXHQgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgIDkyXHQgICAgfSxcbiAgICA5M1x0ICB9KTtcbi4uLlxuICAgMTE1XHRcbiAgIDExNlx0ZXhwb3J0IGNvbnN0IHNlbmRNZXNzYWdlUXVlcnkgPSAoeyBjaGF0Zmxvd2lkLCBhcGlIb3N0ID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIGJvZHksIG9uUmVxdWVzdCB9OiBNZXNzYWdlUmVxdWVzdCkgPT4ge1xuICAgMTE3XHQgIHJldHVybiBzZW5kUmVxdWVzdDxhbnk+KHtcbiAgIDExOFx0ICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgMTE5XHQgICAgdXJsOiBgJHthcGlIb3N0fS9hcGkvdjEvcHJlZGljdGlvbi8ke2NoYXRmbG93aWR9YCxcbiAgIDEyMFx0ICAgIGJvZHksXG4gICAxMjFcdCAgICBvblJlcXVlc3Q6IG9uUmVxdWVzdCxcbiAgIDEyMlx0ICAgIGhlYWRlcnM6IHtcbiAgIDEyM1x0ICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgIDEyNFx0ICAgIH0sXG4gICAxMjVcdCAgfSk7XG4gICAxMjZcdH07XG4gICAxMjdcdFxuICAgMTI4XHRleHBvcnQgY29uc3QgY3JlYXRlQXR0YWNobWVudFdpdGhGb3JtRGF0YSA9ICh7IGNoYXRmbG93aWQsIGFwaUhvc3QgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJywgZm9ybURhdGEsIG9uUmVxdWVzdCB9OiBVcHNlcnRSZXF1ZXN0KSA9PlxuICAgMTI5XHQgIHNlbmRSZXF1ZXN0KHtcbiAgIDEzMFx0ICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgMTMxXHQgICAgdXJsOiBgJHthcGlIb3N0fS9hcGkvdjEvYXR0YWNobWVudHMvJHtjaGF0Zmxvd2lkfS8ke2Zvcm1EYXRhLmdldCgnY2hhdElkJyl9YCxcbiAgIDEzMlx0ICAgIGZvcm1EYXRhLFxuICAgMTMzXHQgICAgaGVhZGVyczoge1xuICAgMTM0XHQgICAgICAnQ29udGVudC1UeXBlJzogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgMTM1XHQgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgMTM2XHQgICAgfSxcbiAgIDEzN1x0ICAgIG9uUmVxdWVzdDogb25SZXF1ZXN0LFxuICAgMTM4XHQgIH0pO1xuLi4uXG4gICAxNjFcdFxuICAgMTYyXHRleHBvcnQgY29uc3QgaXNTdHJlYW1BdmFpbGFibGVRdWVyeSA9ICh7IGNoYXRmbG93aWQsIGFwaUhvc3QgPSAnaHR0cDovL2xvY2FsaG9zdDozMDAwJywgb25SZXF1ZXN0IH06IE1lc3NhZ2VSZXF1ZXN0KSA9PlxuICAgMTYzXHQgIHNlbmRSZXF1ZXN0PGFueT4oe1xuICAgMTY0XHQgICAgbWV0aG9kOiAnR0VUJyxcbiAgIDE2NVx0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL2NoYXRmbG93cy1zdHJlYW1pbmcvJHtjaGF0Zmxvd2lkfWAsXG4gICAxNjZcdCAgICBvblJlcXVlc3Q6IG9uUmVxdWVzdCxcbiAgIDE2N1x0ICAgIGhlYWRlcnM6IHtcbiAgIDE2OFx0ICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgIDE2OVx0ICAgIH0sXG4gICAxNzBcdCAgfSk7XG4gICAxNzFcdFxuICAgMTcyXHRleHBvcnQgY29uc3Qgc2VuZEZpbGVEb3dubG9hZFF1ZXJ5ID0gKHsgYXBpSG9zdCA9ICdodHRwOi8vbG9jYWxob3N0OjMwMDAnLCBib2R5LCBvblJlcXVlc3QgfTogTWVzc2FnZVJlcXVlc3QpID0+XG4gICAxNzNcdCAgc2VuZFJlcXVlc3Q8YW55Pih7XG4gICAxNzRcdCAgICBtZXRob2Q6ICdQT1NUJyxcbiAgIDE3NVx0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL29wZW5haS1hc3Npc3RhbnRzLWZpbGUvZG93bmxvYWRgLFxuICAgMTc2XHQgICAgYm9keSxcbiAgIDE3N1x0ICAgIHR5cGU6ICdibG9iJyxcbiAgIDE3OFx0ICAgIG9uUmVxdWVzdDogb25SZXF1ZXN0LFxuICAgMTc5XHQgICAgaGVhZGVyczoge1xuICAgMTgwXHQgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Z2V0VXNlckZyb21Mb2NhbFN0b3JhZ2UoKX1gLFxuICAgMTgxXHQgICAgfSxcbiAgIDE4Mlx0ICB9KTtcbiAgIDE4M1x0XG4gICAxODRcdGV4cG9ydCBjb25zdCBhZGRMZWFkUXVlcnkgPSAoeyBhcGlIb3N0ID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsIGJvZHksIG9uUmVxdWVzdCB9OiBMZWFkQ2FwdHVyZVJlcXVlc3QpID0+XG4gICAxODVcdCAgc2VuZFJlcXVlc3Q8YW55Pih7XG4gICAxODZcdCAgICBtZXRob2Q6ICdQT1NUJyxcbiAgIDE4N1x0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL2xlYWRzL2AsXG4gICAxODhcdCAgICBib2R5LFxuICAgMTg5XHQgICAgb25SZXF1ZXN0OiBvblJlcXVlc3QsXG4gICAxOTBcdCAgICBoZWFkZXJzOiB7XG4gICAxOTFcdCAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSgpfWAsXG4gICAxOTJcdCAgICB9LFxuICAgMTkzXHQgIH0pO1xuICAgMTk0XHRcbiAgIDE5NVx0ZXhwb3J0IGNvbnN0IHNlYXJjaEZhcXNRdWVyeSA9IGFzeW5jICh7XG4gICAxOTZcdCAgY2hhdGZsb3dpZCxcbiAgIDE5N1x0ICBhcGlIb3N0ID0gJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMCcsXG4gICAxOThcdCAgcXVlcnksXG4gICAxOTlcdCAgb25SZXF1ZXN0LFxuICAgMjAwXHR9OiB7XG4gICAyMDFcdCAgY2hhdGZsb3dpZD86IHN0cmluZztcbiAgIDIwMlx0ICBhcGlIb3N0Pzogc3RyaW5nO1xuICAgMjAzXHQgIHF1ZXJ5OiBzdHJpbmc7XG4gICAyMDRcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgMjA1XHR9KSA9PiB7XG4gICAyMDZcdCAgcmV0dXJuIHNlbmRSZXF1ZXN0PGFueT4oe1xuICAgMjA3XHQgICAgbWV0aG9kOiAnR0VUJyxcbiAgIDIwOFx0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3YxL2ZhcS9zZWFyY2gvJHtjaGF0Zmxvd2lkfT9xdWVyeT0ke3F1ZXJ5fWAsXG4gICAyMDlcdCAgICBvblJlcXVlc3Q6IG9uUmVxdWVzdCxcbiAgIDIxMFx0ICAgIGhlYWRlcnM6IHtcbiAgIDIxMVx0ICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2dldFVzZXJGcm9tTG9jYWxTdG9yYWdlKCl9YCxcbiAgIDIxMlx0ICAgIH0sXG4gICAyMTNcdCAgfSk7XG4gICAyMTRcdH07XG4uLi5cbiAgIDIzNlx0XG4gICAyMzdcdGV4cG9ydCBjb25zdCBnZXRGaWxlQ29udGVudCA9IGFzeW5jICh7XG4gICAyMzhcdCAgYXBpSG9zdCA9ICdodHRwczovL3MzLWV4cGxvcmVyLmNtY3RzMS5zdHVkaW8uYWkudm4nLFxuICAgMjM5XHQgIHBhdGgsXG4gICAyNDBcdCAgb25SZXF1ZXN0LFxuICAgMjQxXHR9OiB7XG4gICAyNDJcdCAgYXBpSG9zdD86IHN0cmluZztcbiAgIDI0M1x0ICBwYXRoOiBzdHJpbmc7XG4gICAyNDRcdCAgb25SZXF1ZXN0PzogKHJlcXVlc3Q6IFJlcXVlc3RJbml0KSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgMjQ1XHR9KSA9PiB7XG4gICAyNDZcdCAgcmV0dXJuIHNlbmRSZXF1ZXN0PGFueT4oe1xuICAgMjQ3XHQgICAgbWV0aG9kOiAnR0VUJyxcbiAgIDI0OFx0ICAgIHVybDogYCR7YXBpSG9zdH0vYXBpL3JlYWQtdGV4dD9wYXRoPSR7cGF0aH1gLFxuICAgMjQ5XHQgICAgb25SZXF1ZXN0OiBvblJlcXVlc3QsXG4gICAyNTBcdCAgICBoZWFkZXJzOiB7XG4gICAyNTFcdCAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtnZXRVc2VyRnJvbUxvY2FsU3RvcmFnZSgpfWAsXG4gICAyNTJcdCAgICB9LFxuICAgMjUzXHQgIH0pO1xuICAgMjU0XHR9O1xuLi4uXG5QYXRoOiBzcmMvZmVhdHVyZXMvZnVsbC9jb21wb25lbnRzL2luZGV4LnRzXG4gICAgIDFcdGV4cG9ydCAqIGZyb20gJy4vRnVsbCc7XG4uLi5cblBhdGg6IHNyYy9pbmRleC50c1xuICAgICAxXHRleHBvcnQgeyBGdWxsUGFnZUNoYXQgfSBmcm9tICcuL0Z1bGxQYWdlQ2hhdCdcbiAgICAgMlx0ZXhwb3J0IHsgQnViYmxlQ2hhdCB9IGZyb20gJy4vQnViYmxlQ2hhdCdcbi4uLlxuUGF0aDogc3JjL3V0aWxzL2luZGV4LnRzXG4uLi5cbiAgICAgOFx0XG4gICAgIDlcdGV4cG9ydCBjb25zdCBzZW5kUmVxdWVzdCA9IGFzeW5jIDxSZXNwb25zZURhdGE+KFxuICAgIDEwXHQgIHBhcmFtczpcbiAgICAxMVx0ICAgIHwge1xuICAgIDEyXHQgICAgICAgIHVybDogc3RyaW5nO1xuICAgIDEzXHQgICAgICAgIG1ldGhvZDogc3RyaW5nO1xuICAgIDE0XHQgICAgICAgIGJvZHk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IEZvcm1EYXRhO1xuICAgIDE1XHQgICAgICAgIHR5cGU/OiBzdHJpbmc7XG4gICAgMTZcdCAgICAgICAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgMTdcdCAgICAgICAgZm9ybURhdGE/OiBGb3JtRGF0YTtcbiAgICAxOFx0ICAgICAgICBvblJlcXVlc3Q/OiAocmVxdWVzdDogUmVxdWVzdEluaXQpID0+IFByb21pc2U8dm9pZD47XG4gICAgMTlcdCAgICAgIH1cbiAgICAyMFx0ICAgIHwgc3RyaW5nLFxuICAgIDIxXHQpOiBQcm9taXNlPHsgZGF0YT86IFJlc3BvbnNlRGF0YTsgZXJyb3I/OiBFcnJvciB9PiA9PiB7XG4gICAgMjJcdCAgdHJ5IHtcbiAgICAyM1x0ICAgIGNvbnN0IHVybCA9IHR5cGVvZiBwYXJhbXMgPT09ICdzdHJpbmcnID8gcGFyYW1zIDogcGFyYW1zLnVybDtcbiAgICAyNFx0ICAgIGNvbnN0IGhlYWRlcnMgPVxuICAgIDI1XHQgICAgICB0eXBlb2YgcGFyYW1zICE9PSAnc3RyaW5nJyAmJiBpc0RlZmluZWQocGFyYW1zLmJvZHkpXG4gICAgMjZcdCAgICAgICAgPyB7XG4gICAgMjdcdCAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgMjhcdCAgICAgICAgICAgIC4uLnBhcmFtcy5oZWFkZXJzLFxuICAgIDI5XHQgICAgICAgICAgfVxuICAgIDMwXHQgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIDMxXHQgICAgbGV0IGJvZHk6IHN0cmluZyB8IEZvcm1EYXRhIHwgdW5kZWZpbmVkID0gdHlwZW9mIHBhcmFtcyAhPT0gJ3N0cmluZycgJiYgaXNEZWZpbmVkKHBhcmFtcy5ib2R5KSA/IEpTT04uc3RyaW5naWZ5KHBhcmFtcy5ib2R5KSA6IHVuZGVmaW5lZDtcbiAgICAzMlx0ICAgIGlmICh0eXBlb2YgcGFyYW1zICE9PSAnc3RyaW5nJyAmJiBwYXJhbXMuZm9ybURhdGEpIGJvZHkgPSBwYXJhbXMuZm9ybURhdGE7XG4gICAgMzNcdFxuICAgIDM0XHQgICAgY29uc3QgcmVxdWVzdEluZm86IFJlcXVlc3RJbml0ID0ge1xuICAgIDM1XHQgICAgICBtZXRob2Q6IHR5cGVvZiBwYXJhbXMgPT09ICdzdHJpbmcnID8gJ0dFVCcgOiBwYXJhbXMubWV0aG9kLFxuICAgIDM2XHQgICAgICBtb2RlOiAnY29ycycsXG4gICAgMzdcdCAgICAgIGhlYWRlcnMsXG4gICAgMzhcdCAgICAgIGJvZHksXG4gICAgMzlcdCAgICB9O1xuICAgIDQwXHRcbiAgICA0MVx0ICAgIGlmICh0eXBlb2YgcGFyYW1zICE9PSAnc3RyaW5nJyAmJiBwYXJhbXMub25SZXF1ZXN0KSB7XG4gICAgNDJcdCAgICAgIGF3YWl0IHBhcmFtcy5vblJlcXVlc3QocmVxdWVzdEluZm8pO1xuICAgIDQzXHQgICAgfVxuICAgIDQ0XHRcbiAgICA0NVx0ICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCByZXF1ZXN0SW5mbyk7XG4gICAgNDZcdFxuICAgIDQ3XHQgICAgbGV0IGRhdGE6IGFueTtcbiAgICA0OFx0ICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScpO1xuICAgIDQ5XHQgICAgaWYgKGNvbnRlbnRUeXBlICYmIGNvbnRlbnRUeXBlLmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJykpIHtcbiAgICA1MFx0ICAgICAgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICA1MVx0ICAgIH0gZWxzZSBpZiAodHlwZW9mIHBhcmFtcyAhPT0gJ3N0cmluZycgJiYgcGFyYW1zLnR5cGUgPT09ICdibG9iJykge1xuICAgIDUyXHQgICAgICBkYXRhID0gYXdhaXQgcmVzcG9uc2UuYmxvYigpO1xuICAgIDUzXHQgICAgfSBlbHNlIHtcbiAgICA1NFx0ICAgICAgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTtcbiAgICA1NVx0ICAgIH1cbi4uLlxuICAgMTEyXHQgIGtleXNUb1JlbW92ZS5mb3JFYWNoKChrZXkpID0+IGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSkpO1xuICAgMTEzXHRcbiAgIDExNFx0ICBjb25zdCBjaGF0RGV0YWlscyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGAke2NoYXRmbG93aWR9X0VYVEVSTkFMYCk7XG4gICAxMTVcdCAgaWYgKCFjaGF0RGV0YWlscykgcmV0dXJuO1xuICAgMTE2XHQgIHRyeSB7XG4gICAxMTdcdCAgICBjb25zdCBwYXJzZWRDaGF0RGV0YWlscyA9IEpTT04ucGFyc2UoY2hhdERldGFpbHMpO1xuICAgMTE4XHQgICAgaWYgKHBhcnNlZENoYXREZXRhaWxzLmxlYWQpIHtcbiAgIDExOVx0ICAgICAgLy8gRG9udCByZW1vdmUgbGVhZCB3aGVuIGNoYXQgaXMgY2xlYXJlZFxuICAgMTIwXHQgICAgICBjb25zdCBvYmogPSB7IGxlYWQ6IHBhcnNlZENoYXREZXRhaWxzLmxlYWQgfTtcbiAgIDEyMVx0ICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYCR7Y2hhdGZsb3dpZH1fRVhURVJOQUxgKTtcbiAgIDEyMlx0ICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oYCR7Y2hhdGZsb3dpZH1fRVhURVJOQUxgLCBKU09OLnN0cmluZ2lmeShvYmopKTtcbiAgIDEyM1x0ICAgIH0gZWxzZSB7XG4gICAxMjRcdCAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGAke2NoYXRmbG93aWR9X0VYVEVSTkFMYCk7XG4gICAxMjVcdCAgICB9XG4gICAxMjZcdCAgfSBjYXRjaCAoZSkge1xuICAgMTI3XHQgICAgcmV0dXJuO1xuICAgMTI4XHQgIH1cbiAgIDEyOVx0fTtcbi4uLlxuIiwiaXNFcnJvciI6ZmFsc2UsInJlcXVlc3RJZCI6IiJ9fSwiZjk4YTBiODEtMWE0ZC00OWYwLWI0NTctZjQ1MWM4OTdmNTYzO3Rvb2x1X3ZydHhfMDFSa3FGdjhMa01Fb1N2cUw5UHRBWjFxIjp7InJlcXVlc3RJZCI6ImY5OGEwYjgxLTFhNGQtNDlmMC1iNDU3LWY0NTFjODk3ZjU2MyIsInRvb2xVc2VJZCI6InRvb2x1X3ZydHhfMDFSa3FGdjhMa01Fb1N2cUw5UHRBWjFxIiwicGhhc2UiOjUsInJlc3VsdCI6eyJ0ZXh0IjoiU3VjY2Vzc2Z1bGx5IGVkaXRlZCB0aGUgZmlsZSBwdWJsaWMvaW5kZXguaHRtbC5cblJlc3VsdCBmb3Igc3RyX3JlcGxhY2UgZm9yIGVudHJ5IHdpdGggaW5kZXggWzBdOlxuUmVwbGFjZW1lbnQgc3VjY2Vzc2Z1bC5cbkVkaXRlZCBzZWN0aW9uIGFmdGVyIElERSBhdXRvLWZvcm1hdHRpbmcgd2FzIGFwcGxpZWQ6XG4gICAgNDJcdCAgICAvLyBhZ2VudDE9eHl6Nzg5LXV2dzQ1NixodHRwczovL2V4YW1wbGUuY29tXG4gICAgNDNcdCAgICAvLyBzdXBwb3J0PWFiYzEyMy1kZWY0NTYsaHR0cHM6Ly9leGFtcGxlLmNvbVxuICAgIDQ0XHQgICAgLy8gc2FsZXNib3Q9Z2hpMTIzLWprbDQ1NixodHRwczovL2V4YW1wbGUuY29tXG4gICAgNDVcdCAgICAvL1xuICAgIDQ2XHQgICAgLy8gVGhlbiB1c2UgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUgYXMgY2hhdGZsb3dpZDpcbiAgICA0N1x0ICAgIENoYXRib3QuaW5pdEZ1bGwoe1xuICAgIDQ4XHQgICAgICAvLyBjaGF0Zmxvd2lkOiAnNmE2M2JiODgtODhmNy00YzRkLTgwNWUtOWMwMjdjODU3MDdiJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXG4gICAgNDlcdCAgICAgIC8vIGNoYXRmbG93aWQ6ICdiNTczZTY2ZC0wZTI4LTQ3OTgtOGU0Zi1mYmJhZmY4ZTIzNmYnLCAvLyBvciAnc3VwcG9ydCcsICdzYWxlc2JvdCcsIGV0Yy5cbiAgICA1MFx0ICAgICAgLy8gY2hhdGZsb3dpZDogJzdlZTgwM2I0LWUzZjgtNGYzMy1iZjg1LWVmOWFiOWQ2ZjY5MycsIC8vIG9yICdzdXBwb3J0JywgJ3NhbGVzYm90JywgZXRjLlxuICAgIDUxXHQgICAgICBjaGF0Zmxvd2lkOiAnMjE3YmZkZTktZDRjYi00YjJhLWI2MzctODk4OTBhOTk5MGVlJywgLy8gb3IgJ3N1cHBvcnQnLCAnc2FsZXNib3QnLCBldGMuXG4gICAgNTJcdCAgICAgIGFwaUhvc3Q6ICdodHRwczovL3ZpYi5jYWdlbnQuY21jdHMuYWknLFxuICAgIDUzXHQgICAgICAvLyBhcGlIb3N0OiAnaHR0cHM6Ly9jLWFnZW50LmNtY3RzLnN0dWRpby5haS52bicsXG4gICAgNTRcdCAgICAgIGNoYXR3b290VXJsOiAnaHR0cHM6Ly9saXZlY2hhdC5jYWdlbnQuY21jdHMuYWknLFxuICAgIDU1XHQgICAgICBvbkJlZm9yZVNlbmQ6IChtZXNzYWdlLCBib2R5KSA9PiB7XG4gICAgNTZcdCAgICAgICAgYWxlcnQoYEFib3V0IHRvIHNlbmQgbWVzc2FnZTogXCIke21lc3NhZ2V9XCJgKTtcbiAgICA1N1x0ICAgICAgICBjb25zb2xlLmxvZygnTWVzc2FnZSBiZWluZyBzZW50OicsIG1lc3NhZ2UpO1xuICAgIDU4XHQgICAgICAgIGNvbnNvbGUubG9nKCdSZXF1ZXN0IGJvZHk6JywgYm9keSk7XG4gICAgNTlcdCAgICAgICAgcmV0dXJuIHsgbWVzc2FnZSwgYm9keSB9O1xuICAgIDYwXHQgICAgICB9LFxuICAgIDYxXHQgICAgICByb29tSWRzOiB7XG4gICAgNjJcdCAgICAgICAgJzAxMjM0NTY3ODknOiAnWGE2SG1oZmJVNUs3M1poSG5zcHpLaHFzJyxcbiAgICA2M1x0ICAgICAgfSxcbiAgICA2NFx0ICAgICAgdGhlbWU6IGN1c3RvbVN0cmluZ2lmeSh7XG5cblJldmlldyB0aGUgY2hhbmdlcyBhbmQgbWFrZSBzdXJlIHRoZXkgYXJlIGFzIGV4cGVjdGVkIChjb3JyZWN0IGluZGVudGF0aW9uLCBubyBkdXBsaWNhdGUgbGluZXMsIGV0YykuXG5FZGl0IHRoZSBmaWxlIGFnYWluIGlmIG5lY2Vzc2FyeS5cbiIsImlzRXJyb3IiOmZhbHNlLCJyZXF1ZXN0SWQiOiIifX19LCJkcmFmdEV4Y2hhbmdlIjp7InJlcXVlc3RfbWVzc2FnZSI6IiIsInJpY2hfdGV4dF9qc29uX3JlcHIiOnsidHlwZSI6ImRvYyIsImNvbnRlbnQiOlt7InR5cGUiOiJwYXJhZ3JhcGgifV19LCJzdGF0dXMiOiJkcmFmdCJ9LCJyZXF1ZXN0SWRzIjpbXSwiaXNQaW5uZWQiOmZhbHNlLCJpc1NoYXJlYWJsZSI6dHJ1ZSwiZXh0cmFEYXRhIjp7ImlzQWdlbnRDb252ZXJzYXRpb24iOnRydWUsImhhc0RpcnR5RWRpdHMiOnRydWUsImJhc2VsaW5lVGltZXN0YW1wIjoxNzQ4NTc4MjA2NTE1fSwicGVyc29uYVR5cGUiOjAsInJvb3RUYXNrVXVpZCI6IjI3ODI5ZGMxLTdlMDYtNDY1Ni1iYjFhLTYyODZiMWZmNTM4ZiJ9fSwiYWdlbnRFeGVjdXRpb25Nb2RlIjoiYXV0byIsImlzUGFuZWxDb2xsYXBzZWQiOnRydWUsImRpc3BsYXllZEFubm91bmNlbWVudHMiOltdLCJzb3J0Q29udmVyc2F0aW9uc0J5IjoibGFzdE1lc3NhZ2VUaW1lc3RhbXAifQ==" />
|
|
7
7
|
</map>
|
|
8
8
|
</option>
|
|
9
9
|
</component>
|