{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+VGhhbmsgWW91IH4gVGhlIFNvdmVyZWlnbiBTdW1taXQgfiBTaGUgRXZvbHZlcyBBZnJpY2E8L3RpdGxlPgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iVGhhbmsgeW91IGZvciBqb2luaW5nIHRoZSBTb3ZlcmVpZ24gTW9tZW50dW0gZWNvc3lzdGVtLiBTcGluIHRvIGNsYWltIHlvdXIgZnJlZSBnaWZ0IH4gdGhlbiBlbnRlciB0aGUgbGVhcm5pbmcgaHViLiI+CjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVudD0ibm9pbmRleCwgbm9mb2xsb3ciPgo8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly9zb3ZlcmVpZ25tb21lbnR1bS5jb20vdGhhbmsteW91Ij4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Db3Jtb3JhbnQrR2FyYW1vbmQ6aXRhbCx3Z2h0QDAsMzAwOzAsNDAwOzAsNjAwOzAsNzAwOzEsMzAwOzEsNDAwOzEsNjAwJmZhbWlseT1PdXRmaXQ6d2dodEAzMDA7NDAwOzUwMDs2MDA7NzAwOzgwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CjxzdHlsZT4KKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfQo6cm9vdCB7CiAgLS1uYXZ5OiMxQjNBNkI7IC0tbmF2eS1kZWVwOiMwRDIyNDc7CiAgLS1nb2xkOiNDOTk1MUE7IC0tZ29sZDI6I0U4QjQzMjsgLS1nb2xkMzojRjVEMDYwOwogIC0td2hpdGU6I0ZGRkZGRjsgLS1jcmVhbTojZjRmMWViOyAtLXRleHQ6IzJEMzc0ODsKICAtLXB1cnBsZTojNEMxRDk1OyAtLXB1cnBsZS1taWQ6IzZEMjhEOTsgLS1wdXJwbGUtbGlnaHQ6IzhCNUNGNjsKfQpodG1sLGJvZHkgeyBmb250LWZhbWlseTonT3V0Zml0JyxzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kOnZhcigtLW5hdnktZGVlcCk7IG92ZXJmbG93LXg6aGlkZGVuOyBtaW4taGVpZ2h0OjEwMHZoOyB9CgouYmcgeyBwb3NpdGlvbjpmaXhlZDsgaW5zZXQ6MDsgei1pbmRleDowOwogIGJhY2tncm91bmQ6CiAgICByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCAyMCUgMjAlLCByZ2JhKDc2LDI5LDE0OSwwLjQ1KSAwJSwgdHJhbnNwYXJlbnQgNTAlKSwKICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDgwJSA4MCUsIHJnYmEoMjAxLDE0OSwyNiwwLjE1KSAwJSwgdHJhbnNwYXJlbnQgNDUlKSwKICAgIHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IDUwJSA1MCUsIHJnYmEoMTMsMzQsNzEsMC45NykgMCUsIHRyYW5zcGFyZW50IDEwMCUpOwp9Ci5iZy1wYXR0ZXJuIHsgcG9zaXRpb246Zml4ZWQ7IGluc2V0OjA7IHotaW5kZXg6MDsgb3BhY2l0eTowLjAyOwogIGJhY2tncm91bmQtaW1hZ2U6cmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCg2MGRlZywgdHJhbnNwYXJlbnQsIHRyYW5zcGFyZW50IDQwcHgsIHZhcigtLWdvbGQpIDQwcHgsIHZhcigtLWdvbGQpIDQxcHgpOwp9Ci50b3BiYXItYmFyIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IGhlaWdodDo0cHg7IHotaW5kZXg6MTAwOwogIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1wdXJwbGUpLCB2YXIoLS1nb2xkKSwgdmFyKC0tZ29sZDIpLCB2YXIoLS1nb2xkMyksIHZhcigtLWdvbGQyKSwgdmFyKC0tZ29sZCksIHZhcigtLXB1cnBsZSkpOwp9Ci5uYXYgeyBwb3NpdGlvbjpmaXhlZDsgdG9wOjRweDsgbGVmdDowOyByaWdodDowOyB6LWluZGV4Ojk5OwogIGJhY2tncm91bmQ6cmdiYSgxMywzNCw3MSwwLjk1KTsgYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTBweCk7CiAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgyMDEsMTQ5LDI2LDAuMTIpOwogIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgcGFkZGluZzowLjVyZW0gMnJlbTsKfQoubmF2LWJyYW5kIHsgZm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2VyaWY7IGZvbnQtc2l6ZTowLjlyZW07IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6dmFyKC0td2hpdGUpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfQoubmF2LWJyYW5kIGVtIHsgY29sb3I6dmFyKC0tZ29sZDIpOyBmb250LXN0eWxlOml0YWxpYzsgfQoubmF2LWxpbmtzIHsgZGlzcGxheTpmbGV4OyBnYXA6MDsgfQoubmF2LWxpbmsgeyBmb250LXNpemU6MC41cmVtOyBmb250LXdlaWdodDo3MDA7IGxldHRlci1zcGFjaW5nOjAuMTVlbTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwogIHBhZGRpbmc6MC4zcmVtIDAuNnJlbTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC4zKTsgdHJhbnNpdGlvbjpjb2xvciAwLjJzOwp9Ci5uYXYtbGluazpob3ZlciB7IGNvbG9yOnZhcigtLWdvbGQyKTsgfQoKLyogTUFJTiAqLwoubWFpbiB7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjU7IHBhZGRpbmctdG9wOjcwcHg7IHBhZGRpbmctYm90dG9tOjRyZW07IH0KLmNvbnRlbnQtd3JhcCB7IG1heC13aWR0aDo2ODBweDsgbWFyZ2luOjAgYXV0bzsgcGFkZGluZzoycmVtIDEuNXJlbTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0KCi8qIFRIQU5LIFlPVSBIRUFERVIgKi8KLnR5LWNyb3duIHsgZm9udC1zaXplOjMuNXJlbTsgZGlzcGxheTpibG9jazsgbWFyZ2luOjAgYXV0byAwLjZyZW07CiAgZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAzMHB4IHJnYmEoMjAxLDE0OSwyNiwwLjgpKTsKICBhbmltYXRpb246Y3Jvd24tcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KQGtleWZyYW1lcyBjcm93bi1wdWxzZSB7CiAgMCUsMTAwJSB7IGZpbHRlcjpkcm9wLXNoYWRvdygwIDAgMjBweCByZ2JhKDIwMSwxNDksMjYsMC42KSk7IHRyYW5zZm9ybTpzY2FsZSgxKTsgfQogIDUwJSB7IGZpbHRlcjpkcm9wLXNoYWRvdygwIDAgNTBweCByZ2JhKDIwMSwxNDksMjYsMSkpOyB0cmFuc2Zvcm06c2NhbGUoMS4wNSk7IH0KfQoudHktYmFkZ2UgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgZm9udC1zaXplOjAuNTJyZW07IGZvbnQtd2VpZ2h0OjcwMDsgbGV0dGVyLXNwYWNpbmc6MC4yOGVtOwogIHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6dmFyKC0tZ29sZCk7IGJhY2tncm91bmQ6cmdiYSgyMDEsMTQ5LDI2LDAuMSk7CiAgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsMC4zKTsgYm9yZGVyLXJhZGl1czoyMHB4OyBwYWRkaW5nOjAuM3JlbSAxcmVtOyBtYXJnaW4tYm90dG9tOjEuMnJlbTsKfQoudHktdGl0bGUgeyBmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZjsKICBmb250LXNpemU6Y2xhbXAoMi4ycmVtLDd2dywzLjhyZW0pOyBmb250LXdlaWdodDo3MDA7CiAgY29sb3I6dmFyKC0td2hpdGUpOyBsaW5lLWhlaWdodDoxLjE7IG1hcmdpbi1ib3R0b206MC40cmVtOwp9Ci50eS10aXRsZSBlbSB7IGNvbG9yOnZhcigtLWdvbGQyKTsgZm9udC1zdHlsZTppdGFsaWM7IH0KLnR5LXN1YiB7IGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOyBmb250LXNpemU6MXJlbTsKICBmb250LXN0eWxlOml0YWxpYzsgY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjUpOyBtYXJnaW4tYm90dG9tOjAuNXJlbTsKfQoudHktZGVzYyB7IGZvbnQtc2l6ZTowLjc4cmVtOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNCk7IGxpbmUtaGVpZ2h0OjEuNzsgbWFyZ2luLWJvdHRvbToxcmVtOyB9Ci5kaXZpZGVyIHsgd2lkdGg6ODBweDsgaGVpZ2h0OjJweDsgbWFyZ2luOjAgYXV0byAxcmVtOwogIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgdmFyKC0tZ29sZCksIHRyYW5zcGFyZW50KTsKfQoKLyogU1BJTlMgQ09VTlRFUiAqLwouc3BpbnMtY291bnRlciB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBnYXA6MC44cmVtOyBtYXJnaW4tYm90dG9tOjEuNXJlbTsgfQouc3BpbnMtbGFiZWwgeyBmb250LXNpemU6MC42cmVtOyBmb250LXdlaWdodDo3MDA7IGxldHRlci1zcGFjaW5nOjAuMTVlbTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMyk7IH0KLnNwaW5zLWRvdHMgeyBkaXNwbGF5OmZsZXg7IGdhcDowLjRyZW07IH0KLnNwaW4tZG90IHsgd2lkdGg6MTJweDsgaGVpZ2h0OjEycHg7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kOnZhcigtLWdvbGQpOyBib3JkZXI6MS41cHggc29saWQgdmFyKC0tZ29sZDIpOwogIHRyYW5zaXRpb246YWxsIDAuNHM7IGJveC1zaGFkb3c6MCAwIDhweCByZ2JhKDIwMSwxNDksMjYsMC41KTsKfQouc3Bpbi1kb3QudXNlZCB7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjEpOyBib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjEpOyBib3gtc2hhZG93Om5vbmU7IH0KCi8qIFdIRUVMIENPTlRBSU5FUiAqLwoud2hlZWwtc2VjdGlvbiB7IG1hcmdpbi1ib3R0b206MnJlbTsgfQoud2hlZWwtd3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDozNjBweDsgaGVpZ2h0OjM2MHB4OyBtYXJnaW46MCBhdXRvIDFyZW07IH0KCi8qIFBPSU5URVIgKi8KLndoZWVsLXBvaW50ZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi0xOHB4OyBsZWZ0OjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7CiAgei1pbmRleDoxMDsgZm9udC1zaXplOjEuOHJlbTsgZmlsdGVyOmRyb3Atc2hhZG93KDAgMnB4IDhweCByZ2JhKDIwMSwxNDksMjYsMC42KSk7CiAgYW5pbWF0aW9uOnBvaW50ZXItcHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKfQpAa2V5ZnJhbWVzIHBvaW50ZXItcHVsc2UgewogIDAlLDEwMCUgeyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApOyB9CiAgNTAlIHsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtM3B4KTsgfQp9CgovKiBUSEUgV0hFRUwgQ0FOVkFTICovCiN3aGVlbENhbnZhcyB7CiAgd2lkdGg6MzYwcHg7IGhlaWdodDozNjBweDsgYm9yZGVyLXJhZGl1czo1MCU7CiAgYm94LXNoYWRvdzowIDAgMCA0cHggcmdiYSgyMDEsMTQ5LDI2LDAuMyksIDAgMCA0MHB4IHJnYmEoNzYsMjksMTQ5LDAuNCksIDAgMCA4MHB4IHJnYmEoMjAxLDE0OSwyNiwwLjEpOwogIGRpc3BsYXk6YmxvY2s7Cn0KCi8qIENFTlRFUiBCVVRUT04gKi8KLndoZWVsLWNlbnRlci1idG4gewogIHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NTAlOyBsZWZ0OjUwJTsKICB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpOwogIHdpZHRoOjcycHg7IGhlaWdodDo3MnB4OyBib3JkZXItcmFkaXVzOjUwJTsKICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpIDAlLCB2YXIoLS1nb2xkMikgMTAwJSk7CiAgYm9yZGVyOjNweCBzb2xpZCB2YXIoLS13aGl0ZSk7CiAgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7CiAgZm9udC1zaXplOjAuNTJyZW07IGZvbnQtd2VpZ2h0OjgwMDsgbGV0dGVyLXNwYWNpbmc6MC4wOGVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7CiAgY29sb3I6dmFyKC0tbmF2eS1kZWVwKTsgY3Vyc29yOnBvaW50ZXI7CiAgYm94LXNoYWRvdzowIDAgMjBweCByZ2JhKDIwMSwxNDksMjYsMC42KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LDAuMyk7CiAgdHJhbnNpdGlvbjphbGwgMC4yczsgei1pbmRleDoxMDsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjEuMjsKfQoud2hlZWwtY2VudGVyLWJ0bjpob3ZlciB7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMS4wNSk7IGJveC1zaGFkb3c6MCAwIDMwcHggcmdiYSgyMDEsMTQ5LDI2LDAuOCk7IH0KLndoZWVsLWNlbnRlci1idG46ZGlzYWJsZWQgeyBvcGFjaXR5OjAuNTsgY3Vyc29yOm5vdC1hbGxvd2VkOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpOyB9Ci53aGVlbC1jZW50ZXItYnRuLnNwaW5uaW5nIHsgYW5pbWF0aW9uOnNwaW4tYnRuIDAuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGUgYWx0ZXJuYXRlOyB9CkBrZXlmcmFtZXMgc3Bpbi1idG4geyBmcm9te2JveC1zaGFkb3c6MCAwIDE1cHggcmdiYSgyMDEsMTQ5LDI2LDAuNCk7fSB0b3tib3gtc2hhZG93OjAgMCAzNXB4IHJnYmEoMjAxLDE0OSwyNiwwLjkpO30gfQoKLyogUFJJWkUgUkVWRUFMICovCi5wcml6ZS1yZXZlYWwgeyBtaW4taGVpZ2h0OjEyMHB4OyBtYXJnaW4tYm90dG9tOjEuNXJlbTsgfQoucHJpemUtY2FyZCB7CiAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDc2LDI5LDE0OSwwLjI1KSAwJSwgcmdiYSgxMywzNCw3MSwwLjgpIDEwMCUpOwogIGJvcmRlcjoxcHggc29saWQgcmdiYSgyMDEsMTQ5LDI2LDAuMyk7IGJvcmRlci1yYWRpdXM6MTRweDsKICBwYWRkaW5nOjEuMnJlbSAxLjRyZW07IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47CiAgZGlzcGxheTpub25lOwogIGFuaW1hdGlvbjpwcml6ZS1hcHBlYXIgMC41cyBlYXNlLW91dCBmb3J3YXJkczsKfQoucHJpemUtY2FyZC52aXNpYmxlIHsgZGlzcGxheTpibG9jazsgfQpAa2V5ZnJhbWVzIHByaXplLWFwcGVhciB7CiAgZnJvbSB7IG9wYWNpdHk6MDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjBweCkgc2NhbGUoMC45NSk7IH0KICB0byB7IG9wYWNpdHk6MTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IH0KfQoucHJpemUtY2FyZDo6YmVmb3JlIHsgY29udGVudDonJzsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IGhlaWdodDoycHg7CiAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCB2YXIoLS1nb2xkKSwgdmFyKC0tZ29sZDIpLCB2YXIoLS1nb2xkKSwgdHJhbnNwYXJlbnQpOwp9Ci5wcml6ZS1pY29uIHsgZm9udC1zaXplOjJyZW07IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1ib3R0b206MC41cmVtOyB9Ci5wcml6ZS1sYWJlbCB7IGZvbnQtc2l6ZTowLjUycmVtOyBmb250LXdlaWdodDo3MDA7IGxldHRlci1zcGFjaW5nOjAuMjJlbTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjp2YXIoLS1nb2xkKTsgZGlzcGxheTpibG9jazsgbWFyZ2luLWJvdHRvbTowLjNyZW07IH0KLnByaXplLW5hbWUgeyBmb250LWZhbWlseTonQ29ybW9yYW50IEdhcmFtb25kJyxzZXJpZjsgZm9udC1zaXplOjEuM3JlbTsgZm9udC13ZWlnaHQ6NzAwOyBjb2xvcjp2YXIoLS13aGl0ZSk7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1ib3R0b206MC40cmVtOyB9Ci5wcml6ZS1kZXNjIHsgZm9udC1zaXplOjAuNzVyZW07IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC42KTsgbGluZS1oZWlnaHQ6MS43OyBtYXJnaW4tYm90dG9tOjAuOHJlbTsgfQoucHJpemUtYnRuIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MC41cmVtIDEuNHJlbTsgYm9yZGVyLXJhZGl1czo1MHB4OwogIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCkgMCUsIHZhcigtLWdvbGQyKSAxMDAlKTsKICBjb2xvcjp2YXIoLS1uYXZ5LWRlZXApOyBmb250LXNpemU6MC42NXJlbTsgZm9udC13ZWlnaHQ6ODAwOwogIGxldHRlci1zcGFjaW5nOjAuMWVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IHRleHQtZGVjb3JhdGlvbjpub25lOwogIGJveC1zaGFkb3c6MCA0cHggMTVweCByZ2JhKDIwMSwxNDksMjYsMC40KTsgdHJhbnNpdGlvbjphbGwgMC4yczsKfQoucHJpemUtYnRuOmhvdmVyIHsgYm94LXNoYWRvdzowIDZweCAyNXB4IHJnYmEoMjAxLDE0OSwyNiwwLjYpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTsgfQoKLyogU1BJTiBJTlNUUlVDVElPTiAqLwouc3Bpbi1pbnN0cnVjdGlvbiB7IGZvbnQtc2l6ZTowLjY4cmVtOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMyk7IG1hcmdpbi1ib3R0b206MC41cmVtOyBsaW5lLWhlaWdodDoxLjY7IH0KLnNwaW4tY291bnQtbXNnIHsgZm9udC1zaXplOjAuNjVyZW07IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6cmdiYSgyMDEsMTQ5LDI2LDAuNik7IG1pbi1oZWlnaHQ6MS4ycmVtOyB9CgovKiBTRVBBUkFUT1IgKi8KLm9yLWRpdmlkZXIgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ2FwOjFyZW07IG1hcmdpbjoxLjVyZW0gMDsgfQoub3ItbGluZSB7IGZsZXg6MTsgaGVpZ2h0OjFweDsgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOyB9Ci5vci10ZXh0IHsgZm9udC1zaXplOjAuNnJlbTsgZm9udC13ZWlnaHQ6NzAwOyBsZXR0ZXItc3BhY2luZzowLjJlbTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMik7IH0KCi8qIEJPVFRPTSBDVEEgKi8KLmJvdHRvbS1jdGEgeyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoNzYsMjksMTQ5LDAuMikgMCUsIHJnYmEoMTMsMzQsNzEsMC44KSAxMDAlKTsKICBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjAxLDE0OSwyNiwwLjIpOyBib3JkZXItcmFkaXVzOjE0cHg7CiAgcGFkZGluZzoxLjVyZW07IG1hcmdpbi1ib3R0b206MS41cmVtOyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOwp9Ci5ib3R0b20tY3RhOjpiZWZvcmUgeyBjb250ZW50OicnOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgcmlnaHQ6MDsgaGVpZ2h0OjJweDsKICBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHZhcigtLWdvbGQpLCB0cmFuc3BhcmVudCk7Cn0KLmJvdHRvbS1jdGEtbGFiZWwgeyBmb250LXNpemU6MC41NXJlbTsgZm9udC13ZWlnaHQ6NzAwOyBsZXR0ZXItc3BhY2luZzowLjI1ZW07IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6dmFyKC0tZ29sZCk7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1ib3R0b206MC40cmVtOyB9Ci5ib3R0b20tY3RhLXRpdGxlIHsgZm9udC1mYW1pbHk6J0Nvcm1vcmFudCBHYXJhbW9uZCcsc2VyaWY7IGZvbnQtc2l6ZToxLjRyZW07IGZvbnQtd2VpZ2h0OjcwMDsgY29sb3I6dmFyKC0td2hpdGUpOyBtYXJnaW4tYm90dG9tOjAuNHJlbTsgfQouYm90dG9tLWN0YS10aXRsZSBlbSB7IGNvbG9yOnZhcigtLWdvbGQyKTsgZm9udC1zdHlsZTppdGFsaWM7IH0KLmJvdHRvbS1jdGEtZGVzYyB7IGZvbnQtc2l6ZTowLjc1cmVtOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNSk7IGxpbmUtaGVpZ2h0OjEuNzsgbWFyZ2luLWJvdHRvbToxcmVtOyB9CgovKiBSRURJUkVDVCBOT1RJQ0UgKi8KLnJlZGlyZWN0LXdyYXAgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6MC40cmVtOyBtYXJnaW4tdG9wOjEuNXJlbTsgfQoucmVkaXJlY3QtdGV4dCB7IGZvbnQtc2l6ZTowLjU4cmVtOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMik7IH0KLnJlZGlyZWN0LWJhci1vdXRlciB7IHdpZHRoOjE0MHB4OyBoZWlnaHQ6MnB4OyBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC4wNyk7IGJvcmRlci1yYWRpdXM6MnB4OyBvdmVyZmxvdzpoaWRkZW47IH0KLnJlZGlyZWN0LWJhci1pbm5lciB7IGhlaWdodDoxMDAlOyB3aWR0aDowJTsgYm9yZGVyLXJhZGl1czoycHg7CiAgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLXB1cnBsZS1taWQpLCB2YXIoLS1nb2xkKSk7Cn0KLnJlZGlyZWN0LWNvdW50ZG93biB7IGZvbnQtc2l6ZTowLjU1cmVtOyBjb2xvcjpyZ2JhKDEwOSw0MCwyMTcsMC41KTsgZm9udC13ZWlnaHQ6NjAwOyB9CgovKiBCVVRUT05TICovCi5idG4geyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzowLjg1cmVtIDEuOHJlbTsgYm9yZGVyLXJhZGl1czo1MHB4OwogIGZvbnQtZmFtaWx5OidPdXRmaXQnLHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTowLjc1cmVtOyBmb250LXdlaWdodDo3MDA7CiAgbGV0dGVyLXNwYWNpbmc6MC4wOGVtOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IHRleHQtZGVjb3JhdGlvbjpub25lOwogIHRyYW5zaXRpb246dHJhbnNmb3JtIDAuMnMsIGJveC1zaGFkb3cgMC4yczsgYm9yZGVyOm5vbmU7IGN1cnNvcjpwb2ludGVyOwp9Ci5idG46aG92ZXIgeyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTsgfQouYnRuLXByaW1hcnkgeyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWdvbGQpIDAlLCB2YXIoLS1nb2xkMikgMTAwJSk7CiAgY29sb3I6dmFyKC0tbmF2eS1kZWVwKTsgYm94LXNoYWRvdzowIDRweCAyMHB4IHJnYmEoMjAxLDE0OSwyNiwwLjQpOwp9Ci5idG4tcHJpbWFyeTpob3ZlciB7IGJveC1zaGFkb3c6MCA4cHggMzBweCByZ2JhKDIwMSwxNDksMjYsMC42KTsgfQouYnRuLXNlY29uZGFyeSB7IGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7IGNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC41KTsKICBib3JkZXI6MS41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KTsKfQouYnRuLXNlY29uZGFyeTpob3ZlciB7IGJvcmRlci1jb2xvcjpyZ2JhKDIwMSwxNDksMjYsMC40KTsgY29sb3I6dmFyKC0tZ29sZDIpOyB9Cgouc2l0ZS1mb290ZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo1OyBwYWRkaW5nOjFyZW0gMnJlbTsgdGV4dC1hbGlnbjpjZW50ZXI7CiAgYm9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTsgbWFyZ2luLXRvcDoycmVtOwp9Ci5mb290ZXItbGlua3MgeyBkaXNwbGF5OmZsZXg7IGdhcDoxLjVyZW07IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGZsZXgtd3JhcDp3cmFwOyB9Ci5mb290ZXItbGlua3MgYSB7IGZvbnQtc2l6ZTowLjU1cmVtOyBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMTUpOwogIHRleHQtZGVjb3JhdGlvbjpub25lOyBsZXR0ZXItc3BhY2luZzowLjA2ZW07IHRyYW5zaXRpb246Y29sb3IgMC4yczsKfQouZm9vdGVyLWxpbmtzIGE6aG92ZXIgeyBjb2xvcjpyZ2JhKDIwMSwxNDksMjYsMC42KTsgfQoKQG1lZGlhKG1heC13aWR0aDo0ODBweCkgewogIC53aGVlbC13cmFwcGVyIHsgd2lkdGg6MzAwcHg7IGhlaWdodDozMDBweDsgfQogICN3aGVlbENhbnZhcyB7IHdpZHRoOjMwMHB4OyBoZWlnaHQ6MzAwcHg7IH0KICAud2hlZWwtY2VudGVyLWJ0biB7IHdpZHRoOjY2cHg7IGhlaWdodDo2NnB4OyBmb250LXNpemU6MC40OHJlbTsgfQogIC5uYXYtbGlua3MgeyBkaXNwbGF5Om5vbmU7IH0KfQoucXVvdGVzLXNjcm9sbC13cmFwIHsKICBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo1OwogIG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZzowLjhyZW0gMDsKICBib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsMC4xKTsKICBib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDIwMSwxNDksMjYsMC4xKTsKICBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4yKTsKICBtYXJnaW4tYm90dG9tOjA7Cn0KLnF1b3Rlcy1zY3JvbGwtdHJhY2sgewogIGRpc3BsYXk6ZmxleDsgZ2FwOjJyZW07IGFsaWduLWl0ZW1zOmNlbnRlcjsKICB3aGl0ZS1zcGFjZTpub3dyYXA7CiAgYW5pbWF0aW9uOnNjcm9sbC1xdW90ZXMgNDVzIGxpbmVhciBpbmZpbml0ZTsKICB3aWR0aDptYXgtY29udGVudDsKfQoucXVvdGVzLXNjcm9sbC13cmFwOmhvdmVyIC5xdW90ZXMtc2Nyb2xsLXRyYWNrIHsgYW5pbWF0aW9uLXBsYXktc3RhdGU6cGF1c2VkOyB9CkBrZXlmcmFtZXMgc2Nyb2xsLXF1b3RlcyB7CiAgZnJvbSB7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKDApOyB9CiAgdG8geyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKTsgfQp9Ci5zY3JvbGwtcXVvdGUgewogIGZvbnQtZmFtaWx5OidDb3Jtb3JhbnQgR2FyYW1vbmQnLHNlcmlmOwogIGZvbnQtc2l6ZTowLjc4cmVtOyBmb250LXN0eWxlOml0YWxpYzsKICBjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuMzUpOyB3aGl0ZS1zcGFjZTpub3dyYXA7Cn0KLnNjcm9sbC1kaXZpZGVyIHsKICBjb2xvcjpyZ2JhKDIwMSwxNDksMjYsMC4zKTsgZm9udC1zaXplOjAuN3JlbTsgZmxleC1zaHJpbms6MDsKfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGNsYXNzPSJiZyI+PC9kaXY+CjxkaXYgY2xhc3M9ImJnLXBhdHRlcm4iPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3BiYXItYmFyIj48L2Rpdj4KCjxuYXYgY2xhc3M9Im5hdiI+CiAgPGEgaHJlZj0iL3N0YXJ0IiBjbGFzcz0ibmF2LWJyYW5kIj5Tb3ZlcmVpZ24gPGVtPk1vbWVudHVtPC9lbT48L2E+CiAgPGRpdiBjbGFzcz0ibmF2LWxpbmtzIj4KICAgIDxhIGhyZWY9Ii9zdGFydCIgY2xhc3M9Im5hdi1saW5rIj5TdW1taXQ8L2E+CiAgICA8YSBocmVmPSIvZm91bmRlciIgY2xhc3M9Im5hdi1saW5rIj5Gb3VuZGVyPC9hPgogICAgPGEgaHJlZj0iL2d1aWRlcyIgY2xhc3M9Im5hdi1saW5rIj5HdWlkZXM8L2E+CiAgICA8YSBocmVmPSIvZ2FsbGVyeSIgY2xhc3M9Im5hdi1saW5rIj5HYWxsZXJ5PC9hPgogIDwvZGl2Pgo8L25hdj4KCjxtYWluIGNsYXNzPSJtYWluIj4KICA8ZGl2IGNsYXNzPSJjb250ZW50LXdyYXAiPgoKICAgIDwhLS0gVEhBTksgWU9VIEhFQURFUiAtLT4KICAgIDxzcGFuIGNsYXNzPSJ0eS1jcm93biI+8J+RkTwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJ0eS1iYWRnZSI+4pymIFlvdSBBcmUgTm93IFBhcnQgb2YgdGhlIFZpbGxhZ2U8L3NwYW4+CiAgICA8aDEgY2xhc3M9InR5LXRpdGxlIj5XZWxjb21lLDxicj48ZW0+U292ZXJlaWduIE9uZTwvZW0+PC9oMT4KICAgIDxkaXYgY2xhc3M9InR5LXN1YiI+WW91ciBqb3VybmV5IGhhcyBvZmZpY2lhbGx5IGJlZ3VuPC9kaXY+CiAgICA8cCBjbGFzcz0idHktZGVzYyI+VGhhbmsgeW91IGZvciBiZWluZyBoZXJlLiBCZWZvcmUgd2UgdGFrZSB5b3UgdG8gdGhlIFNvdmVyZWlnbiBNb21lbnR1bSBsZWFybmluZyBodWIgfiBzcGluIGJlbG93IHRvIGNsYWltIHlvdXIgZnJlZSBnaWZ0LiBZb3UgaGF2ZSB0d28gc3BpbnMuIENob29zZSB3aXNlbHkgfiBvciBzcGluIHR3aWNlIGFuZCBzdGFjayB5b3VyIGdpZnRzLjwvcD4KICAgIDxkaXYgY2xhc3M9ImRpdmlkZXIiPjwvZGl2PgoKICAgIDwhLS0gU1BJTlMgQ09VTlRFUiAtLT4KICAgIDxkaXYgY2xhc3M9InNwaW5zLWNvdW50ZXIiPgogICAgICA8c3BhbiBjbGFzcz0ic3BpbnMtbGFiZWwiPllvdXIgU3BpbnM8L3NwYW4+CiAgICAgIDxkaXYgY2xhc3M9InNwaW5zLWRvdHMiPgogICAgICAgIDxkaXYgY2xhc3M9InNwaW4tZG90IiBpZD0iZG90MSI+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic3Bpbi1kb3QiIGlkPSJkb3QyIj48L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8IS0tIFNQSU4gV0hFRUwgLS0+CiAgICA8ZGl2IGNsYXNzPSJ3aGVlbC1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0id2hlZWwtd3JhcHBlciI+CiAgICAgICAgPGRpdiBjbGFzcz0id2hlZWwtcG9pbnRlciI+4pa8PC9kaXY+CiAgICAgICAgPGNhbnZhcyBpZD0id2hlZWxDYW52YXMiIHdpZHRoPSIyODAiIGhlaWdodD0iMjgwIj48L2NhbnZhcz4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJ3aGVlbC1jZW50ZXItYnRuIiBpZD0ic3BpbkJ0biIgb25jbGljaz0ic3BpbldoZWVsKCkiPgogICAgICAgICAgU1BJTjxicj5UTzxicj5XSU4KICAgICAgICA8L2J1dHRvbj4KICAgICAgPC9kaXY+CgogICAgICA8cCBjbGFzcz0ic3Bpbi1pbnN0cnVjdGlvbiI+VGFwIHRoZSBjZW50cmUgdG8gc3BpbiB+IGVhY2ggc3BpbiByZXZlYWxzIGEgZnJlZSBnaWZ0PC9wPgogICAgICA8ZGl2IGNsYXNzPSJzcGluLWNvdW50LW1zZyIgaWQ9InNwaW5Nc2ciPllvdSBoYXZlIDIgc3BpbnMgcmVtYWluaW5nPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8IS0tIFBSSVpFIFJFVkVBTCBBUkVBIC0tPgogICAgPGRpdiBjbGFzcz0icHJpemUtcmV2ZWFsIj4KICAgICAgPGRpdiBjbGFzcz0icHJpemUtY2FyZCIgaWQ9InByaXplQ2FyZCI+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaXplLWljb24iIGlkPSJwcml6ZUljb24iPvCfjoE8L3NwYW4+CiAgICAgICAgPHNwYW4gY2xhc3M9InByaXplLWxhYmVsIj7wn46JIFlvdSBXb24hPC9zcGFuPgogICAgICAgIDxzcGFuIGNsYXNzPSJwcml6ZS1uYW1lIiBpZD0icHJpemVOYW1lIj48L3NwYW4+CiAgICAgICAgPHAgY2xhc3M9InByaXplLWRlc2MiIGlkPSJwcml6ZURlc2MiPjwvcD4KICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0icHJpemUtYnRuIiBpZD0icHJpemVCdG4iIHRhcmdldD0iX2JsYW5rIj5DbGFpbSBZb3VyIEdpZnQg4oaSPC9hPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9Im9yLWRpdmlkZXIiPgogICAgICA8ZGl2IGNsYXNzPSJvci1saW5lIj48L2Rpdj4KICAgICAgPHNwYW4gY2xhc3M9Im9yLXRleHQiPkFuZCBXaGVuIFlvdSBBcmUgUmVhZHk8L3NwYW4+CiAgICAgIDxkaXYgY2xhc3M9Im9yLWxpbmUiPjwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBCT1RUT00gQ1RBIH4gVEhFIExFQVJOSU5HIEhVQiAtLT4KICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1jdGEiPgogICAgICA8c3BhbiBjbGFzcz0iYm90dG9tLWN0YS1sYWJlbCI+WW91ciBOZXh0IERlc3RpbmF0aW9uPC9zcGFuPgogICAgICA8ZGl2IGNsYXNzPSJib3R0b20tY3RhLXRpdGxlIj5UaGUgU292ZXJlaWduIE1vbWVudHVtPGJyPjxlbT5MZWFybmluZyBIdWI8L2VtPjwvZGl2PgogICAgICA8cCBjbGFzcz0iYm90dG9tLWN0YS1kZXNjIj5BcnRpY2xlcywgd2ViaW5hciByZXBsYXlzLCB0aGUgZnVsbCBTb3ZlcmVpZ24gVmlsbGFnZSBmcmFtZXdvcmssIGNvbW11bml0eSB1cGRhdGVzIGFuZCBldmVyeXRoaW5nIHdlIGFyZSBidWlsZGluZyB+IGFsbCBpbiBvbmUgcGxhY2UuIFRoaXMgaXMgd2hlcmUgdGhlIHJlYWwgd29yayBiZWdpbnMuIEJvb2ttYXJrIGl0LiBDb21lIGJhY2sgb2Z0ZW4uPC9wPgogICAgICA8YSBocmVmPSJodHRwczovL2FpLnNvdmVyZWlnbm1vbWVudHVtLmNvbS8iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiPkVudGVyIHRoZSBMZWFybmluZyBIdWIg4pymPC9hPgogICAgPC9kaXY+CgogICAgPCEtLSBBVVRPIFJFRElSRUNUIE5PVElDRSAtLT4KICAgIDxkaXYgY2xhc3M9InJlZGlyZWN0LXdyYXAiIGlkPSJyZWRpcmVjdFdyYXAiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgPGRpdiBjbGFzcz0icmVkaXJlY3QtdGV4dCI+VGFraW5nIHlvdSB0byB0aGUgbGVhcm5pbmcgaHViIHNob3J0bHk8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0icmVkaXJlY3QtYmFyLW91dGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJyZWRpcmVjdC1iYXItaW5uZXIiIGlkPSJyZWRpcmVjdEJhciI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJyZWRpcmVjdC1jb3VudGRvd24iIGlkPSJyZWRpcmVjdENvdW50ZG93biI+MTUgc2Vjb25kczwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBFWFBMT1JFIE1PUkUgLS0+CiAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7IGdhcDowLjhyZW07IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGZsZXgtd3JhcDp3cmFwOyBtYXJnaW4tdG9wOjEuMnJlbTsiPgogICAgICA8YSBocmVmPSIvZ3VpZGVzIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiPkJyb3dzZSBBbGwgR3VpZGVzPC9hPgogICAgICA8YSBocmVmPSJodHRwczovL3RoZW1lcmlkaWFuLmFmcmljYS92b3J0ZXgtbmV4dXMiIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSI+VGFrZSB0aGUgQXNzZXNzbWVudDwvYT4KICAgIDwvZGl2PgoKICA8L2Rpdj4KPC9tYWluPgoKPCEtLSBTQ1JPTExJTkcgUVVPVEVTIC0tPgo8ZGl2IGNsYXNzPSJxdW90ZXMtc2Nyb2xsLXdyYXAiPgogIDxkaXYgY2xhc3M9InF1b3Rlcy1zY3JvbGwtdHJhY2siIGlkPSJxdW90ZXNUcmFjayI+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLXF1b3RlIj4iWW91IGNhbm5vdCBiZSBmb3VuZCBpZiB5b3UgaGF2ZSBuZXZlciBiZWVuIGZpbGVkLiIgfiBXb3JkcyBUaGF0IEJ1aWxkIFdvcmxkczwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtZGl2aWRlciI+4pymPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1xdW90ZSI+IlZpc2liaWxpdHkgaXMgbm90IHZhbml0eS4gRm9yIGFuIEFmcmljYW4gd29tYW4gYnVpbGRpbmcgZW50ZXJwcmlzZSB+IHZpc2liaWxpdHkgaXMgaW5mcmFzdHJ1Y3R1cmUuIiB+IFRoZSBTSEUgRS1Cb3NzIFNvbHV0aW9uaXN0PC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1kaXZpZGVyIj7inKY8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLXF1b3RlIj4iTGVnYWN5IGlzIG5vdCBsZWZ0LiBJdCBpcyBidWlsdCB+IGRlbGliZXJhdGVseSB+IG9uZSBvd25lZCBhc3NldCBhdCBhIHRpbWUuIiB+IFNvdmVyZWlnbiBNb21lbnR1bTwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtZGl2aWRlciI+4pymPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1xdW90ZSI+IllvdXIgc3VjY2VzcyBpcyBub3QgdGhlIHRvcCBvZiBhIG1vdW50YWluLiBJdCBpcyB0aGUgZm91bmRhdGlvbiBvZiBhIHZpbGxhZ2UuIiB+IFdvcmRzIFRoYXQgQnVpbGQgV29ybGRzPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1kaXZpZGVyIj7inKY8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLXF1b3RlIj4iQUkgZGlkIG5vdCBhcnJpdmUgdG8gcmVwbGFjZSB0aGUgc292ZXJlaWduIHdvbWFuLiBJdCBhcnJpdmVkIHRvIGZyZWUgaGVyLiIgfiBUaGUgU0hFIEUtQm9zcyBTb2x1dGlvbmlzdDwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtZGl2aWRlciI+4pymPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1xdW90ZSI+IkJ1aWxkIHNvbWV0aGluZyBzbyBkaXN0aW5jdGx5IHlvdXJzIHRoYXQgbm8gYWxnb3JpdGhtIGNoYW5nZSBjYW4gbWFrZSB5b3UgaW52aXNpYmxlLiIgfiBXb3JkcyBUaGF0IEJ1aWxkIFdvcmxkczwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtZGl2aWRlciI+4pymPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1xdW90ZSI+IlN0b3AgcmVudGluZyB5b3VyIHJlbGV2YW5jZS4gU3RhcnQgb3duaW5nIHlvdXIgcmVhY2guIiB+IFdvcmRzIFRoYXQgQnVpbGQgV29ybGRzPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1kaXZpZGVyIj7inKY8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLXF1b3RlIj4iWW91ciBuZXh0IGNoYXB0ZXIgZG9lcyBub3QgcmVxdWlyZSB5b3UgdG8gZXhwbGFpbiB0aGUgcHJldmlvdXMgb25lIHRvIGFueW9uZS4iIH4gV29yZHMgVGhhdCBCdWlsZCBXb3JsZHM8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLWRpdmlkZXIiPuKcpjwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtcXVvdGUiPiJBdXRvbWF0ZSB0aGUgcHJlZGljdGFibGUuIEh1bWFuaXNlIHRoZSBpcnJlcGxhY2VhYmxlLiIgfiBXb3JkcyBUaGF0IEJ1aWxkIFdvcmxkczwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtZGl2aWRlciI+4pymPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1xdW90ZSI+IlRoZSB2aWxsYWdlIGlzIG9ubHkgYXMgc292ZXJlaWduIGFzIHRoZSB3b21hbiBhdCBpdHMgY2VudHJlLiIgfiBUaGUgU292ZXJlaWduIFZpbGxhZ2U8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLWRpdmlkZXIiPuKcpjwvc3Bhbj4KICAgIDwhLS0gRFVQTElDQVRFIEZPUiBTRUFNTEVTUyBMT09QIC0tPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1xdW90ZSI+IllvdSBjYW5ub3QgYmUgZm91bmQgaWYgeW91IGhhdmUgbmV2ZXIgYmVlbiBmaWxlZC4iIH4gV29yZHMgVGhhdCBCdWlsZCBXb3JsZHM8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLWRpdmlkZXIiPuKcpjwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtcXVvdGUiPiJWaXNpYmlsaXR5IGlzIG5vdCB2YW5pdHkuIEZvciBhbiBBZnJpY2FuIHdvbWFuIGJ1aWxkaW5nIGVudGVycHJpc2UgfiB2aXNpYmlsaXR5IGlzIGluZnJhc3RydWN0dXJlLiIgfiBUaGUgU0hFIEUtQm9zcyBTb2x1dGlvbmlzdDwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtZGl2aWRlciI+4pymPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1xdW90ZSI+IkxlZ2FjeSBpcyBub3QgbGVmdC4gSXQgaXMgYnVpbHQgfiBkZWxpYmVyYXRlbHkgfiBvbmUgb3duZWQgYXNzZXQgYXQgYSB0aW1lLiIgfiBTb3ZlcmVpZ24gTW9tZW50dW08L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLWRpdmlkZXIiPuKcpjwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtcXVvdGUiPiJZb3VyIHN1Y2Nlc3MgaXMgbm90IHRoZSB0b3Agb2YgYSBtb3VudGFpbi4gSXQgaXMgdGhlIGZvdW5kYXRpb24gb2YgYSB2aWxsYWdlLiIgfiBXb3JkcyBUaGF0IEJ1aWxkIFdvcmxkczwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtZGl2aWRlciI+4pymPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1xdW90ZSI+IkFJIGRpZCBub3QgYXJyaXZlIHRvIHJlcGxhY2UgdGhlIHNvdmVyZWlnbiB3b21hbi4gSXQgYXJyaXZlZCB0byBmcmVlIGhlci4iIH4gVGhlIFNIRSBFLUJvc3MgU29sdXRpb25pc3Q8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLWRpdmlkZXIiPuKcpjwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtcXVvdGUiPiJCdWlsZCBzb21ldGhpbmcgc28gZGlzdGluY3RseSB5b3VycyB0aGF0IG5vIGFsZ29yaXRobSBjaGFuZ2UgY2FuIG1ha2UgeW91IGludmlzaWJsZS4iIH4gV29yZHMgVGhhdCBCdWlsZCBXb3JsZHM8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLWRpdmlkZXIiPuKcpjwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtcXVvdGUiPiJTdG9wIHJlbnRpbmcgeW91ciByZWxldmFuY2UuIFN0YXJ0IG93bmluZyB5b3VyIHJlYWNoLiIgfiBXb3JkcyBUaGF0IEJ1aWxkIFdvcmxkczwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtZGl2aWRlciI+4pymPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1xdW90ZSI+IllvdXIgbmV4dCBjaGFwdGVyIGRvZXMgbm90IHJlcXVpcmUgeW91IHRvIGV4cGxhaW4gdGhlIHByZXZpb3VzIG9uZSB0byBhbnlvbmUuIiB+IFdvcmRzIFRoYXQgQnVpbGQgV29ybGRzPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1kaXZpZGVyIj7inKY8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLXF1b3RlIj4iQXV0b21hdGUgdGhlIHByZWRpY3RhYmxlLiBIdW1hbmlzZSB0aGUgaXJyZXBsYWNlYWJsZS4iIH4gV29yZHMgVGhhdCBCdWlsZCBXb3JsZHM8L3NwYW4+CiAgICA8c3BhbiBjbGFzcz0ic2Nyb2xsLWRpdmlkZXIiPuKcpjwvc3Bhbj4KICAgIDxzcGFuIGNsYXNzPSJzY3JvbGwtcXVvdGUiPiJUaGUgdmlsbGFnZSBpcyBvbmx5IGFzIHNvdmVyZWlnbiBhcyB0aGUgd29tYW4gYXQgaXRzIGNlbnRyZS4iIH4gVGhlIFNvdmVyZWlnbiBWaWxsYWdlPC9zcGFuPgogICAgPHNwYW4gY2xhc3M9InNjcm9sbC1kaXZpZGVyIj7inKY8L3NwYW4+CiAgPC9kaXY+CjwvZGl2PgoKPGZvb3RlciBjbGFzcz0ic2l0ZS1mb290ZXIiPgogIDxkaXYgY2xhc3M9ImZvb3Rlci1saW5rcyI+CiAgICA8YSBocmVmPSJodHRwczovL3NoZWV2b2x2ZXMuYWZyaWNhIj5TaGUgRXZvbHZlcyBBZnJpY2E8L2E+CiAgICA8YSBocmVmPSJodHRwczovL2hhbmRzaGFrZS5hZnJpY2EiPkhhbmRzaGFrZSBBZnJpY2E8L2E+CiAgICA8YSBocmVmPSJodHRwczovL2FmcmljYWZyb250bGluZW1lZGlhLmNvbSI+QWZyaWNhIEZyb250bGluZSBNZWRpYTwvYT4KICAgIDxhIGhyZWY9Imh0dHBzOi8vdGhlbWVyaWRpYW4uYWZyaWNhIj5UaGUgTWVyaWRpYW4gQWZyaWNhPC9hPgogIDwvZGl2Pgo8L2Zvb3Rlcj4KCjxzY3JpcHQ+Ci8vIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkAovLyBQUklaRVMgfiBVUERBVEUgVE9LRU4gVVJMUyBCRUZPUkUgUFVCTElTSElORwovLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKY29uc3QgcHJpemVzID0gWwogIHsKICAgIGljb246ICfwn5OWJywKICAgIG5hbWU6ICdGcmVlIEd1aWRlIH4gWW91ciBGaXJzdCBBY3Qgb2YgU292ZXJlaWdudHknLAogICAgZGVzYzogJ1RoZSBjb21wbGV0ZSBtaW5pIGd1aWRlIG9uIGJlZ2lubmluZyB5b3VyIHNvdmVyZWlnbiBkaWdpdGFsIGpvdXJuZXkgfiB5b3VycyBmcmVlLiBObyBzdHJpbmdzLiBKdXN0IHRoZSBmaXJzdCBzdGVwLicsCiAgICBidG46ICdEb3dubG9hZCBZb3VyIEZyZWUgR3VpZGUg4oaSJywKICAgIC8vIFVQREFURSBUSElTIFVSTCBXSVRIIFlPVVIgVE9LRU4vRE9XTkxPQUQgTElOSwogICAgdXJsOiAnaHR0cHM6Ly9mb3VuZGVyLnNoZWV2b2x2ZXMuYWZyaWNhJywKICAgIGNvbG9yOiBbJyMwRDMzMjAnLCAnIzFFNkI0NSddLAogICAgbGFiZWw6ICdGcmVlXG5HdWlkZScKICB9LAogIHsKICAgIGljb246ICfwn5KhJywKICAgIG5hbWU6ICdGcmVlIEd1aWRlIH4gVGhlIEludmlzaWJpbGl0eSBUYXgnLAogICAgZGVzYzogJ1RoZSBjb21wbGV0ZSBndWlkZSBvbiB0aGUgdGhyZWUgdGhpbmdzIGNvc3RpbmcgeW91IHZpc2liaWxpdHkgfiBhbmQgZXhhY3RseSBob3cgdG8gc3RvcCBwYXlpbmcuIFlvdXJzIGZyZWUgdG9kYXkuJywKICAgIGJ0bjogJ0Rvd25sb2FkIFlvdXIgRnJlZSBHdWlkZSDihpInLAogICAgLy8gVVBEQVRFIFRISVMgVVJMIFdJVEggWU9VUiBUT0tFTi9ET1dOTE9BRCBMSU5LCiAgICB1cmw6ICdodHRwczovL2ZvdW5kZXIuc2hlZXZvbHZlcy5hZnJpY2EnLAogICAgY29sb3I6IFsnIzBEMjI0NycsICcjMUIzQTZCJ10sCiAgICBsYWJlbDogJ0ZyZWVcbkd1aWRlJwogIH0sCiAgewogICAgaWNvbjogJ/CfjpMnLAogICAgbmFtZTogJ0ZyZWUgV2ViaW5hciBTZWF0IH4gQ2hvb3NlIFlvdXIgU2Vzc2lvbicsCiAgICBkZXNjOiAnQSBjb21wbGltZW50YXJ5IHNlYXQgYXQgYW55IHVwY29taW5nIFNvdmVyZWlnbiBNb21lbnR1bSB3ZWJpbmFyLiBDaG9vc2UgdGhlIHRvcGljIHRoYXQgbWF0dGVycyBtb3N0IHRvIHlvdSByaWdodCBub3cuJywKICAgIGJ0bjogJ0NsYWltIFlvdXIgV2ViaW5hciBTZWF0IOKGkicsCiAgICB1cmw6ICdodHRwczovL3NvdmVyZWlnbm1vbWVudHVtLmNvbS93ZWJpbmFycycsCiAgICBjb2xvcjogWycjNEMxRDk1JywgJyM2RDI4RDknXSwKICAgIGxhYmVsOiAnRnJlZVxuV2ViaW5hcicKICB9LAogIHsKICAgIGljb246ICfilrbvuI8nLAogICAgbmFtZTogJ0ZyZWUgV2ViaW5hciBSZXBsYXkgfiBXYXRjaCBJbnN0YW50bHknLAogICAgZGVzYzogJ0luc3RhbnQgYWNjZXNzIHRvIGEgcmVjb3JkZWQgU292ZXJlaWduIE1vbWVudHVtIHdlYmluYXIuIFdhdGNoIGF0IHlvdXIgcGFjZSB+IHBhdXNlLCByZXdpbmQsIGFic29yYi4nLAogICAgYnRuOiAnV2F0Y2ggWW91ciBGcmVlIFJlcGxheSDihpInLAogICAgdXJsOiAnaHR0cHM6Ly9zb3ZlcmVpZ25tb21lbnR1bS5jb20vd2ViaW5hcnMnLAogICAgY29sb3I6IFsnIzRDMUQ5NScsICcjNkQyOEQ5J10sCiAgICBsYWJlbDogJ1dlYmluYXJcblJlcGxheScKICB9LAogIHsKICAgIGljb246ICfwn6etJywKICAgIG5hbWU6ICdUaGUgU292ZXJlaWduIERlc2lnbiBEaWFnbm9zdGljIH4gRnJlZScsCiAgICBkZXNjOiAnMjEgcXVlc3Rpb25zLiA3IGRpbWVuc2lvbnMuIDEyIG1pbnV0ZXMuIEEgY29tcGxldGUgcGljdHVyZSBvZiB3aGVyZSB5b3UgYXJlIH4gYW5kIHlvdXIgc292ZXJlaWduIG5leHQgc3RlcC4gQWx3YXlzIGZyZWUuJywKICAgIGJ0bjogJ1Rha2UgdGhlIEZyZWUgQXNzZXNzbWVudCDihpInLAogICAgdXJsOiAnaHR0cHM6Ly90aGVtZXJpZGlhbi5hZnJpY2Evdm9ydGV4LW5leHVzJywKICAgIGNvbG9yOiBbJyMwRDMzMjAnLCAnIzBENkU2RSddLAogICAgbGFiZWw6ICdGcmVlXG5Bc3Nlc3NtZW50JwogIH0sCiAgewogICAgaWNvbjogJ/CfpJ0nLAogICAgbmFtZTogJ01lbnRvcnNoaXAgU3VjY2VzcyB+IEZpcnN0IE1vbnRoIG9uIFVzJywKICAgIGRlc2M6ICdKb2luIHRoZSBNZW50b3JzaGlwIFN1Y2Nlc3MgY29tbXVuaXR5IH4geW91ciBmaXJzdCBtb250aCBpcyBhIGdpZnQgZnJvbSB1cy4gUmVhbCBjb21tdW5pdHkuIFJlYWwgZ3VpZGFuY2UuIFJlYWwgbW9tZW50dW0uJywKICAgIGJ0bjogJ0NsYWltIFlvdXIgRnJlZSBNb250aCDihpInLAogICAgLy8gVVBEQVRFIFdJVEggWU9VUiBUT0tFTi9QUk9NTyBMSU5LIFdIRU4gUkVBRFkKICAgIHVybDogJ2h0dHBzOi8vbWVtYmVycy5tZW50b3JzaGlwc3VjY2Vzcy5jb20nLAogICAgY29sb3I6IFsnIzdDMkQxMicsICcjQzk5NTFBJ10sCiAgICBsYWJlbDogJyQ1IEdpZnRcbk1lbWJlcnNoaXAnCiAgfQpdOwoKLy8g4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQCi8vIFdIRUVMIEVOR0lORQovLyDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAKY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3doZWVsQ2FudmFzJyk7CmNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwpjYW52YXMud2lkdGggPSAzNjA7IGNhbnZhcy5oZWlnaHQgPSAzNjA7CmNvbnN0IG51bVByaXplcyA9IHByaXplcy5sZW5ndGg7CmNvbnN0IGFyYyA9ICgyICogTWF0aC5QSSkgLyBudW1Qcml6ZXM7CmxldCBjdXJyZW50QW5nbGUgPSAwOwpsZXQgc3BpbnNMZWZ0ID0gMjsKbGV0IGlzU3Bpbm5pbmcgPSBmYWxzZTsKbGV0IHdvblByaXplcyA9IFtdOwoKZnVuY3Rpb24gZHJhd1doZWVsKGFuZ2xlKSB7CiAgY29uc3QgY3ggPSBjYW52YXMud2lkdGggLyAyOwogIGNvbnN0IGN5ID0gY2FudmFzLmhlaWdodCAvIDI7CiAgY29uc3QgciA9IGN4IC0gNjsKCiAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwoKICAvLyBPdXRlciByaW5nCiAgY3R4LmJlZ2luUGF0aCgpOwogIGN0eC5hcmMoY3gsIGN5LCByICsgNSwgMCwgMiAqIE1hdGguUEkpOwogIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKDIwMSwxNDksMjYsMC42KSc7CiAgY3R4LmxpbmVXaWR0aCA9IDQ7CiAgY3R4LnN0cm9rZSgpOwoKICAvLyBTZWdtZW50cwogIHByaXplcy5mb3JFYWNoKChwcml6ZSwgaSkgPT4gewogICAgY29uc3Qgc3RhcnRBbmdsZSA9IGFuZ2xlICsgaSAqIGFyYzsKICAgIGNvbnN0IGVuZEFuZ2xlID0gc3RhcnRBbmdsZSArIGFyYzsKICAgIGNvbnN0IG1pZEFuZ2xlID0gc3RhcnRBbmdsZSArIGFyYyAvIDI7CgogICAgLy8gU2VnbWVudCBmaWxsCiAgICBjb25zdCBncmFkaWVudCA9IGN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgKICAgICAgY3ggKyBNYXRoLmNvcyhzdGFydEFuZ2xlKSAqIHIgKiAwLjMsCiAgICAgIGN5ICsgTWF0aC5zaW4oc3RhcnRBbmdsZSkgKiByICogMC4zLAogICAgICBjeCArIE1hdGguY29zKGVuZEFuZ2xlKSAqIHIgKiAwLjgsCiAgICAgIGN5ICsgTWF0aC5zaW4oZW5kQW5nbGUpICogciAqIDAuOAogICAgKTsKICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgwLCBwcml6ZS5jb2xvclswXSk7CiAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMSwgcHJpemUuY29sb3JbMV0pOwoKICAgIGN0eC5iZWdpblBhdGgoKTsKICAgIGN0eC5tb3ZlVG8oY3gsIGN5KTsKICAgIGN0eC5hcmMoY3gsIGN5LCByLCBzdGFydEFuZ2xlLCBlbmRBbmdsZSk7CiAgICBjdHguY2xvc2VQYXRoKCk7CiAgICBjdHguZmlsbFN0eWxlID0gZ3JhZGllbnQ7CiAgICBjdHguZmlsbCgpOwoKICAgIC8vIFNlZ21lbnQgYm9yZGVyCiAgICBjdHguc3Ryb2tlU3R5bGUgPSAncmdiYSgyMDEsMTQ5LDI2LDAuMyknOwogICAgY3R4LmxpbmVXaWR0aCA9IDEuNTsKICAgIGN0eC5zdHJva2UoKTsKCiAgICAvLyBJY29uCiAgICBjdHguc2F2ZSgpOwogICAgY3R4LnRyYW5zbGF0ZSgKICAgICAgY3ggKyBNYXRoLmNvcyhtaWRBbmdsZSkgKiByICogMC42NSwKICAgICAgY3kgKyBNYXRoLnNpbihtaWRBbmdsZSkgKiByICogMC42NQogICAgKTsKICAgIGN0eC5yb3RhdGUobWlkQW5nbGUgKyBNYXRoLlBJIC8gMik7CiAgICBjdHguZm9udCA9ICcxOHB4IHNlcmlmJzsKICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJzsKICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJzsKICAgIGN0eC5maWxsVGV4dChwcml6ZS5pY29uLCAwLCAtMTIpOwoKICAgIC8vIExhYmVsCiAgICBjdHguZm9udCA9ICdib2xkIDguNXB4IE91dGZpdCwgc2Fucy1zZXJpZic7CiAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMjU1LDI1NSwyNTUsMC45KSc7CiAgICBjb25zdCBsaW5lcyA9IHByaXplLmxhYmVsLnNwbGl0KCdcbicpOwogICAgbGluZXMuZm9yRWFjaCgobGluZSwgbGkpID0+IHsKICAgICAgY3R4LmZpbGxUZXh0KGxpbmUsIDAsIGxpICogMTEpOwogICAgfSk7CiAgICBjdHgucmVzdG9yZSgpOwogIH0pOwoKICAvLyBDZW50ZXIgY2lyY2xlCiAgY3R4LmJlZ2luUGF0aCgpOwogIGN0eC5hcmMoY3gsIGN5LCAzNiwgMCwgMiAqIE1hdGguUEkpOwogIGN0eC5maWxsU3R5bGUgPSAncmdiYSgxMywzNCw3MSwwLjkpJzsKICBjdHguZmlsbCgpOwogIGN0eC5zdHJva2VTdHlsZSA9ICdyZ2JhKDIwMSwxNDksMjYsMC41KSc7CiAgY3R4LmxpbmVXaWR0aCA9IDI7CiAgY3R4LnN0cm9rZSgpOwp9CgpkcmF3V2hlZWwoY3VycmVudEFuZ2xlKTsKCmZ1bmN0aW9uIHNwaW5XaGVlbCgpIHsKICBpZiAoaXNTcGlubmluZyB8fCBzcGluc0xlZnQgPD0gMCkgcmV0dXJuOwoKICBpc1NwaW5uaW5nID0gdHJ1ZTsKICBjb25zdCBidG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BpbkJ0bicpOwogIGJ0bi5jbGFzc0xpc3QuYWRkKCdzcGlubmluZycpOwogIGJ0bi5kaXNhYmxlZCA9IHRydWU7CgogIC8vIENob29zZSByYW5kb20gd2lubmVyCiAgY29uc3Qgd2lubmVySW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBudW1Qcml6ZXMpOwogIGNvbnN0IHRhcmdldEFuZ2xlID0gY3VycmVudEFuZ2xlCiAgICArICgyICogTWF0aC5QSSAqICg1ICsgTWF0aC5yYW5kb20oKSAqIDMpKSAvLyA1LTggZnVsbCByb3RhdGlvbnMKICAgICsgKDIgKiBNYXRoLlBJIC0gKHdpbm5lckluZGV4ICogYXJjICsgYXJjIC8gMikpOyAvLyBsYW5kIG9uIHdpbm5lcgoKICBjb25zdCBkdXJhdGlvbiA9IDQwMDAgKyBNYXRoLnJhbmRvbSgpICogMTUwMDsKICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTsKICBjb25zdCBzdGFydEFuZ2xlID0gY3VycmVudEFuZ2xlOwoKICBmdW5jdGlvbiBhbmltYXRlKG5vdykgewogICAgY29uc3QgZWxhcHNlZCA9IG5vdyAtIHN0YXJ0VGltZTsKICAgIGNvbnN0IHByb2dyZXNzID0gTWF0aC5taW4oZWxhcHNlZCAvIGR1cmF0aW9uLCAxKTsKICAgIC8vIEVhc2Ugb3V0IGN1YmljCiAgICBjb25zdCBlYXNlID0gMSAtIE1hdGgucG93KDEgLSBwcm9ncmVzcywgMyk7CiAgICBjdXJyZW50QW5nbGUgPSBzdGFydEFuZ2xlICsgKHRhcmdldEFuZ2xlIC0gc3RhcnRBbmdsZSkgKiBlYXNlOwogICAgZHJhd1doZWVsKGN1cnJlbnRBbmdsZSk7CgogICAgaWYgKHByb2dyZXNzIDwgMSkgewogICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZSk7CiAgICB9IGVsc2UgewogICAgICBjdXJyZW50QW5nbGUgPSB0YXJnZXRBbmdsZSAlICgyICogTWF0aC5QSSk7CiAgICAgIGlzU3Bpbm5pbmcgPSBmYWxzZTsKICAgICAgc3BpbnNMZWZ0LS07CiAgICAgIHdvblByaXplcy5wdXNoKHdpbm5lckluZGV4KTsKICAgICAgc2hvd1ByaXplKHdpbm5lckluZGV4KTsKICAgICAgdXBkYXRlU3BpbnNVSSgpOwogICAgICBidG4uY2xhc3NMaXN0LnJlbW92ZSgnc3Bpbm5pbmcnKTsKICAgICAgaWYgKHNwaW5zTGVmdCA+IDApIHsKICAgICAgICBidG4uZGlzYWJsZWQgPSBmYWxzZTsKICAgICAgICBidG4uaW5uZXJIVE1MID0gJ1NQSU48YnI+QUdBSU4nOwogICAgICB9IGVsc2UgewogICAgICAgIGJ0bi5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgYnRuLmlubmVySFRNTCA9ICdET05FISDwn46JJzsKICAgICAgICBzdGFydFJlZGlyZWN0VGltZXIoKTsKICAgICAgfQogICAgfQogIH0KCiAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFuaW1hdGUpOwp9CgpmdW5jdGlvbiBzaG93UHJpemUoaW5kZXgpIHsKICBjb25zdCBwcml6ZSA9IHByaXplc1tpbmRleF07CiAgY29uc3QgY2FyZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZUNhcmQnKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJpemVJY29uJykudGV4dENvbnRlbnQgPSBwcml6ZS5pY29uOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZU5hbWUnKS50ZXh0Q29udGVudCA9IHByaXplLm5hbWU7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaXplRGVzYycpLnRleHRDb250ZW50ID0gcHJpemUuZGVzYzsKICBjb25zdCBwcml6ZUJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcml6ZUJ0bicpOwogIHByaXplQnRuLnRleHRDb250ZW50ID0gcHJpemUuYnRuOwogIHByaXplQnRuLmhyZWYgPSBwcml6ZS51cmw7CgogIGlmICghY2FyZC5jbGFzc0xpc3QuY29udGFpbnMoJ3Zpc2libGUnKSkgewogICAgY2FyZC5jbGFzc0xpc3QuYWRkKCd2aXNpYmxlJyk7CiAgfSBlbHNlIHsKICAgIGNhcmQuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnOwogICAgY2FyZC5vZmZzZXRIZWlnaHQ7IC8vIHJlZmxvdwogICAgY2FyZC5zdHlsZS5hbmltYXRpb24gPSAnJzsKICB9Cn0KCmZ1bmN0aW9uIHVwZGF0ZVNwaW5zVUkoKSB7CiAgY29uc3QgbXNnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwaW5Nc2cnKTsKICBpZiAoc3BpbnNMZWZ0ID09PSAxKSB7CiAgICBtc2cudGV4dENvbnRlbnQgPSAnT25lIHNwaW4gcmVtYWluaW5nIH4gbWFrZSBpdCBjb3VudCEnOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvdDEnKS5jbGFzc0xpc3QuYWRkKCd1c2VkJyk7CiAgfSBlbHNlIGlmIChzcGluc0xlZnQgPT09IDApIHsKICAgIG1zZy50ZXh0Q29udGVudCA9ICfwn46JIEJvdGggc3BpbnMgdXNlZCB+IGVuam95IHlvdXIgZ2lmdHMhJzsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb3QxJykuY2xhc3NMaXN0LmFkZCgndXNlZCcpOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RvdDInKS5jbGFzc0xpc3QuYWRkKCd1c2VkJyk7CiAgfQp9CgpmdW5jdGlvbiBzdGFydFJlZGlyZWN0VGltZXIoKSB7CiAgY29uc3Qgd3JhcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWRpcmVjdFdyYXAnKTsKICBjb25zdCBiYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVkaXJlY3RCYXInKTsKICBjb25zdCBjb3VudGRvd24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVkaXJlY3RDb3VudGRvd24nKTsKICB3cmFwLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7CgogIGxldCBzZWNzID0gMTU7CiAgYmFyLnN0eWxlLnRyYW5zaXRpb24gPSAnd2lkdGggMTVzIGxpbmVhcic7CiAgc2V0VGltZW91dCgoKSA9PiB7IGJhci5zdHlsZS53aWR0aCA9ICcxMDAlJzsgfSwgMTAwKTsKCiAgY29uc3QgdCA9IHNldEludGVydmFsKCgpID0+IHsKICAgIHNlY3MtLTsKICAgIGlmIChzZWNzIDw9IDApIHsKICAgICAgY2xlYXJJbnRlcnZhbCh0KTsKICAgICAgY291bnRkb3duLnRleHRDb250ZW50ID0gJ0dvaW5nIHRoZXJlIG5vdy4uLic7CiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJ2h0dHBzOi8vYWkuc292ZXJlaWdubW9tZW50dW0uY29tLyc7CiAgICB9IGVsc2UgewogICAgICBjb3VudGRvd24udGV4dENvbnRlbnQgPSBzZWNzICsgKHNlY3MgPT09IDEgPyAnIHNlY29uZCcgOiAnIHNlY29uZHMnKTsKICAgIH0KICB9LCAxMDAwKTsKfQo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+","embed":""}
👑
✦ You Are Now Part of the Village
Welcome,
Welcome,
Sovereign One
Your journey has officially begun
Thank you for being here. Before we take you to the Sovereign Momentum learning hub ~ spin below to claim your free gift. You have two spins. Choose wisely ~ or spin twice and stack your gifts.
Your Spins
▼
Tap the centre to spin ~ each spin reveals a free gift
You have 2 spins remaining
And When You Are Ready
Your Next Destination
The Sovereign Momentum
Learning Hub
Learning Hub
Articles, webinar replays, the full Sovereign Village framework, community updates and everything we are building ~ all in one place. This is where the real work begins. Bookmark it. Come back often.
Enter the Learning Hub ✦Taking you to the learning hub shortly
15 seconds
"You cannot be found if you have never been filed." ~ Words That Build Worlds
✦
"Visibility is not vanity. For an African woman building enterprise ~ visibility is infrastructure." ~ The SHE E-Boss Solutionist
✦
"Legacy is not left. It is built ~ deliberately ~ one owned asset at a time." ~ Sovereign Momentum
✦
"Your success is not the top of a mountain. It is the foundation of a village." ~ Words That Build Worlds
✦
"AI did not arrive to replace the sovereign woman. It arrived to free her." ~ The SHE E-Boss Solutionist
✦
"Build something so distinctly yours that no algorithm change can make you invisible." ~ Words That Build Worlds
✦
"Stop renting your relevance. Start owning your reach." ~ Words That Build Worlds
✦
"Your next chapter does not require you to explain the previous one to anyone." ~ Words That Build Worlds
✦
"Automate the predictable. Humanise the irreplaceable." ~ Words That Build Worlds
✦
"The village is only as sovereign as the woman at its centre." ~ The Sovereign Village
✦
"You cannot be found if you have never been filed." ~ Words That Build Worlds
✦
"Visibility is not vanity. For an African woman building enterprise ~ visibility is infrastructure." ~ The SHE E-Boss Solutionist
✦
"Legacy is not left. It is built ~ deliberately ~ one owned asset at a time." ~ Sovereign Momentum
✦
"Your success is not the top of a mountain. It is the foundation of a village." ~ Words That Build Worlds
✦
"AI did not arrive to replace the sovereign woman. It arrived to free her." ~ The SHE E-Boss Solutionist
✦
"Build something so distinctly yours that no algorithm change can make you invisible." ~ Words That Build Worlds
✦
"Stop renting your relevance. Start owning your reach." ~ Words That Build Worlds
✦
"Your next chapter does not require you to explain the previous one to anyone." ~ Words That Build Worlds
✦
"Automate the predictable. Humanise the irreplaceable." ~ Words That Build Worlds
✦
"The village is only as sovereign as the woman at its centre." ~ The Sovereign Village
✦