DISCOVER THE WHAT WOMEN WANT AFRICA SUMMIT 4.O ~TRADE MARK HOTEL NAIROBI 2026
Today @ XX:XX PM
-
-WEEKS
-
-DAYS
-
-HOURS
-
-MINS
-
-SECS
{"js":"PCFET0NUWVBFIGh0bWw+CjwhLS0K4pWU4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWXCuKVkSAgVkVSU0lPTjogVk8gfiBPUklHSU5BTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKVkQrilZEgIFYtV09SRDogIFZJU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilZEK4pWRICBTTFVHIEE6ICAvdm9ydGV4ICAgICAgICAgICAgICAoRnVubmVsIEEgfiBPcmlnaW5hbCkg4pWRCuKVkSAgU0xVRyBCOiAgL3RoZXN1bW1pdDIwMjYtdmlzaW9uIChGdW5uZWwgQiB+IFNwbGl0KSAgICDilZEK4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWdCi0tPgoKPGh0bWwgbGFuZz0iZW4iPgo8aGVhZD4KPG1ldGEgY2hhcnNldD0iVVRGLTgiPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+Cjx0aXRsZT5Wb3J0ZXggQWx0aXR1ZGUgQXNzZXNzbWVudCB+IFRoZSBTdW1taXQgfiBTaGUgRXZvbHZlcyBBZnJpY2E8L3RpdGxlPgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iRGlzY292ZXIgeW91ciBkaWdpdGFsIHNvdmVyZWlnbnR5IGFsdGl0dWRlLiBUaGUgVm9ydGV4IEFsdGl0dWRlIEFzc2Vzc21lbnQgYnkgU2hlIEV2b2x2ZXMgQWZyaWNhIH4gZmluZCBvdXQgd2hlcmUgeW91IHRydWx5IHN0YW5kIGFuZCBleGFjdGx5IHdoZXJlIHRvIGdvIG5leHQuIj4KPG1ldGEgbmFtZT0idGhlbWUtY29sb3IiIGNvbnRlbnQ9IiMxQjNBNkIiPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20iPgo8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUNvcm1vcmFudCtHYXJhbW9uZDppdGFsLHdnaHRAMCw0MDA7MCw2MDA7MCw3MDA7MSw0MDAmZmFtaWx5PU91dGZpdDp3Z2h0QDMwMDs0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgoKPHN0eWxlPgoqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgYm94LXNpemluZzpib3JkZXItYm94OyB9Cmh0bWwgeyBzY3JvbGwtYmVoYXZpb3I6c21vb3RoOyB9Cgo6cm9vdCB7CiAgLS1uYXZ5OiAgICAgICMxQjNBNkI7CiAgLS1uYXZ5LWRlZXA6ICMwRDIyNDc7CiAgLS1uYXZ5LW1pZDogICMyQzUyODI7CiAgLS1nb2xkOiAgICAgICNDOTk1MUE7CiAgLS1nb2xkMjogICAgICNFOEI0MzI7CiAgLS1nb2xkMzogICAgICNGNUQwNjA7CiAgLS1ncmV5OiAgICAgICM0QTU1Njg7CiAgLS1ncmV5LW1pZDogICM3MTgwOTY7CiAgLS13aGl0ZTogICAgICNGRkZGRkY7CiAgLS1kYXJrOiAgICAgICMwNzBEMUE7CiAgLyogTGV2ZWwgY29sb3VycyAqLwogIC0taW52aXNpYmxlOiAgICM0QTU1Njg7CiAgLS1lbWVyZ2luZzogICAgIzJDN0E3QjsKICAtLXZpc2libGU6ICAgICAjMkI2Q0IwOwogIC0taW5mbHVlbnRpYWw6ICM2QjQ2QzE7CiAgLS1zb3ZlcmVpZ246ICAgI0M5OTUxQTsKfQoKYm9keSB7CiAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCBzYW5zLXNlcmlmOwogIGJhY2tncm91bmQ6IHZhcigtLWRhcmspOwogIG1pbi1oZWlnaHQ6IDEwMHZoOwogIG92ZXJmbG93LXg6IGhpZGRlbjsKfQoKLnBhZ2UtYmcgewogIHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IDA7IHotaW5kZXg6IDA7CiAgYmFja2dyb3VuZDoKICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDIwJSAxNSUsIHJnYmEoMjcsNTgsMTA3LDAuOCkgMCUsIHRyYW5zcGFyZW50IDU1JSksCiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCA4MCUgODUlLCByZ2JhKDIwMSwxNDksMjYsMC4xOCkgMCUsIHRyYW5zcGFyZW50IDUwJSksCiAgICAjMDcwRDFBOwp9CgovKiDilIDilIAgRkxPQVRJRVMg4pSA4pSAICovCi5mbG9hdGllcyB7IHBvc2l0aW9uOmZpeGVkOyBpbnNldDowOyBwb2ludGVyLWV2ZW50czpub25lOyB6LWluZGV4OjE7IG92ZXJmbG93OmhpZGRlbjsgfQouZmxvYXRpZSAgeyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOi02MHB4OyBhbmltYXRpb246ZmxvYXRVcCBsaW5lYXIgaW5maW5pdGU7IG9wYWNpdHk6MDsgfQpAa2V5ZnJhbWVzIGZsb2F0VXAgewogIDAlICAgeyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSByb3RhdGUoLTNkZWcpOyAgICBvcGFjaXR5OjA7IH0KICA2JSAgIHsgb3BhY2l0eTowLjQ7IH0KICA5MCUgIHsgb3BhY2l0eTowLjEyOyB9CiAgMTAwJSB7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMTB2aCkgcm90YXRlKDEwZGVnKTsgb3BhY2l0eTowOyB9Cn0KCi8qIOKUgOKUgCBXUkFQIOKUgOKUgCAqLwoud3JhcCB7CiAgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTA7CiAgbWluLWhlaWdodDoxMDB2aDsKICBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6Y2VudGVyOwogIHBhZGRpbmc6MCAxcmVtIDRyZW07Cn0KCi8qIOKUgOKUgCBIRUFERVIg4pSA4pSAICovCi5oZWFkZXIgewogIHdpZHRoOjEwMCU7IG1heC13aWR0aDo2MjBweDsKICBwYWRkaW5nOjIuNXJlbSAxLjVyZW0gMS44cmVtOwogIHRleHQtYWxpZ246Y2VudGVyOwp9Ci5oZWFkZXItYnJhbmQgewogIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBnYXA6MC41cmVtOwogIG1hcmdpbi1ib3R0b206MS4ycmVtOwp9Ci5oZWFkZXItYnJhbmQgLmNyb3duIHsgZm9udC1zaXplOjEuNnJlbTsgZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxMnB4IHJnYmEoMjAxLDE0OSwyNiwwLjgpKTsgfQouaGVhZGVyLWJyYW5kIC5icmFuZC10ZXh0IHsgZm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2VyaWY7IGZvbnQtc2l6ZToxcmVtOyBmb250LXdlaWdodDo2MDA7IGNvbG9yOnZhcigtLWdvbGQyKTsgbGV0dGVyLXNwYWNpbmc6MC4xNWVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0KCi5oZWFkZXIgaDEgeyBmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZjsgZm9udC1zaXplOjIuNHJlbTsgZm9udC13ZWlnaHQ6NzAwOyBjb2xvcjp2YXIoLS13aGl0ZSk7IGxpbmUtaGVpZ2h0OjEuMTU7IG1hcmdpbi1ib3R0b206MC41cmVtOyB9Ci5oZWFkZXIgaDEgc3BhbiB7IGNvbG9yOnZhcigtLWdvbGQyKTsgfQouaGVhZGVyIHAgeyBmb250LXNpemU6MC44NXJlbTsgY29sb3I6dmFyKC0tZ3JleS1taWQpOyBsaW5lLWhlaWdodDoxLjY1OyBtYXgtd2lkdGg6NDgwcHg7IG1hcmdpbjowIGF1dG8gMS4ycmVtOyB9CgovKiBhbHRpdHVkZSBwcmV2aWV3IHN0cmlwICovCi5hbHRpdHVkZS1zdHJpcCB7CiAgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDowLjNyZW07CiAgZmxleC13cmFwOndyYXA7IG1hcmdpbi1ib3R0b206MC41cmVtOwp9Ci5hbHQtcGlwIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDowLjNyZW07IH0KLmFsdC1kb3QgeyB3aWR0aDo4cHg7IGhlaWdodDo4cHg7IGJvcmRlci1yYWRpdXM6NTAlOyB9Ci5hbHQtbGFiZWwgeyBmb250LXNpemU6MC42cmVtOyBsZXR0ZXItc3BhY2luZzowLjEyZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6dmFyKC0tZ3JleS1taWQpOyB9Ci5hbHQtc2VwIHsgZm9udC1zaXplOjAuNnJlbTsgY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjE1KTsgfQoKLyog4pSA4pSAIFBST0dSRVNTIEJBUiDilIDilIAgKi8KLnByb2dyZXNzLXdyYXAgeyB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NjIwcHg7IHBhZGRpbmc6MCAxLjVyZW07IG1hcmdpbi1ib3R0b206MS41cmVtOyB9Ci5wcm9ncmVzcy1oZWFkZXIgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBtYXJnaW4tYm90dG9tOjAuNHJlbTsgfQoucHJvZ3Jlc3MtaGVhZGVyIHNwYW4geyBmb250LXNpemU6MC42MnJlbTsgbGV0dGVyLXNwYWNpbmc6MC4xNWVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGNvbG9yOnZhcigtLWdyZXktbWlkKTsgfQoucHJvZ3Jlc3MtaGVhZGVyIC5xLWNvdW50IHsgY29sb3I6dmFyKC0tZ29sZCk7IGZvbnQtd2VpZ2h0OjYwMDsgfQoucHJvZ3Jlc3MtdHJhY2sgeyBoZWlnaHQ6NHB4OyBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7IGJvcmRlci1yYWRpdXM6NHB4OyBvdmVyZmxvdzpoaWRkZW47IH0KLnByb2dyZXNzLWZpbGwgeyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdmFyKC0tbmF2eS1taWQpLHZhcigtLWdvbGQpKTsgYm9yZGVyLXJhZGl1czo0cHg7IHRyYW5zaXRpb246d2lkdGggMC41cyBlYXNlOyB3aWR0aDowJTsgfQoKLyog4pSA4pSAIFFVRVNUSU9OIENBUkQg4pSA4pSAICovCi5xLXN0YWdlIHsgd2lkdGg6MTAwJTsgbWF4LXdpZHRoOjYyMHB4OyB9CgoucS1jYXJkIHsKICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoMjcsNTgsMTA3LDAuNDUpIDAlLCByZ2JhKDEzLDM0LDcxLDAuOCkgMTAwJSk7CiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsMC4yNSk7CiAgYm9yZGVyLXJhZGl1czoxOHB4OwogIHBhZGRpbmc6MS44cmVtIDEuNnJlbSAxLjRyZW07CiAgbWFyZ2luLWJvdHRvbToxcmVtOwogIGFuaW1hdGlvbjpjYXJkSW4gMC40cyBlYXNlIGZvcndhcmRzOwp9CkBrZXlmcmFtZXMgY2FyZEluIHsgZnJvbSB7IG9wYWNpdHk6MDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTZweCk7IH0gdG8geyBvcGFjaXR5OjE7IHRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOyB9IH0KCi5xLWRpbWVuc2lvbiB7CiAgZm9udC1zaXplOjAuNThyZW07IGZvbnQtd2VpZ2h0OjYwMDsgbGV0dGVyLXNwYWNpbmc6MC4yNWVtOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6dmFyKC0tZ29sZCk7IG1hcmdpbi1ib3R0b206MC42cmVtOyBkaXNwbGF5OmJsb2NrOwp9Ci5xLW51bWJlciB7IGZvbnQtc2l6ZTowLjY1cmVtOyBjb2xvcjp2YXIoLS1ncmV5LW1pZCk7IG1hcmdpbi1ib3R0b206MC4zcmVtOyBkaXNwbGF5OmJsb2NrOyB9Ci5xLXRleHQgewogIGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOwogIGZvbnQtc2l6ZToxLjM1cmVtOyBmb250LXdlaWdodDo2MDA7CiAgY29sb3I6dmFyKC0td2hpdGUpOyBsaW5lLWhlaWdodDoxLjQ1OyBtYXJnaW4tYm90dG9tOjEuNHJlbTsKfQoKLyogYW5zd2VyIG9wdGlvbnMgKi8KLmFuc3dlcnMgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgZ2FwOjAuNTVyZW07IH0KLmFuc3dlci1idG4gewogIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgZ2FwOjAuODVyZW07CiAgcGFkZGluZzowLjg1cmVtIDFyZW07CiAgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMDQpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEpOwogIGJvcmRlci1yYWRpdXM6MTBweDsgY3Vyc29yOnBvaW50ZXI7CiAgdGV4dC1hbGlnbjpsZWZ0OyB0cmFuc2l0aW9uOmFsbCAwLjJzOwogIHdpZHRoOjEwMCU7Cn0KLmFuc3dlci1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOnJnYmEoMjcsNTgsMTA3LDAuNSk7IGJvcmRlci1jb2xvcjpyZ2JhKDIwMSwxNDksMjYsMC40KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoNHB4KTsgfQouYW5zd2VyLWJ0bi5zZWxlY3RlZCB7IGJhY2tncm91bmQ6cmdiYSgyMDEsMTQ5LDI2LDAuMTUpOyBib3JkZXItY29sb3I6dmFyKC0tZ29sZCk7IH0KLmFuc3dlci1idG4uc2VsZWN0ZWQgLmEtbGV0dGVyIHsgYmFja2dyb3VuZDp2YXIoLS1nb2xkKTsgY29sb3I6dmFyKC0tZGFyayk7IH0KCi5hLWxldHRlciB7CiAgbWluLXdpZHRoOjI2cHg7IGhlaWdodDoyNnB4OwogIGJhY2tncm91bmQ6cmdiYSgyNyw1OCwxMDcsMC44KTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwwLjMpOwogIGJvcmRlci1yYWRpdXM6NnB4OwogIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOwogIGZvbnQtc2l6ZTowLjdyZW07IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6dmFyKC0tZ29sZCk7CiAgZmxleC1zaHJpbms6MDsgbWFyZ2luLXRvcDoxcHg7IHRyYW5zaXRpb246YWxsIDAuMnM7Cn0KLmEtdGV4dCB7IGZvbnQtc2l6ZTowLjgycmVtOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuODUpOyBsaW5lLWhlaWdodDoxLjU7IH0KCi8qIG5leHQgYnV0dG9uICovCi5uZXh0LWJ0biB7CiAgd2lkdGg6MTAwJTsgcGFkZGluZzowLjlyZW07CiAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWdvbGQpIDAlLCNBODdBMTIgMTAwJSk7CiAgY29sb3I6dmFyKC0tZGFyayk7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjEwcHg7CiAgZm9udC1mYW1pbHk6J091dGZpdCcsc2Fucy1zZXJpZjsgZm9udC1zaXplOjAuODhyZW07IGZvbnQtd2VpZ2h0OjcwMDsKICBjdXJzb3I6cG9pbnRlcjsgbGV0dGVyLXNwYWNpbmc6MC4wNGVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgdHJhbnNpdGlvbjphbGwgMC4yMnM7IG9wYWNpdHk6MC40OyBwb2ludGVyLWV2ZW50czpub25lOwogIGJveC1zaGFkb3c6MCA0cHggMjBweCByZ2JhKDIwMSwxNDksMjYsMC4yNSk7Cn0KLm5leHQtYnRuLmFjdGl2ZSB7IG9wYWNpdHk6MTsgcG9pbnRlci1ldmVudHM6YXV0bzsgYm94LXNoYWRvdzowIDRweCAyNHB4IHJnYmEoMjAxLDE0OSwyNiwwLjQpOyB9Ci5uZXh0LWJ0bi5hY3RpdmU6aG92ZXIgeyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTsgYm94LXNoYWRvdzowIDhweCAzMnB4IHJnYmEoMjAxLDE0OSwyNiwwLjUpOyB9CgovKiDilIDilIAgSU5UUk8gU0NSRUVOIOKUgOKUgCAqLwouaW50cm8tc2NyZWVuIHsKICB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NjIwcHg7CiAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDI3LDU4LDEwNywwLjQ1KSAwJSwgcmdiYSgxMywzNCw3MSwwLjg1KSAxMDAlKTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwwLjMpOwogIGJvcmRlci1yYWRpdXM6MjBweDsgcGFkZGluZzoyLjJyZW0gMS44cmVtOwogIHRleHQtYWxpZ246Y2VudGVyOwp9Ci5pbnRyby1jcm93biB7IGZvbnQtc2l6ZTozLjVyZW07IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1ib3R0b206MXJlbTsgZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAyNHB4IHJnYmEoMjAxLDE0OSwyNiwwLjkpKTsgYW5pbWF0aW9uOmNyb3duUHVsc2UgMi41cyBlYXNlLWluLW91dCBpbmZpbml0ZTsgfQpAa2V5ZnJhbWVzIGNyb3duUHVsc2UgewogIDAlLDEwMCUgeyBmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDIwcHggcmdiYSgyMDEsMTQ5LDI2LDAuNykpOyB0cmFuc2Zvcm06c2NhbGUoMSk7IH0KICA1MCUgICAgICB7IGZpbHRlcjpkcm9wLXNoYWRvdygwIDAgNDBweCByZ2JhKDIwMSwxNDksMjYsMSkpOyB0cmFuc2Zvcm06c2NhbGUoMS4wNyk7IH0KfQouaW50cm8tc2NyZWVuIGgyIHsgZm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2VyaWY7IGZvbnQtc2l6ZToxLjlyZW07IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6dmFyKC0td2hpdGUpOyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgbGluZS1oZWlnaHQ6MS4yOyB9Ci5pbnRyby1zY3JlZW4gaDIgZW0geyBjb2xvcjp2YXIoLS1nb2xkMik7IGZvbnQtc3R5bGU6aXRhbGljOyB9Ci5pbnRyby1zY3JlZW4gcCB7IGZvbnQtc2l6ZTowLjgzcmVtOyBjb2xvcjp2YXIoLS1ncmV5LW1pZCk7IGxpbmUtaGVpZ2h0OjEuNzsgbWFyZ2luLWJvdHRvbToxLjRyZW07IG1heC13aWR0aDo0MjBweDsgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IH0KCi5sZXZlbHMtcHJldmlldyB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBnYXA6MC40cmVtOyBtYXJnaW4tYm90dG9tOjEuNnJlbTsgdGV4dC1hbGlnbjpsZWZ0OyB9Ci5sZXZlbC1yb3cgewogIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MC43NXJlbTsKICBwYWRkaW5nOjAuNXJlbSAwLjc1cmVtOyBib3JkZXItcmFkaXVzOjhweDsKICBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4wMyk7IGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsKfQoubGV2ZWwtaWNvbiB7IGZvbnQtc2l6ZToxLjFyZW07IHdpZHRoOjI0cHg7IHRleHQtYWxpZ246Y2VudGVyOyB9Ci5sZXZlbC1uYW1lIHsgZm9udC1zaXplOjAuNzhyZW07IGZvbnQtd2VpZ2h0OjYwMDsgfQoubGV2ZWwtZGVzYyB7IGZvbnQtc2l6ZTowLjY4cmVtOyBjb2xvcjp2YXIoLS1ncmV5LW1pZCk7IG1hcmdpbi1sZWZ0OmF1dG87IHRleHQtYWxpZ246cmlnaHQ7IG1heC13aWR0aDoxODBweDsgbGluZS1oZWlnaHQ6MS4zOyB9Cgouc3RhcnQtYnRuIHsKICB3aWR0aDoxMDAlOyBwYWRkaW5nOjFyZW07CiAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWdvbGQpIDAlLCNBODdBMTIgMTAwJSk7CiAgY29sb3I6dmFyKC0tZGFyayk7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjEycHg7CiAgZm9udC1mYW1pbHk6J091dGZpdCcsc2Fucy1zZXJpZjsgZm9udC1zaXplOjAuOTVyZW07IGZvbnQtd2VpZ2h0OjcwMDsKICBjdXJzb3I6cG9pbnRlcjsgbGV0dGVyLXNwYWNpbmc6MC4wNGVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgYm94LXNoYWRvdzowIDZweCAyOHB4IHJnYmEoMjAxLDE0OSwyNiwwLjQpOyB0cmFuc2l0aW9uOmFsbCAwLjIyczsKfQouc3RhcnQtYnRuOmhvdmVyIHsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7IGJveC1zaGFkb3c6MCAxMHB4IDM2cHggcmdiYSgyMDEsMTQ5LDI2LDAuNTUpOyB9CgovKiDilIDilIAgQ0FQVFVSRSBTQ1JFRU4g4pSA4pSAICovCi5jYXB0dXJlLXNjcmVlbiB7CiAgd2lkdGg6MTAwJTsgbWF4LXdpZHRoOjYyMHB4OwogIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgyNyw1OCwxMDcsMC40NSkgMCUsIHJnYmEoMTMsMzQsNzEsMC44NSkgMTAwJSk7CiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsMC4zKTsKICBib3JkZXItcmFkaXVzOjIwcHg7IHBhZGRpbmc6MnJlbSAxLjhyZW07Cn0KLmNhcHR1cmUtc2NyZWVuIGgyIHsgZm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2VyaWY7IGZvbnQtc2l6ZToxLjZyZW07IGZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6dmFyKC0td2hpdGUpOyBtYXJnaW4tYm90dG9tOjAuNHJlbTsgfQouY2FwdHVyZS1zY3JlZW4gcCB7IGZvbnQtc2l6ZTowLjhyZW07IGNvbG9yOnZhcigtLWdyZXktbWlkKTsgbWFyZ2luLWJvdHRvbToxLjRyZW07IGxpbmUtaGVpZ2h0OjEuNjsgfQouZmllbGQgeyBtYXJnaW4tYm90dG9tOjAuNzVyZW07IH0KLmZpZWxkIGlucHV0IHsKICB3aWR0aDoxMDAlOyBwYWRkaW5nOjAuOHJlbSAxcmVtOwogIGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjA2KTsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsMC4yKTsKICBib3JkZXItcmFkaXVzOjlweDsgZm9udC1mYW1pbHk6J091dGZpdCcsc2Fucy1zZXJpZjsgZm9udC1zaXplOjAuODVyZW07CiAgY29sb3I6dmFyKC0td2hpdGUpOyBvdXRsaW5lOm5vbmU7IHRyYW5zaXRpb246Ym9yZGVyIDAuMnM7Cn0KLmZpZWxkIGlucHV0OjpwbGFjZWhvbGRlciB7IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4zKTsgfQouZmllbGQgaW5wdXQ6Zm9jdXMgeyBib3JkZXItY29sb3I6dmFyKC0tZ29sZCk7IH0KLnJldmVhbC1idG4gewogIHdpZHRoOjEwMCU7IHBhZGRpbmc6MC45NXJlbTsKICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tbmF2eSkgMCUsdmFyKC0tbmF2eS1kZWVwKSAxMDAlKTsKICBjb2xvcjp2YXIoLS1nb2xkKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1nb2xkKTsKICBib3JkZXItcmFkaXVzOjEwcHg7IGZvbnQtZmFtaWx5OidPdXRmaXQnLHNhbnMtc2VyaWY7CiAgZm9udC1zaXplOjAuOXJlbTsgZm9udC13ZWlnaHQ6NzAwOyBjdXJzb3I6cG9pbnRlcjsKICBsZXR0ZXItc3BhY2luZzowLjA1ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgdHJhbnNpdGlvbjphbGwgMC4yczsKICBtYXJnaW4tdG9wOjAuNHJlbTsKfQoucmV2ZWFsLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6cmdiYSgyMDEsMTQ5LDI2LDAuMTUpOyB9Ci5za2lwLWxpbmsgeyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDowLjc1cmVtOyBmb250LXNpemU6MC42OHJlbTsgY29sb3I6dmFyKC0tZ3JleS1taWQpOyBjdXJzb3I6cG9pbnRlcjsgbGV0dGVyLXNwYWNpbmc6MC4xZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OjNweDsgfQouc2tpcC1saW5rOmhvdmVyIHsgY29sb3I6dmFyKC0tZ29sZCk7IH0KCi8qIOKUgOKUgCBSRVNVTFQgU0NSRUVOIOKUgOKUgCAqLwoucmVzdWx0LXNjcmVlbiB7IHdpZHRoOjEwMCU7IG1heC13aWR0aDo2MjBweDsgfQoKLnJlc3VsdC1oZXJvIHsKICBib3JkZXItcmFkaXVzOjE4cHg7IHBhZGRpbmc6Mi4ycmVtIDEuOHJlbSAxLjhyZW07CiAgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi1ib3R0b206MXJlbTsKICBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOwp9Ci5yZXN1bHQtaGVybzo6YmVmb3JlIHsgY29udGVudDonJzsgcG9zaXRpb246YWJzb2x1dGU7IGluc2V0OjA7IGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoLTQ1ZGVnLCB0cmFuc3BhcmVudCwgdHJhbnNwYXJlbnQgMThweCwgcmdiYSgyNTUsMjU1LDI1NSwwLjAyKSAxOHB4LCByZ2JhKDI1NSwyNTUsMjU1LDAuMDIpIDE5cHgpOyBwb2ludGVyLWV2ZW50czpub25lOyB9CgoucmVzdWx0LWxldmVsLWJhZGdlIHsKICBkaXNwbGF5OmlubGluZS1ibG9jazsKICBwYWRkaW5nOjAuMzVyZW0gMXJlbTsgYm9yZGVyLXJhZGl1czoyMHB4OwogIGZvbnQtc2l6ZTowLjYycmVtOyBmb250LXdlaWdodDo3MDA7IGxldHRlci1zcGFjaW5nOjAuMmVtOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgbWFyZ2luLWJvdHRvbToxcmVtOwp9Ci5yZXN1bHQtY3Jvd24geyBmb250LXNpemU6M3JlbTsgZGlzcGxheTpibG9jazsgbWFyZ2luLWJvdHRvbTowLjdyZW07IH0KLnJlc3VsdC1zY3JlZW4gaDIgeyBmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZjsgZm9udC1zaXplOjIuMnJlbTsgZm9udC13ZWlnaHQ6NzAwOyBsaW5lLWhlaWdodDoxLjE7IG1hcmdpbi1ib3R0b206MC41cmVtOyB9Ci5yZXN1bHQtdGFnbGluZSB7IGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOyBmb250LXNpemU6MS4xcmVtOyBmb250LXN0eWxlOml0YWxpYzsgbGluZS1oZWlnaHQ6MS42OyBtYXJnaW4tYm90dG9tOjEuMnJlbTsgb3BhY2l0eTowLjk7IH0KCi8qIHNjb3JlIG1ldGVyICovCi5zY29yZS1tZXRlciB7IG1hcmdpbjoxcmVtIDA7IH0KLm1ldGVyLWxhYmVsIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgbWFyZ2luLWJvdHRvbTowLjRyZW07IH0KLm1ldGVyLWxhYmVsIHNwYW4geyBmb250LXNpemU6MC42MnJlbTsgbGV0dGVyLXNwYWNpbmc6MC4xMmVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0KLm1ldGVyLXRyYWNrIHsgaGVpZ2h0OjhweDsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMSk7IGJvcmRlci1yYWRpdXM6OHB4OyBvdmVyZmxvdzpoaWRkZW47IH0KLm1ldGVyLWZpbGwgeyBoZWlnaHQ6MTAwJTsgYm9yZGVyLXJhZGl1czo4cHg7IHRyYW5zaXRpb246d2lkdGggMS41cyBlYXNlOyB3aWR0aDowJTsgfQoKLyogZGltZW5zaW9uIHNjb3JlcyAqLwouZGltLXNjb3JlcyB7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7IGdhcDowLjVyZW07IG1hcmdpbjoxcmVtIDA7IH0KLmRpbS1jYXJkIHsgcGFkZGluZzowLjdyZW0gMC44cmVtOyBib3JkZXItcmFkaXVzOjEwcHg7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOyB9Ci5kaW0tbmFtZSB7IGZvbnQtc2l6ZTowLjU4cmVtOyBsZXR0ZXItc3BhY2luZzowLjE1ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6dmFyKC0tZ3JleS1taWQpOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tYm90dG9tOjAuM3JlbTsgfQouZGltLWJhci13cmFwIHsgaGVpZ2h0OjRweDsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOyBib3JkZXItcmFkaXVzOjRweDsgb3ZlcmZsb3c6aGlkZGVuOyB9Ci5kaW0tYmFyIHsgaGVpZ2h0OjEwMCU7IGJvcmRlci1yYWRpdXM6NHB4OyB0cmFuc2l0aW9uOndpZHRoIDEuNXMgZWFzZSAwLjNzOyB9CgovKiByZXN1bHQgYm9keSAqLwoucmVzdWx0LWJvZHkgewogIGJhY2tncm91bmQ6cmdiYSgxMywzNCw3MSwwLjYpOyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwwLjIpOwogIGJvcmRlci1yYWRpdXM6MTRweDsgcGFkZGluZzoxLjRyZW07IG1hcmdpbi1ib3R0b206MXJlbTsKfQoucmVzdWx0LWJvZHkgaDMgeyBmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZjsgZm9udC1zaXplOjEuMnJlbTsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjp2YXIoLS13aGl0ZSk7IG1hcmdpbi1ib3R0b206MC42cmVtOyB9Ci5yZXN1bHQtYm9keSBwIHsgZm9udC1zaXplOjAuODJyZW07IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC44KTsgbGluZS1oZWlnaHQ6MS43OyBtYXJnaW4tYm90dG9tOjAuOHJlbTsgfQoucmVzdWx0LWJvZHkgdWwgeyBsaXN0LXN0eWxlOm5vbmU7IH0KLnJlc3VsdC1ib2R5IHVsIGxpIHsgZm9udC1zaXplOjAuOHJlbTsgY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjc1KTsgcGFkZGluZzowLjNyZW0gMDsgcGFkZGluZy1sZWZ0OjEuMnJlbTsgcG9zaXRpb246cmVsYXRpdmU7IGxpbmUtaGVpZ2h0OjEuNTsgfQoucmVzdWx0LWJvZHkgdWwgbGk6OmJlZm9yZSB7IGNvbnRlbnQ6J+Kcpic7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IGNvbG9yOnZhcigtLWdvbGQpOyBmb250LXNpemU6MC42cmVtOyB0b3A6MC40cmVtOyB9CgovKiBDVEEgKi8KLnJlc3VsdC1jdGEgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgZ2FwOjAuNnJlbTsgfQouci1idG4gewogIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBnYXA6MC42cmVtOwogIHBhZGRpbmc6MC45cmVtIDEuMnJlbTsgYm9yZGVyLXJhZGl1czoxMHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsKICBmb250LWZhbWlseTonT3V0Zml0JyxzYW5zLXNlcmlmOyBmb250LXNpemU6MC44NXJlbTsgZm9udC13ZWlnaHQ6NjAwOwogIHRyYW5zaXRpb246YWxsIDAuMjJzOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyOm5vbmU7IHdpZHRoOjEwMCU7IGxldHRlci1zcGFjaW5nOjAuMDJlbTsKfQouci1idG4tcHJpbWFyeSB7IGNvbG9yOnZhcigtLWRhcmspOyBib3gtc2hhZG93OjAgNHB4IDIwcHggcmdiYSgyMDEsMTQ5LDI2LDAuMzUpOyB9Ci5yLWJ0bi1wcmltYXJ5OmhvdmVyIHsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7IH0KLnItYnRuLXNlY29uZGFyeSB7IGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7IGJvcmRlcjoxcHggc29saWQgcmdiYSgyMDEsMTQ5LDI2LDAuNCk7IGNvbG9yOnZhcigtLWdvbGQyKTsgfQouci1idG4tc2Vjb25kYXJ5OmhvdmVyIHsgYmFja2dyb3VuZDpyZ2JhKDIwMSwxNDksMjYsMC4xKTsgYm9yZGVyLWNvbG9yOnZhcigtLWdvbGQpOyB9CgoucmV0YWtlLWxpbmsgeyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDowLjhyZW07IGZvbnQtc2l6ZTowLjY4cmVtOyBjb2xvcjp2YXIoLS1ncmV5LW1pZCk7IGN1cnNvcjpwb2ludGVyOyBsZXR0ZXItc3BhY2luZzowLjFlbTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9Ci5yZXRha2UtbGluazpob3ZlciB7IGNvbG9yOnZhcigtLWdvbGQpOyB9CgovKiBzaGFyZSBzdHJpcCAqLwouc2hhcmUtc3RyaXAgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjAuNnJlbTsgbWFyZ2luLXRvcDoxcmVtOyBwYWRkaW5nOjAuOHJlbSAxcmVtOyBiYWNrZ3JvdW5kOnJnYmEoMjcsNTgsMTA3LDAuMyk7IGJvcmRlcjoxcHggc29saWQgcmdiYSgyMDEsMTQ5LDI2LDAuMTUpOyBib3JkZXItcmFkaXVzOjEwcHg7IH0KLnNoYXJlLXRleHQgeyBmb250LXNpemU6MC43MnJlbTsgY29sb3I6dmFyKC0tZ3JleS1taWQpOyBmbGV4OjE7IGxpbmUtaGVpZ2h0OjEuNDsgfQouc2hhcmUtdGV4dCBzdHJvbmcgeyBjb2xvcjp2YXIoLS1nb2xkMik7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjc1cmVtOyBtYXJnaW4tYm90dG9tOjAuMXJlbTsgfQouc2hhcmUtYnRuIHsgcGFkZGluZzowLjQ1cmVtIDAuOXJlbTsgYmFja2dyb3VuZDp2YXIoLS1uYXZ5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1nb2xkKTsgYm9yZGVyLXJhZGl1czo3cHg7IGNvbG9yOnZhcigtLWdvbGQpOyBmb250LXNpemU6MC43cmVtOyBmb250LXdlaWdodDo2MDA7IGN1cnNvcjpwb2ludGVyOyBsZXR0ZXItc3BhY2luZzowLjA4ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgd2hpdGUtc3BhY2U6bm93cmFwOyB0cmFuc2l0aW9uOmFsbCAwLjJzOyB9Ci5zaGFyZS1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOnJnYmEoMjAxLDE0OSwyNiwwLjE1KTsgfQoKLyogaGlkZGVuIHV0aWxpdHkgKi8KLmhpZGRlbiB7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9CgovKiDilIDilIAgRk9PVEVSIOKUgOKUgCAqLwouYXNzZXNzbWVudC1mb290ZXIgeyB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NjIwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEuNXJlbSAxcmVtOyB9Ci5hc3Nlc3NtZW50LWZvb3RlciBwIHsgZm9udC1zaXplOjAuNjJyZW07IGNvbG9yOnZhcigtLWdyZXktbWlkKTsgbGV0dGVyLXNwYWNpbmc6MC4xZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfQouYXNzZXNzbWVudC1mb290ZXIgc3BhbiB7IGNvbG9yOnZhcigtLWdvbGQpOyB9Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+Cgo8ZGl2IGNsYXNzPSJwYWdlLWJnIj48L2Rpdj4KPGRpdiBjbGFzcz0iZmxvYXRpZXMiIGlkPSJmbG9hdGllcyI+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJ3cmFwIj4KCiAgPCEtLSBIRUFERVIgLS0+CiAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgIDxkaXYgY2xhc3M9ImhlYWRlci1icmFuZCI+CiAgICAgIDxzcGFuIGNsYXNzPSJjcm93biI+8J+RkTwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9ImJyYW5kLXRleHQiPlNoZSBFdm9sdmVzIEFmcmljYSB+IFZvcnRleCBBbHRpdHVkZTwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGgxPldoZXJlIERvIFlvdSA8c3Bhbj5SZWFsbHk8L3NwYW4+IFN0YW5kPzwvaDE+CiAgICA8cD5MaW5rZWRJbiBwcm9maWxlcyBnbG93LiBGb2xsb3dlciBjb3VudHMgY2xpbWIuIEJ1dCByZWFsIGRpZ2l0YWwgc292ZXJlaWdudHkgfiB0aGUga2luZCB5b3Ugb3duLCB0aGUga2luZCBHb29nbGUgaW5kZXhlcywgdGhlIGtpbmQgdGhhdCBvdXRsaXZlcyBhbnkgcGxhdGZvcm0gfiB0ZWxscyBhIGRpZmZlcmVudCBzdG9yeS4gRGlzY292ZXIgeW91ciB0cnVlIGFsdGl0dWRlLjwvcD4KICAgIDxkaXYgY2xhc3M9ImFsdGl0dWRlLXN0cmlwIj4KICAgICAgPGRpdiBjbGFzcz0iYWx0LXBpcCI+PHNwYW4gY2xhc3M9ImFsdC1kb3QiIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWludmlzaWJsZSkiPjwvc3Bhbj48c3BhbiBjbGFzcz0iYWx0LWxhYmVsIj5JbnZpc2libGU8L3NwYW4+PC9kaXY+CiAgICAgIDxzcGFuIGNsYXNzPSJhbHQtc2VwIj7ihpI8L3NwYW4+CiAgICAgIDxkaXYgY2xhc3M9ImFsdC1waXAiPjxzcGFuIGNsYXNzPSJhbHQtZG90IiBzdHlsZT0iYmFja2dyb3VuZDp2YXIoLS1lbWVyZ2luZykiPjwvc3Bhbj48c3BhbiBjbGFzcz0iYWx0LWxhYmVsIj5FbWVyZ2luZzwvc3Bhbj48L2Rpdj4KICAgICAgPHNwYW4gY2xhc3M9ImFsdC1zZXAiPuKGkjwvc3Bhbj4KICAgICAgPGRpdiBjbGFzcz0iYWx0LXBpcCI+PHNwYW4gY2xhc3M9ImFsdC1kb3QiIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLXZpc2libGUpIj48L3NwYW4+PHNwYW4gY2xhc3M9ImFsdC1sYWJlbCI+VmlzaWJsZTwvc3Bhbj48L2Rpdj4KICAgICAgPHNwYW4gY2xhc3M9ImFsdC1zZXAiPuKGkjwvc3Bhbj4KICAgICAgPGRpdiBjbGFzcz0iYWx0LXBpcCI+PHNwYW4gY2xhc3M9ImFsdC1kb3QiIHN0eWxlPSJiYWNrZ3JvdW5kOnZhcigtLWluZmx1ZW50aWFsKSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJhbHQtbGFiZWwiPkluZmx1ZW50aWFsPC9zcGFuPjwvZGl2PgogICAgICA8c3BhbiBjbGFzcz0iYWx0LXNlcCI+4oaSPC9zcGFuPgogICAgICA8ZGl2IGNsYXNzPSJhbHQtcGlwIj48c3BhbiBjbGFzcz0iYWx0LWRvdCIgc3R5bGU9ImJhY2tncm91bmQ6dmFyKC0tc292ZXJlaWduKSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJhbHQtbGFiZWwiPlNvdmVyZWlnbjwvc3Bhbj48L2Rpdj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIFBST0dSRVNTIC0tPgogIDxkaXYgY2xhc3M9InByb2dyZXNzLXdyYXAgaGlkZGVuIiBpZD0icHJvZ3Jlc3NXcmFwIj4KICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLWhlYWRlciI+CiAgICAgIDxzcGFuPllvdXIgQWx0aXR1ZGUgQXNzZXNzbWVudDwvc3Bhbj4KICAgICAgPHNwYW4gY2xhc3M9InEtY291bnQiIGlkPSJxQ291bnQiPlF1ZXN0aW9uIDEgb2YgMTI8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InByb2dyZXNzLXRyYWNrIj48ZGl2IGNsYXNzPSJwcm9ncmVzcy1maWxsIiBpZD0icHJvZ3Jlc3NGaWxsIj48L2Rpdj48L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSBJTlRSTyBTQ1JFRU4gLS0+CiAgPGRpdiBjbGFzcz0iaW50cm8tc2NyZWVuIiBpZD0iaW50cm9TY3JlZW4iPgogICAgPHNwYW4gY2xhc3M9ImludHJvLWNyb3duIj7wn5GRPC9zcGFuPgogICAgPGgyPlRoZSA8ZW0+Vm9ydGV4IEFsdGl0dWRlPC9lbT48YnI+QXNzZXNzbWVudDwvaDI+CiAgICA8cD4xMiBxdWVzdGlvbnMuIDQgZGltZW5zaW9ucy4gT25lIGhvbmVzdCByZXN1bHQuIE5vIHZhbml0eSBtZXRyaWNzLiBObyBmbGF0dGVyeS4gSnVzdCB0aGUgdHJ1dGggYWJvdXQgd2hlcmUgeW91IHN0YW5kIH4gYW5kIGEgY2xlYXIgcGF0aCB0byB3aGVyZSB5b3UgZGVzZXJ2ZSB0byBiZS48L3A+CgogICAgPGRpdiBjbGFzcz0ibGV2ZWxzLXByZXZpZXciPgogICAgICA8ZGl2IGNsYXNzPSJsZXZlbC1yb3ciPgogICAgICAgIDxzcGFuIGNsYXNzPSJsZXZlbC1pY29uIj7wn4yr77iPPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJsZXZlbC1uYW1lIiBzdHlsZT0iY29sb3I6dmFyKC0taW52aXNpYmxlKSI+SW52aXNpYmxlPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJsZXZlbC1kZXNjIj5UaGUgc3RhcnQgfiBhbmQgYSBwb3dlcmZ1bCBwbGFjZSB0byBiZWdpbjwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImxldmVsLXJvdyI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxldmVsLWljb24iPvCfjLE8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxldmVsLW5hbWUiIHN0eWxlPSJjb2xvcjp2YXIoLS1lbWVyZ2luZykiPkVtZXJnaW5nPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJsZXZlbC1kZXNjIj5EaWdpdGFsIGZvdW5kYXRpb25zIGJlaW5nIGxhaWQ8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJsZXZlbC1yb3ciPgogICAgICAgIDxzcGFuIGNsYXNzPSJsZXZlbC1pY29uIj7wn5KhPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJsZXZlbC1uYW1lIiBzdHlsZT0iY29sb3I6dmFyKC0tdmlzaWJsZSkiPlZpc2libGU8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxldmVsLWRlc2MiPlByZXNlbnQgb25saW5lIH4gYnVpbGRpbmcgYXV0aG9yaXR5PC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibGV2ZWwtcm93Ij4KICAgICAgICA8c3BhbiBjbGFzcz0ibGV2ZWwtaWNvbiI+4pqhPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJsZXZlbC1uYW1lIiBzdHlsZT0iY29sb3I6dmFyKC0taW5mbHVlbnRpYWwpIj5JbmZsdWVudGlhbDwvc3Bhbj4KICAgICAgICA8c3BhbiBjbGFzcz0ibGV2ZWwtZGVzYyI+QXV0aG9yaXR5IGVzdGFibGlzaGVkIH4gc2NhbGluZyBwcmVzZW5jZTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImxldmVsLXJvdyI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxldmVsLWljb24iPvCfkZE8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxldmVsLW5hbWUiIHN0eWxlPSJjb2xvcjp2YXIoLS1zb3ZlcmVpZ24pIj5Tb3ZlcmVpZ248L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9ImxldmVsLWRlc2MiPkZ1bGwgZGlnaXRhbCBvd25lcnNoaXAgfiB0aGUgcGlubmFjbGU8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGJ1dHRvbiBjbGFzcz0ic3RhcnQtYnRuIiBvbmNsaWNrPSJzdGFydEFzc2Vzc21lbnQoKSI+QmVnaW4gTXkgQWx0aXR1ZGUgQXNzZXNzbWVudCDwn5GRPC9idXR0b24+CiAgPC9kaXY+CgogIDwhLS0gUVVFU1RJT04gU1RBR0UgLS0+CiAgPGRpdiBjbGFzcz0icS1zdGFnZSBoaWRkZW4iIGlkPSJxU3RhZ2UiPgogICAgPGRpdiBjbGFzcz0icS1jYXJkIiBpZD0icUNhcmQiPgogICAgICA8c3BhbiBjbGFzcz0icS1kaW1lbnNpb24iIGlkPSJxRGltZW5zaW9uIj48L3NwYW4+CiAgICAgIDxzcGFuIGNsYXNzPSJxLW51bWJlciIgaWQ9InFOdW1iZXIiPjwvc3Bhbj4KICAgICAgPHAgY2xhc3M9InEtdGV4dCIgaWQ9InFUZXh0Ij48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImFuc3dlcnMiIGlkPSJhbnN3ZXJzV3JhcCI+PC9kaXY+CiAgICA8L2Rpdj4KICAgIDxidXR0b24gY2xhc3M9Im5leHQtYnRuIiBpZD0ibmV4dEJ0biIgb25jbGljaz0ibmV4dFF1ZXN0aW9uKCkiPkNvbnRpbnVlIOKGkjwvYnV0dG9uPgogIDwvZGl2PgoKICA8IS0tIENBUFRVUkUgU0NSRUVOIC0tPgogIDxkaXYgY2xhc3M9ImNhcHR1cmUtc2NyZWVuIGhpZGRlbiIgaWQ9ImNhcHR1cmVTY3JlZW4iPgogICAgPGgyPkFsbW9zdCB0aGVyZSDwn5GRPC9oMj4KICAgIDxwPllvdXIgYWx0aXR1ZGUgcmVzdWx0IGlzIHJlYWR5LiBFbnRlciB5b3VyIGRldGFpbHMgdG8gcmVjZWl2ZSB5b3VyIHBlcnNvbmFsaXNlZCBuZXh0IHN0ZXBzIH4gYW5kIHRvIGJlIGFkZGVkIHRvIHRoZSByaWdodCBTaGUgRXZvbHZlcyBBZnJpY2EgY29tbXVuaXR5IGZvciB3aGVyZSB5b3UgYXJlIHJpZ2h0IG5vdy48L3A+CiAgICA8ZGl2IGNsYXNzPSJmaWVsZCI+PGlucHV0IHR5cGU9InRleHQiIGlkPSJjYXBOYW1lIiBwbGFjZWhvbGRlcj0iWW91ciBOYW1lIiBhdXRvY29tcGxldGU9Im5hbWUiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iZmllbGQiPjxpbnB1dCB0eXBlPSJlbWFpbCIgaWQ9ImNhcEVtYWlsIiBwbGFjZWhvbGRlcj0iWW91ciBFbWFpbCBBZGRyZXNzIiBhdXRvY29tcGxldGU9ImVtYWlsIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZpZWxkIj48aW5wdXQgdHlwZT0idGVsIiBpZD0iY2FwUGhvbmUiIHBsYWNlaG9sZGVyPSJZb3VyIFdoYXRzQXBwIE51bWJlciAob3B0aW9uYWwpIiBhdXRvY29tcGxldGU9InRlbCI+PC9kaXY+CiAgICA8YnV0dG9uIGNsYXNzPSJyZXZlYWwtYnRuIiBvbmNsaWNrPSJyZXZlYWxSZXN1bHQoKSI+UmV2ZWFsIE15IEFsdGl0dWRlIFJlc3VsdCDwn5GRPC9idXR0b24+CiAgICA8c3BhbiBjbGFzcz0ic2tpcC1saW5rIiBvbmNsaWNrPSJyZXZlYWxSZXN1bHQoKSI+U2tpcCBhbmQgc2VlIG15IHJlc3VsdCDihpI8L3NwYW4+CiAgPC9kaXY+CgogIDwhLS0gUkVTVUxUIFNDUkVFTiAtLT4KICA8ZGl2IGNsYXNzPSJyZXN1bHQtc2NyZWVuIGhpZGRlbiIgaWQ9InJlc3VsdFNjcmVlbiI+CiAgICA8ZGl2IGNsYXNzPSJyZXN1bHQtaGVybyIgaWQ9InJlc3VsdEhlcm8iPgogICAgICA8ZGl2IGNsYXNzPSJyZXN1bHQtbGV2ZWwtYmFkZ2UiIGlkPSJyZXN1bHRCYWRnZSI+PC9kaXY+CiAgICAgIDxzcGFuIGNsYXNzPSJyZXN1bHQtY3Jvd24iIGlkPSJyZXN1bHRDcm93biI+PC9zcGFuPgogICAgICA8aDIgaWQ9InJlc3VsdFRpdGxlIj48L2gyPgogICAgICA8cCBjbGFzcz0icmVzdWx0LXRhZ2xpbmUiIGlkPSJyZXN1bHRUYWdsaW5lIj48L3A+CiAgICAgIDxkaXYgY2xhc3M9InNjb3JlLW1ldGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtZXRlci1sYWJlbCI+CiAgICAgICAgICA8c3Bhbj5EaWdpdGFsIFNvdmVyZWlnbnR5IFNjb3JlPC9zcGFuPgogICAgICAgICAgPHNwYW4gaWQ9InNjb3JlRGlzcGxheSIgc3R5bGU9ImNvbG9yOnZhcigtLWdvbGQpO2ZvbnQtd2VpZ2h0OjYwMCI+PC9zcGFuPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im1ldGVyLXRyYWNrIj48ZGl2IGNsYXNzPSJtZXRlci1maWxsIiBpZD0ibWV0ZXJGaWxsIj48L2Rpdj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImRpbS1zY29yZXMiIGlkPSJkaW1TY29yZXMiPjwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0icmVzdWx0LWJvZHkiIGlkPSJyZXN1bHRCb2R5Ij48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJyZXN1bHQtY3RhIiBpZD0icmVzdWx0Q3RhIj48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJzaGFyZS1zdHJpcCI+CiAgICAgIDxkaXYgY2xhc3M9InNoYXJlLXRleHQiPgogICAgICAgIDxzdHJvbmc+U2hhcmUgeW91ciBhbHRpdHVkZSDwn5GRPC9zdHJvbmc+CiAgICAgICAgQ29weSB5b3VyIHJlc3VsdCBhbmQgc2hhcmUgaXQgfiBpbnZpdGUgYW5vdGhlciB3b21hbiB0byBkaXNjb3ZlciBoZXJzCiAgICAgIDwvZGl2PgogICAgICA8YnV0dG9uIGNsYXNzPSJzaGFyZS1idG4iIG9uY2xpY2s9InNoYXJlUmVzdWx0KCkiPkNvcHkgUmVzdWx0PC9idXR0b24+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tdG9wOjAuOHJlbSI+CiAgICAgIDxzcGFuIGNsYXNzPSJyZXRha2UtbGluayIgb25jbGljaz0icmVzZXRBbGwoKSI+4oa6IFJldGFrZSB0aGUgYXNzZXNzbWVudDwvc3Bhbj4KICAgIDwvZGl2PgogIDwvZGl2PgoKICA8IS0tIEZPT1RFUiAtLT4KICA8ZGl2IGNsYXNzPSJhc3Nlc3NtZW50LWZvb3RlciI+CiAgICA8cD7wn5GRIDxzcGFuPlNoZSBFdm9sdmVzIEFmcmljYTwvc3Bhbj4gfiBWb2ljZXMuIFZpc2lvbnMuIExlZ2FjeS4gfiA8c3Bhbj5zaGVldm9sdmVzLmFmcmljYTwvc3Bhbj48L3A+CiAgPC9kaXY+Cgo8L2Rpdj48IS0tIC93cmFwIC0tPgoKPHNjcmlwdD4KLy8g4pSA4pSAIFFVRVNUSU9OUyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKY29uc3QgUVVFU1RJT05TID0gWwogIC8vIERJTUVOU0lPTiAxOiBPV05FUlNISVAgKDMgcXVlc3Rpb25zKQogIHsKICAgIGRpbTogJ0RpbWVuc2lvbiAxIH4gT3duZXJzaGlwJywKICAgIHRleHQ6ICdXaGVuIHNvbWVvbmUgc2VhcmNoZXMgeW91ciBuYW1lIG9uIEdvb2dsZSByaWdodCBub3csIHdoYXQgYXBwZWFycz8nLAogICAgYW5zd2VyczogWwogICAgICB7IHRleHQ6ICdOb3RoaW5nLiBNeSBuYW1lIHJldHVybnMgbm8gbWVhbmluZ2Z1bCByZXN1bHRzLicsIHNjb3JlOiAwIH0sCiAgICAgIHsgdGV4dDogJ015IHNvY2lhbCBtZWRpYSBwcm9maWxlcyB+IEluc3RhZ3JhbSwgTGlua2VkSW4sIEZhY2Vib29rLicsIHNjb3JlOiAxIH0sCiAgICAgIHsgdGV4dDogJ1NvY2lhbCBwcm9maWxlcyBwbHVzIGEgd2Vic2l0ZSBzb21lb25lIGVsc2UgYnVpbHQgZm9yIG1lLicsIHNjb3JlOiAyIH0sCiAgICAgIHsgdGV4dDogJ0Egd2Vic2l0ZSBJIG93biwgaW5kZXhlZCBhcnRpY2xlcywgYW5kIHByb2Zlc3Npb25hbCBwcm9maWxlcy4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdBIGZ1bGwgZGlnaXRhbCBlc3RhdGUgfiBteSBkb21haW4sIG5ld3MgY292ZXJhZ2UsIGF1dGhvcml0eSBwcm9maWxlcy4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCiAgewogICAgZGltOiAnRGltZW5zaW9uIDEgfiBPd25lcnNoaXAnLAogICAgdGV4dDogJ0hvdyBtdWNoIG9mIHlvdXIgb25saW5lIHByZXNlbmNlIGRvIHlvdSB0cnVseSBPV04gfiBhcyBpbiwgY291bGQgbm90IGJlIGRlbGV0ZWQgYnkgYSBwbGF0Zm9ybSB0b21vcnJvdz8nLAogICAgYW5zd2VyczogWwogICAgICB7IHRleHQ6ICdOb25lLiBFdmVyeXRoaW5nIEkgaGF2ZSBpcyBvbiBwbGF0Zm9ybXMgb3RoZXJzIGNvbnRyb2wuJywgc2NvcmU6IDAgfSwKICAgICAgeyB0ZXh0OiAnVmVyeSBsaXR0bGUuIE1heWJlIGFuIG9sZCB3ZWJzaXRlIEkgYmFyZWx5IHVwZGF0ZS4nLCBzY29yZTogMSB9LAogICAgICB7IHRleHQ6ICdTb21lLiBJIGhhdmUgYSB3ZWJzaXRlIGFuZCBhbiBlbWFpbCBsaXN0IHN0YXJ0aW5nIHRvIGdyb3cuJywgc2NvcmU6IDIgfSwKICAgICAgeyB0ZXh0OiAnUXVpdGUgYSBsb3QuIEkgaGF2ZSBvd25lZCBwbGF0Zm9ybXMgYW5kIGEgZ3Jvd2luZyBlbWFpbCBhdWRpZW5jZS4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdNb3N0IG9mIGl0LiBNeSBkaWdpdGFsIGluZnJhc3RydWN0dXJlIGlzIGJ1aWx0IG9uIG93bmVkIGFzc2V0cy4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCiAgewogICAgZGltOiAnRGltZW5zaW9uIDEgfiBPd25lcnNoaXAnLAogICAgdGV4dDogJ0RvIHlvdSBoYXZlIGEgcGVyc29uYWwgZG9tYWluIH4gYSBVUkwgd2l0aCB5b3VyIG5hbWUgb3IgYnJhbmQgdGhhdCB5b3Ugb3duIG91dHJpZ2h0PycsCiAgICBhbnN3ZXJzOiBbCiAgICAgIHsgdGV4dDogJ05vLiBJIGhhdmUgbmV2ZXIgcmVnaXN0ZXJlZCBhIGRvbWFpbiBpbiBteSBuYW1lLicsIHNjb3JlOiAwIH0sCiAgICAgIHsgdGV4dDogJ05vLCBidXQgSSBoYXZlIGJlZW4gdGhpbmtpbmcgYWJvdXQgaXQgZm9yIGEgd2hpbGUuJywgc2NvcmU6IDEgfSwKICAgICAgeyB0ZXh0OiAnWWVzLCBJIG93biBhIGRvbWFpbiBidXQgdGhlIHdlYnNpdGUgaXMgYmFzaWMgb3Igb3V0ZGF0ZWQuJywgc2NvcmU6IDIgfSwKICAgICAgeyB0ZXh0OiAnWWVzLCBhbmQgbXkgd2Vic2l0ZSByZWZsZWN0cyBteSBwcm9mZXNzaW9uYWwgaWRlbnRpdHkgd2VsbC4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdZZXMsIGFuZCBJIGhhdmUgbXVsdGlwbGUgZG9tYWlucyBzZXJ2aW5nIGRpZmZlcmVudCBhc3BlY3RzIG9mIG15IHdvcmsuJywgc2NvcmU6IDQgfSwKICAgIF0KICB9LAoKICAvLyBESU1FTlNJT04gMjogU0VBUkNIQUJJTElUWSAoMyBxdWVzdGlvbnMpCiAgewogICAgZGltOiAnRGltZW5zaW9uIDIgfiBTZWFyY2hhYmlsaXR5JywKICAgIHRleHQ6ICdJZiBhIGNvbGxhYm9yYXRvciwgaW52ZXN0b3Igb3IgY2xpZW50IHNlYXJjaGVkIHlvdXIgYXJlYSBvZiBleHBlcnRpc2UgaW4geW91ciBjaXR5IG9yIGNvdW50cnksIHdvdWxkIHRoZXkgZmluZCBZT1U/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnTm8uIE15IGV4cGVydGlzZSBpcyBub3QgZG9jdW1lbnRlZCBhbnl3aGVyZSBvbmxpbmUuJywgc2NvcmU6IDAgfSwKICAgICAgeyB0ZXh0OiAnVW5saWtlbHkuIEkgaGF2ZSBzb2NpYWwgcHJvZmlsZXMgYnV0IG5vIGtleXdvcmQtcmljaCBjb250ZW50LicsIHNjb3JlOiAxIH0sCiAgICAgIHsgdGV4dDogJ01heWJlLiBJIGhhdmUgc29tZSBjb250ZW50IGJ1dCBpdCBpcyBub3QgY29uc2lzdGVudGx5IHNlYXJjaGFibGUuJywgc2NvcmU6IDIgfSwKICAgICAgeyB0ZXh0OiAnUHJvYmFibHkuIEkgYXBwZWFyIGluIHNlYXJjaGVzIGZvciBteSBuaWNoZSB3aXRoIHNvbWUgcmVndWxhcml0eS4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdZZXMuIEkgcmFuayB3ZWxsIGFuZCBhcHBlYXIgaW4gc2VhcmNoZXMgYWNyb3NzIG15IGFyZWFzIG9mIGV4cGVydGlzZS4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCiAgewogICAgZGltOiAnRGltZW5zaW9uIDIgfiBTZWFyY2hhYmlsaXR5JywKICAgIHRleHQ6ICdIYXZlIHlvdSBldmVyIGJlZW4gZmVhdHVyZWQsIHF1b3RlZCwgb3IgcHJvZmlsZWQgaW4gYW4gb25saW5lIGFydGljbGUsIG5ld3MgY2hhbm5lbCwgb3IgYmxvZyB0aGF0IGxpdmVzIHBlcm1hbmVudGx5IG9uIHRoZSBpbnRlcm5ldD8nLAogICAgYW5zd2VyczogWwogICAgICB7IHRleHQ6ICdOby4gSSBoYXZlIG5ldmVyIGJlZW4gZmVhdHVyZWQgYW55d2hlcmUgb25saW5lLicsIHNjb3JlOiAwIH0sCiAgICAgIHsgdGV4dDogJ09uY2Ugb3IgdHdpY2UsIHllYXJzIGFnby4gTm90IHJlY2VudGx5LicsIHNjb3JlOiAxIH0sCiAgICAgIHsgdGV4dDogJ0EgZmV3IHRpbWVzLCBidXQgbm90IGNvbnNpc3RlbnRseSBhbmQgbm90IG9uIGF1dGhvcml0eSBzaXRlcy4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdZZXMsIEkgaGF2ZSBiZWVuIGZlYXR1cmVkIGFuZCBzb21lIG9mIGl0IHN0aWxsIHJhbmtzIG9uIEdvb2dsZS4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdZZXMsIHJlZ3VsYXJseS4gSSBoYXZlIGFuIGFjdGl2ZSBwcm9maWxlIG9mIG1lZGlhIG1lbnRpb25zIGFuZCBmZWF0dXJlcy4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCiAgewogICAgZGltOiAnRGltZW5zaW9uIDIgfiBTZWFyY2hhYmlsaXR5JywKICAgIHRleHQ6ICdIb3cgd291bGQgeW91IGRlc2NyaWJlIHlvdXIgU0VPIGtub3dsZWRnZSB+IHlvdXIgdW5kZXJzdGFuZGluZyBvZiBob3cgR29vZ2xlIGZpbmRzIGFuZCByYW5rcyBjb250ZW50PycsCiAgICBhbnN3ZXJzOiBbCiAgICAgIHsgdGV4dDogJ0kgaGF2ZSBubyBpZGVhIHdoYXQgU0VPIHJlYWxseSBtZWFucyBpbiBwcmFjdGljZS4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdJIGhhdmUgaGVhcmQgb2YgaXQgYnV0IG5ldmVyIGFwcGxpZWQgaXQgdG8gbXkgb3duIGNvbnRlbnQuJywgc2NvcmU6IDEgfSwKICAgICAgeyB0ZXh0OiAnSSB1bmRlcnN0YW5kIHRoZSBiYXNpY3MgYW5kIGFwcGx5IHRoZW0gb2NjYXNpb25hbGx5LicsIHNjb3JlOiAyIH0sCiAgICAgIHsgdGV4dDogJ0kgdW5kZXJzdGFuZCBpdCB3ZWxsIGFuZCBjcmVhdGUgY29udGVudCB3aXRoIFNFTyBpbiBtaW5kLicsIHNjb3JlOiAzIH0sCiAgICAgIHsgdGV4dDogJ0kgaGF2ZSBhIGNsZWFyIFNFTyBzdHJhdGVneSB0aGF0IGRyaXZlcyByZWFsIHRyYWZmaWMgdG8gbXkgcGxhdGZvcm1zLicsIHNjb3JlOiA0IH0sCiAgICBdCiAgfSwKCiAgLy8gRElNRU5TSU9OIDM6IEFVVEhPUklUWSAoMyBxdWVzdGlvbnMpCiAgewogICAgZGltOiAnRGltZW5zaW9uIDMgfiBBdXRob3JpdHknLAogICAgdGV4dDogJ0lzIHRoZXJlIGEgcGxhY2Ugb24gdGhlIGludGVybmV0IHdoZXJlIHlvdXIgcHJvZmVzc2lvbmFsIGV4cGVydGlzZSwgc3RvcnkgYW5kIGNyZWRlbnRpYWxzIGFyZSBkb2N1bWVudGVkIGluIGRlcHRoIH4gYmV5b25kIGEgTGlua2VkSW4gcHJvZmlsZT8nLAogICAgYW5zd2VyczogWwogICAgICB7IHRleHQ6ICdOby4gTXkgb25seSBwcm9mZXNzaW9uYWwgcHJlc2VuY2UgaXMgTGlua2VkSW4gb3Igc2ltaWxhci4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdJIGhhdmUgYSBiYXNpYyBiaW8gcGFnZSBidXQgaXQgZG9lcyBub3QgcmVmbGVjdCBteSBmdWxsIGV4cGVydGlzZS4nLCBzY29yZTogMSB9LAogICAgICB7IHRleHQ6ICdJIGhhdmUgYSB3ZWJzaXRlIHdpdGggc29tZSBkZXB0aCBidXQgaXQgaXMgbm90IGNvbnNpc3RlbnRseSB1cGRhdGVkLicsIHNjb3JlOiAyIH0sCiAgICAgIHsgdGV4dDogJ1llcy4gSSBoYXZlIGFuIGF1dGhvcml0eSBwbGF0Zm9ybSB3aGVyZSBteSBleHBlcnRpc2UgaXMgd2VsbCBkb2N1bWVudGVkLicsIHNjb3JlOiAzIH0sCiAgICAgIHsgdGV4dDogJ1llcywgYW5kIGl0IGlzIEdvb2dsZS1pbmRleGVkLCByZWd1bGFybHkgdXBkYXRlZCBhbmQgZHJpdmVzIGluYm91bmQgZW5xdWlyaWVzLicsIHNjb3JlOiA0IH0sCiAgICBdCiAgfSwKICB7CiAgICBkaW06ICdEaW1lbnNpb24gMyB+IEF1dGhvcml0eScsCiAgICB0ZXh0OiAnSG93IGNvbnNpc3RlbnQgaXMgeW91ciBwZXJzb25hbCBicmFuZCBhY3Jvc3MgYWxsIHlvdXIgZGlnaXRhbCBwbGF0Zm9ybXMgfiBzYW1lIG1lc3NhZ2UsIHNhbWUgdmlzdWFscywgc2FtZSBzdG9yeT8nLAogICAgYW5zd2VyczogWwogICAgICB7IHRleHQ6ICdOb3QgY29uc2lzdGVudCBhdCBhbGwuIEVhY2ggcGxhdGZvcm0gbG9va3MgZGlmZmVyZW50IGFuZCB0ZWxscyBhIGRpZmZlcmVudCBzdG9yeS4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdTbGlnaHRseSBjb25zaXN0ZW50LiBTYW1lIHBob3RvIGJ1dCBkaWZmZXJlbnQgYmlvcyBhbmQgbWVzc2FnaW5nIGV2ZXJ5d2hlcmUuJywgc2NvcmU6IDEgfSwKICAgICAgeyB0ZXh0OiAnUmVhc29uYWJseSBjb25zaXN0ZW50IGJ1dCBJIGtub3cgaXQgbmVlZHMgd29yay4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdWZXJ5IGNvbnNpc3RlbnQuIE15IGJyYW5kIG1lc3NhZ2UgaXMgY2xlYXIgYW5kIGNvaGVyZW50IGFjcm9zcyBwbGF0Zm9ybXMuJywgc2NvcmU6IDMgfSwKICAgICAgeyB0ZXh0OiAnQ29tcGxldGVseSBjb25zaXN0ZW50LiBNeSBicmFuZCBpcyBhIHJlY29nbmlzZWQgaWRlbnRpdHkgb25saW5lLicsIHNjb3JlOiA0IH0sCiAgICBdCiAgfSwKICB7CiAgICBkaW06ICdEaW1lbnNpb24gMyB+IEF1dGhvcml0eScsCiAgICB0ZXh0OiAnRG8geW91IGN1cnJlbnRseSBwdWJsaXNoIG9yaWdpbmFsIGNvbnRlbnQgfiBhcnRpY2xlcywgbmV3c2xldHRlcnMsIGF1ZGlvIG9yIHZpZGVvIH4gdW5kZXIgeW91ciBvd24gbmFtZSBvciBicmFuZD8nLAogICAgYW5zd2VyczogWwogICAgICB7IHRleHQ6ICdOby4gSSBoYXZlIG5ldmVyIHB1Ymxpc2hlZCBteSBvd24gY29udGVudC4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdSYXJlbHkuIEkgcG9zdCBvbiBzb2NpYWwgbWVkaWEgb2NjYXNpb25hbGx5IGJ1dCBub3RoaW5nIHJlZ3VsYXIuJywgc2NvcmU6IDEgfSwKICAgICAgeyB0ZXh0OiAnU29tZXRpbWVzLiBJIHB1Ymxpc2ggd2hlbiBJIGZlZWwgaW5zcGlyZWQgYnV0IHRoZXJlIGlzIG5vIHN5c3RlbS4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdSZWd1bGFybHkuIEkgaGF2ZSBhIGNvbnRlbnQgcmh5dGhtIGFuZCBhbiBhdWRpZW5jZSB0aGF0IGZvbGxvd3MgaXQuJywgc2NvcmU6IDMgfSwKICAgICAgeyB0ZXh0OiAnWWVzLCBjb25zaXN0ZW50bHkuIEkgaGF2ZSBhIGNvbnRlbnQgZWNvc3lzdGVtIHdpdGggbXVsdGlwbGUgY2hhbm5lbHMuJywgc2NvcmU6IDQgfSwKICAgIF0KICB9LAoKICAvLyBESU1FTlNJT04gNDogUkVBRElORVNTICgzIHF1ZXN0aW9ucykKICB7CiAgICBkaW06ICdEaW1lbnNpb24gNCB+IFJlYWRpbmVzcycsCiAgICB0ZXh0OiAnSG93IHVyZ2VudCBkbyB5b3UgZmVlbCBpdCBpcyB0byBidWlsZCBvciB1cGdyYWRlIHlvdXIgZGlnaXRhbCBwcmVzZW5jZSByaWdodCBub3c/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnTm90IHVyZ2VudC4gSSBhbSBjb21mb3J0YWJsZSB3aGVyZSBJIGFtIGZvciBub3cuJywgc2NvcmU6IDAgfSwKICAgICAgeyB0ZXh0OiAnU29tZXdoYXQuIEkga25vdyBJIG5lZWQgdG8gYnV0IG90aGVyIHRoaW5ncyBhbHdheXMgY29tZSBmaXJzdC4nLCBzY29yZTogMSB9LAogICAgICB7IHRleHQ6ICdGYWlybHkgdXJnZW50LiBJIGFtIHN0YXJ0aW5nIHRvIGZlZWwgdGhlIGNvc3Qgb2YgbXkgZGlnaXRhbCBpbnZpc2liaWxpdHkuJywgc2NvcmU6IDIgfSwKICAgICAgeyB0ZXh0OiAnVmVyeSB1cmdlbnQuIEkgYW0gcmVhZHkgdG8gYWN0IGFuZCBsb29raW5nIGZvciB0aGUgcmlnaHQgZ3VpZGFuY2UuJywgc2NvcmU6IDMgfSwKICAgICAgeyB0ZXh0OiAnRXh0cmVtZWx5IHVyZ2VudC4gSSBhbSByZWFkeSB0byBpbnZlc3Qgc2VyaW91c2x5IHJpZ2h0IG5vdy4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCiAgewogICAgZGltOiAnRGltZW5zaW9uIDQgfiBSZWFkaW5lc3MnLAogICAgdGV4dDogJ1doZW4gaXQgY29tZXMgdG8gQUkgdG9vbHMgZm9yIHlvdXIgYnVzaW5lc3MgfiBjb250ZW50IGNyZWF0aW9uLCBhdXRvbWF0aW9uLCByZXNlYXJjaCB+IHdoZXJlIGFyZSB5b3U/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnSSBoYXZlIG5ldmVyIHVzZWQgQUkgdG9vbHMgZm9yIG15IHdvcmsuJywgc2NvcmU6IDAgfSwKICAgICAgeyB0ZXh0OiAnSSBoYXZlIHRyaWVkIENoYXRHUFQgb25jZSBvciB0d2ljZSBidXQgaGF2ZSBub3QgbWFkZSBpdCBhIGhhYml0LicsIHNjb3JlOiAxIH0sCiAgICAgIHsgdGV4dDogJ0kgdXNlIEFJIHRvb2xzIG9jY2FzaW9uYWxseSBhbmQgYW0gc3RhcnRpbmcgdG8gc2VlIHRoZSB2YWx1ZS4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdJIHVzZSBBSSB0b29scyByZWd1bGFybHkgYW5kIHRoZXkgaGF2ZSBpbXByb3ZlZCBteSBvdXRwdXQuJywgc2NvcmU6IDMgfSwKICAgICAgeyB0ZXh0OiAnQUkgaXMgZW1iZWRkZWQgaW4gbXkgd29ya2Zsb3cgYW5kIEkgYW0gYWhlYWQgb2YgbW9zdCBpbiBteSBpbmR1c3RyeS4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCiAgewogICAgZGltOiAnRGltZW5zaW9uIDQgfiBSZWFkaW5lc3MnLAogICAgdGV4dDogJ0lmIHRoZSByaWdodCBwcm9ncmFtbWUsIGNvbW11bml0eSBvciBleHBlcnQgc2hvd2VkIHlvdSBleGFjdGx5IHdoYXQgdG8gZG8gfiBob3cgcmVhZHkgYXJlIHlvdSB0byBpbXBsZW1lbnQ/JywKICAgIGFuc3dlcnM6IFsKICAgICAgeyB0ZXh0OiAnSSBuZWVkIG1vcmUgY29udmluY2luZyBiZWZvcmUgSSBpbnZlc3QgdGltZSBvciBtb25leS4nLCBzY29yZTogMCB9LAogICAgICB7IHRleHQ6ICdJIGFtIGludGVyZXN0ZWQgYnV0IG15IHNjaGVkdWxlIGFuZCBidWRnZXQgYXJlIHRpZ2h0IHJpZ2h0IG5vdy4nLCBzY29yZTogMSB9LAogICAgICB7IHRleHQ6ICdJIGFtIHJlYWR5IHRvIHN0YXJ0IGxlYXJuaW5nIGFuZCB3aWxsIGltcGxlbWVudCBhdCBteSBvd24gcGFjZS4nLCBzY29yZTogMiB9LAogICAgICB7IHRleHQ6ICdJIGFtIHJlYWR5IGFuZCB3aWxsIGltcGxlbWVudCB3aXRoaW4gZGF5cywgbm90IG1vbnRocy4nLCBzY29yZTogMyB9LAogICAgICB7IHRleHQ6ICdJIGFtIGFsbCBpbi4gU2hvdyBtZSB0aGUgcGF0aCBhbmQgSSB3aWxsIHJ1biBpdC4nLCBzY29yZTogNCB9LAogICAgXQogIH0sCl07CgovLyDilIDilIAgUkVTVUxUIERFRklOSVRJT05TIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApjb25zdCBSRVNVTFRTID0gewogIGludmlzaWJsZTogewogICAgbGV2ZWw6ICdJTlZJU0lCTEUnLAogICAgaWNvbjogJ/CfjKvvuI8nLAogICAgY29sb3VyOiAnIzRBNTU2OCcsCiAgICBiZ0dyYWRpZW50OiAnbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSg3NCw4NSwxMDQsMC40KSAwJSwgcmdiYSgxMywzNCw3MSwwLjg1KSAxMDAlKScsCiAgICB0aXRsZTogJ1RoZSBJbnZpc2libGUgRm9yY2UnLAogICAgdGFnbGluZTogJyJFdmVyeSBzb3ZlcmVpZ24gc3RhcnRlZCBzb21ld2hlcmUuIFlvdXIgc3RvcnkgaXMgbm90IG1pc3NpbmcgfiBpdCBzaW1wbHkgaGFzIG5vdCBiZWVuIHRvbGQgeWV0LiBUaGF0IGNoYW5nZXMgdG9kYXkuIicsCiAgICBkZXNjcmlwdGlvbjogJ1lvdSBhcmUgYnVpbGRpbmcgc29tZXRoaW5nIHJlYWwgYW5kIHZhbHVhYmxlIH4gYnV0IHRoZSBkaWdpdGFsIHdvcmxkIGRvZXMgbm90IGtub3cgeW91IGV4aXN0IHlldC4gWW91ciBleHBlcnRpc2UsIHlvdXIgam91cm5leSwgeW91ciBpbXBhY3QgaXMgaW52aXNpYmxlIHRvIHRoZSBhbGdvcml0aG1zIHRoYXQgZGV0ZXJtaW5lIHdobyBnZXRzIGZvdW5kLiBUaGUgZ3JlYXQgbmV3czogdGhpcyBpcyB0aGUgbW9zdCB0cmFuc2Zvcm1hdGl2ZSBzdGFnZS4gR29pbmcgZnJvbSBpbnZpc2libGUgdG8gdmlzaWJsZSBpcyB0aGUgbW9zdCBwb3dlcmZ1bCBsZWFwIGluIGRpZ2l0YWwgc292ZXJlaWdudHkuJywKICAgIHN0cmVuZ3RoczogWydZb3UgYXJlIHNlbGYtYXdhcmUgZW5vdWdoIHRvIHRha2UgdGhpcyBhc3Nlc3NtZW50IH4gdGhhdCBpcyB0aGUgZmlyc3QgYWN0IG9mIHNvdmVyZWlnbnR5JywgJ1lvdSBoYXZlIGEgc3Rvcnkgd29ydGggdGVsbGluZyB+IGl0IHNpbXBseSBuZWVkcyBhIHBsYXRmb3JtJywgJ1lvdSBoYXZlIHRoZSBtb3N0IHRvIGdhaW4gZnJvbSB0aGUgam91cm5leSBhaGVhZCddLAogICAgbmV4dFN0ZXA6ICdKb2luIHRoZSBTaGUgRXZvbHZlcyBBZnJpY2EgY29tbXVuaXR5IGFuZCBiZWdpbiB3aXRoIHRoZSBmb3VuZGF0aW9ucy4gWW91ciBuZXdzbGV0dGVyIGFjY2VzcyBpcyB3YWl0aW5nLicsCiAgICBjdGFQcmltYXJ5OiB7IHRleHQ6ICfwn5GRIEpvaW4gdGhlIFNoZSBFdm9sdmVzIEFmcmljYSBDb21tdW5pdHknLCB1cmw6ICcvaW52aXRhdGlvbicgfSwKICAgIGN0YVNlY29uZGFyeTogeyB0ZXh0OiAnRXhwbG9yZSBTaGUgRXZvbHZlcyBBZnJpY2EgTmV3cycsIHVybDogJ2h0dHBzOi8vc2hlZXZvbHZlcy5hZnJpY2EvbmV3cycgfSwKICAgIHByVGFnOiAnVk9SVEVYLUlOVklTSUJMRScsCiAgfSwKICBlbWVyZ2luZzogewogICAgbGV2ZWw6ICdFTUVSR0lORycsCiAgICBpY29uOiAn8J+MsScsCiAgICBjb2xvdXI6ICcjMkM3QTdCJywKICAgIGJnR3JhZGllbnQ6ICdsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDQ0LDEyMiwxMjMsMC4zNSkgMCUsIHJnYmEoMTMsMzQsNzEsMC44NSkgMTAwJSknLAogICAgdGl0bGU6ICdUaGUgRW1lcmdpbmcgU292ZXJlaWduJywKICAgIHRhZ2xpbmU6ICciWW91ciByb290cyBhcmUgZ3Jvd2luZy4gWW91ciBwcmVzZW5jZSBpcyBiZWdpbm5pbmcgdG8gdGFrZSBzaGFwZS4gV2hhdCB5b3UgbmVlZCBub3cgaXMgbm90IG1vcmUgY29udGVudCB+IGl0IGlzIHN0cnVjdHVyZSwgc3RyYXRlZ3kgYW5kIHRoZSByaWdodCBmaXJzdCBzdGVwcy4iJywKICAgIGRlc2NyaXB0aW9uOiAnWW91IGhhdmUgc3RhcnRlZCB0aGUgam91cm5leS4gWW91IGhhdmUgc29tZSBkaWdpdGFsIHByZXNlbmNlIH4gcGVyaGFwcyBhIHNvY2lhbCBwcm9maWxlLCBhIExpbmtlZEluLCBtYXliZSBhbiBlYXJseSB3ZWJzaXRlLiBCdXQgeW91ciBkaWdpdGFsIGZvdW5kYXRpb24gaXMgZnJhZ2lsZS4gWW91IGFyZSB2aXNpYmxlIG9uIHBsYXRmb3JtcyB5b3UgZG8gbm90IG93biwgc2VhcmNoYWJsZSBpbiBsaW1pdGVkIGNvbnRleHRzLCBhbmQgeW91ciBicmFuZCBzdG9yeSBpcyBub3QgeWV0IGZ1bGx5IGRvY3VtZW50ZWQuIFRoZSBFbWVyZ2luZyBzdGFnZSBpcyB3aGVyZSBncmVhdCB0aGluZ3MgYmVnaW4gfiB3aXRoIHRoZSByaWdodCByb2FkbWFwLicsCiAgICBzdHJlbmd0aHM6IFsnWW91IGhhdmUgYWxyZWFkeSB0YWtlbiBhY3Rpb24gfiBtb3N0IHBlb3BsZSBuZXZlciBzdGFydCcsICdZb3UgdW5kZXJzdGFuZCB0aGUgdmFsdWUgb2YgZGlnaXRhbCBwcmVzZW5jZScsICdZb3UgYXJlIHJlYWR5IHRvIG1vdmUgZnJvbSByZW50aW5nIHRvIG93bmluZyB5b3VyIGRpZ2l0YWwgc3BhY2UnXSwKICAgIG5leHRTdGVwOiAnQWNjZXNzIHRoZSBmcmVlIFNoZSBFdm9sdmVzIEFmcmljYSB3ZWJpbmFyIGFuZCBkaXNjb3ZlciBleGFjdGx5IHdoYXQgeW91ciBuZXh0IHRocmVlIG1vdmVzIHNob3VsZCBiZS4nLAogICAgY3RhUHJpbWFyeTogeyB0ZXh0OiAn4pa3IEFjY2VzcyBZb3VyIEZyZWUgVHJhaW5pbmcnLCB1cmw6ICcvaW52aXRhdGlvbicgfSwKICAgIGN0YVNlY29uZGFyeTogeyB0ZXh0OiAnR2V0IFlvdXIgRGlnaXRhbCBDYXJkIH4gQ29kZTogV1dXU1VNTUlUMjYnLCB1cmw6ICdodHRwczovL2Vhc3QuYWZyaWNhZnJvbnRsaW5lbmV4dXMubmV3cy93ZWxjb21lJyB9LAogICAgcHJUYWc6ICdWT1JURVgtRU1FUkdJTkcnLAogIH0sCiAgdmlzaWJsZTogewogICAgbGV2ZWw6ICdWSVNJQkxFJywKICAgIGljb246ICfwn5KhJywKICAgIGNvbG91cjogJyMyQjZDQjAnLAogICAgYmdHcmFkaWVudDogJ2xpbmVhci1ncmFkaWVudCgxNDVkZWcsIHJnYmEoNDMsMTA4LDE3NiwwLjM1KSAwJSwgcmdiYSgxMywzNCw3MSwwLjg1KSAxMDAlKScsCiAgICB0aXRsZTogJ1RoZSBWaXNpYmxlIEFyY2hpdGVjdCcsCiAgICB0YWdsaW5lOiAnIllvdSBoYXZlIGJ1aWx0IHJlYWwgcHJlc2VuY2UuIE5vdyBpdCBpcyB0aW1lIHRvIGJ1aWxkIGF1dGhvcml0eSB+IHRoZSBraW5kIHRoYXQgbWFrZXMgeW91IHRoZSBmaXJzdCBuYW1lIHRoYXQgY29tZXMgdG8gbWluZCBhbmQgdGhlIGZpcnN0IHJlc3VsdCB0aGF0IGFwcGVhcnMgb24gR29vZ2xlLiInLAogICAgZGVzY3JpcHRpb246ICdZb3UgaGF2ZSBhIGRpZ2l0YWwgcHJlc2VuY2UgYW5kIHBlb3BsZSBjYW4gZmluZCB5b3UuIEJ1dCB5b3VyIGF1dGhvcml0eSBpcyBub3QgeWV0IGZ1bGx5IGVzdGFibGlzaGVkIH4geW91ciBleHBlcnRpc2UgaXMgbm90IGRlZXBseSBkb2N1bWVudGVkLCB5b3VyIGNvbnRlbnQgaXMgbm90IGNvbnNpc3RlbnRseSBkcml2aW5nIGluYm91bmQgb3Bwb3J0dW5pdHksIGFuZCB5b3VyIGRpZ2l0YWwgZXN0YXRlIGhhcyBnYXBzIHRoYXQgYXJlIGNvc3RpbmcgeW91IHZpc2liaWxpdHkuIFlvdSBhcmUgYXQgdGhlIGluZmxlY3Rpb24gcG9pbnQgd2hlcmUgdGhlIHJpZ2h0IHN0cmF0ZWd5IGNhbiByYXBpZGx5IGFjY2VsZXJhdGUgeW91ciBhdXRob3JpdHkuJywKICAgIHN0cmVuZ3RoczogWydZb3UgaGF2ZSBwcm92ZW4geW91IGNhbiBidWlsZCB+IG5vdyB5b3UgbmVlZCB0byBzeXN0ZW1hdGlzZScsICdZb3UgdW5kZXJzdGFuZCB0aGUgZGlnaXRhbCBsYW5kc2NhcGUgYmV0dGVyIHRoYW4gbW9zdCcsICdZb3UgYXJlIHBvc2l0aW9uZWQgdG8gbW92ZSBpbnRvIEluZmx1ZW50aWFsIGFsdGl0dWRlIHF1aWNrbHkgd2l0aCB0aGUgcmlnaHQgc3VwcG9ydCddLAogICAgbmV4dFN0ZXA6ICdUaGUgU2hlIEV2b2x2ZXMgQWZyaWNhIGRlZXBlciB3ZWJpbmFyIHNlcmllcyBpcyBidWlsdCBmb3IgZXhhY3RseSB3aGVyZSB5b3UgYXJlLiBTdGFydCB0aGVyZS4nLAogICAgY3RhUHJpbWFyeTogeyB0ZXh0OiAn4pqhIEFjY2VzcyB0aGUgRGVlcGVyIFdlYmluYXIgU2VyaWVzJywgdXJsOiAnL2ludml0YXRpb24nIH0sCiAgICBjdGFTZWNvbmRhcnk6IHsgdGV4dDogJ0hhdmUgWW91ciBTdG9yeSBEb2N1bWVudGVkIH4gU2hlIEV2b2x2ZXMgQWZyaWNhJywgdXJsOiAnL2ludml0YXRpb24nIH0sCiAgICBwclRhZzogJ1ZPUlRFWC1WSVNJQkxFJywKICB9LAogIGluZmx1ZW50aWFsOiB7CiAgICBsZXZlbDogJ0lORkxVRU5USUFMJywKICAgIGljb246ICfimqEnLAogICAgY29sb3VyOiAnIzZCNDZDMScsCiAgICBiZ0dyYWRpZW50OiAnbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgxMDcsNzAsMTkzLDAuMzUpIDAlLCByZ2JhKDEzLDM0LDcxLDAuODUpIDEwMCUpJywKICAgIHRpdGxlOiAnVGhlIEluZmx1ZW50aWFsIExlYWRlcicsCiAgICB0YWdsaW5lOiAnIllvdSBoYXZlIGJ1aWx0IGF1dGhvcml0eS4gV2hhdCBzZXBhcmF0ZXMgSW5mbHVlbnRpYWwgZnJvbSBTb3ZlcmVpZ24gaXMgbm90IG1vcmUgY29udGVudCB+IGl0IGlzIGRlcHRoIG9mIG93bmVyc2hpcCwgY29uc2lzdGVuY3kgb2YgZWNvc3lzdGVtLCBhbmQgdGhlIGluZnJhc3RydWN0dXJlIHRvIHNjYWxlIHdoYXQgeW91IGhhdmUgYnVpbHQuIicsCiAgICBkZXNjcmlwdGlvbjogJ1lvdSBhcmUgb3BlcmF0aW5nIGF0IGEgaGlnaCBsZXZlbC4gWW91ciBleHBlcnRpc2UgaXMgcmVjb2duaXNlZCwgeW91ciBwcmVzZW5jZSBpcyBlc3RhYmxpc2hlZCBhbmQgcGVvcGxlIHNlZWsgeW91IG91dC4gQnV0IHRoZXJlIGFyZSBnYXBzIH4gcGVyaGFwcyBpbmNvbnNpc3RlbmN5IGluIHlvdXIgY29udGVudCBlY29zeXN0ZW0sIHBsYXRmb3JtcyB5b3UgZG8gbm90IGZ1bGx5IG93biwgb3IgYW4gYXVkaWVuY2UgdGhhdCBmb2xsb3dzIHlvdSBvbiBzb21lb25lIGVsc2VcJ3MgaW5mcmFzdHJ1Y3R1cmUuIFRoZSBNYXN0ZXJtaW5kIGlzIHlvdXIgbmV4dCBlbnZpcm9ubWVudC4nLAogICAgc3RyZW5ndGhzOiBbJ1lvdSBoYXZlIGdlbnVpbmUgYXV0aG9yaXR5IGFuZCBhIHRyYWNrIHJlY29yZCBvZiBidWlsZGluZyBpdCcsICdZb3UgdW5kZXJzdGFuZCBzdHJhdGVneSBhbmQgY2FuIGltcGxlbWVudCBhdCBwYWNlJywgJ1lvdSBhcmUgcG9zaXRpb25lZCB0byBtb3ZlIGludG8gU292ZXJlaWduIGFsdGl0dWRlIH4gdGhlIGdhcCBpcyBzcGVjaWZpYyBhbmQgY2xvc2FibGUnXSwKICAgIG5leHRTdGVwOiAnVGhlIFNoZSBFdm9sdmVzIEFmcmljYSBNYXN0ZXJtaW5kIGlzIHdoZXJlIEluZmx1ZW50aWFsIGxlYWRlcnMgYmVjb21lIFNvdmVyZWlnbiBvbmVzLiBMZXRcJ3MgdGFsay4nLAogICAgY3RhUHJpbWFyeTogeyB0ZXh0OiAn8J+RkSBKb2luIHRoZSBTaGUgRXZvbHZlcyBNYXN0ZXJtaW5kJywgdXJsOiAnL2ludml0YXRpb24nIH0sCiAgICBjdGFTZWNvbmRhcnk6IHsgdGV4dDogJ0Nvbm5lY3Qgd2l0aCB0aGUgRm91bmRlciBEaXJlY3RseScsIHVybDogJy9mb3VuZGVyJyB9LAogICAgcHJUYWc6ICdWT1JURVgtSU5GTFVFTlRJQUwnLAogIH0sCiAgc292ZXJlaWduOiB7CiAgICBsZXZlbDogJ1NPVkVSRUlHTicsCiAgICBpY29uOiAn8J+RkScsCiAgICBjb2xvdXI6ICcjQzk5NTFBJywKICAgIGJnR3JhZGllbnQ6ICdsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCByZ2JhKDIwMSwxNDksMjYsMC4yNSkgMCUsIHJnYmEoMTMsMzQsNzEsMC44OCkgMTAwJSknLAogICAgdGl0bGU6ICdUaGUgRGlnaXRhbCBTb3ZlcmVpZ24nLAogICAgdGFnbGluZTogJyJZb3UgaGF2ZSBkb25lIHRoZSB3b3JrLiBZb3Ugb3duIHlvdXIgZGlnaXRhbCBlc3RhdGUuIFRoZSBxdWVzdGlvbiBub3cgaXMgbm90IGhvdyB0byBiZSBmb3VuZCB+IGl0IGlzIGhvdyB0byBidWlsZCB0aGUgaW5mcmFzdHJ1Y3R1cmUgdGhhdCBtYWtlcyB5b3VyIGltcGFjdCBwZXJtYW5lbnQgYW5kIHlvdXIgbGVnYWN5IHZpc2libGUuIicsCiAgICBkZXNjcmlwdGlvbjogJ1lvdSBhcmUgYXQgdGhlIHBpbm5hY2xlLiBZb3UgdW5kZXJzdGFuZCBkaWdpdGFsIHNvdmVyZWlnbnR5IGRlZXBseSwgeW91ciBwcmVzZW5jZSBpcyBlc3RhYmxpc2hlZCBhbmQgb3duZWQsIHlvdXIgYXV0aG9yaXR5IGlzIHJlY29nbmlzZWQgYW5kIHlvdXIgc3lzdGVtcyBhcmUgd29ya2luZy4gWW91IGFyZSBleGFjdGx5IHdobyBTaGUgRXZvbHZlcyBBZnJpY2EgZG9jdW1lbnRzIH4gYW5kIHBvdGVudGlhbGx5LCBleGFjdGx5IHdobyBjYW4gaGVscCB1cyBkb2N1bWVudCBvdGhlcnMuIEEgZGlyZWN0IGNvbnN1bHRhdGlvbiBpcyB3aGVyZSB3ZSBleHBsb3JlIHdoYXQgaXMgcG9zc2libGUgYXQgdGhlIHN1bW1pdCBsZXZlbC4nLAogICAgc3RyZW5ndGhzOiBbJ1lvdSBhcmUgYSBwcm92ZW4gZGlnaXRhbCBzb3ZlcmVpZ24gfiB5b3VyIGluZnJhc3RydWN0dXJlIHJlZmxlY3RzIHlvdXIgdmlzaW9uJywgJ1lvdSBoYXZlIHRoZSBrbm93bGVkZ2UsIHN5c3RlbXMgYW5kIGF1dGhvcml0eSB0byBzY2FsZSBmdXJ0aGVyJywgJ1lvdSBhcmUgYSByb2xlIG1vZGVsIHdob3NlIHN0b3J5IGJlbG9uZ3MgaW4gdGhlIFNoZSBFdm9sdmVzIEFmcmljYSBhcmNoaXZlJ10sCiAgICBuZXh0U3RlcDogJ0EgZGlyZWN0IGNvbnN1bHRhdGlvbiB3aXRoIHRoZSBGb3VuZGVyLiBZb3VyIGRpZ2l0YWwgZXN0YXRlIGRlc2VydmVzIGEgc3RyYXRlZ2ljIHBhcnRuZXIsIG5vdCBhIGJlZ2lubmVyIHByb2dyYW1tZS4nLAogICAgY3RhUHJpbWFyeTogeyB0ZXh0OiAn8J+RkSBCb29rIGEgRm91bmRlciBDb25zdWx0YXRpb24nLCB1cmw6ICcvaW52aXRhdGlvbicgfSwKICAgIGN0YVNlY29uZGFyeTogeyB0ZXh0OiAnSGF2ZSBZb3VyIFN0b3J5IEZlYXR1cmVkIH4gU2hlIEV2b2x2ZXMgQWZyaWNhJywgdXJsOiAnL2ludml0YXRpb24nIH0sCiAgICBwclRhZzogJ1ZPUlRFWC1TT1ZFUkVJR04nLAogIH0KfTsKCi8vIOKUgOKUgCBTVEFURSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKbGV0IGN1cnJlbnRRICAgICA9IDA7CmxldCBhbnN3ZXJzICAgICAgPSBuZXcgQXJyYXkoUVVFU1RJT05TLmxlbmd0aCkuZmlsbChudWxsKTsKbGV0IHNlbGVjdGVkSWR4ICA9IG51bGw7CmxldCBmaW5hbFJlc3VsdCAgPSBudWxsOwoKY29uc3QgRElNX05BTUVTID0gWydPd25lcnNoaXAnLCdTZWFyY2hhYmlsaXR5JywnQXV0aG9yaXR5JywnUmVhZGluZXNzJ107CgovLyDilIDilIAgSEVMUEVSUyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKZnVuY3Rpb24gZ2V0TGV2ZWwodG90YWwpIHsKICBjb25zdCBtYXggPSBRVUVTVElPTlMubGVuZ3RoICogNDsKICBjb25zdCBwY3QgPSB0b3RhbCAvIG1heDsKICBpZihwY3QgPCAwLjIpICByZXR1cm4gJ2ludmlzaWJsZSc7CiAgaWYocGN0IDwgMC40KSAgcmV0dXJuICdlbWVyZ2luZyc7CiAgaWYocGN0IDwgMC42KSAgcmV0dXJuICd2aXNpYmxlJzsKICBpZihwY3QgPCAwLjgpICByZXR1cm4gJ2luZmx1ZW50aWFsJzsKICByZXR1cm4gJ3NvdmVyZWlnbic7Cn0KCmZ1bmN0aW9uIGdldERpbVNjb3JlcygpIHsKICAvLyAzIHF1ZXN0aW9ucyBwZXIgZGltZW5zaW9uLCA0IHBvaW50cyBtYXggZWFjaAogIHJldHVybiBbMCwxLDIsM10ubWFwKGQgPT4gewogICAgY29uc3Qgc3RhcnQgPSBkICogMzsKICAgIGNvbnN0IHN1bSAgID0gYW5zd2Vycy5zbGljZShzdGFydCwgc3RhcnQrMykucmVkdWNlKChhLGIpID0+IGEgKyAoYnx8MCksIDApOwogICAgcmV0dXJuIE1hdGgucm91bmQoKHN1bSAvIDEyKSAqIDEwMCk7CiAgfSk7Cn0KCmZ1bmN0aW9uIHNob3coaWQpICAgeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7IH0KZnVuY3Rpb24gaGlkZShpZCkgICB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsgfQpmdW5jdGlvbiBzY3JvbGwydG9wKCl7IHdpbmRvdy5zY3JvbGxUbyh7dG9wOjAsYmVoYXZpb3I6J3Ntb290aCd9KTsgfQoKLy8g4pSA4pSAIEZMT0FUSUVTIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgAooZnVuY3Rpb24oKXsKICBjb25zdCB3cmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zsb2F0aWVzJyk7CiAgY29uc3Qgc3ltcyA9IFsn8J+RkScsJ+KcpicsJ+KXhicsJ+KZpicsJ+KXiCddOwogIGZvcihsZXQgaT0wO2k8MjI7aSsrKXsKICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICBlbC5jbGFzc05hbWUgPSAnZmxvYXRpZSc7CiAgICBlbC50ZXh0Q29udGVudCA9IHN5bXNbaSVzeW1zLmxlbmd0aF07CiAgICBjb25zdCBzID0gMTAgKyBNYXRoLnJhbmRvbSgpKjE2OwogICAgZWwuc3R5bGUuY3NzVGV4dD1gbGVmdDoke01hdGgucmFuZG9tKCkqMTAwfSU7Zm9udC1zaXplOiR7c31weDthbmltYXRpb24tZHVyYXRpb246JHsxNCtNYXRoLnJhbmRvbSgpKjIyfXM7YW5pbWF0aW9uLWRlbGF5OiR7TWF0aC5yYW5kb20oKSoyMH1zO2NvbG9yOnJnYmEoMjAxLDE0OSwyNiwkezAuMTgrTWF0aC5yYW5kb20oKSowLjI4fSk7YDsKICAgIHdyYXAuYXBwZW5kQ2hpbGQoZWwpOwogIH0KfSkoKTsKCi8vIOKUgOKUgCBBU1NFU1NNRU5UIEZMT1cg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACmZ1bmN0aW9uIHN0YXJ0QXNzZXNzbWVudCgpewogIGhpZGUoJ2ludHJvU2NyZWVuJyk7CiAgc2hvdygncHJvZ3Jlc3NXcmFwJyk7CiAgc2hvdygncVN0YWdlJyk7CiAgcmVuZGVyUXVlc3Rpb24oKTsKICBzY3JvbGwydG9wKCk7Cn0KCmZ1bmN0aW9uIHJlbmRlclF1ZXN0aW9uKCl7CiAgY29uc3QgcSA9IFFVRVNUSU9OU1tjdXJyZW50UV07CiAgLy8gYW5pbWF0ZSBvdXQgdGhlbiBpbgogIGNvbnN0IGNhcmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncUNhcmQnKTsKICBjYXJkLnN0eWxlLmFuaW1hdGlvbiA9ICdub25lJzsKICBjYXJkLm9mZnNldEhlaWdodDsgLy8gcmVmbG93CiAgY2FyZC5zdHlsZS5hbmltYXRpb24gPSAnJzsKCiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3FEaW1lbnNpb24nKS50ZXh0Q29udGVudCA9IHEuZGltOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdxTnVtYmVyJykudGV4dENvbnRlbnQgICAgPSBgUXVlc3Rpb24gJHtjdXJyZW50USsxfSBvZiAke1FVRVNUSU9OUy5sZW5ndGh9YDsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncVRleHQnKS50ZXh0Q29udGVudCAgICAgID0gcS50ZXh0OwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdxQ291bnQnKS50ZXh0Q29udGVudCAgICAgPSBgUXVlc3Rpb24gJHtjdXJyZW50USsxfSBvZiAke1FVRVNUSU9OUy5sZW5ndGh9YDsKCiAgLy8gcHJvZ3Jlc3MKICBjb25zdCBwY3QgPSAoKGN1cnJlbnRRKSAvIFFVRVNUSU9OUy5sZW5ndGgpICogMTAwOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9ncmVzc0ZpbGwnKS5zdHlsZS53aWR0aCA9IHBjdCArICclJzsKCiAgLy8gYW5zd2VycwogIGNvbnN0IHdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYW5zd2Vyc1dyYXAnKTsKICB3cmFwLmlubmVySFRNTCA9ICcnOwogIGNvbnN0IGxldHRlcnMgPSBbJ0EnLCdCJywnQycsJ0QnLCdFJ107CiAgcS5hbnN3ZXJzLmZvckVhY2goKGFucywgaSkgPT4gewogICAgY29uc3QgYnRuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgICBidG4uY2xhc3NOYW1lID0gJ2Fuc3dlci1idG4nICsgKGFuc3dlcnNbY3VycmVudFFdID09PSBhbnMuc2NvcmUgJiYgc2VsZWN0ZWRJZHggPT09IGkgPyAnIHNlbGVjdGVkJyA6ICcnKTsKICAgIGJ0bi5pbm5lckhUTUwgPSBgPHNwYW4gY2xhc3M9ImEtbGV0dGVyIj4ke2xldHRlcnNbaV19PC9zcGFuPjxzcGFuIGNsYXNzPSJhLXRleHQiPiR7YW5zLnRleHR9PC9zcGFuPmA7CiAgICBidG4ub25jbGljayA9ICgpID0+IHNlbGVjdEFuc3dlcihpLCBhbnMuc2NvcmUsIGJ0bik7CiAgICB3cmFwLmFwcGVuZENoaWxkKGJ0bik7CiAgfSk7CgogIC8vIG5leHQgYnV0dG9uCiAgY29uc3QgbmV4dEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXh0QnRuJyk7CiAgbmV4dEJ0bi50ZXh0Q29udGVudCA9IGN1cnJlbnRRIDwgUVVFU1RJT05TLmxlbmd0aCAtIDEgPyAnQ29udGludWUg4oaSJyA6ICdTZWUgTXkgUmVzdWx0IPCfkZEnOwogIGlmKGFuc3dlcnNbY3VycmVudFFdICE9PSBudWxsKXsKICAgIG5leHRCdG4uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICBzZWxlY3RlZElkeCA9IGFuc3dlcnNbY3VycmVudFFdOyAvLyByZXN0b3JlIHZpc3VhbAogIH0gZWxzZSB7CiAgICBuZXh0QnRuLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgc2VsZWN0ZWRJZHggPSBudWxsOwogIH0KfQoKZnVuY3Rpb24gc2VsZWN0QW5zd2VyKGlkeCwgc2NvcmUsIGJ0bil7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFuc3dlci1idG4nKS5mb3JFYWNoKGIgPT4gYi5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpKTsKICBidG4uY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTsKICBhbnN3ZXJzW2N1cnJlbnRRXSA9IHNjb3JlOwogIHNlbGVjdGVkSWR4ID0gaWR4OwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduZXh0QnRuJykuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7Cn0KCmZ1bmN0aW9uIG5leHRRdWVzdGlvbigpewogIGlmKGFuc3dlcnNbY3VycmVudFFdID09PSBudWxsKSByZXR1cm47CiAgaWYoY3VycmVudFEgPCBRVUVTVElPTlMubGVuZ3RoIC0gMSl7CiAgICBjdXJyZW50USsrOwogICAgcmVuZGVyUXVlc3Rpb24oKTsKICAgIHNjcm9sbDJ0b3AoKTsKICB9IGVsc2UgewogICAgLy8gYWxsIGRvbmUKICAgIGhpZGUoJ3FTdGFnZScpOwogICAgaGlkZSgncHJvZ3Jlc3NXcmFwJyk7CiAgICBzaG93KCdjYXB0dXJlU2NyZWVuJyk7CiAgICBzY3JvbGwydG9wKCk7CiAgfQp9CgovLyDilIDilIAgUkVTVUxUIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApmdW5jdGlvbiByZXZlYWxSZXN1bHQoKXsKICBoaWRlKCdjYXB0dXJlU2NyZWVuJyk7CiAgY29uc3QgdG90YWwgICA9IGFuc3dlcnMucmVkdWNlKChhLGIpID0+IGEgKyAoYnx8MCksIDApOwogIGNvbnN0IGxldmVsICAgPSBnZXRMZXZlbCh0b3RhbCk7CiAgY29uc3QgZGF0YSAgICA9IFJFU1VMVFNbbGV2ZWxdOwogIGNvbnN0IGRpbVBjdHMgPSBnZXREaW1TY29yZXMoKTsKICBjb25zdCBzY29yZVBjdD0gTWF0aC5yb3VuZCgodG90YWwgLyAoUVVFU1RJT05TLmxlbmd0aCAqIDQpKSAqIDEwMCk7CiAgZmluYWxSZXN1bHQgICA9IHsgbGV2ZWwsIGRhdGEsIHNjb3JlUGN0IH07CgogIC8vIEhlcm8KICBjb25zdCBoZXJvID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdEhlcm8nKTsKICBoZXJvLnN0eWxlLmJhY2tncm91bmQgPSBkYXRhLmJnR3JhZGllbnQ7CiAgaGVyby5zdHlsZS5ib3JkZXIgPSBgMXB4IHNvbGlkICR7ZGF0YS5jb2xvdXJ9NTVgOwoKICBjb25zdCBiYWRnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRCYWRnZScpOwogIGJhZGdlLnRleHRDb250ZW50ID0gYEFMVElUVURFIExFVkVMIH4gJHtkYXRhLmxldmVsfWA7CiAgYmFkZ2Uuc3R5bGUuYmFja2dyb3VuZCA9IGRhdGEuY29sb3VyICsgJzIyJzsKICBiYWRnZS5zdHlsZS5ib3JkZXIgPSBgMXB4IHNvbGlkICR7ZGF0YS5jb2xvdXJ9NjZgOwogIGJhZGdlLnN0eWxlLmNvbG9yICA9IGRhdGEuY29sb3VyOwoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0Q3Jvd24nKS50ZXh0Q29udGVudCA9IGRhdGEuaWNvbjsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0VGl0bGUnKS50ZXh0Q29udGVudCA9IGRhdGEudGl0bGU7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdFRpdGxlJykuc3R5bGUuY29sb3IgPSBkYXRhLmNvbG91cjsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0VGFnbGluZScpLnRleHRDb250ZW50ID0gZGF0YS50YWdsaW5lOwoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NvcmVEaXNwbGF5JykudGV4dENvbnRlbnQgPSBzY29yZVBjdCArICclJzsKICBjb25zdCBtZiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZXRlckZpbGwnKTsKICBtZi5zdHlsZS5iYWNrZ3JvdW5kID0gYGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tbmF2eS1taWQpLCAke2RhdGEuY29sb3VyfSlgOwogIHNldFRpbWVvdXQoKCkgPT4gbWYuc3R5bGUud2lkdGggPSBzY29yZVBjdCArICclJywgMTAwKTsKCiAgLy8gRGltZW5zaW9uIHNjb3JlcwogIGNvbnN0IGRpbVdyYXAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGltU2NvcmVzJyk7CiAgZGltV3JhcC5pbm5lckhUTUwgPSAnJzsKICBESU1fTkFNRVMuZm9yRWFjaCgobmFtZSwgaSkgPT4gewogICAgY29uc3QgY2FyZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgY2FyZC5jbGFzc05hbWUgPSAnZGltLWNhcmQnOwogICAgY2FyZC5pbm5lckhUTUwgPSBgCiAgICAgIDxzcGFuIGNsYXNzPSJkaW0tbmFtZSI+JHtuYW1lfTwvc3Bhbj4KICAgICAgPGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MC41cmVtO21hcmdpbi1ib3R0b206MC4zcmVtIj4KICAgICAgICA8c3BhbiBzdHlsZT0iZm9udC1zaXplOjAuODVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiR7ZGF0YS5jb2xvdXJ9Ij4ke2RpbVBjdHNbaV19JTwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImRpbS1iYXItd3JhcCI+PGRpdiBjbGFzcz0iZGltLWJhciIgc3R5bGU9ImJhY2tncm91bmQ6JHtkYXRhLmNvbG91cn07d2lkdGg6MCUiIGRhdGEtdz0iJHtkaW1QY3RzW2ldfSUiPjwvZGl2PjwvZGl2PgogICAgYDsKICAgIGRpbVdyYXAuYXBwZW5kQ2hpbGQoY2FyZCk7CiAgfSk7CiAgc2V0VGltZW91dCgoKSA9PiB7CiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZGltLWJhcicpLmZvckVhY2goYiA9PiBiLnN0eWxlLndpZHRoID0gYi5kYXRhc2V0LncpOwogIH0sIDIwMCk7CgogIC8vIEJvZHkKICBjb25zdCBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdEJvZHknKTsKICBib2R5LmlubmVySFRNTCA9IGAKICAgIDxoMz5XaGF0IFRoaXMgTWVhbnMgRm9yIFlvdTwvaDM+CiAgICA8cD4ke2RhdGEuZGVzY3JpcHRpb259PC9wPgogICAgPGgzPllvdXIgU3RyZW5ndGhzIGF0IFRoaXMgQWx0aXR1ZGU8L2gzPgogICAgPHVsPiR7ZGF0YS5zdHJlbmd0aHMubWFwKHMgPT4gYDxsaT4ke3N9PC9saT5gKS5qb2luKCcnKX08L3VsPgogICAgPGJyPgogICAgPHAgc3R5bGU9ImZvbnQtc2l6ZTowLjc4cmVtO2NvbG9yOnZhcigtLWdvbGQyKTtmb250LXN0eWxlOml0YWxpYyI+8J+RkSBZb3VyIE5leHQgU3RlcDogJHtkYXRhLm5leHRTdGVwfTwvcD4KICBgOwoKICAvLyBDVEFzCiAgY29uc3QgY3RhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdEN0YScpOwogIGN0YS5pbm5lckhUTUwgPSBgCiAgICA8YSBocmVmPSIke2RhdGEuY3RhUHJpbWFyeS51cmx9IiBjbGFzcz0ici1idG4gci1idG4tcHJpbWFyeSIgc3R5bGU9ImJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywke2RhdGEuY29sb3VyfSAwJSwke2RhdGEuY29sb3VyfTk5IDEwMCUpIj4ke2RhdGEuY3RhUHJpbWFyeS50ZXh0fTwvYT4KICAgIDxhIGhyZWY9IiR7ZGF0YS5jdGFTZWNvbmRhcnkudXJsfSIgY2xhc3M9InItYnRuIHItYnRuLXNlY29uZGFyeSI+JHtkYXRhLmN0YVNlY29uZGFyeS50ZXh0fTwvYT4KICAgIDxhIGhyZWY9Ii95b3VyLWpvdXJuZXk/YWx0aXR1ZGU9JHthbHRLZXl9IiBjbGFzcz0ici1idG4gci1idG4tZ2hvc3QiPuKGkiBTZWUgWW91ciBDb21wbGV0ZSBTb3ZlcmVpZ24gUG9ydHJhaXQ8L2E+CiAgYDsKCiAgc2hvdygncmVzdWx0U2NyZWVuJyk7CiAgc2Nyb2xsMnRvcCgpOwogIC8vIGFuaW1hdGUgbWV0ZXIKICBzZXRUaW1lb3V0KCgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9ncmVzc0ZpbGwnKS5zdHlsZS53aWR0aCA9ICcxMDAlJywgMTAwKTsKfQoKLy8g4pSA4pSAIFNIQVJFIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApmdW5jdGlvbiBzaGFyZVJlc3VsdCgpewogIGlmKCFmaW5hbFJlc3VsdCkgcmV0dXJuOwogIGNvbnN0IHRleHQgPSBgSSBqdXN0IHRvb2sgdGhlIFZvcnRleCBBbHRpdHVkZSBBc3Nlc3NtZW50IGJ5IFNoZSBFdm9sdmVzIEFmcmljYSBhbmQgZGlzY292ZXJlZCBJIGFtIGF0IHRoZSAke2ZpbmFsUmVzdWx0LmRhdGEubGV2ZWx9IGFsdGl0dWRlIH4gJHtmaW5hbFJlc3VsdC5zY29yZVBjdH0lIERpZ2l0YWwgU292ZXJlaWdudHkgU2NvcmUuXG5cbkRpc2NvdmVyIHlvdXIgYWx0aXR1ZGU6IC92b3J0ZXhcblxu8J+RkSBTaGUgRXZvbHZlcyBBZnJpY2EgfiBWb2ljZXMuIFZpc2lvbnMuIExlZ2FjeS5gOwogIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRleHQpLnRoZW4oKCkgPT4gewogICAgY29uc3QgYnRuID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNoYXJlLWJ0bicpOwogICAgYnRuLnRleHRDb250ZW50ID0gJ0NvcGllZCEg4pyTJzsKICAgIHNldFRpbWVvdXQoKCkgPT4gYnRuLnRleHRDb250ZW50ID0gJ0NvcHkgUmVzdWx0JywgMjUwMCk7CiAgfSk7Cn0KCmZ1bmN0aW9uIHJlc2V0QWxsKCl7CiAgY3VycmVudFEgPSAwOwogIGFuc3dlcnMgID0gbmV3IEFycmF5KFFVRVNUSU9OUy5sZW5ndGgpLmZpbGwobnVsbCk7CiAgc2VsZWN0ZWRJZHggPSBudWxsOwogIGZpbmFsUmVzdWx0ID0gbnVsbDsKICBoaWRlKCdyZXN1bHRTY3JlZW4nKTsKICBoaWRlKCdxU3RhZ2UnKTsKICBoaWRlKCdwcm9ncmVzc1dyYXAnKTsKICBoaWRlKCdjYXB0dXJlU2NyZWVuJyk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2dyZXNzRmlsbCcpLnN0eWxlLndpZHRoID0gJzAlJzsKICBzaG93KCdpbnRyb1NjcmVlbicpOwogIHNjcm9sbDJ0b3AoKTsKfQo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+","embed":""}
π
She Evolves Africa ~ Vortex Altitude
Where Do You Really Stand?
LinkedIn profiles glow. Follower counts climb. But real digital sovereignty ~ the kind you own, the kind Google indexes, the kind that outlives any platform ~ tells a different story. Discover your true altitude.
Invisible
β
Emerging
β
Visible
β
Influential
β
Sovereign
Your Altitude Assessment
Question 1 of 12
π
The Vortex Altitude
The Vortex Altitude
Assessment
12 questions. 4 dimensions. One honest result. No vanity metrics. No flattery. Just the truth about where you stand ~ and a clear path to where you deserve to be.
π«οΈ
Invisible
The start ~ and a powerful place to begin
π±
Emerging
Digital foundations being laid
π‘
Visible
Present online ~ building authority
β‘
Influential
Authority established ~ scaling presence
π
Sovereign
Full digital ownership ~ the pinnacle
Almost there π
Your altitude result is ready. Enter your details to receive your personalised next steps ~ and to be added to the right She Evolves Africa community for where you are right now.
Skip and see my result β
Digital Sovereignty Score
Share your altitude π
Copy your result and share it ~ invite another woman to discover hers
βΊ Retake the assessment
π She Evolves Africa ~ Voices. Visions. Legacy. ~ sheevolves.africa