{"id":585,"date":"2021-10-22T12:12:54","date_gmt":"2021-10-22T12:12:54","guid":{"rendered":"http:\/\/hc2.cut2code.com\/?page_id=585"},"modified":"2024-04-15T14:31:29","modified_gmt":"2024-04-15T14:31:29","slug":"home-page","status":"publish","type":"page","link":"https:\/\/cyberhexe.ai\/fr\/","title":{"rendered":"Accueil"},"content":{"rendered":"<section class=\"banner-home\">\r\n\t<style>.banner-home {\n  padding-top: var(--main-header-height, 97px);\n  position: relative;\n  margin-bottom: 1.25rem;\n}\n@media (min-width: 767px) {\n  .banner-home {\n    margin-bottom: 9.375rem;\n  }\n}\n.banner-home .banner__header {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  position: relative;\n}\n@media (min-width: 767px) {\n  .banner-home .banner__header {\n    min-height: 33.125rem;\n  }\n}\n@media (min-width: 992px) {\n  .banner-home .banner__header {\n    margin-top: 1.625rem;\n  }\n}\n.banner-home .banner__header .container {\n  position: relative;\n}\n@media (min-width: 767px) {\n  .banner-home .banner__header::before {\n    content: \"\";\n    width: 26.6875rem;\n    height: 23.0625rem;\n    position: absolute;\n    z-index: -1;\n    top: 55%;\n    left: 55%;\n    background-image: url(https:\/\/cyberhexe.ai\/wp-content\/themes\/hexe\/assets\/images\/svg\/Polygon_15.svg);\n    background-position: center center;\n    background-size: cover;\n  }\n}\n@media (min-width: 767px) and (min-width: 767px) {\n  .banner-home .banner__header::before {\n    top: 51%;\n    left: 42%;\n  }\n}\n.banner-home .banner__title {\n  margin-bottom: 2.5rem;\n  font-size: 1.75rem;\n  line-height: 1.2857142857;\n}\n@media (min-width: 390px) {\n  .banner-home .banner__title {\n    font-size: 2.25rem;\n    line-height: 1.2222222222;\n  }\n}\n@media (min-width: 767px) {\n  .banner-home .banner__title {\n    font-size: 4.125rem;\n    line-height: 1.0909090909;\n  }\n}\n@media (min-width: 992px) {\n  .banner-home .banner__title {\n    max-width: 45rem;\n    margin-bottom: 0.625rem;\n    font-size: 4.6875rem;\n    line-height: 1.0933333333;\n  }\n}\n@media (min-width: 767px) {\n  .banner-home .banner__content {\n    max-width: 33.75rem;\n    margin-top: 4.1875rem;\n  }\n}\n@media (min-width: 767px) {\n  .banner-home .banner__subtitle {\n    margin-bottom: 1.875rem;\n    font-size: 3.5rem;\n    line-height: 1.25;\n  }\n}\n.banner-home .banner__desc {\n  font-size: 1rem;\n  line-height: 1.75;\n}\n.banner-home .banner__image {\n  margin: 2.5rem 0;\n}\n@media (min-width: 992px) {\n  .banner-home .banner__image {\n    position: absolute;\n    margin: 0;\n  }\n}\n.banner-home .banner__main-image {\n  animation-name: orbit;\n  animation-duration: 4.9s;\n  animation-timing-function: linear;\n  animation-iteration-count: infinite;\n}\n@media (min-width: 992px) {\n  .banner-home .banner__main-image {\n    width: 39.4375rem;\n    height: 34rem;\n    z-index: -1;\n    top: -8.75rem;\n    right: 1%;\n  }\n}\n.banner-home .banner__logo {\n  width: 10rem;\n  height: 8.75rem;\n  position: absolute;\n  top: 13%;\n  right: 0;\n  animation-name: bouncing;\n  animation-duration: 6s;\n  animation-timing-function: ease;\n  animation-iteration-count: infinite;\n}\n@media (min-width: 767px) {\n  .banner-home .banner__logo {\n    width: 17.9375rem;\n    height: 15.5rem;\n  }\n}\n@media (min-width: 992px) {\n  .banner-home .banner__logo {\n    width: 22.625rem;\n    height: 19.6875rem;\n    max-width: 22.625rem;\n    z-index: 1;\n    top: 28.5%;\n    right: 1.5%;\n  }\n}\n@media (min-width: 1200px) {\n  .banner-home .banner__logo {\n    right: 4.5%;\n  }\n}\n@media (min-width: 1920px) {\n  .banner-home .banner__logo {\n    right: 17%;\n  }\n}\n.banner-home .banner__image-one {\n  display: none;\n}\n@media (min-width: 1200px) {\n  .banner-home .banner__image-one {\n    display: block;\n    max-width: 17.9375rem;\n    z-index: -1;\n    top: 60%;\n    right: 28%;\n  }\n}\n@media (min-width: 1920px) {\n  .banner-home .banner__image-one {\n    top: 75%;\n    right: 29%;\n  }\n}\n.banner-home .banner__image-two {\n  display: none;\n}\n@media (min-width: 1200px) {\n  .banner-home .banner__image-two {\n    display: block;\n    max-width: 17.9375rem;\n    top: -1.875rem;\n    right: -5.625rem;\n    animation: orbit 15s linear reverse infinite;\n  }\n}\n@media (min-width: 1920px) {\n  .banner-home .banner__image-two {\n    right: 17%;\n  }\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2hleGUvcGFydHMvZ3V0ZW5iZXJnL2FjZi1iYW5uZXItaG9tZS9zdHlsZS5zY3NzIiwid2ViL2FwcC90aGVtZXMvaGV4ZS9hc3NldHMvY3NzL19fc2V0dGluZ3MvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYi9hcHAvdGhlbWVzL2hleGUvYXNzZXRzL2Nzcy9fX3NldHRpbmdzL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNDO0VBRUE7RUFDQTs7QUMwaUJDO0VEOWlCRjtJQU9FOzs7QUFHQTtFQUNDO0VBQ0E7RUFDQTtFQUVBOztBQytoQkQ7RURwaUJBO0lBUUU7OztBQzRoQkY7RURwaUJBO0lBV0U7OztBQUdEO0VBQ0M7O0FDcWhCRjtFRGxoQkM7SUFFRTtJQUVBO0lBQ0E7SUFFQTtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBQ0E7SUFDQTs7O0FDb2dCSDtFRGxoQkM7SUFpQkc7SUFDQTs7O0FBTUo7RUFDQztFRTRCRDtFQWpDQzs7QUQ4ZkQ7RUQxZkE7SUU2QkE7SUFqQ0M7OztBRDhmRDtFRDFmQTtJRTZCQTtJQWpDQzs7O0FEOGZEO0VEMWZBO0lBV0U7SUFFQTtJRWdCRjtJQWpDQzs7O0FEOGZEO0VEdmVBO0lBRUU7SUFFQTs7O0FDbWVGO0VEL2RBO0lBRUU7SUVBRjtJQWpDQzs7O0FGdUNEO0VFTkE7RUFqQ0M7O0FGMkNEO0VBQ0M7O0FDa2REO0VEbmRBO0lBSUU7SUFDQTs7O0FBSUY7RUFDQztFQUNBO0VBQ0E7RUFDQTs7QUNzY0Q7RUQxY0E7SUFPRTtJQUNBO0lBRUE7SUFDQTtJQUNBOzs7QUFJRjtFQUNDO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTs7QUMrYUQ7RUQxYkE7SUFjRTtJQUNBOzs7QUMyYUY7RUQxYkE7SUFrQkU7SUFDQTtJQUNBO0lBRUE7SUFDQTtJQUNBOzs7QUNrYUY7RUQxYkE7SUEyQkU7OztBQytaRjtFRDFiQTtJQThCRTs7O0FBSUY7RUFDQzs7QUN1WkQ7RUR4WkE7SUFJRTtJQUVBO0lBRUE7SUFDQTtJQUNBOzs7QUM4WUY7RUR4WkE7SUFhRTtJQUNBOzs7QUFJRjtFQUNDOztBQ3FZRDtFRHRZQTtJQUlFO0lBRUE7SUFFQTtJQUNBO0lBRUE7OztBQzJYRjtFRHRZQTtJQWNFIiwiZmlsZSI6IndlYi9hcHAvdGhlbWVzL2hleGUvcGFydHMvZ3V0ZW5iZXJnL2FjZi1iYW5uZXItaG9tZS9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdfX3NldHRpbmdzL2luaXQnO1xyXG4uYmFubmVyLWhvbWUge1xyXG5cdHBhZGRpbmctdG9wOiB2YXIoLS1tYWluLWhlYWRlci1oZWlnaHQsIDk3cHgpO1xyXG5cclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0bWFyZ2luLWJvdHRvbTogcmVtKDIwKTtcclxuXHJcblx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiByZW0oMTUwKTtcclxuXHR9XHJcblx0LmJhbm5lciB7XHJcblx0XHQmX19oZWFkZXIge1xyXG5cdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdG1pbi1oZWlnaHQ6IHJlbSg1MzApO1xyXG5cdFx0XHR9XHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6IHJlbSgyNik7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC5jb250YWluZXIge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjo6YmVmb3JlIHtcclxuXHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6ICcnO1xyXG5cclxuXHRcdFx0XHRcdHdpZHRoOiByZW0oNDI3KTtcclxuXHRcdFx0XHRcdGhlaWdodDogcmVtKDM2OSk7XHJcblxyXG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdFx0ei1pbmRleDogLTE7XHJcblx0XHRcdFx0XHR0b3A6IDU1JTtcclxuXHRcdFx0XHRcdGxlZnQ6IDU1JTtcclxuXHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy9pbWFnZXMvc3ZnL1BvbHlnb25fMTUuc3ZnJyk7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHJcblx0XHRcdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRcdFx0dG9wOiA1MSU7XHJcblx0XHRcdFx0XHRcdGxlZnQ6IDQyJTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX190aXRsZSB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSg0MCk7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBmb250KDI4LCAzNik7XHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhzJykge1xyXG5cdFx0XHRcdEBpbmNsdWRlIGZvbnQoMzYsIDQ0KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRAaW5jbHVkZSBmb250KDY2LCA3Mik7XHJcblx0XHRcdH1cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bGcnKSB7XHJcblx0XHRcdFx0bWF4LXdpZHRoOiByZW0oNzIwKTtcclxuXHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDEwKTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgZm9udCg3NSwgODIpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9fY29udGVudCB7XHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdG1heC13aWR0aDogcmVtKDU0MCk7XHJcblxyXG5cdFx0XHRcdG1hcmdpbi10b3A6IHJlbSg2Nyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19zdWJ0aXRsZSB7XHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IHJlbSgzMCk7XHJcblxyXG5cdFx0XHRcdEBpbmNsdWRlIGZvbnQoNTYsIDcwKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX2Rlc2Mge1xyXG5cdFx0XHRAaW5jbHVkZSBmb250KDE2LCAyOCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9faW1hZ2Uge1xyXG5cdFx0XHRtYXJnaW46IHJlbSg0MCkgMDtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19tYWluLWltYWdlIHtcclxuXHRcdFx0YW5pbWF0aW9uLW5hbWU6IG9yYml0O1xyXG5cdFx0XHRhbmltYXRpb24tZHVyYXRpb246IDQuOXM7XHJcblx0XHRcdGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjtcclxuXHRcdFx0YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdFx0XHR3aWR0aDogcmVtKDYzMSk7XHJcblx0XHRcdFx0aGVpZ2h0OiByZW0oNTQ0KTtcclxuXHJcblx0XHRcdFx0ei1pbmRleDogLTE7XHJcblx0XHRcdFx0dG9wOiByZW0oLTE0MCk7XHJcblx0XHRcdFx0cmlnaHQ6IDElO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9fbG9nbyB7XHJcblx0XHRcdHdpZHRoOiByZW0oMTYwKTtcclxuXHRcdFx0aGVpZ2h0OiByZW0oMTQwKTtcclxuXHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiAxMyU7XHJcblx0XHRcdHJpZ2h0OiAwO1xyXG5cclxuXHRcdFx0YW5pbWF0aW9uLW5hbWU6IGJvdW5jaW5nO1xyXG5cdFx0XHRhbmltYXRpb24tZHVyYXRpb246IDZzO1xyXG5cdFx0XHRhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlO1xyXG5cdFx0XHRhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdHdpZHRoOiByZW0oMjg3KTtcclxuXHRcdFx0XHRoZWlnaHQ6IHJlbSgyNDgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRcdHdpZHRoOiByZW0oMzYyKTtcclxuXHRcdFx0XHRoZWlnaHQ6IHJlbSgzMTUpO1xyXG5cdFx0XHRcdG1heC13aWR0aDogcmVtKDM2Mik7XHJcblxyXG5cdFx0XHRcdHotaW5kZXg6IDE7XHJcblx0XHRcdFx0dG9wOiAyOC41JTtcclxuXHRcdFx0XHRyaWdodDogMS41JTtcclxuXHRcdFx0fVxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRyaWdodDogNC41JTtcclxuXHRcdFx0fVxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tYXgnKSB7XHJcblx0XHRcdFx0cmlnaHQ6IDE3JTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX2ltYWdlLW9uZSB7XHJcblx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHJcblx0XHRcdFx0bWF4LXdpZHRoOiByZW0oMjg3KTtcclxuXHJcblx0XHRcdFx0ei1pbmRleDogLTE7XHJcblx0XHRcdFx0dG9wOiA2MCU7XHJcblx0XHRcdFx0cmlnaHQ6IDI4JTtcclxuXHRcdFx0fVxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tYXgnKSB7XHJcblx0XHRcdFx0dG9wOiA3NSU7XHJcblx0XHRcdFx0cmlnaHQ6IDI5JTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCZfX2ltYWdlLXR3byB7XHJcblx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj14bCcpIHtcclxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHJcblx0XHRcdFx0bWF4LXdpZHRoOiByZW0oMjg3KTtcclxuXHJcblx0XHRcdFx0dG9wOiByZW0oLTMwKTtcclxuXHRcdFx0XHRyaWdodDogcmVtKC05MCk7XHJcblxyXG5cdFx0XHRcdGFuaW1hdGlvbjogb3JiaXQgMTVzIGxpbmVhciByZXZlcnNlIGluZmluaXRlO1xyXG5cdFx0XHR9XHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1heCcpIHtcclxuXHRcdFx0XHRyaWdodDogMTclO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xyXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXHJcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xyXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxyXG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XHJcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XHJcbi8vXHJcbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXHJcbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XHJcbi8vXHJcbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxyXG4vL1xyXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcclxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxyXG4vL1xyXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXHJcblxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcclxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XHJcbi8vL1xyXG4kYnJlYWtwb2ludHM6IChcclxuXHQncGhvbmUnOiAzMjBweCxcclxuXHQndGFibGV0JzogNzY4cHgsXHJcblx0J2Rlc2t0b3AnOiAxMDI0cHhcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcclxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xyXG4vLy8gICk7XHJcbi8vL1xyXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcclxuXHQnc2NyZWVuJzogJ3NjcmVlbicsXHJcblx0J3ByaW50JzogJ3ByaW50JyxcclxuXHQnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxyXG5cdCdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcclxuXHQncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxyXG5cdCdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXHJcblx0J3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cclxuLy8vXHJcbiR1bml0LWludGVydmFsczogKFxyXG5cdCdweCc6IDEsXHJcblx0J2VtJzogMC4wMSxcclxuXHQncmVtJzogMC4xLFxyXG5cdCcnOiAwXHJcbikgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xyXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3JcclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXHJcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gICAuZm9vIHtcclxuLy8vICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XHJcblxyXG4vLy8vXHJcbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXHJcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxyXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xyXG5cdFx0QGVycm9yICRtZXNzYWdlO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0QHdhcm4gJG1lc3NhZ2U7XHJcblx0XHQkXzogbm9vcCgpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkbWVzc2FnZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxyXG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXHJcbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXHJcbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGltLWxvZygkbWVzc2FnZSkge31cclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xyXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cclxuLy8vXHJcbkBmdW5jdGlvbiBub29wKCkge31cclxuXHJcbi8vL1xyXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcclxuLy8vXHJcbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XHJcblx0JG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XHJcblxyXG5cdEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xyXG5cdFx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XHJcblx0fVxyXG5cclxuXHRAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcclxuXHRcdEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XHJcblx0XHRcdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdFx0XHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XHJcblxyXG5cdFx0XHRAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcclxuXHRcdFx0XHRcdCgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xyXG5cdFx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiB0cnVlO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBQYXJzaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XHJcblx0QGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XHJcblx0XHRAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHRcdFx0QHJldHVybiAkb3BlcmF0b3I7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHQkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xyXG5cdCRkaW1lbnNpb246ICd3aWR0aCc7XHJcblxyXG5cdEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xyXG5cdFx0JGRpbWVuc2lvbjogJHBhcnNlZC1kaW1lbnNpb247XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRkaW1lbnNpb247XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGBtaW5gIG9yIGBtYXhgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xyXG5cdEByZXR1cm4gaWYoaW5kZXgoKCc8JywgJzw9JywgJ+KJpCcpLCAkb3BlcmF0b3IpLCAnbWF4JywgJ21pbicpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcclxuXHJcblx0QGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XHJcblx0XHQkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xyXG5cdH0gQGVsc2Uge1xyXG5cdFx0JHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcclxuXHR9XHJcblxyXG5cdCRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XHJcblxyXG5cdEBpZiBub3QgJGludGVydmFsIHtcclxuXHRcdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHRcdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0XHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cclxuXHRcdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0XHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0XHQkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XHJcblx0fVxyXG5cclxuXHRAaWYgJG9wZXJhdG9yID09ICc+JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcclxuXHR9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgLSAkaW50ZXJ2YWw7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBWYWxpZCBtZWRpYSBxdWVyeVxyXG4vLy9cclxuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcclxuXHQvLyBJZiBpdCBpcyBwYXJ0IG9mICRtZWRpYS1leHByZXNzaW9ucywgaXQgaGFzIG5vIG9wZXJhdG9yXHJcblx0Ly8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcclxuXHRAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xyXG5cdFx0QHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xyXG5cdH1cclxuXHJcblx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XHJcblx0JGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblxyXG5cdEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcclxuLy8vXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3RcclxuLy8vXHJcbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XHJcblx0QGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xyXG5cdFx0QHJldHVybiAoKTtcclxuXHR9XHJcblxyXG5cdCRyZXN1bHQ6ICgpO1xyXG5cclxuXHRAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XHJcblx0XHQkcmVzdWx0OiBhcHBlbmQoJHJlc3VsdCwgbnRoKCRsaXN0LCAkaSkpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkcmVzdWx0O1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ2FzdHMgYSBzdHJpbmcgaW50byBhIG51bWJlclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xyXG5cdEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xyXG5cdFx0QHJldHVybiAkdmFsdWU7XHJcblx0fSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xyXG5cdFx0JF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcclxuXHR9XHJcblxyXG5cdCRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xyXG5cdCRyZXN1bHQ6IDA7XHJcblx0JGRpZ2l0czogMDtcclxuXHQkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XHJcblx0JG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xyXG5cclxuXHQvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcclxuXHRAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XHJcblx0XHQkdmFsdWU6IHN0ci1zbGljZSgkdmFsdWUsIDIpO1xyXG5cdH1cclxuXHJcblx0QGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xyXG5cdFx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcclxuXHJcblx0XHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XHJcblx0XHRcdEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXHJcblx0XHR9XHJcblxyXG5cdFx0QGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcclxuXHRcdFx0JGRpZ2l0czogMTtcclxuXHRcdH0gQGVsc2UgaWYgJGRpZ2l0cyA9PSAwIHtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XHJcblx0XHR9IEBlbHNlIHtcclxuXHRcdFx0JGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcclxuLy8vXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYWRkIHVuaXQgdG9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBgJHZhbHVlYCBleHByZXNzZWQgaW4gYCR1bml0YFxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XHJcblx0JHVuaXRzOiAoJ3B4JzogMXB4LCAnY20nOiAxY20sICdtbSc6IDFtbSwgJyUnOiAxJSwgJ2NoJzogMWNoLCAncGMnOiAxcGMsICdpbic6IDFpbiwgJ2VtJzogMWVtLCAncmVtJzogMXJlbSwgJ3B0JzogMXB0LCAnZXgnOiAxZXgsICd2dyc6IDF2dywgJ3ZoJzogMXZoLCAndm1pbic6IDF2bWluLCAndm1heCc6IDF2bWF4KTtcclxuXHJcblx0QGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xyXG5cdFx0JF86IGltLWxvZygnSW52YWxpZCB1bml0IGAjeyR1bml0fWAuJyk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICR2YWx1ZSAqIG1hcC1nZXQoJHVuaXRzLCAkdW5pdCk7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXHJcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXHJcbi8vLyBjb25maWd1cmF0aW9uIHN1Y2ggYXMgY3VzdG9tIGJyZWFrcG9pbnRzIChyZWZlcnJlZCB0byBhcyB0d2Vha3BvaW50cylcclxuLy8vIGZvciBpbnN0YW5jZS5cclxuLy8vXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2BcclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcclxuXHQvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xyXG5cdCRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcclxuXHJcblx0Ly8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XHJcblxyXG5cdEBjb250ZW50O1xyXG5cclxuXHQvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXHJcblx0JGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XHJcblx0JG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXHJcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXHJcbi8vLyBAYWNjZXNzIHB1YmxpY1xyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cclxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHRAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXHJcblx0XHRcdChub3QgJGltLW1lZGlhLXN1cHBvcnQgYW5kIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pKSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcclxuXHRcdEBtZWRpYSAje3VucXVvdGUocGFyc2UtZXhwcmVzc2lvbihudGgoJGNvbmRpdGlvbnMsIDEpKSl9IHtcclxuXHRcdFx0Ly8gUmVjdXJzaXZlIGNhbGxcclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XHJcblx0XHRcdFx0QGNvbnRlbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiLy9cclxuLy8gTUlYSU5TXHJcbi8vXHJcbkBtaXhpbiBjZiB7XHJcblx0JjpiZWZvcmUsXHJcblx0JjphZnRlciB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRkaXNwbGF5OiB0YWJsZTtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y2xlYXI6IGJvdGg7XHJcblx0fVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdnctc2l6ZSgkcywgJHc6IDE0NDApIHtcclxuXHRAcmV0dXJuICgkcyAvICR3KSAqIDEwMCArIHZ3O1xyXG59XHJcblxyXG5AZnVuY3Rpb24gcmVtKCRzaXplVmFsdWU6IDE2KSB7XHJcblx0QHJldHVybiBjYWxjKCRzaXplVmFsdWUgLyAxNikgKyByZW07XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZWwoJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemUgLyAkcmVsKTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGVtKCRzaXplLCAkcmVsKSB7XHJcblx0QHJldHVybiByZWwoJHNpemUsICRyZWwpICogMWVtO1xyXG59XHJcblxyXG5AbWl4aW4gb2JqZWN0LWZpdC1jb3ZlcigpIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHJcblx0b2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5lLWhlaWdodCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IDApIHtcclxuXHRAaWYgJGxpbmUtaGVpZ2h0ICE9IDAge1xyXG5cdFx0QGlmICRsaW5lLWhlaWdodCA8IDEwIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IGNhbGMoJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZSwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmICRsZXR0ZXItc3BhY2luZyAhPSAwIHtcclxuXHRcdEBpZiAkbGV0dGVyLXNwYWNpbmcgPCAxMCB7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oJGxldHRlci1zcGFjaW5nKTtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgoJGZvbnQtc2l6ZSAqICRsZXR0ZXItc3BhY2luZykgLyAxMDAwKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmb250KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQ6IDAsICRsZXR0ZXItc3BhY2luZzogMCkge1xyXG5cdEBpZiB0eXBlLW9mKCRmb250LXNpemUtbWFwKSA9PSAnbWFwJyB7XHJcblx0XHRAZWFjaCAkYnJlYWtwb2ludCwgJGZvbnQtc2l6ZSBpbiAkZm9udC1zaXplLW1hcCB7XHJcblx0XHRcdEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIHtcclxuXHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQobWFwLWdldCgkZm9udC1zaXplLW1hcCwgbnRoKG1hcC1rZXlzKCRmb250LXNpemUtbWFwKSwgLTEpKSwgJGxpbmUtaGVpZ2h0KTtcclxuXHRcdFx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZyhtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0XHR9XHJcblx0XHRcdEBlbHNlIHtcclxuXHRcdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpKSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QGVsc2Uge1xyXG5cdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZS1tYXApO1xyXG5cclxuXHRcdEBpbmNsdWRlIGxpbmUtaGVpZ2h0KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0QGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZS1tYXAsICRsZXR0ZXItc3BhY2luZyk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gc2Nyb2xsYmFyKCRjb2xvci1zY3JvbGxiYXIsICRjb2xvci1zY3JvbGxiYXItYmcpIHtcclxuXHRvdmVyZmxvdy15OiBhdXRvO1xyXG5cclxuXHRzY3JvbGxiYXItd2lkdGg6IHRoaW47XHJcblx0c2Nyb2xsYmFyLWNvbG9yOiAkY29sb3Itc2Nyb2xsYmFyICRjb2xvci1zY3JvbGxiYXItYmc7XHJcblxyXG5cdCY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuXHRcdHdpZHRoOiByZW0oNik7XHJcblx0fVxyXG5cdCY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcclxuXHRcdGJhY2tncm91bmQ6ICRjb2xvci1zY3JvbGxiYXItYmc7XHJcblx0fVxyXG5cdCY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuXHRcdGJvcmRlcjogMDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc2Nyb2xsYmFyO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGhvdmVyLWxpbmsge1xyXG5cdCY6Zm9jdXMsXHJcblx0Jjpob3ZlciB7XHJcblx0XHRjb2xvcjogJGxpbmstaG92ZXItY29sb3I7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaG92ZXItc3ZnIHtcclxuXHRzdmcgcGF0aCB7XHJcblx0XHR0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcclxuXHR9XHJcblx0Jjpmb2N1cyxcclxuXHQmOmhvdmVyIHtcclxuXHRcdHN2ZyBwYXRoIHtcclxuXHRcdFx0ZmlsbDogJGxpbmstaG92ZXItY29sb3I7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gb3BhY2l0eS10ZXh0IHtcclxuXHRvcGFjaXR5OiAuNztcclxuXHQmOmhvdmVyIHtcclxuXHRcdG9wYWNpdHk6IDE7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaGVhZGluZy0xLXNpemUge1xyXG5cdEBpbmNsdWRlIGZvbnQoMzYsIDQyKTtcclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdEBpbmNsdWRlIGZvbnQoNzUsIDgyKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBoZWFkaW5nLTItc2l6ZSB7XHJcblx0QGluY2x1ZGUgZm9udCgzMCwgMzgpO1xyXG5cdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0QGluY2x1ZGUgZm9udCg0NSwgNTIpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGhlYWRpbmctMy1zaXplIHtcclxuXHRAaW5jbHVkZSBmb250KDIwLCAyOCk7XHJcblx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRAaW5jbHVkZSBmb250KDI1LCAzMik7XHJcblx0fVxyXG59XHJcblxyXG5cclxuQG1peGluIHNpbmdYIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0ei1pbmRleDogLTE7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cclxuXHRcdHdpZHRoOiByZW0oMzIwKTtcclxuXHRcdGhlaWdodDogcmVtKDQwNyk7XHJcblxyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblxyXG5cdFx0YmFja2dyb3VuZDogdXJsKCdzdmcvWC5zdmcnKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdHdpZHRoOiByZW0oNTUwKTtcclxuXHRcdFx0aGVpZ2h0OiByZW0oODAxKTtcclxuXHRcdH1cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHR3aWR0aDogcmVtKDY0NSk7XHJcblx0XHRcdGhlaWdodDogcmVtKDk0MCk7XHJcblx0XHR9XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPD1tZCcpIHtcclxuXHRcdFx0Ym90dG9tOiAwO1xyXG5cdFx0XHRsZWZ0OiA1MCU7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19 *\/\n<\/style>\t<header class=\"banner__header\">\r\n\t\t<div class=\"container\">\r\n\t\t\t<h1 class='section-title banner__title'>Votre partenaire en transformation num\u00e9rique<\/h1>\t\t\t<div class=\"banner__image banner__main-image\">\r\n\t\t\t\t<img decoding=\"async\" width=\"631\" height=\"544\" src=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/piotr-1.0-631x544.jpg\" class=\"section-image banner__image-img--desktop banner__image-img hexagon-img\" alt=\"Votre partenaire en transformation num\u00e9rique\" loading=\"lazy\" srcset=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/piotr-1.0-631x544.jpg 631w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/piotr-1.0-300x259.jpg 300w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/piotr-1.0-14x12.jpg 14w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/piotr-1.0-341x294.jpg 341w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/piotr-1.0-425x366.jpg 425w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/piotr-1.0-280x241.jpg 280w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/piotr-1.0.jpg 680w\" sizes=\"auto, (max-width: 631px) 100vw, 631px\" \/>\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t\t\t\t<div class=\"banner__image banner__image-one\">\r\n\t\t\t<img decoding=\"async\" width=\"287\" height=\"249\" src=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/hexe-x-287x249.png\" class=\"attachment-hexagon-home-banner size-hexagon-home-banner\" alt=\"logo\" srcset=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/hexe-x-287x249.png 287w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/hexe-x-300x261.png 300w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/hexe-x-14x12.png 14w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/hexe-x.png 724w\" sizes=\"(max-width: 287px) 100vw, 287px\" \/>\t\t\t<\/div>\r\n\t\t\t\t<\/header>\r\n\t<div class=\"container\">\r\n\t\t<div class=\"banner__content order-animation nc-2\">\r\n\t\t\t<h2 class='section-subtitle banner__subtitle'><\/h2>\t\t\t<div class='section-description banner__desc'><\/div>\t\t<\/div>\r\n\t<\/div>\r\n<\/section>\r\n\n\n\n<section class=\"wp-block-custom-container block-content\"><style>\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ3ZWIvYXBwL3RoZW1lcy9oZXhlL3BhcnRzL2d1dGVuYmVyZy9jdXN0b20tY29udGFpbmVyL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbXX0= *\/\n<\/style><div class=\"container\"><div class=\"container__body\"><style>h1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n  margin: 0 0 1.2em;\n  font-family: \"neuropol-x-light\", sans-serif;\n  color: #051522;\n  font-size: 2.25rem;\n  line-height: 1.1944444444;\n}\n\nh1 {\n  margin-bottom: 0.75rem;\n  font-size: 2.25rem;\n  line-height: 1.1944444444;\n}\n@media (min-width: 767px) {\n  h1 {\n    font-size: 4.6875rem;\n    line-height: 1.0933333333;\n  }\n}\nh1:not([class]) {\n  margin-top: 4.5rem;\n}\n\nh2 {\n  margin-bottom: 0.75rem;\n  font-size: 1.875rem;\n  line-height: 1.2666666667;\n}\n@media (min-width: 767px) {\n  h2 {\n    font-size: 2.8125rem;\n    line-height: 1.1555555556;\n  }\n}\nh2:not([class]) {\n  margin-top: 4.5rem;\n}\n\nh3 {\n  margin-bottom: 0.75rem;\n  font-size: 1.25rem;\n  line-height: 1.4;\n}\n@media (min-width: 767px) {\n  h3 {\n    font-size: 1.5625rem;\n    line-height: 1.28;\n  }\n}\nh3:not([class]) {\n  margin-top: 4.5rem;\n}\n\nh4 {\n  margin-bottom: 1.375rem;\n  font-size: 1.125rem;\n  line-height: 1.3888888889;\n}\n\nh5 {\n  margin-bottom: 1.5rem;\n  font-size: 1.0625rem;\n  line-height: 1.4117647059;\n}\n\nh6 {\n  margin-bottom: 1.4375rem;\n  font-size: 1rem;\n  line-height: 1.2;\n}\n\np + .wp-block-heading {\n  margin-top: 3.125rem;\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2hleGUvcGFydHMvZ3V0ZW5iZXJnL2NvcmUtaGVhZGluZy9zdHlsZS5zY3NzIiwid2ViL2FwcC90aGVtZXMvaGV4ZS9hc3NldHMvY3NzL19fc2V0dGluZ3MvX3ZhcmlhYmxlcy5zY3NzIiwid2ViL2FwcC90aGVtZXMvaGV4ZS9hc3NldHMvY3NzL19fc2V0dGluZ3MvX21peGlucy5zY3NzIiwid2ViL2FwcC90aGVtZXMvaGV4ZS9hc3NldHMvY3NzL19fc2V0dGluZ3MvX2luY2x1ZGUtbWVkaWEuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7RUFNQztFQUVBLGFDc0JlO0VEckJmLE9DNkNtQjtFQzBCbEI7RUFqQ0M7OztBRmxDSDtFQUNDO0VFa0VDO0VBakNDOztBQzhmRDtFSGhpQkY7SUVtRUU7SUFqQ0M7OztBRjNCRjtFQUNDOzs7QUFHRjtFQUNDO0VFdURDO0VBakNDOztBQzhmRDtFSHJoQkY7SUV3REU7SUFqQ0M7OztBRmhCRjtFQUNDOzs7QUFHRjtFQUNDO0VFNENDO0VBakNDOztBQzhmRDtFSDFnQkY7SUU2Q0U7SUFqQ0M7OztBRkxGO0VBQ0M7OztBQUdGO0VBQ0M7RUVpQ0M7RUFqQ0M7OztBRklIO0VBQ0M7RUU0QkM7RUFqQ0M7OztBRlNIO0VBQ0M7RUV1QkM7RUFqQ0M7OztBRmVIO0VBQ0MiLCJmaWxlIjoid2ViL2FwcC90aGVtZXMvaGV4ZS9wYXJ0cy9ndXRlbmJlcmcvY29yZS1oZWFkaW5nL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ19fc2V0dGluZ3MvaW5pdCc7XHJcblxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuXHRtYXJnaW46IDAgMCAxLjJlbTtcclxuXHJcblx0Zm9udC1mYW1pbHk6ICRmb250LWhlYWRpbmdzO1xyXG5cdGNvbG9yOiAkdGV4dC1jb2xvci1oZWFkaW5nO1xyXG5cclxuXHRAaW5jbHVkZSBmb250KDM2LCA0Myk7XHJcbn1cclxuaDEge1xyXG5cdG1hcmdpbi1ib3R0b206IHJlbSgxMik7XHJcblxyXG5cdEBpbmNsdWRlIGZvbnQoMzYsIDQzKTtcclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdEBpbmNsdWRlIGZvbnQoNzUsIDgyKTtcclxuXHR9XHJcblx0Jjpub3QoW2NsYXNzXSkge1xyXG5cdFx0bWFyZ2luLXRvcDogcmVtKDcyKTtcclxuXHR9XHJcbn1cclxuaDIge1xyXG5cdG1hcmdpbi1ib3R0b206IHJlbSgxMik7XHJcblxyXG5cdEBpbmNsdWRlIGZvbnQoMzAsIDM4KTtcclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdEBpbmNsdWRlIGZvbnQoNDUsIDUyKTtcclxuXHR9XHJcblx0Jjpub3QoW2NsYXNzXSkge1xyXG5cdFx0bWFyZ2luLXRvcDogcmVtKDcyKTtcclxuXHR9XHJcbn1cclxuaDMge1xyXG5cdG1hcmdpbi1ib3R0b206IHJlbSgxMik7XHJcblxyXG5cdEBpbmNsdWRlIGZvbnQoMjAsIDI4KTtcclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdEBpbmNsdWRlIGZvbnQoMjUsIDMyKTtcclxuXHR9XHJcblx0Jjpub3QoW2NsYXNzXSkge1xyXG5cdFx0bWFyZ2luLXRvcDogcmVtKDcyKTtcclxuXHR9XHJcbn1cclxuaDQge1xyXG5cdG1hcmdpbi1ib3R0b206IHJlbSgyMik7XHJcblxyXG5cdEBpbmNsdWRlIGZvbnQoMTgsMjUpO1xyXG59XHJcbmg1IHtcclxuXHRtYXJnaW4tYm90dG9tOiByZW0oMjQpO1xyXG5cclxuXHRAaW5jbHVkZSBmb250KDE3LCAyNCk7XHJcbn1cclxuaDYge1xyXG5cdG1hcmdpbi1ib3R0b206IHJlbSgyMyk7XHJcblxyXG5cdEBpbmNsdWRlIGZvbnQoMTYsIDE5LjIpO1xyXG59XHJcblxyXG5wICsgLndwLWJsb2NrLWhlYWRpbmcge1xyXG5cdG1hcmdpbi10b3A6IHJlbSg1MCk7XHJcbn1cclxuIiwiLy8gVkFSSUFCTEVTXHJcblxyXG4vLyBDb250YWluZXIgd2lkdGggdmFyaWFibGVzXHJcbiRjb250YWluZXItbW9iaWxlOiA3MjBweDtcclxuJGNvbnRhaW5lci1sZzogOTYwcHg7XHJcbiRjb250YWluZXIteGw6IDExMThweDtcclxuJGNvbnRhaW5lci14eGw6IDEyMTBweDtcclxuJGNvbnRhaW5lci1wYWRkaW5nOiAxNTsgLy9weFxyXG5cclxuLy8gQmxvY2sgU3BhY2luZ3NcclxuJHNwYWNpbmctbW9iaWxlOiA1MDtcclxuJHNwYWNpbmc6IDk0O1xyXG4kbWFyZ2luLW1vYmlsZTogMzQ7XHJcbiRtYXJnaW46IDM0O1xyXG5cclxuLy8gTWVkaWEgU3BhY2luZ1xyXG4kbWVkaWEtbWFyZ2luOiAyMDsgLy9weFxyXG5cclxuLy8gVHJhbnNpdGlvbnNcclxuJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZDogMS4ycztcclxuJHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjIyLCAxLCAuMzYsIDEpO1xyXG4kdHJhbnNpdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbi1zcGVlZCAkdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb247XHJcblxyXG4vLyBPdXRsaW5lXHJcbiRvdXRsaW5lOiAycHggc29saWQgYmx1ZTtcclxuXHJcbi8vZm9udHNcclxuJGZvbnQtYmFzZTogXCJteXJpYWQtcHJvXCIsIHNhbnMtc2VyaWY7Ly8nT3BlbiBzYW5zJywgc2Fucy1zZXJpZjtcclxuJGZvbnQtc2l6ZS1iYXNlOiAxNjtcclxuJGxpbmUtaGVpZ2h0LWJhc2U6IDI0O1xyXG4kZm9udC1zaXplLW1vYmlsZTogMTQ7XHJcbiRsaW5lLWhlaWdodC1tb2JpbGU6IDI2O1xyXG4kZm9udC1oZWFkaW5nczogXCJuZXVyb3BvbC14LWxpZ2h0XCIsIHNhbnMtc2VyaWY7Ly8nR2VvbWV0cmlhJywgc2Fucy1zZXJpZjtcclxuXHJcbi8vIENPTE9SU1xyXG4kY29sb3ItLWJsYWNrOiAjMDAwMDAwO1xyXG4kY29sb3ItLXdoaXRlOiAjZmZmZmZmO1xyXG5cclxuLy8gVGhlbWUgQ29sb3JzXHJcbiRjb2xvci0xOiAjM2M3ZWExO1xyXG4kY29sb3ItMjogI2VkNGYzMztcclxuJGNvbG9yLTM6ICNmY2I1MTY7XHJcbiRjb2xvci00OiAjMDBhNTk4O1xyXG4kY29sb3ItcG9yY2VsYWluOiAjZjVmNmY3O1xyXG4kY29sb3ItY2F0c2tpbGwtd2hpdGU6ICNmNWY4ZmE7XHJcbiRjb2xvci1wb3QtcG91cnJpOiAjZTdlYWVkO1xyXG4kY29sb3ItYXRoZW5zLWdyYXk6ICNmYWZiZmM7XHJcbiRjb2xvci1hdGhlbnMtZGFya2VyLWdyYXk6ICNlYWVkZjA7XHJcbiRjb2xvci1jYWRldC1ibHVlOiAjYTdhZWJjO1xyXG4kY29sb3ItY29ybmZsb3dlci1ibHVlOiAjNjlhZmRjO1xyXG4kY29sb3ItZGVuaW06ICMxZDcyYjk7XHJcbiRjb2xvci1tYXJpbmVyOiAjMWU3NWJjO1xyXG4kY29sb3ItaXJvbjogI2Q0ZDlkZTtcclxuJGNvbG9yLWRvdmUtZ3JheTogIzcxNzE3MTtcclxuJGNvbG9yLXR1bmRvcmE6ICM0NDQ0NDQ7XHJcbiRjb2xvci1saW1lZC1zcHJ1Y2U6ICMzODQ1NGY7XHJcbiRjb2xvci1ibGFjay1wZWFybDogIzA1MTUyMjtcclxuJGNvbG9yLXJvc2U6ICNmZDEwNjc7XHJcbiRjb2xvci1zbWFydC1rb2RhOiAjZmYzYzAwO1xyXG4kY29sb3Ita29kYS1ib3RzOiAjMDIzMjYyO1xyXG4kY29sb3ItY3V0OiAjMDBjNGFlO1xyXG4kY29sb3ItaW5zaWdodGxhbmQ6ICMyZGFiYmY7XHJcbiRjb2xvci1ib29zdDogIzU1NDZmZjtcclxuJGdyYWRpZW50LWNvbG9yczogKFxyXG5cdCdzbWFydC1rb2RhJzpcdFx0bGluZWFyLWdyYWRpZW50KDE3NWRlZywgI2ZmM2MwMCAwJSwgI2ZkMTA2NyAxMDAlKSxcclxuXHQna29kYS1ib3RzJzpcdFx0bGluZWFyLWdyYWRpZW50KDE3NWRlZywgIzAxMzI2MyAwJSwgIzAyMmU1OCAxMDAlKSxcclxuXHQnY3V0MmNvZGUnOlx0IFx0XHRsaW5lYXItZ3JhZGllbnQoLTFkZWcsICMwMGRlOTUgMCUsICMwMGM0YWUgMTAwJSksXHJcbik7XHJcbiRiYWNrZ3JvdW5kLWNvbG9yczogKFxyXG5cdCdpbnNpZ2h0bGFuZCc6XHRcdFx0JGNvbG9yLWluc2lnaHRsYW5kLFxyXG5cdCdib29zdCc6XHRcdFx0XHQkY29sb3ItYm9vc3QsXHJcbik7XHJcblxyXG4vL0JhY2tyb3VuZCBsaW5lYXIgZ3JhZGllbnRcclxuJGJhY2tncm91bmQtY29sb3ItbGluZWFyOiBsaW5lYXItZ3JhZGllbnQoMjI1ZGVnLCAjMzZhOGUxIDAlLCAjMWM3MGI4IDEwMCUpO1xyXG4kZXJyb3ItY29sb3I6ICNkODEzMTM7XHJcblxyXG4vL1xyXG4kcHJpbWFyeTogJGNvbG9yLWRlbmltO1xyXG4kc2Vjb25kYXJ5OiAkY29sb3ItYmxhY2stcGVhcmw7XHJcbiRib3JkZXItY29sb3I6ICRjb2xvci1pcm9uO1xyXG5cclxuLy8gVGV4dFxyXG4kdGV4dC1jb2xvci1iYXNlOiAkY29sb3ItdHVuZG9yYTtcclxuJHRleHQtY29sb3ItaGVhZGluZzogJGNvbG9yLWJsYWNrLXBlYXJsO1xyXG4kdGV4dC1saWdodDogJGNvbG9yLS13aGl0ZTtcclxuJGxpbmstY29sb3I6ICRwcmltYXJ5O1xyXG4kbGluay1ob3Zlci1jb2xvcjogJHNlY29uZGFyeTtcclxuXHJcbi8vXHJcbiRjb2xvci1iZzogI2ZmZmZmZjtcclxuJG92ZXJsYXktYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1LCAyMSwgMzQsIC40KTtcclxuXHJcbi8vIEJSRUFLUE9JTlRTXHJcbiRicmVha3BvaW50czogKHhzOiAzOTBweCwgc206IDU3NnB4LCBtZDogNzY3cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDQwcHgsIHh4eGw6IDE4MDBweCwgbWF4OiAxOTIwcHgpO1xyXG4iLCIvL1xyXG4vLyBNSVhJTlNcclxuLy9cclxuQG1peGluIGNmIHtcclxuXHQmOmJlZm9yZSxcclxuXHQmOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cclxuXHRcdGRpc3BsYXk6IHRhYmxlO1xyXG5cdH1cclxuXHJcblx0JjphZnRlciB7XHJcblx0XHRjbGVhcjogYm90aDtcclxuXHR9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB2dy1zaXplKCRzLCAkdzogMTQ0MCkge1xyXG5cdEByZXR1cm4gKCRzIC8gJHcpICogMTAwICsgdnc7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZW0oJHNpemVWYWx1ZTogMTYpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemVWYWx1ZSAvIDE2KSArIHJlbTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHJlbCgkc2l6ZSwgJHJlbCkge1xyXG5cdEByZXR1cm4gY2FsYygkc2l6ZSAvICRyZWwpO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZW0oJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIHJlbCgkc2l6ZSwgJHJlbCkgKiAxZW07XHJcbn1cclxuXHJcbkBtaXhpbiBvYmplY3QtZml0LWNvdmVyKCkge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cclxuXHRvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuQG1peGluIGxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRsaW5lLWhlaWdodDogMCkge1xyXG5cdEBpZiAkbGluZS1oZWlnaHQgIT0gMCB7XHJcblx0XHRAaWYgJGxpbmUtaGVpZ2h0IDwgMTAge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYygkbGluZS1oZWlnaHQgLyAkZm9udC1zaXplKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLCAkbGV0dGVyLXNwYWNpbmc6IDApIHtcclxuXHRAaWYgJGxldHRlci1zcGFjaW5nICE9IDAge1xyXG5cdFx0QGlmICRsZXR0ZXItc3BhY2luZyA8IDEwIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKCgkZm9udC1zaXplICogJGxldHRlci1zcGFjaW5nKSAvIDEwMDApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGZvbnQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodDogMCwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmIHR5cGUtb2YoJGZvbnQtc2l6ZS1tYXApID09ICdtYXAnIHtcclxuXHRcdEBlYWNoICRicmVha3BvaW50LCAkZm9udC1zaXplIGluICRmb250LXNpemUtbWFwIHtcclxuXHRcdFx0QGlmICRicmVha3BvaW50ID09IG51bGwge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBsaW5lLWhlaWdodChtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0XHRcdEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKG1hcC1nZXQoJGZvbnQtc2l6ZS1tYXAsIG50aChtYXAta2V5cygkZm9udC1zaXplLW1hcCksIC0xKSksICRsZXR0ZXItc3BhY2luZyk7XHJcblx0XHRcdH1cclxuXHRcdFx0QGVsc2Uge1xyXG5cdFx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRAZWxzZSB7XHJcblx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplLW1hcCk7XHJcblxyXG5cdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodCk7XHJcblx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLW1hcCwgJGxldHRlci1zcGFjaW5nKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBzY3JvbGxiYXIoJGNvbG9yLXNjcm9sbGJhciwgJGNvbG9yLXNjcm9sbGJhci1iZykge1xyXG5cdG92ZXJmbG93LXk6IGF1dG87XHJcblxyXG5cdHNjcm9sbGJhci13aWR0aDogdGhpbjtcclxuXHRzY3JvbGxiYXItY29sb3I6ICRjb2xvci1zY3JvbGxiYXIgJGNvbG9yLXNjcm9sbGJhci1iZztcclxuXHJcblx0Jjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG5cdFx0d2lkdGg6IHJlbSg2KTtcclxuXHR9XHJcblx0Jjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG5cdFx0YmFja2dyb3VuZDogJGNvbG9yLXNjcm9sbGJhci1iZztcclxuXHR9XHJcblx0Jjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xyXG5cdFx0Ym9yZGVyOiAwO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zY3JvbGxiYXI7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaG92ZXItbGluayB7XHJcblx0Jjpmb2N1cyxcclxuXHQmOmhvdmVyIHtcclxuXHRcdGNvbG9yOiAkbGluay1ob3Zlci1jb2xvcjtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBob3Zlci1zdmcge1xyXG5cdHN2ZyBwYXRoIHtcclxuXHRcdHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xyXG5cdH1cclxuXHQmOmZvY3VzLFxyXG5cdCY6aG92ZXIge1xyXG5cdFx0c3ZnIHBhdGgge1xyXG5cdFx0XHRmaWxsOiAkbGluay1ob3Zlci1jb2xvcjtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBvcGFjaXR5LXRleHQge1xyXG5cdG9wYWNpdHk6IC43O1xyXG5cdCY6aG92ZXIge1xyXG5cdFx0b3BhY2l0eTogMTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBoZWFkaW5nLTEtc2l6ZSB7XHJcblx0QGluY2x1ZGUgZm9udCgzNiwgNDIpO1xyXG5cdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0QGluY2x1ZGUgZm9udCg3NSwgODIpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGhlYWRpbmctMi1zaXplIHtcclxuXHRAaW5jbHVkZSBmb250KDMwLCAzOCk7XHJcblx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRAaW5jbHVkZSBmb250KDQ1LCA1Mik7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaGVhZGluZy0zLXNpemUge1xyXG5cdEBpbmNsdWRlIGZvbnQoMjAsIDI4KTtcclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdEBpbmNsdWRlIGZvbnQoMjUsIDMyKTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG5AbWl4aW4gc2luZ1gge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR6LWluZGV4OiAtMTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogJyc7XHJcblxyXG5cdFx0d2lkdGg6IHJlbSgzMjApO1xyXG5cdFx0aGVpZ2h0OiByZW0oNDA3KTtcclxuXHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHJcblx0XHRiYWNrZ3JvdW5kOiB1cmwoJ3N2Zy9YLnN2ZycpO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0d2lkdGg6IHJlbSg1NTApO1xyXG5cdFx0XHRoZWlnaHQ6IHJlbSg4MDEpO1xyXG5cdFx0fVxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcblx0XHRcdHdpZHRoOiByZW0oNjQ1KTtcclxuXHRcdFx0aGVpZ2h0OiByZW0oOTQwKTtcclxuXHRcdH1cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc8PW1kJykge1xyXG5cdFx0XHRib3R0b206IDA7XHJcblx0XHRcdGxlZnQ6IDUwJTtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cclxuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxyXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cclxuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcclxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxyXG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxyXG4vL1xyXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xyXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxyXG4vL1xyXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cclxuLy9cclxuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXHJcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcclxuLy9cclxuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxyXG5cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXHJcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xyXG4vLy9cclxuJGJyZWFrcG9pbnRzOiAoXHJcblx0J3Bob25lJzogMzIwcHgsXHJcblx0J3RhYmxldCc6IDc2OHB4LFxyXG5cdCdkZXNrdG9wJzogMTAyNHB4XHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXHJcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXHJcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXHJcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcclxuLy8vICApO1xyXG4vLy9cclxuJG1lZGlhLWV4cHJlc3Npb25zOiAoXHJcblx0J3NjcmVlbic6ICdzY3JlZW4nLFxyXG5cdCdwcmludCc6ICdwcmludCcsXHJcblx0J2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcclxuXHQnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcblx0J3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuXHQncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxyXG5cdCdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XHJcbi8vL1xyXG4kdW5pdC1pbnRlcnZhbHM6IChcclxuXHQncHgnOiAxLFxyXG5cdCdlbSc6IDAuMDEsXHJcblx0J3JlbSc6IDAuMSxcclxuXHQnJzogMFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcclxuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXHJcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xyXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAgLmZvbyB7XHJcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xyXG5cclxuLy8vL1xyXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxyXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcclxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcclxuXHRcdEBlcnJvciAkbWVzc2FnZTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdEB3YXJuICRtZXNzYWdlO1xyXG5cdFx0JF86IG5vb3AoKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJG1lc3NhZ2U7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcclxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxyXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxyXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQG1peGluIGxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcclxuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXHJcbi8vL1xyXG5AZnVuY3Rpb24gbm9vcCgpIHt9XHJcblxyXG4vLy9cclxuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xyXG5cdCRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xyXG5cclxuXHRAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcclxuXHRcdEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxyXG5cdH1cclxuXHJcblx0QGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XHJcblx0XHRAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xyXG5cdFx0XHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHRcdFx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRcdFx0QGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXHJcblx0XHRcdFx0XHQoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcclxuXHRcdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gUGFyc2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xyXG5cdEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xyXG5cdFx0QGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0XHRcdEByZXR1cm4gJG9wZXJhdG9yO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcblx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0JF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcclxuXHQkZGltZW5zaW9uOiAnd2lkdGgnO1xyXG5cclxuXHRAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcclxuXHRcdCRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkZGltZW5zaW9uO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcclxuXHRAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XHJcblxyXG5cdEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xyXG5cdFx0JHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdCR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHQkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xyXG5cclxuXHRAaWYgbm90ICRpbnRlcnZhbCB7XHJcblx0XHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0XHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdFx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcblx0XHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdFx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdFx0JF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xyXG5cdH1cclxuXHJcblx0QGlmICRvcGVyYXRvciA9PSAnPicge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XHJcblx0fSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkdmFsdWU7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2VcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcclxuLy8vXHJcbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XHJcblx0Ly8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxyXG5cdC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXHJcblx0QGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcclxuXHRcdEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcclxuXHR9XHJcblxyXG5cdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xyXG5cdCRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcclxufVxyXG5cclxuLy8vXHJcbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2VcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XHJcbi8vL1xyXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xyXG5cdEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcclxuXHRcdEByZXR1cm4gKCk7XHJcblx0fVxyXG5cclxuXHQkcmVzdWx0OiAoKTtcclxuXHJcblx0QGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xyXG5cdFx0JHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHJlc3VsdDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfVxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcclxuXHRAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcclxuXHRcdEByZXR1cm4gJHZhbHVlO1xyXG5cdH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcclxuXHRcdCRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XHJcblx0fVxyXG5cclxuXHQkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcclxuXHQkcmVzdWx0OiAwO1xyXG5cdCRkaWdpdHM6IDA7XHJcblx0JG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xyXG5cdCRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcclxuXHJcblx0Ly8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXHJcblx0QGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xyXG5cdFx0JHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcclxuXHR9XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcclxuXHRcdCRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XHJcblxyXG5cdFx0QGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xyXG5cdFx0XHRAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxyXG5cdFx0fVxyXG5cclxuXHRcdEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XHJcblx0XHRcdCRkaWdpdHM6IDE7XHJcblx0XHR9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdCRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcclxuLy8vXHJcbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xyXG5cdCR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XHJcblxyXG5cdEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcclxuXHRcdCRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxyXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxyXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXHJcbi8vLyBmb3IgaW5zdGFuY2UuXHJcbi8vL1xyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XHJcblx0Ly8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcclxuXHQkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XHJcblxyXG5cdC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xyXG5cdCRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xyXG5cclxuXHRAY29udGVudDtcclxuXHJcblx0Ly8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xyXG5cdCRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XHJcblx0QGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxyXG5cdFx0XHQobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XHJcblx0XHRAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XHJcblx0XHRcdC8vIFJlY3Vyc2l2ZSBjYWxsXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xyXG5cdFx0XHRcdEBjb250ZW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ== *\/\n<\/style>\n<h2 class=\"wp-block-heading\">Bienvenue \u00e0 CyberHexe<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><style>\/* Text Elements *\/\np {\n  margin-bottom: 1.0625rem;\n}\np:last-child {\n  margin-bottom: 0;\n}\np.is-style-uppercase {\n  text-transform: uppercase;\n}\np.is-style-preheading {\n  color: #051522;\n  text-transform: uppercase;\n}\np.is-style-leadparagraph {\n  max-width: 45rem;\n  padding-top: 2.8125rem;\n  padding-bottom: 2.8125rem;\n  margin-right: auto;\n  margin-bottom: 0;\n  margin-left: auto;\n  font-family: \"neuropol-x-light\", sans-serif;\n  font-weight: 700;\n  font-size: 1.5625rem;\n  line-height: 1.28;\n}\n@media (min-width: 767px) {\n  p.is-style-leadparagraph {\n    padding-top: 4.375rem;\n    font-size: 1.875rem;\n    line-height: 1.2;\n  }\n}\np.is-style-leadparagraph + .cta-single-brand {\n  padding-top: 25px;\n}\n@media (min-width: 767px) {\n  p.is-style-leadparagraph + .cta-single-brand {\n    padding-top: 55px;\n  }\n}\np.is-style-highlight {\n  margin-bottom: 2.5rem;\n  font-weight: 400;\n  color: #717171;\n  font-size: 0.875rem;\n  line-height: 1.5;\n}\n@media (min-width: 767px) {\n  p.is-style-highlight {\n    margin-bottom: 5rem;\n  }\n}\np.is-style-strong {\n  font-weight: 700;\n  font-size: 0.875rem;\n  line-height: 1.5714285714;\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2hleGUvcGFydHMvZ3V0ZW5iZXJnL2NvcmUtcGFyYWdyYXBoL3N0eWxlLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9oZXhlL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9oZXhlL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fbWl4aW5zLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9oZXhlL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9faW5jbHVkZS1tZWRpYS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0FBQ0E7RUFDQzs7QUFFQTtFQUNDOztBQUdEO0VBQ0M7O0FBR0Q7RUFDQyxPQ3lDa0I7RUR4Q2xCOztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUEsYUNJYztFREhkO0VFcURBO0VBakNDOztBQzhmRDtFSDVoQkQ7SUFjRTtJRWlERDtJQWpDQzs7O0FGWEQ7RUFDQzs7QUd3Z0JEO0VIemdCQTtJQUlFOzs7QUFLSDtFQUNDO0VBRUE7RUFDQSxPQ0VnQjtFQzZCaEI7RUFqQ0M7O0FDOGZEO0VIaGdCRDtJQVFFOzs7QUFJRjtFQUNDO0VFc0JBO0VBakNDIiwiZmlsZSI6IndlYi9hcHAvdGhlbWVzL2hleGUvcGFydHMvZ3V0ZW5iZXJnL2NvcmUtcGFyYWdyYXBoL3N0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ19fc2V0dGluZ3MvaW5pdCc7XHJcblxyXG4vKiBUZXh0IEVsZW1lbnRzICovXHJcbnAge1xyXG5cdG1hcmdpbi1ib3R0b206IHJlbSgxNyk7XHJcblxyXG5cdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdH1cclxuXHJcblx0Ji5pcy1zdHlsZS11cHBlcmNhc2Uge1xyXG5cdFx0dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuXHR9XHJcblxyXG5cdCYuaXMtc3R5bGUtcHJlaGVhZGluZyB7XHJcblx0XHRjb2xvcjogJHNlY29uZGFyeTtcclxuXHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcblx0fVxyXG5cclxuXHQmLmlzLXN0eWxlLWxlYWRwYXJhZ3JhcGgge1xyXG5cdFx0bWF4LXdpZHRoOiByZW0oNzIwKTtcclxuXHRcdHBhZGRpbmctdG9wOiByZW0oNDUpO1xyXG5cdFx0cGFkZGluZy1ib3R0b206IHJlbSg0NSk7XHJcblxyXG5cdFx0bWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG5cclxuXHRcdGZvbnQtZmFtaWx5OiAkZm9udC1oZWFkaW5ncztcclxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XHJcblxyXG5cdFx0QGluY2x1ZGUgZm9udCgyNSwgMzIpO1xyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdHBhZGRpbmctdG9wOiByZW0oNzApO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgZm9udCgzMCwgMzYpO1xyXG5cdFx0fVxyXG5cclxuXHRcdCYgKyAuY3RhLXNpbmdsZS1icmFuZCB7XHJcblx0XHRcdHBhZGRpbmctdG9wOiAyNXB4O1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdFx0cGFkZGluZy10b3A6IDU1cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYuaXMtc3R5bGUtaGlnaGxpZ2h0IHtcclxuXHRcdG1hcmdpbi1ib3R0b206IHJlbSg0MCk7XHJcblxyXG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcclxuXHRcdGNvbG9yOiAkY29sb3ItZG92ZS1ncmF5O1xyXG5cclxuXHRcdEBpbmNsdWRlIGZvbnQoMTQsIDIxKTtcclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiByZW0oODApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji5pcy1zdHlsZS1zdHJvbmcge1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHJcblx0XHRAaW5jbHVkZSBmb250KDE0LCAyMik7XHJcblx0fVxyXG59XHJcbiIsIi8vIFZBUklBQkxFU1xyXG5cclxuLy8gQ29udGFpbmVyIHdpZHRoIHZhcmlhYmxlc1xyXG4kY29udGFpbmVyLW1vYmlsZTogNzIwcHg7XHJcbiRjb250YWluZXItbGc6IDk2MHB4O1xyXG4kY29udGFpbmVyLXhsOiAxMTE4cHg7XHJcbiRjb250YWluZXIteHhsOiAxMjEwcHg7XHJcbiRjb250YWluZXItcGFkZGluZzogMTU7IC8vcHhcclxuXHJcbi8vIEJsb2NrIFNwYWNpbmdzXHJcbiRzcGFjaW5nLW1vYmlsZTogNTA7XHJcbiRzcGFjaW5nOiA5NDtcclxuJG1hcmdpbi1tb2JpbGU6IDM0O1xyXG4kbWFyZ2luOiAzNDtcclxuXHJcbi8vIE1lZGlhIFNwYWNpbmdcclxuJG1lZGlhLW1hcmdpbjogMjA7IC8vcHhcclxuXHJcbi8vIFRyYW5zaXRpb25zXHJcbiRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ6IDEuMnM7XHJcbiR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4yMiwgMSwgLjM2LCAxKTtcclxuJHRyYW5zaXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQgJHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uO1xyXG5cclxuLy8gT3V0bGluZVxyXG4kb3V0bGluZTogMnB4IHNvbGlkIGJsdWU7XHJcblxyXG4vL2ZvbnRzXHJcbiRmb250LWJhc2U6IFwibXlyaWFkLXByb1wiLCBzYW5zLXNlcmlmOy8vJ09wZW4gc2FucycsIHNhbnMtc2VyaWY7XHJcbiRmb250LXNpemUtYmFzZTogMTY7XHJcbiRsaW5lLWhlaWdodC1iYXNlOiAyNDtcclxuJGZvbnQtc2l6ZS1tb2JpbGU6IDE0O1xyXG4kbGluZS1oZWlnaHQtbW9iaWxlOiAyNjtcclxuJGZvbnQtaGVhZGluZ3M6IFwibmV1cm9wb2wteC1saWdodFwiLCBzYW5zLXNlcmlmOy8vJ0dlb21ldHJpYScsIHNhbnMtc2VyaWY7XHJcblxyXG4vLyBDT0xPUlNcclxuJGNvbG9yLS1ibGFjazogIzAwMDAwMDtcclxuJGNvbG9yLS13aGl0ZTogI2ZmZmZmZjtcclxuXHJcbi8vIFRoZW1lIENvbG9yc1xyXG4kY29sb3ItMTogIzNjN2VhMTtcclxuJGNvbG9yLTI6ICNlZDRmMzM7XHJcbiRjb2xvci0zOiAjZmNiNTE2O1xyXG4kY29sb3ItNDogIzAwYTU5ODtcclxuJGNvbG9yLXBvcmNlbGFpbjogI2Y1ZjZmNztcclxuJGNvbG9yLWNhdHNraWxsLXdoaXRlOiAjZjVmOGZhO1xyXG4kY29sb3ItcG90LXBvdXJyaTogI2U3ZWFlZDtcclxuJGNvbG9yLWF0aGVucy1ncmF5OiAjZmFmYmZjO1xyXG4kY29sb3ItYXRoZW5zLWRhcmtlci1ncmF5OiAjZWFlZGYwO1xyXG4kY29sb3ItY2FkZXQtYmx1ZTogI2E3YWViYztcclxuJGNvbG9yLWNvcm5mbG93ZXItYmx1ZTogIzY5YWZkYztcclxuJGNvbG9yLWRlbmltOiAjMWQ3MmI5O1xyXG4kY29sb3ItbWFyaW5lcjogIzFlNzViYztcclxuJGNvbG9yLWlyb246ICNkNGQ5ZGU7XHJcbiRjb2xvci1kb3ZlLWdyYXk6ICM3MTcxNzE7XHJcbiRjb2xvci10dW5kb3JhOiAjNDQ0NDQ0O1xyXG4kY29sb3ItbGltZWQtc3BydWNlOiAjMzg0NTRmO1xyXG4kY29sb3ItYmxhY2stcGVhcmw6ICMwNTE1MjI7XHJcbiRjb2xvci1yb3NlOiAjZmQxMDY3O1xyXG4kY29sb3Itc21hcnQta29kYTogI2ZmM2MwMDtcclxuJGNvbG9yLWtvZGEtYm90czogIzAyMzI2MjtcclxuJGNvbG9yLWN1dDogIzAwYzRhZTtcclxuJGNvbG9yLWluc2lnaHRsYW5kOiAjMmRhYmJmO1xyXG4kY29sb3ItYm9vc3Q6ICM1NTQ2ZmY7XHJcbiRncmFkaWVudC1jb2xvcnM6IChcclxuXHQnc21hcnQta29kYSc6XHRcdGxpbmVhci1ncmFkaWVudCgxNzVkZWcsICNmZjNjMDAgMCUsICNmZDEwNjcgMTAwJSksXHJcblx0J2tvZGEtYm90cyc6XHRcdGxpbmVhci1ncmFkaWVudCgxNzVkZWcsICMwMTMyNjMgMCUsICMwMjJlNTggMTAwJSksXHJcblx0J2N1dDJjb2RlJzpcdCBcdFx0bGluZWFyLWdyYWRpZW50KC0xZGVnLCAjMDBkZTk1IDAlLCAjMDBjNGFlIDEwMCUpLFxyXG4pO1xyXG4kYmFja2dyb3VuZC1jb2xvcnM6IChcclxuXHQnaW5zaWdodGxhbmQnOlx0XHRcdCRjb2xvci1pbnNpZ2h0bGFuZCxcclxuXHQnYm9vc3QnOlx0XHRcdFx0JGNvbG9yLWJvb3N0LFxyXG4pO1xyXG5cclxuLy9CYWNrcm91bmQgbGluZWFyIGdyYWRpZW50XHJcbiRiYWNrZ3JvdW5kLWNvbG9yLWxpbmVhcjogbGluZWFyLWdyYWRpZW50KDIyNWRlZywgIzM2YThlMSAwJSwgIzFjNzBiOCAxMDAlKTtcclxuJGVycm9yLWNvbG9yOiAjZDgxMzEzO1xyXG5cclxuLy9cclxuJHByaW1hcnk6ICRjb2xvci1kZW5pbTtcclxuJHNlY29uZGFyeTogJGNvbG9yLWJsYWNrLXBlYXJsO1xyXG4kYm9yZGVyLWNvbG9yOiAkY29sb3ItaXJvbjtcclxuXHJcbi8vIFRleHRcclxuJHRleHQtY29sb3ItYmFzZTogJGNvbG9yLXR1bmRvcmE7XHJcbiR0ZXh0LWNvbG9yLWhlYWRpbmc6ICRjb2xvci1ibGFjay1wZWFybDtcclxuJHRleHQtbGlnaHQ6ICRjb2xvci0td2hpdGU7XHJcbiRsaW5rLWNvbG9yOiAkcHJpbWFyeTtcclxuJGxpbmstaG92ZXItY29sb3I6ICRzZWNvbmRhcnk7XHJcblxyXG4vL1xyXG4kY29sb3ItYmc6ICNmZmZmZmY7XHJcbiRvdmVybGF5LWJhY2tncm91bmQtY29sb3I6IHJnYmEoNSwgMjEsIDM0LCAuNCk7XHJcblxyXG4vLyBCUkVBS1BPSU5UU1xyXG4kYnJlYWtwb2ludHM6ICh4czogMzkwcHgsIHNtOiA1NzZweCwgbWQ6IDc2N3B4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQ0MHB4LCB4eHhsOiAxODAwcHgsIG1heDogMTkyMHB4KTtcclxuIiwiLy9cclxuLy8gTUlYSU5TXHJcbi8vXHJcbkBtaXhpbiBjZiB7XHJcblx0JjpiZWZvcmUsXHJcblx0JjphZnRlciB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRkaXNwbGF5OiB0YWJsZTtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y2xlYXI6IGJvdGg7XHJcblx0fVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdnctc2l6ZSgkcywgJHc6IDE0NDApIHtcclxuXHRAcmV0dXJuICgkcyAvICR3KSAqIDEwMCArIHZ3O1xyXG59XHJcblxyXG5AZnVuY3Rpb24gcmVtKCRzaXplVmFsdWU6IDE2KSB7XHJcblx0QHJldHVybiBjYWxjKCRzaXplVmFsdWUgLyAxNikgKyByZW07XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZWwoJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemUgLyAkcmVsKTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGVtKCRzaXplLCAkcmVsKSB7XHJcblx0QHJldHVybiByZWwoJHNpemUsICRyZWwpICogMWVtO1xyXG59XHJcblxyXG5AbWl4aW4gb2JqZWN0LWZpdC1jb3ZlcigpIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHJcblx0b2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5lLWhlaWdodCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IDApIHtcclxuXHRAaWYgJGxpbmUtaGVpZ2h0ICE9IDAge1xyXG5cdFx0QGlmICRsaW5lLWhlaWdodCA8IDEwIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IGNhbGMoJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZSwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmICRsZXR0ZXItc3BhY2luZyAhPSAwIHtcclxuXHRcdEBpZiAkbGV0dGVyLXNwYWNpbmcgPCAxMCB7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oJGxldHRlci1zcGFjaW5nKTtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgoJGZvbnQtc2l6ZSAqICRsZXR0ZXItc3BhY2luZykgLyAxMDAwKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmb250KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQ6IDAsICRsZXR0ZXItc3BhY2luZzogMCkge1xyXG5cdEBpZiB0eXBlLW9mKCRmb250LXNpemUtbWFwKSA9PSAnbWFwJyB7XHJcblx0XHRAZWFjaCAkYnJlYWtwb2ludCwgJGZvbnQtc2l6ZSBpbiAkZm9udC1zaXplLW1hcCB7XHJcblx0XHRcdEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIHtcclxuXHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQobWFwLWdldCgkZm9udC1zaXplLW1hcCwgbnRoKG1hcC1rZXlzKCRmb250LXNpemUtbWFwKSwgLTEpKSwgJGxpbmUtaGVpZ2h0KTtcclxuXHRcdFx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZyhtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0XHR9XHJcblx0XHRcdEBlbHNlIHtcclxuXHRcdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpKSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QGVsc2Uge1xyXG5cdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZS1tYXApO1xyXG5cclxuXHRcdEBpbmNsdWRlIGxpbmUtaGVpZ2h0KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0QGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZS1tYXAsICRsZXR0ZXItc3BhY2luZyk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gc2Nyb2xsYmFyKCRjb2xvci1zY3JvbGxiYXIsICRjb2xvci1zY3JvbGxiYXItYmcpIHtcclxuXHRvdmVyZmxvdy15OiBhdXRvO1xyXG5cclxuXHRzY3JvbGxiYXItd2lkdGg6IHRoaW47XHJcblx0c2Nyb2xsYmFyLWNvbG9yOiAkY29sb3Itc2Nyb2xsYmFyICRjb2xvci1zY3JvbGxiYXItYmc7XHJcblxyXG5cdCY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuXHRcdHdpZHRoOiByZW0oNik7XHJcblx0fVxyXG5cdCY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcclxuXHRcdGJhY2tncm91bmQ6ICRjb2xvci1zY3JvbGxiYXItYmc7XHJcblx0fVxyXG5cdCY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuXHRcdGJvcmRlcjogMDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc2Nyb2xsYmFyO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGhvdmVyLWxpbmsge1xyXG5cdCY6Zm9jdXMsXHJcblx0Jjpob3ZlciB7XHJcblx0XHRjb2xvcjogJGxpbmstaG92ZXItY29sb3I7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaG92ZXItc3ZnIHtcclxuXHRzdmcgcGF0aCB7XHJcblx0XHR0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcclxuXHR9XHJcblx0Jjpmb2N1cyxcclxuXHQmOmhvdmVyIHtcclxuXHRcdHN2ZyBwYXRoIHtcclxuXHRcdFx0ZmlsbDogJGxpbmstaG92ZXItY29sb3I7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gb3BhY2l0eS10ZXh0IHtcclxuXHRvcGFjaXR5OiAuNztcclxuXHQmOmhvdmVyIHtcclxuXHRcdG9wYWNpdHk6IDE7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaGVhZGluZy0xLXNpemUge1xyXG5cdEBpbmNsdWRlIGZvbnQoMzYsIDQyKTtcclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdEBpbmNsdWRlIGZvbnQoNzUsIDgyKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBoZWFkaW5nLTItc2l6ZSB7XHJcblx0QGluY2x1ZGUgZm9udCgzMCwgMzgpO1xyXG5cdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0QGluY2x1ZGUgZm9udCg0NSwgNTIpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGhlYWRpbmctMy1zaXplIHtcclxuXHRAaW5jbHVkZSBmb250KDIwLCAyOCk7XHJcblx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRAaW5jbHVkZSBmb250KDI1LCAzMik7XHJcblx0fVxyXG59XHJcblxyXG5cclxuQG1peGluIHNpbmdYIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0ei1pbmRleDogLTE7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cclxuXHRcdHdpZHRoOiByZW0oMzIwKTtcclxuXHRcdGhlaWdodDogcmVtKDQwNyk7XHJcblxyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblxyXG5cdFx0YmFja2dyb3VuZDogdXJsKCdzdmcvWC5zdmcnKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdHdpZHRoOiByZW0oNTUwKTtcclxuXHRcdFx0aGVpZ2h0OiByZW0oODAxKTtcclxuXHRcdH1cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHR3aWR0aDogcmVtKDY0NSk7XHJcblx0XHRcdGhlaWdodDogcmVtKDk0MCk7XHJcblx0XHR9XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPD1tZCcpIHtcclxuXHRcdFx0Ym90dG9tOiAwO1xyXG5cdFx0XHRsZWZ0OiA1MCU7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXHJcbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcclxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXHJcbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XHJcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcclxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcclxuLy9cclxuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3NcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40LjlcclxuLy9cclxuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXHJcbi8vXHJcbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxyXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXHJcbi8vXHJcbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcclxuXHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxyXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcclxuLy8vXHJcbiRicmVha3BvaW50czogKFxyXG5cdCdwaG9uZSc6IDMyMHB4LFxyXG5cdCd0YWJsZXQnOiA3NjhweCxcclxuXHQnZGVza3RvcCc6IDEwMjRweFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxyXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXHJcbi8vLyAgKTtcclxuLy8vXHJcbiRtZWRpYS1leHByZXNzaW9uczogKFxyXG5cdCdzY3JlZW4nOiAnc2NyZWVuJyxcclxuXHQncHJpbnQnOiAncHJpbnQnLFxyXG5cdCdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXHJcblx0J2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG5cdCdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcblx0J3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcclxuXHQncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcblx0J3B4JzogMSxcclxuXHQnZW0nOiAwLjAxLFxyXG5cdCdyZW0nOiAwLjEsXHJcblx0Jyc6IDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXHJcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxyXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0JztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcclxuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcclxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXHJcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XHJcblx0XHRAZXJyb3IgJG1lc3NhZ2U7XHJcblx0fSBAZWxzZSB7XHJcblx0XHRAd2FybiAkbWVzc2FnZTtcclxuXHRcdCRfOiBub29wKCk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRtZXNzYWdlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XHJcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cclxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cclxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXHJcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxyXG4vLy9cclxuQGZ1bmN0aW9uIG5vb3AoKSB7fVxyXG5cclxuLy8vXHJcbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHQkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcclxuXHJcblx0QGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XHJcblx0XHRAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cclxuXHR9XHJcblxyXG5cdEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xyXG5cdFx0QGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcclxuXHRcdFx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0XHRcdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0XHRcdEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxyXG5cdFx0XHRcdFx0KCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XHJcblx0XHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFBhcnNpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcclxuXHRAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcclxuXHRcdEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdFx0XHRAcmV0dXJuICRvcGVyYXRvcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdCRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XHJcblx0JGRpbWVuc2lvbjogJ3dpZHRoJztcclxuXHJcblx0QGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XHJcblx0XHQkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJGRpbWVuc2lvbjtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XHJcblx0QHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xyXG5cclxuXHRAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuXHRcdCR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XHJcblx0fSBAZWxzZSB7XHJcblx0XHQkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xyXG5cdH1cclxuXHJcblx0JGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcclxuXHJcblx0QGlmIG5vdCAkaW50ZXJ2YWwge1xyXG5cdFx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdFx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHRcdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdFx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHRcdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHRcdCRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcclxuXHR9XHJcblxyXG5cdEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xyXG5cdH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XHJcbi8vL1xyXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xyXG5cdC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcclxuXHQvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG5cdEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XHJcblx0XHRAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XHJcblx0fVxyXG5cclxuXHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcclxuXHQkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0QHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxyXG4vLy9cclxuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcclxuXHRAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XHJcblx0XHRAcmV0dXJuICgpO1xyXG5cdH1cclxuXHJcblx0JHJlc3VsdDogKCk7XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcclxuXHRcdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn1cclxuLy8vXHJcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XHJcblx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcblx0XHRAcmV0dXJuICR2YWx1ZTtcclxuXHR9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XHJcblx0XHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xyXG5cdH1cclxuXHJcblx0JGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XHJcblx0JHJlc3VsdDogMDtcclxuXHQkZGlnaXRzOiAwO1xyXG5cdCRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcclxuXHQkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XHJcblxyXG5cdC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxyXG5cdEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcclxuXHRcdCR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XHJcblx0fVxyXG5cclxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XHJcblx0XHQkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xyXG5cclxuXHRcdEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcclxuXHRcdFx0QHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcclxuXHRcdH1cclxuXHJcblx0XHRAaWYgJGNoYXJhY3RlciA9PSAnLicge1xyXG5cdFx0XHQkZGlnaXRzOiAxO1xyXG5cdFx0fSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQkZGlnaXRzOiAkZGlnaXRzICogMTA7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuXHQkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xyXG5cclxuXHRAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcblx0XHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xyXG5cdC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XHJcblx0JGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xyXG5cclxuXHQvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcclxuXHJcblx0QGNvbnRlbnQ7XHJcblxyXG5cdC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xyXG5cdEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcclxuXHRcdFx0KG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xyXG5cdFx0QG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xyXG5cdFx0XHQvLyBSZWN1cnNpdmUgY2FsbFxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcclxuXHRcdFx0XHRAY29udGVudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXX0= *\/\n<\/style>\n<p>Chez CyberHexe, nous nous engageons \u00e0 donner aux entreprises les moyens de prosp\u00e9rer \u00e0 l'\u00e8re num\u00e9rique. Notre gamme compl\u00e8te de services est con\u00e7ue pour rehausser votre pr\u00e9sence en ligne, am\u00e9liorer l'exp\u00e9rience des utilisateurs, renforcer les d\u00e9fenses de cybers\u00e9curit\u00e9 et stimuler l'innovation. Avec CyberHexe \u00e0 vos c\u00f4t\u00e9s, vous pouvez naviguer dans les complexit\u00e9s du paysage num\u00e9rique avec confiance et clart\u00e9.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Embarquez avec nous sur le chemin de la transformation num\u00e9rique. Que vous soyez une petite startup ou une grande entreprise, nous avons l'expertise et les ressources pour propulser votre entreprise vers l'avant. D\u00e9couvrez nos services, apprenez-en plus sur notre approche et tra\u00e7ons ensemble la voie du succ\u00e8s.<\/p>\n<\/div>\n<\/div>\n<\/div><\/div><\/section>\n\n\n\r\n<section class=\"brands-list\" id=\"brands-list\">\r\n\t<style>.brands-list {\n  padding: 3.125rem 0;\n}\n@media (min-width: 767px) {\n  .brands-list {\n    padding: 4.375rem 0 6.4375rem;\n  }\n}\n.brands-list__title {\n  margin-bottom: 2.1875rem;\n  text-align: center;\n  font-size: 1.875rem;\n  line-height: 1.2666666667;\n}\n@media (min-width: 767px) {\n  .brands-list__title {\n    font-size: 2.8125rem;\n    line-height: 1.1555555556;\n  }\n}\n@media (min-width: 767px) {\n  .brands-list__title {\n    margin-bottom: 5rem;\n  }\n}\n.brands-list__row {\n  margin-top: 2.1875rem;\n}\n.brands-list__item {\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  width: 100%;\n  margin-bottom: 4.375rem;\n}\n@media (min-width: 576px) {\n  .brands-list__item {\n    flex-direction: row;\n  }\n}\n@media (min-width: 767px) {\n  .brands-list__item {\n    justify-content: flex-start;\n    margin-bottom: 4.9375rem;\n  }\n}\n@media (min-width: 767px) {\n  .brands-list__item:nth-child(even) {\n    flex-direction: row-reverse;\n    margin-left: auto;\n  }\n}\n.brands-list__item:last-child {\n  margin-bottom: 0;\n}\n.brands-list__col {\n  flex: 1 100%;\n  max-width: 100%;\n}\n.brands-list__col--image {\n  text-align: center;\n}\n@media (min-width: 767px) {\n  .brands-list__col--image {\n    max-width: 28.4375rem;\n    text-align: unset;\n  }\n}\n@media (min-width: 767px) {\n  .brands-list__col--content {\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    max-width: 25.125rem;\n    padding: 0 1.5625rem;\n  }\n}\n.brands-list .brand__title {\n  font-size: 1.5625rem;\n  line-height: 1.4;\n}\n.brands-list .brand__description {\n  margin-top: 2.5rem;\n  color: #444444;\n  font-size: 0.875rem;\n  line-height: 1.7142857143;\n}\n@media (min-width: 767px) {\n  .brands-list .brand__description {\n    margin-top: 0;\n  }\n}\n.brands-list .brand__logo {\n  margin-top: 2.5rem;\n  text-align: center;\n}\n@media (min-width: 576px) {\n  .brands-list .brand__logo {\n    margin-top: 0;\n    text-align: left;\n  }\n}\n.brands-list .wp-block-button {\n  margin-top: 2.1875rem;\n  text-align: center;\n}\n@media (min-width: 576px) {\n  .brands-list .wp-block-button {\n    text-align: left;\n  }\n}\n.brands-list .wp-block-button svg path {\n  fill: #1d72b9;\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2hleGUvcGFydHMvZ3V0ZW5iZXJnL2FjZi1icmFuZHMtbGlzdC9zdHlsZS5zY3NzIiwid2ViL2FwcC90aGVtZXMvaGV4ZS9hc3NldHMvY3NzL19fc2V0dGluZ3MvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYi9hcHAvdGhlbWVzL2hleGUvYXNzZXRzL2Nzcy9fX3NldHRpbmdzL19taXhpbnMuc2NzcyIsIndlYi9hcHAvdGhlbWVzL2hleGUvYXNzZXRzL2Nzcy9fX3NldHRpbmdzL192YXJpYWJsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNDOztBQzRpQkM7RUQ3aUJGO0lBSUU7OztBQUVEO0VBQ0M7RUFFQTtFRXVFQTtFQWpDQzs7QUQ4ZkQ7RUR2aUJEO0lFMEVDO0lBakNDOzs7QUQ4ZkQ7RUR2aUJEO0lBT0U7OztBQUlGO0VBQ0M7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFFQTtFQUVBOztBQ2loQkE7RUR4aEJEO0lBVUU7OztBQzhnQkQ7RUR4aEJEO0lBYUU7SUFFQTs7O0FDeWdCRDtFRHRnQkE7SUFFRTtJQUVBOzs7QUFJRjtFQUNDOztBQUlGO0VBQ0M7RUFFQTs7QUFFQTtFQUNDOztBQ21mRDtFRHBmQTtJQUlFO0lBRUE7OztBQzhlRjtFRDFlQTtJQUVFO0lBQ0E7SUFDQTtJQUVBO0lBQ0E7OztBQU9GO0VFREE7RUFqQ0M7O0FGc0NEO0VBQ0M7RUFFQSxPR3BDYTtFRDRCZDtFQWpDQzs7QUQ4ZkQ7RUR4ZEE7SUFPRTs7O0FBSUY7RUFDQztFQUVBOztBQzBjRDtFRDdjQTtJQU1FO0lBRUE7OztBQUtIO0VBQ0M7RUFFQTs7QUM2YkE7RURoY0Q7SUFNRTs7O0FBSUE7RUFDQyxNR3hFVSIsImZpbGUiOiJ3ZWIvYXBwL3RoZW1lcy9oZXhlL3BhcnRzL2d1dGVuYmVyZy9hY2YtYnJhbmRzLWxpc3Qvc3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnX19zZXR0aW5ncy9pbml0JztcclxuXHJcbi5icmFuZHMtbGlzdCB7XHJcblx0cGFkZGluZzogcmVtKDUwKSAwO1xyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdHBhZGRpbmc6IHJlbSg3MCkgMCByZW0oMTAzKTtcclxuXHR9XHJcblx0Jl9fdGl0bGUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogcmVtKDM1KTtcclxuXHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG5cdFx0QGluY2x1ZGUgaGVhZGluZy0yLXNpemU7XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDgwKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCZfX3JvdyB7XHJcblx0XHRtYXJnaW4tdG9wOiByZW0oMzUpO1xyXG5cdH1cclxuXHJcblx0Jl9faXRlbSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuXHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdG1hcmdpbi1ib3R0b206IHJlbSg3MCk7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49c20nKSB7XHJcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcblx0XHR9XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xyXG5cclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogcmVtKDc5KTtcclxuXHRcdH1cclxuXHJcblx0XHQmOm50aC1jaGlsZChldmVuKSB7XHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcclxuXHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Jl9fY29sIHtcclxuXHRcdGZsZXg6IDEgMTAwJTtcclxuXHJcblx0XHRtYXgtd2lkdGg6IDEwMCU7XHJcblxyXG5cdFx0Ji0taW1hZ2Uge1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRtYXgtd2lkdGg6IHJlbSg0NTUpO1xyXG5cclxuXHRcdFx0XHR0ZXh0LWFsaWduOiB1bnNldDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCYtLWNvbnRlbnQge1xyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0XHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblxyXG5cdFx0XHRcdG1heC13aWR0aDogcmVtKDQwMik7XHJcblx0XHRcdFx0cGFkZGluZzogMCByZW0oMjUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHJcblx0LmJyYW5kIHtcclxuXHRcdCZfX3RpdGxlIHtcclxuXHRcdFx0QGluY2x1ZGUgZm9udCgyNSwzNSk7XHJcblx0XHR9XHJcblxyXG5cdFx0Jl9fZGVzY3JpcHRpb24ge1xyXG5cdFx0XHRtYXJnaW4tdG9wOiByZW0oNDApO1xyXG5cclxuXHRcdFx0Y29sb3I6ICRjb2xvci10dW5kb3JhO1xyXG5cclxuXHRcdFx0QGluY2x1ZGUgZm9udCgxNCwyNCk7XHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmX19sb2dvIHtcclxuXHRcdFx0bWFyZ2luLXRvcDogcmVtKDQwKTtcclxuXHJcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKCc+PXNtJykge1xyXG5cdFx0XHRcdG1hcmdpbi10b3A6IDA7XHJcblxyXG5cdFx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC53cC1ibG9jay1idXR0b24ge1xyXG5cdFx0bWFyZ2luLXRvcDogcmVtKDM1KTtcclxuXHJcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49c20nKSB7XHJcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHR9XHJcblxyXG5cdFx0c3ZnIHtcclxuXHRcdFx0cGF0aCB7XHJcblx0XHRcdFx0ZmlsbDogJHByaW1hcnk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXHJcbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcclxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXHJcbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XHJcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcclxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcclxuLy9cclxuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3NcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40LjlcclxuLy9cclxuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXHJcbi8vXHJcbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxyXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXHJcbi8vXHJcbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcclxuXHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxyXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcclxuLy8vXHJcbiRicmVha3BvaW50czogKFxyXG5cdCdwaG9uZSc6IDMyMHB4LFxyXG5cdCd0YWJsZXQnOiA3NjhweCxcclxuXHQnZGVza3RvcCc6IDEwMjRweFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxyXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXHJcbi8vLyAgKTtcclxuLy8vXHJcbiRtZWRpYS1leHByZXNzaW9uczogKFxyXG5cdCdzY3JlZW4nOiAnc2NyZWVuJyxcclxuXHQncHJpbnQnOiAncHJpbnQnLFxyXG5cdCdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXHJcblx0J2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG5cdCdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcblx0J3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcclxuXHQncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcblx0J3B4JzogMSxcclxuXHQnZW0nOiAwLjAxLFxyXG5cdCdyZW0nOiAwLjEsXHJcblx0Jyc6IDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXHJcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxyXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0JztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcclxuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcclxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXHJcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XHJcblx0XHRAZXJyb3IgJG1lc3NhZ2U7XHJcblx0fSBAZWxzZSB7XHJcblx0XHRAd2FybiAkbWVzc2FnZTtcclxuXHRcdCRfOiBub29wKCk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRtZXNzYWdlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XHJcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cclxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cclxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXHJcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxyXG4vLy9cclxuQGZ1bmN0aW9uIG5vb3AoKSB7fVxyXG5cclxuLy8vXHJcbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHQkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcclxuXHJcblx0QGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XHJcblx0XHRAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cclxuXHR9XHJcblxyXG5cdEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xyXG5cdFx0QGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcclxuXHRcdFx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0XHRcdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0XHRcdEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxyXG5cdFx0XHRcdFx0KCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XHJcblx0XHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFBhcnNpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcclxuXHRAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcclxuXHRcdEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdFx0XHRAcmV0dXJuICRvcGVyYXRvcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdCRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XHJcblx0JGRpbWVuc2lvbjogJ3dpZHRoJztcclxuXHJcblx0QGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XHJcblx0XHQkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJGRpbWVuc2lvbjtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XHJcblx0QHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xyXG5cclxuXHRAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuXHRcdCR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XHJcblx0fSBAZWxzZSB7XHJcblx0XHQkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xyXG5cdH1cclxuXHJcblx0JGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcclxuXHJcblx0QGlmIG5vdCAkaW50ZXJ2YWwge1xyXG5cdFx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdFx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHRcdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdFx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHRcdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHRcdCRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcclxuXHR9XHJcblxyXG5cdEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xyXG5cdH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XHJcbi8vL1xyXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xyXG5cdC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcclxuXHQvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG5cdEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XHJcblx0XHRAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XHJcblx0fVxyXG5cclxuXHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcclxuXHQkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0QHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxyXG4vLy9cclxuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcclxuXHRAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XHJcblx0XHRAcmV0dXJuICgpO1xyXG5cdH1cclxuXHJcblx0JHJlc3VsdDogKCk7XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcclxuXHRcdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn1cclxuLy8vXHJcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XHJcblx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcblx0XHRAcmV0dXJuICR2YWx1ZTtcclxuXHR9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XHJcblx0XHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xyXG5cdH1cclxuXHJcblx0JGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XHJcblx0JHJlc3VsdDogMDtcclxuXHQkZGlnaXRzOiAwO1xyXG5cdCRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcclxuXHQkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XHJcblxyXG5cdC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxyXG5cdEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcclxuXHRcdCR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XHJcblx0fVxyXG5cclxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XHJcblx0XHQkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xyXG5cclxuXHRcdEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcclxuXHRcdFx0QHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcclxuXHRcdH1cclxuXHJcblx0XHRAaWYgJGNoYXJhY3RlciA9PSAnLicge1xyXG5cdFx0XHQkZGlnaXRzOiAxO1xyXG5cdFx0fSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQkZGlnaXRzOiAkZGlnaXRzICogMTA7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuXHQkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xyXG5cclxuXHRAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcblx0XHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xyXG5cdC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XHJcblx0JGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xyXG5cclxuXHQvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcclxuXHJcblx0QGNvbnRlbnQ7XHJcblxyXG5cdC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xyXG5cdEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcclxuXHRcdFx0KG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xyXG5cdFx0QG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xyXG5cdFx0XHQvLyBSZWN1cnNpdmUgY2FsbFxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcclxuXHRcdFx0XHRAY29udGVudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvL1xyXG4vLyBNSVhJTlNcclxuLy9cclxuQG1peGluIGNmIHtcclxuXHQmOmJlZm9yZSxcclxuXHQmOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cclxuXHRcdGRpc3BsYXk6IHRhYmxlO1xyXG5cdH1cclxuXHJcblx0JjphZnRlciB7XHJcblx0XHRjbGVhcjogYm90aDtcclxuXHR9XHJcbn1cclxuXHJcbkBmdW5jdGlvbiB2dy1zaXplKCRzLCAkdzogMTQ0MCkge1xyXG5cdEByZXR1cm4gKCRzIC8gJHcpICogMTAwICsgdnc7XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZW0oJHNpemVWYWx1ZTogMTYpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemVWYWx1ZSAvIDE2KSArIHJlbTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIHJlbCgkc2l6ZSwgJHJlbCkge1xyXG5cdEByZXR1cm4gY2FsYygkc2l6ZSAvICRyZWwpO1xyXG59XHJcblxyXG5AZnVuY3Rpb24gZW0oJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIHJlbCgkc2l6ZSwgJHJlbCkgKiAxZW07XHJcbn1cclxuXHJcbkBtaXhpbiBvYmplY3QtZml0LWNvdmVyKCkge1xyXG5cdHdpZHRoOiAxMDAlO1xyXG5cdGhlaWdodDogMTAwJTtcclxuXHJcblx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdHRvcDogMDtcclxuXHRsZWZ0OiAwO1xyXG5cclxuXHRvYmplY3QtZml0OiBjb3ZlcjtcclxufVxyXG5cclxuQG1peGluIGxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRsaW5lLWhlaWdodDogMCkge1xyXG5cdEBpZiAkbGluZS1oZWlnaHQgIT0gMCB7XHJcblx0XHRAaWYgJGxpbmUtaGVpZ2h0IDwgMTAge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsaW5lLWhlaWdodDogY2FsYygkbGluZS1oZWlnaHQgLyAkZm9udC1zaXplKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLCAkbGV0dGVyLXNwYWNpbmc6IDApIHtcclxuXHRAaWYgJGxldHRlci1zcGFjaW5nICE9IDAge1xyXG5cdFx0QGlmICRsZXR0ZXItc3BhY2luZyA8IDEwIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0fVxyXG5cdFx0QGVsc2Uge1xyXG5cdFx0XHRsZXR0ZXItc3BhY2luZzogcmVtKCgkZm9udC1zaXplICogJGxldHRlci1zcGFjaW5nKSAvIDEwMDApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGZvbnQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodDogMCwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmIHR5cGUtb2YoJGZvbnQtc2l6ZS1tYXApID09ICdtYXAnIHtcclxuXHRcdEBlYWNoICRicmVha3BvaW50LCAkZm9udC1zaXplIGluICRmb250LXNpemUtbWFwIHtcclxuXHRcdFx0QGlmICRicmVha3BvaW50ID09IG51bGwge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cclxuXHRcdFx0XHRAaW5jbHVkZSBsaW5lLWhlaWdodChtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0XHRcdEBpbmNsdWRlIGxldHRlci1zcGFjaW5nKG1hcC1nZXQoJGZvbnQtc2l6ZS1tYXAsIG50aChtYXAta2V5cygkZm9udC1zaXplLW1hcCksIC0xKSksICRsZXR0ZXItc3BhY2luZyk7XHJcblx0XHRcdH1cclxuXHRcdFx0QGVsc2Uge1xyXG5cdFx0XHRcdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludCkpIHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogcmVtKCRmb250LXNpemUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRAZWxzZSB7XHJcblx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplLW1hcCk7XHJcblxyXG5cdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQoJGZvbnQtc2l6ZS1tYXAsICRsaW5lLWhlaWdodCk7XHJcblx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZygkZm9udC1zaXplLW1hcCwgJGxldHRlci1zcGFjaW5nKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBzY3JvbGxiYXIoJGNvbG9yLXNjcm9sbGJhciwgJGNvbG9yLXNjcm9sbGJhci1iZykge1xyXG5cdG92ZXJmbG93LXk6IGF1dG87XHJcblxyXG5cdHNjcm9sbGJhci13aWR0aDogdGhpbjtcclxuXHRzY3JvbGxiYXItY29sb3I6ICRjb2xvci1zY3JvbGxiYXIgJGNvbG9yLXNjcm9sbGJhci1iZztcclxuXHJcblx0Jjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG5cdFx0d2lkdGg6IHJlbSg2KTtcclxuXHR9XHJcblx0Jjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG5cdFx0YmFja2dyb3VuZDogJGNvbG9yLXNjcm9sbGJhci1iZztcclxuXHR9XHJcblx0Jjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xyXG5cdFx0Ym9yZGVyOiAwO1xyXG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zY3JvbGxiYXI7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaG92ZXItbGluayB7XHJcblx0Jjpmb2N1cyxcclxuXHQmOmhvdmVyIHtcclxuXHRcdGNvbG9yOiAkbGluay1ob3Zlci1jb2xvcjtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBob3Zlci1zdmcge1xyXG5cdHN2ZyBwYXRoIHtcclxuXHRcdHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xyXG5cdH1cclxuXHQmOmZvY3VzLFxyXG5cdCY6aG92ZXIge1xyXG5cdFx0c3ZnIHBhdGgge1xyXG5cdFx0XHRmaWxsOiAkbGluay1ob3Zlci1jb2xvcjtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBvcGFjaXR5LXRleHQge1xyXG5cdG9wYWNpdHk6IC43O1xyXG5cdCY6aG92ZXIge1xyXG5cdFx0b3BhY2l0eTogMTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBoZWFkaW5nLTEtc2l6ZSB7XHJcblx0QGluY2x1ZGUgZm9udCgzNiwgNDIpO1xyXG5cdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0QGluY2x1ZGUgZm9udCg3NSwgODIpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGhlYWRpbmctMi1zaXplIHtcclxuXHRAaW5jbHVkZSBmb250KDMwLCAzOCk7XHJcblx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRAaW5jbHVkZSBmb250KDQ1LCA1Mik7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaGVhZGluZy0zLXNpemUge1xyXG5cdEBpbmNsdWRlIGZvbnQoMjAsIDI4KTtcclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdEBpbmNsdWRlIGZvbnQoMjUsIDMyKTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG5AbWl4aW4gc2luZ1gge1xyXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHR6LWluZGV4OiAtMTtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Y29udGVudDogJyc7XHJcblxyXG5cdFx0d2lkdGg6IHJlbSgzMjApO1xyXG5cdFx0aGVpZ2h0OiByZW0oNDA3KTtcclxuXHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAtMTtcclxuXHJcblx0XHRiYWNrZ3JvdW5kOiB1cmwoJ3N2Zy9YLnN2ZycpO1xyXG5cdFx0YmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuXHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdFx0d2lkdGg6IHJlbSg1NTApO1xyXG5cdFx0XHRoZWlnaHQ6IHJlbSg4MDEpO1xyXG5cdFx0fVxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49eGwnKSB7XHJcblx0XHRcdHdpZHRoOiByZW0oNjQ1KTtcclxuXHRcdFx0aGVpZ2h0OiByZW0oOTQwKTtcclxuXHRcdH1cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc8PW1kJykge1xyXG5cdFx0XHRib3R0b206IDA7XHJcblx0XHRcdGxlZnQ6IDUwJTtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCIvLyBWQVJJQUJMRVNcclxuXHJcbi8vIENvbnRhaW5lciB3aWR0aCB2YXJpYWJsZXNcclxuJGNvbnRhaW5lci1tb2JpbGU6IDcyMHB4O1xyXG4kY29udGFpbmVyLWxnOiA5NjBweDtcclxuJGNvbnRhaW5lci14bDogMTExOHB4O1xyXG4kY29udGFpbmVyLXh4bDogMTIxMHB4O1xyXG4kY29udGFpbmVyLXBhZGRpbmc6IDE1OyAvL3B4XHJcblxyXG4vLyBCbG9jayBTcGFjaW5nc1xyXG4kc3BhY2luZy1tb2JpbGU6IDUwO1xyXG4kc3BhY2luZzogOTQ7XHJcbiRtYXJnaW4tbW9iaWxlOiAzNDtcclxuJG1hcmdpbjogMzQ7XHJcblxyXG4vLyBNZWRpYSBTcGFjaW5nXHJcbiRtZWRpYS1tYXJnaW46IDIwOyAvL3B4XHJcblxyXG4vLyBUcmFuc2l0aW9uc1xyXG4kZGVmYXVsdC10cmFuc2l0aW9uLXNwZWVkOiAxLjJzO1xyXG4kdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMjIsIDEsIC4zNiwgMSk7XHJcbiR0cmFuc2l0aW9uOiAkZGVmYXVsdC10cmFuc2l0aW9uLXNwZWVkICR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjtcclxuXHJcbi8vIE91dGxpbmVcclxuJG91dGxpbmU6IDJweCBzb2xpZCBibHVlO1xyXG5cclxuLy9mb250c1xyXG4kZm9udC1iYXNlOiBcIm15cmlhZC1wcm9cIiwgc2Fucy1zZXJpZjsvLydPcGVuIHNhbnMnLCBzYW5zLXNlcmlmO1xyXG4kZm9udC1zaXplLWJhc2U6IDE2O1xyXG4kbGluZS1oZWlnaHQtYmFzZTogMjQ7XHJcbiRmb250LXNpemUtbW9iaWxlOiAxNDtcclxuJGxpbmUtaGVpZ2h0LW1vYmlsZTogMjY7XHJcbiRmb250LWhlYWRpbmdzOiBcIm5ldXJvcG9sLXgtbGlnaHRcIiwgc2Fucy1zZXJpZjsvLydHZW9tZXRyaWEnLCBzYW5zLXNlcmlmO1xyXG5cclxuLy8gQ09MT1JTXHJcbiRjb2xvci0tYmxhY2s6ICMwMDAwMDA7XHJcbiRjb2xvci0td2hpdGU6ICNmZmZmZmY7XHJcblxyXG4vLyBUaGVtZSBDb2xvcnNcclxuJGNvbG9yLTE6ICMzYzdlYTE7XHJcbiRjb2xvci0yOiAjZWQ0ZjMzO1xyXG4kY29sb3ItMzogI2ZjYjUxNjtcclxuJGNvbG9yLTQ6ICMwMGE1OTg7XHJcbiRjb2xvci1wb3JjZWxhaW46ICNmNWY2Zjc7XHJcbiRjb2xvci1jYXRza2lsbC13aGl0ZTogI2Y1ZjhmYTtcclxuJGNvbG9yLXBvdC1wb3Vycmk6ICNlN2VhZWQ7XHJcbiRjb2xvci1hdGhlbnMtZ3JheTogI2ZhZmJmYztcclxuJGNvbG9yLWF0aGVucy1kYXJrZXItZ3JheTogI2VhZWRmMDtcclxuJGNvbG9yLWNhZGV0LWJsdWU6ICNhN2FlYmM7XHJcbiRjb2xvci1jb3JuZmxvd2VyLWJsdWU6ICM2OWFmZGM7XHJcbiRjb2xvci1kZW5pbTogIzFkNzJiOTtcclxuJGNvbG9yLW1hcmluZXI6ICMxZTc1YmM7XHJcbiRjb2xvci1pcm9uOiAjZDRkOWRlO1xyXG4kY29sb3ItZG92ZS1ncmF5OiAjNzE3MTcxO1xyXG4kY29sb3ItdHVuZG9yYTogIzQ0NDQ0NDtcclxuJGNvbG9yLWxpbWVkLXNwcnVjZTogIzM4NDU0ZjtcclxuJGNvbG9yLWJsYWNrLXBlYXJsOiAjMDUxNTIyO1xyXG4kY29sb3Itcm9zZTogI2ZkMTA2NztcclxuJGNvbG9yLXNtYXJ0LWtvZGE6ICNmZjNjMDA7XHJcbiRjb2xvci1rb2RhLWJvdHM6ICMwMjMyNjI7XHJcbiRjb2xvci1jdXQ6ICMwMGM0YWU7XHJcbiRjb2xvci1pbnNpZ2h0bGFuZDogIzJkYWJiZjtcclxuJGNvbG9yLWJvb3N0OiAjNTU0NmZmO1xyXG4kZ3JhZGllbnQtY29sb3JzOiAoXHJcblx0J3NtYXJ0LWtvZGEnOlx0XHRsaW5lYXItZ3JhZGllbnQoMTc1ZGVnLCAjZmYzYzAwIDAlLCAjZmQxMDY3IDEwMCUpLFxyXG5cdCdrb2RhLWJvdHMnOlx0XHRsaW5lYXItZ3JhZGllbnQoMTc1ZGVnLCAjMDEzMjYzIDAlLCAjMDIyZTU4IDEwMCUpLFxyXG5cdCdjdXQyY29kZSc6XHQgXHRcdGxpbmVhci1ncmFkaWVudCgtMWRlZywgIzAwZGU5NSAwJSwgIzAwYzRhZSAxMDAlKSxcclxuKTtcclxuJGJhY2tncm91bmQtY29sb3JzOiAoXHJcblx0J2luc2lnaHRsYW5kJzpcdFx0XHQkY29sb3ItaW5zaWdodGxhbmQsXHJcblx0J2Jvb3N0JzpcdFx0XHRcdCRjb2xvci1ib29zdCxcclxuKTtcclxuXHJcbi8vQmFja3JvdW5kIGxpbmVhciBncmFkaWVudFxyXG4kYmFja2dyb3VuZC1jb2xvci1saW5lYXI6IGxpbmVhci1ncmFkaWVudCgyMjVkZWcsICMzNmE4ZTEgMCUsICMxYzcwYjggMTAwJSk7XHJcbiRlcnJvci1jb2xvcjogI2Q4MTMxMztcclxuXHJcbi8vXHJcbiRwcmltYXJ5OiAkY29sb3ItZGVuaW07XHJcbiRzZWNvbmRhcnk6ICRjb2xvci1ibGFjay1wZWFybDtcclxuJGJvcmRlci1jb2xvcjogJGNvbG9yLWlyb247XHJcblxyXG4vLyBUZXh0XHJcbiR0ZXh0LWNvbG9yLWJhc2U6ICRjb2xvci10dW5kb3JhO1xyXG4kdGV4dC1jb2xvci1oZWFkaW5nOiAkY29sb3ItYmxhY2stcGVhcmw7XHJcbiR0ZXh0LWxpZ2h0OiAkY29sb3ItLXdoaXRlO1xyXG4kbGluay1jb2xvcjogJHByaW1hcnk7XHJcbiRsaW5rLWhvdmVyLWNvbG9yOiAkc2Vjb25kYXJ5O1xyXG5cclxuLy9cclxuJGNvbG9yLWJnOiAjZmZmZmZmO1xyXG4kb3ZlcmxheS1iYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDUsIDIxLCAzNCwgLjQpO1xyXG5cclxuLy8gQlJFQUtQT0lOVFNcclxuJGJyZWFrcG9pbnRzOiAoeHM6IDM5MHB4LCBzbTogNTc2cHgsIG1kOiA3NjdweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0NDBweCwgeHh4bDogMTgwMHB4LCBtYXg6IDE5MjBweCk7XHJcbiJdfQ== *\/\n<\/style>\t<div class=\"brands-list__container container\">\r\n\t\t<div class=\"brands-list__heading\" data-aos=\"fade-up\">\r\n\t\t<h2 class='section-title brands-list__title'>Ce qui nous rend uniques<\/h2>\t\t<\/div>\r\n\r\n\t\t\t\t\t<div class=\"brands-list__row row\">\r\n\t\t\t\t\t\t\t<div class=\"brands-list__item order-animation nc-2\">\r\n\t\t\t\t\t<div class=\"brands-list__col brands-list__col--image\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"hexagon__image\">\r\n\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"425\" height=\"366\" src=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/03\/biuro_Cut2Code_2K_062_8544-min-425x366.jpg\" class=\"hexagon-img\" alt=\"Des modes de fonctionnement souples\" srcset=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/03\/biuro_Cut2Code_2K_062_8544-min-425x366.jpg 425w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/03\/biuro_Cut2Code_2K_062_8544-min-341x294.jpg 341w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/03\/biuro_Cut2Code_2K_062_8544-min-631x544.jpg 631w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/03\/biuro_Cut2Code_2K_062_8544-min-280x241.jpg 280w\" sizes=\"(max-width: 425px) 100vw, 425px\" \/>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"brands-list__col brands-list__col--content\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"brand__description section-description\" data-aos=\"fade-up\">\r\n\t\t\t\t\t\t\t<h3>Des modes de fonctionnement souples<\/h3>\n<p>Que vous ayez besoin d'une ex\u00e9cution de projet de bout en bout, de ressources suppl\u00e9mentaires pour renforcer votre \u00e9quipe ou d'une \u00e9quipe d'experts d\u00e9di\u00e9e, CyberHexe fournit des r\u00e9sultats qui d\u00e9passent les attentes. Avec nous, vous avez acc\u00e8s \u00e0 un nombre illimit\u00e9 de ressources qualifi\u00e9es et \u00e0 une qualit\u00e9 in\u00e9gal\u00e9e, ce qui garantit que vos projets sont men\u00e9s \u00e0 bien avec pr\u00e9cision et excellence.<\/p>\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<div class=\"brands-list__item order-animation nc-2\">\r\n\t\t\t\t\t<div class=\"brands-list__col brands-list__col--image\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"hexagon__image\">\r\n\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"425\" height=\"366\" src=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/17-425x366.jpg\" class=\"hexagon-img\" alt=\"Technologies innovantes\" srcset=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/17-425x366.jpg 425w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/17-300x259.jpg 300w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/17-14x12.jpg 14w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/17-341x294.jpg 341w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/17-631x544.jpg 631w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/17-280x241.jpg 280w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/17.jpg 680w\" sizes=\"(max-width: 425px) 100vw, 425px\" \/>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"brands-list__col brands-list__col--content\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"brand__description section-description\" data-aos=\"fade-up\">\r\n\t\t\t\t\t\t\t<h3>Technologies innovantes<\/h3>\n<p>Curieux de conna\u00eetre la profondeur de notre expertise et l'\u00e9tendue des secteurs que nous servons ? D\u00e9couvrez notre portefeuille de partenaires majeurs qui nous ont fait confiance. Plongez dans les technologies de pointe dont nous sommes sp\u00e9cialistes et voyez comment nous pouvons adapter nos solutions \u00e0 vos besoins sp\u00e9cifiques.<\/p>\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<div class=\"brands-list__item order-animation nc-2\">\r\n\t\t\t\t\t<div class=\"brands-list__col brands-list__col--image\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"hexagon__image\">\r\n\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"425\" height=\"366\" src=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/22-425x366.jpg\" class=\"hexagon-img\" alt=\"Temps de r\u00e9ponse rapide\" srcset=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/22-425x366.jpg 425w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/22-300x259.jpg 300w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/22-14x12.jpg 14w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/22-341x294.jpg 341w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/22-631x544.jpg 631w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/22-280x241.jpg 280w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/22.jpg 680w\" sizes=\"(max-width: 425px) 100vw, 425px\" \/>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"brands-list__col brands-list__col--content\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"brand__description section-description\" data-aos=\"fade-up\">\r\n\t\t\t\t\t\t\t<h3>Temps de r\u00e9ponse rapide<\/h3>\n<p>Avec notre \u00e9quipe, vous b\u00e9n\u00e9ficiez d'une r\u00e9activit\u00e9 rapide, de la demande au lancement du projet. En r\u00e8gle g\u00e9n\u00e9rale, une semaine ou deux apr\u00e8s votre premier contact et la collecte de vos besoins, nous nous assurons que vous recevez un devis rapide et que le projet est lanc\u00e9 de mani\u00e8re transparente. Faites confiance \u00e0 nos processus rapides pour respecter vos d\u00e9lais sans compromettre la qualit\u00e9. Choisissez la fiabilit\u00e9 et la rapidit\u00e9 pour vos projets num\u00e9riques.<\/p>\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<div class=\"brands-list__item order-animation nc-2\">\r\n\t\t\t\t\t<div class=\"brands-list__col brands-list__col--image\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"hexagon__image\">\r\n\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"425\" height=\"366\" src=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/biuro_Cut2Code_2K_011_8265-min-425x366.jpg\" class=\"hexagon-img\" alt=\"Pl\u00e9thore de services\" srcset=\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/biuro_Cut2Code_2K_011_8265-min-425x366.jpg 425w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/biuro_Cut2Code_2K_011_8265-min-341x294.jpg 341w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/biuro_Cut2Code_2K_011_8265-min-631x544.jpg 631w, https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/04\/biuro_Cut2Code_2K_011_8265-min-280x241.jpg 280w\" sizes=\"(max-width: 425px) 100vw, 425px\" \/>\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t<div class=\"brands-list__col brands-list__col--content\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"brand__description section-description\" data-aos=\"fade-up\">\r\n\t\t\t\t\t\t\t<h3>Pl\u00e9thore de services<\/h3>\n<p>Que vous partiez de z\u00e9ro avec un tout nouveau site web, que vous cherchiez \u00e0 renforcer votre pr\u00e9sence en ligne contre les cybermenaces, que vous cherchiez \u00e0 exploiter la puissance des donn\u00e9es pour optimiser les performances, ou que vous soyez pr\u00eat \u00e0 explorer le potentiel de l'IA et de l'apprentissage automatique pour propulser votre entreprise vers l'avant, soyez assur\u00e9 que nous avons l'expertise et les solutions pour r\u00e9pondre \u00e0 vos besoins. Chez CyberHexe, nous nous engageons \u00e0 fournir des services complets qui abordent chaque aspect de votre parcours num\u00e9rique, assurant votre succ\u00e8s dans le paysage en ligne en constante \u00e9volution.<\/p>\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n<\/section>\r\n\r\n\n\n\n<p class=\"has-text-align-center is-style-leadparagraph has-primary-color has-text-color has-link-color wp-elements-77c1085845e1640977acfe2ed909edd7\">Pr\u00eat \u00e0 donner le coup d'envoi de votre transformation num\u00e9rique avec CyberHexe ?<\/p>\n\n\n<section class=\"cta-single-brand has-text-align-left d-flex is-content-justification-center-center\">\r\n\t<style>.cta-single-brand {\n  padding: 3.125rem 0;\n  text-align: center;\n}\n@media (min-width: 767px) {\n  .cta-single-brand {\n    padding: 6.25rem 0;\n  }\n}\n.cta-single-brand + .staff-list.block-spacing--mt {\n  margin-top: 0;\n}\n.cta-single-brand__button .wp-block-button__link {\n  color: #1d72b9;\n  border: 2px solid #1d72b9;\n  background: transparent;\n}\n.cta-single-brand__button .wp-block-button__link svg path {\n  fill: #1d72b9;\n}\n.cta-single-brand__button .wp-block-button__link:hover {\n  border: 2px solid #051522;\n  background: #051522;\n}\n.cta-single-brand__button .wp-block-button__link:hover svg path {\n  fill: #fff;\n}\n.cta-single-brand__button .wp-block-button__link:focus {\n  color: #1d72b9;\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2hleGUvcGFydHMvZ3V0ZW5iZXJnL2FjZi1jdGEtc2luZ2xlLWJyYW5kL3N0eWxlLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9oZXhlL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2ViL2FwcC90aGVtZXMvaGV4ZS9hc3NldHMvY3NzL19fc2V0dGluZ3MvX3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0M7RUFFQTs7QUMwaUJDO0VEN2lCRjtJQU1FOzs7QUFHRDtFQUNDOztBQUlBO0VBQ0MsT0VpQ1c7RUYvQlg7RUFDQTs7QUFHQztFQUNDLE1FMEJTOztBRnRCWDtFQUNDO0VBQ0EsWUUwQmdCOztBRnhCZjtFQUNDOztBQUtIO0VBQ0MsT0VXVSIsImZpbGUiOiJ3ZWIvYXBwL3RoZW1lcy9oZXhlL3BhcnRzL2d1dGVuYmVyZy9hY2YtY3RhLXNpbmdsZS1icmFuZC9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdfX3NldHRpbmdzL2luaXQnO1xyXG5cclxuLmN0YS1zaW5nbGUtYnJhbmQge1xyXG5cdHBhZGRpbmc6IHJlbSg1MCkgMDtcclxuXHJcblx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdHBhZGRpbmc6IHJlbSgxMDApIDA7XHJcblx0fVxyXG5cclxuXHQmICsgLnN0YWZmLWxpc3QuYmxvY2stc3BhY2luZy0tbXQge1xyXG5cdFx0bWFyZ2luLXRvcDogMDtcclxuXHR9XHJcblxyXG5cdCZfX2J1dHRvbiB7XHJcblx0XHQud3AtYmxvY2stYnV0dG9uX19saW5rIHtcclxuXHRcdFx0Y29sb3I6ICRwcmltYXJ5O1xyXG5cclxuXHRcdFx0Ym9yZGVyOiAycHggc29saWQgJHByaW1hcnk7XHJcblx0XHRcdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG5cclxuXHRcdFx0c3ZnIHtcclxuXHRcdFx0XHRwYXRoIHtcclxuXHRcdFx0XHRcdGZpbGw6ICRwcmltYXJ5O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0Ym9yZGVyOiAycHggc29saWQgJHNlY29uZGFyeTtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O1xyXG5cdFx0XHRcdHN2ZyB7XHJcblx0XHRcdFx0XHRwYXRoIHtcclxuXHRcdFx0XHRcdFx0ZmlsbDogI2ZmZjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6Zm9jdXMge1xyXG5cdFx0XHRcdGNvbG9yOiAkcHJpbWFyeTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cclxuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxyXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cclxuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcclxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxyXG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxyXG4vL1xyXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xyXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxyXG4vL1xyXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cclxuLy9cclxuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXHJcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcclxuLy9cclxuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxyXG5cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXHJcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xyXG4vLy9cclxuJGJyZWFrcG9pbnRzOiAoXHJcblx0J3Bob25lJzogMzIwcHgsXHJcblx0J3RhYmxldCc6IDc2OHB4LFxyXG5cdCdkZXNrdG9wJzogMTAyNHB4XHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXHJcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXHJcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXHJcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcclxuLy8vICApO1xyXG4vLy9cclxuJG1lZGlhLWV4cHJlc3Npb25zOiAoXHJcblx0J3NjcmVlbic6ICdzY3JlZW4nLFxyXG5cdCdwcmludCc6ICdwcmludCcsXHJcblx0J2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcclxuXHQnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcblx0J3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuXHQncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxyXG5cdCdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XHJcbi8vL1xyXG4kdW5pdC1pbnRlcnZhbHM6IChcclxuXHQncHgnOiAxLFxyXG5cdCdlbSc6IDAuMDEsXHJcblx0J3JlbSc6IDAuMSxcclxuXHQnJzogMFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcclxuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXHJcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xyXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAgLmZvbyB7XHJcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xyXG5cclxuLy8vL1xyXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxyXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcclxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcclxuXHRcdEBlcnJvciAkbWVzc2FnZTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdEB3YXJuICRtZXNzYWdlO1xyXG5cdFx0JF86IG5vb3AoKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJG1lc3NhZ2U7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcclxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxyXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxyXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQG1peGluIGxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcclxuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXHJcbi8vL1xyXG5AZnVuY3Rpb24gbm9vcCgpIHt9XHJcblxyXG4vLy9cclxuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xyXG5cdCRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xyXG5cclxuXHRAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcclxuXHRcdEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxyXG5cdH1cclxuXHJcblx0QGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XHJcblx0XHRAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xyXG5cdFx0XHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHRcdFx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRcdFx0QGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXHJcblx0XHRcdFx0XHQoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcclxuXHRcdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gUGFyc2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xyXG5cdEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xyXG5cdFx0QGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0XHRcdEByZXR1cm4gJG9wZXJhdG9yO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcblx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0JF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcclxuXHQkZGltZW5zaW9uOiAnd2lkdGgnO1xyXG5cclxuXHRAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcclxuXHRcdCRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkZGltZW5zaW9uO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcclxuXHRAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XHJcblxyXG5cdEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xyXG5cdFx0JHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdCR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHQkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xyXG5cclxuXHRAaWYgbm90ICRpbnRlcnZhbCB7XHJcblx0XHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0XHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdFx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcblx0XHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdFx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdFx0JF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xyXG5cdH1cclxuXHJcblx0QGlmICRvcGVyYXRvciA9PSAnPicge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XHJcblx0fSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkdmFsdWU7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2VcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcclxuLy8vXHJcbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XHJcblx0Ly8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxyXG5cdC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXHJcblx0QGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcclxuXHRcdEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcclxuXHR9XHJcblxyXG5cdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xyXG5cdCRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcclxufVxyXG5cclxuLy8vXHJcbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2VcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XHJcbi8vL1xyXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xyXG5cdEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcclxuXHRcdEByZXR1cm4gKCk7XHJcblx0fVxyXG5cclxuXHQkcmVzdWx0OiAoKTtcclxuXHJcblx0QGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xyXG5cdFx0JHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHJlc3VsdDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfVxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcclxuXHRAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcclxuXHRcdEByZXR1cm4gJHZhbHVlO1xyXG5cdH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcclxuXHRcdCRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XHJcblx0fVxyXG5cclxuXHQkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcclxuXHQkcmVzdWx0OiAwO1xyXG5cdCRkaWdpdHM6IDA7XHJcblx0JG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xyXG5cdCRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcclxuXHJcblx0Ly8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXHJcblx0QGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xyXG5cdFx0JHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcclxuXHR9XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcclxuXHRcdCRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XHJcblxyXG5cdFx0QGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xyXG5cdFx0XHRAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxyXG5cdFx0fVxyXG5cclxuXHRcdEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XHJcblx0XHRcdCRkaWdpdHM6IDE7XHJcblx0XHR9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdCRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcclxuLy8vXHJcbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xyXG5cdCR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XHJcblxyXG5cdEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcclxuXHRcdCRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxyXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxyXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXHJcbi8vLyBmb3IgaW5zdGFuY2UuXHJcbi8vL1xyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XHJcblx0Ly8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcclxuXHQkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XHJcblxyXG5cdC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xyXG5cdCRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xyXG5cclxuXHRAY29udGVudDtcclxuXHJcblx0Ly8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xyXG5cdCRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XHJcblx0QGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxyXG5cdFx0XHQobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XHJcblx0XHRAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XHJcblx0XHRcdC8vIFJlY3Vyc2l2ZSBjYWxsXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xyXG5cdFx0XHRcdEBjb250ZW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8vIFZBUklBQkxFU1xyXG5cclxuLy8gQ29udGFpbmVyIHdpZHRoIHZhcmlhYmxlc1xyXG4kY29udGFpbmVyLW1vYmlsZTogNzIwcHg7XHJcbiRjb250YWluZXItbGc6IDk2MHB4O1xyXG4kY29udGFpbmVyLXhsOiAxMTE4cHg7XHJcbiRjb250YWluZXIteHhsOiAxMjEwcHg7XHJcbiRjb250YWluZXItcGFkZGluZzogMTU7IC8vcHhcclxuXHJcbi8vIEJsb2NrIFNwYWNpbmdzXHJcbiRzcGFjaW5nLW1vYmlsZTogNTA7XHJcbiRzcGFjaW5nOiA5NDtcclxuJG1hcmdpbi1tb2JpbGU6IDM0O1xyXG4kbWFyZ2luOiAzNDtcclxuXHJcbi8vIE1lZGlhIFNwYWNpbmdcclxuJG1lZGlhLW1hcmdpbjogMjA7IC8vcHhcclxuXHJcbi8vIFRyYW5zaXRpb25zXHJcbiRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ6IDEuMnM7XHJcbiR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4yMiwgMSwgLjM2LCAxKTtcclxuJHRyYW5zaXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQgJHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uO1xyXG5cclxuLy8gT3V0bGluZVxyXG4kb3V0bGluZTogMnB4IHNvbGlkIGJsdWU7XHJcblxyXG4vL2ZvbnRzXHJcbiRmb250LWJhc2U6IFwibXlyaWFkLXByb1wiLCBzYW5zLXNlcmlmOy8vJ09wZW4gc2FucycsIHNhbnMtc2VyaWY7XHJcbiRmb250LXNpemUtYmFzZTogMTY7XHJcbiRsaW5lLWhlaWdodC1iYXNlOiAyNDtcclxuJGZvbnQtc2l6ZS1tb2JpbGU6IDE0O1xyXG4kbGluZS1oZWlnaHQtbW9iaWxlOiAyNjtcclxuJGZvbnQtaGVhZGluZ3M6IFwibmV1cm9wb2wteC1saWdodFwiLCBzYW5zLXNlcmlmOy8vJ0dlb21ldHJpYScsIHNhbnMtc2VyaWY7XHJcblxyXG4vLyBDT0xPUlNcclxuJGNvbG9yLS1ibGFjazogIzAwMDAwMDtcclxuJGNvbG9yLS13aGl0ZTogI2ZmZmZmZjtcclxuXHJcbi8vIFRoZW1lIENvbG9yc1xyXG4kY29sb3ItMTogIzNjN2VhMTtcclxuJGNvbG9yLTI6ICNlZDRmMzM7XHJcbiRjb2xvci0zOiAjZmNiNTE2O1xyXG4kY29sb3ItNDogIzAwYTU5ODtcclxuJGNvbG9yLXBvcmNlbGFpbjogI2Y1ZjZmNztcclxuJGNvbG9yLWNhdHNraWxsLXdoaXRlOiAjZjVmOGZhO1xyXG4kY29sb3ItcG90LXBvdXJyaTogI2U3ZWFlZDtcclxuJGNvbG9yLWF0aGVucy1ncmF5OiAjZmFmYmZjO1xyXG4kY29sb3ItYXRoZW5zLWRhcmtlci1ncmF5OiAjZWFlZGYwO1xyXG4kY29sb3ItY2FkZXQtYmx1ZTogI2E3YWViYztcclxuJGNvbG9yLWNvcm5mbG93ZXItYmx1ZTogIzY5YWZkYztcclxuJGNvbG9yLWRlbmltOiAjMWQ3MmI5O1xyXG4kY29sb3ItbWFyaW5lcjogIzFlNzViYztcclxuJGNvbG9yLWlyb246ICNkNGQ5ZGU7XHJcbiRjb2xvci1kb3ZlLWdyYXk6ICM3MTcxNzE7XHJcbiRjb2xvci10dW5kb3JhOiAjNDQ0NDQ0O1xyXG4kY29sb3ItbGltZWQtc3BydWNlOiAjMzg0NTRmO1xyXG4kY29sb3ItYmxhY2stcGVhcmw6ICMwNTE1MjI7XHJcbiRjb2xvci1yb3NlOiAjZmQxMDY3O1xyXG4kY29sb3Itc21hcnQta29kYTogI2ZmM2MwMDtcclxuJGNvbG9yLWtvZGEtYm90czogIzAyMzI2MjtcclxuJGNvbG9yLWN1dDogIzAwYzRhZTtcclxuJGNvbG9yLWluc2lnaHRsYW5kOiAjMmRhYmJmO1xyXG4kY29sb3ItYm9vc3Q6ICM1NTQ2ZmY7XHJcbiRncmFkaWVudC1jb2xvcnM6IChcclxuXHQnc21hcnQta29kYSc6XHRcdGxpbmVhci1ncmFkaWVudCgxNzVkZWcsICNmZjNjMDAgMCUsICNmZDEwNjcgMTAwJSksXHJcblx0J2tvZGEtYm90cyc6XHRcdGxpbmVhci1ncmFkaWVudCgxNzVkZWcsICMwMTMyNjMgMCUsICMwMjJlNTggMTAwJSksXHJcblx0J2N1dDJjb2RlJzpcdCBcdFx0bGluZWFyLWdyYWRpZW50KC0xZGVnLCAjMDBkZTk1IDAlLCAjMDBjNGFlIDEwMCUpLFxyXG4pO1xyXG4kYmFja2dyb3VuZC1jb2xvcnM6IChcclxuXHQnaW5zaWdodGxhbmQnOlx0XHRcdCRjb2xvci1pbnNpZ2h0bGFuZCxcclxuXHQnYm9vc3QnOlx0XHRcdFx0JGNvbG9yLWJvb3N0LFxyXG4pO1xyXG5cclxuLy9CYWNrcm91bmQgbGluZWFyIGdyYWRpZW50XHJcbiRiYWNrZ3JvdW5kLWNvbG9yLWxpbmVhcjogbGluZWFyLWdyYWRpZW50KDIyNWRlZywgIzM2YThlMSAwJSwgIzFjNzBiOCAxMDAlKTtcclxuJGVycm9yLWNvbG9yOiAjZDgxMzEzO1xyXG5cclxuLy9cclxuJHByaW1hcnk6ICRjb2xvci1kZW5pbTtcclxuJHNlY29uZGFyeTogJGNvbG9yLWJsYWNrLXBlYXJsO1xyXG4kYm9yZGVyLWNvbG9yOiAkY29sb3ItaXJvbjtcclxuXHJcbi8vIFRleHRcclxuJHRleHQtY29sb3ItYmFzZTogJGNvbG9yLXR1bmRvcmE7XHJcbiR0ZXh0LWNvbG9yLWhlYWRpbmc6ICRjb2xvci1ibGFjay1wZWFybDtcclxuJHRleHQtbGlnaHQ6ICRjb2xvci0td2hpdGU7XHJcbiRsaW5rLWNvbG9yOiAkcHJpbWFyeTtcclxuJGxpbmstaG92ZXItY29sb3I6ICRzZWNvbmRhcnk7XHJcblxyXG4vL1xyXG4kY29sb3ItYmc6ICNmZmZmZmY7XHJcbiRvdmVybGF5LWJhY2tncm91bmQtY29sb3I6IHJnYmEoNSwgMjEsIDM0LCAuNCk7XHJcblxyXG4vLyBCUkVBS1BPSU5UU1xyXG4kYnJlYWtwb2ludHM6ICh4czogMzkwcHgsIHNtOiA1NzZweCwgbWQ6IDc2N3B4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQ0MHB4LCB4eHhsOiAxODAwcHgsIG1heDogMTkyMHB4KTtcclxuIl19 *\/\n<\/style>\t<div class=\"cta-single__container container\">\r\n\t\t<div class=\"cta-single-brand__button\" data-aos=\"fade-up\">\r\n\t\t<style>.wp-block-buttons {\n  margin: 2.5rem auto;\n}\n.wp-block-buttons.aligncenter {\n  justify-content: center;\n}\n\n.wp-block-button__link {\n  min-width: 150px;\n  padding: 0.625rem 1.5625rem;\n  font-size: 0.875rem;\n  font-weight: 700;\n  color: #ffffff;\n  border-radius: 0;\n  background-color: #1d72b9;\n  transition: background-color 1.2s cubic-bezier(0.22, 1, 0.36, 1);\n}\n.wp-block-button__link:hover {\n  background: #051522;\n}\n.wp-block-button__link:focus {\n  color: #ffffff;\n}\n.wp-block-button__link svg {\n  width: 24px;\n}\n.wp-block-button.is-style-outline .wp-block-button__link {\n  color: #1d72b9;\n  border-color: #1d72b9;\n  transition: 1.2s cubic-bezier(0.22, 1, 0.36, 1);\n}\n.wp-block-button.is-style-outline .wp-block-button__link:hover {\n  color: #051522;\n  border-color: #051522;\n}\n.wp-block-button.is-style-outline .wp-block-button__link:hover svg path {\n  fill: #051522;\n}\n.wp-block-button.is-style-outline .wp-block-button__link svg {\n  width: 12px;\n  margin-top: -0.125rem;\n  margin-left: 1.125rem;\n}\n.wp-block-button.is-style-outline .wp-block-button__link svg path {\n  fill: #1d72b9;\n}\n.wp-block-button.is-style-outline .wp-block-button__link span:nth-of-type(2) {\n  color: #051522;\n}\n.wp-block-button.is-style-outline .wp-block-button__link span:nth-of-type(2) svg path {\n  fill: #051522;\n}\n.wp-block-button.is-style-filled-white .wp-block-button__link {\n  color: #1d72b9;\n  border-color: #ffffff;\n  background: #ffffff;\n}\n.wp-block-button.is-style-filled-white .wp-block-button__link:hover {\n  color: #ffffff;\n  background: #051522;\n}\n.wp-block-button.is-style-filled-white .wp-block-button__link svg {\n  width: 12px;\n}\n.wp-block-button.bigger .wp-block-button__link {\n  padding-top: 0.75rem;\n  padding-right: 1.25rem;\n  padding-bottom: 0.75rem;\n  padding-left: 1.25rem;\n}\n@media (min-width: 767px) {\n  .wp-block-button.bigger .wp-block-button__link {\n    padding-right: 2.5rem;\n    padding-left: 2.5rem;\n    font-size: 1.25rem;\n  }\n}\n.wp-block-button__arrow .wp-block-button__link {\n  text-align: left;\n}\n.wp-block-button .wp-block-button__link:hover span:nth-of-type(2) {\n  transform: translate(0) !important;\n}\n.wp-block-button .swap-effect__span-wrapper {\n  display: flex;\n  justify-content: space-between;\n}\n.wp-block-button .swap-effect__span-wrapper span:nth-of-type(2) {\n  left: 0;\n  transform: translate(0, 150%);\n}\n.wp-block-button .swap-effect__span-wrapper svg {\n  min-width: 1.5rem;\n  min-height: 0.75rem;\n  margin-left: 1.125rem;\n}\n\n.swap-effect .swap-effect__link,\n.swap-effect .wp-block-button__link,\n.is-style-swap-effect-arrow .swap-effect__link,\n.is-style-swap-effect-arrow .wp-block-button__link {\n  overflow: hidden;\n}\n.swap-effect .swap-effect__link:hover .swap-effect__span-wrapper span:first-of-type,\n.swap-effect .wp-block-button__link:hover .swap-effect__span-wrapper span:first-of-type,\n.is-style-swap-effect-arrow .swap-effect__link:hover .swap-effect__span-wrapper span:first-of-type,\n.is-style-swap-effect-arrow .wp-block-button__link:hover .swap-effect__span-wrapper span:first-of-type {\n  transform: translateY(-250%);\n}\n.swap-effect .swap-effect__link:hover .swap-effect__span-wrapper span:nth-of-type(2),\n.swap-effect .wp-block-button__link:hover .swap-effect__span-wrapper span:nth-of-type(2),\n.is-style-swap-effect-arrow .swap-effect__link:hover .swap-effect__span-wrapper span:nth-of-type(2),\n.is-style-swap-effect-arrow .wp-block-button__link:hover .swap-effect__span-wrapper span:nth-of-type(2) {\n  transform: translate(-50%);\n}\n.swap-effect__span-wrapper,\n.is-style-swap-effect-arrow__span-wrapper {\n  position: relative;\n  overflow: hidden;\n}\n.swap-effect__span-wrapper span,\n.is-style-swap-effect-arrow__span-wrapper span {\n  display: block;\n  width: 100%;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n  transition-duration: 0.5s;\n  transition-property: all;\n}\n.swap-effect__span-wrapper span:nth-of-type(2),\n.is-style-swap-effect-arrow__span-wrapper span:nth-of-type(2) {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  transform: translate(-50%, 150%);\n  color: #ffffff;\n}\n\n.swap-effect-arrow--down .swap-effect__span-wrapper svg {\n  min-width: 12px;\n  margin-top: -0.125rem;\n  margin-left: 1.125rem;\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2hleGUvcGFydHMvZ3V0ZW5iZXJnL2NvcmUtYnV0dG9uL3N0eWxlLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9oZXhlL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9oZXhlL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9faW5jbHVkZS1tZWRpYS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBO0VBQ0M7O0FBQ0E7RUFDQzs7O0FBS0Q7RUFDQztFQUNBO0VBRUE7RUFDQTtFQUNBLE9DbUJhO0VEakJiO0VBQ0Esa0JDOEJZO0VENUJaOztBQUVBO0VBQ0MsWUMrQmlCOztBRDVCbEI7RUFDQyxPQ09ZOztBREhiO0VBQ0M7O0FBS0Q7RUFDQyxPQ1VXO0VEUlgsY0NRVztFRE5YLFlDdkJVOztBRHlCVjtFQUNDLE9DU2dCO0VEUGhCLGNDT2dCOztBREpmO0VBQ0MsTUNHYzs7QURFakI7RUFDQztFQUVBO0VBQ0E7O0FBRUE7RUFDQyxNQ2ZTOztBRG1CWDtFQUNDLE9DZGdCOztBRGlCZjtFQUNDLE1DbEJjOztBRHlCbEI7RUFDQyxPQ2hDVztFRGtDWCxjQ2hEWTtFRGlEWixZQ2pEWTs7QURtRFo7RUFDQyxPQ3BEVztFRHNEWCxZQ2xDZ0I7O0FEb0NqQjtFQUNDOztBQUtGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7O0FFeWNEO0VGN2NBO0lBT0U7SUFDQTtJQUVBOzs7QUFNRjtFQUNDOztBQUtEO0VBQ0M7O0FBSUY7RUFDQztFQUNBOztBQUVBO0VBQ0M7RUFDQTs7QUFHRDtFQUNDO0VBQ0E7RUFFQTs7O0FBT0Y7QUFBQTtBQUFBO0FBQUE7RUFFQzs7QUFJRTtBQUFBO0FBQUE7QUFBQTtFQUNDOztBQUVEO0FBQUE7QUFBQTtBQUFBO0VBQ0M7O0FBTUo7QUFBQTtFQUNDO0VBRUE7O0FBRUE7QUFBQTtFQUNDO0VBRUE7RUFFQTtFQUNBO0VBQ0E7O0FBRUQ7QUFBQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBRUEsT0NqSlk7OztBRHdKYjtFQUNDO0VBRUE7RUFDQSIsImZpbGUiOiJ3ZWIvYXBwL3RoZW1lcy9oZXhlL3BhcnRzL2d1dGVuYmVyZy9jb3JlLWJ1dHRvbi9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdfX3NldHRpbmdzL2luaXQnO1xyXG5cclxuLy8gQnV0dG9ucyBzdHlsZXNcclxuLndwLWJsb2NrLWJ1dHRvbnMge1xyXG5cdG1hcmdpbjogcmVtKDQwKSBhdXRvO1xyXG5cdCYuYWxpZ25jZW50ZXIge1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0fVxyXG59XHJcblxyXG4ud3AtYmxvY2stYnV0dG9uIHtcclxuXHQmX19saW5rIHtcclxuXHRcdG1pbi13aWR0aDogMTUwcHg7XHJcblx0XHRwYWRkaW5nOiByZW0oMTApIHJlbSgyNSk7XHJcblxyXG5cdFx0Zm9udC1zaXplOiByZW0oMTQpO1xyXG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcclxuXHRcdGNvbG9yOiAkY29sb3ItLXdoaXRlO1xyXG5cclxuXHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkbGluay1jb2xvcjtcclxuXHJcblx0XHR0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uO1xyXG5cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiAkc2Vjb25kYXJ5O1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6Zm9jdXMge1xyXG5cdFx0XHRjb2xvcjogJGNvbG9yLS13aGl0ZTtcclxuXHRcdH1cclxuXHJcblxyXG5cdFx0c3ZnIHtcclxuXHRcdFx0d2lkdGg6IDI0cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLmlzLXN0eWxlLW91dGxpbmUge1xyXG5cdFx0LndwLWJsb2NrLWJ1dHRvbl9fbGluayB7XHJcblx0XHRcdGNvbG9yOiAkY29sb3ItZGVuaW07XHJcblxyXG5cdFx0XHRib3JkZXItY29sb3I6ICRjb2xvci1kZW5pbTtcclxuXHJcblx0XHRcdHRyYW5zaXRpb246ICR0cmFuc2l0aW9uO1xyXG5cclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0Y29sb3I6ICRzZWNvbmRhcnk7XHJcblxyXG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJHNlY29uZGFyeTtcclxuXHJcblx0XHRcdFx0c3ZnIHtcclxuXHRcdFx0XHRcdHBhdGgge1xyXG5cdFx0XHRcdFx0XHRmaWxsOiAkc2Vjb25kYXJ5O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0c3ZnIHtcclxuXHRcdFx0XHR3aWR0aDogMTJweDtcclxuXHJcblx0XHRcdFx0bWFyZ2luLXRvcDogcmVtKC0yKTtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogcmVtKDE4KTtcclxuXHJcblx0XHRcdFx0cGF0aCB7XHJcblx0XHRcdFx0XHRmaWxsOiAkcHJpbWFyeTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHNwYW46bnRoLW9mLXR5cGUoMikge1xyXG5cdFx0XHRcdGNvbG9yOiAkc2Vjb25kYXJ5O1xyXG5cclxuXHRcdFx0XHRzdmcge1xyXG5cdFx0XHRcdFx0cGF0aCB7XHJcblx0XHRcdFx0XHRcdGZpbGw6ICRzZWNvbmRhcnk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdCYuaXMtc3R5bGUtZmlsbGVkLXdoaXRlIHtcclxuXHRcdC53cC1ibG9jay1idXR0b25fX2xpbmsge1xyXG5cdFx0XHRjb2xvcjogJHByaW1hcnk7XHJcblxyXG5cdFx0XHRib3JkZXItY29sb3I6ICRjb2xvci0td2hpdGU7XHJcblx0XHRcdGJhY2tncm91bmQ6ICRjb2xvci0td2hpdGU7XHJcblxyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRjb2xvcjogJGNvbG9yLS13aGl0ZTtcclxuXHJcblx0XHRcdFx0YmFja2dyb3VuZDogJHNlY29uZGFyeTtcclxuXHRcdFx0fVxyXG5cdFx0XHRzdmcge1xyXG5cdFx0XHRcdHdpZHRoOiAxMnB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdCYuYmlnZ2VyIHtcclxuXHRcdC53cC1ibG9jay1idXR0b25fX2xpbmsge1xyXG5cdFx0XHRwYWRkaW5nLXRvcDogcmVtKDEyKTtcclxuXHRcdFx0cGFkZGluZy1yaWdodDogcmVtKDIwKTtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206IHJlbSgxMik7XHJcblx0XHRcdHBhZGRpbmctbGVmdDogcmVtKDIwKTtcclxuXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPj1tZFwiKSB7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDogcmVtKDQwKTtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IHJlbSg0MCk7XHJcblxyXG5cdFx0XHRcdGZvbnQtc2l6ZTogcmVtKDIwKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Jl9fYXJyb3cge1xyXG5cdFx0LndwLWJsb2NrLWJ1dHRvbl9fbGluayB7XHJcblx0XHRcdHRleHQtYWxpZ246IGxlZnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQud3AtYmxvY2stYnV0dG9uX19saW5rOmhvdmVyIHtcclxuXHRcdHNwYW46bnRoLW9mLXR5cGUoMikge1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwKSAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LnN3YXAtZWZmZWN0X19zcGFuLXdyYXBwZXIge1xyXG5cdFx0ZGlzcGxheTogZmxleDtcclxuXHRcdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuXHJcblx0XHRzcGFuOm50aC1vZi10eXBlKDIpIHtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTUwJSk7XHJcblx0XHR9XHJcblxyXG5cdFx0c3ZnIHtcclxuXHRcdFx0bWluLXdpZHRoOiByZW0oMjQpO1xyXG5cdFx0XHRtaW4taGVpZ2h0OiByZW0oMTIpO1xyXG5cclxuXHRcdFx0bWFyZ2luLWxlZnQ6IHJlbSgxOCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uc3dhcC1lZmZlY3QsXHJcbi5pcy1zdHlsZS1zd2FwLWVmZmVjdC1hcnJvdyB7XHJcblx0LnN3YXAtZWZmZWN0X19saW5rLFxyXG5cdC53cC1ibG9jay1idXR0b25fX2xpbmsge1xyXG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0LnN3YXAtZWZmZWN0X19zcGFuLXdyYXBwZXIge1xyXG5cdFx0XHRcdHNwYW46Zmlyc3Qtb2YtdHlwZSB7XHJcblx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MCUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRzcGFuOm50aC1vZi10eXBlKDIpIHtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Jl9fc3Bhbi13cmFwcGVyIHtcclxuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHJcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuXHRcdHNwYW4ge1xyXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cclxuXHRcdFx0dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNCwwLC4yLDEpO1xyXG5cdFx0XHR0cmFuc2l0aW9uLWR1cmF0aW9uOiAuNXM7XHJcblx0XHRcdHRyYW5zaXRpb24tcHJvcGVydHk6IGFsbDtcclxuXHRcdH1cclxuXHRcdHNwYW46bnRoLW9mLXR5cGUoMikge1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHRvcDogMDtcclxuXHRcdFx0bGVmdDogNTAlO1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLDE1MCUpO1xyXG5cclxuXHRcdFx0Y29sb3I6ICRjb2xvci0td2hpdGU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uc3dhcC1lZmZlY3QtYXJyb3cge1xyXG5cdCYtLWRvd24ge1xyXG5cdFx0LnN3YXAtZWZmZWN0X19zcGFuLXdyYXBwZXIgc3ZnIHtcclxuXHRcdFx0bWluLXdpZHRoOiAxMnB4O1xyXG5cclxuXHRcdFx0bWFyZ2luLXRvcDogcmVtKC0yKTtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IHJlbSgxOCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8vIFZBUklBQkxFU1xyXG5cclxuLy8gQ29udGFpbmVyIHdpZHRoIHZhcmlhYmxlc1xyXG4kY29udGFpbmVyLW1vYmlsZTogNzIwcHg7XHJcbiRjb250YWluZXItbGc6IDk2MHB4O1xyXG4kY29udGFpbmVyLXhsOiAxMTE4cHg7XHJcbiRjb250YWluZXIteHhsOiAxMjEwcHg7XHJcbiRjb250YWluZXItcGFkZGluZzogMTU7IC8vcHhcclxuXHJcbi8vIEJsb2NrIFNwYWNpbmdzXHJcbiRzcGFjaW5nLW1vYmlsZTogNTA7XHJcbiRzcGFjaW5nOiA5NDtcclxuJG1hcmdpbi1tb2JpbGU6IDM0O1xyXG4kbWFyZ2luOiAzNDtcclxuXHJcbi8vIE1lZGlhIFNwYWNpbmdcclxuJG1lZGlhLW1hcmdpbjogMjA7IC8vcHhcclxuXHJcbi8vIFRyYW5zaXRpb25zXHJcbiRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ6IDEuMnM7XHJcbiR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4yMiwgMSwgLjM2LCAxKTtcclxuJHRyYW5zaXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQgJHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uO1xyXG5cclxuLy8gT3V0bGluZVxyXG4kb3V0bGluZTogMnB4IHNvbGlkIGJsdWU7XHJcblxyXG4vL2ZvbnRzXHJcbiRmb250LWJhc2U6IFwibXlyaWFkLXByb1wiLCBzYW5zLXNlcmlmOy8vJ09wZW4gc2FucycsIHNhbnMtc2VyaWY7XHJcbiRmb250LXNpemUtYmFzZTogMTY7XHJcbiRsaW5lLWhlaWdodC1iYXNlOiAyNDtcclxuJGZvbnQtc2l6ZS1tb2JpbGU6IDE0O1xyXG4kbGluZS1oZWlnaHQtbW9iaWxlOiAyNjtcclxuJGZvbnQtaGVhZGluZ3M6IFwibmV1cm9wb2wteC1saWdodFwiLCBzYW5zLXNlcmlmOy8vJ0dlb21ldHJpYScsIHNhbnMtc2VyaWY7XHJcblxyXG4vLyBDT0xPUlNcclxuJGNvbG9yLS1ibGFjazogIzAwMDAwMDtcclxuJGNvbG9yLS13aGl0ZTogI2ZmZmZmZjtcclxuXHJcbi8vIFRoZW1lIENvbG9yc1xyXG4kY29sb3ItMTogIzNjN2VhMTtcclxuJGNvbG9yLTI6ICNlZDRmMzM7XHJcbiRjb2xvci0zOiAjZmNiNTE2O1xyXG4kY29sb3ItNDogIzAwYTU5ODtcclxuJGNvbG9yLXBvcmNlbGFpbjogI2Y1ZjZmNztcclxuJGNvbG9yLWNhdHNraWxsLXdoaXRlOiAjZjVmOGZhO1xyXG4kY29sb3ItcG90LXBvdXJyaTogI2U3ZWFlZDtcclxuJGNvbG9yLWF0aGVucy1ncmF5OiAjZmFmYmZjO1xyXG4kY29sb3ItYXRoZW5zLWRhcmtlci1ncmF5OiAjZWFlZGYwO1xyXG4kY29sb3ItY2FkZXQtYmx1ZTogI2E3YWViYztcclxuJGNvbG9yLWNvcm5mbG93ZXItYmx1ZTogIzY5YWZkYztcclxuJGNvbG9yLWRlbmltOiAjMWQ3MmI5O1xyXG4kY29sb3ItbWFyaW5lcjogIzFlNzViYztcclxuJGNvbG9yLWlyb246ICNkNGQ5ZGU7XHJcbiRjb2xvci1kb3ZlLWdyYXk6ICM3MTcxNzE7XHJcbiRjb2xvci10dW5kb3JhOiAjNDQ0NDQ0O1xyXG4kY29sb3ItbGltZWQtc3BydWNlOiAjMzg0NTRmO1xyXG4kY29sb3ItYmxhY2stcGVhcmw6ICMwNTE1MjI7XHJcbiRjb2xvci1yb3NlOiAjZmQxMDY3O1xyXG4kY29sb3Itc21hcnQta29kYTogI2ZmM2MwMDtcclxuJGNvbG9yLWtvZGEtYm90czogIzAyMzI2MjtcclxuJGNvbG9yLWN1dDogIzAwYzRhZTtcclxuJGNvbG9yLWluc2lnaHRsYW5kOiAjMmRhYmJmO1xyXG4kY29sb3ItYm9vc3Q6ICM1NTQ2ZmY7XHJcbiRncmFkaWVudC1jb2xvcnM6IChcclxuXHQnc21hcnQta29kYSc6XHRcdGxpbmVhci1ncmFkaWVudCgxNzVkZWcsICNmZjNjMDAgMCUsICNmZDEwNjcgMTAwJSksXHJcblx0J2tvZGEtYm90cyc6XHRcdGxpbmVhci1ncmFkaWVudCgxNzVkZWcsICMwMTMyNjMgMCUsICMwMjJlNTggMTAwJSksXHJcblx0J2N1dDJjb2RlJzpcdCBcdFx0bGluZWFyLWdyYWRpZW50KC0xZGVnLCAjMDBkZTk1IDAlLCAjMDBjNGFlIDEwMCUpLFxyXG4pO1xyXG4kYmFja2dyb3VuZC1jb2xvcnM6IChcclxuXHQnaW5zaWdodGxhbmQnOlx0XHRcdCRjb2xvci1pbnNpZ2h0bGFuZCxcclxuXHQnYm9vc3QnOlx0XHRcdFx0JGNvbG9yLWJvb3N0LFxyXG4pO1xyXG5cclxuLy9CYWNrcm91bmQgbGluZWFyIGdyYWRpZW50XHJcbiRiYWNrZ3JvdW5kLWNvbG9yLWxpbmVhcjogbGluZWFyLWdyYWRpZW50KDIyNWRlZywgIzM2YThlMSAwJSwgIzFjNzBiOCAxMDAlKTtcclxuJGVycm9yLWNvbG9yOiAjZDgxMzEzO1xyXG5cclxuLy9cclxuJHByaW1hcnk6ICRjb2xvci1kZW5pbTtcclxuJHNlY29uZGFyeTogJGNvbG9yLWJsYWNrLXBlYXJsO1xyXG4kYm9yZGVyLWNvbG9yOiAkY29sb3ItaXJvbjtcclxuXHJcbi8vIFRleHRcclxuJHRleHQtY29sb3ItYmFzZTogJGNvbG9yLXR1bmRvcmE7XHJcbiR0ZXh0LWNvbG9yLWhlYWRpbmc6ICRjb2xvci1ibGFjay1wZWFybDtcclxuJHRleHQtbGlnaHQ6ICRjb2xvci0td2hpdGU7XHJcbiRsaW5rLWNvbG9yOiAkcHJpbWFyeTtcclxuJGxpbmstaG92ZXItY29sb3I6ICRzZWNvbmRhcnk7XHJcblxyXG4vL1xyXG4kY29sb3ItYmc6ICNmZmZmZmY7XHJcbiRvdmVybGF5LWJhY2tncm91bmQtY29sb3I6IHJnYmEoNSwgMjEsIDM0LCAuNCk7XHJcblxyXG4vLyBCUkVBS1BPSU5UU1xyXG4kYnJlYWtwb2ludHM6ICh4czogMzkwcHgsIHNtOiA1NzZweCwgbWQ6IDc2N3B4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQ0MHB4LCB4eHhsOiAxODAwcHgsIG1heDogMTkyMHB4KTtcclxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXHJcbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcclxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXHJcbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XHJcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcclxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcclxuLy9cclxuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3NcclxuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40LjlcclxuLy9cclxuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXHJcbi8vXHJcbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxyXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXHJcbi8vXHJcbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcclxuXHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxyXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcclxuLy8vXHJcbiRicmVha3BvaW50czogKFxyXG5cdCdwaG9uZSc6IDMyMHB4LFxyXG5cdCd0YWJsZXQnOiA3NjhweCxcclxuXHQnZGVza3RvcCc6IDEwMjRweFxyXG4pICFkZWZhdWx0O1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxyXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxyXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXHJcbi8vLyAgKTtcclxuLy8vXHJcbiRtZWRpYS1leHByZXNzaW9uczogKFxyXG5cdCdzY3JlZW4nOiAnc2NyZWVuJyxcclxuXHQncHJpbnQnOiAncHJpbnQnLFxyXG5cdCdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXHJcblx0J2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxyXG5cdCdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXHJcblx0J3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcclxuXHQncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2BcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxyXG4vLy9cclxuJHVuaXQtaW50ZXJ2YWxzOiAoXHJcblx0J3B4JzogMSxcclxuXHQnZW0nOiAwLjAxLFxyXG5cdCdyZW0nOiAwLjEsXHJcblx0Jyc6IDBcclxuKSAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXHJcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxyXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIC5mb28ge1xyXG4vLy8gICAgY29sb3I6IHRvbWF0bztcclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0JztcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBObyBvdXRwdXQgKi9cclxuLy8vXHJcbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcclxuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgIC5mb28ge1xyXG4vLy8gICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xyXG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcclxuXHJcbi8vLy9cclxuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vLyBAYWNjZXNzIHByaXZhdGVcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcclxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXHJcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XHJcblx0XHRAZXJyb3IgJG1lc3NhZ2U7XHJcblx0fSBAZWxzZSB7XHJcblx0XHRAd2FybiAkbWVzc2FnZTtcclxuXHRcdCRfOiBub29wKCk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRtZXNzYWdlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XHJcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cclxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cclxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcclxuLy8vXHJcbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcclxuXHRAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXHJcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxyXG4vLy9cclxuQGZ1bmN0aW9uIG5vb3AoKSB7fVxyXG5cclxuLy8vXHJcbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxyXG4vLy9cclxuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcclxuXHQkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcclxuXHJcblx0QGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XHJcblx0XHRAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cclxuXHR9XHJcblxyXG5cdEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xyXG5cdFx0QGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0JG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcclxuXHRcdFx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0XHRcdCR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0XHRcdEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxyXG5cdFx0XHRcdFx0KCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XHJcblx0XHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XHJcblx0XHRcdEByZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFBhcnNpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcclxuXHRAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcclxuXHRcdEBpZiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdFx0XHRAcmV0dXJuICRvcGVyYXRvcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cclxuXHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXHJcblx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdCRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XHJcblx0JGRpbWVuc2lvbjogJ3dpZHRoJztcclxuXHJcblx0QGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XHJcblx0XHQkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJGRpbWVuc2lvbjtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBwcmVmaXggYmFzZWQgb24gYW4gb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKSB7XHJcblx0QHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCB2YWx1ZSBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xyXG5cdCRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cdCR2YWx1ZTogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAkb3BlcmF0b3ItaW5kZXggKyBzdHItbGVuZ3RoKCRvcGVyYXRvcikpO1xyXG5cclxuXHRAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcclxuXHRcdCR2YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICR2YWx1ZSk7XHJcblx0fSBAZWxzZSB7XHJcblx0XHQkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xyXG5cdH1cclxuXHJcblx0JGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcclxuXHJcblx0QGlmIG5vdCAkaW50ZXJ2YWwge1xyXG5cdFx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdFx0Ly8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcclxuXHRcdC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxyXG5cdFx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHRcdC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cclxuXHRcdCRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcclxuXHR9XHJcblxyXG5cdEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xyXG5cdH0gQGVsc2UgaWYgJG9wZXJhdG9yID09ICc8JyB7XHJcblx0XHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBQYXJzZSBhbiBleHByZXNzaW9uIHRvIHJldHVybiBhIHZhbGlkIG1lZGlhLXF1ZXJ5IGV4cHJlc3Npb25cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XHJcbi8vL1xyXG5AZnVuY3Rpb24gcGFyc2UtZXhwcmVzc2lvbigkZXhwcmVzc2lvbikge1xyXG5cdC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcclxuXHQvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxyXG5cdEBpZiBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKSB7XHJcblx0XHRAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XHJcblx0fVxyXG5cclxuXHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcclxuXHQkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XHJcblx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHJcblx0QHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XHJcbn1cclxuXHJcbi8vL1xyXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xyXG4vLy9cclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XHJcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxyXG4vLy9cclxuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcclxuXHRAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XHJcblx0XHRAcmV0dXJuICgpO1xyXG5cdH1cclxuXHJcblx0JHJlc3VsdDogKCk7XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAkc3RhcnQgdGhyb3VnaCAkZW5kIHtcclxuXHRcdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuICRyZXN1bHQ7XHJcbn1cclxuXHJcbi8vLy9cclxuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn1cclxuLy8vXHJcbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XHJcblx0QGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XHJcblx0XHRAcmV0dXJuICR2YWx1ZTtcclxuXHR9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XHJcblx0XHQkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xyXG5cdH1cclxuXHJcblx0JGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XHJcblx0JHJlc3VsdDogMDtcclxuXHQkZGlnaXRzOiAwO1xyXG5cdCRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcclxuXHQkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XHJcblxyXG5cdC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxyXG5cdEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcclxuXHRcdCR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XHJcblx0fVxyXG5cclxuXHRAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XHJcblx0XHQkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xyXG5cclxuXHRcdEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcclxuXHRcdFx0QHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcclxuXHRcdH1cclxuXHJcblx0XHRAaWYgJGNoYXJhY3RlciA9PSAnLicge1xyXG5cdFx0XHQkZGlnaXRzOiAxO1xyXG5cdFx0fSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xyXG5cdFx0XHQkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcclxuXHRcdH0gQGVsc2Uge1xyXG5cdFx0XHQkZGlnaXRzOiAkZGlnaXRzICogMTA7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAcmV0dXJuIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXHJcbi8vL1xyXG5AZnVuY3Rpb24gdG8tbGVuZ3RoKCR2YWx1ZSwgJHVuaXQpIHtcclxuXHQkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xyXG5cclxuXHRAaWYgbm90IGluZGV4KG1hcC1rZXlzKCR1bml0cyksICR1bml0KSB7XHJcblx0XHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcclxufVxyXG5cclxuLy8vXHJcbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2ZcclxuLy8vIHRoZSBjYWxsLiBJdCBpcyBoZWxwZnVsIHdoZW4gaGF2aW5nIGEgY29tcG9uZW50IG5lZWRpbmcgYW4gZXh0ZW5kZWRcclxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxyXG4vLy8gZm9yIGluc3RhbmNlLlxyXG4vLy9cclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy9cclxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xyXG5cdC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XHJcblx0JGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xyXG5cclxuXHQvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcclxuXHJcblx0QGNvbnRlbnQ7XHJcblxyXG5cdC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cclxuXHQkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcclxuXHQkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcclxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcclxuLy8vIEBhY2Nlc3MgcHVibGljXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cclxuLy8vXHJcbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xyXG5cdEBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPT0gMCkgb3JcclxuXHRcdFx0KG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xyXG5cdFx0QG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xyXG5cdFx0XHQvLyBSZWN1cnNpdmUgY2FsbFxyXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcclxuXHRcdFx0XHRAY29udGVudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXX0= *\/\n<\/style>\t<div class=\"wp-block-button wp-block-button--template is-style-normal swap-effect swap-effect-arrow\" data-aos=\"fade-up\">\r\n\t\t<a class=\"wp-block-button__link swap-effect__link\" href=\"https:\/\/cyberhexe.ai\/fr\/nous-contacter\/\" target=\"_self\">\r\n\t\t\t<div class=\"swap-effect__span-wrapper\">\r\n\t\t\t\t<span>Contactez-nous<svg version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\"\r\n\t viewbox=\"0 0 24 12\" style=\"enable-background:new 0 0 24 12;\" xml:space=\"preserve\">\r\n<style type=\"text\/css\">\r\n\t.st0{fill:#FFFFFF;}\r\n<\/style>\r\n<path class=\"st0\" d=\"M0.3,7V5h22v2H0.3z\"\/>\r\n<path class=\"st0\" d=\"M16.9,1.8l1.4-1.4L24,6l-1.4,1.4L16.9,1.8z\"\/>\r\n<path class=\"st0\" d=\"M18.3,11.7l-1.4-1.4l5.7-5.7L24,6L18.3,11.7z\"\/>\r\n<\/svg><\/span>\r\n\t\t\t\t<span aria-hidden=\"true\">Contactez-nous<svg version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\"\r\n\t viewbox=\"0 0 24 12\" style=\"enable-background:new 0 0 24 12;\" xml:space=\"preserve\">\r\n<style type=\"text\/css\">\r\n\t.st0{fill:#FFFFFF;}\r\n<\/style>\r\n<path class=\"st0\" d=\"M0.3,7V5h22v2H0.3z\"\/>\r\n<path class=\"st0\" d=\"M16.9,1.8l1.4-1.4L24,6l-1.4,1.4L16.9,1.8z\"\/>\r\n<path class=\"st0\" d=\"M18.3,11.7l-1.4-1.4l5.7-5.7L24,6L18.3,11.7z\"\/>\r\n<\/svg><\/span>\r\n\t\t\t<\/div>\r\n\t\t<\/a>\r\n\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/section>\r\n\n\n<section class=\"cta has-text-align-left d-flex is-content-justification-center-center\" style=\"background-color: #f5f8fa;\"  data-aos=\"fade-up\">\r\n\t<style>.cta {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  min-height: 25rem;\n  padding: 3.125rem 0;\n}\n@media (min-width: 767px) {\n  .cta {\n    min-height: 31.25rem;\n    padding: 6.25rem 0;\n  }\n}\n@media (min-width: 767px) {\n  .cta + .news {\n    margin-top: -5.625rem;\n  }\n}\n.cta__box {\n  display: flex;\n  flex-direction: column;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: center;\n  padding: 1.875rem 2.5rem;\n  background: #fff;\n}\n@media (min-width: 992px) {\n  .cta__box {\n    flex-direction: row;\n    justify-content: space-between;\n    min-height: 21.875rem;\n    padding: 3.125rem 4.375rem;\n  }\n}\n.cta__title {\n  flex: 1 100%;\n  padding: 0 1.25rem;\n  text-align: center;\n  color: #1e75bc;\n}\n@media (min-width: 992px) {\n  .cta__title {\n    flex: 1 65%;\n    max-width: 37.5rem;\n    margin-bottom: 0;\n    text-align: left;\n    font-size: 4.5rem;\n    line-height: 1.25;\n  }\n}\n.cta__content {\n  flex: 1 100%;\n  padding: 0 1.5rem;\n  text-align: center;\n}\n@media (min-width: 992px) {\n  .cta__content {\n    flex: 0 0 35%;\n    text-align: right;\n  }\n}\n.cta__description {\n  color: #444444;\n  font-size: 1.125rem;\n  line-height: 1.5;\n}\n@media (min-width: 992px) {\n  .cta__description {\n    max-width: 18.75rem;\n    margin-right: 0;\n  }\n}\n.cta .wp-block-button {\n  margin-top: 2.3125rem;\n}\n\/*# sourceMappingURL=data:application\/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYi9hcHAvdGhlbWVzL2hleGUvcGFydHMvZ3V0ZW5iZXJnL2FjZi1jdGEvc3R5bGUuc2NzcyIsIndlYi9hcHAvdGhlbWVzL2hleGUvYXNzZXRzL2Nzcy9fX3NldHRpbmdzL19pbmNsdWRlLW1lZGlhLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9oZXhlL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWIvYXBwL3RoZW1lcy9oZXhlL2Fzc2V0cy9jc3MvX19zZXR0aW5ncy9fbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7RUFDQztFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQ3VpQkM7RUQ3aUJGO0lBU0U7SUFDQTs7O0FDbWlCQTtFRGhpQkQ7SUFFRTs7O0FBSUY7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFFQTs7QUNpaEJBO0VEMWhCRDtJQVlFO0lBQ0E7SUFFQTtJQUNBOzs7QUFJRjtFQUNDO0VBRUE7RUFFQTtFQUNBLE9FSWM7O0FENGZkO0VEdGdCRDtJQVNFO0lBRUE7SUFFQTtJQUVBO0lHMEJEO0lBakNDOzs7QUhhRjtFQUNDO0VBRUE7RUFFQTs7QUM0ZUE7RURqZkQ7SUFRRTtJQUVBOzs7QUFJRjtFQUNDLE9FdkJjO0VDNEJkO0VBakNDOztBRjhmRDtFRG5lRDtJQUtFO0lBRUE7OztBQUlGO0VBQ0MiLCJmaWxlIjoid2ViL2FwcC90aGVtZXMvaGV4ZS9wYXJ0cy9ndXRlbmJlcmcvYWNmLWN0YS9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdfX3NldHRpbmdzL2luaXQnO1xyXG5cclxuLmN0YSB7XHJcblx0ZGlzcGxheTogZmxleDtcclxuXHRhbGlnbi1pdGVtczogY2VudGVyO1xyXG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cclxuXHRtaW4taGVpZ2h0OiByZW0oNDAwKTtcclxuXHRwYWRkaW5nOiByZW0oNTApIDA7XHJcblxyXG5cdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0bWluLWhlaWdodDogcmVtKDUwMCk7XHJcblx0XHRwYWRkaW5nOiByZW0oMTAwKSAwO1xyXG5cdH1cclxuXHJcblx0JiArIC5uZXdzIHtcclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0XHRtYXJnaW4tdG9wOiByZW0oLTkwKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCZfX2JveCB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuXHRcdGZsZXgtd3JhcDogd3JhcDtcclxuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHJcblx0XHRwYWRkaW5nOiByZW0oMzApIHJlbSg0MCk7XHJcblxyXG5cdFx0YmFja2dyb3VuZDogI2ZmZjtcclxuXHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdFx0ZmxleC1kaXJlY3Rpb246IHJvdztcclxuXHRcdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG5cclxuXHRcdFx0bWluLWhlaWdodDogcmVtKDM1MCk7XHJcblx0XHRcdHBhZGRpbmc6IHJlbSg1MCkgcmVtKDcwKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCZfX3RpdGxlIHtcclxuXHRcdGZsZXg6IDEgMTAwJTtcclxuXHJcblx0XHRwYWRkaW5nOiAwIHJlbSgyMCk7XHJcblxyXG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cdFx0Y29sb3I6ICRjb2xvci1tYXJpbmVyO1xyXG5cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRmbGV4OiAxIDY1JTtcclxuXHJcblx0XHRcdG1heC13aWR0aDogcmVtKDYwMCk7XHJcblxyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cclxuXHRcdFx0dGV4dC1hbGlnbjogbGVmdDtcclxuXHJcblx0XHRcdEBpbmNsdWRlIGZvbnQoNzIsOTApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Jl9fY29udGVudCB7XHJcblx0XHRmbGV4OiAxIDEwMCU7XHJcblxyXG5cdFx0cGFkZGluZzogMCByZW0oMjQpO1xyXG5cclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPj1sZycpIHtcclxuXHRcdFx0ZmxleDogMCAwIDM1JTtcclxuXHJcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Jl9fZGVzY3JpcHRpb24ge1xyXG5cdFx0Y29sb3I6ICRjb2xvci10dW5kb3JhO1xyXG5cclxuXHRcdEBpbmNsdWRlIGZvbnQoMTgsIDI3KTtcclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+PWxnJykge1xyXG5cdFx0XHRtYXgtd2lkdGg6IHJlbSgzMDApO1xyXG5cclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LndwLWJsb2NrLWJ1dHRvbiB7XHJcblx0XHRtYXJnaW4tdG9wOiByZW0oMzcpO1xyXG5cdH1cclxufVxyXG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cclxuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxyXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cclxuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcclxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxyXG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxyXG4vL1xyXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xyXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxyXG4vL1xyXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cclxuLy9cclxuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXHJcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcclxuLy9cclxuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxyXG5cclxuXHJcbi8vLy9cclxuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXHJcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xyXG4vLy9cclxuJGJyZWFrcG9pbnRzOiAoXHJcblx0J3Bob25lJzogMzIwcHgsXHJcblx0J3RhYmxldCc6IDc2OHB4LFxyXG5cdCdkZXNrdG9wJzogMTAyNHB4XHJcbikgIWRlZmF1bHQ7XHJcblxyXG5cclxuLy8vXHJcbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXHJcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXHJcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXHJcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcclxuLy8vICApO1xyXG4vLy9cclxuJG1lZGlhLWV4cHJlc3Npb25zOiAoXHJcblx0J3NjcmVlbic6ICdzY3JlZW4nLFxyXG5cdCdwcmludCc6ICdwcmludCcsXHJcblx0J2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcclxuXHQnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXHJcblx0J3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcclxuXHQncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxyXG5cdCdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcclxuKSAhZGVmYXVsdDtcclxuXHJcblxyXG4vLy9cclxuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cclxuLy8vXHJcbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xyXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XHJcbi8vL1xyXG4kdW5pdC1pbnRlcnZhbHM6IChcclxuXHQncHgnOiAxLFxyXG5cdCdlbSc6IDAuMDEsXHJcblx0J3JlbSc6IDAuMSxcclxuXHQnJzogMFxyXG4pICFkZWZhdWx0O1xyXG5cclxuLy8vXHJcbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcclxuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xyXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAuZm9vIHtcclxuLy8vICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgfVxyXG4vLy9cclxuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XHJcblxyXG4vLy9cclxuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXHJcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vICAvKiBHZW5lcmF0ZXM6ICovXHJcbi8vLyAgLmZvbyB7XHJcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XHJcbi8vLyAgICAuZm9vIHtcclxuLy8vICAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xyXG4vLy9cclxuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcclxuXHJcbi8vL1xyXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xyXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcclxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcclxuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cclxuLy8vICAgLmZvbyB7XHJcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXHJcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xyXG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XHJcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyAgLyogTm8gb3V0cHV0ICovXHJcbi8vL1xyXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xyXG5cclxuLy8vL1xyXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXHJcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcclxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxyXG4vLy8vXHJcblxyXG5cclxuLy8vXHJcbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxyXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcclxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XHJcblx0QGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcclxuXHRcdEBlcnJvciAkbWVzc2FnZTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdEB3YXJuICRtZXNzYWdlO1xyXG5cdFx0JF86IG5vb3AoKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJG1lc3NhZ2U7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcclxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxyXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxyXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xyXG4vLy9cclxuQG1peGluIGxvZygkbWVzc2FnZSkge1xyXG5cdEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcclxuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXHJcbi8vL1xyXG5AZnVuY3Rpb24gbm9vcCgpIHt9XHJcblxyXG4vLy9cclxuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XHJcbi8vL1xyXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xyXG5cdCRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xyXG5cclxuXHRAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcclxuXHRcdEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxyXG5cdH1cclxuXHJcblx0QGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XHJcblx0XHRAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xyXG5cdFx0XHQkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xyXG5cdFx0XHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHRcdFx0JHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRcdFx0QGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXHJcblx0XHRcdFx0XHQoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcclxuXHRcdFx0XHRAcmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcclxuXHRcdFx0QHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gUGFyc2luZyBlbmdpbmVcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xyXG5cdEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xyXG5cdFx0QGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0XHRcdEByZXR1cm4gJG9wZXJhdG9yO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xyXG5cdC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXHJcblx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcblx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcclxuXHQvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXHJcblx0JF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXHJcbi8vL1xyXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcclxuXHQkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcclxuXHQkZGltZW5zaW9uOiAnd2lkdGgnO1xyXG5cclxuXHRAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcclxuXHRcdCRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkZGltZW5zaW9uO1xyXG59XHJcblxyXG5cclxuLy8vXHJcbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvclxyXG4vLy9cclxuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxyXG4vLy9cclxuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcclxuXHRAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcclxufVxyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3JcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxyXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge051bWJlcn0gLSBBIG51bWVyaWMgdmFsdWVcclxuLy8vXHJcbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XHJcblx0JG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XHJcblx0JHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XHJcblxyXG5cdEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xyXG5cdFx0JHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcclxuXHR9IEBlbHNlIHtcclxuXHRcdCR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHQkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xyXG5cclxuXHRAaWYgbm90ICRpbnRlcnZhbCB7XHJcblx0XHQvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXHJcblx0XHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxyXG5cdFx0Ly8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXHJcblx0XHQvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxyXG5cdFx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxyXG5cdFx0JF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xyXG5cdH1cclxuXHJcblx0QGlmICRvcGVyYXRvciA9PSAnPicge1xyXG5cdFx0JHZhbHVlOiAkdmFsdWUgKyAkaW50ZXJ2YWw7XHJcblx0fSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcclxuXHRcdCR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkdmFsdWU7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxyXG4vLy9cclxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gcGFyc2VcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcclxuLy8vXHJcbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XHJcblx0Ly8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxyXG5cdC8vIHRoZW4gdGhlcmUgaXMgbm8gbmVlZCB0byBnbyBhbnkgZnVydGhlciwganVzdCByZXR1cm4gdGhlIHZhbHVlXHJcblx0QGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcclxuXHRcdEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcclxuXHR9XHJcblxyXG5cdCRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xyXG5cdCRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcclxuXHQkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcclxuXHQkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xyXG5cclxuXHRAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcclxufVxyXG5cclxuLy8vXHJcbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXHJcbi8vL1xyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2VcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcclxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxyXG4vLy9cclxuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XHJcbi8vL1xyXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xyXG5cdEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcclxuXHRcdEByZXR1cm4gKCk7XHJcblx0fVxyXG5cclxuXHQkcmVzdWx0OiAoKTtcclxuXHJcblx0QGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xyXG5cdFx0JHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcclxuXHR9XHJcblxyXG5cdEByZXR1cm4gJHJlc3VsdDtcclxufVxyXG5cclxuLy8vL1xyXG4vLy8gU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxyXG4vLy8gQGFjY2VzcyBwcml2YXRlXHJcbi8vLy9cclxuXHJcblxyXG4vLy9cclxuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcclxuLy8vXHJcbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXHJcbi8vL1xyXG4vLy8gQHJldHVybiB7TnVtYmVyfVxyXG4vLy9cclxuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcclxuXHRAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcclxuXHRcdEByZXR1cm4gJHZhbHVlO1xyXG5cdH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcclxuXHRcdCRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XHJcblx0fVxyXG5cclxuXHQkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcclxuXHQkcmVzdWx0OiAwO1xyXG5cdCRkaWdpdHM6IDA7XHJcblx0JG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xyXG5cdCRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcclxuXHJcblx0Ly8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXHJcblx0QGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xyXG5cdFx0JHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcclxuXHR9XHJcblxyXG5cdEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcclxuXHRcdCRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsICRpLCAkaSk7XHJcblxyXG5cdFx0QGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xyXG5cdFx0XHRAcmV0dXJuIHRvLWxlbmd0aChpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KSwgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpKVxyXG5cdFx0fVxyXG5cclxuXHRcdEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XHJcblx0XHRcdCRkaWdpdHM6IDE7XHJcblx0XHR9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XHJcblx0XHRcdCRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xyXG5cdFx0fSBAZWxzZSB7XHJcblx0XHRcdCRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcclxuXHRcdFx0JHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XHJcbn1cclxuXHJcblxyXG4vLy9cclxuLy8vIEFkZCBgJHVuaXRgIHRvIGAkdmFsdWVgXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXHJcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHVuaXQgLSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHVuaXRcclxuLy8vXHJcbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcclxuLy8vXHJcbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xyXG5cdCR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XHJcblxyXG5cdEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcclxuXHRcdCRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xyXG5cdH1cclxuXHJcblx0QHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xyXG59XHJcblxyXG4vLy9cclxuLy8vIFRoaXMgbWl4aW4gYWltcyBhdCByZWRlZmluaW5nIHRoZSBjb25maWd1cmF0aW9uIGp1c3QgZm9yIHRoZSBzY29wZSBvZlxyXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxyXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXHJcbi8vLyBmb3IgaW5zdGFuY2UuXHJcbi8vL1xyXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXHJcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XHJcbi8vLyAgICAgICAvLyAuLi5cclxuLy8vICAgICAgfVxyXG4vLy8gICAgfVxyXG4vLy8gIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcclxuLy8vICAgIC5mb28ge1xyXG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcclxuLy8vICAgICAgIC8vIC4uLlxyXG4vLy8gICAgICB9XHJcbi8vLyAgICB9XHJcbi8vLyAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xyXG4vLy8gICAgLmZvbyB7XHJcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xyXG4vLy8gICAgICAgLy8gLi4uXHJcbi8vLyAgICAgIH1cclxuLy8vICAgIH1cclxuLy8vICB9XHJcbi8vL1xyXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XHJcblx0Ly8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcclxuXHQkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XHJcblxyXG5cdC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xyXG5cdCRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xyXG5cclxuXHRAY29udGVudDtcclxuXHJcblx0Ly8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxyXG5cdCRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xyXG5cdCRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xyXG59XHJcblxyXG4vLy8vXHJcbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxyXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xyXG4vLy8gQGFjY2VzcyBwdWJsaWNcclxuLy8vL1xyXG5cclxuXHJcbi8vL1xyXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcclxuLy8vXHJcbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xyXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcclxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXHJcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxyXG4vLy9cclxuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XHJcblx0QGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxyXG5cdFx0XHQobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XHJcblx0XHRAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XHJcblx0XHRcdC8vIFJlY3Vyc2l2ZSBjYWxsXHJcblx0XHRcdEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xyXG5cdFx0XHRcdEBjb250ZW50O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiIsIi8vIFZBUklBQkxFU1xyXG5cclxuLy8gQ29udGFpbmVyIHdpZHRoIHZhcmlhYmxlc1xyXG4kY29udGFpbmVyLW1vYmlsZTogNzIwcHg7XHJcbiRjb250YWluZXItbGc6IDk2MHB4O1xyXG4kY29udGFpbmVyLXhsOiAxMTE4cHg7XHJcbiRjb250YWluZXIteHhsOiAxMjEwcHg7XHJcbiRjb250YWluZXItcGFkZGluZzogMTU7IC8vcHhcclxuXHJcbi8vIEJsb2NrIFNwYWNpbmdzXHJcbiRzcGFjaW5nLW1vYmlsZTogNTA7XHJcbiRzcGFjaW5nOiA5NDtcclxuJG1hcmdpbi1tb2JpbGU6IDM0O1xyXG4kbWFyZ2luOiAzNDtcclxuXHJcbi8vIE1lZGlhIFNwYWNpbmdcclxuJG1lZGlhLW1hcmdpbjogMjA7IC8vcHhcclxuXHJcbi8vIFRyYW5zaXRpb25zXHJcbiRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQ6IDEuMnM7XHJcbiR0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4yMiwgMSwgLjM2LCAxKTtcclxuJHRyYW5zaXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb24tc3BlZWQgJHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uO1xyXG5cclxuLy8gT3V0bGluZVxyXG4kb3V0bGluZTogMnB4IHNvbGlkIGJsdWU7XHJcblxyXG4vL2ZvbnRzXHJcbiRmb250LWJhc2U6IFwibXlyaWFkLXByb1wiLCBzYW5zLXNlcmlmOy8vJ09wZW4gc2FucycsIHNhbnMtc2VyaWY7XHJcbiRmb250LXNpemUtYmFzZTogMTY7XHJcbiRsaW5lLWhlaWdodC1iYXNlOiAyNDtcclxuJGZvbnQtc2l6ZS1tb2JpbGU6IDE0O1xyXG4kbGluZS1oZWlnaHQtbW9iaWxlOiAyNjtcclxuJGZvbnQtaGVhZGluZ3M6IFwibmV1cm9wb2wteC1saWdodFwiLCBzYW5zLXNlcmlmOy8vJ0dlb21ldHJpYScsIHNhbnMtc2VyaWY7XHJcblxyXG4vLyBDT0xPUlNcclxuJGNvbG9yLS1ibGFjazogIzAwMDAwMDtcclxuJGNvbG9yLS13aGl0ZTogI2ZmZmZmZjtcclxuXHJcbi8vIFRoZW1lIENvbG9yc1xyXG4kY29sb3ItMTogIzNjN2VhMTtcclxuJGNvbG9yLTI6ICNlZDRmMzM7XHJcbiRjb2xvci0zOiAjZmNiNTE2O1xyXG4kY29sb3ItNDogIzAwYTU5ODtcclxuJGNvbG9yLXBvcmNlbGFpbjogI2Y1ZjZmNztcclxuJGNvbG9yLWNhdHNraWxsLXdoaXRlOiAjZjVmOGZhO1xyXG4kY29sb3ItcG90LXBvdXJyaTogI2U3ZWFlZDtcclxuJGNvbG9yLWF0aGVucy1ncmF5OiAjZmFmYmZjO1xyXG4kY29sb3ItYXRoZW5zLWRhcmtlci1ncmF5OiAjZWFlZGYwO1xyXG4kY29sb3ItY2FkZXQtYmx1ZTogI2E3YWViYztcclxuJGNvbG9yLWNvcm5mbG93ZXItYmx1ZTogIzY5YWZkYztcclxuJGNvbG9yLWRlbmltOiAjMWQ3MmI5O1xyXG4kY29sb3ItbWFyaW5lcjogIzFlNzViYztcclxuJGNvbG9yLWlyb246ICNkNGQ5ZGU7XHJcbiRjb2xvci1kb3ZlLWdyYXk6ICM3MTcxNzE7XHJcbiRjb2xvci10dW5kb3JhOiAjNDQ0NDQ0O1xyXG4kY29sb3ItbGltZWQtc3BydWNlOiAjMzg0NTRmO1xyXG4kY29sb3ItYmxhY2stcGVhcmw6ICMwNTE1MjI7XHJcbiRjb2xvci1yb3NlOiAjZmQxMDY3O1xyXG4kY29sb3Itc21hcnQta29kYTogI2ZmM2MwMDtcclxuJGNvbG9yLWtvZGEtYm90czogIzAyMzI2MjtcclxuJGNvbG9yLWN1dDogIzAwYzRhZTtcclxuJGNvbG9yLWluc2lnaHRsYW5kOiAjMmRhYmJmO1xyXG4kY29sb3ItYm9vc3Q6ICM1NTQ2ZmY7XHJcbiRncmFkaWVudC1jb2xvcnM6IChcclxuXHQnc21hcnQta29kYSc6XHRcdGxpbmVhci1ncmFkaWVudCgxNzVkZWcsICNmZjNjMDAgMCUsICNmZDEwNjcgMTAwJSksXHJcblx0J2tvZGEtYm90cyc6XHRcdGxpbmVhci1ncmFkaWVudCgxNzVkZWcsICMwMTMyNjMgMCUsICMwMjJlNTggMTAwJSksXHJcblx0J2N1dDJjb2RlJzpcdCBcdFx0bGluZWFyLWdyYWRpZW50KC0xZGVnLCAjMDBkZTk1IDAlLCAjMDBjNGFlIDEwMCUpLFxyXG4pO1xyXG4kYmFja2dyb3VuZC1jb2xvcnM6IChcclxuXHQnaW5zaWdodGxhbmQnOlx0XHRcdCRjb2xvci1pbnNpZ2h0bGFuZCxcclxuXHQnYm9vc3QnOlx0XHRcdFx0JGNvbG9yLWJvb3N0LFxyXG4pO1xyXG5cclxuLy9CYWNrcm91bmQgbGluZWFyIGdyYWRpZW50XHJcbiRiYWNrZ3JvdW5kLWNvbG9yLWxpbmVhcjogbGluZWFyLWdyYWRpZW50KDIyNWRlZywgIzM2YThlMSAwJSwgIzFjNzBiOCAxMDAlKTtcclxuJGVycm9yLWNvbG9yOiAjZDgxMzEzO1xyXG5cclxuLy9cclxuJHByaW1hcnk6ICRjb2xvci1kZW5pbTtcclxuJHNlY29uZGFyeTogJGNvbG9yLWJsYWNrLXBlYXJsO1xyXG4kYm9yZGVyLWNvbG9yOiAkY29sb3ItaXJvbjtcclxuXHJcbi8vIFRleHRcclxuJHRleHQtY29sb3ItYmFzZTogJGNvbG9yLXR1bmRvcmE7XHJcbiR0ZXh0LWNvbG9yLWhlYWRpbmc6ICRjb2xvci1ibGFjay1wZWFybDtcclxuJHRleHQtbGlnaHQ6ICRjb2xvci0td2hpdGU7XHJcbiRsaW5rLWNvbG9yOiAkcHJpbWFyeTtcclxuJGxpbmstaG92ZXItY29sb3I6ICRzZWNvbmRhcnk7XHJcblxyXG4vL1xyXG4kY29sb3ItYmc6ICNmZmZmZmY7XHJcbiRvdmVybGF5LWJhY2tncm91bmQtY29sb3I6IHJnYmEoNSwgMjEsIDM0LCAuNCk7XHJcblxyXG4vLyBCUkVBS1BPSU5UU1xyXG4kYnJlYWtwb2ludHM6ICh4czogMzkwcHgsIHNtOiA1NzZweCwgbWQ6IDc2N3B4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQ0MHB4LCB4eHhsOiAxODAwcHgsIG1heDogMTkyMHB4KTtcclxuIiwiLy9cclxuLy8gTUlYSU5TXHJcbi8vXHJcbkBtaXhpbiBjZiB7XHJcblx0JjpiZWZvcmUsXHJcblx0JjphZnRlciB7XHJcblx0XHRjb250ZW50OiAnJztcclxuXHJcblx0XHRkaXNwbGF5OiB0YWJsZTtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y2xlYXI6IGJvdGg7XHJcblx0fVxyXG59XHJcblxyXG5AZnVuY3Rpb24gdnctc2l6ZSgkcywgJHc6IDE0NDApIHtcclxuXHRAcmV0dXJuICgkcyAvICR3KSAqIDEwMCArIHZ3O1xyXG59XHJcblxyXG5AZnVuY3Rpb24gcmVtKCRzaXplVmFsdWU6IDE2KSB7XHJcblx0QHJldHVybiBjYWxjKCRzaXplVmFsdWUgLyAxNikgKyByZW07XHJcbn1cclxuXHJcbkBmdW5jdGlvbiByZWwoJHNpemUsICRyZWwpIHtcclxuXHRAcmV0dXJuIGNhbGMoJHNpemUgLyAkcmVsKTtcclxufVxyXG5cclxuQGZ1bmN0aW9uIGVtKCRzaXplLCAkcmVsKSB7XHJcblx0QHJldHVybiByZWwoJHNpemUsICRyZWwpICogMWVtO1xyXG59XHJcblxyXG5AbWl4aW4gb2JqZWN0LWZpdC1jb3ZlcigpIHtcclxuXHR3aWR0aDogMTAwJTtcclxuXHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHR0b3A6IDA7XHJcblx0bGVmdDogMDtcclxuXHJcblx0b2JqZWN0LWZpdDogY292ZXI7XHJcbn1cclxuXHJcbkBtaXhpbiBsaW5lLWhlaWdodCgkZm9udC1zaXplLCAkbGluZS1oZWlnaHQ6IDApIHtcclxuXHRAaWYgJGxpbmUtaGVpZ2h0ICE9IDAge1xyXG5cdFx0QGlmICRsaW5lLWhlaWdodCA8IDEwIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IGNhbGMoJGxpbmUtaGVpZ2h0IC8gJGZvbnQtc2l6ZSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZSwgJGxldHRlci1zcGFjaW5nOiAwKSB7XHJcblx0QGlmICRsZXR0ZXItc3BhY2luZyAhPSAwIHtcclxuXHRcdEBpZiAkbGV0dGVyLXNwYWNpbmcgPCAxMCB7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiByZW0oJGxldHRlci1zcGFjaW5nKTtcclxuXHRcdH1cclxuXHRcdEBlbHNlIHtcclxuXHRcdFx0bGV0dGVyLXNwYWNpbmc6IHJlbSgoJGZvbnQtc2l6ZSAqICRsZXR0ZXItc3BhY2luZykgLyAxMDAwKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmb250KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQ6IDAsICRsZXR0ZXItc3BhY2luZzogMCkge1xyXG5cdEBpZiB0eXBlLW9mKCRmb250LXNpemUtbWFwKSA9PSAnbWFwJyB7XHJcblx0XHRAZWFjaCAkYnJlYWtwb2ludCwgJGZvbnQtc2l6ZSBpbiAkZm9udC1zaXplLW1hcCB7XHJcblx0XHRcdEBpZiAkYnJlYWtwb2ludCA9PSBudWxsIHtcclxuXHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHJcblx0XHRcdFx0QGluY2x1ZGUgbGluZS1oZWlnaHQobWFwLWdldCgkZm9udC1zaXplLW1hcCwgbnRoKG1hcC1rZXlzKCRmb250LXNpemUtbWFwKSwgLTEpKSwgJGxpbmUtaGVpZ2h0KTtcclxuXHRcdFx0XHRAaW5jbHVkZSBsZXR0ZXItc3BhY2luZyhtYXAtZ2V0KCRmb250LXNpemUtbWFwLCBudGgobWFwLWtleXMoJGZvbnQtc2l6ZS1tYXApLCAtMSkpLCAkbGV0dGVyLXNwYWNpbmcpO1xyXG5cdFx0XHR9XHJcblx0XHRcdEBlbHNlIHtcclxuXHRcdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGJyZWFrcG9pbnQpKSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6IHJlbSgkZm9udC1zaXplKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0QGVsc2Uge1xyXG5cdFx0Zm9udC1zaXplOiByZW0oJGZvbnQtc2l6ZS1tYXApO1xyXG5cclxuXHRcdEBpbmNsdWRlIGxpbmUtaGVpZ2h0KCRmb250LXNpemUtbWFwLCAkbGluZS1oZWlnaHQpO1xyXG5cdFx0QGluY2x1ZGUgbGV0dGVyLXNwYWNpbmcoJGZvbnQtc2l6ZS1tYXAsICRsZXR0ZXItc3BhY2luZyk7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gc2Nyb2xsYmFyKCRjb2xvci1zY3JvbGxiYXIsICRjb2xvci1zY3JvbGxiYXItYmcpIHtcclxuXHRvdmVyZmxvdy15OiBhdXRvO1xyXG5cclxuXHRzY3JvbGxiYXItd2lkdGg6IHRoaW47XHJcblx0c2Nyb2xsYmFyLWNvbG9yOiAkY29sb3Itc2Nyb2xsYmFyICRjb2xvci1zY3JvbGxiYXItYmc7XHJcblxyXG5cdCY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuXHRcdHdpZHRoOiByZW0oNik7XHJcblx0fVxyXG5cdCY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcclxuXHRcdGJhY2tncm91bmQ6ICRjb2xvci1zY3JvbGxiYXItYmc7XHJcblx0fVxyXG5cdCY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuXHRcdGJvcmRlcjogMDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDA7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc2Nyb2xsYmFyO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGhvdmVyLWxpbmsge1xyXG5cdCY6Zm9jdXMsXHJcblx0Jjpob3ZlciB7XHJcblx0XHRjb2xvcjogJGxpbmstaG92ZXItY29sb3I7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaG92ZXItc3ZnIHtcclxuXHRzdmcgcGF0aCB7XHJcblx0XHR0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcclxuXHR9XHJcblx0Jjpmb2N1cyxcclxuXHQmOmhvdmVyIHtcclxuXHRcdHN2ZyBwYXRoIHtcclxuXHRcdFx0ZmlsbDogJGxpbmstaG92ZXItY29sb3I7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gb3BhY2l0eS10ZXh0IHtcclxuXHRvcGFjaXR5OiAuNztcclxuXHQmOmhvdmVyIHtcclxuXHRcdG9wYWNpdHk6IDE7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gaGVhZGluZy0xLXNpemUge1xyXG5cdEBpbmNsdWRlIGZvbnQoMzYsIDQyKTtcclxuXHRAaW5jbHVkZSBtZWRpYSgnPj1tZCcpIHtcclxuXHRcdEBpbmNsdWRlIGZvbnQoNzUsIDgyKTtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBoZWFkaW5nLTItc2l6ZSB7XHJcblx0QGluY2x1ZGUgZm9udCgzMCwgMzgpO1xyXG5cdEBpbmNsdWRlIG1lZGlhKCc+PW1kJykge1xyXG5cdFx0QGluY2x1ZGUgZm9udCg0NSwgNTIpO1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGhlYWRpbmctMy1zaXplIHtcclxuXHRAaW5jbHVkZSBmb250KDIwLCAyOCk7XHJcblx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRAaW5jbHVkZSBmb250KDI1LCAzMik7XHJcblx0fVxyXG59XHJcblxyXG5cclxuQG1peGluIHNpbmdYIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0ei1pbmRleDogLTE7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6ICcnO1xyXG5cclxuXHRcdHdpZHRoOiByZW0oMzIwKTtcclxuXHRcdGhlaWdodDogcmVtKDQwNyk7XHJcblxyXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0ei1pbmRleDogLTE7XHJcblxyXG5cdFx0YmFja2dyb3VuZDogdXJsKCdzdmcvWC5zdmcnKTtcclxuXHRcdGJhY2tncm91bmQtc2l6ZTogY292ZXI7XHJcblxyXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz49bWQnKSB7XHJcblx0XHRcdHdpZHRoOiByZW0oNTUwKTtcclxuXHRcdFx0aGVpZ2h0OiByZW0oODAxKTtcclxuXHRcdH1cclxuXHRcdEBpbmNsdWRlIG1lZGlhKCc+PXhsJykge1xyXG5cdFx0XHR3aWR0aDogcmVtKDY0NSk7XHJcblx0XHRcdGhlaWdodDogcmVtKDk0MCk7XHJcblx0XHR9XHJcblx0XHRAaW5jbHVkZSBtZWRpYSgnPD1tZCcpIHtcclxuXHRcdFx0Ym90dG9tOiAwO1xyXG5cdFx0XHRsZWZ0OiA1MCU7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19 *\/\n<\/style>\t<div class=\"cta__container container\">\r\n\t\t<div class=\"cta__box\">\r\n\t\t<h2 class='section-title cta__title'>Rejoignez notre \u00e9quipe d\u00e8s aujourd'hui !<\/h2>\t\t\t<div class=\"cta__content\" data-aos-delay=\"200\">\r\n\t\t\t<div class='section-description cta__description'><p>D\u00e9couvrez les carri\u00e8res qui correspondent \u00e0 votre passion et \u00e0 vos comp\u00e9tences.<\/p>\n<\/div>\t\t\t\t<div class=\"wp-block-button wp-block-button--template is-style-normal swap-effect swap-effect-arrow\" data-aos=\"fade-up\">\r\n\t\t<a class=\"wp-block-button__link swap-effect__link\" href=\"\/fr\/carriere\/\" target=\"_self\">\r\n\t\t\t<div class=\"swap-effect__span-wrapper\">\r\n\t\t\t\t<span>Explorer les carri\u00e8res<svg version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\"\r\n\t viewbox=\"0 0 24 12\" style=\"enable-background:new 0 0 24 12;\" xml:space=\"preserve\">\r\n<style type=\"text\/css\">\r\n\t.st0{fill:#FFFFFF;}\r\n<\/style>\r\n<path class=\"st0\" d=\"M0.3,7V5h22v2H0.3z\"\/>\r\n<path class=\"st0\" d=\"M16.9,1.8l1.4-1.4L24,6l-1.4,1.4L16.9,1.8z\"\/>\r\n<path class=\"st0\" d=\"M18.3,11.7l-1.4-1.4l5.7-5.7L24,6L18.3,11.7z\"\/>\r\n<\/svg><\/span>\r\n\t\t\t\t<span aria-hidden=\"true\">Explorer les carri\u00e8res<svg version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" x=\"0px\" y=\"0px\"\r\n\t viewbox=\"0 0 24 12\" style=\"enable-background:new 0 0 24 12;\" xml:space=\"preserve\">\r\n<style type=\"text\/css\">\r\n\t.st0{fill:#FFFFFF;}\r\n<\/style>\r\n<path class=\"st0\" d=\"M0.3,7V5h22v2H0.3z\"\/>\r\n<path class=\"st0\" d=\"M16.9,1.8l1.4-1.4L24,6l-1.4,1.4L16.9,1.8z\"\/>\r\n<path class=\"st0\" d=\"M18.3,11.7l-1.4-1.4l5.7-5.7L24,6L18.3,11.7z\"\/>\r\n<\/svg><\/span>\r\n\t\t\t<\/div>\r\n\t\t<\/a>\r\n\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/section>","protected":false},"excerpt":{"rendered":"<p>Pr\u00eat \u00e0 donner le coup d'envoi de votre transformation num\u00e9rique avec CyberHexe ?<\/p>","protected":false},"author":22,"featured_media":1752,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-585","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Digital Transformation Platform - CyberHexe<\/title>\n<meta name=\"description\" content=\"Discover innovative tech solutions in AI, cybersecurity, and more.\ud83d\udca1 Partner with us for tailored services.\ud83e\udd1d\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cyberhexe.ai\/fr\/\" \/>\n<meta property=\"og:locale\" content=\"fr_CA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Digital Transformation Platform - CyberHexe\" \/>\n<meta property=\"og:description\" content=\"Discover innovative tech solutions in AI, cybersecurity, and more.\ud83d\udca1 Partner with us for tailored services.\ud83e\udd1d\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cyberhexe.ai\/fr\/\" \/>\n<meta property=\"og:site_name\" content=\"CyberHexe\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-15T14:31:29+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimation du temps de lecture\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cyberhexe.ai\/\",\"url\":\"https:\/\/cyberhexe.ai\/\",\"name\":\"Digital Transformation Platform - CyberHexe\",\"isPartOf\":{\"@id\":\"https:\/\/cyberhexe.ai\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cyberhexe.ai\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cyberhexe.ai\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/02\/CyberHexe-RGB-ColorBlack-kopia.svg\",\"datePublished\":\"2021-10-22T12:12:54+00:00\",\"dateModified\":\"2024-04-15T14:31:29+00:00\",\"description\":\"Discover innovative tech solutions in AI, cybersecurity, and more.\ud83d\udca1 Partner with us for tailored services.\ud83e\udd1d\",\"breadcrumb\":{\"@id\":\"https:\/\/cyberhexe.ai\/#breadcrumb\"},\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cyberhexe.ai\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\/\/cyberhexe.ai\/#primaryimage\",\"url\":\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/02\/CyberHexe-RGB-ColorBlack-kopia.svg\",\"contentUrl\":\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/02\/CyberHexe-RGB-ColorBlack-kopia.svg\",\"width\":800,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cyberhexe.ai\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cyberhexe.ai\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cyberhexe.ai\/#website\",\"url\":\"https:\/\/cyberhexe.ai\/\",\"name\":\"CyberHexe\",\"description\":\"Your Digital Transformation Partner\",\"publisher\":{\"@id\":\"https:\/\/cyberhexe.ai\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cyberhexe.ai\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cyberhexe.ai\/#organization\",\"name\":\"CyberHexe\",\"url\":\"https:\/\/cyberhexe.ai\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\/\/cyberhexe.ai\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/02\/CyberHexe-RGB-ColorBlack.svg\",\"contentUrl\":\"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/02\/CyberHexe-RGB-ColorBlack.svg\",\"width\":800,\"height\":300,\"caption\":\"CyberHexe\"},\"image\":{\"@id\":\"https:\/\/cyberhexe.ai\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/cyberhexe-inc\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Digital Transformation Platform - CyberHexe","description":"Discover innovative tech solutions in AI, cybersecurity, and more.\ud83d\udca1 Partner with us for tailored services.\ud83e\udd1d","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cyberhexe.ai\/fr\/","og_locale":"fr_CA","og_type":"article","og_title":"Digital Transformation Platform - CyberHexe","og_description":"Discover innovative tech solutions in AI, cybersecurity, and more.\ud83d\udca1 Partner with us for tailored services.\ud83e\udd1d","og_url":"https:\/\/cyberhexe.ai\/fr\/","og_site_name":"CyberHexe","article_modified_time":"2024-04-15T14:31:29+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimation du temps de lecture":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/cyberhexe.ai\/","url":"https:\/\/cyberhexe.ai\/","name":"Digital Transformation Platform - CyberHexe","isPartOf":{"@id":"https:\/\/cyberhexe.ai\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cyberhexe.ai\/#primaryimage"},"image":{"@id":"https:\/\/cyberhexe.ai\/#primaryimage"},"thumbnailUrl":"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/02\/CyberHexe-RGB-ColorBlack-kopia.svg","datePublished":"2021-10-22T12:12:54+00:00","dateModified":"2024-04-15T14:31:29+00:00","description":"Discover innovative tech solutions in AI, cybersecurity, and more.\ud83d\udca1 Partner with us for tailored services.\ud83e\udd1d","breadcrumb":{"@id":"https:\/\/cyberhexe.ai\/#breadcrumb"},"inLanguage":"fr-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cyberhexe.ai\/"]}]},{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/cyberhexe.ai\/#primaryimage","url":"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/02\/CyberHexe-RGB-ColorBlack-kopia.svg","contentUrl":"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/02\/CyberHexe-RGB-ColorBlack-kopia.svg","width":800,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/cyberhexe.ai\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cyberhexe.ai\/"},{"@type":"ListItem","position":2,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/cyberhexe.ai\/#website","url":"https:\/\/cyberhexe.ai\/","name":"CyberHexe","description":"Your Digital Transformation Partner","publisher":{"@id":"https:\/\/cyberhexe.ai\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cyberhexe.ai\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-CA"},{"@type":"Organization","@id":"https:\/\/cyberhexe.ai\/#organization","name":"CyberHexe","url":"https:\/\/cyberhexe.ai\/","logo":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/cyberhexe.ai\/#\/schema\/logo\/image\/","url":"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/02\/CyberHexe-RGB-ColorBlack.svg","contentUrl":"https:\/\/cyberhexe.ai\/wp-content\/uploads\/2024\/02\/CyberHexe-RGB-ColorBlack.svg","width":800,"height":300,"caption":"CyberHexe"},"image":{"@id":"https:\/\/cyberhexe.ai\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/cyberhexe-inc"]}]}},"_links":{"self":[{"href":"https:\/\/cyberhexe.ai\/fr\/wp-json\/wp\/v2\/pages\/585","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyberhexe.ai\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cyberhexe.ai\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cyberhexe.ai\/fr\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/cyberhexe.ai\/fr\/wp-json\/wp\/v2\/comments?post=585"}],"version-history":[{"count":0,"href":"https:\/\/cyberhexe.ai\/fr\/wp-json\/wp\/v2\/pages\/585\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cyberhexe.ai\/fr\/wp-json\/wp\/v2\/media\/1752"}],"wp:attachment":[{"href":"https:\/\/cyberhexe.ai\/fr\/wp-json\/wp\/v2\/media?parent=585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}