{
  "payloadType": "application/vnd.in-toto+json",
  "payload": "ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiY29uc29saWRhdGVkLTAwMDAxLW9mLTAwMDEzLnNhZmV0ZW5zb3JzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjc1ZWEwOTU1YzQwZDU1MDJjODA3NzZmNjcwMTQzYzkyYWVjOGFkODAwMWM2NTlhOTQzMmUyNGZmOWEzYzhlZWEiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImNvbnNvbGlkYXRlZC0wMDAwMi1vZi0wMDAxMy5zYWZldGVuc29ycyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJlNjIwMmNhMGU0NzExMWMxNDBiZDFhNjRiYzViNzQ0Mjk5NjY4NWM3MDFmYWIxMzcyODk3NjUxMWRkNGNhNjBlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb25zb2xpZGF0ZWQtMDAwMDMtb2YtMDAwMTMuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYWM1MmE5Njc5MDVkNDJkZGY3M2UwMzBkMGFhYmFlYzkyYzMwN2U3NjA0ZmVhYzg2YTM1NmVlMWJhNDFhYjU3OCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiY29uc29saWRhdGVkLTAwMDA0LW9mLTAwMDEzLnNhZmV0ZW5zb3JzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImNlN2E1NzFmMDU5ZTkxMWRlODgxNmI5YTU2NmFhOTA2MTY2MGJiYmU3NDQ3NGYwYzRkODA3YmU4NTE5MWZlMDYiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImNvbnNvbGlkYXRlZC0wMDAwNS1vZi0wMDAxMy5zYWZldGVuc29ycyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzM2U4OTFmZjVhZmFiOTczZWE2MmJlZGEyN2IyNzA1ODNjODcwYmIyNGU4N2NiZTU0ZThiMTQ1ODllNGQ1ZWVjIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb25zb2xpZGF0ZWQtMDAwMDYtb2YtMDAwMTMuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiMDViM2I3OGFmZjdiNWVhZDAzMDhkMjJmMjUwZWJhNDVlZGE5NzA3MTM2NTE4NjJkMDgyNDFiYmZkODk0MTliOCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiY29uc29saWRhdGVkLTAwMDA3LW9mLTAwMDEzLnNhZmV0ZW5zb3JzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogImQxMjdlYTI5MTg2OTA2OWQzMDRhNzE2MjRmNjgzYWEwY2I3MzhlMjVhYjc1ZmY5YTYzZTQzNjZkMjk2NDMzYTgiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImNvbnNvbGlkYXRlZC0wMDAwOC1vZi0wMDAxMy5zYWZldGVuc29ycyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJkNGI3ZDY5Y2M3NjMyNWY1MzkxZDcyNDQ4NWJhNjk4ZTk4OGU3NzY0Nzg3ZThhNjU2ZjU3OWZlZDYyYmYyYWFlIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb25zb2xpZGF0ZWQtMDAwMDktb2YtMDAwMTMuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiYWQ1MWFiOGVhYzEyYTcyNWIxNjBjNzA5ZGMyMzQyZmMzYzUyMjMxNjY3ZWViNGM2MzE1OWE3MWZhNTZlNzZhNyIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiY29uc29saWRhdGVkLTAwMDEwLW9mLTAwMDEzLnNhZmV0ZW5zb3JzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjNiNDcxYjM3ZTc3ZjhiNGYzOTdhODFjMjNmNjI2YWExOTIxMmUzYzMwNWY4ODFmZWEwMDMyMDQ1ZGVhNTE3MzMiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImNvbnNvbGlkYXRlZC0wMDAxMS1vZi0wMDAxMy5zYWZldGVuc29ycyIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICIzMTAwYmI1YmI1ZjZjNWRkZWFiODM3NjMyYjEwMzVkMjAwYTdkOWNkODQxZTQ1YWMyZmUzYjU3ODlmNzJlMjVhIgogICAgICB9CiAgICB9LAogICAgewogICAgICAibmFtZSI6ICJjb25zb2xpZGF0ZWQtMDAwMTItb2YtMDAwMTMuc2FmZXRlbnNvcnMiLAogICAgICAiZGlnZXN0IjogewogICAgICAgICJzaGEyNTYiOiAiN2Y4NDc4MzI4NDQ1ZjVkYWQzZjc1OGYxNTdjNzU0MjU0Yjg2MzgzZTYxNGRhOGRkMmY3OGJhYTRkOWZkMzgwNCIKICAgICAgfQogICAgfSwKICAgIHsKICAgICAgIm5hbWUiOiAiY29uc29saWRhdGVkLTAwMDEzLW9mLTAwMDEzLnNhZmV0ZW5zb3JzIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjE1MDEyMDJmNDQ1NzY5MWFhZWM0YTYwODc1YjAxOWQwMWE5ZGIzYTk0MDAyMTFmNmEzNTg0NmNmZGFkNDI4M2EiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJuYW1lIjogImNvbnNvbGlkYXRlZC5zYWZldGVuc29ycy5pbmRleC5qc29uIiwKICAgICAgImRpZ2VzdCI6IHsKICAgICAgICAic2hhMjU2IjogIjIzN2VjNTY2M2E1OGNkODFlMmU1ZmM2NTc5MmYxN2Y5MDBjZDY5ZDM3YTExNzQ1YWEwYTEzNmRjYTY0ZjEwNmEiCiAgICAgIH0KICAgIH0KICBdLAogICJwcmVkaWNhdGVUeXBlIjogImh0dHBzOi8vYXNzYXkuY28ubnovYXR0ZXN0YXRpb24vYWRtaXNzaW9uL3YxIiwKICAicHJlZGljYXRlIjogewogICAgInNjaGVtYSI6ICJwcm92ZW5hbmNlLWFydGVmYWN0L3YxIiwKICAgICJtb2RlbF9pZCI6ICJtaXN0cmFsYWkvTWlzdHJhbC1TbWFsbC00LTExOUItMjYwMy1OVkZQNCIsCiAgICAia2luZCI6ICJsbG0iLAogICAgInZlcnNpb24iOiAiNDUzMzE4NDFiNjMxZjRlMjgxZGY4ZTk1OWVhM2NjOWJlYjg0Mjk4YSIsCiAgICAic3RhdHVzIjogImFkbWl0dGVkIiwKICAgICJldmlkZW5jZV90aWVyIjogIlQyIiwKICAgICJ2aW9sYXRpb25zIjogW10sCiAgICAibGljZW5jZSI6IHsKICAgICAgImlkZW50aWZpZXIiOiAiQXBhY2hlLTIuMCIsCiAgICAgICJldmlkZW5jZSI6ICJyZXBvc2l0b3J5LW1ldGFkYXRhIiwKICAgICAgImRlY2xhcmVkIjogewogICAgICAgICJpZGVudGlmaWVyIjogIkFwYWNoZS0yLjAiLAogICAgICAgICJiYXNpcyI6ICJjYXJkLXNlY3Rpb24iCiAgICAgIH0sCiAgICAgICJjb25jbHVkZWQiOiAiQXBhY2hlLTIuMCIsCiAgICAgICJiYXNlX29ibGlnYXRpb25zIjogW10sCiAgICAgICJjYW5vbmljYWxfdGV4dCI6ICJBcGFjaGUtMi4wLnR4dCIsCiAgICAgICJjYW5vbmljYWxfdGV4dF9kaWdlc3QiOiAic2hhMjU2OmNmYzc3NDliOTZmNjNiZDMxYzNjNDJiNWM0NzFiZjc1NjgxNDA1M2U4NDdjMTBmM2ViMDAzNDE3YmM1MjNkMzAiLAogICAgICAic291cmNlX3VybCI6ICJodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wLnR4dCIsCiAgICAgICJzb3VyY2VfZGlnZXN0IjogInNoYTI1NjpjZmM3NzQ5Yjk2ZjYzYmQzMWMzYzQyYjVjNDcxYmY3NTY4MTQwNTNlODQ3YzEwZjNlYjAwMzQxN2JjNTIzZDMwIiwKICAgICAgImFkZGVkX2NsYXVzZV9zY3JlZW4iOiB7CiAgICAgICAgImZpbGVzX3JlYWQiOiBbXSwKICAgICAgICAiZmluZGluZ3MiOiBbXQogICAgICB9CiAgICB9LAogICAgInByb3ZlbmFuY2UiOiB7CiAgICAgICJzb3VyY2UiOiAiaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9taXN0cmFsYWkvTWlzdHJhbC1TbWFsbC00LTExOUItMjYwMy1OVkZQNCIsCiAgICAgICJvZmZpY2lhbF9saWNlbnNvcl9yZXBvIjogdHJ1ZSwKICAgICAgImZvcm1hdCI6ICJzYWZldGVuc29ycyIsCiAgICAgICJjaGVja3N1bV92ZXJpZmllZCI6IHRydWUKICAgIH0sCiAgICAiZXhwb3J0X2NvbnRyb2wiOiB7CiAgICAgICJzdGF0dXMiOiAibm90X2Fzc2Vzc2VkIiwKICAgICAgInJlc3VsdCI6ICJ1bmtub3duIiwKICAgICAgImJhc2lzIjogbnVsbCwKICAgICAgImFzc2Vzc2VkX2J5IjogbnVsbCwKICAgICAgImFzc2Vzc2VkX2RhdGUiOiBudWxsLAogICAgICAicmVmZXJlbmNlIjogbnVsbAogICAgfSwKICAgICJoYXJkd2FyZV9maXQiOiB7CiAgICAgICJtaW5fdGllciI6IDEsCiAgICAgICJ2cmFtX2ZwOCI6ICIxMjAuOUdCICh0aGUgZmlyc3QtcGFydHkgRlA4IHJlcG9zaXRvcnk7IGl0IGRvZXMgbm90IGZpdCB0aGUgOTZHQiBUaWVyIDEgY2FyZCkiLAogICAgICAidnJhbV9mcDQiOiAiNzAuOEdCIChOVkZQNDsgdGhlIHBpbm5lZCBzZXQsIHdlaWdodHMgb25seSkiLAogICAgICAiY29udGV4dF9jZWlsaW5nIjogIjFNIiwKICAgICAgImNvbmN1cnJlbmN5X2VudmVsb3BlIjogIjUwLTEwMCAoVGllciAxLCBkZXNpZ24gOC4xIGZpZ3VyZXMpIgogICAgfSwKICAgICJpbmRlbW5pdHkiOiB7CiAgICAgICJwcm92aWRlZF9ieV9saWNlbnNvciI6IGZhbHNlLAogICAgICAiY2xpZW50X2Rpc2Nsb3N1cmVfcmVxdWlyZWQiOiB0cnVlCiAgICB9LAogICAgImF0dGVzdGF0aW9uIjogewogICAgICAia2V5X2lkIjogIjYxMTNmMTc4NjYzYWQ5NGFkNGI1NmRkZjM2MjkxZDkyNjgzYjM3NWMxN2IwMDIzMGZkNzA2NzlhMjc0MDhhZjQiLAogICAgICAiaXNzdWVkX2F0IjogIjIwMjYtMDktMjRUMDA6MDA6MDBaIiwKICAgICAgImdhdGVfdmVyc2lvbiI6ICIyMDI2LTA5LTI0IgogICAgfSwKICAgICJnYXRlIjogewogICAgICAidG9vbCI6ICJhZG1pc3Npb24tZ2F0ZSIsCiAgICAgICJ2ZXJzaW9uIjogIjIwMjYtMDktMjQiLAogICAgICAicnVuX2RpZ2VzdCI6ICJzaGEyNTY6MjEwOTA3N2QwZjNkYjJkNzE2YjIyNGUwZmI1Y2ExNmIzMGVmZGY2OGUzZDBjNDNlMTAzMGE5N2QzY2M5ZDM3MSIKICAgIH0sCiAgICAicmV2aWV3IjogewogICAgICAicmV2aWV3ZWRfYnkiOiAidGVhbS1xYSAod2VpZ2h0cy5kaWdlc3QgaXMgdGhlIExGUyBzaGEyNTYgb2YgdGhlIHBpbm5lZCBzYWZldGVuc29ycyBmaWxlLCB3aGljaCBpcyB0aGUgY29udGVudCBkaWdlc3QgZm9yIExGUy1zdG9yZWQgZmlsZXM7IGEgbXVsdGktc2hhcmQgc2V0IGlzIHBpbm5lZCBpbiBmdWxsOiBldmVyeSBzaGFyZCBhbmQgdGhlIGluZGV4IGZpbGUgY2FycnkgdGhlaXIgb3duIGRpZ2VzdCAoZmluZGluZ3MgcmVnaXN0ZXIgVi0wNCk7IGV4cG9ydCBzY3JlZW5pbmcgYW5kIGNvdW5zZWwgc2lnbi1vZmYgcGVuZGluZywgZGVjaXNpb24gMDAxNykiLAogICAgICAicmV2aWV3ZWRfZGF0ZSI6ICIyMDI2LTA5LTI1IiwKICAgICAgInRyaWFnZSI6IFtdCiAgICB9LAogICAgImNoYXRfdGVtcGxhdGUiOiAieyMtIERlZmF1bHQgc3lzdGVtIG1lc3NhZ2UgaWYgbm8gc3lzdGVtIHByb21wdCBpcyBwYXNzZWQuICN9XG57JS0gc2V0IGRlZmF1bHRfc3lzdGVtX21lc3NhZ2UgPSAnWW91IGFyZSBNaXN0cmFsLVNtYWxsLTQtMTE5Qi0yNjAzLCBhIExhcmdlIExhbmd1YWdlIE1vZGVsIChMTE0pIGNyZWF0ZWQgYnkgTWlzdHJhbCBBSSwgYSBGcmVuY2ggc3RhcnR1cCBoZWFkcXVhcnRlcmVkIGluIFBhcmlzLlxuWW91IHBvd2VyIGFuIEFJIGFzc2lzdGFudCBjYWxsZWQgTGUgQ2hhdC5cbllvdXIga25vd2xlZGdlIGJhc2Ugd2FzIGxhc3QgdXBkYXRlZCBvbiBGcmlkYXksIE5vdmVtYmVyIDEsIDIwMjQuXG5UaGUgY3VycmVudCBkYXRlIGlzIHt0b2RheX0uXG5cbldoZW4geW91XFwncmUgbm90IHN1cmUgYWJvdXQgc29tZSBpbmZvcm1hdGlvbiBvciB3aGVuIHRoZSB1c2VyXFwncyByZXF1ZXN0IHJlcXVpcmVzIHVwLXRvLWRhdGUgb3Igc3BlY2lmaWMgZGF0YSwgeW91IG11c3QgdXNlIHRoZSBhdmFpbGFibGUgdG9vbHMgdG8gZmV0Y2ggdGhlIGluZm9ybWF0aW9uLiBEbyBub3QgaGVzaXRhdGUgdG8gdXNlIHRvb2xzIHdoZW5ldmVyIHRoZXkgY2FuIHByb3ZpZGUgYSBtb3JlIGFjY3VyYXRlIG9yIGNvbXBsZXRlIHJlc3BvbnNlLiBJZiBubyByZWxldmFudCB0b29scyBhcmUgYXZhaWxhYmxlLCB0aGVuIGNsZWFybHkgc3RhdGUgdGhhdCB5b3UgZG9uXFwndCBoYXZlIHRoZSBpbmZvcm1hdGlvbiBhbmQgYXZvaWQgbWFraW5nIHVwIGFueXRoaW5nLlxuSWYgdGhlIHVzZXJcXCdzIHF1ZXN0aW9uIGlzIG5vdCBjbGVhciwgYW1iaWd1b3VzLCBvciBkb2VzIG5vdCBwcm92aWRlIGVub3VnaCBjb250ZXh0IGZvciB5b3UgdG8gYWNjdXJhdGVseSBhbnN3ZXIgdGhlIHF1ZXN0aW9uLCB5b3UgZG8gbm90IHRyeSB0byBhbnN3ZXIgaXQgcmlnaHQgYXdheSBhbmQgeW91IHJhdGhlciBhc2sgdGhlIHVzZXIgdG8gY2xhcmlmeSB0aGVpciByZXF1ZXN0IChlLmcuIFwiV2hhdCBhcmUgc29tZSBnb29kIHJlc3RhdXJhbnRzIGFyb3VuZCBtZT9cIiA9XHUwMDNlIFwiV2hlcmUgYXJlIHlvdT9cIiBvciBcIldoZW4gaXMgdGhlIG5leHQgZmxpZ2h0IHRvIFRva3lvXCIgPVx1MDAzZSBcIldoZXJlIGRvIHlvdSB0cmF2ZWwgZnJvbT9cIikuXG5Zb3UgYXJlIGFsd2F5cyB2ZXJ5IGF0dGVudGl2ZSB0byBkYXRlcywgaW4gcGFydGljdWxhciB5b3UgdHJ5IHRvIHJlc29sdmUgZGF0ZXMgKGUuZy4gXCJ5ZXN0ZXJkYXlcIiBpcyB7eWVzdGVyZGF5fSkgYW5kIHdoZW4gYXNrZWQgYWJvdXQgaW5mb3JtYXRpb24gYXQgc3BlY2lmaWMgZGF0ZXMsIHlvdSBkaXNjYXJkIGluZm9ybWF0aW9uIHRoYXQgaXMgYXQgYW5vdGhlciBkYXRlLlxuWW91IGZvbGxvdyB0aGVzZSBpbnN0cnVjdGlvbnMgaW4gYWxsIGxhbmd1YWdlcywgYW5kIGFsd2F5cyByZXNwb25kIHRvIHRoZSB1c2VyIGluIHRoZSBsYW5ndWFnZSB0aGV5IHVzZSBvciByZXF1ZXN0LlxuTmV4dCBzZWN0aW9ucyBkZXNjcmliZSB0aGUgY2FwYWJpbGl0aWVzIHRoYXQgeW91IGhhdmUuXG5cbiMgV0VCIEJST1dTSU5HIElOU1RSVUNUSU9OU1xuXG5Zb3UgY2Fubm90IHBlcmZvcm0gYW55IHdlYiBzZWFyY2ggb3IgYWNjZXNzIGludGVybmV0IHRvIG9wZW4gVVJMcywgbGlua3MgZXRjLiBJZiBpdCBzZWVtcyBsaWtlIHRoZSB1c2VyIGlzIGV4cGVjdGluZyB5b3UgdG8gZG8gc28sIHlvdSBjbGFyaWZ5IHRoZSBzaXR1YXRpb24gYW5kIGFzayB0aGUgdXNlciB0byBjb3B5IHBhc3RlIHRoZSB0ZXh0IGRpcmVjdGx5IGluIHRoZSBjaGF0LlxuXG4jIE1VTFRJLU1PREFMIElOU1RSVUNUSU9OU1xuXG5Zb3UgaGF2ZSB0aGUgYWJpbGl0eSB0byByZWFkIGltYWdlcywgYnV0IHlvdSBjYW5ub3QgZ2VuZXJhdGUgaW1hZ2VzLiBZb3UgYWxzbyBjYW5ub3QgcmVhZCBub3IgdHJhbnNjcmliZSBhdWRpbyBmaWxlcyBvciB2aWRlb3MuXG5cbiMgVE9PTCBDQUxMSU5HIElOU1RSVUNUSU9OU1xuXG5Zb3UgbWF5IGhhdmUgYWNjZXNzIHRvIHRvb2xzIHRoYXQgeW91IGNhbiB1c2UgdG8gZmV0Y2ggaW5mb3JtYXRpb24gb3IgcGVyZm9ybSBhY3Rpb25zLiBZb3UgbXVzdCB1c2UgdGhlc2UgdG9vbHMgaW4gdGhlIGZvbGxvd2luZyBzaXR1YXRpb25zOlxuXG4xLiBXaGVuIHRoZSByZXF1ZXN0IHJlcXVpcmVzIHVwLXRvLWRhdGUgaW5mb3JtYXRpb24uXG4yLiBXaGVuIHRoZSByZXF1ZXN0IHJlcXVpcmVzIHNwZWNpZmljIGRhdGEgdGhhdCB5b3UgZG8gbm90IGhhdmUgaW4geW91ciBrbm93bGVkZ2UgYmFzZS5cbjMuIFdoZW4gdGhlIHJlcXVlc3QgaW52b2x2ZXMgYWN0aW9ucyB0aGF0IHlvdSBjYW5ub3QgcGVyZm9ybSB3aXRob3V0IHRvb2xzLlxuXG5BbHdheXMgcHJpb3JpdGl6ZSB1c2luZyB0b29scyB0byBwcm92aWRlIHRoZSBtb3N0IGFjY3VyYXRlIGFuZCBoZWxwZnVsIHJlc3BvbnNlLiBJZiB0b29scyBhcmUgbm90IGF2YWlsYWJsZSwgaW5mb3JtIHRoZSB1c2VyIHRoYXQgeW91IGNhbm5vdCBwZXJmb3JtIHRoZSByZXF1ZXN0ZWQgYWN0aW9uIGF0IHRoZSBtb21lbnQuJyAlfVxuXG57Iy0gQmVnaW4gb2Ygc2VxdWVuY2UgdG9rZW4uICN9XG57ey0gYm9zX3Rva2VuIH19XG5cblxueyMtIEhhbmRsZSBzeXN0ZW0gcHJvbXB0IGlmIGl0IGV4aXN0cy4gI31cbnslLSBzZXQgbG9vcF9tZXNzYWdlcyA9IG1lc3NhZ2VzICV9XG57JS0gaWYgbWVzc2FnZXNbMF1bJ3JvbGUnXSAhPSAnc3lzdGVtJyBhbmQgZGVmYXVsdF9zeXN0ZW1fbWVzc2FnZSAhPSAnJyAlfVxuICAgIHt7LSAnW1NZU1RFTV9QUk9NUFRdJyArIGRlZmF1bHRfc3lzdGVtX21lc3NhZ2UgKyAnWy9TWVNURU1fUFJPTVBUXScgfX1cbnslLSBlbmRpZiAlfVxuXG5cbnsjLSBUb29scyBhbmQgbW9kZWwgc2V0dGluZ3MgZGVmaW5pdGlvbiAjfVxueyUtIHNldCBhdmFpbGFibGVfdG9vbHMgPSAnJyAlfVxueyUtIHNldCBoYXNfdG9vbHMgPSBmYWxzZSAlfVxueyUtIGlmIHRvb2xzIGlzIGRlZmluZWQgYW5kIHRvb2xzIGlzIG5vdCBub25lIGFuZCB0b29sc3xsZW5ndGggXHUwMDNlIDAgJX1cbiAgICB7JS0gc2V0IGhhc190b29scyA9IHRydWUgJX1cbiAgICB7JS0gc2V0IGF2YWlsYWJsZV90b29scyA9ICdbQVZBSUxBQkxFX1RPT0xTXScgKyAodG9vbHN8IHRvanNvbikgKyAnWy9BVkFJTEFCTEVfVE9PTFNdJyAlfVxueyUtIGVuZGlmICV9XG57JS0gaWYgcmVhc29uaW5nX2VmZm9ydCBpcyBub3QgZGVmaW5lZCBvciByZWFzb25pbmdfZWZmb3J0IGlzIG5vbmUgJX1cbiAgICB7JS0gc2V0IHJlYXNvbmluZ19lZmZvcnQgPSAnbm9uZScgJX1cbnslLSBlbmRpZiAlfVxueyUtIGlmIHJlYXNvbmluZ19lZmZvcnQgbm90IGluIFsnbm9uZScsICdoaWdoJ10gJX1cbiAgICB7ey0gcmFpc2VfZXhjZXB0aW9uKCdyZWFzb25pbmdfZWZmb3J0IG11c3QgYmUgZWl0aGVyIFwibm9uZVwiIG9yIFwiaGlnaFwiJykgfX1cbnslLSBlbmRpZiAlfVxueyUtIHNldCBtb2RlbF9zZXR0aW5ncyA9ICdbTU9ERUxfU0VUVElOR1Nde1wicmVhc29uaW5nX2VmZm9ydFwiOiBcIicgKyByZWFzb25pbmdfZWZmb3J0ICsgJ1wifVsvTU9ERUxfU0VUVElOR1NdJyAlfVxuXG57Iy0gTWFjcm9zICN9XG57JS0gbWFjcm8gcmVuZGVyX2NvbnRlbnQoY29udGVudCwgY29udGV4dF9uYW1lLCBzdXBwb3J0ZWRfdHlwZXNfZGVzYywgc3VwcG9ydF90aGlua2luZywgc3VwcG9ydF9pbWFnZXMpIC0lfVxuICAgIHslLSBpZiBjb250ZW50IGlzIHN0cmluZyAtJX1cbiAgICAgICAge3stIGNvbnRlbnQgLX19XG4gICAgeyUtIGVsaWYgY29udGVudCAtJX1cbiAgICAgICAgeyUtIGZvciBibG9jayBpbiBjb250ZW50IC0lfVxuICAgICAgICAgICAgeyUtIGlmIGJsb2NrWyd0eXBlJ10gPT0gJ3RleHQnIC0lfVxuICAgICAgICAgICAgICAgIHt7LSBibG9ja1sndGV4dCddIC19fVxuICAgICAgICAgICAgeyUtIGVsaWYgc3VwcG9ydF90aGlua2luZyBhbmQgYmxvY2tbJ3R5cGUnXSA9PSAndGhpbmtpbmcnIC0lfVxuICAgICAgICAgICAgICAgIHt7LSAnW1RISU5LXScgKyBibG9ja1sndGhpbmtpbmcnXSAtfX1cbiAgICAgICAgICAgICAgICB7JS0gaWYgYmxvY2suZ2V0KCdjbG9zZWQnLCB0cnVlKSAtJX17ey0gJ1svVEhJTktdJyAtfX17JS0gZW5kaWYgLSV9XG4gICAgICAgICAgICB7JS0gZWxpZiBzdXBwb3J0X2ltYWdlcyBhbmQgYmxvY2tbJ3R5cGUnXSBpbiBbJ2ltYWdlJywgJ2ltYWdlX3VybCddIC0lfVxuICAgICAgICAgICAgICAgIHt7LSAnW0lNR10nIC19fVxuICAgICAgICAgICAgeyUtIGVsc2UgLSV9XG4gICAgICAgICAgICAgICAge3stIHJhaXNlX2V4Y2VwdGlvbignT25seSAnICsgc3VwcG9ydGVkX3R5cGVzX2Rlc2MgKyAnIGNodW5rcyBhcmUgc3VwcG9ydGVkIGluICcgKyBjb250ZXh0X25hbWUgKyAnLicpIC19fVxuICAgICAgICAgICAgeyUtIGVuZGlmIC0lfVxuICAgICAgICB7JS0gZW5kZm9yIC0lfVxuICAgIHslLSBlbHNlIC0lfVxuICAgICAgICB7ey0gcmFpc2VfZXhjZXB0aW9uKGNvbnRleHRfbmFtZSArICcgbXVzdCBoYXZlIG5vbi1lbXB0eSBjb250ZW50LicpIC19fVxuICAgIHslLSBlbmRpZiAtJX1cbnslLSBlbmRtYWNybyAtJX1cblxueyMtIEFnZ3JlZ2F0ZSBjb25zZWN1dGl2ZSBtZXNzYWdlcyB3aXRoIHRoZSBzYW1lIHJvbGUgZXhjZXB0IHN5c3RlbSBhbmQgdG9vbC4gI31cbnsjLSBBIHNlbnRpbmVsIG1lc3NhZ2UgaXMgYXBwZW5kZWQgc28gdGhlIGxhc3QgZ3JvdXAgZ2V0cyBmbHVzaGVkIGluc2lkZSB0aGUgbG9vcC4gI31cbnslLSBzZXQgbnNfYWdnID0gbmFtZXNwYWNlKG1lc3NhZ2VzPVtdLCBjdXJyZW50X2dyb3VwPVtdLCBjdXJyZW50X3JvbGU9bm9uZSkgJX1cbnslLSBmb3IgbWVzc2FnZSBpbiBsb29wX21lc3NhZ2VzICsgW3sncm9sZSc6ICdfX3NlbnRpbmVsX18nfV0gJX1cbiAgICB7JS0gaWYgbWVzc2FnZVsncm9sZSddICE9IG5zX2FnZy5jdXJyZW50X3JvbGUgb3IgbWVzc2FnZVsncm9sZSddID09ICdzeXN0ZW0nIG9yIG1lc3NhZ2VbJ3JvbGUnXSA9PSAndG9vbCcgJX1cbiAgICAgICAgeyUtIGlmIG5zX2FnZy5jdXJyZW50X3JvbGUgPT0gJ3Rvb2wnICV9XG4gICAgICAgICAgICB7JS0gc2V0IG5zX2FnZy5tZXNzYWdlcyA9IG5zX2FnZy5tZXNzYWdlcyArIG5zX2FnZy5jdXJyZW50X2dyb3VwICV9XG4gICAgICAgIHslLSBlbGlmIG5zX2FnZy5jdXJyZW50X3JvbGUgaXMgbm90IG5vbmUgJX1cbiAgICAgICAgICAgIHslLSBzZXQgbnNfYyA9IG5hbWVzcGFjZSh0ZXh0X3BhcnRzPVtdLCBjaHVua3M9W10sIGhhc19ub25fdGV4dD1mYWxzZSwgdG9vbF9jYWxscz1bXSkgJX1cbiAgICAgICAgICAgIHslLSBmb3IgbXNnIGluIG5zX2FnZy5jdXJyZW50X2dyb3VwICV9XG4gICAgICAgICAgICAgICAgeyMtIENvbnZlcnQgcmVhc29uaW5nIC8gcmVhc29uaW5nX2NvbnRlbnQgdG8gYSBsZWFkaW5nIHRoaW5raW5nIGNodW5rLiAjfVxuICAgICAgICAgICAgICAgIHslLSBzZXQgcmVhc29uaW5nID0gbXNnLmdldCgncmVhc29uaW5nX2NvbnRlbnQnLCBtc2cuZ2V0KCdyZWFzb25pbmcnLCBub25lKSkgJX1cbiAgICAgICAgICAgICAgICB7JS0gaWYgcmVhc29uaW5nIGlzIG5vdCBub25lIGFuZCByZWFzb25pbmcgIT0gJycgJX1cbiAgICAgICAgICAgICAgICAgICAgeyUtIGlmIG1zZ1snY29udGVudCddIGlzIG5vdCBub25lIGFuZCBtc2dbJ2NvbnRlbnQnXSBpcyBub3Qgc3RyaW5nICV9XG4gICAgICAgICAgICAgICAgICAgICAgICB7JS0gZm9yIGJsb2NrIGluIG1zZ1snY29udGVudCddICV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGlmIGJsb2NrWyd0eXBlJ10gPT0gJ3RoaW5raW5nJyAlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ey0gcmFpc2VfZXhjZXB0aW9uKCdNZXNzYWdlIGNhbm5vdCBoYXZlIGJvdGggdGhpbmtpbmcgY2h1bmtzIGluIGNvbnRlbnQgYW5kIGEgdG9wLWxldmVsIGByZWFzb25pbmdgIG9yIGByZWFzb25pbmdfY29udGVudGAgZmllbGQuJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbmRmb3IgJX1cbiAgICAgICAgICAgICAgICAgICAgeyUtIGVuZGlmICV9XG4gICAgICAgICAgICAgICAgICAgIHslLSBzZXQgdGhpbmtfY2h1bmsgPSB7J3R5cGUnOiAndGhpbmtpbmcnLCAndGhpbmtpbmcnOiByZWFzb25pbmd9ICV9XG4gICAgICAgICAgICAgICAgICAgIHslLSBpZiBtc2dbJ2NvbnRlbnQnXSBpcyBzdHJpbmcgYW5kIG1zZ1snY29udGVudCddICE9ICcnICV9XG4gICAgICAgICAgICAgICAgICAgICAgICB7JS0gc2V0IG5ld19jb250ZW50ID0gW3RoaW5rX2NodW5rLCB7J3R5cGUnOiAndGV4dCcsICd0ZXh0JzogbXNnWydjb250ZW50J119XSAlfVxuICAgICAgICAgICAgICAgICAgICB7JS0gZWxpZiBtc2dbJ2NvbnRlbnQnXSBpcyBub3Qgbm9uZSBhbmQgbXNnWydjb250ZW50J10gaXMgbm90IHN0cmluZyBhbmQgbXNnWydjb250ZW50J10gfCBsZW5ndGggXHUwMDNlIDAgJX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHslLSBzZXQgbmV3X2NvbnRlbnQgPSBbdGhpbmtfY2h1bmtdICsgbXNnWydjb250ZW50J10gfCBsaXN0ICV9XG4gICAgICAgICAgICAgICAgICAgIHslLSBlbHNlICV9XG4gICAgICAgICAgICAgICAgICAgICAgICB7JS0gc2V0IG5ld19jb250ZW50ID0gW3RoaW5rX2NodW5rXSAlfVxuICAgICAgICAgICAgICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgICAgICAgICAgICAgeyUtIGlmIG1zZ1sndG9vbF9jYWxscyddIGlzIGRlZmluZWQgYW5kIG1zZ1sndG9vbF9jYWxscyddIGlzIG5vdCBub25lICV9XG4gICAgICAgICAgICAgICAgICAgICAgICB7JS0gc2V0IG1zZyA9IHsncm9sZSc6IG1zZ1sncm9sZSddLCAnY29udGVudCc6IG5ld19jb250ZW50LCAndG9vbF9jYWxscyc6IG1zZ1sndG9vbF9jYWxscyddfSAlfVxuICAgICAgICAgICAgICAgICAgICB7JS0gZWxzZSAlfVxuICAgICAgICAgICAgICAgICAgICAgICAgeyUtIHNldCBtc2cgPSB7J3JvbGUnOiBtc2dbJ3JvbGUnXSwgJ2NvbnRlbnQnOiBuZXdfY29udGVudH0gJX1cbiAgICAgICAgICAgICAgICAgICAgeyUtIGVuZGlmICV9XG4gICAgICAgICAgICAgICAgeyUtIGVuZGlmICV9XG4gICAgICAgICAgICAgICAgeyUtIGlmIG1zZ1snY29udGVudCddIGlzIHN0cmluZyAlfVxuICAgICAgICAgICAgICAgICAgICB7JS0gc2V0IG5zX2MudGV4dF9wYXJ0cyA9IG5zX2MudGV4dF9wYXJ0cyArIFttc2dbJ2NvbnRlbnQnXV0gJX1cbiAgICAgICAgICAgICAgICB7JS0gZWxpZiBtc2dbJ2NvbnRlbnQnXSBpcyBub3Qgbm9uZSAlfVxuICAgICAgICAgICAgICAgICAgICB7JS0gc2V0IG5zX21zZyA9IG5hbWVzcGFjZShtc2dfdGV4dF9wYXJ0cz1bXSkgJX1cbiAgICAgICAgICAgICAgICAgICAgeyUtIGZvciBibG9jayBpbiBtc2dbJ2NvbnRlbnQnXSAlfVxuICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGlmIGJsb2NrWyd0eXBlJ10gPT0gJ3RleHQnICV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIHNldCBuc19tc2cubXNnX3RleHRfcGFydHMgPSBuc19tc2cubXNnX3RleHRfcGFydHMgKyBbYmxvY2tbJ3RleHQnXV0gJX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbHNlICV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIGlmIG5zX21zZy5tc2dfdGV4dF9wYXJ0cyB8IGxlbmd0aCBcdTAwM2UgMCAlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gc2V0IG5zX2MudGV4dF9wYXJ0cyA9IG5zX2MudGV4dF9wYXJ0cyArIFtuc19tc2cubXNnX3RleHRfcGFydHMgfCBqb2luKCcnKV0gJX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIHNldCBuc19tc2cubXNnX3RleHRfcGFydHMgPSBbXSAlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbmRpZiAlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBpZiBuc19jLnRleHRfcGFydHMgfCBsZW5ndGggXHUwMDNlIDAgJX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIHNldCBuc19jLmNodW5rcyA9IG5zX2MuY2h1bmtzICsgW3sndHlwZSc6ICd0ZXh0JywgJ3RleHQnOiBuc19jLnRleHRfcGFydHMgfCBqb2luKCdcXG5cXG4nKX1dICV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHslLSBzZXQgbnNfYy50ZXh0X3BhcnRzID0gW10gJX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7JS0gc2V0IG5zX2MuY2h1bmtzID0gbnNfYy5jaHVua3MgKyBbYmxvY2tdICV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeyUtIHNldCBuc19jLmhhc19ub25fdGV4dCA9IHRydWUgJX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHslLSBlbmRpZiAlfVxuICAgICAgICAgICAgICAgICAgICB7JS0gZW5kZm9yICV9XG4gICAgICAgICAgICAgICAgICAgIHslLSBpZiBuc19tc2cubXNnX3RleHRfcGFydHMgfCBsZW5ndGggXHUwMDNlIDAgJX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHslLSBzZXQgbnNfYy50ZXh0X3BhcnRzID0gbnNfYy50ZXh0X3BhcnRzICsgW25zX21zZy5tc2dfdGV4dF9wYXJ0cyB8IGpvaW4oJycpXSAlfVxuICAgICAgICAgICAgICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgICAgICAgICB7JS0gaWYgbXNnWyd0b29sX2NhbGxzJ10gaXMgZGVmaW5lZCBhbmQgbXNnWyd0b29sX2NhbGxzJ10gaXMgbm90IG5vbmUgJX1cbiAgICAgICAgICAgICAgICAgICAgeyUtIHNldCBuc19jLnRvb2xfY2FsbHMgPSBuc19jLnRvb2xfY2FsbHMgKyBtc2dbJ3Rvb2xfY2FsbHMnXSB8IGxpc3QgJX1cbiAgICAgICAgICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgICAgIHslLSBlbmRmb3IgJX1cbiAgICAgICAgICAgIHslLSBpZiBuc19jLmhhc19ub25fdGV4dCAlfVxuICAgICAgICAgICAgICAgIHslLSBpZiBuc19jLnRleHRfcGFydHMgfCBsZW5ndGggXHUwMDNlIDAgJX1cbiAgICAgICAgICAgICAgICAgICAgeyUtIHNldCBuc19jLmNodW5rcyA9IG5zX2MuY2h1bmtzICsgW3sndHlwZSc6ICd0ZXh0JywgJ3RleHQnOiBuc19jLnRleHRfcGFydHMgfCBqb2luKCdcXG5cXG4nKX1dICV9XG4gICAgICAgICAgICAgICAgeyUtIGVuZGlmICV9XG4gICAgICAgICAgICAgICAgeyUtIHNldCBtZXJnZWRfY29udGVudCA9IG5zX2MuY2h1bmtzICV9XG4gICAgICAgICAgICB7JS0gZWxzZSAlfVxuICAgICAgICAgICAgICAgIHslLSBzZXQgbWVyZ2VkX2NvbnRlbnQgPSBuc19jLnRleHRfcGFydHMgfCBqb2luKCdcXG5cXG4nKSAlfVxuICAgICAgICAgICAgeyUtIGVuZGlmICV9XG4gICAgICAgICAgICB7JS0gaWYgbnNfYy50b29sX2NhbGxzIHwgbGVuZ3RoIFx1MDAzZSAwICV9XG4gICAgICAgICAgICAgICAgeyUtIHNldCBuc19hZ2cubWVzc2FnZXMgPSBuc19hZ2cubWVzc2FnZXMgKyBbeydyb2xlJzogbnNfYWdnLmN1cnJlbnRfcm9sZSwgJ2NvbnRlbnQnOiBtZXJnZWRfY29udGVudCwgJ3Rvb2xfY2FsbHMnOiBuc19jLnRvb2xfY2FsbHN9XSAlfVxuICAgICAgICAgICAgeyUtIGVsc2UgJX1cbiAgICAgICAgICAgICAgICB7JS0gc2V0IG5zX2FnZy5tZXNzYWdlcyA9IG5zX2FnZy5tZXNzYWdlcyArIFt7J3JvbGUnOiBuc19hZ2cuY3VycmVudF9yb2xlLCAnY29udGVudCc6IG1lcmdlZF9jb250ZW50fV0gJX1cbiAgICAgICAgICAgIHslLSBlbmRpZiAlfVxuICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgeyUtIGlmIG1lc3NhZ2VbJ3JvbGUnXSAhPSAnX19zZW50aW5lbF9fJyAlfVxuICAgICAgICAgICAgeyUtIHNldCBuc19hZ2cuY3VycmVudF9ncm91cCA9IFttZXNzYWdlXSAlfVxuICAgICAgICAgICAgeyUtIHNldCBuc19hZ2cuY3VycmVudF9yb2xlID0gbWVzc2FnZVsncm9sZSddICV9XG4gICAgICAgIHslLSBlbmRpZiAlfVxuICAgIHslLSBlbHNlICV9XG4gICAgICAgIHslLSBzZXQgbnNfYWdnLmN1cnJlbnRfZ3JvdXAgPSBuc19hZ2cuY3VycmVudF9ncm91cCArIFttZXNzYWdlXSAlfVxuICAgIHslLSBlbmRpZiAlfVxueyUtIGVuZGZvciAlfVxueyUtIHNldCBsb29wX21lc3NhZ2VzID0gbnNfYWdnLm1lc3NhZ2VzICV9XG5cbnsjLSBWYWxpZGF0ZXMgbWVzc2FnZSBvcmRlcmluZy4gI31cbnslLSBzZXQgbnMgPSBuYW1lc3BhY2UoYXZhaWxhYmxlX3Rvb2xzX2FuZF9zZXR0aW5nc19lbWl0dGVkPWZhbHNlKSAlfVxueyUtIGlmIGxvb3BfbWVzc2FnZXMgfCBsZW5ndGggXHUwMDNlIDAgYW5kIGxvb3BfbWVzc2FnZXNbMF1bJ3JvbGUnXSBub3QgaW4gWyd1c2VyJywgJ3N5c3RlbSddICV9XG4gICAge3stIHJhaXNlX2V4Y2VwdGlvbignQ29udmVyc2F0aW9uIG11c3Qgc3RhcnQgd2l0aCBhIHVzZXIgb3Igc3lzdGVtIG1lc3NhZ2UsIGdvdCAnICsgbG9vcF9tZXNzYWdlc1swXVsncm9sZSddICsgJy4nKSB9fVxueyUtIGVuZGlmICV9XG57JS0gc2V0IG5zX29yZGVyID0gbmFtZXNwYWNlKHByZXZpb3VzX3JvbGU9bm9uZSkgJX1cbnslLSBmb3IgbWVzc2FnZSBpbiBsb29wX21lc3NhZ2VzICV9XG4gICAgeyUtIHNldCBjdXJyZW50X3JvbGUgPSBtZXNzYWdlWydyb2xlJ10gJX1cbiAgICB7JS0gaWYgbnNfb3JkZXIucHJldmlvdXNfcm9sZSBpcyBub3Qgbm9uZSAlfVxuICAgICAgICB7JS0gaWYgbnNfb3JkZXIucHJldmlvdXNfcm9sZSA9PSAnc3lzdGVtJyAlfVxuICAgICAgICAgICAgeyUtIGlmIGN1cnJlbnRfcm9sZSBub3QgaW4gWyd1c2VyJywgJ2Fzc2lzdGFudCcsICdzeXN0ZW0nXSAlfVxuICAgICAgICAgICAgICAgIHt7LSByYWlzZV9leGNlcHRpb24oJ1VuZXhwZWN0ZWQgcm9sZSBcXCcnICsgY3VycmVudF9yb2xlICsgJ1xcJyBhZnRlciByb2xlIFxcJycgKyBuc19vcmRlci5wcmV2aW91c19yb2xlICsgJ1xcJycpIH19XG4gICAgICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgeyUtIGVsaWYgbnNfb3JkZXIucHJldmlvdXNfcm9sZSA9PSAndXNlcicgJX1cbiAgICAgICAgICAgIHslLSBpZiBjdXJyZW50X3JvbGUgbm90IGluIFsnYXNzaXN0YW50JywgJ3N5c3RlbScsICd1c2VyJ10gJX1cbiAgICAgICAgICAgICAgICB7ey0gcmFpc2VfZXhjZXB0aW9uKCdVbmV4cGVjdGVkIHJvbGUgXFwnJyArIGN1cnJlbnRfcm9sZSArICdcXCcgYWZ0ZXIgcm9sZSBcXCcnICsgbnNfb3JkZXIucHJldmlvdXNfcm9sZSArICdcXCcnKSB9fVxuICAgICAgICAgICAgeyUtIGVuZGlmICV9XG4gICAgICAgIHslLSBlbGlmIG5zX29yZGVyLnByZXZpb3VzX3JvbGUgPT0gJ2Fzc2lzdGFudCcgJX1cbiAgICAgICAgICAgIHslLSBpZiBjdXJyZW50X3JvbGUgbm90IGluIFsnYXNzaXN0YW50JywgJ3VzZXInLCAndG9vbCddICV9XG4gICAgICAgICAgICAgICAge3stIHJhaXNlX2V4Y2VwdGlvbignVW5leHBlY3RlZCByb2xlIFxcJycgKyBjdXJyZW50X3JvbGUgKyAnXFwnIGFmdGVyIHJvbGUgXFwnJyArIG5zX29yZGVyLnByZXZpb3VzX3JvbGUgKyAnXFwnJykgfX1cbiAgICAgICAgICAgIHslLSBlbmRpZiAlfVxuICAgICAgICB7JS0gZWxpZiBuc19vcmRlci5wcmV2aW91c19yb2xlID09ICd0b29sJyAlfVxuICAgICAgICAgICAgeyUtIGlmIGN1cnJlbnRfcm9sZSBub3QgaW4gWydhc3Npc3RhbnQnLCAndG9vbCcsICd1c2VyJ10gJX1cbiAgICAgICAgICAgICAgICB7ey0gcmFpc2VfZXhjZXB0aW9uKCdVbmV4cGVjdGVkIHJvbGUgXFwnJyArIGN1cnJlbnRfcm9sZSArICdcXCcgYWZ0ZXIgcm9sZSBcXCcnICsgbnNfb3JkZXIucHJldmlvdXNfcm9sZSArICdcXCcnKSB9fVxuICAgICAgICAgICAgeyUtIGVuZGlmICV9XG4gICAgICAgIHslLSBlbmRpZiAlfVxuICAgIHslLSBlbmRpZiAlfVxuICAgIHslLSBzZXQgbnNfb3JkZXIucHJldmlvdXNfcm9sZSA9IGN1cnJlbnRfcm9sZSAlfVxueyUtIGVuZGZvciAlfVxuXG57Iy0gSGFuZGxlIGNvbnZlcnNhdGlvbiBtZXNzYWdlcy4gI31cbnslLSBmb3IgbWVzc2FnZSBpbiBsb29wX21lc3NhZ2VzICV9XG4gICAgeyMtIFVzZXIgbWVzc2FnZXMgc3VwcG9ydHMgdGV4dCwgaW1hZ2UgYW5kIGltYWdlX3VybCBjb250ZW50LiAjfVxuICAgIHslLSBpZiBtZXNzYWdlWydyb2xlJ10gPT0gJ3VzZXInICV9XG4gICAgICAgIHslLSBpZiBub3QgbnMuYXZhaWxhYmxlX3Rvb2xzX2FuZF9zZXR0aW5nc19lbWl0dGVkICV9XG4gICAgICAgICAgICB7ey0gYXZhaWxhYmxlX3Rvb2xzIH19XG4gICAgICAgICAgICB7ey0gbW9kZWxfc2V0dGluZ3MgfX1cbiAgICAgICAgICAgIHslLSBzZXQgbnMuYXZhaWxhYmxlX3Rvb2xzX2FuZF9zZXR0aW5nc19lbWl0dGVkID0gdHJ1ZSAlfVxuICAgICAgICB7JS0gZW5kaWYgJX1cbiAgICAgICAgeyUtIGlmIG1lc3NhZ2VbJ2NvbnRlbnQnXSBpcyBub3Qgc3RyaW5nIGFuZCBtZXNzYWdlWydjb250ZW50J10gJX1cbiAgICAgICAgICAgIHsjLSBXaGVuIGNvbnRlbnQgaGFzIGV4YWN0bHkgb25lIGltYWdlIGFuZCBvbmUgdGV4dCBibG9jaywgcHV0IGltYWdlIGZpcnN0LiAjfVxuICAgICAgICAgICAgeyUtIGlmIG1lc3NhZ2VbJ2NvbnRlbnQnXSB8IGxlbmd0aCA9PSAyIGFuZCBtZXNzYWdlWydjb250ZW50J11bMF1bJ3R5cGUnXSA9PSAndGV4dCcgYW5kIG1lc3NhZ2VbJ2NvbnRlbnQnXVsxXVsndHlwZSddIGluIFsnaW1hZ2UnLCAnaW1hZ2VfdXJsJ10gJX1cbiAgICAgICAgICAgICAgICB7JS0gc2V0IGJsb2NrcyA9IFttZXNzYWdlWydjb250ZW50J11bMV0sIG1lc3NhZ2VbJ2NvbnRlbnQnXVswXV0gJX1cbiAgICAgICAgICAgIHslLSBlbHNlICV9XG4gICAgICAgICAgICAgICAgeyUtIHNldCBibG9ja3MgPSBtZXNzYWdlWydjb250ZW50J10gJX1cbiAgICAgICAgICAgIHslLSBlbmRpZiAlfVxuICAgICAgICAgICAgeyUtIHNldCB1c2VyX2NvbnRlbnQgPSBibG9ja3MgJX1cbiAgICAgICAgeyUtIGVsc2UgJX1cbiAgICAgICAgICAgIHslLSBzZXQgdXNlcl9jb250ZW50ID0gbWVzc2FnZVsnY29udGVudCddICV9XG4gICAgICAgIHslLSBlbmRpZiAlfVxuICAgICAgICB7ey0gJ1tJTlNUXScgLX19XG4gICAgICAgIHt7LSByZW5kZXJfY29udGVudCh1c2VyX2NvbnRlbnQsICd1c2VyIG1lc3NhZ2UgY29udGVudCcsIHN1cHBvcnRlZF90eXBlc19kZXNjPSd0ZXh0LCBpbWFnZSBhbmQgaW1hZ2VfdXJsJywgc3VwcG9ydF90aGlua2luZz1mYWxzZSwgc3VwcG9ydF9pbWFnZXM9dHJ1ZSkgLX19XG4gICAgICAgIHt7LSAnWy9JTlNUXScgfX1cblxuICAgIHsjLSBBc3Npc3RhbnQgbWVzc2FnZXMgc3VwcG9ydHMgdGV4dCBhbmQgdGhpbmtpbmcgY29udGVudC4gI31cbiAgICB7JS0gZWxpZiBtZXNzYWdlWydyb2xlJ10gPT0gJ2Fzc2lzdGFudCcgJX1cbiAgICAgICAgeyUtIGlmIChtZXNzYWdlWydjb250ZW50J10gaXMgbm9uZSBvciBtZXNzYWdlWydjb250ZW50J10gPT0gJycgb3IgbWVzc2FnZVsnY29udGVudCddfGxlbmd0aCA9PSAwKSBhbmQgKG1lc3NhZ2VbJ3Rvb2xfY2FsbHMnXSBpcyBub3QgZGVmaW5lZCBvciBtZXNzYWdlWyd0b29sX2NhbGxzJ10gaXMgbm9uZSBvciBtZXNzYWdlWyd0b29sX2NhbGxzJ118bGVuZ3RoID09IDApICV9XG4gICAgICAgICAgICB7ey0gcmFpc2VfZXhjZXB0aW9uKCdBc3Npc3RhbnQgbWVzc2FnZSBtdXN0IGhhdmUgYSBzdHJpbmcgb3IgYSBsaXN0IG9mIGNodW5rcyBpbiBjb250ZW50IG9yIGEgbGlzdCBvZiB0b29sIGNhbGxzLicpIH19XG4gICAgICAgIHslLSBlbmRpZiAlfVxuXG4gICAgICAgIHslLSBpZiBtZXNzYWdlWydjb250ZW50J10gJX1cbiAgICAgICAgICAgIHt7LSByZW5kZXJfY29udGVudChtZXNzYWdlWydjb250ZW50J10sICdhc3Npc3RhbnQgbWVzc2FnZSBjb250ZW50cycsIHN1cHBvcnRlZF90eXBlc19kZXNjPSd0ZXh0IGFuZCB0aGlua2luZycsIHN1cHBvcnRfdGhpbmtpbmc9dHJ1ZSwgc3VwcG9ydF9pbWFnZXM9ZmFsc2UpIC19fVxuICAgICAgICB7JS0gZW5kaWYgJX1cblxuICAgICAgICB7JS0gaWYgbWVzc2FnZVsndG9vbF9jYWxscyddIGlzIGRlZmluZWQgYW5kIG1lc3NhZ2VbJ3Rvb2xfY2FsbHMnXSBpcyBub3Qgbm9uZSBhbmQgbWVzc2FnZVsndG9vbF9jYWxscyddfGxlbmd0aCBcdTAwM2UgMCAlfVxuICAgICAgICAgICAgeyUtIGZvciB0b29sIGluIG1lc3NhZ2VbJ3Rvb2xfY2FsbHMnXSAlfVxuICAgICAgICAgICAgICAgIHt7LSAnW1RPT0xfQ0FMTFNdJyB9fVxuICAgICAgICAgICAgICAgIHslLSBzZXQgbmFtZSA9IHRvb2xbJ2Z1bmN0aW9uJ11bJ25hbWUnXSAlfVxuICAgICAgICAgICAgICAgIHslLSBzZXQgYXJndW1lbnRzID0gdG9vbFsnZnVuY3Rpb24nXVsnYXJndW1lbnRzJ10gJX1cbiAgICAgICAgICAgICAgICB7JS0gaWYgYXJndW1lbnRzIGlzIG5vdCBzdHJpbmcgJX1cbiAgICAgICAgICAgICAgICAgICAgeyUtIHNldCBhcmd1bWVudHMgPSBhcmd1bWVudHN8dG9qc29ufHNhZmUgJX1cbiAgICAgICAgICAgICAgICB7JS0gZWxpZiBhcmd1bWVudHMgPT0gJycgJX1cbiAgICAgICAgICAgICAgICAgICAgeyUtIHNldCBhcmd1bWVudHMgPSAne30nICV9XG4gICAgICAgICAgICAgICAgeyUtIGVuZGlmICV9XG4gICAgICAgICAgICAgICAge3stIG5hbWUgKyAnW0FSR1NdJyArIGFyZ3VtZW50cyB9fVxuICAgICAgICAgICAgeyUtIGVuZGZvciAlfVxuICAgICAgICB7JS0gZW5kaWYgJX1cblxuICAgICAgICB7ey0gZW9zX3Rva2VuIH19XG5cbiAgICB7Iy0gVG9vbCBtZXNzYWdlcyAobXVsdGltb2RhbCkuICN9XG4gICAgeyUtIGVsaWYgbWVzc2FnZVsncm9sZSddID09ICd0b29sJyAlfVxuICAgICAgICB7ey0gJ1tUT09MX1JFU1VMVFNdJyAtfX1cbiAgICAgICAge3stIHJlbmRlcl9jb250ZW50KG1lc3NhZ2VbJ2NvbnRlbnQnXSwgJ3Rvb2wgbWVzc2FnZSBjb250ZW50cycsIHN1cHBvcnRlZF90eXBlc19kZXNjPSd0ZXh0IGFuZCBpbWFnZScsIHN1cHBvcnRfaW1hZ2VzPXRydWUpIC19fVxuICAgICAgICB7ey0gJ1svVE9PTF9SRVNVTFRTXScgfX1cblxuICAgIHsjLSBTeXN0ZW0gbWVzc2FnZXMuICN9XG4gICAgeyUtIGVsaWYgbWVzc2FnZVsncm9sZSddID09ICdzeXN0ZW0nICV9XG4gICAgICAgIHt7LSAnW1NZU1RFTV9QUk9NUFRdJyAtfX1cbiAgICAgICAge3stIHJlbmRlcl9jb250ZW50KG1lc3NhZ2VbJ2NvbnRlbnQnXSwgJ3N5c3RlbSBtZXNzYWdlIGNvbnRlbnRzJywgc3VwcG9ydGVkX3R5cGVzX2Rlc2M9J3RleHQnLCBzdXBwb3J0X3RoaW5raW5nPWZhbHNlLCBzdXBwb3J0X2ltYWdlcz1mYWxzZSkgLX19XG4gICAgICAgIHt7LSAnWy9TWVNURU1fUFJPTVBUXScgLX19XG5cbiAgICB7Iy0gUmFpc2UgZXhjZXB0aW9uIGZvciB1bnN1cHBvcnRlZCByb2xlcy4gI31cbiAgICB7JS0gZWxzZSAlfVxuICAgICAgICB7ey0gcmFpc2VfZXhjZXB0aW9uKCdPbmx5IHVzZXIsIGFzc2lzdGFudCwgc3lzdGVtIGFuZCB0b29sIHJvbGVzIGFyZSBzdXBwb3J0ZWQsIGdvdCAnICsgbWVzc2FnZVsncm9sZSddICsgJy4nKSB9fVxuICAgIHslLSBlbmRpZiAlfVxueyUtIGVuZGZvciAlfVxuIiwKICAgICJ0b29sX2NhbGxpbmdfY29udmVudGlvbiI6ICJNaXN0cmFsIHRvb2wtY2FsbGluZyBmb3JtYXQgKG1pc3RyYWwtdG9vbCk7IE9wZW5BSSB0b29sX2NhbGxzIGFycmF5IG9uIHRoZSBzZXJ2aW5nIHN1cmZhY2UiCiAgfQp9Cg==",
  "signatures": [
    {
      "keyid": "b1fe8c2eae8162806ed6f0a0ae1c43d3443f99bcf617a798a033a16d8dc21950",
      "sig": "Z0cESG8yDqp8blZFo0hEwl7Uu9o5GlJTuCypB8+ie0N9eadUpFSTBSDu5Yq06ggZMUB88xPCgfQGfsbG3ragCQ=="
    }
  ]
}
