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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9ub3JtYWxpemUuc2NzcyIsInNpdGUuY3NzIiwic2l0ZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUFBO0FBRUE7K0VDQStFO0FERy9FOzs7RUNDRTtBRElGO0VBQ0UsaUJBQWlCO0VBQUUsTUFBQTtFQUNuQiw4QkFBOEI7RUFBRSxNQUFBO0FDQWxDOztBREdBOytFQ0ErRTtBREcvRTs7RUNBRTtBRElGO0VBQ0UsU0FBUztBQ0ZYOztBREtBOztFQ0RFO0FES0Y7RUFDRSxjQUFjO0FDSGhCOztBRE1BOzs7RUNERTtBRE1GO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtBQ0psQjs7QURPQTsrRUNKK0U7QURPL0U7OztFQ0hFO0FEUUY7RUFDRSwrQkFBdUI7VUFBdkIsdUJBQXVCO0VBQUUsTUFBQTtFQUN6QixTQUFTO0VBQUUsTUFBQTtFQUNYLGlCQUFpQjtFQUFFLE1BQUE7QUNIckI7O0FETUE7OztFQ0RFO0FETUY7RUFDRSxpQ0FBaUM7RUFBRSxNQUFBO0VBQ25DLGNBQWM7RUFBRSxNQUFBO0FDRmxCOztBREtBOytFQ0YrRTtBREsvRTs7RUNGRTtBRE1GO0VBQ0UsNkJBQTZCO0FDSi9COztBRE9BOzs7RUNGRTtBRE9GO0VBQ0UsbUJBQW1CO0VBQUUsTUFBQTtFQUNyQiwwQkFBMEI7RUFBRSxNQUFBO0VBQzVCLHlDQUFpQztVQUFqQyxpQ0FBaUM7RUFBRSxNQUFBO0FDRnJDOztBREtBOztFQ0RFO0FES0Y7O0VBRUUsbUJBQW1CO0FDSHJCOztBRE1BOzs7RUNERTtBRE1GOzs7RUFHRSxpQ0FBaUM7RUFBRSxNQUFBO0VBQ25DLGNBQWM7RUFBRSxNQUFBO0FDRmxCOztBREtBOztFQ0RFO0FES0Y7RUFDRSxjQUFjO0FDSGhCOztBRE1BOzs7RUNERTtBRE1GOztFQUVFLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHdCQUF3QjtBQ0oxQjs7QURPQTtFQUNFLGVBQWU7QUNKakI7O0FET0E7RUFDRSxXQUFXO0FDSmI7O0FET0E7K0VD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QUEwQjtFQUMxQixlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLGtCQUFrQjtFQUNsQixtREFBMkM7RUFBM0MsMkNBQTJDO0FEa1Y3Qzs7QUM1VkE7RUFhSSx5QkFBeUI7QURtVjdCOztBQy9VQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsNkJBQTZCO0FEa1YvQjs7QUM1VUE7RUFDRSxTQUFTO0FEK1VYIiwiZmlsZSI6InNpdGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuXG4vKiBEb2N1bWVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuXG5odG1sIHtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qIFNlY3Rpb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5cbm1haW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICovXG5cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7XG59XG5cbi8qIEdyb3VwaW5nIGNvbnRlbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7IC8qIDEgKi9cbiAgaGVpZ2h0OiAwOyAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlOyAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7IC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbn1cblxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LVxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIDEgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAuXG4gKi9cblxuaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xufVxuXG4vKiBGb3Jtc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgLyogMSAqL1xuICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgbGluZS1oZWlnaHQ6IDEuMTU7IC8qIDEgKi9cbiAgbWFyZ2luOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cblxuYnV0dG9uLFxuW3R5cGU9XCJidXR0b25cIl0sXG5bdHlwZT1cInJlc2V0XCJdLFxuW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cblxuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgdGV4dCB3cmFwcGluZyBpbiBFZGdlIGFuZCBJRS5cbiAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAqICAgIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7IC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7IC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gIHBhZGRpbmc6IDA7IC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gKi9cblxucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC5cbiAqIDIuIFJlbW92ZSB0aGUgcGFkZGluZyBpbiBJRSAxMC5cbiAqL1xuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblxuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG5cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMSAqL1xuICBmb250OiBpbmhlcml0OyAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUgMTArLCBhbmQgRmlyZWZveC5cbiAqL1xuXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMCsuXG4gKi9cblxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuICovXG5cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qISBub3JtYWxpemUuY3NzIHY4LjAuMSB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluIGlPUy5cbiAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xufVxuXG4vKiBTZWN0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBtYXJnaW4gaW4gYWxsIGJyb3dzZXJzLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFJlbmRlciB0aGUgYG1haW5gIGVsZW1lbnQgY29uc2lzdGVudGx5IGluIElFLlxuICovXG5tYWluIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAqIDIuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UgYW5kIElFLlxuICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICovXG5hIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny1cbiAqIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG4gKi9cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCB3ZWlnaHQgaW4gQ2hyb21lLCBFZGdlLCBhbmQgU2FmYXJpLlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5jb2RlLFxua2JkLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcbiAgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICogYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAxICovXG4gIG1hcmdpbjogMDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKi9cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG4gKi9cbmZpZWxkc2V0IHtcbiAgcGFkZGluZzogMC4zNWVtIDAuNzVlbSAwLjYyNWVtO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gKiAyLiBDb3JyZWN0IHRoZSBjb2xvciBpbmhlcml0YW5jZSBmcm9tIGBmaWVsZHNldGAgZWxlbWVudHMgaW4gSUUuXG4gKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDtcbiAgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAvKiAxICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSAxMCsuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG4gKi9cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICogMi4gQ29ycmVjdCB0aGUgb3V0bGluZSBzdHlsZSBpbiBTYWZhcmkuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIHBhZGRpbmcgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gKi9cblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovXG59XG5cbi8qIEludGVyYWN0aXZlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG4gKi9cbmRldGFpbHMge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogTWlzY1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTArLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAuXG4gKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFwiU2Vnb2UgVUlcIixSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLFwiTm90byBTYW5zXCIsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCIsXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbmEge1xuICBjb2xvcjogIzE5NzZEMjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xufVxuXG5hOmhvdmVyLCBhOmZvY3VzIHtcbiAgY29sb3I6ICMyMTk2RjM7XG59XG5cbmgxLCBoMiwgaDMsIGg0LCBoNSwgaDYge1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG5oMSBzbWFsbCwgaDIgc21hbGwsIGgzIHNtYWxsLCBoNCBzbWFsbCwgaDUgc21hbGwsIGg2IHNtYWxsIHtcbiAgZm9udC1zaXplOiA2MCU7XG59XG5cbmgxLCBoMiB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cblxuaDMsIGg0LCBoNSwgaDYge1xuICBtYXJnaW46IDAgMCAuNXJlbSAwO1xufVxuXG5oMSB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xufVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cblxuaDMge1xuICBmb250LXNpemU6IDEuNzVyZW07XG59XG5cbmg0IHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG5cbmg1IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG5oNiB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxucCB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cblxuc3Ryb25nLCB0aCB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbnByZSwgY29kZSB7XG4gIGZvbnQtZmFtaWx5OiAnQ3V0aXZlIE1vbm8nLCBtb25vc3BhY2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjM7XG59XG5cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAuNzVyZW0gMXJlbTtcbiAgbWFyZ2luOiAwIDAgMS41cmVtIDA7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBmb250LXNpemU6IDFyZW07XG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYmJiO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi50YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgMCAxcmVtIDA7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbi50YWJsZSB0aCwgLnRhYmxlIHRkIHtcbiAgcGFkZGluZzogLjI1cmVtIC41cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xufVxuXG4uZnVsbHdpZHRoIC5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAycmVtO1xufVxuXG4uZnVsbHdpZHRoLS1zbSAuY29udGFpbmVyIHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuXG4uY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTE0MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xufVxuXG4uc3Vic2VjdGlvbiB7XG4gIG1hcmdpbjogMCAwIDJyZW0gMDtcbn1cblxuLnNlcGFyYXRvciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xufVxuXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAuNXJlbSAwO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzZEMjtcbiAgYm94LXNoYWRvdzogMCAwIDZweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlciB7XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICB9XG59XG5cbi5oZWFkZXIgLmNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaGVhZGVyIC5jb250YWluZXIge1xuICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuaGVhZGVyIC5jb250YWluZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cbn1cblxuLmxvZ28tdGV4dCB7XG4gIG1hcmdpbjogMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5sb2dvLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgfVxufVxuXG4uaGVhZGVyLS1saW5rcyAuYnRuLWRlbW8ge1xuICBtYXJnaW46IC41cmVtIDA7XG59XG5cbi5oZWFkZXItLWxpbmtzIC5idG4tZGVtbzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IC41cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlci0tbGlua3Mge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG59XG5cbi5mb290ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5idG4tZGVtbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIHBhZGRpbmc6IDRweCAxMnB4IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zcztcbn1cblxuLmJ0bi1kZW1vOmhvdmVyLCAuYnRuLWRlbW86YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbn1cblxuLmJ0bi1kZW1vLS13aGl0ZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubS0wIHtcbiAgbWFyZ2luOiAwO1xufVxuIiwiLy8gLS0tLS0gRGVtbyBzaXRlIHN0eWxlcyAtLS0tLVxuQGltcG9ydCBcIm5vcm1hbGl6ZVwiO1xuXG5cblxuLy8gLS0tLS0gQmFzZSBzdHlsZXMgLS0tLS1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFwiU2Vnb2UgVUlcIixSb2JvdG8sXCJIZWx2ZXRpY2EgTmV1ZVwiLEFyaWFsLFwiTm90byBTYW5zXCIsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiLFwiU2Vnb2UgVUkgU3ltYm9sXCIsXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cblxuYSB7XG4gIGNvbG9yOiAjMTk3NkQyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6ICMyMTk2RjM7XG4gIH1cbn1cblxuLy8gVHlwZVxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG5cbiAgc21hbGwge1xuICAgIGZvbnQtc2l6ZTogNjAlO1xuICB9XG59XG5cbmgxLCBoMiB7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbn1cblxuaDMsIGg0LCBoNSwgaDYge1xuICBtYXJnaW46IDAgMCAuNXJlbSAwO1xufVxuXG5oMSB7IGZvbnQtc2l6ZTogMi41cmVtOyB9XG5oMiB7IGZvbnQtc2l6ZTogMnJlbTsgfVxuaDMgeyBmb250LXNpemU6IDEuNzVyZW07IH1cbmg0IHsgZm9udC1zaXplOiAxLjVyZW07IH1cbmg1IHsgZm9udC1zaXplOiAxLjI1cmVtOyB9XG5oNiB7IGZvbnQtc2l6ZTogMXJlbTsgfVxuXG5wIHtcbiAgbWFyZ2luOiAwIDAgMXJlbSAwO1xufVxuXG5zdHJvbmcsIHRoIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxucHJlLCBjb2RlIHtcbiAgZm9udC1mYW1pbHk6ICdDdXRpdmUgTW9ubycsIG1vbm9zcGFjZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbn1cblxucHJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IC43NXJlbSAxcmVtO1xuICBtYXJnaW46IDAgMCAxLjVyZW0gMDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLnRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCAwIDFyZW0gMDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuICB0aCwgdGQge1xuICAgIHBhZGRpbmc6IC4yNXJlbSAuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgfVxufVxuXG5cblxuLy8gLS0tLS0gTGF5b3V0IC0tLS0tXG4uZnVsbHdpZHRoIHtcbiAgLmNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gIH1cbn1cblxuLmZ1bGx3aWR0aC0tc20ge1xuICAuY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgfVxufVxuXG4gIC5jb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTE0MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICB9XG5cbiAgICAuc3Vic2VjdGlvbiB7XG4gICAgICBtYXJnaW46IDAgMCAycmVtIDA7XG4gICAgfVxuXG5cbi5zZXBhcmF0b3Ige1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbn1cblxuXG5cbi8vIC0tLS0tIEhlYWRlciBhbmQgZm9vdGVyIC0tLS0tXG4uaGVhZGVyIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAuNXJlbSAwO1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE5NzZEMjtcbiAgYm94LXNoYWRvdzogMCAwIDZweCA2cHggcmdiYSgwLDAsMCwwLjEpO1xuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgfVxuXG5cbiAgLmNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cbiAgfVxuXG59XG5cbiAgLmxvZ28tdGV4dCB7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgfVxuICB9XG5cbiAgLmhlYWRlci0tbGlua3Mge1xuXG4gICAgLmJ0bi1kZW1vIHtcbiAgICAgIG1hcmdpbjogLjVyZW0gMDtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC41cmVtO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuICB9XG5cblxuLmZvb3RlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuXG5cbi8vIC0tLS0tIEJ1dHRvbnMgLS0tLS1cbi5idG4tZGVtbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNiYmI7XG4gIHBhZGRpbmc6IDRweCAxMnB4IDZweCAxMnB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuM3MsIGNvbG9yIC4zcztcblxuICAmOmhvdmVyLCAmOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMztcbiAgfVxufVxuXG4uYnRuLWRlbW8tLXdoaXRlIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cblxuXG4vLyAtLS0tLSBVdGlsaXRpZXMgLS0tLS1cbi5tLTAge1xuICBtYXJnaW46IDA7XG59XG4iXX0= */
+/*# 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
- };
-};