1688054432
waR3U4bTeM%3A410a7d5cedaed4a70314ea4081f9ce33-ad6f54403f4bb11c8b59395f7968a88f
s:277236:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTQ6IlN0b3JlcyB0aGUgY29uZmlndXJhdGlvbiB1c2VkIHRvIHJ1biBQSFBDUyBhbmQgUEhQQ0JGLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMTk6IlBhcnNlcyB0aGUgY29tbWFuZCBsaW5lIHRvIGRldGVybWluZSB1c2VyIHN1cHBsaWVkIHZhbHVlcwphbmQgcHJvdmlkZXMgZnVuY3Rpb25zIHRvIGFjY2VzcyBkYXRhIHN0b3JlZCBpbiBjb25maWcgZmlsZXMuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjEzOiJHcmVnIFNoZXJ3b29kIjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjE5OiJnc2hlcndvb2RAc3F1aXoubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ0OiIyMDA2LTIwMTUgU3F1aXogUHR5IEx0ZCAoQUJOIDc3IDA4NCA2NzAgNjAwKSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6ODA6Imh0dHBzOi8vZ2l0aHViLmNvbS9zcXVpemxhYnMvUEhQX0NvZGVTbmlmZmVyL2Jsb2IvbWFzdGVyL2xpY2VuY2UudHh0IEJTRCBMaWNlbmNlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJhZDZmNTQ0MDNmNGJiMTFjOGI1OTM5NWY3OTY4YTg4ZiI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEwOiJDb25maWcucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NDc6InZlbmRvci9zcXVpemxhYnMvcGhwX2NvZGVzbmlmZmVyL3NyYy9Db25maWcucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czo2NjA1MDoiPD9waHAKLyoqCiAqIFN0b3JlcyB0aGUgY29uZmlndXJhdGlvbiB1c2VkIHRvIHJ1biBQSFBDUyBhbmQgUEhQQ0JGLgogKgogKiBQYXJzZXMgdGhlIGNvbW1hbmQgbGluZSB0byBkZXRlcm1pbmUgdXNlciBzdXBwbGllZCB2YWx1ZXMKICogYW5kIHByb3ZpZGVzIGZ1bmN0aW9ucyB0byBhY2Nlc3MgZGF0YSBzdG9yZWQgaW4gY29uZmlnIGZpbGVzLgogKgogKiBAYXV0aG9yICAgIEdyZWcgU2hlcndvb2QgPGdzaGVyd29vZEBzcXVpei5uZXQ+CiAqIEBjb3B5cmlnaHQgMjAwNi0yMDE1IFNxdWl6IFB0eSBMdGQgKEFCTiA3NyAwODQgNjcwIDYwMCkKICogQGxpY2Vuc2UgICBodHRwczovL2dpdGh1Yi5jb20vc3F1aXpsYWJzL1BIUF9Db2RlU25pZmZlci9ibG9iL21hc3Rlci9saWNlbmNlLnR4dCBCU0QgTGljZW5jZQogKi8KCm5hbWVzcGFjZSBQSFBfQ29kZVNuaWZmZXI7Cgp1c2UgUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb247CnVzZSBQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xSdW50aW1lRXhjZXB0aW9uOwp1c2UgUEhQX0NvZGVTbmlmZmVyXFV0aWxcQ29tbW9uOwoKLyoqCiAqIFN0b3JlcyB0aGUgY29uZmlndXJhdGlvbiB1c2VkIHRvIHJ1biBQSFBDUyBhbmQgUEhQQ0JGLgogKgogKiBAcHJvcGVydHkgc3RyaW5nW10gJGZpbGVzICAgICAgICAgICBUaGUgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRvIGNoZWNrLgogKiBAcHJvcGVydHkgc3RyaW5nW10gJHN0YW5kYXJkcyAgICAgICBUaGUgc3RhbmRhcmRzIGJlaW5nIHVzZWQgZm9yIGNoZWNraW5nLgogKiBAcHJvcGVydHkgaW50ICAgICAgJHZlcmJvc2l0eSAgICAgICBIb3cgdmVyYm9zZSB0aGUgb3V0cHV0IHNob3VsZCBiZS4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDogbm8gdW5uZWNlc3Nhcnkgb3V0cHV0CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE6IGJhc2ljIG91dHB1dCBmb3IgZmlsZXMgYmVpbmcgY2hlY2tlZAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOiBydWxlc2V0IGFuZCBmaWxlIHBhcnNpbmcgb3V0cHV0CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM6IHNuaWZmIGV4ZWN1dGlvbiBvdXRwdXQKICogQHByb3BlcnR5IGJvb2wgICAgICRpbnRlcmFjdGl2ZSAgICAgRW5hYmxlIGludGVyYWN0aXZlIGNoZWNraW5nIG1vZGUuCiAqIEBwcm9wZXJ0eSBib29sICAgICAkcGFyYWxsZWwgICAgICAgIENoZWNrIGZpbGVzIGluIHBhcmFsbGVsLgogKiBAcHJvcGVydHkgYm9vbCAgICAgJGNhY2hlICAgICAgICAgICBFbmFibGUgdGhlIHVzZSBvZiB0aGUgZmlsZSBjYWNoZS4KICogQHByb3BlcnR5IGJvb2wgICAgICRjYWNoZUZpbGUgICAgICAgQSBmaWxlIHdoZXJlIHRoZSBjYWNoZSBkYXRhIHNob3VsZCBiZSB3cml0dGVuCiAqIEBwcm9wZXJ0eSBib29sICAgICAkY29sb3JzICAgICAgICAgIERpc3BsYXkgY29sb3VycyBpbiBvdXRwdXQuCiAqIEBwcm9wZXJ0eSBib29sICAgICAkZXhwbGFpbiAgICAgICAgIEV4cGxhaW4gdGhlIGNvZGluZyBzdGFuZGFyZHMuCiAqIEBwcm9wZXJ0eSBib29sICAgICAkbG9jYWwgICAgICAgICAgIFByb2Nlc3MgbG9jYWwgZmlsZXMgaW4gZGlyZWN0b3JpZXMgb25seSAobm8gcmVjdXJzaW9uKS4KICogQHByb3BlcnR5IGJvb2wgICAgICRzaG93U291cmNlcyAgICAgU2hvdyBzbmlmZiBzb3VyY2UgY29kZXMgaW4gcmVwb3J0IG91dHB1dC4KICogQHByb3BlcnR5IGJvb2wgICAgICRzaG93UHJvZ3Jlc3MgICAgU2hvdyBiYXNpYyBwcm9ncmVzcyBpbmZvcm1hdGlvbiB3aGlsZSBydW5uaW5nLgogKiBAcHJvcGVydHkgYm9vbCAgICAgJHF1aWV0ICAgICAgICAgICBRdWlldCBtb2RlOyBkaXNhYmxlcyBwcm9ncmVzcyBhbmQgdmVyYm9zZSBvdXRwdXQuCiAqIEBwcm9wZXJ0eSBib29sICAgICAkYW5ub3RhdGlvbnMgICAgIFByb2Nlc3MgcGhwY3M6IGFubm90YXRpb25zLgogKiBAcHJvcGVydHkgaW50ICAgICAgJHRhYldpZHRoICAgICAgICBIb3cgbWFueSBzcGFjZXMgZWFjaCB0YWIgaXMgd29ydGguCiAqIEBwcm9wZXJ0eSBzdHJpbmcgICAkZW5jb2RpbmcgICAgICAgIFRoZSBlbmNvZGluZyBvZiB0aGUgZmlsZXMgYmVpbmcgY2hlY2tlZC4KICogQHByb3BlcnR5IHN0cmluZ1tdICRzbmlmZnMgICAgICAgICAgVGhlIHNuaWZmcyB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciBjaGVja2luZy4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgZW1wdHksIGFsbCBzbmlmZnMgaW4gdGhlIHN1cHBsaWVkIHN0YW5kYXJkcyB3aWxsIGJlIHVzZWQuCiAqIEBwcm9wZXJ0eSBzdHJpbmdbXSAkZXhjbHVkZSAgICAgICAgIFRoZSBzbmlmZnMgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBjaGVja2luZy4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgZW1wdHksIGFsbCBzbmlmZnMgaW4gdGhlIHN1cHBsaWVkIHN0YW5kYXJkcyB3aWxsIGJlIHVzZWQuCiAqIEBwcm9wZXJ0eSBzdHJpbmdbXSAkaWdub3JlZCAgICAgICAgIFJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNlZCB0byBpZ25vcmUgZmlsZXMgYW5kIGZvbGRlcnMgZHVyaW5nIGNoZWNraW5nLgogKiBAcHJvcGVydHkgc3RyaW5nICAgJHJlcG9ydEZpbGUgICAgICBBIGZpbGUgd2hlcmUgdGhlIHJlcG9ydCBvdXRwdXQgc2hvdWxkIGJlIHdyaXR0ZW4uCiAqIEBwcm9wZXJ0eSBzdHJpbmcgICAkZ2VuZXJhdG9yICAgICAgIFRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvciB0byB1c2UuCiAqIEBwcm9wZXJ0eSBzdHJpbmcgICAkZmlsdGVyICAgICAgICAgIFRoZSBmaWx0ZXIgdG8gdXNlIGZvciB0aGUgcnVuLgogKiBAcHJvcGVydHkgc3RyaW5nW10gJGJvb3RzdHJhcCAgICAgICBPbmUgb2YgbW9yZSBmaWxlcyB0byBpbmNsdWRlIGJlZm9yZSB0aGUgcnVuIGJlZ2lucy4KICogQHByb3BlcnR5IGludCAgICAgICRyZXBvcnRXaWR0aCAgICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbHVtbnMgdGhhdCByZXBvcnRzIHNob3VsZCB1c2UgZm9yIG91dHB1dC4KICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IHRvICJhdXRvIiBmb3IgaGF2ZSB0aGlzIHZhbHVlIGNoYW5nZWQgdG8gdGhlIHdpZHRoIG9mIHRoZSB0ZXJtaW5hbC4KICogQHByb3BlcnR5IGludCAgICAgICRlcnJvclNldmVyaXR5ICAgVGhlIG1pbmltdW0gc2V2ZXJpdHkgYW4gZXJyb3IgbXVzdCBoYXZlIHRvIGJlIGRpc3BsYXllZC4KICogQHByb3BlcnR5IGludCAgICAgICR3YXJuaW5nU2V2ZXJpdHkgVGhlIG1pbmltdW0gc2V2ZXJpdHkgYSB3YXJuaW5nIG11c3QgaGF2ZSB0byBiZSBkaXNwbGF5ZWQuCiAqIEBwcm9wZXJ0eSBib29sICAgICAkcmVjb3JkRXJyb3JzICAgIFJlY29yZCB0aGUgY29udGVudCBvZiBlcnJvciBtZXNzYWdlcyBhcyB3ZWxsIGFzIGVycm9yIGNvdW50cy4KICogQHByb3BlcnR5IHN0cmluZyAgICRzdWZmaXggICAgICAgICAgQSBzdWZmaXggdG8gYWRkIHRvIGZpeGVkIGZpbGVzLgogKiBAcHJvcGVydHkgc3RyaW5nICAgJGJhc2VwYXRoICAgICAgICBBIGZpbGUgc3lzdGVtIGxvY2F0aW9uIHRvIHN0cmlwIGZyb20gdGhlIHBhdGhzIG9mIGZpbGVzIHNob3duIGluIHJlcG9ydHMuCiAqIEBwcm9wZXJ0eSBib29sICAgICAkc3RkaW4gICAgICAgICAgIFJlYWQgY29udGVudCBmcm9tIFNURElOIGluc3RlYWQgb2Ygc3VwcGxpZWQgZmlsZXMuCiAqIEBwcm9wZXJ0eSBzdHJpbmcgICAkc3RkaW5Db250ZW50ICAgIENvbnRlbnQgcGFzc2VkIGRpcmVjdGx5IHRvIFBIUENTIG9uIFNURElOLgogKiBAcHJvcGVydHkgc3RyaW5nICAgJHN0ZGluUGF0aCAgICAgICBUaGUgcGF0aCB0byB1c2UgZm9yIGNvbnRlbnQgcGFzc2VkIG9uIFNURElOLgogKgogKiBAcHJvcGVydHkgYXJyYXk8c3RyaW5nLCBzdHJpbmc+ICAgICAgJGV4dGVuc2lvbnMgRmlsZSBleHRlbnNpb25zIHRoYXQgc2hvdWxkIGJlIGNoZWNrZWQsIGFuZCB3aGF0IHRva2VuaXplciB0byB1c2UuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFLmcuLCBhcnJheSgnaW5jJyA9PiAnUEhQJyk7CiAqIEBwcm9wZXJ0eSBhcnJheTxzdHJpbmcsIHN0cmluZ3xudWxsPiAkcmVwb3J0cyAgICBUaGUgcmVwb3J0cyB0byB1c2UgZm9yIHByaW50aW5nIG91dHB1dCBhZnRlciB0aGUgcnVuLgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGZvcm1hdCBvZiB0aGUgYXJyYXkgaXM6CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkoCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXBvcnROYW1lMScgPT4gJ291dHB1dEZpbGUnLAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVwb3J0TmFtZTInID0+IG51bGwsCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHRoZSBhcnJheSB2YWx1ZSBpcyBOVUxMLCB0aGUgcmVwb3J0IHdpbGwgYmUgd3JpdHRlbiB0byB0aGUgc2NyZWVuLgogKgogKiBAcHJvcGVydHkgc3RyaW5nW10gJHVua25vd24gQW55IGFyZ3VtZW50cyBnYXRoZXJlZCBvbiB0aGUgY29tbWFuZCBsaW5lIHRoYXQgYXJlIHVua25vd24gdG8gdXMuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFLmcuLCB1c2luZyBgcGhwY3MgLWNgIHdpbGwgZ2l2ZSBhcnJheSgnYycpOwogKi8KY2xhc3MgQ29uZmlnCnsKCiAgICAvKioKICAgICAqIFRoZSBjdXJyZW50IHZlcnNpb24uCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgY29uc3QgVkVSU0lPTiA9ICczLjcuMSc7CgogICAgLyoqCiAgICAgKiBQYWNrYWdlIHN0YWJpbGl0eTsgZWl0aGVyIHN0YWJsZSwgYmV0YSBvciBhbHBoYS4KICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBjb25zdCBTVEFCSUxJVFkgPSAnc3RhYmxlJzsKCiAgICAvKioKICAgICAqIEFuIGFycmF5IG9mIHNldHRpbmdzIHRoYXQgUEhQQ1MgYW5kIFBIUENCRiBhY2NlcHQuCiAgICAgKgogICAgICogVGhpcyBhcnJheSBpcyBub3QgbWVhbnQgdG8gYmUgYWNjZXNzZWQgZGlyZWN0bHkuIEluc3RlYWQsIHVzZSB0aGUgc2V0dGluZ3MKICAgICAqIGFzIGlmIHRoZXkgYXJlIGNsYXNzIG1lbWJlciB2YXJzIHNvIHRoZSBfX2dldCgpIGFuZCBfX3NldCgpIG1hZ2ljIG1ldGhvZHMKICAgICAqIGNhbiBiZSB1c2VkIHRvIHZhbGlkYXRlIHRoZSB2YWx1ZXMuIEZvciBleGFtcGxlLCB0byBzZXQgdGhlIHZlcmJvc2l0eSBsZXZlbCB0bwogICAgICogbGV2ZWwgMiwgdXNlICR0aGlzLT52ZXJib3NpdHkgPSAyOyBpbnN0ZWFkIG9mIGFjY2Vzc2luZyB0aGlzIHByb3BlcnR5IGRpcmVjdGx5LgogICAgICoKICAgICAqIEVhY2ggb2YgdGhlc2Ugc2V0dGluZ3MgaXMgZGVzY3JpYmVkIGluIHRoZSBjbGFzcyBjb21tZW50IHByb3BlcnR5IGxpc3QuCiAgICAgKgogICAgICogQHZhciBhcnJheTxzdHJpbmcsIG1peGVkPgogICAgICovCiAgICBwcml2YXRlICRzZXR0aW5ncyA9IFsKICAgICAgICAnZmlsZXMnICAgICAgICAgICA9PiBudWxsLAogICAgICAgICdzdGFuZGFyZHMnICAgICAgID0+IG51bGwsCiAgICAgICAgJ3ZlcmJvc2l0eScgICAgICAgPT4gbnVsbCwKICAgICAgICAnaW50ZXJhY3RpdmUnICAgICA9PiBudWxsLAogICAgICAgICdwYXJhbGxlbCcgICAgICAgID0+IG51bGwsCiAgICAgICAgJ2NhY2hlJyAgICAgICAgICAgPT4gbnVsbCwKICAgICAgICAnY2FjaGVGaWxlJyAgICAgICA9PiBudWxsLAogICAgICAgICdjb2xvcnMnICAgICAgICAgID0+IG51bGwsCiAgICAgICAgJ2V4cGxhaW4nICAgICAgICAgPT4gbnVsbCwKICAgICAgICAnbG9jYWwnICAgICAgICAgICA9PiBudWxsLAogICAgICAgICdzaG93U291cmNlcycgICAgID0+IG51bGwsCiAgICAgICAgJ3Nob3dQcm9ncmVzcycgICAgPT4gbnVsbCwKICAgICAgICAncXVpZXQnICAgICAgICAgICA9PiBudWxsLAogICAgICAgICdhbm5vdGF0aW9ucycgICAgID0+IG51bGwsCiAgICAgICAgJ3RhYldpZHRoJyAgICAgICAgPT4gbnVsbCwKICAgICAgICAnZW5jb2RpbmcnICAgICAgICA9PiBudWxsLAogICAgICAgICdleHRlbnNpb25zJyAgICAgID0+IG51bGwsCiAgICAgICAgJ3NuaWZmcycgICAgICAgICAgPT4gbnVsbCwKICAgICAgICAnZXhjbHVkZScgICAgICAgICA9PiBudWxsLAogICAgICAgICdpZ25vcmVkJyAgICAgICAgID0+IG51bGwsCiAgICAgICAgJ3JlcG9ydEZpbGUnICAgICAgPT4gbnVsbCwKICAgICAgICAnZ2VuZXJhdG9yJyAgICAgICA9PiBudWxsLAogICAgICAgICdmaWx0ZXInICAgICAgICAgID0+IG51bGwsCiAgICAgICAgJ2Jvb3RzdHJhcCcgICAgICAgPT4gbnVsbCwKICAgICAgICAncmVwb3J0cycgICAgICAgICA9PiBudWxsLAogICAgICAgICdiYXNlcGF0aCcgICAgICAgID0+IG51bGwsCiAgICAgICAgJ3JlcG9ydFdpZHRoJyAgICAgPT4gbnVsbCwKICAgICAgICAnZXJyb3JTZXZlcml0eScgICA9PiBudWxsLAogICAgICAgICd3YXJuaW5nU2V2ZXJpdHknID0+IG51bGwsCiAgICAgICAgJ3JlY29yZEVycm9ycycgICAgPT4gbnVsbCwKICAgICAgICAnc3VmZml4JyAgICAgICAgICA9PiBudWxsLAogICAgICAgICdzdGRpbicgICAgICAgICAgID0+IG51bGwsCiAgICAgICAgJ3N0ZGluQ29udGVudCcgICAgPT4gbnVsbCwKICAgICAgICAnc3RkaW5QYXRoJyAgICAgICA9PiBudWxsLAogICAgICAgICd1bmtub3duJyAgICAgICAgID0+IG51bGwsCiAgICBdOwoKICAgIC8qKgogICAgICogV2hldGhlciBvciBub3QgdG8ga2lsbCB0aGUgcHJvY2VzcyB3aGVuIGFuIHVua25vd24gY29tbWFuZCBsaW5lIGFyZyBpcyBmb3VuZC4KICAgICAqCiAgICAgKiBJZiBGQUxTRSwgYXJndW1lbnRzIHRoYXQgYXJlIG5vdCBjb21tYW5kIGxpbmUgb3B0aW9ucyBvciBmaWxlL2RpcmVjdG9yeSBwYXRocwogICAgICogd2lsbCBiZSBpZ25vcmVkIGFuZCBleGVjdXRpb24gd2lsbCBjb250aW51ZS4gVGhlc2UgdmFsdWVzIHdpbGwgYmUgc3RvcmVkIGluCiAgICAgKiAkdGhpcy0+dW5rbm93bi4KICAgICAqCiAgICAgKiBAdmFyIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljICRkaWVPblVua25vd25Bcmc7CgogICAgLyoqCiAgICAgKiBUaGUgY3VycmVudCBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHdlIGFyZSBwcm9jZXNzaW5nLgogICAgICoKICAgICAqIEB2YXIgc3RyaW5nW10KICAgICAqLwogICAgcHJpdmF0ZSAkY2xpQXJncyA9IFtdOwoKICAgIC8qKgogICAgICogQ29tbWFuZCBsaW5lIHZhbHVlcyB0aGF0IHRoZSB1c2VyIGhhcyBzdXBwbGllZCBkaXJlY3RseS4KICAgICAqCiAgICAgKiBAdmFyIGFycmF5PHN0cmluZywgVFJVRT4KICAgICAqLwogICAgcHJpdmF0ZSBzdGF0aWMgJG92ZXJyaWRkZW5EZWZhdWx0cyA9IFtdOwoKICAgIC8qKgogICAgICogQ29uZmlnIGZpbGUgZGF0YSB0aGF0IGhhcyBiZWVuIGxvYWRlZCBmb3IgdGhlIHJ1bi4KICAgICAqCiAgICAgKiBAdmFyIGFycmF5PHN0cmluZywgc3RyaW5nPgogICAgICovCiAgICBwcml2YXRlIHN0YXRpYyAkY29uZmlnRGF0YSA9IG51bGw7CgogICAgLyoqCiAgICAgKiBUaGUgZnVsbCBwYXRoIHRvIHRoZSBjb25maWcgZGF0YSBmaWxlIHRoYXQgaGFzIGJlZW4gbG9hZGVkLgogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHByaXZhdGUgc3RhdGljICRjb25maWdEYXRhRmlsZSA9IG51bGw7CgogICAgLyoqCiAgICAgKiBBdXRvbWF0aWNhbGx5IGRpc2NvdmVyZWQgZXhlY3V0YWJsZSB1dGlsaXR5IHBhdGhzLgogICAgICoKICAgICAqIEB2YXIgYXJyYXk8c3RyaW5nLCBzdHJpbmc+CiAgICAgKi8KICAgIHByaXZhdGUgc3RhdGljICRleGVjdXRhYmxlUGF0aHMgPSBbXTsKCgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHZhbHVlIG9mIGFuIGluYWNjZXNzaWJsZSBwcm9wZXJ0eS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS4KICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkCiAgICAgKiBAdGhyb3dzIFxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xSdW50aW1lRXhjZXB0aW9uIElmIHRoZSBzZXR0aW5nIG5hbWUgaXMgaW52YWxpZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fZ2V0KCRuYW1lKQogICAgewogICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRuYW1lLCAkdGhpcy0+c2V0dGluZ3MpID09PSBmYWxzZSkgewogICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRVJST1I6IHVuYWJsZSB0byBnZXQgdmFsdWUgb2YgcHJvcGVydHkgXCIkbmFtZVwiIik7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHRoaXMtPnNldHRpbmdzWyRuYW1lXTsKCiAgICB9Ly9lbmQgX19nZXQoKQoKCiAgICAvKioKICAgICAqIFNldCB0aGUgdmFsdWUgb2YgYW4gaW5hY2Nlc3NpYmxlIHByb3BlcnR5LgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS4KICAgICAqIEBwYXJhbSBtaXhlZCAgJHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAdGhyb3dzIFxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xSdW50aW1lRXhjZXB0aW9uIElmIHRoZSBzZXR0aW5nIG5hbWUgaXMgaW52YWxpZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fc2V0KCRuYW1lLCAkdmFsdWUpCiAgICB7CiAgICAgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJG5hbWUsICR0aGlzLT5zZXR0aW5ncykgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJDYW4ndCBfX3NldCgpICRuYW1lOyBzZXR0aW5nIGRvZXNuJ3QgZXhpc3QiKTsKICAgICAgICB9CgogICAgICAgIHN3aXRjaCAoJG5hbWUpIHsKICAgICAgICBjYXNlICdyZXBvcnRXaWR0aCcgOgogICAgICAgICAgICAvLyBTdXBwb3J0IGF1dG8gdGVybWluYWwgd2lkdGguCiAgICAgICAgICAgIGlmICgkdmFsdWUgPT09ICdhdXRvJwogICAgICAgICAgICAgICAgJiYgZnVuY3Rpb25fZXhpc3RzKCdzaGVsbF9leGVjJykgPT09IHRydWUKICAgICAgICAgICAgICAgICYmIHByZWdfbWF0Y2goJ3xcZCsgKFxkKyl8Jywgc2hlbGxfZXhlYygnc3R0eSBzaXplIDI+JjEnKSwgJG1hdGNoZXMpID09PSAxCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgJHZhbHVlID0gKGludCkgJG1hdGNoZXNbMV07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdmFsdWUgPSAoaW50KSAkdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnc3RhbmRhcmRzJyA6CiAgICAgICAgICAgICRjbGVhbmVkID0gW107CgogICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgc3RhbmRhcmQgbmFtZSBpcyB2YWxpZCwgb3IgaWYgdGhlIGNhc2UgaXMgaW52YWxpZC4KICAgICAgICAgICAgJGluc3RhbGxlZFN0YW5kYXJkcyA9IFV0aWxcU3RhbmRhcmRzOjpnZXRJbnN0YWxsZWRTdGFuZGFyZHMoKTsKICAgICAgICAgICAgZm9yZWFjaCAoJHZhbHVlIGFzICRzdGFuZGFyZCkgewogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGluc3RhbGxlZFN0YW5kYXJkcyBhcyAkdmFsaWRTdGFuZGFyZCkgewogICAgICAgICAgICAgICAgICAgIGlmIChzdHJ0b2xvd2VyKCRzdGFuZGFyZCkgPT09IHN0cnRvbG93ZXIoJHZhbGlkU3RhbmRhcmQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRzdGFuZGFyZCA9ICR2YWxpZFN0YW5kYXJkOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGNsZWFuZWRbXSA9ICRzdGFuZGFyZDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHZhbHVlID0gJGNsZWFuZWQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQgOgogICAgICAgICAgICAvLyBObyB2YWxpZGF0aW9uIHJlcXVpcmVkLgogICAgICAgICAgICBicmVhazsKICAgICAgICB9Ly9lbmQgc3dpdGNoCgogICAgICAgICR0aGlzLT5zZXR0aW5nc1skbmFtZV0gPSAkdmFsdWU7CgogICAgfS8vZW5kIF9fc2V0KCkKCgogICAgLyoqCiAgICAgKiBDaGVjayBpZiB0aGUgdmFsdWUgb2YgYW4gaW5hY2Nlc3NpYmxlIHByb3BlcnR5IGlzIHNldC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9faXNzZXQoJG5hbWUpCiAgICB7CiAgICAgICAgcmV0dXJuIGlzc2V0KCR0aGlzLT5zZXR0aW5nc1skbmFtZV0pOwoKICAgIH0vL2VuZCBfX2lzc2V0KCkKCgogICAgLyoqCiAgICAgKiBVbnNldCB0aGUgdmFsdWUgb2YgYW4gaW5hY2Nlc3NpYmxlIHByb3BlcnR5LgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gX191bnNldCgkbmFtZSkKICAgIHsKICAgICAgICAkdGhpcy0+c2V0dGluZ3NbJG5hbWVdID0gbnVsbDsKCiAgICB9Ly9lbmQgX191bnNldCgpCgoKICAgIC8qKgogICAgICogR2V0IHRoZSBhcnJheSBvZiBhbGwgY29uZmlnIHNldHRpbmdzLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXk8c3RyaW5nLCBtaXhlZD4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFNldHRpbmdzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnNldHRpbmdzOwoKICAgIH0vL2VuZCBnZXRTZXR0aW5ncygpCgoKICAgIC8qKgogICAgICogU2V0IHRoZSBhcnJheSBvZiBhbGwgY29uZmlnIHNldHRpbmdzLgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheTxzdHJpbmcsIG1peGVkPiAkc2V0dGluZ3MgVGhlIGFycmF5IG9mIGNvbmZpZyBzZXR0aW5ncy4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNldFNldHRpbmdzKCRzZXR0aW5ncykKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnNldHRpbmdzID0gJHNldHRpbmdzOwoKICAgIH0vL2VuZCBzZXRTZXR0aW5ncygpCgoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIENvbmZpZyBvYmplY3QgYW5kIHBvcHVsYXRlcyBpdCB3aXRoIGNvbW1hbmQgbGluZSB2YWx1ZXMuCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRjbGlBcmdzICAgICAgICAgQW4gYXJyYXkgb2YgdmFsdWVzIGdhdGhlcmVkIGZyb20gQ0xJIGFyZ3MuCiAgICAgKiBAcGFyYW0gYm9vbCAgJGRpZU9uVW5rbm93bkFyZyBXaGV0aGVyIG9yIG5vdCB0byBraWxsIHRoZSBwcm9jZXNzIHdoZW4gYW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVua25vd24gY29tbWFuZCBsaW5lIGFyZyBpcyBmb3VuZC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KGFycmF5ICRjbGlBcmdzPVtdLCAkZGllT25Vbmtub3duQXJnPXRydWUpCiAgICB7CiAgICAgICAgaWYgKGRlZmluZWQoJ1BIUF9DT0RFU05JRkZFUl9JTl9URVNUUycpID09PSB0cnVlKSB7CiAgICAgICAgICAgIC8vIExldCBldmVyeXRoaW5nIHRocm91Z2ggZHVyaW5nIHRlc3Rpbmcgc28gdGhhdCB3ZSBjYW4KICAgICAgICAgICAgLy8gbWFrZSB1c2Ugb2YgUEhQVW5pdCBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGFzIHdlbGwuCiAgICAgICAgICAgICR0aGlzLT5kaWVPblVua25vd25BcmcgPSBmYWxzZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+ZGllT25Vbmtub3duQXJnID0gJGRpZU9uVW5rbm93bkFyZzsKICAgICAgICB9CgogICAgICAgIGlmIChlbXB0eSgkY2xpQXJncykgPT09IHRydWUpIHsKICAgICAgICAgICAgJGNsaUFyZ3MgPSAkX1NFUlZFUlsnYXJndiddOwogICAgICAgICAgICBhcnJheV9zaGlmdCgkY2xpQXJncyk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+cmVzdG9yZURlZmF1bHRzKCk7CiAgICAgICAgJHRoaXMtPnNldENvbW1hbmRMaW5lVmFsdWVzKCRjbGlBcmdzKTsKCiAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ3N0YW5kYXJkcyddKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgLy8gVGhleSBkaWQgbm90IHN1cHBseSBhIHN0YW5kYXJkIHRvIHVzZS4KICAgICAgICAgICAgLy8gTG9vayBmb3IgYSBkZWZhdWx0IHJ1bGVzZXQgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG9yIGhpZ2hlci4KICAgICAgICAgICAgJGN1cnJlbnREaXIgPSBnZXRjd2QoKTsKCiAgICAgICAgICAgICRkZWZhdWx0RmlsZXMgPSBbCiAgICAgICAgICAgICAgICAnLnBocGNzLnhtbCcsCiAgICAgICAgICAgICAgICAncGhwY3MueG1sJywKICAgICAgICAgICAgICAgICcucGhwY3MueG1sLmRpc3QnLAogICAgICAgICAgICAgICAgJ3BocGNzLnhtbC5kaXN0JywKICAgICAgICAgICAgXTsKCiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRkZWZhdWx0RmlsZXMgYXMgJGRlZmF1bHRGaWxlbmFtZSkgewogICAgICAgICAgICAgICAgICAgICRkZWZhdWx0ID0gJGN1cnJlbnREaXIuRElSRUNUT1JZX1NFUEFSQVRPUi4kZGVmYXVsdEZpbGVuYW1lOwogICAgICAgICAgICAgICAgICAgIGlmIChpc19maWxlKCRkZWZhdWx0KSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c3RhbmRhcmRzID0gWyRkZWZhdWx0XTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsoMik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRsYXN0RGlyICAgID0gJGN1cnJlbnREaXI7CiAgICAgICAgICAgICAgICAkY3VycmVudERpciA9IGRpcm5hbWUoJGN1cnJlbnREaXIpOwogICAgICAgICAgICB9IHdoaWxlICgkY3VycmVudERpciAhPT0gJy4nICYmICRjdXJyZW50RGlyICE9PSAkbGFzdERpciAmJiBDb21tb246OmlzUmVhZGFibGUoJGN1cnJlbnREaXIpID09PSB0cnVlKTsKICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgaWYgKGRlZmluZWQoJ1NURElOJykgPT09IGZhbHNlCiAgICAgICAgICAgIHx8IHN0cmlwb3MoUEhQX09TLCAnV0lOJykgPT09IDAKICAgICAgICApIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgJGhhbmRsZSA9IGZvcGVuKCdwaHA6Ly9zdGRpbicsICdyJyk7CgogICAgICAgIC8vIENoZWNrIGZvciBjb250ZW50IG9uIFNURElOLgogICAgICAgIGlmICgkdGhpcy0+c3RkaW4gPT09IHRydWUKICAgICAgICAgICAgfHwgKFV0aWxcQ29tbW9uOjppc1N0ZGluQVRUWSgpID09PSBmYWxzZQogICAgICAgICAgICAmJiBmZW9mKCRoYW5kbGUpID09PSBmYWxzZSkKICAgICAgICApIHsKICAgICAgICAgICAgJHJlYWRTdHJlYW1zID0gWyRoYW5kbGVdOwogICAgICAgICAgICAkd3JpdGVTdGVhbXMgPSBudWxsOwoKICAgICAgICAgICAgJGZpbGVDb250ZW50cyA9ICcnOwogICAgICAgICAgICB3aGlsZSAoaXNfcmVzb3VyY2UoJGhhbmRsZSkgPT09IHRydWUgJiYgZmVvZigkaGFuZGxlKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIC8vIFNldCBhIHRpbWVvdXQgb2YgMjAwbXMuCiAgICAgICAgICAgICAgICBpZiAoc3RyZWFtX3NlbGVjdCgkcmVhZFN0cmVhbXMsICR3cml0ZVN0ZWFtcywgJHdyaXRlU3RlYW1zLCAwLCAyMDAwMDApID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGZpbGVDb250ZW50cyAuPSBmZ2V0cygkaGFuZGxlKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRyaW0oJGZpbGVDb250ZW50cykgIT09ICcnKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c3RkaW4gICAgICAgID0gdHJ1ZTsKICAgICAgICAgICAgICAgICR0aGlzLT5zdGRpbkNvbnRlbnQgPSAkZmlsZUNvbnRlbnRzOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snc3RkaW4nXSAgICAgICAgPSB0cnVlOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snc3RkaW5Db250ZW50J10gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfS8vZW5kIGlmCgogICAgICAgIGZjbG9zZSgkaGFuZGxlKTsKCiAgICB9Ly9lbmQgX19jb25zdHJ1Y3QoKQoKCiAgICAvKioKICAgICAqIFNldCB0aGUgY29tbWFuZCBsaW5lIHZhbHVlcy4KICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgJGFyZ3MgQW4gYXJyYXkgb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byBzZXQuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRDb21tYW5kTGluZVZhbHVlcygkYXJncykKICAgIHsKICAgICAgICAkdGhpcy0+Y2xpQXJncyA9ICRhcmdzOwogICAgICAgICRudW1BcmdzICAgICAgID0gY291bnQoJGFyZ3MpOwoKICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkbnVtQXJnczsgJGkrKykgewogICAgICAgICAgICAkYXJnID0gJHRoaXMtPmNsaUFyZ3NbJGldOwogICAgICAgICAgICBpZiAoJGFyZyA9PT0gJycpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJGFyZ1swXSA9PT0gJy0nKSB7CiAgICAgICAgICAgICAgICBpZiAoJGFyZyA9PT0gJy0nKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gQXNraW5nIHRvIHJlYWQgZnJvbSBTVERJTi4KICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c3RkaW4gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ3N0ZGluJ10gPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgkYXJnID09PSAnLS0nKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gRW1wdHkgYXJndW1lbnQsIGlnbm9yZSBpdC4KICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoJGFyZ1sxXSA9PT0gJy0nKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnByb2Nlc3NMb25nQXJndW1lbnQoc3Vic3RyKCRhcmcsIDIpLCAkaSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRzd2l0Y2hlcyA9IHN0cl9zcGxpdCgkYXJnKTsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkc3dpdGNoZXMgYXMgJHN3aXRjaCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHN3aXRjaCA9PT0gJy0nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnByb2Nlc3NTaG9ydEFyZ3VtZW50KCRzd2l0Y2gsICRpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+cHJvY2Vzc1Vua25vd25Bcmd1bWVudCgkYXJnLCAkaSk7CiAgICAgICAgICAgIH0vL2VuZCBpZgogICAgICAgIH0vL2VuZCBmb3IKCiAgICB9Ly9lbmQgc2V0Q29tbWFuZExpbmVWYWx1ZXMoKQoKCiAgICAvKioKICAgICAqIFJlc3RvcmUgZGVmYXVsdCB2YWx1ZXMgZm9yIGFsbCBwb3NzaWJsZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVzdG9yZURlZmF1bHRzKCkKICAgIHsKICAgICAgICAkdGhpcy0+ZmlsZXMgICAgICAgICAgID0gW107CiAgICAgICAgJHRoaXMtPnN0YW5kYXJkcyAgICAgICA9IFsnUEVBUiddOwogICAgICAgICR0aGlzLT52ZXJib3NpdHkgICAgICAgPSAwOwogICAgICAgICR0aGlzLT5pbnRlcmFjdGl2ZSAgICAgPSBmYWxzZTsKICAgICAgICAkdGhpcy0+Y2FjaGUgICAgICAgICAgID0gZmFsc2U7CiAgICAgICAgJHRoaXMtPmNhY2hlRmlsZSAgICAgICA9IG51bGw7CiAgICAgICAgJHRoaXMtPmNvbG9ycyAgICAgICAgICA9IGZhbHNlOwogICAgICAgICR0aGlzLT5leHBsYWluICAgICAgICAgPSBmYWxzZTsKICAgICAgICAkdGhpcy0+bG9jYWwgICAgICAgICAgID0gZmFsc2U7CiAgICAgICAgJHRoaXMtPnNob3dTb3VyY2VzICAgICA9IGZhbHNlOwogICAgICAgICR0aGlzLT5zaG93UHJvZ3Jlc3MgICAgPSBmYWxzZTsKICAgICAgICAkdGhpcy0+cXVpZXQgICAgICAgICAgID0gZmFsc2U7CiAgICAgICAgJHRoaXMtPmFubm90YXRpb25zICAgICA9IHRydWU7CiAgICAgICAgJHRoaXMtPnBhcmFsbGVsICAgICAgICA9IDE7CiAgICAgICAgJHRoaXMtPnRhYldpZHRoICAgICAgICA9IDA7CiAgICAgICAgJHRoaXMtPmVuY29kaW5nICAgICAgICA9ICd1dGYtOCc7CiAgICAgICAgJHRoaXMtPmV4dGVuc2lvbnMgICAgICA9IFsKICAgICAgICAgICAgJ3BocCcgPT4gJ1BIUCcsCiAgICAgICAgICAgICdpbmMnID0+ICdQSFAnLAogICAgICAgICAgICAnanMnICA9PiAnSlMnLAogICAgICAgICAgICAnY3NzJyA9PiAnQ1NTJywKICAgICAgICBdOwogICAgICAgICR0aGlzLT5zbmlmZnMgICAgICAgICAgPSBbXTsKICAgICAgICAkdGhpcy0+ZXhjbHVkZSAgICAgICAgID0gW107CiAgICAgICAgJHRoaXMtPmlnbm9yZWQgICAgICAgICA9IFtdOwogICAgICAgICR0aGlzLT5yZXBvcnRGaWxlICAgICAgPSBudWxsOwogICAgICAgICR0aGlzLT5nZW5lcmF0b3IgICAgICAgPSBudWxsOwogICAgICAgICR0aGlzLT5maWx0ZXIgICAgICAgICAgPSBudWxsOwogICAgICAgICR0aGlzLT5ib290c3RyYXAgICAgICAgPSBbXTsKICAgICAgICAkdGhpcy0+YmFzZXBhdGggICAgICAgID0gbnVsbDsKICAgICAgICAkdGhpcy0+cmVwb3J0cyAgICAgICAgID0gWydmdWxsJyA9PiBudWxsXTsKICAgICAgICAkdGhpcy0+cmVwb3J0V2lkdGggICAgID0gJ2F1dG8nOwogICAgICAgICR0aGlzLT5lcnJvclNldmVyaXR5ICAgPSA1OwogICAgICAgICR0aGlzLT53YXJuaW5nU2V2ZXJpdHkgPSA1OwogICAgICAgICR0aGlzLT5yZWNvcmRFcnJvcnMgICAgPSB0cnVlOwogICAgICAgICR0aGlzLT5zdWZmaXggICAgICAgICAgPSAnJzsKICAgICAgICAkdGhpcy0+c3RkaW4gICAgICAgICAgID0gZmFsc2U7CiAgICAgICAgJHRoaXMtPnN0ZGluQ29udGVudCAgICA9IG51bGw7CiAgICAgICAgJHRoaXMtPnN0ZGluUGF0aCAgICAgICA9IG51bGw7CiAgICAgICAgJHRoaXMtPnVua25vd24gICAgICAgICA9IFtdOwoKICAgICAgICAkc3RhbmRhcmQgPSBzZWxmOjpnZXRDb25maWdEYXRhKCdkZWZhdWx0X3N0YW5kYXJkJyk7CiAgICAgICAgaWYgKCRzdGFuZGFyZCAhPT0gbnVsbCkgewogICAgICAgICAgICAkdGhpcy0+c3RhbmRhcmRzID0gZXhwbG9kZSgnLCcsICRzdGFuZGFyZCk7CiAgICAgICAgfQoKICAgICAgICAkcmVwb3J0Rm9ybWF0ID0gc2VsZjo6Z2V0Q29uZmlnRGF0YSgncmVwb3J0X2Zvcm1hdCcpOwogICAgICAgIGlmICgkcmVwb3J0Rm9ybWF0ICE9PSBudWxsKSB7CiAgICAgICAgICAgICR0aGlzLT5yZXBvcnRzID0gWyRyZXBvcnRGb3JtYXQgPT4gbnVsbF07CiAgICAgICAgfQoKICAgICAgICAkdGFiV2lkdGggPSBzZWxmOjpnZXRDb25maWdEYXRhKCd0YWJfd2lkdGgnKTsKICAgICAgICBpZiAoJHRhYldpZHRoICE9PSBudWxsKSB7CiAgICAgICAgICAgICR0aGlzLT50YWJXaWR0aCA9IChpbnQpICR0YWJXaWR0aDsKICAgICAgICB9CgogICAgICAgICRlbmNvZGluZyA9IHNlbGY6OmdldENvbmZpZ0RhdGEoJ2VuY29kaW5nJyk7CiAgICAgICAgaWYgKCRlbmNvZGluZyAhPT0gbnVsbCkgewogICAgICAgICAgICAkdGhpcy0+ZW5jb2RpbmcgPSBzdHJ0b2xvd2VyKCRlbmNvZGluZyk7CiAgICAgICAgfQoKICAgICAgICAkc2V2ZXJpdHkgPSBzZWxmOjpnZXRDb25maWdEYXRhKCdzZXZlcml0eScpOwogICAgICAgIGlmICgkc2V2ZXJpdHkgIT09IG51bGwpIHsKICAgICAgICAgICAgJHRoaXMtPmVycm9yU2V2ZXJpdHkgICA9IChpbnQpICRzZXZlcml0eTsKICAgICAgICAgICAgJHRoaXMtPndhcm5pbmdTZXZlcml0eSA9IChpbnQpICRzZXZlcml0eTsKICAgICAgICB9CgogICAgICAgICRzZXZlcml0eSA9IHNlbGY6OmdldENvbmZpZ0RhdGEoJ2Vycm9yX3NldmVyaXR5Jyk7CiAgICAgICAgaWYgKCRzZXZlcml0eSAhPT0gbnVsbCkgewogICAgICAgICAgICAkdGhpcy0+ZXJyb3JTZXZlcml0eSA9IChpbnQpICRzZXZlcml0eTsKICAgICAgICB9CgogICAgICAgICRzZXZlcml0eSA9IHNlbGY6OmdldENvbmZpZ0RhdGEoJ3dhcm5pbmdfc2V2ZXJpdHknKTsKICAgICAgICBpZiAoJHNldmVyaXR5ICE9PSBudWxsKSB7CiAgICAgICAgICAgICR0aGlzLT53YXJuaW5nU2V2ZXJpdHkgPSAoaW50KSAkc2V2ZXJpdHk7CiAgICAgICAgfQoKICAgICAgICAkc2hvd1dhcm5pbmdzID0gc2VsZjo6Z2V0Q29uZmlnRGF0YSgnc2hvd193YXJuaW5ncycpOwogICAgICAgIGlmICgkc2hvd1dhcm5pbmdzICE9PSBudWxsKSB7CiAgICAgICAgICAgICRzaG93V2FybmluZ3MgPSAoYm9vbCkgJHNob3dXYXJuaW5nczsKICAgICAgICAgICAgaWYgKCRzaG93V2FybmluZ3MgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+d2FybmluZ1NldmVyaXR5ID0gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHJlcG9ydFdpZHRoID0gc2VsZjo6Z2V0Q29uZmlnRGF0YSgncmVwb3J0X3dpZHRoJyk7CiAgICAgICAgaWYgKCRyZXBvcnRXaWR0aCAhPT0gbnVsbCkgewogICAgICAgICAgICAkdGhpcy0+cmVwb3J0V2lkdGggPSAkcmVwb3J0V2lkdGg7CiAgICAgICAgfQoKICAgICAgICAkc2hvd1Byb2dyZXNzID0gc2VsZjo6Z2V0Q29uZmlnRGF0YSgnc2hvd19wcm9ncmVzcycpOwogICAgICAgIGlmICgkc2hvd1Byb2dyZXNzICE9PSBudWxsKSB7CiAgICAgICAgICAgICR0aGlzLT5zaG93UHJvZ3Jlc3MgPSAoYm9vbCkgJHNob3dQcm9ncmVzczsKICAgICAgICB9CgogICAgICAgICRxdWlldCA9IHNlbGY6OmdldENvbmZpZ0RhdGEoJ3F1aWV0Jyk7CiAgICAgICAgaWYgKCRxdWlldCAhPT0gbnVsbCkgewogICAgICAgICAgICAkdGhpcy0+cXVpZXQgPSAoYm9vbCkgJHF1aWV0OwogICAgICAgIH0KCiAgICAgICAgJGNvbG9ycyA9IHNlbGY6OmdldENvbmZpZ0RhdGEoJ2NvbG9ycycpOwogICAgICAgIGlmICgkY29sb3JzICE9PSBudWxsKSB7CiAgICAgICAgICAgICR0aGlzLT5jb2xvcnMgPSAoYm9vbCkgJGNvbG9yczsKICAgICAgICB9CgogICAgICAgIGlmIChkZWZpbmVkKCdQSFBfQ09ERVNOSUZGRVJfSU5fVEVTVFMnKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgJGNhY2hlID0gc2VsZjo6Z2V0Q29uZmlnRGF0YSgnY2FjaGUnKTsKICAgICAgICAgICAgaWYgKCRjYWNoZSAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgJHRoaXMtPmNhY2hlID0gKGJvb2wpICRjYWNoZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHBhcmFsbGVsID0gc2VsZjo6Z2V0Q29uZmlnRGF0YSgncGFyYWxsZWwnKTsKICAgICAgICAgICAgaWYgKCRwYXJhbGxlbCAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgJHRoaXMtPnBhcmFsbGVsID0gbWF4KChpbnQpICRwYXJhbGxlbCwgMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgfS8vZW5kIHJlc3RvcmVEZWZhdWx0cygpCgoKICAgIC8qKgogICAgICogUHJvY2Vzc2VzIGEgc2hvcnQgKC1lKSBjb21tYW5kIGxpbmUgYXJndW1lbnQuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkYXJnIFRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQuCiAgICAgKiBAcGFyYW0gaW50ICAgICRwb3MgVGhlIHBvc2l0aW9uIG9mIHRoZSBhcmd1bWVudCBvbiB0aGUgY29tbWFuZCBsaW5lLgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQHRocm93cyBcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb24KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3NTaG9ydEFyZ3VtZW50KCRhcmcsICRwb3MpCiAgICB7CiAgICAgICAgc3dpdGNoICgkYXJnKSB7CiAgICAgICAgY2FzZSAnaCc6CiAgICAgICAgY2FzZSAnPyc6CiAgICAgICAgICAgIG9iX3N0YXJ0KCk7CiAgICAgICAgICAgICR0aGlzLT5wcmludFVzYWdlKCk7CiAgICAgICAgICAgICRvdXRwdXQgPSBvYl9nZXRfY29udGVudHMoKTsKICAgICAgICAgICAgb2JfZW5kX2NsZWFuKCk7CiAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkb3V0cHV0LCAwKTsKICAgICAgICBjYXNlICdpJyA6CiAgICAgICAgICAgIG9iX3N0YXJ0KCk7CiAgICAgICAgICAgIFV0aWxcU3RhbmRhcmRzOjpwcmludEluc3RhbGxlZFN0YW5kYXJkcygpOwogICAgICAgICAgICAkb3V0cHV0ID0gb2JfZ2V0X2NvbnRlbnRzKCk7CiAgICAgICAgICAgIG9iX2VuZF9jbGVhbigpOwogICAgICAgICAgICB0aHJvdyBuZXcgRGVlcEV4aXRFeGNlcHRpb24oJG91dHB1dCwgMCk7CiAgICAgICAgY2FzZSAndicgOgogICAgICAgICAgICBpZiAoJHRoaXMtPnF1aWV0ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgd2hlbiBxdWlldCBtb2RlIGlzIGVuYWJsZWQuCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRoaXMtPnZlcmJvc2l0eSsrOwogICAgICAgICAgICBzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWyd2ZXJib3NpdHknXSA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2wnIDoKICAgICAgICAgICAgJHRoaXMtPmxvY2FsID0gdHJ1ZTsKICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snbG9jYWwnXSA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3MnIDoKICAgICAgICAgICAgJHRoaXMtPnNob3dTb3VyY2VzID0gdHJ1ZTsKICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snc2hvd1NvdXJjZXMnXSA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2EnIDoKICAgICAgICAgICAgJHRoaXMtPmludGVyYWN0aXZlID0gdHJ1ZTsKICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snaW50ZXJhY3RpdmUnXSA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2UnOgogICAgICAgICAgICAkdGhpcy0+ZXhwbGFpbiA9IHRydWU7CiAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2V4cGxhaW4nXSA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3AnIDoKICAgICAgICAgICAgaWYgKCR0aGlzLT5xdWlldCA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgLy8gSWdub3JlIHdoZW4gcXVpZXQgbW9kZSBpcyBlbmFibGVkLgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR0aGlzLT5zaG93UHJvZ3Jlc3MgPSB0cnVlOwogICAgICAgICAgICBzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydzaG93UHJvZ3Jlc3MnXSA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3EnIDoKICAgICAgICAgICAgLy8gUXVpZXQgbW9kZSBkaXNhYmxlcyBhIGZldyBvdGhlciBzZXR0aW5ncyBhcyB3ZWxsLgogICAgICAgICAgICAkdGhpcy0+cXVpZXQgICAgICAgID0gdHJ1ZTsKICAgICAgICAgICAgJHRoaXMtPnNob3dQcm9ncmVzcyA9IGZhbHNlOwogICAgICAgICAgICAkdGhpcy0+dmVyYm9zaXR5ICAgID0gMDsKCiAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ3F1aWV0J10gPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdtJyA6CiAgICAgICAgICAgICR0aGlzLT5yZWNvcmRFcnJvcnMgPSBmYWxzZTsKICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1sncmVjb3JkRXJyb3JzJ10gPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdkJyA6CiAgICAgICAgICAgICRpbmkgPSBleHBsb2RlKCc9JywgJHRoaXMtPmNsaUFyZ3NbKCRwb3MgKyAxKV0pOwogICAgICAgICAgICAkdGhpcy0+Y2xpQXJnc1soJHBvcyArIDEpXSA9ICcnOwogICAgICAgICAgICBpZiAoaXNzZXQoJGluaVsxXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIGluaV9zZXQoJGluaVswXSwgJGluaVsxXSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpbmlfc2V0KCRpbmlbMF0sIHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ24nIDoKICAgICAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ3dhcm5pbmdTZXZlcml0eSddKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICR0aGlzLT53YXJuaW5nU2V2ZXJpdHkgPSAwOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snd2FybmluZ1NldmVyaXR5J10gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3cnIDoKICAgICAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ3dhcm5pbmdTZXZlcml0eSddKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICR0aGlzLT53YXJuaW5nU2V2ZXJpdHkgPSAkdGhpcy0+ZXJyb3JTZXZlcml0eTsKICAgICAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ3dhcm5pbmdTZXZlcml0eSddID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZiAoJHRoaXMtPmRpZU9uVW5rbm93bkFyZyA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICR1bmtub3duICAgICAgID0gJHRoaXMtPnVua25vd247CiAgICAgICAgICAgICAgICAkdW5rbm93bltdICAgICA9ICRhcmc7CiAgICAgICAgICAgICAgICAkdGhpcy0+dW5rbm93biA9ICR1bmtub3duOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHRoaXMtPnByb2Nlc3NVbmtub3duQXJndW1lbnQoJy0nLiRhcmcsICRwb3MpOwogICAgICAgICAgICB9CiAgICAgICAgfS8vZW5kIHN3aXRjaAoKICAgIH0vL2VuZCBwcm9jZXNzU2hvcnRBcmd1bWVudCgpCgoKICAgIC8qKgogICAgICogUHJvY2Vzc2VzIGEgbG9uZyAoLS1leGFtcGxlKSBjb21tYW5kIGxpbmUgYXJndW1lbnQuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkYXJnIFRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQuCiAgICAgKiBAcGFyYW0gaW50ICAgICRwb3MgVGhlIHBvc2l0aW9uIG9mIHRoZSBhcmd1bWVudCBvbiB0aGUgY29tbWFuZCBsaW5lLgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQHRocm93cyBcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb24KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3NMb25nQXJndW1lbnQoJGFyZywgJHBvcykKICAgIHsKICAgICAgICBzd2l0Y2ggKCRhcmcpIHsKICAgICAgICBjYXNlICdoZWxwJzoKICAgICAgICAgICAgb2Jfc3RhcnQoKTsKICAgICAgICAgICAgJHRoaXMtPnByaW50VXNhZ2UoKTsKICAgICAgICAgICAgJG91dHB1dCA9IG9iX2dldF9jb250ZW50cygpOwogICAgICAgICAgICBvYl9lbmRfY2xlYW4oKTsKICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRvdXRwdXQsIDApOwogICAgICAgIGNhc2UgJ3ZlcnNpb24nOgogICAgICAgICAgICAkb3V0cHV0ICA9ICdQSFBfQ29kZVNuaWZmZXIgdmVyc2lvbiAnLnNlbGY6OlZFUlNJT04uJyAoJy5zZWxmOjpTVEFCSUxJVFkuJykgJzsKICAgICAgICAgICAgJG91dHB1dCAuPSAnYnkgU3F1aXogKGh0dHA6Ly93d3cuc3F1aXoubmV0KScuUEhQX0VPTDsKICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRvdXRwdXQsIDApOwogICAgICAgIGNhc2UgJ2NvbG9ycyc6CiAgICAgICAgICAgIGlmIChpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydjb2xvcnMnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkdGhpcy0+Y29sb3JzID0gdHJ1ZTsKICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snY29sb3JzJ10gPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICduby1jb2xvcnMnOgogICAgICAgICAgICBpZiAoaXNzZXQoc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snY29sb3JzJ10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRoaXMtPmNvbG9ycyA9IGZhbHNlOwogICAgICAgICAgICBzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydjb2xvcnMnXSA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2NhY2hlJzoKICAgICAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2NhY2hlJ10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGRlZmluZWQoJ1BIUF9DT0RFU05JRkZFUl9JTl9URVNUUycpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgJHRoaXMtPmNhY2hlID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2NhY2hlJ10gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ25vLWNhY2hlJzoKICAgICAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2NhY2hlJ10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRoaXMtPmNhY2hlID0gZmFsc2U7CiAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2NhY2hlJ10gPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdpZ25vcmUtYW5ub3RhdGlvbnMnOgogICAgICAgICAgICBpZiAoaXNzZXQoc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snYW5ub3RhdGlvbnMnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkdGhpcy0+YW5ub3RhdGlvbnMgPSBmYWxzZTsKICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snYW5ub3RhdGlvbnMnXSA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ2NvbmZpZy1zZXQnOgogICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmNsaUFyZ3NbKCRwb3MgKyAxKV0pID09PSBmYWxzZQogICAgICAgICAgICAgICAgfHwgaXNzZXQoJHRoaXMtPmNsaUFyZ3NbKCRwb3MgKyAyKV0pID09PSBmYWxzZQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICRlcnJvciAgPSAnRVJST1I6IFNldHRpbmcgYSBjb25maWcgb3B0aW9uIHJlcXVpcmVzIGEgbmFtZSBhbmQgdmFsdWUnLlBIUF9FT0wuUEhQX0VPTDsKICAgICAgICAgICAgICAgICRlcnJvciAuPSAkdGhpcy0+cHJpbnRTaG9ydFVzYWdlKHRydWUpOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRlcnJvciwgMyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRrZXkgICAgID0gJHRoaXMtPmNsaUFyZ3NbKCRwb3MgKyAxKV07CiAgICAgICAgICAgICR2YWx1ZSAgID0gJHRoaXMtPmNsaUFyZ3NbKCRwb3MgKyAyKV07CiAgICAgICAgICAgICRjdXJyZW50ID0gc2VsZjo6Z2V0Q29uZmlnRGF0YSgka2V5KTsKCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c2V0Q29uZmlnRGF0YSgka2V5LCAkdmFsdWUpOwogICAgICAgICAgICB9IGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRGVlcEV4aXRFeGNlcHRpb24oJGUtPmdldE1lc3NhZ2UoKS5QSFBfRU9MLCAzKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJG91dHB1dCA9ICdVc2luZyBjb25maWcgZmlsZTogJy5zZWxmOjokY29uZmlnRGF0YUZpbGUuUEhQX0VPTC5QSFBfRU9MOwoKICAgICAgICAgICAgaWYgKCRjdXJyZW50ID09PSBudWxsKSB7CiAgICAgICAgICAgICAgICAkb3V0cHV0IC49ICJDb25maWcgdmFsdWUgXCIka2V5XCIgYWRkZWQgc3VjY2Vzc2Z1bGx5Ii5QSFBfRU9MOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJG91dHB1dCAuPSAiQ29uZmlnIHZhbHVlIFwiJGtleVwiIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5OyBvbGQgdmFsdWUgd2FzIFwiJGN1cnJlbnRcIiIuUEhQX0VPTDsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aHJvdyBuZXcgRGVlcEV4aXRFeGNlcHRpb24oJG91dHB1dCwgMCk7CiAgICAgICAgY2FzZSAnY29uZmlnLWRlbGV0ZSc6CiAgICAgICAgICAgIGlmIChpc3NldCgkdGhpcy0+Y2xpQXJnc1soJHBvcyArIDEpXSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgID0gJ0VSUk9SOiBEZWxldGluZyBhIGNvbmZpZyBvcHRpb24gcmVxdWlyZXMgdGhlIG5hbWUgb2YgdGhlIG9wdGlvbicuUEhQX0VPTC5QSFBfRU9MOwogICAgICAgICAgICAgICAgJGVycm9yIC49ICR0aGlzLT5wcmludFNob3J0VXNhZ2UodHJ1ZSk7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRGVlcEV4aXRFeGNlcHRpb24oJGVycm9yLCAzKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJG91dHB1dCA9ICdVc2luZyBjb25maWcgZmlsZTogJy5zZWxmOjokY29uZmlnRGF0YUZpbGUuUEhQX0VPTC5QSFBfRU9MOwoKICAgICAgICAgICAgJGtleSAgICAgPSAkdGhpcy0+Y2xpQXJnc1soJHBvcyArIDEpXTsKICAgICAgICAgICAgJGN1cnJlbnQgPSBzZWxmOjpnZXRDb25maWdEYXRhKCRrZXkpOwogICAgICAgICAgICBpZiAoJGN1cnJlbnQgPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICRvdXRwdXQgLj0gIkNvbmZpZyB2YWx1ZSBcIiRrZXlcIiBoYXMgbm90IGJlZW4gc2V0Ii5QSFBfRU9MOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c2V0Q29uZmlnRGF0YSgka2V5LCBudWxsKTsKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFxFeGNlcHRpb24gJGUpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRGVlcEV4aXRFeGNlcHRpb24oJGUtPmdldE1lc3NhZ2UoKS5QSFBfRU9MLCAzKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkb3V0cHV0IC49ICJDb25maWcgdmFsdWUgXCIka2V5XCIgcmVtb3ZlZCBzdWNjZXNzZnVsbHk7IG9sZCB2YWx1ZSB3YXMgXCIkY3VycmVudFwiIi5QSFBfRU9MOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkb3V0cHV0LCAwKTsKICAgICAgICBjYXNlICdjb25maWctc2hvdyc6CiAgICAgICAgICAgIG9iX3N0YXJ0KCk7CiAgICAgICAgICAgICRkYXRhID0gc2VsZjo6Z2V0QWxsQ29uZmlnRGF0YSgpOwogICAgICAgICAgICBlY2hvICdVc2luZyBjb25maWcgZmlsZTogJy5zZWxmOjokY29uZmlnRGF0YUZpbGUuUEhQX0VPTC5QSFBfRU9MOwogICAgICAgICAgICAkdGhpcy0+cHJpbnRDb25maWdEYXRhKCRkYXRhKTsKICAgICAgICAgICAgJG91dHB1dCA9IG9iX2dldF9jb250ZW50cygpOwogICAgICAgICAgICBvYl9lbmRfY2xlYW4oKTsKICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRvdXRwdXQsIDApOwogICAgICAgIGNhc2UgJ3J1bnRpbWUtc2V0JzoKICAgICAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5jbGlBcmdzWygkcG9zICsgMSldKSA9PT0gZmFsc2UKICAgICAgICAgICAgICAgIHx8IGlzc2V0KCR0aGlzLT5jbGlBcmdzWygkcG9zICsgMildKSA9PT0gZmFsc2UKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgID0gJ0VSUk9SOiBTZXR0aW5nIGEgcnVudGltZSBjb25maWcgb3B0aW9uIHJlcXVpcmVzIGEgbmFtZSBhbmQgdmFsdWUnLlBIUF9FT0wuUEhQX0VPTDsKICAgICAgICAgICAgICAgICRlcnJvciAuPSAkdGhpcy0+cHJpbnRTaG9ydFVzYWdlKHRydWUpOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRlcnJvciwgMyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRrZXkgICA9ICR0aGlzLT5jbGlBcmdzWygkcG9zICsgMSldOwogICAgICAgICAgICAkdmFsdWUgPSAkdGhpcy0+Y2xpQXJnc1soJHBvcyArIDIpXTsKICAgICAgICAgICAgJHRoaXMtPmNsaUFyZ3NbKCRwb3MgKyAxKV0gPSAnJzsKICAgICAgICAgICAgJHRoaXMtPmNsaUFyZ3NbKCRwb3MgKyAyKV0gPSAnJzsKICAgICAgICAgICAgc2VsZjo6c2V0Q29uZmlnRGF0YSgka2V5LCAkdmFsdWUsIHRydWUpOwogICAgICAgICAgICBpZiAoaXNzZXQoc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1sncnVudGltZS1zZXQnXSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICBzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydydW50aW1lLXNldCddID0gW107CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ3J1bnRpbWUtc2V0J11bJGtleV0gPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBpZiAoc3Vic3RyKCRhcmcsIDAsIDcpID09PSAnc25pZmZzPScpIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydzbmlmZnMnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkc25pZmZzID0gZXhwbG9kZSgnLCcsIHN1YnN0cigkYXJnLCA3KSk7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkc25pZmZzIGFzICRzbmlmZikgewogICAgICAgICAgICAgICAgICAgIGlmIChzdWJzdHJfY291bnQoJHNuaWZmLCAnLicpICE9PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRlcnJvciAgPSAnRVJST1I6IFRoZSBzcGVjaWZpZWQgc25pZmYgY29kZSAiJy4kc25pZmYuJyIgaXMgaW52YWxpZCcuUEhQX0VPTC5QSFBfRU9MOwogICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3IgLj0gJHRoaXMtPnByaW50U2hvcnRVc2FnZSh0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRlcnJvciwgMyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0aGlzLT5zbmlmZnMgPSAkc25pZmZzOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snc25pZmZzJ10gPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKHN1YnN0cigkYXJnLCAwLCA4KSA9PT0gJ2V4Y2x1ZGU9JykgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2V4Y2x1ZGUnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkc25pZmZzID0gZXhwbG9kZSgnLCcsIHN1YnN0cigkYXJnLCA4KSk7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkc25pZmZzIGFzICRzbmlmZikgewogICAgICAgICAgICAgICAgICAgIGlmIChzdWJzdHJfY291bnQoJHNuaWZmLCAnLicpICE9PSAyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRlcnJvciAgPSAnRVJST1I6IFRoZSBzcGVjaWZpZWQgc25pZmYgY29kZSAiJy4kc25pZmYuJyIgaXMgaW52YWxpZCcuUEhQX0VPTC5QSFBfRU9MOwogICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3IgLj0gJHRoaXMtPnByaW50U2hvcnRVc2FnZSh0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRlcnJvciwgMyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0aGlzLT5leGNsdWRlID0gJHNuaWZmczsKICAgICAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2V4Y2x1ZGUnXSA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVmaW5lZCgnUEhQX0NPREVTTklGRkVSX0lOX1RFU1RTJykgPT09IGZhbHNlCiAgICAgICAgICAgICAgICAmJiBzdWJzdHIoJGFyZywgMCwgNikgPT09ICdjYWNoZT0nCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgaWYgKChpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydjYWNoZSddKSA9PT0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICYmICR0aGlzLT5jYWNoZSA9PT0gZmFsc2UpCiAgICAgICAgICAgICAgICAgICAgfHwgaXNzZXQoc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snY2FjaGVGaWxlJ10pID09PSB0cnVlCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBUdXJuIGNhY2hpbmcgb24uCiAgICAgICAgICAgICAgICAkdGhpcy0+Y2FjaGUgPSB0cnVlOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snY2FjaGUnXSA9IHRydWU7CgogICAgICAgICAgICAgICAgJHRoaXMtPmNhY2hlRmlsZSA9IFV0aWxcQ29tbW9uOjpyZWFscGF0aChzdWJzdHIoJGFyZywgNikpOwoKICAgICAgICAgICAgICAgIC8vIEl0IG1heSBub3QgZXhpc3QgYW5kIHJldHVybiBmYWxzZSBpbnN0ZWFkLgogICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5jYWNoZUZpbGUgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNhY2hlRmlsZSA9IHN1YnN0cigkYXJnLCA2KTsKCiAgICAgICAgICAgICAgICAgICAgJGRpciA9IGRpcm5hbWUoJHRoaXMtPmNhY2hlRmlsZSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGlzX2RpcigkZGlyKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGVycm9yICA9ICdFUlJPUjogVGhlIHNwZWNpZmllZCBjYWNoZSBmaWxlIHBhdGggIicuJHRoaXMtPmNhY2hlRmlsZS4nIiBwb2ludHMgdG8gYSBub24tZXhpc3RlbnQgZGlyZWN0b3J5Jy5QSFBfRU9MLlBIUF9FT0w7CiAgICAgICAgICAgICAgICAgICAgICAgICRlcnJvciAuPSAkdGhpcy0+cHJpbnRTaG9ydFVzYWdlKHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRGVlcEV4aXRFeGNlcHRpb24oJGVycm9yLCAzKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICgkZGlyID09PSAnLicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGFzc2VkIGNhY2hlIGZpbGUgaXMgYSBmaWxlIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNhY2hlRmlsZSA9IGdldGN3ZCgpLicvJy5iYXNlbmFtZSgkdGhpcy0+Y2FjaGVGaWxlKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGRpclswXSA9PT0gJy8nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbiBhYnNvbHV0ZSBwYXRoLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRpciA9IFV0aWxcQ29tbW9uOjpyZWFscGF0aCgkZGlyKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkaXIgPSBVdGlsXENvbW1vbjo6cmVhbHBhdGgoZ2V0Y3dkKCkuJy8nLiRkaXIpOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGRpciAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENhY2hlIGZpbGUgcGF0aCBpcyByZWxhdGl2ZS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5jYWNoZUZpbGUgPSAkZGlyLicvJy5iYXNlbmFtZSgkdGhpcy0+Y2FjaGVGaWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0vL2VuZCBpZgoKICAgICAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2NhY2hlRmlsZSddID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICBpZiAoaXNfZGlyKCR0aGlzLT5jYWNoZUZpbGUpID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yICA9ICdFUlJPUjogVGhlIHNwZWNpZmllZCBjYWNoZSBmaWxlIHBhdGggIicuJHRoaXMtPmNhY2hlRmlsZS4nIiBpcyBhIGRpcmVjdG9yeScuUEhQX0VPTC5QSFBfRU9MOwogICAgICAgICAgICAgICAgICAgICRlcnJvciAuPSAkdGhpcy0+cHJpbnRTaG9ydFVzYWdlKHRydWUpOwogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkZXJyb3IsIDMpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKHN1YnN0cigkYXJnLCAwLCAxMCkgPT09ICdib290c3RyYXA9JykgewogICAgICAgICAgICAgICAgJGZpbGVzICAgICA9IGV4cGxvZGUoJywnLCBzdWJzdHIoJGFyZywgMTApKTsKICAgICAgICAgICAgICAgICRib290c3RyYXAgPSBbXTsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgewogICAgICAgICAgICAgICAgICAgICRwYXRoID0gVXRpbFxDb21tb246OnJlYWxwYXRoKCRmaWxlKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJHBhdGggPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRlcnJvciAgPSAnRVJST1I6IFRoZSBzcGVjaWZpZWQgYm9vdHN0cmFwIGZpbGUgIicuJGZpbGUuJyIgZG9lcyBub3QgZXhpc3QnLlBIUF9FT0wuUEhQX0VPTDsKICAgICAgICAgICAgICAgICAgICAgICAgJGVycm9yIC49ICR0aGlzLT5wcmludFNob3J0VXNhZ2UodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkZXJyb3IsIDMpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJGJvb3RzdHJhcFtdID0gJHBhdGg7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHRoaXMtPmJvb3RzdHJhcCA9IGFycmF5X21lcmdlKCR0aGlzLT5ib290c3RyYXAsICRib290c3RyYXApOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snYm9vdHN0cmFwJ10gPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKHN1YnN0cigkYXJnLCAwLCAxMCkgPT09ICdmaWxlLWxpc3Q9JykgewogICAgICAgICAgICAgICAgJGZpbGVMaXN0ID0gc3Vic3RyKCRhcmcsIDEwKTsKICAgICAgICAgICAgICAgICRwYXRoICAgICA9IFV0aWxcQ29tbW9uOjpyZWFscGF0aCgkZmlsZUxpc3QpOwogICAgICAgICAgICAgICAgaWYgKCRwYXRoID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICRlcnJvciAgPSAnRVJST1I6IFRoZSBzcGVjaWZpZWQgZmlsZSBsaXN0ICInLiRmaWxlTGlzdC4nIiBkb2VzIG5vdCBleGlzdCcuUEhQX0VPTC5QSFBfRU9MOwogICAgICAgICAgICAgICAgICAgICRlcnJvciAuPSAkdGhpcy0+cHJpbnRTaG9ydFVzYWdlKHRydWUpOwogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkZXJyb3IsIDMpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRmaWxlcyA9IGZpbGUoJHBhdGgpOwogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGZpbGVzIGFzICRpbnB1dEZpbGUpIHsKICAgICAgICAgICAgICAgICAgICAkaW5wdXRGaWxlID0gdHJpbSgkaW5wdXRGaWxlKTsKCiAgICAgICAgICAgICAgICAgICAgLy8gU2tpcCBlbXB0eSBsaW5lcy4KICAgICAgICAgICAgICAgICAgICBpZiAoJGlucHV0RmlsZSA9PT0gJycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cHJvY2Vzc0ZpbGVQYXRoKCRpbnB1dEZpbGUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKHN1YnN0cigkYXJnLCAwLCAxMSkgPT09ICdzdGRpbi1wYXRoPScpIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydzdGRpblBhdGgnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdGhpcy0+c3RkaW5QYXRoID0gVXRpbFxDb21tb246OnJlYWxwYXRoKHN1YnN0cigkYXJnLCAxMSkpOwoKICAgICAgICAgICAgICAgIC8vIEl0IG1heSBub3QgZXhpc3QgYW5kIHJldHVybiBmYWxzZSBpbnN0ZWFkLCBzbyB1c2Ugd2hhdGV2ZXIgdGhleSBnYXZlIHVzLgogICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5zdGRpblBhdGggPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnN0ZGluUGF0aCA9IHRyaW0oc3Vic3RyKCRhcmcsIDExKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snc3RkaW5QYXRoJ10gPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKFBIUF9DT0RFU05JRkZFUl9DQkYgPT09IGZhbHNlICYmIHN1YnN0cigkYXJnLCAwLCAxMikgPT09ICdyZXBvcnQtZmlsZT0nKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1sncmVwb3J0RmlsZSddKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0aGlzLT5yZXBvcnRGaWxlID0gVXRpbFxDb21tb246OnJlYWxwYXRoKHN1YnN0cigkYXJnLCAxMikpOwoKICAgICAgICAgICAgICAgIC8vIEl0IG1heSBub3QgZXhpc3QgYW5kIHJldHVybiBmYWxzZSBpbnN0ZWFkLgogICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5yZXBvcnRGaWxlID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5yZXBvcnRGaWxlID0gc3Vic3RyKCRhcmcsIDEyKTsKCiAgICAgICAgICAgICAgICAgICAgJGRpciA9IFV0aWxcQ29tbW9uOjpyZWFscGF0aChkaXJuYW1lKCR0aGlzLT5yZXBvcnRGaWxlKSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKGlzX2RpcigkZGlyKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGVycm9yICA9ICdFUlJPUjogVGhlIHNwZWNpZmllZCByZXBvcnQgZmlsZSBwYXRoICInLiR0aGlzLT5yZXBvcnRGaWxlLiciIHBvaW50cyB0byBhIG5vbi1leGlzdGVudCBkaXJlY3RvcnknLlBIUF9FT0wuUEhQX0VPTDsKICAgICAgICAgICAgICAgICAgICAgICAgJGVycm9yIC49ICR0aGlzLT5wcmludFNob3J0VXNhZ2UodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkZXJyb3IsIDMpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnJlcG9ydEZpbGUgPSAkZGlyLicvJy5iYXNlbmFtZSgkdGhpcy0+cmVwb3J0RmlsZSk7CiAgICAgICAgICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgICAgICAgICBzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydyZXBvcnRGaWxlJ10gPSB0cnVlOwoKICAgICAgICAgICAgICAgIGlmIChpc19kaXIoJHRoaXMtPnJlcG9ydEZpbGUpID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yICA9ICdFUlJPUjogVGhlIHNwZWNpZmllZCByZXBvcnQgZmlsZSBwYXRoICInLiR0aGlzLT5yZXBvcnRGaWxlLiciIGlzIGEgZGlyZWN0b3J5Jy5QSFBfRU9MLlBIUF9FT0w7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yIC49ICR0aGlzLT5wcmludFNob3J0VXNhZ2UodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRlcnJvciwgMyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3Vic3RyKCRhcmcsIDAsIDEzKSA9PT0gJ3JlcG9ydC13aWR0aD0nKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1sncmVwb3J0V2lkdGgnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdGhpcy0+cmVwb3J0V2lkdGggPSBzdWJzdHIoJGFyZywgMTMpOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1sncmVwb3J0V2lkdGgnXSA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3Vic3RyKCRhcmcsIDAsIDkpID09PSAnYmFzZXBhdGg9JykgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2Jhc2VwYXRoJ10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snYmFzZXBhdGgnXSA9IHRydWU7CgogICAgICAgICAgICAgICAgaWYgKHN1YnN0cigkYXJnLCA5KSA9PT0gJycpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YmFzZXBhdGggPSBudWxsOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0aGlzLT5iYXNlcGF0aCA9IFV0aWxcQ29tbW9uOjpyZWFscGF0aChzdWJzdHIoJGFyZywgOSkpOwoKICAgICAgICAgICAgICAgIC8vIEl0IG1heSBub3QgZXhpc3QgYW5kIHJldHVybiBmYWxzZSBpbnN0ZWFkLgogICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5iYXNlcGF0aCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+YmFzZXBhdGggPSBzdWJzdHIoJGFyZywgOSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKGlzX2RpcigkdGhpcy0+YmFzZXBhdGgpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICRlcnJvciAgPSAnRVJST1I6IFRoZSBzcGVjaWZpZWQgYmFzZXBhdGggIicuJHRoaXMtPmJhc2VwYXRoLiciIHBvaW50cyB0byBhIG5vbi1leGlzdGVudCBkaXJlY3RvcnknLlBIUF9FT0wuUEhQX0VPTDsKICAgICAgICAgICAgICAgICAgICAkZXJyb3IgLj0gJHRoaXMtPnByaW50U2hvcnRVc2FnZSh0cnVlKTsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRGVlcEV4aXRFeGNlcHRpb24oJGVycm9yLCAzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmICgoc3Vic3RyKCRhcmcsIDAsIDcpID09PSAncmVwb3J0PScgfHwgc3Vic3RyKCRhcmcsIDAsIDcpID09PSAncmVwb3J0LScpKSB7CiAgICAgICAgICAgICAgICAkcmVwb3J0cyA9IFtdOwoKICAgICAgICAgICAgICAgIGlmICgkYXJnWzZdID09PSAnLScpIHsKICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgcmVwb3J0IHdpdGggZmlsZSBvdXRwdXQuCiAgICAgICAgICAgICAgICAgICAgJHNwbGl0ID0gc3RycG9zKCRhcmcsICc9Jyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRzcGxpdCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlcG9ydCA9IHN1YnN0cigkYXJnLCA3KTsKICAgICAgICAgICAgICAgICAgICAgICAgJG91dHB1dCA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlcG9ydCA9IHN1YnN0cigkYXJnLCA3LCAoJHNwbGl0IC0gNykpOwogICAgICAgICAgICAgICAgICAgICAgICAkb3V0cHV0ID0gc3Vic3RyKCRhcmcsICgkc3BsaXQgKyAxKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkb3V0cHV0ID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG91dHB1dCA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGlyID0gVXRpbFxDb21tb246OnJlYWxwYXRoKGRpcm5hbWUoJG91dHB1dCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX2RpcigkZGlyKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3IgID0gJ0VSUk9SOiBUaGUgc3BlY2lmaWVkICcuJHJlcG9ydC4nIHJlcG9ydCBmaWxlIHBhdGggIicuJG91dHB1dC4nIiBwb2ludHMgdG8gYSBub24tZXhpc3RlbnQgZGlyZWN0b3J5Jy5QSFBfRU9MLlBIUF9FT0w7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVycm9yIC49ICR0aGlzLT5wcmludFNob3J0VXNhZ2UodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRlcnJvciwgMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG91dHB1dCA9ICRkaXIuJy8nLmJhc2VuYW1lKCRvdXRwdXQpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc19kaXIoJG91dHB1dCkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3IgID0gJ0VSUk9SOiBUaGUgc3BlY2lmaWVkICcuJHJlcG9ydC4nIHJlcG9ydCBmaWxlIHBhdGggIicuJG91dHB1dC4nIiBpcyBhIGRpcmVjdG9yeScuUEhQX0VPTC5QSFBfRU9MOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlcnJvciAuPSAkdGhpcy0+cHJpbnRTaG9ydFVzYWdlKHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkZXJyb3IsIDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9Ly9lbmQgaWYKICAgICAgICAgICAgICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgICAgICAgICAgICAgJHJlcG9ydHNbJHJlcG9ydF0gPSAkb3V0cHV0OwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgc2luZ2xlIHJlcG9ydC4KICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1sncmVwb3J0cyddKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRyZXBvcnROYW1lcyA9IGV4cGxvZGUoJywnLCBzdWJzdHIoJGFyZywgNykpOwogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRyZXBvcnROYW1lcyBhcyAkcmVwb3J0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXBvcnRzWyRyZXBvcnRdID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIGRlZmF1bHQgdmFsdWUgc28gdGhlIENMSSB2YWx1ZSBvdmVycmlkZXMgaXQuCiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1sncmVwb3J0cyddKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cmVwb3J0cyA9ICRyZXBvcnRzOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cmVwb3J0cyA9IGFycmF5X21lcmdlKCR0aGlzLT5yZXBvcnRzLCAkcmVwb3J0cyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1sncmVwb3J0cyddID0gdHJ1ZTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzdWJzdHIoJGFyZywgMCwgNykgPT09ICdmaWx0ZXI9JykgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2ZpbHRlciddKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0aGlzLT5maWx0ZXIgPSBzdWJzdHIoJGFyZywgNyk7CiAgICAgICAgICAgICAgICBzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydmaWx0ZXInXSA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3Vic3RyKCRhcmcsIDAsIDkpID09PSAnc3RhbmRhcmQ9JykgewogICAgICAgICAgICAgICAgJHN0YW5kYXJkcyA9IHRyaW0oc3Vic3RyKCRhcmcsIDkpKTsKICAgICAgICAgICAgICAgIGlmICgkc3RhbmRhcmRzICE9PSAnJykgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5zdGFuZGFyZHMgPSBleHBsb2RlKCcsJywgJHN0YW5kYXJkcyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snc3RhbmRhcmRzJ10gPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKHN1YnN0cigkYXJnLCAwLCAxMSkgPT09ICdleHRlbnNpb25zPScpIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydleHRlbnNpb25zJ10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGV4dGVuc2lvbnMgICAgPSBleHBsb2RlKCcsJywgc3Vic3RyKCRhcmcsIDExKSk7CiAgICAgICAgICAgICAgICAkbmV3RXh0ZW5zaW9ucyA9IFtdOwogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGV4dGVuc2lvbnMgYXMgJGV4dCkgewogICAgICAgICAgICAgICAgICAgICRzbGFzaCA9IHN0cnBvcygkZXh0LCAnLycpOwogICAgICAgICAgICAgICAgICAgIGlmICgkc2xhc2ggIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXkgc3BlY2lmaWVkIHRoZSB0b2tlbml6ZXIgdG9vLgogICAgICAgICAgICAgICAgICAgICAgICBsaXN0KCRleHQsICR0b2tlbml6ZXIpID0gZXhwbG9kZSgnLycsICRleHQpOwogICAgICAgICAgICAgICAgICAgICAgICAkbmV3RXh0ZW5zaW9uc1skZXh0XSAgID0gc3RydG91cHBlcigkdG9rZW5pemVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmV4dGVuc2lvbnNbJGV4dF0pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdFeHRlbnNpb25zWyRleHRdID0gJHRoaXMtPmV4dGVuc2lvbnNbJGV4dF07CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld0V4dGVuc2lvbnNbJGV4dF0gPSAnUEhQJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHRoaXMtPmV4dGVuc2lvbnMgPSAkbmV3RXh0ZW5zaW9uczsKICAgICAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2V4dGVuc2lvbnMnXSA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3Vic3RyKCRhcmcsIDAsIDcpID09PSAnc3VmZml4PScpIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydzdWZmaXgnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdGhpcy0+c3VmZml4ID0gc3Vic3RyKCRhcmcsIDcpOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snc3VmZml4J10gPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKHN1YnN0cigkYXJnLCAwLCA5KSA9PT0gJ3BhcmFsbGVsPScpIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydwYXJhbGxlbCddKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0aGlzLT5wYXJhbGxlbCA9IG1heCgoaW50KSBzdWJzdHIoJGFyZywgOSksIDEpOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1sncGFyYWxsZWwnXSA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3Vic3RyKCRhcmcsIDAsIDkpID09PSAnc2V2ZXJpdHk9JykgewogICAgICAgICAgICAgICAgJHRoaXMtPmVycm9yU2V2ZXJpdHkgICA9IChpbnQpIHN1YnN0cigkYXJnLCA5KTsKICAgICAgICAgICAgICAgICR0aGlzLT53YXJuaW5nU2V2ZXJpdHkgPSAkdGhpcy0+ZXJyb3JTZXZlcml0eTsKICAgICAgICAgICAgICAgIGlmIChpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydlcnJvclNldmVyaXR5J10pID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2Vycm9yU2V2ZXJpdHknXSA9IHRydWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ3dhcm5pbmdTZXZlcml0eSddKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICBzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWyd3YXJuaW5nU2V2ZXJpdHknXSA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3Vic3RyKCRhcmcsIDAsIDE1KSA9PT0gJ2Vycm9yLXNldmVyaXR5PScpIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydlcnJvclNldmVyaXR5J10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHRoaXMtPmVycm9yU2V2ZXJpdHkgPSAoaW50KSBzdWJzdHIoJGFyZywgMTUpOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snZXJyb3JTZXZlcml0eSddID0gdHJ1ZTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzdWJzdHIoJGFyZywgMCwgMTcpID09PSAnd2FybmluZy1zZXZlcml0eT0nKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snd2FybmluZ1NldmVyaXR5J10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHRoaXMtPndhcm5pbmdTZXZlcml0eSA9IChpbnQpIHN1YnN0cigkYXJnLCAxNyk7CiAgICAgICAgICAgICAgICBzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWyd3YXJuaW5nU2V2ZXJpdHknXSA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3Vic3RyKCRhcmcsIDAsIDcpID09PSAnaWdub3JlPScpIHsKICAgICAgICAgICAgICAgIGlmIChpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydpZ25vcmVkJ10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gU3BsaXQgdGhlIGlnbm9yZSBzdHJpbmcgb24gY29tbWFzLCB1bmxlc3MgdGhlIGNvbW1hIGlzIGVzY2FwZWQKICAgICAgICAgICAgICAgIC8vIHVzaW5nIDEgb3IgMyBzbGFzaGVzIChcLCBvciBcXFwsKS4KICAgICAgICAgICAgICAgICRwYXR0ZXJucyA9IHByZWdfc3BsaXQoCiAgICAgICAgICAgICAgICAgICAgJy8oPzw9KD88IVxcXFwpXFxcXFxcXFwpLHwoPzwhXFxcXCksLycsCiAgICAgICAgICAgICAgICAgICAgc3Vic3RyKCRhcmcsIDcpCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICRpZ25vcmVkID0gW107CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkcGF0dGVybnMgYXMgJHBhdHRlcm4pIHsKICAgICAgICAgICAgICAgICAgICAkcGF0dGVybiA9IHRyaW0oJHBhdHRlcm4pOwogICAgICAgICAgICAgICAgICAgIGlmICgkcGF0dGVybiA9PT0gJycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkaWdub3JlZFskcGF0dGVybl0gPSAnYWJzb2x1dGUnOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0aGlzLT5pZ25vcmVkID0gJGlnbm9yZWQ7CiAgICAgICAgICAgICAgICBzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydpZ25vcmVkJ10gPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKHN1YnN0cigkYXJnLCAwLCAxMCkgPT09ICdnZW5lcmF0b3I9JwogICAgICAgICAgICAgICAgJiYgUEhQX0NPREVTTklGRkVSX0NCRiA9PT0gZmFsc2UKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snZ2VuZXJhdG9yJ10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHRoaXMtPmdlbmVyYXRvciA9IHN1YnN0cigkYXJnLCAxMCk7CiAgICAgICAgICAgICAgICBzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydnZW5lcmF0b3InXSA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3Vic3RyKCRhcmcsIDAsIDkpID09PSAnZW5jb2Rpbmc9JykgewogICAgICAgICAgICAgICAgaWYgKGlzc2V0KHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2VuY29kaW5nJ10pID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHRoaXMtPmVuY29kaW5nID0gc3RydG9sb3dlcihzdWJzdHIoJGFyZywgOSkpOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1snZW5jb2RpbmcnXSA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3Vic3RyKCRhcmcsIDAsIDEwKSA9PT0gJ3RhYi13aWR0aD0nKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1sndGFiV2lkdGgnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkdGhpcy0+dGFiV2lkdGggPSAoaW50KSBzdWJzdHIoJGFyZywgMTApOwogICAgICAgICAgICAgICAgc2VsZjo6JG92ZXJyaWRkZW5EZWZhdWx0c1sndGFiV2lkdGgnXSA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmRpZU9uVW5rbm93bkFyZyA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAkZXFQb3MgPSBzdHJwb3MoJGFyZywgJz0nKTsKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGVxUG9zID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbHVlc1skYXJnXSA9ICRhcmc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdmFsdWUgPSBzdWJzdHIoJGFyZywgKCRlcVBvcyArIDEpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhcmcgICA9IHN1YnN0cigkYXJnLCAwLCAkZXFQb3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnZhbHVlc1skYXJnXSA9ICR2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gJGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gVmFsdWUgaXMgbm90IHZhbGlkLCBzbyBqdXN0IGlnbm9yZSBpdC4KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5wcm9jZXNzVW5rbm93bkFyZ3VtZW50KCctLScuJGFyZywgJHBvcyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0vL2VuZCBpZgogICAgICAgICAgICBicmVhazsKICAgICAgICB9Ly9lbmQgc3dpdGNoCgogICAgfS8vZW5kIHByb2Nlc3NMb25nQXJndW1lbnQoKQoKCiAgICAvKioKICAgICAqIFByb2Nlc3NlcyBhbiB1bmtub3duIGNvbW1hbmQgbGluZSBhcmd1bWVudC4KICAgICAqCiAgICAgKiBBc3N1bWVzIGFsbCB1bmtub3duIGFyZ3VtZW50cyBhcmUgZmlsZXMgYW5kIGZvbGRlcnMgdG8gY2hlY2suCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkYXJnIFRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQuCiAgICAgKiBAcGFyYW0gaW50ICAgICRwb3MgVGhlIHBvc2l0aW9uIG9mIHRoZSBhcmd1bWVudCBvbiB0aGUgY29tbWFuZCBsaW5lLgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICogQHRocm93cyBcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb24KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3NVbmtub3duQXJndW1lbnQoJGFyZywgJHBvcykKICAgIHsKICAgICAgICAvLyBXZSBkb24ndCBrbm93IGFib3V0IGFueSBhZGRpdGlvbmFsIHN3aXRjaGVzOyBqdXN0IGZpbGVzLgogICAgICAgIGlmICgkYXJnWzBdID09PSAnLScpIHsKICAgICAgICAgICAgaWYgKCR0aGlzLT5kaWVPblVua25vd25BcmcgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRlcnJvciAgPSAiRVJST1I6IG9wdGlvbiBcIiRhcmdcIiBub3Qga25vd24iLlBIUF9FT0wuUEhQX0VPTDsKICAgICAgICAgICAgJGVycm9yIC49ICR0aGlzLT5wcmludFNob3J0VXNhZ2UodHJ1ZSk7CiAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkZXJyb3IsIDMpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnByb2Nlc3NGaWxlUGF0aCgkYXJnKTsKCiAgICB9Ly9lbmQgcHJvY2Vzc1Vua25vd25Bcmd1bWVudCgpCgoKICAgIC8qKgogICAgICogUHJvY2Vzc2VzIGEgZmlsZSBwYXRoIGFuZCBhZGQgaXQgdG8gdGhlIGZpbGUgbGlzdC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoIFRoZSBwYXRoIHRvIHRoZSBmaWxlIHRvIGFkZC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqIEB0aHJvd3MgXFBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXERlZXBFeGl0RXhjZXB0aW9uCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzRmlsZVBhdGgoJHBhdGgpCiAgICB7CiAgICAgICAgLy8gSWYgd2UgYXJlIHByb2Nlc3NpbmcgU1RESU4sIGRvbid0IHJlY29yZCBhbnkgZmlsZXMgdG8gY2hlY2suCiAgICAgICAgaWYgKCR0aGlzLT5zdGRpbiA9PT0gdHJ1ZSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkZmlsZSA9IFV0aWxcQ29tbW9uOjpyZWFscGF0aCgkcGF0aCk7CiAgICAgICAgaWYgKGZpbGVfZXhpc3RzKCRmaWxlKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgaWYgKCR0aGlzLT5kaWVPblVua25vd25BcmcgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRlcnJvciAgPSAnRVJST1I6IFRoZSBmaWxlICInLiRwYXRoLiciIGRvZXMgbm90IGV4aXN0LicuUEhQX0VPTC5QSFBfRU9MOwogICAgICAgICAgICAkZXJyb3IgLj0gJHRoaXMtPnByaW50U2hvcnRVc2FnZSh0cnVlKTsKICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRlcnJvciwgMyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gQ2FuJ3QgbW9kaWZ5IHRoZSBmaWxlcyBhcnJheSBkaXJlY3RseSBiZWNhdXNlIGl0J3Mgbm90IGEgcmVhbAogICAgICAgICAgICAvLyBjbGFzcyBtZW1iZXIsIHNvIG5lZWQgdG8gdXNlIHRoaXMgbGl0dGxlIGdldC9tb2RpZnkvc2V0IHRyaWNrLgogICAgICAgICAgICAkZmlsZXMgICAgICAgPSAkdGhpcy0+ZmlsZXM7CiAgICAgICAgICAgICRmaWxlc1tdICAgICA9ICRmaWxlOwogICAgICAgICAgICAkdGhpcy0+ZmlsZXMgPSAkZmlsZXM7CiAgICAgICAgICAgIHNlbGY6OiRvdmVycmlkZGVuRGVmYXVsdHNbJ2ZpbGVzJ10gPSB0cnVlOwogICAgICAgIH0KCiAgICB9Ly9lbmQgcHJvY2Vzc0ZpbGVQYXRoKCkKCgogICAgLyoqCiAgICAgKiBQcmludHMgb3V0IHRoZSB1c2FnZSBpbmZvcm1hdGlvbiBmb3IgdGhpcyBzY3JpcHQuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBwcmludFVzYWdlKCkKICAgIHsKICAgICAgICBlY2hvIFBIUF9FT0w7CgogICAgICAgIGlmIChQSFBfQ09ERVNOSUZGRVJfQ0JGID09PSB0cnVlKSB7CiAgICAgICAgICAgICR0aGlzLT5wcmludFBIUENCRlVzYWdlKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPnByaW50UEhQQ1NVc2FnZSgpOwogICAgICAgIH0KCiAgICAgICAgZWNobyBQSFBfRU9MOwoKICAgIH0vL2VuZCBwcmludFVzYWdlKCkKCgogICAgLyoqCiAgICAgKiBQcmludHMgb3V0IHRoZSBzaG9ydCB1c2FnZSBpbmZvcm1hdGlvbiBmb3IgdGhpcyBzY3JpcHQuCiAgICAgKgogICAgICogQHBhcmFtIGJvb2wgJHJldHVybiBJZiBUUlVFLCB0aGUgdXNhZ2Ugc3RyaW5nIGlzIHJldHVybmVkCiAgICAgKiAgICAgICAgICAgICAgICAgICAgIGluc3RlYWQgb2Ygb3V0cHV0IHRvIHNjcmVlbi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZ3x2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBwcmludFNob3J0VXNhZ2UoJHJldHVybj1mYWxzZSkKICAgIHsKICAgICAgICBpZiAoUEhQX0NPREVTTklGRkVSX0NCRiA9PT0gdHJ1ZSkgewogICAgICAgICAgICAkdXNhZ2UgPSAnUnVuICJwaHBjYmYgLS1oZWxwIiBmb3IgdXNhZ2UgaW5mb3JtYXRpb24nOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR1c2FnZSA9ICdSdW4gInBocGNzIC0taGVscCIgZm9yIHVzYWdlIGluZm9ybWF0aW9uJzsKICAgICAgICB9CgogICAgICAgICR1c2FnZSAuPSBQSFBfRU9MLlBIUF9FT0w7CgogICAgICAgIGlmICgkcmV0dXJuID09PSB0cnVlKSB7CiAgICAgICAgICAgIHJldHVybiAkdXNhZ2U7CiAgICAgICAgfQoKICAgICAgICBlY2hvICR1c2FnZTsKCiAgICB9Ly9lbmQgcHJpbnRTaG9ydFVzYWdlKCkKCgogICAgLyoqCiAgICAgKiBQcmludHMgb3V0IHRoZSB1c2FnZSBpbmZvcm1hdGlvbiBmb3IgUEhQQ1MuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBwcmludFBIUENTVXNhZ2UoKQogICAgewogICAgICAgIGVjaG8gJ1VzYWdlOiBwaHBjcyBbLW53bHNhZXBxdmldIFstZCBrZXlbPXZhbHVlXV0gWy0tY29sb3JzXSBbLS1uby1jb2xvcnNdJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAgWy0tY2FjaGVbPTxjYWNoZUZpbGU+XV0gWy0tbm8tY2FjaGVdIFstLXRhYi13aWR0aD08dGFiV2lkdGg+XScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgIFstLXJlcG9ydD08cmVwb3J0Pl0gWy0tcmVwb3J0LWZpbGU9PHJlcG9ydEZpbGU+XSBbLS1yZXBvcnQtPHJlcG9ydD49PHJlcG9ydEZpbGU+XScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgIFstLXJlcG9ydC13aWR0aD08cmVwb3J0V2lkdGg+XSBbLS1iYXNlcGF0aD08YmFzZXBhdGg+XSBbLS1ib290c3RyYXA9PGJvb3RzdHJhcD5dJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAgWy0tc2V2ZXJpdHk9PHNldmVyaXR5Pl0gWy0tZXJyb3Itc2V2ZXJpdHk9PHNldmVyaXR5Pl0gWy0td2FybmluZy1zZXZlcml0eT08c2V2ZXJpdHk+XScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgIFstLXJ1bnRpbWUtc2V0IGtleSB2YWx1ZV0gWy0tY29uZmlnLXNldCBrZXkgdmFsdWVdIFstLWNvbmZpZy1kZWxldGUga2V5XSBbLS1jb25maWctc2hvd10nLlBIUF9FT0w7CiAgICAgICAgZWNobyAnICBbLS1zdGFuZGFyZD08c3RhbmRhcmQ+XSBbLS1zbmlmZnM9PHNuaWZmcz5dIFstLWV4Y2x1ZGU9PHNuaWZmcz5dJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAgWy0tZW5jb2Rpbmc9PGVuY29kaW5nPl0gWy0tcGFyYWxsZWw9PHByb2Nlc3Nlcz5dIFstLWdlbmVyYXRvcj08Z2VuZXJhdG9yPl0nLlBIUF9FT0w7CiAgICAgICAgZWNobyAnICBbLS1leHRlbnNpb25zPTxleHRlbnNpb25zPl0gWy0taWdub3JlPTxwYXR0ZXJucz5dIFstLWlnbm9yZS1hbm5vdGF0aW9uc10nLlBIUF9FT0w7CiAgICAgICAgZWNobyAnICBbLS1zdGRpbi1wYXRoPTxzdGRpblBhdGg+XSBbLS1maWxlLWxpc3Q9PGZpbGVMaXN0Pl0gWy0tZmlsdGVyPTxmaWx0ZXI+XSA8ZmlsZT4gLSAuLi4nLlBIUF9FT0w7CiAgICAgICAgZWNobyBQSFBfRU9MOwogICAgICAgIGVjaG8gJyAtICAgICBDaGVjayBTVERJTiBpbnN0ZWFkIG9mIGxvY2FsIGZpbGVzIGFuZCBkaXJlY3RvcmllcycuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLW4gICAgRG8gbm90IHByaW50IHdhcm5pbmdzIChzaG9ydGN1dCBmb3IgLS13YXJuaW5nLXNldmVyaXR5PTApJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAtdyAgICBQcmludCBib3RoIHdhcm5pbmdzIGFuZCBlcnJvcnMgKHRoaXMgaXMgdGhlIGRlZmF1bHQpJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAtbCAgICBMb2NhbCBkaXJlY3Rvcnkgb25seSwgbm8gcmVjdXJzaW9uJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAtcyAgICBTaG93IHNuaWZmIGNvZGVzIGluIGFsbCByZXBvcnRzJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAtYSAgICBSdW4gaW50ZXJhY3RpdmVseScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLWUgICAgRXhwbGFpbiBhIHN0YW5kYXJkIGJ5IHNob3dpbmcgdGhlIHNuaWZmcyBpdCBpbmNsdWRlcycuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLXAgICAgU2hvdyBwcm9ncmVzcyBvZiB0aGUgcnVuJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAtcSAgICBRdWlldCBtb2RlOyBkaXNhYmxlcyBwcm9ncmVzcyBhbmQgdmVyYm9zZSBvdXRwdXQnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIC1tICAgIFN0b3AgZXJyb3IgbWVzc2FnZXMgZnJvbSBiZWluZyByZWNvcmRlZCcuUEhQX0VPTDsKICAgICAgICBlY2hvICcgICAgICAgKHNhdmVzIGEgbG90IG9mIG1lbW9yeSwgYnV0IHN0b3BzIG1hbnkgcmVwb3J0cyBmcm9tIGJlaW5nIHVzZWQpJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAtdiAgICBQcmludCBwcm9jZXNzZWQgZmlsZXMnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIC12diAgIFByaW50IHJ1bGVzZXQgYW5kIHRva2VuIG91dHB1dCcuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLXZ2diAgUHJpbnQgc25pZmYgcHJvY2Vzc2luZyBpbmZvcm1hdGlvbicuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLWkgICAgU2hvdyBhIGxpc3Qgb2YgaW5zdGFsbGVkIGNvZGluZyBzdGFuZGFyZHMnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIC1kICAgIFNldCB0aGUgW2tleV0gcGhwLmluaSB2YWx1ZSB0byBbdmFsdWVdIG9yIFt0cnVlXSBpZiB2YWx1ZSBpcyBvbWl0dGVkJy5QSFBfRU9MOwogICAgICAgIGVjaG8gUEhQX0VPTDsKICAgICAgICBlY2hvICcgLS1oZWxwICAgICAgICAgICAgICAgIFByaW50IHRoaXMgaGVscCBtZXNzYWdlJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAtLXZlcnNpb24gICAgICAgICAgICAgUHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbicuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLS1jb2xvcnMgICAgICAgICAgICAgIFVzZSBjb2xvcnMgaW4gb3V0cHV0Jy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAtLW5vLWNvbG9ycyAgICAgICAgICAgRG8gbm90IHVzZSBjb2xvcnMgaW4gb3V0cHV0ICh0aGlzIGlzIHRoZSBkZWZhdWx0KScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLS1jYWNoZSAgICAgICAgICAgICAgIENhY2hlIHJlc3VsdHMgYmV0d2VlbiBydW5zJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAtLW5vLWNhY2hlICAgICAgICAgICAgRG8gbm90IGNhY2hlIHJlc3VsdHMgYmV0d2VlbiBydW5zICh0aGlzIGlzIHRoZSBkZWZhdWx0KScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLS1pZ25vcmUtYW5ub3RhdGlvbnMgIElnbm9yZSBhbGwgcGhwY3M6IGFubm90YXRpb25zIGluIGNvZGUgY29tbWVudHMnLlBIUF9FT0w7CiAgICAgICAgZWNobyBQSFBfRU9MOwogICAgICAgIGVjaG8gJyA8Y2FjaGVGaWxlPiAgICBVc2UgYSBzcGVjaWZpYyBmaWxlIGZvciBjYWNoaW5nICh1c2VzIGEgdGVtcG9yYXJ5IGZpbGUgYnkgZGVmYXVsdCknLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIDxiYXNlcGF0aD4gICAgIEEgcGF0aCB0byBzdHJpcCBmcm9tIHRoZSBmcm9udCBvZiBmaWxlIHBhdGhzIGluc2lkZSByZXBvcnRzJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8Ym9vdHN0cmFwPiAgICBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpbGVzIHRvIHJ1biBiZWZvcmUgcHJvY2Vzc2luZyBiZWdpbnMnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIDxlbmNvZGluZz4gICAgIFRoZSBlbmNvZGluZyBvZiB0aGUgZmlsZXMgYmVpbmcgY2hlY2tlZCAoZGVmYXVsdCBpcyB1dGYtOCknLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIDxleHRlbnNpb25zPiAgIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmlsZSBleHRlbnNpb25zIHRvIGNoZWNrJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAgICAgICAgICAgICAgICBUaGUgdHlwZSBvZiB0aGUgZmlsZSBjYW4gYmUgc3BlY2lmaWVkIHVzaW5nOiBleHQvdHlwZScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgICAgICAgICAgICAgICAgZS5nLiwgbW9kdWxlL3BocCxlcy9qcycuUEhQX0VPTDsKICAgICAgICBlY2hvICcgPGZpbGU+ICAgICAgICAgT25lIG9yIG1vcmUgZmlsZXMgYW5kL29yIGRpcmVjdG9yaWVzIHRvIGNoZWNrJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8ZmlsZUxpc3Q+ICAgICBBIGZpbGUgY29udGFpbmluZyBhIGxpc3Qgb2YgZmlsZXMgYW5kL29yIGRpcmVjdG9yaWVzIHRvIGNoZWNrIChvbmUgcGVyIGxpbmUpJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8ZmlsdGVyPiAgICAgICBVc2UgZWl0aGVyIHRoZSAiZ2l0bW9kaWZpZWQiIG9yICJnaXRzdGFnZWQiIGZpbHRlciwnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnICAgICAgICAgICAgICAgIG9yIHNwZWNpZnkgdGhlIHBhdGggdG8gYSBjdXN0b20gZmlsdGVyIGNsYXNzJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8Z2VuZXJhdG9yPiAgICBVc2UgZWl0aGVyIHRoZSAiSFRNTCIsICJNYXJrZG93biIgb3IgIlRleHQiIGdlbmVyYXRvcicuUEhQX0VPTDsKICAgICAgICBlY2hvICcgICAgICAgICAgICAgICAgKGZvcmNlcyBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gaW5zdGVhZCBvZiBjaGVja2luZyknLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIDxwYXR0ZXJucz4gICAgIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgcGF0dGVybnMgdG8gaWdub3JlIGZpbGVzIGFuZCBkaXJlY3RvcmllcycuUEhQX0VPTDsKICAgICAgICBlY2hvICcgPHByb2Nlc3Nlcz4gICAgSG93IG1hbnkgZmlsZXMgc2hvdWxkIGJlIGNoZWNrZWQgc2ltdWx0YW5lb3VzbHkgKGRlZmF1bHQgaXMgMSknLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIDxyZXBvcnQ+ICAgICAgIFByaW50IGVpdGhlciB0aGUgImZ1bGwiLCAieG1sIiwgImNoZWNrc3R5bGUiLCAiY3N2IicuUEhQX0VPTDsKICAgICAgICBlY2hvICcgICAgICAgICAgICAgICAgImpzb24iLCAianVuaXQiLCAiZW1hY3MiLCAic291cmNlIiwgInN1bW1hcnkiLCAiZGlmZiInLlBIUF9FT0w7CiAgICAgICAgZWNobyAnICAgICAgICAgICAgICAgICJzdm5ibGFtZSIsICJnaXRibGFtZSIsICJoZ2JsYW1lIiBvciAibm90aWZ5c2VuZCIgcmVwb3J0LCcuUEhQX0VPTDsKICAgICAgICBlY2hvICcgICAgICAgICAgICAgICAgb3Igc3BlY2lmeSB0aGUgcGF0aCB0byBhIGN1c3RvbSByZXBvcnQgY2xhc3MnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnICAgICAgICAgICAgICAgICh0aGUgImZ1bGwiIHJlcG9ydCBpcyBwcmludGVkIGJ5IGRlZmF1bHQpJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8cmVwb3J0RmlsZT4gICBXcml0ZSB0aGUgcmVwb3J0IHRvIHRoZSBzcGVjaWZpZWQgZmlsZSBwYXRoJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8cmVwb3J0V2lkdGg+ICBIb3cgbWFueSBjb2x1bW5zIHdpZGUgc2NyZWVuIHJlcG9ydHMgc2hvdWxkIGJlIHByaW50ZWQnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnICAgICAgICAgICAgICAgIG9yIHNldCB0byAiYXV0byIgdG8gdXNlIGN1cnJlbnQgc2NyZWVuIHdpZHRoLCB3aGVyZSBzdXBwb3J0ZWQnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIDxzZXZlcml0eT4gICAgIFRoZSBtaW5pbXVtIHNldmVyaXR5IHJlcXVpcmVkIHRvIGRpc3BsYXkgYW4gZXJyb3Igb3Igd2FybmluZycuUEhQX0VPTDsKICAgICAgICBlY2hvICcgPHNuaWZmcz4gICAgICAgQSBjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiBzbmlmZiBjb2RlcyB0byBpbmNsdWRlIG9yIGV4Y2x1ZGUgZnJvbSBjaGVja2luZycuUEhQX0VPTDsKICAgICAgICBlY2hvICcgICAgICAgICAgICAgICAgKGFsbCBzbmlmZnMgbXVzdCBiZSBwYXJ0IG9mIHRoZSBzcGVjaWZpZWQgc3RhbmRhcmQpJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8c3RhbmRhcmQ+ICAgICBUaGUgbmFtZSBvciBwYXRoIG9mIHRoZSBjb2Rpbmcgc3RhbmRhcmQgdG8gdXNlJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8c3RkaW5QYXRoPiAgICBJZiBwcm9jZXNzaW5nIFNURElOLCB0aGUgZmlsZSBwYXRoIHRoYXQgU1RESU4gd2lsbCBiZSBwcm9jZXNzZWQgYXMnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIDx0YWJXaWR0aD4gICAgIFRoZSBudW1iZXIgb2Ygc3BhY2VzIGVhY2ggdGFiIHJlcHJlc2VudHMnLlBIUF9FT0w7CgogICAgfS8vZW5kIHByaW50UEhQQ1NVc2FnZSgpCgoKICAgIC8qKgogICAgICogUHJpbnRzIG91dCB0aGUgdXNhZ2UgaW5mb3JtYXRpb24gZm9yIFBIUENCRi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHByaW50UEhQQ0JGVXNhZ2UoKQogICAgewogICAgICAgIGVjaG8gJ1VzYWdlOiBwaHBjYmYgWy1ud2xpXSBbLWQga2V5Wz12YWx1ZV1dIFstLWlnbm9yZS1hbm5vdGF0aW9uc10gWy0tYm9vdHN0cmFwPTxib290c3RyYXA+XScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgIFstLXN0YW5kYXJkPTxzdGFuZGFyZD5dIFstLXNuaWZmcz08c25pZmZzPl0gWy0tZXhjbHVkZT08c25pZmZzPl0gWy0tc3VmZml4PTxzdWZmaXg+XScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgIFstLXNldmVyaXR5PTxzZXZlcml0eT5dIFstLWVycm9yLXNldmVyaXR5PTxzZXZlcml0eT5dIFstLXdhcm5pbmctc2V2ZXJpdHk9PHNldmVyaXR5Pl0nLlBIUF9FT0w7CiAgICAgICAgZWNobyAnICBbLS10YWItd2lkdGg9PHRhYldpZHRoPl0gWy0tZW5jb2Rpbmc9PGVuY29kaW5nPl0gWy0tcGFyYWxsZWw9PHByb2Nlc3Nlcz5dJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAgWy0tYmFzZXBhdGg9PGJhc2VwYXRoPl0gWy0tZXh0ZW5zaW9ucz08ZXh0ZW5zaW9ucz5dIFstLWlnbm9yZT08cGF0dGVybnM+XScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgIFstLXN0ZGluLXBhdGg9PHN0ZGluUGF0aD5dIFstLWZpbGUtbGlzdD08ZmlsZUxpc3Q+XSBbLS1maWx0ZXI9PGZpbHRlcj5dIDxmaWxlPiAtIC4uLicuUEhQX0VPTDsKICAgICAgICBlY2hvIFBIUF9FT0w7CiAgICAgICAgZWNobyAnIC0gICAgIEZpeCBTVERJTiBpbnN0ZWFkIG9mIGxvY2FsIGZpbGVzIGFuZCBkaXJlY3RvcmllcycuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLW4gICAgRG8gbm90IGZpeCB3YXJuaW5ncyAoc2hvcnRjdXQgZm9yIC0td2FybmluZy1zZXZlcml0eT0wKScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLXcgICAgRml4IGJvdGggd2FybmluZ3MgYW5kIGVycm9ycyAob24gYnkgZGVmYXVsdCknLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIC1sICAgIExvY2FsIGRpcmVjdG9yeSBvbmx5LCBubyByZWN1cnNpb24nLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIC1wICAgIFNob3cgcHJvZ3Jlc3Mgb2YgdGhlIHJ1bicuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLXEgICAgUXVpZXQgbW9kZTsgZGlzYWJsZXMgcHJvZ3Jlc3MgYW5kIHZlcmJvc2Ugb3V0cHV0Jy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAtdiAgICBQcmludCBwcm9jZXNzZWQgZmlsZXMnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIC12diAgIFByaW50IHJ1bGVzZXQgYW5kIHRva2VuIG91dHB1dCcuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLXZ2diAgUHJpbnQgc25pZmYgcHJvY2Vzc2luZyBpbmZvcm1hdGlvbicuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLWkgICAgU2hvdyBhIGxpc3Qgb2YgaW5zdGFsbGVkIGNvZGluZyBzdGFuZGFyZHMnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIC1kICAgIFNldCB0aGUgW2tleV0gcGhwLmluaSB2YWx1ZSB0byBbdmFsdWVdIG9yIFt0cnVlXSBpZiB2YWx1ZSBpcyBvbWl0dGVkJy5QSFBfRU9MOwogICAgICAgIGVjaG8gUEhQX0VPTDsKICAgICAgICBlY2hvICcgLS1oZWxwICAgICAgICAgICAgICAgIFByaW50IHRoaXMgaGVscCBtZXNzYWdlJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAtLXZlcnNpb24gICAgICAgICAgICAgUHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbicuUEhQX0VPTDsKICAgICAgICBlY2hvICcgLS1pZ25vcmUtYW5ub3RhdGlvbnMgIElnbm9yZSBhbGwgcGhwY3M6IGFubm90YXRpb25zIGluIGNvZGUgY29tbWVudHMnLlBIUF9FT0w7CiAgICAgICAgZWNobyBQSFBfRU9MOwogICAgICAgIGVjaG8gJyA8YmFzZXBhdGg+ICAgIEEgcGF0aCB0byBzdHJpcCBmcm9tIHRoZSBmcm9udCBvZiBmaWxlIHBhdGhzIGluc2lkZSByZXBvcnRzJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8Ym9vdHN0cmFwPiAgIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgZmlsZXMgdG8gcnVuIGJlZm9yZSBwcm9jZXNzaW5nIGJlZ2lucycuUEhQX0VPTDsKICAgICAgICBlY2hvICcgPGVuY29kaW5nPiAgICBUaGUgZW5jb2Rpbmcgb2YgdGhlIGZpbGVzIGJlaW5nIGZpeGVkIChkZWZhdWx0IGlzIHV0Zi04KScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgPGV4dGVuc2lvbnM+ICBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIGZpbGUgZXh0ZW5zaW9ucyB0byBmaXgnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnICAgICAgICAgICAgICAgVGhlIHR5cGUgb2YgdGhlIGZpbGUgY2FuIGJlIHNwZWNpZmllZCB1c2luZzogZXh0L3R5cGUnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnICAgICAgICAgICAgICAgZS5nLiwgbW9kdWxlL3BocCxlcy9qcycuUEhQX0VPTDsKICAgICAgICBlY2hvICcgPGZpbGU+ICAgICAgICBPbmUgb3IgbW9yZSBmaWxlcyBhbmQvb3IgZGlyZWN0b3JpZXMgdG8gZml4Jy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8ZmlsZUxpc3Q+ICAgIEEgZmlsZSBjb250YWluaW5nIGEgbGlzdCBvZiBmaWxlcyBhbmQvb3IgZGlyZWN0b3JpZXMgdG8gZml4IChvbmUgcGVyIGxpbmUpJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8ZmlsdGVyPiAgICAgIFVzZSBlaXRoZXIgdGhlICJnaXRtb2RpZmllZCIgb3IgImdpdHN0YWdlZCIgZmlsdGVyLCcuUEhQX0VPTDsKICAgICAgICBlY2hvICcgICAgICAgICAgICAgICBvciBzcGVjaWZ5IHRoZSBwYXRoIHRvIGEgY3VzdG9tIGZpbHRlciBjbGFzcycuUEhQX0VPTDsKICAgICAgICBlY2hvICcgPHBhdHRlcm5zPiAgICBBIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHBhdHRlcm5zIHRvIGlnbm9yZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMnLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIDxwcm9jZXNzZXM+ICAgSG93IG1hbnkgZmlsZXMgc2hvdWxkIGJlIGZpeGVkIHNpbXVsdGFuZW91c2x5IChkZWZhdWx0IGlzIDEpJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8c2V2ZXJpdHk+ICAgIFRoZSBtaW5pbXVtIHNldmVyaXR5IHJlcXVpcmVkIHRvIGZpeCBhbiBlcnJvciBvciB3YXJuaW5nJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8c25pZmZzPiAgICAgIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2Ygc25pZmYgY29kZXMgdG8gaW5jbHVkZSBvciBleGNsdWRlIGZyb20gZml4aW5nJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAgICAgICAgICAgICAgIChhbGwgc25pZmZzIG11c3QgYmUgcGFydCBvZiB0aGUgc3BlY2lmaWVkIHN0YW5kYXJkKScuUEhQX0VPTDsKICAgICAgICBlY2hvICcgPHN0YW5kYXJkPiAgICBUaGUgbmFtZSBvciBwYXRoIG9mIHRoZSBjb2Rpbmcgc3RhbmRhcmQgdG8gdXNlJy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyA8c3RkaW5QYXRoPiAgIElmIHByb2Nlc3NpbmcgU1RESU4sIHRoZSBmaWxlIHBhdGggdGhhdCBTVERJTiB3aWxsIGJlIHByb2Nlc3NlZCBhcycuUEhQX0VPTDsKICAgICAgICBlY2hvICcgPHN1ZmZpeD4gICAgICBXcml0ZSBtb2RpZmllZCBmaWxlcyB0byBhIGZpbGVuYW1lIHVzaW5nIHRoaXMgc3VmZml4Jy5QSFBfRU9MOwogICAgICAgIGVjaG8gJyAgICAgICAgICAgICAgICgiZGlmZiIgYW5kICJwYXRjaCIgYXJlIG5vdCB1c2VkIGluIHRoaXMgbW9kZSknLlBIUF9FT0w7CiAgICAgICAgZWNobyAnIDx0YWJXaWR0aD4gICAgVGhlIG51bWJlciBvZiBzcGFjZXMgZWFjaCB0YWIgcmVwcmVzZW50cycuUEhQX0VPTDsKCiAgICB9Ly9lbmQgcHJpbnRQSFBDQkZVc2FnZSgpCgoKICAgIC8qKgogICAgICogR2V0IGEgc2luZ2xlIGNvbmZpZyB2YWx1ZS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRrZXkgVGhlIG5hbWUgb2YgdGhlIGNvbmZpZyB2YWx1ZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZ3xudWxsCiAgICAgKiBAc2VlICAgIHNldENvbmZpZ0RhdGEoKQogICAgICogQHNlZSAgICBnZXRBbGxDb25maWdEYXRhKCkKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRDb25maWdEYXRhKCRrZXkpCiAgICB7CiAgICAgICAgJHBocENvZGVTbmlmZmVyQ29uZmlnID0gc2VsZjo6Z2V0QWxsQ29uZmlnRGF0YSgpOwoKICAgICAgICBpZiAoJHBocENvZGVTbmlmZmVyQ29uZmlnID09PSBudWxsKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRwaHBDb2RlU25pZmZlckNvbmZpZ1ska2V5XSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRwaHBDb2RlU25pZmZlckNvbmZpZ1ska2V5XTsKCiAgICB9Ly9lbmQgZ2V0Q29uZmlnRGF0YSgpCgoKICAgIC8qKgogICAgICogR2V0IHRoZSBwYXRoIHRvIGFuIGV4ZWN1dGFibGUgdXRpbGl0eS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIFRoZSBuYW1lIG9mIHRoZSBleGVjdXRhYmxlIHV0aWxpdHkuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmd8bnVsbAogICAgICogQHNlZSAgICBnZXRDb25maWdEYXRhKCkKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRFeGVjdXRhYmxlUGF0aCgkbmFtZSkKICAgIHsKICAgICAgICAkZGF0YSA9IHNlbGY6OmdldENvbmZpZ0RhdGEoJG5hbWUuJ19wYXRoJyk7CiAgICAgICAgaWYgKCRkYXRhICE9PSBudWxsKSB7CiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKICAgICAgICB9CgogICAgICAgIGlmICgkbmFtZSA9PT0gInBocCIpIHsKICAgICAgICAgICAgLy8gRm9yIHBocCwgd2Uga25vdyB0aGUgZXhlY3V0YWJsZSBwYXRoLiBUaGVyZSdzIG5vIG5lZWQgdG8gbG9vayBpdCB1cC4KICAgICAgICAgICAgcmV0dXJuIFBIUF9CSU5BUlk7CiAgICAgICAgfQoKICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkbmFtZSwgc2VsZjo6JGV4ZWN1dGFibGVQYXRocykgPT09IHRydWUpIHsKICAgICAgICAgICAgcmV0dXJuIHNlbGY6OiRleGVjdXRhYmxlUGF0aHNbJG5hbWVdOwogICAgICAgIH0KCiAgICAgICAgaWYgKHN0cmlwb3MoUEhQX09TLCAnV0lOJykgPT09IDApIHsKICAgICAgICAgICAgJGNtZCA9ICd3aGVyZSAnLmVzY2FwZXNoZWxsYXJnKCRuYW1lKS4nIDI+IG51bCc7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGNtZCA9ICd3aGljaCAnLmVzY2FwZXNoZWxsYXJnKCRuYW1lKS4nIDI+IC9kZXYvbnVsbCc7CiAgICAgICAgfQoKICAgICAgICAkcmVzdWx0ID0gZXhlYygkY21kLCAkb3V0cHV0LCAkcmV0VmFsKTsKICAgICAgICBpZiAoJHJldFZhbCAhPT0gMCkgewogICAgICAgICAgICAkcmVzdWx0ID0gbnVsbDsKICAgICAgICB9CgogICAgICAgIHNlbGY6OiRleGVjdXRhYmxlUGF0aHNbJG5hbWVdID0gJHJlc3VsdDsKICAgICAgICByZXR1cm4gJHJlc3VsdDsKCiAgICB9Ly9lbmQgZ2V0RXhlY3V0YWJsZVBhdGgoKQoKCiAgICAvKioKICAgICAqIFNldCBhIHNpbmdsZSBjb25maWcgdmFsdWUuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgICAgICRrZXkgICBUaGUgbmFtZSBvZiB0aGUgY29uZmlnIHZhbHVlLgogICAgICogQHBhcmFtIHN0cmluZ3xudWxsICR2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0LiBJZiBudWxsLCB0aGUgY29uZmlnCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5IGlzIGRlbGV0ZWQsIHJldmVydGluZyBpdCB0byB0aGUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdCB2YWx1ZS4KICAgICAqIEBwYXJhbSBib29sZWFuICAgICAkdGVtcCAgU2V0IHRoaXMgY29uZmlnIGRhdGEgdGVtcG9yYXJpbHkgZm9yIHRoaXMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0IHJ1bi4gVGhpcyB3aWxsIG5vdCB3cml0ZSB0aGUgY29uZmlnCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgdG8gdGhlIGNvbmZpZyBmaWxlLgogICAgICoKICAgICAqIEByZXR1cm4gYm9vbAogICAgICogQHNlZSAgICBnZXRDb25maWdEYXRhKCkKICAgICAqIEB0aHJvd3MgXFBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXERlZXBFeGl0RXhjZXB0aW9uIElmIHRoZSBjb25maWcgZmlsZSBjYW4gbm90IGJlIHdyaXR0ZW4uCiAgICAgKi8KICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gc2V0Q29uZmlnRGF0YSgka2V5LCAkdmFsdWUsICR0ZW1wPWZhbHNlKQogICAgewogICAgICAgIGlmIChpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydydW50aW1lLXNldCddKSA9PT0gdHJ1ZQogICAgICAgICAgICAmJiBpc3NldChzZWxmOjokb3ZlcnJpZGRlbkRlZmF1bHRzWydydW50aW1lLXNldCddWyRrZXldKSA9PT0gdHJ1ZQogICAgICAgICkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRlbXAgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICRwYXRoID0gJyc7CiAgICAgICAgICAgIGlmIChpc19jYWxsYWJsZSgnXFBoYXI6OnJ1bm5pbmcnKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJHBhdGggPSBcUGhhcjo6cnVubmluZyhmYWxzZSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkcGF0aCAhPT0gJycpIHsKICAgICAgICAgICAgICAgICRjb25maWdGaWxlID0gZGlybmFtZSgkcGF0aCkuRElSRUNUT1JZX1NFUEFSQVRPUi4nQ29kZVNuaWZmZXIuY29uZic7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkY29uZmlnRmlsZSA9IGRpcm5hbWUoX19ESVJfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4nQ29kZVNuaWZmZXIuY29uZic7CiAgICAgICAgICAgICAgICBpZiAoaXNfZmlsZSgkY29uZmlnRmlsZSkgPT09IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgJiYgc3RycG9zKCdAZGF0YV9kaXJAJywgJ0BkYXRhX2RpcicpID09PSBmYWxzZQogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gSWYgZGF0YV9kaXIgd2FzIHJlcGxhY2VkLCB0aGlzIGlzIGEgUEVBUiBpbnN0YWxsIGFuZCB3ZSBjYW4KICAgICAgICAgICAgICAgICAgICAvLyB1c2UgdGhlIFBFQVIgZGF0YSBkaXIgdG8gc3RvcmUgdGhlIGNvbmYgZmlsZS4KICAgICAgICAgICAgICAgICAgICAkY29uZmlnRmlsZSA9ICdAZGF0YV9kaXJAL1BIUF9Db2RlU25pZmZlci9Db2RlU25pZmZlci5jb25mJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGlzX2ZpbGUoJGNvbmZpZ0ZpbGUpID09PSB0cnVlCiAgICAgICAgICAgICAgICAmJiBpc193cml0YWJsZSgkY29uZmlnRmlsZSkgPT09IGZhbHNlCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgJGVycm9yID0gJ0VSUk9SOiBDb25maWcgZmlsZSAnLiRjb25maWdGaWxlLicgaXMgbm90IHdyaXRhYmxlJy5QSFBfRU9MLlBIUF9FT0w7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRGVlcEV4aXRFeGNlcHRpb24oJGVycm9yLCAzKTsKICAgICAgICAgICAgfQogICAgICAgIH0vL2VuZCBpZgoKICAgICAgICAkcGhwQ29kZVNuaWZmZXJDb25maWcgPSBzZWxmOjpnZXRBbGxDb25maWdEYXRhKCk7CgogICAgICAgIGlmICgkdmFsdWUgPT09IG51bGwpIHsKICAgICAgICAgICAgaWYgKGlzc2V0KCRwaHBDb2RlU25pZmZlckNvbmZpZ1ska2V5XSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgIHVuc2V0KCRwaHBDb2RlU25pZmZlckNvbmZpZ1ska2V5XSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcGhwQ29kZVNuaWZmZXJDb25maWdbJGtleV0gPSAkdmFsdWU7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRlbXAgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICRvdXRwdXQgID0gJzwnLic/cGhwJy4iXG4iLicgJHBocENvZGVTbmlmZmVyQ29uZmlnID0gJzsKICAgICAgICAgICAgJG91dHB1dCAuPSB2YXJfZXhwb3J0KCRwaHBDb2RlU25pZmZlckNvbmZpZywgdHJ1ZSk7CiAgICAgICAgICAgICRvdXRwdXQgLj0gIjtcbj8iLic+JzsKCiAgICAgICAgICAgIGlmIChmaWxlX3B1dF9jb250ZW50cygkY29uZmlnRmlsZSwgJG91dHB1dCkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgPSAnRVJST1I6IENvbmZpZyBmaWxlICcuJGNvbmZpZ0ZpbGUuJyBjb3VsZCBub3QgYmUgd3JpdHRlbicuUEhQX0VPTC5QSFBfRU9MOwogICAgICAgICAgICAgICAgdGhyb3cgbmV3IERlZXBFeGl0RXhjZXB0aW9uKCRlcnJvciwgMyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNlbGY6OiRjb25maWdEYXRhRmlsZSA9ICRjb25maWdGaWxlOwogICAgICAgIH0KCiAgICAgICAgc2VsZjo6JGNvbmZpZ0RhdGEgPSAkcGhwQ29kZVNuaWZmZXJDb25maWc7CgogICAgICAgIC8vIElmIHRoZSBpbnN0YWxsZWQgcGF0aHMgYXJlIGJlaW5nIHNldCwgbWFrZSBzdXJlIGFsbCBrbm93bgogICAgICAgIC8vIHN0YW5kYXJkcyBwYXRocyBhcmUgYWRkZWQgdG8gdGhlIGF1dG9sb2FkZXIuCiAgICAgICAgaWYgKCRrZXkgPT09ICdpbnN0YWxsZWRfcGF0aHMnKSB7CiAgICAgICAgICAgICRpbnN0YWxsZWRTdGFuZGFyZHMgPSBVdGlsXFN0YW5kYXJkczo6Z2V0SW5zdGFsbGVkU3RhbmRhcmREZXRhaWxzKCk7CiAgICAgICAgICAgIGZvcmVhY2ggKCRpbnN0YWxsZWRTdGFuZGFyZHMgYXMgJG5hbWUgPT4gJGRldGFpbHMpIHsKICAgICAgICAgICAgICAgIEF1dG9sb2FkOjphZGRTZWFyY2hQYXRoKCRkZXRhaWxzWydwYXRoJ10sICRkZXRhaWxzWyduYW1lc3BhY2UnXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiB0cnVlOwoKICAgIH0vL2VuZCBzZXRDb25maWdEYXRhKCkKCgogICAgLyoqCiAgICAgKiBHZXQgYWxsIGNvbmZpZyBkYXRhLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXk8c3RyaW5nLCBzdHJpbmc+CiAgICAgKiBAc2VlICAgIGdldENvbmZpZ0RhdGEoKQogICAgICogQHRocm93cyBcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb24gSWYgdGhlIGNvbmZpZyBmaWxlIGNvdWxkIG5vdCBiZSByZWFkLgogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldEFsbENvbmZpZ0RhdGEoKQogICAgewogICAgICAgIGlmIChzZWxmOjokY29uZmlnRGF0YSAhPT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gc2VsZjo6JGNvbmZpZ0RhdGE7CiAgICAgICAgfQoKICAgICAgICAkcGF0aCA9ICcnOwogICAgICAgIGlmIChpc19jYWxsYWJsZSgnXFBoYXI6OnJ1bm5pbmcnKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAkcGF0aCA9IFxQaGFyOjpydW5uaW5nKGZhbHNlKTsKICAgICAgICB9CgogICAgICAgIGlmICgkcGF0aCAhPT0gJycpIHsKICAgICAgICAgICAgJGNvbmZpZ0ZpbGUgPSBkaXJuYW1lKCRwYXRoKS5ESVJFQ1RPUllfU0VQQVJBVE9SLidDb2RlU25pZmZlci5jb25mJzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkY29uZmlnRmlsZSA9IGRpcm5hbWUoX19ESVJfXykuRElSRUNUT1JZX1NFUEFSQVRPUi4nQ29kZVNuaWZmZXIuY29uZic7CiAgICAgICAgICAgIGlmIChpc19maWxlKCRjb25maWdGaWxlKSA9PT0gZmFsc2UKICAgICAgICAgICAgICAgICYmIHN0cnBvcygnQGRhdGFfZGlyQCcsICdAZGF0YV9kaXInKSA9PT0gZmFsc2UKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAkY29uZmlnRmlsZSA9ICdAZGF0YV9kaXJAL1BIUF9Db2RlU25pZmZlci9Db2RlU25pZmZlci5jb25mJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKGlzX2ZpbGUoJGNvbmZpZ0ZpbGUpID09PSBmYWxzZSkgewogICAgICAgICAgICBzZWxmOjokY29uZmlnRGF0YSA9IFtdOwogICAgICAgICAgICByZXR1cm4gW107CiAgICAgICAgfQoKICAgICAgICBpZiAoQ29tbW9uOjppc1JlYWRhYmxlKCRjb25maWdGaWxlKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgJGVycm9yID0gJ0VSUk9SOiBDb25maWcgZmlsZSAnLiRjb25maWdGaWxlLicgaXMgbm90IHJlYWRhYmxlJy5QSFBfRU9MLlBIUF9FT0w7CiAgICAgICAgICAgIHRocm93IG5ldyBEZWVwRXhpdEV4Y2VwdGlvbigkZXJyb3IsIDMpOwogICAgICAgIH0KCiAgICAgICAgaW5jbHVkZSAkY29uZmlnRmlsZTsKICAgICAgICBzZWxmOjokY29uZmlnRGF0YUZpbGUgPSAkY29uZmlnRmlsZTsKICAgICAgICBzZWxmOjokY29uZmlnRGF0YSAgICAgPSAkcGhwQ29kZVNuaWZmZXJDb25maWc7CiAgICAgICAgcmV0dXJuIHNlbGY6OiRjb25maWdEYXRhOwoKICAgIH0vL2VuZCBnZXRBbGxDb25maWdEYXRhKCkKCgogICAgLyoqCiAgICAgKiBQcmludHMgb3V0IHRoZSBnYXRoZXJlZCBjb25maWcgZGF0YS4KICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgJGRhdGEgVGhlIGNvbmZpZyBkYXRhIHRvIHByaW50LgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcHJpbnRDb25maWdEYXRhKCRkYXRhKQogICAgewogICAgICAgICRtYXggID0gMDsKICAgICAgICAka2V5cyA9IGFycmF5X2tleXMoJGRhdGEpOwogICAgICAgIGZvcmVhY2ggKCRrZXlzIGFzICRrZXkpIHsKICAgICAgICAgICAgJGxlbiA9IHN0cmxlbigka2V5KTsKICAgICAgICAgICAgaWYgKHN0cmxlbigka2V5KSA+ICRtYXgpIHsKICAgICAgICAgICAgICAgICRtYXggPSAkbGVuOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJG1heCA9PT0gMCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkbWF4ICs9IDI7CiAgICAgICAga3NvcnQoJGRhdGEpOwogICAgICAgIGZvcmVhY2ggKCRkYXRhIGFzICRuYW1lID0+ICR2YWx1ZSkgewogICAgICAgICAgICBlY2hvIHN0cl9wYWQoJG5hbWUuJzogJywgJG1heCkuJHZhbHVlLlBIUF9FT0w7CiAgICAgICAgfQoKICAgIH0vL2VuZCBwcmludENvbmZpZ0RhdGEoKQoKCn0vL2VuZCBjbGFzcwoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjE2OiJcUEhQX0NvZGVTbmlmZmVyIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTY6IlxQSFBfQ29kZVNuaWZmZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiUEhQX0NvZGVTbmlmZmVyIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6MjM6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTM6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIzOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6IkNvbmZpZyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTQ6IlN0b3JlcyB0aGUgY29uZmlndXJhdGlvbiB1c2VkIHRvIHJ1biBQSFBDUyBhbmQgUEhQQ0JGLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozNTp7aTowO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6NToiZmlsZXMiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzU6IlRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgdG8gY2hlY2suIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6OToic3RhbmRhcmRzIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM4OiJUaGUgc3RhbmRhcmRzIGJlaW5nIHVzZWQgZm9yIGNoZWNraW5nLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjk6InZlcmJvc2l0eSI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTU5OiJIb3cgdmVyYm9zZSB0aGUgb3V0cHV0IHNob3VsZCBiZS4KMDogbm8gdW5uZWNlc3Nhcnkgb3V0cHV0CjE6IGJhc2ljIG91dHB1dCBmb3IgZmlsZXMgYmVpbmcgY2hlY2tlZAoyOiBydWxlc2V0IGFuZCBmaWxlIHBhcnNpbmcgb3V0cHV0CjM6IHNuaWZmIGV4ZWN1dGlvbiBvdXRwdXQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxMToiaW50ZXJhY3RpdmUiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMzOiJFbmFibGUgaW50ZXJhY3RpdmUgY2hlY2tpbmcgbW9kZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo4OiJwYXJhbGxlbCI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjQ6IkNoZWNrIGZpbGVzIGluIHBhcmFsbGVsLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6NTtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjU6ImNhY2hlIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMzoiRW5hYmxlIHRoZSB1c2Ugb2YgdGhlIGZpbGUgY2FjaGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo2O086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6OToiY2FjaGVGaWxlIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0NToiQSBmaWxlIHdoZXJlIHRoZSBjYWNoZSBkYXRhIHNob3VsZCBiZSB3cml0dGVuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo3O086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6NjoiY29sb3JzIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNjoiRGlzcGxheSBjb2xvdXJzIGluIG91dHB1dC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjg7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo3OiJleHBsYWluIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyOToiRXhwbGFpbiB0aGUgY29kaW5nIHN0YW5kYXJkcy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjk7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo1OiJsb2NhbCI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTU6IlByb2Nlc3MgbG9jYWwgZmlsZXMgaW4gZGlyZWN0b3JpZXMgb25seSAobm8gcmVjdXJzaW9uKS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjEwO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTE6InNob3dTb3VyY2VzIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0MToiU2hvdyBzbmlmZiBzb3VyY2UgY29kZXMgaW4gcmVwb3J0IG91dHB1dC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjExO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTI6InNob3dQcm9ncmVzcyI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDY6IlNob3cgYmFzaWMgcHJvZ3Jlc3MgaW5mb3JtYXRpb24gd2hpbGUgcnVubmluZy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjEyO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6NToicXVpZXQiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ5OiJRdWlldCBtb2RlOyBkaXNhYmxlcyBwcm9ncmVzcyBhbmQgdmVyYm9zZSBvdXRwdXQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxMztPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjExOiJhbm5vdGF0aW9ucyI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjc6IlByb2Nlc3MgcGhwY3M6IGFubm90YXRpb25zLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTQ7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo4OiJ0YWJXaWR0aCI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzQ6IkhvdyBtYW55IHNwYWNlcyBlYWNoIHRhYiBpcyB3b3J0aC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE1O086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6ODoiZW5jb2RpbmciO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQwOiJUaGUgZW5jb2Rpbmcgb2YgdGhlIGZpbGVzIGJlaW5nIGNoZWNrZWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxNjtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjY6InNuaWZmcyI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDU6IlRoZSBzbmlmZnMgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgY2hlY2tpbmcuCklmIGVtcHR5LCBhbGwgc25pZmZzIGluIHRoZSBzdXBwbGllZCBzdGFuZGFyZHMgd2lsbCBiZSB1c2VkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTc7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo3OiJleGNsdWRlIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExMDoiVGhlIHNuaWZmcyB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIGNoZWNraW5nLgpJZiBlbXB0eSwgYWxsIHNuaWZmcyBpbiB0aGUgc3VwcGxpZWQgc3RhbmRhcmRzIHdpbGwgYmUgdXNlZC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE4O086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6NzoiaWdub3JlZCI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2OToiUmVndWxhciBleHByZXNzaW9ucyB1c2VkIHRvIGlnbm9yZSBmaWxlcyBhbmQgZm9sZGVycyBkdXJpbmcgY2hlY2tpbmcuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxOTtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjEwOiJyZXBvcnRGaWxlIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0OToiQSBmaWxlIHdoZXJlIHRoZSByZXBvcnQgb3V0cHV0IHNob3VsZCBiZSB3cml0dGVuLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjA7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo5OiJnZW5lcmF0b3IiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM1OiJUaGUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IgdG8gdXNlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjE7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo2OiJmaWx0ZXIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMwOiJUaGUgZmlsdGVyIHRvIHVzZSBmb3IgdGhlIHJ1bi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjIyO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6OToiYm9vdHN0cmFwIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjUxOiJPbmUgb2YgbW9yZSBmaWxlcyB0byBpbmNsdWRlIGJlZm9yZSB0aGUgcnVuIGJlZ2lucy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjIzO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTE6InJlcG9ydFdpZHRoIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMzc6IlRoZSBtYXhpbXVtIG51bWJlciBvZiBjb2x1bW5zIHRoYXQgcmVwb3J0cyBzaG91bGQgdXNlIGZvciBvdXRwdXQuClNldCB0byAiYXV0byIgZm9yIGhhdmUgdGhpcyB2YWx1ZSBjaGFuZ2VkIHRvIHRoZSB3aWR0aCBvZiB0aGUgdGVybWluYWwuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyNDtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjEzOiJlcnJvclNldmVyaXR5IjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1NjoiVGhlIG1pbmltdW0gc2V2ZXJpdHkgYW4gZXJyb3IgbXVzdCBoYXZlIHRvIGJlIGRpc3BsYXllZC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI1O086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTU6Indhcm5pbmdTZXZlcml0eSI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTc6IlRoZSBtaW5pbXVtIHNldmVyaXR5IGEgd2FybmluZyBtdXN0IGhhdmUgdG8gYmUgZGlzcGxheWVkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjY7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czoxMjoicmVjb3JkRXJyb3JzIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2MToiUmVjb3JkIHRoZSBjb250ZW50IG9mIGVycm9yIG1lc3NhZ2VzIGFzIHdlbGwgYXMgZXJyb3IgY291bnRzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6Mjc7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo2OiJzdWZmaXgiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMxOiJBIHN1ZmZpeCB0byBhZGQgdG8gZml4ZWQgZmlsZXMuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyODtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjg6ImJhc2VwYXRoIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3MzoiQSBmaWxlIHN5c3RlbSBsb2NhdGlvbiB0byBzdHJpcCBmcm9tIHRoZSBwYXRocyBvZiBmaWxlcyBzaG93biBpbiByZXBvcnRzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6Mjk7Tzo0NzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUHJvcGVydHkiOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo1OiJzdGRpbiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTA6IlJlYWQgY29udGVudCBmcm9tIFNURElOIGluc3RlYWQgb2Ygc3VwcGxpZWQgZmlsZXMuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozMDtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjEyOiJzdGRpbkNvbnRlbnQiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQyOiJDb250ZW50IHBhc3NlZCBkaXJlY3RseSB0byBQSFBDUyBvbiBTVERJTi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjMxO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6OToic3RkaW5QYXRoIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0NDoiVGhlIHBhdGggdG8gdXNlIGZvciBjb250ZW50IHBhc3NlZCBvbiBTVERJTi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjMyO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MTA6ImV4dGVuc2lvbnMiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo4OiJwcm9wZXJ0eSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6OTU6IkZpbGUgZXh0ZW5zaW9ucyB0aGF0IHNob3VsZCBiZSBjaGVja2VkLCBhbmQgd2hhdCB0b2tlbml6ZXIgdG8gdXNlLgpFLmcuLCBhcnJheSgnaW5jJyA9PiAnUEhQJyk7IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozMztPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjc6InJlcG9ydHMiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjEwOiIAKgBrZXlUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6ODoicHJvcGVydHkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIzOToiVGhlIHJlcG9ydHMgdG8gdXNlIGZvciBwcmludGluZyBvdXRwdXQgYWZ0ZXIgdGhlIHJ1bi4KVGhlIGZvcm1hdCBvZiB0aGUgYXJyYXkgaXM6CiAgICBhcnJheSgKICAgICAgICAncmVwb3J0TmFtZTEnID0+ICdvdXRwdXRGaWxlJywKICAgICAgICAncmVwb3J0TmFtZTInID0+IG51bGwsCiAgICApOwpJZiB0aGUgYXJyYXkgdmFsdWUgaXMgTlVMTCwgdGhlIHJlcG9ydCB3aWxsIGJlIHdyaXR0ZW4gdG8gdGhlIHNjcmVlbi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjM0O086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFByb3BlcnR5Ijo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6NzoidW5rbm93biI7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMTE6IkFueSBhcmd1bWVudHMgZ2F0aGVyZWQgb24gdGhlIGNvbW1hbmQgbGluZSB0aGF0IGFyZSB1bmtub3duIHRvIHVzLgpFLmcuLCB1c2luZyBgcGhwY3MgLWNgIHdpbGwgZ2l2ZSBhcnJheSgnYycpOyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjE1OiJQSFBfQ29kZVNuaWZmZXIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjM6e3M6MTc6IkRlZXBFeGl0RXhjZXB0aW9uIjtzOjQ0OiJQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xEZWVwRXhpdEV4Y2VwdGlvbiI7czoxNjoiUnVudGltZUV4Y2VwdGlvbiI7czo0MzoiUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcUnVudGltZUV4Y2VwdGlvbiI7czo2OiJDb21tb24iO3M6Mjc6IlBIUF9Db2RlU25pZmZlclxVdGlsXENvbW1vbiI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6Mjp7czozMjoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OlZFUlNJT04iO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpWRVJTSU9OIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiVkVSU0lPTiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyMDoiVGhlIGN1cnJlbnQgdmVyc2lvbi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtzOjc6IiczLjcuMSciO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6ODM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZmluYWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABtZXRhZGF0YSI7YTowOnt9fXM6MzQ6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpTVEFCSUxJVFkiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjg6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzQ6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpTVEFCSUxJVFkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJTVEFCSUxJVFkiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDg6IlBhY2thZ2Ugc3RhYmlsaXR5OyBlaXRoZXIgc3RhYmxlLCBiZXRhIG9yIGFscGhhLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmFsdWUiO3M6ODoiJ3N0YWJsZSciO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZmluYWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABtZXRhZGF0YSI7YTowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTo3OntzOjM0OiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6JHNldHRpbmdzIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNDoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OiRzZXR0aW5ncyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InNldHRpbmdzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjUwOiJBbiBhcnJheSBvZiBzZXR0aW5ncyB0aGF0IFBIUENTIGFuZCBQSFBDQkYgYWNjZXB0LiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozODA6IlRoaXMgYXJyYXkgaXMgbm90IG1lYW50IHRvIGJlIGFjY2Vzc2VkIGRpcmVjdGx5LiBJbnN0ZWFkLCB1c2UgdGhlIHNldHRpbmdzCmFzIGlmIHRoZXkgYXJlIGNsYXNzIG1lbWJlciB2YXJzIHNvIHRoZSBfX2dldCgpIGFuZCBfX3NldCgpIG1hZ2ljIG1ldGhvZHMKY2FuIGJlIHVzZWQgdG8gdmFsaWRhdGUgdGhlIHZhbHVlcy4gRm9yIGV4YW1wbGUsIHRvIHNldCB0aGUgdmVyYm9zaXR5IGxldmVsIHRvCmxldmVsIDIsIHVzZSAkdGhpcy0+dmVyYm9zaXR5ID0gMjsgaW5zdGVhZCBvZiBhY2Nlc3NpbmcgdGhpcyBwcm9wZXJ0eSBkaXJlY3RseS4KCkVhY2ggb2YgdGhlc2Ugc2V0dGluZ3MgaXMgZGVzY3JpYmVkIGluIHRoZSBjbGFzcyBjb21tZW50IHByb3BlcnR5IGxpc3QuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozNjM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo3MTg6IlsnZmlsZXMnID0+IG51bGwsICdzdGFuZGFyZHMnID0+IG51bGwsICd2ZXJib3NpdHknID0+IG51bGwsICdpbnRlcmFjdGl2ZScgPT4gbnVsbCwgJ3BhcmFsbGVsJyA9PiBudWxsLCAnY2FjaGUnID0+IG51bGwsICdjYWNoZUZpbGUnID0+IG51bGwsICdjb2xvcnMnID0+IG51bGwsICdleHBsYWluJyA9PiBudWxsLCAnbG9jYWwnID0+IG51bGwsICdzaG93U291cmNlcycgPT4gbnVsbCwgJ3Nob3dQcm9ncmVzcycgPT4gbnVsbCwgJ3F1aWV0JyA9PiBudWxsLCAnYW5ub3RhdGlvbnMnID0+IG51bGwsICd0YWJXaWR0aCcgPT4gbnVsbCwgJ2VuY29kaW5nJyA9PiBudWxsLCAnZXh0ZW5zaW9ucycgPT4gbnVsbCwgJ3NuaWZmcycgPT4gbnVsbCwgJ2V4Y2x1ZGUnID0+IG51bGwsICdpZ25vcmVkJyA9PiBudWxsLCAncmVwb3J0RmlsZScgPT4gbnVsbCwgJ2dlbmVyYXRvcicgPT4gbnVsbCwgJ2ZpbHRlcicgPT4gbnVsbCwgJ2Jvb3RzdHJhcCcgPT4gbnVsbCwgJ3JlcG9ydHMnID0+IG51bGwsICdiYXNlcGF0aCcgPT4gbnVsbCwgJ3JlcG9ydFdpZHRoJyA9PiBudWxsLCAnZXJyb3JTZXZlcml0eScgPT4gbnVsbCwgJ3dhcm5pbmdTZXZlcml0eScgPT4gbnVsbCwgJ3JlY29yZEVycm9ycycgPT4gbnVsbCwgJ3N1ZmZpeCcgPT4gbnVsbCwgJ3N0ZGluJyA9PiBudWxsLCAnc3RkaW5Db250ZW50JyA9PiBudWxsLCAnc3RkaW5QYXRoJyA9PiBudWxsLCAndW5rbm93bicgPT4gbnVsbF0iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czo0MToiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OiRkaWVPblVua25vd25BcmciO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQxOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6JGRpZU9uVW5rbm93bkFyZyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJkaWVPblVua25vd25BcmciO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Nzc6IldoZXRoZXIgb3Igbm90IHRvIGtpbGwgdGhlIHByb2Nlc3Mgd2hlbiBhbiB1bmtub3duIGNvbW1hbmQgbGluZSBhcmcgaXMgZm91bmQuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE2OToiSWYgRkFMU0UsIGFyZ3VtZW50cyB0aGF0IGFyZSBub3QgY29tbWFuZCBsaW5lIG9wdGlvbnMgb3IgZmlsZS9kaXJlY3RvcnkgcGF0aHMKd2lsbCBiZSBpZ25vcmVkIGFuZCBleGVjdXRpb24gd2lsbCBjb250aW51ZS4gVGhlc2UgdmFsdWVzIHdpbGwgYmUgc3RvcmVkIGluCiR0aGlzLT51bmtub3duLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozNjM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTUxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czozMzoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OiRjbGlBcmdzIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMzoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OiRjbGlBcmdzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiY2xpQXJncyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1MzoiVGhlIGN1cnJlbnQgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB3ZSBhcmUgcHJvY2Vzc2luZy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MjoiW10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTU4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czo0NDoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OiRvdmVycmlkZGVuRGVmYXVsdHMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6JG92ZXJyaWRkZW5EZWZhdWx0cyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJvdmVycmlkZGVuRGVmYXVsdHMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTY6IkNvbW1hbmQgbGluZSB2YWx1ZXMgdGhhdCB0aGUgdXNlciBoYXMgc3VwcGxpZWQgZGlyZWN0bHkuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXFRydWVfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozNjM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czoyOiJbXSI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjE7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNjU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE2NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX1zOjM2OiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6JGNvbmZpZ0RhdGEiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM2OiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6JGNvbmZpZ0RhdGEiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiY29uZmlnRGF0YSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1MDoiQ29uZmlnIGZpbGUgZGF0YSB0aGF0IGhhcyBiZWVuIGxvYWRlZCBmb3IgdGhlIHJ1bi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6NDoibnVsbCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjE7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX1zOjQwOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6JGNvbmZpZ0RhdGFGaWxlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OiRjb25maWdEYXRhRmlsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJjb25maWdEYXRhRmlsZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1OToiVGhlIGZ1bGwgcGF0aCB0byB0aGUgY29uZmlnIGRhdGEgZmlsZSB0aGF0IGhhcyBiZWVuIGxvYWRlZC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ6Im51bGwiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjoxO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTc5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNzk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319czo0MToiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OiRleGVjdXRhYmxlUGF0aHMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQxOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6JGV4ZWN1dGFibGVQYXRocyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJleGVjdXRhYmxlUGF0aHMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTA6IkF1dG9tYXRpY2FsbHkgZGlzY292ZXJlZCBleGVjdXRhYmxlIHV0aWxpdHkgcGF0aHMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjI6IltdIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MTtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE4NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTg2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YToyMjp7czozMjoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6Ol9fZ2V0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0MjoiR2V0IHRoZSB2YWx1ZSBvZiBhbiBpbmFjY2Vzc2libGUgcHJvcGVydHkuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJuYW1lIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI1OiJUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcUnVudGltZUV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJSdW50aW1lRXhjZXB0aW9uIjt9fXM6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMxOiJJZiB0aGUgc2V0dGluZyBuYW1lIGlzIGludmFsaWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozNjM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6Ol9fZ2V0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo1OiJfX2dldCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJuYW1lIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTk3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjA1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czozMjoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6Ol9fc2V0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0MjoiU2V0IHRoZSB2YWx1ZSBvZiBhbiBpbmFjY2Vzc2libGUgcHJvcGVydHkuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjQ6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJuYW1lIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI1OiJUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjU6InZhbHVlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjY6IlRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDQ6IlxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xSdW50aW1lRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6IlJ1bnRpbWVFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzE6IklmIHRoZSBzZXR0aW5nIG5hbWUgaXMgaW52YWxpZC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6X19zZXQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6Il9fc2V0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6Im5hbWUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo1OiJ2YWx1ZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIxNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI2MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6MzQ6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpfX2lzc2V0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NDoiQ2hlY2sgaWYgdGhlIHZhbHVlIG9mIGFuIGluYWNjZXNzaWJsZSBwcm9wZXJ0eSBpcyBzZXQuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJuYW1lIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI1OiJUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM0OiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6X19pc3NldCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiX19pc3NldCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJuYW1lIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjcwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjc0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czozNDoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6Ol9fdW5zZXQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQ0OiJVbnNldCB0aGUgdmFsdWUgb2YgYW4gaW5hY2Nlc3NpYmxlIHByb3BlcnR5LiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NDoibmFtZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNToiVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzQ6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpfX3Vuc2V0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJfX3Vuc2V0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6Im5hbWUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjM4OiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6Z2V0U2V0dGluZ3MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM3OiJHZXQgdGhlIGFycmF5IG9mIGFsbCBjb25maWcgc2V0dGluZ3MuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzg6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpnZXRTZXR0aW5ncygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6ImdldFNldHRpbmdzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI5NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMwMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6Mzg6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpzZXRTZXR0aW5ncygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mzc6IlNldCB0aGUgYXJyYXkgb2YgYWxsIGNvbmZpZyBzZXR0aW5ncy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjg6InNldHRpbmdzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyOToiVGhlIGFycmF5IG9mIGNvbmZpZyBzZXR0aW5ncy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM4OiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6c2V0U2V0dGluZ3MoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJzZXRTZXR0aW5ncyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJzZXR0aW5ncyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6Mzg6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpfX2NvbnN0cnVjdCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NjY6IkNyZWF0ZXMgYSBDb25maWcgb2JqZWN0IGFuZCBwb3B1bGF0ZXMgaXQgd2l0aCBjb21tYW5kIGxpbmUgdmFsdWVzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NzoiY2xpQXJncyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDI6IkFuIGFycmF5IG9mIHZhbHVlcyBnYXRoZXJlZCBmcm9tIENMSSBhcmdzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoxNToiZGllT25Vbmtub3duQXJnIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjc3OiJXaGV0aGVyIG9yIG5vdCB0byBraWxsIHRoZSBwcm9jZXNzIHdoZW4gYW4KdW5rbm93biBjb21tYW5kIGxpbmUgYXJnIGlzIGZvdW5kLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzg6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpfX2NvbnN0cnVjdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Il9fY29uc3RydWN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6ImNsaUFyZ3MiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6MjoiW10iO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxNToiZGllT25Vbmtub3duQXJnIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJ0cnVlIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDA2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0NzoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OnNldENvbW1hbmRMaW5lVmFsdWVzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyODoiU2V0IHRoZSBjb21tYW5kIGxpbmUgdmFsdWVzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NDoiYXJncyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDI6IkFuIGFycmF5IG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdG8gc2V0LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpzZXRDb21tYW5kTGluZVZhbHVlcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjA6InNldENvbW1hbmRMaW5lVmFsdWVzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImFyZ3MiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MTY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NTc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQyOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6cmVzdG9yZURlZmF1bHRzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo2MzoiUmVzdG9yZSBkZWZhdWx0IHZhbHVlcyBmb3IgYWxsIHBvc3NpYmxlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpyZXN0b3JlRGVmYXVsdHMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJyZXN0b3JlRGVmYXVsdHMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDY1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTg0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0NzoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OnByb2Nlc3NTaG9ydEFyZ3VtZW50KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NToiUHJvY2Vzc2VzIGEgc2hvcnQgKC1lKSBjb21tYW5kIGxpbmUgYXJndW1lbnQuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjQ6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czozOiJhcmciO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjY6IlRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjM6InBvcyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0OToiVGhlIHBvc2l0aW9uIG9mIHRoZSBhcmd1bWVudCBvbiB0aGUgY29tbWFuZCBsaW5lLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiRGVlcEV4aXRFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozNjM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OnByb2Nlc3NTaG9ydEFyZ3VtZW50KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMDoicHJvY2Vzc1Nob3J0QXJndW1lbnQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoiYXJnIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoicG9zIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTk2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njg5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0NjoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OnByb2Nlc3NMb25nQXJndW1lbnQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjUxOiJQcm9jZXNzZXMgYSBsb25nICgtLWV4YW1wbGUpIGNvbW1hbmQgbGluZSBhcmd1bWVudC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NDp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjM6ImFyZyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNjoiVGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MzoicG9zIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ5OiJUaGUgcG9zaXRpb24gb2YgdGhlIGFyZ3VtZW50IG9uIHRoZSBjb21tYW5kIGxpbmUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xEZWVwRXhpdEV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJEZWVwRXhpdEV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ2OiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6cHJvY2Vzc0xvbmdBcmd1bWVudCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6InByb2Nlc3NMb25nQXJndW1lbnQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoiYXJnIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MzoicG9zIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzAxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTIyNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDk6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpwcm9jZXNzVW5rbm93bkFyZ3VtZW50KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0MzoiUHJvY2Vzc2VzIGFuIHVua25vd24gY29tbWFuZCBsaW5lIGFyZ3VtZW50LiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2MToiQXNzdW1lcyBhbGwgdW5rbm93biBhcmd1bWVudHMgYXJlIGZpbGVzIGFuZCBmb2xkZXJzIHRvIGNoZWNrLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjQ6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czozOiJhcmciO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjY6IlRoZSBjb21tYW5kIGxpbmUgYXJndW1lbnQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjM6InBvcyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0OToiVGhlIHBvc2l0aW9uIG9mIHRoZSBhcmd1bWVudCBvbiB0aGUgY29tbWFuZCBsaW5lLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MztPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiRGVlcEV4aXRFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozNjM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OnByb2Nlc3NVbmtub3duQXJndW1lbnQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIyOiJwcm9jZXNzVW5rbm93bkFyZ3VtZW50Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6ImFyZyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6InBvcyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyMzk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjU0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0MjoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OnByb2Nlc3NGaWxlUGF0aCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTA6IlByb2Nlc3NlcyBhIGZpbGUgcGF0aCBhbmQgYWRkIGl0IHRvIHRoZSBmaWxlIGxpc3QuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJwYXRoIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI4OiJUaGUgcGF0aCB0byB0aGUgZmlsZSB0byBhZGQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xEZWVwRXhpdEV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJEZWVwRXhpdEV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6cHJvY2Vzc0ZpbGVQYXRoKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToicHJvY2Vzc0ZpbGVQYXRoIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6InBhdGgiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjY1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTI5MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6Mzc6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpwcmludFVzYWdlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0OToiUHJpbnRzIG91dCB0aGUgdXNhZ2UgaW5mb3JtYXRpb24gZm9yIHRoaXMgc2NyaXB0LiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM3OiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6cHJpbnRVc2FnZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6InByaW50VXNhZ2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTI5ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzMTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQyOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6cHJpbnRTaG9ydFVzYWdlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NToiUHJpbnRzIG91dCB0aGUgc2hvcnQgdXNhZ2UgaW5mb3JtYXRpb24gZm9yIHRoaXMgc2NyaXB0LiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NjoicmV0dXJuIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY2OiJJZiBUUlVFLCB0aGUgdXNhZ2Ugc3RyaW5nIGlzIHJldHVybmVkCmluc3RlYWQgb2Ygb3V0cHV0IHRvIHNjcmVlbi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6cHJpbnRTaG9ydFVzYWdlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToicHJpbnRTaG9ydFVzYWdlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjY6InJldHVybiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NToiZmFsc2UiO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMzIxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTMzNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDI6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpwcmludFBIUENTVXNhZ2UoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQzOiJQcmludHMgb3V0IHRoZSB1c2FnZSBpbmZvcm1hdGlvbiBmb3IgUEhQQ1MuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpwcmludFBIUENTVXNhZ2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJwcmludFBIUENTVXNhZ2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTM0NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE0MTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQzOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6cHJpbnRQSFBDQkZVc2FnZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDQ6IlByaW50cyBvdXQgdGhlIHVzYWdlIGluZm9ybWF0aW9uIGZvciBQSFBDQkYuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpwcmludFBIUENCRlVzYWdlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoicHJpbnRQSFBDQkZVc2FnZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDIxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTQ2NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDA6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpnZXRDb25maWdEYXRhKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyNjoiR2V0IGEgc2luZ2xlIGNvbmZpZyB2YWx1ZS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NDp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjM6ImtleSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyOToiVGhlIG5hbWUgb2YgdGhlIGNvbmZpZyB2YWx1ZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxQSFBfQ29kZVNuaWZmZXJcc2V0Q29uZmlnRGF0YSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6InNldENvbmZpZ0RhdGEiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MztPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNToiXFBIUF9Db2RlU25pZmZlclxnZXRBbGxDb25maWdEYXRhKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiZ2V0QWxsQ29uZmlnRGF0YSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozNjM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OmdldENvbmZpZ0RhdGEoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJnZXRDb25maWdEYXRhIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjoxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6ImtleSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE0Nzk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDkzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0NDoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OmdldEV4ZWN1dGFibGVQYXRoKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozODoiR2V0IHRoZSBwYXRoIHRvIGFuIGV4ZWN1dGFibGUgdXRpbGl0eS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjQ6Im5hbWUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzU6IlRoZSBuYW1lIG9mIHRoZSBleGVjdXRhYmxlIHV0aWxpdHkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbF8iOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFNlZSI6Mzp7czo3OiIAKgBuYW1lIjtzOjM6InNlZSI7czo5OiIAKgByZWZlcnMiO086NTQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbiI6MTp7czo2MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJlZmVyZW5jZVxGcXNlbgBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcUEhQX0NvZGVTbmlmZmVyXGdldENvbmZpZ0RhdGEoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJnZXRDb25maWdEYXRhIjt9fXM6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjM2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6Z2V0RXhlY3V0YWJsZVBhdGgoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJnZXRFeGVjdXRhYmxlUGF0aCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJuYW1lIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTUwNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE1MzQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQwOiJcUEhQX0NvZGVTbmlmZmVyXENvbmZpZzo6c2V0Q29uZmlnRGF0YSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjY6IlNldCBhIHNpbmdsZSBjb25maWcgdmFsdWUuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjY6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czozOiJrZXkiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjk6IlRoZSBuYW1lIG9mIHRoZSBjb25maWcgdmFsdWUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjU6InZhbHVlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbF8iOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo5MDoiVGhlIHZhbHVlIHRvIHNldC4gSWYgbnVsbCwgdGhlIGNvbmZpZwplbnRyeSBpcyBkZWxldGVkLCByZXZlcnRpbmcgaXQgdG8gdGhlCmRlZmF1bHQgdmFsdWUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjQ6InRlbXAiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA5OiJTZXQgdGhpcyBjb25maWcgZGF0YSB0ZW1wb3JhcmlseSBmb3IgdGhpcwpzY3JpcHQgcnVuLiBUaGlzIHdpbGwgbm90IHdyaXRlIHRoZSBjb25maWcKZGF0YSB0byB0aGUgY29uZmlnIGZpbGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcU2VlIjozOntzOjc6IgAqAG5hbWUiO3M6Mzoic2VlIjtzOjk6IgAqAHJlZmVycyI7Tzo1NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuIjoxOntzOjYxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmVmZXJlbmNlXEZxc2VuAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxQSFBfQ29kZVNuaWZmZXJcZ2V0Q29uZmlnRGF0YSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6ImdldENvbmZpZ0RhdGEiO319czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6NTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcUEhQX0NvZGVTbmlmZmVyXEV4Y2VwdGlvbnNcRGVlcEV4aXRFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiRGVlcEV4aXRFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mzg6IklmIHRoZSBjb25maWcgZmlsZSBjYW4gbm90IGJlIHdyaXR0ZW4uIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozNjM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MDoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OnNldENvbmZpZ0RhdGEoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJzZXRDb25maWdEYXRhIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjoxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6ImtleSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6InZhbHVlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoidGVtcCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NToiZmFsc2UiO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTUyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTYyMztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDM6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpnZXRBbGxDb25maWdEYXRhKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyMDoiR2V0IGFsbCBjb25maWcgZGF0YS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xTZWUiOjM6e3M6NzoiACoAbmFtZSI7czozOiJzZWUiO3M6OToiACoAcmVmZXJzIjtPOjU0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4iOjE6e3M6NjE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZWZlcmVuY2VcRnFzZW4AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMjoiXFBIUF9Db2RlU25pZmZlclxnZXRDb25maWdEYXRhKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMzoiZ2V0Q29uZmlnRGF0YSI7fX1zOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToyO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xEZWVwRXhpdEV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJEZWVwRXhpdEV4Y2VwdGlvbiI7fX1zOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozNzoiSWYgdGhlIGNvbmZpZyBmaWxlIGNvdWxkIG5vdCBiZSByZWFkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6MzYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpnZXRBbGxDb25maWdEYXRhKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiZ2V0QWxsQ29uZmlnRGF0YSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNjMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTY3MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDI6IlxQSFBfQ29kZVNuaWZmZXJcQ29uZmlnOjpwcmludENvbmZpZ0RhdGEoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM2OiJQcmludHMgb3V0IHRoZSBnYXRoZXJlZCBjb25maWcgZGF0YS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjQ6ImRhdGEiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI1OiJUaGUgY29uZmlnIGRhdGEgdG8gcHJpbnQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjozNjM7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXFBIUF9Db2RlU25pZmZlclxDb25maWc6OnByaW50Q29uZmlnRGF0YSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6InByaW50Q29uZmlnRGF0YSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJkYXRhIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTY4MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3MDE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNzA0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRhZGF0YSI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";