diff --git a/dist/index.html b/dist/index.html deleted file mode 100644 index 267f346..0000000 --- a/dist/index.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Pixel borders - Creates pixelated borders on html elements - - - - - - - - - - -
-
- -

Basic examples

-
Pixel border 1
-
Pixel inset 1
-
- -
Pixel border 2
-
Pixel inset 2
-

- -

Colour coded examples

- - - - - -

- -

Customisation examples

- - - - - - -
-
- - - diff --git a/dist/styles/pixel-borders.css b/dist/styles/pixel-borders.css deleted file mode 100644 index 0a22bc3..0000000 --- a/dist/styles/pixel-borders.css +++ /dev/null @@ -1,444 +0,0 @@ -.pixel-borders { - position: relative; - display: inline-block; - margin: 0 15px 15px 0; - padding: 15px 20px; - background-color: #fff; - font-family: "Press Start 2P", Arial Black, Arial Bold, Arial, sans-serif; -} - -.pixel-borders--1 { - border-style: solid; - border-width: 4px; - border-color: #000; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); -} - -@supports (border-image-source: none) { - .pixel-borders--1 { - border-radius: 14px; - } -} - -.pixel-borders--1-inset { - border-style: solid; - border-width: 4px; - border-color: #000; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - position: relative; -} - -@supports (border-image-source: none) { - .pixel-borders--1-inset { - border-radius: 14px; - } -} - -.pixel-borders--1-inset::after { - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - -webkit-box-shadow: inset -4px -4px #ddd; - box-shadow: inset -4px -4px #ddd; -} - -.pixel-borders--2 { - border-style: solid; - border-width: 4px; - border-color: #000; - border-image-slice: 4; - border-image-width: 2; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); -} - -@supports (border-image-source: none) { - .pixel-borders--2 { - border-radius: 20px; - } -} - -.pixel-borders--2-inset { - border-style: solid; - border-width: 4px; - border-color: #000; - border-image-slice: 4; - border-image-width: 2; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); -} - -@supports (border-image-source: none) { - .pixel-borders--2-inset { - border-radius: 20px; - } -} - -.pixel-borders--2-inset::after { - border-style: solid; - border-width: 4px; - border-color: #ddd; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - border-image-width: 0 1 1 0; - width: calc(100% - 4px); - height: calc(100% - 4px); -} - -@supports (border-image-source: none) { - .pixel-borders--2-inset::after { - border-radius: 14px; - } -} - -.pixel-box--light { - border-style: solid; - border-width: 4px; - border-color: #cccccc; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - position: relative; - background-color: #fff; -} - -@supports (border-image-source: none) { - .pixel-box--light { - border-radius: 14px; - } -} - -.pixel-box--light::after { - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - -webkit-box-shadow: inset -4px -4px #e6e5e5; - box-shadow: inset -4px -4px #e6e5e5; -} - -.pixel-box--light:hover, .pixel-box--light:focus { - background-color: #f2f2f2; -} - -.pixel-box--primary { - color: #fff; - border-style: solid; - border-width: 4px; - border-color: #0c639c; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - position: relative; - background-color: #209cee; -} - -@supports (border-image-source: none) { - .pixel-box--primary { - border-radius: 14px; - } -} - -.pixel-box--primary::after { - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - -webkit-box-shadow: inset -4px -4px #1081cb; - box-shadow: inset -4px -4px #1081cb; -} - -.pixel-box--primary:hover, .pixel-box--primary:focus { - background-color: #1190e3; -} - -.pixel-box--success { - color: #fff; - border-style: solid; - border-width: 4px; - border-color: #5b8423; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - position: relative; - background-color: #92cc41; -} - -@supports (border-image-source: none) { - .pixel-box--success { - border-radius: 14px; - } -} - -.pixel-box--success::after { - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - -webkit-box-shadow: inset -4px -4px #77ac2e; - box-shadow: inset -4px -4px #77ac2e; -} - -.pixel-box--success:hover, .pixel-box--success:focus { - background-color: #85c034; -} - -.pixel-box--warning { - border-style: solid; - border-width: 4px; - border-color: #a88f06; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - position: relative; - background-color: #f7d51d; -} - -@supports (border-image-source: none) { - .pixel-box--warning { - border-radius: 14px; - } -} - -.pixel-box--warning::after { - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - -webkit-box-shadow: inset -4px -4px #d9b908; - box-shadow: inset -4px -4px #d9b908; -} - -.pixel-box--warning:hover, .pixel-box--warning:focus { - background-color: #f2ce09; -} - -.pixel-box--error { - color: #fff; - border-style: solid; - border-width: 4px; - border-color: #bc361a; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - position: relative; - background-color: #e76e55; -} - -@supports (border-image-source: none) { - .pixel-box--error { - border-radius: 14px; - } -} - -.pixel-box--error::after { - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - -webkit-box-shadow: inset -4px -4px #e14828; - box-shadow: inset -4px -4px #e14828; -} - -.pixel-box--error:hover, .pixel-box--error:focus { - background-color: #e45b3f; -} - -.pixel-box--light-custom { - border-style: solid; - border-width: 4px; - border-color: #cccccc; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - position: relative; - background-color: #fff; -} - -@supports (border-image-source: none) { - .pixel-box--light-custom { - border-radius: 14px; - } -} - -.pixel-box--light-custom::after { - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - -webkit-box-shadow: inset -4px -4px #999, inset 4px 4px #999; - box-shadow: inset -4px -4px #999, inset 4px 4px #999; -} - -.pixel-box--light-custom:hover, .pixel-box--light-custom:focus { - background-color: #f2f2f2; -} - -.pixel-box--primary-custom { - color: #fff; - border-style: solid; - border-width: 4px; - border-color: #0c639c; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - background-color: #209cee; -} - -@supports (border-image-source: none) { - .pixel-box--primary-custom { - border-radius: 14px; - } -} - -.pixel-box--primary-custom:hover, .pixel-box--primary-custom:focus { - background-color: #1190e3; -} - -.pixel-box--success-custom { - color: #fff; - border-style: solid; - border-width: 4px; - border-color: #5b8423; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - position: relative; - background-color: #92cc41; -} - -@supports (border-image-source: none) { - .pixel-box--success-custom { - border-radius: 14px; - } -} - -.pixel-box--success-custom::after { - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - -webkit-box-shadow: inset 4px 4px #b5dc7d; - box-shadow: inset 4px 4px #b5dc7d; -} - -.pixel-box--success-custom:hover, .pixel-box--success-custom:focus { - background-color: #85c034; -} - -.pixel-box--warning-custom { - border-style: solid; - border-width: 4px; - border-color: #a88f06; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - position: relative; - background-color: #f7d51d; -} - -@supports (border-image-source: none) { - .pixel-box--warning-custom { - border-radius: 14px; - } -} - -.pixel-box--warning-custom::after { - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - -webkit-box-shadow: inset -4px -4px #d9b908, inset 4px 4px #fae367; - box-shadow: inset -4px -4px #d9b908, inset 4px 4px #fae367; -} - -.pixel-box--warning-custom:hover, .pixel-box--warning-custom:focus { - background-color: #f2ce09; -} - -.pixel-box--error-custom { - color: #fff; - border-style: solid; - border-width: 4px; - border-color: #000; - border-image-slice: 2; - border-image-width: 1; - border-image-outset: 0; - border-image-source: url("data:image/svg+xml,"); - position: relative; - background-color: #e76e55; -} - -@supports (border-image-source: none) { - .pixel-box--error-custom { - border-radius: 14px; - } -} - -.pixel-box--error-custom::after { - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - -webkit-box-shadow: inset -4px -4px #e14828; - box-shadow: inset -4px -4px #e14828; -} - -.pixel-box--error-custom:hover, .pixel-box--error-custom:focus { - background-color: #e45b3f; -} - -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBpeGVsLWJvcmRlcnMuc2NzcyIsInBpeGVsLWJvcmRlcnMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThJQTtFQUNFLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIseUVBQXlFO0FDN0kzRTs7QURrSkE7RUFuSEUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBVmtDO0VBV2xDLHFCQVhrQztFQVlsQyxzQkFBc0I7RUFFdEIseUxBQTBFO0FDN0I1RTs7QURpQnVDO0VBdUh2QztJQXRISSxtQkFBdUU7RUNiekU7QUFDRjs7QURzSUE7RUF2SEUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBVmtDO0VBV2xDLHFCQVhrQztFQVlsQyxzQkFBc0I7RUFFdEIseUxBQTBFO0VBcUIxRSxrQkFBa0I7QUNqQ3BCOztBREF1QztFQTJIdkM7SUExSEksbUJBQXVFO0VDSXpFO0FBQ0Y7O0FENkJFO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQWNaLHdDQW9FOEM7VUFwRTlDLGdDQW9FOEM7QUMzR2xEOztBRCtHQTtFQTVIRSxtQkFBbUI7RUFDbkIsaUJBUHFEO0VBUXJELGtCQVIwRTtFQVUxRSxxQkF5SHNDO0VBeEh0QyxxQkF3SHNDO0VBdkh0QyxzQkFBc0I7RUFFdEIseVJBQTBFO0FDZTVFOztBRDNCdUM7RUFnSXZDO0lBL0hJLG1CQUF1RTtFQytCekU7QUFDRjs7QURtR0E7RUFoSUUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBNkhzQztFQTVIdEMscUJBNEhzQztFQTNIdEMsc0JBQXNCO0VBRXRCLHlSQUEwRTtBQytCNUU7O0FEM0N1QztFQW9JdkM7SUFuSUksbUJBQXVFO0VDK0N6RTtBQUNGOztBRG1GQTtFQWhJRSxtQkFBbUI7RUFDbkIsaUJBUHFEO0VBUXJELGtCQWtJNkQ7RUFoSTdELHFCQWdJd0M7RUEvSHhDLHFCQStId0M7RUE5SHhDLHNCQUFzQjtFQUV0Qix5TEFBMEU7RUE4SHhFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFRO0VBQ1IsMkJBQTJCO0VBQzNCLHVCQUF1QjtFQUN2Qix3QkFBd0I7QUM5RTVCOztBRG5FdUM7RUFvSXZDO0lBbklJLG1CQUF1RTtFQ3VFekU7QUFDRjs7QUQrRUE7RUFwSkUsbUJBQW1CO0VBQ25CLGlCQW9KcUQ7RUFuSnJELHFCQWtFOEM7RUFoRTlDLHFCQWlKa0M7RUFoSmxDLHFCQWdKa0M7RUEvSWxDLHNCQUFzQjtFQUV0Qiw0TEFBMEU7RUFxQjFFLGtCQUFrQjtFQThEbEIsc0JBMEQ4RTtBQ3BFaEY7O0FEckZ1QztFQXdKdkM7SUF2SkksbUJBQXVFO0VDeUZ6RTtBQUNGOztBRHhERTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFjWiwyQ0EyQmtEO1VBM0JsRCxtQ0EyQmtEO0FDbUJ0RDs7QURMRTtFQUNFLHlCQTlCbUQ7QUNzQ3ZEOztBRGtEQTtFQUNFLFdBQVc7RUF6SlgsbUJBQW1CO0VBQ25CLGlCQXlKcUQ7RUF4SnJELHFCQWtFOEM7RUFoRTlDLHFCQXNKa0M7RUFySmxDLHFCQXFKa0M7RUFwSmxDLHNCQUFzQjtFQUV0Qiw0TEFBMEU7RUFxQjFFLGtCQUFrQjtFQThEbEIseUJBK0RpRjtBQ3ZDbkY7O0FEdkh1QztFQTRKdkM7SUEzSkksbUJBQXVFO0VDMkh6RTtBQUNGOztBRDFGRTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFjWiwyQ0EyQmtEO1VBM0JsRCxtQ0EyQmtEO0FDcUR0RDs7QUR2Q0U7RUFDRSx5QkE5Qm1EO0FDd0V2RDs7QURxQkE7RUFDRSxXQUFXO0VBOUpYLG1CQUFtQjtFQUNuQixpQkE4SnFEO0VBN0pyRCxxQkFrRThDO0VBaEU5QyxxQkEySmtDO0VBMUpsQyxxQkEwSmtDO0VBekpsQyxzQkFBc0I7RUFFdEIsNExBQTBFO0VBcUIxRSxrQkFBa0I7RUE4RGxCLHlCQW9FaUY7QUNWbkY7O0FEekp1QztFQWlLdkM7SUFoS0ksbUJBQXVFO0VDNkp6RTtBQUNGOztBRDVIRTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFjWiwyQ0EyQmtEO1VBM0JsRCxtQ0EyQmtEO0FDdUZ0RDs7QUR6RUU7RUFDRSx5QkE5Qm1EO0FDMEd2RDs7QURSQTtFQWxLRSxtQkFBbUI7RUFDbkIsaUJBa0txRDtFQWpLckQscUJBa0U4QztFQWhFOUMscUJBK0prQztFQTlKbEMscUJBOEprQztFQTdKbEMsc0JBQXNCO0VBRXRCLDRMQUEwRTtFQXFCMUUsa0JBQWtCO0VBOERsQix5QkF3RWlGO0FDbUJuRjs7QUQxTHVDO0VBc0t2QztJQXJLSSxtQkFBdUU7RUM4THpFO0FBQ0Y7O0FEN0pFO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQWNaLDJDQTJCa0Q7VUEzQmxELG1DQTJCa0Q7QUN3SHREOztBRDFHRTtFQUNFLHlCQTlCbUQ7QUMySXZEOztBRHJDQTtFQUNFLFdBQVc7RUF2S1gsbUJBQW1CO0VBQ25CLGlCQXVLcUQ7RUF0S3JELHFCQWtFOEM7RUFoRTlDLHFCQW9La0M7RUFuS2xDLHFCQW1La0M7RUFsS2xDLHNCQUFzQjtFQUV0Qiw0TEFBMEU7RUFxQjFFLGtCQUFrQjtFQThEbEIseUJBNkVpRjtBQ2dEbkY7O0FENU51QztFQTBLdkM7SUF6S0ksbUJBQXVFO0VDZ096RTtBQUNGOztBRC9MRTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFjWiwyQ0EyQmtEO1VBM0JsRCxtQ0EyQmtEO0FDMEp0RDs7QUQ1SUU7RUFDRSx5QkE5Qm1EO0FDNkt2RDs7QURoRUE7RUE3S0UsbUJBQW1CO0VBQ25CLGlCQTZLcUQ7RUE1S3JELHFCQWtFOEM7RUFoRTlDLHFCQTBLa0M7RUF6S2xDLHFCQXlLa0M7RUF4S2xDLHNCQUFzQjtFQUV0Qiw0TEFBMEU7RUFxQjFFLGtCQUFrQjtFQThEbEIsc0JBbUY4RTtBQzJFaEY7O0FEN1B1QztFQWlMdkM7SUFoTEksbUJBQXVFO0VDaVF6RTtBQUNGOztBRGhPRTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFjWiw0REEwSHVHO1VBMUh2RyxvREEwSHVHO0FDNEYzRzs7QUQ3S0U7RUFDRSx5QkE5Qm1EO0FDOE12RDs7QUQ3RkE7RUFDRSxXQUFXO0VBbExYLG1CQUFtQjtFQUNuQixpQkFrTHFEO0VBakxyRCxxQkFrRThDO0VBaEU5QyxxQkErS2tDO0VBOUtsQyxxQkE4S2tDO0VBN0tsQyxzQkFBc0I7RUFFdEIsNExBQTBFO0VBbUYxRSx5QkF3RmlGO0FDdUduRjs7QUQ5UnVDO0VBcUx2QztJQXBMSSxtQkFBdUU7RUNrU3pFO0FBQ0Y7O0FEbk1FO0VBQ0UseUJBOUJtRDtBQ29PdkQ7O0FEOUdBO0VBQ0UsV0FBVztFQXZMWCxtQkFBbUI7RUFDbkIsaUJBdUxxRDtFQXRMckQscUJBa0U4QztFQWhFOUMscUJBb0xrQztFQW5MbEMscUJBbUxrQztFQWxMbEMsc0JBQXNCO0VBRXRCLDRMQUEwRTtFQXFCMUUsa0JBQWtCO0VBOERsQix5QkE2RmlGO0FDeUhuRjs7QURyVHVDO0VBMEx2QztJQXpMSSxtQkFBdUU7RUN5VHpFO0FBQ0Y7O0FEeFJFO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQWNaLHlDQStCbUQ7VUEvQm5ELGlDQStCbUQ7QUMrT3ZEOztBRHJPRTtFQUNFLHlCQTlCbUQ7QUNzUXZEOztBRDNJQTtFQTNMRSxtQkFBbUI7RUFDbkIsaUJBMkxxRDtFQTFMckQscUJBa0U4QztFQWhFOUMscUJBd0xrQztFQXZMbEMscUJBdUxrQztFQXRMbEMsc0JBQXNCO0VBRXRCLDRMQUEwRTtFQXFCMUUsa0JBQWtCO0VBOERsQix5QkFpR2lGO0FDc0puRjs7QUR0VnVDO0VBK0x2QztJQTlMSSxtQkFBdUU7RUMwVnpFO0FBQ0Y7O0FEelRFO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQWNaLGtFQXVCc0Q7VUF2QnRELDBEQXVCc0Q7QUN3UjFEOztBRHRRRTtFQUNFLHlCQTlCbUQ7QUN1U3ZEOztBRHhLQTtFQUNFLFdBQVc7RUFoTVgsbUJBQW1CO0VBQ25CLGlCQWdNcUQ7RUEvTHJELGtCQStMc0c7RUE3THRHLHFCQTZMa0M7RUE1TGxDLHFCQTRMa0M7RUEzTGxDLHNCQUFzQjtFQUV0Qix5TEFBMEU7RUFxQjFFLGtCQUFrQjtFQThEbEIseUJBc0dpRjtBQ21MbkY7O0FEeFh1QztFQW1NdkM7SUFsTUksbUJBQXVFO0VDNFh6RTtBQUNGOztBRDNWRTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFjWiwyQ0EyQmtEO1VBM0JsRCxtQ0EyQmtEO0FDc1R0RDs7QUR4U0U7RUFDRSx5QkE5Qm1EO0FDeVV2RCIsImZpbGUiOiJwaXhlbC1ib3JkZXJzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdlbmVyYXRlIFNWRyBpbWFnZSBmb3IgcGl4ZWxhdGVkIGNvcm5lcnNcbkBmdW5jdGlvbiBwaXhlbC1ib3JkZXJzLWltYWdlKCRjb3JuZXItc2l6ZSwgJGNvbG9yKSB7XG4gICRzdmc6ICcnO1xuICAkc3ZnLXBhdGg6ICcnO1xuICAkc3ZnLXNpemU6ICRjb3JuZXItc2l6ZSAqIDY7XG4gICRjb2xvcjogc3RyLXJlcGxhY2UoJycgKyAkY29sb3IsICcjJywgJyUyMycpO1xuXG4gIEBpZiAkY29ybmVyLXNpemUgPT0gMSB7XG4gICAgJHN2Zy1wYXRoOiAnTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonO1xuICB9IEBlbHNlIHtcbiAgICAkc3ZnLXBhdGg6ICdNMiAyaDJ2Mkgyek00IDBoMnYySDR6TTEwIDRoMnYyaC0yek0wIDRoMnYySDB6TTYgMGgydjJINnpNOCAyaDJ2Mkg4ek04IDhoMnYySDh6TTYgMTBoMnYySDZ6TTAgNmgydjJIMHpNMTAgNmgydjJoLTJ6TTQgMTBoMnYySDR6TTIgOGgydjJIMnonO1xuICB9XG5cbiAgJHN2ZzogJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVxcJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFwnIHdpZHRoPVxcJyN7JHN2Zy1zaXplfVxcJyBoZWlnaHQ9XFwnI3skc3ZnLXNpemV9XFwnPjxwYXRoIGQ9XFwnI3skc3ZnLXBhdGh9XFwnIGZpbGw9XFwnI3skY29sb3J9XFwnIC8+PC9zdmc+JztcblxuICBAcmV0dXJuICRzdmc7XG59XG5cblxuLy8gU3RyaW5nIHJlcGxhY2UgZnVuY3Rpb24gLSByZXBsYWNlIGAkc2VhcmNoYCB3aXRoIGAkcmVwbGFjZWAgaW4gYCRzdHJpbmdgXG5AZnVuY3Rpb24gc3RyLXJlcGxhY2UoJHN0cmluZywgJHNlYXJjaCwgJHJlcGxhY2U6ICcnKSB7XG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuXG4vLyBQaXhlbCBib3JkZXJcbkBtaXhpbiBwaXhlbC1ib3JkZXJzKCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRib3JkZXItY29sb3I6ICMwMDAsICRib3JkZXItaW5zZXQtY29sb3I6IGZhbHNlKSB7XG5cbiAgQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gICAgYm9yZGVyLXJhZGl1czogKCRib3JkZXItc2l6ZSAqICgkY29ybmVyLXNpemUgKyAyKSkgKyAoJGNvcm5lci1zaXplICogMik7XG4gIH1cblxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6ICRib3JkZXItc2l6ZTtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gIGJvcmRlci1pbWFnZS1zbGljZTogJGNvcm5lci1zaXplICogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAkY29ybmVyLXNpemU7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG5cbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKHBpeGVsLWJvcmRlcnMtaW1hZ2UoJGNvcm5lci1zaXplLCAkYm9yZGVyLWNvbG9yKSk7XG5cbiAgQGlmICRib3JkZXItaW5zZXQtY29sb3Ige1xuICAgIEBpbmNsdWRlIHBpeGVsLWluc2V0LWJvcmRlcigkYm9yZGVyLXNpemUsICRib3JkZXItaW5zZXQtY29sb3IpO1xuICB9XG5cbn1cblxuXG4vLyBQaXhlbCBpbnNldCBib3JkZXJcbkBtaXhpbiBwaXhlbC1pbnNldC1ib3JkZXIoJGJvcmRlci1pbnNldC1zaXplOiA0cHgsICRib3JkZXItaW5zZXQtY29sb3I6ICNkZGQsICRib3JkZXItaW5zZXQtc2lkZXM6ICdib3R0b20tcmlnaHQnLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvci10bDogZmFsc2UpIHtcblxuICAkYm94LXNoYWRvdzogJyc7XG4gIEBpZiBub3QoJGJvcmRlci1pbnNldC1jb2xvci1icikge1xuICAgICRib3JkZXItaW5zZXQtY29sb3ItYnI6ICRib3JkZXItaW5zZXQtY29sb3I7XG4gIH1cblxuICBAaWYgbm90KCRib3JkZXItaW5zZXQtY29sb3ItdGwpIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiAkYm9yZGVyLWluc2V0LWNvbG9yO1xuICB9XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgQGlmICRib3JkZXItaW5zZXQtc2lkZXMgPT0gJ2JvdHRvbS1yaWdodCcgb3IgJGJvcmRlci1pbnNldC1zaWRlcyA9PSBmYWxzZSB7XG4gICAgICAkYm94LXNoYWRvdzogaW5zZXQgLSN7JGJvcmRlci1pbnNldC1zaXplfSAtI3skYm9yZGVyLWluc2V0LXNpemV9ICRib3JkZXItaW5zZXQtY29sb3ItYnI7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItaW5zZXQtc2lkZXMgPT0gJ3RvcC1sZWZ0JyB7XG4gICAgICAkYm94LXNoYWRvdzogaW5zZXQgJGJvcmRlci1pbnNldC1zaXplICRib3JkZXItaW5zZXQtc2l6ZSAkYm9yZGVyLWluc2V0LWNvbG9yLXRsO1xuICAgIH1cblxuICAgIEBpZiAkYm9yZGVyLWluc2V0LXNpZGVzID09ICdhbGwnIHtcbiAgICAgICRib3gtc2hhZG93OiBpbnNldCAtI3skYm9yZGVyLWluc2V0LXNpemV9IC0jeyRib3JkZXItaW5zZXQtc2l6ZX0gJGJvcmRlci1pbnNldC1jb2xvci1iciwgaW5zZXQgJGJvcmRlci1pbnNldC1zaXplICRib3JkZXItaW5zZXQtc2l6ZSAkYm9yZGVyLWluc2V0LWNvbG9yLXRsO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuICB9XG5cbn1cblxuXG4vLyAoJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJvcmRlci1jb2xvcjogIzAwMCwgJGJvcmRlci1pbnNldC1jb2xvcjogZmFsc2UpXG4vLyAoJGJvcmRlci1pbnNldC1zaXplOiA0cHgsICRib3JkZXItaW5zZXQtY29sb3I6ICNkZGQsICRib3JkZXItaW5zZXQtc2lkZXM6ICdib3R0b20tcmlnaHQnLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvci10bDogZmFsc2UpXG5cbi8vIFBpeGVsIGJveCAtIENvbG91cnMgZm9yIGJvcmRlciBhbmQgaW5zZXQgYXJlIGNhbHVsYXRlZCB1c2luZyAkYmFja2dyb3VuZC1jb2xvciB1bmxlc3MgJGJvcmRlci1jb2xvciBpcyBwYXNzZWRcbkBtaXhpbiBwaXhlbC1ib3goJGNvcm5lci1zaXplLCAkYm9yZGVyLXNpemUsICRiYWNrZ3JvdW5kLWNvbG9yLCAkYm9yZGVyLWNvbG9yOiBmYWxzZSwgJGJvcmRlci1pbnNldDogdHJ1ZSwgJGJvcmRlci1pbnNldC1zaXplOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvcjogZmFsc2UsICRib3JkZXItaW5zZXQtc2lkZXM6IGZhbHNlLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvci10bDogZmFsc2UpIHtcbiAgXG4gICRiYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDUpO1xuICAvLyAkYm9yZGVyLWluc2V0LWNvbG9yOiAnJztcblxuICBAaWYgbm90KCRib3JkZXItY29sb3IpIHtcbiAgICAkYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDIwKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGNvcm5lci1zaXplOiAkY29ybmVyLXNpemUsICRib3JkZXItc2l6ZTogJGJvcmRlci1zaXplLCAkYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yKTtcblxuICBAaWYgJGJvcmRlci1pbnNldC1zaWRlcyA9PSAnYWxsJyBhbmQgbm90KCRib3JkZXItaW5zZXQtY29sb3IpIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDEwKTtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiBsaWdodGVuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxNSk7XG4gIH1cblxuICBAaWYgbm90KCRib3JkZXItaW5zZXQtY29sb3IpIHsgXG4gICAgJGJvcmRlci1pbnNldC1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxMCk7XG4gIH1cblxuICBAaWYgJGJvcmRlci1pbnNldC1zaWRlcyA9PSAndG9wLWxlZnQnIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yOiBsaWdodGVuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxNSk7XG4gIH1cblxuXG4gIEBpZiAkYm9yZGVyLWluc2V0IHsgXG4gICAgQGluY2x1ZGUgcGl4ZWwtaW5zZXQtYm9yZGVyKCRib3JkZXItaW5zZXQtc2l6ZTogJGJvcmRlci1zaXplLCAkYm9yZGVyLWluc2V0LWNvbG9yOiAkYm9yZGVyLWluc2V0LWNvbG9yLCAkYm9yZGVyLWluc2V0LXNpZGVzOiAkYm9yZGVyLWluc2V0LXNpZGVzLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiAkYm9yZGVyLWluc2V0LWNvbG9yLWJyLCAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiAkYm9yZGVyLWluc2V0LWNvbG9yLXRsKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICB9XG5cbn1cblxuXG5cblxuXG4vLyBEZW1vIHN0eWxlc1xuLnBpeGVsLWJvcmRlcnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIDE1cHggMTVweCAwO1xuICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIEFyaWFsIEJsYWNrLCBBcmlhbCBCb2xkLCBBcmlhbCwgc2Fucy1zZXJpZjtcbn1cblxuXG4vLyBTaW1wbGUgZXhhbXBsZXMgd2l0aCBkZWZhdWx0IHN0eWxpbmdcbi5waXhlbC1ib3JkZXJzLS0xIHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm9yZGVycygpO1xufVxuXG4ucGl4ZWwtYm9yZGVycy0tMS1pbnNldCB7XG4gIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGJvcmRlci1pbnNldC1jb2xvcjogI2RkZCk7XG59XG5cblxuLnBpeGVsLWJvcmRlcnMtLTIge1xuICBAaW5jbHVkZSBwaXhlbC1ib3JkZXJzKCRjb3JuZXItc2l6ZTogMik7XG59XG5cbi5waXhlbC1ib3JkZXJzLS0yLWluc2V0IHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm9yZGVycygkY29ybmVyLXNpemU6IDIpO1xuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBwaXhlbC1ib3JkZXJzKCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1jb2xvcjogI2RkZCk7XG5cbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWltYWdlLXdpZHRoOiAwIDEgMSAwO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gNHB4KTtcbiAgfVxufVxuXG5cblxuLy8gRXhhbXBsZXMgdXNpbmcgdGhlIHBpeGVsIGJveCBtaXhpbiB0byBjb2xvdXIgY29kZSB0aGUgZWxlbWVudHNcbi5waXhlbC1ib3gtLWxpZ2h0IHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmKTtcbn1cblxuLnBpeGVsLWJveC0tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICMyMDljZWUpO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogIzkyY2M0MSk7XG59IFxuXG4ucGl4ZWwtYm94LS13YXJuaW5nIHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdkNTFkKTtcbn0gXG5cbi5waXhlbC1ib3gtLWVycm9yIHtcbiAgY29sb3I6ICNmZmY7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogI2U3NmU1NSk7XG59IFxuXG5cbi8vIEN1c3RvbSBleGFtcGxlcyB0byBzaG93IGZsZXhpYmlsaXR5IG9mIHRoZSBtaXhpbnNcbi5waXhlbC1ib3gtLWxpZ2h0LWN1c3RvbSB7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogI2ZmZiwgJGJvcmRlci1pbnNldC1jb2xvcjogIzk5OSwgJGJvcmRlci1pbnNldC1zaWRlczogJ2FsbCcpO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICMyMDljZWUsICRib3JkZXItaW5zZXQ6IGZhbHNlKTtcbn1cblxuLnBpeGVsLWJveC0tc3VjY2Vzcy1jdXN0b20ge1xuICBjb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjOTJjYzQxLCAkYm9yZGVyLWluc2V0LXNpZGVzOiAndG9wLWxlZnQnKTtcbn0gXG5cbi5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tIHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdkNTFkLCAkYm9yZGVyLWluc2V0LXNpZGVzOiAnYWxsJyk7XG59IFxuXG4ucGl4ZWwtYm94LS1lcnJvci1jdXN0b20ge1xuICBjb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2ZTU1LCAkYm9yZGVyLWNvbG9yOiAjMDAwKTtcbn0gXG4iLCIucGl4ZWwtYm9yZGVycyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMTVweCAxNXB4IDA7XG4gIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgQXJpYWwgQmxhY2ssIEFyaWFsIEJvbGQsIEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuXG4ucGl4ZWwtYm9yZGVycy0tMSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICMwMDA7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjMwMDAnIC8+PC9zdmc+XCIpO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJvcmRlcnMtLTEge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJvcmRlcnMtLTEtaW5zZXQge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzMDAwJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJvcmRlcnMtLTEtaW5zZXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJvcmRlcnMtLTEtaW5zZXQ6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICNkZGQ7XG59XG5cbi5waXhlbC1ib3JkZXJzLS0yIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiA0O1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDI7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJz48cGF0aCBkPSdNMiAyaDJ2Mkgyek00IDBoMnYySDR6TTEwIDRoMnYyaC0yek0wIDRoMnYySDB6TTYgMGgydjJINnpNOCAyaDJ2Mkg4ek04IDhoMnYySDh6TTYgMTBoMnYySDZ6TTAgNmgydjJIMHpNMTAgNmgydjJoLTJ6TTQgMTBoMnYySDR6TTIgOGgydjJIMnonIGZpbGw9JyUyMzAwMCcgLz48L3N2Zz5cIik7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm9yZGVycy0tMiB7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm9yZGVycy0tMi1pbnNldCB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICMwMDA7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogNDtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAyO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PScxMic+PHBhdGggZD0nTTIgMmgydjJIMnpNNCAwaDJ2Mkg0ek0xMCA0aDJ2MmgtMnpNMCA0aDJ2Mkgwek02IDBoMnYySDZ6TTggMmgydjJIOHpNOCA4aDJ2Mkg4ek02IDEwaDJ2Mkg2ek0wIDZoMnYySDB6TTEwIDZoMnYyaC0yek00IDEwaDJ2Mkg0ek0yIDhoMnYySDJ6JyBmaWxsPSclMjMwMDAnIC8+PC9zdmc+XCIpO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJvcmRlcnMtLTItaW5zZXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIH1cbn1cblxuLnBpeGVsLWJvcmRlcnMtLTItaW5zZXQ6OmFmdGVyIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2RkZCcgLz48L3N2Zz5cIik7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMCAxIDEgMDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDRweCk7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNHB4KTtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3JkZXJzLS0yLWluc2V0OjphZnRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1saWdodCB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICNjY2NjY2M7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjNjY2NjY2MnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1saWdodCB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1saWdodDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2U2ZTVlNTtcbn1cblxuLnBpeGVsLWJveC0tbGlnaHQ6aG92ZXIsIC5waXhlbC1ib3gtLWxpZ2h0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbn1cblxuLnBpeGVsLWJveC0tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMGM2MzljO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzMGM2MzljJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjA5Y2VlO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJveC0tcHJpbWFyeSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5OjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjMTA4MWNiO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5OmhvdmVyLCAucGl4ZWwtYm94LS1wcmltYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzExOTBlMztcbn1cblxuLnBpeGVsLWJveC0tc3VjY2VzcyB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjNWI4NDIzO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzNWI4NDIzJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJjYzQxO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJveC0tc3VjY2VzcyB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjNzdhYzJlO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzOmhvdmVyLCAucGl4ZWwtYm94LS1zdWNjZXNzOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg1YzAzNDtcbn1cblxuLnBpeGVsLWJveC0td2FybmluZyB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICNhODhmMDY7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjNhODhmMDYnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Q1MWQ7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS13YXJuaW5nIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmc6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICNkOWI5MDg7XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmc6aG92ZXIsIC5waXhlbC1ib3gtLXdhcm5pbmc6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJjZTA5O1xufVxuXG4ucGl4ZWwtYm94LS1lcnJvciB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjYmMzNjFhO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzYmMzNjFhJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2ZTU1O1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJveC0tZXJyb3Ige1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJveC0tZXJyb3I6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICNlMTQ4Mjg7XG59XG5cbi5waXhlbC1ib3gtLWVycm9yOmhvdmVyLCAucGl4ZWwtYm94LS1lcnJvcjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNDViM2Y7XG59XG5cbi5waXhlbC1ib3gtLWxpZ2h0LWN1c3RvbSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICNjY2NjY2M7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjNjY2NjY2MnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1saWdodC1jdXN0b20ge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjOTk5LCBpbnNldCA0cHggNHB4ICM5OTk7XG59XG5cbi5waXhlbC1ib3gtLWxpZ2h0LWN1c3RvbTpob3ZlciwgLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbn1cblxuLnBpeGVsLWJveC0tcHJpbWFyeS1jdXN0b20ge1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzBjNjM5YztcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyMzBjNjM5YycgLz48L3N2Zz5cIik7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMDljZWU7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbTpob3ZlciwgLnBpeGVsLWJveC0tcHJpbWFyeS1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTE5MGUzO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjNWI4NDIzO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzNWI4NDIzJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJjYzQxO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJveC0tc3VjY2Vzcy1jdXN0b20ge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJveC0tc3VjY2Vzcy1jdXN0b206OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgNHB4IDRweCAjYjVkYzdkO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbTpob3ZlciwgLnBpeGVsLWJveC0tc3VjY2Vzcy1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODVjMDM0O1xufVxuXG4ucGl4ZWwtYm94LS13YXJuaW5nLWN1c3RvbSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICNhODhmMDY7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjNhODhmMDYnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Q1MWQ7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS13YXJuaW5nLWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS13YXJuaW5nLWN1c3RvbTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2Q5YjkwOCwgaW5zZXQgNHB4IDRweCAjZmFlMzY3O1xufVxuXG4ucGl4ZWwtYm94LS13YXJuaW5nLWN1c3RvbTpob3ZlciwgLnBpeGVsLWJveC0td2FybmluZy1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJjZTA5O1xufVxuXG4ucGl4ZWwtYm94LS1lcnJvci1jdXN0b20ge1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyMzAwMCcgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U3NmU1NTtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLWVycm9yLWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1lcnJvci1jdXN0b206OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICNlMTQ4Mjg7XG59XG5cbi5waXhlbC1ib3gtLWVycm9yLWN1c3RvbTpob3ZlciwgLnBpeGVsLWJveC0tZXJyb3ItY3VzdG9tOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0NWIzZjtcbn1cbiJdfQ== */ diff --git a/dist/styles/site.css b/dist/styles/site.css deleted file mode 100644 index 67cea59..0000000 --- a/dist/styles/site.css +++ /dev/null @@ -1,535 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ -/* Document - ========================================================================== */ -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ -html { - line-height: 1.15; - /* 1 */ - -webkit-text-size-adjust: 100%; - /* 2 */ -} - -/* Sections - ========================================================================== */ -/** - * Remove the margin in all browsers. - */ -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ -hr { - -webkit-box-sizing: content-box; - box-sizing: content-box; - /* 1 */ - height: 0; - /* 1 */ - overflow: visible; - /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ -pre { - font-family: monospace, monospace; - /* 1 */ - font-size: 1em; - /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ -/** - * Remove the gray background on active links in IE 10. - */ -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ -abbr[title] { - border-bottom: none; - /* 1 */ - text-decoration: underline; - /* 2 */ - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ -code, -kbd, -samp { - font-family: monospace, monospace; - /* 1 */ - font-size: 1em; - /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ -/** - * Remove the border on images inside links in IE 10. - */ -img { - border-style: none; -} - -/* Forms - ========================================================================== */ -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ -button, -input, -optgroup, -select, -textarea { - font-family: inherit; - /* 1 */ - font-size: 100%; - /* 1 */ - line-height: 1.15; - /* 1 */ - margin: 0; - /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ -button, -input { - /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ -button, -select { - /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ -legend { - -webkit-box-sizing: border-box; - box-sizing: border-box; - /* 1 */ - color: inherit; - /* 2 */ - display: table; - /* 1 */ - max-width: 100%; - /* 1 */ - padding: 0; - /* 3 */ - white-space: normal; - /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ -[type="checkbox"], -[type="radio"] { - -webkit-box-sizing: border-box; - box-sizing: border-box; - /* 1 */ - padding: 0; - /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ -[type="search"] { - -webkit-appearance: textfield; - /* 1 */ - outline-offset: -2px; - /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ -::-webkit-file-upload-button { - -webkit-appearance: button; - /* 1 */ - font: inherit; - /* 2 */ -} - -/* Interactive - ========================================================================== */ -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ -/** - * Add the correct display in IE 10+. - */ -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ -[hidden] { - display: none; -} - -*, -*:before, -*:after { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} - -body { - font-family: "Lato", -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; - font-size: 1rem; - font-weight: 300; - line-height: 1.5; - color: #333; - background-color: #fff; -} - -a { - color: #1976D2; - text-decoration: none; - -webkit-transition: color 0.3s; - transition: color 0.3s; -} - -a:hover, a:focus { - color: #2196F3; -} - -h1, h2, h3, h4, h5, h6 { - font-weight: 300; -} - -h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { - font-size: 60%; -} - -h1, h2 { - margin: 0 0 20px 0; -} - -h3, h4, h5, h6 { - margin: 0 0 15px 0; -} - -h1 { - font-size: 38px; -} - -h2 { - font-size: 34px; -} - -h3 { - font-size: 26px; -} - -h4 { - font-size: 20px; -} - -h5 { - font-size: 16px; -} - -h6 { - font-size: 14px; -} - -p { - margin: 0 0 15px 0; -} - -strong { - font-weight: 400; -} - -.container { - width: 100%; - max-width: 1140px; - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} - -.header { - position: fixed; - top: 0; - z-index: 100; - width: 100%; - padding: 15px 0; - color: #fff; - background-color: #1976D2; - -webkit-box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.1); - box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.1); -} - -.logo-text { - margin: 0; -} - -@media (max-width: 767px) { - .logo-text { - font-size: 25px; - } -} - -@media (min-width: 768px) { - .logo-text { - display: inline-block; - } -} - -.header--links .btn { - margin: 0; - margin-top: 7px; -} - -.header--links .btn:last-child { - margin-left: 7px; -} - -@media (min-width: 768px) { - .header--links { - float: right; - } -} - -.footer { - padding-top: 15px; - padding-bottom: 15px; - font-size: 12px; - text-align: center; -} - -.demo { - margin-top: 40px; - margin-bottom: 40px; -} - -.demo--intro { - margin-top: 20px; - border-bottom: 1px solid #ddd; -} - -.demo--intro p:last-child { - padding-bottom: 20px; -} - -.btn { - display: inline-block; - text-align: center; - vertical-align: middle; - cursor: pointer; - border: 1px solid #bbb; - padding: 4px 12px 6px 12px; - font-size: 18px; - background-color: #fff; - border-radius: 4px; - -webkit-transition: background-color .3s, color .3s; - transition: background-color .3s, color .3s; -} - -.btn:hover, .btn:active { - background-color: #f3f3f3; -} - -.btn-white { - color: #fff; - border-color: #fff; - background-color: transparent; -} - -.install .btn { - margin-right: 15px; - margin-bottom: 15px; -} - -pre { - display: block; - padding: 10px 15px; - margin: 0 0 20px 0; - overflow: auto; - font-family: 'Cutive Mono', monospace; - font-size: 14px; - word-break: break-all; - word-wrap: break-word; - background-color: #f3f3f3; - border: 1px solid #bbb; - border-radius: 4px; -} - -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9ub3JtYWxpemUuc2NzcyIsInNpdGUuY3NzIiwic2l0ZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUFBO0FBRUE7K0VDQStFO0FERy9FOzs7RUNDRTtBRElGO0VBQ0UsaUJBQWlCO0VBQUUsTUFBQTtFQUNuQiw4QkFBOEI7RUFBRSxNQUFBO0FDQWxDOztBREdBOytFQ0ErRTtBREcvRTs7RUNBRTtBRElGO0VBQ0UsU0FBUztBQ0ZYOztBREtBOztFQ0RFO0FES0Y7RUFDRSxjQUFjO0FDSGhCOztBRE1BOzs7RUNERTtBRE1GO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtBQ0psQjs7QURPQTsrRUNKK0U7QURPL0U7OztFQ0hFO0FEUUY7RUFDRSwrQkFBdUI7VUFBdkIsdUJBQXVCO0VBQUUsTUFBQTtFQUN6QixTQUFTO0VBQUUsTUFBQTtFQUNYLGlCQUFpQjtFQUFFLE1BQUE7QUNIckI7O0FETUE7OztFQ0RFO0FETUY7RUFDRSxpQ0FBaUM7RUFBRSxNQUFBO0VBQ25DLGNBQWM7RUFBRSxNQUFBO0FDRmxCOztBREtBOytFQ0YrRTtBREsvRTs7RUNGRTtBRE1GO0VBQ0UsNkJBQTZCO0FDSi9COztBRE9BOzs7RUNGRTtBRE9GO0VBQ0UsbUJBQW1CO0VBQUUsTUFBQTtFQUNyQiwwQkFBMEI7RUFBRSxNQUFBO0VBQzVCLHlDQUFpQztVQUFqQyxpQ0FBaUM7RUFBRSxNQUFBO0FDRnJDOztBREtBOztFQ0RFO0FES0Y7O0VBRUUsbUJBQW1CO0FDSHJCOztBRE1BOzs7RUNERTtBRE1GOzs7RUFHRSxpQ0FBaUM7RUFBRSxNQUFBO0VBQ25DLGNBQWM7RUFBRSxNQUFBO0FDRmxCOztBREtBOztFQ0RFO0FES0Y7RUFDRSxjQUFjO0FDSGhCOztBRE1BOzs7RUNERTtBRE1GOztFQUVFLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHdCQUF3QjtBQ0oxQjs7QURPQTtFQUNFLGVBQWU7QUNKakI7O0FET0E7RUFDRSxXQUFXO0FDSmI7O0FET0E7K0VD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RHVWekM7O0FDcFZFO0VBQ0UsU0FBUztBRHVWYjs7QUNyVkk7RUFIRjtJQUlJLGVBQWU7RUR5Vm5CO0FBQ0Y7O0FDeFZJO0VBTkY7SUFPSSxxQkFBcUI7RUQ0VnpCO0FBQ0Y7O0FDelZFO0VBR0ksU0FBUztFQUNULGVBQWU7QUQwVnJCOztBQzlWRTtFQU9NLGdCQUFnQjtBRDJWeEI7O0FDdlZJO0VBWEY7SUFZSSxZQUFZO0VEMlZoQjtBQUNGOztBQ3hWQTtFQUNFLGlCQUFpQjtFQUNqQixvQkFBb0I7RUFDcEIsZUFBZTtFQUNmLGtCQUFrQjtBRDJWcEI7O0FDdFZBO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBRHlWckI7O0FDdFZBO0VBQ0UsZ0JBQWdCO0VBQ2hCLDZCQUE2QjtBRHlWL0I7O0FDM1ZBO0VBS0ksb0JBQW9CO0FEMFZ4Qjs7QUN0VkE7RUFDRSxxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0QixlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLDBCQUEwQjtFQUMxQixlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQixtREFBMkM7RUFBM0MsMkNBQTJDO0FEeVY3Qzs7QUNuV0E7RUFhSSx5QkFBeUI7QUQwVjdCOztBQ3RWQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsNkJBQTZCO0FEeVYvQjs7QUN0VkE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FEeVZyQjs7QUN0VkE7RUFDRSxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QscUNBQXFDO0VBQ3JDLGVBQWU7RUFDZixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLHlCQUF5QjtFQUN6QixzQkFBc0I7RUFDdEIsa0JBQWtCO0FEeVZwQiIsImZpbGUiOiJzaXRlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCAtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxcIlNlZ29lIFVJXCIsUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixBcmlhbCxcIk5vdG8gU2Fuc1wiLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIixcIlNlZ29lIFVJIFN5bWJvbFwiLFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG5hIHtcbiAgY29sb3I6ICMxOTc2RDI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcztcbn1cblxuYTpob3ZlciwgYTpmb2N1cyB7XG4gIGNvbG9yOiAjMjE5NkYzO1xufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuaDEgc21hbGwsIGgyIHNtYWxsLCBoMyBzbWFsbCwgaDQgc21hbGwsIGg1IHNtYWxsLCBoNiBzbWFsbCB7XG4gIGZvbnQtc2l6ZTogNjAlO1xufVxuXG5oMSwgaDIge1xuICBtYXJnaW46IDAgMCAyMHB4IDA7XG59XG5cbmgzLCBoNCwgaDUsIGg2IHtcbiAgbWFyZ2luOiAwIDAgMTVweCAwO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMzhweDtcbn1cblxuaDIge1xuICBmb250LXNpemU6IDM0cHg7XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAyNnB4O1xufVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cblxuaDUge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMTVweCAwO1xufVxuXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTE0MHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5cbi5oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTVweCAwO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzZEMjtcbiAgYm94LXNoYWRvdzogMCAwIDZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4ubG9nby10ZXh0IHtcbiAgbWFyZ2luOiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmxvZ28tdGV4dCB7XG4gICAgZm9udC1zaXplOiAyNXB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubG9nby10ZXh0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLmhlYWRlci0tbGlua3MgLmJ0biB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXRvcDogN3B4O1xufVxuXG4uaGVhZGVyLS1saW5rcyAuYnRuOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogN3B4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci0tbGlua3Mge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxufVxuXG4uZm9vdGVyIHtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmRlbW8ge1xuICBtYXJnaW4tdG9wOiA0MHB4O1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuXG4uZGVtby0taW50cm8ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbn1cblxuLmRlbW8tLWludHJvIHA6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuXG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgcGFkZGluZzogNHB4IDEycHggNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcywgY29sb3IgLjNzO1xufVxuXG4uYnRuOmhvdmVyLCAuYnRuOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG59XG5cbi5idG4td2hpdGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmluc3RhbGwgLmJ0biB7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZm9udC1mYW1pbHk6ICdDdXRpdmUgTW9ubycsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuIiwiLy8gLS0tLS0gRGVtbyBzaXRlIHN0eWxlcyAtLS0tLVxuQGltcG9ydCBcIm5vcm1hbGl6ZVwiO1xuXG5cblxuLy8gLS0tLS0gQmFzZSBzdHlsZXMgLS0tLS1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFwiU2Vnb2UgVUlcIixSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLFwiTm90byBTYW5zXCIsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCIsXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cblxuYSB7XG4gIGNvbG9yOiAjMTk3NkQyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6ICMyMTk2RjM7XG4gIH1cbn1cblxuLy8gVHlwZVxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNjAlO1xuICB9XG59XG5oMSwgaDIge1xuICBtYXJnaW46IDAgMCAyMHB4IDA7XG59XG5oMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbjogMCAwIDE1cHggMDtcbn1cblxuaDEgeyBmb250LXNpemU6IDM4cHg7IH1cbmgyIHsgZm9udC1zaXplOiAzNHB4OyB9XG5oMyB7IGZvbnQtc2l6ZTogMjZweDsgfVxuaDQgeyBmb250LXNpemU6IDIwcHg7IH1cbmg1IHsgZm9udC1zaXplOiAxNnB4OyB9XG5oNiB7IGZvbnQtc2l6ZTogMTRweDsgfVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMTVweCAwO1xufVxuXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG5cblxuLy8gLS0tLS0gTGF5b3V0IC0tLS0tXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTE0MHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5cblxuXG5cbi8vIC0tLS0tIEhlYWRlciBhbmQgZm9vdGVyIC0tLS0tXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDEwMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDE1cHggMDtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7XG4gIGJveC1zaGFkb3c6IDAgMCA2cHggNnB4IHJnYmEoMCwwLDAsMC4xKTtcbn1cblxuICAubG9nby10ZXh0IHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci0tbGlua3Mge1xuXG4gICAgLmJ0biB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtYXJnaW4tdG9wOiA3cHg7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbi5mb290ZXIge1xuICBwYWRkaW5nLXRvcDogMTVweDtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5cbi8vIC0tLS0tIERlbW8gLS0tLS1cbi5kZW1vIHtcbiAgbWFyZ2luLXRvcDogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuLmRlbW8tLWludHJvIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG5cbiAgcDpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgfVxufVxuXG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgcGFkZGluZzogNHB4IDEycHggNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcywgY29sb3IgLjNzO1xuXG4gICY6aG92ZXIsICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xuICB9XG59XG5cbi5idG4td2hpdGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmluc3RhbGwgLmJ0biB7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZm9udC1mYW1pbHk6ICdDdXRpdmUgTW9ubycsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG5cblxuLy8gLS0tLS0gQnJlYWtwb2ludCBleGFtcGxlcyAtLS0tLVxuXG4vLyBCcmVha3BvaW50cyB1cFxuXG4vLyBTbWFsbCBkZXZpY2VzIChsYW5kc2NhcGUgcGhvbmVzLCA1NzZweCBhbmQgdXApXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHsgfVxuXG5cbi8vIE1lZGl1bSBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgfVxuXG5cbi8vIExhcmdlIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHsgfVxuXG5cbi8vIEV4dHJhIGxhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkgeyB9XG5cbiJdfQ== */ diff --git a/docs/index.html b/docs/index.html index 267f346..6bec8bd 100644 --- a/docs/index.html +++ b/docs/index.html @@ -14,8 +14,29 @@ -
+ +
+ +

Pixel borders

+ + +
+
+ + +
+
+

A SASS mixin to add pixelated borders to HTML elements, which can be customized for different sizes, colour coding,inset borders.

+
+
+ + +
+

Basic examples

Pixel border 1
@@ -26,7 +47,7 @@
Pixel inset 2


-

Colour coded examples

+

Colour themed examples

@@ -44,5 +65,189 @@
+ +
+
+ +
+

Installation

+ +
+$ npm install pixel-borders --save-dev
+
+ +
+ +
+ +

Usage

+ +

Import

+ +

After adding the repo as a dependency you can import it into your SASS files. Alternatively you can download the pixel-borders.scss from this repo and add it to your project folder directly.

+ +
@import "node_modules/pixel-border/src/styles/pixel-borders.scss";
+ + +

Pixel borders mixin options

+
// Add pixel borders with default options
+@include pixel-borders();
+
+// Available options
+@include pixel-borders(
+  $corner-size: 1,                 
+  $border-size: 4px,              
+  $border-color: #000,            
+  $border-inset-color: false
+);
+
+// Helper method to create custom styles e.g. colour themes, inset border, highlight
+@include pixel-box(
+  $corner-size,
+  $border-size, 
+  $background-color,              
+  $border-color: false,           
+  $border-inset: true,            
+  $border-inset-size: false,      
+  $border-inset-color: false,     
+  $border-inset-sides: false,     // Sides to apply inset border: 'all', 'top-left' or 'bottom-right'
+  $border-inset-color-br: false,  // Bottom right inset border colour
+  $border-inset-color-tl: false   // Top left inset border colour
+);
+
+ +

pixel-borders

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDefaultTypeDescription
$corner-size1NumberNumber of pixels taken out of the corner.
$border-size4pxNumber(px)Border size.
$border-color#000Hexadecimal colorBorder colour.
$border-inset-colorfalseFalse/Hexadecimal colorAdd a inset border to the bottom right in this colour.
+ +

pixel-box

+

Options as above unless otherwise specified.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDefaultTypeDescription
$background-colorHexadecimal colorBackground colour for the box, this is used as a base for colour theme.
$border-colorDarkened $background-colorFalse/Hexadecimal colourBorder colour.
$border-insettrueBooleanAdd a inset border.
$border-inset-size$border-sizeFalse/Number(px)Inset border size.
$border-inset-colorDarkened $background-colorFalse/Hexadecimal colorInset border colour.
$border-inset-sides'bottom-right'StringWhich sides to add inset border to, 'all', 'top-left' or 'bottom-right'.
$border-inset-sides-br$border-inset-colorFalse/Hexadecimal colorBottom right inset border colour.
$border-inset-sides-tlLightened $background-colorFalse/Hexadecimal colorTop left inset border colour.
+ +

Classes

+ +

A class of .pixel-borders is applied all elements with a pixel border for demo purposes only, you should be able to add pixel borders to any elements.

+ +

The pixel borders mixin comes with a number of classes defined to demonstrate how it can be used. These can be used as is but I would encourage users to create their own customized classes.

+ +
+ + +
+

Demo site

+

Clone or download from Github.

+ +
$ npm install
+$ gulp serve
+
+ +
+ + +
+

Credits

+

Inspired by the excellent NES.css which is a full NES-style CSS framework. Pixel borders is intended to be used where only the borders are required. +

+
+ +
+ + + + + diff --git a/docs/styles/pixel-borders.css b/docs/styles/pixel-borders.css index 0a22bc3..4233d02 100644 --- a/docs/styles/pixel-borders.css +++ b/docs/styles/pixel-borders.css @@ -441,4 +441,4 @@ background-color: #e45b3f; } -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBpeGVsLWJvcmRlcnMuc2NzcyIsInBpeGVsLWJvcmRlcnMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThJQTtFQUNFLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIseUVBQXlFO0FDN0kzRTs7QURrSkE7RUFuSEUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBVmtDO0VBV2xDLHFCQVhrQztFQVlsQyxzQkFBc0I7RUFFdEIseUxBQTBFO0FDN0I1RTs7QURpQnVDO0VBdUh2QztJQXRISSxtQkFBdUU7RUNiekU7QUFDRjs7QURzSUE7RUF2SEUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBVmtDO0VBV2xDLHFCQVhrQztFQVlsQyxzQkFBc0I7RUFFdEIseUxBQTBFO0VBcUIxRSxrQkFBa0I7QUNqQ3BCOztBREF1QztFQTJIdkM7SUExSEksbUJBQXVFO0VDSXpFO0FBQ0Y7O0FENkJFO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQWNaLHdDQW9FOEM7VUFwRTlDLGdDQW9FOEM7QUMzR2xEOztBRCtHQTtFQTVIRSxtQkFBbUI7RUFDbkIsaUJBUHFEO0VBUXJELGtCQVIwRTtFQVUxRSxxQkF5SHNDO0VBeEh0QyxxQkF3SHNDO0VBdkh0QyxzQkFBc0I7RUFFdEIseVJBQTBFO0FDZTVFOztBRDNCdUM7RUFnSXZDO0lBL0hJLG1CQUF1RTtFQytCekU7QUFDRjs7QURtR0E7RUFoSUUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBNkhzQztFQTVIdEMscUJBNEhzQztFQTNIdEMsc0JBQXNCO0VBRXRCLHlSQUEwRTtBQytCNUU7O0FEM0N1QztFQW9JdkM7SUFuSUksbUJBQXVFO0VDK0N6RTtBQUNGOztBRG1GQTtF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Qm5ELGlDQStCbUQ7QUMrT3ZEOztBRHJPRTtFQUNFLHlCQTlCbUQ7QUNzUXZEOztBRDNJQTtFQTNMRSxtQkFBbUI7RUFDbkIsaUJBMkxxRDtFQTFMckQscUJBa0U4QztFQWhFOUMscUJBd0xrQztFQXZMbEMscUJBdUxrQztFQXRMbEMsc0JBQXNCO0VBRXRCLDRMQUEwRTtFQXFCMUUsa0JBQWtCO0VBOERsQix5QkFpR2lGO0FDc0puRjs7QUR0VnVDO0VBK0x2QztJQTlMSSxtQkFBdUU7RUMwVnpFO0FBQ0Y7O0FEelRFO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQWNaLGtFQXVCc0Q7VUF2QnRELDBEQXVCc0Q7QUN3UjFEOztBRHRRRTtFQUNFLHlCQTlCbUQ7QUN1U3ZEOztBRHhLQTtFQUNFLFdBQVc7RUFoTVgsbUJBQW1CO0VBQ25CLGlCQWdNcUQ7RUEvTHJELGtCQStMc0c7RUE3THRHLHFCQTZMa0M7RUE1TGxDLHFCQTRMa0M7RUEzTGxDLHNCQUFzQjtFQUV0Qix5TEFBMEU7RUFxQjFFLGtCQUFrQjtFQThEbEIseUJBc0dpRjtBQ21MbkY7O0FEeFh1QztFQW1NdkM7SUFsTUksbUJBQXVFO0VDNFh6RTtBQUNGOztBRDNWRTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFjWiwyQ0EyQmtEO1VBM0JsRCxtQ0EyQmtEO0FDc1R0RDs7QUR4U0U7RUFDRSx5QkE5Qm1EO0FDeVV2RCIsImZpbGUiOiJwaXhlbC1ib3JkZXJzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdlbmVyYXRlIFNWRyBpbWFnZSBmb3IgcGl4ZWxhdGVkIGNvcm5lcnNcbkBmdW5jdGlvbiBwaXhlbC1ib3JkZXJzLWltYWdlKCRjb3JuZXItc2l6ZSwgJGNvbG9yKSB7XG4gICRzdmc6ICcnO1xuICAkc3ZnLXBhdGg6ICcnO1xuICAkc3ZnLXNpemU6ICRjb3JuZXItc2l6ZSAqIDY7XG4gICRjb2xvcjogc3RyLXJlcGxhY2UoJycgKyAkY29sb3IsICcjJywgJyUyMycpO1xuXG4gIEBpZiAkY29ybmVyLXNpemUgPT0gMSB7XG4gICAgJHN2Zy1wYXRoOiAnTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonO1xuICB9IEBlbHNlIHtcbiAgICAkc3ZnLXBhdGg6ICdNMiAyaDJ2Mkgyek00IDBoMnYySDR6TTEwIDRoMnYyaC0yek0wIDRoMnYySDB6TTYgMGgydjJINnpNOCAyaDJ2Mkg4ek04IDhoMnYySDh6TTYgMTBoMnYySDZ6TTAgNmgydjJIMHpNMTAgNmgydjJoLTJ6TTQgMTBoMnYySDR6TTIgOGgydjJIMnonO1xuICB9XG5cbiAgJHN2ZzogJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVxcJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFwnIHdpZHRoPVxcJyN7JHN2Zy1zaXplfVxcJyBoZWlnaHQ9XFwnI3skc3ZnLXNpemV9XFwnPjxwYXRoIGQ9XFwnI3skc3ZnLXBhdGh9XFwnIGZpbGw9XFwnI3skY29sb3J9XFwnIC8+PC9zdmc+JztcblxuICBAcmV0dXJuICRzdmc7XG59XG5cblxuLy8gU3RyaW5nIHJlcGxhY2UgZnVuY3Rpb24gLSByZXBsYWNlIGAkc2VhcmNoYCB3aXRoIGAkcmVwbGFjZWAgaW4gYCRzdHJpbmdgXG5AZnVuY3Rpb24gc3RyLXJlcGxhY2UoJHN0cmluZywgJHNlYXJjaCwgJHJlcGxhY2U6ICcnKSB7XG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuXG4vLyBQaXhlbCBib3JkZXJcbkBtaXhpbiBwaXhlbC1ib3JkZXJzKCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRib3JkZXItY29sb3I6ICMwMDAsICRib3JkZXItaW5zZXQtY29sb3I6IGZhbHNlKSB7XG5cbiAgQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gICAgYm9yZGVyLXJhZGl1czogKCRib3JkZXItc2l6ZSAqICgkY29ybmVyLXNpemUgKyAyKSkgKyAoJGNvcm5lci1zaXplICogMik7XG4gIH1cblxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6ICRib3JkZXItc2l6ZTtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gIGJvcmRlci1pbWFnZS1zbGljZTogJGNvcm5lci1zaXplICogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAkY29ybmVyLXNpemU7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG5cbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKHBpeGVsLWJvcmRlcnMtaW1hZ2UoJGNvcm5lci1zaXplLCAkYm9yZGVyLWNvbG9yKSk7XG5cbiAgQGlmICRib3JkZXItaW5zZXQtY29sb3Ige1xuICAgIEBpbmNsdWRlIHBpeGVsLWluc2V0LWJvcmRlcigkYm9yZGVyLXNpemUsICRib3JkZXItaW5zZXQtY29sb3IpO1xuICB9XG5cbn1cblxuXG4vLyBQaXhlbCBpbnNldCBib3JkZXJcbkBtaXhpbiBwaXhlbC1pbnNldC1ib3JkZXIoJGJvcmRlci1pbnNldC1zaXplOiA0cHgsICRib3JkZXItaW5zZXQtY29sb3I6ICNkZGQsICRib3JkZXItaW5zZXQtc2lkZXM6ICdib3R0b20tcmlnaHQnLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvci10bDogZmFsc2UpIHtcblxuICAkYm94LXNoYWRvdzogJyc7XG4gIEBpZiBub3QoJGJvcmRlci1pbnNldC1jb2xvci1icikge1xuICAgICRib3JkZXItaW5zZXQtY29sb3ItYnI6ICRib3JkZXItaW5zZXQtY29sb3I7XG4gIH1cblxuICBAaWYgbm90KCRib3JkZXItaW5zZXQtY29sb3ItdGwpIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiAkYm9yZGVyLWluc2V0LWNvbG9yO1xuICB9XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgQGlmICRib3JkZXItaW5zZXQtc2lkZXMgPT0gJ2JvdHRvbS1yaWdodCcgb3IgJGJvcmRlci1pbnNldC1zaWRlcyA9PSBmYWxzZSB7XG4gICAgICAkYm94LXNoYWRvdzogaW5zZXQgLSN7JGJvcmRlci1pbnNldC1zaXplfSAtI3skYm9yZGVyLWluc2V0LXNpemV9ICRib3JkZXItaW5zZXQtY29sb3ItYnI7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItaW5zZXQtc2lkZXMgPT0gJ3RvcC1sZWZ0JyB7XG4gICAgICAkYm94LXNoYWRvdzogaW5zZXQgJGJvcmRlci1pbnNldC1zaXplICRib3JkZXItaW5zZXQtc2l6ZSAkYm9yZGVyLWluc2V0LWNvbG9yLXRsO1xuICAgIH1cblxuICAgIEBpZiAkYm9yZGVyLWluc2V0LXNpZGVzID09ICdhbGwnIHtcbiAgICAgICRib3gtc2hhZG93OiBpbnNldCAtI3skYm9yZGVyLWluc2V0LXNpemV9IC0jeyRib3JkZXItaW5zZXQtc2l6ZX0gJGJvcmRlci1pbnNldC1jb2xvci1iciwgaW5zZXQgJGJvcmRlci1pbnNldC1zaXplICRib3JkZXItaW5zZXQtc2l6ZSAkYm9yZGVyLWluc2V0LWNvbG9yLXRsO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuICB9XG5cbn1cblxuXG4vLyAoJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJvcmRlci1jb2xvcjogIzAwMCwgJGJvcmRlci1pbnNldC1jb2xvcjogZmFsc2UpXG4vLyAoJGJvcmRlci1pbnNldC1zaXplOiA0cHgsICRib3JkZXItaW5zZXQtY29sb3I6ICNkZGQsICRib3JkZXItaW5zZXQtc2lkZXM6ICdib3R0b20tcmlnaHQnLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvci10bDogZmFsc2UpXG5cbi8vIFBpeGVsIGJveCAtIENvbG91cnMgZm9yIGJvcmRlciBhbmQgaW5zZXQgYXJlIGNhbHVsYXRlZCB1c2luZyAkYmFja2dyb3VuZC1jb2xvciB1bmxlc3MgJGJvcmRlci1jb2xvciBpcyBwYXNzZWRcbkBtaXhpbiBwaXhlbC1ib3goJGNvcm5lci1zaXplLCAkYm9yZGVyLXNpemUsICRiYWNrZ3JvdW5kLWNvbG9yLCAkYm9yZGVyLWNvbG9yOiBmYWxzZSwgJGJvcmRlci1pbnNldDogdHJ1ZSwgJGJvcmRlci1pbnNldC1zaXplOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvcjogZmFsc2UsICRib3JkZXItaW5zZXQtc2lkZXM6IGZhbHNlLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvci10bDogZmFsc2UpIHtcbiAgXG4gICRiYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDUpO1xuICAvLyAkYm9yZGVyLWluc2V0LWNvbG9yOiAnJztcblxuICBAaWYgbm90KCRib3JkZXItY29sb3IpIHtcbiAgICAkYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDIwKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGNvcm5lci1zaXplOiAkY29ybmVyLXNpemUsICRib3JkZXItc2l6ZTogJGJvcmRlci1zaXplLCAkYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yKTtcblxuICBAaWYgJGJvcmRlci1pbnNldC1zaWRlcyA9PSAnYWxsJyBhbmQgbm90KCRib3JkZXItaW5zZXQtY29sb3IpIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDEwKTtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiBsaWdodGVuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxNSk7XG4gIH1cblxuICBAaWYgbm90KCRib3JkZXItaW5zZXQtY29sb3IpIHsgXG4gICAgJGJvcmRlci1pbnNldC1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxMCk7XG4gIH1cblxuICBAaWYgJGJvcmRlci1pbnNldC1zaWRlcyA9PSAndG9wLWxlZnQnIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yOiBsaWdodGVuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxNSk7XG4gIH1cblxuXG4gIEBpZiAkYm9yZGVyLWluc2V0IHsgXG4gICAgQGluY2x1ZGUgcGl4ZWwtaW5zZXQtYm9yZGVyKCRib3JkZXItaW5zZXQtc2l6ZTogJGJvcmRlci1zaXplLCAkYm9yZGVyLWluc2V0LWNvbG9yOiAkYm9yZGVyLWluc2V0LWNvbG9yLCAkYm9yZGVyLWluc2V0LXNpZGVzOiAkYm9yZGVyLWluc2V0LXNpZGVzLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiAkYm9yZGVyLWluc2V0LWNvbG9yLWJyLCAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiAkYm9yZGVyLWluc2V0LWNvbG9yLXRsKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICB9XG5cbn1cblxuXG5cblxuXG4vLyBEZW1vIHN0eWxlc1xuLnBpeGVsLWJvcmRlcnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiAwIDE1cHggMTVweCAwO1xuICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIEFyaWFsIEJsYWNrLCBBcmlhbCBCb2xkLCBBcmlhbCwgc2Fucy1zZXJpZjtcbn1cblxuXG4vLyBTaW1wbGUgZXhhbXBsZXMgd2l0aCBkZWZhdWx0IHN0eWxpbmdcbi5waXhlbC1ib3JkZXJzLS0xIHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm9yZGVycygpO1xufVxuXG4ucGl4ZWwtYm9yZGVycy0tMS1pbnNldCB7XG4gIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGJvcmRlci1pbnNldC1jb2xvcjogI2RkZCk7XG59XG5cblxuLnBpeGVsLWJvcmRlcnMtLTIge1xuICBAaW5jbHVkZSBwaXhlbC1ib3JkZXJzKCRjb3JuZXItc2l6ZTogMik7XG59XG5cbi5waXhlbC1ib3JkZXJzLS0yLWluc2V0IHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm9yZGVycygkY29ybmVyLXNpemU6IDIpO1xuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBwaXhlbC1ib3JkZXJzKCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1jb2xvcjogI2RkZCk7XG5cbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWltYWdlLXdpZHRoOiAwIDEgMSAwO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0cHgpO1xuICAgIGhlaWdodDogY2FsYygxMDAlIC0gNHB4KTtcbiAgfVxufVxuXG5cblxuLy8gRXhhbXBsZXMgdXNpbmcgdGhlIHBpeGVsIGJveCBtaXhpbiB0byBjb2xvdXIgY29kZSB0aGUgZWxlbWVudHNcbi5waXhlbC1ib3gtLWxpZ2h0IHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmKTtcbn1cblxuLnBpeGVsLWJveC0tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICMyMDljZWUpO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogIzkyY2M0MSk7XG59IFxuXG4ucGl4ZWwtYm94LS13YXJuaW5nIHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdkNTFkKTtcbn0gXG5cbi5waXhlbC1ib3gtLWVycm9yIHtcbiAgY29sb3I6ICNmZmY7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogI2U3NmU1NSk7XG59IFxuXG5cbi8vIEN1c3RvbSBleGFtcGxlcyB0byBzaG93IGZsZXhpYmlsaXR5IG9mIHRoZSBtaXhpbnNcbi5waXhlbC1ib3gtLWxpZ2h0LWN1c3RvbSB7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogI2ZmZiwgJGJvcmRlci1pbnNldC1jb2xvcjogIzk5OSwgJGJvcmRlci1pbnNldC1zaWRlczogJ2FsbCcpO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICMyMDljZWUsICRib3JkZXItaW5zZXQ6IGZhbHNlKTtcbn1cblxuLnBpeGVsLWJveC0tc3VjY2Vzcy1jdXN0b20ge1xuICBjb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjOTJjYzQxLCAkYm9yZGVyLWluc2V0LXNpZGVzOiAndG9wLWxlZnQnKTtcbn0gXG5cbi5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tIHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdkNTFkLCAkYm9yZGVyLWluc2V0LXNpZGVzOiAnYWxsJyk7XG59IFxuXG4ucGl4ZWwtYm94LS1lcnJvci1jdXN0b20ge1xuICBjb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2ZTU1LCAkYm9yZGVyLWNvbG9yOiAjMDAwKTtcbn0gXG4iLCIucGl4ZWwtYm9yZGVycyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMTVweCAxNXB4IDA7XG4gIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgQXJpYWwgQmxhY2ssIEFyaWFsIEJvbGQsIEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuXG4ucGl4ZWwtYm9yZGVycy0tMSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICMwMDA7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjMwMDAnIC8+PC9zdmc+XCIpO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJvcmRlcnMtLTEge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJvcmRlcnMtLTEtaW5zZXQge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzMDAwJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJvcmRlcnMtLTEtaW5zZXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJvcmRlcnMtLTEtaW5zZXQ6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICNkZGQ7XG59XG5cbi5waXhlbC1ib3JkZXJzLS0yIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiA0O1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDI7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJz48cGF0aCBkPSdNMiAyaDJ2Mkgyek00IDBoMnYySDR6TTEwIDRoMnYyaC0yek0wIDRoMnYySDB6TTYgMGgydjJINnpNOCAyaDJ2Mkg4ek04IDhoMnYySDh6TTYgMTBoMnYySDZ6TTAgNmgydjJIMHpNMTAgNmgydjJoLTJ6TTQgMTBoMnYySDR6TTIgOGgydjJIMnonIGZpbGw9JyUyMzAwMCcgLz48L3N2Zz5cIik7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm9yZGVycy0tMiB7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm9yZGVycy0tMi1pbnNldCB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICMwMDA7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogNDtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAyO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PScxMic+PHBhdGggZD0nTTIgMmgydjJIMnpNNCAwaDJ2Mkg0ek0xMCA0aDJ2MmgtMnpNMCA0aDJ2Mkgwek02IDBoMnYySDZ6TTggMmgydjJIOHpNOCA4aDJ2Mkg4ek02IDEwaDJ2Mkg2ek0wIDZoMnYySDB6TTEwIDZoMnYyaC0yek00IDEwaDJ2Mkg0ek0yIDhoMnYySDJ6JyBmaWxsPSclMjMwMDAnIC8+PC9zdmc+XCIpO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJvcmRlcnMtLTItaW5zZXQge1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIH1cbn1cblxuLnBpeGVsLWJvcmRlcnMtLTItaW5zZXQ6OmFmdGVyIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2RkZCcgLz48L3N2Zz5cIik7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMCAxIDEgMDtcbiAgd2lkdGg6IGNhbGMoMTAwJSAtIDRweCk7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gNHB4KTtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3JkZXJzLS0yLWluc2V0OjphZnRlciB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1saWdodCB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICNjY2NjY2M7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjNjY2NjY2MnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1saWdodCB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1saWdodDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2U2ZTVlNTtcbn1cblxuLnBpeGVsLWJveC0tbGlnaHQ6aG92ZXIsIC5waXhlbC1ib3gtLWxpZ2h0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbn1cblxuLnBpeGVsLWJveC0tcHJpbWFyeSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMGM2MzljO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzMGM2MzljJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjA5Y2VlO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJveC0tcHJpbWFyeSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5OjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjMTA4MWNiO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5OmhvdmVyLCAucGl4ZWwtYm94LS1wcmltYXJ5OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzExOTBlMztcbn1cblxuLnBpeGVsLWJveC0tc3VjY2VzcyB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjNWI4NDIzO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzNWI4NDIzJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJjYzQxO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJveC0tc3VjY2VzcyB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjNzdhYzJlO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzOmhvdmVyLCAucGl4ZWwtYm94LS1zdWNjZXNzOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg1YzAzNDtcbn1cblxuLnBpeGVsLWJveC0td2FybmluZyB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICNhODhmMDY7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjNhODhmMDYnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Q1MWQ7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS13YXJuaW5nIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmc6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICNkOWI5MDg7XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmc6aG92ZXIsIC5waXhlbC1ib3gtLXdhcm5pbmc6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJjZTA5O1xufVxuXG4ucGl4ZWwtYm94LS1lcnJvciB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjYmMzNjFhO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzYmMzNjFhJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2ZTU1O1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJveC0tZXJyb3Ige1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJveC0tZXJyb3I6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICNlMTQ4Mjg7XG59XG5cbi5waXhlbC1ib3gtLWVycm9yOmhvdmVyLCAucGl4ZWwtYm94LS1lcnJvcjpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNDViM2Y7XG59XG5cbi5waXhlbC1ib3gtLWxpZ2h0LWN1c3RvbSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICNjY2NjY2M7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjNjY2NjY2MnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1saWdodC1jdXN0b20ge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjOTk5LCBpbnNldCA0cHggNHB4ICM5OTk7XG59XG5cbi5waXhlbC1ib3gtLWxpZ2h0LWN1c3RvbTpob3ZlciwgLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMjtcbn1cblxuLnBpeGVsLWJveC0tcHJpbWFyeS1jdXN0b20ge1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzBjNjM5YztcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyMzBjNjM5YycgLz48L3N2Zz5cIik7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMDljZWU7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbTpob3ZlciwgLnBpeGVsLWJveC0tcHJpbWFyeS1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTE5MGUzO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjNWI4NDIzO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzNWI4NDIzJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTJjYzQxO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJveC0tc3VjY2Vzcy1jdXN0b20ge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJveC0tc3VjY2Vzcy1jdXN0b206OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgNHB4IDRweCAjYjVkYzdkO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbTpob3ZlciwgLnBpeGVsLWJveC0tc3VjY2Vzcy1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODVjMDM0O1xufVxuXG4ucGl4ZWwtYm94LS13YXJuaW5nLWN1c3RvbSB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICNhODhmMDY7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjNhODhmMDYnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Q1MWQ7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS13YXJuaW5nLWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS13YXJuaW5nLWN1c3RvbTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2Q5YjkwOCwgaW5zZXQgNHB4IDRweCAjZmFlMzY3O1xufVxuXG4ucGl4ZWwtYm94LS13YXJuaW5nLWN1c3RvbTpob3ZlciwgLnBpeGVsLWJveC0td2FybmluZy1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJjZTA5O1xufVxuXG4ucGl4ZWwtYm94LS1lcnJvci1jdXN0b20ge1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyMzAwMCcgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U3NmU1NTtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLWVycm9yLWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1lcnJvci1jdXN0b206OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICNlMTQ4Mjg7XG59XG5cbi5waXhlbC1ib3gtLWVycm9yLWN1c3RvbTpob3ZlciwgLnBpeGVsLWJveC0tZXJyb3ItY3VzdG9tOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0NWIzZjtcbn1cbiJdfQ== */ +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBpeGVsLWJvcmRlcnMuc2NzcyIsInBpeGVsLWJvcmRlcnMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlJQTtFQUNFLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIseUVBQXlFO0FDeEkzRTs7QUQ2SUE7RUE5R0UsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBVmtDO0VBV2xDLHFCQVhrQztFQVlsQyxzQkFBc0I7RUFFdEIseUxBQTBFO0FDN0I1RTs7QURpQnVDO0VBa0h2QztJQWpISSxtQkFBdUU7RUNiekU7QUFDRjs7QURpSUE7RUFsSEUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBVmtDO0VBV2xDLHFCQVhrQztFQVlsQyxzQkFBc0I7RUFFdEIseUxBQTBFO0VBcUIxRSxrQkFBa0I7QUNqQ3BCOztBREF1QztFQXNIdkM7SUFySEksbUJBQXVFO0VDSXpFO0FBQ0Y7O0FENkJFO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQWNaLHdDQStEOEM7VUEvRDlDLGdDQStEOEM7QUN0R2xEOztBRDBHQTtFQXZIRSxtQkFBbUI7RUFDbkIsaUJBUHFEO0VBUXJELGtCQVIwRTtFQVUxRSxxQkFvSHNDO0VBbkh0QyxxQkFtSHNDO0VBbEh0QyxzQkFBc0I7RUFFdEIseVJBQTBFO0FDZTVFOztBRDNCdUM7RUEySHZDO0lBMUhJLG1CQUF1RTtFQytCekU7QUFDRjs7QUQ4RkE7RUEzSEUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBd0hzQztFQXZIdEMscUJBdUhzQztFQXRIdEMsc0JBQXNCO0VBRXRCLHlSQUEwRTtBQytCNUU7O0FEM0N1QztFQStIdkM7SUE5SEksbUJBQXVFO0VDK0N6RTtBQUNGOztBRDhFQTtF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Qm5ELGlDQTRCbUQ7QUNrUHZEOztBRHhPRTtFQUNFLHlCQTdCbUQ7QUN3UXZEOztBRGhKQTtFQXRMRSxtQkFBbUI7RUFDbkIsaUJBc0xxRDtFQXJMckQscUJBK0Q4QztFQTdEOUMscUJBbUxrQztFQWxMbEMscUJBa0xrQztFQWpMbEMsc0JBQXNCO0VBRXRCLDRMQUEwRTtFQXFCMUUsa0JBQWtCO0VBMkRsQix5QkErRmlGO0FDMkpuRjs7QUR0VnVDO0VBMEx2QztJQXpMSSxtQkFBdUU7RUMwVnpFO0FBQ0Y7O0FEelRFO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQWNaLGtFQW9Cc0Q7VUFwQnRELDBEQW9Cc0Q7QUMyUjFEOztBRHpRRTtFQUNFLHlCQTdCbUQ7QUN5U3ZEOztBRDdLQTtFQUNFLFdBQVc7RUEzTFgsbUJBQW1CO0VBQ25CLGlCQTJMcUQ7RUExTHJELGtCQTBMc0c7RUF4THRHLHFCQXdMa0M7RUF2TGxDLHFCQXVMa0M7RUF0TGxDLHNCQUFzQjtFQUV0Qix5TEFBMEU7RUFxQjFFLGtCQUFrQjtFQTJEbEIseUJBb0dpRjtBQ3dMbkY7O0FEeFh1QztFQThMdkM7SUE3TEksbUJBQXVFO0VDNFh6RTtBQUNGOztBRDNWRTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFjWiwyQ0F3QmtEO1VBeEJsRCxtQ0F3QmtEO0FDeVR0RDs7QUQzU0U7RUFDRSx5QkE3Qm1EO0FDMlV2RCIsImZpbGUiOiJwaXhlbC1ib3JkZXJzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdlbmVyYXRlIFNWRyBpbWFnZSBmb3IgcGl4ZWxhdGVkIGNvcm5lcnNcbkBmdW5jdGlvbiBwaXhlbC1ib3JkZXJzLWltYWdlKCRjb3JuZXItc2l6ZSwgJGNvbG9yKSB7XG4gICRzdmc6ICcnO1xuICAkc3ZnLXBhdGg6ICcnO1xuICAkc3ZnLXNpemU6ICRjb3JuZXItc2l6ZSAqIDY7XG4gICRjb2xvcjogc3RyLXJlcGxhY2UoJycgKyAkY29sb3IsICcjJywgJyUyMycpO1xuXG4gIEBpZiAkY29ybmVyLXNpemUgPT0gMSB7XG4gICAgJHN2Zy1wYXRoOiAnTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonO1xuICB9IEBlbHNlIHtcbiAgICAkc3ZnLXBhdGg6ICdNMiAyaDJ2Mkgyek00IDBoMnYySDR6TTEwIDRoMnYyaC0yek0wIDRoMnYySDB6TTYgMGgydjJINnpNOCAyaDJ2Mkg4ek04IDhoMnYySDh6TTYgMTBoMnYySDZ6TTAgNmgydjJIMHpNMTAgNmgydjJoLTJ6TTQgMTBoMnYySDR6TTIgOGgydjJIMnonO1xuICB9XG5cbiAgJHN2ZzogJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVxcJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFwnIHdpZHRoPVxcJyN7JHN2Zy1zaXplfVxcJyBoZWlnaHQ9XFwnI3skc3ZnLXNpemV9XFwnPjxwYXRoIGQ9XFwnI3skc3ZnLXBhdGh9XFwnIGZpbGw9XFwnI3skY29sb3J9XFwnIC8+PC9zdmc+JztcblxuICBAcmV0dXJuICRzdmc7XG59XG5cblxuLy8gU3RyaW5nIHJlcGxhY2UgZnVuY3Rpb24gLSByZXBsYWNlIGAkc2VhcmNoYCB3aXRoIGAkcmVwbGFjZWAgaW4gYCRzdHJpbmdgXG5AZnVuY3Rpb24gc3RyLXJlcGxhY2UoJHN0cmluZywgJHNlYXJjaCwgJHJlcGxhY2U6ICcnKSB7XG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuXG4vLyBQaXhlbCBib3JkZXJcbkBtaXhpbiBwaXhlbC1ib3JkZXJzKCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRib3JkZXItY29sb3I6ICMwMDAsICRib3JkZXItaW5zZXQtY29sb3I6IGZhbHNlKSB7XG5cbiAgQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gICAgYm9yZGVyLXJhZGl1czogKCRib3JkZXItc2l6ZSAqICgkY29ybmVyLXNpemUgKyAyKSkgKyAoJGNvcm5lci1zaXplICogMik7XG4gIH1cblxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6ICRib3JkZXItc2l6ZTtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gIGJvcmRlci1pbWFnZS1zbGljZTogJGNvcm5lci1zaXplICogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAkY29ybmVyLXNpemU7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG5cbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKHBpeGVsLWJvcmRlcnMtaW1hZ2UoJGNvcm5lci1zaXplLCAkYm9yZGVyLWNvbG9yKSk7XG5cbiAgQGlmICRib3JkZXItaW5zZXQtY29sb3Ige1xuICAgIEBpbmNsdWRlIHBpeGVsLWluc2V0LWJvcmRlcigkYm9yZGVyLXNpemUsICRib3JkZXItaW5zZXQtY29sb3IpO1xuICB9XG5cbn1cblxuXG4vLyBQaXhlbCBpbnNldCBib3JkZXJcbkBtaXhpbiBwaXhlbC1pbnNldC1ib3JkZXIoJGJvcmRlci1pbnNldC1zaXplOiA0cHgsICRib3JkZXItaW5zZXQtY29sb3I6ICNkZGQsICRib3JkZXItaW5zZXQtc2lkZXM6ICdib3R0b20tcmlnaHQnLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvci10bDogZmFsc2UpIHtcblxuICAkYm94LXNoYWRvdzogJyc7XG4gIEBpZiBub3QoJGJvcmRlci1pbnNldC1jb2xvci1icikge1xuICAgICRib3JkZXItaW5zZXQtY29sb3ItYnI6ICRib3JkZXItaW5zZXQtY29sb3I7XG4gIH1cblxuICBAaWYgbm90KCRib3JkZXItaW5zZXQtY29sb3ItdGwpIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiAkYm9yZGVyLWluc2V0LWNvbG9yO1xuICB9XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgQGlmICRib3JkZXItaW5zZXQtc2lkZXMgPT0gJ2JvdHRvbS1yaWdodCcgb3IgJGJvcmRlci1pbnNldC1zaWRlcyA9PSBmYWxzZSB7XG4gICAgICAkYm94LXNoYWRvdzogaW5zZXQgLSN7JGJvcmRlci1pbnNldC1zaXplfSAtI3skYm9yZGVyLWluc2V0LXNpemV9ICRib3JkZXItaW5zZXQtY29sb3ItYnI7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItaW5zZXQtc2lkZXMgPT0gJ3RvcC1sZWZ0JyB7XG4gICAgICAkYm94LXNoYWRvdzogaW5zZXQgJGJvcmRlci1pbnNldC1zaXplICRib3JkZXItaW5zZXQtc2l6ZSAkYm9yZGVyLWluc2V0LWNvbG9yLXRsO1xuICAgIH1cblxuICAgIEBpZiAkYm9yZGVyLWluc2V0LXNpZGVzID09ICdhbGwnIHtcbiAgICAgICRib3gtc2hhZG93OiBpbnNldCAtI3skYm9yZGVyLWluc2V0LXNpemV9IC0jeyRib3JkZXItaW5zZXQtc2l6ZX0gJGJvcmRlci1pbnNldC1jb2xvci1iciwgaW5zZXQgJGJvcmRlci1pbnNldC1zaXplICRib3JkZXItaW5zZXQtc2l6ZSAkYm9yZGVyLWluc2V0LWNvbG9yLXRsO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuICB9XG5cbn1cblxuXG5cbi8vIFBpeGVsIGJveCAtIENvbG91cnMgZm9yIGJvcmRlciBhbmQgaW5zZXQgYXJlIGNhbGN1bGF0ZWQgdXNpbmcgJGJhY2tncm91bmQtY29sb3IgdW5sZXNzICRib3JkZXItY29sb3IgaXMgcGFzc2VkXG5AbWl4aW4gcGl4ZWwtYm94KCRjb3JuZXItc2l6ZSwgJGJvcmRlci1zaXplLCAkYmFja2dyb3VuZC1jb2xvciwgJGJvcmRlci1jb2xvcjogZmFsc2UsICRib3JkZXItaW5zZXQ6IHRydWUsICRib3JkZXItaW5zZXQtc2l6ZTogZmFsc2UsICRib3JkZXItaW5zZXQtY29sb3I6IGZhbHNlLCAkYm9yZGVyLWluc2V0LXNpZGVzOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvci1icjogZmFsc2UsICRib3JkZXItaW5zZXQtY29sb3ItdGw6IGZhbHNlKSB7XG4gIFxuICAkYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogZGFya2VuKCRiYWNrZ3JvdW5kLWNvbG9yLCA1KTtcblxuICBAaWYgbm90KCRib3JkZXItY29sb3IpIHtcbiAgICAkYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDIwKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGNvcm5lci1zaXplOiAkY29ybmVyLXNpemUsICRib3JkZXItc2l6ZTogJGJvcmRlci1zaXplLCAkYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yKTtcblxuICBAaWYgJGJvcmRlci1pbnNldC1zaWRlcyA9PSAnYWxsJyBhbmQgbm90KCRib3JkZXItaW5zZXQtY29sb3IpIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDEwKTtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiBsaWdodGVuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxNSk7XG4gIH1cblxuICBAaWYgbm90KCRib3JkZXItaW5zZXQtY29sb3IpIHsgXG4gICAgJGJvcmRlci1pbnNldC1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxMCk7XG4gIH1cblxuICBAaWYgJGJvcmRlci1pbnNldC1zaWRlcyA9PSAndG9wLWxlZnQnIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yOiBsaWdodGVuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxNSk7XG4gIH1cblxuXG4gIEBpZiAkYm9yZGVyLWluc2V0IHsgXG4gICAgQGluY2x1ZGUgcGl4ZWwtaW5zZXQtYm9yZGVyKCRib3JkZXItaW5zZXQtc2l6ZTogJGJvcmRlci1zaXplLCAkYm9yZGVyLWluc2V0LWNvbG9yOiAkYm9yZGVyLWluc2V0LWNvbG9yLCAkYm9yZGVyLWluc2V0LXNpZGVzOiAkYm9yZGVyLWluc2V0LXNpZGVzLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiAkYm9yZGVyLWluc2V0LWNvbG9yLWJyLCAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiAkYm9yZGVyLWluc2V0LWNvbG9yLXRsKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICB9XG5cbn1cblxuXG5cbi8vIC0tLS0tIERlbW8gc3R5bGVzIC0tLS0tXG4ucGl4ZWwtYm9yZGVycyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMTVweCAxNXB4IDA7XG4gIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgQXJpYWwgQmxhY2ssIEFyaWFsIEJvbGQsIEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuXG5cbi8vIFNpbXBsZSBleGFtcGxlcyB3aXRoIGRlZmF1bHQgc3R5bGluZ1xuLnBpeGVsLWJvcmRlcnMtLTEge1xuICBAaW5jbHVkZSBwaXhlbC1ib3JkZXJzKCk7XG59XG5cbi5waXhlbC1ib3JkZXJzLS0xLWluc2V0IHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm9yZGVycygkYm9yZGVyLWluc2V0LWNvbG9yOiAjZGRkKTtcbn1cblxuXG4ucGl4ZWwtYm9yZGVycy0tMiB7XG4gIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGNvcm5lci1zaXplOiAyKTtcbn1cblxuLnBpeGVsLWJvcmRlcnMtLTItaW5zZXQge1xuICBAaW5jbHVkZSBwaXhlbC1ib3JkZXJzKCRjb3JuZXItc2l6ZTogMik7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLWNvbG9yOiAjZGRkKTtcblxuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBib3JkZXItaW1hZ2Utd2lkdGg6IDAgMSAxIDA7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDRweCk7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpO1xuICB9XG59XG5cblxuXG4vLyBFeGFtcGxlcyB1c2luZyB0aGUgcGl4ZWwgYm94IG1peGluIHRvIGNvbG91ciBjb2RlIHRoZSBlbGVtZW50c1xuLnBpeGVsLWJveC0tbGlnaHQge1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNmZmYpO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogIzIwOWNlZSk7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3Mge1xuICBjb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjOTJjYzQxKTtcbn0gXG5cbi5waXhlbC1ib3gtLXdhcm5pbmcge1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNmN2Q1MWQpO1xufSBcblxuLnBpeGVsLWJveC0tZXJyb3Ige1xuICBjb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2ZTU1KTtcbn0gXG5cblxuLy8gQ3VzdG9tIGV4YW1wbGVzIHRvIHNob3cgZmxleGliaWxpdHkgb2YgdGhlIG1peGluc1xuLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tIHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmLCAkYm9yZGVyLWluc2V0LWNvbG9yOiAjOTk5LCAkYm9yZGVyLWluc2V0LXNpZGVzOiAnYWxsJyk7XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnktY3VzdG9tIHtcbiAgY29sb3I6ICNmZmY7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogIzIwOWNlZSwgJGJvcmRlci1pbnNldDogZmFsc2UpO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICM5MmNjNDEsICRib3JkZXItaW5zZXQtc2lkZXM6ICd0b3AtbGVmdCcpO1xufSBcblxuLnBpeGVsLWJveC0td2FybmluZy1jdXN0b20ge1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNmN2Q1MWQsICRib3JkZXItaW5zZXQtc2lkZXM6ICdhbGwnKTtcbn0gXG5cbi5waXhlbC1ib3gtLWVycm9yLWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNlNzZlNTUsICRib3JkZXItY29sb3I6ICMwMDApO1xufSBcbiIsIi5waXhlbC1ib3JkZXJzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAxNXB4IDE1cHggMDtcbiAgcGFkZGluZzogMTVweCAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBBcmlhbCBCbGFjaywgQXJpYWwgQm9sZCwgQXJpYWwsIHNhbnMtc2VyaWY7XG59XG5cbi5waXhlbC1ib3JkZXJzLS0xIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyMzAwMCcgLz48L3N2Zz5cIik7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm9yZGVycy0tMSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm9yZGVycy0tMS1pbnNldCB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICMwMDA7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjMwMDAnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm9yZGVycy0tMS1pbnNldCB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm9yZGVycy0tMS1pbnNldDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2RkZDtcbn1cblxuLnBpeGVsLWJvcmRlcnMtLTIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDQ7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMjtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nMTInPjxwYXRoIGQ9J00yIDJoMnYySDJ6TTQgMGgydjJINHpNMTAgNGgydjJoLTJ6TTAgNGgydjJIMHpNNiAwaDJ2Mkg2ek04IDJoMnYySDh6TTggOGgydjJIOHpNNiAxMGgydjJINnpNMCA2aDJ2Mkgwek0xMCA2aDJ2MmgtMnpNNCAxMGgydjJINHpNMiA4aDJ2MkgyeicgZmlsbD0nJTIzMDAwJyAvPjwvc3ZnPlwiKTtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3JkZXJzLS0yIHtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3JkZXJzLS0yLWluc2V0IHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiA0O1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDI7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJz48cGF0aCBkPSdNMiAyaDJ2Mkgyek00IDBoMnYySDR6TTEwIDRoMnYyaC0yek0wIDRoMnYySDB6TTYgMGgydjJINnpNOCAyaDJ2Mkg4ek04IDhoMnYySDh6TTYgMTBoMnYySDZ6TTAgNmgydjJIMHpNMTAgNmgydjJoLTJ6TTQgMTBoMnYySDR6TTIgOGgydjJIMnonIGZpbGw9JyUyMzAwMCcgLz48L3N2Zz5cIik7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm9yZGVycy0tMi1pbnNldCB7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm9yZGVycy0tMi1pbnNldDo6YWZ0ZXIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzZGRkJyAvPjwvc3ZnPlwiKTtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAwIDEgMSAwO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNHB4KTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJvcmRlcnMtLTItaW5zZXQ6OmFmdGVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLWxpZ2h0IHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2NjY2NjYztcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2NjY2NjYycgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLWxpZ2h0IHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLWxpZ2h0OjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjZTZlNWU1O1xufVxuXG4ucGl4ZWwtYm94LS1saWdodDpob3ZlciwgLnBpeGVsLWJveC0tbGlnaHQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICMwYzYzOWM7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjMwYzYzOWMnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMDljZWU7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1wcmltYXJ5IHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnk6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICMxMDgxY2I7XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnk6aG92ZXIsIC5waXhlbC1ib3gtLXByaW1hcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTE5MGUzO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICM1Yjg0MjM7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjM1Yjg0MjMnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MmNjNDE7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1zdWNjZXNzIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3M6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICM3N2FjMmU7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3M6aG92ZXIsIC5waXhlbC1ib3gtLXN1Y2Nlc3M6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODVjMDM0O1xufVxuXG4ucGl4ZWwtYm94LS13YXJuaW5nIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2E4OGYwNjtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2E4OGYwNicgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZDUxZDtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLXdhcm5pbmcge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJveC0td2FybmluZzo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2Q5YjkwODtcbn1cblxuLnBpeGVsLWJveC0td2FybmluZzpob3ZlciwgLnBpeGVsLWJveC0td2FybmluZzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmNlMDk7XG59XG5cbi5waXhlbC1ib3gtLWVycm9yIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICNiYzM2MWE7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjNiYzM2MWEnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNzZlNTU7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1lcnJvciB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1lcnJvcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2UxNDgyODtcbn1cblxuLnBpeGVsLWJveC0tZXJyb3I6aG92ZXIsIC5waXhlbC1ib3gtLWVycm9yOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0NWIzZjtcbn1cblxuLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2NjY2NjYztcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2NjY2NjYycgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLWxpZ2h0LWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1saWdodC1jdXN0b206OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICM5OTksIGluc2V0IDRweCA0cHggIzk5OTtcbn1cblxuLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1saWdodC1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMGM2MzljO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzMGM2MzljJyAvPjwvc3ZnPlwiKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIwOWNlZTtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLXByaW1hcnktY3VzdG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnktY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMTkwZTM7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3MtY3VzdG9tIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICM1Yjg0MjM7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjM1Yjg0MjMnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MmNjNDE7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCA0cHggNHB4ICNiNWRjN2Q7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3MtY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4NWMwMzQ7XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2E4OGYwNjtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2E4OGYwNicgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZDUxZDtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjZDliOTA4LCBpbnNldCA0cHggNHB4ICNmYWUzNjc7XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS13YXJuaW5nLWN1c3RvbTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmNlMDk7XG59XG5cbi5waXhlbC1ib3gtLWVycm9yLWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzMDAwJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2ZTU1O1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJveC0tZXJyb3ItY3VzdG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLWVycm9yLWN1c3RvbTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2UxNDgyODtcbn1cblxuLnBpeGVsLWJveC0tZXJyb3ItY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1lcnJvci1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQ1YjNmO1xufVxuIl19 */ diff --git a/docs/styles/site.css b/docs/styles/site.css index 67cea59..5833eab 100644 --- a/docs/styles/site.css +++ b/docs/styles/site.css @@ -351,7 +351,7 @@ template { body { font-family: "Lato", -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: 1rem; - font-weight: 300; + font-weight: 400; line-height: 1.5; color: #333; background-color: #fff; @@ -377,119 +377,170 @@ h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { } h1, h2 { - margin: 0 0 20px 0; + margin: 0 0 1rem 0; } h3, h4, h5, h6 { - margin: 0 0 15px 0; + margin: 0 0 .5rem 0; } h1 { - font-size: 38px; + font-size: 2.5rem; } h2 { - font-size: 34px; + font-size: 2rem; } h3 { - font-size: 26px; + font-size: 1.75rem; } h4 { - font-size: 20px; + font-size: 1.5rem; } h5 { - font-size: 16px; + font-size: 1.25rem; } h6 { - font-size: 14px; + font-size: 1rem; } p { - margin: 0 0 15px 0; + margin: 0 0 1rem 0; } -strong { - font-weight: 400; +strong, th { + font-weight: 800; +} + +pre, code { + font-family: 'Cutive Mono', monospace; + background-color: #f3f3f3; +} + +pre { + display: block; + padding: .75rem 1rem; + margin: 0 0 1.5rem 0; + overflow: auto; + font-size: 1rem; + word-break: break-all; + word-wrap: break-word; + border: 1px solid #bbb; + border-radius: 4px; +} + +.table { + width: 100%; + margin: 0 0 1rem 0; + border-collapse: collapse; +} + +.table th, .table td { + padding: .25rem .5rem; + text-align: left; + vertical-align: top; + border: 1px solid #ddd; +} + +.fullwidth .container { + width: 100%; + padding: 2rem 0; +} + +.fullwidth--sm .container { + padding: 1rem 0; } .container { width: 100%; max-width: 1140px; - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; + margin: 0 auto; + padding: 0 1rem; +} + +.subsection { + margin: 0 0 2rem 0; +} + +.separator { + border-bottom: 1px solid #ddd; } .header { - position: fixed; + position: -webkit-sticky; + position: sticky; top: 0; z-index: 100; width: 100%; - padding: 15px 0; + padding: .5rem 0; color: #fff; background-color: #1976D2; -webkit-box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.1); box-shadow: 0 0 6px 6px rgba(0, 0, 0, 0.1); } +@media (min-width: 768px) { + .header { + padding: 1rem 0; + } +} + +.header .container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +@media (max-width: 767px) { + .header .container { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-flow: column; + flex-flow: column; + } +} + +@media (min-width: 768px) { + .header .container { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + } +} + .logo-text { margin: 0; } @media (max-width: 767px) { .logo-text { - font-size: 25px; + font-size: 1.75rem; } } -@media (min-width: 768px) { - .logo-text { - display: inline-block; - } +.header--links .btn-demo { + margin: .5rem 0; } -.header--links .btn { - margin: 0; - margin-top: 7px; -} - -.header--links .btn:last-child { - margin-left: 7px; +.header--links .btn-demo:last-child { + margin-left: .5rem; } @media (min-width: 768px) { .header--links { - float: right; + margin-left: auto; } } .footer { - padding-top: 15px; - padding-bottom: 15px; - font-size: 12px; text-align: center; } -.demo { - margin-top: 40px; - margin-bottom: 40px; -} - -.demo--intro { - margin-top: 20px; - border-bottom: 1px solid #ddd; -} - -.demo--intro p:last-child { - padding-bottom: 20px; -} - -.btn { +.btn-demo { display: inline-block; text-align: center; vertical-align: middle; @@ -503,33 +554,18 @@ strong { transition: background-color .3s, color .3s; } -.btn:hover, .btn:active { +.btn-demo:hover, .btn-demo:active { background-color: #f3f3f3; } -.btn-white { +.btn-demo--white { color: #fff; border-color: #fff; background-color: transparent; } -.install .btn { - margin-right: 15px; - margin-bottom: 15px; +.m-0 { + margin: 0; } -pre { - display: block; - padding: 10px 15px; - margin: 0 0 20px 0; - overflow: auto; - font-family: 'Cutive Mono', monospace; - font-size: 14px; - word-break: break-all; - word-wrap: break-word; - background-color: #f3f3f3; - border: 1px solid #bbb; - border-radius: 4px; -} - -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9ub3JtYWxpemUuc2NzcyIsInNpdGUuY3NzIiwic2l0ZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUFBO0FBRUE7K0VDQStFO0FERy9FOzs7RUNDRTtBRElGO0VBQ0UsaUJBQWlCO0VBQUUsTUFBQTtFQUNuQiw4QkFBOEI7RUFBRSxNQUFBO0FDQWxDOztBREdBOytFQ0ErRTtBREcvRTs7RUNBRTtBRElGO0VBQ0UsU0FBUztBQ0ZYOztBREtBOztFQ0RFO0FES0Y7RUFDRSxjQUFjO0FDSGhCOztBRE1BOzs7RUNERTtBRE1GO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtBQ0psQjs7QURPQTsrRUNKK0U7QURPL0U7OztFQ0hFO0FEUUY7RUFDRSwrQkFBdUI7VUFBdkIsdUJBQXVCO0VBQUUsTUFBQTtFQUN6QixTQUFTO0VBQUUsTUFBQTtFQUNYLGlCQUFpQjtFQUFFLE1BQUE7QUNIckI7O0FETUE7OztFQ0RFO0FETUY7RUFDRSxpQ0FBaUM7RUFBRSxNQUFBO0VBQ25DLGNBQWM7RUFBRSxNQUFBO0FDRmxCOztBREtBOytFQ0YrRTtBREsvRTs7RUNGRTtBRE1GO0VBQ0UsNkJBQTZCO0FDSi9COztBRE9BOzs7RUNGRTtBRE9GO0VBQ0UsbUJBQW1CO0VBQUUsTUFBQTtFQUNyQiwwQkFBMEI7RUFBRSxNQUFBO0VBQzVCLHlDQUFpQztVQUFqQyxpQ0FBaUM7RUFBRSxNQUFBO0FDRnJDOztBREtBOztFQ0RFO0FES0Y7O0VBRUUsbUJBQW1CO0FDSHJCOztBRE1BOzs7RUNERTtBRE1GOzs7RUFHRSxpQ0FBaUM7RUFBRSxNQUFBO0VBQ25DLGNBQWM7RUFBRSxNQUFBO0FDRmxCOztBREtBOztFQ0RFO0FES0Y7RUFDRSxjQUFjO0FDSGhCOztBRE1BOzs7RUNERTtBRE1GOztFQUVFLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHdCQUF3QjtBQ0oxQjs7QURPQTtFQUNFLGVBQWU7QUNKakI7O0FET0E7RUFDRSxXQUFXO0FDSmI7O0FET0E7K0VDSitFO0FETy9FOztFQ0pFO0FEUUY7RUFDRSxrQkFBa0I7QUNOcEI7O0FEU0E7K0VDTitFO0FEUy9FOzs7RUNMRTtBRFVGOzs7OztFQUtFLG9CQUFvQjtFQUFFLE1BQUE7RUFDdEIsZUFBZTtFQUFFLE1BQUE7RUFDakIsaUJBQWlCO0VBQUUsTUFBQTtFQUNuQixTQUFTO0VBQUUsTUFBQTtBQ0piOztBRE9BOzs7RUNGRTtBRE9GOztFQUNRLE1BQUE7RUFDTixpQkFBaUI7QUNKbkI7O0FET0E7OztFQ0ZFO0FET0Y7O0VBQ1MsTUFBQTtFQUNQLG9CQUFvQjtBQ0p0Qjs7QURPQTs7RUNIRTtBRE9GOzs7O0VBSUUsMEJBQTBCO0FDTDVCOztBRFFBOztFQ0pFO0FEUUY7Ozs7RUFJRSxrQkFBa0I7RUFDbEIsVUFBVTtBQ05aOztBRFNBOztFQ0xFO0FEU0Y7Ozs7RUFJRSw4QkFBOEI7QUNQaEM7O0FEVUE7O0VDTkU7QURVRjtFQUNFLDhCQUE4QjtBQ1JoQzs7QURXQTs7Ozs7RUNKRTtBRFdGO0VBQ0UsOEJBQXNCO1VBQXRCLHNCQUFzQjtFQUFFLE1BQUE7RUFDeEIsY0FBYztFQUFFLE1BQUE7RUFDaEIsY0FBYztFQUFFLE1BQUE7RUFDaEIsZUFBZTtFQUFFLE1BQUE7RUFDakIsVUFBVTtFQUFFLE1BQUE7RUFDWixtQkFBbUI7RUFBRSxNQUFBO0FDSHZCOztBRE1BOztFQ0ZFO0FETUY7RUFDRSx3QkFBd0I7QUNKMUI7O0FET0E7O0VDSEU7QURPRjtFQUNFLGNBQWM7QUNMaEI7O0FEUUE7OztFQ0hFO0FBQ0Y7O0VEU0UsOEJBQXNCO1VBQXRCLHNCQUFzQjtFQUFFLE1BQUE7RUFDeEIsVUFBVTtFQUFFLE1BQUE7QUNKZDs7QURPQTs7RUNIRTtBQUNGOztFRFFFLFlBQVk7QUNMZDs7QURRQTs7O0VDSEU7QUFDRjtFRFFFLDZCQUE2QjtFQUFFLE1BQUE7RUFDL0Isb0JBQW9CO0VBQUUsTUFBQTtBQ0p4Qjs7QURPQTs7RUNIRTtBQUNGO0VET0Usd0JBQXdCO0FDTDFCOztBRFFBOzs7RUNIRTtBRFFGO0VBQ0UsMEJBQTBCO0VBQUUsTUFBQTtFQUM1QixhQUFhO0VBQUUsTUFBQTtBQ0pqQjs7QURPQTsrRUNKK0U7QURPL0U7O0VDSkU7QURRRjtFQUNFLGNBQWM7QUNOaEI7O0FEU0E7O0VDTEU7QURTRjtFQUNFLGtCQUFrQjtBQ1BwQjs7QURVQTsrRUNQK0U7QURVL0U7O0VDUEU7QURXRjtFQUNFLGFBQWE7QUNUZjs7QURZQTs7RUNSRTtBQUNGO0VEWUUsYUFBYTtBQ1ZmOztBQzFVQTs7O0VBR0UsOEJBQXNCO1VBQXRCLHNCQUFzQjtBRDZVeEI7O0FDMVVBO0VBQ0UsK0xBQStMO0VBQy9MLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxzQkFBc0I7QUQ2VXhCOztBQ3pVQTtFQUNFLGNBQWM7RUFDZCxxQkFBcUI7RUFDckIsOEJBQXNCO0VBQXRCLHNCQUFzQjtBRDRVeEI7O0FDL1VBO0VBTUksY0FBYztBRDZVbEI7O0FDeFVBO0VBQ0UsZ0JBQWdCO0FEMlVsQjs7QUM1VUE7RUFJSSxjQUFjO0FENFVsQjs7QUN6VUE7RUFDRSxrQkFBa0I7QUQ0VXBCOztBQzFVQTtFQUNFLGtCQUFrQjtBRDZVcEI7O0FDMVVBO0VBQUssZUFBZTtBRDhVcEI7O0FDN1VBO0VBQUssZUFBZTtBRGlWcEI7O0FDaFZBO0VBQUssZUFBZTtBRG9WcEI7O0FDblZBO0VBQUssZUFBZTtBRHVWcEI7O0FDdFZBO0VBQUssZUFBZTtBRDBWcEI7O0FDelZBO0VBQUssZUFBZTtBRDZWcEI7O0FDM1ZBO0VBQ0Usa0JBQWtCO0FEOFZwQjs7QUMzVkE7RUFDRSxnQkFBZ0I7QUQ4VmxCOztBQ3hWQTtFQUNFLFdBQVc7RUFDWCxpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsbUJBQW1CO0FEMlZyQjs7QUNwVkE7RUFDRSxlQUFlO0VBQ2YsTUFBTTtFQUNOLFlBQVk7RUFDWixXQUFXO0VBQ1gsZUFBZTtFQUNmLFdBQVc7RUFDWCx5QkFBeUI7RUFDekIsa0RBQXVDO1VBQXZDLDBDQUF1QztBRHVWekM7O0FDcFZFO0VBQ0UsU0FBUztBRHVWYjs7QUNyVkk7RUFIRjtJQUlJLGVBQWU7RUR5Vm5CO0FBQ0Y7O0FDeFZJO0VBTkY7SUFPSSxxQkFBcUI7RUQ0VnpCO0FBQ0Y7O0FDelZFO0VBR0ksU0FBUztFQUNULGVBQWU7QUQwVnJCOztBQzlWRTtFQU9NLGdCQUFnQjtBRDJWeEI7O0FDdlZJO0VBWEY7SUFZSSxZQUFZO0VEMlZoQjtBQUNGOztBQ3hWQTtFQUNFLGlCQUFpQjtFQUNqQixvQkFBb0I7RUFDcEIsZUFBZTtFQUNmLGtCQUFrQjtBRDJWcEI7O0FDdFZBO0VBQ0UsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtBRHlWckI7O0FDdFZBO0VBQ0UsZ0JBQWdCO0VBQ2hCLDZCQUE2QjtBRHlWL0I7O0FDM1ZBO0VBS0ksb0JBQW9CO0FEMFZ4Qjs7QUN0VkE7RUFDRSxxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0QixlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLDBCQUEwQjtFQUMxQixlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQixtREFBMkM7RUFBM0MsMkNBQTJDO0FEeVY3Qzs7QUNuV0E7RUFhSSx5QkFBeUI7QUQwVjdCOztBQ3RWQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsNkJBQTZCO0FEeVYvQjs7QUN0VkE7RUFDRSxrQkFBa0I7RUFDbEIsbUJBQW1CO0FEeVZyQjs7QUN0VkE7RUFDRSxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QscUNBQXFDO0VBQ3JDLGVBQWU7RUFDZixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLHlCQUF5QjtFQUN6QixzQkFBc0I7RUFDdEIsa0JBQWtCO0FEeVZwQiIsImZpbGUiOiJzaXRlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cblxuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xuXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAxICovXG4gIGhlaWdodDogMDsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cblxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lOyAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cblxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlOyAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gIG1hcmdpbjogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCB7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHsgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cblxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0OyAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlOyAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG5cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblxuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDsgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cblxuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpbiBpT1MuXG4gKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyoqXG4gKiBSZW5kZXIgdGhlIGBtYWluYCBlbGVtZW50IGNvbnNpc3RlbnRseSBpbiBJRS5cbiAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gKiAyLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlIGFuZCBJRS5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgLyogMSAqL1xuICBoZWlnaHQ6IDA7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBGaXJlZm94IGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cbmJ1dHRvbixcbmlucHV0IHtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uLFxuc2VsZWN0IHtcbiAgLyogMSAqL1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cbnByb2dyZXNzIHtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuICovXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi8qIE1pc2NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCAtYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxcIlNlZ29lIFVJXCIsUm9ib3RvLFwiSGVsdmV0aWNhIE5ldWVcIixBcmlhbCxcIk5vdG8gU2Fuc1wiLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIixcIlNlZ29lIFVJIFN5bWJvbFwiLFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiAjMzMzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuXG5hIHtcbiAgY29sb3I6ICMxOTc2RDI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcztcbn1cblxuYTpob3ZlciwgYTpmb2N1cyB7XG4gIGNvbG9yOiAjMjE5NkYzO1xufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuaDEgc21hbGwsIGgyIHNtYWxsLCBoMyBzbWFsbCwgaDQgc21hbGwsIGg1IHNtYWxsLCBoNiBzbWFsbCB7XG4gIGZvbnQtc2l6ZTogNjAlO1xufVxuXG5oMSwgaDIge1xuICBtYXJnaW46IDAgMCAyMHB4IDA7XG59XG5cbmgzLCBoNCwgaDUsIGg2IHtcbiAgbWFyZ2luOiAwIDAgMTVweCAwO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMzhweDtcbn1cblxuaDIge1xuICBmb250LXNpemU6IDM0cHg7XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAyNnB4O1xufVxuXG5oNCB7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cblxuaDUge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMTVweCAwO1xufVxuXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTE0MHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5cbi5oZWFkZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMTAwO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTVweCAwO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzZEMjtcbiAgYm94LXNoYWRvdzogMCAwIDZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4ubG9nby10ZXh0IHtcbiAgbWFyZ2luOiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmxvZ28tdGV4dCB7XG4gICAgZm9udC1zaXplOiAyNXB4O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubG9nby10ZXh0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbn1cblxuLmhlYWRlci0tbGlua3MgLmJ0biB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLXRvcDogN3B4O1xufVxuXG4uaGVhZGVyLS1saW5rcyAuYnRuOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogN3B4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci0tbGlua3Mge1xuICAgIGZsb2F0OiByaWdodDtcbiAgfVxufVxuXG4uZm9vdGVyIHtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmRlbW8ge1xuICBtYXJnaW4tdG9wOiA0MHB4O1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuXG4uZGVtby0taW50cm8ge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbn1cblxuLmRlbW8tLWludHJvIHA6bGFzdC1jaGlsZCB7XG4gIHBhZGRpbmctYm90dG9tOiAyMHB4O1xufVxuXG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgcGFkZGluZzogNHB4IDEycHggNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcywgY29sb3IgLjNzO1xufVxuXG4uYnRuOmhvdmVyLCAuYnRuOmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG59XG5cbi5idG4td2hpdGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmluc3RhbGwgLmJ0biB7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZm9udC1mYW1pbHk6ICdDdXRpdmUgTW9ubycsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuIiwiLy8gLS0tLS0gRGVtbyBzaXRlIHN0eWxlcyAtLS0tLVxuQGltcG9ydCBcIm5vcm1hbGl6ZVwiO1xuXG5cblxuLy8gLS0tLS0gQmFzZSBzdHlsZXMgLS0tLS1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFwiU2Vnb2UgVUlcIixSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLFwiTm90byBTYW5zXCIsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCIsXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cblxuYSB7XG4gIGNvbG9yOiAjMTk3NkQyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6ICMyMTk2RjM7XG4gIH1cbn1cblxuLy8gVHlwZVxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNjAlO1xuICB9XG59XG5oMSwgaDIge1xuICBtYXJnaW46IDAgMCAyMHB4IDA7XG59XG5oMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbjogMCAwIDE1cHggMDtcbn1cblxuaDEgeyBmb250LXNpemU6IDM4cHg7IH1cbmgyIHsgZm9udC1zaXplOiAzNHB4OyB9XG5oMyB7IGZvbnQtc2l6ZTogMjZweDsgfVxuaDQgeyBmb250LXNpemU6IDIwcHg7IH1cbmg1IHsgZm9udC1zaXplOiAxNnB4OyB9XG5oNiB7IGZvbnQtc2l6ZTogMTRweDsgfVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMTVweCAwO1xufVxuXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG5cblxuLy8gLS0tLS0gTGF5b3V0IC0tLS0tXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTE0MHB4O1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5cblxuXG5cbi8vIC0tLS0tIEhlYWRlciBhbmQgZm9vdGVyIC0tLS0tXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDEwMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDE1cHggMDtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7XG4gIGJveC1zaGFkb3c6IDAgMCA2cHggNnB4IHJnYmEoMCwwLDAsMC4xKTtcbn1cblxuICAubG9nby10ZXh0IHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci0tbGlua3Mge1xuXG4gICAgLmJ0biB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBtYXJnaW4tdG9wOiA3cHg7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA3cHg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuICB9XG5cbi5mb290ZXIge1xuICBwYWRkaW5nLXRvcDogMTVweDtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5cbi8vIC0tLS0tIERlbW8gLS0tLS1cbi5kZW1vIHtcbiAgbWFyZ2luLXRvcDogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuLmRlbW8tLWludHJvIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG5cbiAgcDpsYXN0LWNoaWxkIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgfVxufVxuXG4uYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgcGFkZGluZzogNHB4IDEycHggNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcywgY29sb3IgLjNzO1xuXG4gICY6aG92ZXIsICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xuICB9XG59XG5cbi5idG4td2hpdGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmluc3RhbGwgLmJ0biB7XG4gIG1hcmdpbi1yaWdodDogMTVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgbWFyZ2luOiAwIDAgMjBweCAwO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZm9udC1mYW1pbHk6ICdDdXRpdmUgTW9ubycsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG5cblxuLy8gLS0tLS0gQnJlYWtwb2ludCBleGFtcGxlcyAtLS0tLVxuXG4vLyBCcmVha3BvaW50cyB1cFxuXG4vLyBTbWFsbCBkZXZpY2VzIChsYW5kc2NhcGUgcGhvbmVzLCA1NzZweCBhbmQgdXApXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHsgfVxuXG5cbi8vIE1lZGl1bSBkZXZpY2VzICh0YWJsZXRzLCA3NjhweCBhbmQgdXApXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsgfVxuXG5cbi8vIExhcmdlIGRldmljZXMgKGRlc2t0b3BzLCA5OTJweCBhbmQgdXApXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHsgfVxuXG5cbi8vIEV4dHJhIGxhcmdlIGRldmljZXMgKGxhcmdlIGRlc2t0b3BzLCAxMjAwcHggYW5kIHVwKVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkgeyB9XG5cbiJdfQ== */ +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9ub3JtYWxpemUuc2NzcyIsInNpdGUuY3NzIiwic2l0ZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUFBO0FBRUE7K0VDQStFO0FERy9FOzs7RUNDRTtBRElGO0VBQ0UsaUJBQWlCO0VBQUUsTUFBQTtFQUNuQiw4QkFBOEI7RUFBRSxNQUFBO0FDQWxDOztBREdBOytFQ0ErRTtBREcvRTs7RUNBRTtBRElGO0VBQ0UsU0FBUztBQ0ZYOztBREtBOztFQ0RFO0FES0Y7RUFDRSxjQUFjO0FDSGhCOztBRE1BOzs7RUNERTtBRE1GO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtBQ0psQjs7QURPQTsrRUNKK0U7QURPL0U7OztFQ0hFO0FEUUY7RUFDRSwrQkFBdUI7VUFBdkIsdUJBQXVCO0VBQUUsTUFBQTtFQUN6QixTQUFTO0VBQUUsTUFBQTtFQUNYLGlCQUFpQjtFQUFFLE1BQUE7QUNIckI7O0FETUE7OztFQ0RFO0FETUY7RUFDRSxpQ0FBaUM7RUFBRSxNQUFBO0VBQ25DLGNBQWM7RUFBRSxNQUFBO0FDRmxCOztBREtBOytFQ0YrRTtBREsvRTs7RUNGRTtBRE1GO0VBQ0UsNkJBQTZCO0FDSi9COztBRE9BOzs7RUNGRTtBRE9GO0VBQ0UsbUJBQW1CO0VBQUUsTUFBQTtFQUNyQiwwQkFBMEI7RUFBRSxNQUFBO0VBQzVCLHlDQUFpQztVQUFqQyxpQ0FBaUM7RUFBRSxNQUFBO0FDRnJDOztBREtBOztFQ0RFO0FES0Y7O0VBRUUsbUJBQW1CO0FDSHJCOztBRE1BOzs7RUNERTtBRE1GOzs7RUFHRSxpQ0FBaUM7RUFBRSxNQUFBO0VBQ25DLGNBQWM7RUFBRSxNQUFBO0FDRmxCOztBREtBOztFQ0RFO0FES0Y7RUFDRSxjQUFjO0FDSGhCOztBRE1BOzs7RUNERTtBRE1GOztFQUVFLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHdCQUF3QjtBQ0oxQjs7QURPQTtFQUNFLGVBQWU7QUNKakI7O0FET0E7RUFDRSxXQUFXO0FDSmI7O0FET0E7K0VD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QixtREFBMkM7RUFBM0MsMkNBQTJDO0FEa1Y3Qzs7QUM1VkE7RUFhSSx5QkFBeUI7QURtVjdCOztBQy9VQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsNkJBQTZCO0FEa1YvQjs7QUM1VUE7RUFDRSxTQUFTO0FEK1VYIiwiZmlsZSI6InNpdGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFwiU2Vnb2UgVUlcIixSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLFwiTm90byBTYW5zXCIsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCIsXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbmEge1xuICBjb2xvcjogIzE5NzZEMjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xufVxuXG5hOmhvdmVyLCBhOmZvY3VzIHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG5oMSBzbWFsbCwgaDIgc21hbGwsIGgzIHNtYWxsLCBoNCBzbWFsbCwgaDUgc21hbGwsIGg2IHNtYWxsIHtcbiAgZm9udC1zaXplOiA2MCU7XG59XG5cbmgxLCBoMiB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cblxuaDMsIGg0LCBoNSwgaDYge1xuICBtYXJnaW46IDAgMCAuNXJlbSAwO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xufVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cblxuaDMge1xuICBmb250LXNpemU6IDEuNzVyZW07XG59XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG5cbmg1IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxucCB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cblxuc3Ryb25nLCB0aCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbnByZSwgY29kZSB7XG4gIGZvbnQtZmFtaWx5OiAnQ3V0aXZlIE1vbm8nLCBtb25vc3BhY2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG59XG5cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAuNzVyZW0gMXJlbTtcbiAgbWFyZ2luOiAwIDAgMS41cmVtIDA7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBmb250LXNpemU6IDFyZW07XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbi50YWJsZSB0aCwgLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogLjI1cmVtIC41cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuXG4uZnVsbHdpZHRoIC5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMnJlbSAwO1xufVxuXG4uZnVsbHdpZHRoLS1zbSAuY29udGFpbmVyIHtcbiAgcGFkZGluZzogMXJlbSAwO1xufVxuXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTE0MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMCAxcmVtO1xufVxuXG4uc3Vic2VjdGlvbiB7XG4gIG1hcmdpbjogMCAwIDJyZW0gMDtcbn1cblxuLnNlcGFyYXRvciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xufVxuXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAuNXJlbSAwO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzZEMjtcbiAgYm94LXNoYWRvdzogMCAwIDZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlciB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICB9XG59XG5cbi5oZWFkZXIgLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGVhZGVyIC5jb250YWluZXIge1xuICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyIC5jb250YWluZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cblxuLmxvZ28tdGV4dCB7XG4gIG1hcmdpbjogMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5sb2dvLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgfVxufVxuXG4uaGVhZGVyLS1saW5rcyAuYnRuLWRlbW8ge1xuICBtYXJnaW46IC41cmVtIDA7XG59XG5cbi5oZWFkZXItLWxpbmtzIC5idG4tZGVtbzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IC41cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci0tbGlua3Mge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbi5mb290ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5idG4tZGVtbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIHBhZGRpbmc6IDRweCAxMnB4IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zcztcbn1cblxuLmJ0bi1kZW1vOmhvdmVyLCAuYnRuLWRlbW86YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbn1cblxuLmJ0bi1kZW1vLS13aGl0ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubS0wIHtcbiAgbWFyZ2luOiAwO1xufVxuIiwiLy8gLS0tLS0gRGVtbyBzaXRlIHN0eWxlcyAtLS0tLVxuQGltcG9ydCBcIm5vcm1hbGl6ZVwiO1xuXG5cblxuLy8gLS0tLS0gQmFzZSBzdHlsZXMgLS0tLS1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFwiU2Vnb2UgVUlcIixSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLFwiTm90byBTYW5zXCIsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCIsXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cblxuYSB7XG4gIGNvbG9yOiAjMTk3NkQyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6ICMyMTk2RjM7XG4gIH1cbn1cblxuLy8gVHlwZVxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNjAlO1xuICB9XG59XG5cbmgxLCBoMiB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cblxuaDMsIGg0LCBoNSwgaDYge1xuICBtYXJnaW46IDAgMCAuNXJlbSAwO1xufVxuXG5oMSB7IGZvbnQtc2l6ZTogMi41cmVtOyB9XG5oMiB7IGZvbnQtc2l6ZTogMnJlbTsgfVxuaDMgeyBmb250LXNpemU6IDEuNzVyZW07IH1cbmg0IHsgZm9udC1zaXplOiAxLjVyZW07IH1cbmg1IHsgZm9udC1zaXplOiAxLjI1cmVtOyB9XG5oNiB7IGZvbnQtc2l6ZTogMXJlbTsgfVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xufVxuXG5zdHJvbmcsIHRoIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxucHJlLCBjb2RlIHtcbiAgZm9udC1mYW1pbHk6ICdDdXRpdmUgTW9ubycsIG1vbm9zcGFjZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbn1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IC43NXJlbSAxcmVtO1xuICBtYXJnaW46IDAgMCAxLjVyZW0gMDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuICB0aCwgdGQge1xuICAgIHBhZGRpbmc6IC4yNXJlbSAuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgfVxufVxuXG5cblxuLy8gLS0tLS0gTGF5b3V0IC0tLS0tXG4uZnVsbHdpZHRoIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICB9XG59XG5cbi5mdWxsd2lkdGgtLXNtIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICB9XG59XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMTQwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICB9XG5cbiAgICAuc3Vic2VjdGlvbiB7XG4gICAgICBtYXJnaW46IDAgMCAycmVtIDA7XG4gICAgfVxuXG5cbi5zZXBhcmF0b3Ige1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbn1cblxuXG5cbi8vIC0tLS0tIEhlYWRlciBhbmQgZm9vdGVyIC0tLS0tXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAuNXJlbSAwO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzZEMjtcbiAgYm94LXNoYWRvdzogMCAwIDZweCA2cHggcmdiYSgwLDAsMCwwLjEpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgfVxuXG5cbiAgLmNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgfVxuXG59XG5cbiAgLmxvZ28tdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci0tbGlua3Mge1xuXG4gICAgLmJ0bi1kZW1vIHtcbiAgICAgIG1hcmdpbjogLjVyZW0gMDtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG5cblxuLmZvb3RlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuXG5cbi8vIC0tLS0tIEJ1dHRvbnMgLS0tLS1cbi5idG4tZGVtbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIHBhZGRpbmc6IDRweCAxMnB4IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zcztcblxuICAmOmhvdmVyLCAmOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbiAgfVxufVxuXG4uYnRuLWRlbW8tLXdoaXRlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cblxuXG4vLyAtLS0tLSBVdGlsaXRpZXMgLS0tLS1cbi5tLTAge1xuICBtYXJnaW46IDA7XG59XG4iXX0= */ diff --git a/package.json b/package.json index 588f695..793c90d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,31 @@ { "name": "pixel-borders", "description": "A SASS mixin to create pixelated borders on elements.", - "version": "0.1.0", + "version": "1.0.0", + + "main": "src/styles/pixel-borders.scss", + + "repository": { + "type": "git", + "url": "git+https://github.com/NigelOToole/pixel-borders.git" + }, + "bugs": { + "url": "https://github.com/NigelOToole/pixel-borders/issues" + }, + "homepage": "https://github.com/NigelOToole/pixel-borders#readme", + + "author": "Nigel O Toole (http://www.purestructure.com)", + "license": "MIT", + + "keywords": [ + "sass", + "mixin", + "pixel", + "pixelated", + "borders", + "css" + ], + "engines": { "node": ">=4" }, diff --git a/src/index.html b/src/index.html index 267f346..6bec8bd 100644 --- a/src/index.html +++ b/src/index.html @@ -14,8 +14,29 @@ -
+ +
+ +

Pixel borders

+ + +
+
+ + +
+
+

A SASS mixin to add pixelated borders to HTML elements, which can be customized for different sizes, colour coding,inset borders.

+
+
+ + +
+

Basic examples

Pixel border 1
@@ -26,7 +47,7 @@
Pixel inset 2


-

Colour coded examples

+

Colour themed examples

@@ -44,5 +65,189 @@
+ +
+
+ +
+

Installation

+ +
+$ npm install pixel-borders --save-dev
+
+ +
+ +
+ +

Usage

+ +

Import

+ +

After adding the repo as a dependency you can import it into your SASS files. Alternatively you can download the pixel-borders.scss from this repo and add it to your project folder directly.

+ +
@import "node_modules/pixel-border/src/styles/pixel-borders.scss";
+ + +

Pixel borders mixin options

+
// Add pixel borders with default options
+@include pixel-borders();
+
+// Available options
+@include pixel-borders(
+  $corner-size: 1,                 
+  $border-size: 4px,              
+  $border-color: #000,            
+  $border-inset-color: false
+);
+
+// Helper method to create custom styles e.g. colour themes, inset border, highlight
+@include pixel-box(
+  $corner-size,
+  $border-size, 
+  $background-color,              
+  $border-color: false,           
+  $border-inset: true,            
+  $border-inset-size: false,      
+  $border-inset-color: false,     
+  $border-inset-sides: false,     // Sides to apply inset border: 'all', 'top-left' or 'bottom-right'
+  $border-inset-color-br: false,  // Bottom right inset border colour
+  $border-inset-color-tl: false   // Top left inset border colour
+);
+
+ +

pixel-borders

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDefaultTypeDescription
$corner-size1NumberNumber of pixels taken out of the corner.
$border-size4pxNumber(px)Border size.
$border-color#000Hexadecimal colorBorder colour.
$border-inset-colorfalseFalse/Hexadecimal colorAdd a inset border to the bottom right in this colour.
+ +

pixel-box

+

Options as above unless otherwise specified.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDefaultTypeDescription
$background-colorHexadecimal colorBackground colour for the box, this is used as a base for colour theme.
$border-colorDarkened $background-colorFalse/Hexadecimal colourBorder colour.
$border-insettrueBooleanAdd a inset border.
$border-inset-size$border-sizeFalse/Number(px)Inset border size.
$border-inset-colorDarkened $background-colorFalse/Hexadecimal colorInset border colour.
$border-inset-sides'bottom-right'StringWhich sides to add inset border to, 'all', 'top-left' or 'bottom-right'.
$border-inset-sides-br$border-inset-colorFalse/Hexadecimal colorBottom right inset border colour.
$border-inset-sides-tlLightened $background-colorFalse/Hexadecimal colorTop left inset border colour.
+ +

Classes

+ +

A class of .pixel-borders is applied all elements with a pixel border for demo purposes only, you should be able to add pixel borders to any elements.

+ +

The pixel borders mixin comes with a number of classes defined to demonstrate how it can be used. These can be used as is but I would encourage users to create their own customized classes.

+ +
+ + +
+

Demo site

+

Clone or download from Github.

+ +
$ npm install
+$ gulp serve
+
+ +
+ + +
+

Credits

+

Inspired by the excellent NES.css which is a full NES-style CSS framework. Pixel borders is intended to be used where only the borders are required. +

+
+ +
+ + + + + diff --git a/src/styles/pixel-borders.scss b/src/styles/pixel-borders.scss index dee8f46..1d04195 100644 --- a/src/styles/pixel-borders.scss +++ b/src/styles/pixel-borders.scss @@ -94,14 +94,11 @@ } -// ($corner-size: 1, $border-size: 4px, $border-color: #000, $border-inset-color: false) -// ($border-inset-size: 4px, $border-inset-color: #ddd, $border-inset-sides: 'bottom-right', $border-inset-color-br: false, $border-inset-color-tl: false) -// Pixel box - Colours for border and inset are calulated using $background-color unless $border-color is passed +// Pixel box - Colours for border and inset are calculated using $background-color unless $border-color is passed @mixin pixel-box($corner-size, $border-size, $background-color, $border-color: false, $border-inset: true, $border-inset-size: false, $border-inset-color: false, $border-inset-sides: false, $border-inset-color-br: false, $border-inset-color-tl: false) { $background-color-hover: darken($background-color, 5); - // $border-inset-color: ''; @if not($border-color) { $border-color: darken($background-color, 20); @@ -137,9 +134,7 @@ - - -// Demo styles +// ----- Demo styles ----- .pixel-borders { position: relative; display: inline-block; diff --git a/src/styles/site.scss b/src/styles/site.scss index 12f1767..997b17e 100644 --- a/src/styles/site.scss +++ b/src/styles/site.scss @@ -14,7 +14,7 @@ body { font-family: "Lato", -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: 1rem; - font-weight: 300; + font-weight: 400; line-height: 1.5; color: #333; background-color: #fff; @@ -39,106 +39,156 @@ h1, h2, h3, h4, h5, h6 { font-size: 60%; } } + h1, h2 { - margin: 0 0 20px 0; -} -h3, h4, h5, h6 { - margin: 0 0 15px 0; + margin: 0 0 1rem 0; } -h1 { font-size: 38px; } -h2 { font-size: 34px; } -h3 { font-size: 26px; } -h4 { font-size: 20px; } -h5 { font-size: 16px; } -h6 { font-size: 14px; } +h3, h4, h5, h6 { + margin: 0 0 .5rem 0; +} + +h1 { font-size: 2.5rem; } +h2 { font-size: 2rem; } +h3 { font-size: 1.75rem; } +h4 { font-size: 1.5rem; } +h5 { font-size: 1.25rem; } +h6 { font-size: 1rem; } p { - margin: 0 0 15px 0; + margin: 0 0 1rem 0; } -strong { - font-weight: 400; +strong, th { + font-weight: 800; +} + +pre, code { + font-family: 'Cutive Mono', monospace; + background-color: #f3f3f3; +} + +pre { + display: block; + padding: .75rem 1rem; + margin: 0 0 1.5rem 0; + overflow: auto; + font-size: 1rem; + word-break: break-all; + word-wrap: break-word; + border: 1px solid #bbb; + border-radius: 4px; +} + +.table { + width: 100%; + margin: 0 0 1rem 0; + border-collapse: collapse; + + th, td { + padding: .25rem .5rem; + text-align: left; + vertical-align: top; + border: 1px solid #ddd; + } } // ----- Layout ----- -.container { - width: 100%; - max-width: 1140px; - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; +.fullwidth { + .container { + width: 100%; + padding: 2rem 0; + } } +.fullwidth--sm { + .container { + padding: 1rem 0; + } +} + + .container { + width: 100%; + max-width: 1140px; + margin: 0 auto; + padding: 0 1rem; + } + + .subsection { + margin: 0 0 2rem 0; + } + + +.separator { + border-bottom: 1px solid #ddd; +} // ----- Header and footer ----- .header { - position: fixed; + position: sticky; top: 0; z-index: 100; width: 100%; - padding: 15px 0; + padding: .5rem 0; color: #fff; background-color: #1976D2; box-shadow: 0 0 6px 6px rgba(0,0,0,0.1); + + @media (min-width: 768px) { + padding: 1rem 0; + } + + + .container { + display: flex; + + @media (max-width: 767px) { + flex-flow: column; + } + + @media (min-width: 768px) { + align-items: center; + } + } + } .logo-text { margin: 0; @media (max-width: 767px) { - font-size: 25px; - } - @media (min-width: 768px) { - display: inline-block; + font-size: 1.75rem; } } .header--links { - .btn { - margin: 0; - margin-top: 7px; + .btn-demo { + margin: .5rem 0; &:last-child { - margin-left: 7px; + margin-left: .5rem; } } @media (min-width: 768px) { - float: right; + margin-left: auto; } } + .footer { - padding-top: 15px; - padding-bottom: 15px; - font-size: 12px; text-align: center; } -// ----- Demo ----- -.demo { - margin-top: 40px; - margin-bottom: 40px; -} -.demo--intro { - margin-top: 20px; - border-bottom: 1px solid #ddd; - - p:last-child { - padding-bottom: 20px; - } -} - -.btn { +// ----- Buttons ----- +.btn-demo { display: inline-block; text-align: center; vertical-align: middle; @@ -155,49 +205,15 @@ strong { } } -.btn-white { +.btn-demo--white { color: #fff; border-color: #fff; background-color: transparent; } -.install .btn { - margin-right: 15px; - margin-bottom: 15px; + + +// ----- Utilities ----- +.m-0 { + margin: 0; } - -pre { - display: block; - padding: 10px 15px; - margin: 0 0 20px 0; - overflow: auto; - font-family: 'Cutive Mono', monospace; - font-size: 14px; - word-break: break-all; - word-wrap: break-word; - background-color: #f3f3f3; - border: 1px solid #bbb; - border-radius: 4px; -} - - - -// ----- Breakpoint examples ----- - -// Breakpoints up - -// Small devices (landscape phones, 576px and up) -@media (min-width: 576px) { } - - -// Medium devices (tablets, 768px and up) -@media (min-width: 768px) { } - - -// Large devices (desktops, 992px and up) -@media (min-width: 992px) { } - - -// Extra large devices (large desktops, 1200px and up) -@media (min-width: 1200px) { } -