> ## Documentation Index
> Fetch the complete documentation index at: https://docs.classiq.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Fault-Tolerance Engine

The Fault-Tolerance (FT) Engine lowers a logical quantum circuit onto a 3-D surface-code
lattice and estimates the logical error rate you would observe when running it on
error-corrected hardware. You use it to explore how a circuit behaves under a physical
noise model and how much its logical error improves as you increase the code distance.

Here's a routed program rendered by the engine — drag to orbit, scroll to zoom, and toggle between the surface-code and logical views:

<Tip>
  **This viewer is fully interactive — go ahead and play with it!** Drag to orbit, scroll to zoom, right-drag to pan, and switch between the surface-code and logical views.
</Tip>

<iframe src="data:text/html;base64,PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KPHRpdGxlPkNsYXNzaXEgVG9wb2xvZ2ljYWwgUHJvZ3JhbSBWaWV3ZXI8L3RpdGxlPgo8bGluayByZWw9Imljb24iIHR5cGU9ImltYWdlL3N2Zyt4bWwiIGhyZWY9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QjRiV3h1Y3owaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1qQXdNQzl6ZG1jaUlIZHBaSFJvUFNJek1pSWdhR1ZwWjJoMFBTSXpNaUlnZG1sbGQwSnZlRDBpTUNBd0lETXlJRE15SWo0OFkybHlZMnhsSUdONFBTSXhOaUlnWTNrOUlqRTJJaUJ5UFNJeE5pSWdabWxzYkQwaUl6RTVNVGt4T1NJdlBqeG5JSFJ5WVc1elptOXliVDBpZEhKaGJuTnNZWFJsS0RRZ055NDFLU0lnWm1sc2JEMGlJMFEzUmpjMVFpSStQSEJoZEdnZ1pEMGlUVEUxTGpNeU16Y2dNVGN1TURBd01rTXhOUzQzTlRreElERTJMams0TkRjZ01UWXVNVGczTXlBeE5pNDRPRE0ySURFMkxqVTRNellnTVRZdU56QXlOa014Tmk0NU56azVJREUyTGpVeU1UWWdNVGN1TXpNMk55QXhOaTR5TmpReUlERTNMall6TXpVZ01UVXVPVFExTWtNeE55NDVNekF5SURFMUxqWXlOakVnTVRndU1UWXhNaUF4TlM0eU5URTNJREU0TGpNeE16SWdNVFF1T0RRek5FTXhPQzQwTmpVeUlERTBMalF6TlNBeE9DNDFNelV4SURFMExqQXdNRGNnTVRndU5URTVNU0F4TXk0MU5qVXpRekU0TGpVME1UVWdNVEl1TmpreU1pQXhPQzR5TVRnMUlERXhMamcwTlRVZ01UY3VOakl3TVNBeE1TNHlNRGt5UXpFM0xqQXlNVGdnTVRBdU5UY3lPU0F4Tmk0eE9UWTFJREV3TGpFNU9EVWdNVFV1TXpJek55QXhNQzR4TmpjeVF6RTBMamc0T0RJZ01UQXVNVGd5TnlBeE5DNDBOakF4SURFd0xqSTRNemdnTVRRdU1EWXpPQ0F4TUM0ME5qUTRRekV6TGpZMk56UWdNVEF1TmpRMU9TQXhNeTR6TVRBM0lERXdMamt3TXpNZ01UTXVNREV6T1NBeE1TNHlNakl6UXpFeUxqY3hOekVnTVRFdU5UUXhNeUF4TWk0ME9EWXhJREV4TGpreE5UY2dNVEl1TXpNME1pQXhNaTR6TWpSRE1USXVNVGd5TWlBeE1pNDNNekkwSURFeUxqRXhNaklnTVRNdU1UWTJOeUF4TWk0eE1qZ3lJREV6TGpZd01qRkRNVEl1TVRBMU9DQXhOQzQwTnpVeklERXlMalF5T0RrZ01UVXVNekl4T1NBeE15NHdNamN5SURFMUxqazFPREpETVRNdU5qSTFOaUF4Tmk0MU9UUTFJREUwTGpRMU1EZ2dNVFl1T1RZNE9TQXhOUzR6TWpNM0lERTNMakF3TURKYUlpOCtQSEJoZEdnZ1pEMGlUVEl4TGpZMUlESXVORGMzTnpkRE1qRXVNVEk1TVNBeUxqUTVNak15SURJd0xqWXlOamtnTWk0Mk56VXhNU0F5TUM0eU1UZzJJREl1T1RrNE9FTXhPUzQ0TVRBeUlETXVNekl5TkRrZ01Ua3VOVEUzTmlBekxqYzJPVFk1SURFNUxqTTRORFlnTkM0eU56TTFTRGt1TVRNMU1UWldNQzR5TVRJME1ESklNRlk1TGpneE56SXhTRGt1TVRNMU1UWldOUzQzTlRZeE1rZ3hPUzR6TXpnMVF6RTVMalEyTXprZ05pNHlOekUwTXlBeE9TNDNOVFUxSURZdU56TXhNU0F5TUM0eE5qZ3pJRGN1TURZME1ESkRNakF1TlRneE1TQTNMak01TmprMElESXhMakE1TWpJZ055NDFPRFExTnlBeU1TNDJNakl6SURjdU5UazNPRGhETWpJdU1qYzROeUEzTGpVMk9URTJJREl5TGpnNU5qa2dOeTR5T0RFNE5TQXlNeTR6TkRJeElEWXVOems0TnpGRE1qTXVOemczTXlBMkxqTXhOVFU0SURJMExqQXlNeklnTlM0Mk56VTVJREl6TGprNU9ESWdOUzR3TVRrME1VTXlOQzR3TVRNMUlEUXVNemN6TnpRZ01qTXVOemMzSURNdU56UTNORFFnTWpNdU16TTRPQ0F6TGpJM016QTNRekl5TGprd01EVWdNaTQzT1RnMk9TQXlNaTR5T1RRNElESXVOVEV6TkRjZ01qRXVOalVnTWk0ME56YzNOMW9pTHo0OEwyYytQQzl6ZG1jKyI+CjxzdHlsZT4KICAqIHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9CiAgYm9keSB7IGJhY2tncm91bmQ6ICMxOTE5MTk7IGNvbG9yOiAjY2NjOyBmb250LWZhbWlseTogJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOyBvdmVyZmxvdzogaGlkZGVuOyB9CiAgY2FudmFzIHsgZGlzcGxheTogYmxvY2s7IH0KCiAgLmh1ZCB7CiAgICBwb3NpdGlvbjogZml4ZWQ7IHotaW5kZXg6IDEwOwogICAgYmFja2dyb3VuZDogcmdiYSgyNSwyNSwyNSwwLjg4KTsKICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOyAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzJhMmEyYTsgYm9yZGVyLXJhZGl1czogOHB4OwogICAgcGFkZGluZzogMTBweCAxNHB4OyBmb250LXNpemU6IDEycHg7CiAgfQogICNpbmZvIHsgdG9wOiA0OHB4OyBsZWZ0OiAxNHB4OyBtYXgtd2lkdGg6IDMyMHB4OyB9CiAgI2JyYW5kIHsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDE2cHg7IGxlZnQ6IDE2cHg7IHotaW5kZXg6IDEwOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfQogICNicmFuZCAuYnJhbmQtbG9nbyB7IGhlaWdodDogMjBweDsgd2lkdGg6IGF1dG87IGRpc3BsYXk6IGJsb2NrOyB9CiAgI2luZm8gLnRpdGxlIHsgY29sb3I6ICMxMTlEQTQ7IGZvbnQtc2l6ZTogMTFweDsgbWFyZ2luLWJvdHRvbTogOHB4OyBsZXR0ZXItc3BhY2luZzogMC4wOGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9CiAgI2luZm8gLnJvdyB7IGNvbG9yOiAjOTk5OyBtYXJnaW46IDNweCAwOyB9CiAgI2luZm8gLnJvdyBzcGFuIHsgY29sb3I6ICNjY2M7IH0KCiAgI2xlZ2VuZCB7IGJvdHRvbTogMTRweDsgbGVmdDogMTRweDsgbWluLXdpZHRoOiAxOTBweDsgfQogICNsZWdlbmQtbG9naWNhbCB7IGJvdHRvbTogMTRweDsgbGVmdDogMTRweDsgbWluLXdpZHRoOiAxOTBweDsgbWF4LWhlaWdodDogNDZ2aDsgb3ZlcmZsb3cteTogYXV0bzsgfQogICNsZWdlbmQgLnRpdGxlLCAjbGVnZW5kLWxvZ2ljYWwgLnRpdGxlIHsgY29sb3I6ICMxMTlEQTQ7IGZvbnQtc2l6ZTogMTFweDsgbWFyZ2luLWJvdHRvbTogOHB4OyBsZXR0ZXItc3BhY2luZzogMC4wOGVtOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9CiAgLmxlZyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMTBweDsgbWFyZ2luOiA1cHggMDsgfQogIC5sZWctc3cgeyB3aWR0aDogMTRweDsgaGVpZ2h0OiAxNHB4OyBib3JkZXItcmFkaXVzOiAzcHg7IGZsZXgtc2hyaW5rOiAwOyBib3JkZXI6IDFweCBzb2xpZCAjMzMzOyB9CiAgLmxlZy1sYmwgeyBjb2xvcjogI2FhYTsgZm9udC1zaXplOiAxMnB4OyB9CgogICNoaW50IHsgYm90dG9tOiAxNHB4OyByaWdodDogMTRweDsgY29sb3I6ICM2NjY7IGxpbmUtaGVpZ2h0OiAxLjk7IGZvbnQtc2l6ZTogMTFweDsgdGV4dC1hbGlnbjogcmlnaHQ7IH0KCiAgI3ZpZXd0b2dnbGUgeyB0b3A6IDE0cHg7IHJpZ2h0OiAxNHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgcGFkZGluZzogNnB4OyB9CiAgI2NhbWN0cmwgeyB0b3A6IDYycHg7IHJpZ2h0OiAxNHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgcGFkZGluZzogNnB4OyB9CiAgLnZidG4gewogICAgYmFja2dyb3VuZDogIzIyMjsgY29sb3I6ICNhYWE7IGJvcmRlcjogMXB4IHNvbGlkICMzMzM7IGJvcmRlci1yYWRpdXM6IDZweDsKICAgIHBhZGRpbmc6IDZweCAxMHB4OyBmb250LWZhbWlseTogaW5oZXJpdDsgZm9udC1zaXplOiAxMXB4OyBjdXJzb3I6IHBvaW50ZXI7CiAgfQogIC52YnRuOmhvdmVyIHsgY29sb3I6ICNjY2M7IGJvcmRlci1jb2xvcjogIzQ0NDsgfQogIC52YnRuLmFjdGl2ZSB7IGJhY2tncm91bmQ6ICMxMTlEQTQ7IGNvbG9yOiAjZmZmOyBib3JkZXItY29sb3I6ICMxMTlEQTQ7IH0KCiAgI3Rvb2x0aXAgewogICAgcG9zaXRpb246IGZpeGVkOyB6LWluZGV4OiAyMDsgZGlzcGxheTogbm9uZTsgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1LDI1LDI1LDAuOTIpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzJhMmEyYTsgYm9yZGVyLXJhZGl1czogNnB4OwogICAgcGFkZGluZzogNnB4IDEwcHg7IGZvbnQtc2l6ZTogMTJweDsgY29sb3I6ICNjY2M7IHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBpZD0iYnJhbmQiPjxzdmcgY2xhc3M9ImJyYW5kLWxvZ28iIHZpZXdCb3g9IjAgMCAxNzEgMjEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgcm9sZT0iaW1nIiBhcmlhLWxhYmVsPSJDbGFzc2lxIj48cGF0aCBkPSJNNDAuMDYzNSAwLjAwNDc2MDc0QzQzLjA1MjIgMC4wMDQ3NjA3NCA0NS42MzY5IDEuMzYxOTMgNDcuNDk0OCAzLjU2NzMyTDQ0Ljc0ODQgNi4wMjcxOUM0My42MTc2IDQuNjcwMDIgNDEuOTIxMyAzLjgyMTc5IDQwLjA2MzUgMy44MjE3OUMzNi44MzI1IDMuODIxNzkgMzQuMjQ3NyA2LjQ1MTMgMzQuMjQ3NyA5LjkyOTA1QzM0LjI0NzcgMTMuNDA2OCAzNi44MzI1IDE1Ljk1MTUgNDAuMDYzNSAxNS45NTE1QzQxLjkyMTMgMTUuOTUxNSA0My42MTc2IDE1LjEwMzIgNDQuNzQ4NCAxMy43NDYxTDQ3LjQ5NDggMTYuMjA1OUM0NS43MTc3IDE4LjQxMTMgNDMuMDUyMiAxOS44NTMzIDQwLjA2MzUgMTkuODUzM0MzNC42NTE2IDE5Ljg1MzMgMzAuMjA5IDE1LjY5NyAzMC4yMDkgOS45MjkwNUMzMC4yMDkgNC4xNjEwOCAzNC41NzA4IDAuMDA0NzYwNzQgNDAuMDYzNSAwLjAwNDc2MDc0WiIgZmlsbD0iI0Q3Rjc1QiIvPjxwYXRoIGQ9Ik01NS4wODc5IDAuMzQ0Nzg4SDU5LjEyNjZWMTUuNjk3N0g2Ni4yMzQ4VjE5LjU5OTZINTUuMDg3OVYwLjM0NDc4OFoiIGZpbGw9IiNEN0Y3NUIiLz48cGF0aCBkPSJNODAuMDQ2OSAwLjM0NDc4OEg4My42ODE4TDkxLjI3NDYgMTkuNTk5Nkg4Ni45OTM1TDg1Ljc4MTkgMTYuMzc2M0g3OC4xMDgzTDc2LjczNTIgMTkuNTk5Nkg3Mi40NTQxTDgwLjA0NjkgMC4zNDQ3ODhaTTg0LjQ4OTUgMTIuODk4Nkw4MS44MjQgNS45NDMxTDc5LjE1ODQgMTIuODk4Nkg4NC40ODk1WiIgZmlsbD0iI0Q3Rjc1QiIvPjxwYXRoIGQ9Ik05OS41MTQzIDEzLjQ5MzFDMTAwLjQwMyAxNS4wMTk5IDEwMi4wMTggMTYuMDM3OCAxMDQuMTE4IDE2LjAzNzhDMTA2LjEzOCAxNi4wMzc4IDEwNi44NjUgMTUuMDE5OSAxMDYuODY1IDE0LjE3MTdDMTA2Ljg2NSAxMi40NzUyIDEwNC44NDUgMTIuMDUxMSAxMDIuMjYxIDExLjExOEM5OS41OTUxIDEwLjEwMDIgOTcuODE4MSA4LjY1ODE4IDk3LjgxODEgNS41MTk3M0M5Ny44MTgxIDIuMDQxOTkgMTAwLjcyNiAwLjA5MTA2NDUgMTA0LjExOCAwLjA5MTA2NDVDMTA3LjE4OCAwLjA5MTA2NDUgMTA5LjEyNyAxLjYxNzg4IDExMC4yNTcgMy4zMTQzNEwxMDcuNTExIDUuNjA0NTZDMTA2Ljg2NSA0LjY3MTUgMTA1LjczNCAzLjkwODEgMTA0LjE5OSAzLjkwODFDMTAyLjY2NSAzLjkwODEgMTAxLjc3NiA0LjU4NjY4IDEwMS43NzYgNS41MTk3M0MxMDEuNzc2IDcuMTMxMzcgMTAzLjIzIDcuMjE2MTkgMTA2LjIxOSA4LjQwMzcxQzEwOS41MyA5Ljc2MDg4IDExMC45MDQgMTEuMzcyNSAxMTAuOTA0IDE0LjA4NjlDMTEwLjkwNCAxNy40Nzk4IDEwOC43MjMgMTkuOTM5NiAxMDQuMTE4IDE5LjkzOTZDMTAwLjE2MSAxOS45Mzk2IDk3LjczNzMgMTcuOTg4NyA5Ni42MDY0IDE1LjY5ODVMOTkuNTE0MyAxMy40OTMxWiIgZmlsbD0iI0Q3Rjc1QiIvPjxwYXRoIGQ9Ik0xMjAuMDMxIDEzLjQ5MzFDMTIwLjkxOSAxNS4wMTk5IDEyMi41MzUgMTYuMDM3OCAxMjQuNjM1IDE2LjAzNzhDMTI2LjY1NCAxNi4wMzc4IDEyNy4zODEgMTUuMDE5OSAxMjcuMzgxIDE0LjE3MTdDMTI3LjM4MSAxMi40NzUyIDEyNS4zNjIgMTIuMDUxMSAxMjIuNzc3IDExLjExOEMxMjAuMTEyIDEwLjEwMDIgMTE4LjMzNSA4LjY1ODE4IDExOC4zMzUgNS41MTk3M0MxMTguMzM1IDIuMDQxOTkgMTIxLjI0MyAwLjA5MTA2NDUgMTI0LjYzNSAwLjA5MTA2NDVDMTI3LjcwNSAwLjA5MTA2NDUgMTI5LjY0MyAxLjYxNzg4IDEzMC43NzQgMy4zMTQzNEwxMjguMDI4IDUuNjA0NTZDMTI3LjM4MSA0LjY3MTUgMTI2LjI1MSAzLjkwODEgMTI0LjcxNiAzLjkwODFDMTIzLjE4MSAzLjkwODEgMTIyLjI5MyA0LjU4NjY4IDEyMi4yOTMgNS41MTk3M0MxMjIuMjkzIDcuMTMxMzcgMTIzLjc0NyA3LjIxNjE5IDEyNi43MzUgOC40MDM3MUMxMzAuMDQ3IDkuNzYwODggMTMxLjQyIDExLjM3MjUgMTMxLjQyIDE0LjA4NjlDMTMxLjQyIDE3LjQ3OTggMTI5LjIzOSAxOS45Mzk2IDEyNC42MzUgMTkuOTM5NkMxMjAuNjc3IDE5LjkzOTYgMTE4LjI1NCAxNy45ODg3IDExNy4xMjMgMTUuNjk4NUwxMjAuMDMxIDEzLjQ5MzFaIiBmaWxsPSIjRDdGNzVCIi8+PHBhdGggZD0iTTEzOS4yNTUgMC4zNDQ3ODhIMTQzLjI5NFYxOS41OTk2SDEzOS4yNTVWMC4zNDQ3ODhaIiBmaWxsPSIjRDdGNzVCIi8+PHBhdGggZD0iTTE2MS4yMjYgMC4wMDQ3NjA3NEMxNjYuNjM4IDAuMDA0NzYwNzQgMTcwLjkxOSA0LjMzMDczIDE3MC45MTkgOS45MjkwNEMxNzAuOTE5IDEyLjM4ODkgMTcwLjAzMSAxNC41MDk1IDE2OC42NTggMTYuMTIxMUwxNzAuMzU0IDE4LjE1NjlMMTY3LjYwNyAyMC41MzE5TDE2NS44MyAxOC40MTEzQzE2NC41MzggMTkuMjU5NiAxNjIuOTIzIDE5Ljc2ODUgMTYxLjE0NiAxOS43Njg1QzE1NS43MzQgMTkuNzY4NSAxNTEuMjkxIDE1LjQ0MjUgMTUxLjI5MSA5LjkyOTA0QzE1MS4zNzIgNC4zMzA3MyAxNTUuODE0IDAuMDA0NzYwNzQgMTYxLjIyNiAwLjAwNDc2MDc0Wk0xNjEuMjI2IDE1Ljk1MTVDMTYyLjAzNCAxNS45NTE1IDE2Mi42OCAxNS43ODE4IDE2My4zMjYgMTUuNTI3NEwxNjEuMDY1IDEyLjcyODJMMTYzLjgxMSAxMC4yNjgzTDE2Ni4xNTQgMTMuMTUyM0MxNjYuNjM4IDEyLjMwNDEgMTY2Ljk2MSAxMS4yMDE0IDE2Ni45NjEgOS45MjkwNEMxNjYuOTYxIDYuNjIwOTUgMTY0LjQ1NyAzLjgyMTc5IDE2MS4zMDcgMy44MjE3OUMxNTguMDc2IDMuODIxNzkgMTU1LjQ5MSA2LjUzNjEzIDE1NS40OTEgOS45MjkwNEMxNTUuNDkxIDEzLjMyMiAxNTcuOTk1IDE1Ljk1MTUgMTYxLjIyNiAxNS45NTE1WiIgZmlsbD0iI0Q3Rjc1QiIvPjxwYXRoIGQ9Ik0xNi42MzkzIDE5LjQyOTJDMTguNTU3NiAxOS40MjkyIDIwLjExMjYgMTcuNzU4MiAyMC4xMTI2IDE1LjY5N0MyMC4xMTI2IDEzLjYzNTcgMTguNTU3NiAxMS45NjQ4IDE2LjYzOTMgMTEuOTY0OEMxNC43MjExIDExLjk2NDggMTMuMTY2IDEzLjYzNTcgMTMuMTY2IDE1LjY5N0MxMy4xNjYgMTcuNzU4MiAxNC43MjExIDE5LjQyOTIgMTYuNjM5MyAxOS40MjkyWiIgZmlsbD0iI0Q3Rjc1QiIvPjxwYXRoIGQ9Ik0yMy41MDU3IDkuMjUwNDdDMjQuOTMzMiA5LjI1MDQ3IDI2LjA5MDUgNy45OTcyNSAyNi4wOTA1IDYuNDUxMzJDMjYuMDkwNSA0LjkwNTM5IDI0LjkzMzIgMy42NTIxNiAyMy41MDU3IDMuNjUyMTZDMjIuMDc4MSAzLjY1MjE2IDIwLjkyMDkgNC45MDUzOSAyMC45MjA5IDYuNDUxMzJDMjAuOTIwOSA3Ljk5NzI1IDIyLjA3ODEgOS4yNTA0NyAyMy41MDU3IDkuMjUwNDdaIiBmaWxsPSIjRDdGNzVCIi8+PHBhdGggZD0iTTIyLjYxNjMgNS42MDMwM0g3Ljk5NjA5VjcuMjE0NjZIMjIuNjE2M1Y1LjYwMzAzWiIgZmlsbD0iI0Q3Rjc1QiIvPjxwYXRoIGQ9Ik0tMC4wMTQ2NDg0IDEuMTk0OTVMLTAuMDE0NjQ4NCAxMS42MjgySDkuOTIwNjRWMS4xOTQ5NUgtMC4wMTQ2NDg0WiIgZmlsbD0iI0Q3Rjc1QiIvPjwvc3ZnPjwvZGl2PgoKPGRpdiBjbGFzcz0iaHVkIiBpZD0iaW5mbyI+CiAgPGRpdiBjbGFzcz0idGl0bGUiPlRvcG9sb2dpY2FsIFByb2dyYW08L2Rpdj4KICA8ZGl2IGNsYXNzPSJyb3ciPlF1Yml0czogPHNwYW4gaWQ9ImluZm8tcXViaXRzIj4tPC9zcGFuPjwvZGl2PgogIDxkaXYgY2xhc3M9InJvdyI+TGF5b3V0OiA8c3BhbiBpZD0iaW5mby1sYXlvdXQiPi08L3NwYW4+PC9kaXY+CiAgPGRpdiBjbGFzcz0icm93Ij5Ob2RlczogPHNwYW4gaWQ9ImluZm8tbm9kZXMiPi08L3NwYW4+PC9kaXY+CiAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0ibWFyZ2luLXRvcDo2cHg7IGNvbG9yOiM2NjY7Ij5QZXIgZ2F0ZTo8L2Rpdj4KICA8ZGl2IGNsYXNzPSJyb3ciIGlkPSJpbmZvLWdhdGVzIj48L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJodWQiIGlkPSJsZWdlbmQiPgogIDxkaXYgY2xhc3M9InRpdGxlIj5MZWdlbmQ8L2Rpdj4KICA8ZGl2IGNsYXNzPSJsZWciPjxkaXYgY2xhc3M9ImxlZy1zdyIgc3R5bGU9ImJhY2tncm91bmQ6I0Y0Mzc2NCI+PC9kaXY+PGRpdiBjbGFzcz0ibGVnLWxibCI+WCBmYWNlPC9kaXY+PC9kaXY+CiAgPGRpdiBjbGFzcz0ibGVnIj48ZGl2IGNsYXNzPSJsZWctc3ciIHN0eWxlPSJiYWNrZ3JvdW5kOiMxMTlEQTQiPjwvZGl2PjxkaXYgY2xhc3M9ImxlZy1sYmwiPlogZmFjZTwvZGl2PjwvZGl2PgogIDxkaXYgY2xhc3M9ImxlZyI+PGRpdiBjbGFzcz0ibGVnLXN3IiBzdHlsZT0iYmFja2dyb3VuZDojRDdGNzVCIj48L2Rpdj48ZGl2IGNsYXNzPSJsZWctbGJsIj5ZIGN1YmU8L2Rpdj48L2Rpdj4KICA8ZGl2IGNsYXNzPSJsZWciPjxkaXYgY2xhc3M9ImxlZy1zdyIgc3R5bGU9ImJhY2tncm91bmQ6IzkxNzBDNiI+PC9kaXY+PGRpdiBjbGFzcz0ibGVnLWxibCI+VCBjdWJlIChtYWdpYyBzdGF0ZSk8L2Rpdj48L2Rpdj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJodWQiIGlkPSJsZWdlbmQtbG9naWNhbCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+CiAgPGRpdiBjbGFzcz0idGl0bGUiPkdhdGVzPC9kaXY+CiAgPGRpdiBpZD0ibGVnZW5kLWxvZ2ljYWwtbGlzdCI+PC9kaXY+CjwvZGl2PgoKPGRpdiBjbGFzcz0iaHVkIiBpZD0idmlld3RvZ2dsZSI+CiAgPGJ1dHRvbiBpZD0iYnRuLXN1cmZhY2UiIGNsYXNzPSJ2YnRuIGFjdGl2ZSI+U3VyZmFjZS1jb2RlIHZpZXc8L2J1dHRvbj4KICA8YnV0dG9uIGlkPSJidG4tbG9naWNhbCIgY2xhc3M9InZidG4iPkxvZ2ljYWwgdmlldzwvYnV0dG9uPgo8L2Rpdj4KCjxkaXYgY2xhc3M9Imh1ZCIgaWQ9ImNhbWN0cmwiPgogIDxidXR0b24gaWQ9ImJ0bi1yZXNldCIgY2xhc3M9InZidG4iPlZpZXcgYWxsPC9idXR0b24+CiAgPGJ1dHRvbiBpZD0iYnRuLWxheW91dCIgY2xhc3M9InZidG4iPlZpZXcgbGF5b3V0IGdyaWQ8L2J1dHRvbj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJodWQiIGlkPSJoaW50Ij4KICBPcmJpdDogZHJhZyAmbmJzcDt8Jm5ic3A7IFpvb206IHNjcm9sbCAmbmJzcDt8Jm5ic3A7IFBhbjogcmlnaHQtZHJhZwo8L2Rpdj4KCjxkaXYgaWQ9InRvb2x0aXAiPjwvZGl2PgoKPHNjcmlwdCBpZD0icHJvZ3JhbS1kYXRhIiB0eXBlPSJhcHBsaWNhdGlvbi9qc29uIj57ImxheW91dCI6IHsid2lkdGgiOiA1LCAiaGVpZ2h0IjogMywgImxvZ2ljYWxfcXViaXRzIjogW1sxLCAxXSwgWzMsIDFdXSwgImF1eGlsaWFyaWVzIjogW1swLCAwXSwgWzAsIDFdLCBbMCwgMl0sIFsxLCAwXSwgWzEsIDJdLCBbMiwgMF0sIFsyLCAxXSwgWzIsIDJdLCBbMywgMF0sIFszLCAyXSwgWzQsIDBdLCBbNCwgMV0sIFs0LCAyXV19LCAiY3ViZXMiOiBbeyJ4IjogMSwgInkiOiAxLCAieiI6IDAsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAxLCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogMSwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJzIiwgImdhdGVfaW5kZXgiOiAyLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDAsICJraW5kIjogIlkiLCAiZ2F0ZV90eXBlIjogInMiLCAiZ2F0ZV9pbmRleCI6IDIsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogMiwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJoIiwgImdhdGVfaW5kZXgiOiAzLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDMsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogNCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiAyLCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDUsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogMSwgImtpbmQiOiAiVCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiAzLCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDUsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogNCwgImtpbmQiOiAiWSIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiA0LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogImgiLCAiZ2F0ZV9pbmRleCI6IDcsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogNSwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiA4LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDQsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogOSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiAzLCAia2luZCI6ICJUIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA5LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDUsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogOSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiA2LCAia2luZCI6ICJZIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA5LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDYsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAiaCIsICJnYXRlX2luZGV4IjogMTEsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogNywgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiA2LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogMTMsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogNSwgImtpbmQiOiAiVCIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiAxMywgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiA3LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogMTMsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogOCwgImtpbmQiOiAiWSIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiAxMywgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiA4LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogImgiLCAiZ2F0ZV9pbmRleCI6IDE0LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDksICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTUsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogOCwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiAxNiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiA3LCAia2luZCI6ICJUIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiAxNiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiA5LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDE2LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDEwLCAia2luZCI6ICJZIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiAxNiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAxMCwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJoIiwgImdhdGVfaW5kZXgiOiAxNywgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAxMSwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxOCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiAxMCwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiAxOSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiA5LCAia2luZCI6ICJUIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiAxOSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiAxMSwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiAxOSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiAxMiwgImtpbmQiOiAiWSIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogMTksICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogMTIsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAiaCIsICJnYXRlX2luZGV4IjogMjAsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogMTMsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMjEsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogMTIsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogMjIsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogMTEsICJraW5kIjogIlQiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDIyLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDEzLCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDIyLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDE0LCAia2luZCI6ICJZIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiAyMiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAxNCwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJoIiwgImdhdGVfaW5kZXgiOiAyNCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAxNSwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAyNSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiAxNCwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDI2LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDEzLCAia2luZCI6ICJUIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDI2LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDE1LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogMjYsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogMTYsICJraW5kIjogIlkiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogMjYsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogMTYsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAiaCIsICJnYXRlX2luZGV4IjogMjgsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogMTcsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMjksICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogMTYsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiAzMCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiAxNSwgImtpbmQiOiAiVCIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiAzMCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiAxNywgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDMwLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDE4LCAia2luZCI6ICJZIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDMwLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDE4LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogImgiLCAiZ2F0ZV9pbmRleCI6IDMyLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDE5LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDMzLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDE4LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogMzQsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogMTcsICJraW5kIjogIlQiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogMzQsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogMTksICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiAzNCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiAyMCwgImtpbmQiOiAiWSIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiAzNCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAyMCwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJoIiwgImdhdGVfaW5kZXgiOiAzNiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAyMSwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAzNywgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiAyMCwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDM4LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDE5LCAia2luZCI6ICJUIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDM4LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDIxLCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogMzgsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogMjIsICJraW5kIjogIlkiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogMzgsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogMjIsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAiaCIsICJnYXRlX2luZGV4IjogNDAsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogMjMsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogNDEsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogMjIsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiA0MiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiAyMSwgImtpbmQiOiAiVCIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiA0MiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiAyMywgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDQyLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDI0LCAia2luZCI6ICJZIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDQyLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDI0LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogImgiLCAiZ2F0ZV9pbmRleCI6IDQzLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDI1LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDQ0LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDI0LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDQ1LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDIzLCAia2luZCI6ICJUIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA0NSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiAyNSwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA0NSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiAyNiwgImtpbmQiOiAiWSIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNDUsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogMjYsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAiaCIsICJnYXRlX2luZGV4IjogNDYsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogMjcsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogNDcsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogMjYsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNDgsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogMjUsICJraW5kIjogIlQiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDQ4LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDI3LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDQ4LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDI4LCAia2luZCI6ICJZIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA0OCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAyOCwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJoIiwgImdhdGVfaW5kZXgiOiA1MCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAyOSwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiA1MSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiAyOCwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDUyLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDI3LCAia2luZCI6ICJUIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDUyLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDI5LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogNTIsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogMzAsICJraW5kIjogIlkiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogNTIsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogMzAsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAiaCIsICJnYXRlX2luZGV4IjogNTMsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogMzEsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogNTQsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogMzAsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNTUsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogMjksICJraW5kIjogIlQiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDU1LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDMxLCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDU1LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDMyLCAia2luZCI6ICJZIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA1NSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAzMiwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJoIiwgImdhdGVfaW5kZXgiOiA1NiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAzMywgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiA1NywgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiAzMiwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA1OCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiAzMSwgImtpbmQiOiAiVCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNTgsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogMzMsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNTgsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogMzQsICJraW5kIjogIlkiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDU4LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDM0LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogImgiLCAiZ2F0ZV9pbmRleCI6IDYwLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDM1LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDYxLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDM0LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogNjIsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogMzMsICJraW5kIjogIlQiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogNjIsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogMzUsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiA2MiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiAzNiwgImtpbmQiOiAiWSIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiA2MiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAzNiwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJoIiwgImdhdGVfaW5kZXgiOiA2MywgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiAzNywgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiA2NCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiAzNiwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA2NSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiAzNSwgImtpbmQiOiAiVCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNjUsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogMzcsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNjUsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogMzgsICJraW5kIjogIlkiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDY1LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDM4LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogImgiLCAiZ2F0ZV9pbmRleCI6IDY2LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDM5LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDY3LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDM4LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDY4LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDM3LCAia2luZCI6ICJUIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA2OCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiAzOSwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA2OCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiA0MCwgImtpbmQiOiAiWSIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNjgsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogNDAsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAiaCIsICJnYXRlX2luZGV4IjogNjksICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogNDEsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogNzAsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogNDAsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNzEsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogMzksICJraW5kIjogIlQiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDcxLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDQxLCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDcxLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDQyLCAia2luZCI6ICJZIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA3MSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiA0MiwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJoIiwgImdhdGVfaW5kZXgiOiA3MywgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiA0MywgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiA3NCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiA0MiwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDc1LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDQxLCAia2luZCI6ICJUIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDc1LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDQzLCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogNzUsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogNDQsICJraW5kIjogIlkiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogNzUsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogNDQsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAiaCIsICJnYXRlX2luZGV4IjogNzYsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogNDUsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogNzcsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogNDQsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogNzgsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogNDMsICJraW5kIjogIlQiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDc4LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDQ1LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDc4LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDQ2LCAia2luZCI6ICJZIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA3OCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiA0NiwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJoIiwgImdhdGVfaW5kZXgiOiA3OSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiA0NywgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiA4MCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiA0NiwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA4MSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiA0NSwgImtpbmQiOiAiVCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogODEsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogNDcsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogODEsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogNDgsICJraW5kIjogIlkiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDgxLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDQ4LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogImgiLCAiZ2F0ZV9pbmRleCI6IDgyLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDQ5LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDgzLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDQ4LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogInQiLCAiZ2F0ZV9pbmRleCI6IDg0LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDQ3LCAia2luZCI6ICJUIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA4NCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiA0OSwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJ0IiwgImdhdGVfaW5kZXgiOiA4NCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiA1MCwgImtpbmQiOiAiWSIsICJnYXRlX3R5cGUiOiAidCIsICJnYXRlX2luZGV4IjogODQsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogNTAsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAiaCIsICJnYXRlX2luZGV4IjogODYsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogNTEsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogODcsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogNTAsICJraW5kIjogIlhaWCIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiA4OCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiA0OSwgImtpbmQiOiAiVCIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiA4OCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiA1MSwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDg4LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDUyLCAia2luZCI6ICJZIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDg4LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDUyLCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogImgiLCAiZ2F0ZV9pbmRleCI6IDkwLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAxLCAieiI6IDUzLCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDkxLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDUyLCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogOTIsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogNTEsICJraW5kIjogIlQiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogOTIsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogNTMsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiA5MiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMiwgInoiOiA1NCwgImtpbmQiOiAiWSIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiA5MiwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiA1NCwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJoIiwgImdhdGVfaW5kZXgiOiA5NCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiA1NSwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiA5NSwgInF1Yml0cyI6IFswXX0sIHsieCI6IDIsICJ5IjogMSwgInoiOiA1NCwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDk2LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDUzLCAia2luZCI6ICJUIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDk2LCAicXViaXRzIjogWzBdfSwgeyJ4IjogMiwgInkiOiAxLCAieiI6IDU1LCAia2luZCI6ICJYWlgiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogOTYsICJxdWJpdHMiOiBbMF19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogNTYsICJraW5kIjogIlkiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogOTYsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogNTYsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAiaCIsICJnYXRlX2luZGV4IjogOTgsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogNTcsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogOTksICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogNTYsICJraW5kIjogIlpYWCIsICJnYXRlX3R5cGUiOiAidGRnIiwgImdhdGVfaW5kZXgiOiAxMDAsICJxdWJpdHMiOiBbMF19LCB7IngiOiAxLCAieSI6IDIsICJ6IjogNTUsICJraW5kIjogIlQiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogMTAwLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDU3LCAia2luZCI6ICJaWFgiLCAiZ2F0ZV90eXBlIjogInRkZyIsICJnYXRlX2luZGV4IjogMTAwLCAicXViaXRzIjogWzBdfSwgeyJ4IjogMSwgInkiOiAyLCAieiI6IDU4LCAia2luZCI6ICJZIiwgImdhdGVfdHlwZSI6ICJ0ZGciLCAiZ2F0ZV9pbmRleCI6IDEwMCwgInF1Yml0cyI6IFswXX0sIHsieCI6IDEsICJ5IjogMSwgInoiOiA1OCwgImtpbmQiOiAiWFpYIiwgImdhdGVfdHlwZSI6ICJoIiwgImdhdGVfaW5kZXgiOiAxMDEsICJxdWJpdHMiOiBbMF19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMCwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDIsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMSwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMiwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMywgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogNCwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogNSwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogNiwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogNywgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogOCwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogOSwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMTAsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDExLCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiAxMiwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMTMsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDE0LCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiAxNSwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMTYsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDE3LCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiAxOCwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMTksICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDIwLCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiAyMSwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMjIsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDIzLCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiAyNCwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMjUsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDI2LCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiAyNywgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMjgsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDI5LCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiAzMCwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMzEsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDMyLCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiAzMywgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMzQsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDM1LCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiAzNiwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogMzcsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDM4LCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiAzOSwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogNDAsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDQxLCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiA0MiwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogNDMsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDQ0LCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiA0NSwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogNDYsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDQ3LCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiA0OCwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogNDksICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDUwLCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiA1MSwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogNTIsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDUzLCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiA1NCwgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAzLCAieSI6IDEsICJ6IjogNTUsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTAzLCAicXViaXRzIjogWzFdfSwgeyJ4IjogMywgInkiOiAxLCAieiI6IDU2LCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImlkbGUiLCAiZ2F0ZV9pbmRleCI6IDEwMywgInF1Yml0cyI6IFsxXX0sIHsieCI6IDMsICJ5IjogMSwgInoiOiA1NywgImtpbmQiOiAiWlhaIiwgImdhdGVfdHlwZSI6ICJpZGxlIiwgImdhdGVfaW5kZXgiOiAxMDMsICJxdWJpdHMiOiBbMV19LCB7IngiOiAyLCAieSI6IDEsICJ6IjogNTgsICJraW5kIjogIlpaWCIsICJnYXRlX3R5cGUiOiAiY3giLCAiZ2F0ZV9pbmRleCI6IDEwNCwgInF1Yml0cyI6IFswLCAxXX0sIHsieCI6IDIsICJ5IjogMiwgInoiOiA1OCwgImtpbmQiOiAiWlhYIiwgImdhdGVfdHlwZSI6ICJjeCIsICJnYXRlX2luZGV4IjogMTA0LCAicXViaXRzIjogWzAsIDFdfSwgeyJ4IjogMiwgInkiOiAyLCAieiI6IDU3LCAia2luZCI6ICJaWFoiLCAiZ2F0ZV90eXBlIjogImN4IiwgImdhdGVfaW5kZXgiOiAxMDQsICJxdWJpdHMiOiBbMCwgMV19LCB7IngiOiAzLCAieSI6IDIsICJ6IjogNTcsICJraW5kIjogIlpYWiIsICJnYXRlX3R5cGUiOiAiY3giLCAiZ2F0ZV9pbmRleCI6IDEwNCwgInF1Yml0cyI6IFswLCAxXX0sIHsieCI6IDQsICJ5IjogMiwgInoiOiA1NywgImtpbmQiOiAiWFhaIiwgImdhdGVfdHlwZSI6ICJjeCIsICJnYXRlX2luZGV4IjogMTA0LCAicXViaXRzIjogWzAsIDFdfSwgeyJ4IjogNCwgInkiOiAxLCAieiI6IDU3LCAia2luZCI6ICJYWFoiLCAiZ2F0ZV90eXBlIjogImN4IiwgImdhdGVfaW5kZXgiOiAxMDQsICJxdWJpdHMiOiBbMCwgMV19LCB7IngiOiAxLCAieSI6IDEsICJ6IjogNTksICJraW5kIjogIlhaWiIsICJnYXRlX3R5cGUiOiAiaWRsZSIsICJnYXRlX2luZGV4IjogMTA1LCAicXViaXRzIjogWzBdfV0sICJwaXBlcyI6IFt7InNyYyI6IFsxLCAxLCAwXSwgImRzdCI6IFsxLCAxLCAxXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDEsIDFdLCAiZHN0IjogWzEsIDIsIDFdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMiwgMV0sICJkc3QiOiBbMSwgMiwgMF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlkifSwgeyJzcmMiOiBbMSwgMSwgMV0sICJkc3QiOiBbMSwgMSwgMl0sICJoYWRhbWFyZCI6IHRydWUsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzEsIDEsIDJdLCAiZHN0IjogWzEsIDEsIDNdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMSwgMSwgMl0sICJkc3QiOiBbMiwgMSwgMl0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsyLCAxLCAyXSwgImRzdCI6IFsyLCAxLCAxXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiVCJ9LCB7InNyYyI6IFsxLCAxLCAzXSwgImRzdCI6IFsyLCAxLCAzXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzIsIDEsIDNdLCAiZHN0IjogWzIsIDEsIDRdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJZIn0sIHsic3JjIjogWzEsIDEsIDNdLCAiZHN0IjogWzEsIDEsIDRdLCAiaGFkYW1hcmQiOiB0cnVlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAxLCA0XSwgImRzdCI6IFsxLCAxLCA1XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDEsIDRdLCAiZHN0IjogWzEsIDIsIDRdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMiwgNF0sICJkc3QiOiBbMSwgMiwgM10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlQifSwgeyJzcmMiOiBbMSwgMSwgNV0sICJkc3QiOiBbMSwgMiwgNV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAyLCA1XSwgImRzdCI6IFsxLCAyLCA2XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWSJ9LCB7InNyYyI6IFsxLCAxLCA1XSwgImRzdCI6IFsxLCAxLCA2XSwgImhhZGFtYXJkIjogdHJ1ZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMSwgMSwgNl0sICJkc3QiOiBbMSwgMSwgN10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsxLCAxLCA2XSwgImRzdCI6IFsyLCAxLCA2XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzIsIDEsIDZdLCAiZHN0IjogWzIsIDEsIDVdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJUIn0sIHsic3JjIjogWzEsIDEsIDddLCAiZHN0IjogWzIsIDEsIDddLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMiwgMSwgN10sICJkc3QiOiBbMiwgMSwgOF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlkifSwgeyJzcmMiOiBbMSwgMSwgN10sICJkc3QiOiBbMSwgMSwgOF0sICJoYWRhbWFyZCI6IHRydWUsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDEsIDhdLCAiZHN0IjogWzEsIDEsIDldLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMSwgOF0sICJkc3QiOiBbMSwgMiwgOF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAyLCA4XSwgImRzdCI6IFsxLCAyLCA3XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiVCJ9LCB7InNyYyI6IFsxLCAxLCA5XSwgImRzdCI6IFsxLCAyLCA5XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDIsIDldLCAiZHN0IjogWzEsIDIsIDEwXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWSJ9LCB7InNyYyI6IFsxLCAxLCA5XSwgImRzdCI6IFsxLCAxLCAxMF0sICJoYWRhbWFyZCI6IHRydWUsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzEsIDEsIDEwXSwgImRzdCI6IFsxLCAxLCAxMV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsxLCAxLCAxMF0sICJkc3QiOiBbMiwgMSwgMTBdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMiwgMSwgMTBdLCAiZHN0IjogWzIsIDEsIDldLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJUIn0sIHsic3JjIjogWzEsIDEsIDExXSwgImRzdCI6IFsyLCAxLCAxMV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsyLCAxLCAxMV0sICJkc3QiOiBbMiwgMSwgMTJdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJZIn0sIHsic3JjIjogWzEsIDEsIDExXSwgImRzdCI6IFsxLCAxLCAxMl0sICJoYWRhbWFyZCI6IHRydWUsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDEsIDEyXSwgImRzdCI6IFsxLCAxLCAxM10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAxLCAxMl0sICJkc3QiOiBbMSwgMiwgMTJdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMiwgMTJdLCAiZHN0IjogWzEsIDIsIDExXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiVCJ9LCB7InNyYyI6IFsxLCAxLCAxM10sICJkc3QiOiBbMSwgMiwgMTNdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMiwgMTNdLCAiZHN0IjogWzEsIDIsIDE0XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWSJ9LCB7InNyYyI6IFsxLCAxLCAxM10sICJkc3QiOiBbMSwgMSwgMTRdLCAiaGFkYW1hcmQiOiB0cnVlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsxLCAxLCAxNF0sICJkc3QiOiBbMSwgMSwgMTVdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMSwgMSwgMTRdLCAiZHN0IjogWzIsIDEsIDE0XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzIsIDEsIDE0XSwgImRzdCI6IFsyLCAxLCAxM10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlQifSwgeyJzcmMiOiBbMSwgMSwgMTVdLCAiZHN0IjogWzIsIDEsIDE1XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzIsIDEsIDE1XSwgImRzdCI6IFsyLCAxLCAxNl0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlkifSwgeyJzcmMiOiBbMSwgMSwgMTVdLCAiZHN0IjogWzEsIDEsIDE2XSwgImhhZGFtYXJkIjogdHJ1ZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMSwgMTZdLCAiZHN0IjogWzEsIDEsIDE3XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDEsIDE2XSwgImRzdCI6IFsxLCAyLCAxNl0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAyLCAxNl0sICJkc3QiOiBbMSwgMiwgMTVdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJUIn0sIHsic3JjIjogWzEsIDEsIDE3XSwgImRzdCI6IFsxLCAyLCAxN10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAyLCAxN10sICJkc3QiOiBbMSwgMiwgMThdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJZIn0sIHsic3JjIjogWzEsIDEsIDE3XSwgImRzdCI6IFsxLCAxLCAxOF0sICJoYWRhbWFyZCI6IHRydWUsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzEsIDEsIDE4XSwgImRzdCI6IFsxLCAxLCAxOV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsxLCAxLCAxOF0sICJkc3QiOiBbMiwgMSwgMThdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMiwgMSwgMThdLCAiZHN0IjogWzIsIDEsIDE3XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiVCJ9LCB7InNyYyI6IFsxLCAxLCAxOV0sICJkc3QiOiBbMiwgMSwgMTldLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMiwgMSwgMTldLCAiZHN0IjogWzIsIDEsIDIwXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWSJ9LCB7InNyYyI6IFsxLCAxLCAxOV0sICJkc3QiOiBbMSwgMSwgMjBdLCAiaGFkYW1hcmQiOiB0cnVlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAxLCAyMF0sICJkc3QiOiBbMSwgMSwgMjFdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMSwgMjBdLCAiZHN0IjogWzEsIDIsIDIwXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDIsIDIwXSwgImRzdCI6IFsxLCAyLCAxOV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlQifSwgeyJzcmMiOiBbMSwgMSwgMjFdLCAiZHN0IjogWzEsIDIsIDIxXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDIsIDIxXSwgImRzdCI6IFsxLCAyLCAyMl0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlkifSwgeyJzcmMiOiBbMSwgMSwgMjFdLCAiZHN0IjogWzEsIDEsIDIyXSwgImhhZGFtYXJkIjogdHJ1ZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMSwgMSwgMjJdLCAiZHN0IjogWzEsIDEsIDIzXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzEsIDEsIDIyXSwgImRzdCI6IFsyLCAxLCAyMl0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsyLCAxLCAyMl0sICJkc3QiOiBbMiwgMSwgMjFdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJUIn0sIHsic3JjIjogWzEsIDEsIDIzXSwgImRzdCI6IFsyLCAxLCAyM10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsyLCAxLCAyM10sICJkc3QiOiBbMiwgMSwgMjRdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJZIn0sIHsic3JjIjogWzEsIDEsIDIzXSwgImRzdCI6IFsxLCAxLCAyNF0sICJoYWRhbWFyZCI6IHRydWUsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDEsIDI0XSwgImRzdCI6IFsxLCAxLCAyNV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAxLCAyNF0sICJkc3QiOiBbMSwgMiwgMjRdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMiwgMjRdLCAiZHN0IjogWzEsIDIsIDIzXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiVCJ9LCB7InNyYyI6IFsxLCAxLCAyNV0sICJkc3QiOiBbMSwgMiwgMjVdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMiwgMjVdLCAiZHN0IjogWzEsIDIsIDI2XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWSJ9LCB7InNyYyI6IFsxLCAxLCAyNV0sICJkc3QiOiBbMSwgMSwgMjZdLCAiaGFkYW1hcmQiOiB0cnVlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsxLCAxLCAyNl0sICJkc3QiOiBbMSwgMSwgMjddLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMSwgMSwgMjZdLCAiZHN0IjogWzIsIDEsIDI2XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzIsIDEsIDI2XSwgImRzdCI6IFsyLCAxLCAyNV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlQifSwgeyJzcmMiOiBbMSwgMSwgMjddLCAiZHN0IjogWzIsIDEsIDI3XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzIsIDEsIDI3XSwgImRzdCI6IFsyLCAxLCAyOF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlkifSwgeyJzcmMiOiBbMSwgMSwgMjddLCAiZHN0IjogWzEsIDEsIDI4XSwgImhhZGFtYXJkIjogdHJ1ZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMSwgMjhdLCAiZHN0IjogWzEsIDEsIDI5XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDEsIDI4XSwgImRzdCI6IFsxLCAyLCAyOF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAyLCAyOF0sICJkc3QiOiBbMSwgMiwgMjddLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJUIn0sIHsic3JjIjogWzEsIDEsIDI5XSwgImRzdCI6IFsxLCAyLCAyOV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAyLCAyOV0sICJkc3QiOiBbMSwgMiwgMzBdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJZIn0sIHsic3JjIjogWzEsIDEsIDI5XSwgImRzdCI6IFsxLCAxLCAzMF0sICJoYWRhbWFyZCI6IHRydWUsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzEsIDEsIDMwXSwgImRzdCI6IFsxLCAxLCAzMV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsxLCAxLCAzMF0sICJkc3QiOiBbMiwgMSwgMzBdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMiwgMSwgMzBdLCAiZHN0IjogWzIsIDEsIDI5XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiVCJ9LCB7InNyYyI6IFsxLCAxLCAzMV0sICJkc3QiOiBbMiwgMSwgMzFdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMiwgMSwgMzFdLCAiZHN0IjogWzIsIDEsIDMyXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWSJ9LCB7InNyYyI6IFsxLCAxLCAzMV0sICJkc3QiOiBbMSwgMSwgMzJdLCAiaGFkYW1hcmQiOiB0cnVlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAxLCAzMl0sICJkc3QiOiBbMSwgMSwgMzNdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMSwgMzJdLCAiZHN0IjogWzEsIDIsIDMyXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDIsIDMyXSwgImRzdCI6IFsxLCAyLCAzMV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlQifSwgeyJzcmMiOiBbMSwgMSwgMzNdLCAiZHN0IjogWzEsIDIsIDMzXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDIsIDMzXSwgImRzdCI6IFsxLCAyLCAzNF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlkifSwgeyJzcmMiOiBbMSwgMSwgMzNdLCAiZHN0IjogWzEsIDEsIDM0XSwgImhhZGFtYXJkIjogdHJ1ZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMSwgMSwgMzRdLCAiZHN0IjogWzEsIDEsIDM1XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzEsIDEsIDM0XSwgImRzdCI6IFsyLCAxLCAzNF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsyLCAxLCAzNF0sICJkc3QiOiBbMiwgMSwgMzNdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJUIn0sIHsic3JjIjogWzEsIDEsIDM1XSwgImRzdCI6IFsyLCAxLCAzNV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsyLCAxLCAzNV0sICJkc3QiOiBbMiwgMSwgMzZdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJZIn0sIHsic3JjIjogWzEsIDEsIDM1XSwgImRzdCI6IFsxLCAxLCAzNl0sICJoYWRhbWFyZCI6IHRydWUsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDEsIDM2XSwgImRzdCI6IFsxLCAxLCAzN10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAxLCAzNl0sICJkc3QiOiBbMSwgMiwgMzZdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMiwgMzZdLCAiZHN0IjogWzEsIDIsIDM1XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiVCJ9LCB7InNyYyI6IFsxLCAxLCAzN10sICJkc3QiOiBbMSwgMiwgMzddLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMiwgMzddLCAiZHN0IjogWzEsIDIsIDM4XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWSJ9LCB7InNyYyI6IFsxLCAxLCAzN10sICJkc3QiOiBbMSwgMSwgMzhdLCAiaGFkYW1hcmQiOiB0cnVlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsxLCAxLCAzOF0sICJkc3QiOiBbMSwgMSwgMzldLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMSwgMSwgMzhdLCAiZHN0IjogWzIsIDEsIDM4XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzIsIDEsIDM4XSwgImRzdCI6IFsyLCAxLCAzN10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlQifSwgeyJzcmMiOiBbMSwgMSwgMzldLCAiZHN0IjogWzIsIDEsIDM5XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzIsIDEsIDM5XSwgImRzdCI6IFsyLCAxLCA0MF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlkifSwgeyJzcmMiOiBbMSwgMSwgMzldLCAiZHN0IjogWzEsIDEsIDQwXSwgImhhZGFtYXJkIjogdHJ1ZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMSwgNDBdLCAiZHN0IjogWzEsIDEsIDQxXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDEsIDQwXSwgImRzdCI6IFsxLCAyLCA0MF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAyLCA0MF0sICJkc3QiOiBbMSwgMiwgMzldLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJUIn0sIHsic3JjIjogWzEsIDEsIDQxXSwgImRzdCI6IFsxLCAyLCA0MV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAyLCA0MV0sICJkc3QiOiBbMSwgMiwgNDJdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJZIn0sIHsic3JjIjogWzEsIDEsIDQxXSwgImRzdCI6IFsxLCAxLCA0Ml0sICJoYWRhbWFyZCI6IHRydWUsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzEsIDEsIDQyXSwgImRzdCI6IFsxLCAxLCA0M10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsxLCAxLCA0Ml0sICJkc3QiOiBbMiwgMSwgNDJdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMiwgMSwgNDJdLCAiZHN0IjogWzIsIDEsIDQxXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiVCJ9LCB7InNyYyI6IFsxLCAxLCA0M10sICJkc3QiOiBbMiwgMSwgNDNdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMiwgMSwgNDNdLCAiZHN0IjogWzIsIDEsIDQ0XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWSJ9LCB7InNyYyI6IFsxLCAxLCA0M10sICJkc3QiOiBbMSwgMSwgNDRdLCAiaGFkYW1hcmQiOiB0cnVlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAxLCA0NF0sICJkc3QiOiBbMSwgMSwgNDVdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMSwgNDRdLCAiZHN0IjogWzEsIDIsIDQ0XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDIsIDQ0XSwgImRzdCI6IFsxLCAyLCA0M10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlQifSwgeyJzcmMiOiBbMSwgMSwgNDVdLCAiZHN0IjogWzEsIDIsIDQ1XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDIsIDQ1XSwgImRzdCI6IFsxLCAyLCA0Nl0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlkifSwgeyJzcmMiOiBbMSwgMSwgNDVdLCAiZHN0IjogWzEsIDEsIDQ2XSwgImhhZGFtYXJkIjogdHJ1ZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMSwgMSwgNDZdLCAiZHN0IjogWzEsIDEsIDQ3XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzEsIDEsIDQ2XSwgImRzdCI6IFsyLCAxLCA0Nl0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsyLCAxLCA0Nl0sICJkc3QiOiBbMiwgMSwgNDVdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJUIn0sIHsic3JjIjogWzEsIDEsIDQ3XSwgImRzdCI6IFsyLCAxLCA0N10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsyLCAxLCA0N10sICJkc3QiOiBbMiwgMSwgNDhdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJZIn0sIHsic3JjIjogWzEsIDEsIDQ3XSwgImRzdCI6IFsxLCAxLCA0OF0sICJoYWRhbWFyZCI6IHRydWUsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDEsIDQ4XSwgImRzdCI6IFsxLCAxLCA0OV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAxLCA0OF0sICJkc3QiOiBbMSwgMiwgNDhdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMiwgNDhdLCAiZHN0IjogWzEsIDIsIDQ3XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiVCJ9LCB7InNyYyI6IFsxLCAxLCA0OV0sICJkc3QiOiBbMSwgMiwgNDldLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMiwgNDldLCAiZHN0IjogWzEsIDIsIDUwXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWSJ9LCB7InNyYyI6IFsxLCAxLCA0OV0sICJkc3QiOiBbMSwgMSwgNTBdLCAiaGFkYW1hcmQiOiB0cnVlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsxLCAxLCA1MF0sICJkc3QiOiBbMSwgMSwgNTFdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMSwgMSwgNTBdLCAiZHN0IjogWzIsIDEsIDUwXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzIsIDEsIDUwXSwgImRzdCI6IFsyLCAxLCA0OV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlQifSwgeyJzcmMiOiBbMSwgMSwgNTFdLCAiZHN0IjogWzIsIDEsIDUxXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzIsIDEsIDUxXSwgImRzdCI6IFsyLCAxLCA1Ml0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlkifSwgeyJzcmMiOiBbMSwgMSwgNTFdLCAiZHN0IjogWzEsIDEsIDUyXSwgImhhZGFtYXJkIjogdHJ1ZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMSwgNTJdLCAiZHN0IjogWzEsIDEsIDUzXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDEsIDUyXSwgImRzdCI6IFsxLCAyLCA1Ml0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAyLCA1Ml0sICJkc3QiOiBbMSwgMiwgNTFdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJUIn0sIHsic3JjIjogWzEsIDEsIDUzXSwgImRzdCI6IFsxLCAyLCA1M10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAyLCA1M10sICJkc3QiOiBbMSwgMiwgNTRdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJZIn0sIHsic3JjIjogWzEsIDEsIDUzXSwgImRzdCI6IFsxLCAxLCA1NF0sICJoYWRhbWFyZCI6IHRydWUsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWFpYIn0sIHsic3JjIjogWzEsIDEsIDU0XSwgImRzdCI6IFsxLCAxLCA1NV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlhaWCJ9LCB7InNyYyI6IFsxLCAxLCA1NF0sICJkc3QiOiBbMiwgMSwgNTRdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMiwgMSwgNTRdLCAiZHN0IjogWzIsIDEsIDUzXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiVCJ9LCB7InNyYyI6IFsxLCAxLCA1NV0sICJkc3QiOiBbMiwgMSwgNTVdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMiwgMSwgNTVdLCAiZHN0IjogWzIsIDEsIDU2XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWSJ9LCB7InNyYyI6IFsxLCAxLCA1NV0sICJkc3QiOiBbMSwgMSwgNTZdLCAiaGFkYW1hcmQiOiB0cnVlLCAic3JjX2tpbmQiOiAiWFpYIiwgImRzdF9raW5kIjogIlpYWCJ9LCB7InNyYyI6IFsxLCAxLCA1Nl0sICJkc3QiOiBbMSwgMSwgNTddLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJaWFgifSwgeyJzcmMiOiBbMSwgMSwgNTZdLCAiZHN0IjogWzEsIDIsIDU2XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDIsIDU2XSwgImRzdCI6IFsxLCAyLCA1NV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlQifSwgeyJzcmMiOiBbMSwgMSwgNTddLCAiZHN0IjogWzEsIDIsIDU3XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzEsIDIsIDU3XSwgImRzdCI6IFsxLCAyLCA1OF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlkifSwgeyJzcmMiOiBbMSwgMSwgNTddLCAiZHN0IjogWzEsIDEsIDU4XSwgImhhZGFtYXJkIjogdHJ1ZSwgInNyY19raW5kIjogIlpYWCIsICJkc3Rfa2luZCI6ICJYWlgifSwgeyJzcmMiOiBbMywgMSwgMF0sICJkc3QiOiBbMywgMSwgMV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCAxXSwgImRzdCI6IFszLCAxLCAyXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDJdLCAiZHN0IjogWzMsIDEsIDNdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgM10sICJkc3QiOiBbMywgMSwgNF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCA0XSwgImRzdCI6IFszLCAxLCA1XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDVdLCAiZHN0IjogWzMsIDEsIDZdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgNl0sICJkc3QiOiBbMywgMSwgN10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCA3XSwgImRzdCI6IFszLCAxLCA4XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDhdLCAiZHN0IjogWzMsIDEsIDldLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgOV0sICJkc3QiOiBbMywgMSwgMTBdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgMTBdLCAiZHN0IjogWzMsIDEsIDExXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDExXSwgImRzdCI6IFszLCAxLCAxMl0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCAxMl0sICJkc3QiOiBbMywgMSwgMTNdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgMTNdLCAiZHN0IjogWzMsIDEsIDE0XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDE0XSwgImRzdCI6IFszLCAxLCAxNV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCAxNV0sICJkc3QiOiBbMywgMSwgMTZdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgMTZdLCAiZHN0IjogWzMsIDEsIDE3XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDE3XSwgImRzdCI6IFszLCAxLCAxOF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCAxOF0sICJkc3QiOiBbMywgMSwgMTldLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgMTldLCAiZHN0IjogWzMsIDEsIDIwXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDIwXSwgImRzdCI6IFszLCAxLCAyMV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCAyMV0sICJkc3QiOiBbMywgMSwgMjJdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgMjJdLCAiZHN0IjogWzMsIDEsIDIzXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDIzXSwgImRzdCI6IFszLCAxLCAyNF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCAyNF0sICJkc3QiOiBbMywgMSwgMjVdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgMjVdLCAiZHN0IjogWzMsIDEsIDI2XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDI2XSwgImRzdCI6IFszLCAxLCAyN10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCAyN10sICJkc3QiOiBbMywgMSwgMjhdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgMjhdLCAiZHN0IjogWzMsIDEsIDI5XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDI5XSwgImRzdCI6IFszLCAxLCAzMF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCAzMF0sICJkc3QiOiBbMywgMSwgMzFdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgMzFdLCAiZHN0IjogWzMsIDEsIDMyXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDMyXSwgImRzdCI6IFszLCAxLCAzM10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCAzM10sICJkc3QiOiBbMywgMSwgMzRdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgMzRdLCAiZHN0IjogWzMsIDEsIDM1XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDM1XSwgImRzdCI6IFszLCAxLCAzNl0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCAzNl0sICJkc3QiOiBbMywgMSwgMzddLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgMzddLCAiZHN0IjogWzMsIDEsIDM4XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDM4XSwgImRzdCI6IFszLCAxLCAzOV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCAzOV0sICJkc3QiOiBbMywgMSwgNDBdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgNDBdLCAiZHN0IjogWzMsIDEsIDQxXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDQxXSwgImRzdCI6IFszLCAxLCA0Ml0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCA0Ml0sICJkc3QiOiBbMywgMSwgNDNdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgNDNdLCAiZHN0IjogWzMsIDEsIDQ0XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDQ0XSwgImRzdCI6IFszLCAxLCA0NV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCA0NV0sICJkc3QiOiBbMywgMSwgNDZdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgNDZdLCAiZHN0IjogWzMsIDEsIDQ3XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDQ3XSwgImRzdCI6IFszLCAxLCA0OF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCA0OF0sICJkc3QiOiBbMywgMSwgNDldLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgNDldLCAiZHN0IjogWzMsIDEsIDUwXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDUwXSwgImRzdCI6IFszLCAxLCA1MV0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCA1MV0sICJkc3QiOiBbMywgMSwgNTJdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgNTJdLCAiZHN0IjogWzMsIDEsIDUzXSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDUzXSwgImRzdCI6IFszLCAxLCA1NF0sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFszLCAxLCA1NF0sICJkc3QiOiBbMywgMSwgNTVdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMSwgNTVdLCAiZHN0IjogWzMsIDEsIDU2XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWlhaIn0sIHsic3JjIjogWzMsIDEsIDU2XSwgImRzdCI6IFszLCAxLCA1N10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhaIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFsxLCAxLCA1OF0sICJkc3QiOiBbMiwgMSwgNThdLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhaWCIsICJkc3Rfa2luZCI6ICJaWlgifSwgeyJzcmMiOiBbMiwgMSwgNThdLCAiZHN0IjogWzIsIDIsIDU4XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWlgiLCAiZHN0X2tpbmQiOiAiWlhYIn0sIHsic3JjIjogWzIsIDIsIDU4XSwgImRzdCI6IFsyLCAyLCA1N10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWlhYIiwgImRzdF9raW5kIjogIlpYWiJ9LCB7InNyYyI6IFsyLCAyLCA1N10sICJkc3QiOiBbMywgMiwgNTddLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlpYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMywgMiwgNTddLCAiZHN0IjogWzQsIDIsIDU3XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJaWFoiLCAiZHN0X2tpbmQiOiAiWFhaIn0sIHsic3JjIjogWzQsIDIsIDU3XSwgImRzdCI6IFs0LCAxLCA1N10sICJoYWRhbWFyZCI6IGZhbHNlLCAic3JjX2tpbmQiOiAiWFhaIiwgImRzdF9raW5kIjogIlhYWiJ9LCB7InNyYyI6IFs0LCAxLCA1N10sICJkc3QiOiBbMywgMSwgNTddLCAiaGFkYW1hcmQiOiBmYWxzZSwgInNyY19raW5kIjogIlhYWiIsICJkc3Rfa2luZCI6ICJaWFoifSwgeyJzcmMiOiBbMSwgMSwgNThdLCAiZHN0IjogWzEsIDEsIDU5XSwgImhhZGFtYXJkIjogZmFsc2UsICJzcmNfa2luZCI6ICJYWlgiLCAiZHN0X2tpbmQiOiAiWFpaIn1dLCAic3RhdHMiOiB7Im5vZGVzX2J5X2dhdGUiOiB7ImlkbGUiOiA4OSwgInMiOiAyLCAiaCI6IDI5LCAidCI6IDYwLCAidGRnIjogNTIsICJjeCI6IDZ9LCAicXViaXRfY291bnQiOiAyfX08L3NjcmlwdD4KCjxzY3JpcHQgdHlwZT0iaW1wb3J0bWFwIj4KewogICJpbXBvcnRzIjogewogICAgInRocmVlIjogImh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vdGhyZWVAMC4xNjAuMC9idWlsZC90aHJlZS5tb2R1bGUuanMiLAogICAgInRocmVlL2FkZG9ucy8iOiAiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS90aHJlZUAwLjE2MC4wL2V4YW1wbGVzL2pzbS8iCiAgfQp9Cjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSJtb2R1bGUiPgppbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7CmltcG9ydCB7IE9yYml0Q29udHJvbHMgfSBmcm9tICd0aHJlZS9hZGRvbnMvY29udHJvbHMvT3JiaXRDb250cm9scy5qcyc7Cgpjb25zdCBwcm9ncmFtID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZ3JhbS1kYXRhJykudGV4dENvbnRlbnQpOwoKLy8gQ3ViZXMgc2l0IG9uZSBsYXR0aWNlIHVuaXQgYXBhcnQ7IHNwcmVhZCB0aGVtIG91dCBzbyB0aGUgY29ubmVjdGluZyBwaXBlcwovLyBoYXZlIHJvb20gdG8gcmVhZCBhcyBkaXN0aW5jdCBzZWdtZW50cyByYXRoZXIgdGhhbiB0b3VjaGluZyBmYWNlcy4KY29uc3QgU1BBQ0lORyA9IDEuNjg7CgovLyBDb29yZGluYXRlIG1hcHBpbmc6IGxhdHRpY2UgKHgsIHksIHopIC0+IHRocmVlLmpzICh4LCB6LCB5KS4geiBpcyB0aW1lIGFuZAovLyBiZWNvbWVzIHRoZSB2ZXJ0aWNhbCBheGlzIHNvIHRoZSBjaXJjdWl0IHJlYWRzIGJvdHRvbS10by10b3AuIFBvc2l0aW9ucyBhcmUKLy8gc2NhbGVkIGJ5IFNQQUNJTkcgc28gcGlwZXMgYXJlIGxvbmcgYW5kIGNsZWFybHkgdmlzaWJsZS4KZnVuY3Rpb24gdG9WZWMoeCwgeSwgeikgeyByZXR1cm4gbmV3IFRIUkVFLlZlY3RvcjMoeCAqIFNQQUNJTkcsIHogKiBTUEFDSU5HLCB5ICogU1BBQ0lORyk7IH0KCmNvbnN0IFhfQ09MT1IgPSBuZXcgVEhSRUUuQ29sb3IoMHhGNDM3NjQpOwpjb25zdCBaX0NPTE9SID0gbmV3IFRIUkVFLkNvbG9yKDB4MTE5REE0KTsKY29uc3QgWV9DT0xPUiA9IG5ldyBUSFJFRS5Db2xvcigweEQ3Rjc1Qik7CmNvbnN0IFRfQ09MT1IgPSBuZXcgVEhSRUUuQ29sb3IoMHg5MTcwQzYpOwpjb25zdCBQSVBFX0NPTE9SID0gbmV3IFRIUkVFLkNvbG9yKDB4NjY2NjY2KTsKY29uc3QgRURHRV9DT0xPUiA9IG5ldyBUSFJFRS5Db2xvcigweDExMTExMSk7Cgpjb25zdCBDVUJFX1NJWkUgPSAwLjc7CmNvbnN0IEVER0VfQ1VCRV9MSU1JVCA9IDUwMDA7ICAvLyBkcmF3IGVkZ2Ugb3V0bGluZXMgb25seSB3aGVuIHRoZSBzY2VuZSBpcyBzbWFsbAoKZnVuY3Rpb24gZmFjZUNvbG9yc0Zyb21LaW5kKGtpbmQpIHsKICAvLyBCb3hHZW9tZXRyeSBtYXRlcmlhbCBhcnJheSBvcmRlciBpcyBbK3gsIC14LCAreSwgLXksICt6LCAtel0gaW4gVEhSRUUKICAvLyBheGVzLiBPdXIgdG9WZWMgc3dhcHMgbGF0dGljZSB5IGFuZCB6IChsYXR0aWNlIHogaXMgZHJhd24gdmVydGljYWwpLAogIC8vIHNvIGxhdHRpY2UgYXhpcyAxIG1hcHMgdG8gVEhSRUUgK3ovLXogYW5kIGxhdHRpY2UgYXhpcyAyIHRvIFRIUkVFICt5Ly15LgogIC8vIEEgS2luZCBsaWtlICJaWFoiIG1lYW5zIGxhdHRpY2UgYXhpcy0wPSdaJywgYXhpcy0xPSdYJywgYXhpcy0yPSdaJy4KICBpZiAoa2luZCA9PT0gJ1knKSByZXR1cm4gW1lfQ09MT1IsIFlfQ09MT1IsIFlfQ09MT1IsIFlfQ09MT1IsIFlfQ09MT1IsIFlfQ09MT1JdOwogIGlmIChraW5kID09PSAnVCcpIHJldHVybiBbVF9DT0xPUiwgVF9DT0xPUiwgVF9DT0xPUiwgVF9DT0xPUiwgVF9DT0xPUiwgVF9DT0xPUl07CiAgY29uc3QgYXhpc0NvbG9ycyA9IFsuLi5raW5kXS5tYXAoY2ggPT4gKGNoID09PSAnWCcgPyBYX0NPTE9SIDogWl9DT0xPUikpOwogIHJldHVybiBbCiAgICBheGlzQ29sb3JzWzBdLCBheGlzQ29sb3JzWzBdLCAgLy8gVEhSRUUgK3gvLXggPC0gbGF0dGljZSB4CiAgICBheGlzQ29sb3JzWzJdLCBheGlzQ29sb3JzWzJdLCAgLy8gVEhSRUUgK3kvLXkgPC0gbGF0dGljZSB6ICh2ZXJ0aWNhbCkKICAgIGF4aXNDb2xvcnNbMV0sIGF4aXNDb2xvcnNbMV0sICAvLyBUSFJFRSArei8teiA8LSBsYXR0aWNlIHkKICBdOwp9CgovLyBDYWNoZSBvbmUgbWF0ZXJpYWwgYXJyYXkgcGVyIChraW5kLCB0b3VjaGVkLWZhY2Ugc2V0KS4gRmFjZXMgdGhhdCBhIHBpcGUKLy8gYXR0YWNoZXMgdG8gYXJlIGRyYXduIGF0IGhhbGYgb3BhY2l0eSAtLSBidXQgb25seSByZWQgKFgpIGFuZCBibHVlIChaKQovLyBmYWNlcyAtLSBzbyBhIGNvbm5lY3Rpb24gcmVhZHMgdGhyb3VnaCB0aGUgY3ViZSBzdXJmYWNlLiBgdG91Y2hlZGAgaXMgYSBTZXQKLy8gb2YgQm94R2VvbWV0cnkgZmFjZSBpbmRpY2VzLCBvciB1bmRlZmluZWQgZm9yIGN1YmVzIHdpdGggbm8gcGlwZXMuCmNvbnN0IGN1YmVNYXRDYWNoZSA9IHt9OwpmdW5jdGlvbiBjdWJlTWF0ZXJpYWxzKGtpbmQsIHRvdWNoZWQpIHsKICBjb25zdCBrZXkgPSBraW5kICsgJ3wnICsgKHRvdWNoZWQgPyBbLi4udG91Y2hlZF0uc29ydCgoYSwgYikgPT4gYSAtIGIpLmpvaW4oJywnKSA6ICcnKTsKICBsZXQgbWF0cyA9IGN1YmVNYXRDYWNoZVtrZXldOwogIGlmIChtYXRzKSByZXR1cm4gbWF0czsKICBtYXRzID0gZmFjZUNvbG9yc0Zyb21LaW5kKGtpbmQpLm1hcCgoYywgaSkgPT4gewogICAgY29uc3Qgc2VlVGhyb3VnaCA9IHRvdWNoZWQgJiYgdG91Y2hlZC5oYXMoaSkgJiYgKGMgPT09IFhfQ09MT1IgfHwgYyA9PT0gWl9DT0xPUik7CiAgICByZXR1cm4gc2VlVGhyb3VnaAogICAgICA/IG5ldyBUSFJFRS5NZXNoTGFtYmVydE1hdGVyaWFsKHsgY29sb3I6IGMsIHRyYW5zcGFyZW50OiB0cnVlLCBvcGFjaXR5OiAwLjUgfSkKICAgICAgOiBuZXcgVEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbCh7IGNvbG9yOiBjIH0pOwogIH0pOwogIGN1YmVNYXRDYWNoZVtrZXldID0gbWF0czsKICByZXR1cm4gbWF0czsKfQoKLy8gTG9naWNhbCB2aWV3OiBldmVyeSBnYXRlIFRZUEUgZ2V0cyBpdHMgb3duIGNvbG91ciAoaHVlcyBzcHJlYWQgZXZlbmx5IGFyb3VuZAovLyB0aGUgd2hlZWwpLCBhbmQgZWFjaCBjdWJlIGlzIGRyYXduIHNvbGlkIGluIGl0cyBnYXRlIHR5cGUncyBjb2xvdXIuIEEgZ2F0ZQovLyBhbmQgaXRzIGludmVyc2Ugc2hhcmUgYSBjb2xvdXIgKHQvdGRnLCBzL3NkZykuCmZ1bmN0aW9uIGNvbG9yS2V5KGd0KSB7CiAgaWYgKGd0ID09PSAndCcgfHwgZ3QgPT09ICd0ZGcnKSByZXR1cm4gJ3QnOwogIGlmIChndCA9PT0gJ3MnIHx8IGd0ID09PSAnc2RnJykgcmV0dXJuICdzJzsKICByZXR1cm4gZ3Q7Cn0KY29uc3QgZ2F0ZVR5cGVDb2xvciA9IHt9Owp7CiAgY29uc3Qga2V5cyA9IFsuLi5uZXcgU2V0KHByb2dyYW0uY3ViZXMubWFwKGMgPT4gY29sb3JLZXkoYy5nYXRlX3R5cGUpKSldLnNvcnQoKTsKICBrZXlzLmZvckVhY2goKGssIGkpID0+IHsKICAgIGdhdGVUeXBlQ29sb3Jba10gPSBuZXcgVEhSRUUuQ29sb3IoKS5zZXRIU0woaSAvIE1hdGgubWF4KGtleXMubGVuZ3RoLCAxKSwgMC41OCwgMC41OCk7CiAgfSk7Cn0KY29uc3QgbG9naWNhbEN1YmVNYXRCeUtleSA9IHt9OwpmdW5jdGlvbiBsb2dpY2FsQ3ViZU1hdGVyaWFsKGd0KSB7CiAgY29uc3QgayA9IGNvbG9yS2V5KGd0KTsKICBsZXQgbWF0ID0gbG9naWNhbEN1YmVNYXRCeUtleVtrXTsKICBpZiAoIW1hdCkgewogICAgY29uc3QgY29sb3IgPSBnYXRlVHlwZUNvbG9yW2tdIHx8IG5ldyBUSFJFRS5Db2xvcigweDg4ODg4OCk7CiAgICBtYXQgPSBsb2dpY2FsQ3ViZU1hdEJ5S2V5W2tdID0gbmV3IFRIUkVFLk1lc2hMYW1iZXJ0TWF0ZXJpYWwoeyBjb2xvciB9KTsKICB9CiAgcmV0dXJuIG1hdDsKfQoKLy8gU2NlbmUgc2V0dXAuCmNvbnN0IHNjZW5lID0gbmV3IFRIUkVFLlNjZW5lKCk7CnNjZW5lLmJhY2tncm91bmQgPSBuZXcgVEhSRUUuQ29sb3IoMHgxOTE5MTkpOwoKY29uc3QgcmVuZGVyZXIgPSBuZXcgVEhSRUUuV2ViR0xSZW5kZXJlcih7IGFudGlhbGlhczogdHJ1ZSB9KTsKcmVuZGVyZXIuc2V0UGl4ZWxSYXRpbyhNYXRoLm1pbigod2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMSkgKiAyLCA0KSk7CnJlbmRlcmVyLnNldFNpemUod2luZG93LmlubmVyV2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodCk7CmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVuZGVyZXIuZG9tRWxlbWVudCk7CgpzY2VuZS5hZGQobmV3IFRIUkVFLkFtYmllbnRMaWdodCgweGZmZmZmZiwgMC42MCkpOwpjb25zdCBzdW4gPSBuZXcgVEhSRUUuRGlyZWN0aW9uYWxMaWdodCgweGZmZmZmZiwgMC44NSk7CnN1bi5wb3NpdGlvbi5zZXQoMiwgNCwgMyk7CnNjZW5lLmFkZChzdW4pOwpjb25zdCBmaWxsID0gbmV3IFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQoMHhhYWJiY2MsIDAuMzApOwpmaWxsLnBvc2l0aW9uLnNldCgtMiwgLTEsIC0xKTsKc2NlbmUuYWRkKGZpbGwpOwoKLy8gVHJhY2sgYmJveCB3aXRoIHNjYWxhciBtaW4vbWF4IC0tIE1hdGgubWF4KC4uLmFycikgb3ZlcmZsb3dzIHRoZSBhcmcgbGltaXQKLy8gb24gdmVyeSBsYXJnZSByb3V0ZWQgcHJvZ3JhbXMuCmxldCBtaW5YID0gSW5maW5pdHksIG1pblkgPSBJbmZpbml0eSwgbWluWiA9IEluZmluaXR5OwpsZXQgbWF4WCA9IC1JbmZpbml0eSwgbWF4WSA9IC1JbmZpbml0eSwgbWF4WiA9IC1JbmZpbml0eTsKCmNvbnN0IGN1YmVHZW9tID0gbmV3IFRIUkVFLkJveEdlb21ldHJ5KENVQkVfU0laRSwgQ1VCRV9TSVpFLCBDVUJFX1NJWkUpOwpjb25zdCBlZGdlR2VvbSA9IG5ldyBUSFJFRS5FZGdlc0dlb21ldHJ5KGN1YmVHZW9tKTsKLy8gWSBjdWJlcyBhcmUgZHJhd24gaGFsZiBhcyB0YWxsICh0aGUgdmVydGljYWwvdGltZSBheGlzIGlzIHRocmVlLmpzIHkpLgpjb25zdCB5Q3ViZUdlb20gPSBuZXcgVEhSRUUuQm94R2VvbWV0cnkoQ1VCRV9TSVpFLCBDVUJFX1NJWkUgLyAyLCBDVUJFX1NJWkUpOwpjb25zdCB5RWRnZUdlb20gPSBuZXcgVEhSRUUuRWRnZXNHZW9tZXRyeSh5Q3ViZUdlb20pOwpjb25zdCBlZGdlTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogRURHRV9DT0xPUiB9KTsKY29uc3QgZHJhd0VkZ2VzID0gcHJvZ3JhbS5jdWJlcy5sZW5ndGggPD0gRURHRV9DVUJFX0xJTUlUOwoKLy8gQSBwaXBlIGF0dGFjaGVzIHRvIG9uZSBmYWNlIG9mIGVhY2ggY3ViZSBpdCBtZWV0czsgY29sbGVjdCB0aG9zZSBmYWNlcyBwZXIKLy8gY2VsbCBzbyB0aGUgY3ViZSBjYW4gcmVuZGVyIHRoZW0gaGFsZi10cmFuc3BhcmVudC4gQm94R2VvbWV0cnkgZmFjZSBvcmRlciBpcwovLyBbK3gsLXgsK3ksLXksK3osLXpdOyBsYXR0aWNlIHgtPnRocmVlLmpzIHgsIHktPnosIHotPnkgKHZlcnRpY2FsKS4KY29uc3QgRkFDRV9QTFVTID0gWzAsIDQsIDJdOwpjb25zdCBGQUNFX01JTlVTID0gWzEsIDUsIDNdOwpjb25zdCB0b3VjaGVkRmFjZXMgPSB7fTsKZm9yIChjb25zdCBwaXBlIG9mIHByb2dyYW0ucGlwZXMpIHsKICBjb25zdCBkID0gcGlwZS5zcmNbMF0gIT09IHBpcGUuZHN0WzBdID8gMCA6IChwaXBlLnNyY1sxXSAhPT0gcGlwZS5kc3RbMV0gPyAxIDogMik7CiAgY29uc3QgcG9zaXRpdmUgPSBwaXBlLmRzdFtkXSA+IHBpcGUuc3JjW2RdOwogIGNvbnN0IHNLZXkgPSBwaXBlLnNyYy5qb2luKCcsJyk7CiAgY29uc3QgZEtleSA9IHBpcGUuZHN0LmpvaW4oJywnKTsKICAodG91Y2hlZEZhY2VzW3NLZXldIHx8ICh0b3VjaGVkRmFjZXNbc0tleV0gPSBuZXcgU2V0KCkpKS5hZGQocG9zaXRpdmUgPyBGQUNFX1BMVVNbZF0gOiBGQUNFX01JTlVTW2RdKTsKICAodG91Y2hlZEZhY2VzW2RLZXldIHx8ICh0b3VjaGVkRmFjZXNbZEtleV0gPSBuZXcgU2V0KCkpKS5hZGQocG9zaXRpdmUgPyBGQUNFX01JTlVTW2RdIDogRkFDRV9QTFVTW2RdKTsKfQoKLy8gQSBZIGN1YmUgaXMgaGFsZiBoZWlnaHQgYW5kIGpvaW5zIHRoZSBsYXR0aWNlIHRocm91Z2ggYSBzaW5nbGUgdmVydGljYWwKLy8gcGlwZS4gUmF0aGVyIHRoYW4gc3RyZXRjaGluZyB0aGF0IHBpcGUgdG8gcmVhY2ggdGhlIGN1YmUncyBzaG9ydCBmYWNlLCBrZWVwCi8vIHRoZSBwaXBlIGF0IGl0cyBub3JtYWwgbGVuZ3RoIGFuZCBzbGlkZSB0aGUgWSBjdWJlIENVQkVfU0laRS80IGFsb25nIHRoZQovLyB2ZXJ0aWNhbCAodGhyZWUuanMgeSkgdG93YXJkIHRoZSBwaXBlIHNvIGl0cyBmYWNlIG1lZXRzIHRoZSBwaXBlIGVuZC4KY29uc3QgeVNldCA9IG5ldyBTZXQoCiAgcHJvZ3JhbS5jdWJlcy5maWx0ZXIoYyA9PiBjLmtpbmQgPT09ICdZJykubWFwKGMgPT4gYy54ICsgJywnICsgYy55ICsgJywnICsgYy56KQopOwpjb25zdCB5U2hpZnQgPSB7fTsKZm9yIChjb25zdCBwaXBlIG9mIHByb2dyYW0ucGlwZXMpIHsKICBpZiAocGlwZS5zcmNbMl0gPT09IHBpcGUuZHN0WzJdKSBjb250aW51ZTsgIC8vIG9ubHkgYSB2ZXJ0aWNhbCBwaXBlIG1vdmVzIGEgWSBjdWJlCiAgY29uc3Qgc0tleSA9IHBpcGUuc3JjLmpvaW4oJywnKSwgZEtleSA9IHBpcGUuZHN0LmpvaW4oJywnKTsKICBpZiAoeVNldC5oYXMoc0tleSkpIHlTaGlmdFtzS2V5XSA9IE1hdGguc2lnbihwaXBlLmRzdFsyXSAtIHBpcGUuc3JjWzJdKSAqIENVQkVfU0laRSAvIDQ7CiAgaWYgKHlTZXQuaGFzKGRLZXkpKSB5U2hpZnRbZEtleV0gPSBNYXRoLnNpZ24ocGlwZS5zcmNbMl0gLSBwaXBlLmRzdFsyXSkgKiBDVUJFX1NJWkUgLyA0Owp9CgovLyBHcmlkICh4LCB5KSAtPiBsb2dpY2FsIHF1Yml0IGluZGV4LCBmb3IgaG92ZXIgdG9vbHRpcHMuIENlbGxzIG5vdCBpbiB0aGlzCi8vIG1hcCBhcmUgYXV4aWxpYXJ5IChyb3V0aW5nKSBjZWxscy4KY29uc3QgcXViaXRCeUdyaWQgPSB7fTsKcHJvZ3JhbS5sYXlvdXQubG9naWNhbF9xdWJpdHMuZm9yRWFjaCgocSwgaSkgPT4geyBxdWJpdEJ5R3JpZFtxWzBdICsgJywnICsgcVsxXV0gPSBpOyB9KTsKY29uc3QgY3ViZU1lc2hlcyA9IFtdOwpjb25zdCBjdWJlc0J5R2F0ZSA9IHt9OyAgLy8gZ2F0ZV9pbmRleCAtPiBbbWVzaCwgLi4uXSwgZm9yIGhvdmVyIGhpZ2hsaWdodGluZwoKZm9yIChjb25zdCBjdWJlIG9mIHByb2dyYW0uY3ViZXMpIHsKICBjb25zdCBpc1kgPSBjdWJlLmtpbmQgPT09ICdZJzsKICBjb25zdCBrZXkgPSBjdWJlLnggKyAnLCcgKyBjdWJlLnkgKyAnLCcgKyBjdWJlLno7CiAgY29uc3QgdG91Y2hlZCA9IHRvdWNoZWRGYWNlc1trZXldOwogIGNvbnN0IHN1cmZhY2VNYXQgPSBjdWJlTWF0ZXJpYWxzKGN1YmUua2luZCwgdG91Y2hlZCk7CiAgY29uc3QgbWVzaCA9IG5ldyBUSFJFRS5NZXNoKGlzWSA/IHlDdWJlR2VvbSA6IGN1YmVHZW9tLCBzdXJmYWNlTWF0KTsKICBtZXNoLnBvc2l0aW9uLmNvcHkodG9WZWMoY3ViZS54LCBjdWJlLnksIGN1YmUueikpOwogIGlmIChpc1kpIG1lc2gucG9zaXRpb24ueSArPSB5U2hpZnRba2V5XSB8fCAwOwogIG1lc2gudXNlckRhdGEgPSB7CiAgICBneDogY3ViZS54LCBneTogY3ViZS55LCBnaTogY3ViZS5nYXRlX2luZGV4LCBndDogY3ViZS5nYXRlX3R5cGUsCiAgICBncTogY3ViZS5xdWJpdHMsIHN1cmZhY2VNYXQsCiAgfTsKICBjdWJlTWVzaGVzLnB1c2gobWVzaCk7CiAgKGN1YmVzQnlHYXRlW2N1YmUuZ2F0ZV9pbmRleF0gfHwgKGN1YmVzQnlHYXRlW2N1YmUuZ2F0ZV9pbmRleF0gPSBbXSkpLnB1c2gobWVzaCk7CiAgc2NlbmUuYWRkKG1lc2gpOwoKICBpZiAoZHJhd0VkZ2VzKSB7CiAgICBjb25zdCBlZGdlcyA9IG5ldyBUSFJFRS5MaW5lU2VnbWVudHMoaXNZID8geUVkZ2VHZW9tIDogZWRnZUdlb20sIGVkZ2VNYXRlcmlhbCk7CiAgICBlZGdlcy5wb3NpdGlvbi5jb3B5KG1lc2gucG9zaXRpb24pOwogICAgc2NlbmUuYWRkKGVkZ2VzKTsKICB9CgogIGlmIChjdWJlLnggPCBtaW5YKSBtaW5YID0gY3ViZS54OyBpZiAoY3ViZS54ID4gbWF4WCkgbWF4WCA9IGN1YmUueDsKICBpZiAoY3ViZS55IDwgbWluWSkgbWluWSA9IGN1YmUueTsgaWYgKGN1YmUueSA+IG1heFkpIG1heFkgPSBjdWJlLnk7CiAgaWYgKGN1YmUueiA8IG1pblopIG1pblogPSBjdWJlLno7IGlmIChjdWJlLnogPiBtYXhaKSBtYXhaID0gY3ViZS56Owp9CgovLyBCYXNlIGdyaWQ6IGEgZmxhdCAyLUQgZm9vdHByaW50IG9mIHRoZSBxdWJpdCBsYXlvdXQsIGRyYXduIHdlbGwgYmVsb3cgdGhlCi8vIHo9MCBjdWJlcy4gR3JpZCBsaW5lcyBzcGFuIHRoZSB3aWR0aCB4IGhlaWdodCBwYXRjaDsgbG9naWNhbC1xdWJpdCBjZWxscyBnZXQKLy8gYSB0ZWFsIHRpbGUsIGF1eGlsaWFyeSAocm91dGluZykgY2VsbHMgYSBmYWludCBncmV5IG9uZS4gVGlsZXMgYXJlIGhvdmVyYWJsZQovLyBsaWtlIGN1YmVzIChzZWUgdGhlIHRvb2x0aXAgaGFuZGxlcikuCmNvbnN0IHRpbGVNZXNoZXMgPSBbXTsKY29uc3QgR1JJRF9ZID0gLUNVQkVfU0laRSAvIDIgLSBTUEFDSU5HOyAgLy8gdmVydGljYWwgbGV2ZWwgb2YgdGhlIGxheW91dCBncmlkCnsKICBjb25zdCBXID0gcHJvZ3JhbS5sYXlvdXQud2lkdGgsIEggPSBwcm9ncmFtLmxheW91dC5oZWlnaHQ7CiAgY29uc3QgZ3JpZFkgPSBHUklEX1k7CiAgY29uc3QgcHRzID0gW107CiAgZm9yIChsZXQgaSA9IDA7IGkgPD0gVzsgaSsrKQogICAgcHRzLnB1c2gobmV3IFRIUkVFLlZlY3RvcjMoKGkgLSAwLjUpICogU1BBQ0lORywgZ3JpZFksIC0wLjUgKiBTUEFDSU5HKSwKICAgICAgICAgICAgIG5ldyBUSFJFRS5WZWN0b3IzKChpIC0gMC41KSAqIFNQQUNJTkcsIGdyaWRZLCAoSCAtIDAuNSkgKiBTUEFDSU5HKSk7CiAgZm9yIChsZXQgaiA9IDA7IGogPD0gSDsgaisrKQogICAgcHRzLnB1c2gobmV3IFRIUkVFLlZlY3RvcjMoLTAuNSAqIFNQQUNJTkcsIGdyaWRZLCAoaiAtIDAuNSkgKiBTUEFDSU5HKSwKICAgICAgICAgICAgIG5ldyBUSFJFRS5WZWN0b3IzKChXIC0gMC41KSAqIFNQQUNJTkcsIGdyaWRZLCAoaiAtIDAuNSkgKiBTUEFDSU5HKSk7CiAgc2NlbmUuYWRkKG5ldyBUSFJFRS5MaW5lU2VnbWVudHMoCiAgICBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKS5zZXRGcm9tUG9pbnRzKHB0cyksCiAgICBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoeyBjb2xvcjogMHgzMzMzMzMgfSkpKTsKCiAgY29uc3QgdGlsZUdlb20gPSBuZXcgVEhSRUUuUGxhbmVHZW9tZXRyeShTUEFDSU5HICogMC45LCBTUEFDSU5HICogMC45KTsKICB0aWxlR2VvbS5yb3RhdGVYKC1NYXRoLlBJIC8gMik7ICAvLyBsaWUgZmxhdCBpbiB0aGUgeC16IChsYXR0aWNlIHgteSkgcGxhbmUKICBjb25zdCBxdWJpdE1hdCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgKICAgIHsgY29sb3I6IFpfQ09MT1IsIHRyYW5zcGFyZW50OiB0cnVlLCBvcGFjaXR5OiAwLjM1LCBzaWRlOiBUSFJFRS5Eb3VibGVTaWRlIH0pOwogIGNvbnN0IGF1eE1hdCA9IG5ldyBUSFJFRS5NZXNoQmFzaWNNYXRlcmlhbCgKICAgIHsgY29sb3I6IDB4NTU1NTU1LCB0cmFuc3BhcmVudDogdHJ1ZSwgb3BhY2l0eTogMC4yNSwgc2lkZTogVEhSRUUuRG91YmxlU2lkZSB9KTsKICBjb25zdCBhZGRUaWxlID0gKHgsIHksIG1hdCkgPT4gewogICAgY29uc3QgdCA9IG5ldyBUSFJFRS5NZXNoKHRpbGVHZW9tLCBtYXQpOwogICAgdC5wb3NpdGlvbi5zZXQoeCAqIFNQQUNJTkcsIGdyaWRZLCB5ICogU1BBQ0lORyk7CiAgICB0LnVzZXJEYXRhID0geyBneDogeCwgZ3k6IHksIGlzVGlsZTogdHJ1ZSB9OwogICAgdGlsZU1lc2hlcy5wdXNoKHQpOwogICAgc2NlbmUuYWRkKHQpOwogIH07CgogIC8vICJxaSIgbGFiZWwgb24gZWFjaCBsb2dpY2FsLXF1Yml0IHRpbGUsIGRyYXduIGZyb20gYSBjYW52YXMgdGV4dHVyZSBvbiBhCiAgLy8gc3ByaXRlIHNvIGl0IGFsd2F5cyBmYWNlcyB0aGUgY2FtZXJhIGFuZCBzdGF5cyB1cHJpZ2h0IGF0IGFueSBvcmJpdCBhbmdsZS4KICBmdW5jdGlvbiBhZGRRdWJpdExhYmVsKHgsIHksIHRleHQpIHsKICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwogICAgY2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IDEyODsKICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwogICAgY3R4LmZpbGxTdHlsZSA9ICcjZmZmZmZmJzsKICAgIGN0eC5mb250ID0gJ2JvbGQgNjBweCAiQ291cmllciBOZXciLCBtb25vc3BhY2UnOwogICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInOwogICAgY3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnOwogICAgY3R4LmZpbGxUZXh0KHRleHQsIDY0LCA2NCk7CiAgICBjb25zdCB0ZXggPSBuZXcgVEhSRUUuQ2FudmFzVGV4dHVyZShjYW52YXMpOwogICAgdGV4LmFuaXNvdHJvcHkgPSByZW5kZXJlci5jYXBhYmlsaXRpZXMuZ2V0TWF4QW5pc290cm9weSgpOwogICAgY29uc3Qgc3ByaXRlID0gbmV3IFRIUkVFLlNwcml0ZShuZXcgVEhSRUUuU3ByaXRlTWF0ZXJpYWwoCiAgICAgIHsgbWFwOiB0ZXgsIHRyYW5zcGFyZW50OiB0cnVlLCBkZXB0aFdyaXRlOiBmYWxzZSB9KSk7CiAgICAvLyBGbG9hdCB0aGUgbGFiZWwgYSBiaXQgYWJvdmUgdGhlIHRpbGUgc28gaXRzIGxvd2VyIGhhbGYgaXNuJ3QgY2xpcHBlZCBieQogICAgLy8gdGhlIHRpbGUgcGxhbmUgd2hlbiB2aWV3ZWQgZnJvbSBhYm92ZSAoc3ByaXRlIGlzIH5TUEFDSU5HKjAuNyB0YWxsKS4KICAgIHNwcml0ZS5wb3NpdGlvbi5zZXQoeCAqIFNQQUNJTkcsIGdyaWRZICsgU1BBQ0lORyAqIDAuNCwgeSAqIFNQQUNJTkcpOwogICAgc3ByaXRlLnNjYWxlLnNldChTUEFDSU5HICogMC43LCBTUEFDSU5HICogMC43LCAxKTsKICAgIHNjZW5lLmFkZChzcHJpdGUpOwogIH0KCiAgZm9yIChjb25zdCBbeCwgeV0gb2YgcHJvZ3JhbS5sYXlvdXQuYXV4aWxpYXJpZXMpIGFkZFRpbGUoeCwgeSwgYXV4TWF0KTsKICBwcm9ncmFtLmxheW91dC5sb2dpY2FsX3F1Yml0cy5mb3JFYWNoKChbeCwgeV0sIGkpID0+IHsKICAgIGFkZFRpbGUoeCwgeSwgcXViaXRNYXQpOwogICAgYWRkUXViaXRMYWJlbCh4LCB5LCAncScgKyBpKTsKICB9KTsKfQoKLy8gUGlwZXMgYXJlIGRyYXduIFRRRUMtc3R5bGU6IGEgYm94IHRoZSBzYW1lIGNyb3NzLXNlY3Rpb24gYXMgYSBjdWJlLCB3aXRoIGl0cwovLyBmb3VyIHNpZGUgZmFjZXMgY29sb3VyZWQgYnkgdGhlIGJvdW5kYXJ5IHR5cGVzIChyZWQ9WCwgYmx1ZT1aKSBvZiB0aGUgY3ViZQovLyBpdCBjb25uZWN0cyBhbmQgaXRzIHR3byBlbmQgY2FwcyAod2hlcmUgaXQgbWVldHMgY3ViZXMpIGxlZnQgb3Blbi4gQWNyb3NzIGFuCi8vIEggcGlwZSB0aGUgdHdvIGN1YmVzJyB0eXBlcyBhcmUgc3dhcHBlZCwgc28gdGhlIHBpcGUncyBjb2xvdXJzIHN3YXAgYXQgaXRzCi8vIG1pZHBvaW50LgovLyBQaXBlIHNpZGUgZmFjZXMgYXJlIGRyYXduIHNsaWdodGx5IHRyYW5zcGFyZW50LCBtYXRjaGluZyAoYnV0IGEgdG91Y2ggbW9yZQovLyBzb2xpZCB0aGFuKSB0aGUgY3ViZSBmYWNlcyB0aGV5IGF0dGFjaCB0by4KY29uc3QgcGlwZU1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hMYW1iZXJ0TWF0ZXJpYWwoCiAgeyBjb2xvcjogUElQRV9DT0xPUiwgdHJhbnNwYXJlbnQ6IHRydWUsIG9wYWNpdHk6IDAuNTUgfSk7CmNvbnN0IGNhcE1hdGVyaWFsID0gbmV3IFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsKHsgdmlzaWJsZTogZmFsc2UgfSk7CmNvbnN0IHNpZGVNYXRCeUNvbG9yID0ge307CmZ1bmN0aW9uIHNpZGVNYXRlcmlhbChjb2xvcikgewogIGNvbnN0IGtleSA9IGNvbG9yLmdldEhleFN0cmluZygpOwogIHJldHVybiBzaWRlTWF0QnlDb2xvcltrZXldIHx8CiAgICAoc2lkZU1hdEJ5Q29sb3Jba2V5XSA9IG5ldyBUSFJFRS5NZXNoTGFtYmVydE1hdGVyaWFsKAogICAgICB7IGNvbG9yLCB0cmFuc3BhcmVudDogdHJ1ZSwgb3BhY2l0eTogMC41NSB9KSk7Cn0KLy8gU29saWQgZ3JleSBzdHJpcCBtYXJraW5nIHdoZXJlIGFuIEggcGlwZSdzIGNvbG91cnMgY2hhbmdlIChpdHMgbWlkcG9pbnQpLgovLyBwb2x5Z29uT2Zmc2V0IGtlZXBzIGl0IGZyb20gei1maWdodGluZyB0aGUgY29wbGFuYXIgcGlwZSBmYWNlcyBzaW5jZSBpdCBpcwovLyB0aGUgc2FtZSBjcm9zcy1zZWN0aW9uIGFzIHRoZSBwaXBlLgpjb25zdCBTVFJJUF9DT0xPUiA9IG5ldyBUSFJFRS5Db2xvcigweEM5Q0JDMCk7CmNvbnN0IHN0cmlwTWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbCgKICB7IGNvbG9yOiBTVFJJUF9DT0xPUiwgcG9seWdvbk9mZnNldDogdHJ1ZSwgcG9seWdvbk9mZnNldEZhY3RvcjogLTEsIHBvbHlnb25PZmZzZXRVbml0czogLTEgfSk7CmNvbnN0IFNUUklQX1RISUNLID0gMC4wODsgICAgICAgIC8vIGV4dGVudCBhbG9uZyB0aGUgcGlwZSBheGlzCmNvbnN0IFNUUklQX0NST1NTID0gQ1VCRV9TSVpFOyAgIC8vIHNhbWUgY3Jvc3Mtc2VjdGlvbiBhcyB0aGUgcGlwZQoKY29uc3QgYm94R2VvbUJ5RGltID0ge307CmZ1bmN0aW9uIGJveEdlb20oc3gsIHN5LCBzeikgewogIGNvbnN0IGtleSA9IHN4LnRvRml4ZWQoMykgKyAnXycgKyBzeS50b0ZpeGVkKDMpICsgJ18nICsgc3oudG9GaXhlZCgzKTsKICByZXR1cm4gYm94R2VvbUJ5RGltW2tleV0gfHwKICAgIChib3hHZW9tQnlEaW1ba2V5XSA9IG5ldyBUSFJFRS5Cb3hHZW9tZXRyeShzeCwgc3ksIHN6KSk7Cn0KCi8vIFBlci1sYXR0aWNlLWF4aXMgY29sb3VycyBvZiBhIGN1YmUga2luZCwgb3IgbnVsbCBmb3IgdGhlIFkvVCBzcGVjaWFsIGtpbmRzLgpmdW5jdGlvbiBheGlzQ29sb3JzRm9yS2luZChraW5kKSB7CiAgaWYgKCFraW5kIHx8IGtpbmQubGVuZ3RoICE9PSAzKSByZXR1cm4gbnVsbDsKICByZXR1cm4gWy4uLmtpbmRdLm1hcChjaCA9PiAoY2ggPT09ICdYJyA/IFhfQ09MT1IgOiBaX0NPTE9SKSk7Cn0KCi8vIEJveEdlb21ldHJ5IG1hdGVyaWFsIG9yZGVyIFsreCwteCwreSwteSwreiwtel07IGxhdHRpY2UgeC0+dGhyZWUuanMgeCwKLy8geS0+eiwgei0+eS4gRmFjZXMgcGVycGVuZGljdWxhciB0byB0aGUgcGlwZSBheGlzIGBkYCBhcmUgdGhlIG9wZW4gY2FwczsgdGhlCi8vIG90aGVyIHR3byBheGVzIGNhcnJ5IHRoZSBib3VuZGFyeSBjb2xvdXJzIChncmV5IHdoZW4gdGhlIGN1YmUgaXMgWS9UKS4KY29uc3QgQVhJU19UT19NQVRfSURYID0gW1swLCAxXSwgWzQsIDVdLCBbMiwgM11dOwpmdW5jdGlvbiBwaXBlTWF0ZXJpYWxzRm9yKGQsIGNvbG9ycykgewogIGNvbnN0IGNvbG91ckF0ID0gYSA9PiAoY29sb3JzICYmIGNvbG9yc1thXSkgPyBzaWRlTWF0ZXJpYWwoY29sb3JzW2FdKSA6IHBpcGVNYXRlcmlhbDsKICBjb25zdCBtYXRzID0gbmV3IEFycmF5KDYpOwogIGZvciAobGV0IGEgPSAwOyBhIDwgMzsgYSsrKSB7CiAgICBjb25zdCBbaSwgal0gPSBBWElTX1RPX01BVF9JRFhbYV07CiAgICBjb25zdCBtID0gKGEgPT09IGQpID8gY2FwTWF0ZXJpYWwgOiBjb2xvdXJBdChhKTsKICAgIG1hdHNbaV0gPSBtOyBtYXRzW2pdID0gbTsKICB9CiAgcmV0dXJuIG1hdHM7Cn0KCi8vIExvZ2ljYWwgdmlldzogcGlwZXMgYXJlIG9uZSBjb25zdGFudCBjb2xvdXIgKHN0aWxsIG9wZW4tY2FwcGVkKS4gQ2FjaGVkIGJ5Ci8vIHBpcGUgYXhpcyBzaW5jZSBvbmx5IHRoZSBjYXAgcG9zaXRpb25zIGRpZmZlci4KY29uc3QgTE9HSUNBTF9QSVBFX1NJREUgPSBuZXcgVEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbCgKICB7IGNvbG9yOiAweDgwODg5MCwgdHJhbnNwYXJlbnQ6IHRydWUsIG9wYWNpdHk6IDAuNTUgfSk7CmNvbnN0IGxvZ2ljYWxQaXBlTWF0QnlBeGlzID0ge307CmZ1bmN0aW9uIGxvZ2ljYWxQaXBlTWF0ZXJpYWxzKGQpIHsKICBsZXQgbWF0cyA9IGxvZ2ljYWxQaXBlTWF0QnlBeGlzW2RdOwogIGlmICghbWF0cykgewogICAgbWF0cyA9IG5ldyBBcnJheSg2KTsKICAgIGZvciAobGV0IGEgPSAwOyBhIDwgMzsgYSsrKSB7CiAgICAgIGNvbnN0IFtpLCBqXSA9IEFYSVNfVE9fTUFUX0lEWFthXTsKICAgICAgY29uc3QgbSA9IChhID09PSBkKSA/IGNhcE1hdGVyaWFsIDogTE9HSUNBTF9QSVBFX1NJREU7CiAgICAgIG1hdHNbaV0gPSBtOyBtYXRzW2pdID0gbTsKICAgIH0KICAgIGxvZ2ljYWxQaXBlTWF0QnlBeGlzW2RdID0gbWF0czsKICB9CiAgcmV0dXJuIG1hdHM7Cn0KCi8vIHRocmVlLmpzIGJveCBnZW9tZXRyeSBmb3IgYSBsYXR0aWNlLWF4aXMtYWxpZ25lZCBwaXBlIChjdWJlLXNpemVkIGNyb3NzCi8vIHNlY3Rpb24pIG9mIHRoZSBnaXZlbiBsZW5ndGggYWxvbmcgYXhpcyBgZGAuCmZ1bmN0aW9uIHBpcGVCb3hHZW9tKGQsIGxlbmd0aCkgewogIGNvbnN0IHMgPSBhID0+IChhID09PSBkID8gbGVuZ3RoIDogQ1VCRV9TSVpFKTsKICByZXR1cm4gYm94R2VvbShzKDApLCBzKDIpLCBzKDEpKTsKfQoKY29uc3QgcGlwZU1lc2hlcyA9IFtdOwpjb25zdCBzdHJpcE1lc2hlcyA9IFtdOwpmdW5jdGlvbiBhZGRQaXBlU2VnbWVudChjZW50ZXIsIGQsIGxlbmd0aCwgY29sb3JzKSB7CiAgY29uc3Qgc3VyZmFjZU1hdCA9IHBpcGVNYXRlcmlhbHNGb3IoZCwgY29sb3JzKTsKICBjb25zdCBtZXNoID0gbmV3IFRIUkVFLk1lc2gocGlwZUJveEdlb20oZCwgbGVuZ3RoKSwgc3VyZmFjZU1hdCk7CiAgbWVzaC5wb3NpdGlvbi5jb3B5KGNlbnRlcik7CiAgbWVzaC51c2VyRGF0YSA9IHsgZCwgc3VyZmFjZU1hdCB9OwogIHBpcGVNZXNoZXMucHVzaChtZXNoKTsKICBzY2VuZS5hZGQobWVzaCk7Cn0KCi8vIEEgdGhpbiBzdHJpcCB3cmFwcGluZyB0aGUgcGlwZSBhdCBgY2VudGVyYCwgbWFya2luZyB0aGUgSCBjb2xvdXIgc3dhcC4KZnVuY3Rpb24gYWRkSGFkYW1hcmRTdHJpcChjZW50ZXIsIGQpIHsKICBjb25zdCBzID0gYSA9PiAoYSA9PT0gZCA/IFNUUklQX1RISUNLIDogU1RSSVBfQ1JPU1MpOwogIGNvbnN0IHN0cmlwID0gbmV3IFRIUkVFLk1lc2goYm94R2VvbShzKDApLCBzKDIpLCBzKDEpKSwgc3RyaXBNYXRlcmlhbCk7CiAgc3RyaXAucG9zaXRpb24uY29weShjZW50ZXIpOwogIHN0cmlwTWVzaGVzLnB1c2goc3RyaXApOwogIHNjZW5lLmFkZChzdHJpcCk7Cn0KCmZvciAoY29uc3QgcGlwZSBvZiBwcm9ncmFtLnBpcGVzKSB7CiAgY29uc3QgW3N4LCBzeSwgc3pdID0gcGlwZS5zcmM7CiAgY29uc3QgW2R4LCBkeSwgZHpdID0gcGlwZS5kc3Q7CiAgY29uc3Qgc3RhcnQgPSB0b1ZlYyhzeCwgc3ksIHN6KTsKICBjb25zdCBlbmQgPSB0b1ZlYyhkeCwgZHksIGR6KTsKICBjb25zdCBkaXIgPSBlbmQuY2xvbmUoKS5zdWIoc3RhcnQpOwogIGNvbnN0IGxlbmd0aCA9IGRpci5sZW5ndGgoKTsKICBpZiAobGVuZ3RoID09PSAwKSBjb250aW51ZTsKICAvLyBUcmltIGVhY2ggZW5kIGJhY2sgYnkgYSBjdWJlIGhhbGYtc2l6ZSBzbyB0aGUgcGlwZSBtZWV0cyB0aGUgY3ViZSBzdXJmYWNlLgogIC8vIFkgY3ViZXMgYXJlIGhhbGYgaGVpZ2h0IGJ1dCBhcmUgc2xpZCB0b3dhcmQgdGhlIHBpcGUgKHNlZSB5U2hpZnQpIHNvIHRoaXMKICAvLyB1bmlmb3JtIHRyaW0gc3RpbGwgbGFuZHMgb24gdGhlaXIgZmFjZS4KICBjb25zdCBheGlzID0gc3ggIT09IGR4ID8gMCA6IChzeSAhPT0gZHkgPyAxIDogMik7CiAgY29uc3QgdW5pdCA9IGRpci5jbG9uZSgpLm5vcm1hbGl6ZSgpOwogIGNvbnN0IGZyb20gPSBzdGFydC5jbG9uZSgpLmFkZFNjYWxlZFZlY3Rvcih1bml0LCBDVUJFX1NJWkUgLyAyKTsKICBjb25zdCB0byA9IGVuZC5jbG9uZSgpLmFkZFNjYWxlZFZlY3Rvcih1bml0LCAtQ1VCRV9TSVpFIC8gMik7CiAgY29uc3QgdXNhYmxlID0gTWF0aC5tYXgoZnJvbS5kaXN0YW5jZVRvKHRvKSwgMC4wMSk7CiAgY29uc3QgbWlkID0gZnJvbS5jbG9uZSgpLmFkZCh0bykubXVsdGlwbHlTY2FsYXIoMC41KTsKCiAgY29uc3Qgc3JjQ29sb3JzID0gYXhpc0NvbG9yc0ZvcktpbmQocGlwZS5zcmNfa2luZCk7CiAgY29uc3QgZHN0Q29sb3JzID0gYXhpc0NvbG9yc0ZvcktpbmQocGlwZS5kc3Rfa2luZCk7CiAgaWYgKHBpcGUuaGFkYW1hcmQpIHsKICAgIC8vIFR3byBzZWdtZW50czogdGhlIHNyYyBoYWxmIGtlZXBzIHRoZSBzcmMgY3ViZSdzIGNvbG91cnMsIHRoZSBkc3QgaGFsZgogICAgLy8gdGhlIChzd2FwcGVkKSBkc3QgY29sb3Vycywgc28gdGhlIHBpcGUncyBjb2xvdXJzIGZsaXAgYXQgdGhlIG1pZHBvaW50LgogICAgY29uc3Qgc2VnID0gdXNhYmxlIC8gMjsKICAgIGFkZFBpcGVTZWdtZW50KG1pZC5jbG9uZSgpLmFkZFNjYWxlZFZlY3Rvcih1bml0LCAtdXNhYmxlIC8gNCksIGF4aXMsIHNlZywgc3JjQ29sb3JzKTsKICAgIGFkZFBpcGVTZWdtZW50KG1pZC5jbG9uZSgpLmFkZFNjYWxlZFZlY3Rvcih1bml0LCB1c2FibGUgLyA0KSwgYXhpcywgc2VnLCBkc3RDb2xvcnMpOwogICAgYWRkSGFkYW1hcmRTdHJpcChtaWQsIGF4aXMpOwogIH0gZWxzZSB7CiAgICBhZGRQaXBlU2VnbWVudChtaWQsIGF4aXMsIHVzYWJsZSwgc3JjQ29sb3JzIHx8IGRzdENvbG9ycyk7CiAgfQp9CgovLyBDYW1lcmEgZnJhbWluZy4gQm90aCBidXR0b24gcG9zZXMgc2hhcmUgb25lIDMvNCB2aWV3IGFuZ2xlIGFuZCBkaXN0YW5jZQovLyBmb3JtdWxhLCBzbyBmb3IgYSBzaG9ydCBjaXJjdWl0ICJWaWV3IGFsbCIgYW5kICJWaWV3IGxheW91dCBncmlkIiBjb2luY2lkZTsKLy8gdGhleSBvbmx5IGRpdmVyZ2Ugb25jZSB0aGUgZ3JhcGggZ3Jvd3MgdGFsbCBhYm92ZSB0aGUgZ3JpZC4KY29uc3QgaGFzQ3ViZXMgPSBwcm9ncmFtLmN1YmVzLmxlbmd0aCA+IDA7CmNvbnN0IFcgPSBwcm9ncmFtLmxheW91dC53aWR0aCwgSCA9IHByb2dyYW0ubGF5b3V0LmhlaWdodDsKCi8vIFdvcmxkLXNwYWNlIGJvdW5kaW5nIGJveCBvZiB0aGUgd2hvbGUgc2NlbmUgKGdyYXBoIGN1YmVzICsgbGF5b3V0IGdyaWQpLgpjb25zdCB3TWluWCA9IE1hdGgubWluKChoYXNDdWJlcyA/IG1pblggOiAwKSAqIFNQQUNJTkcsIC0wLjUgKiBTUEFDSU5HKTsKY29uc3Qgd01heFggPSBNYXRoLm1heCgoaGFzQ3ViZXMgPyBtYXhYIDogVyAtIDEpICogU1BBQ0lORywgKFcgLSAwLjUpICogU1BBQ0lORyk7CmNvbnN0IHdNaW5aID0gTWF0aC5taW4oKGhhc0N1YmVzID8gbWluWSA6IDApICogU1BBQ0lORywgLTAuNSAqIFNQQUNJTkcpOwpjb25zdCB3TWF4WiA9IE1hdGgubWF4KChoYXNDdWJlcyA/IG1heFkgOiBIIC0gMSkgKiBTUEFDSU5HLCAoSCAtIDAuNSkgKiBTUEFDSU5HKTsKY29uc3Qgd01pblkgPSBHUklEX1k7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBncmlkIHNpdHMgYXQgdGhlIGJvdHRvbQpjb25zdCB3TWF4WSA9IChoYXNDdWJlcyA/IG1heFogOiAwKSAqIFNQQUNJTkc7IC8vIHRvcCBvZiB0aGUgZ3JhcGgKCmNvbnN0IENBTV9BTkdMRSA9IG5ldyBUSFJFRS5WZWN0b3IzKDEsIDAuOCwgMSk7ICAvLyBkZWZhdWx0IDMvNCBkaXJlY3Rpb24KY29uc3QgQ0FNX0ZBQ1RPUiA9IDIuNTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBwZXItYXhpcyBvZmZzZXQgPSByYWRpdXMqZmFjdG9yCmZ1bmN0aW9uIHBvc2VGcm9tKHRhcmdldCwgcmFkaXVzKSB7CiAgY29uc3QgZCA9IE1hdGgubWF4KHJhZGl1cyAqIENBTV9GQUNUT1IsIDYpOwogIHJldHVybiB7CiAgICBwb3M6IHRhcmdldC5jbG9uZSgpLmFkZFNjYWxlZFZlY3RvcihDQU1fQU5HTEUsIGQpLAogICAgdGFyZ2V0OiB0YXJnZXQuY2xvbmUoKSwKICB9Owp9CgovLyAiVmlldyBhbGwiOiBmcmFtZSB0aGUgZW50aXJlIHNjZW5lLgpjb25zdCBhbGxUYXJnZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygKICAod01pblggKyB3TWF4WCkgLyAyLCAod01pblkgKyB3TWF4WSkgLyAyLCAod01pblogKyB3TWF4WikgLyAyKTsKY29uc3QgYWxsUmFkaXVzID0gTWF0aC5tYXgod01heFggLSB3TWluWCwgd01heFkgLSB3TWluWSwgd01heFogLSB3TWluWiwgMSkgLyAyOwpjb25zdCBhbGxQb3NlID0gcG9zZUZyb20oYWxsVGFyZ2V0LCBhbGxSYWRpdXMpOwoKLy8gIlZpZXcgbGF5b3V0IGdyaWQiOiBmcmFtZSB0aGUgMi1EIGZvb3RwcmludC4gVGhlIHRhcmdldCBpcyByYWlzZWQgYWJvdmUgdGhlCi8vIGdyaWQgc28gdGhlIGdyaWQgc2l0cyBhIGJpdCBiZWxvdyBjZW50cmUgKHVzaW5nIHRoZSBlbXB0eSBzcGFjZSBhYm92ZSBpdCkuCi8vIEZvciBhIGZsYXQgY2lyY3VpdCB0aGlzIHRhcmdldC9yYWRpdXMgbWF0Y2ggIlZpZXcgYWxsIiwgc28gdGhlIHZpZXdzIGFncmVlLgpjb25zdCBmb290cHJpbnRSYWRpdXMgPSBNYXRoLm1heChXLCBILCAxKSAqIFNQQUNJTkcgLyAyOwpjb25zdCBncmlkVGFyZ2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoCiAgKFcgLSAxKSAvIDIgKiBTUEFDSU5HLCBHUklEX1kgLyAyICsgU1BBQ0lORyAqIDEuMywgKEggLSAxKSAvIDIgKiBTUEFDSU5HKTsKY29uc3QgZ3JpZFBvc2UgPSBwb3NlRnJvbShncmlkVGFyZ2V0LCBmb290cHJpbnRSYWRpdXMgKiAxLjI1KTsKCi8vIE5lYXIvZmFyIHNpemVkIHRvIHRoZSBsYXJnZXIgcG9zZSBzbyBub3RoaW5nIGNsaXBzLgpjb25zdCBuZWFyID0gTWF0aC5tYXgoYWxsUmFkaXVzICogMC4wMDIsIDAuMSk7CmNvbnN0IGZhciA9IE1hdGgubWF4KGFsbFJhZGl1cyAqIDIwMCwgMjAwMDApOwpjb25zdCBjYW1lcmEgPSBuZXcgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEoNDUsIHdpbmRvdy5pbm5lcldpZHRoIC8gd2luZG93LmlubmVySGVpZ2h0LCBuZWFyLCBmYXIpOwoKY29uc3QgY29udHJvbHMgPSBuZXcgT3JiaXRDb250cm9scyhjYW1lcmEsIHJlbmRlcmVyLmRvbUVsZW1lbnQpOwpjb250cm9scy5lbmFibGVEYW1waW5nID0gdHJ1ZTsKY29udHJvbHMuZGFtcGluZ0ZhY3RvciA9IDAuMDg7CgpmdW5jdGlvbiBtb3ZlQ2FtZXJhKHBvc2UpIHsKICBjYW1lcmEucG9zaXRpb24uY29weShwb3NlLnBvcyk7CiAgY29udHJvbHMudGFyZ2V0LmNvcHkocG9zZS50YXJnZXQpOwogIGNvbnRyb2xzLnVwZGF0ZSgpOwp9CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG4tcmVzZXQnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IG1vdmVDYW1lcmEoYWxsUG9zZSkpOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWxheW91dCcpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gbW92ZUNhbWVyYShncmlkUG9zZSkpOwoKLy8gTGF5b3V0LWdyaWQgdmlldyBpcyB0aGUgZGVmYXVsdCB3aGVuIHRoZSBwYWdlIG9wZW5zLgptb3ZlQ2FtZXJhKGdyaWRQb3NlKTsKCmNvbnN0IF9fZml0ID0gKCkgPT4gewogIHJlbmRlcmVyLnNldFBpeGVsUmF0aW8oTWF0aC5taW4oKHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDEpICogMiwgNCkpOwogIGNhbWVyYS5hc3BlY3QgPSB3aW5kb3cuaW5uZXJXaWR0aCAvIHdpbmRvdy5pbm5lckhlaWdodDsKICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpOwogIHJlbmRlcmVyLnNldFNpemUod2luZG93LmlubmVyV2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodCk7Cn07CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBfX2ZpdCk7CndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgX19maXQpOwpuZXcgUmVzaXplT2JzZXJ2ZXIoX19maXQpLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTsKY29uc3QgX193YXRjaERQUiA9ICgpID0+IHsKICBtYXRjaE1lZGlhKGAocmVzb2x1dGlvbjogJHt3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb31kcHB4KWApCiAgICAuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4geyBfX2ZpdCgpOyBfX3dhdGNoRFBSKCk7IH0sIHsgb25jZTogdHJ1ZSB9KTsKfTsKX193YXRjaERQUigpOwoKLy8gUGVyLWdhdGUtdHlwZSBsZWdlbmQgZm9yIGxvZ2ljYWwgdmlldzogb25lIHJvdyBwZXIgY29sb3VyIGdyb3VwICh0eXBlcyB0aGF0Ci8vIHNoYXJlIGEgY29sb3VyLCBlLmcuIFQgLyBUREcsIGFyZSBzaG93biB0b2dldGhlcikuCnsKICBjb25zdCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xlZ2VuZC1sb2dpY2FsLWxpc3QnKTsKICBjb25zdCBncm91cHMgPSB7fTsKICBmb3IgKGNvbnN0IGMgb2YgcHJvZ3JhbS5jdWJlcykKICAgIChncm91cHNbY29sb3JLZXkoYy5nYXRlX3R5cGUpXSB8fCAoZ3JvdXBzW2NvbG9yS2V5KGMuZ2F0ZV90eXBlKV0gPSBuZXcgU2V0KCkpKS5hZGQoYy5nYXRlX3R5cGUpOwogIE9iamVjdC5rZXlzKGdyb3Vwcykuc29ydCgpLmZvckVhY2goayA9PiB7CiAgICBjb25zdCBsYWJlbCA9IFsuLi5ncm91cHNba11dLnNvcnQoKS5tYXAoZ3QgPT4gZ3QudG9VcHBlckNhc2UoKSkuam9pbignIC8gJyk7CiAgICBjb25zdCBjb2xvciA9ICcjJyArIGxvZ2ljYWxDdWJlTWF0ZXJpYWwoaykuY29sb3IuZ2V0SGV4U3RyaW5nKCk7CiAgICBjb25zdCByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIHJvdy5jbGFzc05hbWUgPSAnbGVnJzsKICAgIHJvdy5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0ibGVnLXN3IiBzdHlsZT0iYmFja2dyb3VuZDonICsgY29sb3IgKyAnIj48L2Rpdj4nICsKICAgICAgJzxkaXYgY2xhc3M9ImxlZy1sYmwiPicgKyBsYWJlbCArICc8L2Rpdj4nOwogICAgbGlzdC5hcHBlbmRDaGlsZChyb3cpOwogIH0pOwp9CgovLyBWaWV3IHRvZ2dsZS4gU3VyZmFjZS1jb2RlIHZpZXcgKGRlZmF1bHQpIGNvbG91cnMgY3ViZXMvcGlwZXMgYnkgdGhlaXIgWC9aCi8vIGJvdW5kYXJ5IHR5cGVzLiBMb2dpY2FsIHZpZXcgY29sb3VycyBlYWNoIGN1YmUgYnkgdGhlIGdhdGUgaXQgYmVsb25ncyB0bywKLy8gZHJhd3MgcGlwZXMgaW4gb25lIGNvbnN0YW50IGNvbG91ciwgYW5kIGRyb3BzIHRoZSBIIHN3YXAgc3RyaXBzLgpmdW5jdGlvbiBzZXRWaWV3KG1vZGUpIHsKICBjb25zdCBsb2dpY2FsID0gbW9kZSA9PT0gJ2xvZ2ljYWwnOwogIGZvciAoY29uc3QgbSBvZiBjdWJlTWVzaGVzKQogICAgbS5tYXRlcmlhbCA9IGxvZ2ljYWwgPyBsb2dpY2FsQ3ViZU1hdGVyaWFsKG0udXNlckRhdGEuZ3QpIDogbS51c2VyRGF0YS5zdXJmYWNlTWF0OwogIGZvciAoY29uc3QgcCBvZiBwaXBlTWVzaGVzKQogICAgcC5tYXRlcmlhbCA9IGxvZ2ljYWwgPyBsb2dpY2FsUGlwZU1hdGVyaWFscyhwLnVzZXJEYXRhLmQpIDogcC51c2VyRGF0YS5zdXJmYWNlTWF0OwogIGZvciAoY29uc3QgcyBvZiBzdHJpcE1lc2hlcykgcy52aXNpYmxlID0gIWxvZ2ljYWw7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xlZ2VuZCcpLnN0eWxlLmRpc3BsYXkgPSBsb2dpY2FsID8gJ25vbmUnIDogJyc7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xlZ2VuZC1sb2dpY2FsJykuc3R5bGUuZGlzcGxheSA9IGxvZ2ljYWwgPyAnJyA6ICdub25lJzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLXN1cmZhY2UnKS5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnLCAhbG9naWNhbCk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1sb2dpY2FsJykuY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJywgbG9naWNhbCk7Cn0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2J0bi1zdXJmYWNlJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBzZXRWaWV3KCdzdXJmYWNlJykpOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnRuLWxvZ2ljYWwnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHNldFZpZXcoJ2xvZ2ljYWwnKSk7CgovLyBIb3ZlciB0b29sdGlwOiByYXljYXN0IHRoZSBjdWJlcyBhbmQgZGVzY3JpYmUgdGhlIG9uZSB1bmRlciB0aGUgY3Vyc29yLCBhbmQKLy8gbGlnaHQgdXAgZXZlcnkgY3ViZSBvZiB0aGUgc2FtZSBnYXRlIHdpdGggYW4gYWRkaXRpdmUgZ2xvdyBzaGVsbC4KY29uc3QgdG9vbHRpcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sdGlwJyk7CmNvbnN0IHJheWNhc3RlciA9IG5ldyBUSFJFRS5SYXljYXN0ZXIoKTsKY29uc3QgcG9pbnRlciA9IG5ldyBUSFJFRS5WZWN0b3IyKCk7CmZ1bmN0aW9uIGN1YmVMYWJlbChneCwgZ3kpIHsKICBjb25zdCBxaSA9IHF1Yml0QnlHcmlkW2d4ICsgJywnICsgZ3ldOwogIHJldHVybiBxaSAhPT0gdW5kZWZpbmVkCiAgICA/ICdRdWJpdCBxJyArIHFpCiAgICA6ICdBdXhpbGlhcnkgYXQgKCcgKyBneCArICcsICcgKyBneSArICcpJzsKfQoKY29uc3QgaGlnaGxpZ2h0R3JvdXAgPSBuZXcgVEhSRUUuR3JvdXAoKTsKc2NlbmUuYWRkKGhpZ2hsaWdodEdyb3VwKTsKY29uc3QgaGlnaGxpZ2h0TWF0ZXJpYWwgPSBuZXcgVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWwoewogIGNvbG9yOiAweGZmZmZmZiwgdHJhbnNwYXJlbnQ6IHRydWUsIG9wYWNpdHk6IDAuMjgsCiAgYmxlbmRpbmc6IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmcsIGRlcHRoV3JpdGU6IGZhbHNlLAp9KTsKbGV0IGhpZ2hsaWdodGVkR2F0ZSA9IG51bGw7CmZ1bmN0aW9uIGhpZ2hsaWdodEdhdGUoZ2kpIHsKICBpZiAoZ2kgPT09IGhpZ2hsaWdodGVkR2F0ZSkgcmV0dXJuOwogIGhpZ2hsaWdodGVkR2F0ZSA9IGdpOwogIGhpZ2hsaWdodEdyb3VwLmNsZWFyKCk7CiAgaWYgKGdpID09PSBudWxsKSByZXR1cm47CiAgZm9yIChjb25zdCBtIG9mIChjdWJlc0J5R2F0ZVtnaV0gfHwgW10pKSB7CiAgICBjb25zdCBzaGVsbCA9IG5ldyBUSFJFRS5NZXNoKG0uZ2VvbWV0cnksIGhpZ2hsaWdodE1hdGVyaWFsKTsKICAgIHNoZWxsLnBvc2l0aW9uLmNvcHkobS5wb3NpdGlvbik7CiAgICBzaGVsbC5zY2FsZS5zZXRTY2FsYXIoMS4xNCk7CiAgICBoaWdobGlnaHRHcm91cC5hZGQoc2hlbGwpOwogIH0KfQoKY29uc3QgaG92ZXJUYXJnZXRzID0gY3ViZU1lc2hlcy5jb25jYXQodGlsZU1lc2hlcyk7CnJlbmRlcmVyLmRvbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcm1vdmUnLCAoZXZlbnQpID0+IHsKICBwb2ludGVyLnggPSAoZXZlbnQuY2xpZW50WCAvIHdpbmRvdy5pbm5lcldpZHRoKSAqIDIgLSAxOwogIHBvaW50ZXIueSA9IC0oZXZlbnQuY2xpZW50WSAvIHdpbmRvdy5pbm5lckhlaWdodCkgKiAyICsgMTsKICByYXljYXN0ZXIuc2V0RnJvbUNhbWVyYShwb2ludGVyLCBjYW1lcmEpOwogIGNvbnN0IGhpdCA9IHJheWNhc3Rlci5pbnRlcnNlY3RPYmplY3RzKGhvdmVyVGFyZ2V0cywgZmFsc2UpWzBdOwogIGlmIChoaXQpIHsKICAgIGNvbnN0IHsgZ3gsIGd5LCBnaSwgZ3QsIGdxLCBpc1RpbGUgfSA9IGhpdC5vYmplY3QudXNlckRhdGE7CiAgICAvLyBMYXlvdXQtZ3JpZCB0aWxlcyBkZXNjcmliZSB0aGUgcXViaXQgb25seTsgY3ViZXMgYWxzbyBuYW1lIHRoZWlyIGdhdGUsCiAgICAvLyBsYWJlbGxlZCBieSB0aGUgcXViaXRzIGl0IGFjdHMgb24sIGUuZy4gIlQgcTAiIG9yICJDWCBxMCwgcTEiLgogICAgY29uc3QgZ2F0ZUxhYmVsID0gZ3QudG9VcHBlckNhc2UoKSArCiAgICAgIChncSAmJiBncS5sZW5ndGggPyAnICcgKyBncS5tYXAocSA9PiAncScgKyBxKS5qb2luKCcsICcpIDogJycpOwogICAgdG9vbHRpcC5pbm5lckhUTUwgPSBpc1RpbGUKICAgICAgPyBjdWJlTGFiZWwoZ3gsIGd5KQogICAgICA6ICdHYXRlOiAnICsgZ2F0ZUxhYmVsICsKICAgICAgICAnPGJyPjxzcGFuIHN0eWxlPSJjb2xvcjojODg4Ij4nICsgY3ViZUxhYmVsKGd4LCBneSkgKyAnPC9zcGFuPic7CiAgICB0b29sdGlwLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgdG9vbHRpcC5zdHlsZS5sZWZ0ID0gKGV2ZW50LmNsaWVudFggKyAxNCkgKyAncHgnOwogICAgdG9vbHRpcC5zdHlsZS50b3AgPSAoZXZlbnQuY2xpZW50WSArIDE0KSArICdweCc7CiAgICBoaWdobGlnaHRHYXRlKGlzVGlsZSA/IG51bGwgOiBnaSk7CiAgfSBlbHNlIHsKICAgIHRvb2x0aXAuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIGhpZ2hsaWdodEdhdGUobnVsbCk7CiAgfQp9KTsKcmVuZGVyZXIuZG9tRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVybGVhdmUnLCAoKSA9PiB7CiAgdG9vbHRpcC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogIGhpZ2hsaWdodEdhdGUobnVsbCk7Cn0pOwoKLy8gSFVEIHBvcHVsYXRpb24uCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmZvLXF1Yml0cycpLnRleHRDb250ZW50ID0gcHJvZ3JhbS5zdGF0cy5xdWJpdF9jb3VudDsKZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZm8tbm9kZXMnKS50ZXh0Q29udGVudCA9IHByb2dyYW0uY3ViZXMubGVuZ3RoOwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5mby1sYXlvdXQnKS50ZXh0Q29udGVudCA9CiAgcHJvZ3JhbS5sYXlvdXQud2lkdGggKyAnIHggJyArIHByb2dyYW0ubGF5b3V0LmhlaWdodDsKY29uc3QgZ2F0ZXNFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmZvLWdhdGVzJyk7CmNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhwcm9ncmFtLnN0YXRzLm5vZGVzX2J5X2dhdGUpLnNvcnQoKTsKaWYgKCFlbnRyaWVzLmxlbmd0aCkgewogIGdhdGVzRWwudGV4dENvbnRlbnQgPSAnKG5vbmUpJzsKfSBlbHNlIHsKICBnYXRlc0VsLmlubmVySFRNTCA9IGVudHJpZXMKICAgIC5tYXAoKFtnLCBuXSkgPT4gJzxzcGFuIHN0eWxlPSJjb2xvcjojY2NjIj4nICsgZyArICc8L3NwYW4+OiAnICsgbikKICAgIC5qb2luKCcgJm5ic3A7ICcpOwp9CgpmdW5jdGlvbiBhbmltYXRlKCkgewogIHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTsKICBjb250cm9scy51cGRhdGUoKTsKICByZW5kZXJlci5yZW5kZXIoc2NlbmUsIGNhbWVyYSk7Cn0KYW5pbWF0ZSgpOwo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==" width="100%" height="720" style={{ border: "none", borderRadius: "8px" }} />

The workflow runs in four stages, each covered on its own page:

<CardGroup cols={2}>
  <Card title="Initialize the logical noise model" href="/user-guide/error-correction/logical-noise">
    Turn a physical noise description into logical error-rate information.
  </Card>

  <Card title="Route a program" href="/user-guide/error-correction/routing">
    Lower a transpiled Clifford+T circuit onto the surface-code lattice.
  </Card>

  <Card title="Visualize the routed program" href="/user-guide/error-correction/visualization">
    Render the routed program as an interactive 3-D visualization.
  </Card>

  <Card title="Estimate the total error" href="/user-guide/error-correction/total-error">
    Combine routing and noise to estimate total error across code distances.
  </Card>
</CardGroup>

The stages are sequential: the routed program and the logical noise feed the final error
estimate. For the full API, see the
[Error Correction SDK reference](/sdk-reference/error-correction).
