{"product_id":"custom-acrylic-boxes","title":"Custom Acrylic Boxes","description":"\u003cdiv id=\"artetribe-acrylic-box-preview-embed\" data-artetribe-build=\"acrylic-box-20260825-edge-story-v2\"\u003e\n  \u003csection class=\"artetribe-acrylic-box-preview-embed__benefits\" aria-label=\"Custom acrylic box preview features\"\u003e\n    \u003carticle\u003e\n      \u003cspan class=\"artetribe-acrylic-box-preview-embed__icon\" aria-hidden=\"true\"\u003e\u003csvg viewbox=\"0 0 80 80\"\u003e\u003cpath d=\"m13 25 27-14 27 14-27 14-27-14Zm0 0v31l27 14 27-14V25M40 39v31\"\u003e\u003c\/path\u003e\u003cpath class=\"accent\" d=\"M19 28v24l21 11M61 28v24L40 63\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003ch3\u003eSix independent faces\u003c\/h3\u003e\n      \u003cp\u003eReplace the bottom, front, back, left, right and lid artwork one face at a time.\u003c\/p\u003e\n    \u003c\/article\u003e\n    \u003carticle\u003e\n      \u003cspan class=\"artetribe-acrylic-box-preview-embed__icon\" aria-hidden=\"true\"\u003e\u003csvg viewbox=\"0 0 80 80\"\u003e\u003crect x=\"10\" y=\"14\" width=\"60\" height=\"52\" rx=\"4\"\u003e\u003c\/rect\u003e\u003ccircle class=\"accent\" cx=\"55\" cy=\"29\" r=\"7\"\u003e\u003c\/circle\u003e\u003cpath d=\"m17 57 15-17 10 10 8-8 13 15M25 9v10M55 61v10\"\u003e\u003c\/path\u003e\u003cpath class=\"accent\" d=\"M6 32h9M65 48h9\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003ch3\u003eChoose how images fill\u003c\/h3\u003e\n      \u003cp\u003eKeep proportions with Crop to fill, or use Stretch to fill for the complete image.\u003c\/p\u003e\n    \u003c\/article\u003e\n    \u003carticle\u003e\n      \u003cspan class=\"artetribe-acrylic-box-preview-embed__icon\" aria-hidden=\"true\"\u003e\u003csvg viewbox=\"0 0 80 80\"\u003e\u003cpath d=\"M14 31h52v36H14zM14 31l9-18h45l-2 18M26 47h28\"\u003e\u003c\/path\u003e\u003cpath class=\"accent\" d=\"M23 13c14 7 29 7 45 0M66 31c-11-5-22-8-34-8\"\u003e\u003c\/path\u003e\u003ccircle cx=\"21\" cy=\"31\" r=\"3\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"59\" cy=\"31\" r=\"3\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/span\u003e\n      \u003ch3\u003eInspect the assembled box\u003c\/h3\u003e\n      \u003cp\u003eDrag the lid, orbit the model, explode the panels and preview a transparent acrylic tint.\u003c\/p\u003e\n    \u003c\/article\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"artetribe-acrylic-box-preview-embed__tool\" aria-labelledby=\"artetribe-acrylic-box-preview-title\"\u003e\n    \u003cdiv class=\"artetribe-acrylic-box-preview-embed__heading\"\u003e\n      \u003ch2 id=\"artetribe-acrylic-box-preview-title\"\u003ePreview your custom acrylic box\u003c\/h2\u003e\n      \u003cp\u003eThe sample artwork starts on all six faces. Select any face to replace its image, choose a fill mode, then drag the lid to inspect the finished box.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"artetribe-acrylic-box-preview-embed__frame\" data-preview-shell\u003e\n      \u003cdiv class=\"artetribe-acrylic-box-preview-embed__loading\" data-preview-loading\u003eOpening the 3D acrylic box preview...\u003c\/div\u003e\n      \u003ciframe class=\"artetribe-acrylic-box-preview-embed__iframe\" data-preview-frame title=\"ArteTribe custom acrylic box 3D preview\" loading=\"eager\" scrolling=\"no\" sandbox=\"allow-scripts allow-same-origin allow-downloads\"\u003e\u003c\/iframe\u003e\n      \u003cscript type=\"text\/plain\" data-preview-source\u003ePCFkb2N0eXBlIGh0bWw+CjwhLS0KVEhFU0lTOiBBIHByb2R1Y3Rpb24tbWluZGVkIHNpeC1mYWNlIGNvbmZpZ3VyYXRvciB0aGF0IG1ha2VzIGFzc2VtYmx5IGFuZCBhcnR3b3JrIHBsYWNlbWVudCB1bmRlcnN0YW5kYWJsZSBhdCBhIGdsYW5jZS4KT1dOLVdPUkxEOiBBcnRlVHJpYmUgbGlnaHQgYmx1ZSwgS2xlaW4gYmx1ZSwgZnVsbHkgY2xlYXIgYWNyeWxpYywgYW5kIGV4YWN0IEU3IGN1dHRpbmcgZ2VvbWV0cnkgZGVmaW5lIHRoZSB2aXN1YWwgd29ybGQuClNUT1JZOiBTZWxlY3QgYSBmYWNlLCB1cGxvYWQgaXRzIGFydHdvcmssIGNob29zZSBob3cgaXQgZmlsbHMsIHRoZW4gaW5zcGVjdCB0aGUgYXNzZW1ibGVkLCBleHBsb2RlZCwgY2xvc2VkLCBvciBvcGVuIG9iamVjdC4KRklSU1QgVklFV1BPUlQ6IFRoZSBtb2RlbCwgcHJpbWFyeSBhc3NlbWJseSBhY3Rpb25zLCBhbmQgYWxsIHNpeCBmYWNlIHN0YXRlcyBhcmUgdmlzaWJsZSB3aXRob3V0IGV4cGxhbmF0aW9uLgpGT1JNOiBDb21wYWN0IHR3by1jb2x1bW4gb3BlcmF0aW5nIHdvcmtzcGFjZSBvbiBkZXNrdG9wIGFuZCBhIGNhbG0gc3RhY2tlZCB3b3JrZmxvdyBvbiBtb2JpbGUuCkZJTklTSDogdW5yZXZpZXdlZCBhbmQgdW5kb2N1bWVudGVkIGlzIHVuZmluaXNoZWQ7IHRoaXMgYnVpbGQgZW5kcyB3aXRoIHRoZSBmaW5pc2ggcmV2aWV3LCB0aGUgdmVyZGljdCwgYW5kIERFU0lHTi5tZAotLT4KPGh0bWwgbGFuZz0iZW4iPgo8aGVhZD4KICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEsdmlld3BvcnQtZml0PWNvdmVyIj4KICA8bWV0YSBuYW1lPSJ0aGVtZS1jb2xvciIgY29udGVudD0iI2VlZjhmZCI+CiAgPHRpdGxlPkN1c3RvbSBBY3J5bGljIEJveCAzRCBQcmV2aWV3IHwgQXJ0ZVRyaWJlPC90aXRsZT4KICA8c3R5bGU+Cjpyb290ewogIGNvbG9yLXNjaGVtZTpsaWdodDsKICAtLWJsdWU6IzA4N2FiNTsKICAtLWJsdWUtZGVlcDojMDY2ZDlmOwogIC0taW5rOiMxNzMyNDc7CiAgLS1tdXRlZDojNjM3YjhkOwogIC0tbGluZTojZDllOGYxOwogIC0td2FzaDojZWVmOGZkOwogIC0tcGFuZWw6I2ZmZjsKICAtLWZvY3VzOiNmZmIwMDA7CiAgLS1zaGFkb3c6MCAxOHB4IDUwcHggcmdiYSgyOCw3NywxMDUsLjEyKTsKICBmb250LWZhbWlseTpJbnRlcix1aS1zYW5zLXNlcmlmLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LCJTZWdvZSBVSSIsc2Fucy1zZXJpZjsKfQoqe2JveC1zaXppbmc6Ym9yZGVyLWJveH0KaHRtbCxib2R5e21hcmdpbjowO21pbi1oZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiNmOGZjZmU7Y29sb3I6dmFyKC0taW5rKX0KYnV0dG9uLGlucHV0e2ZvbnQ6aW5oZXJpdH0KYnV0dG9ue2NvbG9yOmluaGVyaXR9CmJ1dHRvbjpmb2N1cy12aXNpYmxlLGlucHV0OmZvY3VzLXZpc2libGV7b3V0bGluZTozcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tZm9jdXMpIDcwJSx3aGl0ZSk7b3V0bGluZS1vZmZzZXQ6MnB4fQouc3Itb25seXtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7d2lkdGg6MXB4IWltcG9ydGFudDtoZWlnaHQ6MXB4IWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O21hcmdpbjotMXB4IWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O2NsaXA6cmVjdCgwLDAsMCwwKSFpbXBvcnRhbnQ7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDtib3JkZXI6MCFpbXBvcnRhbnR9Ci5hcHAtc2hlbGx7bWluLWhlaWdodDoxMDBkdmg7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtcm93czphdXRvIDFmcjtwYWRkaW5nOjE4cHh9Ci50b3BiYXJ7aGVpZ2h0OjU4cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjAgNHB4IDE0cHh9Ci50aXRsZS1ncm91cHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMXB4O21pbi13aWR0aDowfQouYnJhbmQtbWFya3t3aWR0aDoxMnB4O2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6dmFyKC0tYmx1ZSk7Ym94LXNoYWRvdzo5cHggMCAwIHJnYmEoOCwxMjIsMTgxLC4yMil9Ci50aXRsZS1ncm91cCBoMXttYXJnaW46MDtmb250LXNpemU6MTlweDtsaW5lLWhlaWdodDoxLjE1O2xldHRlci1zcGFjaW5nOi0uMDJlbX0KLnRpdGxlLWdyb3VwIHB7bWFyZ2luOjNweCAwIDA7Y29sb3I6dmFyKC0tbXV0ZWQpO2ZvbnQtc2l6ZToxMnB4fQoubG9jYWwtYmFkZ2V7cGFkZGluZzo2cHggOXB4O2JvcmRlcjoxcHggc29saWQgI2JmZGRlYTtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6I2YzZmJmZjtjb2xvcjojMTg3YWE4O2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzouMDJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Ci53b3Jrc3BhY2V7bWluLWhlaWdodDowO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKSAzOTJweDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1saW5lKTtib3JkZXItcmFkaXVzOjIycHg7YmFja2dyb3VuZDp2YXIoLS1wYW5lbCk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cpfQouc3RhZ2V7cG9zaXRpb246cmVsYXRpdmU7bWluLXdpZHRoOjA7bWluLWhlaWdodDo2NDBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDQ4JSAzNSUsI2ZmZiAwLCNmNGZiZmUgNDUlLCNlN2Y1ZmIgMTAwJSl9CiNwcmV2aWV3LWNhbnZhc3tkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG91Y2gtYWN0aW9uOm5vbmU7Y3Vyc29yOmdyYWJ9CiNwcmV2aWV3LWNhbnZhczphY3RpdmV7Y3Vyc29yOmdyYWJiaW5nfQojcHJldmlldy1jYW52YXNbZGF0YS1pbnRlcmFjdGlvbj0ibGlkIl17Y3Vyc29yOm5zLXJlc2l6ZX0KI3ByZXZpZXctY2FudmFzLmRyYWdnaW5nLWxpZHtjdXJzb3I6Z3JhYmJpbmd9Ci5zdGFnZS10b29sYmFye3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNnB4O2xlZnQ6MTZweDtkaXNwbGF5OmZsZXg7Z2FwOjhweDtwYWRkaW5nOjZweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTg4LDIxNywyMzEsLjgpO2JvcmRlci1yYWRpdXM6MTRweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjg4KTtib3gtc2hhZG93OjAgOHB4IDI2cHggcmdiYSgzNSw5MSwxMjMsLjEpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDEycHgpfQouaWNvbi1idXR0b257aGVpZ2h0OjM4cHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6N3B4O3BhZGRpbmc6MCAxMXB4O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6OXB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOjEycHg7Zm9udC13ZWlnaHQ6NzAwO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMThzLGNvbG9yIC4xOHMsdHJhbnNmb3JtIC4xOHN9Ci5pY29uLWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kOiNlYWY2ZmI7Y29sb3I6dmFyKC0tYmx1ZS1kZWVwKX0KLmljb24tYnV0dG9uOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxcHgpfQouaWNvbi1idXR0b25bYXJpYS1wcmVzc2VkPSJ0cnVlIl17YmFja2dyb3VuZDp2YXIoLS1ibHVlKTtjb2xvcjojZmZmfQouaWNvbi1idXR0b24uY29tcGFjdHt3aWR0aDozOHB4O3BhZGRpbmc6MH0KLmljb24tYnV0dG9uIHN2Z3t3aWR0aDoxN3B4O2hlaWdodDoxN3B4O2ZpbGw6bm9uZTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDoxLjg7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kfQouc3RhZ2UtaGludHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjUwJTtib3R0b206MTdweDt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMjhweCk7cGFkZGluZzo3cHggMTFweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk5LDIyMiwyMzQsLjgpO2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC43OCk7Y29sb3I6IzVhNzQ4Njtmb250LXNpemU6MTFweDt3aGl0ZS1zcGFjZTpub3dyYXA7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTBweCk7cG9pbnRlci1ldmVudHM6bm9uZX0KLmxvYWRpbmctc3RhdGV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjEwcHg7YmFja2dyb3VuZDpyZ2JhKDIzOCwyNDgsMjUzLC44Mik7Y29sb3I6IzQ3NzA4NDtmb250LXNpemU6MTNweDt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyx2aXNpYmlsaXR5IC4yNXM7ei1pbmRleDo1fQoubG9hZGluZy1zdGF0ZS5oaWRkZW57b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuO3BvaW50ZXItZXZlbnRzOm5vbmV9Ci5sb2FkaW5nLXJpbmd7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtib3JkZXI6MnB4IHNvbGlkICNjN2UxZWQ7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1ibHVlKTtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246c3BpbiAuODVzIGxpbmVhciBpbmZpbml0ZX0KQGtleWZyYW1lcyBzcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19Ci5zdGFnZS1lcnJvcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjE2cHg7cmlnaHQ6MTZweDtib3R0b206MTZweDtwYWRkaW5nOjEwcHggMTJweDtib3JkZXI6MXB4IHNvbGlkICNlZmI1YjU7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6I2ZmZjNmMztjb2xvcjojOGQzMDMwO2ZvbnQtc2l6ZToxMnB4O3otaW5kZXg6Nn0KLmNvbnRyb2wtcGFuZWx7bWluLXdpZHRoOjA7b3ZlcmZsb3c6YXV0bztib3JkZXItbGVmdDoxcHggc29saWQgdmFyKC0tbGluZSk7YmFja2dyb3VuZDojZmZmO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjojYmRkOGU1IHRyYW5zcGFyZW50fQouY29udHJvbC1zZWN0aW9ue3BhZGRpbmc6MjBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTdmMGY1fQouc2VjdGlvbi1oZWFkaW5ne2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxNHB4O21hcmdpbi1ib3R0b206MTRweH0KLnNlY3Rpb24taGVhZGluZyBoMnttYXJnaW46MDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoxLjI1O2xldHRlci1zcGFjaW5nOi0uMDFlbX0KLnNlY3Rpb24taGVhZGluZyBwe21hcmdpbjo0cHggMCAwO2NvbG9yOnZhcigtLW11dGVkKTtmb250LXNpemU6MTFweDtsaW5lLWhlaWdodDoxLjM1fQouY29tcGFjdC1oZWFkaW5ne21hcmdpbi1ib3R0b206MTBweH0KLmFjcnlsaWMtY29sb3ItY29udHJvbHN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6N3B4fQouY2xlYXItYWNyeWxpY3ttaW4taGVpZ2h0OjM0cHg7cGFkZGluZzowIDEwcHg7Ym9yZGVyOjFweCBzb2xpZCAjYzhkZWVhO2JvcmRlci1yYWRpdXM6OXB4O2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojNTM2ZDdkO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjgwMDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMThzLGJhY2tncm91bmQtY29sb3IgLjE4cyxjb2xvciAuMThzfQouY2xlYXItYWNyeWxpYzpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYmx1ZSk7Y29sb3I6dmFyKC0tYmx1ZS1kZWVwKTtiYWNrZ3JvdW5kOiNlZGY4ZmR9Ci5jbGVhci1hY3J5bGljLnNlbGVjdGVke2JvcmRlci1jb2xvcjp2YXIoLS1ibHVlKTtiYWNrZ3JvdW5kOiNlZGY4ZmQ7Y29sb3I6dmFyKC0tYmx1ZS1kZWVwKTtib3gtc2hhZG93OjAgMCAwIDFweCByZ2JhKDgsMTIyLDE4MSwuMTIpfQouYWNyeWxpYy1waWNrZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6N3B4O21pbi1oZWlnaHQ6MzRweDtwYWRkaW5nOjVweCA4cHggNXB4IDVweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWxpbmUpO2JvcmRlci1yYWRpdXM6OXB4O2JhY2tncm91bmQ6I2ZiZmRmZjtjdXJzb3I6cG9pbnRlcn0KLmFjcnlsaWMtcGlja2VyIGlucHV0e3dpZHRoOjI3cHg7aGVpZ2h0OjIzcHg7cGFkZGluZzowO2JvcmRlcjowO2JhY2tncm91bmQ6bm9uZTtjdXJzb3I6cG9pbnRlcn0KLmFjcnlsaWMtcGlja2VyIGlucHV0Ojotd2Via2l0LWNvbG9yLXN3YXRjaC13cmFwcGVye3BhZGRpbmc6MH0KLmFjcnlsaWMtcGlja2VyIGlucHV0Ojotd2Via2l0LWNvbG9yLXN3YXRjaHtib3JkZXI6MXB4IHNvbGlkICNkNWUzZWE7Ym9yZGVyLXJhZGl1czo2cHh9Ci5hY3J5bGljLXBpY2tlciBzcGFue21pbi13aWR0aDo0MnB4O2NvbG9yOiM0NzYyNzQ7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6ODAwfQoudXBsb2FkLWNvdW50e21pbi13aWR0aDo0NHB4O3BhZGRpbmc6NXB4IDdweDtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6I2VkZjdmYjtjb2xvcjp2YXIoLS1ibHVlLWRlZXApO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjgwMDt0ZXh0LWFsaWduOmNlbnRlcn0KLmhlYWRpbmctYWN0aW9uc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9Ci5yZXNldC1hcnR3b3Jre3BhZGRpbmc6NXB4IDdweDtib3JkZXI6MXB4IHNvbGlkICNjOGRlZWE7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojZmZmO2NvbG9yOiM1MzZkN2Q7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6ODAwO2N1cnNvcjpwb2ludGVyfQoucmVzZXQtYXJ0d29yazpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYmx1ZSk7Y29sb3I6dmFyKC0tYmx1ZS1kZWVwKTtiYWNrZ3JvdW5kOiNlZGY4ZmR9Ci5mYWNlLWxpc3R7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyO2dhcDo4cHh9Ci5mYWNlLWl0ZW17bWluLXdpZHRoOjA7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpIGF1dG8gYXV0bztnYXA6NXB4O3BhZGRpbmc6NXB4O2JvcmRlcjoxcHggc29saWQgI2RjZWFmMTtib3JkZXItcmFkaXVzOjExcHg7YmFja2dyb3VuZDojZmJmZGZlO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xOHMsYmFja2dyb3VuZC1jb2xvciAuMThzLGJveC1zaGFkb3cgLjE4c30KLmZhY2UtaXRlbTpob3Zlcntib3JkZXItY29sb3I6I2I5ZDhlN30KLmZhY2UtaXRlbS5zZWxlY3RlZHtib3JkZXItY29sb3I6dmFyKC0tYmx1ZSk7YmFja2dyb3VuZDojZjFmOWZkO2JveC1zaGFkb3c6MCAwIDAgMXB4IHJnYmEoOCwxMjIsMTgxLC4xNSl9Ci5mYWNlLXNlbGVjdHttaW4td2lkdGg6MDtwYWRkaW5nOjVweCA0cHg7Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt0ZXh0LWFsaWduOmxlZnQ7Y3Vyc29yOnBvaW50ZXJ9Ci5mYWNlLW5hbWUsLmZhY2Utc3RhdHVze2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfQouZmFjZS1uYW1le2ZvbnQtc2l6ZToxMXB4O2ZvbnQtd2VpZ2h0OjgwMH0KLmZhY2Utc3RhdHVze21hcmdpbi10b3A6M3B4O2NvbG9yOiM1OTZmN2U7Zm9udC1zaXplOjExcHh9Ci5mYWNlLXN0YXR1cy5yZWFkeXtjb2xvcjojMTc3NjRkfQoudXBsb2FkLWJ1dHRvbnthbGlnbi1zZWxmOmNlbnRlcjtwYWRkaW5nOjZweCA3cHg7Ym9yZGVyOjFweCBzb2xpZCAjYzhkZWVhO2JvcmRlci1yYWRpdXM6N3B4O2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1ibHVlLWRlZXApO2ZvbnQtc2l6ZTo5LjVweDtmb250LXdlaWdodDo4MDA7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xOHMsYm9yZGVyLWNvbG9yIC4xOHN9Ci51cGxvYWQtYnV0dG9uOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1ibHVlKTtiYWNrZ3JvdW5kOiNlZGY4ZmR9Ci5yZW1vdmUtYnV0dG9ue2FsaWduLXNlbGY6Y2VudGVyO3dpZHRoOjI1cHg7aGVpZ2h0OjI3cHg7cGFkZGluZzowO2JvcmRlcjoxcHggc29saWQgI2Q2ZTRlYjtib3JkZXItcmFkaXVzOjdweDtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzZiN2Y4ZDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxO2N1cnNvcjpwb2ludGVyfQoucmVtb3ZlLWJ1dHRvbjpob3Zlcntib3JkZXItY29sb3I6I2Q4OGM4YztiYWNrZ3JvdW5kOiNmZmY1ZjU7Y29sb3I6IzliM2YzZn0KLnJlbW92ZS1idXR0b25baGlkZGVuXXtkaXNwbGF5Om5vbmV9Ci5maWxlLWlucHV0e2Rpc3BsYXk6bm9uZX0KLnNlZ21lbnRlZC1jb250cm9se2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6N3B4O3BhZGRpbmc6NHB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiNlZWY1Zjh9Ci5maWxsLW9wdGlvbnttaW4td2lkdGg6MDtwYWRkaW5nOjlweCA4cHg7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czo5cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt0ZXh0LWFsaWduOmxlZnQ7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xOHMsYm94LXNoYWRvdyAuMThzfQouZmlsbC1vcHRpb24gc3BhbiwuZmlsbC1vcHRpb24gc21hbGx7ZGlzcGxheTpibG9ja30KLmZpbGwtb3B0aW9uIHNwYW57Zm9udC1zaXplOjExcHg7Zm9udC13ZWlnaHQ6ODAwfQouZmlsbC1vcHRpb24gc21hbGx7bWFyZ2luLXRvcDozcHg7Y29sb3I6IzVkNzI4MDtmb250LXNpemU6MTAuNXB4O2xpbmUtaGVpZ2h0OjEuM30KLmZpbGwtb3B0aW9uLnNlbGVjdGVke2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjAgMnB4IDhweCByZ2JhKDQyLDg4LDExMywuMSl9Ci5maWxsLW9wdGlvbi5zZWxlY3RlZCBzcGFue2NvbG9yOnZhcigtLWJsdWUtZGVlcCl9Ci5wcmV2aWV3LW5vdGV7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjlweDtiYWNrZ3JvdW5kOiNmN2ZiZmQ7Ym9yZGVyLWJvdHRvbTowfQoucHJldmlldy1ub3RlIHN2Z3tmbGV4OjAgMCBhdXRvO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmlsbDpub25lO3N0cm9rZTp2YXIoLS1ibHVlKTtzdHJva2Utd2lkdGg6MS44O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZH0KLnByZXZpZXctbm90ZSBwe21hcmdpbjowO2NvbG9yOiM2MDc3ODY7Zm9udC1zaXplOjEwcHg7bGluZS1oZWlnaHQ6MS41fQoudG9hc3R7cG9zaXRpb246Zml4ZWQ7bGVmdDo1MCU7Ym90dG9tOjI0cHg7ei1pbmRleDoyMDttYXgtd2lkdGg6bWluKDQyMHB4LGNhbGMoMTAwdncgLSAzMHB4KSk7cGFkZGluZzo5cHggMTNweDtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDojMTczMjQ3O2NvbG9yOiNmZmY7Zm9udC1zaXplOjExcHg7Ym94LXNoYWRvdzowIDEycHggMzBweCByZ2JhKDE1LDQ1LDYyLC4yMik7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwxMnB4KTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuMnMsdHJhbnNmb3JtIC4yc30KLnRvYXN0LnZpc2libGV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwwKX0KQG1lZGlhKG1heC13aWR0aDo5MDBweCl7CiAgLmFwcC1zaGVsbHtwYWRkaW5nOjEwcHh9CiAgLndvcmtzcGFjZXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO292ZXJmbG93OnZpc2libGU7Ym9yZGVyLXJhZGl1czoxOHB4fQogIC5zdGFnZXttaW4taGVpZ2h0OjU2ZHZoO2hlaWdodDo1NmR2aH0KICAuY29udHJvbC1wYW5lbHtvdmVyZmxvdzp2aXNpYmxlO2JvcmRlci1sZWZ0OjA7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tbGluZSl9Cn0KQG1lZGlhKG1heC13aWR0aDo1MjBweCl7CiAgLmFwcC1zaGVsbHtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6MDtiYWNrZ3JvdW5kOiNmZmZ9CiAgLnRvcGJhcntoZWlnaHQ6NjJweDtwYWRkaW5nOjlweCAxMnB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWxpbmUpfQogIC50aXRsZS1ncm91cCBoMXtmb250LXNpemU6MTZweH0KICAudGl0bGUtZ3JvdXAgcHtmb250LXNpemU6MTBweH0KICAubG9jYWwtYmFkZ2V7Zm9udC1zaXplOjlweH0KICAud29ya3NwYWNle2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmV9CiAgLnN0YWdle2hlaWdodDo1MmR2aDttaW4taGVpZ2h0OjM2MHB4fQogIC5zdGFnZS10b29sYmFye3RvcDoxMHB4O2xlZnQ6MTBweDtyaWdodDoxMHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjRweDtwYWRkaW5nOjVweH0KICAuaWNvbi1idXR0b257aGVpZ2h0OjM2cHg7cGFkZGluZzowIDhweDtmb250LXNpemU6MTBweH0KICAuaWNvbi1idXR0b24uY29tcGFjdHt3aWR0aDozNHB4fQogIC5zdGFnZS1oaW50e2JvdHRvbToxMHB4O3dpZHRoOmNhbGMoMTAwJSAtIDIycHgpO2ZvbnQtc2l6ZTo5LjVweDtsaW5lLWhlaWdodDoxLjM7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm9ybWFsfQogIC5jb250cm9sLXNlY3Rpb257cGFkZGluZzoxNnB4fQogIC5hY3J5bGljLWNvbG9yLWNvbnRyb2xze2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0KICAuY2xlYXItYWNyeWxpYywuYWNyeWxpYy1waWNrZXJ7bWluLWhlaWdodDo0NHB4fQogIC5mYWNlLWxpc3R7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcn0KICAuZmFjZS1pdGVte2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpIDYycHggNDRweH0KICAudXBsb2FkLWJ1dHRvbiwucmVtb3ZlLWJ1dHRvbnttaW4taGVpZ2h0OjQ0cHh9CiAgLnJlbW92ZS1idXR0b257d2lkdGg6NDRweDtoZWlnaHQ6NDRweH0KICAucmVzZXQtYXJ0d29ya3ttaW4taGVpZ2h0OjQ0cHg7cGFkZGluZzo4cHggMTBweH0KfQpAbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2UpewogICosKjo6YmVmb3JlLCo6OmFmdGVye3Njcm9sbC1iZWhhdmlvcjphdXRvIWltcG9ydGFudDthbmltYXRpb24tZHVyYXRpb246LjAxbXMhaW1wb3J0YW50O2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDFtcyFpbXBvcnRhbnR9Cn0KCjwvc3R5bGU+CiAgPHNjcmlwdCB0eXBlPSJpbXBvcnRtYXAiPgogIHsKICAgICJpbXBvcnRzIjogewogICAgICAidGhyZWUiOiAiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS90aHJlZUAwLjE2MC4wL2J1aWxkL3RocmVlLm1vZHVsZS5qcyIsCiAgICAgICJ0aHJlZS9hZGRvbnMvIjogImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vdGhyZWVAMC4xNjAuMC9leGFtcGxlcy9qc20vIgogICAgfQogIH0KICA8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keT4KICA8bWFpbiBjbGFzcz0iYXBwLXNoZWxsIj4KICAgIDxoZWFkZXIgY2xhc3M9InRvcGJhciI+CiAgICAgIDxkaXYgY2xhc3M9InRpdGxlLWdyb3VwIj4KICAgICAgICA8c3BhbiBjbGFzcz0iYnJhbmQtbWFyayIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KICAgICAgICA8ZGl2PgogICAgICAgICAgPGgxPkN1c3RvbSBBY3J5bGljIEJveDwvaDE+CiAgICAgICAgICA8cD5TaXgtZmFjZSBFNyBzdHJ1Y3R1cmUgcHJldmlldzwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxzcGFuIGNsYXNzPSJsb2NhbC1iYWRnZSI+TGl2ZSAzRCBwcmV2aWV3PC9zcGFuPgogICAgPC9oZWFkZXI+CgogICAgPHNlY3Rpb24gY2xhc3M9IndvcmtzcGFjZSIgYXJpYS1sYWJlbD0iQWNyeWxpYyBib3ggY29uZmlndXJhdG9yIj4KICAgICAgPGRpdiBjbGFzcz0ic3RhZ2UiIGlkPSJzdGFnZSI+CiAgICAgICAgPGNhbnZhcyBpZD0icHJldmlldy1jYW52YXMiIHRhYmluZGV4PSIwIiBhcmlhLWRlc2NyaWJlZGJ5PSJzdGFnZS1oaW50IiBhcmlhLWxhYmVsPSJJbnRlcmFjdGl2ZSAzRCBhY3J5bGljIGJveCBwcmV2aWV3LiBEcmFnIHRoZSBsaWQgdG8gb3BlbiBvciBjbG9zZSBpdCwgY2xpY2sgdGhlIGZyb250IHVwbG9hZCBpY29uIHRvIGFkZCBhcnR3b3JrLCB1c2UgYXJyb3cga2V5cyB0byBvcmJpdCwgYW5kIHVzZSBwbHVzIG9yIG1pbnVzIHRvIHpvb20uIj48L2NhbnZhcz4KCiAgICAgICAgPGRpdiBjbGFzcz0ic3RhZ2UtdG9vbGJhciIgYXJpYS1sYWJlbD0iM0QgdmlldyBjb250cm9scyI+CiAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJpY29uLWJ1dHRvbiIgaWQ9ImFzc2VtYmx5LXRvZ2dsZSIgdHlwZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9ImZhbHNlIiB0aXRsZT0iRXhwbG9kZSBib3giPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik00IDcuNSAxMiAzbDggNC41LTggNC41LTgtNC41Wm0wIDQuNSA4IDQuNSA4LTQuNU00IDE2LjVsOCA0LjUgOC00LjUiLz48L3N2Zz4KICAgICAgICAgICAgPHNwYW4+RXhwbG9kZTwvc3Bhbj4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iaWNvbi1idXR0b24iIGlkPSJsaWQtdG9nZ2xlIiB0eXBlPSJidXR0b24iIGFyaWEtcHJlc3NlZD0iZmFsc2UiIHRpdGxlPSJPcGVuIGxpZCI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTQgMTBoMTZ2MTBINHpNNCAxMGwzLTZoMTRsLTEgNk04IDE0aDgiLz48L3N2Zz4KICAgICAgICAgICAgPHNwYW4+T3BlbiBsaWQ8L3NwYW4+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIGNvbXBhY3QiIGlkPSJyZXNldC12aWV3IiB0eXBlPSJidXR0b24iIHRpdGxlPSJSZXNldCB2aWV3IiBhcmlhLWxhYmVsPSJSZXNldCAzRCB2aWV3Ij4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNNC45IDcuNUE4IDggMCAxIDEgNCAxNE00IDR2NGg0Ii8+PC9zdmc+CiAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgIDxidXR0b24gY2xhc3M9Imljb24tYnV0dG9uIGNvbXBhY3QiIGlkPSJzYXZlLXByZXZpZXciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9IlNhdmUgcHJldmlldyBpbWFnZSIgYXJpYS1sYWJlbD0iU2F2ZSBwcmV2aWV3IGltYWdlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTIgM3YxMm0wIDAgNC00bS00IDQtNC00TTUgMTloMTQiLz48L3N2Zz4KICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJzdGFnZS1oaW50IiBpZD0ic3RhZ2UtaGludCI+RHJhZyBsaWQgwrcgRHJhZyBiYWNrZ3JvdW5kIMK3IFNlbGVjdCBmcm9udCBpY29uIHRvIHVwbG9hZDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImxvYWRpbmctc3RhdGUiIGlkPSJsb2FkaW5nLXN0YXRlIiByb2xlPSJzdGF0dXMiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImxvYWRpbmctcmluZyIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkJ1aWxkaW5nIGV4YWN0IEU3IHBhbmVsczwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzdGFnZS1lcnJvciIgaWQ9InN0YWdlLWVycm9yIiByb2xlPSJhbGVydCIgaGlkZGVuPjwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxhc2lkZSBjbGFzcz0iY29udHJvbC1wYW5lbCIgYXJpYS1sYWJlbD0iQ3VzdG9taXphdGlvbiBjb250cm9scyI+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImNvbnRyb2wtc2VjdGlvbiBhY3J5bGljLWNvbG9yLXNlY3Rpb24iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkaW5nIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8aDI+QWNyeWxpYyBjb2xvcjwvaDI+CiAgICAgICAgICAgICAgPHA+VHJhbnNwYXJlbnQgdGludCBhY3Jvc3MgYWxsIHNpeCBwYW5lbHM8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJhY3J5bGljLWNvbG9yLWNvbnRyb2xzIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJjbGVhci1hY3J5bGljIHNlbGVjdGVkIiBpZD0iY2xlYXItYWNyeWxpYyIgdHlwZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9InRydWUiPkNsZWFyPC9idXR0b24+CiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJhY3J5bGljLXBpY2tlciIgdGl0bGU9IkNob29zZSBhIGN1c3RvbSB0cmFuc3BhcmVudCBhY3J5bGljIHRpbnQiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNyLW9ubHkiPkN1c3RvbSBhY3J5bGljIHRpbnQ8L3NwYW4+CiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImFjcnlsaWMtY29sb3IiIHR5cGU9ImNvbG9yIiB2YWx1ZT0iI2ZmZmZmZiIgYXJpYS1sYWJlbD0iQ3VzdG9tIGFjcnlsaWMgdGludCI+CiAgICAgICAgICAgICAgICA8c3BhbiBpZD0iYWNyeWxpYy1jb2xvci12YWx1ZSI+Q2xlYXI8L3NwYW4+CiAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L3NlY3Rpb24+CgogICAgICAgIDxzZWN0aW9uIGNsYXNzPSJjb250cm9sLXNlY3Rpb24gZmFjZXMtc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmciPgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxoMj5GYWNlIGFydHdvcms8L2gyPgogICAgICAgICAgICAgIDxwPlNpeCBmYWNlcyBzdGFydCB3aXRoIHRoZSBzYW1wbGUgYXJ0d29yazwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRpbmctYWN0aW9ucyI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InVwbG9hZC1jb3VudCIgaWQ9InVwbG9hZC1jb3VudCI+MCAvIDY8L3NwYW4+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVzZXQtYXJ0d29yayIgaWQ9InJlc2V0LWFydHdvcmsiIHR5cGU9ImJ1dHRvbiI+UmVzdG9yZSBkZWZhdWx0PC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iZmFjZS1saXN0IiBpZD0iZmFjZS1saXN0Ij4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9ImZhY2UtaXRlbSBzZWxlY3RlZCIgZGF0YS1mYWNlPSJib3R0b20iPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImZhY2Utc2VsZWN0IiB0eXBlPSJidXR0b24iIGRhdGEtc2VsZWN0LWZhY2U9ImJvdHRvbSIgYXJpYS1wcmVzc2VkPSJ0cnVlIj48c3BhbiBjbGFzcz0iZmFjZS1uYW1lIj5Cb3R0b208L3NwYW4+PHNwYW4gY2xhc3M9ImZhY2Utc3RhdHVzIj5FbXB0eTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ1cGxvYWQtYnV0dG9uIiB0eXBlPSJidXR0b24iIGRhdGEtdXBsb2FkLWZhY2U9ImJvdHRvbSIgYXJpYS1sYWJlbD0iVXBsb2FkIGFydHdvcmsgZm9yIEJvdHRvbSI+VXBsb2FkPC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0icmVtb3ZlLWJ1dHRvbiIgdHlwZT0iYnV0dG9uIiBkYXRhLXJlbW92ZS1mYWNlPSJib3R0b20iIGFyaWEtbGFiZWw9IlJlbW92ZSBCb3R0b20gYXJ0d29yayIgaGlkZGVuPsOXPC9idXR0b24+CiAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJmaWxlLWlucHV0IiB0eXBlPSJmaWxlIiBhY2NlcHQ9ImltYWdlL3BuZyxpbWFnZS9qcGVnLGltYWdlL3dlYnAiIGRhdGEtZmlsZS1mYWNlPSJib3R0b20iIHRhYmluZGV4PSItMSI+CiAgICAgICAgICAgIDwvYXJ0aWNsZT4KICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9ImZhY2UtaXRlbSIgZGF0YS1mYWNlPSJmcm9udCI+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iZmFjZS1zZWxlY3QiIHR5cGU9ImJ1dHRvbiIgZGF0YS1zZWxlY3QtZmFjZT0iZnJvbnQiIGFyaWEtcHJlc3NlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJmYWNlLW5hbWUiPkZyb250PC9zcGFuPjxzcGFuIGNsYXNzPSJmYWNlLXN0YXR1cyI+RW1wdHk8L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0idXBsb2FkLWJ1dHRvbiIgdHlwZT0iYnV0dG9uIiBkYXRhLXVwbG9hZC1mYWNlPSJmcm9udCIgYXJpYS1sYWJlbD0iVXBsb2FkIGFydHdvcmsgZm9yIEZyb250Ij5VcGxvYWQ8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtYnV0dG9uIiB0eXBlPSJidXR0b24iIGRhdGEtcmVtb3ZlLWZhY2U9ImZyb250IiBhcmlhLWxhYmVsPSJSZW1vdmUgRnJvbnQgYXJ0d29yayIgaGlkZGVuPsOXPC9idXR0b24+CiAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPSJmaWxlLWlucHV0IiB0eXBlPSJmaWxlIiBhY2NlcHQ9ImltYWdlL3BuZyxpbWFnZS9qcGVnLGltYWdlL3dlYnAiIGRhdGEtZmlsZS1mYWNlPSJmcm9udCIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0iZmFjZS1pdGVtIiBkYXRhLWZhY2U9ImJhY2siPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImZhY2Utc2VsZWN0IiB0eXBlPSJidXR0b24iIGRhdGEtc2VsZWN0LWZhY2U9ImJhY2siIGFyaWEtcHJlc3NlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJmYWNlLW5hbWUiPkJhY2s8L3NwYW4+PHNwYW4gY2xhc3M9ImZhY2Utc3RhdHVzIj5FbXB0eTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ1cGxvYWQtYnV0dG9uIiB0eXBlPSJidXR0b24iIGRhdGEtdXBsb2FkLWZhY2U9ImJhY2siIGFyaWEtbGFiZWw9IlVwbG9hZCBhcnR3b3JrIGZvciBCYWNrIj5VcGxvYWQ8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtYnV0dG9uIiB0eXBlPSJidXR0b24iIGRhdGEtcmVtb3ZlLWZhY2U9ImJhY2siIGFyaWEtbGFiZWw9IlJlbW92ZSBCYWNrIGFydHdvcmsiIGhpZGRlbj7DlzwvYnV0dG9uPgogICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iZmlsZS1pbnB1dCIgdHlwZT0iZmlsZSIgYWNjZXB0PSJpbWFnZS9wbmcsaW1hZ2UvanBlZyxpbWFnZS93ZWJwIiBkYXRhLWZpbGUtZmFjZT0iYmFjayIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0iZmFjZS1pdGVtIiBkYXRhLWZhY2U9ImxlZnQiPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImZhY2Utc2VsZWN0IiB0eXBlPSJidXR0b24iIGRhdGEtc2VsZWN0LWZhY2U9ImxlZnQiIGFyaWEtcHJlc3NlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJmYWNlLW5hbWUiPkxlZnQ8L3NwYW4+PHNwYW4gY2xhc3M9ImZhY2Utc3RhdHVzIj5FbXB0eTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ1cGxvYWQtYnV0dG9uIiB0eXBlPSJidXR0b24iIGRhdGEtdXBsb2FkLWZhY2U9ImxlZnQiIGFyaWEtbGFiZWw9IlVwbG9hZCBhcnR3b3JrIGZvciBMZWZ0Ij5VcGxvYWQ8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtYnV0dG9uIiB0eXBlPSJidXR0b24iIGRhdGEtcmVtb3ZlLWZhY2U9ImxlZnQiIGFyaWEtbGFiZWw9IlJlbW92ZSBMZWZ0IGFydHdvcmsiIGhpZGRlbj7DlzwvYnV0dG9uPgogICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz0iZmlsZS1pbnB1dCIgdHlwZT0iZmlsZSIgYWNjZXB0PSJpbWFnZS9wbmcsaW1hZ2UvanBlZyxpbWFnZS93ZWJwIiBkYXRhLWZpbGUtZmFjZT0ibGVmdCIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgICAgICA8YXJ0aWNsZSBjbGFzcz0iZmFjZS1pdGVtIiBkYXRhLWZhY2U9InJpZ2h0Ij4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJmYWNlLXNlbGVjdCIgdHlwZT0iYnV0dG9uIiBkYXRhLXNlbGVjdC1mYWNlPSJyaWdodCIgYXJpYS1wcmVzc2VkPSJmYWxzZSI+PHNwYW4gY2xhc3M9ImZhY2UtbmFtZSI+UmlnaHQ8L3NwYW4+PHNwYW4gY2xhc3M9ImZhY2Utc3RhdHVzIj5FbXB0eTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJ1cGxvYWQtYnV0dG9uIiB0eXBlPSJidXR0b24iIGRhdGEtdXBsb2FkLWZhY2U9InJpZ2h0IiBhcmlhLWxhYmVsPSJVcGxvYWQgYXJ0d29yayBmb3IgUmlnaHQiPlVwbG9hZDwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InJlbW92ZS1idXR0b24iIHR5cGU9ImJ1dHRvbiIgZGF0YS1yZW1vdmUtZmFjZT0icmlnaHQiIGFyaWEtbGFiZWw9IlJlbW92ZSBSaWdodCBhcnR3b3JrIiBoaWRkZW4+w5c8L2J1dHRvbj4KICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImZpbGUtaW5wdXQiIHR5cGU9ImZpbGUiIGFjY2VwdD0iaW1hZ2UvcG5nLGltYWdlL2pwZWcsaW1hZ2Uvd2VicCIgZGF0YS1maWxlLWZhY2U9InJpZ2h0IiB0YWJpbmRleD0iLTEiPgogICAgICAgICAgICA8L2FydGljbGU+CiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPSJmYWNlLWl0ZW0iIGRhdGEtZmFjZT0ibGlkIj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJmYWNlLXNlbGVjdCIgdHlwZT0iYnV0dG9uIiBkYXRhLXNlbGVjdC1mYWNlPSJsaWQiIGFyaWEtcHJlc3NlZD0iZmFsc2UiPjxzcGFuIGNsYXNzPSJmYWNlLW5hbWUiPlRvcCAvIExpZDwvc3Bhbj48c3BhbiBjbGFzcz0iZmFjZS1zdGF0dXMiPkVtcHR5PC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9InVwbG9hZC1idXR0b24iIHR5cGU9ImJ1dHRvbiIgZGF0YS11cGxvYWQtZmFjZT0ibGlkIiBhcmlhLWxhYmVsPSJVcGxvYWQgYXJ0d29yayBmb3IgVG9wIC8gTGlkIj5VcGxvYWQ8L2J1dHRvbj4KICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJyZW1vdmUtYnV0dG9uIiB0eXBlPSJidXR0b24iIGRhdGEtcmVtb3ZlLWZhY2U9ImxpZCIgYXJpYS1sYWJlbD0iUmVtb3ZlIFRvcCAvIExpZCBhcnR3b3JrIiBoaWRkZW4+w5c8L2J1dHRvbj4KICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImZpbGUtaW5wdXQiIHR5cGU9ImZpbGUiIGFjY2VwdD0iaW1hZ2UvcG5nLGltYWdlL2pwZWcsaW1hZ2Uvd2VicCIgZGF0YS1maWxlLWZhY2U9ImxpZCIgdGFiaW5kZXg9Ii0xIj4KICAgICAgICAgICAgPC9hcnRpY2xlPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0iY29udHJvbC1zZWN0aW9uIGZpbGwtc2VjdGlvbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRpbmcgY29tcGFjdC1oZWFkaW5nIj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8aDI+SW1hZ2UgZmlsbDwvaDI+CiAgICAgICAgICAgICAgPHAgaWQ9InNlbGVjdGVkLWZhY2UtbGFiZWwiPkJvdHRvbSBmYWNlPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic2VnbWVudGVkLWNvbnRyb2wiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSJJbWFnZSBmaWxsIG1vZGUiPgogICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZpbGwtb3B0aW9uIHNlbGVjdGVkIiBkYXRhLWZpbGwtbW9kZT0iY292ZXIiIGFyaWEtcHJlc3NlZD0idHJ1ZSI+CiAgICAgICAgICAgICAgPHNwYW4+Q3JvcCB0byBmaWxsPC9zcGFuPgogICAgICAgICAgICAgIDxzbWFsbD5LZWVwIHByb3BvcnRpb25zPC9zbWFsbD4KICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iZmlsbC1vcHRpb24iIGRhdGEtZmlsbC1tb2RlPSJzdHJldGNoIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj4KICAgICAgICAgICAgICA8c3Bhbj5TdHJldGNoIHRvIGZpbGw8L3NwYW4+CiAgICAgICAgICAgICAgPHNtYWxsPlVzZSB0aGUgZnVsbCBpbWFnZTwvc21hbGw+CiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9zZWN0aW9uPgoKICAgICAgICA8c2VjdGlvbiBjbGFzcz0iY29udHJvbC1zZWN0aW9uIHByZXZpZXctbm90ZSI+CiAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xMiAyMmExMCAxMCAwIDEgMCAwLTIwIDEwIDEwIDAgMCAwIDAgMjBabTAtMTR2NW0wIDN2LjAxIi8+PC9zdmc+CiAgICAgICAgICA8cD5UaGUgcHJldmlldyB1c2VzIHRoZSBzdXBwbGllZCBFNyBjdXR0aW5nIGNvbnRvdXJzIGFuZCBhIDIuNiBtbSB0aGlja25lc3MgaW5mZXJyZWQgZnJvbSB0aGUgc2xvdHMuIEFydHdvcmsgc3RhcnRzIHdpdGggdGhlIHNhbXBsZSBpbWFnZSBhbmQgY2FuIGJlIHJlcGxhY2VkIGluZGVwZW5kZW50bHkgb24gZXZlcnkgZmFjZS4gUHJpbnRlZCBjb2xvciBhbmQgcGh5c2ljYWwgZml0IHJlbWFpbiByZXByZXNlbnRhdGl2ZS48L3A+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICA8L2FzaWRlPgogICAgPC9zZWN0aW9uPgogIDwvbWFpbj4KICA8ZGl2IGNsYXNzPSJ0b2FzdCIgaWQ9InRvYXN0IiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj4KICA8c2NyaXB0IHR5cGU9Im1vZHVsZSI+Ci8vIEdlbmVyYXRlZCBmcm9tIHRoZSBzdXBwbGllZCBFNyBEWEYuIERvIG5vdCBoYW5kLWVkaXQuDQpleHBvcnQgY29uc3QgRTdfR0VPTUVUUlk9eyJzb3VyY2UiOiJFNy1jdXR0aW5nLmR4ZiIsInVuaXRzIjoibW0iLCJ0aGlja25lc3MiOjIuNiwic2xvdCI6eyJsZW5ndGgiOjEwLjIsIndpZHRoIjoyLjZ9LCJoaW5nZUhvbGVEaWFtZXRlciI6NS4wLCJleGNsdWRlZExheW91dEVudGl0aWVzIjpbMSwyLDMsNF0sInBhcnRzIjp7ImJvdHRvbSI6eyJpZCI6ImJvdHRvbSIsImxhYmVsIjoiQm90dG9tIiwib3V0ZXJFbnRpdHkiOjAsImhvbGVFbnRpdGllcyI6W10sImJvdW5kcyI6eyJtaW5YIjotMTQyLjUwNjEsIm1heFgiOi0xNi45OTQ2LCJtaW5ZIjotNDE3LjQwNjUsIm1heFkiOi0zMzEuODI0Miwid2lkdGgiOjEyNS41MTE1LCJoZWlnaHQiOjg1LjU4MjN9LCJvdXRlciI6W1stMTM3Ljc3NDcsLTMzNC42MTc2XSxbLTEzMy4zOTk3LC0zMzQuNjE3Nl0sWy0xMjMuNzc0NywtMzM0LjYxNzZdLFstMTE0LjE0OTcsLTMzNC42MTc2XSxbLTEwOS43NzQ3LC0zMzQuNjE3Nl0sWy0xMDkuNzc0NywtMzM0LjMzNzRdLFstMTA5Ljc3NDcsLTMzMy43MjA5XSxbLTEwOS43NzQ3LC0zMzMuMTA0NF0sWy0xMDkuNzc0NywtMzMyLjgyNDJdLFstMTA5LjY5NTksLTMzMi40MzU2XSxbLTEwOS40ODEyLC0zMzIuMTE3N10sWy0xMDkuMTYzMywtMzMxLjkwM10sWy0xMDguNzc0NywtMzMxLjgyNDJdLFstMTA3LjUyNDcsLTMzMS44MjQyXSxbLTEwNC43NzQ3LC0zMzEuODI0Ml0sWy0xMDIuMDI0NywtMzMxLjgyNDJdLFstMTAwLjc3NDcsLTMzMS44MjQyXSxbLTEwMC4zODYxLC0zMzEuOTAzXSxbLTEwMC4wNjgyLC0zMzIuMTE3N10sWy05OS44NTM1LC0zMzIuNDM1Nl0sWy05OS43NzQ3LC0zMzIuODI0Ml0sWy05OS43NzQ3LC0zMzMuMTA0NF0sWy05OS43NzQ3LC0zMzMuNzIwOV0sWy05OS43NzQ3LC0zMzQuMzM3NF0sWy05OS43NzQ3LC0zMzQuNjE3Nl0sWy05My41MjQ3LC0zMzQuNjE3Nl0sWy03OS43NzQ3LC0zMzQuNjE3Nl0sWy02Ni4wMjQ3LC0zMzQuNjE3Nl0sWy01OS43NzQ3LC0zMzQuNjE3Nl0sWy01OS43NzQ3LC0zMzQuMzQ4XSxbLTU5Ljc3NDcsLTMzMy43NTQ4XSxbLTU5Ljc3NDcsLTMzMy4xNjE1XSxbLTU5Ljc3NDcsLTMzMi44OTE5XSxbLTU5LjY5NTksLTMzMi41MDMzXSxbLTU5LjQ4MTMsLTMzMi4xODU0XSxbLTU5LjE2MzMsLTMzMS45NzA3XSxbLTU4Ljc3NDcsLTMzMS44OTE5XSxbLTU3LjUyNDcsLTMzMS44OTE5XSxbLTU0Ljc3NDcsLTMzMS44OTE5XSxbLTUyLjAyNDcsLTMzMS44OTE5XSxbLTUwLjc3NDcsLTMzMS44OTE5XSxbLTUwLjM4NjEsLTMzMS45NzA3XSxbLTUwLjA2ODIsLTMzMi4xODU0XSxbLTQ5Ljg1MzUsLTMzMi41MDMzXSxbLTQ5Ljc3NDcsLTMzMi44OTE5XSxbLTQ5Ljc3NDcsLTMzMy4xNjE1XSxbLTQ5Ljc3NDcsLTMzMy43NTQ4XSxbLTQ5Ljc3NDcsLTMzNC4zNDhdLFstNDkuNzc0NywtMzM0LjYxNzZdLFstNDUuMzk5NywtMzM0LjYxNzZdLFstMzUuNzc0NywtMzM0LjYxNzZdLFstMjYuMTQ5NywtMzM0LjYxNzZdLFstMjEuNzc0NywtMzM0LjYxNzZdLFstMjAuOTk4MSwtMzM0Ljc3NTRdLFstMjAuMzYyMiwtMzM1LjIwNTFdLFstMTkuOTMyNSwtMzM1Ljg0MV0sWy0xOS43NzQ3LC0zMzYuNjE3Nl0sWy0xOS43NzQ3LC0zNDEuNzczNV0sWy0xOS43NzQ3LC0zNTMuMTE2NV0sWy0xOS43NzQ3LC0zNjQuNDU5NV0sWy0xOS43NzQ3LC0zNjkuNjE1NF0sWy0xOS40OTY2LC0zNjkuNjE1NF0sWy0xOC44ODQ2LC0zNjkuNjE1NF0sWy0xOC4yNzI3LC0zNjkuNjE1NF0sWy0xNy45OTQ2LC0zNjkuNjE1NF0sWy0xNy42MDYsLTM2OS42OTQyXSxbLTE3LjI4OCwtMzY5LjkwODldLFstMTcuMDczNCwtMzcwLjIyNjhdLFstMTYuOTk0NiwtMzcwLjYxNTRdLFstMTYuOTk0NiwtMzcxLjg2NTRdLFstMTYuOTk0NiwtMzc0LjYxNTRdLFstMTYuOTk0NiwtMzc3LjM2NTRdLFstMTYuOTk0NiwtMzc4LjYxNTRdLFstMTcuMDczNCwtMzc5LjAwNF0sWy0xNy4yODgsLTM3OS4zMjJdLFstMTcuNjA2LC0zNzkuNTM2Nl0sWy0xNy45OTQ2LC0zNzkuNjE1NF0sWy0xOC4yNzI3LC0zNzkuNjE1NF0sWy0xOC44ODQ3LC0zNzkuNjE1NF0sWy0xOS40OTY2LC0zNzkuNjE1NF0sWy0xOS43NzQ3LC0zNzkuNjE1NF0sWy0xOS43NzQ3LC0zODQuNzcyXSxbLTE5Ljc3NDcsLTM5Ni4xMTY1XSxbLTE5Ljc3NDcsLTQwNy40NjFdLFstMTkuNzc0NywtNDEyLjYxNzZdLFstMTkuOTMyNSwtNDEzLjM5NDJdLFstMjAuMzYyMiwtNDE0LjAzMDFdLFstMjAuOTk4MSwtNDE0LjQ1OThdLFstMjEuNzc0NywtNDE0LjYxNzZdLFstMjYuMTQ5NywtNDE0LjYxNzZdLFstMzUuNzc0NywtNDE0LjYxNzZdLFstNDUuMzk5NywtNDE0LjYxNzZdLFstNDkuNzc0NywtNDE0LjYxNzZdLFstNDkuNzc0NywtNDE0Ljg5NzFdLFstNDkuNzc0NywtNDE1LjUxMl0sWy00OS43NzQ3LC00MTYuMTI3XSxbLTQ5Ljc3NDcsLTQxNi40MDY1XSxbLTQ5Ljg1MzUsLTQxNi43OTUxXSxbLTUwLjA2ODIsLTQxNy4xMTNdLFstNTAuMzg2MSwtNDE3LjMyNzddLFstNTAuNzc0NywtNDE3LjQwNjVdLFstNTIuMDI0NywtNDE3LjQwNjVdLFstNTQuNzc0NywtNDE3LjQwNjVdLFstNTcuNTI0NywtNDE3LjQwNjVdLFstNTguNzc0NywtNDE3LjQwNjVdLFstNTkuMTYzMywtNDE3LjMyNzddLFstNTkuNDgxMywtNDE3LjExM10sWy01OS42OTU5LC00MTYuNzk1MV0sWy01OS43NzQ3LC00MTYuNDA2NV0sWy01OS43NzQ3LC00MTYuMTI3XSxbLTU5Ljc3NDcsLTQxNS41MTJdLFstNTkuNzc0NywtNDE0Ljg5NzFdLFstNTkuNzc0NywtNDE0LjYxNzZdLFstNjYuMDI0NywtNDE0LjYxNzZdLFstNzkuNzc0NywtNDE0LjYxNzZdLFstOTMuNTI0NywtNDE0LjYxNzZdLFstOTkuNzc0NywtNDE0LjYxNzZdLFstOTkuNzc0NywtNDE0Ljg4OTddLFstOTkuNzc0NywtNDE1LjQ4ODRdLFstOTkuNzc0NywtNDE2LjA4NzFdLFstOTkuNzc0NywtNDE2LjM1OTJdLFstOTkuODUzNSwtNDE2Ljc0NzhdLFstMTAwLjA2ODIsLTQxNy4wNjU3XSxbLTEwMC4zODYxLC00MTcuMjgwNF0sWy0xMDAuNzc0NywtNDE3LjM1OTJdLFstMTAyLjAyNDcsLTQxNy4zNTkyXSxbLTEwNC43NzQ3LC00MTcuMzU5Ml0sWy0xMDcuNTI0NywtNDE3LjM1OTJdLFstMTA4Ljc3NDcsLTQxNy4zNTkyXSxbLTEwOS4xNjMzLC00MTcuMjgwNF0sWy0xMDkuNDgxMywtNDE3LjA2NTddLFstMTA5LjY5NTksLTQxNi43NDc4XSxbLTEwOS43NzQ3LC00MTYuMzU5Ml0sWy0xMDkuNzc0NywtNDE2LjA4NzFdLFstMTA5Ljc3NDcsLTQxNS40ODg0XSxbLTEwOS43NzQ3LC00MTQuODg5N10sWy0xMDkuNzc0NywtNDE0LjYxNzZdLFstMTE0LjE0OTcsLTQxNC42MTc2XSxbLTEyMy43NzQ3LC00MTQuNjE3Nl0sWy0xMzMuMzk5NywtNDE0LjYxNzZdLFstMTM3Ljc3NDcsLTQxNC42MTc2XSxbLTEzOC41NTEzLC00MTQuNDU5OF0sWy0xMzkuMTg3MiwtNDE0LjAzMDFdLFstMTM5LjYxNjksLTQxMy4zOTQyXSxbLTEzOS43NzQ3LC00MTIuNjE3Nl0sWy0xMzkuNzc0NywtNDA3LjQ2MV0sWy0xMzkuNzc0NywtMzk2LjExNjVdLFstMTM5Ljc3NDcsLTM4NC43NzJdLFstMTM5Ljc3NDcsLTM3OS42MTU0XSxbLTE0MC4wNDUyLC0zNzkuNjE1NF0sWy0xNDAuNjQwNCwtMzc5LjYxNTRdLFstMTQxLjIzNTYsLTM3OS42MTU0XSxbLTE0MS41MDYxLC0zNzkuNjE1NF0sWy0xNDEuODk0NywtMzc5LjUzNjZdLFstMTQyLjIxMjYsLTM3OS4zMjJdLFstMTQyLjQyNzMsLTM3OS4wMDRdLFstMTQyLjUwNjEsLTM3OC42MTU0XSxbLTE0Mi41MDYxLC0zNzcuMzY1NF0sWy0xNDIuNTA2MSwtMzc0LjYxNTRdLFstMTQyLjUwNjEsLTM3MS44NjU0XSxbLTE0Mi41MDYxLC0zNzAuNjE1NF0sWy0xNDIuNDI3MywtMzcwLjIyNjhdLFstMTQyLjIxMjYsLTM2OS45MDg5XSxbLTE0MS44OTQ3LC0zNjkuNjk0Ml0sWy0xNDEuNTA2MSwtMzY5LjYxNTRdLFstMTQxLjIzNTYsLTM2OS42MTU0XSxbLTE0MC42NDA0LC0zNjkuNjE1NF0sWy0xNDAuMDQ1MiwtMzY5LjYxNTRdLFstMTM5Ljc3NDcsLTM2OS42MTU0XSxbLTEzOS43NzQ3LC0zNjQuNDU5NV0sWy0xMzkuNzc0NywtMzUzLjExNjVdLFstMTM5Ljc3NDcsLTM0MS43NzM1XSxbLTEzOS43NzQ3LC0zMzYuNjE3Nl0sWy0xMzkuNjE2OSwtMzM1Ljg0MV0sWy0xMzkuMTg3MiwtMzM1LjIwNTFdLFstMTM4LjU1MTMsLTMzNC43NzU0XV0sImhvbGVzIjpbXX0sImJhY2siOnsiaWQiOiJiYWNrIiwibGFiZWwiOiJCYWNrIiwib3V0ZXJFbnRpdHkiOjUsImhvbGVFbnRpdGllcyI6WzYsN10sImJvdW5kcyI6eyJtaW5YIjotOS45OTIxLCJtYXhYIjoxMTUuNDc0NywibWluWSI6LTMyNi40OTQ4LCJtYXhZIjotMjc2LjQ5NDgsIndpZHRoIjoxMjUuNDY2OCwiaGVpZ2h0Ijo1MC4wfSwib3V0ZXIiOltbLTUuMjc5NiwtMjc2LjQ5NDhdLFsxMi44NDU0LC0yNzYuNDk0OF0sWzUyLjcyMDMsLTI3Ni40OTQ4XSxbOTIuNTk1MiwtMjc2LjQ5NDhdLFsxMTAuNzIwMiwtMjc2LjQ5NDhdLFsxMTEuNDk2OCwtMjc2LjY1MjZdLFsxMTIuMTMyOCwtMjc3LjA4MjNdLFsxMTIuNTYyNSwtMjc3LjcxODJdLFsxMTIuNzIwMywtMjc4LjQ5NDhdLFsxMTIuNzIwMywtMjgxLjMwNzNdLFsxMTIuNzIwMywtMjg3LjQ5NDhdLFsxMTIuNzIwMywtMjkzLjY4MjNdLFsxMTIuNzIwMywtMjk2LjQ5NDhdLFsxMTIuOTk0NCwtMjk2LjQ5NDhdLFsxMTMuNTk3NSwtMjk2LjQ5NDhdLFsxMTQuMjAwNiwtMjk2LjQ5NDhdLFsxMTQuNDc0NywtMjk2LjQ5NDhdLFsxMTQuODYzMywtMjk2LjU3MzZdLFsxMTUuMTgxMywtMjk2Ljc4ODNdLFsxMTUuMzk1OSwtMjk3LjEwNjJdLFsxMTUuNDc0NywtMjk3LjQ5NDhdLFsxMTUuNDc0NywtMjk4Ljc0NDhdLFsxMTUuNDc0NywtMzAxLjQ5NDhdLFsxMTUuNDc0NywtMzA0LjI0NDhdLFsxMTUuNDc0NywtMzA1LjQ5NDhdLFsxMTUuMzk1OSwtMzA1Ljg4MzRdLFsxMTUuMTgxMywtMzA2LjIwMTNdLFsxMTQuODYzMywtMzA2LjQxNl0sWzExNC40NzQ3LC0zMDYuNDk0OF0sWzExNC4yMDA2LC0zMDYuNDk0OF0sWzExMy41OTc1LC0zMDYuNDk0OF0sWzExMi45OTQ0LC0zMDYuNDk0OF0sWzExMi43MjAzLC0zMDYuNDk0OF0sWzExMi43MjAzLC0zMDkuMzA3M10sWzExMi43MjAzLC0zMTUuNDk0OF0sWzExMi43MjAzLC0zMjEuNjgyMl0sWzExMi43MjAzLC0zMjQuNDk0N10sWzExMi41NjI1LC0zMjUuMjcxM10sWzExMi4xMzI4LC0zMjUuOTA3M10sWzExMS40OTY4LC0zMjYuMzM3XSxbMTEwLjcyMDIsLTMyNi40OTQ4XSxbOTIuNTk1MiwtMzI2LjQ5NDhdLFs1Mi43MjAzLC0zMjYuNDk0OF0sWzEyLjg0NTQsLTMyNi40OTQ4XSxbLTUuMjc5NiwtMzI2LjQ5NDhdLFstNi4wNTYyLC0zMjYuMzM3XSxbLTYuNjkyMiwtMzI1LjkwNzNdLFstNy4xMjE5LC0zMjUuMjcxM10sWy03LjI3OTcsLTMyNC40OTQ3XSxbLTcuMjc5NywtMzIxLjY4MjJdLFstNy4yNzk3LC0zMTUuNDk0OF0sWy03LjI3OTcsLTMwOS4zMDczXSxbLTcuMjc5NywtMzA2LjQ5NDhdLFstNy41NDczLC0zMDYuNDk0OF0sWy04LjEzNTksLTMwNi40OTQ4XSxbLTguNzI0NSwtMzA2LjQ5NDhdLFstOC45OTIxLC0zMDYuNDk0OF0sWy05LjM4MDcsLTMwNi40MTZdLFstOS42OTg2LC0zMDYuMjAxM10sWy05LjkxMzMsLTMwNS44ODM0XSxbLTkuOTkyMSwtMzA1LjQ5NDhdLFstOS45OTIxLC0zMDQuMjQ0OF0sWy05Ljk5MjEsLTMwMS40OTQ4XSxbLTkuOTkyMSwtMjk4Ljc0NDhdLFstOS45OTIxLC0yOTcuNDk0OF0sWy05LjkxMzMsLTI5Ny4xMDYyXSxbLTkuNjk4NywtMjk2Ljc4ODNdLFstOS4zODA3LC0yOTYuNTczNl0sWy04Ljk5MjEsLTI5Ni40OTQ4XSxbLTguNzI0NSwtMjk2LjQ5NDhdLFstOC4xMzU5LC0yOTYuNDk0OF0sWy03LjU0NzMsLTI5Ni40OTQ4XSxbLTcuMjc5NywtMjk2LjQ5NDhdLFstNy4yNzk3LC0yOTMuNjgyM10sWy03LjI3OTcsLTI4Ny40OTQ4XSxbLTcuMjc5NywtMjgxLjMwNzNdLFstNy4yNzk3LC0yNzguNDk0OF0sWy03LjEyMTksLTI3Ny43MTgyXSxbLTYuNjkyMiwtMjc3LjA4MjNdLFstNi4wNTYyLC0yNzYuNjUyNl1dLCJob2xlcyI6W1tbMzEuNzg1MiwtMzIxLjQ0NDhdLFszMC40OTI4LC0zMjEuNDQ0OF0sWzI3LjY0OTQsLTMyMS40NDQ4XSxbMjQuODA2LC0zMjEuNDQ0OF0sWzIzLjUxMzYsLTMyMS40NDQ4XSxbMjMuMTM5MiwtMzIxLjM3MTZdLFsyMi44MzI2LC0zMjEuMTcyMV0sWzIyLjYyNTUsLTMyMC44NzY5XSxbMjIuNTQ5NCwtMzIwLjUxNjNdLFsyMi41NDk0LC0zMjAuNDAwMl0sWzIyLjU0OTQsLTMyMC4xNDQ4XSxbMjIuNTQ5NCwtMzE5Ljg4OTRdLFsyMi41NDk0LC0zMTkuNzczM10sWzIyLjYyNTUsLTMxOS40MTI3XSxbMjIuODMyNiwtMzE5LjExNzVdLFsyMy4xMzkyLC0zMTguOTE4XSxbMjMuNTEzNiwtMzE4Ljg0NDhdLFsyNC44MDYsLTMxOC44NDQ4XSxbMjcuNjQ5NCwtMzE4Ljg0NDhdLFszMC40OTI4LC0zMTguODQ0OF0sWzMxLjc4NTIsLTMxOC44NDQ4XSxbMzIuMTU5NiwtMzE4LjkxOF0sWzMyLjQ2NjIsLTMxOS4xMTc1XSxbMzIuNjczMywtMzE5LjQxMjddLFszMi43NDk0LC0zMTkuNzczM10sWzMyLjc0OTQsLTMxOS44ODk0XSxbMzIuNzQ5NCwtMzIwLjE0NDhdLFszMi43NDk0LC0zMjAuNDAwMl0sWzMyLjc0OTQsLTMyMC41MTYzXSxbMzIuNjczMywtMzIwLjg3NjldLFszMi40NjYyLC0zMjEuMTcyMV0sWzMyLjE1OTYsLTMyMS4zNzE2XV0sW1s4MS44ODUzLC0zMjEuNDQ0OF0sWzgwLjU5MjksLTMyMS40NDQ4XSxbNzcuNzQ5NSwtMzIxLjQ0NDhdLFs3NC45MDYxLC0zMjEuNDQ0OF0sWzczLjYxMzcsLTMyMS40NDQ4XSxbNzMuMjM5MywtMzIxLjM3MTZdLFs3Mi45MzI3LC0zMjEuMTcyMV0sWzcyLjcyNTYsLTMyMC44NzY5XSxbNzIuNjQ5NSwtMzIwLjUxNjNdLFs3Mi42NDk1LC0zMjAuNDAwMl0sWzcyLjY0OTUsLTMyMC4xNDQ4XSxbNzIuNjQ5NSwtMzE5Ljg4OTRdLFs3Mi42NDk1LC0zMTkuNzczM10sWzcyLjcyNTYsLTMxOS40MTI3XSxbNzIuOTMyNywtMzE5LjExNzVdLFs3My4yMzkzLC0zMTguOTE4XSxbNzMuNjEzNywtMzE4Ljg0NDhdLFs3NC45MDYxLC0zMTguODQ0OF0sWzc3Ljc0OTUsLTMxOC44NDQ4XSxbODAuNTkyOSwtMzE4Ljg0NDhdLFs4MS44ODUzLC0zMTguODQ0OF0sWzgyLjI1OTcsLTMxOC45MThdLFs4Mi41NjYzLC0zMTkuMTE3NV0sWzgyLjc3MzQsLTMxOS40MTI3XSxbODIuODQ5NSwtMzE5Ljc3MzNdLFs4Mi44NDk1LC0zMTkuODg5NF0sWzgyLjg0OTUsLTMyMC4xNDQ4XSxbODIuODQ5NSwtMzIwLjQwMDJdLFs4Mi44NDk1LC0zMjAuNTE2M10sWzgyLjc3MzQsLTMyMC44NzY5XSxbODIuNTY2MywtMzIxLjE3MjFdLFs4Mi4yNTk3LC0zMjEuMzcxNl1dXX0sImZyb250Ijp7ImlkIjoiZnJvbnQiLCJsYWJlbCI6IkZyb250Iiwib3V0ZXJFbnRpdHkiOjEwLCJob2xlRW50aXRpZXMiOls4LDldLCJib3VuZHMiOnsibWluWCI6LTE0Mi40OTk5LCJtYXhYIjotMTcuMDAwOSwibWluWSI6LTMyOS44MjQyLCJtYXhZIjotMjc2LjgyNDIsIndpZHRoIjoxMjUuNDk5LCJoZWlnaHQiOjUzLjB9LCJvdXRlciI6W1stMTM3LjgsLTI3Ni44MjQyXSxbLTEyOS42NjczLC0yNzYuODI0Ml0sWy0xMTEuNzc1MiwtMjc2LjgyNDJdLFstOTMuODgzMiwtMjc2LjgyNDJdLFstODUuNzUwNCwtMjc2LjgyNDJdLFstODUuMzYxOCwtMjc2LjkwM10sWy04NS4wNDM5LC0yNzcuMTE3N10sWy04NC44MjkyLC0yNzcuNDM1Nl0sWy04NC43NTA0LC0yNzcuODI0Ml0sWy04NC43NTA0LC0yNzguMTA1NV0sWy04NC43NTA0LC0yNzguNzI0Ml0sWy04NC43NTA0LC0yNzkuMzQyOV0sWy04NC43NTA0LC0yNzkuNjI0Ml0sWy04My4xODc5LC0yNzkuNjI0Ml0sWy03OS43NTA0LC0yNzkuNjI0Ml0sWy03Ni4zMTI5LC0yNzkuNjI0Ml0sWy03NC43NTA0LC0yNzkuNjI0Ml0sWy03NC43NTA0LC0yNzkuMzQyOV0sWy03NC43NTA0LC0yNzguNzI0Ml0sWy03NC43NTA0LC0yNzguMTA1NV0sWy03NC43NTA0LC0yNzcuODI0Ml0sWy03NC42NzE2LC0yNzcuNDM1Nl0sWy03NC40NTY5LC0yNzcuMTE3N10sWy03NC4xMzksLTI3Ni45MDNdLFstNzMuNzUwNCwtMjc2LjgyNDJdLFstNjUuNjMzMiwtMjc2LjgyNDJdLFstNDcuNzc1MiwtMjc2LjgyNDJdLFstMjkuOTE3MywtMjc2LjgyNDJdLFstMjEuOCwtMjc2LjgyNDJdLFstMjEuMDIzNSwtMjc2Ljk4Ml0sWy0yMC4zODc1LC0yNzcuNDExN10sWy0xOS45NTc4LC0yNzguMDQ3N10sWy0xOS44LC0yNzguODI0Ml0sWy0xOS44LC0yODIuMTEyMl0sWy0xOS44LC0yODkuMzQ1OF0sWy0xOS44LC0yOTYuNTc5NF0sWy0xOS44LC0yOTkuODY3NF0sWy0xOS41MTg5LC0yOTkuODY3NF0sWy0xOC45MDA0LC0yOTkuODY3NF0sWy0xOC4yODIsLTI5OS44Njc0XSxbLTE4LjAwMDksLTI5OS44Njc0XSxbLTE3LjYxMjMsLTI5OS45NDYyXSxbLTE3LjI5NDQsLTMwMC4xNjA4XSxbLTE3LjA3OTcsLTMwMC40Nzg4XSxbLTE3LjAwMDksLTMwMC44Njc0XSxbLTE3LjAwMDksLTMwMi4xMTc0XSxbLTE3LjAwMDksLTMwNC44Njc0XSxbLTE3LjAwMDksLTMwNy42MTc0XSxbLTE3LjAwMDksLTMwOC44Njc0XSxbLTE3LjA3OTcsLTMwOS4yNTZdLFstMTcuMjk0NCwtMzA5LjU3MzldLFstMTcuNjEyMywtMzA5Ljc4ODZdLFstMTguMDAwOSwtMzA5Ljg2NzRdLFstMTguMjgyLC0zMDkuODY3NF0sWy0xOC45MDA1LC0zMDkuODY3NF0sWy0xOS41MTg5LC0zMDkuODY3NF0sWy0xOS44LC0zMDkuODY3NF0sWy0xOS44LC0zMTIuNjczMV0sWy0xOS44LC0zMTguODQ1OF0sWy0xOS44LC0zMjUuMDE4NV0sWy0xOS44LC0zMjcuODI0Ml0sWy0xOS45NTc4LC0zMjguNjAwN10sWy0yMC4zODc1LC0zMjkuMjM2N10sWy0yMS4wMjM1LC0zMjkuNjY2NF0sWy0yMS44LC0zMjkuODI0Ml0sWy0zOS45MjUsLTMyOS44MjQyXSxbLTc5LjgsLTMyOS44MjQyXSxbLTExOS42NzUsLTMyOS44MjQyXSxbLTEzNy44LC0zMjkuODI0Ml0sWy0xMzguNTc2NSwtMzI5LjY2NjRdLFstMTM5LjIxMjUsLTMyOS4yMzY3XSxbLTEzOS42NDIyLC0zMjguNjAwN10sWy0xMzkuOCwtMzI3LjgyNDJdLFstMTM5LjgsLTMyNS4wMTg1XSxbLTEzOS44LC0zMTguODQ1OF0sWy0xMzkuOCwtMzEyLjY3MzFdLFstMTM5LjgsLTMwOS44Njc0XSxbLTE0MC4wNjU2LC0zMDkuODY3NF0sWy0xNDAuNjQ5OSwtMzA5Ljg2NzRdLFstMTQxLjIzNDMsLTMwOS44Njc0XSxbLTE0MS40OTk5LC0zMDkuODY3NF0sWy0xNDEuODg4NSwtMzA5Ljc4ODZdLFstMTQyLjIwNjQsLTMwOS41NzM5XSxbLTE0Mi40MjExLC0zMDkuMjU2XSxbLTE0Mi40OTk5LC0zMDguODY3NF0sWy0xNDIuNDk5OSwtMzA3LjYxNzRdLFstMTQyLjQ5OTksLTMwNC44Njc0XSxbLTE0Mi40OTk5LC0zMDIuMTE3NF0sWy0xNDIuNDk5OSwtMzAwLjg2NzRdLFstMTQyLjQyMTEsLTMwMC40Nzg4XSxbLTE0Mi4yMDY0LC0zMDAuMTYwOF0sWy0xNDEuODg4NSwtMjk5Ljk0NjJdLFstMTQxLjQ5OTksLTI5OS44Njc0XSxbLTE0MS4yMzQzLC0yOTkuODY3NF0sWy0xNDAuNjQ5OSwtMjk5Ljg2NzRdLFstMTQwLjA2NTYsLTI5OS44Njc0XSxbLTEzOS44LC0yOTkuODY3NF0sWy0xMzkuOCwtMjk2LjU3OTRdLFstMTM5LjgsLTI4OS4zNDU4XSxbLTEzOS44LC0yODIuMTEyMl0sWy0xMzkuOCwtMjc4LjgyNDJdLFstMTM5LjY0MjIsLTI3OC4wNDc3XSxbLTEzOS4yMTI1LC0yNzcuNDExN10sWy0xMzguNTc2NSwtMjc2Ljk4Ml1dLCJob2xlcyI6W1tbLTUwLjY1NiwtMzI0Ljc3NDJdLFstNTEuOTQ4NCwtMzI0Ljc3NDJdLFstNTQuNzkxOCwtMzI0Ljc3NDJdLFstNTcuNjM1MiwtMzI0Ljc3NDJdLFstNTguOTI3NiwtMzI0Ljc3NDJdLFstNTkuMzAyLC0zMjQuNzAxXSxbLTU5LjYwODYsLTMyNC41MDE1XSxbLTU5LjgxNTcsLTMyNC4yMDYzXSxbLTU5Ljg5MTgsLTMyMy44NDU3XSxbLTU5Ljg5MTgsLTMyMy43Mjk2XSxbLTU5Ljg5MTgsLTMyMy40NzQyXSxbLTU5Ljg5MTgsLTMyMy4yMTg4XSxbLTU5Ljg5MTgsLTMyMy4xMDI3XSxbLTU5LjgxNTcsLTMyMi43NDIxXSxbLTU5LjYwODYsLTMyMi40NDY5XSxbLTU5LjMwMiwtMzIyLjI0NzRdLFstNTguOTI3NiwtMzIyLjE3NDJdLFstNTcuNjM1MiwtMzIyLjE3NDJdLFstNTQuNzkxOCwtMzIyLjE3NDJdLFstNTEuOTQ4NCwtMzIyLjE3NDJdLFstNTAuNjU2LC0zMjIuMTc0Ml0sWy01MC4yODE2LC0zMjIuMjQ3NF0sWy00OS45NzUsLTMyMi40NDY5XSxbLTQ5Ljc2NzksLTMyMi43NDIxXSxbLTQ5LjY5MTgsLTMyMy4xMDI3XSxbLTQ5LjY5MTgsLTMyMy4yMTg4XSxbLTQ5LjY5MTgsLTMyMy40NzQyXSxbLTQ5LjY5MTgsLTMyMy43Mjk2XSxbLTQ5LjY5MTgsLTMyMy44NDU3XSxbLTQ5Ljc2NzksLTMyNC4yMDYzXSxbLTQ5Ljk3NSwtMzI0LjUwMTVdLFstNTAuMjgxNiwtMzI0LjcwMV1dLFtbLTEwMC43NTYxLC0zMjQuNzc0Ml0sWy0xMDIuMDQ4NSwtMzI0Ljc3NDJdLFstMTA0Ljg5MTksLTMyNC43NzQyXSxbLTEwNy43MzUzLC0zMjQuNzc0Ml0sWy0xMDkuMDI3NywtMzI0Ljc3NDJdLFstMTA5LjQwMjEsLTMyNC43MDFdLFstMTA5LjcwODcsLTMyNC41MDE1XSxbLTEwOS45MTU4LC0zMjQuMjA2M10sWy0xMDkuOTkxOSwtMzIzLjg0NTddLFstMTA5Ljk5MTksLTMyMy43Mjk2XSxbLTEwOS45OTE5LC0zMjMuNDc0Ml0sWy0xMDkuOTkxOSwtMzIzLjIxODhdLFstMTA5Ljk5MTksLTMyMy4xMDI3XSxbLTEwOS45MTU4LC0zMjIuNzQyMV0sWy0xMDkuNzA4NywtMzIyLjQ0NjldLFstMTA5LjQwMjEsLTMyMi4yNDc0XSxbLTEwOS4wMjc3LC0zMjIuMTc0Ml0sWy0xMDcuNzM1MywtMzIyLjE3NDJdLFstMTA0Ljg5MTksLTMyMi4xNzQyXSxbLTEwMi4wNDg1LC0zMjIuMTc0Ml0sWy0xMDAuNzU2MSwtMzIyLjE3NDJdLFstMTAwLjM4MTcsLTMyMi4yNDc0XSxbLTEwMC4wNzUxLC0zMjIuNDQ2OV0sWy05OS44NjgsLTMyMi43NDIxXSxbLTk5Ljc5MTksLTMyMy4xMDI3XSxbLTk5Ljc5MTksLTMyMy4yMTg4XSxbLTk5Ljc5MTksLTMyMy40NzQyXSxbLTk5Ljc5MTksLTMyMy43Mjk2XSxbLTk5Ljc5MTksLTMyMy44NDU3XSxbLTk5Ljg2OCwtMzI0LjIwNjNdLFstMTAwLjA3NTEsLTMyNC41MDE1XSxbLTEwMC4zODE3LC0zMjQuNzAxXV1dfSwicmlnaHQiOnsiaWQiOiJyaWdodCIsImxhYmVsIjoiUmlnaHQiLCJvdXRlckVudGl0eSI6MTUsImhvbGVFbnRpdGllcyI6WzEyLDEzLDE0LDExXSwiYm91bmRzIjp7Im1pblgiOi00Mi4yOTI2LCJtYXhYIjo0Ny43MDc0LCJtaW5ZIjotMjU1LjE4MDMsIm1heFkiOi0xOTguMTg1NCwid2lkdGgiOjkwLjAsImhlaWdodCI6NTYuOTk0OX0sIm91dGVyIjpbWy0zOS44OTIyLC0xOTguMTg1NF0sWy0yNi41Nzk4LC0xOTguMTg1NF0sWzIuNzA3MywtMTk4LjE4NTRdLFszMS45OTQ1LC0xOTguMTg1NF0sWzQ1LjMwNjksLTE5OC4xODU0XSxbNDYuMjM4OSwtMTk4LjM2NTNdLFs0Ny4wMDIyLC0xOTguODU1XSxbNDcuNTE4LC0xOTkuNTc5OV0sWzQ3LjcwNzQsLTIwMC40NjUxXSxbNDcuNzA3NCwtMjA4LjY1ODFdLFs0Ny43MDc0LC0yMjYuNjgyOV0sWzQ3LjcwNzQsLTI0NC43MDc2XSxbNDcuNzA3NCwtMjUyLjkwMDZdLFs0Ny41MTgsLTI1My43ODU4XSxbNDcuMDAyMiwtMjU0LjUxMDddLFs0Ni4yMzg5LC0yNTUuMDAwNF0sWzQ1LjMwNjksLTI1NS4xODAzXSxbMzEuOTk0NSwtMjU1LjE4MDNdLFsyLjcwNzMsLTI1NS4xODAzXSxbLTI2LjU3OTgsLTI1NS4xODAzXSxbLTM5Ljg5MjIsLTI1NS4xODAzXSxbLTQwLjgyNDIsLTI1NS4wMDA0XSxbLTQxLjU4NzUsLTI1NC41MTA3XSxbLTQyLjEwMzIsLTI1My43ODU4XSxbLTQyLjI5MjYsLTI1Mi45MDA2XSxbLTQyLjI5MjYsLTI0NC43MDc2XSxbLTQyLjI5MjYsLTIyNi42ODI4XSxbLTQyLjI5MjYsLTIwOC42NTgxXSxbLTQyLjI5MjYsLTIwMC40NjUxXSxbLTQyLjEwMzIsLTE5OS41Nzk5XSxbLTQxLjU4NzUsLTE5OC44NTVdLFstNDAuODI0MiwtMTk4LjM2NTNdXSwiaG9sZXMiOltbWzQ1LjM1NzQsLTIyNi4wNDQ1XSxbNDUuMzU3NCwtMjI3LjMzNjldLFs0NS4zNTc0LC0yMzAuMTgwM10sWzQ1LjM1NzQsLTIzMy4wMjM3XSxbNDUuMzU3NCwtMjM0LjMxNjFdLFs0NS4yODQyLC0yMzQuNjkwNV0sWzQ1LjA4NDcsLTIzNC45OTcxXSxbNDQuNzg5NSwtMjM1LjIwNDJdLFs0NC40Mjg5LC0yMzUuMjgwM10sWzQ0LjMxMjgsLTIzNS4yODAzXSxbNDQuMDU3NCwtMjM1LjI4MDNdLFs0My44MDIsLTIzNS4yODAzXSxbNDMuNjg1OSwtMjM1LjI4MDNdLFs0My4zMjUzLC0yMzUuMjA0Ml0sWzQzLjAzMDEsLTIzNC45OTcxXSxbNDIuODMwNiwtMjM0LjY5MDVdLFs0Mi43NTc0LC0yMzQuMzE2MV0sWzQyLjc1NzQsLTIzMy4wMjM3XSxbNDIuNzU3NCwtMjMwLjE4MDNdLFs0Mi43NTc0LC0yMjcuMzM2OV0sWzQyLjc1NzQsLTIyNi4wNDQ1XSxbNDIuODMwNiwtMjI1LjY3MDFdLFs0My4wMzAxLC0yMjUuMzYzNV0sWzQzLjMyNTMsLTIyNS4xNTY0XSxbNDMuNjg1OSwtMjI1LjA4MDNdLFs0My44MDIsLTIyNS4wODAzXSxbNDQuMDU3NCwtMjI1LjA4MDNdLFs0NC4zMTI4LC0yMjUuMDgwM10sWzQ0LjQyODksLTIyNS4wODAzXSxbNDQuNzg5NSwtMjI1LjE1NjRdLFs0NS4wODQ3LC0yMjUuMzYzNV0sWzQ1LjI4NDIsLTIyNS42NzAxXV0sW1stMzcuMzQyNiwtMjI2LjA0NDVdLFstMzcuMzQyNiwtMjI3LjMzNjldLFstMzcuMzQyNiwtMjMwLjE4MDNdLFstMzcuMzQyNiwtMjMzLjAyMzddLFstMzcuMzQyNiwtMjM0LjMxNjFdLFstMzcuNDE1OCwtMjM0LjY5MDVdLFstMzcuNjE1MywtMjM0Ljk5NzFdLFstMzcuOTEwNSwtMjM1LjIwNDJdLFstMzguMjcxMSwtMjM1LjI4MDNdLFstMzguMzg3MiwtMjM1LjI4MDNdLFstMzguNjQyNiwtMjM1LjI4MDNdLFstMzguODk4LC0yMzUuMjgwM10sWy0zOS4wMTQxLC0yMzUuMjgwM10sWy0zOS4zNzQ3LC0yMzUuMjA0Ml0sWy0zOS42Njk5LC0yMzQuOTk3MV0sWy0zOS44Njk0LC0yMzQuNjkwNV0sWy0zOS45NDI2LC0yMzQuMzE2MV0sWy0zOS45NDI2LC0yMzMuMDIzN10sWy0zOS45NDI2LC0yMzAuMTgwM10sWy0zOS45NDI2LC0yMjcuMzM2OV0sWy0zOS45NDI2LC0yMjYuMDQ0NV0sWy0zOS44Njk0LC0yMjUuNjcwMV0sWy0zOS42Njk5LC0yMjUuMzYzNV0sWy0zOS4zNzQ3LC0yMjUuMTU2NF0sWy0zOS4wMTQxLC0yMjUuMDgwM10sWy0zOC44OTgsLTIyNS4wODAzXSxbLTM4LjY0MjYsLTIyNS4wODAzXSxbLTM4LjM4NzIsLTIyNS4wODAzXSxbLTM4LjI3MTEsLTIyNS4wODAzXSxbLTM3LjkxMDUsLTIyNS4xNTY0XSxbLTM3LjYxNTMsLTIyNS4zNjM1XSxbLTM3LjQxNTgsLTIyNS42NzAxXV0sW1stMS40Mjg0LC0yNDcuNTMwM10sWy0wLjEzNiwtMjQ3LjUzMDNdLFsyLjcwNzQsLTI0Ny41MzAzXSxbNS41NTA4LC0yNDcuNTMwM10sWzYuODQzMiwtMjQ3LjUzMDNdLFs3LjIxNzYsLTI0Ny42MDM1XSxbNy41MjQyLC0yNDcuODAzXSxbNy43MzEzLC0yNDguMDk4Ml0sWzcuODA3NCwtMjQ4LjQ1ODhdLFs3LjgwNzQsLTI0OC41NzQ5XSxbNy44MDc0LC0yNDguODMwM10sWzcuODA3NCwtMjQ5LjA4NTddLFs3LjgwNzQsLTI0OS4yMDE4XSxbNy43MzEzLC0yNDkuNTYyNF0sWzcuNTI0MiwtMjQ5Ljg1NzZdLFs3LjIxNzYsLTI1MC4wNTcxXSxbNi44NDMyLC0yNTAuMTMwM10sWzUuNTUwOCwtMjUwLjEzMDNdLFsyLjcwNzQsLTI1MC4xMzAzXSxbLTAuMTM2LC0yNTAuMTMwM10sWy0xLjQyODQsLTI1MC4xMzAzXSxbLTEuODAyOCwtMjUwLjA1NzFdLFstMi4xMDk0LC0yNDkuODU3Nl0sWy0yLjMxNjUsLTI0OS41NjI0XSxbLTIuMzkyNiwtMjQ5LjIwMThdLFstMi4zOTI2LC0yNDkuMDg1N10sWy0yLjM5MjYsLTI0OC44MzAzXSxbLTIuMzkyNiwtMjQ4LjU3NDldLFstMi4zOTI2LC0yNDguNDU4OF0sWy0yLjMxNjUsLTI0OC4wOTgyXSxbLTIuMTA5NCwtMjQ3LjgwM10sWy0xLjgwMjgsLTI0Ny42MDM1XV0sW1stMzguMTI2MiwtMjAwLjQwNTVdLFstMzcuMTUzMSwtMjAwLjYwMl0sWy0zNi4zNTg0LC0yMDEuMTM3N10sWy0zNS44MjI3LC0yMDEuOTMyNF0sWy0zNS42MjYyLC0yMDIuOTA1NV0sWy0zNS44MjI3LC0yMDMuODc4Nl0sWy0zNi4zNTg0LC0yMDQuNjczM10sWy0zNy4xNTMxLC0yMDUuMjA5XSxbLTM4LjEyNjIsLTIwNS40MDU1XSxbLTM5LjA5OTMsLTIwNS4yMDldLFstMzkuODk0LC0yMDQuNjczM10sWy00MC40Mjk3LC0yMDMuODc4Nl0sWy00MC42MjYyLC0yMDIuOTA1NV0sWy00MC40Mjk3LC0yMDEuOTMyNF0sWy0zOS44OTQsLTIwMS4xMzc3XSxbLTM5LjA5OTMsLTIwMC42MDJdXV19LCJsZWZ0Ijp7ImlkIjoibGVmdCIsImxhYmVsIjoiTGVmdCIsIm91dGVyRW50aXR5IjoyMCwiaG9sZUVudGl0aWVzIjpbMTcsMTgsMTksMTZdLCJib3VuZHMiOnsibWluWCI6LTEzNy42MDg3LCJtYXhYIjotNDcuNjA4NywibWluWSI6LTI1NS41MDk2LCJtYXhZIjotMTk4LjUxNiwid2lkdGgiOjkwLjAsImhlaWdodCI6NTYuOTkzNn0sIm91dGVyIjpbWy01MC4wMDkxLC0xOTguNTE2XSxbLTYzLjMyMTUsLTE5OC41MTZdLFstOTIuNjA4NiwtMTk4LjUxNl0sWy0xMjEuODk1OCwtMTk4LjUxNl0sWy0xMzUuMjA4MiwtMTk4LjUxNl0sWy0xMzYuMTQwMiwtMTk4LjY5NTldLFstMTM2LjkwMzUsLTE5OS4xODU2XSxbLTEzNy40MTkzLC0xOTkuOTEwNV0sWy0xMzcuNjA4NywtMjAwLjc5NTddLFstMTM3LjYwODcsLTIwOC45ODg1XSxbLTEzNy42MDg3LC0yMjcuMDEyOF0sWy0xMzcuNjA4NywtMjQ1LjAzNzFdLFstMTM3LjYwODcsLTI1My4yMjk5XSxbLTEzNy40MTkzLC0yNTQuMTE1MV0sWy0xMzYuOTAzNSwtMjU0Ljg0XSxbLTEzNi4xNDAyLC0yNTUuMzI5N10sWy0xMzUuMjA4MiwtMjU1LjUwOTZdLFstMTIxLjg5NTgsLTI1NS41MDk2XSxbLTkyLjYwODYsLTI1NS41MDk2XSxbLTYzLjMyMTUsLTI1NS41MDk2XSxbLTUwLjAwOTEsLTI1NS41MDk2XSxbLTQ5LjA3NzEsLTI1NS4zMjk3XSxbLTQ4LjMxMzgsLTI1NC44NF0sWy00Ny43OTgxLC0yNTQuMTE1MV0sWy00Ny42MDg3LC0yNTMuMjI5OV0sWy00Ny42MDg3LC0yNDUuMDM3MV0sWy00Ny42MDg3LC0yMjcuMDEyOF0sWy00Ny42MDg3LC0yMDguOTg4NV0sWy00Ny42MDg3LC0yMDAuNzk1N10sWy00Ny43OTgxLC0xOTkuOTEwNV0sWy00OC4zMTM4LC0xOTkuMTg1Nl0sWy00OS4wNzcxLC0xOTguNjk1OV1dLCJob2xlcyI6W1tbLTEzNS4yNTg3LC0yMjYuMzczOF0sWy0xMzUuMjU4NywtMjI3LjY2NjJdLFstMTM1LjI1ODcsLTIzMC41MDk2XSxbLTEzNS4yNTg3LC0yMzMuMzUzXSxbLTEzNS4yNTg3LC0yMzQuNjQ1NF0sWy0xMzUuMTg1NSwtMjM1LjAxOThdLFstMTM0Ljk4NiwtMjM1LjMyNjRdLFstMTM0LjY5MDgsLTIzNS41MzM1XSxbLTEzNC4zMzAyLC0yMzUuNjA5Nl0sWy0xMzQuMjE0MSwtMjM1LjYwOTZdLFstMTMzLjk1ODcsLTIzNS42MDk2XSxbLTEzMy43MDMzLC0yMzUuNjA5Nl0sWy0xMzMuNTg3MiwtMjM1LjYwOTZdLFstMTMzLjIyNjYsLTIzNS41MzM1XSxbLTEzMi45MzE0LC0yMzUuMzI2NF0sWy0xMzIuNzMxOSwtMjM1LjAxOThdLFstMTMyLjY1ODcsLTIzNC42NDU0XSxbLTEzMi42NTg3LC0yMzMuMzUzXSxbLTEzMi42NTg3LC0yMzAuNTA5Nl0sWy0xMzIuNjU4NywtMjI3LjY2NjJdLFstMTMyLjY1ODcsLTIyNi4zNzM4XSxbLTEzMi43MzE5LC0yMjUuOTk5NF0sWy0xMzIuOTMxNCwtMjI1LjY5MjhdLFstMTMzLjIyNjYsLTIyNS40ODU3XSxbLTEzMy41ODcyLC0yMjUuNDA5Nl0sWy0xMzMuNzAzMywtMjI1LjQwOTZdLFstMTMzLjk1ODcsLTIyNS40MDk2XSxbLTEzNC4yMTQxLC0yMjUuNDA5Nl0sWy0xMzQuMzMwMiwtMjI1LjQwOTZdLFstMTM0LjY5MDgsLTIyNS40ODU3XSxbLTEzNC45ODYsLTIyNS42OTI4XSxbLTEzNS4xODU1LC0yMjUuOTk5NF1dLFtbLTUyLjU1ODcsLTIyNi4zNzM4XSxbLTUyLjU1ODcsLTIyNy42NjYyXSxbLTUyLjU1ODcsLTIzMC41MDk2XSxbLTUyLjU1ODcsLTIzMy4zNTNdLFstNTIuNTU4NywtMjM0LjY0NTRdLFstNTIuNDg1NSwtMjM1LjAxOThdLFstNTIuMjg2LC0yMzUuMzI2NF0sWy01MS45OTA4LC0yMzUuNTMzNV0sWy01MS42MzAyLC0yMzUuNjA5Nl0sWy01MS41MTQxLC0yMzUuNjA5Nl0sWy01MS4yNTg3LC0yMzUuNjA5Nl0sWy01MS4wMDMzLC0yMzUuNjA5Nl0sWy01MC44ODcyLC0yMzUuNjA5Nl0sWy01MC41MjY2LC0yMzUuNTMzNV0sWy01MC4yMzE0LC0yMzUuMzI2NF0sWy01MC4wMzE5LC0yMzUuMDE5OF0sWy00OS45NTg3LC0yMzQuNjQ1NF0sWy00OS45NTg3LC0yMzMuMzUzXSxbLTQ5Ljk1ODcsLTIzMC41MDk2XSxbLTQ5Ljk1ODcsLTIyNy42NjYyXSxbLTQ5Ljk1ODcsLTIyNi4zNzM4XSxbLTUwLjAzMTksLTIyNS45OTk0XSxbLTUwLjIzMTQsLTIyNS42OTI4XSxbLTUwLjUyNjYsLTIyNS40ODU3XSxbLTUwLjg4NzIsLTIyNS40MDk2XSxbLTUxLjAwMzMsLTIyNS40MDk2XSxbLTUxLjI1ODcsLTIyNS40MDk2XSxbLTUxLjUxNDEsLTIyNS40MDk2XSxbLTUxLjYzMDIsLTIyNS40MDk2XSxbLTUxLjk5MDgsLTIyNS40ODU3XSxbLTUyLjI4NiwtMjI1LjY5MjhdLFstNTIuNDg1NSwtMjI1Ljk5OTRdXSxbWy04OC40NzI5LC0yNDcuODU5Nl0sWy04OS43NjUzLC0yNDcuODU5Nl0sWy05Mi42MDg3LC0yNDcuODU5Nl0sWy05NS40NTIxLC0yNDcuODU5Nl0sWy05Ni43NDQ1LC0yNDcuODU5Nl0sWy05Ny4xMTg5LC0yNDcuOTMyOF0sWy05Ny40MjU1LC0yNDguMTMyM10sWy05Ny42MzI2LC0yNDguNDI3NV0sWy05Ny43MDg3LC0yNDguNzg4MV0sWy05Ny43MDg3LC0yNDguOTA0Ml0sWy05Ny43MDg3LC0yNDkuMTU5Nl0sWy05Ny43MDg3LC0yNDkuNDE1XSxbLTk3LjcwODcsLTI0OS41MzExXSxbLTk3LjYzMjYsLTI0OS44OTE3XSxbLTk3LjQyNTUsLTI1MC4xODY5XSxbLTk3LjExODksLTI1MC4zODY0XSxbLTk2Ljc0NDUsLTI1MC40NTk2XSxbLTk1LjQ1MjEsLTI1MC40NTk2XSxbLTkyLjYwODcsLTI1MC40NTk2XSxbLTg5Ljc2NTMsLTI1MC40NTk2XSxbLTg4LjQ3MjksLTI1MC40NTk2XSxbLTg4LjA5ODUsLTI1MC4zODY0XSxbLTg3Ljc5MTksLTI1MC4xODY5XSxbLTg3LjU4NDgsLTI0OS44OTE3XSxbLTg3LjUwODcsLTI0OS41MzExXSxbLTg3LjUwODcsLTI0OS40MTVdLFstODcuNTA4NywtMjQ5LjE1OTZdLFstODcuNTA4NywtMjQ4LjkwNDJdLFstODcuNTA4NywtMjQ4Ljc4ODFdLFstODcuNTg0OCwtMjQ4LjQyNzVdLFstODcuNzkxOSwtMjQ4LjEzMjNdLFstODguMDk4NSwtMjQ3LjkzMjhdXSxbWy01MS43NzUxLC0yMDAuNzM0OF0sWy01Mi43NDgyLC0yMDAuOTMxM10sWy01My41NDI5LC0yMDEuNDY3XSxbLTU0LjA3ODYsLTIwMi4yNjE3XSxbLTU0LjI3NTEsLTIwMy4yMzQ4XSxbLTU0LjA3ODYsLTIwNC4yMDc5XSxbLTUzLjU0MjksLTIwNS4wMDI2XSxbLTUyLjc0ODIsLTIwNS41MzgzXSxbLTUxLjc3NTEsLTIwNS43MzQ4XSxbLTUwLjgwMiwtMjA1LjUzODNdLFstNTAuMDA3MywtMjA1LjAwMjZdLFstNDkuNDcxNiwtMjA0LjIwNzldLFstNDkuMjc1MSwtMjAzLjIzNDhdLFstNDkuNDcxNiwtMjAyLjI2MTddLFstNTAuMDA3MywtMjAxLjQ2N10sWy01MC44MDIsLTIwMC45MzEzXV1dfSwibGlkIjp7ImlkIjoibGlkIiwibGFiZWwiOiJUb3AgLyBMaWQiLCJvdXRlckVudGl0eSI6MjEsImhvbGVFbnRpdGllcyI6W10sImJvdW5kcyI6eyJtaW5YIjotMTUuMzc3NSwibWF4WCI6MTEzLjUzNSwibWluWSI6LTQxNy40NzcsIm1heFkiOi0zMjguNDk0OCwid2lkdGgiOjEyOC45MTI1LCJoZWlnaHQiOjg4Ljk4MjJ9LCJvdXRlciI6W1sxMDkuMTA3OCwtNDE3LjQ3N10sWzEwOS4wOTY0LC00MTcuNDc3XSxbMTA5LjA3MTQsLTQxNy40NzddLFsxMDkuMDQ2NCwtNDE3LjQ3N10sWzEwOS4wMzUsLTQxNy40NzddLFs5MC4yOTg3LC00MTcuNDc3XSxbNDkuMDc4OCwtNDE3LjQ3N10sWzcuODU4OCwtNDE3LjQ3N10sWy0xMC44Nzc1LC00MTcuNDc3XSxbLTEwLjg3OTgsLTQxNy40NzddLFstMTAuODg0OSwtNDE3LjQ3N10sWy0xMC44ODk5LC00MTcuNDc3XSxbLTEwLjg5MjIsLTQxNy40NzddLFstMTEuNDM2OCwtNDE3LjQ3N10sWy0xMi42MzQ4LC00MTcuNDc3XSxbLTEzLjgzMjksLTQxNy40NzddLFstMTQuMzc3NSwtNDE3LjQ3N10sWy0xNC43NjYxLC00MTcuMzk4Ml0sWy0xNS4wODQsLTQxNy4xODM1XSxbLTE1LjI5ODcsLTQxNi44NjU2XSxbLTE1LjM3NzUsLTQxNi40NzddLFstMTUuMzc3NSwtNDE2LjA4NjRdLFstMTUuMzc3NSwtNDE1LjIyN10sWy0xNS4zNzc1LC00MTQuMzY3Nl0sWy0xNS4zNzc1LC00MTMuOTc3XSxbLTE1LjI5ODcsLTQxMy41ODg0XSxbLTE1LjA4NCwtNDEzLjI3MDRdLFstMTQuNzY2MSwtNDEzLjA1NThdLFstMTQuMzc3NSwtNDEyLjk3N10sWy0xMy44MzI5LC00MTIuOTc3XSxbLTEyLjYzNDksLTQxMi45NzddLFstMTEuNDM2OCwtNDEyLjk3N10sWy0xMC44OTIyLC00MTIuOTc3XSxbLTEwLjg5MjIsLTQwMS4wMjM5XSxbLTEwLjg5MjIsLTM3NC43MjddLFstMTAuODkyMiwtMzQ4LjQzMDFdLFstMTAuODkyMiwtMzM2LjQ3N10sWy0xMC43MzQ2LC0zMzUuNjk5OF0sWy0xMC4zMDUzLC0zMzUuMDYzOV0sWy05LjY2OTQsLTMzNC42MzQ2XSxbLTguODkyMiwtMzM0LjQ3N10sWy0wLjU5OTksLTMzNC40NzddLFsxNy42NDMzLC0zMzQuNDc3XSxbMzUuODg2NSwtMzM0LjQ3N10sWzQ0LjE3ODgsLTMzNC40NzddLFs0NC4xNzg4LC0zMzMuODU0OF0sWzQ0LjE3ODgsLTMzMi40ODU5XSxbNDQuMTc4OCwtMzMxLjExN10sWzQ0LjE3ODgsLTMzMC40OTQ4XSxbNDQuMzM2NCwtMzI5LjcxNzZdLFs0NC43NjU3LC0zMjkuMDgxN10sWzQ1LjQwMTYsLTMyOC42NTI0XSxbNDYuMTc4OCwtMzI4LjQ5NDhdLFs0Ny4wODUsLTMyOC40OTQ4XSxbNDkuMDc4OCwtMzI4LjQ5NDhdLFs1MS4wNzI2LC0zMjguNDk0OF0sWzUxLjk3ODgsLTMyOC40OTQ4XSxbNTIuNzU2LC0zMjguNjUyNF0sWzUzLjM5MTksLTMyOS4wODE3XSxbNTMuODIxMiwtMzI5LjcxNzZdLFs1My45Nzg4LC0zMzAuNDk0OF0sWzUzLjk3ODgsLTMzMS4xMTddLFs1My45Nzg4LC0zMzIuNDg1OV0sWzUzLjk3ODgsLTMzMy44NTQ4XSxbNTMuOTc4OCwtMzM0LjQ3N10sWzYyLjI4MDIsLTMzNC40NzddLFs4MC41NDMzLC0zMzQuNDc3XSxbOTguODA2NCwtMzM0LjQ3N10sWzEwNy4xMDc4LC0zMzQuNDc3XSxbMTA3Ljg4NSwtMzM0LjYzNDZdLFsxMDguNTIwOSwtMzM1LjA2MzldLFsxMDguOTUwMiwtMzM1LjY5OThdLFsxMDkuMTA3OCwtMzM2LjQ3N10sWzEwOS4xMDc4LC0zNDguNDMwMV0sWzEwOS4xMDc4LC0zNzQuNzI3XSxbMTA5LjEwNzgsLTQwMS4wMjM5XSxbMTA5LjEwNzgsLTQxMi45NzddLFsxMDkuNjQzMywtNDEyLjk3N10sWzExMC44MjE0LC00MTIuOTc3XSxbMTExLjk5OTUsLTQxMi45NzddLFsxMTIuNTM1LC00MTIuOTc3XSxbMTEyLjkyMzYsLTQxMy4wNTU4XSxbMTEzLjI0MTYsLTQxMy4yNzA0XSxbMTEzLjQ1NjIsLTQxMy41ODg0XSxbMTEzLjUzNSwtNDEzLjk3N10sWzExMy41MzUsLTQxNC4zNjc2XSxbMTEzLjUzNSwtNDE1LjIyN10sWzExMy41MzUsLTQxNi4wODY0XSxbMTEzLjUzNSwtNDE2LjQ3N10sWzExMy40NTYyLC00MTYuODY1Nl0sWzExMy4yNDE2LC00MTcuMTgzNV0sWzExMi45MjM2LC00MTcuMzk4Ml0sWzExMi41MzUsLTQxNy40NzddLFsxMTEuOTk5NSwtNDE3LjQ3N10sWzExMC44MjE0LC00MTcuNDc3XSxbMTA5LjY0MzMsLTQxNy40NzddXSwiaG9sZXMiOltdfX19Ow0KCmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJzsKaW1wb3J0IHtPcmJpdENvbnRyb2xzfSBmcm9tICd0aHJlZS9hZGRvbnMvY29udHJvbHMvT3JiaXRDb250cm9scy5qcyc7CgoKY29uc3QgRkFDRV9JRFMgPSBbJ2JvdHRvbScsICdmcm9udCcsICdiYWNrJywgJ2xlZnQnLCAncmlnaHQnLCAnbGlkJ107CmNvbnN0IEZBQ0VfTEFCRUxTID0ge2JvdHRvbTonQm90dG9tJyxmcm9udDonRnJvbnQnLGJhY2s6J0JhY2snLGxlZnQ6J0xlZnQnLHJpZ2h0OidSaWdodCcsbGlkOidUb3AgLyBMaWQnfTsKY29uc3QgREVGQVVMVF9BUlRXT1JLX1VSTCA9ICdodHRwczovL2Nkbi5zaG9waWZ5LmNvbS9zL2ZpbGVzLzEvMDU3Mi8wNjI3LzYxOTYvZmlsZXMvUy0yMS5qcGc\/dj0xNzg3NjM4MzU1JzsKY29uc3QgREVGQVVMVF9BUlRXT1JLX05BTUUgPSAnUy0yMS5qcGcnOwpjb25zdCBUSElDS05FU1MgPSBFN19HRU9NRVRSWS50aGlja25lc3M7CmNvbnN0IHJlZHVjZWRNb3Rpb24gPSB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSknKS5tYXRjaGVzOwoKY29uc3QgY2FudmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3ByZXZpZXctY2FudmFzJyk7CmNvbnN0IHN0YWdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3N0YWdlJyk7CmNvbnN0IGxvYWRpbmdTdGF0ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNsb2FkaW5nLXN0YXRlJyk7CmNvbnN0IHN0YWdlRXJyb3IgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjc3RhZ2UtZXJyb3InKTsKY29uc3QgdG9hc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdG9hc3QnKTsKY29uc3QgYXNzZW1ibHlCdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYXNzZW1ibHktdG9nZ2xlJyk7CmNvbnN0IGxpZEJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNsaWQtdG9nZ2xlJyk7CmNvbnN0IGFjcnlsaWNDb2xvcklucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2FjcnlsaWMtY29sb3InKTsKY29uc3QgYWNyeWxpY0NvbG9yVmFsdWUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYWNyeWxpYy1jb2xvci12YWx1ZScpOwpjb25zdCBjbGVhckFjcnlsaWNCdXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY2xlYXItYWNyeWxpYycpOwoKY29uc3QgZmFjZVN0YXRlID0gT2JqZWN0LmZyb21FbnRyaWVzKEZBQ0VfSURTLm1hcChpZCA9PiBbaWQsIHttb2RlOidjb3ZlcicsIGltYWdlOm51bGwsIGZpbGVOYW1lOicnLCB0ZXh0dXJlOm51bGx9XSkpOwpsZXQgc2VsZWN0ZWRGYWNlID0gJ2JvdHRvbSc7CmxldCBleHBsb2RlZCA9IGZhbHNlOwpsZXQgbGlkT3BlbiA9IGZhbHNlOwpsZXQgdG9hc3RUaW1lciA9IDA7CmxldCB2aXNpYmxlID0gdHJ1ZTsKbGV0IHBhZ2VWaXNpYmxlID0gIWRvY3VtZW50LmhpZGRlbjsKbGV0IGZyYW1lUmVxdWVzdCA9IDA7CmxldCBkZWZhdWx0QXJ0d29ya1Byb21pc2UgPSBudWxsOwoKZnVuY3Rpb24gc2hvd1RvYXN0KG1lc3NhZ2UpewogIHdpbmRvdy5jbGVhclRpbWVvdXQodG9hc3RUaW1lcik7CiAgdG9hc3QudGV4dENvbnRlbnQgPSBtZXNzYWdlOwogIHRvYXN0LmNsYXNzTGlzdC5hZGQoJ3Zpc2libGUnKTsKICB0b2FzdFRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdG9hc3QuY2xhc3NMaXN0LnJlbW92ZSgndmlzaWJsZScpLCAyMjAwKTsKfQoKZnVuY3Rpb24gc2hvd0Vycm9yKGVycm9yKXsKICBsb2FkaW5nU3RhdGUuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CiAgc3RhZ2VFcnJvci5oaWRkZW4gPSBmYWxzZTsKICBzdGFnZUVycm9yLnRleHRDb250ZW50ID0gYFByZXZpZXcgY291bGQgbm90IHN0YXJ0OiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gOwp9CgpmdW5jdGlvbiBub3JtYWxpemVkTG9vcChwb2ludHMsIGJvdW5kcyl7CiAgY29uc3QgY3ggPSAoYm91bmRzLm1pblggKyBib3VuZHMubWF4WCkgLyAyOwogIGNvbnN0IGN5ID0gKGJvdW5kcy5taW5ZICsgYm91bmRzLm1heFkpIC8gMjsKICByZXR1cm4gcG9pbnRzLm1hcCgoW3gseV0pID0+IG5ldyBUSFJFRS5WZWN0b3IyKHggLSBjeCwgeSAtIGN5KSk7Cn0KCmZ1bmN0aW9uIG1ha2VTaGFwZShwYXJ0KXsKICBjb25zdCBvdXRlciA9IG5vcm1hbGl6ZWRMb29wKHBhcnQub3V0ZXIsIHBhcnQuYm91bmRzKTsKICBpZiAoIVRIUkVFLlNoYXBlVXRpbHMuaXNDbG9ja1dpc2Uob3V0ZXIpKSBvdXRlci5yZXZlcnNlKCk7CiAgY29uc3Qgc2hhcGUgPSBuZXcgVEhSRUUuU2hhcGUob3V0ZXIpOwogIGZvciAoY29uc3QgaG9sZVBvaW50cyBvZiBwYXJ0LmhvbGVzKXsKICAgIGNvbnN0IGhvbGUgPSBub3JtYWxpemVkTG9vcChob2xlUG9pbnRzLCBwYXJ0LmJvdW5kcyk7CiAgICBpZiAoVEhSRUUuU2hhcGVVdGlscy5pc0Nsb2NrV2lzZShob2xlKSkgaG9sZS5yZXZlcnNlKCk7CiAgICBzaGFwZS5ob2xlcy5wdXNoKG5ldyBUSFJFRS5QYXRoKGhvbGUpKTsKICB9CiAgcmV0dXJuIHNoYXBlOwp9CgpmdW5jdGlvbiBhc3NpZ25Ob3JtYWxpemVkVXZzKGdlb21ldHJ5LCBib3VuZHMpewogIGNvbnN0IHBvc2l0aW9uID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCdwb3NpdGlvbicpOwogIGNvbnN0IHV2ID0gZ2VvbWV0cnkuZ2V0QXR0cmlidXRlKCd1dicpOwogIGNvbnN0IG1pblggPSAtYm91bmRzLndpZHRoIC8gMjsKICBjb25zdCBtaW5ZID0gLWJvdW5kcy5oZWlnaHQgLyAyOwogIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBwb3NpdGlvbi5jb3VudDsgaW5kZXggKz0gMSl7CiAgICB1di5zZXRYWShpbmRleCwgKHBvc2l0aW9uLmdldFgoaW5kZXgpIC0gbWluWCkgLyBib3VuZHMud2lkdGgsIChwb3NpdGlvbi5nZXRZKGluZGV4KSAtIG1pblkpIC8gYm91bmRzLmhlaWdodCk7CiAgfQogIHV2Lm5lZWRzVXBkYXRlID0gdHJ1ZTsKfQoKZnVuY3Rpb24gbWFrZUJhc2lzUXVhdGVybmlvbih4QXhpcywgeUF4aXMsIHpBeGlzKXsKICBjb25zdCBtYXRyaXggPSBuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VCYXNpcyh4QXhpcywgeUF4aXMsIHpBeGlzKTsKICByZXR1cm4gbmV3IFRIUkVFLlF1YXRlcm5pb24oKS5zZXRGcm9tUm90YXRpb25NYXRyaXgobWF0cml4KTsKfQoKY29uc3QgY2xlYXJNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoUGh5c2ljYWxNYXRlcmlhbCh7CiAgY29sb3I6MHhmZmZmZmYsCiAgcm91Z2huZXNzOjAuMDYsCiAgbWV0YWxuZXNzOjAsCiAgdHJhbnNtaXNzaW9uOjEsCiAgdGhpY2tuZXNzOlRISUNLTkVTUywKICBpb3I6MS40OSwKICBjbGVhcmNvYXQ6MC40MiwKICBjbGVhcmNvYXRSb3VnaG5lc3M6MC4xLAogIHRyYW5zcGFyZW50OnRydWUsCiAgb3BhY2l0eTowLjI1LAogIHNpZGU6VEhSRUUuRG91YmxlU2lkZSwKICBkZXB0aFdyaXRlOmZhbHNlCn0pOwoKY29uc3QgUEFSVF9DT05GSUcgPSB7CiAgYm90dG9tOntwb3NpdGlvbjpbMCwwLDBdLHJvdGF0aW9uOltNYXRoLlBJLzIsMCwwXSxleHBsb2RlOlswLC0zNCwwXX0sCiAgLy8gVGhlc2UgZGF0dW1zIGNvbWUgZnJvbSB0aGUgRTcgc2xvdCBjZW50ZXJzLCBub3QgdGhlIG91dGVyIGJvdW5kaW5nIGJveGVzLgogIGZyb250Ontwb3NpdGlvbjpbMCwyMC4xNSw0MS4zXSxyb3RhdGlvbjpbMCwwLDBdLGV4cGxvZGU6WzAsMjUsNTJdfSwKICBiYWNrOntwb3NpdGlvbjpbMCwxOC42NSwtNDEuM10scm90YXRpb246WzAsTWF0aC5QSSwwXSxleHBsb2RlOlswLDI1LC01Ml19LAogIGxlZnQ6e3Bvc2l0aW9uOlstNjEuMywyMi4xNDY4LDBdLHJvdGF0aW9uOlswLE1hdGguUEkvMiwwXSxleHBsb2RlOlstNTYsMjIsMF19LAogIHJpZ2h0Ontwb3NpdGlvbjpbNjEuMywyMi4xNDc0NSwwXSxyb3RhdGlvbjpbMCwtTWF0aC5QSS8yLDBdLGV4cGxvZGU6WzU2LDIyLDBdfSwKICBsaWQ6e3Bvc2l0aW9uOlswLDQ1LjkyNDgsLTQwLjgzMzZdLHJvdGF0aW9uOm51bGwsY29udGVudE9mZnNldFo6NDIuMjQxMSxleHBsb2RlOlswLDQ4LC0yMF19Cn07Cgpjb25zdCBzY2VuZSA9IG5ldyBUSFJFRS5TY2VuZSgpOwpzY2VuZS5iYWNrZ3JvdW5kID0gbmV3IFRIUkVFLkNvbG9yKDB4ZWZmOWZkKTsKY29uc3QgY2FtZXJhID0gbmV3IFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhKDM1LDEsMC4xLDE2MDApOwpjb25zdCBkZWZhdWx0Q2FtZXJhUG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygxOTAsMTM4LDIxMCk7CmNvbnN0IGRlZmF1bHRUYXJnZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygwLDI1LDApOwpjYW1lcmEucG9zaXRpb24uY29weShkZWZhdWx0Q2FtZXJhUG9zaXRpb24pOwoKY29uc3QgcmVuZGVyZXIgPSBuZXcgVEhSRUUuV2ViR0xSZW5kZXJlcih7Y2FudmFzLGFudGlhbGlhczp0cnVlLGFscGhhOmZhbHNlLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjp0cnVlLHBvd2VyUHJlZmVyZW5jZTonaGlnaC1wZXJmb3JtYW5jZSd9KTsKcmVuZGVyZXIub3V0cHV0Q29sb3JTcGFjZSA9IFRIUkVFLlNSR0JDb2xvclNwYWNlOwpyZW5kZXJlci50b25lTWFwcGluZyA9IFRIUkVFLkFDRVNGaWxtaWNUb25lTWFwcGluZzsKcmVuZGVyZXIudG9uZU1hcHBpbmdFeHBvc3VyZSA9IDEuMDU7CnJlbmRlcmVyLnNldFBpeGVsUmF0aW8oTWF0aC5taW4od2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMSwyKSk7Cgpjb25zdCBjb250cm9scyA9IG5ldyBPcmJpdENvbnRyb2xzKGNhbWVyYSxyZW5kZXJlci5kb21FbGVtZW50KTsKY29udHJvbHMudGFyZ2V0LmNvcHkoZGVmYXVsdFRhcmdldCk7CmNvbnRyb2xzLmVuYWJsZURhbXBpbmcgPSBmYWxzZTsKY29udHJvbHMubWluRGlzdGFuY2UgPSAxMzA7CmNvbnRyb2xzLm1heERpc3RhbmNlID0gNjIwOwpjb250cm9scy5tYXhQb2xhckFuZ2xlID0gTWF0aC5QSSAqIDAuOTI7CmNvbnRyb2xzLnVwZGF0ZSgpOwoKc2NlbmUuYWRkKG5ldyBUSFJFRS5IZW1pc3BoZXJlTGlnaHQoMHhmZmZmZmYsMHhjOGUwZWEsMi4yNSkpOwpjb25zdCBrZXlMaWdodCA9IG5ldyBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0KDB4ZmZmZmZmLDMuMCk7CmtleUxpZ2h0LnBvc2l0aW9uLnNldCgtMTcwLDIzMCwxODApOwpzY2VuZS5hZGQoa2V5TGlnaHQpOwpjb25zdCByaW1MaWdodCA9IG5ldyBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0KDB4Y2RlZmZmLDEuNzUpOwpyaW1MaWdodC5wb3NpdGlvbi5zZXQoMTgwLDExMCwtMTgwKTsKc2NlbmUuYWRkKHJpbUxpZ2h0KTsKCmNvbnN0IG1vZGVsUm9vdCA9IG5ldyBUSFJFRS5Hcm91cCgpOwptb2RlbFJvb3QubmFtZSA9ICdBY3J5bGljQm94QXNzZW1ibHlSb290JzsKc2NlbmUuYWRkKG1vZGVsUm9vdCk7Cgpjb25zdCBydW50aW1lID0gewogIHBhcnRzOnt9LAogIG1lc2hlczp7fSwKICBzb2NrZXRzOnt9LAogIGNvbGxpZGVyczp7fSwKICBjbGlja2FibGU6W10sCiAgYXJ0d29ya01lc2hlczp7fSwKICBhcnR3b3JrTWF0ZXJpYWxzOnt9LAogIGFydHdvcmtFZGdlTWF0ZXJpYWxzOnt9LAogIHVwbG9hZFByb21wdHM6e30sCiAgb3V0bGluZXM6e30sCiAgc2V0RXhwbG9kZWQsCiAgc2V0TGlkT3BlbiwKICBzZWxlY3RQYXJ0Cn07Cm1vZGVsUm9vdC51c2VyRGF0YS5zY3VscHRSdW50aW1lID0gcnVudGltZTsKCmZ1bmN0aW9uIGJ1aWxkUGFydChpZCl7CiAgY29uc3QgZGF0YSA9IEU3X0dFT01FVFJZLnBhcnRzW2lkXTsKICBjb25zdCBjb25maWcgPSBQQVJUX0NPTkZJR1tpZF07CiAgY29uc3Qgc2hhcGUgPSBtYWtlU2hhcGUoZGF0YSk7CiAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuRXh0cnVkZUdlb21ldHJ5KHNoYXBlLHtkZXB0aDpUSElDS05FU1MsYmV2ZWxFbmFibGVkOmZhbHNlLGN1cnZlU2VnbWVudHM6MixzdGVwczoxfSk7CiAgZ2VvbWV0cnkudHJhbnNsYXRlKDAsMCwtVEhJQ0tORVNTLzIpOwogIGdlb21ldHJ5LmNvbXB1dGVWZXJ0ZXhOb3JtYWxzKCk7CiAgYXNzaWduTm9ybWFsaXplZFV2cyhnZW9tZXRyeSxkYXRhLmJvdW5kcyk7CgogIGNvbnN0IHBpdm90ID0gbmV3IFRIUkVFLkdyb3VwKCk7CiAgcGl2b3QubmFtZSA9IGBwYXJ0OiR7aWR9OnBpdm90YDsKICBwaXZvdC5wb3NpdGlvbi5mcm9tQXJyYXkoY29uZmlnLnBvc2l0aW9uKTsKICBwaXZvdC51c2VyRGF0YS5wYXJ0SWQgPSBpZDsKICBwaXZvdC51c2VyRGF0YS5hc3NlbWJsZWRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuZnJvbUFycmF5KGNvbmZpZy5wb3NpdGlvbik7CiAgcGl2b3QudXNlckRhdGEuZXhwbG9kZWRQb3NpdGlvbiA9IG5ldyBUSFJFRS5WZWN0b3IzKCkuZnJvbUFycmF5KGNvbmZpZy5wb3NpdGlvbikuYWRkKG5ldyBUSFJFRS5WZWN0b3IzKCkuZnJvbUFycmF5KGNvbmZpZy5leHBsb2RlKSk7CiAgcGl2b3QudXNlckRhdGEuY29sbGlkZXIgPSB7dHlwZTonYm94JyxzaXplOltkYXRhLmJvdW5kcy53aWR0aCxkYXRhLmJvdW5kcy5oZWlnaHQsVEhJQ0tORVNTXX07CgogIGNvbnN0IGNvbnRlbnQgPSBuZXcgVEhSRUUuR3JvdXAoKTsKICBjb250ZW50Lm5hbWUgPSBgcGFydDoke2lkfTpjb250ZW50YDsKICBpZiAoaWQgPT09ICdsaWQnKXsKICAgIGNvbnRlbnQucXVhdGVybmlvbi5jb3B5KG1ha2VCYXNpc1F1YXRlcm5pb24oCiAgICAgIG5ldyBUSFJFRS5WZWN0b3IzKC0xLDAsMCksCiAgICAgIG5ldyBUSFJFRS5WZWN0b3IzKDAsMCwxKSwKICAgICAgbmV3IFRIUkVFLlZlY3RvcjMoMCwxLDApCiAgICApKTsKICAgIGNvbnRlbnQucG9zaXRpb24ueiA9IGNvbmZpZy5jb250ZW50T2Zmc2V0WjsKICAgIHBpdm90LnVzZXJEYXRhLmhpbmdlQXhpcyA9IFsxLDAsMF07CiAgfSBlbHNlIHsKICAgIGNvbnRlbnQucm90YXRpb24uZnJvbUFycmF5KGNvbmZpZy5yb3RhdGlvbik7CiAgfQoKICBjb25zdCBib2R5ID0gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnksW2NsZWFyTWF0ZXJpYWwsY2xlYXJNYXRlcmlhbF0pOwogIGJvZHkubmFtZSA9IGBtZXNoOiR7aWR9OmFjcnlsaWNgOwogIGJvZHkudXNlckRhdGEucGFydElkID0gaWQ7CiAgYm9keS5yZW5kZXJPcmRlciA9IDE7CiAgY29udGVudC5hZGQoYm9keSk7CgogIGNvbnN0IGFydHdvcmtHZW9tZXRyeSA9IG5ldyBUSFJFRS5TaGFwZUdlb21ldHJ5KHNoYXBlLDIpOwogIGFzc2lnbk5vcm1hbGl6ZWRVdnMoYXJ0d29ya0dlb21ldHJ5LGRhdGEuYm91bmRzKTsKICBjb25zdCBhcnR3b3JrTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoewogICAgY29sb3I6MHhmZmZmZmYsCiAgICB0cmFuc3BhcmVudDp0cnVlLAogICAgb3BhY2l0eTowLAogICAgc2lkZTpUSFJFRS5Eb3VibGVTaWRlLAogICAgZGVwdGhXcml0ZTpmYWxzZSwKICAgIHBvbHlnb25PZmZzZXQ6dHJ1ZSwKICAgIHBvbHlnb25PZmZzZXRGYWN0b3I6LTIsCiAgICBwb2x5Z29uT2Zmc2V0VW5pdHM6LTIsCiAgICB0b25lTWFwcGVkOmZhbHNlCiAgfSk7CiAgY29uc3QgYXJ0d29ya0VkZ2VNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7CiAgICBjb2xvcjoweGZmZmZmZiwKICAgIHRyYW5zcGFyZW50OnRydWUsCiAgICBvcGFjaXR5OjAsCiAgICBzaWRlOlRIUkVFLkRvdWJsZVNpZGUsCiAgICBkZXB0aFdyaXRlOmZhbHNlLAogICAgdG9uZU1hcHBlZDpmYWxzZQogIH0pOwogIGNvbnN0IGFydHdvcmsgPSBuZXcgVEhSRUUuTWVzaChhcnR3b3JrR2VvbWV0cnksYXJ0d29ya01hdGVyaWFsKTsKICBhcnR3b3JrLm5hbWUgPSBgbWVzaDoke2lkfTphcnR3b3JrYDsKICBjb25zdCBhcnR3b3JrRmFjZXNJbndhcmQgPSBpZCA9PT0gJ2xlZnQnIHx8IGlkID09PSAncmlnaHQnOwogIGFydHdvcmsucG9zaXRpb24ueiA9IChhcnR3b3JrRmFjZXNJbndhcmQ\/LTE6MSkqKFRISUNLTkVTUyAvIDIgKyAwLjA0NSk7CiAgaWYgKGFydHdvcmtGYWNlc0lud2FyZCkgYXJ0d29yay5yb3RhdGlvbi55ID0gTWF0aC5QSTsKICBhcnR3b3JrLnVzZXJEYXRhLnBhcnRJZCA9IGlkOwogIGFydHdvcmsucmVuZGVyT3JkZXIgPSA0OwogIGNvbnRlbnQuYWRkKGFydHdvcmspOwoKICBjb25zdCBvdXRsaW5lTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe2NvbG9yOjB4OGZhZWJhLHRyYW5zcGFyZW50OnRydWUsb3BhY2l0eTowLjQ2LGRlcHRoVGVzdDpmYWxzZX0pOwogIGNvbnN0IG91dGxpbmUgPSBuZXcgVEhSRUUuTGluZVNlZ21lbnRzKG5ldyBUSFJFRS5FZGdlc0dlb21ldHJ5KGdlb21ldHJ5LDI1KSxvdXRsaW5lTWF0ZXJpYWwpOwogIG91dGxpbmUubmFtZSA9IGBtZXNoOiR7aWR9OnNlbGVjdGlvbi1vdXRsaW5lYDsKICBvdXRsaW5lLnZpc2libGUgPSBmYWxzZTsKICBvdXRsaW5lLnJlbmRlck9yZGVyID0gOTsKICBjb250ZW50LmFkZChvdXRsaW5lKTsKCiAgY29uc3Qgc29ja2V0ID0gbmV3IFRIUkVFLk9iamVjdDNEKCk7CiAgc29ja2V0Lm5hbWUgPSBpZCA9PT0gJ2xpZCcgPyAnc29ja2V0OmxpZC1oaW5nZS1heGlzJyA6IGBzb2NrZXQ6JHtpZH06YXNzZW1ibHlgOwogIHNvY2tldC51c2VyRGF0YS5zb2NrZXRGb3IgPSBpZDsKICBwaXZvdC5hZGQoc29ja2V0KTsKICBydW50aW1lLnNvY2tldHNbc29ja2V0Lm5hbWVdID0gc29ja2V0OwoKICBwaXZvdC5hZGQoY29udGVudCk7CiAgbW9kZWxSb290LmFkZChwaXZvdCk7CiAgcnVudGltZS5wYXJ0c1tpZF0gPSBwaXZvdDsKICBydW50aW1lLm1lc2hlc1tpZF0gPSBib2R5OwogIHJ1bnRpbWUuYXJ0d29ya01lc2hlc1tpZF0gPSBhcnR3b3JrOwogIHJ1bnRpbWUuYXJ0d29ya01hdGVyaWFsc1tpZF0gPSBhcnR3b3JrTWF0ZXJpYWw7CiAgcnVudGltZS5hcnR3b3JrRWRnZU1hdGVyaWFsc1tpZF0gPSBhcnR3b3JrRWRnZU1hdGVyaWFsOwogIHJ1bnRpbWUub3V0bGluZXNbaWRdID0gb3V0bGluZTsKICBydW50aW1lLmNvbGxpZGVyc1tpZF0gPSBwaXZvdC51c2VyRGF0YS5jb2xsaWRlcjsKICBydW50aW1lLmNsaWNrYWJsZS5wdXNoKGJvZHksYXJ0d29yayk7CgogIGlmIChpZCA9PT0gJ2Zyb250Jyl7CiAgICBjb25zdCBwcm9tcHRDYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKICAgIHByb21wdENhbnZhcy53aWR0aCA9IDI1NjsKICAgIHByb21wdENhbnZhcy5oZWlnaHQgPSAyNTY7CiAgICBjb25zdCBwcm9tcHRDb250ZXh0ID0gcHJvbXB0Q2FudmFzLmdldENvbnRleHQoJzJkJyk7CiAgICBwcm9tcHRDb250ZXh0LmNsZWFyUmVjdCgwLDAsMjU2LDI1Nik7CiAgICBwcm9tcHRDb250ZXh0LmJlZ2luUGF0aCgpOwogICAgcHJvbXB0Q29udGV4dC5hcmMoMTI4LDEyOCw5MSwwLE1hdGguUEkqMik7CiAgICBwcm9tcHRDb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDI1NSwyNTUsMjU1LC45MiknOwogICAgcHJvbXB0Q29udGV4dC5maWxsKCk7CiAgICBwcm9tcHRDb250ZXh0LmxpbmVXaWR0aCA9IDEwOwogICAgcHJvbXB0Q29udGV4dC5zdHJva2VTdHlsZSA9ICcjMDg3QUI1JzsKICAgIHByb21wdENvbnRleHQuc3Ryb2tlKCk7CiAgICBwcm9tcHRDb250ZXh0LnN0cm9rZVN0eWxlID0gJyMwODdBQjUnOwogICAgcHJvbXB0Q29udGV4dC5saW5lV2lkdGggPSAxMzsKICAgIHByb21wdENvbnRleHQubGluZUNhcCA9ICdyb3VuZCc7CiAgICBwcm9tcHRDb250ZXh0LmxpbmVKb2luID0gJ3JvdW5kJzsKICAgIHByb21wdENvbnRleHQuYmVnaW5QYXRoKCk7CiAgICBwcm9tcHRDb250ZXh0Lm1vdmVUbygxMjgsMTY0KTsKICAgIHByb21wdENvbnRleHQubGluZVRvKDEyOCw4Myk7CiAgICBwcm9tcHRDb250ZXh0Lm1vdmVUbyg5NCwxMTYpOwogICAgcHJvbXB0Q29udGV4dC5saW5lVG8oMTI4LDgyKTsKICAgIHByb21wdENvbnRleHQubGluZVRvKDE2MiwxMTYpOwogICAgcHJvbXB0Q29udGV4dC5tb3ZlVG8oODIsMTc0KTsKICAgIHByb21wdENvbnRleHQubGluZVRvKDgyLDE5Myk7CiAgICBwcm9tcHRDb250ZXh0LmxpbmVUbygxNzQsMTkzKTsKICAgIHByb21wdENvbnRleHQubGluZVRvKDE3NCwxNzQpOwogICAgcHJvbXB0Q29udGV4dC5zdHJva2UoKTsKICAgIGNvbnN0IHByb21wdFRleHR1cmUgPSBuZXcgVEhSRUUuQ2FudmFzVGV4dHVyZShwcm9tcHRDYW52YXMpOwogICAgcHJvbXB0VGV4dHVyZS5jb2xvclNwYWNlID0gVEhSRUUuU1JHQkNvbG9yU3BhY2U7CiAgICBjb25zdCBwcm9tcHRNYXRlcmlhbCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCh7CiAgICAgIG1hcDpwcm9tcHRUZXh0dXJlLAogICAgICB0cmFuc3BhcmVudDp0cnVlLAogICAgICBvcGFjaXR5OjAuOTYsCiAgICAgIHNpZGU6VEhSRUUuRG91YmxlU2lkZSwKICAgICAgZGVwdGhXcml0ZTpmYWxzZSwKICAgICAgZGVwdGhUZXN0OmZhbHNlLAogICAgICB0b25lTWFwcGVkOmZhbHNlCiAgICB9KTsKICAgIGNvbnN0IHByb21wdCA9IG5ldyBUSFJFRS5NZXNoKG5ldyBUSFJFRS5QbGFuZUdlb21ldHJ5KDE4LDE4KSxwcm9tcHRNYXRlcmlhbCk7CiAgICBwcm9tcHQubmFtZSA9ICdwcm9tcHQ6ZnJvbnQ6dXBsb2FkJzsKICAgIHByb21wdC5wb3NpdGlvbi5zZXQoMCw0LFRISUNLTkVTUy8yKzAuMTgpOwogICAgcHJvbXB0LnVzZXJEYXRhLnBhcnRJZCA9ICdmcm9udCc7CiAgICBwcm9tcHQudXNlckRhdGEudXBsb2FkUHJvbXB0RmFjZSA9ICdmcm9udCc7CiAgICBwcm9tcHQucmVuZGVyT3JkZXIgPSA4OwogICAgY29udGVudC5hZGQocHJvbXB0KTsKICAgIHJ1bnRpbWUudXBsb2FkUHJvbXB0cy5mcm9udCA9IHByb21wdDsKICAgIHJ1bnRpbWUuY2xpY2thYmxlLnB1c2gocHJvbXB0KTsKICB9Cn0KCkZBQ0VfSURTLmZvckVhY2goYnVpbGRQYXJ0KTsKY29uc3QgbGVmdEhpbmdlU29ja2V0ID0gbmV3IFRIUkVFLk9iamVjdDNEKCk7CmxlZnRIaW5nZVNvY2tldC5uYW1lID0gJ3NvY2tldDpsZWZ0OmhpbmdlLWhvbGUtNW1tJzsKbGVmdEhpbmdlU29ja2V0LnBvc2l0aW9uLnNldCgwLDIzLjc3OCwtNDAuODMzNik7CnJ1bnRpbWUucGFydHMubGVmdC5hZGQobGVmdEhpbmdlU29ja2V0KTsKcnVudGltZS5zb2NrZXRzW2xlZnRIaW5nZVNvY2tldC5uYW1lXSA9IGxlZnRIaW5nZVNvY2tldDsKY29uc3QgcmlnaHRIaW5nZVNvY2tldCA9IG5ldyBUSFJFRS5PYmplY3QzRCgpOwpyaWdodEhpbmdlU29ja2V0Lm5hbWUgPSAnc29ja2V0OnJpZ2h0OmhpbmdlLWhvbGUtNW1tJzsKcmlnaHRIaW5nZVNvY2tldC5wb3NpdGlvbi5zZXQoMCwyMy43NzczNSwtNDAuODMzNik7CnJ1bnRpbWUucGFydHMucmlnaHQuYWRkKHJpZ2h0SGluZ2VTb2NrZXQpOwpydW50aW1lLnNvY2tldHNbcmlnaHRIaW5nZVNvY2tldC5uYW1lXSA9IHJpZ2h0SGluZ2VTb2NrZXQ7Cgpjb25zdCBtb3Rpb24gPSB7YXNzZW1ibHk6bnVsbCxsaWQ6bnVsbCxwZW5kaW5nRml0OmZhbHNlfTsKY29uc3QgTElEX09QRU5fQU5HTEUgPSBUSFJFRS5NYXRoVXRpbHMuZGVnVG9SYWQoLTExMik7CgpmdW5jdGlvbiBlYXNlSW5PdXRDdWJpYyh2YWx1ZSl7CiAgcmV0dXJuIHZhbHVlIDwgMC41ID8gNCp2YWx1ZSp2YWx1ZSp2YWx1ZSA6IDEtTWF0aC5wb3coLTIqdmFsdWUrMiwzKS8yOwp9CgpmdW5jdGlvbiBiZWdpbkFuaW1hdGlvbihraW5kLHBheWxvYWQpewogIGNvbnN0IHtmaXQ9ZmFsc2UsLi4uYW5pbWF0aW9ufSA9IHBheWxvYWQ7CiAgbW90aW9uW2tpbmRdID0gey4uLmFuaW1hdGlvbixzdGFydDpwZXJmb3JtYW5jZS5ub3coKSxkdXJhdGlvbjpyZWR1Y2VkTW90aW9uPzA6YW5pbWF0aW9uLmR1cmF0aW9ufTsKICBpZiAoZml0KSBtb3Rpb24ucGVuZGluZ0ZpdCA9IHRydWU7CiAgcmVxdWVzdFJlbmRlcigpOwp9CgpmdW5jdGlvbiBzZXRFeHBsb2RlZChuZXh0KXsKICBleHBsb2RlZCA9IEJvb2xlYW4obmV4dCk7CiAgY29uc3Qgc3RhcnRzID0ge307CiAgY29uc3QgZW5kcyA9IHt9OwogIGZvciAoY29uc3QgaWQgb2YgRkFDRV9JRFMpewogICAgc3RhcnRzW2lkXSA9IHJ1bnRpbWUucGFydHNbaWRdLnBvc2l0aW9uLmNsb25lKCk7CiAgICBlbmRzW2lkXSA9IHJ1bnRpbWUucGFydHNbaWRdLnVzZXJEYXRhW2V4cGxvZGVkPydleHBsb2RlZFBvc2l0aW9uJzonYXNzZW1ibGVkUG9zaXRpb24nXS5jbG9uZSgpOwogIH0KICBiZWdpbkFuaW1hdGlvbignYXNzZW1ibHknLHtzdGFydHMsZW5kcyxkdXJhdGlvbjo2ODAsZml0OnRydWV9KTsKICBhc3NlbWJseUJ1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtcHJlc3NlZCcsU3RyaW5nKGV4cGxvZGVkKSk7CiAgYXNzZW1ibHlCdXR0b24ucXVlcnlTZWxlY3Rvcignc3BhbicpLnRleHRDb250ZW50ID0gZXhwbG9kZWQgPyAnQXNzZW1ibGUnIDogJ0V4cGxvZGUnOwogIGFzc2VtYmx5QnV0dG9uLnRpdGxlID0gZXhwbG9kZWQgPyAnQXNzZW1ibGUgYm94JyA6ICdFeHBsb2RlIGJveCc7Cn0KCmZ1bmN0aW9uIHN5bmNMaWRCdXR0b24obmV4dCl7CiAgbGlkT3BlbiA9IEJvb2xlYW4obmV4dCk7CiAgbGlkQnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJyxTdHJpbmcobGlkT3BlbikpOwogIGxpZEJ1dHRvbi5xdWVyeVNlbGVjdG9yKCdzcGFuJykudGV4dENvbnRlbnQgPSBsaWRPcGVuID8gJ0Nsb3NlIGxpZCcgOiAnT3BlbiBsaWQnOwogIGxpZEJ1dHRvbi50aXRsZSA9IGxpZE9wZW4gPyAnQ2xvc2UgbGlkJyA6ICdPcGVuIGxpZCc7Cn0KCmZ1bmN0aW9uIHNldExpZE9wZW4obmV4dCx7ZHVyYXRpb249NjIwfT17fSl7CiAgc3luY0xpZEJ1dHRvbihuZXh0KTsKICBiZWdpbkFuaW1hdGlvbignbGlkJyx7ZnJvbTpydW50aW1lLnBhcnRzLmxpZC5yb3RhdGlvbi54LHRvOmxpZE9wZW4\/TElEX09QRU5fQU5HTEU6MCxkdXJhdGlvbixmaXQ6ZmFsc2V9KTsKfQoKZnVuY3Rpb24gdXBkYXRlTW90aW9uKG5vdyl7CiAgbGV0IGFjdGl2ZSA9IGZhbHNlOwogIGlmIChtb3Rpb24uYXNzZW1ibHkpewogICAgY29uc3QgdmFsdWUgPSBtb3Rpb24uYXNzZW1ibHkuZHVyYXRpb24gPT09IDAgPyAxIDogTWF0aC5taW4oMSwobm93LW1vdGlvbi5hc3NlbWJseS5zdGFydCkvbW90aW9uLmFzc2VtYmx5LmR1cmF0aW9uKTsKICAgIGNvbnN0IGVhc2VkID0gZWFzZUluT3V0Q3ViaWModmFsdWUpOwogICAgZm9yIChjb25zdCBpZCBvZiBGQUNFX0lEUyl7CiAgICAgIHJ1bnRpbWUucGFydHNbaWRdLnBvc2l0aW9uLmxlcnBWZWN0b3JzKG1vdGlvbi5hc3NlbWJseS5zdGFydHNbaWRdLG1vdGlvbi5hc3NlbWJseS5lbmRzW2lkXSxlYXNlZCk7CiAgICB9CiAgICBpZiAodmFsdWUgPj0gMSkgbW90aW9uLmFzc2VtYmx5ID0gbnVsbDsgZWxzZSBhY3RpdmUgPSB0cnVlOwogIH0KICBpZiAobW90aW9uLmxpZCl7CiAgICBjb25zdCB2YWx1ZSA9IG1vdGlvbi5saWQuZHVyYXRpb24gPT09IDAgPyAxIDogTWF0aC5taW4oMSwobm93LW1vdGlvbi5saWQuc3RhcnQpL21vdGlvbi5saWQuZHVyYXRpb24pOwogICAgcnVudGltZS5wYXJ0cy5saWQucm90YXRpb24ueCA9IFRIUkVFLk1hdGhVdGlscy5sZXJwKG1vdGlvbi5saWQuZnJvbSxtb3Rpb24ubGlkLnRvLGVhc2VJbk91dEN1YmljKHZhbHVlKSk7CiAgICBpZiAodmFsdWUgPj0gMSkgbW90aW9uLmxpZCA9IG51bGw7IGVsc2UgYWN0aXZlID0gdHJ1ZTsKICB9CiAgcmV0dXJuIGFjdGl2ZTsKfQoKZnVuY3Rpb24gZml0Q2FtZXJhVG9Nb2RlbChwYWRkaW5nPTEuMTgpewogIGNvbnN0IGJveCA9IG5ldyBUSFJFRS5Cb3gzKCkuc2V0RnJvbU9iamVjdChtb2RlbFJvb3QpOwogIGNvbnN0IHNwaGVyZSA9IGJveC5nZXRCb3VuZGluZ1NwaGVyZShuZXcgVEhSRUUuU3BoZXJlKCkpOwogIGlmICghTnVtYmVyLmlzRmluaXRlKHNwaGVyZS5yYWRpdXMpIHx8IHNwaGVyZS5yYWRpdXMgPD0gMCkgcmV0dXJuOwogIGNvbnN0IGRpcmVjdGlvbiA9IGNhbWVyYS5wb3NpdGlvbi5jbG9uZSgpLnN1Yihjb250cm9scy50YXJnZXQpLm5vcm1hbGl6ZSgpOwogIGNvbnN0IGhhbGZGb3YgPSBUSFJFRS5NYXRoVXRpbHMuZGVnVG9SYWQoY2FtZXJhLmZvdiowLjUpOwogIGNvbnN0IGhvcml6b250YWxGYWN0b3IgPSBjYW1lcmEuYXNwZWN0IDwgMSA\/IDEvY2FtZXJhLmFzcGVjdCA6IDE7CiAgY29uc3QgZGlzdGFuY2UgPSAoc3BoZXJlLnJhZGl1cy9NYXRoLnNpbihoYWxmRm92KSkqcGFkZGluZypob3Jpem9udGFsRmFjdG9yOwogIGNvbnRyb2xzLnRhcmdldC5jb3B5KHNwaGVyZS5jZW50ZXIpOwogIGNhbWVyYS5wb3NpdGlvbi5jb3B5KHNwaGVyZS5jZW50ZXIpLmFkZChkaXJlY3Rpb24ubXVsdGlwbHlTY2FsYXIoZGlzdGFuY2UpKTsKICBjYW1lcmEubmVhciA9IE1hdGgubWF4KDAuMSxkaXN0YW5jZS1zcGhlcmUucmFkaXVzKjIuMik7CiAgY2FtZXJhLmZhciA9IGRpc3RhbmNlK3NwaGVyZS5yYWRpdXMqNDsKICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpOwogIGNvbnRyb2xzLnVwZGF0ZSgpOwp9CgpmdW5jdGlvbiByZW5kZXJGcmFtZShub3c9cGVyZm9ybWFuY2Uubm93KCkpewogIGZyYW1lUmVxdWVzdCA9IDA7CiAgaWYgKCF2aXNpYmxlIHx8ICFwYWdlVmlzaWJsZSkgcmV0dXJuOwogIGNvbnN0IGFjdGl2ZSA9IHVwZGF0ZU1vdGlvbihub3cpOwogIGlmICghYWN0aXZlICYmIG1vdGlvbi5wZW5kaW5nRml0KXsKICAgIG1vdGlvbi5wZW5kaW5nRml0ID0gZmFsc2U7CiAgICBmaXRDYW1lcmFUb01vZGVsKCk7CiAgfQogIHJlbmRlcmVyLnJlbmRlcihzY2VuZSxjYW1lcmEpOwogIGlmIChhY3RpdmUpIGZyYW1lUmVxdWVzdCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShyZW5kZXJGcmFtZSk7Cn0KCmZ1bmN0aW9uIHJlcXVlc3RSZW5kZXIoKXsKICBpZiAoIWZyYW1lUmVxdWVzdCAmJiB2aXNpYmxlICYmIHBhZ2VWaXNpYmxlKSBmcmFtZVJlcXVlc3QgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocmVuZGVyRnJhbWUpOwp9Cgpjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLHJlcXVlc3RSZW5kZXIpOwoKZnVuY3Rpb24gcmVzaXplUmVuZGVyZXIoKXsKICBjb25zdCB3aWR0aCA9IE1hdGgubWF4KDEsc3RhZ2UuY2xpZW50V2lkdGgpOwogIGNvbnN0IGhlaWdodCA9IE1hdGgubWF4KDEsc3RhZ2UuY2xpZW50SGVpZ2h0KTsKICBjb25zdCBwaXhlbFJhdGlvID0gcmVuZGVyZXIuZ2V0UGl4ZWxSYXRpbygpOwogIGlmIChjYW52YXMud2lkdGggIT09IE1hdGgucm91bmQod2lkdGgqcGl4ZWxSYXRpbykgfHwgY2FudmFzLmhlaWdodCAhPT0gTWF0aC5yb3VuZChoZWlnaHQqcGl4ZWxSYXRpbykpewogICAgcmVuZGVyZXIuc2V0U2l6ZSh3aWR0aCxoZWlnaHQsZmFsc2UpOwogICAgY2FtZXJhLmFzcGVjdCA9IHdpZHRoL2hlaWdodDsKICAgIGNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7CiAgICByZXF1ZXN0UmVuZGVyKCk7CiAgfQp9Cm5ldyBSZXNpemVPYnNlcnZlcihyZXNpemVSZW5kZXJlcikub2JzZXJ2ZShzdGFnZSk7Cm5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihlbnRyaWVzID0+IHsKICB2aXNpYmxlID0gZW50cmllc1swXT8uaXNJbnRlcnNlY3RpbmcgPz8gdHJ1ZTsKICBpZiAodmlzaWJsZSkgcmVxdWVzdFJlbmRlcigpOwp9LHt0aHJlc2hvbGQ6MC4wMn0pLm9ic2VydmUoc3RhZ2UpOwpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywoKSA9PiB7CiAgcGFnZVZpc2libGUgPSAhZG9jdW1lbnQuaGlkZGVuOwogIGlmIChwYWdlVmlzaWJsZSkgcmVxdWVzdFJlbmRlcigpOwp9KTsKCmZ1bmN0aW9uIHNlbGVjdFBhcnQoaWQpewogIGlmICghRkFDRV9JRFMuaW5jbHVkZXMoaWQpKSByZXR1cm47CiAgc2VsZWN0ZWRGYWNlID0gaWQ7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmZhY2UtaXRlbScpLmZvckVhY2goaXRlbSA9PiBpdGVtLmNsYXNzTGlzdC50b2dnbGUoJ3NlbGVjdGVkJyxpdGVtLmRhdGFzZXQuZmFjZT09PWlkKSk7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtc2VsZWN0LWZhY2VdJykuZm9yRWFjaChidXR0b24gPT4gYnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJyxTdHJpbmcoYnV0dG9uLmRhdGFzZXQuc2VsZWN0RmFjZT09PWlkKSkpOwogIGZvciAoY29uc3QgZmFjZUlkIG9mIEZBQ0VfSURTKSBydW50aW1lLm91dGxpbmVzW2ZhY2VJZF0udmlzaWJsZSA9IGZhY2VJZCA9PT0gaWQ7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3NlbGVjdGVkLWZhY2UtbGFiZWwnKS50ZXh0Q29udGVudCA9IGAke0ZBQ0VfTEFCRUxTW2lkXX0gZmFjZWA7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtZmlsbC1tb2RlXScpLmZvckVhY2goYnV0dG9uID0+IHsKICAgIGNvbnN0IHNlbGVjdGVkID0gYnV0dG9uLmRhdGFzZXQuZmlsbE1vZGUgPT09IGZhY2VTdGF0ZVtpZF0ubW9kZTsKICAgIGJ1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKCdzZWxlY3RlZCcsc2VsZWN0ZWQpOwogICAgYnV0dG9uLnNldEF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJyxTdHJpbmcoc2VsZWN0ZWQpKTsKICB9KTsKICByZXF1ZXN0UmVuZGVyKCk7Cn0KCmNvbnN0IHJheWNhc3RlciA9IG5ldyBUSFJFRS5SYXljYXN0ZXIoKTsKY29uc3QgcG9pbnRlciA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7CmxldCBwb2ludGVyU3RhcnQgPSBudWxsOwpsZXQgbGlkRHJhZyA9IG51bGw7CgpmdW5jdGlvbiBwaWNrUGFydChjbGllbnRYLGNsaWVudFkpewogIGNvbnN0IHJlY3QgPSBjYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgcG9pbnRlci5zZXQoKChjbGllbnRYLXJlY3QubGVmdCkvcmVjdC53aWR0aCkqMi0xLC0oKGNsaWVudFktcmVjdC50b3ApL3JlY3QuaGVpZ2h0KSoyKzEpOwogIHJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKHBvaW50ZXIsY2FtZXJhKTsKICByZXR1cm4gcmF5Y2FzdGVyLmludGVyc2VjdE9iamVjdHMocnVudGltZS5jbGlja2FibGUsZmFsc2UpWzBdIHx8IG51bGw7Cn0KCmZ1bmN0aW9uIGZpbmlzaExpZERyYWcoZXZlbnQpewogIGlmICghbGlkRHJhZyB8fCBldmVudC5wb2ludGVySWQgIT09IGxpZERyYWcucG9pbnRlcklkKSByZXR1cm4gZmFsc2U7CiAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKICBpZiAoY2FudmFzLmhhc1BvaW50ZXJDYXB0dXJlKGV2ZW50LnBvaW50ZXJJZCkpIGNhbnZhcy5yZWxlYXNlUG9pbnRlckNhcHR1cmUoZXZlbnQucG9pbnRlcklkKTsKICBjb250cm9scy5lbmFibGVkID0gdHJ1ZTsKICBjYW52YXMuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZ2dpbmctbGlkJyk7CiAgY29uc3QgbW92ZWQgPSBsaWREcmFnLm1vdmVkOwogIGNvbnN0IHNob3VsZE9wZW4gPSBydW50aW1lLnBhcnRzLmxpZC5yb3RhdGlvbi54IDwgTElEX09QRU5fQU5HTEUvMjsKICBsaWREcmFnID0gbnVsbDsKICBpZiAobW92ZWQpIHNldExpZE9wZW4oc2hvdWxkT3Blbix7ZHVyYXRpb246cmVkdWNlZE1vdGlvbj8wOjIyMH0pOwogIGVsc2Ugc2VsZWN0UGFydCgnbGlkJyk7CiAgcG9pbnRlclN0YXJ0ID0gbnVsbDsKICByZXR1cm4gdHJ1ZTsKfQoKY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJyxldmVudCA9PiB7CiAgcG9pbnRlclN0YXJ0ID0ge3g6ZXZlbnQuY2xpZW50WCx5OmV2ZW50LmNsaWVudFl9OwogIGlmIChldmVudC5idXR0b24gIT09IDAgfHwgZXhwbG9kZWQpIHJldHVybjsKICBjb25zdCBoaXQgPSBwaWNrUGFydChldmVudC5jbGllbnRYLGV2ZW50LmNsaWVudFkpOwogIGlmIChoaXQ\/Lm9iamVjdC51c2VyRGF0YS5wYXJ0SWQgIT09ICdsaWQnKSByZXR1cm47CiAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKICBtb3Rpb24ubGlkID0gbnVsbDsKICBtb3Rpb24ucGVuZGluZ0ZpdCA9IGZhbHNlOwogIGxpZERyYWcgPSB7CiAgICBwb2ludGVySWQ6ZXZlbnQucG9pbnRlcklkLAogICAgc3RhcnRZOmV2ZW50LmNsaWVudFksCiAgICBzdGFydEFuZ2xlOnJ1bnRpbWUucGFydHMubGlkLnJvdGF0aW9uLngsCiAgICBtb3ZlZDpmYWxzZQogIH07CiAgY29udHJvbHMuZW5hYmxlZCA9IGZhbHNlOwogIGNhbnZhcy5zZXRQb2ludGVyQ2FwdHVyZShldmVudC5wb2ludGVySWQpOwogIGNhbnZhcy5jbGFzc0xpc3QuYWRkKCdkcmFnZ2luZy1saWQnKTsKfSx7Y2FwdHVyZTp0cnVlfSk7CgpjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLGV2ZW50ID0+IHsKICBpZiAobGlkRHJhZyAmJiBldmVudC5wb2ludGVySWQgPT09IGxpZERyYWcucG9pbnRlcklkKXsKICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKICAgIGNvbnN0IGZ1bGxUcmF2ZWwgPSBNYXRoLm1pbigyNjAsTWF0aC5tYXgoMTUwLGNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQqMC4zNikpOwogICAgY29uc3QgZGVsdGEgPSAoZXZlbnQuY2xpZW50WS1saWREcmFnLnN0YXJ0WSkqTWF0aC5hYnMoTElEX09QRU5fQU5HTEUpL2Z1bGxUcmF2ZWw7CiAgICBydW50aW1lLnBhcnRzLmxpZC5yb3RhdGlvbi54ID0gVEhSRUUuTWF0aFV0aWxzLmNsYW1wKGxpZERyYWcuc3RhcnRBbmdsZStkZWx0YSxMSURfT1BFTl9BTkdMRSwwKTsKICAgIGxpZERyYWcubW92ZWQgfHw9IE1hdGguYWJzKGV2ZW50LmNsaWVudFktbGlkRHJhZy5zdGFydFkpPjM7CiAgICBzeW5jTGlkQnV0dG9uKHJ1bnRpbWUucGFydHMubGlkLnJvdGF0aW9uLnggPCBMSURfT1BFTl9BTkdMRS8yKTsKICAgIHJlcXVlc3RSZW5kZXIoKTsKICAgIHJldHVybjsKICB9CiAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlID09PSAnbW91c2UnKXsKICAgIGNvbnN0IGhpdCA9IHBpY2tQYXJ0KGV2ZW50LmNsaWVudFgsZXZlbnQuY2xpZW50WSk7CiAgICBjYW52YXMuZGF0YXNldC5pbnRlcmFjdGlvbiA9ICFleHBsb2RlZCAmJiBoaXQ\/Lm9iamVjdC51c2VyRGF0YS5wYXJ0SWQgPT09ICdsaWQnID8gJ2xpZCcgOiAnb3JiaXQnOwogIH0KfSx7Y2FwdHVyZTp0cnVlfSk7CgpjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJyxldmVudCA9PiB7CiAgaWYgKGZpbmlzaExpZERyYWcoZXZlbnQpKSByZXR1cm47CiAgaWYgKCFwb2ludGVyU3RhcnQgfHwgTWF0aC5oeXBvdChldmVudC5jbGllbnRYLXBvaW50ZXJTdGFydC54LGV2ZW50LmNsaWVudFktcG9pbnRlclN0YXJ0LnkpPjUpe3BvaW50ZXJTdGFydD1udWxsO3JldHVybjt9CiAgY29uc3QgaGl0ID0gcGlja1BhcnQoZXZlbnQuY2xpZW50WCxldmVudC5jbGllbnRZKTsKICBwb2ludGVyU3RhcnQgPSBudWxsOwogIGlmIChoaXQ\/Lm9iamVjdC51c2VyRGF0YS51cGxvYWRQcm9tcHRGYWNlKXsKICAgIGNvbnN0IGlkID0gaGl0Lm9iamVjdC51c2VyRGF0YS51cGxvYWRQcm9tcHRGYWNlOwogICAgc2VsZWN0UGFydChpZCk7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1maWxlLWZhY2U9IiR7aWR9Il1gKS5jbGljaygpOwogIH0gZWxzZSBpZiAoaGl0Py5vYmplY3QudXNlckRhdGEucGFydElkKXsKICAgIHNlbGVjdFBhcnQoaGl0Lm9iamVjdC51c2VyRGF0YS5wYXJ0SWQpOwogIH0KfSx7Y2FwdHVyZTp0cnVlfSk7CgpjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmNhbmNlbCcsZXZlbnQgPT4ge2ZpbmlzaExpZERyYWcoZXZlbnQpO30se2NhcHR1cmU6dHJ1ZX0pOwpjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmxlYXZlJywoKSA9PiB7aWYgKCFsaWREcmFnKSBjYW52YXMuZGF0YXNldC5pbnRlcmFjdGlvbiA9ICdvcmJpdCc7fSk7CgpmdW5jdGlvbiByZXNldFZpZXcoKXsKICBjYW1lcmEucG9zaXRpb24uY29weShkZWZhdWx0Q2FtZXJhUG9zaXRpb24pOwogIGNvbnRyb2xzLnRhcmdldC5jb3B5KGRlZmF1bHRUYXJnZXQpOwogIGNvbnRyb2xzLnVwZGF0ZSgpOwogIHJlcXVlc3RSZW5kZXIoKTsKfQoKZnVuY3Rpb24gdXBkYXRlQWNyeWxpY0NvbG9yKHZhbHVlKXsKICBjb25zdCBub3JtYWxpemVkID0gdmFsdWUudG9Mb3dlckNhc2UoKTsKICBjb25zdCBpc0NsZWFyID0gbm9ybWFsaXplZCA9PT0gJyNmZmZmZmYnOwogIGNsZWFyTWF0ZXJpYWwuY29sb3Iuc2V0KHZhbHVlKTsKICBhY3J5bGljQ29sb3JJbnB1dC52YWx1ZSA9IG5vcm1hbGl6ZWQ7CiAgYWNyeWxpY0NvbG9yVmFsdWUudGV4dENvbnRlbnQgPSBpc0NsZWFyID8gJ0NsZWFyJyA6IG5vcm1hbGl6ZWQudG9VcHBlckNhc2UoKTsKICBjbGVhckFjcnlsaWNCdXR0b24uY2xhc3NMaXN0LnRvZ2dsZSgnc2VsZWN0ZWQnLGlzQ2xlYXIpOwogIGNsZWFyQWNyeWxpY0J1dHRvbi5zZXRBdHRyaWJ1dGUoJ2FyaWEtcHJlc3NlZCcsU3RyaW5nKGlzQ2xlYXIpKTsKICByZXF1ZXN0UmVuZGVyKCk7Cn0KCmZ1bmN0aW9uIGxvYWRJbWFnZShmaWxlKXsKICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KSA9PiB7CiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpOwogICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTsKICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHtVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7cmVzb2x2ZShpbWFnZSk7fTsKICAgIGltYWdlLm9uZXJyb3IgPSAoKSA9PiB7VVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO3JlamVjdChuZXcgRXJyb3IoJ1RoZSBzZWxlY3RlZCBpbWFnZSBjb3VsZCBub3QgYmUgcmVhZC4nKSk7fTsKICAgIGltYWdlLnNyYyA9IHVybDsKICB9KTsKfQoKZnVuY3Rpb24gbG9hZFJlbW90ZUltYWdlKHVybCl7CiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCkgPT4gewogICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTsKICAgIGltYWdlLmNyb3NzT3JpZ2luID0gJ2Fub255bW91cyc7CiAgICBpbWFnZS5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKGltYWdlKTsKICAgIGltYWdlLm9uZXJyb3IgPSAoKSA9PiByZWplY3QobmV3IEVycm9yKCdUaGUgc2FtcGxlIGFydHdvcmsgY291bGQgbm90IGJlIGxvYWRlZC4nKSk7CiAgICBpbWFnZS5zcmMgPSB1cmw7CiAgfSk7Cn0KCmZ1bmN0aW9uIGdldERlZmF1bHRBcnR3b3JrSW1hZ2UoKXsKICBpZiAoIWRlZmF1bHRBcnR3b3JrUHJvbWlzZSkgZGVmYXVsdEFydHdvcmtQcm9taXNlID0gbG9hZFJlbW90ZUltYWdlKERFRkFVTFRfQVJUV09SS19VUkwpOwogIHJldHVybiBkZWZhdWx0QXJ0d29ya1Byb21pc2U7Cn0KCmZ1bmN0aW9uIGJ1aWxkQXJ0d29ya1RleHR1cmUoaWQpewogIGNvbnN0IHN0YXRlID0gZmFjZVN0YXRlW2lkXTsKICBjb25zdCBpbWFnZSA9IHN0YXRlLmltYWdlOwogIGlmICghaW1hZ2UpIHJldHVybjsKICBjb25zdCBib3VuZHMgPSBFN19HRU9NRVRSWS5wYXJ0c1tpZF0uYm91bmRzOwogIGNvbnN0IGFzcGVjdCA9IGJvdW5kcy53aWR0aC9ib3VuZHMuaGVpZ2h0OwogIGxldCB3aWR0aDsKICBsZXQgaGVpZ2h0OwogIGlmIChhc3BlY3QgPj0gMSl7d2lkdGg9MTUzNjtoZWlnaHQ9TWF0aC5tYXgoMjU2LE1hdGgucm91bmQod2lkdGgvYXNwZWN0KSk7fQogIGVsc2Uge2hlaWdodD0xNTM2O3dpZHRoPU1hdGgubWF4KDI1NixNYXRoLnJvdW5kKGhlaWdodCphc3BlY3QpKTt9CiAgY29uc3QgYXJ0d29ya0NhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwogIGFydHdvcmtDYW52YXMud2lkdGggPSB3aWR0aDsKICBhcnR3b3JrQ2FudmFzLmhlaWdodCA9IGhlaWdodDsKICBjb25zdCBjb250ZXh0ID0gYXJ0d29ya0NhbnZhcy5nZXRDb250ZXh0KCcyZCcse2FscGhhOnRydWV9KTsKICBjb250ZXh0LmltYWdlU21vb3RoaW5nRW5hYmxlZCA9IHRydWU7CiAgY29udGV4dC5pbWFnZVNtb290aGluZ1F1YWxpdHkgPSAnaGlnaCc7CiAgaWYgKHN0YXRlLm1vZGUgPT09ICdzdHJldGNoJyl7CiAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwwLDAsd2lkdGgsaGVpZ2h0KTsKICB9IGVsc2UgewogICAgY29uc3QgaW1hZ2VBc3BlY3QgPSBpbWFnZS5uYXR1cmFsV2lkdGgvaW1hZ2UubmF0dXJhbEhlaWdodDsKICAgIGxldCBzeD0wLHN5PTAsc3c9aW1hZ2UubmF0dXJhbFdpZHRoLHNoPWltYWdlLm5hdHVyYWxIZWlnaHQ7CiAgICBpZiAoaW1hZ2VBc3BlY3QgPiBhc3BlY3Qpe3N3PWltYWdlLm5hdHVyYWxIZWlnaHQqYXNwZWN0O3N4PShpbWFnZS5uYXR1cmFsV2lkdGgtc3cpLzI7fQogICAgZWxzZSB7c2g9aW1hZ2UubmF0dXJhbFdpZHRoL2FzcGVjdDtzeT0oaW1hZ2UubmF0dXJhbEhlaWdodC1zaCkvMjt9CiAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSxzeCxzeSxzdyxzaCwwLDAsd2lkdGgsaGVpZ2h0KTsKICB9CiAgc3RhdGUudGV4dHVyZT8uZGlzcG9zZSgpOwogIHN0YXRlLnRleHR1cmUgPSBuZXcgVEhSRUUuQ2FudmFzVGV4dHVyZShhcnR3b3JrQ2FudmFzKTsKICBzdGF0ZS50ZXh0dXJlLmNvbG9yU3BhY2UgPSBUSFJFRS5TUkdCQ29sb3JTcGFjZTsKICBzdGF0ZS50ZXh0dXJlLmFuaXNvdHJvcHkgPSBNYXRoLm1pbig4LHJlbmRlcmVyLmNhcGFiaWxpdGllcy5nZXRNYXhBbmlzb3Ryb3B5KCkpOwogIGNvbnN0IG1hdGVyaWFsID0gcnVudGltZS5hcnR3b3JrTWF0ZXJpYWxzW2lkXTsKICBtYXRlcmlhbC5tYXAgPSBzdGF0ZS50ZXh0dXJlOwogIG1hdGVyaWFsLm9wYWNpdHkgPSAwLjkyOwogIG1hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTsKICBjb25zdCBjdXRBcnR3b3JrTWF0ZXJpYWwgPSBydW50aW1lLmFydHdvcmtFZGdlTWF0ZXJpYWxzW2lkXTsKICBjdXRBcnR3b3JrTWF0ZXJpYWwubWFwID0gc3RhdGUudGV4dHVyZTsKICBjdXRBcnR3b3JrTWF0ZXJpYWwub3BhY2l0eSA9IDAuOTI7CiAgY3V0QXJ0d29ya01hdGVyaWFsLm5lZWRzVXBkYXRlID0gdHJ1ZTsKICBydW50aW1lLm1lc2hlc1tpZF0ubWF0ZXJpYWxbMV0gPSBjdXRBcnR3b3JrTWF0ZXJpYWw7CiAgcmVxdWVzdFJlbmRlcigpOwp9CgpmdW5jdGlvbiB1cGRhdGVVcGxvYWRVaSgpewogIGxldCBjb3VudCA9IDA7CiAgZm9yIChjb25zdCBpZCBvZiBGQUNFX0lEUyl7CiAgICBjb25zdCBzdGF0ZSA9IGZhY2VTdGF0ZVtpZF07CiAgICBjb25zdCBzdGF0dXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1mYWNlPSIke2lkfSJdIC5mYWNlLXN0YXR1c2ApOwogICAgY29uc3QgdXBsb2FkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtdXBsb2FkLWZhY2U9IiR7aWR9Il1gKTsKICAgIGNvbnN0IHJlbW92ZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLXJlbW92ZS1mYWNlPSIke2lkfSJdYCk7CiAgICBpZiAoc3RhdGUuaW1hZ2UpewogICAgICBjb3VudCArPSAxOwogICAgICBzdGF0dXMudGV4dENvbnRlbnQgPSBzdGF0ZS5maWxlTmFtZTsKICAgICAgc3RhdHVzLmNsYXNzTGlzdC5hZGQoJ3JlYWR5Jyk7CiAgICAgIHVwbG9hZC50ZXh0Q29udGVudCA9ICdSZXBsYWNlJzsKICAgICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsYFJlcGxhY2UgYXJ0d29yayBmb3IgJHtGQUNFX0xBQkVMU1tpZF19YCk7CiAgICAgIHJlbW92ZS5oaWRkZW4gPSBmYWxzZTsKICAgIH0gZWxzZSB7CiAgICAgIHN0YXR1cy50ZXh0Q29udGVudCA9ICdFbXB0eSc7CiAgICAgIHN0YXR1cy5jbGFzc0xpc3QucmVtb3ZlKCdyZWFkeScpOwogICAgICB1cGxvYWQudGV4dENvbnRlbnQgPSAnVXBsb2FkJzsKICAgICAgdXBsb2FkLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsYFVwbG9hZCBhcnR3b3JrIGZvciAke0ZBQ0VfTEFCRUxTW2lkXX1gKTsKICAgICAgcmVtb3ZlLmhpZGRlbiA9IHRydWU7CiAgICB9CiAgfQogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyN1cGxvYWQtY291bnQnKS50ZXh0Q29udGVudCA9IGAke2NvdW50fSAvIDZgOwogIGlmIChydW50aW1lLnVwbG9hZFByb21wdHMuZnJvbnQpIHJ1bnRpbWUudXBsb2FkUHJvbXB0cy5mcm9udC52aXNpYmxlID0gdHJ1ZTsKICByZXF1ZXN0UmVuZGVyKCk7Cn0KCmZ1bmN0aW9uIHJlbW92ZUFydHdvcmsoaWQse25vdGlmeT10cnVlfT17fSl7CiAgY29uc3Qgc3RhdGUgPSBmYWNlU3RhdGVbaWRdOwogIHN0YXRlLnRleHR1cmU\/LmRpc3Bvc2UoKTsKICBzdGF0ZS50ZXh0dXJlID0gbnVsbDsKICBzdGF0ZS5pbWFnZSA9IG51bGw7CiAgc3RhdGUuZmlsZU5hbWUgPSAnJzsKICBzdGF0ZS5tb2RlID0gJ2NvdmVyJzsKICBjb25zdCBtYXRlcmlhbCA9IHJ1bnRpbWUuYXJ0d29ya01hdGVyaWFsc1tpZF07CiAgbWF0ZXJpYWwubWFwID0gbnVsbDsKICBtYXRlcmlhbC5vcGFjaXR5ID0gMDsKICBtYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7CiAgY29uc3QgY3V0QXJ0d29ya01hdGVyaWFsID0gcnVudGltZS5hcnR3b3JrRWRnZU1hdGVyaWFsc1tpZF07CiAgY3V0QXJ0d29ya01hdGVyaWFsLm1hcCA9IG51bGw7CiAgY3V0QXJ0d29ya01hdGVyaWFsLm9wYWNpdHkgPSAwOwogIGN1dEFydHdvcmtNYXRlcmlhbC5uZWVkc1VwZGF0ZSA9IHRydWU7CiAgcnVudGltZS5tZXNoZXNbaWRdLm1hdGVyaWFsWzFdID0gY2xlYXJNYXRlcmlhbDsKICB1cGRhdGVVcGxvYWRVaSgpOwogIGlmIChzZWxlY3RlZEZhY2UgPT09IGlkKSBzZWxlY3RQYXJ0KGlkKTsKICByZXF1ZXN0UmVuZGVyKCk7CiAgaWYgKG5vdGlmeSkgc2hvd1RvYXN0KGAke0ZBQ0VfTEFCRUxTW2lkXX0gYXJ0d29yayByZW1vdmVkLmApOwp9Cgphc3luYyBmdW5jdGlvbiByZXN0b3JlRGVmYXVsdEFydHdvcmsoe29ubHlFbXB0eT1mYWxzZSxub3RpZnk9dHJ1ZX09e30pewogIHRyeXsKICAgIGNvbnN0IGltYWdlID0gYXdhaXQgZ2V0RGVmYXVsdEFydHdvcmtJbWFnZSgpOwogICAgZm9yIChjb25zdCBpZCBvZiBGQUNFX0lEUyl7CiAgICAgIGNvbnN0IHN0YXRlID0gZmFjZVN0YXRlW2lkXTsKICAgICAgaWYgKG9ubHlFbXB0eSAmJiBzdGF0ZS5pbWFnZSkgY29udGludWU7CiAgICAgIHN0YXRlLnRleHR1cmU\/LmRpc3Bvc2UoKTsKICAgICAgc3RhdGUudGV4dHVyZSA9IG51bGw7CiAgICAgIHN0YXRlLmltYWdlID0gaW1hZ2U7CiAgICAgIHN0YXRlLmZpbGVOYW1lID0gREVGQVVMVF9BUlRXT1JLX05BTUU7CiAgICAgIHN0YXRlLm1vZGUgPSAnY292ZXInOwogICAgICBidWlsZEFydHdvcmtUZXh0dXJlKGlkKTsKICAgIH0KICAgIHVwZGF0ZVVwbG9hZFVpKCk7CiAgICBzZWxlY3RQYXJ0KHNlbGVjdGVkRmFjZSk7CiAgICBpZiAobm90aWZ5KSBzaG93VG9hc3QoJ1NhbXBsZSBhcnR3b3JrIHJlc3RvcmVkIG9uIGFsbCBzaXggZmFjZXMuJyk7CiAgfSBjYXRjaCAoZXJyb3IpewogICAgZGVmYXVsdEFydHdvcmtQcm9taXNlID0gbnVsbDsKICAgIHNob3dUb2FzdChlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdUaGUgc2FtcGxlIGFydHdvcmsgY291bGQgbm90IGJlIGxvYWRlZC4nKTsKICB9Cn0KCmZ1bmN0aW9uIHJlc2V0QXJ0d29yaygpewogIHZvaWQgcmVzdG9yZURlZmF1bHRBcnR3b3JrKHtvbmx5RW1wdHk6ZmFsc2Usbm90aWZ5OnRydWV9KTsKfQoKYXN5bmMgZnVuY3Rpb24gaGFuZGxlVXBsb2FkKGlkLGZpbGUpewogIGlmICghZmlsZSkgcmV0dXJuOwogIGlmIChmaWxlLnNpemUgPiAxNSoxMDI0KjEwMjQpe3Nob3dUb2FzdCgnUGxlYXNlIGNob29zZSBhbiBpbWFnZSBzbWFsbGVyIHRoYW4gMTUgTUIuJyk7cmV0dXJuO30KICB0cnl7CiAgICBjb25zdCBpbWFnZSA9IGF3YWl0IGxvYWRJbWFnZShmaWxlKTsKICAgIGZhY2VTdGF0ZVtpZF0uaW1hZ2UgPSBpbWFnZTsKICAgIGZhY2VTdGF0ZVtpZF0uZmlsZU5hbWUgPSBmaWxlLm5hbWU7CiAgICBidWlsZEFydHdvcmtUZXh0dXJlKGlkKTsKICAgIHVwZGF0ZVVwbG9hZFVpKCk7CiAgICBzZWxlY3RQYXJ0KGlkKTsKICAgIHNob3dUb2FzdChgJHtGQUNFX0xBQkVMU1tpZF19IGFydHdvcmsgYWRkZWQuYCk7CiAgfSBjYXRjaCAoZXJyb3IpewogICAgc2hvd1RvYXN0KGVycm9yLm1lc3NhZ2UpOwogIH0KfQoKYXNzZW1ibHlCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpID0+IHNldEV4cGxvZGVkKCFleHBsb2RlZCkpOwpsaWRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpID0+IHNldExpZE9wZW4oIWxpZE9wZW4pKTsKZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3Jlc2V0LXZpZXcnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycscmVzZXRWaWV3KTsKYWNyeWxpY0NvbG9ySW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLGV2ZW50ID0+IHVwZGF0ZUFjcnlsaWNDb2xvcihldmVudC50YXJnZXQudmFsdWUpKTsKY2xlYXJBY3J5bGljQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywoKSA9PiB1cGRhdGVBY3J5bGljQ29sb3IoJyNmZmZmZmYnKSk7CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzYXZlLXByZXZpZXcnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCkgPT4gewogIHJlbmRlcmVyLnJlbmRlcihzY2VuZSxjYW1lcmEpOwogIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgbGluay5kb3dubG9hZCA9ICdhcnRldHJpYmUtYWNyeWxpYy1ib3gtcHJldmlldy5wbmcnOwogIGxpbmsuaHJlZiA9IHJlbmRlcmVyLmRvbUVsZW1lbnQudG9EYXRhVVJMKCdpbWFnZS9wbmcnKTsKICBsaW5rLmNsaWNrKCk7CiAgc2hvd1RvYXN0KCdQcmV2aWV3IGltYWdlIHNhdmVkLicpOwp9KTsKZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtc2VsZWN0LWZhY2VdJykuZm9yRWFjaChidXR0b24gPT4gYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywoKSA9PiBzZWxlY3RQYXJ0KGJ1dHRvbi5kYXRhc2V0LnNlbGVjdEZhY2UpKSk7CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXVwbG9hZC1mYWNlXScpLmZvckVhY2goYnV0dG9uID0+IGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCkgPT4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgW2RhdGEtZmlsZS1mYWNlPSIke2J1dHRvbi5kYXRhc2V0LnVwbG9hZEZhY2V9Il1gKS5jbGljaygpKSk7CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXJlbW92ZS1mYWNlXScpLmZvckVhY2goYnV0dG9uID0+IGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsKCkgPT4gcmVtb3ZlQXJ0d29yayhidXR0b24uZGF0YXNldC5yZW1vdmVGYWNlKSkpOwpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcmVzZXQtYXJ0d29yaycpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJyxyZXNldEFydHdvcmspOwpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1maWxlLWZhY2VdJykuZm9yRWFjaChpbnB1dCA9PiBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLGV2ZW50ID0+IHsKICBoYW5kbGVVcGxvYWQoaW5wdXQuZGF0YXNldC5maWxlRmFjZSxldmVudC50YXJnZXQuZmlsZXM\/LlswXSk7CiAgZXZlbnQudGFyZ2V0LnZhbHVlPScnOwp9KSk7CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWZpbGwtbW9kZV0nKS5mb3JFYWNoKGJ1dHRvbiA9PiBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCgpID0+IHsKICBmYWNlU3RhdGVbc2VsZWN0ZWRGYWNlXS5tb2RlID0gYnV0dG9uLmRhdGFzZXQuZmlsbE1vZGU7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtZmlsbC1tb2RlXScpLmZvckVhY2gob3B0aW9uID0+IHsKICAgIGNvbnN0IGFjdGl2ZSA9IG9wdGlvbiA9PT0gYnV0dG9uOwogICAgb3B0aW9uLmNsYXNzTGlzdC50b2dnbGUoJ3NlbGVjdGVkJyxhY3RpdmUpOwogICAgb3B0aW9uLnNldEF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJyxTdHJpbmcoYWN0aXZlKSk7CiAgfSk7CiAgaWYgKGZhY2VTdGF0ZVtzZWxlY3RlZEZhY2VdLmltYWdlKSBidWlsZEFydHdvcmtUZXh0dXJlKHNlbGVjdGVkRmFjZSk7CiAgc2hvd1RvYXN0KGAke0ZBQ0VfTEFCRUxTW3NlbGVjdGVkRmFjZV19IHVzZXMgJHtidXR0b24uZGF0YXNldC5maWxsTW9kZT09PSdjb3Zlcic\/J2Nyb3AgdG8gZmlsbCc6J3N0cmV0Y2ggdG8gZmlsbCd9LmApOwp9KSk7CgpjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsZXZlbnQgPT4gewogIGNvbnN0IG9mZnNldCA9IGNhbWVyYS5wb3NpdGlvbi5jbG9uZSgpLnN1Yihjb250cm9scy50YXJnZXQpOwogIGNvbnN0IGFuZ2xlID0gVEhSRUUuTWF0aFV0aWxzLmRlZ1RvUmFkKDgpOwogIGxldCBoYW5kbGVkID0gdHJ1ZTsKICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0Jykgb2Zmc2V0LmFwcGx5QXhpc0FuZ2xlKGNhbWVyYS51cCxhbmdsZSk7CiAgZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcpIG9mZnNldC5hcHBseUF4aXNBbmdsZShjYW1lcmEudXAsLWFuZ2xlKTsKICBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykgb2Zmc2V0LmFwcGx5QXhpc0FuZ2xlKG5ldyBUSFJFRS5WZWN0b3IzKDEsMCwwKS5hcHBseVF1YXRlcm5pb24oY2FtZXJhLnF1YXRlcm5pb24pLm5vcm1hbGl6ZSgpLC1hbmdsZSk7CiAgZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykgb2Zmc2V0LmFwcGx5QXhpc0FuZ2xlKG5ldyBUSFJFRS5WZWN0b3IzKDEsMCwwKS5hcHBseVF1YXRlcm5pb24oY2FtZXJhLnF1YXRlcm5pb24pLm5vcm1hbGl6ZSgpLGFuZ2xlKTsKICBlbHNlIGlmIChldmVudC5rZXkgPT09ICcrJyB8fCBldmVudC5rZXkgPT09ICc9Jykgb2Zmc2V0LnNldExlbmd0aChNYXRoLm1heChjb250cm9scy5taW5EaXN0YW5jZSxvZmZzZXQubGVuZ3RoKCkqMC45KSk7CiAgZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnLScgfHwgZXZlbnQua2V5ID09PSAnXycpIG9mZnNldC5zZXRMZW5ndGgoTWF0aC5taW4oY29udHJvbHMubWF4RGlzdGFuY2Usb2Zmc2V0Lmxlbmd0aCgpKjEuMSkpOwogIGVsc2UgaGFuZGxlZCA9IGZhbHNlOwogIGlmICghaGFuZGxlZCkgcmV0dXJuOwogIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgY2FtZXJhLnBvc2l0aW9uLmNvcHkoY29udHJvbHMudGFyZ2V0KS5hZGQob2Zmc2V0KTsKICBjYW1lcmEubG9va0F0KGNvbnRyb2xzLnRhcmdldCk7CiAgY29udHJvbHMudXBkYXRlKCk7CiAgcmVxdWVzdFJlbmRlcigpOwp9KTsKCnJlc2l6ZVJlbmRlcmVyKCk7CnNlbGVjdFBhcnQoJ2JvdHRvbScpOwpsb2FkaW5nU3RhdGUuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CnJlcXVlc3RSZW5kZXIoKTsKdm9pZCByZXN0b3JlRGVmYXVsdEFydHdvcmsoe29ubHlFbXB0eTp0cnVlLG5vdGlmeTpmYWxzZX0pOwoKd2luZG93Ll9fQVJURVRSSUJFX0FDUllMSUNfQk9YX1BSRVZJRVdfXyA9IHsKICB2ZXJzaW9uOidzaG9waWZ5LXYxJywKICBnZW9tZXRyeTpFN19HRU9NRVRSWSwKICBydW50aW1lLAogIGZhY2VTdGF0ZSwKICBzZXRFeHBsb2RlZCwKICBzZXRMaWRPcGVuLAogIHNlbGVjdFBhcnQsCiAgdXBkYXRlQWNyeWxpY0NvbG9yLAogIHJlc3RvcmVEZWZhdWx0QXJ0d29yawp9OwoKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=\u003c\/script\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003csection class=\"artetribe-acrylic-box-preview-embed__story\" aria-labelledby=\"artetribe-acrylic-box-story-title\"\u003e\n    \u003cdiv class=\"artetribe-acrylic-box-preview-embed__story-visual\" aria-label=\"Sample artwork shown across three acrylic box faces\"\u003e\n      \u003cfigure class=\"artetribe-acrylic-box-preview-embed__story-main\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0572\/0627\/6196\/files\/S-21.jpg?v=1787638355\" width=\"3600\" height=\"3600\" alt=\"Pink leopard sample artwork for the front acrylic box panel\" loading=\"lazy\" decoding=\"async\"\u003e\n        \u003cfigcaption\u003eFront artwork\u003c\/figcaption\u003e\n      \u003c\/figure\u003e\n      \u003cfigure\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0572\/0627\/6196\/files\/S-21.jpg?v=1787638355\" width=\"3600\" height=\"3600\" alt=\"Pink leopard sample artwork for the acrylic box lid\" loading=\"lazy\" decoding=\"async\"\u003e\n        \u003cfigcaption\u003eLid artwork\u003c\/figcaption\u003e\n      \u003c\/figure\u003e\n      \u003cfigure\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0572\/0627\/6196\/files\/S-21.jpg?v=1787638355\" width=\"3600\" height=\"3600\" alt=\"Pink leopard sample artwork for an acrylic box side panel\" loading=\"lazy\" decoding=\"async\"\u003e\n        \u003cfigcaption\u003eSide artwork\u003c\/figcaption\u003e\n      \u003c\/figure\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"artetribe-acrylic-box-preview-embed__story-copy\"\u003e\n      \u003ch2 id=\"artetribe-acrylic-box-story-title\"\u003ePreview your box before ordering\u003c\/h2\u003e\n      \u003cp\u003eBuild a complete six-panel concept, check how the artwork meets at each edge, and inspect the lid before choosing your final design.\u003c\/p\u003e\n      \u003col class=\"artetribe-acrylic-box-preview-embed__steps\"\u003e\n        \u003cli\u003e\n          \u003cstrong\u003eCustomize each panel\u003c\/strong\u003e\n          \u003cp\u003eReplace the bottom, front, back, left, right and lid artwork independently.\u003c\/p\u003e\n        \u003c\/li\u003e\n        \u003cli\u003e\n          \u003cstrong\u003eChoose the presentation\u003c\/strong\u003e\n          \u003cp\u003eUse Crop to fill or Stretch to fill, then keep the acrylic clear or add a transparent tint.\u003c\/p\u003e\n        \u003c\/li\u003e\n        \u003cli\u003e\n          \u003cstrong\u003eInspect the assembly\u003c\/strong\u003e\n          \u003cp\u003eOpen the lid, orbit the box and explode the six exact E7 panels to check the full composition.\u003c\/p\u003e\n        \u003c\/li\u003e\n      \u003c\/ol\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n  #artetribe-acrylic-box-preview-embed{--at-ink:#18212b;--at-muted:#64717d;--at-line:rgba(20,45,66,.12);--at-blue:#087ab5;--at-pale:#eaf6fb;width:min(1320px,calc(100% - 32px));margin:32px auto 48px;color:var(--at-ink);font-family:inherit}\n  #artetribe-acrylic-box-preview-embed *{box-sizing:border-box}\n  #artetribe-acrylic-box-preview-embed h2,#artetribe-acrylic-box-preview-embed h3,#artetribe-acrylic-box-preview-embed p{margin-top:0}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;margin-bottom:44px;padding:30px 48px;border-block:1px solid var(--at-line)}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__benefits article{display:grid;grid-template-rows:80px auto auto;justify-items:center;text-align:center}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__icon{display:block;width:80px;height:80px;margin-bottom:14px}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__icon svg{display:block;width:100%;height:100%;fill:none;stroke:#98a8b0;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__icon .accent{stroke:#ff9151}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__benefits h3{margin-bottom:9px;font:inherit;font-size:20px;font-weight:800;line-height:1.2}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__benefits p{max-width:350px;margin-bottom:0;color:var(--at-muted);font-size:14px;line-height:1.55}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__heading{max-width:840px;margin-bottom:18px}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__heading h2{margin-bottom:8px;font:inherit;font-size:clamp(30px,4vw,44px);font-weight:900;line-height:1.04;letter-spacing:-.035em;text-transform:uppercase}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__heading p{margin-bottom:0;color:var(--at-muted);font-size:15px;line-height:1.55}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__tool{margin-bottom:68px}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__frame{position:relative;min-height:900px;overflow:hidden;border:1px solid var(--at-line);border-radius:16px;background:var(--at-pale);box-shadow:0 22px 54px rgba(58,91,123,.12)}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__iframe{display:block;width:100%;height:900px;overflow:hidden;border:0;opacity:0;background:var(--at-pale);transition:opacity .18s ease}\n  #artetribe-acrylic-box-preview-embed.is-loaded .artetribe-acrylic-box-preview-embed__iframe{opacity:1}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__loading{position:absolute;inset:0;display:grid;place-items:center;padding:24px;color:var(--at-muted);font-size:14px;text-align:center}\n  #artetribe-acrylic-box-preview-embed.is-loaded .artetribe-acrylic-box-preview-embed__loading{display:none}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(360px,.9fr);gap:48px;align-items:center;padding:4px 0 18px}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story-visual{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:12px;min-height:0;aspect-ratio:5\/3}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story-visual figure{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;margin:0;overflow:hidden;border-radius:12px;background:var(--at-pale)}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story-main{grid-row:1\/3}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story-visual img{display:block;width:100%;height:100%;min-height:0;object-fit:cover}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story-visual figure:nth-child(2) img{object-position:26% 42%}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story-visual figure:nth-child(3) img{object-position:74% 58%}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story-visual figcaption{padding:9px 11px;color:var(--at-muted);font-size:12px;font-weight:700;line-height:1.2;background:#fff}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story-copy h2{max-width:13ch;margin-bottom:12px;font:inherit;font-size:clamp(30px,3.5vw,42px);font-weight:900;line-height:1.02;letter-spacing:-.035em;text-transform:uppercase}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story-copy\u003ep{max-width:62ch;margin-bottom:24px;color:var(--at-muted);font-size:15px;line-height:1.58}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__steps{margin:0;padding:0;border-top:1px solid var(--at-line);list-style:none}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__steps li{display:grid;grid-template-columns:minmax(128px,.48fr) minmax(0,1fr);gap:22px;padding:17px 0;border-bottom:1px solid var(--at-line)}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__steps strong{color:var(--at-blue);font-size:13px;line-height:1.35}\n  #artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__steps p{margin:0;color:var(--at-muted);font-size:13px;line-height:1.5}\n  #artetribe-acrylic-box-preview-embed.is-viewport-breakout{width:100vw;max-width:none;margin-left:calc(50% - 50vw);padding-inline:14px}\n  @media(max-width:1000px){#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story{grid-template-columns:minmax(0,.95fr) minmax(340px,1.05fr);gap:32px}}\n  @media(max-width:900px){#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__benefits{gap:24px;padding-inline:22px}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__benefits h3{font-size:18px}}\n  @media(max-width:800px){#artetribe-acrylic-box-preview-embed{width:100%;margin:26px auto 42px}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__benefits{grid-template-columns:1fr;gap:30px;margin-inline:14px;margin-bottom:34px;padding:26px 8px}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__heading{padding-inline:14px}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__frame{min-height:1320px;border-radius:0;border-inline:0;box-shadow:none}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__iframe{height:1320px}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__tool{margin-bottom:48px}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story{grid-template-columns:1fr;gap:28px;padding-inline:14px}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story-visual{aspect-ratio:6\/5}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__story-copy h2{max-width:15ch}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__steps li{grid-template-columns:1fr;gap:5px}}\n  @media(max-width:430px){#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__heading h2{font-size:30px}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__frame{min-height:1360px}#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__iframe{height:1360px}}\n  @media(prefers-reduced-motion:reduce){#artetribe-acrylic-box-preview-embed .artetribe-acrylic-box-preview-embed__iframe{transition:none}}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(()=\u003e{\n  const root=document.getElementById('artetribe-acrylic-box-preview-embed');\n  if(!root||root.dataset.previewReady==='true')return;\n  root.dataset.previewReady='true';\n  const owningSection=root.closest('.shopify-section,[id^=\"shopify-section-\"]');\n  const productInfo=root.closest('product-info,.product__info,.product__info-container,.product__info-wrapper,.product-info,.product-info__wrapper,[data-product-info],[id*=\"ProductInfo\"]');\n  if((productInfo||root.getBoundingClientRect().width\u003c760)\u0026\u0026owningSection\u0026\u0026owningSection.parentElement)owningSection.insertAdjacentElement('afterend',root);\n  if(root.getBoundingClientRect().width\u003cMath.min(760,innerWidth*.72))root.classList.add('is-viewport-breakout');\n  const frame=root.querySelector('[data-preview-frame]');\n  const shell=root.querySelector('[data-preview-shell]');\n  const source=root.querySelector('[data-preview-source]');\n  const loading=root.querySelector('[data-preview-loading]');\n  let frameSizer=null;\n  const syncFrameHeight=()=\u003e{\n    try{\n      const doc=frame.contentDocument;\n      if(!doc)return;\n      const height=Math.ceil(Math.max(doc.documentElement.scrollHeight,doc.body?.scrollHeight||0));\n      if(height\u003c1)return;\n      frame.style.height=`${height}px`;\n      shell.style.minHeight=`${height}px`;\n    }catch{}\n  };\n  try{\n    const encoded=source.textContent.replace(\/\\s+\/g,'');\n    if(!encoded)throw new Error('Embedded preview source is empty.');\n    const bytes=Uint8Array.from(atob(encoded),character=\u003echaracter.charCodeAt(0));\n    const doc=new TextDecoder().decode(bytes);\n    frame.addEventListener('load',()=\u003e{\n      root.classList.add('is-loaded');\n      syncFrameHeight();\n      const observed=frame.contentDocument?.body;\n      if(observed\u0026\u0026'ResizeObserver'in window){frameSizer=new ResizeObserver(syncFrameHeight);frameSizer.observe(observed)}\n      requestAnimationFrame(syncFrameHeight);\n      setTimeout(syncFrameHeight,500);\n    },{once:true});\n    frame.srcdoc=doc;\n    source.remove();\n  }catch(error){\n    if(loading)loading.textContent='The 3D preview could not be opened. Refresh the page and try again.';\n    console.error('ArteTribe acrylic box preview failed to initialize.',error);\n  }\n})();\n\u003c\/script\u003e\n","brand":"ArteTribe","offers":[{"title":"1","offer_id":49063291584612,"sku":null,"price":10.0,"currency_code":"USD","in_stock":true},{"title":"5","offer_id":49063291617380,"sku":null,"price":45.0,"currency_code":"USD","in_stock":true},{"title":"10","offer_id":49063291650148,"sku":null,"price":80.0,"currency_code":"USD","in_stock":true}],"url":"https:\/\/artetribe.co\/fr\/products\/custom-acrylic-boxes","provider":"ArteTribe","version":"1.0","type":"link"}