diff --git a/README.md b/README.md index ccfbe57..ce4a269 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [Live demo](http://nigelotoole.github.io/pixel-borders/) -## A SASS mixin to add pixelated borders to HTML elements, which can be customized for different sizes, colour coding,inset borders. +## A SASS mixin to add pixelated borders to HTML elements, which can be customized for different sizes, styles and colour coding. ## Installation @@ -14,10 +14,16 @@ $ npm install pixel-borders --save-dev ### 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. +After installation you can import it into your SASS files with the statement below. ```scss -@import "node_modules/pixel-borders/src/styles/pixel-borders.scss"; +@import "pixel-borders/src/styles/pixel-borders.scss"; +``` + +You can also just import the mixins without the demo styles. + +```scss +@import "pixel-borders/src/styles/pixel-borders/pixel-borders-mixins"; ``` #### Pixel borders mixin options diff --git a/docs/index.html b/docs/index.html index 804b33f..4d90134 100644 --- a/docs/index.html +++ b/docs/index.html @@ -3,7 +3,7 @@ - Pixel borders - A SASS mixin to add pixelated borders to HTML elements + Pixel borders - SASS mixin to add pixelated borders to HTML elements @@ -30,7 +30,7 @@
-

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

+

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

@@ -84,9 +84,13 @@

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.

+

After installation you can import it into your SASS files with the statement below. Alternatively you can download the pixel-borders.scss from this repo and add it to your project folder directly.

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

You can also just import the mixins without the demo styles.

+ +
@import "pixel-borders/src/styles/pixel-borders/pixel-borders-mixins";

Pixel borders mixin options

diff --git a/docs/styles/pixel-borders.css b/docs/styles/pixel-borders.css index 4233d02..7dd70ad 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBpeGVsLWJvcmRlcnMuc2NzcyIsInBpeGVsLWJvcmRlcnMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlJQTtFQUNFLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIseUVBQXlFO0FDeEkzRTs7QUQ2SUE7RUE5R0UsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBVmtDO0VBV2xDLHFCQVhrQztFQVlsQyxzQkFBc0I7RUFFdEIseUxBQTBFO0FDN0I1RTs7QURpQnVDO0VBa0h2QztJQWpISSxtQkFBdUU7RUNiekU7QUFDRjs7QURpSUE7RUFsSEUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBVmtDO0VBV2xDLHFCQVhrQztFQVlsQyxzQkFBc0I7RUFFdEIseUxBQTBFO0VBcUIxRSxrQkFBa0I7QUNqQ3BCOztBREF1QztFQXNIdkM7SUFySEksbUJBQXVFO0VDSXpFO0FBQ0Y7O0FENkJFO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQWNaLHdDQStEOEM7VUEvRDlDLGdDQStEOEM7QUN0R2xEOztBRDBHQTtFQXZIRSxtQkFBbUI7RUFDbkIsaUJBUHFEO0VBUXJELGtCQVIwRTtFQVUxRSxxQkFvSHNDO0VBbkh0QyxxQkFtSHNDO0VBbEh0QyxzQkFBc0I7RUFFdEIseVJBQTBFO0FDZTVFOztBRDNCdUM7RUEySHZDO0lBMUhJLG1CQUF1RTtFQytCekU7QUFDRjs7QUQ4RkE7RUEzSEUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBd0hzQztFQXZIdEMscUJBdUhzQztFQXRIdEMsc0JBQXNCO0VBRXRCLHlSQUEwRTtBQytCNUU7O0FEM0N1QztFQStIdkM7SUE5SEksbUJBQXVFO0VDK0N6RTtBQUNGOztBRDhFQTtF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Qm5ELGlDQTRCbUQ7QUNrUHZEOztBRHhPRTtFQUNFLHlCQTdCbUQ7QUN3UXZEOztBRGhKQTtFQXRMRSxtQkFBbUI7RUFDbkIsaUJBc0xxRDtFQXJMckQscUJBK0Q4QztFQTdEOUMscUJBbUxrQztFQWxMbEMscUJBa0xrQztFQWpMbEMsc0JBQXNCO0VBRXRCLDRMQUEwRTtFQXFCMUUsa0JBQWtCO0VBMkRsQix5QkErRmlGO0FDMkpuRjs7QUR0VnVDO0VBMEx2QztJQXpMSSxtQkFBdUU7RUMwVnpFO0FBQ0Y7O0FEelRFO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQWNaLGtFQW9Cc0Q7VUFwQnRELDBEQW9Cc0Q7QUMyUjFEOztBRHpRRTtFQUNFLHlCQTdCbUQ7QUN5U3ZEOztBRDdLQTtFQUNFLFdBQVc7RUEzTFgsbUJBQW1CO0VBQ25CLGlCQTJMcUQ7RUExTHJELGtCQTBMc0c7RUF4THRHLHFCQXdMa0M7RUF2TGxDLHFCQXVMa0M7RUF0TGxDLHNCQUFzQjtFQUV0Qix5TEFBMEU7RUFxQjFFLGtCQUFrQjtFQTJEbEIseUJBb0dpRjtBQ3dMbkY7O0FEeFh1QztFQThMdkM7SUE3TEksbUJBQXVFO0VDNFh6RTtBQUNGOztBRDNWRTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFjWiwyQ0F3QmtEO1VBeEJsRCxtQ0F3QmtEO0FDeVR0RDs7QUQzU0U7RUFDRSx5QkE3Qm1EO0FDMlV2RCIsImZpbGUiOiJwaXhlbC1ib3JkZXJzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdlbmVyYXRlIFNWRyBpbWFnZSBmb3IgcGl4ZWxhdGVkIGNvcm5lcnNcbkBmdW5jdGlvbiBwaXhlbC1ib3JkZXJzLWltYWdlKCRjb3JuZXItc2l6ZSwgJGNvbG9yKSB7XG4gICRzdmc6ICcnO1xuICAkc3ZnLXBhdGg6ICcnO1xuICAkc3ZnLXNpemU6ICRjb3JuZXItc2l6ZSAqIDY7XG4gICRjb2xvcjogc3RyLXJlcGxhY2UoJycgKyAkY29sb3IsICcjJywgJyUyMycpO1xuXG4gIEBpZiAkY29ybmVyLXNpemUgPT0gMSB7XG4gICAgJHN2Zy1wYXRoOiAnTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonO1xuICB9IEBlbHNlIHtcbiAgICAkc3ZnLXBhdGg6ICdNMiAyaDJ2Mkgyek00IDBoMnYySDR6TTEwIDRoMnYyaC0yek0wIDRoMnYySDB6TTYgMGgydjJINnpNOCAyaDJ2Mkg4ek04IDhoMnYySDh6TTYgMTBoMnYySDZ6TTAgNmgydjJIMHpNMTAgNmgydjJoLTJ6TTQgMTBoMnYySDR6TTIgOGgydjJIMnonO1xuICB9XG5cbiAgJHN2ZzogJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVxcJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFwnIHdpZHRoPVxcJyN7JHN2Zy1zaXplfVxcJyBoZWlnaHQ9XFwnI3skc3ZnLXNpemV9XFwnPjxwYXRoIGQ9XFwnI3skc3ZnLXBhdGh9XFwnIGZpbGw9XFwnI3skY29sb3J9XFwnIC8+PC9zdmc+JztcblxuICBAcmV0dXJuICRzdmc7XG59XG5cblxuLy8gU3RyaW5nIHJlcGxhY2UgZnVuY3Rpb24gLSByZXBsYWNlIGAkc2VhcmNoYCB3aXRoIGAkcmVwbGFjZWAgaW4gYCRzdHJpbmdgXG5AZnVuY3Rpb24gc3RyLXJlcGxhY2UoJHN0cmluZywgJHNlYXJjaCwgJHJlcGxhY2U6ICcnKSB7XG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuXG4vLyBQaXhlbCBib3JkZXJcbkBtaXhpbiBwaXhlbC1ib3JkZXJzKCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRib3JkZXItY29sb3I6ICMwMDAsICRib3JkZXItaW5zZXQtY29sb3I6IGZhbHNlKSB7XG5cbiAgQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gICAgYm9yZGVyLXJhZGl1czogKCRib3JkZXItc2l6ZSAqICgkY29ybmVyLXNpemUgKyAyKSkgKyAoJGNvcm5lci1zaXplICogMik7XG4gIH1cblxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6ICRib3JkZXItc2l6ZTtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yO1xuXG4gIGJvcmRlci1pbWFnZS1zbGljZTogJGNvcm5lci1zaXplICogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAkY29ybmVyLXNpemU7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG5cbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKHBpeGVsLWJvcmRlcnMtaW1hZ2UoJGNvcm5lci1zaXplLCAkYm9yZGVyLWNvbG9yKSk7XG5cbiAgQGlmICRib3JkZXItaW5zZXQtY29sb3Ige1xuICAgIEBpbmNsdWRlIHBpeGVsLWluc2V0LWJvcmRlcigkYm9yZGVyLXNpemUsICRib3JkZXItaW5zZXQtY29sb3IpO1xuICB9XG5cbn1cblxuXG4vLyBQaXhlbCBpbnNldCBib3JkZXJcbkBtaXhpbiBwaXhlbC1pbnNldC1ib3JkZXIoJGJvcmRlci1pbnNldC1zaXplOiA0cHgsICRib3JkZXItaW5zZXQtY29sb3I6ICNkZGQsICRib3JkZXItaW5zZXQtc2lkZXM6ICdib3R0b20tcmlnaHQnLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvci10bDogZmFsc2UpIHtcblxuICAkYm94LXNoYWRvdzogJyc7XG4gIEBpZiBub3QoJGJvcmRlci1pbnNldC1jb2xvci1icikge1xuICAgICRib3JkZXItaW5zZXQtY29sb3ItYnI6ICRib3JkZXItaW5zZXQtY29sb3I7XG4gIH1cblxuICBAaWYgbm90KCRib3JkZXItaW5zZXQtY29sb3ItdGwpIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiAkYm9yZGVyLWluc2V0LWNvbG9yO1xuICB9XG5cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMDtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgQGlmICRib3JkZXItaW5zZXQtc2lkZXMgPT0gJ2JvdHRvbS1yaWdodCcgb3IgJGJvcmRlci1pbnNldC1zaWRlcyA9PSBmYWxzZSB7XG4gICAgICAkYm94LXNoYWRvdzogaW5zZXQgLSN7JGJvcmRlci1pbnNldC1zaXplfSAtI3skYm9yZGVyLWluc2V0LXNpemV9ICRib3JkZXItaW5zZXQtY29sb3ItYnI7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItaW5zZXQtc2lkZXMgPT0gJ3RvcC1sZWZ0JyB7XG4gICAgICAkYm94LXNoYWRvdzogaW5zZXQgJGJvcmRlci1pbnNldC1zaXplICRib3JkZXItaW5zZXQtc2l6ZSAkYm9yZGVyLWluc2V0LWNvbG9yLXRsO1xuICAgIH1cblxuICAgIEBpZiAkYm9yZGVyLWluc2V0LXNpZGVzID09ICdhbGwnIHtcbiAgICAgICRib3gtc2hhZG93OiBpbnNldCAtI3skYm9yZGVyLWluc2V0LXNpemV9IC0jeyRib3JkZXItaW5zZXQtc2l6ZX0gJGJvcmRlci1pbnNldC1jb2xvci1iciwgaW5zZXQgJGJvcmRlci1pbnNldC1zaXplICRib3JkZXItaW5zZXQtc2l6ZSAkYm9yZGVyLWluc2V0LWNvbG9yLXRsO1xuICAgIH1cblxuICAgIGJveC1zaGFkb3c6ICRib3gtc2hhZG93O1xuICB9XG5cbn1cblxuXG5cbi8vIFBpeGVsIGJveCAtIENvbG91cnMgZm9yIGJvcmRlciBhbmQgaW5zZXQgYXJlIGNhbGN1bGF0ZWQgdXNpbmcgJGJhY2tncm91bmQtY29sb3IgdW5sZXNzICRib3JkZXItY29sb3IgaXMgcGFzc2VkXG5AbWl4aW4gcGl4ZWwtYm94KCRjb3JuZXItc2l6ZSwgJGJvcmRlci1zaXplLCAkYmFja2dyb3VuZC1jb2xvciwgJGJvcmRlci1jb2xvcjogZmFsc2UsICRib3JkZXItaW5zZXQ6IHRydWUsICRib3JkZXItaW5zZXQtc2l6ZTogZmFsc2UsICRib3JkZXItaW5zZXQtY29sb3I6IGZhbHNlLCAkYm9yZGVyLWluc2V0LXNpZGVzOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvci1icjogZmFsc2UsICRib3JkZXItaW5zZXQtY29sb3ItdGw6IGZhbHNlKSB7XG4gIFxuICAkYmFja2dyb3VuZC1jb2xvci1ob3ZlcjogZGFya2VuKCRiYWNrZ3JvdW5kLWNvbG9yLCA1KTtcblxuICBAaWYgbm90KCRib3JkZXItY29sb3IpIHtcbiAgICAkYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDIwKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGNvcm5lci1zaXplOiAkY29ybmVyLXNpemUsICRib3JkZXItc2l6ZTogJGJvcmRlci1zaXplLCAkYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yKTtcblxuICBAaWYgJGJvcmRlci1pbnNldC1zaWRlcyA9PSAnYWxsJyBhbmQgbm90KCRib3JkZXItaW5zZXQtY29sb3IpIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDEwKTtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiBsaWdodGVuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxNSk7XG4gIH1cblxuICBAaWYgbm90KCRib3JkZXItaW5zZXQtY29sb3IpIHsgXG4gICAgJGJvcmRlci1pbnNldC1jb2xvcjogZGFya2VuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxMCk7XG4gIH1cblxuICBAaWYgJGJvcmRlci1pbnNldC1zaWRlcyA9PSAndG9wLWxlZnQnIHtcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yOiBsaWdodGVuKCRiYWNrZ3JvdW5kLWNvbG9yLCAxNSk7XG4gIH1cblxuXG4gIEBpZiAkYm9yZGVyLWluc2V0IHsgXG4gICAgQGluY2x1ZGUgcGl4ZWwtaW5zZXQtYm9yZGVyKCRib3JkZXItaW5zZXQtc2l6ZTogJGJvcmRlci1zaXplLCAkYm9yZGVyLWluc2V0LWNvbG9yOiAkYm9yZGVyLWluc2V0LWNvbG9yLCAkYm9yZGVyLWluc2V0LXNpZGVzOiAkYm9yZGVyLWluc2V0LXNpZGVzLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiAkYm9yZGVyLWluc2V0LWNvbG9yLWJyLCAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiAkYm9yZGVyLWluc2V0LWNvbG9yLXRsKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICB9XG5cbn1cblxuXG5cbi8vIC0tLS0tIERlbW8gc3R5bGVzIC0tLS0tXG4ucGl4ZWwtYm9yZGVycyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMTVweCAxNXB4IDA7XG4gIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgQXJpYWwgQmxhY2ssIEFyaWFsIEJvbGQsIEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuXG5cbi8vIFNpbXBsZSBleGFtcGxlcyB3aXRoIGRlZmF1bHQgc3R5bGluZ1xuLnBpeGVsLWJvcmRlcnMtLTEge1xuICBAaW5jbHVkZSBwaXhlbC1ib3JkZXJzKCk7XG59XG5cbi5waXhlbC1ib3JkZXJzLS0xLWluc2V0IHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm9yZGVycygkYm9yZGVyLWluc2V0LWNvbG9yOiAjZGRkKTtcbn1cblxuXG4ucGl4ZWwtYm9yZGVycy0tMiB7XG4gIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGNvcm5lci1zaXplOiAyKTtcbn1cblxuLnBpeGVsLWJvcmRlcnMtLTItaW5zZXQge1xuICBAaW5jbHVkZSBwaXhlbC1ib3JkZXJzKCRjb3JuZXItc2l6ZTogMik7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLWNvbG9yOiAjZGRkKTtcblxuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBib3JkZXItaW1hZ2Utd2lkdGg6IDAgMSAxIDA7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDRweCk7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpO1xuICB9XG59XG5cblxuXG4vLyBFeGFtcGxlcyB1c2luZyB0aGUgcGl4ZWwgYm94IG1peGluIHRvIGNvbG91ciBjb2RlIHRoZSBlbGVtZW50c1xuLnBpeGVsLWJveC0tbGlnaHQge1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNmZmYpO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogIzIwOWNlZSk7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3Mge1xuICBjb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjOTJjYzQxKTtcbn0gXG5cbi5waXhlbC1ib3gtLXdhcm5pbmcge1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNmN2Q1MWQpO1xufSBcblxuLnBpeGVsLWJveC0tZXJyb3Ige1xuICBjb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2ZTU1KTtcbn0gXG5cblxuLy8gQ3VzdG9tIGV4YW1wbGVzIHRvIHNob3cgZmxleGliaWxpdHkgb2YgdGhlIG1peGluc1xuLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tIHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmLCAkYm9yZGVyLWluc2V0LWNvbG9yOiAjOTk5LCAkYm9yZGVyLWluc2V0LXNpZGVzOiAnYWxsJyk7XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnktY3VzdG9tIHtcbiAgY29sb3I6ICNmZmY7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogIzIwOWNlZSwgJGJvcmRlci1pbnNldDogZmFsc2UpO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICM5MmNjNDEsICRib3JkZXItaW5zZXQtc2lkZXM6ICd0b3AtbGVmdCcpO1xufSBcblxuLnBpeGVsLWJveC0td2FybmluZy1jdXN0b20ge1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNmN2Q1MWQsICRib3JkZXItaW5zZXQtc2lkZXM6ICdhbGwnKTtcbn0gXG5cbi5waXhlbC1ib3gtLWVycm9yLWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNlNzZlNTUsICRib3JkZXItY29sb3I6ICMwMDApO1xufSBcbiIsIi5waXhlbC1ib3JkZXJzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAxNXB4IDE1cHggMDtcbiAgcGFkZGluZzogMTVweCAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBBcmlhbCBCbGFjaywgQXJpYWwgQm9sZCwgQXJpYWwsIHNhbnMtc2VyaWY7XG59XG5cbi5waXhlbC1ib3JkZXJzLS0xIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyMzAwMCcgLz48L3N2Zz5cIik7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm9yZGVycy0tMSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm9yZGVycy0tMS1pbnNldCB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICMwMDA7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjMwMDAnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm9yZGVycy0tMS1pbnNldCB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm9yZGVycy0tMS1pbnNldDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2RkZDtcbn1cblxuLnBpeGVsLWJvcmRlcnMtLTIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDQ7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMjtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nMTInPjxwYXRoIGQ9J00yIDJoMnYySDJ6TTQgMGgydjJINHpNMTAgNGgydjJoLTJ6TTAgNGgydjJIMHpNNiAwaDJ2Mkg2ek04IDJoMnYySDh6TTggOGgydjJIOHpNNiAxMGgydjJINnpNMCA2aDJ2Mkgwek0xMCA2aDJ2MmgtMnpNNCAxMGgydjJINHpNMiA4aDJ2MkgyeicgZmlsbD0nJTIzMDAwJyAvPjwvc3ZnPlwiKTtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3JkZXJzLS0yIHtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3JkZXJzLS0yLWluc2V0IHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiA0O1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDI7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJz48cGF0aCBkPSdNMiAyaDJ2Mkgyek00IDBoMnYySDR6TTEwIDRoMnYyaC0yek0wIDRoMnYySDB6TTYgMGgydjJINnpNOCAyaDJ2Mkg4ek04IDhoMnYySDh6TTYgMTBoMnYySDZ6TTAgNmgydjJIMHpNMTAgNmgydjJoLTJ6TTQgMTBoMnYySDR6TTIgOGgydjJIMnonIGZpbGw9JyUyMzAwMCcgLz48L3N2Zz5cIik7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm9yZGVycy0tMi1pbnNldCB7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm9yZGVycy0tMi1pbnNldDo6YWZ0ZXIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzZGRkJyAvPjwvc3ZnPlwiKTtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAwIDEgMSAwO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNHB4KTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJvcmRlcnMtLTItaW5zZXQ6OmFmdGVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLWxpZ2h0IHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2NjY2NjYztcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2NjY2NjYycgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLWxpZ2h0IHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLWxpZ2h0OjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjZTZlNWU1O1xufVxuXG4ucGl4ZWwtYm94LS1saWdodDpob3ZlciwgLnBpeGVsLWJveC0tbGlnaHQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICMwYzYzOWM7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjMwYzYzOWMnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMDljZWU7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1wcmltYXJ5IHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnk6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICMxMDgxY2I7XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnk6aG92ZXIsIC5waXhlbC1ib3gtLXByaW1hcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTE5MGUzO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICM1Yjg0MjM7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjM1Yjg0MjMnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MmNjNDE7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1zdWNjZXNzIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3M6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICM3N2FjMmU7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3M6aG92ZXIsIC5waXhlbC1ib3gtLXN1Y2Nlc3M6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODVjMDM0O1xufVxuXG4ucGl4ZWwtYm94LS13YXJuaW5nIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2E4OGYwNjtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2E4OGYwNicgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZDUxZDtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLXdhcm5pbmcge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJveC0td2FybmluZzo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2Q5YjkwODtcbn1cblxuLnBpeGVsLWJveC0td2FybmluZzpob3ZlciwgLnBpeGVsLWJveC0td2FybmluZzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmNlMDk7XG59XG5cbi5waXhlbC1ib3gtLWVycm9yIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICNiYzM2MWE7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjNiYzM2MWEnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNzZlNTU7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1lcnJvciB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1lcnJvcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2UxNDgyODtcbn1cblxuLnBpeGVsLWJveC0tZXJyb3I6aG92ZXIsIC5waXhlbC1ib3gtLWVycm9yOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0NWIzZjtcbn1cblxuLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2NjY2NjYztcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2NjY2NjYycgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLWxpZ2h0LWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1saWdodC1jdXN0b206OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICM5OTksIGluc2V0IDRweCA0cHggIzk5OTtcbn1cblxuLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1saWdodC1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMGM2MzljO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzMGM2MzljJyAvPjwvc3ZnPlwiKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIwOWNlZTtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLXByaW1hcnktY3VzdG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnktY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMTkwZTM7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3MtY3VzdG9tIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICM1Yjg0MjM7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjM1Yjg0MjMnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MmNjNDE7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCA0cHggNHB4ICNiNWRjN2Q7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3MtY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4NWMwMzQ7XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2E4OGYwNjtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2E4OGYwNicgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZDUxZDtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjZDliOTA4LCBpbnNldCA0cHggNHB4ICNmYWUzNjc7XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS13YXJuaW5nLWN1c3RvbTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmNlMDk7XG59XG5cbi5waXhlbC1ib3gtLWVycm9yLWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzMDAwJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2ZTU1O1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJveC0tZXJyb3ItY3VzdG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLWVycm9yLWN1c3RvbTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2UxNDgyODtcbn1cblxuLnBpeGVsLWJveC0tZXJyb3ItY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1lcnJvci1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQ1YjNmO1xufVxuIl19 */ +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBpeGVsLWJvcmRlcnMvX3BpeGVsLWJvcmRlcnMuc2NzcyIsInBpeGVsLWJvcmRlcnMuY3NzIiwicGl4ZWwtYm9yZGVycy9fcGl4ZWwtYm9yZGVycy1taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtFQUNFLGtCQUFrQjtFQUNsQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIseUVBQXlFO0FDQTNFOztBREtBO0VFMEJFLG1CQUFtQjtFQUNuQixpQkFQcUQ7RUFRckQsa0JBUjBFO0VBVTFFLHFCQVZrQztFQVdsQyxxQkFYa0M7RUFZbEMsc0JBQXNCO0VBRXRCLHlMQUEwRTtBRDdCNUU7O0FDaUJ1QztFRnRCdkM7SUV1QkksbUJBQXVFO0VEYnpFO0FBQ0Y7O0FEUEE7RUVzQkUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJBVmtDO0VBV2xDLHFCQVhrQztFQVlsQyxzQkFBc0I7RUFFdEIseUxBQTBFO0VBcUIxRSxrQkFBa0I7QURqQ3BCOztBQ0F1QztFRmxCdkM7SUVtQkksbUJBQXVFO0VESXpFO0FBQ0Y7O0FDNkJFO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixVQUFVO0VBQ1YsU0FBUztFQUNULFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQWNaLHdDRnpFOEM7VUV5RTlDLGdDRnpFOEM7QUNrQ2xEOztBRDdCQTtFRWdCRSxtQkFBbUI7RUFDbkIsaUJBUHFEO0VBUXJELGtCQVIwRTtFQVUxRSxxQkZuQnNDO0VFb0J0QyxxQkZwQnNDO0VFcUJ0QyxzQkFBc0I7RUFFdEIseVJBQTBFO0FEZTVFOztBQzNCdUM7RUZadkM7SUVhSSxtQkFBdUU7RUQrQnpFO0FBQ0Y7O0FEekNBO0VFWUUsbUJBQW1CO0VBQ25CLGlCQVBxRDtFQVFyRCxrQkFSMEU7RUFVMUUscUJGZnNDO0VFZ0J0QyxxQkZoQnNDO0VFaUJ0QyxzQkFBc0I7RUFFdEIseVJBQTBFO0FEK0I1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QVk7RUFjWix5Q0E0Qm1EO1VBNUJuRCxpQ0E0Qm1EO0FEa1B2RDs7QUN4T0U7RUFDRSx5QkE3Qm1EO0FEd1F2RDs7QUR2UkE7RUUvQ0UsbUJBQW1CO0VBQ25CLGlCRitDcUQ7RUU5Q3JELHFCQStEOEM7RUE3RDlDLHFCRjRDa0M7RUUzQ2xDLHFCRjJDa0M7RUUxQ2xDLHNCQUFzQjtFQUV0Qiw0TEFBMEU7RUFxQjFFLGtCQUFrQjtFQTJEbEIseUJGeENpRjtBQ2tTbkY7O0FDdFZ1QztFRm1EdkM7SUVsREksbUJBQXVFO0VEMFZ6RTtBQUNGOztBQ3pURTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFNBQVM7RUFDVCxRQUFRO0VBQ1IsV0FBVztFQUNYLFlBQVk7RUFjWixrRUFvQnNEO1VBcEJ0RCwwREFvQnNEO0FEMlIxRDs7QUN6UUU7RUFDRSx5QkE3Qm1EO0FEeVN2RDs7QURwVEE7RUFDRSxXQUFXO0VFcERYLG1CQUFtQjtFQUNuQixpQkZvRHFEO0VFbkRyRCxrQkZtRHNHO0VFakR0RyxxQkZpRGtDO0VFaERsQyxxQkZnRGtDO0VFL0NsQyxzQkFBc0I7RUFFdEIseUxBQTBFO0VBcUIxRSxrQkFBa0I7RUEyRGxCLHlCRm5DaUY7QUMrVG5GOztBQ3hYdUM7RUZ1RHZDO0lFdERJLG1CQUF1RTtFRDRYekU7QUFDRjs7QUMzVkU7RUFDRSxXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixTQUFTO0VBQ1QsUUFBUTtFQUNSLFdBQVc7RUFDWCxZQUFZO0VBY1osMkNBd0JrRDtVQXhCbEQsbUNBd0JrRDtBRHlUdEQ7O0FDM1NFO0VBQ0UseUJBN0JtRDtBRDJVdkQiLCJmaWxlIjoicGl4ZWwtYm9yZGVycy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAtLS0tLSBCb3JkZXIgc3R5bGVzIC0tLS0tXG4ucGl4ZWwtYm9yZGVycyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMTVweCAxNXB4IDA7XG4gIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgQXJpYWwgQmxhY2ssIEFyaWFsIEJvbGQsIEFyaWFsLCBzYW5zLXNlcmlmO1xufVxuXG5cbi8vIE9uZSBwaXhlbCBib3JkZXJzXG4ucGl4ZWwtYm9yZGVycy0tMSB7XG4gIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoKTtcbn1cblxuLnBpeGVsLWJvcmRlcnMtLTEtaW5zZXQge1xuICBAaW5jbHVkZSBwaXhlbC1ib3JkZXJzKCRib3JkZXItaW5zZXQtY29sb3I6ICNkZGQpO1xufVxuXG5cbi8vIFR3byBwaXhlbCBib3JkZXJzXG4ucGl4ZWwtYm9yZGVycy0tMiB7XG4gIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGNvcm5lci1zaXplOiAyKTtcbn1cblxuLnBpeGVsLWJvcmRlcnMtLTItaW5zZXQge1xuICBAaW5jbHVkZSBwaXhlbC1ib3JkZXJzKCRjb3JuZXItc2l6ZTogMik7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIEBpbmNsdWRlIHBpeGVsLWJvcmRlcnMoJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLWNvbG9yOiAjZGRkKTtcblxuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBib3JkZXItaW1hZ2Utd2lkdGg6IDAgMSAxIDA7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDRweCk7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpO1xuICB9XG59XG5cblxuXG4vLyBFeGFtcGxlcyB1c2luZyB0aGUgcGl4ZWwgYm94IG1peGluIHRvIGNvbG91ciBjb2RlIHRoZSBlbGVtZW50c1xuLnBpeGVsLWJveC0tbGlnaHQge1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNmZmYpO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogIzIwOWNlZSk7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3Mge1xuICBjb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjOTJjYzQxKTtcbn0gXG5cbi5waXhlbC1ib3gtLXdhcm5pbmcge1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNmN2Q1MWQpO1xufSBcblxuLnBpeGVsLWJveC0tZXJyb3Ige1xuICBjb2xvcjogI2ZmZjtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2ZTU1KTtcbn0gXG5cblxuLy8gQ3VzdG9tIGV4YW1wbGVzIHRvIHNob3cgZmxleGliaWxpdHkgb2YgdGhlIG1peGluc1xuLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tIHtcbiAgQGluY2x1ZGUgcGl4ZWwtYm94KCRjb3JuZXItc2l6ZTogMSwgJGJvcmRlci1zaXplOiA0cHgsICRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmLCAkYm9yZGVyLWluc2V0LWNvbG9yOiAjOTk5LCAkYm9yZGVyLWluc2V0LXNpZGVzOiAnYWxsJyk7XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnktY3VzdG9tIHtcbiAgY29sb3I6ICNmZmY7XG4gIEBpbmNsdWRlIHBpeGVsLWJveCgkY29ybmVyLXNpemU6IDEsICRib3JkZXItc2l6ZTogNHB4LCAkYmFja2dyb3VuZC1jb2xvcjogIzIwOWNlZSwgJGJvcmRlci1pbnNldDogZmFsc2UpO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICM5MmNjNDEsICRib3JkZXItaW5zZXQtc2lkZXM6ICd0b3AtbGVmdCcpO1xufSBcblxuLnBpeGVsLWJveC0td2FybmluZy1jdXN0b20ge1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNmN2Q1MWQsICRib3JkZXItaW5zZXQtc2lkZXM6ICdhbGwnKTtcbn0gXG5cbi5waXhlbC1ib3gtLWVycm9yLWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBAaW5jbHVkZSBwaXhlbC1ib3goJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJhY2tncm91bmQtY29sb3I6ICNlNzZlNTUsICRib3JkZXItY29sb3I6ICMwMDApO1xufSBcbiIsIi5waXhlbC1ib3JkZXJzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbjogMCAxNXB4IDE1cHggMDtcbiAgcGFkZGluZzogMTVweCAyMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBBcmlhbCBCbGFjaywgQXJpYWwgQm9sZCwgQXJpYWwsIHNhbnMtc2VyaWY7XG59XG5cbi5waXhlbC1ib3JkZXJzLS0xIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyMzAwMCcgLz48L3N2Zz5cIik7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm9yZGVycy0tMSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm9yZGVycy0tMS1pbnNldCB7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICMwMDA7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjMwMDAnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm9yZGVycy0tMS1pbnNldCB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm9yZGVycy0tMS1pbnNldDo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2RkZDtcbn1cblxuLnBpeGVsLWJvcmRlcnMtLTIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDQ7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMjtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nMTInPjxwYXRoIGQ9J00yIDJoMnYySDJ6TTQgMGgydjJINHpNMTAgNGgydjJoLTJ6TTAgNGgydjJIMHpNNiAwaDJ2Mkg2ek04IDJoMnYySDh6TTggOGgydjJIOHpNNiAxMGgydjJINnpNMCA2aDJ2Mkgwek0xMCA2aDJ2MmgtMnpNNCAxMGgydjJINHpNMiA4aDJ2MkgyeicgZmlsbD0nJTIzMDAwJyAvPjwvc3ZnPlwiKTtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3JkZXJzLS0yIHtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3JkZXJzLS0yLWluc2V0IHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogIzAwMDtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiA0O1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDI7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJz48cGF0aCBkPSdNMiAyaDJ2Mkgyek00IDBoMnYySDR6TTEwIDRoMnYyaC0yek0wIDRoMnYySDB6TTYgMGgydjJINnpNOCAyaDJ2Mkg4ek04IDhoMnYySDh6TTYgMTBoMnYySDZ6TTAgNmgydjJIMHpNMTAgNmgydjJoLTJ6TTQgMTBoMnYySDR6TTIgOGgydjJIMnonIGZpbGw9JyUyMzAwMCcgLz48L3N2Zz5cIik7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm9yZGVycy0tMi1pbnNldCB7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm9yZGVycy0tMi1pbnNldDo6YWZ0ZXIge1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzZGRkJyAvPjwvc3ZnPlwiKTtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAwIDEgMSAwO1xuICB3aWR0aDogY2FsYygxMDAlIC0gNHB4KTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpO1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJvcmRlcnMtLTItaW5zZXQ6OmFmdGVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLWxpZ2h0IHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2NjY2NjYztcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2NjY2NjYycgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLWxpZ2h0IHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLWxpZ2h0OjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjZTZlNWU1O1xufVxuXG4ucGl4ZWwtYm94LS1saWdodDpob3ZlciwgLnBpeGVsLWJveC0tbGlnaHQ6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICMwYzYzOWM7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjMwYzYzOWMnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMDljZWU7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1wcmltYXJ5IHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnk6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICMxMDgxY2I7XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnk6aG92ZXIsIC5waXhlbC1ib3gtLXByaW1hcnk6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTE5MGUzO1xufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICM1Yjg0MjM7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjM1Yjg0MjMnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MmNjNDE7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1zdWNjZXNzIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3M6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICM3N2FjMmU7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3M6aG92ZXIsIC5waXhlbC1ib3gtLXN1Y2Nlc3M6Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjODVjMDM0O1xufVxuXG4ucGl4ZWwtYm94LS13YXJuaW5nIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2E4OGYwNjtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2E4OGYwNicgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZDUxZDtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLXdhcm5pbmcge1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIH1cbn1cblxuLnBpeGVsLWJveC0td2FybmluZzo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2Q5YjkwODtcbn1cblxuLnBpeGVsLWJveC0td2FybmluZzpob3ZlciwgLnBpeGVsLWJveC0td2FybmluZzpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmNlMDk7XG59XG5cbi5waXhlbC1ib3gtLWVycm9yIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICNiYzM2MWE7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjNiYzM2MWEnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNzZlNTU7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1lcnJvciB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1lcnJvcjo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2UxNDgyODtcbn1cblxuLnBpeGVsLWJveC0tZXJyb3I6aG92ZXIsIC5waXhlbC1ib3gtLWVycm9yOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U0NWIzZjtcbn1cblxuLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2NjY2NjYztcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2NjY2NjYycgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLWxpZ2h0LWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1saWdodC1jdXN0b206OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTRweCAtNHB4ICM5OTksIGluc2V0IDRweCA0cHggIzk5OTtcbn1cblxuLnBpeGVsLWJveC0tbGlnaHQtY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1saWdodC1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuXG4ucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMGM2MzljO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzMGM2MzljJyAvPjwvc3ZnPlwiKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzIwOWNlZTtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLXByaW1hcnktY3VzdG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXByaW1hcnktY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1wcmltYXJ5LWN1c3RvbTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxMTkwZTM7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3MtY3VzdG9tIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogNHB4O1xuICBib3JkZXItY29sb3I6ICM1Yjg0MjM7XG4gIGJvcmRlci1pbWFnZS1zbGljZTogMjtcbiAgYm9yZGVyLWltYWdlLXdpZHRoOiAxO1xuICBib3JkZXItaW1hZ2Utb3V0c2V0OiAwO1xuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc2JyBoZWlnaHQ9JzYnPjxwYXRoIGQ9J00wIDJoMnYySDB6TTIgMGgydjJIMnpNNCAyaDJ2Mkg0ek0yIDRoMnYySDJ6JyBmaWxsPSclMjM1Yjg0MjMnIC8+PC9zdmc+XCIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5MmNjNDE7XG59XG5cbkBzdXBwb3J0cyAoYm9yZGVyLWltYWdlLXNvdXJjZTogbm9uZSkge1xuICAucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgfVxufVxuXG4ucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCA0cHggNHB4ICNiNWRjN2Q7XG59XG5cbi5waXhlbC1ib3gtLXN1Y2Nlc3MtY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1zdWNjZXNzLWN1c3RvbTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4NWMwMzQ7XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiA0cHg7XG4gIGJvcmRlci1jb2xvcjogI2E4OGYwNjtcbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6IDE7XG4gIGJvcmRlci1pbWFnZS1vdXRzZXQ6IDA7XG4gIGJvcmRlci1pbWFnZS1zb3VyY2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzYnIGhlaWdodD0nNic+PHBhdGggZD0nTTAgMmgydjJIMHpNMiAwaDJ2Mkgyek00IDJoMnYySDR6TTIgNGgydjJIMnonIGZpbGw9JyUyM2E4OGYwNicgLz48L3N2Zz5cIik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZDUxZDtcbn1cblxuQHN1cHBvcnRzIChib3JkZXItaW1hZ2Utc291cmNlOiBub25lKSB7XG4gIC5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJveC1zaGFkb3c6IGluc2V0IC00cHggLTRweCAjZDliOTA4LCBpbnNldCA0cHggNHB4ICNmYWUzNjc7XG59XG5cbi5waXhlbC1ib3gtLXdhcm5pbmctY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS13YXJuaW5nLWN1c3RvbTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmNlMDk7XG59XG5cbi5waXhlbC1ib3gtLWVycm9yLWN1c3RvbSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDRweDtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICBib3JkZXItaW1hZ2Utc2xpY2U6IDI7XG4gIGJvcmRlci1pbWFnZS13aWR0aDogMTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcbiAgYm9yZGVyLWltYWdlLXNvdXJjZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNicgaGVpZ2h0PSc2Jz48cGF0aCBkPSdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2MkgyeicgZmlsbD0nJTIzMDAwJyAvPjwvc3ZnPlwiKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTc2ZTU1O1xufVxuXG5Ac3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgLnBpeGVsLWJveC0tZXJyb3ItY3VzdG9tIHtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICB9XG59XG5cbi5waXhlbC1ib3gtLWVycm9yLWN1c3RvbTo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAwO1xuICBib3R0b206IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3gtc2hhZG93OiBpbnNldCAtNHB4IC00cHggI2UxNDgyODtcbn1cblxuLnBpeGVsLWJveC0tZXJyb3ItY3VzdG9tOmhvdmVyLCAucGl4ZWwtYm94LS1lcnJvci1jdXN0b206Zm9jdXMge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQ1YjNmO1xufVxuIiwiLy8gR2VuZXJhdGUgU1ZHIGltYWdlIGZvciBwaXhlbGF0ZWQgY29ybmVyc1xuQGZ1bmN0aW9uIHBpeGVsLWJvcmRlcnMtaW1hZ2UoJGNvcm5lci1zaXplLCAkY29sb3IpIHtcbiAgJHN2ZzogJyc7XG4gICRzdmctcGF0aDogJyc7XG4gICRzdmctc2l6ZTogJGNvcm5lci1zaXplICogNjtcbiAgJGNvbG9yOiBzdHItcmVwbGFjZSgnJyArICRjb2xvciwgJyMnLCAnJTIzJyk7XG5cbiAgQGlmICRjb3JuZXItc2l6ZSA9PSAxIHtcbiAgICAkc3ZnLXBhdGg6ICdNMCAyaDJ2Mkgwek0yIDBoMnYySDJ6TTQgMmgydjJINHpNMiA0aDJ2Mkgyeic7XG4gIH0gQGVsc2Uge1xuICAgICRzdmctcGF0aDogJ00yIDJoMnYySDJ6TTQgMGgydjJINHpNMTAgNGgydjJoLTJ6TTAgNGgydjJIMHpNNiAwaDJ2Mkg2ek04IDJoMnYySDh6TTggOGgydjJIOHpNNiAxMGgydjJINnpNMCA2aDJ2Mkgwek0xMCA2aDJ2MmgtMnpNNCAxMGgydjJINHpNMiA4aDJ2Mkgyeic7XG4gIH1cblxuICAkc3ZnOiAnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XFwnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXCcgd2lkdGg9XFwnI3skc3ZnLXNpemV9XFwnIGhlaWdodD1cXCcjeyRzdmctc2l6ZX1cXCc+PHBhdGggZD1cXCcjeyRzdmctcGF0aH1cXCcgZmlsbD1cXCcjeyRjb2xvcn1cXCcgLz48L3N2Zz4nO1xuXG4gIEByZXR1cm4gJHN2Zztcbn1cblxuXG4vLyBTdHJpbmcgcmVwbGFjZSBmdW5jdGlvbiAtIHJlcGxhY2UgYCRzZWFyY2hgIHdpdGggYCRyZXBsYWNlYCBpbiBgJHN0cmluZ2BcbkBmdW5jdGlvbiBzdHItcmVwbGFjZSgkc3RyaW5nLCAkc2VhcmNoLCAkcmVwbGFjZTogJycpIHtcbiAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlYXJjaCk7XG5cbiAgQGlmICRpbmRleCB7XG4gICAgQHJldHVybiBzdHItc2xpY2UoJHN0cmluZywgMSwgJGluZGV4IC0gMSkgKyAkcmVwbGFjZSArIHN0ci1yZXBsYWNlKHN0ci1zbGljZSgkc3RyaW5nLCAkaW5kZXggKyBzdHItbGVuZ3RoKCRzZWFyY2gpKSwgJHNlYXJjaCwgJHJlcGxhY2UpO1xuICB9XG5cbiAgQHJldHVybiAkc3RyaW5nO1xufVxuXG5cbi8vIFBpeGVsIGJvcmRlclxuQG1peGluIHBpeGVsLWJvcmRlcnMoJGNvcm5lci1zaXplOiAxLCAkYm9yZGVyLXNpemU6IDRweCwgJGJvcmRlci1jb2xvcjogIzAwMCwgJGJvcmRlci1pbnNldC1jb2xvcjogZmFsc2UpIHtcblxuICBAc3VwcG9ydHMgKGJvcmRlci1pbWFnZS1zb3VyY2U6IG5vbmUpIHtcbiAgICBib3JkZXItcmFkaXVzOiAoJGJvcmRlci1zaXplICogKCRjb3JuZXItc2l6ZSArIDIpKSArICgkY29ybmVyLXNpemUgKiAyKTtcbiAgfVxuXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogJGJvcmRlci1zaXplO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItY29sb3I7XG5cbiAgYm9yZGVyLWltYWdlLXNsaWNlOiAkY29ybmVyLXNpemUgKiAyO1xuICBib3JkZXItaW1hZ2Utd2lkdGg6ICRjb3JuZXItc2l6ZTtcbiAgYm9yZGVyLWltYWdlLW91dHNldDogMDtcblxuICBib3JkZXItaW1hZ2Utc291cmNlOiB1cmwocGl4ZWwtYm9yZGVycy1pbWFnZSgkY29ybmVyLXNpemUsICRib3JkZXItY29sb3IpKTtcblxuICBAaWYgJGJvcmRlci1pbnNldC1jb2xvciB7XG4gICAgQGluY2x1ZGUgcGl4ZWwtaW5zZXQtYm9yZGVyKCRib3JkZXItc2l6ZSwgJGJvcmRlci1pbnNldC1jb2xvcik7XG4gIH1cblxufVxuXG5cbi8vIFBpeGVsIGluc2V0IGJvcmRlclxuQG1peGluIHBpeGVsLWluc2V0LWJvcmRlcigkYm9yZGVyLWluc2V0LXNpemU6IDRweCwgJGJvcmRlci1pbnNldC1jb2xvcjogI2RkZCwgJGJvcmRlci1pbnNldC1zaWRlczogJ2JvdHRvbS1yaWdodCcsICRib3JkZXItaW5zZXQtY29sb3ItYnI6IGZhbHNlLCAkYm9yZGVyLWluc2V0LWNvbG9yLXRsOiBmYWxzZSkge1xuXG4gICRib3gtc2hhZG93OiAnJztcbiAgQGlmIG5vdCgkYm9yZGVyLWluc2V0LWNvbG9yLWJyKSB7XG4gICAgJGJvcmRlci1pbnNldC1jb2xvci1icjogJGJvcmRlci1pbnNldC1jb2xvcjtcbiAgfVxuXG4gIEBpZiBub3QoJGJvcmRlci1pbnNldC1jb2xvci10bCkge1xuICAgICRib3JkZXItaW5zZXQtY29sb3ItdGw6ICRib3JkZXItaW5zZXQtY29sb3I7XG4gIH1cblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgJjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBAaWYgJGJvcmRlci1pbnNldC1zaWRlcyA9PSAnYm90dG9tLXJpZ2h0JyBvciAkYm9yZGVyLWluc2V0LXNpZGVzID09IGZhbHNlIHtcbiAgICAgICRib3gtc2hhZG93OiBpbnNldCAtI3skYm9yZGVyLWluc2V0LXNpemV9IC0jeyRib3JkZXItaW5zZXQtc2l6ZX0gJGJvcmRlci1pbnNldC1jb2xvci1icjtcbiAgICB9XG5cbiAgICBAaWYgJGJvcmRlci1pbnNldC1zaWRlcyA9PSAndG9wLWxlZnQnIHtcbiAgICAgICRib3gtc2hhZG93OiBpbnNldCAkYm9yZGVyLWluc2V0LXNpemUgJGJvcmRlci1pbnNldC1zaXplICRib3JkZXItaW5zZXQtY29sb3ItdGw7XG4gICAgfVxuXG4gICAgQGlmICRib3JkZXItaW5zZXQtc2lkZXMgPT0gJ2FsbCcge1xuICAgICAgJGJveC1zaGFkb3c6IGluc2V0IC0jeyRib3JkZXItaW5zZXQtc2l6ZX0gLSN7JGJvcmRlci1pbnNldC1zaXplfSAkYm9yZGVyLWluc2V0LWNvbG9yLWJyLCBpbnNldCAkYm9yZGVyLWluc2V0LXNpemUgJGJvcmRlci1pbnNldC1zaXplICRib3JkZXItaW5zZXQtY29sb3ItdGw7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogJGJveC1zaGFkb3c7XG4gIH1cblxufVxuXG5cblxuLy8gUGl4ZWwgYm94IC0gQ29sb3VycyBmb3IgYm9yZGVyIGFuZCBpbnNldCBhcmUgY2FsY3VsYXRlZCB1c2luZyAkYmFja2dyb3VuZC1jb2xvciB1bmxlc3MgJGJvcmRlci1jb2xvciBpcyBwYXNzZWRcbkBtaXhpbiBwaXhlbC1ib3goJGNvcm5lci1zaXplLCAkYm9yZGVyLXNpemUsICRiYWNrZ3JvdW5kLWNvbG9yLCAkYm9yZGVyLWNvbG9yOiBmYWxzZSwgJGJvcmRlci1pbnNldDogdHJ1ZSwgJGJvcmRlci1pbnNldC1zaXplOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvcjogZmFsc2UsICRib3JkZXItaW5zZXQtc2lkZXM6IGZhbHNlLCAkYm9yZGVyLWluc2V0LWNvbG9yLWJyOiBmYWxzZSwgJGJvcmRlci1pbnNldC1jb2xvci10bDogZmFsc2UpIHtcbiAgXG4gICRiYWNrZ3JvdW5kLWNvbG9yLWhvdmVyOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDUpO1xuXG4gIEBpZiBub3QoJGJvcmRlci1jb2xvcikge1xuICAgICRib3JkZXItY29sb3I6IGRhcmtlbigkYmFja2dyb3VuZC1jb2xvciwgMjApO1xuICB9XG5cbiAgQGluY2x1ZGUgcGl4ZWwtYm9yZGVycygkY29ybmVyLXNpemU6ICRjb3JuZXItc2l6ZSwgJGJvcmRlci1zaXplOiAkYm9yZGVyLXNpemUsICRib3JkZXItY29sb3I6ICRib3JkZXItY29sb3IpO1xuXG4gIEBpZiAkYm9yZGVyLWluc2V0LXNpZGVzID09ICdhbGwnIGFuZCBub3QoJGJvcmRlci1pbnNldC1jb2xvcikge1xuICAgICRib3JkZXItaW5zZXQtY29sb3ItYnI6IGRhcmtlbigkYmFja2dyb3VuZC1jb2xvciwgMTApO1xuICAgICRib3JkZXItaW5zZXQtY29sb3ItdGw6IGxpZ2h0ZW4oJGJhY2tncm91bmQtY29sb3IsIDE1KTtcbiAgfVxuXG4gIEBpZiBub3QoJGJvcmRlci1pbnNldC1jb2xvcikgeyBcbiAgICAkYm9yZGVyLWluc2V0LWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQtY29sb3IsIDEwKTtcbiAgfVxuXG4gIEBpZiAkYm9yZGVyLWluc2V0LXNpZGVzID09ICd0b3AtbGVmdCcge1xuICAgICRib3JkZXItaW5zZXQtY29sb3I6IGxpZ2h0ZW4oJGJhY2tncm91bmQtY29sb3IsIDE1KTtcbiAgfVxuXG5cbiAgQGlmICRib3JkZXItaW5zZXQgeyBcbiAgICBAaW5jbHVkZSBwaXhlbC1pbnNldC1ib3JkZXIoJGJvcmRlci1pbnNldC1zaXplOiAkYm9yZGVyLXNpemUsICRib3JkZXItaW5zZXQtY29sb3I6ICRib3JkZXItaW5zZXQtY29sb3IsICRib3JkZXItaW5zZXQtc2lkZXM6ICRib3JkZXItaW5zZXQtc2lkZXMsICRib3JkZXItaW5zZXQtY29sb3ItYnI6ICRib3JkZXItaW5zZXQtY29sb3ItYnIsICRib3JkZXItaW5zZXQtY29sb3ItdGw6ICRib3JkZXItaW5zZXQtY29sb3ItdGwpO1xuICB9XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3I7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQtY29sb3ItaG92ZXI7XG4gIH1cblxufVxuIl19 */ diff --git a/docs/styles/site.css b/docs/styles/site.css index 4efd582..c1fd0f9 100644 --- a/docs/styles/site.css +++ b/docs/styles/site.css @@ -571,4 +571,4 @@ pre { margin: 0; } -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9ub3JtYWxpemUuc2NzcyIsInNpdGUuY3NzIiwic2l0ZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUFBO0FBRUE7K0VDQStFO0FERy9FOzs7RUNDRTtBRElGO0VBQ0UsaUJBQWlCO0VBQUUsTUFBQTtFQUNuQiw4QkFBOEI7RUFBRSxNQUFBO0FDQWxDOztBREdBOytFQ0ErRTtBREcvRTs7RUNBRTtBRElGO0VBQ0UsU0FBUztBQ0ZYOztBREtBOztFQ0RFO0FES0Y7RUFDRSxjQUFjO0FDSGhCOztBRE1BOzs7RUNERTtBRE1GO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtBQ0psQjs7QURPQTsrRUNKK0U7QURPL0U7OztFQ0hFO0FEUUY7RUFDRSwrQkFBdUI7VUFBdkIsdUJBQXVCO0VBQUUsTUFBQTtFQUN6QixTQUFTO0VBQUUsTUFBQTtFQUNYLGlCQUFpQjtFQUFFLE1BQUE7QUNIckI7O0FETUE7OztFQ0RFO0FETUY7RUFDRSxpQ0FBaUM7RUFBRSxNQUFBO0VBQ25DLGNBQWM7RUFBRSxNQUFBO0FDRmxCOztBREtBOytFQ0YrRTtBREsvRTs7RUNGRTtBRE1GO0VBQ0UsNkJBQTZCO0FDSi9COztBRE9BOzs7RUNGRTtBRE9GO0VBQ0UsbUJBQW1CO0VBQUUsTUFBQTtFQUNyQiwwQkFBMEI7RUFBRSxNQUFBO0VBQzVCLHlDQUFpQztVQUFqQyxpQ0FBaUM7RUFBRSxNQUFBO0FDRnJDOztBREtBOztFQ0RFO0FES0Y7O0VBRUUsbUJBQW1CO0FDSHJCOztBRE1BOzs7RUNERTtBRE1GOzs7RUFHRSxpQ0FBaUM7RUFBRSxNQUFBO0VBQ25DLGNBQWM7RUFBRSxNQUFBO0FDRmxCOztBREtBOztFQ0RFO0FES0Y7RUFDRSxjQUFjO0FDSGhCOztBRE1BOzs7RUNERTtBRE1GOztFQUVFLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHdCQUF3QjtBQ0oxQjs7QURPQTtFQUNFLGVBQWU7QUNKakI7O0FET0E7RUFDRSxXQUFXO0FDSmI7O0FET0E7K0VDSitFO0FETy9FOztFQ0pFO0FEUUY7RUFDRSxrQkFBa0I7QUNOcEI7O0FEU0E7K0VDTitFO0FEUy9FOzs7RUNMRTtBRFVGOzs7OztFQUtFLG9CQUFvQjtFQUFFLE1BQUE7RUFDdEIsZUFBZTtFQUFFLE1BQUE7RUFDakIsaUJBQWlCO0VBQUUsTUFBQTtFQUNuQixTQUFTO0VBQUUsTUFBQTtBQ0piOztBRE9BOzs7RUNGRTtBRE9GOztFQUNRLE1BQUE7RUFDTixpQkFBaUI7QUNKbkI7O0FET0E7OztFQ0ZFO0FET0Y7O0VBQ1MsTUFBQTtFQUNQLG9CQUFvQjtBQ0p0Qjs7QURPQTs7RUNIRTtBRE9GOzs7O0VBSUUsMEJBQTBCO0FDTDVCOztBRFFBOztFQ0pFO0FEUUY7Ozs7RUFJRSxrQkFBa0I7RUFDbEIsVUFBVTtBQ05aOztBRFNBOztFQ0xFO0FEU0Y7Ozs7RUFJRSw4QkFBOEI7QUNQaEM7O0FEVUE7O0VDTkU7QURVRjtFQUNFLDhCQUE4QjtBQ1JoQzs7QURXQTs7Ozs7RUNKRTtBRFdGO0VBQ0UsOEJBQXNCO1VBQXRCLHNCQUFzQjtFQUFFLE1BQUE7RUFDeEIsY0FBYztFQUFFLE1BQUE7RUFDaEIsY0FBYztFQUFFLE1BQUE7RUFDaEIsZUFBZTtFQUFFLE1BQUE7RUFDakIsVUFBVTtFQUFFLE1BQUE7RUFDWixtQkFBbUI7RUFBRSxNQUFBO0FDSHZCOztBRE1BOztFQ0ZFO0FETUY7RUFDRSx3QkFBd0I7QUNKMUI7O0FET0E7O0VDSEU7QURPRjtFQUNFLGNBQWM7QUNMaEI7O0FEUUE7OztFQ0hFO0FBQ0Y7O0VEU0UsOEJBQXNCO1VBQXRCLHNCQUFzQjtFQUFFLE1BQUE7RUFDeEIsVUFBVTtFQUFFLE1BQUE7QUNKZDs7QURPQTs7RUNIRTtBQUNGOztFRFFFLFlBQVk7QUNMZDs7QURRQTs7O0VDSEU7QUFDRjtFRFFFLDZCQUE2QjtFQUFFLE1BQUE7RUFDL0Isb0JBQW9CO0VBQUUsTUFBQTtBQ0p4Qjs7QURPQTs7RUNIRTtBQUNGO0VET0Usd0JBQXdCO0FDTDFCOztBRFFBOzs7RUNIRTtBRFFGO0VBQ0UsMEJBQTBCO0VBQUUsTUFBQTtFQUM1QixhQUFhO0VBQUUsTUFBQTtBQ0pqQjs7QURPQTsrRUNKK0U7QURPL0U7O0VDSkU7QURRRjtFQUNFLGNBQWM7QUNOaEI7O0FEU0E7O0VDTEU7QURTRjtFQUNFLGtCQUFrQjtBQ1BwQjs7QURVQTsrRUNQK0U7QURVL0U7O0VDUEU7QURXRjtFQUNFLGFBQWE7QUNUZjs7QURZQTs7RUNSRTtBQUNGO0VEWUUsYUFBYTtBQ1ZmOztBQzFVQTs7O0VBR0UsOEJBQXNCO1VBQXRCLHNCQUFzQjtBRDZVeEI7O0FDMVVBO0VBQ0UsK0xBQStMO0VBQy9MLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLFdBQVc7RUFDWCxzQkFBc0I7QUQ2VXhCOztBQ3pVQTtFQUNFLGNBQWM7RUFDZCxxQkFBcUI7RUFDckIsOEJBQXNCO0VBQXRCLHNCQUFzQjtBRDRVeEI7O0FDL1VBO0VBTUksY0FBYztBRDZVbEI7O0FDeFVBO0VBQ0UsZ0JBQWdCO0FEMlVsQjs7QUM1VUE7RUFJSSxjQUFjO0FENFVsQjs7QUN4VUE7RUFDRSxrQkFBa0I7QUQyVXBCOztBQ3hVQTtFQUNFLG1CQUFtQjtBRDJVckI7O0FDeFVBO0VBQUssaUJBQWlCO0FENFV0Qjs7QUMzVUE7RUFBSyxlQUFlO0FEK1VwQjs7QUM5VUE7RUFBSyxrQkFBa0I7QURrVnZCOztBQ2pWQTtFQUFLLGlCQUFpQjtBRHFWdEI7O0FDcFZBO0VBQUssa0JBQWtCO0FEd1Z2Qjs7QUN2VkE7RUFBSyxlQUFlO0FEMlZwQjs7QUN6VkE7RUFDRSxrQkFBa0I7QUQ0VnBCOztBQ3pWQTtFQUNFLGdCQUFnQjtBRDRWbEI7O0FDelZBO0VBQ0UscUNBQXFDO0VBQ3JDLHlCQUF5QjtBRDRWM0I7O0FDelZBO0VBQ0UsY0FBYztFQUNkLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEIsY0FBYztFQUNkLGVBQWU7RUFDZixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QixrQkFBa0I7QUQ0VnBCOztBQ3pWQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIseUJBQXlCO0FENFYzQjs7QUMvVkE7RUFNSSxxQkFBcUI7RUFDckIsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixzQkFBc0I7QUQ2VjFCOztBQ3RWQTtFQUVJLFdBQVc7RUFDWCxpQkFBaUI7RUFDakIsb0JBQW9CO0FEd1Z4Qjs7QUNwVkE7RUFFSSxpQkFBaUI7RUFDakIsb0JBQW9CO0FEc1Z4Qjs7QUNsVkU7RUFDRSxXQUFXO0VBQ1gsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsbUJBQW1CO0FEcVZ2Qjs7QUNsVkk7RUFDRSxrQkFBa0I7QURxVnhCOztBQ2pWQTtFQUNFLDZCQUE2QjtBRG9WL0I7O0FDOVVBO0VBQ0Usd0JBQWdCO0VBQWhCLGdCQUFnQjtFQUNoQixNQUFNO0VBQ04sWUFBWTtFQUNaLFdBQVc7RUFDWCxnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLHlCQUF5QjtFQUN6QixrREFBdUM7VUFBdkMsMENBQXVDO0FEaVZ6Qzs7QUMvVUU7RUFWRjtJQVdJLGVBQWU7RURtVmpCO0FBQ0Y7O0FDL1ZBO0VBZ0JJLG9CQUFhO0VBQWIsb0JBQWE7RUFBYixhQUFhO0FEbVZqQjs7QUNqVkk7RUFsQko7SUFtQk0sNEJBQWlCO0lBQWpCLDZCQUFpQjtRQUFqQixxQkFBaUI7WUFBakIsaUJBQWlCO0VEcVZyQjtBQUNGOztBQ25WSTtFQXRCSjtJQXVCTSx5QkFBbUI7UUFBbkIsc0JBQW1CO1lBQW5CLG1CQUFtQjtFRHVWdkI7QUFDRjs7QUNsVkU7RUFDRSxTQUFTO0FEcVZiOztBQ25WSTtFQUhGO0lBSUksa0JBQWtCO0VEdVZ0QjtBQUNGOztBQ3BWRTtFQUdJLGVBQWU7QURxVnJCOztBQ3hWRTtFQU1NLGtCQUFrQjtBRHNWMUI7O0FDbFZJO0VBVkY7SUFXSSxpQkFBaUI7RURzVnJCO0FBQ0Y7O0FDbFZBO0VBQ0Usa0JBQWtCO0FEcVZwQjs7QUMvVUE7RUFDRSxxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLHNCQUFzQjtFQUN0QixlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLDBCQUEwQjtFQUMxQixlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQixtREFBMkM7RUFBM0MsMkNBQTJDO0FEa1Y3Qzs7QUM1VkE7RUFhSSx5QkFBeUI7QURtVjdCOztBQy9VQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsNkJBQTZCO0FEa1YvQjs7QUM1VUE7RUFDRSxTQUFTO0FEK1VYIiwiZmlsZSI6InNpdGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFwiU2Vnb2UgVUlcIixSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLFwiTm90byBTYW5zXCIsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCIsXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbmEge1xuICBjb2xvcjogIzE5NzZEMjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xufVxuXG5hOmhvdmVyLCBhOmZvY3VzIHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG5oMSBzbWFsbCwgaDIgc21hbGwsIGgzIHNtYWxsLCBoNCBzbWFsbCwgaDUgc21hbGwsIGg2IHNtYWxsIHtcbiAgZm9udC1zaXplOiA2MCU7XG59XG5cbmgxLCBoMiB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cblxuaDMsIGg0LCBoNSwgaDYge1xuICBtYXJnaW46IDAgMCAuNXJlbSAwO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xufVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cblxuaDMge1xuICBmb250LXNpemU6IDEuNzVyZW07XG59XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG5cbmg1IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxucCB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cblxuc3Ryb25nLCB0aCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbnByZSwgY29kZSB7XG4gIGZvbnQtZmFtaWx5OiAnQ3V0aXZlIE1vbm8nLCBtb25vc3BhY2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG59XG5cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAuNzVyZW0gMXJlbTtcbiAgbWFyZ2luOiAwIDAgMS41cmVtIDA7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBmb250LXNpemU6IDFyZW07XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbi50YWJsZSB0aCwgLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogLjI1cmVtIC41cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuXG4uZnVsbHdpZHRoIC5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xufVxuXG4uZnVsbHdpZHRoLS1zbSAuY29udGFpbmVyIHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTE0MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG4uc3Vic2VjdGlvbiB7XG4gIG1hcmdpbjogMCAwIDJyZW0gMDtcbn1cblxuLnNlcGFyYXRvciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xufVxuXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAuNXJlbSAwO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzZEMjtcbiAgYm94LXNoYWRvdzogMCAwIDZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlciB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICB9XG59XG5cbi5oZWFkZXIgLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGVhZGVyIC5jb250YWluZXIge1xuICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyIC5jb250YWluZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cblxuLmxvZ28tdGV4dCB7XG4gIG1hcmdpbjogMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5sb2dvLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgfVxufVxuXG4uaGVhZGVyLS1saW5rcyAuYnRuLWRlbW8ge1xuICBtYXJnaW46IC41cmVtIDA7XG59XG5cbi5oZWFkZXItLWxpbmtzIC5idG4tZGVtbzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IC41cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci0tbGlua3Mge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbi5mb290ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5idG4tZGVtbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIHBhZGRpbmc6IDRweCAxMnB4IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zcztcbn1cblxuLmJ0bi1kZW1vOmhvdmVyLCAuYnRuLWRlbW86YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbn1cblxuLmJ0bi1kZW1vLS13aGl0ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubS0wIHtcbiAgbWFyZ2luOiAwO1xufVxuIiwiLy8gLS0tLS0gRGVtbyBzaXRlIHN0eWxlcyAtLS0tLVxuQGltcG9ydCBcIm5vcm1hbGl6ZVwiO1xuXG5cblxuLy8gLS0tLS0gQmFzZSBzdHlsZXMgLS0tLS1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFwiU2Vnb2UgVUlcIixSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLFwiTm90byBTYW5zXCIsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCIsXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cblxuYSB7XG4gIGNvbG9yOiAjMTk3NkQyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6ICMyMTk2RjM7XG4gIH1cbn1cblxuLy8gVHlwZVxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNjAlO1xuICB9XG59XG5cbmgxLCBoMiB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cblxuaDMsIGg0LCBoNSwgaDYge1xuICBtYXJnaW46IDAgMCAuNXJlbSAwO1xufVxuXG5oMSB7IGZvbnQtc2l6ZTogMi41cmVtOyB9XG5oMiB7IGZvbnQtc2l6ZTogMnJlbTsgfVxuaDMgeyBmb250LXNpemU6IDEuNzVyZW07IH1cbmg0IHsgZm9udC1zaXplOiAxLjVyZW07IH1cbmg1IHsgZm9udC1zaXplOiAxLjI1cmVtOyB9XG5oNiB7IGZvbnQtc2l6ZTogMXJlbTsgfVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xufVxuXG5zdHJvbmcsIHRoIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxucHJlLCBjb2RlIHtcbiAgZm9udC1mYW1pbHk6ICdDdXRpdmUgTW9ubycsIG1vbm9zcGFjZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbn1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IC43NXJlbSAxcmVtO1xuICBtYXJnaW46IDAgMCAxLjVyZW0gMDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuICB0aCwgdGQge1xuICAgIHBhZGRpbmc6IC4yNXJlbSAuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgfVxufVxuXG5cblxuLy8gLS0tLS0gTGF5b3V0IC0tLS0tXG4uZnVsbHdpZHRoIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gIH1cbn1cblxuLmZ1bGx3aWR0aC0tc20ge1xuICAuY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuXG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTE0MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICB9XG5cbiAgICAuc3Vic2VjdGlvbiB7XG4gICAgICBtYXJnaW46IDAgMCAycmVtIDA7XG4gICAgfVxuXG5cbi5zZXBhcmF0b3Ige1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbn1cblxuXG5cbi8vIC0tLS0tIEhlYWRlciBhbmQgZm9vdGVyIC0tLS0tXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAuNXJlbSAwO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzZEMjtcbiAgYm94LXNoYWRvdzogMCAwIDZweCA2cHggcmdiYSgwLDAsMCwwLjEpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgfVxuXG5cbiAgLmNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgfVxuXG59XG5cbiAgLmxvZ28tdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci0tbGlua3Mge1xuXG4gICAgLmJ0bi1kZW1vIHtcbiAgICAgIG1hcmdpbjogLjVyZW0gMDtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG5cblxuLmZvb3RlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuXG5cbi8vIC0tLS0tIEJ1dHRvbnMgLS0tLS1cbi5idG4tZGVtbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIHBhZGRpbmc6IDRweCAxMnB4IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zcztcblxuICAmOmhvdmVyLCAmOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbiAgfVxufVxuXG4uYnRuLWRlbW8tLXdoaXRlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cblxuXG4vLyAtLS0tLSBVdGlsaXRpZXMgLS0tLS1cbi5tLTAge1xuICBtYXJnaW46IDA7XG59XG4iXX0= */ +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpdGUvX25vcm1hbGl6ZS5zY3NzIiwic2l0ZS5jc3MiLCJzaXRlL19zaXRlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkVBQUE7QUFFQTsrRUNBK0U7QURHL0U7OztFQ0NFO0FESUY7RUFDRSxpQkFBaUI7RUFBRSxNQUFBO0VBQ25CLDhCQUE4QjtFQUFFLE1BQUE7QUNBbEM7O0FER0E7K0VDQStFO0FERy9FOztFQ0FFO0FESUY7RUFDRSxTQUFTO0FDRlg7O0FES0E7O0VDREU7QURLRjtFQUNFLGNBQWM7QUNIaEI7O0FETUE7OztFQ0RFO0FETUY7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0FDSmxCOztBRE9BOytFQ0orRTtBRE8vRTs7O0VDSEU7QURRRjtFQUNFLCtCQUF1QjtVQUF2Qix1QkFBdUI7RUFBRSxNQUFBO0VBQ3pCLFNBQVM7RUFBRSxNQUFBO0VBQ1gsaUJBQWlCO0VBQUUsTUFBQTtBQ0hyQjs7QURNQTs7O0VDREU7QURNRjtFQUNFLGlDQUFpQztFQUFFLE1BQUE7RUFDbkMsY0FBYztFQUFFLE1BQUE7QUNGbEI7O0FES0E7K0VDRitFO0FESy9FOztFQ0ZFO0FETUY7RUFDRSw2QkFBNkI7QUNKL0I7O0FET0E7OztFQ0ZFO0FET0Y7RUFDRSxtQkFBbUI7RUFBRSxNQUFBO0VBQ3JCLDBCQUEwQjtFQUFFLE1BQUE7RUFDNUIseUNBQWlDO1VBQWpDLGlDQUFpQztFQUFFLE1BQUE7QUNGckM7O0FES0E7O0VDREU7QURLRjs7RUFFRSxtQkFBbUI7QUNIckI7O0FETUE7OztFQ0RFO0FETUY7OztFQUdFLGlDQUFpQztFQUFFLE1BQUE7RUFDbkMsY0FBYztFQUFFLE1BQUE7QUNGbEI7O0FES0E7O0VDREU7QURLRjtFQUNFLGNBQWM7QUNIaEI7O0FETUE7OztFQ0RFO0FETUY7O0VBRUUsY0FBYztFQUNkLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsd0JBQXdCO0FDSjFCOztBRE9BO0VBQ0UsZUFBZTtBQ0pqQjs7QURPQTtFQUNFLFdBQVc7QUNK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c0I7RUFDdEIsMEJBQTBCO0VBQzFCLGVBQWU7RUFDZixzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLG1EQUEyQztFQUEzQywyQ0FBMkM7QUR1VjdDOztBQ2pXQTtFQWFJLHlCQUF5QjtBRHdWN0I7O0FDcFZBO0VBQ0UsV0FBVztFQUNYLGtCQUFrQjtFQUNsQiw2QkFBNkI7QUR1Vi9COztBQ2pWQTtFQUNFLFNBQVM7QURvVlgiLCJmaWxlIjoic2l0ZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjEgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cblxubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cbiAqL1xuXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICBtYXJnaW46IDA7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQgeyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbixcbnNlbGVjdCB7IC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuXG5maWVsZHNldCB7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xuXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuICovXG5cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSAxMCssIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cbiAqL1xuXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cblxuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuIiwiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuICovXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogUmVuZGVyIHRoZSBgbWFpbmAgZWxlbWVudCBjb25zaXN0ZW50bHkgaW4gSUUuXG4gKi9cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5oMSB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBtYXJnaW46IDAuNjdlbSAwO1xufVxuXG4vKiBHcm91cGluZyBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZGVyO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cbnN1YixcbnN1cCB7XG4gIGZvbnQtc2l6ZTogNzUlO1xuICBsaW5lLWhlaWdodDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbi8qIEVtYmVkZGVkIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIDEuIENoYW5nZSB0aGUgZm9udCBzdHlsZXMgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUmVtb3ZlIHRoZSBtYXJnaW4gaW4gRmlyZWZveCBhbmQgU2FmYXJpLlxuICovXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7XG4gIC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIC8qIDEgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5idXR0b24sXG5pbnB1dCB7XG4gIC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBFZGdlLCBGaXJlZm94LCBhbmQgSUUuXG4gKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInN1Ym1pdFwiXTo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBSZXN0b3JlIHRoZSBmb2N1cyBzdHlsZXMgdW5zZXQgYnkgdGhlIHByZXZpb3VzIHJ1bGUuXG4gKi9cbmJ1dHRvbjotbW96LWZvY3VzcmluZyxcblt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJyZXNldFwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5wcm9ncmVzcyB7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmVydGljYWwgc2Nyb2xsYmFyIGluIElFIDEwKy5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gKi9cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cbiAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAqL1xuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbn1cblxuLyogSW50ZXJhY3RpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBNaXNjXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC5cbiAqL1xuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcIkxhdG9cIiwgLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsXCJTZWdvZSBVSVwiLFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsQXJpYWwsXCJOb3RvIFNhbnNcIixzYW5zLXNlcmlmLFwiQXBwbGUgQ29sb3IgRW1vamlcIixcIlNlZ29lIFVJIEVtb2ppXCIsXCJTZWdvZSBVSSBTeW1ib2xcIixcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuYSB7XG4gIGNvbG9yOiAjMTk3NkQyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG59XG5cbmE6aG92ZXIsIGE6Zm9jdXMge1xuICBjb2xvcjogIzIxOTZGMztcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbmgxIHNtYWxsLCBoMiBzbWFsbCwgaDMgc21hbGwsIGg0IHNtYWxsLCBoNSBzbWFsbCwgaDYgc21hbGwge1xuICBmb250LXNpemU6IDYwJTtcbn1cblxuaDEsIGgyIHtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xufVxuXG5oMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbjogMCAwIC41cmVtIDA7XG59XG5cbmgxIHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG59XG5cbmgyIHtcbiAgZm9udC1zaXplOiAycmVtO1xufVxuXG5oMyB7XG4gIGZvbnQtc2l6ZTogMS43NXJlbTtcbn1cblxuaDQge1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cblxuaDUge1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG5cbmg2IHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xufVxuXG5zdHJvbmcsIHRoIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxucHJlLCBjb2RlIHtcbiAgZm9udC1mYW1pbHk6ICdDdXRpdmUgTW9ubycsIG1vbm9zcGFjZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbn1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IC43NXJlbSAxcmVtO1xuICBtYXJnaW46IDAgMCAxLjVyZW0gMDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cblxuLnRhYmxlIHRoLCAudGFibGUgdGQge1xuICBwYWRkaW5nOiAuMjVyZW0gLjVyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi5mdWxsd2lkdGggLmNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG59XG5cbi5mdWxsd2lkdGgtLXNtIC5jb250YWluZXIge1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG59XG5cbi5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMTQwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDFyZW07XG59XG5cbi5zdWJzZWN0aW9uIHtcbiAgbWFyZ2luOiAwIDAgMnJlbSAwO1xufVxuXG4uc2VwYXJhdG9yIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZGQ7XG59XG5cbi5oZWFkZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDEwMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IC41cmVtIDA7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyO1xuICBib3gtc2hhZG93OiAwIDAgNnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG4gIH1cbn1cblxuLmhlYWRlciAuY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5oZWFkZXIgLmNvbnRhaW5lciB7XG4gICAgZmxleC1mbG93OiBjb2x1bW47XG4gIH1cbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5oZWFkZXIgLmNvbnRhaW5lciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxufVxuXG4ubG9nby10ZXh0IHtcbiAgbWFyZ2luOiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmxvZ28tdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICB9XG59XG5cbi5oZWFkZXItLWxpbmtzIC5idG4tZGVtbyB7XG4gIG1hcmdpbjogLjVyZW0gMDtcbn1cblxuLmhlYWRlci0tbGlua3MgLmJ0bi1kZW1vOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tbGVmdDogLjVyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyLS1saW5rcyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cbn1cblxuLmZvb3RlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmJ0bi1kZW1vIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgcGFkZGluZzogNHB4IDEycHggNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcywgY29sb3IgLjNzO1xufVxuXG4uYnRuLWRlbW86aG92ZXIsIC5idG4tZGVtbzphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xufVxuXG4uYnRuLWRlbW8tLXdoaXRlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5tLTAge1xuICBtYXJnaW46IDA7XG59XG4iLCIvLyAtLS0tLSBCYXNlIHN0eWxlcyAtLS0tLVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcIkxhdG9cIiwgLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsXCJTZWdvZSBVSVwiLFJvYm90byxcIkhlbHZldGljYSBOZXVlXCIsQXJpYWwsXCJOb3RvIFNhbnNcIixzYW5zLXNlcmlmLFwiQXBwbGUgQ29sb3IgRW1vamlcIixcIlNlZ29lIFVJIEVtb2ppXCIsXCJTZWdvZSBVSSBTeW1ib2xcIixcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbn1cblxuXG5hIHtcbiAgY29sb3I6ICMxOTc2RDI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcztcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBjb2xvcjogIzIxOTZGMztcbiAgfVxufVxuXG4vLyBUeXBlXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcblxuICBzbWFsbCB7XG4gICAgZm9udC1zaXplOiA2MCU7XG4gIH1cbn1cblxuaDEsIGgyIHtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xufVxuXG5oMywgaDQsIGg1LCBoNiB7XG4gIG1hcmdpbjogMCAwIC41cmVtIDA7XG59XG5cbmgxIHsgZm9udC1zaXplOiAyLjVyZW07IH1cbmgyIHsgZm9udC1zaXplOiAycmVtOyB9XG5oMyB7IGZvbnQtc2l6ZTogMS43NXJlbTsgfVxuaDQgeyBmb250LXNpemU6IDEuNXJlbTsgfVxuaDUgeyBmb250LXNpemU6IDEuMjVyZW07IH1cbmg2IHsgZm9udC1zaXplOiAxcmVtOyB9XG5cbnAge1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG59XG5cbnN0cm9uZywgdGgge1xuICBmb250LXdlaWdodDogODAwO1xufVxuXG5wcmUsIGNvZGUge1xuICBmb250LWZhbWlseTogJ0N1dGl2ZSBNb25vJywgbW9ub3NwYWNlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xufVxuXG5wcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogLjc1cmVtIDFyZW07XG4gIG1hcmdpbjogMCAwIDEuNXJlbSAwO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZm9udC1zaXplOiAxcmVtO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4udGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXG4gIHRoLCB0ZCB7XG4gICAgcGFkZGluZzogLjI1cmVtIC41cmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICB9XG59XG5cblxuXG4vLyAtLS0tLSBMYXlvdXQgLS0tLS1cbi5mdWxsd2lkdGgge1xuICAuY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgfVxufVxuXG4uZnVsbHdpZHRoLS1zbSB7XG4gIC5jb250YWluZXIge1xuICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICB9XG59XG5cbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMTQwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gIH1cblxuICAgIC5zdWJzZWN0aW9uIHtcbiAgICAgIG1hcmdpbjogMCAwIDJyZW0gMDtcbiAgICB9XG5cblxuLnNlcGFyYXRvciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xufVxuXG5cblxuLy8gLS0tLS0gSGVhZGVyIGFuZCBmb290ZXIgLS0tLS1cbi5oZWFkZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDEwMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IC41cmVtIDA7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyO1xuICBib3gtc2hhZG93OiAwIDAgNnB4IDZweCByZ2JhKDAsMCwwLDAuMSk7XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICB9XG5cblxuICAuY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICB9XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbn1cblxuICAubG9nby10ZXh0IHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyLS1saW5rcyB7XG5cbiAgICAuYnRuLWRlbW8ge1xuICAgICAgbWFyZ2luOiAuNXJlbSAwO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tbGVmdDogLjVyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG4gIH1cblxuXG4uZm9vdGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5cblxuLy8gLS0tLS0gQnV0dG9ucyAtLS0tLVxuLmJ0bi1kZW1vIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2JiYjtcbiAgcGFkZGluZzogNHB4IDEycHggNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4zcywgY29sb3IgLjNzO1xuXG4gICY6aG92ZXIsICY6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzO1xuICB9XG59XG5cbi5idG4tZGVtby0td2hpdGUge1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuXG5cbi8vIC0tLS0tIFV0aWxpdGllcyAtLS0tLVxuLm0tMCB7XG4gIG1hcmdpbjogMDtcbn1cbiJdfQ== */ diff --git a/gulpfile.js b/gulpfile.js index 639be3a..91ab6b6 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,11 +1,12 @@ // ----- Imports and variables ------ const { src, dest, watch, series, parallel, lastRun } = require('gulp'); const gulpLoadPlugins = require('gulp-load-plugins'); +const $ = gulpLoadPlugins(); const browserSync = require('browser-sync'); +const server = browserSync.create(); const del = require('del'); const { argv } = require('yargs'); -const $ = gulpLoadPlugins(); -const server = browserSync.create(); +const autoprefixer = require('autoprefixer'); const port = argv.port || 9000; @@ -16,61 +17,31 @@ const isDev = !isProd && !isTest; const paths = { src: 'src', dest: 'docs', - tmp: '.tmp', - gulp: './tasks/gulp' + tmp: '.tmp' }; -// ----- Import tasks ------ -function getTask(task) { - return require(`${paths.gulp}/${task}.js`)({ src, dest }, $, paths, isProd, server); -} +// ----- Tasks ------ +function styles() { + return src(`${paths.src}/styles/*.scss`) + .pipe($.plumber()) + .pipe($.if(!isProd, $.sourcemaps.init())) + .pipe($.sass.sync({ + outputStyle: 'expanded', + precision: 10, + includePaths: ['.'] + }) + .on('error', $.sass.logError)) + .pipe($.postcss([ + autoprefixer() + ])) + .pipe($.if(!isProd, $.sourcemaps.write())) + .pipe(dest(`${paths.tmp}/styles`)) + .pipe(server.reload({stream: true})); +}; -const { styles } = getTask('styles'); exports.styles = styles; -const { images } = getTask('images'); -exports.images = images; - - -// ----- Build tasks ------ -function compress() { - return src([`${paths.src}/*.html`, `${paths.tmp}/*/**/*.{html,css,js}`]) - // .pipe($.useref({searchPath: [`${paths.tmp}`, `${paths.src}`, '.']})) - // .pipe($.if(/\.js$/, $.uglify({compress: {drop_console: true}}))) - // .pipe($.if(/\.css$/, $.postcss([cssnano({safe: true, autoprefixer: false})]))) - // .pipe($.if(/\.html$/, $.htmlmin({ - // collapseWhitespace: true, - // minifyCSS: true, - // minifyJS: {compress: {drop_console: true}}, - // processConditionalComments: true, - // removeComments: true, - // removeEmptyAttributes: true, - // removeScriptTypeAttributes: true, - // removeStyleLinkTypeAttributes: true - // }))) - .pipe(dest(`${paths.dest}`)); -} - -function clean() { - return del([`${paths.tmp}`, `${paths.dest}`]) -} -exports.clean = clean; - -function measureSize() { - return src(`${paths.dest}/**/*`) - .pipe($.size({title: 'build', gzip: true})); -} - -const build = series( - clean, - parallel( - series(parallel(styles), compress), - images - ), - measureSize -); - // ----- Serve tasks ------ function startAppServer() { @@ -89,23 +60,30 @@ function startAppServer() { }); watch([ - `${paths.src}/*.html`, - `${paths.src}/images/**/*` + `${paths.src}/*.html` ]).on('change', server.reload); watch(`${paths.src}/**/*.scss`, styles); } -let serve; -if (isDev) { - serve = series(clean, parallel(styles), startAppServer); -} else if (isProd) { - serve = series(build, startDistServer); -} - +let serve = series(clean, styles, startAppServer); exports.serve = serve; + +// ----- Build tasks ------ +function compress() { + return src([`${paths.src}/*.html`, `${paths.tmp}/*/**/*.{html,css,js}`]) + .pipe(dest(`${paths.dest}`)); +} + +function clean() { + return del([`${paths.tmp}`, `${paths.dest}`]) +} + +exports.clean = clean; + +const build = series(clean, styles, compress); + exports.build = build; -exports.dist = build; exports.default = build; diff --git a/package-lock.json b/package-lock.json index 5f2cd7c..77e2973 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pixel-borders", - "version": "1.0.0", + "version": "1.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -56,13 +56,13 @@ "dev": true }, "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" } }, "acorn": { @@ -162,27 +162,6 @@ "normalize-path": "^2.1.1" }, "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -270,12 +249,6 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", @@ -375,12 +348,6 @@ "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", "dev": true }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -429,9 +396,9 @@ } }, "async-each": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.2.tgz", - "integrity": "sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, "async-each-series": { @@ -474,13 +441,13 @@ "dev": true }, "autoprefixer": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.5.0.tgz", - "integrity": "sha512-hMKcyHsZn5+qL6AUeP3c8OyuteZ4VaUlg+fWbyl8z7PqsKHF/Bf8/px3K6AT8aMzDkBo8Bc11245MM+itDBOxQ==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.5.1.tgz", + "integrity": "sha512-KJSzkStUl3wP0D5sdMlP82Q52JLy5+atf2MHAre48+ckWkXgixmfHyWmA77wFDy6jTHU6mIgXv6hAQ2mf1PjJQ==", "dev": true, "requires": { - "browserslist": "^4.4.2", - "caniuse-lite": "^1.0.30000947", + "browserslist": "^4.5.4", + "caniuse-lite": "^1.0.30000957", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", "postcss": "^7.0.14", @@ -690,13 +657,13 @@ } }, "browser-sync": { - "version": "2.26.3", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.3.tgz", - "integrity": "sha512-VLzpjCA4uXqfzkwqWtMM6hvPm2PNHp2RcmzBXcbi6C9WpkUhhFb8SVAr4CFrCsFxDg+oY6HalOjn8F+egyvhag==", + "version": "2.26.5", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.26.5.tgz", + "integrity": "sha512-zVa6MmadAFgl5Uk53Yy5cw5tGTO7xSGAWK3Yx70GJ1t5jK+r6B4q3xq+1XbYfLt1SbeFg7WoNWneNhMT4B9jFw==", "dev": true, "requires": { - "browser-sync-client": "^2.26.2", - "browser-sync-ui": "^2.26.2", + "browser-sync-client": "^2.26.4", + "browser-sync-ui": "^2.26.4", "bs-recipes": "1.3.4", "bs-snippet-injector": "^2.0.1", "chokidar": "^2.0.4", @@ -711,7 +678,7 @@ "http-proxy": "1.15.2", "immutable": "^3", "localtunnel": "1.9.1", - "micromatch": "2.3.11", + "micromatch": "^3.1.10", "opn": "5.3.0", "portscanner": "2.1.1", "qs": "6.2.3", @@ -752,9 +719,9 @@ } }, "browser-sync-client": { - "version": "2.26.2", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.2.tgz", - "integrity": "sha512-FEuVJD41fI24HJ30XOT2RyF5WcnEtdJhhTqeyDlnMk/8Ox9MZw109rvk9pdfRWye4soZLe+xcAo9tHSMxvgAdw==", + "version": "2.26.4", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.26.4.tgz", + "integrity": "sha512-mQiDp5/tf79VezDS5j/EExU4Ze6f5DQYuL0Z7VdJgBbNLTHDfkYGi2R620qc6HkY9XZA0m4/UwihT7J42RBIJA==", "dev": true, "requires": { "etag": "1.8.1", @@ -764,9 +731,9 @@ } }, "browser-sync-ui": { - "version": "2.26.2", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.2.tgz", - "integrity": "sha512-LF7GMWo8ELOE0eAlxuRCfnGQT1ZxKP9flCfGgZdXFc6BwmoqaJHlYe7MmVvykKkXjolRXTz8ztXAKGVqNwJ3EQ==", + "version": "2.26.4", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.26.4.tgz", + "integrity": "sha512-u20P3EsZoM8Pt+puoi3BU3KlbQAH1lAcV+/O4saF26qokrBqIDotmGonfWwoRbUmdxZkM9MBmA0K39ZTG1h4sA==", "dev": true, "requires": { "async-each-series": "0.1.1", @@ -778,14 +745,14 @@ } }, "browserslist": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.5.4.tgz", - "integrity": "sha512-rAjx494LMjqKnMPhFkuLmLp8JWEX0o8ADTGeAbOqaF+XCvYLreZrG5uVjnPBlAQ8REZK4pzXGvp0bWgrFtKaag==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.0.tgz", + "integrity": "sha512-Jk0YFwXBuMOOol8n6FhgkDzn3mY9PYLYGk29zybF05SbRTsMgPqmTNeQQhOghCxq5oFqAXE3u4sYddr4C0uRhg==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30000955", - "electron-to-chromium": "^1.3.122", - "node-releases": "^1.1.13" + "caniuse-lite": "^1.0.30000967", + "electron-to-chromium": "^1.3.133", + "node-releases": "^1.1.19" } }, "bs-recipes": { @@ -813,9 +780,9 @@ "dev": true }, "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true }, "cache-base": { @@ -866,9 +833,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000957", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000957.tgz", - "integrity": "sha512-8wxNrjAzyiHcLXN/iunskqQnJquQQ6VX8JHfW5kLgAPRSiSuKZiNfmIkP5j7jgyXqAQBSoXyJxfnbCFS0ThSiQ==", + "version": "1.0.30000971", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000971.tgz", + "integrity": "sha512-TQFYFhRS0O5rdsmSbF1Wn+16latXYsQJat66f7S7lizXW1PVpWJeZw9wqqVLIjuxDRz7s7xRUj13QCfd8hKn6g==", "dev": true }, "caseless": { @@ -900,9 +867,9 @@ } }, "chokidar": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", - "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", + "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", "dev": true, "requires": { "anymatch": "^2.0.0", @@ -997,17 +964,6 @@ "arr-map": "^2.0.2", "for-own": "^1.0.0", "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } } }, "collection-visit": { @@ -1042,9 +998,9 @@ "dev": true }, "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { "delayed-stream": "~1.0.0" @@ -1419,12 +1375,6 @@ "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", "dev": true }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -1482,9 +1432,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.124", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.124.tgz", - "integrity": "sha512-glecGr/kFdfeXUHOHAWvGcXrxNU+1wSO/t5B23tT1dtlvYB26GY8aHzZSWD7HqhqC800Lr+w/hQul6C5AF542w==", + "version": "1.3.136", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.136.tgz", + "integrity": "sha512-xHkYkbEi4kI+2w5v6yBGCQTRXL7N0PWscygTFZu/1bArnPSo2WR9xjdw4m06RR4J5PncrWJcuOVv+MAG2mK5JQ==", "dev": true }, "encodeurl": { @@ -1571,9 +1521,9 @@ } }, "es5-ext": { - "version": "0.10.49", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz", - "integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==", + "version": "0.10.50", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", + "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", "dev": true, "requires": { "es6-iterator": "~2.0.3", @@ -1976,35 +1926,12 @@ "is-glob": "^4.0.0", "micromatch": "^3.0.4", "resolve-dir": "^1.0.1" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } } }, "fined": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.1.1.tgz", - "integrity": "sha512-jQp949ZmEbiYHk3gkbdtpJ0G1+kgtLQBNdP5edFP7Fh+WAYceLQz6yO1SBj72Xkg8GVyTB3bBzAYrHJVh5Xd5g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "dev": true, "requires": { "expand-tilde": "^2.0.2", @@ -2063,9 +1990,9 @@ "dev": true }, "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "requires": { "for-in": "^1.0.1" @@ -2143,14 +2070,14 @@ "dev": true }, "fsevents": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.7.tgz", - "integrity": "sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", "dev": true, "optional": true, "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" }, "dependencies": { "abbrev": { @@ -2228,12 +2155,12 @@ "optional": true }, "debug": { - "version": "2.6.9", + "version": "4.1.1", "bundled": true, "dev": true, "optional": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "deep-extend": { @@ -2404,24 +2331,24 @@ } }, "ms": { - "version": "2.0.0", + "version": "2.1.1", "bundled": true, "dev": true, "optional": true }, "needle": { - "version": "2.2.4", + "version": "2.3.0", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "^2.1.2", + "debug": "^4.1.0", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.10.3", + "version": "0.12.0", "bundled": true, "dev": true, "optional": true, @@ -2449,13 +2376,13 @@ } }, "npm-bundled": { - "version": "1.0.5", + "version": "1.0.6", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.2.0", + "version": "1.4.1", "bundled": true, "dev": true, "optional": true, @@ -2594,7 +2521,7 @@ "optional": true }, "semver": { - "version": "5.6.0", + "version": "5.7.0", "bundled": true, "dev": true, "optional": true @@ -2691,9 +2618,9 @@ } }, "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", @@ -2782,9 +2709,9 @@ } }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -2948,21 +2875,21 @@ "dev": true }, "gulp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz", - "integrity": "sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", "dev": true, "requires": { - "glob-watcher": "^5.0.0", - "gulp-cli": "^2.0.0", - "undertaker": "^1.0.0", + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", "vinyl-fs": "^3.0.0" } }, "gulp-cli": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.1.0.tgz", - "integrity": "sha512-txzgdFVlEPShBZus6JJyGyKJoBVDq6Do0ZQgIgx5RAsmhNVTDjymmOxpQvo3c20m66FldilS68ZXj2Q9w5dKbA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", + "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", "dev": true, "requires": { "ansi-colors": "^1.0.1", @@ -3017,17 +2944,6 @@ } } }, - "gulp-filter": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/gulp-filter/-/gulp-filter-5.1.0.tgz", - "integrity": "sha1-oF4Rr/sHz33PQafeHLe2OsN4PnM=", - "dev": true, - "requires": { - "multimatch": "^2.0.0", - "plugin-error": "^0.1.2", - "streamfilter": "^1.0.5" - } - }, "gulp-if": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/gulp-if/-/gulp-if-2.0.2.tgz", @@ -3054,12 +2970,32 @@ "resolve": "^1.1.7" }, "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, "detect-file": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-0.1.0.tgz", @@ -3069,6 +3005,15 @@ "fs-exists-sync": "^0.1.0" } }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, "expand-tilde": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", @@ -3078,6 +3023,15 @@ "os-homedir": "^1.0.1" } }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, "findup-sync": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz", @@ -3133,6 +3087,45 @@ "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", "dev": true }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, "resolve-dir": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", @@ -3265,21 +3258,6 @@ } } }, - "gulp-size": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-size/-/gulp-size-3.0.0.tgz", - "integrity": "sha1-yxrI5rqD3t5SQwxH/QOTJPAD/4I=", - "dev": true, - "requires": { - "chalk": "^2.3.0", - "fancy-log": "^1.3.2", - "gzip-size": "^4.1.0", - "plugin-error": "^0.1.2", - "pretty-bytes": "^4.0.2", - "stream-counter": "^1.0.0", - "through2": "^2.0.0" - } - }, "gulp-sourcemaps": { "version": "2.6.5", "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-2.6.5.tgz", @@ -3308,24 +3286,6 @@ "glogg": "^1.0.0" } }, - "gzip-size": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-4.1.0.tgz", - "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=", - "dev": true, - "requires": { - "duplexer": "^0.1.1", - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -3441,15 +3401,16 @@ "dev": true }, "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" }, "dependencies": { "statuses": { @@ -3482,9 +3443,9 @@ } }, "iconv-lite": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -3890,9 +3851,9 @@ "dev": true }, "js-yaml": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz", - "integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -4108,12 +4069,6 @@ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true - }, "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", @@ -4126,12 +4081,6 @@ "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", "dev": true }, - "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", - "dev": true - }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", @@ -4232,27 +4181,6 @@ "requires": { "is-extglob": "^2.1.0" } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } } } }, @@ -4317,103 +4245,24 @@ } }, "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "mime": { @@ -4423,18 +4272,18 @@ "dev": true }, "mime-db": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz", - "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==", + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", "dev": true }, "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "dev": true, "requires": { - "mime-db": "~1.38.0" + "mime-db": "1.40.0" } }, "mimic-fn": { @@ -4508,18 +4357,6 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - } - }, "mute-stdout": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", @@ -4527,9 +4364,9 @@ "dev": true }, "nan": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", - "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", "dev": true }, "nanomatch": { @@ -4552,9 +4389,9 @@ } }, "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true }, "next-tick": { @@ -4598,18 +4435,18 @@ } }, "node-releases": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.13.tgz", - "integrity": "sha512-fKZGviSXR6YvVPyc011NHuJDSD8gFQvLPmc2d2V3BS4gr52ycyQ1Xzs7a8B+Ax3Ni/W+5h1h4SqmzeoA8WZRmA==", + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.21.tgz", + "integrity": "sha512-TwnURTCjc8a+ElJUjmDqU6+12jhli1Q61xOQmdZ7ECZVBZuQpN/1UnembiIHDM1wCcfLvh5wrWXUF5H6ufX64Q==", "dev": true, "requires": { "semver": "^5.3.0" } }, "node-sass": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.11.0.tgz", - "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", + "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", "dev": true, "requires": { "async-foreach": "^0.1.3", @@ -4619,12 +4456,10 @@ "get-stdin": "^4.0.1", "glob": "^7.0.3", "in-publish": "^2.0.0", - "lodash.assign": "^4.2.0", - "lodash.clonedeep": "^4.3.2", - "lodash.mergewith": "^4.6.0", + "lodash": "^4.17.11", "meow": "^3.7.0", "mkdirp": "^0.5.1", - "nan": "^2.10.0", + "nan": "^2.13.2", "node-gyp": "^3.8.0", "npmlog": "^4.0.0", "request": "^2.88.0", @@ -4704,9 +4539,9 @@ "dev": true }, "now-and-later": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.0.tgz", - "integrity": "sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", "dev": true, "requires": { "once": "^1.3.2" @@ -4795,9 +4630,9 @@ } }, "object-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", - "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object-path": { @@ -4837,17 +4672,6 @@ "array-slice": "^1.0.0", "for-own": "^1.0.0", "isobject": "^3.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } } }, "object.map": { @@ -4858,17 +4682,6 @@ "requires": { "for-own": "^1.0.0", "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } } }, "object.omit": { @@ -4879,6 +4692,17 @@ "requires": { "for-own": "^0.1.4", "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + } } }, "object.pick": { @@ -4898,17 +4722,6 @@ "requires": { "for-own": "^1.0.0", "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } } }, "on-finished": { @@ -4997,9 +4810,9 @@ "dev": true }, "p-is-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", - "integrity": "sha512-pzQPhYMCAgLAKPWD2jC3Se9fEfrD9npNos0y150EeqZll7akhEgGhTW/slB6lHku8AvYGiJ+YJ5hfHKePPgFWg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", "dev": true }, "p-limit": { @@ -5112,9 +4925,9 @@ } }, "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, "pascalcase": { @@ -5284,9 +5097,9 @@ "dev": true }, "postcss": { - "version": "7.0.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", - "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==", + "version": "7.0.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", + "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -5316,12 +5129,6 @@ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, - "pretty-bytes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", - "dev": true - }, "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", @@ -5399,20 +5206,20 @@ } }, "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dev": true, "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", "unpipe": "1.0.0" } }, @@ -5469,29 +5276,6 @@ "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" - }, - "dependencies": { - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } } }, "rechoir": { @@ -5658,9 +5442,9 @@ "dev": true }, "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz", + "integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -5879,6 +5663,24 @@ "ms": "2.0.0" } }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, "statuses": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", @@ -5910,6 +5712,30 @@ "requires": { "ms": "2.0.0" } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true } } }, @@ -5961,9 +5787,9 @@ } }, "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", "dev": true }, "shebang-command": { @@ -6285,9 +6111,9 @@ } }, "spdx-license-ids": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz", - "integrity": "sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", "dev": true }, "split-string": { @@ -6364,12 +6190,6 @@ "readable-stream": "^2.0.1" } }, - "stream-counter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz", - "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E=", - "dev": true - }, "stream-exhaust": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", @@ -6392,15 +6212,6 @@ "limiter": "^1.0.5" } }, - "streamfilter": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/streamfilter/-/streamfilter-1.0.7.tgz", - "integrity": "sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -6486,13 +6297,13 @@ "dev": true }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", "dev": true, "requires": { "block-stream": "*", - "fstream": "^1.0.2", + "fstream": "^1.0.12", "inherits": "2" } }, @@ -6648,6 +6459,12 @@ "through2": "^2.0.3" } }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -6721,9 +6538,9 @@ "dev": true }, "undertaker": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.0.tgz", - "integrity": "sha1-M52kZGJS0ILcN45wgGcpl1DhG0k=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", + "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", "dev": true, "requires": { "arr-flatten": "^1.0.1", @@ -6892,9 +6709,9 @@ "dev": true }, "v8flags": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz", - "integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", + "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", "dev": true, "requires": { "homedir-polyfill": "^1.0.1" diff --git a/package.json b/package.json index 5e4262d..b950a6a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "pixel-borders", - "description": "A SASS mixin to add pixelated borders to HTML elements.", - "version": "1.0.1", + "description": "SASS mixin to add pixelated borders to HTML elements.", + "version": "1.1.0", "main": "src/styles/pixel-borders.scss", "repository": { "type": "git", @@ -24,31 +24,28 @@ "engines": { "node": ">=4" }, - "devDependencies": { - "autoprefixer": "^9.4.4", - "browser-sync": "^2.2.1", - "cross-env": "^5.2.0", - "del": "^3.0.0", - "gulp": "^4.0.0", - "gulp-cli": "^2.0.1", - "gulp-filter": "^5.1.0", - "gulp-if": "^2.0.2", - "gulp-load-plugins": "^1.2.4", - "gulp-plumber": "^1.0.1", - "gulp-postcss": "^8.0.0", - "gulp-sass": "^4.0.2", - "gulp-size": "^3.0.0", - "gulp-sourcemaps": "^2.2.0", - "yargs": "12.0.5" - }, - "scripts": { - "start": "gulp serve", - "build": "cross-env NODE_ENV=production gulp", - "tasks": "gulp --tasks" - }, "browserslist": [ "> 1%", "last 2 versions", "Firefox ESR" - ] + ], + "devDependencies": { + "autoprefixer": "^9.4.4", + "browser-sync": "^2.26.5", + "cross-env": "^5.2.0", + "del": "^3.0.0", + "gulp": "^4.0.0", + "gulp-cli": "^2.0.1", + "gulp-if": "^2.0.2", + "gulp-load-plugins": "^1.5", + "gulp-plumber": "^1.0.1", + "gulp-postcss": "^8.0.0", + "gulp-sass": "^4.0.2", + "gulp-sourcemaps": "^2.2.0", + "yargs": "^12.0.5" + }, + "scripts": { + "start": "gulp serve", + "build": "cross-env NODE_ENV=production gulp" + } } diff --git a/src/index.html b/src/index.html index 804b33f..806ac82 100644 --- a/src/index.html +++ b/src/index.html @@ -3,7 +3,7 @@ - Pixel borders - A SASS mixin to add pixelated borders to HTML elements + Pixel borders - SASS mixin to add pixelated borders to HTML elements @@ -30,7 +30,7 @@
-

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

+

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

@@ -84,9 +84,13 @@

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.

+

After installation you can import it into your SASS files with the statement below.

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

You can also just import the mixins without the demo styles.

+ +
@import "pixel-borders/src/styles/pixel-borders/pixel-borders-mixins";

Pixel borders mixin options

diff --git a/src/styles/pixel-borders.scss b/src/styles/pixel-borders.scss index 1d04195..1184ca9 100644 --- a/src/styles/pixel-borders.scss +++ b/src/styles/pixel-borders.scss @@ -1,228 +1,2 @@ -// Generate SVG image for pixelated corners -@function pixel-borders-image($corner-size, $color) { - $svg: ''; - $svg-path: ''; - $svg-size: $corner-size * 6; - $color: str-replace('' + $color, '#', '%23'); - - @if $corner-size == 1 { - $svg-path: 'M0 2h2v2H0zM2 0h2v2H2zM4 2h2v2H4zM2 4h2v2H2z'; - } @else { - $svg-path: 'M2 2h2v2H2zM4 0h2v2H4zM10 4h2v2h-2zM0 4h2v2H0zM6 0h2v2H6zM8 2h2v2H8zM8 8h2v2H8zM6 10h2v2H6zM0 6h2v2H0zM10 6h2v2h-2zM4 10h2v2H4zM2 8h2v2H2z'; - } - - $svg: 'data:image/svg+xml,'; - - @return $svg; -} - - -// String replace function - replace `$search` with `$replace` in `$string` -@function str-replace($string, $search, $replace: '') { - $index: str-index($string, $search); - - @if $index { - @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); - } - - @return $string; -} - - -// Pixel border -@mixin pixel-borders($corner-size: 1, $border-size: 4px, $border-color: #000, $border-inset-color: false) { - - @supports (border-image-source: none) { - border-radius: ($border-size * ($corner-size + 2)) + ($corner-size * 2); - } - - border-style: solid; - border-width: $border-size; - border-color: $border-color; - - border-image-slice: $corner-size * 2; - border-image-width: $corner-size; - border-image-outset: 0; - - border-image-source: url(pixel-borders-image($corner-size, $border-color)); - - @if $border-inset-color { - @include pixel-inset-border($border-size, $border-inset-color); - } - -} - - -// Pixel inset border -@mixin pixel-inset-border($border-inset-size: 4px, $border-inset-color: #ddd, $border-inset-sides: 'bottom-right', $border-inset-color-br: false, $border-inset-color-tl: false) { - - $box-shadow: ''; - @if not($border-inset-color-br) { - $border-inset-color-br: $border-inset-color; - } - - @if not($border-inset-color-tl) { - $border-inset-color-tl: $border-inset-color; - } - - position: relative; - - &::after { - content: ''; - position: absolute; - z-index: 0; - bottom: 0; - right: 0; - width: 100%; - height: 100%; - - @if $border-inset-sides == 'bottom-right' or $border-inset-sides == false { - $box-shadow: inset -#{$border-inset-size} -#{$border-inset-size} $border-inset-color-br; - } - - @if $border-inset-sides == 'top-left' { - $box-shadow: inset $border-inset-size $border-inset-size $border-inset-color-tl; - } - - @if $border-inset-sides == 'all' { - $box-shadow: inset -#{$border-inset-size} -#{$border-inset-size} $border-inset-color-br, inset $border-inset-size $border-inset-size $border-inset-color-tl; - } - - box-shadow: $box-shadow; - } - -} - - - -// 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); - - @if not($border-color) { - $border-color: darken($background-color, 20); - } - - @include pixel-borders($corner-size: $corner-size, $border-size: $border-size, $border-color: $border-color); - - @if $border-inset-sides == 'all' and not($border-inset-color) { - $border-inset-color-br: darken($background-color, 10); - $border-inset-color-tl: lighten($background-color, 15); - } - - @if not($border-inset-color) { - $border-inset-color: darken($background-color, 10); - } - - @if $border-inset-sides == 'top-left' { - $border-inset-color: lighten($background-color, 15); - } - - - @if $border-inset { - @include pixel-inset-border($border-inset-size: $border-size, $border-inset-color: $border-inset-color, $border-inset-sides: $border-inset-sides, $border-inset-color-br: $border-inset-color-br, $border-inset-color-tl: $border-inset-color-tl); - } - - background-color: $background-color; - - &:hover, &:focus { - background-color: $background-color-hover; - } - -} - - - -// ----- Demo styles ----- -.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; -} - - -// Simple examples with default styling -.pixel-borders--1 { - @include pixel-borders(); -} - -.pixel-borders--1-inset { - @include pixel-borders($border-inset-color: #ddd); -} - - -.pixel-borders--2 { - @include pixel-borders($corner-size: 2); -} - -.pixel-borders--2-inset { - @include pixel-borders($corner-size: 2); - - &::after { - @include pixel-borders($corner-size: 1, $border-color: #ddd); - - 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); - } -} - - - -// Examples using the pixel box mixin to colour code the elements -.pixel-box--light { - @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #fff); -} - -.pixel-box--primary { - color: #fff; - @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #209cee); -} - -.pixel-box--success { - color: #fff; - @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #92cc41); -} - -.pixel-box--warning { - @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #f7d51d); -} - -.pixel-box--error { - color: #fff; - @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #e76e55); -} - - -// Custom examples to show flexibility of the mixins -.pixel-box--light-custom { - @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #fff, $border-inset-color: #999, $border-inset-sides: 'all'); -} - -.pixel-box--primary-custom { - color: #fff; - @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #209cee, $border-inset: false); -} - -.pixel-box--success-custom { - color: #fff; - @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #92cc41, $border-inset-sides: 'top-left'); -} - -.pixel-box--warning-custom { - @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #f7d51d, $border-inset-sides: 'all'); -} - -.pixel-box--error-custom { - color: #fff; - @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #e76e55, $border-color: #000); -} +@import "pixel-borders/pixel-borders-mixins"; +@import "pixel-borders/pixel-borders"; diff --git a/src/styles/pixel-borders/_pixel-borders-mixins.scss b/src/styles/pixel-borders/_pixel-borders-mixins.scss new file mode 100644 index 0000000..6d4ee62 --- /dev/null +++ b/src/styles/pixel-borders/_pixel-borders-mixins.scss @@ -0,0 +1,133 @@ +// Generate SVG image for pixelated corners +@function pixel-borders-image($corner-size, $color) { + $svg: ''; + $svg-path: ''; + $svg-size: $corner-size * 6; + $color: str-replace('' + $color, '#', '%23'); + + @if $corner-size == 1 { + $svg-path: 'M0 2h2v2H0zM2 0h2v2H2zM4 2h2v2H4zM2 4h2v2H2z'; + } @else { + $svg-path: 'M2 2h2v2H2zM4 0h2v2H4zM10 4h2v2h-2zM0 4h2v2H0zM6 0h2v2H6zM8 2h2v2H8zM8 8h2v2H8zM6 10h2v2H6zM0 6h2v2H0zM10 6h2v2h-2zM4 10h2v2H4zM2 8h2v2H2z'; + } + + $svg: 'data:image/svg+xml,'; + + @return $svg; +} + + +// String replace function - replace `$search` with `$replace` in `$string` +@function str-replace($string, $search, $replace: '') { + $index: str-index($string, $search); + + @if $index { + @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace); + } + + @return $string; +} + + +// Pixel border +@mixin pixel-borders($corner-size: 1, $border-size: 4px, $border-color: #000, $border-inset-color: false) { + + @supports (border-image-source: none) { + border-radius: ($border-size * ($corner-size + 2)) + ($corner-size * 2); + } + + border-style: solid; + border-width: $border-size; + border-color: $border-color; + + border-image-slice: $corner-size * 2; + border-image-width: $corner-size; + border-image-outset: 0; + + border-image-source: url(pixel-borders-image($corner-size, $border-color)); + + @if $border-inset-color { + @include pixel-inset-border($border-size, $border-inset-color); + } + +} + + +// Pixel inset border +@mixin pixel-inset-border($border-inset-size: 4px, $border-inset-color: #ddd, $border-inset-sides: 'bottom-right', $border-inset-color-br: false, $border-inset-color-tl: false) { + + $box-shadow: ''; + @if not($border-inset-color-br) { + $border-inset-color-br: $border-inset-color; + } + + @if not($border-inset-color-tl) { + $border-inset-color-tl: $border-inset-color; + } + + position: relative; + + &::after { + content: ''; + position: absolute; + z-index: 0; + bottom: 0; + right: 0; + width: 100%; + height: 100%; + + @if $border-inset-sides == 'bottom-right' or $border-inset-sides == false { + $box-shadow: inset -#{$border-inset-size} -#{$border-inset-size} $border-inset-color-br; + } + + @if $border-inset-sides == 'top-left' { + $box-shadow: inset $border-inset-size $border-inset-size $border-inset-color-tl; + } + + @if $border-inset-sides == 'all' { + $box-shadow: inset -#{$border-inset-size} -#{$border-inset-size} $border-inset-color-br, inset $border-inset-size $border-inset-size $border-inset-color-tl; + } + + box-shadow: $box-shadow; + } + +} + + + +// 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); + + @if not($border-color) { + $border-color: darken($background-color, 20); + } + + @include pixel-borders($corner-size: $corner-size, $border-size: $border-size, $border-color: $border-color); + + @if $border-inset-sides == 'all' and not($border-inset-color) { + $border-inset-color-br: darken($background-color, 10); + $border-inset-color-tl: lighten($background-color, 15); + } + + @if not($border-inset-color) { + $border-inset-color: darken($background-color, 10); + } + + @if $border-inset-sides == 'top-left' { + $border-inset-color: lighten($background-color, 15); + } + + + @if $border-inset { + @include pixel-inset-border($border-inset-size: $border-size, $border-inset-color: $border-inset-color, $border-inset-sides: $border-inset-sides, $border-inset-color-br: $border-inset-color-br, $border-inset-color-tl: $border-inset-color-tl); + } + + background-color: $background-color; + + &:hover, &:focus { + background-color: $background-color-hover; + } + +} diff --git a/src/styles/pixel-borders/_pixel-borders.scss b/src/styles/pixel-borders/_pixel-borders.scss new file mode 100644 index 0000000..8f33466 --- /dev/null +++ b/src/styles/pixel-borders/_pixel-borders.scss @@ -0,0 +1,93 @@ +// ----- Border styles ----- +.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; +} + + +// One pixel borders +.pixel-borders--1 { + @include pixel-borders(); +} + +.pixel-borders--1-inset { + @include pixel-borders($border-inset-color: #ddd); +} + + +// Two pixel borders +.pixel-borders--2 { + @include pixel-borders($corner-size: 2); +} + +.pixel-borders--2-inset { + @include pixel-borders($corner-size: 2); + + &::after { + @include pixel-borders($corner-size: 1, $border-color: #ddd); + + 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); + } +} + + + +// Examples using the pixel box mixin to colour code the elements +.pixel-box--light { + @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #fff); +} + +.pixel-box--primary { + color: #fff; + @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #209cee); +} + +.pixel-box--success { + color: #fff; + @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #92cc41); +} + +.pixel-box--warning { + @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #f7d51d); +} + +.pixel-box--error { + color: #fff; + @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #e76e55); +} + + +// Custom examples to show flexibility of the mixins +.pixel-box--light-custom { + @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #fff, $border-inset-color: #999, $border-inset-sides: 'all'); +} + +.pixel-box--primary-custom { + color: #fff; + @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #209cee, $border-inset: false); +} + +.pixel-box--success-custom { + color: #fff; + @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #92cc41, $border-inset-sides: 'top-left'); +} + +.pixel-box--warning-custom { + @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #f7d51d, $border-inset-sides: 'all'); +} + +.pixel-box--error-custom { + color: #fff; + @include pixel-box($corner-size: 1, $border-size: 4px, $background-color: #e76e55, $border-color: #000); +} diff --git a/src/styles/site.scss b/src/styles/site.scss index 98a5021..caf294e 100644 --- a/src/styles/site.scss +++ b/src/styles/site.scss @@ -1,222 +1,2 @@ -// ----- Demo site styles ----- -@import "normalize"; - - - -// ----- Base styles ----- - -*, -*:before, -*:after { - 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: 400; - line-height: 1.5; - color: #333; - background-color: #fff; -} - - -a { - color: #1976D2; - text-decoration: none; - transition: color 0.3s; - - &:hover, &:focus { - color: #2196F3; - } -} - -// Type -h1, h2, h3, h4, h5, h6 { - font-weight: 300; - - small { - font-size: 60%; - } -} - -h1, h2 { - margin: 0 0 1rem 0; -} - -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 1rem 0; -} - -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 ----- -.fullwidth { - .container { - width: 100%; - padding-top: 2rem; - padding-bottom: 2rem; - } -} - -.fullwidth--sm { - .container { - padding-top: 1rem; - padding-bottom: 1rem; - } -} - - .container { - width: 100%; - max-width: 1140px; - margin: 0 auto; - padding-left: 1rem; - padding-right: 1rem; - } - - .subsection { - margin: 0 0 2rem 0; - } - - -.separator { - border-bottom: 1px solid #ddd; -} - - - -// ----- Header and footer ----- -.header { - position: sticky; - top: 0; - z-index: 100; - width: 100%; - 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: 1.75rem; - } - } - - .header--links { - - .btn-demo { - margin: .5rem 0; - - &:last-child { - margin-left: .5rem; - } - } - - @media (min-width: 768px) { - margin-left: auto; - } - } - - -.footer { - text-align: center; -} - - - -// ----- Buttons ----- -.btn-demo { - 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; - transition: background-color .3s, color .3s; - - &:hover, &:active { - background-color: #f3f3f3; - } -} - -.btn-demo--white { - color: #fff; - border-color: #fff; - background-color: transparent; -} - - - -// ----- Utilities ----- -.m-0 { - margin: 0; -} +@import "site/normalize"; +@import "site/site"; diff --git a/src/styles/_normalize.scss b/src/styles/site/_normalize.scss similarity index 100% rename from src/styles/_normalize.scss rename to src/styles/site/_normalize.scss diff --git a/src/styles/site/_site.scss b/src/styles/site/_site.scss new file mode 100644 index 0000000..5c0defb --- /dev/null +++ b/src/styles/site/_site.scss @@ -0,0 +1,217 @@ +// ----- Base styles ----- + +*, +*:before, +*:after { + 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: 400; + line-height: 1.5; + color: #333; + background-color: #fff; +} + + +a { + color: #1976D2; + text-decoration: none; + transition: color 0.3s; + + &:hover, &:focus { + color: #2196F3; + } +} + +// Type +h1, h2, h3, h4, h5, h6 { + font-weight: 300; + + small { + font-size: 60%; + } +} + +h1, h2 { + margin: 0 0 1rem 0; +} + +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 1rem 0; +} + +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 ----- +.fullwidth { + .container { + width: 100%; + padding-top: 2rem; + padding-bottom: 2rem; + } +} + +.fullwidth--sm { + .container { + padding-top: 1rem; + padding-bottom: 1rem; + } +} + + .container { + width: 100%; + max-width: 1140px; + margin: 0 auto; + padding-left: 1rem; + padding-right: 1rem; + } + + .subsection { + margin: 0 0 2rem 0; + } + + +.separator { + border-bottom: 1px solid #ddd; +} + + + +// ----- Header and footer ----- +.header { + position: sticky; + top: 0; + z-index: 100; + width: 100%; + 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: 1.75rem; + } + } + + .header--links { + + .btn-demo { + margin: .5rem 0; + + &:last-child { + margin-left: .5rem; + } + } + + @media (min-width: 768px) { + margin-left: auto; + } + } + + +.footer { + text-align: center; +} + + + +// ----- Buttons ----- +.btn-demo { + 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; + transition: background-color .3s, color .3s; + + &:hover, &:active { + background-color: #f3f3f3; + } +} + +.btn-demo--white { + color: #fff; + border-color: #fff; + background-color: transparent; +} + + + +// ----- Utilities ----- +.m-0 { + margin: 0; +} diff --git a/tasks/gulp/images.js b/tasks/gulp/images.js deleted file mode 100644 index 0da6095..0000000 --- a/tasks/gulp/images.js +++ /dev/null @@ -1,18 +0,0 @@ -// Task type: Images: File copying, no processing, Icons: Processing nunjucks and data.json into HTML -// Src: /src -// Dest: Images: /dist, Icons: /tmp - - -const { lastRun } = require('gulp'); - -module.exports = function({ src, dest }, $, paths, isProd, server) { - - function images() { - return src([`${paths.src}/images/**/*`], { since: lastRun(images) }) - .pipe(dest(`${paths.dest}/images`)); - }; - - return { - images - }; -}; diff --git a/tasks/gulp/styles.js b/tasks/gulp/styles.js deleted file mode 100644 index 4d5be28..0000000 --- a/tasks/gulp/styles.js +++ /dev/null @@ -1,30 +0,0 @@ -// Task type: Processing sass -// Src: /src -// Dest: /tmp - -const autoprefixer = require('autoprefixer'); - -module.exports = function({ src, dest }, $, paths, isProd, server) { - - function styles() { - return src(`${paths.src}/styles/*.scss`) - .pipe($.plumber()) - .pipe($.if(!isProd, $.sourcemaps.init())) - .pipe($.sass.sync({ - outputStyle: 'expanded', - precision: 10, - includePaths: ['.'] - }) - .on('error', $.sass.logError)) - .pipe($.postcss([ - autoprefixer() - ])) - .pipe($.if(!isProd, $.sourcemaps.write())) - .pipe(dest(`${paths.tmp}/styles`)) - .pipe(server.reload({stream: true})); - }; - - return { - styles - }; -};