Version Description
Download this release
Release Info
Developer | Shelob9 |
Plugin | Caldera Forms – More Than Contact Forms |
Version | 1.5.9-rc.1 |
Comparing to | |
See all releases |
Code changes from version 1.5.8.2 to 1.5.9-rc.1
- README.md +1 -1
- assets/build/css/caldera-forms-front.min.css +1 -1
- assets/css/caldera-forms-front.css +1 -1
- assets/js/caldera-forms-front.js +1 -1
- assets/js/entry-viewer-2.js +1 -1
- assets/js/parsley.min.js +1 -1
- assets/js/vue.js +1 -1
- caldera-core.php +2 -2
- classes/admin.php +9 -3
- classes/admin/pro.php +1 -1
- classes/core.php +18 -52
- classes/email/filters.php +147 -0
- classes/entry/vue.php +1 -1
- classes/files.php +1 -1
- classes/forms.php +1 -1
- classes/sanitize.php +13 -0
- includes/cf-pro-client/classes/admin/scripts.php +6 -3
- includes/cf-pro-client/classes/api/local/settings.php +11 -1
- includes/cf-pro-client/classes/log/handler.php +1 -1
- includes/cf-pro-client/classes/settings.php +59 -0
- includes/cf-pro-client/classes/settings/form.php +18 -3
- includes/cf-pro-client/dist/client.ca043aad.js +2 -0
- includes/cf-pro-client/dist/client.ca043aad.js.map +1 -0
- includes/cf-pro-client/dist/client.js +0 -790
README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
Caldera-Forms
|
2 |
=============
|
3 |
-
<a href="https://calderaforms.com/"><img src="https://calderaforms.com/content/uploads/
|
4 |
|
5 |
|
6 |
# Drag & Drop WordPress Responsive Form Builder
|
1 |
Caldera-Forms
|
2 |
=============
|
3 |
+
<a href="https://calderaforms.com/"><img src="https://calderaforms.com/wp-content/uploads/2015/02/catdeta-caldera-forms-banner.png" /></a>
|
4 |
|
5 |
|
6 |
# Drag & Drop WordPress Responsive Form Builder
|
assets/build/css/caldera-forms-front.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
/*! GENERATED SOURCE FILE caldera-forms - v1.5.8.2 - 2017-12-22 */.caldera-grid html,.cf-toggle-switch html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}.caldera-grid .sr-only,.caldera-grid svg:not(:root),.cf-toggle-switch svg:not(:root){overflow:hidden}.caldera-grid .btn,.cfdatepicker table{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.caldera-grid button,.caldera-grid select,.cf-toggle-switch button,.cf-toggle-switch select{text-transform:none}@media (min-width:768px){.caldera-grid .container{width:750px}}@media (min-width:992px){.caldera-grid .container{width:970px}}@media (min-width:1200px){.caldera-grid .container{width:1170px}}.caldera-grid article,.caldera-grid aside,.caldera-grid details,.caldera-grid figcaption,.caldera-grid figure,.caldera-grid footer,.caldera-grid header,.caldera-grid hgroup,.caldera-grid main,.caldera-grid nav,.caldera-grid section,.caldera-grid summary{display:block}.caldera-grid a{background:0 0;text-decoration:none}.caldera-grid img{vertical-align:middle}.caldera-grid *,.caldera-grid :after,.caldera-grid :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.caldera-grid html{font-size:62.5%;-webkit-tap-highlight-color:transparent}.caldera-grid body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}.caldera-grid button,.caldera-grid input,.caldera-grid select,.caldera-grid textarea{font-family:inherit;font-size:inherit;line-height:inherit}.caldera-grid a:focus,.caldera-grid a:hover{color:#2a6496;text-decoration:underline}.caldera-grid a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid .img-responsive{display:block;max-width:100%;height:auto}.caldera-grid .img-rounded{border-radius:6px}.caldera-grid .img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.caldera-grid .img-circle{border-radius:50%}.caldera-grid hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.caldera-grid .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip:rect(0,0,0,0);border:0}.caldera-grid .container,.caldera-grid .container-fluid{margin-right:auto;margin-left:auto;padding-left:7.5px;padding-right:7.5px}@media (min-width:768px){.caldera-grid .container{width:735px}}@media (min-width:992px){.caldera-grid .container{width:955px}}@media (min-width:1200px){.caldera-grid .container{width:1155px}}.caldera-grid .row{margin-left:-7.5px;margin-right:-7.5px;max-width:100%}.caldera-grid .col-lg-1,.caldera-grid .col-lg-10,.caldera-grid .col-lg-11,.caldera-grid .col-lg-12,.caldera-grid .col-lg-2,.caldera-grid .col-lg-3,.caldera-grid .col-lg-4,.caldera-grid .col-lg-5,.caldera-grid .col-lg-6,.caldera-grid .col-lg-7,.caldera-grid .col-lg-8,.caldera-grid .col-lg-9,.caldera-grid .col-md-1,.caldera-grid .col-md-10,.caldera-grid .col-md-11,.caldera-grid .col-md-12,.caldera-grid .col-md-2,.caldera-grid .col-md-3,.caldera-grid .col-md-4,.caldera-grid .col-md-5,.caldera-grid .col-md-6,.caldera-grid .col-md-7,.caldera-grid .col-md-8,.caldera-grid .col-md-9,.caldera-grid .col-sm-1,.caldera-grid .col-sm-10,.caldera-grid .col-sm-11,.caldera-grid .col-sm-12,.caldera-grid .col-sm-2,.caldera-grid .col-sm-3,.caldera-grid .col-sm-4,.caldera-grid .col-sm-5,.caldera-grid .col-sm-6,.caldera-grid .col-sm-7,.caldera-grid .col-sm-8,.caldera-grid .col-sm-9,.caldera-grid .col-xs-1,.caldera-grid .col-xs-10,.caldera-grid .col-xs-11,.caldera-grid .col-xs-12,.caldera-grid .col-xs-2,.caldera-grid .col-xs-3,.caldera-grid .col-xs-4,.caldera-grid .col-xs-5,.caldera-grid .col-xs-6,.caldera-grid .col-xs-7,.caldera-grid .col-xs-8,.caldera-grid .col-xs-9{position:relative;padding-left:7.5px;padding-right:7.5px}.caldera-grid .col-xs-1,.caldera-grid .col-xs-10,.caldera-grid .col-xs-11,.caldera-grid .col-xs-12,.caldera-grid .col-xs-2,.caldera-grid .col-xs-3,.caldera-grid .col-xs-4,.caldera-grid .col-xs-5,.caldera-grid .col-xs-6,.caldera-grid .col-xs-7,.caldera-grid .col-xs-8,.caldera-grid .col-xs-9{float:left}.caldera-grid .col-xs-12{width:100%}.caldera-grid .col-xs-11{width:91.66666667%}.caldera-grid .col-xs-10{width:83.33333333%}.caldera-grid .col-xs-9{width:75%}.caldera-grid .col-xs-8{width:66.66666667%}.caldera-grid .col-xs-7{width:58.33333333%}.caldera-grid .col-xs-6{width:50%}.caldera-grid .col-xs-5{width:41.66666667%}.caldera-grid .col-xs-4{width:33.33333333%}.caldera-grid .col-xs-3{width:25%}.caldera-grid .col-xs-2{width:16.66666667%}.caldera-grid .col-xs-1{width:8.33333333%}.caldera-grid .col-xs-pull-12{right:100%}.caldera-grid .col-xs-pull-11{right:91.66666667%}.caldera-grid .col-xs-pull-10{right:83.33333333%}.caldera-grid .col-xs-pull-9{right:75%}.caldera-grid .col-xs-pull-8{right:66.66666667%}.caldera-grid .col-xs-pull-7{right:58.33333333%}.caldera-grid .col-xs-pull-6{right:50%}.caldera-grid .col-xs-pull-5{right:41.66666667%}.caldera-grid .col-xs-pull-4{right:33.33333333%}.caldera-grid .col-xs-pull-3{right:25%}.caldera-grid .col-xs-pull-2{right:16.66666667%}.caldera-grid .col-xs-pull-1{right:8.33333333%}.caldera-grid .col-xs-pull-0{right:0}.caldera-grid .col-xs-push-12{left:100%}.caldera-grid .col-xs-push-11{left:91.66666667%}.caldera-grid .col-xs-push-10{left:83.33333333%}.caldera-grid .col-xs-push-9{left:75%}.caldera-grid .col-xs-push-8{left:66.66666667%}.caldera-grid .col-xs-push-7{left:58.33333333%}.caldera-grid .col-xs-push-6{left:50%}.caldera-grid .col-xs-push-5{left:41.66666667%}.caldera-grid .col-xs-push-4{left:33.33333333%}.caldera-grid .col-xs-push-3{left:25%}.caldera-grid .col-xs-push-2{left:16.66666667%}.caldera-grid .col-xs-push-1{left:8.33333333%}.caldera-grid .col-xs-push-0{left:0}.caldera-grid .col-xs-offset-12{margin-left:100%}.caldera-grid .col-xs-offset-11{margin-left:91.66666667%}.caldera-grid .col-xs-offset-10{margin-left:83.33333333%}.caldera-grid .col-xs-offset-9{margin-left:75%}.caldera-grid .col-xs-offset-8{margin-left:66.66666667%}.caldera-grid .col-xs-offset-7{margin-left:58.33333333%}.caldera-grid .col-xs-offset-6{margin-left:50%}.caldera-grid .col-xs-offset-5{margin-left:41.66666667%}.caldera-grid .col-xs-offset-4{margin-left:33.33333333%}.caldera-grid .col-xs-offset-3{margin-left:25%}.caldera-grid .col-xs-offset-2{margin-left:16.66666667%}.caldera-grid .col-xs-offset-1{margin-left:8.33333333%}.caldera-grid .col-xs-offset-0{margin-left:0}@media (min-width:768px){.caldera-grid .col-sm-1,.caldera-grid .col-sm-10,.caldera-grid .col-sm-11,.caldera-grid .col-sm-12,.caldera-grid .col-sm-2,.caldera-grid .col-sm-3,.caldera-grid .col-sm-4,.caldera-grid .col-sm-5,.caldera-grid .col-sm-6,.caldera-grid .col-sm-7,.caldera-grid .col-sm-8,.caldera-grid .col-sm-9{float:left}.caldera-grid .col-sm-12{width:100%}.caldera-grid .col-sm-11{width:91.66666667%}.caldera-grid .col-sm-10{width:83.33333333%}.caldera-grid .col-sm-9{width:75%}.caldera-grid .col-sm-8{width:66.66666667%}.caldera-grid .col-sm-7{width:58.33333333%}.caldera-grid .col-sm-6{width:50%}.caldera-grid .col-sm-5{width:41.66666667%}.caldera-grid .col-sm-4{width:33.33333333%}.caldera-grid .col-sm-3{width:25%}.caldera-grid .col-sm-2{width:16.66666667%}.caldera-grid .col-sm-1{width:8.33333333%}.caldera-grid .col-sm-pull-12{right:100%}.caldera-grid .col-sm-pull-11{right:91.66666667%}.caldera-grid .col-sm-pull-10{right:83.33333333%}.caldera-grid .col-sm-pull-9{right:75%}.caldera-grid .col-sm-pull-8{right:66.66666667%}.caldera-grid .col-sm-pull-7{right:58.33333333%}.caldera-grid .col-sm-pull-6{right:50%}.caldera-grid .col-sm-pull-5{right:41.66666667%}.caldera-grid .col-sm-pull-4{right:33.33333333%}.caldera-grid .col-sm-pull-3{right:25%}.caldera-grid .col-sm-pull-2{right:16.66666667%}.caldera-grid .col-sm-pull-1{right:8.33333333%}.caldera-grid .col-sm-pull-0{right:0}.caldera-grid .col-sm-push-12{left:100%}.caldera-grid .col-sm-push-11{left:91.66666667%}.caldera-grid .col-sm-push-10{left:83.33333333%}.caldera-grid .col-sm-push-9{left:75%}.caldera-grid .col-sm-push-8{left:66.66666667%}.caldera-grid .col-sm-push-7{left:58.33333333%}.caldera-grid .col-sm-push-6{left:50%}.caldera-grid .col-sm-push-5{left:41.66666667%}.caldera-grid .col-sm-push-4{left:33.33333333%}.caldera-grid .col-sm-push-3{left:25%}.caldera-grid .col-sm-push-2{left:16.66666667%}.caldera-grid .col-sm-push-1{left:8.33333333%}.caldera-grid .col-sm-push-0{left:0}.caldera-grid .col-sm-offset-12{margin-left:100%}.caldera-grid .col-sm-offset-11{margin-left:91.66666667%}.caldera-grid .col-sm-offset-10{margin-left:83.33333333%}.caldera-grid .col-sm-offset-9{margin-left:75%}.caldera-grid .col-sm-offset-8{margin-left:66.66666667%}.caldera-grid .col-sm-offset-7{margin-left:58.33333333%}.caldera-grid .col-sm-offset-6{margin-left:50%}.caldera-grid .col-sm-offset-5{margin-left:41.66666667%}.caldera-grid .col-sm-offset-4{margin-left:33.33333333%}.caldera-grid .col-sm-offset-3{margin-left:25%}.caldera-grid .col-sm-offset-2{margin-left:16.66666667%}.caldera-grid .col-sm-offset-1{margin-left:8.33333333%}.caldera-grid .col-sm-offset-0{margin-left:0}}@media (min-width:992px){.caldera-grid .col-md-1,.caldera-grid .col-md-10,.caldera-grid .col-md-11,.caldera-grid .col-md-12,.caldera-grid .col-md-2,.caldera-grid .col-md-3,.caldera-grid .col-md-4,.caldera-grid .col-md-5,.caldera-grid .col-md-6,.caldera-grid .col-md-7,.caldera-grid .col-md-8,.caldera-grid .col-md-9{float:left}.caldera-grid .col-md-12{width:100%}.caldera-grid .col-md-11{width:91.66666667%}.caldera-grid .col-md-10{width:83.33333333%}.caldera-grid .col-md-9{width:75%}.caldera-grid .col-md-8{width:66.66666667%}.caldera-grid .col-md-7{width:58.33333333%}.caldera-grid .col-md-6{width:50%}.caldera-grid .col-md-5{width:41.66666667%}.caldera-grid .col-md-4{width:33.33333333%}.caldera-grid .col-md-3{width:25%}.caldera-grid .col-md-2{width:16.66666667%}.caldera-grid .col-md-1{width:8.33333333%}.caldera-grid .col-md-pull-12{right:100%}.caldera-grid .col-md-pull-11{right:91.66666667%}.caldera-grid .col-md-pull-10{right:83.33333333%}.caldera-grid .col-md-pull-9{right:75%}.caldera-grid .col-md-pull-8{right:66.66666667%}.caldera-grid .col-md-pull-7{right:58.33333333%}.caldera-grid .col-md-pull-6{right:50%}.caldera-grid .col-md-pull-5{right:41.66666667%}.caldera-grid .col-md-pull-4{right:33.33333333%}.caldera-grid .col-md-pull-3{right:25%}.caldera-grid .col-md-pull-2{right:16.66666667%}.caldera-grid .col-md-pull-1{right:8.33333333%}.caldera-grid .col-md-pull-0{right:0}.caldera-grid .col-md-push-12{left:100%}.caldera-grid .col-md-push-11{left:91.66666667%}.caldera-grid .col-md-push-10{left:83.33333333%}.caldera-grid .col-md-push-9{left:75%}.caldera-grid .col-md-push-8{left:66.66666667%}.caldera-grid .col-md-push-7{left:58.33333333%}.caldera-grid .col-md-push-6{left:50%}.caldera-grid .col-md-push-5{left:41.66666667%}.caldera-grid .col-md-push-4{left:33.33333333%}.caldera-grid .col-md-push-3{left:25%}.caldera-grid .col-md-push-2{left:16.66666667%}.caldera-grid .col-md-push-1{left:8.33333333%}.caldera-grid .col-md-push-0{left:0}.caldera-grid .col-md-offset-12{margin-left:100%}.caldera-grid .col-md-offset-11{margin-left:91.66666667%}.caldera-grid .col-md-offset-10{margin-left:83.33333333%}.caldera-grid .col-md-offset-9{margin-left:75%}.caldera-grid .col-md-offset-8{margin-left:66.66666667%}.caldera-grid .col-md-offset-7{margin-left:58.33333333%}.caldera-grid .col-md-offset-6{margin-left:50%}.caldera-grid .col-md-offset-5{margin-left:41.66666667%}.caldera-grid .col-md-offset-4{margin-left:33.33333333%}.caldera-grid .col-md-offset-3{margin-left:25%}.caldera-grid .col-md-offset-2{margin-left:16.66666667%}.caldera-grid .col-md-offset-1{margin-left:8.33333333%}.caldera-grid .col-md-offset-0{margin-left:0}}@-ms-viewport{width:device-width}@media (min-width:1200px){.caldera-grid .col-lg-1,.caldera-grid .col-lg-10,.caldera-grid .col-lg-11,.caldera-grid .col-lg-12,.caldera-grid .col-lg-2,.caldera-grid .col-lg-3,.caldera-grid .col-lg-4,.caldera-grid .col-lg-5,.caldera-grid .col-lg-6,.caldera-grid .col-lg-7,.caldera-grid .col-lg-8,.caldera-grid .col-lg-9{float:left}.caldera-grid .col-lg-12{width:100%}.caldera-grid .col-lg-11{width:91.66666667%}.caldera-grid .col-lg-10{width:83.33333333%}.caldera-grid .col-lg-9{width:75%}.caldera-grid .col-lg-8{width:66.66666667%}.caldera-grid .col-lg-7{width:58.33333333%}.caldera-grid .col-lg-6{width:50%}.caldera-grid .col-lg-5{width:41.66666667%}.caldera-grid .col-lg-4{width:33.33333333%}.caldera-grid .col-lg-3{width:25%}.caldera-grid .col-lg-2{width:16.66666667%}.caldera-grid .col-lg-1{width:8.33333333%}.caldera-grid .col-lg-pull-12{right:100%}.caldera-grid .col-lg-pull-11{right:91.66666667%}.caldera-grid .col-lg-pull-10{right:83.33333333%}.caldera-grid .col-lg-pull-9{right:75%}.caldera-grid .col-lg-pull-8{right:66.66666667%}.caldera-grid .col-lg-pull-7{right:58.33333333%}.caldera-grid .col-lg-pull-6{right:50%}.caldera-grid .col-lg-pull-5{right:41.66666667%}.caldera-grid .col-lg-pull-4{right:33.33333333%}.caldera-grid .col-lg-pull-3{right:25%}.caldera-grid .col-lg-pull-2{right:16.66666667%}.caldera-grid .col-lg-pull-1{right:8.33333333%}.caldera-grid .col-lg-pull-0{right:0}.caldera-grid .col-lg-push-12{left:100%}.caldera-grid .col-lg-push-11{left:91.66666667%}.caldera-grid .col-lg-push-10{left:83.33333333%}.caldera-grid .col-lg-push-9{left:75%}.caldera-grid .col-lg-push-8{left:66.66666667%}.caldera-grid .col-lg-push-7{left:58.33333333%}.caldera-grid .col-lg-push-6{left:50%}.caldera-grid .col-lg-push-5{left:41.66666667%}.caldera-grid .col-lg-push-4{left:33.33333333%}.caldera-grid .col-lg-push-3{left:25%}.caldera-grid .col-lg-push-2{left:16.66666667%}.caldera-grid .col-lg-push-1{left:8.33333333%}.caldera-grid .col-lg-push-0{left:0}.caldera-grid .col-lg-offset-12{margin-left:100%}.caldera-grid .col-lg-offset-11{margin-left:91.66666667%}.caldera-grid .col-lg-offset-10{margin-left:83.33333333%}.caldera-grid .col-lg-offset-9{margin-left:75%}.caldera-grid .col-lg-offset-8{margin-left:66.66666667%}.caldera-grid .col-lg-offset-7{margin-left:58.33333333%}.caldera-grid .col-lg-offset-6{margin-left:50%}.caldera-grid .col-lg-offset-5{margin-left:41.66666667%}.caldera-grid .col-lg-offset-4{margin-left:33.33333333%}.caldera-grid .col-lg-offset-3{margin-left:25%}.caldera-grid .col-lg-offset-2{margin-left:16.66666667%}.caldera-grid .col-lg-offset-1{margin-left:8.33333333%}.caldera-grid .col-lg-offset-0{margin-left:0}}.caldera-grid .clearfix:after,.caldera-grid .clearfix:before,.caldera-grid .container-fluid:after,.caldera-grid .container-fluid:before,.caldera-grid .container:after,.caldera-grid .container:before,.caldera-grid .row:after,.caldera-grid .row:before{content:" ";display:table}.caldera-grid .clearfix:after,.caldera-grid .container-fluid:after,.caldera-grid .container:after,.caldera-grid .row:after{clear:both}.caldera-grid .center-block{display:block;margin-left:auto;margin-right:auto}.caldera-grid .pull-right{float:right!important}.caldera-grid .pull-left{float:left!important}.caldera-grid .hide{display:none!important}.caldera-grid .show{display:block!important}.caldera-grid .hidden,.caldera-grid .visible-lg,.caldera-grid .visible-md,.caldera-grid .visible-sm,.caldera-grid .visible-xs{display:none!important}.caldera-grid .invisible{visibility:hidden}.caldera-grid .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.caldera-grid .alert .alert-link,.caldera-grid b,.caldera-grid strong{font-weight:700}.caldera-grid .hidden{visibility:hidden!important}.caldera-grid .affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.caldera-grid .visible-xs{display:block!important}.caldera-grid table.visible-xs{display:table}.caldera-grid tr.visible-xs{display:table-row!important}.caldera-grid td.visible-xs,.caldera-grid th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.caldera-grid .visible-sm{display:block!important}.caldera-grid table.visible-sm{display:table}.caldera-grid tr.visible-sm{display:table-row!important}.caldera-grid td.visible-sm,.caldera-grid th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.caldera-grid .visible-md{display:block!important}.caldera-grid table.visible-md{display:table}.caldera-grid tr.visible-md{display:table-row!important}.caldera-grid td.visible-md,.caldera-grid th.visible-md{display:table-cell!important}}@media (min-width:1200px){.caldera-grid .visible-lg{display:block!important}.caldera-grid table.visible-lg{display:table}.caldera-grid tr.visible-lg{display:table-row!important}.caldera-grid td.visible-lg,.caldera-grid th.visible-lg{display:table-cell!important}.caldera-grid .hidden-lg{display:none!important}}@media (max-width:767px){.caldera-grid .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.caldera-grid .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.caldera-grid .hidden-md{display:none!important}}.caldera-grid .visible-print{display:none!important}@media print{.caldera-grid .visible-print{display:block!important}.caldera-grid table.visible-print{display:table}.caldera-grid tr.visible-print{display:table-row!important}.caldera-grid td.visible-print,.caldera-grid th.visible-print{display:table-cell!important}.caldera-grid .hidden-print{display:none!important}}input.parsley-success,select.parsley-success,textarea.parsley-success{color:#468847;background-color:#DFF0D8;border:1px solid #D6E9C6}input.parsley-error,select.parsley-error,textarea.parsley-error{color:#B94A48;background-color:#F2DEDE;border:1px solid #EED3D7}.parsley-errors-list{margin:2px 0 3px;padding:0;list-style-type:none;font-size:.9em;line-height:.9em;opacity:0;transition:all .3s ease-in;-o-transition:all .3s ease-in;-moz-transition:all .3s ease-in;-webkit-transition:all .3s ease-in}.parsley-errors-list.filled{opacity:1}.caldera-grid .alert{padding:8px;margin-bottom:18px;border-radius:2px}.caldera-grid .alert-dismissable{padding-right:28px}.caldera-grid .alert-success{background-color:#dff0d8;border-color:#a3d48e;color:#3c763d}.caldera-grid .alert-success hr{border-top-color:#93cd7c}.caldera-grid .alert-success .alert-link{color:#2b542c}.caldera-grid .alert-info{background-color:#d9edf7;border-color:#85c5e5;color:#31708f}.caldera-grid .alert-info hr{border-top-color:#70bbe1}.caldera-grid .alert-info .alert-link{color:#245269}.caldera-grid .alert-warning{background-color:#f9edbe;border-color:#f0c36d;color:#333}.caldera-grid .alert-warning hr{border-top-color:#eeb956}.caldera-grid .alert-warning .alert-link{color:#1a1a1a}.caldera-grid .alert-danger,.caldera-grid .alert-error{background-color:#f2dede;border-color:#d59595;color:#a94442}.caldera-grid .alert-danger hr,.caldera-grid .alert-error hr{border-top-color:#ce8383}.caldera-grid .alert-danger .alert-link,.caldera-grid .alert-error .alert-link{color:#843534}.caldera-grid .alert-danger,.caldera-grid .alert-error,.caldera-grid .alert-info,.caldera-grid .alert-success,.caldera-grid .alert-warning{text-shadow:0 1px 0 rgba(255,255,255,.5)}.caldera-grid .has-error .form-control:focus,.caldera-grid .has-error .form-control:hover{border-color:#dd4b39}.caldera-grid.cf_processing{background:url(../images/loading.gif) center center/30px auto no-repeat rgba(0,0,0,0)}.caldera-grid.cf_processing>*{opacity:.5}.caldera-grid html{font-family:sans-serif}.caldera-grid body{margin:0}.caldera-grid article,.caldera-grid aside,.caldera-grid details,.caldera-grid figcaption,.caldera-grid figure,.caldera-grid footer,.caldera-grid header,.caldera-grid hgroup,.caldera-grid main,.caldera-grid menu,.caldera-grid nav,.caldera-grid section,.caldera-grid summary{display:block}.caldera-grid audio,.caldera-grid canvas,.caldera-grid progress,.caldera-grid video{display:inline-block;vertical-align:baseline}.caldera-grid audio:not([controls]){display:none;height:0}.caldera-grid [hidden],.caldera-grid template{display:none}.caldera-grid a{background-color:transparent}.caldera-grid a:active,.caldera-grid a:hover{outline:0}.caldera-grid abbr[title]{border-bottom:1px dotted}.caldera-grid dfn{font-style:italic}.caldera-grid h1{font-size:2em;margin:.67em 0}.caldera-grid mark{background:#ff0;color:#000}.caldera-grid small{font-size:80%}.caldera-grid sub,.caldera-grid sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.caldera-grid sup{top:-.5em}.caldera-grid sub{bottom:-.25em}.caldera-grid img{border:0}.caldera-grid figure{margin:1em 40px}.caldera-grid hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.caldera-grid pre{overflow:auto}.caldera-grid code,.caldera-grid kbd,.caldera-grid pre,.caldera-grid samp{font-family:monospace,monospace;font-size:1em}.caldera-grid button,.caldera-grid input,.caldera-grid optgroup,.caldera-grid select,.caldera-grid textarea{font:inherit;margin:0}.caldera-grid button{overflow:visible}.caldera-grid button,.caldera-grid html input[type=button],.caldera-grid input[type=reset],.caldera-grid input[type=submit]{-webkit-appearance:button;cursor:pointer}.caldera-grid button[disabled],.caldera-grid html input[disabled]{cursor:default}.caldera-grid button::-moz-focus-inner,.caldera-grid input::-moz-focus-inner{border:0;padding:0}.caldera-grid input{line-height:normal}.caldera-grid input[type=checkbox],.caldera-grid input[type=radio]{box-sizing:border-box;padding:0}.caldera-grid input[type=number]::-webkit-inner-spin-button,.caldera-grid input[type=number]::-webkit-outer-spin-button{height:auto}.caldera-grid input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.caldera-grid input[type=search]::-webkit-search-cancel-button,.caldera-grid input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.caldera-grid textarea{overflow:auto}.caldera-grid optgroup{font-weight:700}.caldera-grid table{border-collapse:collapse;border-spacing:0}.caldera-grid td,.caldera-grid th{padding:0}@media print{.caldera-grid *,.caldera-grid :after,.caldera-grid :before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.caldera-grid a,.caldera-grid a:visited{text-decoration:underline}.caldera-grid a[href]:after{content:" (" attr(href) ")"}.caldera-grid abbr[title]:after{content:" (" attr(title) ")"}.caldera-grid a[href^="#"]:after,.caldera-grid a[href^="javascript:"]:after{content:""}.caldera-grid blockquote,.caldera-grid pre{border:1px solid #999;page-break-inside:avoid}.caldera-grid thead{display:table-header-group}.caldera-grid img,.caldera-grid tr{page-break-inside:avoid}.caldera-grid img{max-width:100%!important}.caldera-grid h2,.caldera-grid h3,.caldera-grid p{orphans:3;widows:3}.caldera-grid h2,.caldera-grid h3{page-break-after:avoid}.caldera-grid select{background:#fff!important}.caldera-grid .navbar{display:none}.caldera-grid .btn>.caret,.caldera-grid .dropup>.btn>.caret{border-top-color:#000!important}.caldera-grid .label{border:1px solid #000}.caldera-grid .table{border-collapse:collapse!important}.caldera-grid .table td,.caldera-grid .table th{background-color:#fff!important}.caldera-grid .table-bordered td,.caldera-grid .table-bordered th{border:1px solid #ddd!important}}.caldera-grid .btn,.caldera-grid .btn-danger.active,.caldera-grid .btn-danger:active,.caldera-grid .btn-default.active,.caldera-grid .btn-default:active,.caldera-grid .btn-info.active,.caldera-grid .btn-info:active,.caldera-grid .btn-primary.active,.caldera-grid .btn-primary:active,.caldera-grid .btn-success.active,.caldera-grid .btn-success:active,.caldera-grid .btn-warning.active,.caldera-grid .btn-warning:active,.caldera-grid .form-control,.open>.dropdown-toggle.caldera-grid .btn-danger,.open>.dropdown-toggle.caldera-grid .btn-default,.open>.dropdown-toggle.caldera-grid .btn-info,.open>.dropdown-toggle.caldera-grid .btn-primary,.open>.dropdown-toggle.caldera-grid .btn-success,.open>.dropdown-toggle.caldera-grid .btn-warning{background-image:none}.caldera-grid fieldset{padding:0;margin:0;border:0;min-width:0}.caldera-grid legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}.caldera-grid label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}.caldera-grid input[type=checkbox],.caldera-grid input[type=radio]{margin:0;line-height:normal}.caldera-grid .form-control,.caldera-grid output{font-size:14px;line-height:1.42857143;color:#555;display:block}.caldera-grid input[type=file]{display:block}.caldera-grid input[type=range]{display:block;width:100%}.caldera-grid select[multiple],.caldera-grid select[size]{height:auto}.caldera-grid input[type=checkbox]:focus,.caldera-grid input[type=file]:focus,.caldera-grid input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid input[type=checkbox]{-webkit-appearance:checkbox}.caldera-grid input[type=radio]{-webkit-appearance:radio}.caldera-grid output{padding-top:7px}.caldera-grid .form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.caldera-grid .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.caldera-grid .form-control::-moz-placeholder{color:#999;opacity:1}.caldera-grid .form-control:-ms-input-placeholder{color:#999}.caldera-grid .form-control::-webkit-input-placeholder{color:#999}.caldera-grid .has-success .checkbox,.caldera-grid .has-success .checkbox-inline,.caldera-grid .has-success .control-label,.caldera-grid .has-success .form-control-feedback,.caldera-grid .has-success .help-block,.caldera-grid .has-success .radio,.caldera-grid .has-success .radio-inline,.caldera-grid .has-success.checkbox label,.caldera-grid .has-success.checkbox-inline label,.caldera-grid .has-success.radio label,.caldera-grid .has-success.radio-inline label{color:#3c763d}.caldera-grid .form-control[disabled],.caldera-grid .form-control[readonly],fieldset[disabled] .caldera-grid .form-control{background-color:#eee;opacity:1}.caldera-grid .form-control[disabled],fieldset[disabled] .caldera-grid .form-control{cursor:not-allowed}textarea .caldera-grid .form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){.caldera-grid input[type=date],.caldera-grid input[type=datetime-local],.caldera-grid input[type=month],.caldera-grid input[type=time]{line-height:34px}.caldera-grid input[type=date].input-sm,.caldera-grid input[type=datetime-local].input-sm,.caldera-grid input[type=month].input-sm,.caldera-grid input[type=time].input-sm,.input-group-sm .caldera-grid input[type=date],.input-group-sm .caldera-grid input[type=datetime-local],.input-group-sm .caldera-grid input[type=month],.input-group-sm .caldera-grid input[type=time]{line-height:30px}.caldera-grid input[type=date].input-lg,.caldera-grid input[type=datetime-local].input-lg,.caldera-grid input[type=month].input-lg,.caldera-grid input[type=time].input-lg,.input-group-lg .caldera-grid input[type=date],.input-group-lg .caldera-grid input[type=datetime-local],.input-group-lg .caldera-grid input[type=month],.input-group-lg .caldera-grid input[type=time]{line-height:46px}}.caldera-grid .form-group{margin-bottom:15px}.caldera-grid .checkbox,.caldera-grid .radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.caldera-grid .checkbox label,.caldera-grid .radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.caldera-grid .checkbox input[type=checkbox],.caldera-grid .checkbox-inline input[type=checkbox],.caldera-grid .radio input[type=radio],.caldera-grid .radio-inline input[type=radio]{margin-left:-20px}.caldera-grid .checkbox+.checkbox,.caldera-grid .radio+.radio{margin-top:-5px}.caldera-grid .checkbox-inline,.caldera-grid .radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.caldera-grid .checkbox-inline+.checkbox-inline,.caldera-grid .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.caldera-grid .checkbox-inline.disabled,.caldera-grid .checkbox.disabled label,.caldera-grid .radio-inline.disabled,.caldera-grid .radio.disabled label,.caldera-grid input[type=checkbox].disabled,.caldera-grid input[type=checkbox][disabled],.caldera-grid input[type=radio].disabled,.caldera-grid input[type=radio][disabled],fieldset[disabled] .caldera-grid .checkbox label,fieldset[disabled] .caldera-grid .checkbox-inline,fieldset[disabled] .caldera-grid .radio label,fieldset[disabled] .caldera-grid .radio-inline,fieldset[disabled] .caldera-grid input[type=checkbox],fieldset[disabled] .caldera-grid input[type=radio]{cursor:not-allowed}.caldera-grid .form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.caldera-grid .form-control-static.input-lg,.caldera-grid .form-control-static.input-sm{padding-left:0;padding-right:0}.caldera-grid .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.caldera-grid .input-sm{height:30px;line-height:30px}select[multiple].caldera-grid .input-sm,textarea.caldera-grid .input-sm{height:auto}.caldera-grid .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.caldera-grid .form-group-sm .form-control{height:30px;line-height:30px}select[multiple].caldera-grid .form-group-sm .form-control,textarea.caldera-grid .form-group-sm .form-control{height:auto}.caldera-grid .form-group-sm .form-control-static{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;min-height:32px}.caldera-grid .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}select.caldera-grid .input-lg{height:46px;line-height:46px}select[multiple].caldera-grid .input-lg,textarea.caldera-grid .input-lg{height:auto}.caldera-grid .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}select.caldera-grid .form-group-lg .form-control{height:46px;line-height:46px}select[multiple].caldera-grid .form-group-lg .form-control,textarea.caldera-grid .form-group-lg .form-control{height:auto}.caldera-grid .form-group-lg .form-control-static{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;min-height:38px}.caldera-grid .has-feedback{position:relative}.caldera-grid .has-feedback .form-control{padding-right:42.5px}.caldera-grid .form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.caldera-grid .input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.caldera-grid .input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.caldera-grid .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.caldera-grid .has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.caldera-grid .has-warning .checkbox,.caldera-grid .has-warning .checkbox-inline,.caldera-grid .has-warning .control-label,.caldera-grid .has-warning .form-control-feedback,.caldera-grid .has-warning .help-block,.caldera-grid .has-warning .radio,.caldera-grid .has-warning .radio-inline,.caldera-grid .has-warning.checkbox label,.caldera-grid .has-warning.checkbox-inline label,.caldera-grid .has-warning.radio label,.caldera-grid .has-warning.radio-inline label{color:#8a6d3b}.caldera-grid .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.caldera-grid .has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.caldera-grid .has-error .checkbox,.caldera-grid .has-error .checkbox-inline,.caldera-grid .has-error .control-label,.caldera-grid .has-error .form-control-feedback,.caldera-grid .has-error .help-block,.caldera-grid .has-error .radio,.caldera-grid .has-error .radio-inline,.caldera-grid .has-error.checkbox label,.caldera-grid .has-error.checkbox-inline label,.caldera-grid .has-error.radio label,.caldera-grid .has-error.radio-inline label{color:#a94442}.caldera-grid .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.caldera-grid .has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.caldera-grid .has-feedback label~.form-control-feedback{top:25px}.caldera-grid .has-feedback label.sr-only~.form-control-feedback{top:0}.caldera-grid .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.caldera-grid .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.caldera-grid .form-inline .form-control-static{display:inline-block}.caldera-grid .form-inline .input-group{display:inline-table;vertical-align:middle}.caldera-grid .form-inline .input-group .form-control,.caldera-grid .form-inline .input-group .input-group-addon,.caldera-grid .form-inline .input-group .input-group-btn{width:auto}.caldera-grid .form-inline .input-group>.form-control{width:100%}.caldera-grid .form-inline .control-label{margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .checkbox,.caldera-grid .form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .checkbox label,.caldera-grid .form-inline .radio label{padding-left:0}.caldera-grid .form-inline .checkbox input[type=checkbox],.caldera-grid .form-inline .radio input[type=radio]{position:relative;margin-left:0}.caldera-grid .form-inline .has-feedback .form-control-feedback{top:0}.caldera-grid .form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.caldera-grid .form-horizontal .checkbox,.caldera-grid .form-horizontal .checkbox-inline,.caldera-grid .form-horizontal .radio,.caldera-grid .form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.caldera-grid .form-horizontal .checkbox,.caldera-grid .form-horizontal .radio{min-height:27px}.caldera-grid .form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.caldera-grid .form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.caldera-grid .form-horizontal .form-group-lg .control-label{padding-top:14.33px}.caldera-grid .form-horizontal .form-group-sm .control-label{padding-top:6px}}.caldera-grid .btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:2px;user-select:none}.caldera-grid .btn.active.focus,.caldera-grid .btn.active:focus,.caldera-grid .btn.focus,.caldera-grid .btn:active.focus,.caldera-grid .btn:active:focus,.caldera-grid .btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid .btn.focus,.caldera-grid .btn:focus,.caldera-grid .btn:hover{color:#333;text-decoration:none}.caldera-grid .btn.active,.caldera-grid .btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.caldera-grid .btn.disabled,.caldera-grid .btn[disabled],fieldset[disabled] .caldera-grid .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.caldera-grid .btn-default{color:#333;background-color:#fff;border-color:#ccc}.caldera-grid .btn-default.active,.caldera-grid .btn-default.focus,.caldera-grid .btn-default:active,.caldera-grid .btn-default:focus,.caldera-grid .btn-default:hover,.open>.dropdown-toggle.caldera-grid .btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.caldera-grid .btn-default.disabled,.caldera-grid .btn-default.disabled.active,.caldera-grid .btn-default.disabled.focus,.caldera-grid .btn-default.disabled:active,.caldera-grid .btn-default.disabled:focus,.caldera-grid .btn-default.disabled:hover,.caldera-grid .btn-default[disabled],.caldera-grid .btn-default[disabled].active,.caldera-grid .btn-default[disabled].focus,.caldera-grid .btn-default[disabled]:active,.caldera-grid .btn-default[disabled]:focus,.caldera-grid .btn-default[disabled]:hover,fieldset[disabled] .caldera-grid .btn-default,fieldset[disabled] .caldera-grid .btn-default.active,fieldset[disabled] .caldera-grid .btn-default.focus,fieldset[disabled] .caldera-grid .btn-default:active,fieldset[disabled] .caldera-grid .btn-default:focus,fieldset[disabled] .caldera-grid .btn-default:hover{background-color:#fff;border-color:#ccc}.caldera-grid .btn-default .badge{color:#fff;background-color:#333}.caldera-grid .btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.caldera-grid .btn-primary.active,.caldera-grid .btn-primary.focus,.caldera-grid .btn-primary:active,.caldera-grid .btn-primary:focus,.caldera-grid .btn-primary:hover,.open>.dropdown-toggle.caldera-grid .btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.caldera-grid .btn-primary.disabled,.caldera-grid .btn-primary.disabled.active,.caldera-grid .btn-primary.disabled.focus,.caldera-grid .btn-primary.disabled:active,.caldera-grid .btn-primary.disabled:focus,.caldera-grid .btn-primary.disabled:hover,.caldera-grid .btn-primary[disabled],.caldera-grid .btn-primary[disabled].active,.caldera-grid .btn-primary[disabled].focus,.caldera-grid .btn-primary[disabled]:active,.caldera-grid .btn-primary[disabled]:focus,.caldera-grid .btn-primary[disabled]:hover,fieldset[disabled] .caldera-grid .btn-primary,fieldset[disabled] .caldera-grid .btn-primary.active,fieldset[disabled] .caldera-grid .btn-primary.focus,fieldset[disabled] .caldera-grid .btn-primary:active,fieldset[disabled] .caldera-grid .btn-primary:focus,fieldset[disabled] .caldera-grid .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.caldera-grid .btn-primary .badge{color:#337ab7;background-color:#fff}.caldera-grid .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.caldera-grid .btn-success.active,.caldera-grid .btn-success.focus,.caldera-grid .btn-success:active,.caldera-grid .btn-success:focus,.caldera-grid .btn-success:hover,.open>.dropdown-toggle.caldera-grid .btn-success{color:#fff;background-color:#449d44;border-color:#398439}.caldera-grid .btn-success.disabled,.caldera-grid .btn-success.disabled.active,.caldera-grid .btn-success.disabled.focus,.caldera-grid .btn-success.disabled:active,.caldera-grid .btn-success.disabled:focus,.caldera-grid .btn-success.disabled:hover,.caldera-grid .btn-success[disabled],.caldera-grid .btn-success[disabled].active,.caldera-grid .btn-success[disabled].focus,.caldera-grid .btn-success[disabled]:active,.caldera-grid .btn-success[disabled]:focus,.caldera-grid .btn-success[disabled]:hover,fieldset[disabled] .caldera-grid .btn-success,fieldset[disabled] .caldera-grid .btn-success.active,fieldset[disabled] .caldera-grid .btn-success.focus,fieldset[disabled] .caldera-grid .btn-success:active,fieldset[disabled] .caldera-grid .btn-success:focus,fieldset[disabled] .caldera-grid .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.caldera-grid .btn-success .badge{color:#5cb85c;background-color:#fff}.caldera-grid .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.caldera-grid .btn-info.active,.caldera-grid .btn-info.focus,.caldera-grid .btn-info:active,.caldera-grid .btn-info:focus,.caldera-grid .btn-info:hover,.open>.dropdown-toggle.caldera-grid .btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.caldera-grid .btn-info.disabled,.caldera-grid .btn-info.disabled.active,.caldera-grid .btn-info.disabled.focus,.caldera-grid .btn-info.disabled:active,.caldera-grid .btn-info.disabled:focus,.caldera-grid .btn-info.disabled:hover,.caldera-grid .btn-info[disabled],.caldera-grid .btn-info[disabled].active,.caldera-grid .btn-info[disabled].focus,.caldera-grid .btn-info[disabled]:active,.caldera-grid .btn-info[disabled]:focus,.caldera-grid .btn-info[disabled]:hover,fieldset[disabled] .caldera-grid .btn-info,fieldset[disabled] .caldera-grid .btn-info.active,fieldset[disabled] .caldera-grid .btn-info.focus,fieldset[disabled] .caldera-grid .btn-info:active,fieldset[disabled] .caldera-grid .btn-info:focus,fieldset[disabled] .caldera-grid .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.caldera-grid .btn-info .badge{color:#5bc0de;background-color:#fff}.caldera-grid .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.caldera-grid .btn-warning.active,.caldera-grid .btn-warning.focus,.caldera-grid .btn-warning:active,.caldera-grid .btn-warning:focus,.caldera-grid .btn-warning:hover,.open>.dropdown-toggle.caldera-grid .btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.caldera-grid .btn-warning.disabled,.caldera-grid .btn-warning.disabled.active,.caldera-grid .btn-warning.disabled.focus,.caldera-grid .btn-warning.disabled:active,.caldera-grid .btn-warning.disabled:focus,.caldera-grid .btn-warning.disabled:hover,.caldera-grid .btn-warning[disabled],.caldera-grid .btn-warning[disabled].active,.caldera-grid .btn-warning[disabled].focus,.caldera-grid .btn-warning[disabled]:active,.caldera-grid .btn-warning[disabled]:focus,.caldera-grid .btn-warning[disabled]:hover,fieldset[disabled] .caldera-grid .btn-warning,fieldset[disabled] .caldera-grid .btn-warning.active,fieldset[disabled] .caldera-grid .btn-warning.focus,fieldset[disabled] .caldera-grid .btn-warning:active,fieldset[disabled] .caldera-grid .btn-warning:focus,fieldset[disabled] .caldera-grid .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.caldera-grid .btn-warning .badge{color:#f0ad4e;background-color:#fff}.caldera-grid .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.caldera-grid .btn-danger.active,.caldera-grid .btn-danger.focus,.caldera-grid .btn-danger:active,.caldera-grid .btn-danger:focus,.caldera-grid .btn-danger:hover,.open>.dropdown-toggle.caldera-grid .btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.caldera-grid .btn-danger.disabled,.caldera-grid .btn-danger.disabled.active,.caldera-grid .btn-danger.disabled.focus,.caldera-grid .btn-danger.disabled:active,.caldera-grid .btn-danger.disabled:focus,.caldera-grid .btn-danger.disabled:hover,.caldera-grid .btn-danger[disabled],.caldera-grid .btn-danger[disabled].active,.caldera-grid .btn-danger[disabled].focus,.caldera-grid .btn-danger[disabled]:active,.caldera-grid .btn-danger[disabled]:focus,.caldera-grid .btn-danger[disabled]:hover,fieldset[disabled] .caldera-grid .btn-danger,fieldset[disabled] .caldera-grid .btn-danger.active,fieldset[disabled] .caldera-grid .btn-danger.focus,fieldset[disabled] .caldera-grid .btn-danger:active,fieldset[disabled] .caldera-grid .btn-danger:focus,fieldset[disabled] .caldera-grid .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.caldera-grid .btn-danger .badge{color:#d9534f;background-color:#fff}.caldera-grid .btn-link{color:#337ab7;font-weight:400;border-radius:0}.caldera-grid .btn-link,.caldera-grid .btn-link.active,.caldera-grid .btn-link:active,.caldera-grid .btn-link[disabled],fieldset[disabled] .caldera-grid .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.caldera-grid .btn-link,.caldera-grid .btn-link:active,.caldera-grid .btn-link:focus,.caldera-grid .btn-link:hover{border-color:transparent}.caldera-grid .btn-link:focus,.caldera-grid .btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.caldera-grid .btn-link[disabled]:focus,.caldera-grid .btn-link[disabled]:hover,fieldset[disabled] .caldera-grid .btn-link:focus,fieldset[disabled] .caldera-grid .btn-link:hover{color:#777;text-decoration:none}.caldera-grid .btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.caldera-grid .btn-sm,.caldera-grid .btn-xs{font-size:12px;line-height:1.5;border-radius:1px}.caldera-grid .btn-sm{padding:5px 10px}.caldera-grid .btn-xs{padding:1px 5px}.caldera-grid .btn-block{display:block;width:100%}.caldera-grid .btn-block+.btn-block{margin-top:5px}.caldera-grid input[type=button].btn-block,.caldera-grid input[type=reset].btn-block,.caldera-grid input[type=submit].btn-block{width:100%}.caldera-grid textarea.form-control{padding-right:4px;height:auto}.caldera-grid .breadcrumb{padding:6px 12px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.caldera-grid .breadcrumb>li{display:inline-block;margin:0}.caldera-grid .breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.caldera-grid .breadcrumb>.active,.caldera-grid .breadcrumb>.active>a{color:#777}.breadcrumb>li.active.error>a,.breadcrumb>li.error>a{color:red}.caldera-grid .cf-credit-card{padding-left:42px;background-image:url(../images/credit-card.svg);background-repeat:no-repeat!important;background-position-x:4px!important;background-position-y:3px!important}.caldera-grid .screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}@font-face{font-family:cf-raty;src:url(fonts/cf-raty.eot?40481674);src:url(fonts/cf-raty.eot?40481674#iefix) format('embedded-opentype'),url(fonts/cf-raty.woff?40481674) format('woff'),url(fonts/cf-raty.ttf?40481674) format('truetype'),url(fonts/cf-raty.svg?40481674#cf-raty) format('svg');font-weight:400;font-style:normal}[class*=" raty-"]:before,[class^=raty-]:before{font-family:cf-raty;font-style:normal;font-weight:400;speak:none;font-size:2em;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em}.raty-heart-on:before{content:'\e800'}.raty-heart-off:before{content:'\e801'}.raty-star-on:before{content:'\e802'}.raty-star-off:before{content:'\e803'}.raty-circle-on:before{content:'\e804'}.raty-circle-off:before{content:'\e805'}.raty-dot-off:before{content:'\e806'}.raty-dot-on:before{content:'\e807'}.raty-face-off:before{content:'\e808'}.raty-face-on:before{content:'\e809'}.raty-cancel-off:before{content:'\e80a'}.raty-cancel-on:before{content:'\e80b'}.calculation-group{background:#FFF;box-shadow:0 1px 2px rgba(0,0,0,.05);padding:6px;margin:6px 0}.preview-color-selector{background:#F0F0F0;border:1px solid #E2E2E2;display:inline;margin-left:-1px;padding:3px 12px;box-shadow:0 0 0 2px #fff inset}.miniColors-trigger{border:1px solid #999;-mz-border-radius:0 1px 1px 0;-webkit-border-radius:0 1px 1px 0;display:inline-block;height:24px;margin:0 0 -8px -1px;width:30px}.cf-color-picker .input-group-btn:last-child>.btn,.cf-color-picker .input-group-btn:last-child>.btn-group,.cf-color-picker .input-group-btn>.btn+.btn{margin-left:-1px}.miniColors-selector{background:#FFF;border:1px solid #999;-moz-box-shadow:0 3px 0 -1px rgba(0,0,0,.05);-webkit-box-shadow:0 3px 0 -1px rgba(0,0,0,.05);box-shadow:0 3px 0 -1px rgba(0,0,0,.05);height:162px;padding:5px;position:absolute;width:187px;z-index:999999;margin-top:-1px}.miniColors-colors,.miniColors-hues{top:5px;height:150px;cursor:crosshair;position:absolute}.miniColors-selector.black{background:#000;border-color:#000}.miniColors-colors{left:5px;width:150px;background:url(minicolor-colors.png) right no-repeat}.miniColors-hues{left:160px;width:20px;background:url(minicolor-colors.png) left no-repeat}.miniColors-colorPicker{position:absolute;width:9px;height:9px;border:1px solid #fff;-moz-border-radius:11px;-webkit-border-radius:11px;border-radius:11px}.miniColors-colorPicker-inner{position:absolute;top:0;left:0;width:7px;height:7px;border:1px solid #000;-moz-border-radius:9px;-webkit-border-radius:9px;border-radius:9px}.miniColors-huePicker{position:absolute;left:-3px;width:24px;height:1px;border:1px solid #fff;border-radius:2px;background:#000}.cf-color-picker .form-control::-moz-placeholder{color:#999;opacity:1}.cf-color-picker .form-control:-ms-input-placeholder{color:#999}.cf-color-picker .form-control::-webkit-input-placeholder{color:#999}.cf-color-picker .form-control[disabled],.cf-color-picker .form-control[readonly],.cf-color-picker fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}.cf-color-picker .form-group{margin-bottom:15px}.cf-color-picker .input-group{position:relative;display:table;border-collapse:separate;max-width:120px}.cf-color-picker .input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.cf-color-picker .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.cf-color-picker .input-group-lg>.form-control,.cf-color-picker .input-group-lg>.input-group-addon,.cf-color-picker .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.cf-color-picker .input-group-sm>.form-control,.cf-color-picker .input-group-sm>.input-group-addon,.cf-color-picker .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.cf-color-picker .input-group .form-control,.cf-color-picker .input-group-addon,.cf-color-picker .input-group-btn{display:table-cell}.cf-color-picker .input-group .form-control:not(:first-child):not(:last-child),.cf-color-picker .input-group-addon:not(:first-child):not(:last-child),.cf-color-picker .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.cf-color-picker .input-group-addon,.cf-color-picker .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.cf-color-picker .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.cf-color-picker .text-hide,.table-striped .cfdatepicker table tr td,.table-striped .cfdatepicker table tr th{background-color:transparent}.cf-color-picker .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.cf-color-picker .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.cf-color-picker .input-group .form-control:first-child,.cf-color-picker .input-group-addon:first-child,.cf-color-picker .input-group-btn:first-child>.btn,.cf-color-picker .input-group-btn:first-child>.btn-group>.btn,.cf-color-picker .input-group-btn:first-child>.dropdown-toggle,.cf-color-picker .input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.cf-color-picker .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.cf-color-picker .input-group-addon:first-child{border-right:0}.cf-color-picker .input-group .form-control:last-child,.cf-color-picker .input-group-addon:last-child,.cf-color-picker .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.cf-color-picker .input-group-btn:first-child>.btn:not(:first-child),.cf-color-picker .input-group-btn:last-child>.btn,.cf-color-picker .input-group-btn:last-child>.btn-group>.btn,.cf-color-picker .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.cf-color-picker .input-group-addon:last-child{border-left:0}.cf-color-picker .input-group-btn{position:relative;font-size:0;white-space:nowrap}.cf-color-picker .input-group-btn>.btn{position:relative}.cf-color-picker .input-group-btn>.btn:active,.cf-color-picker .input-group-btn>.btn:focus,.cf-color-picker .input-group-btn>.btn:hover{z-index:2}.cf-color-picker .input-group-btn:first-child>.btn,.cf-color-picker .input-group-btn:first-child>.btn-group{margin-right:-1px}.cf-color-picker .clearfix:after,.cf-color-picker .clearfix:before,.cf-color-picker .form-horizontal .form-group:after,.cf-color-picker .form-horizontal .form-group:before{content:" ";display:table}.cf-color-picker .clearfix:after,.cf-color-picker .form-horizontal .form-group:after{clear:both}.cf-color-picker .center-block{display:block;margin-left:auto;margin-right:auto}.cf-color-picker .pull-right{float:right!important}.cf-color-picker .pull-left{float:left!important}.cf-color-picker .hide{display:none!important}.cf-color-picker .show{display:block!important}.cf-color-picker .invisible{visibility:hidden}.cf-color-picker .text-hide{font:0/0 a;color:transparent;text-shadow:none;border:0}.cf-color-picker .hidden{display:none!important;visibility:hidden!important}.cf-color-picker .affix{position:fixed}@-ms-viewport{width:device-width}.cf-color-picker .visible-lg,.cf-color-picker .visible-md,.cf-color-picker .visible-print,.cf-color-picker .visible-sm,.cf-color-picker .visible-xs{display:none!important}@media (max-width:767px){.cf-color-picker .visible-xs{display:block!important}.cf-color-picker table.visible-xs{display:table}.cf-color-picker tr.visible-xs{display:table-row!important}.cf-color-picker td.visible-xs,.cf-color-picker th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.cf-color-picker .visible-sm{display:block!important}.cf-color-picker table.visible-sm{display:table}.cf-color-picker tr.visible-sm{display:table-row!important}.cf-color-picker td.visible-sm,.cf-color-picker th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.cf-color-picker .visible-md{display:block!important}.cf-color-picker table.visible-md{display:table}.cf-color-picker tr.visible-md{display:table-row!important}.cf-color-picker td.visible-md,.cf-color-picker th.visible-md{display:table-cell!important}}@media (min-width:1200px){.cf-color-picker .visible-lg{display:block!important}.cf-color-picker table.visible-lg{display:table}.cf-color-picker tr.visible-lg{display:table-row!important}.cf-color-picker td.visible-lg,.cf-color-picker th.visible-lg{display:table-cell!important}.cf-color-picker .hidden-lg{display:none!important}}@media (max-width:767px){.cf-color-picker .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.cf-color-picker .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.cf-color-picker .hidden-md{display:none!important}}@media print{.cf-color-picker .visible-print{display:block!important}.cf-color-picker table.visible-print{display:table}.cf-color-picker tr.visible-print{display:table-row!important}.cf-color-picker td.visible-print,.cf-color-picker th.visible-print{display:table-cell!important}.cf-color-picker .hidden-print{display:none!important}}.cfdatepicker-dropdown:after,.cfdatepicker-dropdown:before{content:'';display:inline-block;border-top:0;position:absolute}.cfdatepicker{padding:4px;border-radius:4px;direction:ltr}.cfdatepicker-inline{width:220px}.cfdatepicker.cfdatepicker-rtl{direction:rtl}.cfdatepicker.cfdatepicker-rtl table tr td span{float:right}.cfdatepicker-dropdown{top:0;left:0}.cfdatepicker-dropdown:before{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2)}.cfdatepicker-dropdown:after{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff}.cfdatepicker-dropdown.cfdatepicker-orient-left:before{left:6px}.cfdatepicker-dropdown.cfdatepicker-orient-left:after{left:7px}.cfdatepicker-dropdown.cfdatepicker-orient-right:before{right:6px}.cfdatepicker-dropdown.cfdatepicker-orient-right:after{right:7px}.cfdatepicker-dropdown.cfdatepicker-orient-top:before{top:-7px}.cfdatepicker-dropdown.cfdatepicker-orient-top:after{top:-6px}.cfdatepicker-dropdown.cfdatepicker-orient-bottom:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.cfdatepicker-dropdown.cfdatepicker-orient-bottom:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.cfdatepicker>div{display:none}.cfdatepicker.days div.cfdatepicker-days,.cfdatepicker.months div.cfdatepicker-months,.cfdatepicker.years div.cfdatepicker-years{display:block}.cfdatepicker table{border:0;width:auto;margin:0;-webkit-touch-callout:none;-khtml-user-select:none;user-select:none}.cfdatepicker table tr td,.cfdatepicker table tr th{text-align:center;width:10px;height:10px;border-radius:4px;border:none}.cfdatepicker table tr td.day.focused,.cfdatepicker table tr td.day:hover{background:#eee;cursor:pointer}.cfdatepicker table tr td.new,.cfdatepicker table tr td.old{color:#999}.cfdatepicker table tr td.disabled,.cfdatepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.cfdatepicker table tr td.today,.cfdatepicker table tr td.today.disabled,.cfdatepicker table tr td.today.disabled:hover,.cfdatepicker table tr td.today:hover{color:#000;background-color:#ffdb99;border-color:#ffb733}.cfdatepicker table tr td.today.active,.cfdatepicker table tr td.today.disabled.active,.cfdatepicker table tr td.today.disabled:active,.cfdatepicker table tr td.today.disabled:focus,.cfdatepicker table tr td.today.disabled:hover,.cfdatepicker table tr td.today.disabled:hover.active,.cfdatepicker table tr td.today.disabled:hover:active,.cfdatepicker table tr td.today.disabled:hover:focus,.cfdatepicker table tr td.today.disabled:hover:hover,.cfdatepicker table tr td.today:active,.cfdatepicker table tr td.today:focus,.cfdatepicker table tr td.today:hover,.cfdatepicker table tr td.today:hover.active,.cfdatepicker table tr td.today:hover:active,.cfdatepicker table tr td.today:hover:focus,.cfdatepicker table tr td.today:hover:hover,.open .dropdown-toggle.cfdatepicker table tr td.today,.open .dropdown-toggle.cfdatepicker table tr td.today.disabled,.open .dropdown-toggle.cfdatepicker table tr td.today.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.today:hover{color:#000;background-color:#ffcd70;border-color:#f59e00}.cfdatepicker table tr td.today.active,.cfdatepicker table tr td.today.disabled.active,.cfdatepicker table tr td.today.disabled:active,.cfdatepicker table tr td.today.disabled:hover.active,.cfdatepicker table tr td.today.disabled:hover:active,.cfdatepicker table tr td.today:active,.cfdatepicker table tr td.today:hover.active,.cfdatepicker table tr td.today:hover:active,.open .dropdown-toggle.cfdatepicker table tr td.today,.open .dropdown-toggle.cfdatepicker table tr td.today.disabled,.open .dropdown-toggle.cfdatepicker table tr td.today.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.today:hover{background-image:none}.cfdatepicker table tr td.today.disabled,.cfdatepicker table tr td.today.disabled.active,.cfdatepicker table tr td.today.disabled.disabled,.cfdatepicker table tr td.today.disabled.disabled.active,.cfdatepicker table tr td.today.disabled.disabled:active,.cfdatepicker table tr td.today.disabled.disabled:focus,.cfdatepicker table tr td.today.disabled.disabled:hover,.cfdatepicker table tr td.today.disabled:active,.cfdatepicker table tr td.today.disabled:focus,.cfdatepicker table tr td.today.disabled:hover,.cfdatepicker table tr td.today.disabled:hover.disabled,.cfdatepicker table tr td.today.disabled:hover.disabled.active,.cfdatepicker table tr td.today.disabled:hover.disabled:active,.cfdatepicker table tr td.today.disabled:hover.disabled:focus,.cfdatepicker table tr td.today.disabled:hover.disabled:hover,.cfdatepicker table tr td.today.disabled:hover[disabled],.cfdatepicker table tr td.today.disabled:hover[disabled].active,.cfdatepicker table tr td.today.disabled:hover[disabled]:active,.cfdatepicker table tr td.today.disabled:hover[disabled]:focus,.cfdatepicker table tr td.today.disabled:hover[disabled]:hover,.cfdatepicker table tr td.today.disabled[disabled],.cfdatepicker table tr td.today.disabled[disabled].active,.cfdatepicker table tr td.today.disabled[disabled]:active,.cfdatepicker table tr td.today.disabled[disabled]:focus,.cfdatepicker table tr td.today.disabled[disabled]:hover,.cfdatepicker table tr td.today:hover.disabled,.cfdatepicker table tr td.today:hover.disabled.active,.cfdatepicker table tr td.today:hover.disabled:active,.cfdatepicker table tr td.today:hover.disabled:focus,.cfdatepicker table tr td.today:hover.disabled:hover,.cfdatepicker table tr td.today:hover[disabled],.cfdatepicker table tr td.today:hover[disabled].active,.cfdatepicker table tr td.today:hover[disabled]:active,.cfdatepicker table tr td.today:hover[disabled]:focus,.cfdatepicker table tr td.today:hover[disabled]:hover,.cfdatepicker table tr td.today[disabled],.cfdatepicker table tr td.today[disabled].active,.cfdatepicker table tr td.today[disabled]:active,.cfdatepicker table tr td.today[disabled]:focus,.cfdatepicker table tr td.today[disabled]:hover,fieldset[disabled] .cfdatepicker table tr td.today,fieldset[disabled] .cfdatepicker table tr td.today.active,fieldset[disabled] .cfdatepicker table tr td.today.disabled,fieldset[disabled] .cfdatepicker table tr td.today.disabled.active,fieldset[disabled] .cfdatepicker table tr td.today.disabled:active,fieldset[disabled] .cfdatepicker table tr td.today.disabled:focus,fieldset[disabled] .cfdatepicker table tr td.today.disabled:hover,fieldset[disabled] .cfdatepicker table tr td.today.disabled:hover.active,fieldset[disabled] .cfdatepicker table tr td.today.disabled:hover:active,fieldset[disabled] .cfdatepicker table tr td.today.disabled:hover:focus,fieldset[disabled] .cfdatepicker table tr td.today.disabled:hover:hover,fieldset[disabled] .cfdatepicker table tr td.today:active,fieldset[disabled] .cfdatepicker table tr td.today:focus,fieldset[disabled] .cfdatepicker table tr td.today:hover,fieldset[disabled] .cfdatepicker table tr td.today:hover.active,fieldset[disabled] .cfdatepicker table tr td.today:hover:active,fieldset[disabled] .cfdatepicker table tr td.today:hover:focus,fieldset[disabled] .cfdatepicker table tr td.today:hover:hover{background-color:#ffdb99;border-color:#ffb733}.cfdatepicker table tr td.today:hover:hover{color:#000}.cfdatepicker table tr td.today.active:hover{color:#fff}.cfdatepicker table tr td.range,.cfdatepicker table tr td.range.disabled,.cfdatepicker table tr td.range.disabled:hover,.cfdatepicker table tr td.range:hover{background:#eee;border-radius:0}.cfdatepicker table tr td.active.active,.cfdatepicker table tr td.active.disabled.active,.cfdatepicker table tr td.active.disabled:active,.cfdatepicker table tr td.active.disabled:hover.active,.cfdatepicker table tr td.active.disabled:hover:active,.cfdatepicker table tr td.active:active,.cfdatepicker table tr td.active:hover.active,.cfdatepicker table tr td.active:hover:active,.cfdatepicker table tr td.range.today.active,.cfdatepicker table tr td.range.today.disabled.active,.cfdatepicker table tr td.range.today.disabled:active,.cfdatepicker table tr td.range.today.disabled:hover.active,.cfdatepicker table tr td.range.today.disabled:hover:active,.cfdatepicker table tr td.range.today:active,.cfdatepicker table tr td.range.today:hover.active,.cfdatepicker table tr td.range.today:hover:active,.cfdatepicker table tr td.selected.active,.cfdatepicker table tr td.selected.disabled.active,.cfdatepicker table tr td.selected.disabled:active,.cfdatepicker table tr td.selected.disabled:hover.active,.cfdatepicker table tr td.selected.disabled:hover:active,.cfdatepicker table tr td.selected:active,.cfdatepicker table tr td.selected:hover.active,.cfdatepicker table tr td.selected:hover:active,.open .dropdown-toggle.cfdatepicker table tr td.active,.open .dropdown-toggle.cfdatepicker table tr td.active.disabled,.open .dropdown-toggle.cfdatepicker table tr td.active.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.active:hover,.open .dropdown-toggle.cfdatepicker table tr td.range.today,.open .dropdown-toggle.cfdatepicker table tr td.range.today.disabled,.open .dropdown-toggle.cfdatepicker table tr td.range.today.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.range.today:hover,.open .dropdown-toggle.cfdatepicker table tr td.selected,.open .dropdown-toggle.cfdatepicker table tr td.selected.disabled,.open .dropdown-toggle.cfdatepicker table tr td.selected.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.selected:hover{background-image:none}.cfdatepicker table tr td.range.today,.cfdatepicker table tr td.range.today.disabled,.cfdatepicker table tr td.range.today.disabled:hover,.cfdatepicker table tr td.range.today:hover{color:#000;background-color:#f7ca77;border-color:#f1a417;border-radius:0}.cfdatepicker table tr td.range.today.active,.cfdatepicker table tr td.range.today.disabled.active,.cfdatepicker table tr td.range.today.disabled:active,.cfdatepicker table tr td.range.today.disabled:focus,.cfdatepicker table tr td.range.today.disabled:hover,.cfdatepicker table tr td.range.today.disabled:hover.active,.cfdatepicker table tr td.range.today.disabled:hover:active,.cfdatepicker table tr td.range.today.disabled:hover:focus,.cfdatepicker table tr td.range.today.disabled:hover:hover,.cfdatepicker table tr td.range.today:active,.cfdatepicker table tr td.range.today:focus,.cfdatepicker table tr td.range.today:hover,.cfdatepicker table tr td.range.today:hover.active,.cfdatepicker table tr td.range.today:hover:active,.cfdatepicker table tr td.range.today:hover:focus,.cfdatepicker table tr td.range.today:hover:hover,.open .dropdown-toggle.cfdatepicker table tr td.range.today,.open .dropdown-toggle.cfdatepicker table tr td.range.today.disabled,.open .dropdown-toggle.cfdatepicker table tr td.range.today.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.range.today:hover{color:#000;background-color:#f4bb51;border-color:#bf800c}.cfdatepicker table tr td.range.today.disabled,.cfdatepicker table tr td.range.today.disabled.active,.cfdatepicker table tr td.range.today.disabled.disabled,.cfdatepicker table tr td.range.today.disabled.disabled.active,.cfdatepicker table tr td.range.today.disabled.disabled:active,.cfdatepicker table tr td.range.today.disabled.disabled:focus,.cfdatepicker table tr td.range.today.disabled.disabled:hover,.cfdatepicker table tr td.range.today.disabled:active,.cfdatepicker table tr td.range.today.disabled:focus,.cfdatepicker table tr td.range.today.disabled:hover,.cfdatepicker table tr td.range.today.disabled:hover.disabled,.cfdatepicker table tr td.range.today.disabled:hover.disabled.active,.cfdatepicker table tr td.range.today.disabled:hover.disabled:active,.cfdatepicker table tr td.range.today.disabled:hover.disabled:focus,.cfdatepicker table tr td.range.today.disabled:hover.disabled:hover,.cfdatepicker table tr td.range.today.disabled:hover[disabled],.cfdatepicker table tr td.range.today.disabled:hover[disabled].active,.cfdatepicker table tr td.range.today.disabled:hover[disabled]:active,.cfdatepicker table tr td.range.today.disabled:hover[disabled]:focus,.cfdatepicker table tr td.range.today.disabled:hover[disabled]:hover,.cfdatepicker table tr td.range.today.disabled[disabled],.cfdatepicker table tr td.range.today.disabled[disabled].active,.cfdatepicker table tr td.range.today.disabled[disabled]:active,.cfdatepicker table tr td.range.today.disabled[disabled]:focus,.cfdatepicker table tr td.range.today.disabled[disabled]:hover,.cfdatepicker table tr td.range.today:hover.disabled,.cfdatepicker table tr td.range.today:hover.disabled.active,.cfdatepicker table tr td.range.today:hover.disabled:active,.cfdatepicker table tr td.range.today:hover.disabled:focus,.cfdatepicker table tr td.range.today:hover.disabled:hover,.cfdatepicker table tr td.range.today:hover[disabled],.cfdatepicker table tr td.range.today:hover[disabled].active,.cfdatepicker table tr td.range.today:hover[disabled]:active,.cfdatepicker table tr td.range.today:hover[disabled]:focus,.cfdatepicker table tr td.range.today:hover[disabled]:hover,.cfdatepicker table tr td.range.today[disabled],.cfdatepicker table tr td.range.today[disabled].active,.cfdatepicker table tr td.range.today[disabled]:active,.cfdatepicker table tr td.range.today[disabled]:focus,.cfdatepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .cfdatepicker table tr td.range.today,fieldset[disabled] .cfdatepicker table tr td.range.today.active,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled.active,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:active,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:focus,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:hover,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:hover.active,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:hover:active,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:hover:focus,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:hover:hover,fieldset[disabled] .cfdatepicker table tr td.range.today:active,fieldset[disabled] .cfdatepicker table tr td.range.today:focus,fieldset[disabled] .cfdatepicker table tr td.range.today:hover,fieldset[disabled] .cfdatepicker table tr td.range.today:hover.active,fieldset[disabled] .cfdatepicker table tr td.range.today:hover:active,fieldset[disabled] .cfdatepicker table tr td.range.today:hover:focus,fieldset[disabled] .cfdatepicker table tr td.range.today:hover:hover{background-color:#f7ca77;border-color:#f1a417}.cfdatepicker table tr td.selected,.cfdatepicker table tr td.selected.disabled,.cfdatepicker table tr td.selected.disabled:hover,.cfdatepicker table tr td.selected:hover{color:#fff;background-color:#999;border-color:#555;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.cfdatepicker table tr td.selected.active,.cfdatepicker table tr td.selected.disabled.active,.cfdatepicker table tr td.selected.disabled:active,.cfdatepicker table tr td.selected.disabled:focus,.cfdatepicker table tr td.selected.disabled:hover,.cfdatepicker table tr td.selected.disabled:hover.active,.cfdatepicker table tr td.selected.disabled:hover:active,.cfdatepicker table tr td.selected.disabled:hover:focus,.cfdatepicker table tr td.selected.disabled:hover:hover,.cfdatepicker table tr td.selected:active,.cfdatepicker table tr td.selected:focus,.cfdatepicker table tr td.selected:hover,.cfdatepicker table tr td.selected:hover.active,.cfdatepicker table tr td.selected:hover:active,.cfdatepicker table tr td.selected:hover:focus,.cfdatepicker table tr td.selected:hover:hover,.open .dropdown-toggle.cfdatepicker table tr td.selected,.open .dropdown-toggle.cfdatepicker table tr td.selected.disabled,.open .dropdown-toggle.cfdatepicker table tr td.selected.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.selected:hover{color:#fff;background-color:#858585;border-color:#373737}.cfdatepicker table tr td.selected.disabled,.cfdatepicker table tr td.selected.disabled.active,.cfdatepicker table tr td.selected.disabled.disabled,.cfdatepicker table tr td.selected.disabled.disabled.active,.cfdatepicker table tr td.selected.disabled.disabled:active,.cfdatepicker table tr td.selected.disabled.disabled:focus,.cfdatepicker table tr td.selected.disabled.disabled:hover,.cfdatepicker table tr td.selected.disabled:active,.cfdatepicker table tr td.selected.disabled:focus,.cfdatepicker table tr td.selected.disabled:hover,.cfdatepicker table tr td.selected.disabled:hover.disabled,.cfdatepicker table tr td.selected.disabled:hover.disabled.active,.cfdatepicker table tr td.selected.disabled:hover.disabled:active,.cfdatepicker table tr td.selected.disabled:hover.disabled:focus,.cfdatepicker table tr td.selected.disabled:hover.disabled:hover,.cfdatepicker table tr td.selected.disabled:hover[disabled],.cfdatepicker table tr td.selected.disabled:hover[disabled].active,.cfdatepicker table tr td.selected.disabled:hover[disabled]:active,.cfdatepicker table tr td.selected.disabled:hover[disabled]:focus,.cfdatepicker table tr td.selected.disabled:hover[disabled]:hover,.cfdatepicker table tr td.selected.disabled[disabled],.cfdatepicker table tr td.selected.disabled[disabled].active,.cfdatepicker table tr td.selected.disabled[disabled]:active,.cfdatepicker table tr td.selected.disabled[disabled]:focus,.cfdatepicker table tr td.selected.disabled[disabled]:hover,.cfdatepicker table tr td.selected:hover.disabled,.cfdatepicker table tr td.selected:hover.disabled.active,.cfdatepicker table tr td.selected:hover.disabled:active,.cfdatepicker table tr td.selected:hover.disabled:focus,.cfdatepicker table tr td.selected:hover.disabled:hover,.cfdatepicker table tr td.selected:hover[disabled],.cfdatepicker table tr td.selected:hover[disabled].active,.cfdatepicker table tr td.selected:hover[disabled]:active,.cfdatepicker table tr td.selected:hover[disabled]:focus,.cfdatepicker table tr td.selected:hover[disabled]:hover,.cfdatepicker table tr td.selected[disabled],.cfdatepicker table tr td.selected[disabled].active,.cfdatepicker table tr td.selected[disabled]:active,.cfdatepicker table tr td.selected[disabled]:focus,.cfdatepicker table tr td.selected[disabled]:hover,fieldset[disabled] .cfdatepicker table tr td.selected,fieldset[disabled] .cfdatepicker table tr td.selected.active,fieldset[disabled] .cfdatepicker table tr td.selected.disabled,fieldset[disabled] .cfdatepicker table tr td.selected.disabled.active,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:active,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:focus,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:hover,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:hover.active,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:hover:active,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:hover:focus,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:hover:hover,fieldset[disabled] .cfdatepicker table tr td.selected:active,fieldset[disabled] .cfdatepicker table tr td.selected:focus,fieldset[disabled] .cfdatepicker table tr td.selected:hover,fieldset[disabled] .cfdatepicker table tr td.selected:hover.active,fieldset[disabled] .cfdatepicker table tr td.selected:hover:active,fieldset[disabled] .cfdatepicker table tr td.selected:hover:focus,fieldset[disabled] .cfdatepicker table tr td.selected:hover:hover{background-color:#999;border-color:#555}.cfdatepicker table tr td.active,.cfdatepicker table tr td.active.disabled,.cfdatepicker table tr td.active.disabled:hover,.cfdatepicker table tr td.active:hover{color:#fff;background-color:#428bca;border-color:#357ebd;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.cfdatepicker table tr td.active.active,.cfdatepicker table tr td.active.disabled.active,.cfdatepicker table tr td.active.disabled:active,.cfdatepicker table tr td.active.disabled:focus,.cfdatepicker table tr td.active.disabled:hover,.cfdatepicker table tr td.active.disabled:hover.active,.cfdatepicker table tr td.active.disabled:hover:active,.cfdatepicker table tr td.active.disabled:hover:focus,.cfdatepicker table tr td.active.disabled:hover:hover,.cfdatepicker table tr td.active:active,.cfdatepicker table tr td.active:focus,.cfdatepicker table tr td.active:hover,.cfdatepicker table tr td.active:hover.active,.cfdatepicker table tr td.active:hover:active,.cfdatepicker table tr td.active:hover:focus,.cfdatepicker table tr td.active:hover:hover,.open .dropdown-toggle.cfdatepicker table tr td.active,.open .dropdown-toggle.cfdatepicker table tr td.active.disabled,.open .dropdown-toggle.cfdatepicker table tr td.active.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.active:hover{color:#fff;background-color:#3276b1;border-color:#285e8e}.cfdatepicker table tr td.active.disabled,.cfdatepicker table tr td.active.disabled.active,.cfdatepicker table tr td.active.disabled.disabled,.cfdatepicker table tr td.active.disabled.disabled.active,.cfdatepicker table tr td.active.disabled.disabled:active,.cfdatepicker table tr td.active.disabled.disabled:focus,.cfdatepicker table tr td.active.disabled.disabled:hover,.cfdatepicker table tr td.active.disabled:active,.cfdatepicker table tr td.active.disabled:focus,.cfdatepicker table tr td.active.disabled:hover,.cfdatepicker table tr td.active.disabled:hover.disabled,.cfdatepicker table tr td.active.disabled:hover.disabled.active,.cfdatepicker table tr td.active.disabled:hover.disabled:active,.cfdatepicker table tr td.active.disabled:hover.disabled:focus,.cfdatepicker table tr td.active.disabled:hover.disabled:hover,.cfdatepicker table tr td.active.disabled:hover[disabled],.cfdatepicker table tr td.active.disabled:hover[disabled].active,.cfdatepicker table tr td.active.disabled:hover[disabled]:active,.cfdatepicker table tr td.active.disabled:hover[disabled]:focus,.cfdatepicker table tr td.active.disabled:hover[disabled]:hover,.cfdatepicker table tr td.active.disabled[disabled],.cfdatepicker table tr td.active.disabled[disabled].active,.cfdatepicker table tr td.active.disabled[disabled]:active,.cfdatepicker table tr td.active.disabled[disabled]:focus,.cfdatepicker table tr td.active.disabled[disabled]:hover,.cfdatepicker table tr td.active:hover.disabled,.cfdatepicker table tr td.active:hover.disabled.active,.cfdatepicker table tr td.active:hover.disabled:active,.cfdatepicker table tr td.active:hover.disabled:focus,.cfdatepicker table tr td.active:hover.disabled:hover,.cfdatepicker table tr td.active:hover[disabled],.cfdatepicker table tr td.active:hover[disabled].active,.cfdatepicker table tr td.active:hover[disabled]:active,.cfdatepicker table tr td.active:hover[disabled]:focus,.cfdatepicker table tr td.active:hover[disabled]:hover,.cfdatepicker table tr td.active[disabled],.cfdatepicker table tr td.active[disabled].active,.cfdatepicker table tr td.active[disabled]:active,.cfdatepicker table tr td.active[disabled]:focus,.cfdatepicker table tr td.active[disabled]:hover,fieldset[disabled] .cfdatepicker table tr td.active,fieldset[disabled] .cfdatepicker table tr td.active.active,fieldset[disabled] .cfdatepicker table tr td.active.disabled,fieldset[disabled] .cfdatepicker table tr td.active.disabled.active,fieldset[disabled] .cfdatepicker table tr td.active.disabled:active,fieldset[disabled] .cfdatepicker table tr td.active.disabled:focus,fieldset[disabled] .cfdatepicker table tr td.active.disabled:hover,fieldset[disabled] .cfdatepicker table tr td.active.disabled:hover.active,fieldset[disabled] .cfdatepicker table tr td.active.disabled:hover:active,fieldset[disabled] .cfdatepicker table tr td.active.disabled:hover:focus,fieldset[disabled] .cfdatepicker table tr td.active.disabled:hover:hover,fieldset[disabled] .cfdatepicker table tr td.active:active,fieldset[disabled] .cfdatepicker table tr td.active:focus,fieldset[disabled] .cfdatepicker table tr td.active:hover,fieldset[disabled] .cfdatepicker table tr td.active:hover.active,fieldset[disabled] .cfdatepicker table tr td.active:hover:active,fieldset[disabled] .cfdatepicker table tr td.active:hover:focus,fieldset[disabled] .cfdatepicker table tr td.active:hover:hover{background-color:#428bca;border-color:#357ebd}.cfdatepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;border-radius:4px}.cfdatepicker table tr td span:hover{background:#eee}.cfdatepicker table tr td span.disabled,.cfdatepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.cfdatepicker table tr td span.active,.cfdatepicker table tr td span.active.disabled,.cfdatepicker table tr td span.active.disabled:hover,.cfdatepicker table tr td span.active:hover{color:#fff;background-color:#428bca;border-color:#357ebd;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.cfdatepicker table tr td span.active.active,.cfdatepicker table tr td span.active.disabled.active,.cfdatepicker table tr td span.active.disabled:active,.cfdatepicker table tr td span.active.disabled:focus,.cfdatepicker table tr td span.active.disabled:hover,.cfdatepicker table tr td span.active.disabled:hover.active,.cfdatepicker table tr td span.active.disabled:hover:active,.cfdatepicker table tr td span.active.disabled:hover:focus,.cfdatepicker table tr td span.active.disabled:hover:hover,.cfdatepicker table tr td span.active:active,.cfdatepicker table tr td span.active:focus,.cfdatepicker table tr td span.active:hover,.cfdatepicker table tr td span.active:hover.active,.cfdatepicker table tr td span.active:hover:active,.cfdatepicker table tr td span.active:hover:focus,.cfdatepicker table tr td span.active:hover:hover,.open .dropdown-toggle.cfdatepicker table tr td span.active,.open .dropdown-toggle.cfdatepicker table tr td span.active.disabled,.open .dropdown-toggle.cfdatepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td span.active:hover{color:#fff;background-color:#3276b1;border-color:#285e8e}.cfdatepicker table tr td span.active.active,.cfdatepicker table tr td span.active.disabled.active,.cfdatepicker table tr td span.active.disabled:active,.cfdatepicker table tr td span.active.disabled:hover.active,.cfdatepicker table tr td span.active.disabled:hover:active,.cfdatepicker table tr td span.active:active,.cfdatepicker table tr td span.active:hover.active,.cfdatepicker table tr td span.active:hover:active,.open .dropdown-toggle.cfdatepicker table tr td span.active,.open .dropdown-toggle.cfdatepicker table tr td span.active.disabled,.open .dropdown-toggle.cfdatepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td span.active:hover{background-image:none}.cfdatepicker table tr td span.active.disabled,.cfdatepicker table tr td span.active.disabled.active,.cfdatepicker table tr td span.active.disabled.disabled,.cfdatepicker table tr td span.active.disabled.disabled.active,.cfdatepicker table tr td span.active.disabled.disabled:active,.cfdatepicker table tr td span.active.disabled.disabled:focus,.cfdatepicker table tr td span.active.disabled.disabled:hover,.cfdatepicker table tr td span.active.disabled:active,.cfdatepicker table tr td span.active.disabled:focus,.cfdatepicker table tr td span.active.disabled:hover,.cfdatepicker table tr td span.active.disabled:hover.disabled,.cfdatepicker table tr td span.active.disabled:hover.disabled.active,.cfdatepicker table tr td span.active.disabled:hover.disabled:active,.cfdatepicker table tr td span.active.disabled:hover.disabled:focus,.cfdatepicker table tr td span.active.disabled:hover.disabled:hover,.cfdatepicker table tr td span.active.disabled:hover[disabled],.cfdatepicker table tr td span.active.disabled:hover[disabled].active,.cfdatepicker table tr td span.active.disabled:hover[disabled]:active,.cfdatepicker table tr td span.active.disabled:hover[disabled]:focus,.cfdatepicker table tr td span.active.disabled:hover[disabled]:hover,.cfdatepicker table tr td span.active.disabled[disabled],.cfdatepicker table tr td span.active.disabled[disabled].active,.cfdatepicker table tr td span.active.disabled[disabled]:active,.cfdatepicker table tr td span.active.disabled[disabled]:focus,.cfdatepicker table tr td span.active.disabled[disabled]:hover,.cfdatepicker table tr td span.active:hover.disabled,.cfdatepicker table tr td span.active:hover.disabled.active,.cfdatepicker table tr td span.active:hover.disabled:active,.cfdatepicker table tr td span.active:hover.disabled:focus,.cfdatepicker table tr td span.active:hover.disabled:hover,.cfdatepicker table tr td span.active:hover[disabled],.cfdatepicker table tr td span.active:hover[disabled].active,.cfdatepicker table tr td span.active:hover[disabled]:active,.cfdatepicker table tr td span.active:hover[disabled]:focus,.cfdatepicker table tr td span.active:hover[disabled]:hover,.cfdatepicker table tr td span.active[disabled],.cfdatepicker table tr td span.active[disabled].active,.cfdatepicker table tr td span.active[disabled]:active,.cfdatepicker table tr td span.active[disabled]:focus,.cfdatepicker table tr td span.active[disabled]:hover,fieldset[disabled] .cfdatepicker table tr td span.active,fieldset[disabled] .cfdatepicker table tr td span.active.active,fieldset[disabled] .cfdatepicker table tr td span.active.disabled,fieldset[disabled] .cfdatepicker table tr td span.active.disabled.active,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:active,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:focus,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:hover,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:hover.active,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:hover:active,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .cfdatepicker table tr td span.active:active,fieldset[disabled] .cfdatepicker table tr td span.active:focus,fieldset[disabled] .cfdatepicker table tr td span.active:hover,fieldset[disabled] .cfdatepicker table tr td span.active:hover.active,fieldset[disabled] .cfdatepicker table tr td span.active:hover:active,fieldset[disabled] .cfdatepicker table tr td span.active:hover:focus,fieldset[disabled] .cfdatepicker table tr td span.active:hover:hover{background-color:#428bca;border-color:#357ebd}.cfdatepicker table tr td span.new,.cfdatepicker table tr td span.old{color:#999}.cfdatepicker th.cfdatepicker-switch{width:145px}.cfdatepicker tfoot tr th,.cfdatepicker thead tr:first-child th{cursor:pointer}.cfdatepicker tfoot tr th:hover,.cfdatepicker thead tr:first-child th:hover{background:#eee}.cfdatepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.cfdatepicker thead tr:first-child th.cw{cursor:default;background-color:transparent}.input-group.date .input-group-addon i{cursor:pointer;width:16px;height:16px}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{width:auto;min-width:16px;padding:4px 5px;font-weight:400;line-height:1.42857143;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:solid #ccc;border-width:1px 0;margin-left:-5px;margin-right:-5px}.cfdatepicker.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.42857143}.cfdatepicker.dropdown-menu td,.cfdatepicker.dropdown-menu th{padding:4px 5px}.image-thumb{margin-left:63px;padding:6px 0 6px 6px}.image-picker-content.image-thumb-lrg{margin-bottom:6px}.image-picker-side-bar{float:left;margin-left:-68px;width:62px;max-width:100%}.image-thumb-lrg .image-picker-side-bar{background:#F6F6F6;border:1px solid #DFDFDF;float:none;margin:0 0 6px;padding:6px 6px 2px;text-align:center;width:auto}.image-picker-side-bar>img{border:1px solid #DFDFDF;width:62px}.image-thumb-lrg .image-picker-side-bar>img{-moz-box-sizing:border-box;box-sizing:border-box;max-width:100%;text-align:center;width:auto}.image-thumb .image-picker-main-content{margin-right:6px}.button.image-picker-button{margin:7px 0 0;width:110px;display:inline-block}.button.button-primary.image-picker-button{float:right;margin-left:6px;width:80px}.image-picker-main-content select{width:100%}.image-picker-sizer:disabled{opacity:.7;box-shadow:none;color:#A1A1A1}.button-primary.image-picker-button.image-picker-button-solo,.button.image-picker-button.image-picker-button-solo{width:170px;margin-top:0}.button-primary.image-picker-button.image-picker-button-solo{margin-top:7px;margin-left:0;float:none}.image-thumb-lrg .button.image-picker-button.cu-image-picker.image-picker-button-solo{width:120px}.image-thumb-lrg .button.button-primary.image-picker-button.cu-image-remover.image-picker-button-solo{float:right;margin:0 0 0 6px;width:auto}.cf-toggle-switch .btn-group>.btn-group,.cf-toggle-switch .btn-toolbar .btn-group,.cf-toggle-switch .btn-toolbar .input-group{float:left}.image-thumb-lrg .button.button-primary.image-picker-button.cu-image-remover{width:45%}input.cu-image-picker-file-select[type=file]{display:none}.rangeslider,.rangeslider__fill{background:#e6e6e6;display:block;height:8px;width:100%;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}.rangeslider__handle,.toggle_option_row input{display:inline-block}.rangeslider{position:relative}.rangeslider--disabled{filter:alpha(Opacity=40);opacity:.4}.rangeslider__fill{background:#0f0;position:absolute;top:0}.rangeslider__handle{background:#fff;border:1px solid #ccc;cursor:pointer;width:18px;height:18px;position:absolute;top:-5px;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%}input[type=range]:focus+.rangeslider .rangeslider__handle{-webkit-box-shadow:0 0 3px rgba(100,100,100,.9);-moz-box-shadow:0 0 3px rgba(100,100,100,.9);box-shadow:0 0 3px rgba(100,100,100,.9)}.recaptchatable #recaptcha_response_field{height:21px!important}.toggle_option_row{margin:4px 0}.toggle_option_row .dashicons-sort{cursor:move}.toggle_option_row .toggle_label_field,.toggle_option_row .toggle_value_field{width:136px;line-height:20px}.toggle_option_preview .button{border-radius:0;margin-right:-5px}.toggle_option_preview .button:first-child{border-radius:3px 0 0 3px}.toggle_option_preview .button:last-child{border-radius:0 3px 3px 0}.toggle_option_preview.toggle_vertical .button{width:100%}.toggle_option_preview.toggle_vertical .button:first-child{border-radius:3px 3px 0 0}.toggle_option_preview.toggle_vertical .button:last-child{border-radius:0 0 3px 3px}.cf-toggle-switch html{font-family:sans-serif}.cf-toggle-switch body{margin:0}.cf-toggle-switch article,.cf-toggle-switch aside,.cf-toggle-switch details,.cf-toggle-switch figcaption,.cf-toggle-switch figure,.cf-toggle-switch footer,.cf-toggle-switch header,.cf-toggle-switch hgroup,.cf-toggle-switch main,.cf-toggle-switch nav,.cf-toggle-switch section,.cf-toggle-switch summary{display:block}.cf-toggle-switch audio,.cf-toggle-switch canvas,.cf-toggle-switch progress,.cf-toggle-switch video{display:inline-block;vertical-align:baseline}.cf-toggle-switch audio:not([controls]){display:none;height:0}.cf-toggle-switch [hidden],.cf-toggle-switch template{display:none}.cf-toggle-switch a{background:0 0}.cf-toggle-switch a:active,.cf-toggle-switch a:hover{outline:0}.cf-toggle-switch abbr[title]{border-bottom:1px dotted}.cf-toggle-switch b,.cf-toggle-switch strong{font-weight:700}.cf-toggle-switch dfn{font-style:italic}.cf-toggle-switch h1{font-size:2em;margin:.67em 0}.cf-toggle-switch mark{background:#ff0;color:#000}.cf-toggle-switch .btn,.cf-toggle-switch .btn-danger.active,.cf-toggle-switch .btn-danger:active,.cf-toggle-switch .btn-default.active,.cf-toggle-switch .btn-default:active,.cf-toggle-switch .btn-info.active,.cf-toggle-switch .btn-info:active,.cf-toggle-switch .btn-primary.active,.cf-toggle-switch .btn-primary:active,.cf-toggle-switch .btn-success.active,.cf-toggle-switch .btn-success:active,.cf-toggle-switch .btn-warning.active,.cf-toggle-switch .btn-warning:active,.cf-toggle-switch .open .dropdown-toggle.btn-danger,.cf-toggle-switch .open .dropdown-toggle.btn-default,.cf-toggle-switch .open .dropdown-toggle.btn-info,.cf-toggle-switch .open .dropdown-toggle.btn-primary,.cf-toggle-switch .open .dropdown-toggle.btn-success,.cf-toggle-switch .open .dropdown-toggle.btn-warning{background-image:none}.cf-toggle-switch small{font-size:80%}.cf-toggle-switch sub,.cf-toggle-switch sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.cf-toggle-switch sup{top:-.5em}.cf-toggle-switch sub{bottom:-.25em}.cf-toggle-switch img{border:0}.cf-toggle-switch figure{margin:1em 40px}.cf-toggle-switch hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.cf-toggle-switch pre{overflow:auto}.cf-toggle-switch code,.cf-toggle-switch kbd,.cf-toggle-switch pre,.cf-toggle-switch samp{font-family:monospace,monospace;font-size:1em}.cf-toggle-switch button,.cf-toggle-switch input,.cf-toggle-switch optgroup,.cf-toggle-switch select,.cf-toggle-switch textarea{color:inherit;font:inherit;margin:0}.cf-toggle-switch button{overflow:visible}.cf-toggle-switch button,.cf-toggle-switch html input[type=button],.cf-toggle-switch input[type=reset],.cf-toggle-switch input[type=submit]{-webkit-appearance:button;cursor:pointer}.cf-toggle-switch button[disabled],.cf-toggle-switch html input[disabled]{cursor:default}.cf-toggle-switch button::-moz-focus-inner,.cf-toggle-switch input::-moz-focus-inner{border:0;padding:0}.cf-toggle-switch input{line-height:normal}.cf-toggle-switch input[type=checkbox],.cf-toggle-switch input[type=radio]{box-sizing:border-box;padding:0}.cf-toggle-switch input[type=number]::-webkit-inner-spin-button,.cf-toggle-switch input[type=number]::-webkit-outer-spin-button{height:auto}.cf-toggle-switch input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.cf-toggle-switch input[type=search]::-webkit-search-cancel-button,.cf-toggle-switch input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.cf-toggle-switch fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}.cf-toggle-switch legend{border:0;padding:0}.cf-toggle-switch textarea{overflow:auto}.cf-toggle-switch optgroup{font-weight:700}.cf-toggle-switch table{border-collapse:collapse;border-spacing:0}.cf-toggle-switch td,.cf-toggle-switch th{padding:0}.cf-toggle-switch .btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cf-toggle-switch .btn.active:focus,.cf-toggle-switch .btn:active:focus,.cf-toggle-switch .btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.cf-toggle-switch .btn-group .dropdown-toggle:active,.cf-toggle-switch .btn-group-vertical>.btn:focus,.cf-toggle-switch .btn-group.open .dropdown-toggle,.cf-toggle-switch .btn-group>.btn:focus{outline:0}.cf-toggle-switch .btn:focus,.cf-toggle-switch .btn:hover{color:#333;text-decoration:none}.cf-toggle-switch .btn.active,.cf-toggle-switch .btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.cf-toggle-switch .btn.disabled,.cf-toggle-switch .btn[disabled],.cf-toggle-switch fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.cf-toggle-switch .btn-default{color:#333;background-color:#fff;border-color:#ccc}.cf-toggle-switch .btn-default.active,.cf-toggle-switch .btn-default:active,.cf-toggle-switch .btn-default:focus,.cf-toggle-switch .btn-default:hover,.cf-toggle-switch .open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.cf-toggle-switch .btn-default.disabled,.cf-toggle-switch .btn-default.disabled.active,.cf-toggle-switch .btn-default.disabled:active,.cf-toggle-switch .btn-default.disabled:focus,.cf-toggle-switch .btn-default.disabled:hover,.cf-toggle-switch .btn-default[disabled],.cf-toggle-switch .btn-default[disabled].active,.cf-toggle-switch .btn-default[disabled]:active,.cf-toggle-switch .btn-default[disabled]:focus,.cf-toggle-switch .btn-default[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-default,.cf-toggle-switch fieldset[disabled] .btn-default.active,.cf-toggle-switch fieldset[disabled] .btn-default:active,.cf-toggle-switch fieldset[disabled] .btn-default:focus,.cf-toggle-switch fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.cf-toggle-switch .btn-default .badge{color:#fff;background-color:#333}.cf-toggle-switch .btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.cf-toggle-switch .btn-primary.active,.cf-toggle-switch .btn-primary:active,.cf-toggle-switch .btn-primary:focus,.cf-toggle-switch .btn-primary:hover,.cf-toggle-switch .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.cf-toggle-switch .btn-primary.disabled,.cf-toggle-switch .btn-primary.disabled.active,.cf-toggle-switch .btn-primary.disabled:active,.cf-toggle-switch .btn-primary.disabled:focus,.cf-toggle-switch .btn-primary.disabled:hover,.cf-toggle-switch .btn-primary[disabled],.cf-toggle-switch .btn-primary[disabled].active,.cf-toggle-switch .btn-primary[disabled]:active,.cf-toggle-switch .btn-primary[disabled]:focus,.cf-toggle-switch .btn-primary[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-primary,.cf-toggle-switch fieldset[disabled] .btn-primary.active,.cf-toggle-switch fieldset[disabled] .btn-primary:active,.cf-toggle-switch fieldset[disabled] .btn-primary:focus,.cf-toggle-switch fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.cf-toggle-switch .btn-primary .badge{color:#428bca;background-color:#fff}.cf-toggle-switch .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.cf-toggle-switch .btn-success.active,.cf-toggle-switch .btn-success:active,.cf-toggle-switch .btn-success:focus,.cf-toggle-switch .btn-success:hover,.cf-toggle-switch .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.cf-toggle-switch .btn-success.disabled,.cf-toggle-switch .btn-success.disabled.active,.cf-toggle-switch .btn-success.disabled:active,.cf-toggle-switch .btn-success.disabled:focus,.cf-toggle-switch .btn-success.disabled:hover,.cf-toggle-switch .btn-success[disabled],.cf-toggle-switch .btn-success[disabled].active,.cf-toggle-switch .btn-success[disabled]:active,.cf-toggle-switch .btn-success[disabled]:focus,.cf-toggle-switch .btn-success[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-success,.cf-toggle-switch fieldset[disabled] .btn-success.active,.cf-toggle-switch fieldset[disabled] .btn-success:active,.cf-toggle-switch fieldset[disabled] .btn-success:focus,.cf-toggle-switch fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.cf-toggle-switch .btn-success .badge{color:#5cb85c;background-color:#fff}.cf-toggle-switch .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.cf-toggle-switch .btn-info.active,.cf-toggle-switch .btn-info:active,.cf-toggle-switch .btn-info:focus,.cf-toggle-switch .btn-info:hover,.cf-toggle-switch .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.cf-toggle-switch .btn-info.disabled,.cf-toggle-switch .btn-info.disabled.active,.cf-toggle-switch .btn-info.disabled:active,.cf-toggle-switch .btn-info.disabled:focus,.cf-toggle-switch .btn-info.disabled:hover,.cf-toggle-switch .btn-info[disabled],.cf-toggle-switch .btn-info[disabled].active,.cf-toggle-switch .btn-info[disabled]:active,.cf-toggle-switch .btn-info[disabled]:focus,.cf-toggle-switch .btn-info[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-info,.cf-toggle-switch fieldset[disabled] .btn-info.active,.cf-toggle-switch fieldset[disabled] .btn-info:active,.cf-toggle-switch fieldset[disabled] .btn-info:focus,.cf-toggle-switch fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.cf-toggle-switch .btn-info .badge{color:#5bc0de;background-color:#fff}.cf-toggle-switch .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.cf-toggle-switch .btn-warning.active,.cf-toggle-switch .btn-warning:active,.cf-toggle-switch .btn-warning:focus,.cf-toggle-switch .btn-warning:hover,.cf-toggle-switch .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.cf-toggle-switch .btn-warning.disabled,.cf-toggle-switch .btn-warning.disabled.active,.cf-toggle-switch .btn-warning.disabled:active,.cf-toggle-switch .btn-warning.disabled:focus,.cf-toggle-switch .btn-warning.disabled:hover,.cf-toggle-switch .btn-warning[disabled],.cf-toggle-switch .btn-warning[disabled].active,.cf-toggle-switch .btn-warning[disabled]:active,.cf-toggle-switch .btn-warning[disabled]:focus,.cf-toggle-switch .btn-warning[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-warning,.cf-toggle-switch fieldset[disabled] .btn-warning.active,.cf-toggle-switch fieldset[disabled] .btn-warning:active,.cf-toggle-switch fieldset[disabled] .btn-warning:focus,.cf-toggle-switch fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.cf-toggle-switch .btn-warning .badge{color:#f0ad4e;background-color:#fff}.cf-toggle-switch .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.cf-toggle-switch .btn-danger.active,.cf-toggle-switch .btn-danger:active,.cf-toggle-switch .btn-danger:focus,.cf-toggle-switch .btn-danger:hover,.cf-toggle-switch .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.cf-toggle-switch .btn-danger.disabled,.cf-toggle-switch .btn-danger.disabled.active,.cf-toggle-switch .btn-danger.disabled:active,.cf-toggle-switch .btn-danger.disabled:focus,.cf-toggle-switch .btn-danger.disabled:hover,.cf-toggle-switch .btn-danger[disabled],.cf-toggle-switch .btn-danger[disabled].active,.cf-toggle-switch .btn-danger[disabled]:active,.cf-toggle-switch .btn-danger[disabled]:focus,.cf-toggle-switch .btn-danger[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-danger,.cf-toggle-switch fieldset[disabled] .btn-danger.active,.cf-toggle-switch fieldset[disabled] .btn-danger:active,.cf-toggle-switch fieldset[disabled] .btn-danger:focus,.cf-toggle-switch fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.cf-toggle-switch .btn-danger .badge{color:#d9534f;background-color:#fff}.cf-toggle-switch .btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.cf-toggle-switch .btn-link,.cf-toggle-switch .btn-link:active,.cf-toggle-switch .btn-link[disabled],.cf-toggle-switch fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.cf-toggle-switch .btn-link,.cf-toggle-switch .btn-link:active,.cf-toggle-switch .btn-link:focus,.cf-toggle-switch .btn-link:hover{border-color:transparent}.cf-toggle-switch .btn-link:focus,.cf-toggle-switch .btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.cf-toggle-switch .btn-link[disabled]:focus,.cf-toggle-switch .btn-link[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-link:focus,.cf-toggle-switch fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.cf-toggle-switch .btn-group-lg>.btn,.cf-toggle-switch .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.cf-toggle-switch .btn-group-sm>.btn,.cf-toggle-switch .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.cf-toggle-switch .btn-group-xs>.btn,.cf-toggle-switch .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.cf-toggle-switch .btn-group-vertical>.btn:not(:first-child):not(:last-child),.cf-toggle-switch .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.cf-toggle-switch .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.cf-toggle-switch .btn-block{display:block;width:100%;padding-left:0;padding-right:0}.cf-toggle-switch .btn-block+.btn-block{margin-top:5px}.cf-toggle-switch input[type=button].btn-block,.cf-toggle-switch input[type=reset].btn-block,.cf-toggle-switch input[type=submit].btn-block{width:100%}.cf-toggle-switch .btn-group,.cf-toggle-switch .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.cf-toggle-switch .btn-group-vertical>.btn,.cf-toggle-switch .btn-group>.btn{position:relative;float:left}.cf-toggle-switch .btn-group-vertical>.btn.active,.cf-toggle-switch .btn-group-vertical>.btn:active,.cf-toggle-switch .btn-group-vertical>.btn:focus,.cf-toggle-switch .btn-group-vertical>.btn:hover,.cf-toggle-switch .btn-group>.btn.active,.cf-toggle-switch .btn-group>.btn:active,.cf-toggle-switch .btn-group>.btn:focus,.cf-toggle-switch .btn-group>.btn:hover{z-index:2}.cf-toggle-switch .btn-group .btn+.btn,.cf-toggle-switch .btn-group .btn+.btn-group,.cf-toggle-switch .btn-group .btn-group+.btn,.cf-toggle-switch .btn-group .btn-group+.btn-group{margin-left:-1px}.cf-toggle-switch .btn-toolbar{margin-left:-5px}.cf-toggle-switch .btn-toolbar>.btn,.cf-toggle-switch .btn-toolbar>.btn-group,.cf-toggle-switch .btn-toolbar>.input-group{margin-left:5px}.cf-toggle-switch .btn .caret,.cf-toggle-switch .btn-group>.btn:first-child{margin-left:0}.cf-toggle-switch .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.cf-toggle-switch .btn-group>.btn:last-child:not(:first-child),.cf-toggle-switch .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.cf-toggle-switch .btn-group>.btn-group:first-child>.btn:last-child,.cf-toggle-switch .btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.cf-toggle-switch .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.cf-toggle-switch .btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.cf-toggle-switch .btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.cf-toggle-switch .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.cf-toggle-switch .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.cf-toggle-switch .btn-lg .caret{border-width:5px 5px 0}.cf-toggle-switch .dropup .btn-lg .caret{border-width:0 5px 5px}.cf-toggle-switch .btn-group-vertical>.btn,.cf-toggle-switch .btn-group-vertical>.btn-group,.cf-toggle-switch .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.cf-toggle-switch .btn-group-vertical>.btn-group>.btn{float:none}.cf-toggle-switch .btn-group-vertical>.btn+.btn,.cf-toggle-switch .btn-group-vertical>.btn+.btn-group,.cf-toggle-switch .btn-group-vertical>.btn-group+.btn,.cf-toggle-switch .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.cf-toggle-switch .btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.cf-toggle-switch .btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.cf-toggle-switch .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.cf-toggle-switch .btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.cf-toggle-switch .btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.cf-toggle-switch .btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.cf-toggle-switch .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.cf-toggle-switch .btn-group-justified>.btn,.cf-toggle-switch .btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.cf-toggle-switch .btn-group-justified>.btn-group .btn{width:100%}.cf-toggle-switch [data-toggle=buttons]>.btn>input[type=checkbox],.cf-toggle-switch [data-toggle=buttons]>.btn>input[type=radio]{display:none}.cf-toggle-switch .btn-group-vertical>.btn-group:after,.cf-toggle-switch .btn-group-vertical>.btn-group:before,.cf-toggle-switch .btn-toolbar:after,.cf-toggle-switch .btn-toolbar:before,.cf-toggle-switch .clearfix:after,.cf-toggle-switch .clearfix:before{content:" ";display:table}.cf-toggle-switch .btn-group-vertical>.btn-group:after,.cf-toggle-switch .btn-toolbar:after,.cf-toggle-switch .clearfix:after{clear:both}.cf-toggle-switch .center-block{display:block;margin-left:auto;margin-right:auto}.cf-toggle-switch .pull-right{float:right!important}.cf-toggle-switch .pull-left{float:left!important}.cf-toggle-switch .hide{display:none!important}.cf-toggle-switch .show{display:block!important}.cf-toggle-switch .invisible{visibility:hidden}.cf-toggle-switch .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.cf-toggle-switch .hidden{display:none!important;visibility:hidden!important}.cf-toggle-switch .affix{position:fixed}@-ms-viewport{width:device-width}.cf-toggle-switch .visible-lg,.cf-toggle-switch .visible-md,.cf-toggle-switch .visible-print,.cf-toggle-switch .visible-sm,.cf-toggle-switch .visible-xs{display:none!important}@media (max-width:767px){.cf-toggle-switch .visible-xs{display:block!important}.cf-toggle-switch table.visible-xs{display:table}.cf-toggle-switch tr.visible-xs{display:table-row!important}.cf-toggle-switch td.visible-xs,.cf-toggle-switch th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.cf-toggle-switch .visible-sm{display:block!important}.cf-toggle-switch table.visible-sm{display:table}.cf-toggle-switch tr.visible-sm{display:table-row!important}.cf-toggle-switch td.visible-sm,.cf-toggle-switch th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.cf-toggle-switch .visible-md{display:block!important}.cf-toggle-switch table.visible-md{display:table}.cf-toggle-switch tr.visible-md{display:table-row!important}.cf-toggle-switch td.visible-md,.cf-toggle-switch th.visible-md{display:table-cell!important}}@media (min-width:1200px){.cf-toggle-switch .visible-lg{display:block!important}.cf-toggle-switch table.visible-lg{display:table}.cf-toggle-switch tr.visible-lg{display:table-row!important}.cf-toggle-switch td.visible-lg,.cf-toggle-switch th.visible-lg{display:table-cell!important}.cf-toggle-switch .hidden-lg{display:none!important}}@media (max-width:767px){.cf-toggle-switch .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.cf-toggle-switch .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.cf-toggle-switch .hidden-md{display:none!important}}@media print{.cf-toggle-switch .visible-print{display:block!important}.cf-toggle-switch table.visible-print{display:table}.cf-toggle-switch tr.visible-print{display:table-row!important}.cf-toggle-switch td.visible-print,.cf-toggle-switch th.visible-print{display:table-cell!important}.cf-toggle-switch .hidden-print{display:none!important}}.cf-toggle-group-buttons{width:100%;clear:both}input.form-control.parsley-success,select.form-control.parsley-success,textarea.form-control.parsley-success{color:#468847;background-color:#DFF0D8;border-color:#D6E9C6}input.form-control.parsley-error,select.form-control.parsley-error,textarea.form-control.parsley-error{color:#B94A48;background-color:#F2DEDE;border-color:#EED3D7}.form-control.parsley-errors-list{margin:2px 0 3px;padding:0;list-style-type:none;font-size:.9em;line-height:.9em;opacity:0;color:#468847;transition:all .3s ease-in;-o-transition:all .3s ease-in;-moz-transition:all .3s ease-in;-webkit-transition:all .3s ease-in}.form-control.parsley-errors-list.filled{opacity:1}.breadcrumb a.has-error{color:red}.form-group .parsley-errors-list.filled,.form-group .parsley-errors-list.filled .parsley-type{list-style:none}.caldera-grid .cf-multi-uploader-list>ul{list-style:none;margin:0 0 12px;padding:0}.caldera-grid .cf-multi-uploader-list>ul>li{margin:0;padding:0 0 22px;position:relative;clear:both}.caldera-grid .cf-multi-uploader-list>ul>li .file-name{display:inline-block;font-weight:700;left:16px;right:0;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap}.caldera-grid .cf-multi-uploader-list>ul>li .file-name.file-uploaded{left:0}.caldera-grid .cf-multi-uploader-list>ul>li .file-size{float:right}.caldera-grid .cf-multi-uploader-list>ul>li .file-type{float:left}.caldera-grid .cf-multi-uploader-list>ul>li .file-error{clear:both;display:block}.caldera-grid .cf-multi-uploader-list>ul>li .cf-file-remove{color:#cf0000;text-decoration:none;border:0}.caldera-grid .cf-multi-uploader-list>ul>li.has-error .bar{background-color:#cf0000!important}.caldera-grid .cf-multi-uploader-list>ul>li.has-error{color:#cf0000}.has-error.cf-toggle-switch .cf-toggle-group-buttons>a{background-color:#f2dede;border-color:#dd4b39}.cfdatepicker{z-index:10011!important}
|
1 |
+
/*! GENERATED SOURCE FILE caldera-forms - v1.5.9-rc.1 - 2018-01-18 */.caldera-grid html,.cf-toggle-switch html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}.caldera-grid .sr-only,.caldera-grid svg:not(:root),.cf-toggle-switch svg:not(:root){overflow:hidden}.caldera-grid .btn,.cfdatepicker table{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.caldera-grid button,.caldera-grid select,.cf-toggle-switch button,.cf-toggle-switch select{text-transform:none}@media (min-width:768px){.caldera-grid .container{width:750px}}@media (min-width:992px){.caldera-grid .container{width:970px}}@media (min-width:1200px){.caldera-grid .container{width:1170px}}.caldera-grid article,.caldera-grid aside,.caldera-grid details,.caldera-grid figcaption,.caldera-grid figure,.caldera-grid footer,.caldera-grid header,.caldera-grid hgroup,.caldera-grid main,.caldera-grid nav,.caldera-grid section,.caldera-grid summary{display:block}.caldera-grid a{background:0 0;text-decoration:none}.caldera-grid img{vertical-align:middle}.caldera-grid *,.caldera-grid :after,.caldera-grid :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.caldera-grid html{font-size:62.5%;-webkit-tap-highlight-color:transparent}.caldera-grid body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}.caldera-grid button,.caldera-grid input,.caldera-grid select,.caldera-grid textarea{font-family:inherit;font-size:inherit;line-height:inherit}.caldera-grid a:focus,.caldera-grid a:hover{color:#2a6496;text-decoration:underline}.caldera-grid a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid .img-responsive{display:block;max-width:100%;height:auto}.caldera-grid .img-rounded{border-radius:6px}.caldera-grid .img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.caldera-grid .img-circle{border-radius:50%}.caldera-grid hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.caldera-grid .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;clip:rect(0,0,0,0);border:0}.caldera-grid .container,.caldera-grid .container-fluid{margin-right:auto;margin-left:auto;padding-left:7.5px;padding-right:7.5px}@media (min-width:768px){.caldera-grid .container{width:735px}}@media (min-width:992px){.caldera-grid .container{width:955px}}@media (min-width:1200px){.caldera-grid .container{width:1155px}}.caldera-grid .row{margin-left:-7.5px;margin-right:-7.5px;max-width:100%}.caldera-grid .col-lg-1,.caldera-grid .col-lg-10,.caldera-grid .col-lg-11,.caldera-grid .col-lg-12,.caldera-grid .col-lg-2,.caldera-grid .col-lg-3,.caldera-grid .col-lg-4,.caldera-grid .col-lg-5,.caldera-grid .col-lg-6,.caldera-grid .col-lg-7,.caldera-grid .col-lg-8,.caldera-grid .col-lg-9,.caldera-grid .col-md-1,.caldera-grid .col-md-10,.caldera-grid .col-md-11,.caldera-grid .col-md-12,.caldera-grid .col-md-2,.caldera-grid .col-md-3,.caldera-grid .col-md-4,.caldera-grid .col-md-5,.caldera-grid .col-md-6,.caldera-grid .col-md-7,.caldera-grid .col-md-8,.caldera-grid .col-md-9,.caldera-grid .col-sm-1,.caldera-grid .col-sm-10,.caldera-grid .col-sm-11,.caldera-grid .col-sm-12,.caldera-grid .col-sm-2,.caldera-grid .col-sm-3,.caldera-grid .col-sm-4,.caldera-grid .col-sm-5,.caldera-grid .col-sm-6,.caldera-grid .col-sm-7,.caldera-grid .col-sm-8,.caldera-grid .col-sm-9,.caldera-grid .col-xs-1,.caldera-grid .col-xs-10,.caldera-grid .col-xs-11,.caldera-grid .col-xs-12,.caldera-grid .col-xs-2,.caldera-grid .col-xs-3,.caldera-grid .col-xs-4,.caldera-grid .col-xs-5,.caldera-grid .col-xs-6,.caldera-grid .col-xs-7,.caldera-grid .col-xs-8,.caldera-grid .col-xs-9{position:relative;padding-left:7.5px;padding-right:7.5px}.caldera-grid .col-xs-1,.caldera-grid .col-xs-10,.caldera-grid .col-xs-11,.caldera-grid .col-xs-12,.caldera-grid .col-xs-2,.caldera-grid .col-xs-3,.caldera-grid .col-xs-4,.caldera-grid .col-xs-5,.caldera-grid .col-xs-6,.caldera-grid .col-xs-7,.caldera-grid .col-xs-8,.caldera-grid .col-xs-9{float:left}.caldera-grid .col-xs-12{width:100%}.caldera-grid .col-xs-11{width:91.66666667%}.caldera-grid .col-xs-10{width:83.33333333%}.caldera-grid .col-xs-9{width:75%}.caldera-grid .col-xs-8{width:66.66666667%}.caldera-grid .col-xs-7{width:58.33333333%}.caldera-grid .col-xs-6{width:50%}.caldera-grid .col-xs-5{width:41.66666667%}.caldera-grid .col-xs-4{width:33.33333333%}.caldera-grid .col-xs-3{width:25%}.caldera-grid .col-xs-2{width:16.66666667%}.caldera-grid .col-xs-1{width:8.33333333%}.caldera-grid .col-xs-pull-12{right:100%}.caldera-grid .col-xs-pull-11{right:91.66666667%}.caldera-grid .col-xs-pull-10{right:83.33333333%}.caldera-grid .col-xs-pull-9{right:75%}.caldera-grid .col-xs-pull-8{right:66.66666667%}.caldera-grid .col-xs-pull-7{right:58.33333333%}.caldera-grid .col-xs-pull-6{right:50%}.caldera-grid .col-xs-pull-5{right:41.66666667%}.caldera-grid .col-xs-pull-4{right:33.33333333%}.caldera-grid .col-xs-pull-3{right:25%}.caldera-grid .col-xs-pull-2{right:16.66666667%}.caldera-grid .col-xs-pull-1{right:8.33333333%}.caldera-grid .col-xs-pull-0{right:0}.caldera-grid .col-xs-push-12{left:100%}.caldera-grid .col-xs-push-11{left:91.66666667%}.caldera-grid .col-xs-push-10{left:83.33333333%}.caldera-grid .col-xs-push-9{left:75%}.caldera-grid .col-xs-push-8{left:66.66666667%}.caldera-grid .col-xs-push-7{left:58.33333333%}.caldera-grid .col-xs-push-6{left:50%}.caldera-grid .col-xs-push-5{left:41.66666667%}.caldera-grid .col-xs-push-4{left:33.33333333%}.caldera-grid .col-xs-push-3{left:25%}.caldera-grid .col-xs-push-2{left:16.66666667%}.caldera-grid .col-xs-push-1{left:8.33333333%}.caldera-grid .col-xs-push-0{left:0}.caldera-grid .col-xs-offset-12{margin-left:100%}.caldera-grid .col-xs-offset-11{margin-left:91.66666667%}.caldera-grid .col-xs-offset-10{margin-left:83.33333333%}.caldera-grid .col-xs-offset-9{margin-left:75%}.caldera-grid .col-xs-offset-8{margin-left:66.66666667%}.caldera-grid .col-xs-offset-7{margin-left:58.33333333%}.caldera-grid .col-xs-offset-6{margin-left:50%}.caldera-grid .col-xs-offset-5{margin-left:41.66666667%}.caldera-grid .col-xs-offset-4{margin-left:33.33333333%}.caldera-grid .col-xs-offset-3{margin-left:25%}.caldera-grid .col-xs-offset-2{margin-left:16.66666667%}.caldera-grid .col-xs-offset-1{margin-left:8.33333333%}.caldera-grid .col-xs-offset-0{margin-left:0}@media (min-width:768px){.caldera-grid .col-sm-1,.caldera-grid .col-sm-10,.caldera-grid .col-sm-11,.caldera-grid .col-sm-12,.caldera-grid .col-sm-2,.caldera-grid .col-sm-3,.caldera-grid .col-sm-4,.caldera-grid .col-sm-5,.caldera-grid .col-sm-6,.caldera-grid .col-sm-7,.caldera-grid .col-sm-8,.caldera-grid .col-sm-9{float:left}.caldera-grid .col-sm-12{width:100%}.caldera-grid .col-sm-11{width:91.66666667%}.caldera-grid .col-sm-10{width:83.33333333%}.caldera-grid .col-sm-9{width:75%}.caldera-grid .col-sm-8{width:66.66666667%}.caldera-grid .col-sm-7{width:58.33333333%}.caldera-grid .col-sm-6{width:50%}.caldera-grid .col-sm-5{width:41.66666667%}.caldera-grid .col-sm-4{width:33.33333333%}.caldera-grid .col-sm-3{width:25%}.caldera-grid .col-sm-2{width:16.66666667%}.caldera-grid .col-sm-1{width:8.33333333%}.caldera-grid .col-sm-pull-12{right:100%}.caldera-grid .col-sm-pull-11{right:91.66666667%}.caldera-grid .col-sm-pull-10{right:83.33333333%}.caldera-grid .col-sm-pull-9{right:75%}.caldera-grid .col-sm-pull-8{right:66.66666667%}.caldera-grid .col-sm-pull-7{right:58.33333333%}.caldera-grid .col-sm-pull-6{right:50%}.caldera-grid .col-sm-pull-5{right:41.66666667%}.caldera-grid .col-sm-pull-4{right:33.33333333%}.caldera-grid .col-sm-pull-3{right:25%}.caldera-grid .col-sm-pull-2{right:16.66666667%}.caldera-grid .col-sm-pull-1{right:8.33333333%}.caldera-grid .col-sm-pull-0{right:0}.caldera-grid .col-sm-push-12{left:100%}.caldera-grid .col-sm-push-11{left:91.66666667%}.caldera-grid .col-sm-push-10{left:83.33333333%}.caldera-grid .col-sm-push-9{left:75%}.caldera-grid .col-sm-push-8{left:66.66666667%}.caldera-grid .col-sm-push-7{left:58.33333333%}.caldera-grid .col-sm-push-6{left:50%}.caldera-grid .col-sm-push-5{left:41.66666667%}.caldera-grid .col-sm-push-4{left:33.33333333%}.caldera-grid .col-sm-push-3{left:25%}.caldera-grid .col-sm-push-2{left:16.66666667%}.caldera-grid .col-sm-push-1{left:8.33333333%}.caldera-grid .col-sm-push-0{left:0}.caldera-grid .col-sm-offset-12{margin-left:100%}.caldera-grid .col-sm-offset-11{margin-left:91.66666667%}.caldera-grid .col-sm-offset-10{margin-left:83.33333333%}.caldera-grid .col-sm-offset-9{margin-left:75%}.caldera-grid .col-sm-offset-8{margin-left:66.66666667%}.caldera-grid .col-sm-offset-7{margin-left:58.33333333%}.caldera-grid .col-sm-offset-6{margin-left:50%}.caldera-grid .col-sm-offset-5{margin-left:41.66666667%}.caldera-grid .col-sm-offset-4{margin-left:33.33333333%}.caldera-grid .col-sm-offset-3{margin-left:25%}.caldera-grid .col-sm-offset-2{margin-left:16.66666667%}.caldera-grid .col-sm-offset-1{margin-left:8.33333333%}.caldera-grid .col-sm-offset-0{margin-left:0}}@media (min-width:992px){.caldera-grid .col-md-1,.caldera-grid .col-md-10,.caldera-grid .col-md-11,.caldera-grid .col-md-12,.caldera-grid .col-md-2,.caldera-grid .col-md-3,.caldera-grid .col-md-4,.caldera-grid .col-md-5,.caldera-grid .col-md-6,.caldera-grid .col-md-7,.caldera-grid .col-md-8,.caldera-grid .col-md-9{float:left}.caldera-grid .col-md-12{width:100%}.caldera-grid .col-md-11{width:91.66666667%}.caldera-grid .col-md-10{width:83.33333333%}.caldera-grid .col-md-9{width:75%}.caldera-grid .col-md-8{width:66.66666667%}.caldera-grid .col-md-7{width:58.33333333%}.caldera-grid .col-md-6{width:50%}.caldera-grid .col-md-5{width:41.66666667%}.caldera-grid .col-md-4{width:33.33333333%}.caldera-grid .col-md-3{width:25%}.caldera-grid .col-md-2{width:16.66666667%}.caldera-grid .col-md-1{width:8.33333333%}.caldera-grid .col-md-pull-12{right:100%}.caldera-grid .col-md-pull-11{right:91.66666667%}.caldera-grid .col-md-pull-10{right:83.33333333%}.caldera-grid .col-md-pull-9{right:75%}.caldera-grid .col-md-pull-8{right:66.66666667%}.caldera-grid .col-md-pull-7{right:58.33333333%}.caldera-grid .col-md-pull-6{right:50%}.caldera-grid .col-md-pull-5{right:41.66666667%}.caldera-grid .col-md-pull-4{right:33.33333333%}.caldera-grid .col-md-pull-3{right:25%}.caldera-grid .col-md-pull-2{right:16.66666667%}.caldera-grid .col-md-pull-1{right:8.33333333%}.caldera-grid .col-md-pull-0{right:0}.caldera-grid .col-md-push-12{left:100%}.caldera-grid .col-md-push-11{left:91.66666667%}.caldera-grid .col-md-push-10{left:83.33333333%}.caldera-grid .col-md-push-9{left:75%}.caldera-grid .col-md-push-8{left:66.66666667%}.caldera-grid .col-md-push-7{left:58.33333333%}.caldera-grid .col-md-push-6{left:50%}.caldera-grid .col-md-push-5{left:41.66666667%}.caldera-grid .col-md-push-4{left:33.33333333%}.caldera-grid .col-md-push-3{left:25%}.caldera-grid .col-md-push-2{left:16.66666667%}.caldera-grid .col-md-push-1{left:8.33333333%}.caldera-grid .col-md-push-0{left:0}.caldera-grid .col-md-offset-12{margin-left:100%}.caldera-grid .col-md-offset-11{margin-left:91.66666667%}.caldera-grid .col-md-offset-10{margin-left:83.33333333%}.caldera-grid .col-md-offset-9{margin-left:75%}.caldera-grid .col-md-offset-8{margin-left:66.66666667%}.caldera-grid .col-md-offset-7{margin-left:58.33333333%}.caldera-grid .col-md-offset-6{margin-left:50%}.caldera-grid .col-md-offset-5{margin-left:41.66666667%}.caldera-grid .col-md-offset-4{margin-left:33.33333333%}.caldera-grid .col-md-offset-3{margin-left:25%}.caldera-grid .col-md-offset-2{margin-left:16.66666667%}.caldera-grid .col-md-offset-1{margin-left:8.33333333%}.caldera-grid .col-md-offset-0{margin-left:0}}@-ms-viewport{width:device-width}@media (min-width:1200px){.caldera-grid .col-lg-1,.caldera-grid .col-lg-10,.caldera-grid .col-lg-11,.caldera-grid .col-lg-12,.caldera-grid .col-lg-2,.caldera-grid .col-lg-3,.caldera-grid .col-lg-4,.caldera-grid .col-lg-5,.caldera-grid .col-lg-6,.caldera-grid .col-lg-7,.caldera-grid .col-lg-8,.caldera-grid .col-lg-9{float:left}.caldera-grid .col-lg-12{width:100%}.caldera-grid .col-lg-11{width:91.66666667%}.caldera-grid .col-lg-10{width:83.33333333%}.caldera-grid .col-lg-9{width:75%}.caldera-grid .col-lg-8{width:66.66666667%}.caldera-grid .col-lg-7{width:58.33333333%}.caldera-grid .col-lg-6{width:50%}.caldera-grid .col-lg-5{width:41.66666667%}.caldera-grid .col-lg-4{width:33.33333333%}.caldera-grid .col-lg-3{width:25%}.caldera-grid .col-lg-2{width:16.66666667%}.caldera-grid .col-lg-1{width:8.33333333%}.caldera-grid .col-lg-pull-12{right:100%}.caldera-grid .col-lg-pull-11{right:91.66666667%}.caldera-grid .col-lg-pull-10{right:83.33333333%}.caldera-grid .col-lg-pull-9{right:75%}.caldera-grid .col-lg-pull-8{right:66.66666667%}.caldera-grid .col-lg-pull-7{right:58.33333333%}.caldera-grid .col-lg-pull-6{right:50%}.caldera-grid .col-lg-pull-5{right:41.66666667%}.caldera-grid .col-lg-pull-4{right:33.33333333%}.caldera-grid .col-lg-pull-3{right:25%}.caldera-grid .col-lg-pull-2{right:16.66666667%}.caldera-grid .col-lg-pull-1{right:8.33333333%}.caldera-grid .col-lg-pull-0{right:0}.caldera-grid .col-lg-push-12{left:100%}.caldera-grid .col-lg-push-11{left:91.66666667%}.caldera-grid .col-lg-push-10{left:83.33333333%}.caldera-grid .col-lg-push-9{left:75%}.caldera-grid .col-lg-push-8{left:66.66666667%}.caldera-grid .col-lg-push-7{left:58.33333333%}.caldera-grid .col-lg-push-6{left:50%}.caldera-grid .col-lg-push-5{left:41.66666667%}.caldera-grid .col-lg-push-4{left:33.33333333%}.caldera-grid .col-lg-push-3{left:25%}.caldera-grid .col-lg-push-2{left:16.66666667%}.caldera-grid .col-lg-push-1{left:8.33333333%}.caldera-grid .col-lg-push-0{left:0}.caldera-grid .col-lg-offset-12{margin-left:100%}.caldera-grid .col-lg-offset-11{margin-left:91.66666667%}.caldera-grid .col-lg-offset-10{margin-left:83.33333333%}.caldera-grid .col-lg-offset-9{margin-left:75%}.caldera-grid .col-lg-offset-8{margin-left:66.66666667%}.caldera-grid .col-lg-offset-7{margin-left:58.33333333%}.caldera-grid .col-lg-offset-6{margin-left:50%}.caldera-grid .col-lg-offset-5{margin-left:41.66666667%}.caldera-grid .col-lg-offset-4{margin-left:33.33333333%}.caldera-grid .col-lg-offset-3{margin-left:25%}.caldera-grid .col-lg-offset-2{margin-left:16.66666667%}.caldera-grid .col-lg-offset-1{margin-left:8.33333333%}.caldera-grid .col-lg-offset-0{margin-left:0}}.caldera-grid .clearfix:after,.caldera-grid .clearfix:before,.caldera-grid .container-fluid:after,.caldera-grid .container-fluid:before,.caldera-grid .container:after,.caldera-grid .container:before,.caldera-grid .row:after,.caldera-grid .row:before{content:" ";display:table}.caldera-grid .clearfix:after,.caldera-grid .container-fluid:after,.caldera-grid .container:after,.caldera-grid .row:after{clear:both}.caldera-grid .center-block{display:block;margin-left:auto;margin-right:auto}.caldera-grid .pull-right{float:right!important}.caldera-grid .pull-left{float:left!important}.caldera-grid .hide{display:none!important}.caldera-grid .show{display:block!important}.caldera-grid .hidden,.caldera-grid .visible-lg,.caldera-grid .visible-md,.caldera-grid .visible-sm,.caldera-grid .visible-xs{display:none!important}.caldera-grid .invisible{visibility:hidden}.caldera-grid .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.caldera-grid .alert .alert-link,.caldera-grid b,.caldera-grid strong{font-weight:700}.caldera-grid .hidden{visibility:hidden!important}.caldera-grid .affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.caldera-grid .visible-xs{display:block!important}.caldera-grid table.visible-xs{display:table}.caldera-grid tr.visible-xs{display:table-row!important}.caldera-grid td.visible-xs,.caldera-grid th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.caldera-grid .visible-sm{display:block!important}.caldera-grid table.visible-sm{display:table}.caldera-grid tr.visible-sm{display:table-row!important}.caldera-grid td.visible-sm,.caldera-grid th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.caldera-grid .visible-md{display:block!important}.caldera-grid table.visible-md{display:table}.caldera-grid tr.visible-md{display:table-row!important}.caldera-grid td.visible-md,.caldera-grid th.visible-md{display:table-cell!important}}@media (min-width:1200px){.caldera-grid .visible-lg{display:block!important}.caldera-grid table.visible-lg{display:table}.caldera-grid tr.visible-lg{display:table-row!important}.caldera-grid td.visible-lg,.caldera-grid th.visible-lg{display:table-cell!important}.caldera-grid .hidden-lg{display:none!important}}@media (max-width:767px){.caldera-grid .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.caldera-grid .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.caldera-grid .hidden-md{display:none!important}}.caldera-grid .visible-print{display:none!important}@media print{.caldera-grid .visible-print{display:block!important}.caldera-grid table.visible-print{display:table}.caldera-grid tr.visible-print{display:table-row!important}.caldera-grid td.visible-print,.caldera-grid th.visible-print{display:table-cell!important}.caldera-grid .hidden-print{display:none!important}}input.parsley-success,select.parsley-success,textarea.parsley-success{color:#468847;background-color:#DFF0D8;border:1px solid #D6E9C6}input.parsley-error,select.parsley-error,textarea.parsley-error{color:#B94A48;background-color:#F2DEDE;border:1px solid #EED3D7}.parsley-errors-list{margin:2px 0 3px;padding:0;list-style-type:none;font-size:.9em;line-height:.9em;opacity:0;transition:all .3s ease-in;-o-transition:all .3s ease-in;-moz-transition:all .3s ease-in;-webkit-transition:all .3s ease-in}.parsley-errors-list.filled{opacity:1}.caldera-grid .alert{padding:8px;margin-bottom:18px;border-radius:2px}.caldera-grid .alert-dismissable{padding-right:28px}.caldera-grid .alert-success{background-color:#dff0d8;border-color:#a3d48e;color:#3c763d}.caldera-grid .alert-success hr{border-top-color:#93cd7c}.caldera-grid .alert-success .alert-link{color:#2b542c}.caldera-grid .alert-info{background-color:#d9edf7;border-color:#85c5e5;color:#31708f}.caldera-grid .alert-info hr{border-top-color:#70bbe1}.caldera-grid .alert-info .alert-link{color:#245269}.caldera-grid .alert-warning{background-color:#f9edbe;border-color:#f0c36d;color:#333}.caldera-grid .alert-warning hr{border-top-color:#eeb956}.caldera-grid .alert-warning .alert-link{color:#1a1a1a}.caldera-grid .alert-danger,.caldera-grid .alert-error{background-color:#f2dede;border-color:#d59595;color:#a94442}.caldera-grid .alert-danger hr,.caldera-grid .alert-error hr{border-top-color:#ce8383}.caldera-grid .alert-danger .alert-link,.caldera-grid .alert-error .alert-link{color:#843534}.caldera-grid .alert-danger,.caldera-grid .alert-error,.caldera-grid .alert-info,.caldera-grid .alert-success,.caldera-grid .alert-warning{text-shadow:0 1px 0 rgba(255,255,255,.5)}.caldera-grid .has-error .form-control:focus,.caldera-grid .has-error .form-control:hover{border-color:#dd4b39}.caldera-grid.cf_processing{background:url(../images/loading.gif) center center/30px auto no-repeat rgba(0,0,0,0)}.caldera-grid.cf_processing>*{opacity:.5}.caldera-grid html{font-family:sans-serif}.caldera-grid body{margin:0}.caldera-grid article,.caldera-grid aside,.caldera-grid details,.caldera-grid figcaption,.caldera-grid figure,.caldera-grid footer,.caldera-grid header,.caldera-grid hgroup,.caldera-grid main,.caldera-grid menu,.caldera-grid nav,.caldera-grid section,.caldera-grid summary{display:block}.caldera-grid audio,.caldera-grid canvas,.caldera-grid progress,.caldera-grid video{display:inline-block;vertical-align:baseline}.caldera-grid audio:not([controls]){display:none;height:0}.caldera-grid [hidden],.caldera-grid template{display:none}.caldera-grid a{background-color:transparent}.caldera-grid a:active,.caldera-grid a:hover{outline:0}.caldera-grid abbr[title]{border-bottom:1px dotted}.caldera-grid dfn{font-style:italic}.caldera-grid h1{font-size:2em;margin:.67em 0}.caldera-grid mark{background:#ff0;color:#000}.caldera-grid small{font-size:80%}.caldera-grid sub,.caldera-grid sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.caldera-grid sup{top:-.5em}.caldera-grid sub{bottom:-.25em}.caldera-grid img{border:0}.caldera-grid figure{margin:1em 40px}.caldera-grid hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.caldera-grid pre{overflow:auto}.caldera-grid code,.caldera-grid kbd,.caldera-grid pre,.caldera-grid samp{font-family:monospace,monospace;font-size:1em}.caldera-grid button,.caldera-grid input,.caldera-grid optgroup,.caldera-grid select,.caldera-grid textarea{font:inherit;margin:0}.caldera-grid button{overflow:visible}.caldera-grid button,.caldera-grid html input[type=button],.caldera-grid input[type=reset],.caldera-grid input[type=submit]{-webkit-appearance:button;cursor:pointer}.caldera-grid button[disabled],.caldera-grid html input[disabled]{cursor:default}.caldera-grid button::-moz-focus-inner,.caldera-grid input::-moz-focus-inner{border:0;padding:0}.caldera-grid input{line-height:normal}.caldera-grid input[type=checkbox],.caldera-grid input[type=radio]{box-sizing:border-box;padding:0}.caldera-grid input[type=number]::-webkit-inner-spin-button,.caldera-grid input[type=number]::-webkit-outer-spin-button{height:auto}.caldera-grid input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.caldera-grid input[type=search]::-webkit-search-cancel-button,.caldera-grid input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.caldera-grid textarea{overflow:auto}.caldera-grid optgroup{font-weight:700}.caldera-grid table{border-collapse:collapse;border-spacing:0}.caldera-grid td,.caldera-grid th{padding:0}@media print{.caldera-grid *,.caldera-grid :after,.caldera-grid :before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.caldera-grid a,.caldera-grid a:visited{text-decoration:underline}.caldera-grid a[href]:after{content:" (" attr(href) ")"}.caldera-grid abbr[title]:after{content:" (" attr(title) ")"}.caldera-grid a[href^="#"]:after,.caldera-grid a[href^="javascript:"]:after{content:""}.caldera-grid blockquote,.caldera-grid pre{border:1px solid #999;page-break-inside:avoid}.caldera-grid thead{display:table-header-group}.caldera-grid img,.caldera-grid tr{page-break-inside:avoid}.caldera-grid img{max-width:100%!important}.caldera-grid h2,.caldera-grid h3,.caldera-grid p{orphans:3;widows:3}.caldera-grid h2,.caldera-grid h3{page-break-after:avoid}.caldera-grid select{background:#fff!important}.caldera-grid .navbar{display:none}.caldera-grid .btn>.caret,.caldera-grid .dropup>.btn>.caret{border-top-color:#000!important}.caldera-grid .label{border:1px solid #000}.caldera-grid .table{border-collapse:collapse!important}.caldera-grid .table td,.caldera-grid .table th{background-color:#fff!important}.caldera-grid .table-bordered td,.caldera-grid .table-bordered th{border:1px solid #ddd!important}}.caldera-grid .btn,.caldera-grid .btn-danger.active,.caldera-grid .btn-danger:active,.caldera-grid .btn-default.active,.caldera-grid .btn-default:active,.caldera-grid .btn-info.active,.caldera-grid .btn-info:active,.caldera-grid .btn-primary.active,.caldera-grid .btn-primary:active,.caldera-grid .btn-success.active,.caldera-grid .btn-success:active,.caldera-grid .btn-warning.active,.caldera-grid .btn-warning:active,.caldera-grid .form-control,.open>.dropdown-toggle.caldera-grid .btn-danger,.open>.dropdown-toggle.caldera-grid .btn-default,.open>.dropdown-toggle.caldera-grid .btn-info,.open>.dropdown-toggle.caldera-grid .btn-primary,.open>.dropdown-toggle.caldera-grid .btn-success,.open>.dropdown-toggle.caldera-grid .btn-warning{background-image:none}.caldera-grid fieldset{padding:0;margin:0;border:0;min-width:0}.caldera-grid legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}.caldera-grid label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}.caldera-grid input[type=checkbox],.caldera-grid input[type=radio]{margin:0;line-height:normal}.caldera-grid .form-control,.caldera-grid output{font-size:14px;line-height:1.42857143;color:#555;display:block}.caldera-grid input[type=file]{display:block}.caldera-grid input[type=range]{display:block;width:100%}.caldera-grid select[multiple],.caldera-grid select[size]{height:auto}.caldera-grid input[type=checkbox]:focus,.caldera-grid input[type=file]:focus,.caldera-grid input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid input[type=checkbox]{-webkit-appearance:checkbox}.caldera-grid input[type=radio]{-webkit-appearance:radio}.caldera-grid output{padding-top:7px}.caldera-grid .form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.caldera-grid .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.caldera-grid .form-control::-moz-placeholder{color:#999;opacity:1}.caldera-grid .form-control:-ms-input-placeholder{color:#999}.caldera-grid .form-control::-webkit-input-placeholder{color:#999}.caldera-grid .has-success .checkbox,.caldera-grid .has-success .checkbox-inline,.caldera-grid .has-success .control-label,.caldera-grid .has-success .form-control-feedback,.caldera-grid .has-success .help-block,.caldera-grid .has-success .radio,.caldera-grid .has-success .radio-inline,.caldera-grid .has-success.checkbox label,.caldera-grid .has-success.checkbox-inline label,.caldera-grid .has-success.radio label,.caldera-grid .has-success.radio-inline label{color:#3c763d}.caldera-grid .form-control[disabled],.caldera-grid .form-control[readonly],fieldset[disabled] .caldera-grid .form-control{background-color:#eee;opacity:1}.caldera-grid .form-control[disabled],fieldset[disabled] .caldera-grid .form-control{cursor:not-allowed}textarea .caldera-grid .form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){.caldera-grid input[type=date],.caldera-grid input[type=datetime-local],.caldera-grid input[type=month],.caldera-grid input[type=time]{line-height:34px}.caldera-grid input[type=date].input-sm,.caldera-grid input[type=datetime-local].input-sm,.caldera-grid input[type=month].input-sm,.caldera-grid input[type=time].input-sm,.input-group-sm .caldera-grid input[type=date],.input-group-sm .caldera-grid input[type=datetime-local],.input-group-sm .caldera-grid input[type=month],.input-group-sm .caldera-grid input[type=time]{line-height:30px}.caldera-grid input[type=date].input-lg,.caldera-grid input[type=datetime-local].input-lg,.caldera-grid input[type=month].input-lg,.caldera-grid input[type=time].input-lg,.input-group-lg .caldera-grid input[type=date],.input-group-lg .caldera-grid input[type=datetime-local],.input-group-lg .caldera-grid input[type=month],.input-group-lg .caldera-grid input[type=time]{line-height:46px}}.caldera-grid .form-group{margin-bottom:15px}.caldera-grid .checkbox,.caldera-grid .radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.caldera-grid .checkbox label,.caldera-grid .radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.caldera-grid .checkbox input[type=checkbox],.caldera-grid .checkbox-inline input[type=checkbox],.caldera-grid .radio input[type=radio],.caldera-grid .radio-inline input[type=radio]{margin-left:-20px}.caldera-grid .checkbox+.checkbox,.caldera-grid .radio+.radio{margin-top:-5px}.caldera-grid .checkbox-inline,.caldera-grid .radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.caldera-grid .checkbox-inline+.checkbox-inline,.caldera-grid .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.caldera-grid .checkbox-inline.disabled,.caldera-grid .checkbox.disabled label,.caldera-grid .radio-inline.disabled,.caldera-grid .radio.disabled label,.caldera-grid input[type=checkbox].disabled,.caldera-grid input[type=checkbox][disabled],.caldera-grid input[type=radio].disabled,.caldera-grid input[type=radio][disabled],fieldset[disabled] .caldera-grid .checkbox label,fieldset[disabled] .caldera-grid .checkbox-inline,fieldset[disabled] .caldera-grid .radio label,fieldset[disabled] .caldera-grid .radio-inline,fieldset[disabled] .caldera-grid input[type=checkbox],fieldset[disabled] .caldera-grid input[type=radio]{cursor:not-allowed}.caldera-grid .form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.caldera-grid .form-control-static.input-lg,.caldera-grid .form-control-static.input-sm{padding-left:0;padding-right:0}.caldera-grid .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.caldera-grid .input-sm{height:30px;line-height:30px}select[multiple].caldera-grid .input-sm,textarea.caldera-grid .input-sm{height:auto}.caldera-grid .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.caldera-grid .form-group-sm .form-control{height:30px;line-height:30px}select[multiple].caldera-grid .form-group-sm .form-control,textarea.caldera-grid .form-group-sm .form-control{height:auto}.caldera-grid .form-group-sm .form-control-static{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;min-height:32px}.caldera-grid .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}select.caldera-grid .input-lg{height:46px;line-height:46px}select[multiple].caldera-grid .input-lg,textarea.caldera-grid .input-lg{height:auto}.caldera-grid .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}select.caldera-grid .form-group-lg .form-control{height:46px;line-height:46px}select[multiple].caldera-grid .form-group-lg .form-control,textarea.caldera-grid .form-group-lg .form-control{height:auto}.caldera-grid .form-group-lg .form-control-static{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;min-height:38px}.caldera-grid .has-feedback{position:relative}.caldera-grid .has-feedback .form-control{padding-right:42.5px}.caldera-grid .form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.caldera-grid .input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.caldera-grid .input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.caldera-grid .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.caldera-grid .has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.caldera-grid .has-warning .checkbox,.caldera-grid .has-warning .checkbox-inline,.caldera-grid .has-warning .control-label,.caldera-grid .has-warning .form-control-feedback,.caldera-grid .has-warning .help-block,.caldera-grid .has-warning .radio,.caldera-grid .has-warning .radio-inline,.caldera-grid .has-warning.checkbox label,.caldera-grid .has-warning.checkbox-inline label,.caldera-grid .has-warning.radio label,.caldera-grid .has-warning.radio-inline label{color:#8a6d3b}.caldera-grid .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.caldera-grid .has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.caldera-grid .has-error .checkbox,.caldera-grid .has-error .checkbox-inline,.caldera-grid .has-error .control-label,.caldera-grid .has-error .form-control-feedback,.caldera-grid .has-error .help-block,.caldera-grid .has-error .radio,.caldera-grid .has-error .radio-inline,.caldera-grid .has-error.checkbox label,.caldera-grid .has-error.checkbox-inline label,.caldera-grid .has-error.radio label,.caldera-grid .has-error.radio-inline label{color:#a94442}.caldera-grid .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.caldera-grid .has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.caldera-grid .has-feedback label~.form-control-feedback{top:25px}.caldera-grid .has-feedback label.sr-only~.form-control-feedback{top:0}.caldera-grid .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.caldera-grid .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.caldera-grid .form-inline .form-control-static{display:inline-block}.caldera-grid .form-inline .input-group{display:inline-table;vertical-align:middle}.caldera-grid .form-inline .input-group .form-control,.caldera-grid .form-inline .input-group .input-group-addon,.caldera-grid .form-inline .input-group .input-group-btn{width:auto}.caldera-grid .form-inline .input-group>.form-control{width:100%}.caldera-grid .form-inline .control-label{margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .checkbox,.caldera-grid .form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .checkbox label,.caldera-grid .form-inline .radio label{padding-left:0}.caldera-grid .form-inline .checkbox input[type=checkbox],.caldera-grid .form-inline .radio input[type=radio]{position:relative;margin-left:0}.caldera-grid .form-inline .has-feedback .form-control-feedback{top:0}.caldera-grid .form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.caldera-grid .form-horizontal .checkbox,.caldera-grid .form-horizontal .checkbox-inline,.caldera-grid .form-horizontal .radio,.caldera-grid .form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.caldera-grid .form-horizontal .checkbox,.caldera-grid .form-horizontal .radio{min-height:27px}.caldera-grid .form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.caldera-grid .form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.caldera-grid .form-horizontal .form-group-lg .control-label{padding-top:14.33px}.caldera-grid .form-horizontal .form-group-sm .control-label{padding-top:6px}}.caldera-grid .btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:2px;user-select:none}.caldera-grid .btn.active.focus,.caldera-grid .btn.active:focus,.caldera-grid .btn.focus,.caldera-grid .btn:active.focus,.caldera-grid .btn:active:focus,.caldera-grid .btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid .btn.focus,.caldera-grid .btn:focus,.caldera-grid .btn:hover{color:#333;text-decoration:none}.caldera-grid .btn.active,.caldera-grid .btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.caldera-grid .btn.disabled,.caldera-grid .btn[disabled],fieldset[disabled] .caldera-grid .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.caldera-grid .btn-default{color:#333;background-color:#fff;border-color:#ccc}.caldera-grid .btn-default.active,.caldera-grid .btn-default.focus,.caldera-grid .btn-default:active,.caldera-grid .btn-default:focus,.caldera-grid .btn-default:hover,.open>.dropdown-toggle.caldera-grid .btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.caldera-grid .btn-default.disabled,.caldera-grid .btn-default.disabled.active,.caldera-grid .btn-default.disabled.focus,.caldera-grid .btn-default.disabled:active,.caldera-grid .btn-default.disabled:focus,.caldera-grid .btn-default.disabled:hover,.caldera-grid .btn-default[disabled],.caldera-grid .btn-default[disabled].active,.caldera-grid .btn-default[disabled].focus,.caldera-grid .btn-default[disabled]:active,.caldera-grid .btn-default[disabled]:focus,.caldera-grid .btn-default[disabled]:hover,fieldset[disabled] .caldera-grid .btn-default,fieldset[disabled] .caldera-grid .btn-default.active,fieldset[disabled] .caldera-grid .btn-default.focus,fieldset[disabled] .caldera-grid .btn-default:active,fieldset[disabled] .caldera-grid .btn-default:focus,fieldset[disabled] .caldera-grid .btn-default:hover{background-color:#fff;border-color:#ccc}.caldera-grid .btn-default .badge{color:#fff;background-color:#333}.caldera-grid .btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.caldera-grid .btn-primary.active,.caldera-grid .btn-primary.focus,.caldera-grid .btn-primary:active,.caldera-grid .btn-primary:focus,.caldera-grid .btn-primary:hover,.open>.dropdown-toggle.caldera-grid .btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.caldera-grid .btn-primary.disabled,.caldera-grid .btn-primary.disabled.active,.caldera-grid .btn-primary.disabled.focus,.caldera-grid .btn-primary.disabled:active,.caldera-grid .btn-primary.disabled:focus,.caldera-grid .btn-primary.disabled:hover,.caldera-grid .btn-primary[disabled],.caldera-grid .btn-primary[disabled].active,.caldera-grid .btn-primary[disabled].focus,.caldera-grid .btn-primary[disabled]:active,.caldera-grid .btn-primary[disabled]:focus,.caldera-grid .btn-primary[disabled]:hover,fieldset[disabled] .caldera-grid .btn-primary,fieldset[disabled] .caldera-grid .btn-primary.active,fieldset[disabled] .caldera-grid .btn-primary.focus,fieldset[disabled] .caldera-grid .btn-primary:active,fieldset[disabled] .caldera-grid .btn-primary:focus,fieldset[disabled] .caldera-grid .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.caldera-grid .btn-primary .badge{color:#337ab7;background-color:#fff}.caldera-grid .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.caldera-grid .btn-success.active,.caldera-grid .btn-success.focus,.caldera-grid .btn-success:active,.caldera-grid .btn-success:focus,.caldera-grid .btn-success:hover,.open>.dropdown-toggle.caldera-grid .btn-success{color:#fff;background-color:#449d44;border-color:#398439}.caldera-grid .btn-success.disabled,.caldera-grid .btn-success.disabled.active,.caldera-grid .btn-success.disabled.focus,.caldera-grid .btn-success.disabled:active,.caldera-grid .btn-success.disabled:focus,.caldera-grid .btn-success.disabled:hover,.caldera-grid .btn-success[disabled],.caldera-grid .btn-success[disabled].active,.caldera-grid .btn-success[disabled].focus,.caldera-grid .btn-success[disabled]:active,.caldera-grid .btn-success[disabled]:focus,.caldera-grid .btn-success[disabled]:hover,fieldset[disabled] .caldera-grid .btn-success,fieldset[disabled] .caldera-grid .btn-success.active,fieldset[disabled] .caldera-grid .btn-success.focus,fieldset[disabled] .caldera-grid .btn-success:active,fieldset[disabled] .caldera-grid .btn-success:focus,fieldset[disabled] .caldera-grid .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.caldera-grid .btn-success .badge{color:#5cb85c;background-color:#fff}.caldera-grid .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.caldera-grid .btn-info.active,.caldera-grid .btn-info.focus,.caldera-grid .btn-info:active,.caldera-grid .btn-info:focus,.caldera-grid .btn-info:hover,.open>.dropdown-toggle.caldera-grid .btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.caldera-grid .btn-info.disabled,.caldera-grid .btn-info.disabled.active,.caldera-grid .btn-info.disabled.focus,.caldera-grid .btn-info.disabled:active,.caldera-grid .btn-info.disabled:focus,.caldera-grid .btn-info.disabled:hover,.caldera-grid .btn-info[disabled],.caldera-grid .btn-info[disabled].active,.caldera-grid .btn-info[disabled].focus,.caldera-grid .btn-info[disabled]:active,.caldera-grid .btn-info[disabled]:focus,.caldera-grid .btn-info[disabled]:hover,fieldset[disabled] .caldera-grid .btn-info,fieldset[disabled] .caldera-grid .btn-info.active,fieldset[disabled] .caldera-grid .btn-info.focus,fieldset[disabled] .caldera-grid .btn-info:active,fieldset[disabled] .caldera-grid .btn-info:focus,fieldset[disabled] .caldera-grid .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.caldera-grid .btn-info .badge{color:#5bc0de;background-color:#fff}.caldera-grid .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.caldera-grid .btn-warning.active,.caldera-grid .btn-warning.focus,.caldera-grid .btn-warning:active,.caldera-grid .btn-warning:focus,.caldera-grid .btn-warning:hover,.open>.dropdown-toggle.caldera-grid .btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.caldera-grid .btn-warning.disabled,.caldera-grid .btn-warning.disabled.active,.caldera-grid .btn-warning.disabled.focus,.caldera-grid .btn-warning.disabled:active,.caldera-grid .btn-warning.disabled:focus,.caldera-grid .btn-warning.disabled:hover,.caldera-grid .btn-warning[disabled],.caldera-grid .btn-warning[disabled].active,.caldera-grid .btn-warning[disabled].focus,.caldera-grid .btn-warning[disabled]:active,.caldera-grid .btn-warning[disabled]:focus,.caldera-grid .btn-warning[disabled]:hover,fieldset[disabled] .caldera-grid .btn-warning,fieldset[disabled] .caldera-grid .btn-warning.active,fieldset[disabled] .caldera-grid .btn-warning.focus,fieldset[disabled] .caldera-grid .btn-warning:active,fieldset[disabled] .caldera-grid .btn-warning:focus,fieldset[disabled] .caldera-grid .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.caldera-grid .btn-warning .badge{color:#f0ad4e;background-color:#fff}.caldera-grid .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.caldera-grid .btn-danger.active,.caldera-grid .btn-danger.focus,.caldera-grid .btn-danger:active,.caldera-grid .btn-danger:focus,.caldera-grid .btn-danger:hover,.open>.dropdown-toggle.caldera-grid .btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.caldera-grid .btn-danger.disabled,.caldera-grid .btn-danger.disabled.active,.caldera-grid .btn-danger.disabled.focus,.caldera-grid .btn-danger.disabled:active,.caldera-grid .btn-danger.disabled:focus,.caldera-grid .btn-danger.disabled:hover,.caldera-grid .btn-danger[disabled],.caldera-grid .btn-danger[disabled].active,.caldera-grid .btn-danger[disabled].focus,.caldera-grid .btn-danger[disabled]:active,.caldera-grid .btn-danger[disabled]:focus,.caldera-grid .btn-danger[disabled]:hover,fieldset[disabled] .caldera-grid .btn-danger,fieldset[disabled] .caldera-grid .btn-danger.active,fieldset[disabled] .caldera-grid .btn-danger.focus,fieldset[disabled] .caldera-grid .btn-danger:active,fieldset[disabled] .caldera-grid .btn-danger:focus,fieldset[disabled] .caldera-grid .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.caldera-grid .btn-danger .badge{color:#d9534f;background-color:#fff}.caldera-grid .btn-link{color:#337ab7;font-weight:400;border-radius:0}.caldera-grid .btn-link,.caldera-grid .btn-link.active,.caldera-grid .btn-link:active,.caldera-grid .btn-link[disabled],fieldset[disabled] .caldera-grid .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.caldera-grid .btn-link,.caldera-grid .btn-link:active,.caldera-grid .btn-link:focus,.caldera-grid .btn-link:hover{border-color:transparent}.caldera-grid .btn-link:focus,.caldera-grid .btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.caldera-grid .btn-link[disabled]:focus,.caldera-grid .btn-link[disabled]:hover,fieldset[disabled] .caldera-grid .btn-link:focus,fieldset[disabled] .caldera-grid .btn-link:hover{color:#777;text-decoration:none}.caldera-grid .btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.caldera-grid .btn-sm,.caldera-grid .btn-xs{font-size:12px;line-height:1.5;border-radius:1px}.caldera-grid .btn-sm{padding:5px 10px}.caldera-grid .btn-xs{padding:1px 5px}.caldera-grid .btn-block{display:block;width:100%}.caldera-grid .btn-block+.btn-block{margin-top:5px}.caldera-grid input[type=button].btn-block,.caldera-grid input[type=reset].btn-block,.caldera-grid input[type=submit].btn-block{width:100%}.caldera-grid textarea.form-control{padding-right:4px;height:auto}.caldera-grid .breadcrumb{padding:6px 12px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.caldera-grid .breadcrumb>li{display:inline-block;margin:0}.caldera-grid .breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.caldera-grid .breadcrumb>.active,.caldera-grid .breadcrumb>.active>a{color:#777}.breadcrumb>li.active.error>a,.breadcrumb>li.error>a{color:red}.caldera-grid .cf-credit-card{padding-left:42px;background-image:url(../images/credit-card.svg);background-repeat:no-repeat!important;background-position-x:4px!important;background-position-y:3px!important}.caldera-grid .screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}@font-face{font-family:cf-raty;src:url(fonts/cf-raty.eot?40481674);src:url(fonts/cf-raty.eot?40481674#iefix) format('embedded-opentype'),url(fonts/cf-raty.woff?40481674) format('woff'),url(fonts/cf-raty.ttf?40481674) format('truetype'),url(fonts/cf-raty.svg?40481674#cf-raty) format('svg');font-weight:400;font-style:normal}[class*=" raty-"]:before,[class^=raty-]:before{font-family:cf-raty;font-style:normal;font-weight:400;speak:none;font-size:2em;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em}.raty-heart-on:before{content:'\e800'}.raty-heart-off:before{content:'\e801'}.raty-star-on:before{content:'\e802'}.raty-star-off:before{content:'\e803'}.raty-circle-on:before{content:'\e804'}.raty-circle-off:before{content:'\e805'}.raty-dot-off:before{content:'\e806'}.raty-dot-on:before{content:'\e807'}.raty-face-off:before{content:'\e808'}.raty-face-on:before{content:'\e809'}.raty-cancel-off:before{content:'\e80a'}.raty-cancel-on:before{content:'\e80b'}.calculation-group{background:#FFF;box-shadow:0 1px 2px rgba(0,0,0,.05);padding:6px;margin:6px 0}.preview-color-selector{background:#F0F0F0;border:1px solid #E2E2E2;display:inline;margin-left:-1px;padding:3px 12px;box-shadow:0 0 0 2px #fff inset}.miniColors-trigger{border:1px solid #999;-mz-border-radius:0 1px 1px 0;-webkit-border-radius:0 1px 1px 0;display:inline-block;height:24px;margin:0 0 -8px -1px;width:30px}.cf-color-picker .input-group-btn:last-child>.btn,.cf-color-picker .input-group-btn:last-child>.btn-group,.cf-color-picker .input-group-btn>.btn+.btn{margin-left:-1px}.miniColors-selector{background:#FFF;border:1px solid #999;-moz-box-shadow:0 3px 0 -1px rgba(0,0,0,.05);-webkit-box-shadow:0 3px 0 -1px rgba(0,0,0,.05);box-shadow:0 3px 0 -1px rgba(0,0,0,.05);height:162px;padding:5px;position:absolute;width:187px;z-index:999999;margin-top:-1px}.miniColors-colors,.miniColors-hues{top:5px;height:150px;cursor:crosshair;position:absolute}.miniColors-selector.black{background:#000;border-color:#000}.miniColors-colors{left:5px;width:150px;background:url(minicolor-colors.png) right no-repeat}.miniColors-hues{left:160px;width:20px;background:url(minicolor-colors.png) left no-repeat}.miniColors-colorPicker{position:absolute;width:9px;height:9px;border:1px solid #fff;-moz-border-radius:11px;-webkit-border-radius:11px;border-radius:11px}.miniColors-colorPicker-inner{position:absolute;top:0;left:0;width:7px;height:7px;border:1px solid #000;-moz-border-radius:9px;-webkit-border-radius:9px;border-radius:9px}.miniColors-huePicker{position:absolute;left:-3px;width:24px;height:1px;border:1px solid #fff;border-radius:2px;background:#000}.cf-color-picker .form-control::-moz-placeholder{color:#999;opacity:1}.cf-color-picker .form-control:-ms-input-placeholder{color:#999}.cf-color-picker .form-control::-webkit-input-placeholder{color:#999}.cf-color-picker .form-control[disabled],.cf-color-picker .form-control[readonly],.cf-color-picker fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}.cf-color-picker .form-group{margin-bottom:15px}.cf-color-picker .input-group{position:relative;display:table;border-collapse:separate;max-width:120px}.cf-color-picker .input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.cf-color-picker .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.cf-color-picker .input-group-lg>.form-control,.cf-color-picker .input-group-lg>.input-group-addon,.cf-color-picker .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.cf-color-picker .input-group-sm>.form-control,.cf-color-picker .input-group-sm>.input-group-addon,.cf-color-picker .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.cf-color-picker .input-group .form-control,.cf-color-picker .input-group-addon,.cf-color-picker .input-group-btn{display:table-cell}.cf-color-picker .input-group .form-control:not(:first-child):not(:last-child),.cf-color-picker .input-group-addon:not(:first-child):not(:last-child),.cf-color-picker .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.cf-color-picker .input-group-addon,.cf-color-picker .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.cf-color-picker .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.cf-color-picker .text-hide,.table-striped .cfdatepicker table tr td,.table-striped .cfdatepicker table tr th{background-color:transparent}.cf-color-picker .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.cf-color-picker .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.cf-color-picker .input-group .form-control:first-child,.cf-color-picker .input-group-addon:first-child,.cf-color-picker .input-group-btn:first-child>.btn,.cf-color-picker .input-group-btn:first-child>.btn-group>.btn,.cf-color-picker .input-group-btn:first-child>.dropdown-toggle,.cf-color-picker .input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.cf-color-picker .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.cf-color-picker .input-group-addon:first-child{border-right:0}.cf-color-picker .input-group .form-control:last-child,.cf-color-picker .input-group-addon:last-child,.cf-color-picker .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.cf-color-picker .input-group-btn:first-child>.btn:not(:first-child),.cf-color-picker .input-group-btn:last-child>.btn,.cf-color-picker .input-group-btn:last-child>.btn-group>.btn,.cf-color-picker .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.cf-color-picker .input-group-addon:last-child{border-left:0}.cf-color-picker .input-group-btn{position:relative;font-size:0;white-space:nowrap}.cf-color-picker .input-group-btn>.btn{position:relative}.cf-color-picker .input-group-btn>.btn:active,.cf-color-picker .input-group-btn>.btn:focus,.cf-color-picker .input-group-btn>.btn:hover{z-index:2}.cf-color-picker .input-group-btn:first-child>.btn,.cf-color-picker .input-group-btn:first-child>.btn-group{margin-right:-1px}.cf-color-picker .clearfix:after,.cf-color-picker .clearfix:before,.cf-color-picker .form-horizontal .form-group:after,.cf-color-picker .form-horizontal .form-group:before{content:" ";display:table}.cf-color-picker .clearfix:after,.cf-color-picker .form-horizontal .form-group:after{clear:both}.cf-color-picker .center-block{display:block;margin-left:auto;margin-right:auto}.cf-color-picker .pull-right{float:right!important}.cf-color-picker .pull-left{float:left!important}.cf-color-picker .hide{display:none!important}.cf-color-picker .show{display:block!important}.cf-color-picker .invisible{visibility:hidden}.cf-color-picker .text-hide{font:0/0 a;color:transparent;text-shadow:none;border:0}.cf-color-picker .hidden{display:none!important;visibility:hidden!important}.cf-color-picker .affix{position:fixed}@-ms-viewport{width:device-width}.cf-color-picker .visible-lg,.cf-color-picker .visible-md,.cf-color-picker .visible-print,.cf-color-picker .visible-sm,.cf-color-picker .visible-xs{display:none!important}@media (max-width:767px){.cf-color-picker .visible-xs{display:block!important}.cf-color-picker table.visible-xs{display:table}.cf-color-picker tr.visible-xs{display:table-row!important}.cf-color-picker td.visible-xs,.cf-color-picker th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.cf-color-picker .visible-sm{display:block!important}.cf-color-picker table.visible-sm{display:table}.cf-color-picker tr.visible-sm{display:table-row!important}.cf-color-picker td.visible-sm,.cf-color-picker th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.cf-color-picker .visible-md{display:block!important}.cf-color-picker table.visible-md{display:table}.cf-color-picker tr.visible-md{display:table-row!important}.cf-color-picker td.visible-md,.cf-color-picker th.visible-md{display:table-cell!important}}@media (min-width:1200px){.cf-color-picker .visible-lg{display:block!important}.cf-color-picker table.visible-lg{display:table}.cf-color-picker tr.visible-lg{display:table-row!important}.cf-color-picker td.visible-lg,.cf-color-picker th.visible-lg{display:table-cell!important}.cf-color-picker .hidden-lg{display:none!important}}@media (max-width:767px){.cf-color-picker .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.cf-color-picker .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.cf-color-picker .hidden-md{display:none!important}}@media print{.cf-color-picker .visible-print{display:block!important}.cf-color-picker table.visible-print{display:table}.cf-color-picker tr.visible-print{display:table-row!important}.cf-color-picker td.visible-print,.cf-color-picker th.visible-print{display:table-cell!important}.cf-color-picker .hidden-print{display:none!important}}.cfdatepicker-dropdown:after,.cfdatepicker-dropdown:before{content:'';display:inline-block;border-top:0;position:absolute}.cfdatepicker{padding:4px;border-radius:4px;direction:ltr}.cfdatepicker-inline{width:220px}.cfdatepicker.cfdatepicker-rtl{direction:rtl}.cfdatepicker.cfdatepicker-rtl table tr td span{float:right}.cfdatepicker-dropdown{top:0;left:0}.cfdatepicker-dropdown:before{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2)}.cfdatepicker-dropdown:after{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff}.cfdatepicker-dropdown.cfdatepicker-orient-left:before{left:6px}.cfdatepicker-dropdown.cfdatepicker-orient-left:after{left:7px}.cfdatepicker-dropdown.cfdatepicker-orient-right:before{right:6px}.cfdatepicker-dropdown.cfdatepicker-orient-right:after{right:7px}.cfdatepicker-dropdown.cfdatepicker-orient-top:before{top:-7px}.cfdatepicker-dropdown.cfdatepicker-orient-top:after{top:-6px}.cfdatepicker-dropdown.cfdatepicker-orient-bottom:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.cfdatepicker-dropdown.cfdatepicker-orient-bottom:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.cfdatepicker>div{display:none}.cfdatepicker.days div.cfdatepicker-days,.cfdatepicker.months div.cfdatepicker-months,.cfdatepicker.years div.cfdatepicker-years{display:block}.cfdatepicker table{border:0;width:auto;margin:0;-webkit-touch-callout:none;-khtml-user-select:none;user-select:none}.cfdatepicker table tr td,.cfdatepicker table tr th{text-align:center;width:10px;height:10px;border-radius:4px;border:none}.cfdatepicker table tr td.day.focused,.cfdatepicker table tr td.day:hover{background:#eee;cursor:pointer}.cfdatepicker table tr td.new,.cfdatepicker table tr td.old{color:#999}.cfdatepicker table tr td.disabled,.cfdatepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.cfdatepicker table tr td.today,.cfdatepicker table tr td.today.disabled,.cfdatepicker table tr td.today.disabled:hover,.cfdatepicker table tr td.today:hover{color:#000;background-color:#ffdb99;border-color:#ffb733}.cfdatepicker table tr td.today.active,.cfdatepicker table tr td.today.disabled.active,.cfdatepicker table tr td.today.disabled:active,.cfdatepicker table tr td.today.disabled:focus,.cfdatepicker table tr td.today.disabled:hover,.cfdatepicker table tr td.today.disabled:hover.active,.cfdatepicker table tr td.today.disabled:hover:active,.cfdatepicker table tr td.today.disabled:hover:focus,.cfdatepicker table tr td.today.disabled:hover:hover,.cfdatepicker table tr td.today:active,.cfdatepicker table tr td.today:focus,.cfdatepicker table tr td.today:hover,.cfdatepicker table tr td.today:hover.active,.cfdatepicker table tr td.today:hover:active,.cfdatepicker table tr td.today:hover:focus,.cfdatepicker table tr td.today:hover:hover,.open .dropdown-toggle.cfdatepicker table tr td.today,.open .dropdown-toggle.cfdatepicker table tr td.today.disabled,.open .dropdown-toggle.cfdatepicker table tr td.today.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.today:hover{color:#000;background-color:#ffcd70;border-color:#f59e00}.cfdatepicker table tr td.today.active,.cfdatepicker table tr td.today.disabled.active,.cfdatepicker table tr td.today.disabled:active,.cfdatepicker table tr td.today.disabled:hover.active,.cfdatepicker table tr td.today.disabled:hover:active,.cfdatepicker table tr td.today:active,.cfdatepicker table tr td.today:hover.active,.cfdatepicker table tr td.today:hover:active,.open .dropdown-toggle.cfdatepicker table tr td.today,.open .dropdown-toggle.cfdatepicker table tr td.today.disabled,.open .dropdown-toggle.cfdatepicker table tr td.today.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.today:hover{background-image:none}.cfdatepicker table tr td.today.disabled,.cfdatepicker table tr td.today.disabled.active,.cfdatepicker table tr td.today.disabled.disabled,.cfdatepicker table tr td.today.disabled.disabled.active,.cfdatepicker table tr td.today.disabled.disabled:active,.cfdatepicker table tr td.today.disabled.disabled:focus,.cfdatepicker table tr td.today.disabled.disabled:hover,.cfdatepicker table tr td.today.disabled:active,.cfdatepicker table tr td.today.disabled:focus,.cfdatepicker table tr td.today.disabled:hover,.cfdatepicker table tr td.today.disabled:hover.disabled,.cfdatepicker table tr td.today.disabled:hover.disabled.active,.cfdatepicker table tr td.today.disabled:hover.disabled:active,.cfdatepicker table tr td.today.disabled:hover.disabled:focus,.cfdatepicker table tr td.today.disabled:hover.disabled:hover,.cfdatepicker table tr td.today.disabled:hover[disabled],.cfdatepicker table tr td.today.disabled:hover[disabled].active,.cfdatepicker table tr td.today.disabled:hover[disabled]:active,.cfdatepicker table tr td.today.disabled:hover[disabled]:focus,.cfdatepicker table tr td.today.disabled:hover[disabled]:hover,.cfdatepicker table tr td.today.disabled[disabled],.cfdatepicker table tr td.today.disabled[disabled].active,.cfdatepicker table tr td.today.disabled[disabled]:active,.cfdatepicker table tr td.today.disabled[disabled]:focus,.cfdatepicker table tr td.today.disabled[disabled]:hover,.cfdatepicker table tr td.today:hover.disabled,.cfdatepicker table tr td.today:hover.disabled.active,.cfdatepicker table tr td.today:hover.disabled:active,.cfdatepicker table tr td.today:hover.disabled:focus,.cfdatepicker table tr td.today:hover.disabled:hover,.cfdatepicker table tr td.today:hover[disabled],.cfdatepicker table tr td.today:hover[disabled].active,.cfdatepicker table tr td.today:hover[disabled]:active,.cfdatepicker table tr td.today:hover[disabled]:focus,.cfdatepicker table tr td.today:hover[disabled]:hover,.cfdatepicker table tr td.today[disabled],.cfdatepicker table tr td.today[disabled].active,.cfdatepicker table tr td.today[disabled]:active,.cfdatepicker table tr td.today[disabled]:focus,.cfdatepicker table tr td.today[disabled]:hover,fieldset[disabled] .cfdatepicker table tr td.today,fieldset[disabled] .cfdatepicker table tr td.today.active,fieldset[disabled] .cfdatepicker table tr td.today.disabled,fieldset[disabled] .cfdatepicker table tr td.today.disabled.active,fieldset[disabled] .cfdatepicker table tr td.today.disabled:active,fieldset[disabled] .cfdatepicker table tr td.today.disabled:focus,fieldset[disabled] .cfdatepicker table tr td.today.disabled:hover,fieldset[disabled] .cfdatepicker table tr td.today.disabled:hover.active,fieldset[disabled] .cfdatepicker table tr td.today.disabled:hover:active,fieldset[disabled] .cfdatepicker table tr td.today.disabled:hover:focus,fieldset[disabled] .cfdatepicker table tr td.today.disabled:hover:hover,fieldset[disabled] .cfdatepicker table tr td.today:active,fieldset[disabled] .cfdatepicker table tr td.today:focus,fieldset[disabled] .cfdatepicker table tr td.today:hover,fieldset[disabled] .cfdatepicker table tr td.today:hover.active,fieldset[disabled] .cfdatepicker table tr td.today:hover:active,fieldset[disabled] .cfdatepicker table tr td.today:hover:focus,fieldset[disabled] .cfdatepicker table tr td.today:hover:hover{background-color:#ffdb99;border-color:#ffb733}.cfdatepicker table tr td.today:hover:hover{color:#000}.cfdatepicker table tr td.today.active:hover{color:#fff}.cfdatepicker table tr td.range,.cfdatepicker table tr td.range.disabled,.cfdatepicker table tr td.range.disabled:hover,.cfdatepicker table tr td.range:hover{background:#eee;border-radius:0}.cfdatepicker table tr td.active.active,.cfdatepicker table tr td.active.disabled.active,.cfdatepicker table tr td.active.disabled:active,.cfdatepicker table tr td.active.disabled:hover.active,.cfdatepicker table tr td.active.disabled:hover:active,.cfdatepicker table tr td.active:active,.cfdatepicker table tr td.active:hover.active,.cfdatepicker table tr td.active:hover:active,.cfdatepicker table tr td.range.today.active,.cfdatepicker table tr td.range.today.disabled.active,.cfdatepicker table tr td.range.today.disabled:active,.cfdatepicker table tr td.range.today.disabled:hover.active,.cfdatepicker table tr td.range.today.disabled:hover:active,.cfdatepicker table tr td.range.today:active,.cfdatepicker table tr td.range.today:hover.active,.cfdatepicker table tr td.range.today:hover:active,.cfdatepicker table tr td.selected.active,.cfdatepicker table tr td.selected.disabled.active,.cfdatepicker table tr td.selected.disabled:active,.cfdatepicker table tr td.selected.disabled:hover.active,.cfdatepicker table tr td.selected.disabled:hover:active,.cfdatepicker table tr td.selected:active,.cfdatepicker table tr td.selected:hover.active,.cfdatepicker table tr td.selected:hover:active,.open .dropdown-toggle.cfdatepicker table tr td.active,.open .dropdown-toggle.cfdatepicker table tr td.active.disabled,.open .dropdown-toggle.cfdatepicker table tr td.active.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.active:hover,.open .dropdown-toggle.cfdatepicker table tr td.range.today,.open .dropdown-toggle.cfdatepicker table tr td.range.today.disabled,.open .dropdown-toggle.cfdatepicker table tr td.range.today.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.range.today:hover,.open .dropdown-toggle.cfdatepicker table tr td.selected,.open .dropdown-toggle.cfdatepicker table tr td.selected.disabled,.open .dropdown-toggle.cfdatepicker table tr td.selected.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.selected:hover{background-image:none}.cfdatepicker table tr td.range.today,.cfdatepicker table tr td.range.today.disabled,.cfdatepicker table tr td.range.today.disabled:hover,.cfdatepicker table tr td.range.today:hover{color:#000;background-color:#f7ca77;border-color:#f1a417;border-radius:0}.cfdatepicker table tr td.range.today.active,.cfdatepicker table tr td.range.today.disabled.active,.cfdatepicker table tr td.range.today.disabled:active,.cfdatepicker table tr td.range.today.disabled:focus,.cfdatepicker table tr td.range.today.disabled:hover,.cfdatepicker table tr td.range.today.disabled:hover.active,.cfdatepicker table tr td.range.today.disabled:hover:active,.cfdatepicker table tr td.range.today.disabled:hover:focus,.cfdatepicker table tr td.range.today.disabled:hover:hover,.cfdatepicker table tr td.range.today:active,.cfdatepicker table tr td.range.today:focus,.cfdatepicker table tr td.range.today:hover,.cfdatepicker table tr td.range.today:hover.active,.cfdatepicker table tr td.range.today:hover:active,.cfdatepicker table tr td.range.today:hover:focus,.cfdatepicker table tr td.range.today:hover:hover,.open .dropdown-toggle.cfdatepicker table tr td.range.today,.open .dropdown-toggle.cfdatepicker table tr td.range.today.disabled,.open .dropdown-toggle.cfdatepicker table tr td.range.today.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.range.today:hover{color:#000;background-color:#f4bb51;border-color:#bf800c}.cfdatepicker table tr td.range.today.disabled,.cfdatepicker table tr td.range.today.disabled.active,.cfdatepicker table tr td.range.today.disabled.disabled,.cfdatepicker table tr td.range.today.disabled.disabled.active,.cfdatepicker table tr td.range.today.disabled.disabled:active,.cfdatepicker table tr td.range.today.disabled.disabled:focus,.cfdatepicker table tr td.range.today.disabled.disabled:hover,.cfdatepicker table tr td.range.today.disabled:active,.cfdatepicker table tr td.range.today.disabled:focus,.cfdatepicker table tr td.range.today.disabled:hover,.cfdatepicker table tr td.range.today.disabled:hover.disabled,.cfdatepicker table tr td.range.today.disabled:hover.disabled.active,.cfdatepicker table tr td.range.today.disabled:hover.disabled:active,.cfdatepicker table tr td.range.today.disabled:hover.disabled:focus,.cfdatepicker table tr td.range.today.disabled:hover.disabled:hover,.cfdatepicker table tr td.range.today.disabled:hover[disabled],.cfdatepicker table tr td.range.today.disabled:hover[disabled].active,.cfdatepicker table tr td.range.today.disabled:hover[disabled]:active,.cfdatepicker table tr td.range.today.disabled:hover[disabled]:focus,.cfdatepicker table tr td.range.today.disabled:hover[disabled]:hover,.cfdatepicker table tr td.range.today.disabled[disabled],.cfdatepicker table tr td.range.today.disabled[disabled].active,.cfdatepicker table tr td.range.today.disabled[disabled]:active,.cfdatepicker table tr td.range.today.disabled[disabled]:focus,.cfdatepicker table tr td.range.today.disabled[disabled]:hover,.cfdatepicker table tr td.range.today:hover.disabled,.cfdatepicker table tr td.range.today:hover.disabled.active,.cfdatepicker table tr td.range.today:hover.disabled:active,.cfdatepicker table tr td.range.today:hover.disabled:focus,.cfdatepicker table tr td.range.today:hover.disabled:hover,.cfdatepicker table tr td.range.today:hover[disabled],.cfdatepicker table tr td.range.today:hover[disabled].active,.cfdatepicker table tr td.range.today:hover[disabled]:active,.cfdatepicker table tr td.range.today:hover[disabled]:focus,.cfdatepicker table tr td.range.today:hover[disabled]:hover,.cfdatepicker table tr td.range.today[disabled],.cfdatepicker table tr td.range.today[disabled].active,.cfdatepicker table tr td.range.today[disabled]:active,.cfdatepicker table tr td.range.today[disabled]:focus,.cfdatepicker table tr td.range.today[disabled]:hover,fieldset[disabled] .cfdatepicker table tr td.range.today,fieldset[disabled] .cfdatepicker table tr td.range.today.active,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled.active,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:active,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:focus,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:hover,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:hover.active,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:hover:active,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:hover:focus,fieldset[disabled] .cfdatepicker table tr td.range.today.disabled:hover:hover,fieldset[disabled] .cfdatepicker table tr td.range.today:active,fieldset[disabled] .cfdatepicker table tr td.range.today:focus,fieldset[disabled] .cfdatepicker table tr td.range.today:hover,fieldset[disabled] .cfdatepicker table tr td.range.today:hover.active,fieldset[disabled] .cfdatepicker table tr td.range.today:hover:active,fieldset[disabled] .cfdatepicker table tr td.range.today:hover:focus,fieldset[disabled] .cfdatepicker table tr td.range.today:hover:hover{background-color:#f7ca77;border-color:#f1a417}.cfdatepicker table tr td.selected,.cfdatepicker table tr td.selected.disabled,.cfdatepicker table tr td.selected.disabled:hover,.cfdatepicker table tr td.selected:hover{color:#fff;background-color:#999;border-color:#555;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.cfdatepicker table tr td.selected.active,.cfdatepicker table tr td.selected.disabled.active,.cfdatepicker table tr td.selected.disabled:active,.cfdatepicker table tr td.selected.disabled:focus,.cfdatepicker table tr td.selected.disabled:hover,.cfdatepicker table tr td.selected.disabled:hover.active,.cfdatepicker table tr td.selected.disabled:hover:active,.cfdatepicker table tr td.selected.disabled:hover:focus,.cfdatepicker table tr td.selected.disabled:hover:hover,.cfdatepicker table tr td.selected:active,.cfdatepicker table tr td.selected:focus,.cfdatepicker table tr td.selected:hover,.cfdatepicker table tr td.selected:hover.active,.cfdatepicker table tr td.selected:hover:active,.cfdatepicker table tr td.selected:hover:focus,.cfdatepicker table tr td.selected:hover:hover,.open .dropdown-toggle.cfdatepicker table tr td.selected,.open .dropdown-toggle.cfdatepicker table tr td.selected.disabled,.open .dropdown-toggle.cfdatepicker table tr td.selected.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.selected:hover{color:#fff;background-color:#858585;border-color:#373737}.cfdatepicker table tr td.selected.disabled,.cfdatepicker table tr td.selected.disabled.active,.cfdatepicker table tr td.selected.disabled.disabled,.cfdatepicker table tr td.selected.disabled.disabled.active,.cfdatepicker table tr td.selected.disabled.disabled:active,.cfdatepicker table tr td.selected.disabled.disabled:focus,.cfdatepicker table tr td.selected.disabled.disabled:hover,.cfdatepicker table tr td.selected.disabled:active,.cfdatepicker table tr td.selected.disabled:focus,.cfdatepicker table tr td.selected.disabled:hover,.cfdatepicker table tr td.selected.disabled:hover.disabled,.cfdatepicker table tr td.selected.disabled:hover.disabled.active,.cfdatepicker table tr td.selected.disabled:hover.disabled:active,.cfdatepicker table tr td.selected.disabled:hover.disabled:focus,.cfdatepicker table tr td.selected.disabled:hover.disabled:hover,.cfdatepicker table tr td.selected.disabled:hover[disabled],.cfdatepicker table tr td.selected.disabled:hover[disabled].active,.cfdatepicker table tr td.selected.disabled:hover[disabled]:active,.cfdatepicker table tr td.selected.disabled:hover[disabled]:focus,.cfdatepicker table tr td.selected.disabled:hover[disabled]:hover,.cfdatepicker table tr td.selected.disabled[disabled],.cfdatepicker table tr td.selected.disabled[disabled].active,.cfdatepicker table tr td.selected.disabled[disabled]:active,.cfdatepicker table tr td.selected.disabled[disabled]:focus,.cfdatepicker table tr td.selected.disabled[disabled]:hover,.cfdatepicker table tr td.selected:hover.disabled,.cfdatepicker table tr td.selected:hover.disabled.active,.cfdatepicker table tr td.selected:hover.disabled:active,.cfdatepicker table tr td.selected:hover.disabled:focus,.cfdatepicker table tr td.selected:hover.disabled:hover,.cfdatepicker table tr td.selected:hover[disabled],.cfdatepicker table tr td.selected:hover[disabled].active,.cfdatepicker table tr td.selected:hover[disabled]:active,.cfdatepicker table tr td.selected:hover[disabled]:focus,.cfdatepicker table tr td.selected:hover[disabled]:hover,.cfdatepicker table tr td.selected[disabled],.cfdatepicker table tr td.selected[disabled].active,.cfdatepicker table tr td.selected[disabled]:active,.cfdatepicker table tr td.selected[disabled]:focus,.cfdatepicker table tr td.selected[disabled]:hover,fieldset[disabled] .cfdatepicker table tr td.selected,fieldset[disabled] .cfdatepicker table tr td.selected.active,fieldset[disabled] .cfdatepicker table tr td.selected.disabled,fieldset[disabled] .cfdatepicker table tr td.selected.disabled.active,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:active,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:focus,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:hover,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:hover.active,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:hover:active,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:hover:focus,fieldset[disabled] .cfdatepicker table tr td.selected.disabled:hover:hover,fieldset[disabled] .cfdatepicker table tr td.selected:active,fieldset[disabled] .cfdatepicker table tr td.selected:focus,fieldset[disabled] .cfdatepicker table tr td.selected:hover,fieldset[disabled] .cfdatepicker table tr td.selected:hover.active,fieldset[disabled] .cfdatepicker table tr td.selected:hover:active,fieldset[disabled] .cfdatepicker table tr td.selected:hover:focus,fieldset[disabled] .cfdatepicker table tr td.selected:hover:hover{background-color:#999;border-color:#555}.cfdatepicker table tr td.active,.cfdatepicker table tr td.active.disabled,.cfdatepicker table tr td.active.disabled:hover,.cfdatepicker table tr td.active:hover{color:#fff;background-color:#428bca;border-color:#357ebd;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.cfdatepicker table tr td.active.active,.cfdatepicker table tr td.active.disabled.active,.cfdatepicker table tr td.active.disabled:active,.cfdatepicker table tr td.active.disabled:focus,.cfdatepicker table tr td.active.disabled:hover,.cfdatepicker table tr td.active.disabled:hover.active,.cfdatepicker table tr td.active.disabled:hover:active,.cfdatepicker table tr td.active.disabled:hover:focus,.cfdatepicker table tr td.active.disabled:hover:hover,.cfdatepicker table tr td.active:active,.cfdatepicker table tr td.active:focus,.cfdatepicker table tr td.active:hover,.cfdatepicker table tr td.active:hover.active,.cfdatepicker table tr td.active:hover:active,.cfdatepicker table tr td.active:hover:focus,.cfdatepicker table tr td.active:hover:hover,.open .dropdown-toggle.cfdatepicker table tr td.active,.open .dropdown-toggle.cfdatepicker table tr td.active.disabled,.open .dropdown-toggle.cfdatepicker table tr td.active.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td.active:hover{color:#fff;background-color:#3276b1;border-color:#285e8e}.cfdatepicker table tr td.active.disabled,.cfdatepicker table tr td.active.disabled.active,.cfdatepicker table tr td.active.disabled.disabled,.cfdatepicker table tr td.active.disabled.disabled.active,.cfdatepicker table tr td.active.disabled.disabled:active,.cfdatepicker table tr td.active.disabled.disabled:focus,.cfdatepicker table tr td.active.disabled.disabled:hover,.cfdatepicker table tr td.active.disabled:active,.cfdatepicker table tr td.active.disabled:focus,.cfdatepicker table tr td.active.disabled:hover,.cfdatepicker table tr td.active.disabled:hover.disabled,.cfdatepicker table tr td.active.disabled:hover.disabled.active,.cfdatepicker table tr td.active.disabled:hover.disabled:active,.cfdatepicker table tr td.active.disabled:hover.disabled:focus,.cfdatepicker table tr td.active.disabled:hover.disabled:hover,.cfdatepicker table tr td.active.disabled:hover[disabled],.cfdatepicker table tr td.active.disabled:hover[disabled].active,.cfdatepicker table tr td.active.disabled:hover[disabled]:active,.cfdatepicker table tr td.active.disabled:hover[disabled]:focus,.cfdatepicker table tr td.active.disabled:hover[disabled]:hover,.cfdatepicker table tr td.active.disabled[disabled],.cfdatepicker table tr td.active.disabled[disabled].active,.cfdatepicker table tr td.active.disabled[disabled]:active,.cfdatepicker table tr td.active.disabled[disabled]:focus,.cfdatepicker table tr td.active.disabled[disabled]:hover,.cfdatepicker table tr td.active:hover.disabled,.cfdatepicker table tr td.active:hover.disabled.active,.cfdatepicker table tr td.active:hover.disabled:active,.cfdatepicker table tr td.active:hover.disabled:focus,.cfdatepicker table tr td.active:hover.disabled:hover,.cfdatepicker table tr td.active:hover[disabled],.cfdatepicker table tr td.active:hover[disabled].active,.cfdatepicker table tr td.active:hover[disabled]:active,.cfdatepicker table tr td.active:hover[disabled]:focus,.cfdatepicker table tr td.active:hover[disabled]:hover,.cfdatepicker table tr td.active[disabled],.cfdatepicker table tr td.active[disabled].active,.cfdatepicker table tr td.active[disabled]:active,.cfdatepicker table tr td.active[disabled]:focus,.cfdatepicker table tr td.active[disabled]:hover,fieldset[disabled] .cfdatepicker table tr td.active,fieldset[disabled] .cfdatepicker table tr td.active.active,fieldset[disabled] .cfdatepicker table tr td.active.disabled,fieldset[disabled] .cfdatepicker table tr td.active.disabled.active,fieldset[disabled] .cfdatepicker table tr td.active.disabled:active,fieldset[disabled] .cfdatepicker table tr td.active.disabled:focus,fieldset[disabled] .cfdatepicker table tr td.active.disabled:hover,fieldset[disabled] .cfdatepicker table tr td.active.disabled:hover.active,fieldset[disabled] .cfdatepicker table tr td.active.disabled:hover:active,fieldset[disabled] .cfdatepicker table tr td.active.disabled:hover:focus,fieldset[disabled] .cfdatepicker table tr td.active.disabled:hover:hover,fieldset[disabled] .cfdatepicker table tr td.active:active,fieldset[disabled] .cfdatepicker table tr td.active:focus,fieldset[disabled] .cfdatepicker table tr td.active:hover,fieldset[disabled] .cfdatepicker table tr td.active:hover.active,fieldset[disabled] .cfdatepicker table tr td.active:hover:active,fieldset[disabled] .cfdatepicker table tr td.active:hover:focus,fieldset[disabled] .cfdatepicker table tr td.active:hover:hover{background-color:#428bca;border-color:#357ebd}.cfdatepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;border-radius:4px}.cfdatepicker table tr td span:hover{background:#eee}.cfdatepicker table tr td span.disabled,.cfdatepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.cfdatepicker table tr td span.active,.cfdatepicker table tr td span.active.disabled,.cfdatepicker table tr td span.active.disabled:hover,.cfdatepicker table tr td span.active:hover{color:#fff;background-color:#428bca;border-color:#357ebd;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.cfdatepicker table tr td span.active.active,.cfdatepicker table tr td span.active.disabled.active,.cfdatepicker table tr td span.active.disabled:active,.cfdatepicker table tr td span.active.disabled:focus,.cfdatepicker table tr td span.active.disabled:hover,.cfdatepicker table tr td span.active.disabled:hover.active,.cfdatepicker table tr td span.active.disabled:hover:active,.cfdatepicker table tr td span.active.disabled:hover:focus,.cfdatepicker table tr td span.active.disabled:hover:hover,.cfdatepicker table tr td span.active:active,.cfdatepicker table tr td span.active:focus,.cfdatepicker table tr td span.active:hover,.cfdatepicker table tr td span.active:hover.active,.cfdatepicker table tr td span.active:hover:active,.cfdatepicker table tr td span.active:hover:focus,.cfdatepicker table tr td span.active:hover:hover,.open .dropdown-toggle.cfdatepicker table tr td span.active,.open .dropdown-toggle.cfdatepicker table tr td span.active.disabled,.open .dropdown-toggle.cfdatepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td span.active:hover{color:#fff;background-color:#3276b1;border-color:#285e8e}.cfdatepicker table tr td span.active.active,.cfdatepicker table tr td span.active.disabled.active,.cfdatepicker table tr td span.active.disabled:active,.cfdatepicker table tr td span.active.disabled:hover.active,.cfdatepicker table tr td span.active.disabled:hover:active,.cfdatepicker table tr td span.active:active,.cfdatepicker table tr td span.active:hover.active,.cfdatepicker table tr td span.active:hover:active,.open .dropdown-toggle.cfdatepicker table tr td span.active,.open .dropdown-toggle.cfdatepicker table tr td span.active.disabled,.open .dropdown-toggle.cfdatepicker table tr td span.active.disabled:hover,.open .dropdown-toggle.cfdatepicker table tr td span.active:hover{background-image:none}.cfdatepicker table tr td span.active.disabled,.cfdatepicker table tr td span.active.disabled.active,.cfdatepicker table tr td span.active.disabled.disabled,.cfdatepicker table tr td span.active.disabled.disabled.active,.cfdatepicker table tr td span.active.disabled.disabled:active,.cfdatepicker table tr td span.active.disabled.disabled:focus,.cfdatepicker table tr td span.active.disabled.disabled:hover,.cfdatepicker table tr td span.active.disabled:active,.cfdatepicker table tr td span.active.disabled:focus,.cfdatepicker table tr td span.active.disabled:hover,.cfdatepicker table tr td span.active.disabled:hover.disabled,.cfdatepicker table tr td span.active.disabled:hover.disabled.active,.cfdatepicker table tr td span.active.disabled:hover.disabled:active,.cfdatepicker table tr td span.active.disabled:hover.disabled:focus,.cfdatepicker table tr td span.active.disabled:hover.disabled:hover,.cfdatepicker table tr td span.active.disabled:hover[disabled],.cfdatepicker table tr td span.active.disabled:hover[disabled].active,.cfdatepicker table tr td span.active.disabled:hover[disabled]:active,.cfdatepicker table tr td span.active.disabled:hover[disabled]:focus,.cfdatepicker table tr td span.active.disabled:hover[disabled]:hover,.cfdatepicker table tr td span.active.disabled[disabled],.cfdatepicker table tr td span.active.disabled[disabled].active,.cfdatepicker table tr td span.active.disabled[disabled]:active,.cfdatepicker table tr td span.active.disabled[disabled]:focus,.cfdatepicker table tr td span.active.disabled[disabled]:hover,.cfdatepicker table tr td span.active:hover.disabled,.cfdatepicker table tr td span.active:hover.disabled.active,.cfdatepicker table tr td span.active:hover.disabled:active,.cfdatepicker table tr td span.active:hover.disabled:focus,.cfdatepicker table tr td span.active:hover.disabled:hover,.cfdatepicker table tr td span.active:hover[disabled],.cfdatepicker table tr td span.active:hover[disabled].active,.cfdatepicker table tr td span.active:hover[disabled]:active,.cfdatepicker table tr td span.active:hover[disabled]:focus,.cfdatepicker table tr td span.active:hover[disabled]:hover,.cfdatepicker table tr td span.active[disabled],.cfdatepicker table tr td span.active[disabled].active,.cfdatepicker table tr td span.active[disabled]:active,.cfdatepicker table tr td span.active[disabled]:focus,.cfdatepicker table tr td span.active[disabled]:hover,fieldset[disabled] .cfdatepicker table tr td span.active,fieldset[disabled] .cfdatepicker table tr td span.active.active,fieldset[disabled] .cfdatepicker table tr td span.active.disabled,fieldset[disabled] .cfdatepicker table tr td span.active.disabled.active,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:active,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:focus,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:hover,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:hover.active,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:hover:active,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:hover:focus,fieldset[disabled] .cfdatepicker table tr td span.active.disabled:hover:hover,fieldset[disabled] .cfdatepicker table tr td span.active:active,fieldset[disabled] .cfdatepicker table tr td span.active:focus,fieldset[disabled] .cfdatepicker table tr td span.active:hover,fieldset[disabled] .cfdatepicker table tr td span.active:hover.active,fieldset[disabled] .cfdatepicker table tr td span.active:hover:active,fieldset[disabled] .cfdatepicker table tr td span.active:hover:focus,fieldset[disabled] .cfdatepicker table tr td span.active:hover:hover{background-color:#428bca;border-color:#357ebd}.cfdatepicker table tr td span.new,.cfdatepicker table tr td span.old{color:#999}.cfdatepicker th.cfdatepicker-switch{width:145px}.cfdatepicker tfoot tr th,.cfdatepicker thead tr:first-child th{cursor:pointer}.cfdatepicker tfoot tr th:hover,.cfdatepicker thead tr:first-child th:hover{background:#eee}.cfdatepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.cfdatepicker thead tr:first-child th.cw{cursor:default;background-color:transparent}.input-group.date .input-group-addon i{cursor:pointer;width:16px;height:16px}.input-daterange input{text-align:center}.input-daterange input:first-child{border-radius:3px 0 0 3px}.input-daterange input:last-child{border-radius:0 3px 3px 0}.input-daterange .input-group-addon{width:auto;min-width:16px;padding:4px 5px;font-weight:400;line-height:1.42857143;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:solid #ccc;border-width:1px 0;margin-left:-5px;margin-right:-5px}.cfdatepicker.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.42857143}.cfdatepicker.dropdown-menu td,.cfdatepicker.dropdown-menu th{padding:4px 5px}.image-thumb{margin-left:63px;padding:6px 0 6px 6px}.image-picker-content.image-thumb-lrg{margin-bottom:6px}.image-picker-side-bar{float:left;margin-left:-68px;width:62px;max-width:100%}.image-thumb-lrg .image-picker-side-bar{background:#F6F6F6;border:1px solid #DFDFDF;float:none;margin:0 0 6px;padding:6px 6px 2px;text-align:center;width:auto}.image-picker-side-bar>img{border:1px solid #DFDFDF;width:62px}.image-thumb-lrg .image-picker-side-bar>img{-moz-box-sizing:border-box;box-sizing:border-box;max-width:100%;text-align:center;width:auto}.image-thumb .image-picker-main-content{margin-right:6px}.button.image-picker-button{margin:7px 0 0;width:110px;display:inline-block}.button.button-primary.image-picker-button{float:right;margin-left:6px;width:80px}.image-picker-main-content select{width:100%}.image-picker-sizer:disabled{opacity:.7;box-shadow:none;color:#A1A1A1}.button-primary.image-picker-button.image-picker-button-solo,.button.image-picker-button.image-picker-button-solo{width:170px;margin-top:0}.button-primary.image-picker-button.image-picker-button-solo{margin-top:7px;margin-left:0;float:none}.image-thumb-lrg .button.image-picker-button.cu-image-picker.image-picker-button-solo{width:120px}.image-thumb-lrg .button.button-primary.image-picker-button.cu-image-remover.image-picker-button-solo{float:right;margin:0 0 0 6px;width:auto}.cf-toggle-switch .btn-group>.btn-group,.cf-toggle-switch .btn-toolbar .btn-group,.cf-toggle-switch .btn-toolbar .input-group{float:left}.image-thumb-lrg .button.button-primary.image-picker-button.cu-image-remover{width:45%}input.cu-image-picker-file-select[type=file]{display:none}.rangeslider,.rangeslider__fill{background:#e6e6e6;display:block;height:8px;width:100%;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}.rangeslider__handle,.toggle_option_row input{display:inline-block}.rangeslider{position:relative}.rangeslider--disabled{filter:alpha(Opacity=40);opacity:.4}.rangeslider__fill{background:#0f0;position:absolute;top:0}.rangeslider__handle{background:#fff;border:1px solid #ccc;cursor:pointer;width:18px;height:18px;position:absolute;top:-5px;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%}input[type=range]:focus+.rangeslider .rangeslider__handle{-webkit-box-shadow:0 0 3px rgba(100,100,100,.9);-moz-box-shadow:0 0 3px rgba(100,100,100,.9);box-shadow:0 0 3px rgba(100,100,100,.9)}.recaptchatable #recaptcha_response_field{height:21px!important}.toggle_option_row{margin:4px 0}.toggle_option_row .dashicons-sort{cursor:move}.toggle_option_row .toggle_label_field,.toggle_option_row .toggle_value_field{width:136px;line-height:20px}.toggle_option_preview .button{border-radius:0;margin-right:-5px}.toggle_option_preview .button:first-child{border-radius:3px 0 0 3px}.toggle_option_preview .button:last-child{border-radius:0 3px 3px 0}.toggle_option_preview.toggle_vertical .button{width:100%}.toggle_option_preview.toggle_vertical .button:first-child{border-radius:3px 3px 0 0}.toggle_option_preview.toggle_vertical .button:last-child{border-radius:0 0 3px 3px}.cf-toggle-switch html{font-family:sans-serif}.cf-toggle-switch body{margin:0}.cf-toggle-switch article,.cf-toggle-switch aside,.cf-toggle-switch details,.cf-toggle-switch figcaption,.cf-toggle-switch figure,.cf-toggle-switch footer,.cf-toggle-switch header,.cf-toggle-switch hgroup,.cf-toggle-switch main,.cf-toggle-switch nav,.cf-toggle-switch section,.cf-toggle-switch summary{display:block}.cf-toggle-switch audio,.cf-toggle-switch canvas,.cf-toggle-switch progress,.cf-toggle-switch video{display:inline-block;vertical-align:baseline}.cf-toggle-switch audio:not([controls]){display:none;height:0}.cf-toggle-switch [hidden],.cf-toggle-switch template{display:none}.cf-toggle-switch a{background:0 0}.cf-toggle-switch a:active,.cf-toggle-switch a:hover{outline:0}.cf-toggle-switch abbr[title]{border-bottom:1px dotted}.cf-toggle-switch b,.cf-toggle-switch strong{font-weight:700}.cf-toggle-switch dfn{font-style:italic}.cf-toggle-switch h1{font-size:2em;margin:.67em 0}.cf-toggle-switch mark{background:#ff0;color:#000}.cf-toggle-switch .btn,.cf-toggle-switch .btn-danger.active,.cf-toggle-switch .btn-danger:active,.cf-toggle-switch .btn-default.active,.cf-toggle-switch .btn-default:active,.cf-toggle-switch .btn-info.active,.cf-toggle-switch .btn-info:active,.cf-toggle-switch .btn-primary.active,.cf-toggle-switch .btn-primary:active,.cf-toggle-switch .btn-success.active,.cf-toggle-switch .btn-success:active,.cf-toggle-switch .btn-warning.active,.cf-toggle-switch .btn-warning:active,.cf-toggle-switch .open .dropdown-toggle.btn-danger,.cf-toggle-switch .open .dropdown-toggle.btn-default,.cf-toggle-switch .open .dropdown-toggle.btn-info,.cf-toggle-switch .open .dropdown-toggle.btn-primary,.cf-toggle-switch .open .dropdown-toggle.btn-success,.cf-toggle-switch .open .dropdown-toggle.btn-warning{background-image:none}.cf-toggle-switch small{font-size:80%}.cf-toggle-switch sub,.cf-toggle-switch sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.cf-toggle-switch sup{top:-.5em}.cf-toggle-switch sub{bottom:-.25em}.cf-toggle-switch img{border:0}.cf-toggle-switch figure{margin:1em 40px}.cf-toggle-switch hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.cf-toggle-switch pre{overflow:auto}.cf-toggle-switch code,.cf-toggle-switch kbd,.cf-toggle-switch pre,.cf-toggle-switch samp{font-family:monospace,monospace;font-size:1em}.cf-toggle-switch button,.cf-toggle-switch input,.cf-toggle-switch optgroup,.cf-toggle-switch select,.cf-toggle-switch textarea{color:inherit;font:inherit;margin:0}.cf-toggle-switch button{overflow:visible}.cf-toggle-switch button,.cf-toggle-switch html input[type=button],.cf-toggle-switch input[type=reset],.cf-toggle-switch input[type=submit]{-webkit-appearance:button;cursor:pointer}.cf-toggle-switch button[disabled],.cf-toggle-switch html input[disabled]{cursor:default}.cf-toggle-switch button::-moz-focus-inner,.cf-toggle-switch input::-moz-focus-inner{border:0;padding:0}.cf-toggle-switch input{line-height:normal}.cf-toggle-switch input[type=checkbox],.cf-toggle-switch input[type=radio]{box-sizing:border-box;padding:0}.cf-toggle-switch input[type=number]::-webkit-inner-spin-button,.cf-toggle-switch input[type=number]::-webkit-outer-spin-button{height:auto}.cf-toggle-switch input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.cf-toggle-switch input[type=search]::-webkit-search-cancel-button,.cf-toggle-switch input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.cf-toggle-switch fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}.cf-toggle-switch legend{border:0;padding:0}.cf-toggle-switch textarea{overflow:auto}.cf-toggle-switch optgroup{font-weight:700}.cf-toggle-switch table{border-collapse:collapse;border-spacing:0}.cf-toggle-switch td,.cf-toggle-switch th{padding:0}.cf-toggle-switch .btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cf-toggle-switch .btn.active:focus,.cf-toggle-switch .btn:active:focus,.cf-toggle-switch .btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.cf-toggle-switch .btn-group .dropdown-toggle:active,.cf-toggle-switch .btn-group-vertical>.btn:focus,.cf-toggle-switch .btn-group.open .dropdown-toggle,.cf-toggle-switch .btn-group>.btn:focus{outline:0}.cf-toggle-switch .btn:focus,.cf-toggle-switch .btn:hover{color:#333;text-decoration:none}.cf-toggle-switch .btn.active,.cf-toggle-switch .btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.cf-toggle-switch .btn.disabled,.cf-toggle-switch .btn[disabled],.cf-toggle-switch fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.cf-toggle-switch .btn-default{color:#333;background-color:#fff;border-color:#ccc}.cf-toggle-switch .btn-default.active,.cf-toggle-switch .btn-default:active,.cf-toggle-switch .btn-default:focus,.cf-toggle-switch .btn-default:hover,.cf-toggle-switch .open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.cf-toggle-switch .btn-default.disabled,.cf-toggle-switch .btn-default.disabled.active,.cf-toggle-switch .btn-default.disabled:active,.cf-toggle-switch .btn-default.disabled:focus,.cf-toggle-switch .btn-default.disabled:hover,.cf-toggle-switch .btn-default[disabled],.cf-toggle-switch .btn-default[disabled].active,.cf-toggle-switch .btn-default[disabled]:active,.cf-toggle-switch .btn-default[disabled]:focus,.cf-toggle-switch .btn-default[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-default,.cf-toggle-switch fieldset[disabled] .btn-default.active,.cf-toggle-switch fieldset[disabled] .btn-default:active,.cf-toggle-switch fieldset[disabled] .btn-default:focus,.cf-toggle-switch fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.cf-toggle-switch .btn-default .badge{color:#fff;background-color:#333}.cf-toggle-switch .btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.cf-toggle-switch .btn-primary.active,.cf-toggle-switch .btn-primary:active,.cf-toggle-switch .btn-primary:focus,.cf-toggle-switch .btn-primary:hover,.cf-toggle-switch .open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.cf-toggle-switch .btn-primary.disabled,.cf-toggle-switch .btn-primary.disabled.active,.cf-toggle-switch .btn-primary.disabled:active,.cf-toggle-switch .btn-primary.disabled:focus,.cf-toggle-switch .btn-primary.disabled:hover,.cf-toggle-switch .btn-primary[disabled],.cf-toggle-switch .btn-primary[disabled].active,.cf-toggle-switch .btn-primary[disabled]:active,.cf-toggle-switch .btn-primary[disabled]:focus,.cf-toggle-switch .btn-primary[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-primary,.cf-toggle-switch fieldset[disabled] .btn-primary.active,.cf-toggle-switch fieldset[disabled] .btn-primary:active,.cf-toggle-switch fieldset[disabled] .btn-primary:focus,.cf-toggle-switch fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.cf-toggle-switch .btn-primary .badge{color:#428bca;background-color:#fff}.cf-toggle-switch .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.cf-toggle-switch .btn-success.active,.cf-toggle-switch .btn-success:active,.cf-toggle-switch .btn-success:focus,.cf-toggle-switch .btn-success:hover,.cf-toggle-switch .open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.cf-toggle-switch .btn-success.disabled,.cf-toggle-switch .btn-success.disabled.active,.cf-toggle-switch .btn-success.disabled:active,.cf-toggle-switch .btn-success.disabled:focus,.cf-toggle-switch .btn-success.disabled:hover,.cf-toggle-switch .btn-success[disabled],.cf-toggle-switch .btn-success[disabled].active,.cf-toggle-switch .btn-success[disabled]:active,.cf-toggle-switch .btn-success[disabled]:focus,.cf-toggle-switch .btn-success[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-success,.cf-toggle-switch fieldset[disabled] .btn-success.active,.cf-toggle-switch fieldset[disabled] .btn-success:active,.cf-toggle-switch fieldset[disabled] .btn-success:focus,.cf-toggle-switch fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.cf-toggle-switch .btn-success .badge{color:#5cb85c;background-color:#fff}.cf-toggle-switch .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.cf-toggle-switch .btn-info.active,.cf-toggle-switch .btn-info:active,.cf-toggle-switch .btn-info:focus,.cf-toggle-switch .btn-info:hover,.cf-toggle-switch .open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.cf-toggle-switch .btn-info.disabled,.cf-toggle-switch .btn-info.disabled.active,.cf-toggle-switch .btn-info.disabled:active,.cf-toggle-switch .btn-info.disabled:focus,.cf-toggle-switch .btn-info.disabled:hover,.cf-toggle-switch .btn-info[disabled],.cf-toggle-switch .btn-info[disabled].active,.cf-toggle-switch .btn-info[disabled]:active,.cf-toggle-switch .btn-info[disabled]:focus,.cf-toggle-switch .btn-info[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-info,.cf-toggle-switch fieldset[disabled] .btn-info.active,.cf-toggle-switch fieldset[disabled] .btn-info:active,.cf-toggle-switch fieldset[disabled] .btn-info:focus,.cf-toggle-switch fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.cf-toggle-switch .btn-info .badge{color:#5bc0de;background-color:#fff}.cf-toggle-switch .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.cf-toggle-switch .btn-warning.active,.cf-toggle-switch .btn-warning:active,.cf-toggle-switch .btn-warning:focus,.cf-toggle-switch .btn-warning:hover,.cf-toggle-switch .open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.cf-toggle-switch .btn-warning.disabled,.cf-toggle-switch .btn-warning.disabled.active,.cf-toggle-switch .btn-warning.disabled:active,.cf-toggle-switch .btn-warning.disabled:focus,.cf-toggle-switch .btn-warning.disabled:hover,.cf-toggle-switch .btn-warning[disabled],.cf-toggle-switch .btn-warning[disabled].active,.cf-toggle-switch .btn-warning[disabled]:active,.cf-toggle-switch .btn-warning[disabled]:focus,.cf-toggle-switch .btn-warning[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-warning,.cf-toggle-switch fieldset[disabled] .btn-warning.active,.cf-toggle-switch fieldset[disabled] .btn-warning:active,.cf-toggle-switch fieldset[disabled] .btn-warning:focus,.cf-toggle-switch fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.cf-toggle-switch .btn-warning .badge{color:#f0ad4e;background-color:#fff}.cf-toggle-switch .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.cf-toggle-switch .btn-danger.active,.cf-toggle-switch .btn-danger:active,.cf-toggle-switch .btn-danger:focus,.cf-toggle-switch .btn-danger:hover,.cf-toggle-switch .open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.cf-toggle-switch .btn-danger.disabled,.cf-toggle-switch .btn-danger.disabled.active,.cf-toggle-switch .btn-danger.disabled:active,.cf-toggle-switch .btn-danger.disabled:focus,.cf-toggle-switch .btn-danger.disabled:hover,.cf-toggle-switch .btn-danger[disabled],.cf-toggle-switch .btn-danger[disabled].active,.cf-toggle-switch .btn-danger[disabled]:active,.cf-toggle-switch .btn-danger[disabled]:focus,.cf-toggle-switch .btn-danger[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-danger,.cf-toggle-switch fieldset[disabled] .btn-danger.active,.cf-toggle-switch fieldset[disabled] .btn-danger:active,.cf-toggle-switch fieldset[disabled] .btn-danger:focus,.cf-toggle-switch fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.cf-toggle-switch .btn-danger .badge{color:#d9534f;background-color:#fff}.cf-toggle-switch .btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.cf-toggle-switch .btn-link,.cf-toggle-switch .btn-link:active,.cf-toggle-switch .btn-link[disabled],.cf-toggle-switch fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.cf-toggle-switch .btn-link,.cf-toggle-switch .btn-link:active,.cf-toggle-switch .btn-link:focus,.cf-toggle-switch .btn-link:hover{border-color:transparent}.cf-toggle-switch .btn-link:focus,.cf-toggle-switch .btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.cf-toggle-switch .btn-link[disabled]:focus,.cf-toggle-switch .btn-link[disabled]:hover,.cf-toggle-switch fieldset[disabled] .btn-link:focus,.cf-toggle-switch fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.cf-toggle-switch .btn-group-lg>.btn,.cf-toggle-switch .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.cf-toggle-switch .btn-group-sm>.btn,.cf-toggle-switch .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.cf-toggle-switch .btn-group-xs>.btn,.cf-toggle-switch .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.cf-toggle-switch .btn-group-vertical>.btn:not(:first-child):not(:last-child),.cf-toggle-switch .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.cf-toggle-switch .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.cf-toggle-switch .btn-block{display:block;width:100%;padding-left:0;padding-right:0}.cf-toggle-switch .btn-block+.btn-block{margin-top:5px}.cf-toggle-switch input[type=button].btn-block,.cf-toggle-switch input[type=reset].btn-block,.cf-toggle-switch input[type=submit].btn-block{width:100%}.cf-toggle-switch .btn-group,.cf-toggle-switch .btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.cf-toggle-switch .btn-group-vertical>.btn,.cf-toggle-switch .btn-group>.btn{position:relative;float:left}.cf-toggle-switch .btn-group-vertical>.btn.active,.cf-toggle-switch .btn-group-vertical>.btn:active,.cf-toggle-switch .btn-group-vertical>.btn:focus,.cf-toggle-switch .btn-group-vertical>.btn:hover,.cf-toggle-switch .btn-group>.btn.active,.cf-toggle-switch .btn-group>.btn:active,.cf-toggle-switch .btn-group>.btn:focus,.cf-toggle-switch .btn-group>.btn:hover{z-index:2}.cf-toggle-switch .btn-group .btn+.btn,.cf-toggle-switch .btn-group .btn+.btn-group,.cf-toggle-switch .btn-group .btn-group+.btn,.cf-toggle-switch .btn-group .btn-group+.btn-group{margin-left:-1px}.cf-toggle-switch .btn-toolbar{margin-left:-5px}.cf-toggle-switch .btn-toolbar>.btn,.cf-toggle-switch .btn-toolbar>.btn-group,.cf-toggle-switch .btn-toolbar>.input-group{margin-left:5px}.cf-toggle-switch .btn .caret,.cf-toggle-switch .btn-group>.btn:first-child{margin-left:0}.cf-toggle-switch .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.cf-toggle-switch .btn-group>.btn:last-child:not(:first-child),.cf-toggle-switch .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.cf-toggle-switch .btn-group>.btn-group:first-child>.btn:last-child,.cf-toggle-switch .btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.cf-toggle-switch .btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.cf-toggle-switch .btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.cf-toggle-switch .btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.cf-toggle-switch .btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.cf-toggle-switch .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.cf-toggle-switch .btn-lg .caret{border-width:5px 5px 0}.cf-toggle-switch .dropup .btn-lg .caret{border-width:0 5px 5px}.cf-toggle-switch .btn-group-vertical>.btn,.cf-toggle-switch .btn-group-vertical>.btn-group,.cf-toggle-switch .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.cf-toggle-switch .btn-group-vertical>.btn-group>.btn{float:none}.cf-toggle-switch .btn-group-vertical>.btn+.btn,.cf-toggle-switch .btn-group-vertical>.btn+.btn-group,.cf-toggle-switch .btn-group-vertical>.btn-group+.btn,.cf-toggle-switch .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.cf-toggle-switch .btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.cf-toggle-switch .btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.cf-toggle-switch .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.cf-toggle-switch .btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.cf-toggle-switch .btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.cf-toggle-switch .btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.cf-toggle-switch .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.cf-toggle-switch .btn-group-justified>.btn,.cf-toggle-switch .btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.cf-toggle-switch .btn-group-justified>.btn-group .btn{width:100%}.cf-toggle-switch [data-toggle=buttons]>.btn>input[type=checkbox],.cf-toggle-switch [data-toggle=buttons]>.btn>input[type=radio]{display:none}.cf-toggle-switch .btn-group-vertical>.btn-group:after,.cf-toggle-switch .btn-group-vertical>.btn-group:before,.cf-toggle-switch .btn-toolbar:after,.cf-toggle-switch .btn-toolbar:before,.cf-toggle-switch .clearfix:after,.cf-toggle-switch .clearfix:before{content:" ";display:table}.cf-toggle-switch .btn-group-vertical>.btn-group:after,.cf-toggle-switch .btn-toolbar:after,.cf-toggle-switch .clearfix:after{clear:both}.cf-toggle-switch .center-block{display:block;margin-left:auto;margin-right:auto}.cf-toggle-switch .pull-right{float:right!important}.cf-toggle-switch .pull-left{float:left!important}.cf-toggle-switch .hide{display:none!important}.cf-toggle-switch .show{display:block!important}.cf-toggle-switch .invisible{visibility:hidden}.cf-toggle-switch .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.cf-toggle-switch .hidden{display:none!important;visibility:hidden!important}.cf-toggle-switch .affix{position:fixed}@-ms-viewport{width:device-width}.cf-toggle-switch .visible-lg,.cf-toggle-switch .visible-md,.cf-toggle-switch .visible-print,.cf-toggle-switch .visible-sm,.cf-toggle-switch .visible-xs{display:none!important}@media (max-width:767px){.cf-toggle-switch .visible-xs{display:block!important}.cf-toggle-switch table.visible-xs{display:table}.cf-toggle-switch tr.visible-xs{display:table-row!important}.cf-toggle-switch td.visible-xs,.cf-toggle-switch th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.cf-toggle-switch .visible-sm{display:block!important}.cf-toggle-switch table.visible-sm{display:table}.cf-toggle-switch tr.visible-sm{display:table-row!important}.cf-toggle-switch td.visible-sm,.cf-toggle-switch th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.cf-toggle-switch .visible-md{display:block!important}.cf-toggle-switch table.visible-md{display:table}.cf-toggle-switch tr.visible-md{display:table-row!important}.cf-toggle-switch td.visible-md,.cf-toggle-switch th.visible-md{display:table-cell!important}}@media (min-width:1200px){.cf-toggle-switch .visible-lg{display:block!important}.cf-toggle-switch table.visible-lg{display:table}.cf-toggle-switch tr.visible-lg{display:table-row!important}.cf-toggle-switch td.visible-lg,.cf-toggle-switch th.visible-lg{display:table-cell!important}.cf-toggle-switch .hidden-lg{display:none!important}}@media (max-width:767px){.cf-toggle-switch .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.cf-toggle-switch .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.cf-toggle-switch .hidden-md{display:none!important}}@media print{.cf-toggle-switch .visible-print{display:block!important}.cf-toggle-switch table.visible-print{display:table}.cf-toggle-switch tr.visible-print{display:table-row!important}.cf-toggle-switch td.visible-print,.cf-toggle-switch th.visible-print{display:table-cell!important}.cf-toggle-switch .hidden-print{display:none!important}}.cf-toggle-group-buttons{width:100%;clear:both}input.form-control.parsley-success,select.form-control.parsley-success,textarea.form-control.parsley-success{color:#468847;background-color:#DFF0D8;border-color:#D6E9C6}input.form-control.parsley-error,select.form-control.parsley-error,textarea.form-control.parsley-error{color:#B94A48;background-color:#F2DEDE;border-color:#EED3D7}.form-control.parsley-errors-list{margin:2px 0 3px;padding:0;list-style-type:none;font-size:.9em;line-height:.9em;opacity:0;color:#468847;transition:all .3s ease-in;-o-transition:all .3s ease-in;-moz-transition:all .3s ease-in;-webkit-transition:all .3s ease-in}.form-control.parsley-errors-list.filled{opacity:1}.breadcrumb a.has-error{color:red}.form-group .parsley-errors-list.filled,.form-group .parsley-errors-list.filled .parsley-type{list-style:none}.caldera-grid .cf-multi-uploader-list>ul{list-style:none;margin:0 0 12px;padding:0}.caldera-grid .cf-multi-uploader-list>ul>li{margin:0;padding:0 0 22px;position:relative;clear:both}.caldera-grid .cf-multi-uploader-list>ul>li .file-name{display:inline-block;font-weight:700;left:16px;right:0;overflow:hidden;position:absolute;text-overflow:ellipsis;white-space:nowrap}.caldera-grid .cf-multi-uploader-list>ul>li .file-name.file-uploaded{left:0}.caldera-grid .cf-multi-uploader-list>ul>li .file-size{float:right}.caldera-grid .cf-multi-uploader-list>ul>li .file-type{float:left}.caldera-grid .cf-multi-uploader-list>ul>li .file-error{clear:both;display:block}.caldera-grid .cf-multi-uploader-list>ul>li .cf-file-remove{color:#cf0000;text-decoration:none;border:0}.caldera-grid .cf-multi-uploader-list>ul>li.has-error .bar{background-color:#cf0000!important}.caldera-grid .cf-multi-uploader-list>ul>li.has-error{color:#cf0000}.has-error.cf-toggle-switch .cf-toggle-group-buttons>a{background-color:#f2dede;border-color:#dd4b39}.cfdatepicker{z-index:10011!important}
|
assets/css/caldera-forms-front.css
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! GENERATED SOURCE FILE caldera-forms - v1.5.8.2 - 2017-12-22 */.caldera-grid body{margin:0}.caldera-grid .form-group{margin-bottom:1em}@media (min-width:768px){.caldera-grid .container{width:750px}}@media (min-width:992px){.caldera-grid .container{width:970px}}@media (min-width:1200px){.caldera-grid .container{width:1170px}}.caldera-grid article,.caldera-grid aside,.caldera-grid details,.caldera-grid figcaption,.caldera-grid figure,.caldera-grid footer,.caldera-grid header,.caldera-grid hgroup,.caldera-grid main,.caldera-grid nav,.caldera-grid section,.caldera-grid summary{display:block}.caldera-grid audio,.caldera-grid canvas,.caldera-grid progress,.caldera-grid video{display:inline-block;vertical-align:baseline}.caldera-grid audio:not([controls]){display:none;height:0}.caldera-grid [hidden],.caldera-grid template{display:none}.caldera-grid a{background:0 0;text-decoration:none}.caldera-grid a:active,.caldera-grid a:hover{outline:0}.caldera-grid abbr[title]{border-bottom:1px dotted}.caldera-grid b,.caldera-grid strong{font-weight:700}.caldera-grid dfn{font-style:italic}.caldera-grid h1{font-size:2em;margin:.67em 0}.caldera-grid mark{background:#ff0;color:#000}.caldera-grid small{font-size:80%}.caldera-grid sub,.caldera-grid sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.caldera-grid sup{top:-.5em}.caldera-grid sub{bottom:-.25em}.caldera-grid img{border:0;vertical-align:middle}.caldera-grid svg:not(:root){overflow:hidden}.caldera-grid hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.caldera-grid pre{overflow:auto}.caldera-grid code,.caldera-grid kbd,.caldera-grid pre,.caldera-grid samp{font-family:monospace,monospace;font-size:1em}.caldera-grid button,.caldera-grid input,.caldera-grid optgroup,.caldera-grid select,.caldera-grid textarea{font:inherit;margin:0}.caldera-grid button{overflow:visible}.caldera-grid button,.caldera-grid select{text-transform:none}.caldera-grid button,.caldera-grid html input[type=button],.caldera-grid input[type=reset],.caldera-grid input[type=submit]{-webkit-appearance:button;cursor:pointer}.caldera-grid button[disabled],.caldera-grid html input[disabled]{cursor:default}.caldera-grid button::-moz-focus-inner,.caldera-grid input::-moz-focus-inner{border:0;padding:0}.caldera-grid input[type=checkbox],.caldera-grid input[type=radio]{box-sizing:border-box;padding:0}.caldera-grid input[type=number]::-webkit-inner-spin-button,.caldera-grid input[type=number]::-webkit-outer-spin-button{height:auto}.caldera-grid input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.caldera-grid input[type=search]::-webkit-search-cancel-button,.caldera-grid input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.caldera-grid fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}.caldera-grid legend{border:0;padding:0}.caldera-grid textarea{overflow:auto}.caldera-grid optgroup{font-weight:700}.caldera-grid table{border-collapse:collapse;border-spacing:0}.caldera-grid td,.caldera-grid th{padding:0}.caldera-grid *,.caldera-grid :after,.caldera-grid :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.caldera-grid html{font-size:62.5%;-webkit-tap-highlight-color:transparent}.caldera-grid body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}.caldera-grid button,.caldera-grid input,.caldera-grid select,.caldera-grid textarea{font-family:inherit;font-size:inherit;line-height:inherit}.caldera-grid a:focus,.caldera-grid a:hover{color:#2a6496;text-decoration:underline}.caldera-grid a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid figure{margin:0}.caldera-grid .img-responsive{display:block;max-width:100%;height:auto}.caldera-grid .img-rounded{border-radius:6px}.caldera-grid .img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.caldera-grid .img-circle{border-radius:50%}.caldera-grid hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.caldera-grid .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.caldera-grid .container,.caldera-grid .container-fluid{margin-right:auto;margin-left:auto;padding-left:7.5px;padding-right:7.5px}@media (min-width:768px){.caldera-grid .container{width:735px}}@media (min-width:992px){.caldera-grid .container{width:955px}}@media (min-width:1200px){.caldera-grid .container{width:1155px}}.caldera-grid .row{margin-left:-7.5px;margin-right:-7.5px;max-width:100%}.caldera-grid .col-lg-1,.caldera-grid .col-lg-10,.caldera-grid .col-lg-11,.caldera-grid .col-lg-12,.caldera-grid .col-lg-2,.caldera-grid .col-lg-3,.caldera-grid .col-lg-4,.caldera-grid .col-lg-5,.caldera-grid .col-lg-6,.caldera-grid .col-lg-7,.caldera-grid .col-lg-8,.caldera-grid .col-lg-9,.caldera-grid .col-md-1,.caldera-grid .col-md-10,.caldera-grid .col-md-11,.caldera-grid .col-md-12,.caldera-grid .col-md-2,.caldera-grid .col-md-3,.caldera-grid .col-md-4,.caldera-grid .col-md-5,.caldera-grid .col-md-6,.caldera-grid .col-md-7,.caldera-grid .col-md-8,.caldera-grid .col-md-9,.caldera-grid .col-sm-1,.caldera-grid .col-sm-10,.caldera-grid .col-sm-11,.caldera-grid .col-sm-12,.caldera-grid .col-sm-2,.caldera-grid .col-sm-3,.caldera-grid .col-sm-4,.caldera-grid .col-sm-5,.caldera-grid .col-sm-6,.caldera-grid .col-sm-7,.caldera-grid .col-sm-8,.caldera-grid .col-sm-9,.caldera-grid .col-xs-1,.caldera-grid .col-xs-10,.caldera-grid .col-xs-11,.caldera-grid .col-xs-12,.caldera-grid .col-xs-2,.caldera-grid .col-xs-3,.caldera-grid .col-xs-4,.caldera-grid .col-xs-5,.caldera-grid .col-xs-6,.caldera-grid .col-xs-7,.caldera-grid .col-xs-8,.caldera-grid .col-xs-9{position:relative;padding-left:7.5px;padding-right:7.5px}.caldera-grid .col-xs-1,.caldera-grid .col-xs-10,.caldera-grid .col-xs-11,.caldera-grid .col-xs-12,.caldera-grid .col-xs-2,.caldera-grid .col-xs-3,.caldera-grid .col-xs-4,.caldera-grid .col-xs-5,.caldera-grid .col-xs-6,.caldera-grid .col-xs-7,.caldera-grid .col-xs-8,.caldera-grid .col-xs-9{float:left}.caldera-grid .col-xs-12{width:100%}.caldera-grid .col-xs-11{width:91.66666667%}.caldera-grid .col-xs-10{width:83.33333333%}.caldera-grid .col-xs-9{width:75%}.caldera-grid .col-xs-8{width:66.66666667%}.caldera-grid .col-xs-7{width:58.33333333%}.caldera-grid .col-xs-6{width:50%}.caldera-grid .col-xs-5{width:41.66666667%}.caldera-grid .col-xs-4{width:33.33333333%}.caldera-grid .col-xs-3{width:25%}.caldera-grid .col-xs-2{width:16.66666667%}.caldera-grid .col-xs-1{width:8.33333333%}.caldera-grid .col-xs-pull-12{right:100%}.caldera-grid .col-xs-pull-11{right:91.66666667%}.caldera-grid .col-xs-pull-10{right:83.33333333%}.caldera-grid .col-xs-pull-9{right:75%}.caldera-grid .col-xs-pull-8{right:66.66666667%}.caldera-grid .col-xs-pull-7{right:58.33333333%}.caldera-grid .col-xs-pull-6{right:50%}.caldera-grid .col-xs-pull-5{right:41.66666667%}.caldera-grid .col-xs-pull-4{right:33.33333333%}.caldera-grid .col-xs-pull-3{right:25%}.caldera-grid .col-xs-pull-2{right:16.66666667%}.caldera-grid .col-xs-pull-1{right:8.33333333%}.caldera-grid .col-xs-pull-0{right:0}.caldera-grid .col-xs-push-12{left:100%}.caldera-grid .col-xs-push-11{left:91.66666667%}.caldera-grid .col-xs-push-10{left:83.33333333%}.caldera-grid .col-xs-push-9{left:75%}.caldera-grid .col-xs-push-8{left:66.66666667%}.caldera-grid .col-xs-push-7{left:58.33333333%}.caldera-grid .col-xs-push-6{left:50%}.caldera-grid .col-xs-push-5{left:41.66666667%}.caldera-grid .col-xs-push-4{left:33.33333333%}.caldera-grid .col-xs-push-3{left:25%}.caldera-grid .col-xs-push-2{left:16.66666667%}.caldera-grid .col-xs-push-1{left:8.33333333%}.caldera-grid .col-xs-push-0{left:0}.caldera-grid .col-xs-offset-12{margin-left:100%}.caldera-grid .col-xs-offset-11{margin-left:91.66666667%}.caldera-grid .col-xs-offset-10{margin-left:83.33333333%}.caldera-grid .col-xs-offset-9{margin-left:75%}.caldera-grid .col-xs-offset-8{margin-left:66.66666667%}.caldera-grid .col-xs-offset-7{margin-left:58.33333333%}.caldera-grid .col-xs-offset-6{margin-left:50%}.caldera-grid .col-xs-offset-5{margin-left:41.66666667%}.caldera-grid .col-xs-offset-4{margin-left:33.33333333%}.caldera-grid .col-xs-offset-3{margin-left:25%}.caldera-grid .col-xs-offset-2{margin-left:16.66666667%}.caldera-grid .col-xs-offset-1{margin-left:8.33333333%}.caldera-grid .col-xs-offset-0{margin-left:0}@media (min-width:768px){.caldera-grid .col-sm-1,.caldera-grid .col-sm-10,.caldera-grid .col-sm-11,.caldera-grid .col-sm-12,.caldera-grid .col-sm-2,.caldera-grid .col-sm-3,.caldera-grid .col-sm-4,.caldera-grid .col-sm-5,.caldera-grid .col-sm-6,.caldera-grid .col-sm-7,.caldera-grid .col-sm-8,.caldera-grid .col-sm-9{float:left}.caldera-grid .col-sm-12{width:100%}.caldera-grid .col-sm-11{width:91.66666667%}.caldera-grid .col-sm-10{width:83.33333333%}.caldera-grid .col-sm-9{width:75%}.caldera-grid .col-sm-8{width:66.66666667%}.caldera-grid .col-sm-7{width:58.33333333%}.caldera-grid .col-sm-6{width:50%}.caldera-grid .col-sm-5{width:41.66666667%}.caldera-grid .col-sm-4{width:33.33333333%}.caldera-grid .col-sm-3{width:25%}.caldera-grid .col-sm-2{width:16.66666667%}.caldera-grid .col-sm-1{width:8.33333333%}.caldera-grid .col-sm-pull-12{right:100%}.caldera-grid .col-sm-pull-11{right:91.66666667%}.caldera-grid .col-sm-pull-10{right:83.33333333%}.caldera-grid .col-sm-pull-9{right:75%}.caldera-grid .col-sm-pull-8{right:66.66666667%}.caldera-grid .col-sm-pull-7{right:58.33333333%}.caldera-grid .col-sm-pull-6{right:50%}.caldera-grid .col-sm-pull-5{right:41.66666667%}.caldera-grid .col-sm-pull-4{right:33.33333333%}.caldera-grid .col-sm-pull-3{right:25%}.caldera-grid .col-sm-pull-2{right:16.66666667%}.caldera-grid .col-sm-pull-1{right:8.33333333%}.caldera-grid .col-sm-pull-0{right:0}.caldera-grid .col-sm-push-12{left:100%}.caldera-grid .col-sm-push-11{left:91.66666667%}.caldera-grid .col-sm-push-10{left:83.33333333%}.caldera-grid .col-sm-push-9{left:75%}.caldera-grid .col-sm-push-8{left:66.66666667%}.caldera-grid .col-sm-push-7{left:58.33333333%}.caldera-grid .col-sm-push-6{left:50%}.caldera-grid .col-sm-push-5{left:41.66666667%}.caldera-grid .col-sm-push-4{left:33.33333333%}.caldera-grid .col-sm-push-3{left:25%}.caldera-grid .col-sm-push-2{left:16.66666667%}.caldera-grid .col-sm-push-1{left:8.33333333%}.caldera-grid .col-sm-push-0{left:0}.caldera-grid .col-sm-offset-12{margin-left:100%}.caldera-grid .col-sm-offset-11{margin-left:91.66666667%}.caldera-grid .col-sm-offset-10{margin-left:83.33333333%}.caldera-grid .col-sm-offset-9{margin-left:75%}.caldera-grid .col-sm-offset-8{margin-left:66.66666667%}.caldera-grid .col-sm-offset-7{margin-left:58.33333333%}.caldera-grid .col-sm-offset-6{margin-left:50%}.caldera-grid .col-sm-offset-5{margin-left:41.66666667%}.caldera-grid .col-sm-offset-4{margin-left:33.33333333%}.caldera-grid .col-sm-offset-3{margin-left:25%}.caldera-grid .col-sm-offset-2{margin-left:16.66666667%}.caldera-grid .col-sm-offset-1{margin-left:8.33333333%}.caldera-grid .col-sm-offset-0{margin-left:0}}@media (min-width:992px){.caldera-grid .col-md-1,.caldera-grid .col-md-10,.caldera-grid .col-md-11,.caldera-grid .col-md-12,.caldera-grid .col-md-2,.caldera-grid .col-md-3,.caldera-grid .col-md-4,.caldera-grid .col-md-5,.caldera-grid .col-md-6,.caldera-grid .col-md-7,.caldera-grid .col-md-8,.caldera-grid .col-md-9{float:left}.caldera-grid .col-md-12{width:100%}.caldera-grid .col-md-11{width:91.66666667%}.caldera-grid .col-md-10{width:83.33333333%}.caldera-grid .col-md-9{width:75%}.caldera-grid .col-md-8{width:66.66666667%}.caldera-grid .col-md-7{width:58.33333333%}.caldera-grid .col-md-6{width:50%}.caldera-grid .col-md-5{width:41.66666667%}.caldera-grid .col-md-4{width:33.33333333%}.caldera-grid .col-md-3{width:25%}.caldera-grid .col-md-2{width:16.66666667%}.caldera-grid .col-md-1{width:8.33333333%}.caldera-grid .col-md-pull-12{right:100%}.caldera-grid .col-md-pull-11{right:91.66666667%}.caldera-grid .col-md-pull-10{right:83.33333333%}.caldera-grid .col-md-pull-9{right:75%}.caldera-grid .col-md-pull-8{right:66.66666667%}.caldera-grid .col-md-pull-7{right:58.33333333%}.caldera-grid .col-md-pull-6{right:50%}.caldera-grid .col-md-pull-5{right:41.66666667%}.caldera-grid .col-md-pull-4{right:33.33333333%}.caldera-grid .col-md-pull-3{right:25%}.caldera-grid .col-md-pull-2{right:16.66666667%}.caldera-grid .col-md-pull-1{right:8.33333333%}.caldera-grid .col-md-pull-0{right:0}.caldera-grid .col-md-push-12{left:100%}.caldera-grid .col-md-push-11{left:91.66666667%}.caldera-grid .col-md-push-10{left:83.33333333%}.caldera-grid .col-md-push-9{left:75%}.caldera-grid .col-md-push-8{left:66.66666667%}.caldera-grid .col-md-push-7{left:58.33333333%}.caldera-grid .col-md-push-6{left:50%}.caldera-grid .col-md-push-5{left:41.66666667%}.caldera-grid .col-md-push-4{left:33.33333333%}.caldera-grid .col-md-push-3{left:25%}.caldera-grid .col-md-push-2{left:16.66666667%}.caldera-grid .col-md-push-1{left:8.33333333%}.caldera-grid .col-md-push-0{left:0}.caldera-grid .col-md-offset-12{margin-left:100%}.caldera-grid .col-md-offset-11{margin-left:91.66666667%}.caldera-grid .col-md-offset-10{margin-left:83.33333333%}.caldera-grid .col-md-offset-9{margin-left:75%}.caldera-grid .col-md-offset-8{margin-left:66.66666667%}.caldera-grid .col-md-offset-7{margin-left:58.33333333%}.caldera-grid .col-md-offset-6{margin-left:50%}.caldera-grid .col-md-offset-5{margin-left:41.66666667%}.caldera-grid .col-md-offset-4{margin-left:33.33333333%}.caldera-grid .col-md-offset-3{margin-left:25%}.caldera-grid .col-md-offset-2{margin-left:16.66666667%}.caldera-grid .col-md-offset-1{margin-left:8.33333333%}.caldera-grid .col-md-offset-0{margin-left:0}}@-ms-viewport{width:device-width}@media (min-width:1200px){.caldera-grid .col-lg-1,.caldera-grid .col-lg-10,.caldera-grid .col-lg-11,.caldera-grid .col-lg-12,.caldera-grid .col-lg-2,.caldera-grid .col-lg-3,.caldera-grid .col-lg-4,.caldera-grid .col-lg-5,.caldera-grid .col-lg-6,.caldera-grid .col-lg-7,.caldera-grid .col-lg-8,.caldera-grid .col-lg-9{float:left}.caldera-grid .col-lg-12{width:100%}.caldera-grid .col-lg-11{width:91.66666667%}.caldera-grid .col-lg-10{width:83.33333333%}.caldera-grid .col-lg-9{width:75%}.caldera-grid .col-lg-8{width:66.66666667%}.caldera-grid .col-lg-7{width:58.33333333%}.caldera-grid .col-lg-6{width:50%}.caldera-grid .col-lg-5{width:41.66666667%}.caldera-grid .col-lg-4{width:33.33333333%}.caldera-grid .col-lg-3{width:25%}.caldera-grid .col-lg-2{width:16.66666667%}.caldera-grid .col-lg-1{width:8.33333333%}.caldera-grid .col-lg-pull-12{right:100%}.caldera-grid .col-lg-pull-11{right:91.66666667%}.caldera-grid .col-lg-pull-10{right:83.33333333%}.caldera-grid .col-lg-pull-9{right:75%}.caldera-grid .col-lg-pull-8{right:66.66666667%}.caldera-grid .col-lg-pull-7{right:58.33333333%}.caldera-grid .col-lg-pull-6{right:50%}.caldera-grid .col-lg-pull-5{right:41.66666667%}.caldera-grid .col-lg-pull-4{right:33.33333333%}.caldera-grid .col-lg-pull-3{right:25%}.caldera-grid .col-lg-pull-2{right:16.66666667%}.caldera-grid .col-lg-pull-1{right:8.33333333%}.caldera-grid .col-lg-pull-0{right:0}.caldera-grid .col-lg-push-12{left:100%}.caldera-grid .col-lg-push-11{left:91.66666667%}.caldera-grid .col-lg-push-10{left:83.33333333%}.caldera-grid .col-lg-push-9{left:75%}.caldera-grid .col-lg-push-8{left:66.66666667%}.caldera-grid .col-lg-push-7{left:58.33333333%}.caldera-grid .col-lg-push-6{left:50%}.caldera-grid .col-lg-push-5{left:41.66666667%}.caldera-grid .col-lg-push-4{left:33.33333333%}.caldera-grid .col-lg-push-3{left:25%}.caldera-grid .col-lg-push-2{left:16.66666667%}.caldera-grid .col-lg-push-1{left:8.33333333%}.caldera-grid .col-lg-push-0{left:0}.caldera-grid .col-lg-offset-12{margin-left:100%}.caldera-grid .col-lg-offset-11{margin-left:91.66666667%}.caldera-grid .col-lg-offset-10{margin-left:83.33333333%}.caldera-grid .col-lg-offset-9{margin-left:75%}.caldera-grid .col-lg-offset-8{margin-left:66.66666667%}.caldera-grid .col-lg-offset-7{margin-left:58.33333333%}.caldera-grid .col-lg-offset-6{margin-left:50%}.caldera-grid .col-lg-offset-5{margin-left:41.66666667%}.caldera-grid .col-lg-offset-4{margin-left:33.33333333%}.caldera-grid .col-lg-offset-3{margin-left:25%}.caldera-grid .col-lg-offset-2{margin-left:16.66666667%}.caldera-grid .col-lg-offset-1{margin-left:8.33333333%}.caldera-grid .col-lg-offset-0{margin-left:0}}.caldera-grid .clearfix:after,.caldera-grid .clearfix:before,.caldera-grid .container-fluid:after,.caldera-grid .container-fluid:before,.caldera-grid .container:after,.caldera-grid .container:before,.caldera-grid .row:after,.caldera-grid .row:before{content:" ";display:table}.caldera-grid .clearfix:after,.caldera-grid .container-fluid:after,.caldera-grid .container:after,.caldera-grid .row:after{clear:both}.caldera-grid .center-block{display:block;margin-left:auto;margin-right:auto}.caldera-grid .pull-right{float:right!important}.caldera-grid .pull-left{float:left!important}.caldera-grid .hide{display:none!important}.caldera-grid .show{display:block!important}.caldera-grid .hidden,.caldera-grid .visible-lg,.caldera-grid .visible-md,.caldera-grid .visible-sm,.caldera-grid .visible-xs{display:none!important}.caldera-grid .invisible{visibility:hidden}.caldera-grid .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.caldera-grid .hidden{visibility:hidden!important}.caldera-grid .affix{position:fixed}@-ms-viewport{width:device-width}.caldera-grid .form-control{width:100%}@media (max-width:767px){.caldera-grid .visible-xs{display:block!important}.caldera-grid table.visible-xs{display:table}.caldera-grid tr.visible-xs{display:table-row!important}.caldera-grid td.visible-xs,.caldera-grid th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.caldera-grid .visible-sm{display:block!important}.caldera-grid table.visible-sm{display:table}.caldera-grid tr.visible-sm{display:table-row!important}.caldera-grid td.visible-sm,.caldera-grid th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.caldera-grid .visible-md{display:block!important}.caldera-grid table.visible-md{display:table}.caldera-grid tr.visible-md{display:table-row!important}.caldera-grid td.visible-md,.caldera-grid th.visible-md{display:table-cell!important}}@media (min-width:1200px){.caldera-grid .visible-lg{display:block!important}.caldera-grid table.visible-lg{display:table}.caldera-grid tr.visible-lg{display:table-row!important}.caldera-grid td.visible-lg,.caldera-grid th.visible-lg{display:table-cell!important}.caldera-grid .hidden-lg{display:none!important}}@media (max-width:767px){.caldera-grid .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.caldera-grid .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.caldera-grid .hidden-md{display:none!important}}.caldera-grid .visible-print{display:none!important}@media print{.caldera-grid .visible-print{display:block!important}.caldera-grid table.visible-print{display:table}.caldera-grid tr.visible-print{display:table-row!important}.caldera-grid td.visible-print,.caldera-grid th.visible-print{display:table-cell!important}.caldera-grid .hidden-print{display:none!important}}input.parsley-success,select.parsley-success,textarea.parsley-success{color:#468847;background-color:#DFF0D8;border:1px solid #D6E9C6}input.parsley-error,select.parsley-error,textarea.parsley-error{color:#B94A48;background-color:#F2DEDE;border:1px solid #EED3D7}.parsley-errors-list{margin:2px 0 3px;padding:0;list-style-type:none;font-size:.9em;line-height:.9em;opacity:0;transition:all .3s ease-in;-o-transition:all .3s ease-in;-moz-transition:all .3s ease-in;-webkit-transition:all .3s ease-in}.parsley-errors-list.filled{opacity:1}
|
2 |
.caldera-grid .alert{padding:8px;margin-bottom:18px;border-radius:2px}.caldera-grid .alert .alert-link{font-weight:700}.caldera-grid .alert-dismissable{padding-right:28px}.caldera-grid .alert-success{background-color:#dff0d8;border-color:#a3d48e;color:#3c763d}.caldera-grid .alert-success hr{border-top-color:#93cd7c}.caldera-grid .alert-success .alert-link{color:#2b542c}.caldera-grid .alert-info{background-color:#d9edf7;border-color:#85c5e5;color:#31708f}.caldera-grid .alert-info hr{border-top-color:#70bbe1}.caldera-grid .alert-info .alert-link{color:#245269}.caldera-grid .alert-warning{background-color:#f9edbe;border-color:#f0c36d;color:#333}.caldera-grid .alert-warning hr{border-top-color:#eeb956}.caldera-grid .alert-warning .alert-link{color:#1a1a1a}.caldera-grid .alert-danger,.caldera-grid .alert-error{background-color:#f2dede;border-color:#d59595;color:#a94442}.caldera-grid .alert-danger hr,.caldera-grid .alert-error hr{border-top-color:#ce8383}.caldera-grid .alert-danger .alert-link,.caldera-grid .alert-error .alert-link{color:#843534}.caldera-grid .has-error .checkbox,.caldera-grid .has-error .checkbox-inline,.caldera-grid .has-error .control-label,.caldera-grid .has-error .form-control-feedback,.caldera-grid .has-error .help-block,.caldera-grid .has-error .radio,.caldera-grid .has-error .radio-inline{color:#dd4b39}.caldera-grid .alert-danger,.caldera-grid .alert-error,.caldera-grid .alert-info,.caldera-grid .alert-success,.caldera-grid .alert-warning{text-shadow:0 1px 0 rgba(255,255,255,.5)}.caldera-grid .has-error .form-control{border-color:#dd4b39;-webkit-box-shadow:none;box-shadow:none}.caldera-grid .has-error .input-group-addon{color:#dd4b39;border-color:#dd4b39;background-color:#f2dede}.caldera-grid .has-error .form-control:focus,.caldera-grid .has-error .form-control:hover{border-color:#dd4b39}.caldera-grid.cf_processing{background:url(../images/loading.gif) center center/30px auto no-repeat rgba(0,0,0,0)}.caldera-grid.cf_processing>*{opacity:.5}
|
3 |
.caldera-grid html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}.caldera-grid body{margin:0}.caldera-grid article,.caldera-grid aside,.caldera-grid details,.caldera-grid figcaption,.caldera-grid figure,.caldera-grid footer,.caldera-grid header,.caldera-grid hgroup,.caldera-grid main,.caldera-grid menu,.caldera-grid nav,.caldera-grid section,.caldera-grid summary{display:block}.caldera-grid audio,.caldera-grid canvas,.caldera-grid progress,.caldera-grid video{display:inline-block;vertical-align:baseline}.caldera-grid audio:not([controls]){display:none;height:0}.caldera-grid [hidden],.caldera-grid template{display:none}.caldera-grid a{background-color:transparent}.caldera-grid a:active,.caldera-grid a:hover{outline:0}.caldera-grid abbr[title]{border-bottom:1px dotted}.caldera-grid b,.caldera-grid strong{font-weight:700}.caldera-grid dfn{font-style:italic}.caldera-grid h1{font-size:2em;margin:.67em 0}.caldera-grid mark{background:#ff0;color:#000}.caldera-grid small{font-size:80%}.caldera-grid sub,.caldera-grid sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.caldera-grid sup{top:-.5em}.caldera-grid sub{bottom:-.25em}.caldera-grid img{border:0}.caldera-grid svg:not(:root){overflow:hidden}.caldera-grid figure{margin:1em 40px}.caldera-grid hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.caldera-grid pre{overflow:auto}.caldera-grid code,.caldera-grid kbd,.caldera-grid pre,.caldera-grid samp{font-family:monospace,monospace;font-size:1em}.caldera-grid button,.caldera-grid input,.caldera-grid optgroup,.caldera-grid select,.caldera-grid textarea{font:inherit;margin:0}.caldera-grid button{overflow:visible}.caldera-grid button,.caldera-grid select{text-transform:none}.caldera-grid button,.caldera-grid html input[type=button],.caldera-grid input[type=reset],.caldera-grid input[type=submit]{-webkit-appearance:button;cursor:pointer}.caldera-grid button[disabled],.caldera-grid html input[disabled]{cursor:default}.caldera-grid button::-moz-focus-inner,.caldera-grid input::-moz-focus-inner{border:0;padding:0}.caldera-grid input{line-height:normal}.caldera-grid input[type=checkbox],.caldera-grid input[type=radio]{box-sizing:border-box;padding:0}.caldera-grid input[type=number]::-webkit-inner-spin-button,.caldera-grid input[type=number]::-webkit-outer-spin-button{height:auto}.caldera-grid input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.caldera-grid input[type=search]::-webkit-search-cancel-button,.caldera-grid input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.caldera-grid textarea{overflow:auto}.caldera-grid optgroup{font-weight:700}.caldera-grid table{border-collapse:collapse;border-spacing:0}.caldera-grid td,.caldera-grid th{padding:0}@media print{.caldera-grid *,.caldera-grid :after,.caldera-grid :before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.caldera-grid a,.caldera-grid a:visited{text-decoration:underline}.caldera-grid a[href]:after{content:" (" attr(href) ")"}.caldera-grid abbr[title]:after{content:" (" attr(title) ")"}.caldera-grid a[href^="#"]:after,.caldera-grid a[href^="javascript:"]:after{content:""}.caldera-grid blockquote,.caldera-grid pre{border:1px solid #999;page-break-inside:avoid}.caldera-grid thead{display:table-header-group}.caldera-grid img,.caldera-grid tr{page-break-inside:avoid}.caldera-grid img{max-width:100%!important}.caldera-grid h2,.caldera-grid h3,.caldera-grid p{orphans:3;widows:3}.caldera-grid h2,.caldera-grid h3{page-break-after:avoid}.caldera-grid select{background:#fff!important}.caldera-grid .navbar{display:none}.caldera-grid .btn>.caret,.caldera-grid .dropup>.btn>.caret{border-top-color:#000!important}.caldera-grid .label{border:1px solid #000}.caldera-grid .table{border-collapse:collapse!important}.caldera-grid .table td,.caldera-grid .table th{background-color:#fff!important}.caldera-grid .table-bordered td,.caldera-grid .table-bordered th{border:1px solid #ddd!important}}.caldera-grid .btn,.caldera-grid .btn-danger.active,.caldera-grid .btn-danger:active,.caldera-grid .btn-default.active,.caldera-grid .btn-default:active,.caldera-grid .btn-info.active,.caldera-grid .btn-info:active,.caldera-grid .btn-primary.active,.caldera-grid .btn-primary:active,.caldera-grid .btn-success.active,.caldera-grid .btn-success:active,.caldera-grid .btn-warning.active,.caldera-grid .btn-warning:active,.caldera-grid .form-control,.open>.dropdown-toggle.caldera-grid .btn-danger,.open>.dropdown-toggle.caldera-grid .btn-default,.open>.dropdown-toggle.caldera-grid .btn-info,.open>.dropdown-toggle.caldera-grid .btn-primary,.open>.dropdown-toggle.caldera-grid .btn-success,.open>.dropdown-toggle.caldera-grid .btn-warning{background-image:none}.caldera-grid fieldset{padding:0;margin:0;border:0;min-width:0}.caldera-grid legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}.caldera-grid label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}.caldera-grid input[type=checkbox],.caldera-grid input[type=radio]{margin:0;line-height:normal}.caldera-grid .form-control,.caldera-grid output{font-size:14px;line-height:1.42857143;color:#555;display:block}.caldera-grid input[type=file]{display:block}.caldera-grid input[type=range]{display:block;width:100%}.caldera-grid select[multiple],.caldera-grid select[size]{height:auto}.caldera-grid input[type=checkbox]:focus,.caldera-grid input[type=file]:focus,.caldera-grid input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid input[type=checkbox]{-webkit-appearance:checkbox}.caldera-grid input[type=radio]{-webkit-appearance:radio}.caldera-grid output{padding-top:7px}.caldera-grid .form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.caldera-grid .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.caldera-grid .form-control::-moz-placeholder{color:#999;opacity:1}.caldera-grid .form-control:-ms-input-placeholder{color:#999}.caldera-grid .form-control::-webkit-input-placeholder{color:#999}.caldera-grid .has-success .checkbox,.caldera-grid .has-success .checkbox-inline,.caldera-grid .has-success .control-label,.caldera-grid .has-success .form-control-feedback,.caldera-grid .has-success .help-block,.caldera-grid .has-success .radio,.caldera-grid .has-success .radio-inline,.caldera-grid .has-success.checkbox label,.caldera-grid .has-success.checkbox-inline label,.caldera-grid .has-success.radio label,.caldera-grid .has-success.radio-inline label{color:#3c763d}.caldera-grid .form-control[disabled],.caldera-grid .form-control[readonly],fieldset[disabled] .caldera-grid .form-control{background-color:#eee;opacity:1}.caldera-grid .form-control[disabled],fieldset[disabled] .caldera-grid .form-control{cursor:not-allowed}textarea .caldera-grid .form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){.caldera-grid input[type=date],.caldera-grid input[type=datetime-local],.caldera-grid input[type=month],.caldera-grid input[type=time]{line-height:34px}.caldera-grid input[type=date].input-sm,.caldera-grid input[type=datetime-local].input-sm,.caldera-grid input[type=month].input-sm,.caldera-grid input[type=time].input-sm,.input-group-sm .caldera-grid input[type=date],.input-group-sm .caldera-grid input[type=datetime-local],.input-group-sm .caldera-grid input[type=month],.input-group-sm .caldera-grid input[type=time]{line-height:30px}.caldera-grid input[type=date].input-lg,.caldera-grid input[type=datetime-local].input-lg,.caldera-grid input[type=month].input-lg,.caldera-grid input[type=time].input-lg,.input-group-lg .caldera-grid input[type=date],.input-group-lg .caldera-grid input[type=datetime-local],.input-group-lg .caldera-grid input[type=month],.input-group-lg .caldera-grid input[type=time]{line-height:46px}}.caldera-grid .form-group{margin-bottom:15px}.caldera-grid .checkbox,.caldera-grid .radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.caldera-grid .checkbox label,.caldera-grid .radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.caldera-grid .checkbox input[type=checkbox],.caldera-grid .checkbox-inline input[type=checkbox],.caldera-grid .radio input[type=radio],.caldera-grid .radio-inline input[type=radio]{margin-left:-20px}.caldera-grid .checkbox+.checkbox,.caldera-grid .radio+.radio{margin-top:-5px}.caldera-grid .checkbox-inline,.caldera-grid .radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.caldera-grid .checkbox-inline+.checkbox-inline,.caldera-grid .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.caldera-grid .checkbox-inline.disabled,.caldera-grid .checkbox.disabled label,.caldera-grid .radio-inline.disabled,.caldera-grid .radio.disabled label,.caldera-grid input[type=checkbox].disabled,.caldera-grid input[type=checkbox][disabled],.caldera-grid input[type=radio].disabled,.caldera-grid input[type=radio][disabled],fieldset[disabled] .caldera-grid .checkbox label,fieldset[disabled] .caldera-grid .checkbox-inline,fieldset[disabled] .caldera-grid .radio label,fieldset[disabled] .caldera-grid .radio-inline,fieldset[disabled] .caldera-grid input[type=checkbox],fieldset[disabled] .caldera-grid input[type=radio]{cursor:not-allowed}.caldera-grid .form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.caldera-grid .form-control-static.input-lg,.caldera-grid .form-control-static.input-sm{padding-left:0;padding-right:0}.caldera-grid .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.caldera-grid .input-sm{height:30px;line-height:30px}select[multiple].caldera-grid .input-sm,textarea.caldera-grid .input-sm{height:auto}.caldera-grid .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.caldera-grid .form-group-sm .form-control{height:30px;line-height:30px}select[multiple].caldera-grid .form-group-sm .form-control,textarea.caldera-grid .form-group-sm .form-control{height:auto}.caldera-grid .form-group-sm .form-control-static{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;min-height:32px}.caldera-grid .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}select.caldera-grid .input-lg{height:46px;line-height:46px}select[multiple].caldera-grid .input-lg,textarea.caldera-grid .input-lg{height:auto}.caldera-grid .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}select.caldera-grid .form-group-lg .form-control{height:46px;line-height:46px}select[multiple].caldera-grid .form-group-lg .form-control,textarea.caldera-grid .form-group-lg .form-control{height:auto}.caldera-grid .form-group-lg .form-control-static{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;min-height:38px}.caldera-grid .has-feedback{position:relative}.caldera-grid .has-feedback .form-control{padding-right:42.5px}.caldera-grid .form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.caldera-grid .input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.caldera-grid .input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.caldera-grid .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.caldera-grid .has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.caldera-grid .has-warning .checkbox,.caldera-grid .has-warning .checkbox-inline,.caldera-grid .has-warning .control-label,.caldera-grid .has-warning .form-control-feedback,.caldera-grid .has-warning .help-block,.caldera-grid .has-warning .radio,.caldera-grid .has-warning .radio-inline,.caldera-grid .has-warning.checkbox label,.caldera-grid .has-warning.checkbox-inline label,.caldera-grid .has-warning.radio label,.caldera-grid .has-warning.radio-inline label{color:#8a6d3b}.caldera-grid .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.caldera-grid .has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.caldera-grid .has-error .checkbox,.caldera-grid .has-error .checkbox-inline,.caldera-grid .has-error .control-label,.caldera-grid .has-error .form-control-feedback,.caldera-grid .has-error .help-block,.caldera-grid .has-error .radio,.caldera-grid .has-error .radio-inline,.caldera-grid .has-error.checkbox label,.caldera-grid .has-error.checkbox-inline label,.caldera-grid .has-error.radio label,.caldera-grid .has-error.radio-inline label{color:#a94442}.caldera-grid .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.caldera-grid .has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.caldera-grid .has-feedback label~.form-control-feedback{top:25px}.caldera-grid .has-feedback label.sr-only~.form-control-feedback{top:0}.caldera-grid .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.caldera-grid .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.caldera-grid .form-inline .form-control-static{display:inline-block}.caldera-grid .form-inline .input-group{display:inline-table;vertical-align:middle}.caldera-grid .form-inline .input-group .form-control,.caldera-grid .form-inline .input-group .input-group-addon,.caldera-grid .form-inline .input-group .input-group-btn{width:auto}.caldera-grid .form-inline .input-group>.form-control{width:100%}.caldera-grid .form-inline .control-label{margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .checkbox,.caldera-grid .form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .checkbox label,.caldera-grid .form-inline .radio label{padding-left:0}.caldera-grid .form-inline .checkbox input[type=checkbox],.caldera-grid .form-inline .radio input[type=radio]{position:relative;margin-left:0}.caldera-grid .form-inline .has-feedback .form-control-feedback{top:0}.caldera-grid .form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.caldera-grid .form-horizontal .checkbox,.caldera-grid .form-horizontal .checkbox-inline,.caldera-grid .form-horizontal .radio,.caldera-grid .form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.caldera-grid .form-horizontal .checkbox,.caldera-grid .form-horizontal .radio{min-height:27px}.caldera-grid .form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.caldera-grid .form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.caldera-grid .form-horizontal .form-group-lg .control-label{padding-top:14.33px}.caldera-grid .form-horizontal .form-group-sm .control-label{padding-top:6px}}.caldera-grid .btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.caldera-grid .btn.active.focus,.caldera-grid .btn.active:focus,.caldera-grid .btn.focus,.caldera-grid .btn:active.focus,.caldera-grid .btn:active:focus,.caldera-grid .btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid .btn.focus,.caldera-grid .btn:focus,.caldera-grid .btn:hover{color:#333;text-decoration:none}.caldera-grid .btn.active,.caldera-grid .btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.caldera-grid .btn.disabled,.caldera-grid .btn[disabled],fieldset[disabled] .caldera-grid .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.caldera-grid .btn-default{color:#333;background-color:#fff;border-color:#ccc}.caldera-grid .btn-default.active,.caldera-grid .btn-default.focus,.caldera-grid .btn-default:active,.caldera-grid .btn-default:focus,.caldera-grid .btn-default:hover,.open>.dropdown-toggle.caldera-grid .btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.caldera-grid .btn-default.disabled,.caldera-grid .btn-default.disabled.active,.caldera-grid .btn-default.disabled.focus,.caldera-grid .btn-default.disabled:active,.caldera-grid .btn-default.disabled:focus,.caldera-grid .btn-default.disabled:hover,.caldera-grid .btn-default[disabled],.caldera-grid .btn-default[disabled].active,.caldera-grid .btn-default[disabled].focus,.caldera-grid .btn-default[disabled]:active,.caldera-grid .btn-default[disabled]:focus,.caldera-grid .btn-default[disabled]:hover,fieldset[disabled] .caldera-grid .btn-default,fieldset[disabled] .caldera-grid .btn-default.active,fieldset[disabled] .caldera-grid .btn-default.focus,fieldset[disabled] .caldera-grid .btn-default:active,fieldset[disabled] .caldera-grid .btn-default:focus,fieldset[disabled] .caldera-grid .btn-default:hover{background-color:#fff;border-color:#ccc}.caldera-grid .btn-default .badge{color:#fff;background-color:#333}.caldera-grid .btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.caldera-grid .btn-primary.active,.caldera-grid .btn-primary.focus,.caldera-grid .btn-primary:active,.caldera-grid .btn-primary:focus,.caldera-grid .btn-primary:hover,.open>.dropdown-toggle.caldera-grid .btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.caldera-grid .btn-primary.disabled,.caldera-grid .btn-primary.disabled.active,.caldera-grid .btn-primary.disabled.focus,.caldera-grid .btn-primary.disabled:active,.caldera-grid .btn-primary.disabled:focus,.caldera-grid .btn-primary.disabled:hover,.caldera-grid .btn-primary[disabled],.caldera-grid .btn-primary[disabled].active,.caldera-grid .btn-primary[disabled].focus,.caldera-grid .btn-primary[disabled]:active,.caldera-grid .btn-primary[disabled]:focus,.caldera-grid .btn-primary[disabled]:hover,fieldset[disabled] .caldera-grid .btn-primary,fieldset[disabled] .caldera-grid .btn-primary.active,fieldset[disabled] .caldera-grid .btn-primary.focus,fieldset[disabled] .caldera-grid .btn-primary:active,fieldset[disabled] .caldera-grid .btn-primary:focus,fieldset[disabled] .caldera-grid .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.caldera-grid .btn-primary .badge{color:#337ab7;background-color:#fff}.caldera-grid .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.caldera-grid .btn-success.active,.caldera-grid .btn-success.focus,.caldera-grid .btn-success:active,.caldera-grid .btn-success:focus,.caldera-grid .btn-success:hover,.open>.dropdown-toggle.caldera-grid .btn-success{color:#fff;background-color:#449d44;border-color:#398439}.caldera-grid .btn-success.disabled,.caldera-grid .btn-success.disabled.active,.caldera-grid .btn-success.disabled.focus,.caldera-grid .btn-success.disabled:active,.caldera-grid .btn-success.disabled:focus,.caldera-grid .btn-success.disabled:hover,.caldera-grid .btn-success[disabled],.caldera-grid .btn-success[disabled].active,.caldera-grid .btn-success[disabled].focus,.caldera-grid .btn-success[disabled]:active,.caldera-grid .btn-success[disabled]:focus,.caldera-grid .btn-success[disabled]:hover,fieldset[disabled] .caldera-grid .btn-success,fieldset[disabled] .caldera-grid .btn-success.active,fieldset[disabled] .caldera-grid .btn-success.focus,fieldset[disabled] .caldera-grid .btn-success:active,fieldset[disabled] .caldera-grid .btn-success:focus,fieldset[disabled] .caldera-grid .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.caldera-grid .btn-success .badge{color:#5cb85c;background-color:#fff}.caldera-grid .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.caldera-grid .btn-info.active,.caldera-grid .btn-info.focus,.caldera-grid .btn-info:active,.caldera-grid .btn-info:focus,.caldera-grid .btn-info:hover,.open>.dropdown-toggle.caldera-grid .btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.caldera-grid .btn-info.disabled,.caldera-grid .btn-info.disabled.active,.caldera-grid .btn-info.disabled.focus,.caldera-grid .btn-info.disabled:active,.caldera-grid .btn-info.disabled:focus,.caldera-grid .btn-info.disabled:hover,.caldera-grid .btn-info[disabled],.caldera-grid .btn-info[disabled].active,.caldera-grid .btn-info[disabled].focus,.caldera-grid .btn-info[disabled]:active,.caldera-grid .btn-info[disabled]:focus,.caldera-grid .btn-info[disabled]:hover,fieldset[disabled] .caldera-grid .btn-info,fieldset[disabled] .caldera-grid .btn-info.active,fieldset[disabled] .caldera-grid .btn-info.focus,fieldset[disabled] .caldera-grid .btn-info:active,fieldset[disabled] .caldera-grid .btn-info:focus,fieldset[disabled] .caldera-grid .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.caldera-grid .btn-info .badge{color:#5bc0de;background-color:#fff}.caldera-grid .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.caldera-grid .btn-warning.active,.caldera-grid .btn-warning.focus,.caldera-grid .btn-warning:active,.caldera-grid .btn-warning:focus,.caldera-grid .btn-warning:hover,.open>.dropdown-toggle.caldera-grid .btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.caldera-grid .btn-warning.disabled,.caldera-grid .btn-warning.disabled.active,.caldera-grid .btn-warning.disabled.focus,.caldera-grid .btn-warning.disabled:active,.caldera-grid .btn-warning.disabled:focus,.caldera-grid .btn-warning.disabled:hover,.caldera-grid .btn-warning[disabled],.caldera-grid .btn-warning[disabled].active,.caldera-grid .btn-warning[disabled].focus,.caldera-grid .btn-warning[disabled]:active,.caldera-grid .btn-warning[disabled]:focus,.caldera-grid .btn-warning[disabled]:hover,fieldset[disabled] .caldera-grid .btn-warning,fieldset[disabled] .caldera-grid .btn-warning.active,fieldset[disabled] .caldera-grid .btn-warning.focus,fieldset[disabled] .caldera-grid .btn-warning:active,fieldset[disabled] .caldera-grid .btn-warning:focus,fieldset[disabled] .caldera-grid .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.caldera-grid .btn-warning .badge{color:#f0ad4e;background-color:#fff}.caldera-grid .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.caldera-grid .btn-danger.active,.caldera-grid .btn-danger.focus,.caldera-grid .btn-danger:active,.caldera-grid .btn-danger:focus,.caldera-grid .btn-danger:hover,.open>.dropdown-toggle.caldera-grid .btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.caldera-grid .btn-danger.disabled,.caldera-grid .btn-danger.disabled.active,.caldera-grid .btn-danger.disabled.focus,.caldera-grid .btn-danger.disabled:active,.caldera-grid .btn-danger.disabled:focus,.caldera-grid .btn-danger.disabled:hover,.caldera-grid .btn-danger[disabled],.caldera-grid .btn-danger[disabled].active,.caldera-grid .btn-danger[disabled].focus,.caldera-grid .btn-danger[disabled]:active,.caldera-grid .btn-danger[disabled]:focus,.caldera-grid .btn-danger[disabled]:hover,fieldset[disabled] .caldera-grid .btn-danger,fieldset[disabled] .caldera-grid .btn-danger.active,fieldset[disabled] .caldera-grid .btn-danger.focus,fieldset[disabled] .caldera-grid .btn-danger:active,fieldset[disabled] .caldera-grid .btn-danger:focus,fieldset[disabled] .caldera-grid .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.caldera-grid .btn-danger .badge{color:#d9534f;background-color:#fff}.caldera-grid .btn-link{color:#337ab7;font-weight:400;border-radius:0}.caldera-grid .btn-link,.caldera-grid .btn-link.active,.caldera-grid .btn-link:active,.caldera-grid .btn-link[disabled],fieldset[disabled] .caldera-grid .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.caldera-grid .btn-link,.caldera-grid .btn-link:active,.caldera-grid .btn-link:focus,.caldera-grid .btn-link:hover{border-color:transparent}.caldera-grid .btn-link:focus,.caldera-grid .btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.caldera-grid .btn-link[disabled]:focus,.caldera-grid .btn-link[disabled]:hover,fieldset[disabled] .caldera-grid .btn-link:focus,fieldset[disabled] .caldera-grid .btn-link:hover{color:#777;text-decoration:none}.caldera-grid .btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.caldera-grid .btn-sm,.caldera-grid .btn-xs{font-size:12px;line-height:1.5;border-radius:1px}.caldera-grid .btn-sm{padding:5px 10px}.caldera-grid .btn-xs{padding:1px 5px}.caldera-grid .btn-block{display:block;width:100%}.caldera-grid .btn-block+.btn-block{margin-top:5px}.caldera-grid input[type=button].btn-block,.caldera-grid input[type=reset].btn-block,.caldera-grid input[type=submit].btn-block{width:100%}.caldera-grid textarea.form-control{padding-right:4px;height:auto}.caldera-grid .breadcrumb{padding:6px 12px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.caldera-grid .breadcrumb>li{display:inline-block;margin:0}.caldera-grid .breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.caldera-grid .breadcrumb>.active,.caldera-grid .breadcrumb>.active>a{color:#777}.breadcrumb>li.active.error>a,.breadcrumb>li.error>a{color:red}.caldera-grid .cf-credit-card{padding-left:42px;background-image:url(../images/credit-card.svg);background-repeat:no-repeat!important;background-position-x:4px!important;background-position-y:3px!important}.caldera-grid .screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}
|
4 |
@font-face{font-family:cf-raty;src:url(fonts/cf-raty.eot?40481674);src:url(fonts/cf-raty.eot?40481674#iefix) format('embedded-opentype'),url(fonts/cf-raty.woff?40481674) format('woff'),url(fonts/cf-raty.ttf?40481674) format('truetype'),url(fonts/cf-raty.svg?40481674#cf-raty) format('svg');font-weight:400;font-style:normal}[class*=" raty-"]:before,[class^=raty-]:before{font-family:cf-raty;font-style:normal;font-weight:400;speak:none;font-size:2em;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em}.raty-heart-on:before{content:'\e800'}.raty-heart-off:before{content:'\e801'}.raty-star-on:before{content:'\e802'}.raty-star-off:before{content:'\e803'}.raty-circle-on:before{content:'\e804'}.raty-circle-off:before{content:'\e805'}.raty-dot-off:before{content:'\e806'}.raty-dot-on:before{content:'\e807'}.raty-face-off:before{content:'\e808'}.raty-face-on:before{content:'\e809'}.raty-cancel-off:before{content:'\e80a'}.raty-cancel-on:before{content:'\e80b'}.calculation-group{background:#FFF;box-shadow:0 1px 2px rgba(0,0,0,.05);padding:6px;margin:6px 0}.preview-color-selector{background:#F0F0F0;border:1px solid #E2E2E2;display:inline;margin-left:-1px;padding:3px 12px;box-shadow:0 0 0 2px #fff inset}.miniColors-trigger{border:1px solid #999;-mz-border-radius:0 1px 1px 0;-webkit-border-radius:0 1px 1px 0;display:inline-block;height:24px;margin:0 0 -8px -1px;width:30px}.miniColors-selector{background:#FFF;border:1px solid #999;-moz-box-shadow:0 3px 0 -1px rgba(0,0,0,.05);-webkit-box-shadow:0 3px 0 -1px rgba(0,0,0,.05);box-shadow:0 3px 0 -1px rgba(0,0,0,.05);height:162px;padding:5px;position:absolute;width:187px;z-index:999999;margin-top:-1px}.miniColors-selector.black{background:#000;border-color:#000}.miniColors-colors{position:absolute;top:5px;left:5px;width:150px;height:150px;background:url(minicolor-colors.png) right no-repeat;cursor:crosshair}.miniColors-hues{position:absolute;top:5px;left:160px;width:20px;height:150px;background:url(minicolor-colors.png) left no-repeat;cursor:crosshair}.miniColors-colorPicker{position:absolute;width:9px;height:9px;border:1px solid #fff;-moz-border-radius:11px;-webkit-border-radius:11px;border-radius:11px}.miniColors-colorPicker-inner{position:absolute;top:0;left:0;width:7px;height:7px;border:1px solid #000;-moz-border-radius:9px;-webkit-border-radius:9px;border-radius:9px}.miniColors-huePicker{position:absolute;left:-3px;width:24px;height:1px;border:1px solid #fff;border-radius:2px;background:#000}.cf-color-picker .form-control::-moz-placeholder{color:#999;opacity:1}.cf-color-picker .form-control:-ms-input-placeholder{color:#999}.cf-color-picker .form-control::-webkit-input-placeholder{color:#999}.cf-color-picker .form-control[disabled],.cf-color-picker .form-control[readonly],.cf-color-picker fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}.cf-color-picker .form-group{margin-bottom:15px}.cf-color-picker .input-group{position:relative;display:table;border-collapse:separate}.cf-color-picker .input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.cf-color-picker .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.cf-color-picker .input-group-lg>.form-control,.cf-color-picker .input-group-lg>.input-group-addon,.cf-color-picker .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.cf-color-picker .input-group-sm>.form-control,.cf-color-picker .input-group-sm>.input-group-addon,.cf-color-picker .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.cf-color-picker .input-group .form-control,.cf-color-picker .input-group-addon,.cf-color-picker .input-group-btn{display:table-cell}.cf-color-picker .input-group .form-control:not(:first-child):not(:last-child),.cf-color-picker .input-group-addon:not(:first-child):not(:last-child),.cf-color-picker .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.cf-color-picker .input-group-addon,.cf-color-picker .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.cf-color-picker .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.cf-color-picker .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.cf-color-picker .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.cf-color-picker .input-group .form-control:first-child,.cf-color-picker .input-group-addon:first-child,.cf-color-picker .input-group-btn:first-child>.btn,.cf-color-picker .input-group-btn:first-child>.btn-group>.btn,.cf-color-picker .input-group-btn:first-child>.dropdown-toggle,.cf-color-picker .input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.cf-color-picker .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.cf-color-picker .input-group-addon:first-child{border-right:0}.cf-color-picker .input-group .form-control:last-child,.cf-color-picker .input-group-addon:last-child,.cf-color-picker .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.cf-color-picker .input-group-btn:first-child>.btn:not(:first-child),.cf-color-picker .input-group-btn:last-child>.btn,.cf-color-picker .input-group-btn:last-child>.btn-group>.btn,.cf-color-picker .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.cf-color-picker .input-group-addon:last-child{border-left:0}.cf-color-picker .input-group-btn{position:relative;font-size:0;white-space:nowrap}.cf-color-picker .input-group-btn>.btn{position:relative}.cf-color-picker .input-group-btn>.btn+.btn{margin-left:-1px}.cf-color-picker .input-group-btn>.btn:active,.cf-color-picker .input-group-btn>.btn:focus,.cf-color-picker .input-group-btn>.btn:hover{z-index:2}.cf-color-picker .input-group-btn:first-child>.btn,.cf-color-picker .input-group-btn:first-child>.btn-group{margin-right:-1px}.cf-color-picker .input-group-btn:last-child>.btn,.cf-color-picker .input-group-btn:last-child>.btn-group{margin-left:-1px}.cf-color-picker .clearfix:after,.cf-color-picker .clearfix:before,.cf-color-picker .form-horizontal .form-group:after,.cf-color-picker .form-horizontal .form-group:before{content:" ";display:table}.cf-color-picker .clearfix:after,.cf-color-picker .form-horizontal .form-group:after{clear:both}.cf-color-picker .center-block{display:block;margin-left:auto;margin-right:auto}.cf-color-picker .pull-right{float:right!important}.cf-color-picker .pull-left{float:left!important}.cf-color-picker .hide{display:none!important}.cf-color-picker .show{display:block!important}.cf-color-picker .invisible{visibility:hidden}.cf-color-picker .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.cf-color-picker .hidden{display:none!important;visibility:hidden!important}.cf-color-picker .affix{position:fixed}@-ms-viewport{width:device-width}.cf-color-picker .visible-lg,.cf-color-picker .visible-md,.cf-color-picker .visible-print,.cf-color-picker .visible-sm,.cf-color-picker .visible-xs{display:none!important}@media (max-width:767px){.cf-color-picker .visible-xs{display:block!important}.cf-color-picker table.visible-xs{display:table}.cf-color-picker tr.visible-xs{display:table-row!important}.cf-color-picker td.visible-xs,.cf-color-picker th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.cf-color-picker .visible-sm{display:block!important}.cf-color-picker table.visible-sm{display:table}.cf-color-picker tr.visible-sm{display:table-row!important}.cf-color-picker td.visible-sm,.cf-color-picker th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.cf-color-picker .visible-md{display:block!important}.cf-color-picker table.visible-md{display:table}.cf-color-picker tr.visible-md{display:table-row!important}.cf-color-picker td.visible-md,.cf-color-picker th.visible-md{display:table-cell!important}}@media (min-width:1200px){.cf-color-picker .visible-lg{display:block!important}.cf-color-picker table.visible-lg{display:table}.cf-color-picker tr.visible-lg{display:table-row!important}.cf-color-picker td.visible-lg,.cf-color-picker th.visible-lg{display:table-cell!important}}@media (max-width:767px){.cf-color-picker .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.cf-color-picker .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.cf-color-picker .hidden-md{display:none!important}}@media (min-width:1200px){.cf-color-picker .hidden-lg{display:none!important}}@media print{.cf-color-picker .visible-print{display:block!important}.cf-color-picker table.visible-print{display:table}.cf-color-picker tr.visible-print{display:table-row!important}.cf-color-picker td.visible-print,.cf-color-picker th.visible-print{display:table-cell!important}}@media print{.cf-color-picker .hidden-print{display:none!important}}.cf-color-picker .input-group{max-width:120px}
|
1 |
+
/*! GENERATED SOURCE FILE caldera-forms - v1.5.9-rc.1 - 2018-01-18 */.caldera-grid body{margin:0}.caldera-grid .form-group{margin-bottom:1em}@media (min-width:768px){.caldera-grid .container{width:750px}}@media (min-width:992px){.caldera-grid .container{width:970px}}@media (min-width:1200px){.caldera-grid .container{width:1170px}}.caldera-grid article,.caldera-grid aside,.caldera-grid details,.caldera-grid figcaption,.caldera-grid figure,.caldera-grid footer,.caldera-grid header,.caldera-grid hgroup,.caldera-grid main,.caldera-grid nav,.caldera-grid section,.caldera-grid summary{display:block}.caldera-grid audio,.caldera-grid canvas,.caldera-grid progress,.caldera-grid video{display:inline-block;vertical-align:baseline}.caldera-grid audio:not([controls]){display:none;height:0}.caldera-grid [hidden],.caldera-grid template{display:none}.caldera-grid a{background:0 0;text-decoration:none}.caldera-grid a:active,.caldera-grid a:hover{outline:0}.caldera-grid abbr[title]{border-bottom:1px dotted}.caldera-grid b,.caldera-grid strong{font-weight:700}.caldera-grid dfn{font-style:italic}.caldera-grid h1{font-size:2em;margin:.67em 0}.caldera-grid mark{background:#ff0;color:#000}.caldera-grid small{font-size:80%}.caldera-grid sub,.caldera-grid sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.caldera-grid sup{top:-.5em}.caldera-grid sub{bottom:-.25em}.caldera-grid img{border:0;vertical-align:middle}.caldera-grid svg:not(:root){overflow:hidden}.caldera-grid hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.caldera-grid pre{overflow:auto}.caldera-grid code,.caldera-grid kbd,.caldera-grid pre,.caldera-grid samp{font-family:monospace,monospace;font-size:1em}.caldera-grid button,.caldera-grid input,.caldera-grid optgroup,.caldera-grid select,.caldera-grid textarea{font:inherit;margin:0}.caldera-grid button{overflow:visible}.caldera-grid button,.caldera-grid select{text-transform:none}.caldera-grid button,.caldera-grid html input[type=button],.caldera-grid input[type=reset],.caldera-grid input[type=submit]{-webkit-appearance:button;cursor:pointer}.caldera-grid button[disabled],.caldera-grid html input[disabled]{cursor:default}.caldera-grid button::-moz-focus-inner,.caldera-grid input::-moz-focus-inner{border:0;padding:0}.caldera-grid input[type=checkbox],.caldera-grid input[type=radio]{box-sizing:border-box;padding:0}.caldera-grid input[type=number]::-webkit-inner-spin-button,.caldera-grid input[type=number]::-webkit-outer-spin-button{height:auto}.caldera-grid input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.caldera-grid input[type=search]::-webkit-search-cancel-button,.caldera-grid input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.caldera-grid fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}.caldera-grid legend{border:0;padding:0}.caldera-grid textarea{overflow:auto}.caldera-grid optgroup{font-weight:700}.caldera-grid table{border-collapse:collapse;border-spacing:0}.caldera-grid td,.caldera-grid th{padding:0}.caldera-grid *,.caldera-grid :after,.caldera-grid :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.caldera-grid html{font-size:62.5%;-webkit-tap-highlight-color:transparent}.caldera-grid body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}.caldera-grid button,.caldera-grid input,.caldera-grid select,.caldera-grid textarea{font-family:inherit;font-size:inherit;line-height:inherit}.caldera-grid a:focus,.caldera-grid a:hover{color:#2a6496;text-decoration:underline}.caldera-grid a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid figure{margin:0}.caldera-grid .img-responsive{display:block;max-width:100%;height:auto}.caldera-grid .img-rounded{border-radius:6px}.caldera-grid .img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.caldera-grid .img-circle{border-radius:50%}.caldera-grid hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.caldera-grid .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.caldera-grid .container,.caldera-grid .container-fluid{margin-right:auto;margin-left:auto;padding-left:7.5px;padding-right:7.5px}@media (min-width:768px){.caldera-grid .container{width:735px}}@media (min-width:992px){.caldera-grid .container{width:955px}}@media (min-width:1200px){.caldera-grid .container{width:1155px}}.caldera-grid .row{margin-left:-7.5px;margin-right:-7.5px;max-width:100%}.caldera-grid .col-lg-1,.caldera-grid .col-lg-10,.caldera-grid .col-lg-11,.caldera-grid .col-lg-12,.caldera-grid .col-lg-2,.caldera-grid .col-lg-3,.caldera-grid .col-lg-4,.caldera-grid .col-lg-5,.caldera-grid .col-lg-6,.caldera-grid .col-lg-7,.caldera-grid .col-lg-8,.caldera-grid .col-lg-9,.caldera-grid .col-md-1,.caldera-grid .col-md-10,.caldera-grid .col-md-11,.caldera-grid .col-md-12,.caldera-grid .col-md-2,.caldera-grid .col-md-3,.caldera-grid .col-md-4,.caldera-grid .col-md-5,.caldera-grid .col-md-6,.caldera-grid .col-md-7,.caldera-grid .col-md-8,.caldera-grid .col-md-9,.caldera-grid .col-sm-1,.caldera-grid .col-sm-10,.caldera-grid .col-sm-11,.caldera-grid .col-sm-12,.caldera-grid .col-sm-2,.caldera-grid .col-sm-3,.caldera-grid .col-sm-4,.caldera-grid .col-sm-5,.caldera-grid .col-sm-6,.caldera-grid .col-sm-7,.caldera-grid .col-sm-8,.caldera-grid .col-sm-9,.caldera-grid .col-xs-1,.caldera-grid .col-xs-10,.caldera-grid .col-xs-11,.caldera-grid .col-xs-12,.caldera-grid .col-xs-2,.caldera-grid .col-xs-3,.caldera-grid .col-xs-4,.caldera-grid .col-xs-5,.caldera-grid .col-xs-6,.caldera-grid .col-xs-7,.caldera-grid .col-xs-8,.caldera-grid .col-xs-9{position:relative;padding-left:7.5px;padding-right:7.5px}.caldera-grid .col-xs-1,.caldera-grid .col-xs-10,.caldera-grid .col-xs-11,.caldera-grid .col-xs-12,.caldera-grid .col-xs-2,.caldera-grid .col-xs-3,.caldera-grid .col-xs-4,.caldera-grid .col-xs-5,.caldera-grid .col-xs-6,.caldera-grid .col-xs-7,.caldera-grid .col-xs-8,.caldera-grid .col-xs-9{float:left}.caldera-grid .col-xs-12{width:100%}.caldera-grid .col-xs-11{width:91.66666667%}.caldera-grid .col-xs-10{width:83.33333333%}.caldera-grid .col-xs-9{width:75%}.caldera-grid .col-xs-8{width:66.66666667%}.caldera-grid .col-xs-7{width:58.33333333%}.caldera-grid .col-xs-6{width:50%}.caldera-grid .col-xs-5{width:41.66666667%}.caldera-grid .col-xs-4{width:33.33333333%}.caldera-grid .col-xs-3{width:25%}.caldera-grid .col-xs-2{width:16.66666667%}.caldera-grid .col-xs-1{width:8.33333333%}.caldera-grid .col-xs-pull-12{right:100%}.caldera-grid .col-xs-pull-11{right:91.66666667%}.caldera-grid .col-xs-pull-10{right:83.33333333%}.caldera-grid .col-xs-pull-9{right:75%}.caldera-grid .col-xs-pull-8{right:66.66666667%}.caldera-grid .col-xs-pull-7{right:58.33333333%}.caldera-grid .col-xs-pull-6{right:50%}.caldera-grid .col-xs-pull-5{right:41.66666667%}.caldera-grid .col-xs-pull-4{right:33.33333333%}.caldera-grid .col-xs-pull-3{right:25%}.caldera-grid .col-xs-pull-2{right:16.66666667%}.caldera-grid .col-xs-pull-1{right:8.33333333%}.caldera-grid .col-xs-pull-0{right:0}.caldera-grid .col-xs-push-12{left:100%}.caldera-grid .col-xs-push-11{left:91.66666667%}.caldera-grid .col-xs-push-10{left:83.33333333%}.caldera-grid .col-xs-push-9{left:75%}.caldera-grid .col-xs-push-8{left:66.66666667%}.caldera-grid .col-xs-push-7{left:58.33333333%}.caldera-grid .col-xs-push-6{left:50%}.caldera-grid .col-xs-push-5{left:41.66666667%}.caldera-grid .col-xs-push-4{left:33.33333333%}.caldera-grid .col-xs-push-3{left:25%}.caldera-grid .col-xs-push-2{left:16.66666667%}.caldera-grid .col-xs-push-1{left:8.33333333%}.caldera-grid .col-xs-push-0{left:0}.caldera-grid .col-xs-offset-12{margin-left:100%}.caldera-grid .col-xs-offset-11{margin-left:91.66666667%}.caldera-grid .col-xs-offset-10{margin-left:83.33333333%}.caldera-grid .col-xs-offset-9{margin-left:75%}.caldera-grid .col-xs-offset-8{margin-left:66.66666667%}.caldera-grid .col-xs-offset-7{margin-left:58.33333333%}.caldera-grid .col-xs-offset-6{margin-left:50%}.caldera-grid .col-xs-offset-5{margin-left:41.66666667%}.caldera-grid .col-xs-offset-4{margin-left:33.33333333%}.caldera-grid .col-xs-offset-3{margin-left:25%}.caldera-grid .col-xs-offset-2{margin-left:16.66666667%}.caldera-grid .col-xs-offset-1{margin-left:8.33333333%}.caldera-grid .col-xs-offset-0{margin-left:0}@media (min-width:768px){.caldera-grid .col-sm-1,.caldera-grid .col-sm-10,.caldera-grid .col-sm-11,.caldera-grid .col-sm-12,.caldera-grid .col-sm-2,.caldera-grid .col-sm-3,.caldera-grid .col-sm-4,.caldera-grid .col-sm-5,.caldera-grid .col-sm-6,.caldera-grid .col-sm-7,.caldera-grid .col-sm-8,.caldera-grid .col-sm-9{float:left}.caldera-grid .col-sm-12{width:100%}.caldera-grid .col-sm-11{width:91.66666667%}.caldera-grid .col-sm-10{width:83.33333333%}.caldera-grid .col-sm-9{width:75%}.caldera-grid .col-sm-8{width:66.66666667%}.caldera-grid .col-sm-7{width:58.33333333%}.caldera-grid .col-sm-6{width:50%}.caldera-grid .col-sm-5{width:41.66666667%}.caldera-grid .col-sm-4{width:33.33333333%}.caldera-grid .col-sm-3{width:25%}.caldera-grid .col-sm-2{width:16.66666667%}.caldera-grid .col-sm-1{width:8.33333333%}.caldera-grid .col-sm-pull-12{right:100%}.caldera-grid .col-sm-pull-11{right:91.66666667%}.caldera-grid .col-sm-pull-10{right:83.33333333%}.caldera-grid .col-sm-pull-9{right:75%}.caldera-grid .col-sm-pull-8{right:66.66666667%}.caldera-grid .col-sm-pull-7{right:58.33333333%}.caldera-grid .col-sm-pull-6{right:50%}.caldera-grid .col-sm-pull-5{right:41.66666667%}.caldera-grid .col-sm-pull-4{right:33.33333333%}.caldera-grid .col-sm-pull-3{right:25%}.caldera-grid .col-sm-pull-2{right:16.66666667%}.caldera-grid .col-sm-pull-1{right:8.33333333%}.caldera-grid .col-sm-pull-0{right:0}.caldera-grid .col-sm-push-12{left:100%}.caldera-grid .col-sm-push-11{left:91.66666667%}.caldera-grid .col-sm-push-10{left:83.33333333%}.caldera-grid .col-sm-push-9{left:75%}.caldera-grid .col-sm-push-8{left:66.66666667%}.caldera-grid .col-sm-push-7{left:58.33333333%}.caldera-grid .col-sm-push-6{left:50%}.caldera-grid .col-sm-push-5{left:41.66666667%}.caldera-grid .col-sm-push-4{left:33.33333333%}.caldera-grid .col-sm-push-3{left:25%}.caldera-grid .col-sm-push-2{left:16.66666667%}.caldera-grid .col-sm-push-1{left:8.33333333%}.caldera-grid .col-sm-push-0{left:0}.caldera-grid .col-sm-offset-12{margin-left:100%}.caldera-grid .col-sm-offset-11{margin-left:91.66666667%}.caldera-grid .col-sm-offset-10{margin-left:83.33333333%}.caldera-grid .col-sm-offset-9{margin-left:75%}.caldera-grid .col-sm-offset-8{margin-left:66.66666667%}.caldera-grid .col-sm-offset-7{margin-left:58.33333333%}.caldera-grid .col-sm-offset-6{margin-left:50%}.caldera-grid .col-sm-offset-5{margin-left:41.66666667%}.caldera-grid .col-sm-offset-4{margin-left:33.33333333%}.caldera-grid .col-sm-offset-3{margin-left:25%}.caldera-grid .col-sm-offset-2{margin-left:16.66666667%}.caldera-grid .col-sm-offset-1{margin-left:8.33333333%}.caldera-grid .col-sm-offset-0{margin-left:0}}@media (min-width:992px){.caldera-grid .col-md-1,.caldera-grid .col-md-10,.caldera-grid .col-md-11,.caldera-grid .col-md-12,.caldera-grid .col-md-2,.caldera-grid .col-md-3,.caldera-grid .col-md-4,.caldera-grid .col-md-5,.caldera-grid .col-md-6,.caldera-grid .col-md-7,.caldera-grid .col-md-8,.caldera-grid .col-md-9{float:left}.caldera-grid .col-md-12{width:100%}.caldera-grid .col-md-11{width:91.66666667%}.caldera-grid .col-md-10{width:83.33333333%}.caldera-grid .col-md-9{width:75%}.caldera-grid .col-md-8{width:66.66666667%}.caldera-grid .col-md-7{width:58.33333333%}.caldera-grid .col-md-6{width:50%}.caldera-grid .col-md-5{width:41.66666667%}.caldera-grid .col-md-4{width:33.33333333%}.caldera-grid .col-md-3{width:25%}.caldera-grid .col-md-2{width:16.66666667%}.caldera-grid .col-md-1{width:8.33333333%}.caldera-grid .col-md-pull-12{right:100%}.caldera-grid .col-md-pull-11{right:91.66666667%}.caldera-grid .col-md-pull-10{right:83.33333333%}.caldera-grid .col-md-pull-9{right:75%}.caldera-grid .col-md-pull-8{right:66.66666667%}.caldera-grid .col-md-pull-7{right:58.33333333%}.caldera-grid .col-md-pull-6{right:50%}.caldera-grid .col-md-pull-5{right:41.66666667%}.caldera-grid .col-md-pull-4{right:33.33333333%}.caldera-grid .col-md-pull-3{right:25%}.caldera-grid .col-md-pull-2{right:16.66666667%}.caldera-grid .col-md-pull-1{right:8.33333333%}.caldera-grid .col-md-pull-0{right:0}.caldera-grid .col-md-push-12{left:100%}.caldera-grid .col-md-push-11{left:91.66666667%}.caldera-grid .col-md-push-10{left:83.33333333%}.caldera-grid .col-md-push-9{left:75%}.caldera-grid .col-md-push-8{left:66.66666667%}.caldera-grid .col-md-push-7{left:58.33333333%}.caldera-grid .col-md-push-6{left:50%}.caldera-grid .col-md-push-5{left:41.66666667%}.caldera-grid .col-md-push-4{left:33.33333333%}.caldera-grid .col-md-push-3{left:25%}.caldera-grid .col-md-push-2{left:16.66666667%}.caldera-grid .col-md-push-1{left:8.33333333%}.caldera-grid .col-md-push-0{left:0}.caldera-grid .col-md-offset-12{margin-left:100%}.caldera-grid .col-md-offset-11{margin-left:91.66666667%}.caldera-grid .col-md-offset-10{margin-left:83.33333333%}.caldera-grid .col-md-offset-9{margin-left:75%}.caldera-grid .col-md-offset-8{margin-left:66.66666667%}.caldera-grid .col-md-offset-7{margin-left:58.33333333%}.caldera-grid .col-md-offset-6{margin-left:50%}.caldera-grid .col-md-offset-5{margin-left:41.66666667%}.caldera-grid .col-md-offset-4{margin-left:33.33333333%}.caldera-grid .col-md-offset-3{margin-left:25%}.caldera-grid .col-md-offset-2{margin-left:16.66666667%}.caldera-grid .col-md-offset-1{margin-left:8.33333333%}.caldera-grid .col-md-offset-0{margin-left:0}}@-ms-viewport{width:device-width}@media (min-width:1200px){.caldera-grid .col-lg-1,.caldera-grid .col-lg-10,.caldera-grid .col-lg-11,.caldera-grid .col-lg-12,.caldera-grid .col-lg-2,.caldera-grid .col-lg-3,.caldera-grid .col-lg-4,.caldera-grid .col-lg-5,.caldera-grid .col-lg-6,.caldera-grid .col-lg-7,.caldera-grid .col-lg-8,.caldera-grid .col-lg-9{float:left}.caldera-grid .col-lg-12{width:100%}.caldera-grid .col-lg-11{width:91.66666667%}.caldera-grid .col-lg-10{width:83.33333333%}.caldera-grid .col-lg-9{width:75%}.caldera-grid .col-lg-8{width:66.66666667%}.caldera-grid .col-lg-7{width:58.33333333%}.caldera-grid .col-lg-6{width:50%}.caldera-grid .col-lg-5{width:41.66666667%}.caldera-grid .col-lg-4{width:33.33333333%}.caldera-grid .col-lg-3{width:25%}.caldera-grid .col-lg-2{width:16.66666667%}.caldera-grid .col-lg-1{width:8.33333333%}.caldera-grid .col-lg-pull-12{right:100%}.caldera-grid .col-lg-pull-11{right:91.66666667%}.caldera-grid .col-lg-pull-10{right:83.33333333%}.caldera-grid .col-lg-pull-9{right:75%}.caldera-grid .col-lg-pull-8{right:66.66666667%}.caldera-grid .col-lg-pull-7{right:58.33333333%}.caldera-grid .col-lg-pull-6{right:50%}.caldera-grid .col-lg-pull-5{right:41.66666667%}.caldera-grid .col-lg-pull-4{right:33.33333333%}.caldera-grid .col-lg-pull-3{right:25%}.caldera-grid .col-lg-pull-2{right:16.66666667%}.caldera-grid .col-lg-pull-1{right:8.33333333%}.caldera-grid .col-lg-pull-0{right:0}.caldera-grid .col-lg-push-12{left:100%}.caldera-grid .col-lg-push-11{left:91.66666667%}.caldera-grid .col-lg-push-10{left:83.33333333%}.caldera-grid .col-lg-push-9{left:75%}.caldera-grid .col-lg-push-8{left:66.66666667%}.caldera-grid .col-lg-push-7{left:58.33333333%}.caldera-grid .col-lg-push-6{left:50%}.caldera-grid .col-lg-push-5{left:41.66666667%}.caldera-grid .col-lg-push-4{left:33.33333333%}.caldera-grid .col-lg-push-3{left:25%}.caldera-grid .col-lg-push-2{left:16.66666667%}.caldera-grid .col-lg-push-1{left:8.33333333%}.caldera-grid .col-lg-push-0{left:0}.caldera-grid .col-lg-offset-12{margin-left:100%}.caldera-grid .col-lg-offset-11{margin-left:91.66666667%}.caldera-grid .col-lg-offset-10{margin-left:83.33333333%}.caldera-grid .col-lg-offset-9{margin-left:75%}.caldera-grid .col-lg-offset-8{margin-left:66.66666667%}.caldera-grid .col-lg-offset-7{margin-left:58.33333333%}.caldera-grid .col-lg-offset-6{margin-left:50%}.caldera-grid .col-lg-offset-5{margin-left:41.66666667%}.caldera-grid .col-lg-offset-4{margin-left:33.33333333%}.caldera-grid .col-lg-offset-3{margin-left:25%}.caldera-grid .col-lg-offset-2{margin-left:16.66666667%}.caldera-grid .col-lg-offset-1{margin-left:8.33333333%}.caldera-grid .col-lg-offset-0{margin-left:0}}.caldera-grid .clearfix:after,.caldera-grid .clearfix:before,.caldera-grid .container-fluid:after,.caldera-grid .container-fluid:before,.caldera-grid .container:after,.caldera-grid .container:before,.caldera-grid .row:after,.caldera-grid .row:before{content:" ";display:table}.caldera-grid .clearfix:after,.caldera-grid .container-fluid:after,.caldera-grid .container:after,.caldera-grid .row:after{clear:both}.caldera-grid .center-block{display:block;margin-left:auto;margin-right:auto}.caldera-grid .pull-right{float:right!important}.caldera-grid .pull-left{float:left!important}.caldera-grid .hide{display:none!important}.caldera-grid .show{display:block!important}.caldera-grid .hidden,.caldera-grid .visible-lg,.caldera-grid .visible-md,.caldera-grid .visible-sm,.caldera-grid .visible-xs{display:none!important}.caldera-grid .invisible{visibility:hidden}.caldera-grid .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.caldera-grid .hidden{visibility:hidden!important}.caldera-grid .affix{position:fixed}@-ms-viewport{width:device-width}.caldera-grid .form-control{width:100%}@media (max-width:767px){.caldera-grid .visible-xs{display:block!important}.caldera-grid table.visible-xs{display:table}.caldera-grid tr.visible-xs{display:table-row!important}.caldera-grid td.visible-xs,.caldera-grid th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.caldera-grid .visible-sm{display:block!important}.caldera-grid table.visible-sm{display:table}.caldera-grid tr.visible-sm{display:table-row!important}.caldera-grid td.visible-sm,.caldera-grid th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.caldera-grid .visible-md{display:block!important}.caldera-grid table.visible-md{display:table}.caldera-grid tr.visible-md{display:table-row!important}.caldera-grid td.visible-md,.caldera-grid th.visible-md{display:table-cell!important}}@media (min-width:1200px){.caldera-grid .visible-lg{display:block!important}.caldera-grid table.visible-lg{display:table}.caldera-grid tr.visible-lg{display:table-row!important}.caldera-grid td.visible-lg,.caldera-grid th.visible-lg{display:table-cell!important}.caldera-grid .hidden-lg{display:none!important}}@media (max-width:767px){.caldera-grid .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.caldera-grid .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.caldera-grid .hidden-md{display:none!important}}.caldera-grid .visible-print{display:none!important}@media print{.caldera-grid .visible-print{display:block!important}.caldera-grid table.visible-print{display:table}.caldera-grid tr.visible-print{display:table-row!important}.caldera-grid td.visible-print,.caldera-grid th.visible-print{display:table-cell!important}.caldera-grid .hidden-print{display:none!important}}input.parsley-success,select.parsley-success,textarea.parsley-success{color:#468847;background-color:#DFF0D8;border:1px solid #D6E9C6}input.parsley-error,select.parsley-error,textarea.parsley-error{color:#B94A48;background-color:#F2DEDE;border:1px solid #EED3D7}.parsley-errors-list{margin:2px 0 3px;padding:0;list-style-type:none;font-size:.9em;line-height:.9em;opacity:0;transition:all .3s ease-in;-o-transition:all .3s ease-in;-moz-transition:all .3s ease-in;-webkit-transition:all .3s ease-in}.parsley-errors-list.filled{opacity:1}
|
2 |
.caldera-grid .alert{padding:8px;margin-bottom:18px;border-radius:2px}.caldera-grid .alert .alert-link{font-weight:700}.caldera-grid .alert-dismissable{padding-right:28px}.caldera-grid .alert-success{background-color:#dff0d8;border-color:#a3d48e;color:#3c763d}.caldera-grid .alert-success hr{border-top-color:#93cd7c}.caldera-grid .alert-success .alert-link{color:#2b542c}.caldera-grid .alert-info{background-color:#d9edf7;border-color:#85c5e5;color:#31708f}.caldera-grid .alert-info hr{border-top-color:#70bbe1}.caldera-grid .alert-info .alert-link{color:#245269}.caldera-grid .alert-warning{background-color:#f9edbe;border-color:#f0c36d;color:#333}.caldera-grid .alert-warning hr{border-top-color:#eeb956}.caldera-grid .alert-warning .alert-link{color:#1a1a1a}.caldera-grid .alert-danger,.caldera-grid .alert-error{background-color:#f2dede;border-color:#d59595;color:#a94442}.caldera-grid .alert-danger hr,.caldera-grid .alert-error hr{border-top-color:#ce8383}.caldera-grid .alert-danger .alert-link,.caldera-grid .alert-error .alert-link{color:#843534}.caldera-grid .has-error .checkbox,.caldera-grid .has-error .checkbox-inline,.caldera-grid .has-error .control-label,.caldera-grid .has-error .form-control-feedback,.caldera-grid .has-error .help-block,.caldera-grid .has-error .radio,.caldera-grid .has-error .radio-inline{color:#dd4b39}.caldera-grid .alert-danger,.caldera-grid .alert-error,.caldera-grid .alert-info,.caldera-grid .alert-success,.caldera-grid .alert-warning{text-shadow:0 1px 0 rgba(255,255,255,.5)}.caldera-grid .has-error .form-control{border-color:#dd4b39;-webkit-box-shadow:none;box-shadow:none}.caldera-grid .has-error .input-group-addon{color:#dd4b39;border-color:#dd4b39;background-color:#f2dede}.caldera-grid .has-error .form-control:focus,.caldera-grid .has-error .form-control:hover{border-color:#dd4b39}.caldera-grid.cf_processing{background:url(../images/loading.gif) center center/30px auto no-repeat rgba(0,0,0,0)}.caldera-grid.cf_processing>*{opacity:.5}
|
3 |
.caldera-grid html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}.caldera-grid body{margin:0}.caldera-grid article,.caldera-grid aside,.caldera-grid details,.caldera-grid figcaption,.caldera-grid figure,.caldera-grid footer,.caldera-grid header,.caldera-grid hgroup,.caldera-grid main,.caldera-grid menu,.caldera-grid nav,.caldera-grid section,.caldera-grid summary{display:block}.caldera-grid audio,.caldera-grid canvas,.caldera-grid progress,.caldera-grid video{display:inline-block;vertical-align:baseline}.caldera-grid audio:not([controls]){display:none;height:0}.caldera-grid [hidden],.caldera-grid template{display:none}.caldera-grid a{background-color:transparent}.caldera-grid a:active,.caldera-grid a:hover{outline:0}.caldera-grid abbr[title]{border-bottom:1px dotted}.caldera-grid b,.caldera-grid strong{font-weight:700}.caldera-grid dfn{font-style:italic}.caldera-grid h1{font-size:2em;margin:.67em 0}.caldera-grid mark{background:#ff0;color:#000}.caldera-grid small{font-size:80%}.caldera-grid sub,.caldera-grid sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.caldera-grid sup{top:-.5em}.caldera-grid sub{bottom:-.25em}.caldera-grid img{border:0}.caldera-grid svg:not(:root){overflow:hidden}.caldera-grid figure{margin:1em 40px}.caldera-grid hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.caldera-grid pre{overflow:auto}.caldera-grid code,.caldera-grid kbd,.caldera-grid pre,.caldera-grid samp{font-family:monospace,monospace;font-size:1em}.caldera-grid button,.caldera-grid input,.caldera-grid optgroup,.caldera-grid select,.caldera-grid textarea{font:inherit;margin:0}.caldera-grid button{overflow:visible}.caldera-grid button,.caldera-grid select{text-transform:none}.caldera-grid button,.caldera-grid html input[type=button],.caldera-grid input[type=reset],.caldera-grid input[type=submit]{-webkit-appearance:button;cursor:pointer}.caldera-grid button[disabled],.caldera-grid html input[disabled]{cursor:default}.caldera-grid button::-moz-focus-inner,.caldera-grid input::-moz-focus-inner{border:0;padding:0}.caldera-grid input{line-height:normal}.caldera-grid input[type=checkbox],.caldera-grid input[type=radio]{box-sizing:border-box;padding:0}.caldera-grid input[type=number]::-webkit-inner-spin-button,.caldera-grid input[type=number]::-webkit-outer-spin-button{height:auto}.caldera-grid input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.caldera-grid input[type=search]::-webkit-search-cancel-button,.caldera-grid input[type=search]::-webkit-search-decoration{-webkit-appearance:none}.caldera-grid textarea{overflow:auto}.caldera-grid optgroup{font-weight:700}.caldera-grid table{border-collapse:collapse;border-spacing:0}.caldera-grid td,.caldera-grid th{padding:0}@media print{.caldera-grid *,.caldera-grid :after,.caldera-grid :before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.caldera-grid a,.caldera-grid a:visited{text-decoration:underline}.caldera-grid a[href]:after{content:" (" attr(href) ")"}.caldera-grid abbr[title]:after{content:" (" attr(title) ")"}.caldera-grid a[href^="#"]:after,.caldera-grid a[href^="javascript:"]:after{content:""}.caldera-grid blockquote,.caldera-grid pre{border:1px solid #999;page-break-inside:avoid}.caldera-grid thead{display:table-header-group}.caldera-grid img,.caldera-grid tr{page-break-inside:avoid}.caldera-grid img{max-width:100%!important}.caldera-grid h2,.caldera-grid h3,.caldera-grid p{orphans:3;widows:3}.caldera-grid h2,.caldera-grid h3{page-break-after:avoid}.caldera-grid select{background:#fff!important}.caldera-grid .navbar{display:none}.caldera-grid .btn>.caret,.caldera-grid .dropup>.btn>.caret{border-top-color:#000!important}.caldera-grid .label{border:1px solid #000}.caldera-grid .table{border-collapse:collapse!important}.caldera-grid .table td,.caldera-grid .table th{background-color:#fff!important}.caldera-grid .table-bordered td,.caldera-grid .table-bordered th{border:1px solid #ddd!important}}.caldera-grid .btn,.caldera-grid .btn-danger.active,.caldera-grid .btn-danger:active,.caldera-grid .btn-default.active,.caldera-grid .btn-default:active,.caldera-grid .btn-info.active,.caldera-grid .btn-info:active,.caldera-grid .btn-primary.active,.caldera-grid .btn-primary:active,.caldera-grid .btn-success.active,.caldera-grid .btn-success:active,.caldera-grid .btn-warning.active,.caldera-grid .btn-warning:active,.caldera-grid .form-control,.open>.dropdown-toggle.caldera-grid .btn-danger,.open>.dropdown-toggle.caldera-grid .btn-default,.open>.dropdown-toggle.caldera-grid .btn-info,.open>.dropdown-toggle.caldera-grid .btn-primary,.open>.dropdown-toggle.caldera-grid .btn-success,.open>.dropdown-toggle.caldera-grid .btn-warning{background-image:none}.caldera-grid fieldset{padding:0;margin:0;border:0;min-width:0}.caldera-grid legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}.caldera-grid label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}.caldera-grid input[type=checkbox],.caldera-grid input[type=radio]{margin:0;line-height:normal}.caldera-grid .form-control,.caldera-grid output{font-size:14px;line-height:1.42857143;color:#555;display:block}.caldera-grid input[type=file]{display:block}.caldera-grid input[type=range]{display:block;width:100%}.caldera-grid select[multiple],.caldera-grid select[size]{height:auto}.caldera-grid input[type=checkbox]:focus,.caldera-grid input[type=file]:focus,.caldera-grid input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid input[type=checkbox]{-webkit-appearance:checkbox}.caldera-grid input[type=radio]{-webkit-appearance:radio}.caldera-grid output{padding-top:7px}.caldera-grid .form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.caldera-grid .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.caldera-grid .form-control::-moz-placeholder{color:#999;opacity:1}.caldera-grid .form-control:-ms-input-placeholder{color:#999}.caldera-grid .form-control::-webkit-input-placeholder{color:#999}.caldera-grid .has-success .checkbox,.caldera-grid .has-success .checkbox-inline,.caldera-grid .has-success .control-label,.caldera-grid .has-success .form-control-feedback,.caldera-grid .has-success .help-block,.caldera-grid .has-success .radio,.caldera-grid .has-success .radio-inline,.caldera-grid .has-success.checkbox label,.caldera-grid .has-success.checkbox-inline label,.caldera-grid .has-success.radio label,.caldera-grid .has-success.radio-inline label{color:#3c763d}.caldera-grid .form-control[disabled],.caldera-grid .form-control[readonly],fieldset[disabled] .caldera-grid .form-control{background-color:#eee;opacity:1}.caldera-grid .form-control[disabled],fieldset[disabled] .caldera-grid .form-control{cursor:not-allowed}textarea .caldera-grid .form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){.caldera-grid input[type=date],.caldera-grid input[type=datetime-local],.caldera-grid input[type=month],.caldera-grid input[type=time]{line-height:34px}.caldera-grid input[type=date].input-sm,.caldera-grid input[type=datetime-local].input-sm,.caldera-grid input[type=month].input-sm,.caldera-grid input[type=time].input-sm,.input-group-sm .caldera-grid input[type=date],.input-group-sm .caldera-grid input[type=datetime-local],.input-group-sm .caldera-grid input[type=month],.input-group-sm .caldera-grid input[type=time]{line-height:30px}.caldera-grid input[type=date].input-lg,.caldera-grid input[type=datetime-local].input-lg,.caldera-grid input[type=month].input-lg,.caldera-grid input[type=time].input-lg,.input-group-lg .caldera-grid input[type=date],.input-group-lg .caldera-grid input[type=datetime-local],.input-group-lg .caldera-grid input[type=month],.input-group-lg .caldera-grid input[type=time]{line-height:46px}}.caldera-grid .form-group{margin-bottom:15px}.caldera-grid .checkbox,.caldera-grid .radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.caldera-grid .checkbox label,.caldera-grid .radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.caldera-grid .checkbox input[type=checkbox],.caldera-grid .checkbox-inline input[type=checkbox],.caldera-grid .radio input[type=radio],.caldera-grid .radio-inline input[type=radio]{margin-left:-20px}.caldera-grid .checkbox+.checkbox,.caldera-grid .radio+.radio{margin-top:-5px}.caldera-grid .checkbox-inline,.caldera-grid .radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.caldera-grid .checkbox-inline+.checkbox-inline,.caldera-grid .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.caldera-grid .checkbox-inline.disabled,.caldera-grid .checkbox.disabled label,.caldera-grid .radio-inline.disabled,.caldera-grid .radio.disabled label,.caldera-grid input[type=checkbox].disabled,.caldera-grid input[type=checkbox][disabled],.caldera-grid input[type=radio].disabled,.caldera-grid input[type=radio][disabled],fieldset[disabled] .caldera-grid .checkbox label,fieldset[disabled] .caldera-grid .checkbox-inline,fieldset[disabled] .caldera-grid .radio label,fieldset[disabled] .caldera-grid .radio-inline,fieldset[disabled] .caldera-grid input[type=checkbox],fieldset[disabled] .caldera-grid input[type=radio]{cursor:not-allowed}.caldera-grid .form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.caldera-grid .form-control-static.input-lg,.caldera-grid .form-control-static.input-sm{padding-left:0;padding-right:0}.caldera-grid .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.caldera-grid .input-sm{height:30px;line-height:30px}select[multiple].caldera-grid .input-sm,textarea.caldera-grid .input-sm{height:auto}.caldera-grid .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:1px}select.caldera-grid .form-group-sm .form-control{height:30px;line-height:30px}select[multiple].caldera-grid .form-group-sm .form-control,textarea.caldera-grid .form-group-sm .form-control{height:auto}.caldera-grid .form-group-sm .form-control-static{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;min-height:32px}.caldera-grid .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}select.caldera-grid .input-lg{height:46px;line-height:46px}select[multiple].caldera-grid .input-lg,textarea.caldera-grid .input-lg{height:auto}.caldera-grid .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}select.caldera-grid .form-group-lg .form-control{height:46px;line-height:46px}select[multiple].caldera-grid .form-group-lg .form-control,textarea.caldera-grid .form-group-lg .form-control{height:auto}.caldera-grid .form-group-lg .form-control-static{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;min-height:38px}.caldera-grid .has-feedback{position:relative}.caldera-grid .has-feedback .form-control{padding-right:42.5px}.caldera-grid .form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.caldera-grid .input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.caldera-grid .input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.caldera-grid .has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.caldera-grid .has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.caldera-grid .has-warning .checkbox,.caldera-grid .has-warning .checkbox-inline,.caldera-grid .has-warning .control-label,.caldera-grid .has-warning .form-control-feedback,.caldera-grid .has-warning .help-block,.caldera-grid .has-warning .radio,.caldera-grid .has-warning .radio-inline,.caldera-grid .has-warning.checkbox label,.caldera-grid .has-warning.checkbox-inline label,.caldera-grid .has-warning.radio label,.caldera-grid .has-warning.radio-inline label{color:#8a6d3b}.caldera-grid .has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.caldera-grid .has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.caldera-grid .has-error .checkbox,.caldera-grid .has-error .checkbox-inline,.caldera-grid .has-error .control-label,.caldera-grid .has-error .form-control-feedback,.caldera-grid .has-error .help-block,.caldera-grid .has-error .radio,.caldera-grid .has-error .radio-inline,.caldera-grid .has-error.checkbox label,.caldera-grid .has-error.checkbox-inline label,.caldera-grid .has-error.radio label,.caldera-grid .has-error.radio-inline label{color:#a94442}.caldera-grid .has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.caldera-grid .has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.caldera-grid .has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.caldera-grid .has-feedback label~.form-control-feedback{top:25px}.caldera-grid .has-feedback label.sr-only~.form-control-feedback{top:0}.caldera-grid .help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.caldera-grid .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.caldera-grid .form-inline .form-control-static{display:inline-block}.caldera-grid .form-inline .input-group{display:inline-table;vertical-align:middle}.caldera-grid .form-inline .input-group .form-control,.caldera-grid .form-inline .input-group .input-group-addon,.caldera-grid .form-inline .input-group .input-group-btn{width:auto}.caldera-grid .form-inline .input-group>.form-control{width:100%}.caldera-grid .form-inline .control-label{margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .checkbox,.caldera-grid .form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.caldera-grid .form-inline .checkbox label,.caldera-grid .form-inline .radio label{padding-left:0}.caldera-grid .form-inline .checkbox input[type=checkbox],.caldera-grid .form-inline .radio input[type=radio]{position:relative;margin-left:0}.caldera-grid .form-inline .has-feedback .form-control-feedback{top:0}.caldera-grid .form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.caldera-grid .form-horizontal .checkbox,.caldera-grid .form-horizontal .checkbox-inline,.caldera-grid .form-horizontal .radio,.caldera-grid .form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.caldera-grid .form-horizontal .checkbox,.caldera-grid .form-horizontal .radio{min-height:27px}.caldera-grid .form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.caldera-grid .form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.caldera-grid .form-horizontal .form-group-lg .control-label{padding-top:14.33px}.caldera-grid .form-horizontal .form-group-sm .control-label{padding-top:6px}}.caldera-grid .btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.caldera-grid .btn.active.focus,.caldera-grid .btn.active:focus,.caldera-grid .btn.focus,.caldera-grid .btn:active.focus,.caldera-grid .btn:active:focus,.caldera-grid .btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.caldera-grid .btn.focus,.caldera-grid .btn:focus,.caldera-grid .btn:hover{color:#333;text-decoration:none}.caldera-grid .btn.active,.caldera-grid .btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.caldera-grid .btn.disabled,.caldera-grid .btn[disabled],fieldset[disabled] .caldera-grid .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.caldera-grid .btn-default{color:#333;background-color:#fff;border-color:#ccc}.caldera-grid .btn-default.active,.caldera-grid .btn-default.focus,.caldera-grid .btn-default:active,.caldera-grid .btn-default:focus,.caldera-grid .btn-default:hover,.open>.dropdown-toggle.caldera-grid .btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.caldera-grid .btn-default.disabled,.caldera-grid .btn-default.disabled.active,.caldera-grid .btn-default.disabled.focus,.caldera-grid .btn-default.disabled:active,.caldera-grid .btn-default.disabled:focus,.caldera-grid .btn-default.disabled:hover,.caldera-grid .btn-default[disabled],.caldera-grid .btn-default[disabled].active,.caldera-grid .btn-default[disabled].focus,.caldera-grid .btn-default[disabled]:active,.caldera-grid .btn-default[disabled]:focus,.caldera-grid .btn-default[disabled]:hover,fieldset[disabled] .caldera-grid .btn-default,fieldset[disabled] .caldera-grid .btn-default.active,fieldset[disabled] .caldera-grid .btn-default.focus,fieldset[disabled] .caldera-grid .btn-default:active,fieldset[disabled] .caldera-grid .btn-default:focus,fieldset[disabled] .caldera-grid .btn-default:hover{background-color:#fff;border-color:#ccc}.caldera-grid .btn-default .badge{color:#fff;background-color:#333}.caldera-grid .btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.caldera-grid .btn-primary.active,.caldera-grid .btn-primary.focus,.caldera-grid .btn-primary:active,.caldera-grid .btn-primary:focus,.caldera-grid .btn-primary:hover,.open>.dropdown-toggle.caldera-grid .btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.caldera-grid .btn-primary.disabled,.caldera-grid .btn-primary.disabled.active,.caldera-grid .btn-primary.disabled.focus,.caldera-grid .btn-primary.disabled:active,.caldera-grid .btn-primary.disabled:focus,.caldera-grid .btn-primary.disabled:hover,.caldera-grid .btn-primary[disabled],.caldera-grid .btn-primary[disabled].active,.caldera-grid .btn-primary[disabled].focus,.caldera-grid .btn-primary[disabled]:active,.caldera-grid .btn-primary[disabled]:focus,.caldera-grid .btn-primary[disabled]:hover,fieldset[disabled] .caldera-grid .btn-primary,fieldset[disabled] .caldera-grid .btn-primary.active,fieldset[disabled] .caldera-grid .btn-primary.focus,fieldset[disabled] .caldera-grid .btn-primary:active,fieldset[disabled] .caldera-grid .btn-primary:focus,fieldset[disabled] .caldera-grid .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.caldera-grid .btn-primary .badge{color:#337ab7;background-color:#fff}.caldera-grid .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.caldera-grid .btn-success.active,.caldera-grid .btn-success.focus,.caldera-grid .btn-success:active,.caldera-grid .btn-success:focus,.caldera-grid .btn-success:hover,.open>.dropdown-toggle.caldera-grid .btn-success{color:#fff;background-color:#449d44;border-color:#398439}.caldera-grid .btn-success.disabled,.caldera-grid .btn-success.disabled.active,.caldera-grid .btn-success.disabled.focus,.caldera-grid .btn-success.disabled:active,.caldera-grid .btn-success.disabled:focus,.caldera-grid .btn-success.disabled:hover,.caldera-grid .btn-success[disabled],.caldera-grid .btn-success[disabled].active,.caldera-grid .btn-success[disabled].focus,.caldera-grid .btn-success[disabled]:active,.caldera-grid .btn-success[disabled]:focus,.caldera-grid .btn-success[disabled]:hover,fieldset[disabled] .caldera-grid .btn-success,fieldset[disabled] .caldera-grid .btn-success.active,fieldset[disabled] .caldera-grid .btn-success.focus,fieldset[disabled] .caldera-grid .btn-success:active,fieldset[disabled] .caldera-grid .btn-success:focus,fieldset[disabled] .caldera-grid .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.caldera-grid .btn-success .badge{color:#5cb85c;background-color:#fff}.caldera-grid .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.caldera-grid .btn-info.active,.caldera-grid .btn-info.focus,.caldera-grid .btn-info:active,.caldera-grid .btn-info:focus,.caldera-grid .btn-info:hover,.open>.dropdown-toggle.caldera-grid .btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.caldera-grid .btn-info.disabled,.caldera-grid .btn-info.disabled.active,.caldera-grid .btn-info.disabled.focus,.caldera-grid .btn-info.disabled:active,.caldera-grid .btn-info.disabled:focus,.caldera-grid .btn-info.disabled:hover,.caldera-grid .btn-info[disabled],.caldera-grid .btn-info[disabled].active,.caldera-grid .btn-info[disabled].focus,.caldera-grid .btn-info[disabled]:active,.caldera-grid .btn-info[disabled]:focus,.caldera-grid .btn-info[disabled]:hover,fieldset[disabled] .caldera-grid .btn-info,fieldset[disabled] .caldera-grid .btn-info.active,fieldset[disabled] .caldera-grid .btn-info.focus,fieldset[disabled] .caldera-grid .btn-info:active,fieldset[disabled] .caldera-grid .btn-info:focus,fieldset[disabled] .caldera-grid .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.caldera-grid .btn-info .badge{color:#5bc0de;background-color:#fff}.caldera-grid .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.caldera-grid .btn-warning.active,.caldera-grid .btn-warning.focus,.caldera-grid .btn-warning:active,.caldera-grid .btn-warning:focus,.caldera-grid .btn-warning:hover,.open>.dropdown-toggle.caldera-grid .btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.caldera-grid .btn-warning.disabled,.caldera-grid .btn-warning.disabled.active,.caldera-grid .btn-warning.disabled.focus,.caldera-grid .btn-warning.disabled:active,.caldera-grid .btn-warning.disabled:focus,.caldera-grid .btn-warning.disabled:hover,.caldera-grid .btn-warning[disabled],.caldera-grid .btn-warning[disabled].active,.caldera-grid .btn-warning[disabled].focus,.caldera-grid .btn-warning[disabled]:active,.caldera-grid .btn-warning[disabled]:focus,.caldera-grid .btn-warning[disabled]:hover,fieldset[disabled] .caldera-grid .btn-warning,fieldset[disabled] .caldera-grid .btn-warning.active,fieldset[disabled] .caldera-grid .btn-warning.focus,fieldset[disabled] .caldera-grid .btn-warning:active,fieldset[disabled] .caldera-grid .btn-warning:focus,fieldset[disabled] .caldera-grid .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.caldera-grid .btn-warning .badge{color:#f0ad4e;background-color:#fff}.caldera-grid .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.caldera-grid .btn-danger.active,.caldera-grid .btn-danger.focus,.caldera-grid .btn-danger:active,.caldera-grid .btn-danger:focus,.caldera-grid .btn-danger:hover,.open>.dropdown-toggle.caldera-grid .btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.caldera-grid .btn-danger.disabled,.caldera-grid .btn-danger.disabled.active,.caldera-grid .btn-danger.disabled.focus,.caldera-grid .btn-danger.disabled:active,.caldera-grid .btn-danger.disabled:focus,.caldera-grid .btn-danger.disabled:hover,.caldera-grid .btn-danger[disabled],.caldera-grid .btn-danger[disabled].active,.caldera-grid .btn-danger[disabled].focus,.caldera-grid .btn-danger[disabled]:active,.caldera-grid .btn-danger[disabled]:focus,.caldera-grid .btn-danger[disabled]:hover,fieldset[disabled] .caldera-grid .btn-danger,fieldset[disabled] .caldera-grid .btn-danger.active,fieldset[disabled] .caldera-grid .btn-danger.focus,fieldset[disabled] .caldera-grid .btn-danger:active,fieldset[disabled] .caldera-grid .btn-danger:focus,fieldset[disabled] .caldera-grid .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.caldera-grid .btn-danger .badge{color:#d9534f;background-color:#fff}.caldera-grid .btn-link{color:#337ab7;font-weight:400;border-radius:0}.caldera-grid .btn-link,.caldera-grid .btn-link.active,.caldera-grid .btn-link:active,.caldera-grid .btn-link[disabled],fieldset[disabled] .caldera-grid .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.caldera-grid .btn-link,.caldera-grid .btn-link:active,.caldera-grid .btn-link:focus,.caldera-grid .btn-link:hover{border-color:transparent}.caldera-grid .btn-link:focus,.caldera-grid .btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.caldera-grid .btn-link[disabled]:focus,.caldera-grid .btn-link[disabled]:hover,fieldset[disabled] .caldera-grid .btn-link:focus,fieldset[disabled] .caldera-grid .btn-link:hover{color:#777;text-decoration:none}.caldera-grid .btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:4px}.caldera-grid .btn-sm,.caldera-grid .btn-xs{font-size:12px;line-height:1.5;border-radius:1px}.caldera-grid .btn-sm{padding:5px 10px}.caldera-grid .btn-xs{padding:1px 5px}.caldera-grid .btn-block{display:block;width:100%}.caldera-grid .btn-block+.btn-block{margin-top:5px}.caldera-grid input[type=button].btn-block,.caldera-grid input[type=reset].btn-block,.caldera-grid input[type=submit].btn-block{width:100%}.caldera-grid textarea.form-control{padding-right:4px;height:auto}.caldera-grid .breadcrumb{padding:6px 12px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.caldera-grid .breadcrumb>li{display:inline-block;margin:0}.caldera-grid .breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.caldera-grid .breadcrumb>.active,.caldera-grid .breadcrumb>.active>a{color:#777}.breadcrumb>li.active.error>a,.breadcrumb>li.error>a{color:red}.caldera-grid .cf-credit-card{padding-left:42px;background-image:url(../images/credit-card.svg);background-repeat:no-repeat!important;background-position-x:4px!important;background-position-y:3px!important}.caldera-grid .screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}
|
4 |
@font-face{font-family:cf-raty;src:url(fonts/cf-raty.eot?40481674);src:url(fonts/cf-raty.eot?40481674#iefix) format('embedded-opentype'),url(fonts/cf-raty.woff?40481674) format('woff'),url(fonts/cf-raty.ttf?40481674) format('truetype'),url(fonts/cf-raty.svg?40481674#cf-raty) format('svg');font-weight:400;font-style:normal}[class*=" raty-"]:before,[class^=raty-]:before{font-family:cf-raty;font-style:normal;font-weight:400;speak:none;font-size:2em;display:inline-block;text-decoration:inherit;width:1em;text-align:center;font-variant:normal;text-transform:none;line-height:1em}.raty-heart-on:before{content:'\e800'}.raty-heart-off:before{content:'\e801'}.raty-star-on:before{content:'\e802'}.raty-star-off:before{content:'\e803'}.raty-circle-on:before{content:'\e804'}.raty-circle-off:before{content:'\e805'}.raty-dot-off:before{content:'\e806'}.raty-dot-on:before{content:'\e807'}.raty-face-off:before{content:'\e808'}.raty-face-on:before{content:'\e809'}.raty-cancel-off:before{content:'\e80a'}.raty-cancel-on:before{content:'\e80b'}.calculation-group{background:#FFF;box-shadow:0 1px 2px rgba(0,0,0,.05);padding:6px;margin:6px 0}.preview-color-selector{background:#F0F0F0;border:1px solid #E2E2E2;display:inline;margin-left:-1px;padding:3px 12px;box-shadow:0 0 0 2px #fff inset}.miniColors-trigger{border:1px solid #999;-mz-border-radius:0 1px 1px 0;-webkit-border-radius:0 1px 1px 0;display:inline-block;height:24px;margin:0 0 -8px -1px;width:30px}.miniColors-selector{background:#FFF;border:1px solid #999;-moz-box-shadow:0 3px 0 -1px rgba(0,0,0,.05);-webkit-box-shadow:0 3px 0 -1px rgba(0,0,0,.05);box-shadow:0 3px 0 -1px rgba(0,0,0,.05);height:162px;padding:5px;position:absolute;width:187px;z-index:999999;margin-top:-1px}.miniColors-selector.black{background:#000;border-color:#000}.miniColors-colors{position:absolute;top:5px;left:5px;width:150px;height:150px;background:url(minicolor-colors.png) right no-repeat;cursor:crosshair}.miniColors-hues{position:absolute;top:5px;left:160px;width:20px;height:150px;background:url(minicolor-colors.png) left no-repeat;cursor:crosshair}.miniColors-colorPicker{position:absolute;width:9px;height:9px;border:1px solid #fff;-moz-border-radius:11px;-webkit-border-radius:11px;border-radius:11px}.miniColors-colorPicker-inner{position:absolute;top:0;left:0;width:7px;height:7px;border:1px solid #000;-moz-border-radius:9px;-webkit-border-radius:9px;border-radius:9px}.miniColors-huePicker{position:absolute;left:-3px;width:24px;height:1px;border:1px solid #fff;border-radius:2px;background:#000}.cf-color-picker .form-control::-moz-placeholder{color:#999;opacity:1}.cf-color-picker .form-control:-ms-input-placeholder{color:#999}.cf-color-picker .form-control::-webkit-input-placeholder{color:#999}.cf-color-picker .form-control[disabled],.cf-color-picker .form-control[readonly],.cf-color-picker fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}.cf-color-picker .form-group{margin-bottom:15px}.cf-color-picker .input-group{position:relative;display:table;border-collapse:separate}.cf-color-picker .input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.cf-color-picker .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.cf-color-picker .input-group-lg>.form-control,.cf-color-picker .input-group-lg>.input-group-addon,.cf-color-picker .input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.cf-color-picker .input-group-sm>.form-control,.cf-color-picker .input-group-sm>.input-group-addon,.cf-color-picker .input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.cf-color-picker .input-group .form-control,.cf-color-picker .input-group-addon,.cf-color-picker .input-group-btn{display:table-cell}.cf-color-picker .input-group .form-control:not(:first-child):not(:last-child),.cf-color-picker .input-group-addon:not(:first-child):not(:last-child),.cf-color-picker .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.cf-color-picker .input-group-addon,.cf-color-picker .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.cf-color-picker .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.cf-color-picker .input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.cf-color-picker .input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.cf-color-picker .input-group .form-control:first-child,.cf-color-picker .input-group-addon:first-child,.cf-color-picker .input-group-btn:first-child>.btn,.cf-color-picker .input-group-btn:first-child>.btn-group>.btn,.cf-color-picker .input-group-btn:first-child>.dropdown-toggle,.cf-color-picker .input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.cf-color-picker .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.cf-color-picker .input-group-addon:first-child{border-right:0}.cf-color-picker .input-group .form-control:last-child,.cf-color-picker .input-group-addon:last-child,.cf-color-picker .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.cf-color-picker .input-group-btn:first-child>.btn:not(:first-child),.cf-color-picker .input-group-btn:last-child>.btn,.cf-color-picker .input-group-btn:last-child>.btn-group>.btn,.cf-color-picker .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.cf-color-picker .input-group-addon:last-child{border-left:0}.cf-color-picker .input-group-btn{position:relative;font-size:0;white-space:nowrap}.cf-color-picker .input-group-btn>.btn{position:relative}.cf-color-picker .input-group-btn>.btn+.btn{margin-left:-1px}.cf-color-picker .input-group-btn>.btn:active,.cf-color-picker .input-group-btn>.btn:focus,.cf-color-picker .input-group-btn>.btn:hover{z-index:2}.cf-color-picker .input-group-btn:first-child>.btn,.cf-color-picker .input-group-btn:first-child>.btn-group{margin-right:-1px}.cf-color-picker .input-group-btn:last-child>.btn,.cf-color-picker .input-group-btn:last-child>.btn-group{margin-left:-1px}.cf-color-picker .clearfix:after,.cf-color-picker .clearfix:before,.cf-color-picker .form-horizontal .form-group:after,.cf-color-picker .form-horizontal .form-group:before{content:" ";display:table}.cf-color-picker .clearfix:after,.cf-color-picker .form-horizontal .form-group:after{clear:both}.cf-color-picker .center-block{display:block;margin-left:auto;margin-right:auto}.cf-color-picker .pull-right{float:right!important}.cf-color-picker .pull-left{float:left!important}.cf-color-picker .hide{display:none!important}.cf-color-picker .show{display:block!important}.cf-color-picker .invisible{visibility:hidden}.cf-color-picker .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.cf-color-picker .hidden{display:none!important;visibility:hidden!important}.cf-color-picker .affix{position:fixed}@-ms-viewport{width:device-width}.cf-color-picker .visible-lg,.cf-color-picker .visible-md,.cf-color-picker .visible-print,.cf-color-picker .visible-sm,.cf-color-picker .visible-xs{display:none!important}@media (max-width:767px){.cf-color-picker .visible-xs{display:block!important}.cf-color-picker table.visible-xs{display:table}.cf-color-picker tr.visible-xs{display:table-row!important}.cf-color-picker td.visible-xs,.cf-color-picker th.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.cf-color-picker .visible-sm{display:block!important}.cf-color-picker table.visible-sm{display:table}.cf-color-picker tr.visible-sm{display:table-row!important}.cf-color-picker td.visible-sm,.cf-color-picker th.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.cf-color-picker .visible-md{display:block!important}.cf-color-picker table.visible-md{display:table}.cf-color-picker tr.visible-md{display:table-row!important}.cf-color-picker td.visible-md,.cf-color-picker th.visible-md{display:table-cell!important}}@media (min-width:1200px){.cf-color-picker .visible-lg{display:block!important}.cf-color-picker table.visible-lg{display:table}.cf-color-picker tr.visible-lg{display:table-row!important}.cf-color-picker td.visible-lg,.cf-color-picker th.visible-lg{display:table-cell!important}}@media (max-width:767px){.cf-color-picker .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.cf-color-picker .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.cf-color-picker .hidden-md{display:none!important}}@media (min-width:1200px){.cf-color-picker .hidden-lg{display:none!important}}@media print{.cf-color-picker .visible-print{display:block!important}.cf-color-picker table.visible-print{display:table}.cf-color-picker tr.visible-print{display:table-row!important}.cf-color-picker td.visible-print,.cf-color-picker th.visible-print{display:table-cell!important}}@media print{.cf-color-picker .hidden-print{display:none!important}}.cf-color-picker .input-group{max-width:120px}
|
assets/js/caldera-forms-front.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! GENERATED SOURCE FILE caldera-forms - v1.5.
|
2 |
* Simple event bindings for form state
|
3 |
*
|
4 |
* In general, access through CFState.events() not directly.
|
1 |
+
/*! GENERATED SOURCE FILE caldera-forms - v1.5.9-rc.1 - 2018-01-18 *//**
|
2 |
* Simple event bindings for form state
|
3 |
*
|
4 |
* In general, access through CFState.events() not directly.
|
assets/js/entry-viewer-2.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! GENERATED SOURCE FILE caldera-forms - v1.5.
|
2 |
* API Client for Caldera Forms API for a single form
|
3 |
*
|
4 |
* @since 1.5.0
|
1 |
+
/*! GENERATED SOURCE FILE caldera-forms - v1.5.9-rc.1 - 2018-01-18 *//**
|
2 |
* API Client for Caldera Forms API for a single form
|
3 |
*
|
4 |
* @since 1.5.0
|
assets/js/parsley.min.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! GENERATED SOURCE FILE caldera-forms - v1.5.
|
2 |
* Parsley.js
|
3 |
* Version 2.6.5 - built Fri, Feb 24th 2017, 3:50 pm
|
4 |
* http://parsleyjs.org
|
1 |
+
/*! GENERATED SOURCE FILE caldera-forms - v1.5.9-rc.1 - 2018-01-18 *//*!
|
2 |
* Parsley.js
|
3 |
* Version 2.6.5 - built Fri, Feb 24th 2017, 3:50 pm
|
4 |
* http://parsleyjs.org
|
assets/js/vue.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! GENERATED SOURCE FILE caldera-forms - v1.5.
|
2 |
* Vue.js v2.1.6
|
3 |
* (c) 2014-2016 Evan You
|
4 |
* Released under the MIT License.
|
1 |
+
/*! GENERATED SOURCE FILE caldera-forms - v1.5.9-rc.1 - 2018-01-18 *//*!
|
2 |
* Vue.js v2.1.6
|
3 |
* (c) 2014-2016 Evan You
|
4 |
* Released under the MIT License.
|
caldera-core.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
Plugin URI: https://CalderaForms.com
|
5 |
Description: Easy to use, grid based responsive form builder for creating simple to complex forms.
|
6 |
Author: Caldera Labs
|
7 |
-
Version: 1.5.
|
8 |
Author URI: http://CalderaLabs.org
|
9 |
Text Domain: caldera-forms
|
10 |
GitHub Plugin URI: https://github.com/CalderaWP/caldera-forms
|
@@ -18,7 +18,7 @@ if ( ! defined( 'WPINC' ) ) {
|
|
18 |
|
19 |
define('CFCORE_PATH', plugin_dir_path(__FILE__));
|
20 |
define('CFCORE_URL', plugin_dir_url(__FILE__));
|
21 |
-
define( 'CFCORE_VER', '1.5.
|
22 |
define('CFCORE_EXTEND_URL', 'https://api.calderaforms.com/1.0/');
|
23 |
define('CFCORE_BASENAME', plugin_basename( __FILE__ ));
|
24 |
|
4 |
Plugin URI: https://CalderaForms.com
|
5 |
Description: Easy to use, grid based responsive form builder for creating simple to complex forms.
|
6 |
Author: Caldera Labs
|
7 |
+
Version: 1.5.9-rc.1
|
8 |
Author URI: http://CalderaLabs.org
|
9 |
Text Domain: caldera-forms
|
10 |
GitHub Plugin URI: https://github.com/CalderaWP/caldera-forms
|
18 |
|
19 |
define('CFCORE_PATH', plugin_dir_path(__FILE__));
|
20 |
define('CFCORE_URL', plugin_dir_url(__FILE__));
|
21 |
+
define( 'CFCORE_VER', '1.5.9-rc.1' );
|
22 |
define('CFCORE_EXTEND_URL', 'https://api.calderaforms.com/1.0/');
|
23 |
define('CFCORE_BASENAME', plugin_basename( __FILE__ ));
|
24 |
|
classes/admin.php
CHANGED
@@ -959,8 +959,13 @@ class Caldera_Forms_Admin {
|
|
959 |
// check view handler
|
960 |
$field = Caldera_Forms_Field_Util::get_field( $row->slug, $form, true );
|
961 |
|
962 |
-
|
963 |
-
|
|
|
|
|
|
|
|
|
|
|
964 |
if ( ! empty( $is_json ) ) {
|
965 |
$row->value = $is_json;
|
966 |
}else {
|
@@ -1046,7 +1051,7 @@ class Caldera_Forms_Admin {
|
|
1046 |
Caldera_Forms::get_manage_cap(),
|
1047 |
$this->plugin_slug, array( $this, 'render_admin' ),
|
1048 |
'dashicons-cf-logo',
|
1049 |
-
52.
|
1050 |
);
|
1051 |
add_submenu_page(
|
1052 |
$this->plugin_slug,
|
@@ -1058,6 +1063,7 @@ class Caldera_Forms_Admin {
|
|
1058 |
if( ! empty( $forms ) ){
|
1059 |
foreach($forms as $form_id=>$form){
|
1060 |
if(!empty($form['pinned'])){
|
|
|
1061 |
$this->screen_prefix[] = add_submenu_page(
|
1062 |
$this->plugin_slug,
|
1063 |
__('Caldera Forms', 'caldera-forms' ).' - ' . $form['name'], '- '.$form['name'],
|
959 |
// check view handler
|
960 |
$field = Caldera_Forms_Field_Util::get_field( $row->slug, $form, true );
|
961 |
|
962 |
+
// maybe json?
|
963 |
+
if ( is_string($row->value) ) {
|
964 |
+
$is_json = json_decode( $row->value, ARRAY_A );
|
965 |
+
} else if ( is_array($row->value) ) { //Process all checkbox values
|
966 |
+
$is_json = $row->value;
|
967 |
+
}
|
968 |
+
|
969 |
if ( ! empty( $is_json ) ) {
|
970 |
$row->value = $is_json;
|
971 |
}else {
|
1051 |
Caldera_Forms::get_manage_cap(),
|
1052 |
$this->plugin_slug, array( $this, 'render_admin' ),
|
1053 |
'dashicons-cf-logo',
|
1054 |
+
'52.88'
|
1055 |
);
|
1056 |
add_submenu_page(
|
1057 |
$this->plugin_slug,
|
1063 |
if( ! empty( $forms ) ){
|
1064 |
foreach($forms as $form_id=>$form){
|
1065 |
if(!empty($form['pinned'])){
|
1066 |
+
|
1067 |
$this->screen_prefix[] = add_submenu_page(
|
1068 |
$this->plugin_slug,
|
1069 |
__('Caldera Forms', 'caldera-forms' ).' - ' . $form['name'], '- '.$form['name'],
|
classes/admin/pro.php
CHANGED
@@ -71,4 +71,4 @@ class Caldera_Forms_Admin_Pro {
|
|
71 |
}
|
72 |
|
73 |
|
74 |
-
}
|
71 |
}
|
72 |
|
73 |
|
74 |
+
}
|
classes/core.php
CHANGED
@@ -112,7 +112,6 @@ class Caldera_Forms {
|
|
112 |
|
113 |
//mailer magic
|
114 |
add_filter( 'caldera_forms_get_magic_tags', array( $this, 'set_magic_tags' ), 1 );
|
115 |
-
add_filter( 'caldera_forms_mailer', array( $this, 'mail_attachment_check' ), 10, 3 );
|
116 |
|
117 |
// action
|
118 |
add_action( 'caldera_forms_submit_complete', array( $this, 'save_final_form' ), 50 );
|
@@ -133,7 +132,7 @@ class Caldera_Forms {
|
|
133 |
add_filter( 'shortcode_atts_caldera_form', array( 'Caldera_Forms_Shortcode_Atts', 'maybe_allow_revision' ), 5, 4 );
|
134 |
add_filter( 'shortcode_atts_caldera_form_modal', array( 'Caldera_Forms_Shortcode_Atts', 'maybe_allow_revision' ), 5, 4 );
|
135 |
|
136 |
-
//
|
137 |
add_action( 'caldera_forms_core_init', array( 'Caldera_Forms_Email_Settings', 'maybe_add_hooks' ) );
|
138 |
add_filter( 'pre_update_option__caldera_forms_email_api_settings', array(
|
139 |
'Caldera_Forms_Email_Settings',
|
@@ -179,8 +178,15 @@ class Caldera_Forms {
|
|
179 |
//check for forms on page
|
180 |
add_action( 'template_redirect', array( $this, 'maybe_load_styles' ) );
|
181 |
|
182 |
-
|
|
|
|
|
|
|
183 |
add_filter( 'caldera_forms_mailer', array( $this, 'format_message' ) );
|
|
|
|
|
|
|
|
|
184 |
|
185 |
/** Entry Viewer v1 */
|
186 |
add_action( 'wp_ajax_browse_entries', array( Caldera_Forms_Entry_UI::get_instance(), 'view_entries' ) );
|
@@ -593,6 +599,8 @@ class Caldera_Forms {
|
|
593 |
/**
|
594 |
* Prepare email attachments
|
595 |
*
|
|
|
|
|
596 |
* @param array $mail Email data
|
597 |
* @param array $data Form data
|
598 |
* @param array $form For config
|
@@ -600,51 +608,8 @@ class Caldera_Forms {
|
|
600 |
* @return array
|
601 |
*/
|
602 |
public static function mail_attachment_check( $mail, $data, $form){
|
603 |
-
|
604 |
-
|
605 |
-
if( ! Caldera_Forms_Files::should_attach( $field, $form ) ){
|
606 |
-
continue;
|
607 |
-
}
|
608 |
-
$dir = wp_upload_dir();
|
609 |
-
if ( isset( $data[ $field_id ] ) && is_array( $data[ $field_id ] ) ) {
|
610 |
-
foreach ( $data[ $field_id ] as $file ) {
|
611 |
-
$file = str_replace( $dir[ 'baseurl' ], $dir[ 'basedir' ], $file );
|
612 |
-
if ( file_exists( $file ) ) {
|
613 |
-
$mail[ 'attachments' ][] = $file;
|
614 |
-
}
|
615 |
-
}
|
616 |
-
continue;
|
617 |
-
}
|
618 |
-
if ( isset( $data[ $field_id ] ) ) {
|
619 |
-
$file = $data[ $field_id ];
|
620 |
-
} else {
|
621 |
-
$file = self::get_field_data( $field_id, $form );
|
622 |
-
}
|
623 |
-
if ( is_array( $file ) ) {
|
624 |
-
foreach ( $file as $a_file ) {
|
625 |
-
$file = str_replace( $dir[ 'baseurl' ], $dir[ 'basedir' ], $file );
|
626 |
-
if ( is_string( $a_file ) && file_exists( $a_file ) ) {
|
627 |
-
$mail[ 'attachments' ][] = $a_file;
|
628 |
-
}
|
629 |
-
}
|
630 |
-
continue;
|
631 |
-
} else {
|
632 |
-
$file = str_replace( $dir[ 'baseurl' ], $dir[ 'basedir' ], $file );
|
633 |
-
if ( is_string( $file ) && file_exists( $file ) ) {
|
634 |
-
$mail[ 'attachments' ][] = $file;
|
635 |
-
} else {
|
636 |
-
if ( isset( $data[ $field_id ] ) && filter_var( $data[ $field_id ], FILTER_VALIDATE_URL ) ) {
|
637 |
-
$mail[ 'attachments' ][] = $data[ $field_id ];
|
638 |
-
} elseif ( isset( $_POST[ $field_id ] ) && filter_var( $_POST[ $field_id ], FILTER_VALIDATE_URL ) && 0 === strpos( $_POST[ $field_id ], $dir[ 'url' ] ) ) {
|
639 |
-
$mail[ 'attachments' ][] = $_POST[ $field_id ];
|
640 |
-
} else {
|
641 |
-
continue;
|
642 |
-
}
|
643 |
-
}
|
644 |
-
}
|
645 |
-
}
|
646 |
-
}
|
647 |
-
return $mail;
|
648 |
}
|
649 |
|
650 |
/**
|
@@ -1051,9 +1016,8 @@ class Caldera_Forms {
|
|
1051 |
$html = false;
|
1052 |
if ( ! isset( $config[ 'html' ] ) || true == $config[ 'html' ] ) {
|
1053 |
$headers[] = "Content-type: text/html";
|
1054 |
-
$message =
|
1055 |
$html = true;
|
1056 |
-
|
1057 |
} else {
|
1058 |
$message = self::do_magic_tags( $message );
|
1059 |
}
|
@@ -4958,8 +4922,8 @@ class Caldera_Forms {
|
|
4958 |
* @return mixed
|
4959 |
*/
|
4960 |
public static function format_message( $mail ){
|
4961 |
-
|
4962 |
-
return $mail;
|
4963 |
|
4964 |
}
|
4965 |
|
@@ -4986,4 +4950,6 @@ class Caldera_Forms {
|
|
4986 |
return self::$settings;
|
4987 |
}
|
4988 |
|
|
|
|
|
4989 |
}
|
112 |
|
113 |
//mailer magic
|
114 |
add_filter( 'caldera_forms_get_magic_tags', array( $this, 'set_magic_tags' ), 1 );
|
|
|
115 |
|
116 |
// action
|
117 |
add_action( 'caldera_forms_submit_complete', array( $this, 'save_final_form' ), 50 );
|
132 |
add_filter( 'shortcode_atts_caldera_form', array( 'Caldera_Forms_Shortcode_Atts', 'maybe_allow_revision' ), 5, 4 );
|
133 |
add_filter( 'shortcode_atts_caldera_form_modal', array( 'Caldera_Forms_Shortcode_Atts', 'maybe_allow_revision' ), 5, 4 );
|
134 |
|
135 |
+
//email settings
|
136 |
add_action( 'caldera_forms_core_init', array( 'Caldera_Forms_Email_Settings', 'maybe_add_hooks' ) );
|
137 |
add_filter( 'pre_update_option__caldera_forms_email_api_settings', array(
|
138 |
'Caldera_Forms_Email_Settings',
|
178 |
//check for forms on page
|
179 |
add_action( 'template_redirect', array( $this, 'maybe_load_styles' ) );
|
180 |
|
181 |
+
/** Email Filtering */
|
182 |
+
//Check email attachments
|
183 |
+
add_filter( 'caldera_forms_mailer', array( 'Caldera_Forms_Email_Filters', 'mail_attachment_check' ), 10, 3 );
|
184 |
+
//format email - using old method in case anyone removed the hook
|
185 |
add_filter( 'caldera_forms_mailer', array( $this, 'format_message' ) );
|
186 |
+
//format autoresponder email
|
187 |
+
add_filter( 'caldera_forms_autoresponse_mail', array( 'Caldera_Forms_Email_Filters', 'format_autoresponse_message' ) );
|
188 |
+
add_filter( 'caldera_forms_mailer', array( 'Caldera_Forms_Email_Filters', 'prepare_headers' ) );
|
189 |
+
add_filter( 'caldera_forms_autoresponse_mail', array( 'Caldera_Forms_Email_Filters', 'prepare_headers' ) );
|
190 |
|
191 |
/** Entry Viewer v1 */
|
192 |
add_action( 'wp_ajax_browse_entries', array( Caldera_Forms_Entry_UI::get_instance(), 'view_entries' ) );
|
599 |
/**
|
600 |
* Prepare email attachments
|
601 |
*
|
602 |
+
* @deprecated
|
603 |
+
*
|
604 |
* @param array $mail Email data
|
605 |
* @param array $data Form data
|
606 |
* @param array $form For config
|
608 |
* @return array
|
609 |
*/
|
610 |
public static function mail_attachment_check( $mail, $data, $form){
|
611 |
+
_deprecated_function(__METHOD__,'1.5.9','Caldera_Forms_Email_Filters::mail_attachment_check' );
|
612 |
+
return Caldera_Forms_Email_Filters::mail_attachment_check($mail,$data,$form);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
613 |
}
|
614 |
|
615 |
/**
|
1016 |
$html = false;
|
1017 |
if ( ! isset( $config[ 'html' ] ) || true == $config[ 'html' ] ) {
|
1018 |
$headers[] = "Content-type: text/html";
|
1019 |
+
$message = self::do_magic_tags( $message );
|
1020 |
$html = true;
|
|
|
1021 |
} else {
|
1022 |
$message = self::do_magic_tags( $message );
|
1023 |
}
|
4922 |
* @return mixed
|
4923 |
*/
|
4924 |
public static function format_message( $mail ){
|
4925 |
+
//using original hook because it may have been removed by an end-user
|
4926 |
+
return Caldera_Forms_Email_Filters::format_message($mail);
|
4927 |
|
4928 |
}
|
4929 |
|
4950 |
return self::$settings;
|
4951 |
}
|
4952 |
|
4953 |
+
|
4954 |
+
|
4955 |
}
|
classes/email/filters.php
ADDED
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Email formatting filters
|
5 |
+
*
|
6 |
+
* @package Caldera_Forms
|
7 |
+
* @author Josh Pollock <Josh@CalderaWP.com>
|
8 |
+
* @license GPL-2.0+
|
9 |
+
* @link
|
10 |
+
* @copyright 2018 CalderaWP LLC
|
11 |
+
*/
|
12 |
+
class Caldera_Forms_Email_Filters{
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Prepare email attachments
|
16 |
+
*
|
17 |
+
* @uses "caldera_forms_mailer"
|
18 |
+
*
|
19 |
+
* @since 1.5.9
|
20 |
+
*
|
21 |
+
* @param array $mail Email data
|
22 |
+
* @param array $data Form data
|
23 |
+
* @param array $form For config
|
24 |
+
*
|
25 |
+
* @return array
|
26 |
+
*/
|
27 |
+
public static function mail_attachment_check( $mail, $data, $form){
|
28 |
+
foreach ( Caldera_Forms_Forms::get_fields( $form, false ) as $field_id => $field ) {
|
29 |
+
if ( Caldera_Forms_Field_Util::is_file_field( $field, $form ) ) {
|
30 |
+
if( ! Caldera_Forms_Files::should_attach( $field, $form ) ){
|
31 |
+
continue;
|
32 |
+
}
|
33 |
+
$dir = wp_upload_dir();
|
34 |
+
if ( isset( $data[ $field_id ] ) && is_array( $data[ $field_id ] ) ) {
|
35 |
+
foreach ( $data[ $field_id ] as $file ) {
|
36 |
+
$file = str_replace( $dir[ 'baseurl' ], $dir[ 'basedir' ], $file );
|
37 |
+
if ( file_exists( $file ) ) {
|
38 |
+
$mail[ 'attachments' ][] = $file;
|
39 |
+
}
|
40 |
+
}
|
41 |
+
continue;
|
42 |
+
}
|
43 |
+
if ( isset( $data[ $field_id ] ) ) {
|
44 |
+
$file = $data[ $field_id ];
|
45 |
+
} else {
|
46 |
+
$file = Caldera_Forms::get_field_data( $field_id, $form );
|
47 |
+
}
|
48 |
+
if ( is_array( $file ) ) {
|
49 |
+
foreach ( $file as $a_file ) {
|
50 |
+
$file = str_replace( $dir[ 'baseurl' ], $dir[ 'basedir' ], $file );
|
51 |
+
if ( is_string( $a_file ) && file_exists( $a_file ) ) {
|
52 |
+
$mail[ 'attachments' ][] = $a_file;
|
53 |
+
}
|
54 |
+
}
|
55 |
+
continue;
|
56 |
+
} else {
|
57 |
+
$file = str_replace( $dir[ 'baseurl' ], $dir[ 'basedir' ], $file );
|
58 |
+
if ( is_string( $file ) && file_exists( $file ) ) {
|
59 |
+
$mail[ 'attachments' ][] = $file;
|
60 |
+
} else {
|
61 |
+
if ( isset( $data[ $field_id ] ) && filter_var( $data[ $field_id ], FILTER_VALIDATE_URL ) ) {
|
62 |
+
$mail[ 'attachments' ][] = $data[ $field_id ];
|
63 |
+
} elseif ( isset( $_POST[ $field_id ] ) && filter_var( $_POST[ $field_id ], FILTER_VALIDATE_URL ) && 0 === strpos( $_POST[ $field_id ], $dir[ 'url' ] ) ) {
|
64 |
+
$mail[ 'attachments' ][] = $_POST[ $field_id ];
|
65 |
+
} else {
|
66 |
+
continue;
|
67 |
+
}
|
68 |
+
}
|
69 |
+
}
|
70 |
+
}
|
71 |
+
}
|
72 |
+
return $mail;
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Apply wpautop to autoresponder message.
|
77 |
+
*
|
78 |
+
* This was separated out from main autoresponder generation method in 1.5.9 so it would be removable, see: https://github.com/CalderaWP/Caldera-Forms/issues/1917
|
79 |
+
*
|
80 |
+
* @since 1.5.9
|
81 |
+
*
|
82 |
+
* @uses "caldera_forms_autoresponse_mail" filter
|
83 |
+
*
|
84 |
+
* @param array $email
|
85 |
+
*
|
86 |
+
* @return mixed
|
87 |
+
*/
|
88 |
+
public static function format_autoresponse_message( $email ) {
|
89 |
+
$email[ 'message' ] = wpautop( $email[ 'message' ] );
|
90 |
+
return $email;
|
91 |
+
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Apply wpautop to email message.
|
96 |
+
*
|
97 |
+
* This was separated out from main email generation method in 1.4.7 so it would be removable, see: https://github.com/CalderaWP/Caldera-Forms/issues/1048
|
98 |
+
*
|
99 |
+
* @since 1.5.9
|
100 |
+
*
|
101 |
+
* @uses "caldera_forms_mailer" filter
|
102 |
+
*
|
103 |
+
* @param array $mail
|
104 |
+
*
|
105 |
+
* @return mixed
|
106 |
+
*/
|
107 |
+
public static function format_message( $mail ){
|
108 |
+
$mail[ 'message' ] = wpautop( $mail[ 'message' ] );
|
109 |
+
return $mail;
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* Prepare email headers
|
114 |
+
*
|
115 |
+
* @since 1.5.9
|
116 |
+
*
|
117 |
+
*
|
118 |
+
* @uses "caldera_forms_mailer" filter
|
119 |
+
* @uses "caldera_forms_autoresponse_mail" filter
|
120 |
+
*
|
121 |
+
* @param array $mail
|
122 |
+
* @return array
|
123 |
+
*/
|
124 |
+
public static function prepare_headers($mail){
|
125 |
+
if( ! empty($mail['recipients'])){
|
126 |
+
if( is_array( $mail['recipients'])){
|
127 |
+
foreach( $mail['recipients'] as &$recipient){
|
128 |
+
$recipient = Caldera_Forms_Sanitize::sanitize_header($recipient);
|
129 |
+
}
|
130 |
+
} else{
|
131 |
+
$mail['recipients']= Caldera_Forms_Sanitize::sanitize_header($mail['recipients']);
|
132 |
+
}
|
133 |
+
}
|
134 |
+
|
135 |
+
if( ! empty($mail['headers'])){
|
136 |
+
if( is_array( $mail['headers'])){
|
137 |
+
foreach( $mail['headers'] as &$header){
|
138 |
+
$header = Caldera_Forms_Sanitize::sanitize_header($header);
|
139 |
+
}
|
140 |
+
} else{
|
141 |
+
$mail['headers']= Caldera_Forms_Sanitize::sanitize_header($mail['headers']);
|
142 |
+
}
|
143 |
+
}
|
144 |
+
return $mail;
|
145 |
+
}
|
146 |
+
|
147 |
+
}
|
classes/entry/vue.php
CHANGED
@@ -54,7 +54,7 @@ class Caldera_Forms_Entry_Vue {
|
|
54 |
$this->enqueue();
|
55 |
ob_start();
|
56 |
include CFCORE_PATH .'ui/viewer-two/viewer.php';
|
57 |
-
return
|
58 |
}
|
59 |
/**
|
60 |
* Setup scripts/styles for entry viewer
|
54 |
$this->enqueue();
|
55 |
ob_start();
|
56 |
include CFCORE_PATH .'ui/viewer-two/viewer.php';
|
57 |
+
return ob_get_clean();
|
58 |
}
|
59 |
/**
|
60 |
* Setup scripts/styles for entry viewer
|
classes/files.php
CHANGED
@@ -321,7 +321,7 @@ class Caldera_Forms_Files{
|
|
321 |
* @return bool
|
322 |
*/
|
323 |
public static function should_attach( array $field, array $form ){
|
324 |
-
if(
|
325 |
return ! empty( $field[ 'config' ][ 'attach'] );
|
326 |
}
|
327 |
|
321 |
* @return bool
|
322 |
*/
|
323 |
public static function should_attach( array $field, array $form ){
|
324 |
+
if( Caldera_Forms_Field_Util::is_file_field( $field, $form ) ){
|
325 |
return ! empty( $field[ 'config' ][ 'attach'] );
|
326 |
}
|
327 |
|
classes/forms.php
CHANGED
@@ -464,7 +464,7 @@ class Caldera_Forms_Forms {
|
|
464 |
|
465 |
foreach ( $valid_forms as $form_id => $form ) {
|
466 |
if ( ! isset( $base_forms[ $form_id ] ) ) {
|
467 |
-
$
|
468 |
if ( empty( $forms[ $form_id ][ 'ID' ] ) ) {
|
469 |
$valid_forms[ $form_id ][ 'ID' ] = $form_id;
|
470 |
}
|
464 |
|
465 |
foreach ( $valid_forms as $form_id => $form ) {
|
466 |
if ( ! isset( $base_forms[ $form_id ] ) ) {
|
467 |
+
$valid_forms[ $form_id ][ '_external_form' ] = true;
|
468 |
if ( empty( $forms[ $form_id ][ 'ID' ] ) ) {
|
469 |
$valid_forms[ $form_id ][ 'ID' ] = $form_id;
|
470 |
}
|
classes/sanitize.php
CHANGED
@@ -233,6 +233,19 @@ class Caldera_Forms_Sanitize {
|
|
233 |
|
234 |
}
|
235 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
}
|
237 |
|
238 |
|
233 |
|
234 |
}
|
235 |
|
236 |
+
/**
|
237 |
+
* Remove unintentional line breaks in a string, such as an email header
|
238 |
+
*
|
239 |
+
* @since 1.5.9
|
240 |
+
*
|
241 |
+
* @param string $header
|
242 |
+
* @return string
|
243 |
+
*/
|
244 |
+
public static function sanitize_header($header){
|
245 |
+
return preg_replace( '=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\\n|\\r)\S).*=i', null, $header );
|
246 |
+
|
247 |
+
}
|
248 |
+
|
249 |
}
|
250 |
|
251 |
|
includes/cf-pro-client/classes/admin/scripts.php
CHANGED
@@ -78,8 +78,10 @@ class scripts {
|
|
78 |
'strings' => [
|
79 |
'saved' => esc_html__( 'Settings Saved', 'caldera-forms' ),
|
80 |
'notSaved' => esc_html__( 'Settings could not be saved', 'caldera-forms' ),
|
81 |
-
|
82 |
-
|
|
|
|
|
83 |
],
|
84 |
'api' => array(
|
85 |
'cf' => array(
|
@@ -91,7 +93,8 @@ class scripts {
|
|
91 |
'auth' => array()
|
92 |
)
|
93 |
),
|
94 |
-
'settings'
|
|
|
95 |
);
|
96 |
|
97 |
$data[ 'formScreen' ] = \Caldera_Forms_Admin::is_edit() ? esc_attr( $_GET[ \Caldera_Forms_Admin::EDIT_KEY ] ) : false;
|
78 |
'strings' => [
|
79 |
'saved' => esc_html__( 'Settings Saved', 'caldera-forms' ),
|
80 |
'notSaved' => esc_html__( 'Settings could not be saved', 'caldera-forms' ),
|
81 |
+
'apiKeysViewText' => esc_html__( 'You must add your API keys to use Caldera Forms Pro', 'caldera-forms' ),
|
82 |
+
'apiKeysViewLink' => esc_url( $pro_url ),
|
83 |
+
'minLogLevelTitle' => esc_html__( 'Minimum Log Level', 'caldera-forms' ),
|
84 |
+
'minLogLevelInfo' => esc_html__( 'Setting a higher level than notice may affect performance, and should only be used when instructed by support.', 'caldera-forms' ),
|
85 |
],
|
86 |
'api' => array(
|
87 |
'cf' => array(
|
93 |
'auth' => array()
|
94 |
)
|
95 |
),
|
96 |
+
'settings' => container::get_instance()->get_settings()->toArray(),
|
97 |
+
'logLevels' => container::get_instance()->get_settings()->log_levels()
|
98 |
);
|
99 |
|
100 |
$data[ 'formScreen' ] = \Caldera_Forms_Admin::is_edit() ? esc_attr( $_GET[ \Caldera_Forms_Admin::EDIT_KEY ] ) : false;
|
includes/cf-pro-client/classes/api/local/settings.php
CHANGED
@@ -53,7 +53,13 @@ class settings implements \Caldera_Forms_API_Route {
|
|
53 |
),
|
54 |
'activate' => array(
|
55 |
'type' => 'boolean'
|
56 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
),
|
58 |
'permissions_callback' => array( $this, 'permissions' )
|
59 |
)
|
@@ -125,6 +131,10 @@ class settings implements \Caldera_Forms_API_Route {
|
|
125 |
$settings->set_enhanced_delivery( 'true' );
|
126 |
}
|
127 |
|
|
|
|
|
|
|
|
|
128 |
$settings->save();
|
129 |
|
130 |
return rest_ensure_response( container::get_instance()->get_settings()->toArray() );
|
53 |
),
|
54 |
'activate' => array(
|
55 |
'type' => 'boolean'
|
56 |
+
),
|
57 |
+
'logLevel' => array(
|
58 |
+
'type' => 'integer',
|
59 |
+
'required' => false,
|
60 |
+
'default' => 250,
|
61 |
+
'sanatization_callback' => 'absint'
|
62 |
+
),
|
63 |
),
|
64 |
'permissions_callback' => array( $this, 'permissions' )
|
65 |
)
|
131 |
$settings->set_enhanced_delivery( 'true' );
|
132 |
}
|
133 |
|
134 |
+
if( ! empty( $request[ 'logLevel' ] ) ){
|
135 |
+
$settings->set_log_level( $request[ 'logLevel' ] );
|
136 |
+
}
|
137 |
+
|
138 |
$settings->save();
|
139 |
|
140 |
return rest_ensure_response( container::get_instance()->get_settings()->toArray() );
|
includes/cf-pro-client/classes/log/handler.php
CHANGED
@@ -77,7 +77,7 @@ class handler extends AbstractHandler {
|
|
77 |
* @since 0.11.0
|
78 |
*
|
79 |
*/
|
80 |
-
$highest = apply_filters( 'caldera_forms_pro_minimum_level',
|
81 |
if( ! is_numeric( $highest ) && array_key_exists( $highest, $levels ) ){
|
82 |
$highest = array_search( $highest, array_flip( $levels ) );
|
83 |
|
77 |
* @since 0.11.0
|
78 |
*
|
79 |
*/
|
80 |
+
$highest = apply_filters( 'caldera_forms_pro_minimum_level', container::get_instance()->get_settings->get_log_level() );
|
81 |
if( ! is_numeric( $highest ) && array_key_exists( $highest, $levels ) ){
|
82 |
$highest = array_search( $highest, array_flip( $levels ) );
|
83 |
|
includes/cf-pro-client/classes/settings.php
CHANGED
@@ -4,6 +4,7 @@
|
|
4 |
namespace calderawp\calderaforms\pro;
|
5 |
use calderawp\calderaforms\pro\api\keys;
|
6 |
use calderawp\calderaforms\pro\settings\form;
|
|
|
7 |
|
8 |
|
9 |
/**
|
@@ -73,6 +74,12 @@ class settings extends repository{
|
|
73 |
$settings->set_enhanced_delivery( $saved[ 'enhancedDelivery' ] );
|
74 |
}
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
if( ! empty( $saved[ 'plan' ] ) ){
|
77 |
$settings->set_plan( $saved[ 'plan' ] );
|
78 |
}else{
|
@@ -286,6 +293,57 @@ class settings extends repository{
|
|
286 |
return $this->get( 'plan', 'basic' );
|
287 |
}
|
288 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
289 |
/**
|
290 |
* Return if is basic plan
|
291 |
*
|
@@ -334,6 +392,7 @@ class settings extends repository{
|
|
334 |
'forms' => $this->forms_to_array(),
|
335 |
'enhancedDelivery' => $this->get_enhanced_delivery(),
|
336 |
'plan' => $this->get_plan(),
|
|
|
337 |
);
|
338 |
|
339 |
return $data;
|
4 |
namespace calderawp\calderaforms\pro;
|
5 |
use calderawp\calderaforms\pro\api\keys;
|
6 |
use calderawp\calderaforms\pro\settings\form;
|
7 |
+
use Monolog\Logger as Monolog;
|
8 |
|
9 |
|
10 |
/**
|
74 |
$settings->set_enhanced_delivery( $saved[ 'enhancedDelivery' ] );
|
75 |
}
|
76 |
|
77 |
+
if( ! empty( $saved[ 'logLevel' ] ) ){
|
78 |
+
$settings->set_log_level( $saved[ 'logLevel' ] );
|
79 |
+
}else{
|
80 |
+
$settings->set_log_level( Monolog::NOTICE );
|
81 |
+
}
|
82 |
+
|
83 |
if( ! empty( $saved[ 'plan' ] ) ){
|
84 |
$settings->set_plan( $saved[ 'plan' ] );
|
85 |
}else{
|
293 |
return $this->get( 'plan', 'basic' );
|
294 |
}
|
295 |
|
296 |
+
/**
|
297 |
+
* List all log levels from Monolog
|
298 |
+
*
|
299 |
+
* @since 1.5.9
|
300 |
+
*
|
301 |
+
* @return array
|
302 |
+
*/
|
303 |
+
public function log_levels(){
|
304 |
+
$levels = Monolog::getLevels();
|
305 |
+
$all_levels= array();
|
306 |
+
$i = 0;
|
307 |
+
foreach( $levels as $name => $number) {
|
308 |
+
$all_levels[$i] = array(
|
309 |
+
'name' => $name,
|
310 |
+
'number' => $number
|
311 |
+
);
|
312 |
+
$i++;
|
313 |
+
}
|
314 |
+
return $all_levels;
|
315 |
+
}
|
316 |
+
|
317 |
+
/**
|
318 |
+
* Set log level
|
319 |
+
*
|
320 |
+
* @since 1.5.9
|
321 |
+
*
|
322 |
+
* @param integer $level
|
323 |
+
*/
|
324 |
+
public function set_log_level( $level ){
|
325 |
+
$all_levels = $this->log_levels();
|
326 |
+
|
327 |
+
$levels = array();
|
328 |
+
foreach( $all_levels as $levelindex) {
|
329 |
+
$levels[] = $levelindex['number'];
|
330 |
+
}
|
331 |
+
if( in_array( $level, $levels) ) {
|
332 |
+
$this->set( 'logLevel', $level );
|
333 |
+
}
|
334 |
+
}
|
335 |
+
|
336 |
+
/**
|
337 |
+
* Get log level
|
338 |
+
*
|
339 |
+
* @since 1.5.9
|
340 |
+
*
|
341 |
+
* @return integer
|
342 |
+
*/
|
343 |
+
public function get_log_level(){
|
344 |
+
return $this->get( 'logLevel', Monolog::NOTICE );
|
345 |
+
}
|
346 |
+
|
347 |
/**
|
348 |
* Return if is basic plan
|
349 |
*
|
392 |
'forms' => $this->forms_to_array(),
|
393 |
'enhancedDelivery' => $this->get_enhanced_delivery(),
|
394 |
'plan' => $this->get_plan(),
|
395 |
+
'logLevel' => $this->get_log_level()
|
396 |
);
|
397 |
|
398 |
return $data;
|
includes/cf-pro-client/classes/settings/form.php
CHANGED
@@ -28,6 +28,7 @@ class form extends json_arrayable {
|
|
28 |
'pdf_link',
|
29 |
'layout',
|
30 |
'pdf_layout',
|
|
|
31 |
);
|
32 |
|
33 |
/**
|
@@ -173,6 +174,16 @@ class form extends json_arrayable {
|
|
173 |
return $this->form_id;
|
174 |
}
|
175 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
|
177 |
/**
|
178 |
* Getter for send_local setting
|
@@ -183,7 +194,7 @@ class form extends json_arrayable {
|
|
183 |
*/
|
184 |
public function should_send_local(){
|
185 |
/**
|
186 |
-
* Change if an
|
187 |
*
|
188 |
* Default is system value
|
189 |
*
|
@@ -191,8 +202,12 @@ class form extends json_arrayable {
|
|
191 |
* @param string $form_id Form ID
|
192 |
*
|
193 |
*/
|
194 |
-
|
195 |
-
|
|
|
|
|
|
|
|
|
196 |
}
|
197 |
|
198 |
/**
|
28 |
'pdf_link',
|
29 |
'layout',
|
30 |
'pdf_layout',
|
31 |
+
'send_local'
|
32 |
);
|
33 |
|
34 |
/**
|
174 |
return $this->form_id;
|
175 |
}
|
176 |
|
177 |
+
/**
|
178 |
+
* Getter for send_local setting in form
|
179 |
+
*
|
180 |
+
* @since 1.5.9
|
181 |
+
*
|
182 |
+
* @return bool
|
183 |
+
*/
|
184 |
+
public function get_send_local(){
|
185 |
+
return $this->get_property( 'send_local' );
|
186 |
+
}
|
187 |
|
188 |
/**
|
189 |
* Getter for send_local setting
|
194 |
*/
|
195 |
public function should_send_local(){
|
196 |
/**
|
197 |
+
* Change if an individual form should use local email system or not.
|
198 |
*
|
199 |
* Default is system value
|
200 |
*
|
202 |
* @param string $form_id Form ID
|
203 |
*
|
204 |
*/
|
205 |
+
$_send_local = $this->get_send_local();
|
206 |
+
if( $_send_local === true ) {
|
207 |
+
return apply_filters( 'caldera_forms_pro_send_local', true, $this->form_id );
|
208 |
+
} else {
|
209 |
+
return apply_filters( 'caldera_forms_pro_send_local', container::get_instance()->get_settings()->send_local(), $this->form_id );
|
210 |
+
}
|
211 |
}
|
212 |
|
213 |
/**
|
includes/cf-pro-client/dist/client.ca043aad.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
webpackJsonp([1,2],Array(28).concat([function(e,t,a){"use strict";a.d(t,"a",function(){return c});var c=("function"==typeof Symbol&&Symbol.iterator,function(e,t){return Object.prototype.hasOwnProperty.call(e,t)})},function(e,t,a){"use strict";t.a={localApiURL:CF_PRO_ADMIN.api.cf.url,localApiNonce:CF_PRO_ADMIN.api.cf.nonce,appURL:CF_PRO_ADMIN.api.cfPro.url,formScreen:CF_PRO_ADMIN.formScreen,strings:CF_PRO_ADMIN.strings,logLevels:CF_PRO_ADMIN.logLevels}},,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){e.exports={"aes-128-ecb":{cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"},"aes-192-ecb":{cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"},"aes-256-ecb":{cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"},"aes-128-cbc":{cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},"aes-192-cbc":{cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},"aes-256-cbc":{cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},aes128:{cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},aes192:{cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},aes256:{cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},"aes-128-cfb":{cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"},"aes-192-cfb":{cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"},"aes-256-cfb":{cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"},"aes-128-cfb8":{cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"},"aes-192-cfb8":{cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"},"aes-256-cfb8":{cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"},"aes-128-cfb1":{cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"},"aes-192-cfb1":{cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"},"aes-256-cfb1":{cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"},"aes-128-ofb":{cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"},"aes-192-ofb":{cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"},"aes-256-ofb":{cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"},"aes-128-ctr":{cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"},"aes-192-ctr":{cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"},"aes-256-ctr":{cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"},"aes-128-gcm":{cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"},"aes-192-gcm":{cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"},"aes-256-gcm":{cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}}},,function(e,t){e.exports={sha224WithRSAEncryption:{sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:{sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:{sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:{sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:{sign:"ecdsa",hash:"sha256",id:""},sha224:{sign:"ecdsa",hash:"sha224",id:""},sha384:{sign:"ecdsa",hash:"sha384",id:""},sha512:{sign:"ecdsa",hash:"sha512",id:""},"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:{sign:"dsa",hash:"sha1",id:""},"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}}},function(e,t){e.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}},,,,,,,,,,,,,,,,,,,,,,,,function(e,t,a){a(180);var c=a(8)(a(126),a(234),null,null);e.exports=c.exports},function(e,t,a){var c=a(8)(a(127),a(235),null,null);e.exports=c.exports},function(e,t,a){"use strict";var c=a(43),n=a(5),r=a(29),i=a(118),s=a(116),f=a(117),o=a(119);c.a.use(n.e);var d={loading:!1,connected:!1,forms:[],settings:{enhancedDelivery:!1,generatePDFs:!1,logLevel:250},layouts:[{name:""}],account:{plan:String,id:Number,apiKeys:{public:String,secret:String,token:String}},strings:r.a.strings,mainAlert:{success:!1,message:"",show:!1},logLevels:r.a.logLevels},l=[o.a,o.b],u=new n.e.Store({strict:!1,plugins:l,modules:{},state:d,getters:f.a,mutations:i.a,actions:s.a});t.a=u},function(e,t,a){a(178);var c=a(8)(a(132),a(227),null,null);e.exports=c.exports},function(e,t,a){var c=a(8)(a(133),a(225),null,null);e.exports=c.exports},,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,a){"use strict";var c=a(177),n=(a.n(c),a(5));t.a={render:function(e){return e("div",{attrs:{id:"cf-pro-account"}},[e("ul",null,[e("li",null,["Public Key ",this.publicKey]),e("li",null,["Secret Key ",this.secretKey]),e("li",null,["Token ",this.token])])])},computed:a.i(n.b)({token:function(e){return e.account.apiKeys.token},publicKey:function(e){return e.account.apiKeys.public},secretKey:function(e){return e.account.apiKeys.secret}})}},function(e,t,a){"use strict";var c=a(120),n=a(121),r=a(29);a.d(t,"a",function(){return s});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s={getAccount:function(e){return new Promise(function(t,a){c.a.get().then(function(a){var c;if("string"==typeof a.data){var n=JSON.parse(a.data);if("object"!==(void 0===n?"undefined":i(n)))throw new Exception;c=n}else c=a.data;e.commit("forms",c.forms),e.commit("apiKeys",c.apiKeys),e.commit("accountId",c.account_id),e.commit("plan",c.plan),e.commit("logLevel",c.logLevel),e.commit("enhancedDelivery",c.enhancedDelivery),e.commit("formScreen",c.hasOwnProperty("formScreen")?c.formScreen:r.a.formScreen),t(a)},function(e){a(e)})})},saveAccount:function(e){var t=e.state.account.apiKeys.public;t&&"string"==typeof t&&(t=t.trim());var a=e.state.account.apiKeys.secret;return a&&"string"==typeof a&&(a=a.trim()),c.a.post("",{accountId:e.state.account.id,apiKey:t,apiSecret:a,enhancedDelivery:e.state.settings.enhancedDelivery,plan:e.state.account.plan,forms:e.state.forms,logLevel:e.state.settings.logLevel}).then(function(t){t.data.hasOwnProperty("_cfAlertMessage")?e.dispatch("updateMainAlert",_cfAlertMessage):e.dispatch("updateMainAlert",{message:e.state.strings.saved,show:!0,success:!0,fade:1500})})},testConnection:function(e){var t=e.commit,r=e.state;return new Promise(function(e,i){if(r.account.apiKeys.public&&r.account.apiKeys.secret)return c.b.get(a.i(n.a)({public:r.account.apiKeys.public,token:a.i(c.c)(r.account.apiKeys)},"/account/verify")).then(function(a){r.account.plan=a.plan,r.account.id=a.id,r.connected=!0,t("connected",!0),e(a)},function(e){i(e)});i("Not Connected")})},getLayouts:function(e){var t=e.commit,r=e.state;if(r.connected)return c.b.get(a.i(n.a)({simple:!0,public:r.account.apiKeys.public,token:r.account.apiKeys.token},"/layouts/list")).then(function(e){t("layouts",e.data)},function(e){console.log(e)})},updateMainAlert:function(e,t){var a=t.hasOwnProperty("fade")&&!isNaN(t.fade)?t.fade:0;a&&window.setTimeout(function(){e.dispatch("closeMainAlert")},a),e.commit("mainAlert",t)},closeMainAlert:function(e){e.dispatch("updateMainAlert",{show:!1})}}},function(e,t,a){"use strict";var c=a(28);a.d(t,"a",function(){return n});var n={publicKey:function(e){return e.account.apiKeys.public},secretKey:function(e){return e.account.apiKeys.secret},apiKeys:function(e){return e.account.apiKeys},hi:function(e){return"Roy"},getSetting:function(e){return function(t,n){return a.i(c.a)(e.settings,t)?e.settings[t]:n}},getFormsById:function(e,t){return function(t){return e.forms.find(function(e){return e.form_id===t})}},enhancedDelivery:function(e){return e.settings.enhancedDelivery},logLevels:function(e){return e.logLevels},logLevel:function(e){return e.settings.logLevel},connected:function(e){return e.connected},formScreen:function(e){return e.formScreen},strings:function(e){return e.strings},mainAlert:function(e){return e.mainAlert}}},function(e,t,a){"use strict";var c=a(192);a.n(c);a.d(t,"a",function(){return n});var n={publicKey:function(e,t){e.account.apiKeys.public=t},secretKey:function(e,t){e.account.apiKeys.secret=t},apiKeys:function(e,t){e.account.apiKeys.public=t.public,e.account.apiKeys.secret=t.secret,e.account.apiKeys.token=t.token},accountId:function(e,t){e.account.id=t},plan:function(e,t){e.account.plan=t},loading:function(e){e.loading=!e.loading},forms:function(e,t){e.forms=t},logLevels:function(e,t){e.logLevels=t},connected:function(e,t){e.connected=t},layouts:function(e,t){e.layouts=t},form:function(e,t){var a=e.forms.findIndex(function(e){return e.form_id===t.form_id});-1<a&&(e.forms[a]=t)},logLevel:function(e,t){e.settings.logLevel=t},enhancedDelivery:function(e,t){"on"==t&&(t=!0),e.settings.enhancedDelivery=t},formScreen:function(e,t){e.formScreen=t},mainAlert:function(e,t){e.mainAlert={success:!!t.hasOwnProperty("success")&&t.success,message:t.hasOwnProperty("message")?t.message:"",show:!!t.hasOwnProperty("show")&&t.show}}}},function(e,t,a){"use strict";var c=a(67),n=a.n(c);a.d(t,"a",function(){return i}),a.d(t,"b",function(){return s});var r=this,i=function(e){e.subscribe(function(t,a){switch(t.type){case"apiKeys":case"secretKey":case"publicKey":console.log(a.connected,a.account.apiKeys.secret,a.account.apiKeys.public),!a.connected&&a.account.apiKeys.secret&&a.account.apiKeys.public?(console.log(a.connected,a.account.apiKeys.secret,a.account.apiKeys.public),e.dispatch("testConnection"),e.dispatch("getLayouts")):(a.account.apiKeys.public&&a.account.apiKeys.secret,e.commit("connected",0));break;case"connected":a.connected&&e.dispatch("getLayouts")}})},s=function(e){r.debounedFormMutation=n()(function(){e.dispatch("saveAccount")},100),e.subscribe(function(e,t){"form"===e.type&&r.debounedFormMutation()})}},function(e,t,a){"use strict";var c=a(97),n=a.n(c),r=a(29),i=a(191),s=a.n(i),f=a(28);a.d(t,"a",function(){return d}),a.d(t,"b",function(){return l}),a.d(t,"c",function(){return u});var o=3e4,d=n.a.create({baseURL:r.a.localApiURL,timeout:o,headers:{"X-WP-Nonce":r.a.localApiNonce}}),l=n.a.create({baseURL:r.a.appURL,timeout:o}),u=function(e){if(a.i(f.a)(e,"public")&&a.i(f.a)(e,"secret")){var t=e.public,c=e.secret;return s()(t+c)}return""}},function(e,t,a){"use strict";a.d(t,"a",function(){return c});var c=function(e,t){var a="";for(var c in e)""!=a&&(a+="&"),a+=c+"="+e[c];return t+"?"+a}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var c=a(5);t.default={computed:Object.assign({},a.i(c.c)(["publicKey","secretKey","connected"])),methods:Object.assign({},a.i(c.d)(["publicKey","secretKey"]),{publicKeyChange:function(e){this.$store.commit("publicKey",e.target.value)},secretKeyChange:function(e){this.$store.commit("secretKey",e.target.value)}})}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var c=a(219),n=a.n(c),r=a(218),i=a.n(r);t.default={components:{_label:n.a,_input:i.a},props:{idAttr:{type:String,require:!0},value:{type:String,required:!0},setting:{type:String,required:!0},label:{type:String,required:!0}}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:{idAttr:{type:String,require:!0},value:{type:String,required:!0},setting:{type:String,required:!0},type:{type:String,default:"text"}},methods:{handle:function(){this.$store.commit(this.setting,this.value)}}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={idAttr:{type:String,require:!0},label:{type:String,required:!0}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={props:["success","message","show"],watch:{show:function(){this.show?this.$el.className="cf-alert-wrap cf-show":this.$el.className="cf-alert-wrap cf-hide"}}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var c=(a(5),a(217)),n=a.n(c);a(28);t.default={components:{checkbox:n.a},props:["form","layouts"],computed:{layoutIdAttr:function(){return"cf-pro-layout-"+this.form.form_id},pdfLayoutIdAttr:function(){return"cf-pro-layout-pdf-"+this.form.form_id},attachPDFIdAttr:function(){return"cf-pro-layout-"+this.form.form_id},linkPDFIdAttr:function(){return"cf-pro-layout-"+this.form.form_id},sendLocalIdAttr:function(){return"cf-pro-send-local-"+this.form.form_id}},methods:{commitChange:function(e,t){this.form[e]=t,this.$store.commit("form",this.form)},changeLayout:function(e){this.commitChange(e.target.value,"layout")},changePDFLayout:function(e){this.commitChange(e.target.value,"pdf_layout")},changeAttachPDF:function(e){this.commitChange(e.target.value,"attach_pdf")},changeLinkPDF:function(e){this.commitChange(e.target.value,"pdf_link")},changeSendLocal:function(e){this.commitChange(e.target.value,"send_local")}}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var c=a(84),n=a.n(c),r=a(5);t.default={components:{"form-setting":n.a},computed:a.i(r.b)({forms:function(e){return e.forms},layouts:function(e){return e.layouts}}),methods:Object.assign({},a.i(r.a)(["getLayouts"])),beforeMount:function(){this.getLayouts()},data:function(){return{editForm:0,form:{}}},watch:{editForm:function(e){this.form=this.$store.getters.getFormsById(e)}}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var c=a(5);t.default={computed:Object.assign({},a.i(c.c)(["enhancedDelivery"]),{deliveryValue:{get:function(){return this.enhancedDelivery},set:function(e){this.$store.commit("enhancedDelivery",e)}}})}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var c=a(5);t.default={computed:Object.assign({},a.i(c.c)(["logLevels","logLevel","strings"]),{logLevelValue:{get:function(){return this.logLevel},set:function(e){this.$store.commit("logLevel",e)}}})}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var c=a(5);t.default={computed:Object.assign({},a.i(c.c)(["strings"]))}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var c=a(5),n=a(115),r=a(216),i=a.n(r),s=a(220),f=a.n(s),o=a(221),d=a.n(o),l=a(222),u=a.n(l),b=a(83),p=a.n(b);t.default={components:{"account-display":n.a,"account-edit":i.a,"forms-settings":f.a,delivery:d.a,logs:u.a,status:p.a},computed:a.i(c.b)({loading:function(e){return e.loading},connected:function(e){return e.connected},publicKey:function(e){return e.account.apiKeys.public},enhancedDelivery:function(e){return e.settings.enhancedDelivery},logLevel:function(e){return e.settings.logLevel},mainAlert:function(e){return e.mainAlert}}),beforeMount:function(){[].forEach.call(document.querySelectorAll(".update-nag"),function(e){e.parentNode.removeChild(e)}),this.$store.dispatch("getAccount")},methods:{save:function(){this.$store.dispatch("saveAccount")}}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var c=a(5),n=a(67),r=(a.n(n),a(83)),i=a.n(r),s=a(84),f=a.n(s),o=a(223),d=a.n(o);t.default={components:{"form-setting":f.a,"link-keys":d.a,status:i.a},methods:Object.assign({},a.i(c.a)(["getLayouts","getAccount","saveAccount"])),beforeMount:function(){var e=this;this.getAccount().then(function(){e.getLayouts(),e.form=e.$store.getters.getFormsById(e.formScreen)})},computed:a.i(c.b)({layouts:function(e){return e.layouts},connected:function(e){return e.connected},formScreen:function(e){return e.formScreen},mainAlert:function(e){return e.mainAlert}}),data:function(){return{form:{}}}}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){e.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}},,,,,,,,,,,,,,function(e,t){e.exports={_args:[["elliptic@6.4.0","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client"]],_development:!0,_from:"elliptic@6.4.0",_id:"elliptic@6.4.0",_inBundle:!1,_integrity:"sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=",_location:"/elliptic",_phantomChildren:{},_requested:{type:"version",registry:!0,raw:"elliptic@6.4.0",name:"elliptic",escapedName:"elliptic",rawSpec:"6.4.0",saveSpec:null,fetchSpec:"6.4.0"},_requiredBy:["/browserify-sign","/create-ecdh"],_resolved:"https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz",_spec:"6.4.0",_where:"/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client",author:{name:"Fedor Indutny",email:"fedor@indutny.com"},bugs:{url:"https://github.com/indutny/elliptic/issues"},dependencies:{"bn.js":"^4.4.0",brorand:"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0",inherits:"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"},description:"EC cryptography",devDependencies:{brfs:"^1.4.3",coveralls:"^2.11.3",grunt:"^0.4.5","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^8.6.2",istanbul:"^0.4.2",jscs:"^2.9.0",jshint:"^2.6.0",mocha:"^2.1.0"},files:["lib"],homepage:"https://github.com/indutny/elliptic",keywords:["EC","Elliptic","curve","Cryptography"],license:"MIT",main:"lib/elliptic.js",name:"elliptic",repository:{type:"git",url:"git+ssh://git@github.com/indutny/elliptic.git"},scripts:{jscs:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",jshint:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",lint:"npm run jscs && npm run jshint",test:"npm run lint && npm run unit",unit:"istanbul test _mocha --reporter=spec test/index.js",version:"grunt dist && git add dist/"},version:"6.4.0"}},function(e,t){e.exports={"cf-pro-account-edit":"style__cf-pro-account-edit___6_kkC"}},function(e,t){},function(e,t){},function(e,t){},,,,,,,,,,,,,,function(e,t){e.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},,,,,,,,,,,,,,,,,,,,,,function(e,t,a){a(179);var c=a(8)(a(122),a(233),null,null);e.exports=c.exports},function(e,t,a){var c=a(8)(a(123),a(230),null,null);e.exports=c.exports},function(e,t,a){var c=a(8)(a(124),a(226),null,null);e.exports=c.exports},function(e,t,a){var c=a(8)(a(125),a(228),null,null);e.exports=c.exports},function(e,t,a){var c=a(8)(a(128),a(229),null,null);e.exports=c.exports},function(e,t,a){var c=a(8)(a(129),a(224),null,null);e.exports=c.exports},function(e,t,a){var c=a(8)(a(130),a(232),null,null);e.exports=c.exports},function(e,t,a){var c=a(8)(a(131),a(231),null,null);e.exports=c.exports},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"caldera-config-group"},[a("div",{staticClass:"caldera-config-field"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.deliveryValue,expression:"deliveryValue"}],attrs:{type:"checkbox",id:"cf-pro-enhanced-delivery","aria-describedby":"cf-pro-enhanced-delivery-desc"},domProps:{checked:Array.isArray(e.deliveryValue)?e._i(e.deliveryValue,null)>-1:e.deliveryValue},on:{__c:function(t){var a=e.deliveryValue,c=t.target,n=!!c.checked;if(Array.isArray(a)){var r=null,i=e._i(a,r);c.checked?i<0&&(e.deliveryValue=a.concat([r])):i>-1&&(e.deliveryValue=a.slice(0,i).concat(a.slice(i+1)))}else e.deliveryValue=n}}}),e._v(" "),a("label",{attrs:{for:"cf-pro-enhanced-delivery"}},[e._v("\n\t\t\tEnable Enhanced Delivery\n\t\t")]),e._v(" "),a("div",{staticClass:"description",attrs:{id:"cf-pro-enhanced-delivery-desc"}},[a("p",[e._v("If enabled, messages are sent via Caldera Forms Pro Servers")]),e._v(" "),e.enhancedDelivery?a("ul",[a("li",[e._v("Forms must use database entry tracking.")]),e._v(" "),a("li",[e._v("From Email setting will be used as the reply-to.")])]):e._e()])])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"cf-pro-form-settings"}},[e.connected?a("div",[a("form-setting",{attrs:{form:e.form,layouts:e.layouts}})],1):e._e(),e._v(" "),e.connected?e._e():a("div",[a("link-keys")],1),e._v(" "),a("div",{attrs:{id:"cf-pro-alert-wrap"}},[a("status",{attrs:{message:e.mainAlert.message,success:e.mainAlert.success,show:e.mainAlert.show}})],1)])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("input",{attrs:{type:e.type,id:e.idAttr},on:{keyup:function(t){e.handle()},change:function(t){e.handle()}}})},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"cf-pro-message-settings"}},[a("div",{attrs:{id:"cf-pro-message-setting-inner"}},[a("div",{staticClass:"caldera-editor-header"},[a("ul",{staticClass:"caldera-editor-header-nav"},[e._m(0),e._v(" "),e.connected?a("li",{staticClass:"status good"},[e._v("\n\t\t\t\t\tConnected\n\t\t\t\t")]):e._e(),e._v(" "),e.connected?e._e():a("li",{staticClass:"status bad"},[e._v("\n\t\t\t\t\tNot Connected\n\t\t\t\t")]),e._v(" "),a("li",{staticClass:"cf-pro-save"},[a("input",{staticClass:"button button-primary",attrs:{type:"submit",value:"Save"},on:{click:e.save}})]),e._v(" "),a("li",{attrs:{id:"cf-pro-alert-wrap"}},[a("status",{attrs:{message:e.mainAlert.message,success:e.mainAlert.success,show:e.mainAlert.show}})],1)])]),e._v(" "),a("div",{staticClass:"cf-pro-settings"},[a("div",[a("tabs",{attrs:{options:{useUrlFragment:!1}}},[a("tab",{attrs:{name:"Account"}},[a("account-edit")],1),e._v(" "),a("tab",{attrs:{name:"Form Settings"}},[e.connected?a("div",[a("forms-settings")],1):a("div",[e._v("\n\t\t\t\t\t\t\tYou must connected to Caldera Forms Pro First\n\t\t\t\t\t\t")])]),e._v(" "),a("tab",{attrs:{name:"Settings"}},[a("delivery"),e._v(" "),a("logs")],1)],1)],1)])])])},staticRenderFns:[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("li",{staticClass:"caldera-editor-logo"},[a("span",{staticClass:"caldera-forms-name"},[e._v("\n\t\t\t\t\t\tCaldera Forms Pro\n\t\t\t\t\t")])])}]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("label",{attrs:{for:e.idAttr},domProps:{innerHTML:e._s(e.label)}})},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"caldera-config-group"},[a("label",{attrs:{for:"cf-pro-form-setting-chooser"}},[e._v("\n\t\t\tChoose Form\n\t\t")]),e._v(" "),a("div",{staticClass:"caldera-config-field"},[a("select",{directives:[{name:"model",rawName:"v-model",value:e.editForm,expression:"editForm"}],attrs:{id:"cf-pro-form-setting-chooser"},on:{change:function(t){var a=Array.prototype.filter.call(t.target.options,function(e){return e.selected}).map(function(e){return"_value"in e?e._value:e.value});e.editForm=t.target.multiple?a:a[0]}}},[a("option"),e._v(" "),e._l(e.forms,function(t){return a("option",{domProps:{value:t.form_id}},[e._v("\n\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t")])})],2)])]),e._v(" "),e.editForm?a("div",[a("form-setting",{attrs:{form:e.form,layouts:e.layouts}})],1):e._e()])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"caldera-config-group"},[a("label",{attrs:{for:e.idAttr},domProps:{innerHTML:e._s(e.label)}}),e._v(" "),a("_input",{attrs:{type:e.checkbox,idAttr:e.idAttr,value:e.value,setting:e.setting}})],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("a",{attrs:{href:e.strings.apiKeysViewLink,alt:e.strings.apiKeysViewText,target:"_blank"}},[e._v(e._s(e.strings.apiKeysViewText))])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"caldera-config-group"},[a("div",{attrs:{"aria-labelledby":"minLogLevelTitle","aria-describedby":"minLogLevelInfo"}},[a("label",{attrs:{for:"cf-pro-form-log-level-chooser",id:"minLogLevelTitle"}},[e._v("\n "+e._s(e.strings.minLogLevelTitle)+"\n ")]),e._v(" "),a("p",{attrs:{id:"minLogLevelInfo"}},[e._v(e._s(e.strings.minLogLevelInfo))])]),e._v(" "),a("div",{staticClass:"caldera-config-field"},[a("select",{directives:[{name:"model",rawName:"v-model",value:e.logLevelValue,expression:"logLevelValue"}],attrs:{id:"cf-pro-form-log-level-chooser"},on:{change:function(t){var a=Array.prototype.filter.call(t.target.options,function(e){return e.selected}).map(function(e){return"_value"in e?e._value:e.value});e.logLevelValue=t.target.multiple?a:a[0]}}},e._l(e.logLevels,function(t){return a("option",{directives:[{name:"key",rawName:"v-key",value:t.number,expression:"level.number"}],domProps:{value:t.number}},[e._v("\n "+e._s(t.name)+"\n ")])}))])])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"cf-pro-account-edit"}},[a("div",{staticClass:"caldera-config-group"},[a("label",{attrs:{for:"cf-pro-api-public"}},[e._v("\n\t\t\tPublic Key\n\t\t")]),e._v(" "),a("div",{staticClass:"caldera-config-field"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.publicKey,expression:"publicKey"}],attrs:{type:"text",id:"cf-pro-api-public"},domProps:{value:e.publicKey},on:{change:e.publicKeyChange,input:function(t){t.target.composing||(e.publicKey=t.target.value)}}})])]),e._v(" "),a("div",{staticClass:"caldera-config-group"},[a("label",{attrs:{for:"cf-pro-api-secret"}},[e._v("\n\t\t\tSecret Key\n\t\t")]),e._v(" "),a("div",{staticClass:"caldera-config-field"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.secretKey,expression:"secretKey"}],attrs:{type:"text",id:"cf-pro-api-secret"},domProps:{value:e.secretKey},on:{change:e.secretKeyChange,input:function(t){t.target.composing||(e.secretKey=t.target.value)}}})])]),e._v(" "),e.connected?e._e():a("p",[e._v("\n\t\tYou can find your API keys in your "),a("a",{attrs:{href:"https://app.calderaformspro.com/app#/account",target:"_blank"}},[e._v("\n\t\tCaldera Forms Pro Account\n\t")])])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"cf-alert-wrap cf-hide"},[e.show&&e.success?a("p",{staticClass:"cf-alert cf-alert-success"},[e._v("\n\t\t"+e._s(e.message)+"\n\t")]):e._e(),e._v(" "),e.show&&!e.success?a("p",{staticClass:"cf-alert cf-alert-warning"},[e._v("\n\t\t"+e._s(e.message)+"\n\t")]):e._e()])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"caldera-config-group"},[1!=e.form.send_local?a("label",{attrs:{for:e.sendLocalIdAttr}},[e._v("\n\t\t\t\tDisable enhanced delivery for this form\n\t\t")]):a("label",{attrs:{for:e.sendLocalIdAttr}},[e._v("\n\t\t\t\tEnhanced delivery is disabled for this form\n\t\t")]),e._v(" "),a("div",{staticClass:"caldera-config-field"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.form.send_local,expression:"form.send_local"}],attrs:{type:"checkbox",id:e.sendLocalIdAttr},domProps:{checked:Array.isArray(e.form.send_local)?e._i(e.form.send_local,null)>-1:e.form.send_local},on:{change:e.changeSendLocal,__c:function(t){var a=e.form.send_local,c=t.target,n=!!c.checked;if(Array.isArray(a)){var r=null,i=e._i(a,r);c.checked?i<0&&(e.form.send_local=a.concat([r])):i>-1&&(e.form.send_local=a.slice(0,i).concat(a.slice(i+1)))}else e.form.send_local=n}}})])]),e._v(" "),1!=e.form.send_local?a("div",[a("div",{staticClass:"caldera-config-group"},[a("label",{attrs:{for:e.layoutIdAttr}},[e._v("\n\t\t\t\tEmail Layout\n\t\t\t")]),e._v(" "),a("div",{staticClass:"caldera-config-field"},[a("select",{directives:[{name:"model",rawName:"v-model",value:e.form.layout,expression:"form.layout"}],attrs:{id:e.layoutIdAttr},on:{change:[function(t){var a=Array.prototype.filter.call(t.target.options,function(e){return e.selected}).map(function(e){return"_value"in e?e._value:e.value});e.form.layout=t.target.multiple?a:a[0]},e.changeLayout]}},[a("option"),e._v(" "),e._l(e.layouts,function(t){return a("option",{domProps:{value:t.id}},[e._v("\n\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t")])})],2)])]),e._v(" "),a("div",{staticClass:"caldera-config-group"},[a("label",{attrs:{for:e.pdfLayoutIdAttr}},[e._v("\n\t\t\t\tPDF Layout\n\t\t\t")]),e._v(" "),a("div",{staticClass:"caldera-config-field"},[a("select",{directives:[{name:"model",rawName:"v-model",value:e.form.pdf_layout,expression:"form.pdf_layout"}],attrs:{id:e.pdfLayoutIdAttr},on:{change:[function(t){var a=Array.prototype.filter.call(t.target.options,function(e){return e.selected}).map(function(e){return"_value"in e?e._value:e.value});e.form.pdf_layout=t.target.multiple?a:a[0]},e.changePDFLayout]}},[a("option"),e._v(" "),e._l(e.layouts,function(t){return a("option",{domProps:{value:t.id}},[e._v("\n\t\t\t\t\t\t\t"+e._s(t.name)+"\n\t\t\t\t\t\t")])})],2)])]),e._v(" "),a("div",{staticClass:"caldera-config-group"},[a("label",{attrs:{for:e.attachPDFIdAttr}},[e._v("\n\t\t\t\tAttach PDF To Main Mailer\n\t\t\t")]),e._v(" "),a("div",{staticClass:"caldera-config-field"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.form.attach_pdf,expression:"form.attach_pdf"}],attrs:{type:"checkbox",id:e.attachPDFIdAttr},domProps:{checked:Array.isArray(e.form.attach_pdf)?e._i(e.form.attach_pdf,null)>-1:e.form.attach_pdf},on:{change:e.changeAttachPDF,__c:function(t){var a=e.form.attach_pdf,c=t.target,n=!!c.checked;if(Array.isArray(a)){var r=null,i=e._i(a,r);c.checked?i<0&&(e.form.attach_pdf=a.concat([r])):i>-1&&(e.form.attach_pdf=a.slice(0,i).concat(a.slice(i+1)))}else e.form.attach_pdf=n}}})])]),e._v(" "),a("div",{staticClass:"caldera-config-group"},[a("label",{attrs:{for:e.attachPDFIdAttr}},[e._v("\n\t\t\t\tAdd PDF Link\n\t\t\t")]),e._v(" "),a("div",{staticClass:"caldera-config-field"},[a("input",{directives:[{name:"model",rawName:"v-model",value:e.form.pdf_link,expression:"form.pdf_link"}],attrs:{type:"checkbox",id:e.attachPDFIdAttr},domProps:{checked:Array.isArray(e.form.pdf_link)?e._i(e.form.pdf_link,null)>-1:e.form.pdf_link},on:{change:e.changeLinkPDF,__c:function(t){var a=e.form.pdf_link,c=t.target,n=!!c.checked;if(Array.isArray(a)){var r=null,i=e._i(a,r);c.checked?i<0&&(e.form.pdf_link=a.concat([r])):i>-1&&(e.form.pdf_link=a.slice(0,i).concat(a.slice(i+1)))}else e.form.pdf_link=n}}})])])]):e._e()])},staticRenderFns:[]}},,,function(e,t){},function(e,t){},function(e,t){},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var c=a(43),n=a(85),r=a(86),i=a.n(r),s=a(88),f=(a.n(s),a(87)),o=a.n(f);if(a.d(t,"store",function(){return n.a}),c.a.component("tabs",s.Tabs),c.a.component("tab",s.Tab),document.getElementById("cf-pro-app")){new c.a({el:"#cf-pro-app",store:n.a,components:{settings:i.a},render:function(e){return e("div",{attrs:{id:"cf-pro-settings"}},[e("settings")])}})}if(document.getElementById("cf-pro-app-tab")){new c.a({el:"#cf-pro-app-tab",store:n.a,components:{settings:o.a},render:function(e){return e("div",{attrs:{id:"cf-pro-settings-tab"}},[e("settings")])}})}}]),[241]);
|
2 |
+
//# sourceMappingURL=client.ca043aad.js.map
|
includes/cf-pro-client/dist/client.ca043aad.js.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client.ca043aad.js","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/store/util/utils.js","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/store/util/wpConfig.js","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/node_modules/browserify-aes/modes/list.json","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/node_modules/browserify-sign/browser/algorithms.json","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/node_modules/browserify-sign/browser/curves.json","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/Elements/Status/Status.vue","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/FormSettings/Form.vue","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/store/index.js","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/views/Settings.vue","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/views/Tab.vue","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/Account/display.js","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/store/actions.js","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/store/getters.js","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/store/mutations.js","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/store/plugins.js","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/store/util/API.js","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/store/util/urlString.js","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/Edit.vue?0995a470","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/Checkbox.vue?34f7250e","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/Input.vue?6944ebf0","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/Label.vue?5a1f1299","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/Status.vue?356c271a","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/Form.vue?7a94102f","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/Forms.vue?3865799d","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/enhancedDelivery.vue?3dab0983","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/logLevel.vue?5bfc5662","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/linkKeys.vue?528979b5","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/Settings.vue?3500228d","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/Tab.vue?9f2b6b52","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/node_modules/diffie-hellman/lib/primes.json","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/node_modules/elliptic/package.json","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/Account/style.css","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/node_modules/parse-asn1/aesid.json","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/Account/Edit.vue","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/Elements/Field/Checkbox.vue","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/Elements/Parts/Input/Input.vue","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/Elements/Parts/Label/Label.vue","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/FormSettings/Forms.vue","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/GeneralSettings/enhancedDelivery.vue","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/GeneralSettings/logLevel.vue","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/components/Link/linkKeys.vue","webpack:///./client/components/GeneralSettings/enhancedDelivery.vue?63dd","webpack:///./client/views/Tab.vue?faf1","webpack:///./client/components/Elements/Parts/Input/Input.vue?4f47","webpack:///./client/views/Settings.vue?91fa","webpack:///./client/components/Elements/Parts/Label/Label.vue?a14c","webpack:///./client/components/FormSettings/Forms.vue?dd5c","webpack:///./client/components/Elements/Field/Checkbox.vue?5437","webpack:///./client/components/Link/linkKeys.vue?e7e0","webpack:///./client/components/GeneralSettings/logLevel.vue?bed6","webpack:///./client/components/Account/Edit.vue?d9a0","webpack:///./client/components/Elements/Status/Status.vue?4e3f","webpack:///./client/components/FormSettings/Form.vue?8ffe","/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client/client/index.js"],"names":["webpackJsonp","Array","concat","module","__webpack_exports__","__webpack_require__","d","objHasProp","Symbol","iterator","obj","prop","Object","prototype","hasOwnProperty","call","localApiURL","CF_PRO_ADMIN","api","cf","url","localApiNonce","nonce","appURL","cfPro","formScreen","strings","logLevels","exports","aes-128-ecb","cipher","key","iv","mode","type","aes-192-ecb","aes-256-ecb","aes-128-cbc","aes-192-cbc","aes-256-cbc","aes128","aes192","aes256","aes-128-cfb","aes-192-cfb","aes-256-cfb","aes-128-cfb8","aes-192-cfb8","aes-256-cfb8","aes-128-cfb1","aes-192-cfb1","aes-256-cfb1","aes-128-ofb","aes-192-ofb","aes-256-ofb","aes-128-ctr","aes-192-ctr","aes-256-ctr","aes-128-gcm","aes-192-gcm","aes-256-gcm","sha224WithRSAEncryption","sign","hash","id","RSA-SHA224","sha256WithRSAEncryption","RSA-SHA256","sha384WithRSAEncryption","RSA-SHA384","sha512WithRSAEncryption","RSA-SHA512","RSA-SHA1","ecdsa-with-SHA1","sha256","sha224","sha384","sha512","DSA-SHA","DSA-SHA1","DSA","DSA-WITH-SHA224","DSA-SHA224","DSA-WITH-SHA256","DSA-SHA256","DSA-WITH-SHA384","DSA-SHA384","DSA-WITH-SHA512","DSA-SHA512","DSA-RIPEMD160","ripemd160WithRSA","RSA-RIPEMD160","md5WithRSAEncryption","RSA-MD5","1.3.132.0.10","1.3.132.0.33","1.2.840.10045.3.1.1","1.2.840.10045.3.1.7","1.3.132.0.34","1.3.132.0.35","Component","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_1_vuex__","__WEBPACK_IMPORTED_MODULE_2__util_wpConfig__","__WEBPACK_IMPORTED_MODULE_3__mutations__","__WEBPACK_IMPORTED_MODULE_4__actions__","__WEBPACK_IMPORTED_MODULE_5__getters__","__WEBPACK_IMPORTED_MODULE_6__plugins__","use","STATE","loading","connected","forms","settings","enhancedDelivery","generatePDFs","logLevel","layouts","name","account","plan","String","Number","apiKeys","public","secret","token","mainAlert","success","message","show","PLUGINS","store","Store","strict","plugins","modules","state","getters","mutations","actions","__WEBPACK_IMPORTED_MODULE_0__style_css__","n","render","h","attrs","this","publicKey","secretKey","computed","i","__WEBPACK_IMPORTED_MODULE_0__util_API__","__WEBPACK_IMPORTED_MODULE_1__util_urlString__","ACTIONS","_typeof","constructor","getAccount","context","Promise","resolve","reject","get","then","response","r","data","maybe","JSON","parse","Exception","commit","account_id","error","saveAccount","trim","post","accountId","apiKey","apiSecret","dispatch","_cfAlertMessage","saved","fade","testConnection","_ref","getLayouts","_ref2","simple","e","console","log","updateMainAlert","alert","isNaN","window","setTimeout","closeMainAlert","__WEBPACK_IMPORTED_MODULE_0__util_utils__","GETTERS","hi","getSetting","setting","_default","getFormsById","find","form","form_id","__WEBPACK_IMPORTED_MODULE_0_lodash_isboolean__","MUTATIONS","value","index","findIndex","__WEBPACK_IMPORTED_MODULE_0_lodash_debounce__","__WEBPACK_IMPORTED_MODULE_0_lodash_debounce___default","accountSaver","formSaver","_this","subscribe","mutation","debounedFormMutation","__WEBPACK_IMPORTED_MODULE_0_axios__","__WEBPACK_IMPORTED_MODULE_0_axios___default","__WEBPACK_IMPORTED_MODULE_1__wpConfig__","__WEBPACK_IMPORTED_MODULE_2_locutus_php_strings_sha1__","__WEBPACK_IMPORTED_MODULE_2_locutus_php_strings_sha1___default","__WEBPACK_IMPORTED_MODULE_3__utils__","localAPI","appAPI","appToken","timeout","a","create","baseURL","headers","X-WP-Nonce","urlString","endpoint","str","defineProperty","__WEBPACK_IMPORTED_MODULE_0_vuex__","assign","methods","publicKeyChange","ev","$store","target","secretKeyChange","__WEBPACK_IMPORTED_MODULE_0__Parts_Label_Label_vue__","__WEBPACK_IMPORTED_MODULE_0__Parts_Label_Label_vue___default","__WEBPACK_IMPORTED_MODULE_1__Parts_Input_Input_vue__","__WEBPACK_IMPORTED_MODULE_1__Parts_Input_Input_vue___default","components","_label","_input","props","idAttr","require","required","label","default","handle","watch","$el","className","__WEBPACK_IMPORTED_MODULE_1__Elements_Field_Checkbox__","__WEBPACK_IMPORTED_MODULE_1__Elements_Field_Checkbox___default","checkbox","layoutIdAttr","pdfLayoutIdAttr","attachPDFIdAttr","linkPDFIdAttr","sendLocalIdAttr","commitChange","what","changeLayout","changePDFLayout","changeAttachPDF","changeLinkPDF","changeSendLocal","__WEBPACK_IMPORTED_MODULE_0__Form__","__WEBPACK_IMPORTED_MODULE_0__Form___default","form-setting","beforeMount","editForm","v","deliveryValue","set","logLevelValue","__WEBPACK_IMPORTED_MODULE_1__components_Account_display__","__WEBPACK_IMPORTED_MODULE_2__components_Account_Edit__","__WEBPACK_IMPORTED_MODULE_2__components_Account_Edit___default","__WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Forms__","__WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Forms___default","__WEBPACK_IMPORTED_MODULE_4__components_GeneralSettings_enhancedDelivery__","__WEBPACK_IMPORTED_MODULE_4__components_GeneralSettings_enhancedDelivery___default","__WEBPACK_IMPORTED_MODULE_5__components_GeneralSettings_logLevel__","__WEBPACK_IMPORTED_MODULE_5__components_GeneralSettings_logLevel___default","__WEBPACK_IMPORTED_MODULE_6__components_Elements_Status_Status_vue__","__WEBPACK_IMPORTED_MODULE_6__components_Elements_Status_Status_vue___default","account-display","account-edit","forms-settings","delivery","logs","status","forEach","document","querySelectorAll","parentNode","removeChild","save","__WEBPACK_IMPORTED_MODULE_1_lodash_debounce__","__WEBPACK_IMPORTED_MODULE_2__components_Elements_Status_Status__","__WEBPACK_IMPORTED_MODULE_2__components_Elements_Status_Status___default","__WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Form_vue__","__WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Form_vue___default","__WEBPACK_IMPORTED_MODULE_4__components_Link_linkKeys_vue__","__WEBPACK_IMPORTED_MODULE_4__components_Link_linkKeys_vue___default","link-keys","modp1","gen","prime","modp2","modp5","modp14","modp15","modp16","modp17","modp18","_args","_development","_from","_id","_inBundle","_integrity","_location","_phantomChildren","_requested","registry","raw","escapedName","rawSpec","saveSpec","fetchSpec","_requiredBy","_resolved","_spec","_where","author","email","bugs","dependencies","bn.js","brorand","hash.js","hmac-drbg","inherits","minimalistic-assert","minimalistic-crypto-utils","description","devDependencies","brfs","coveralls","grunt","grunt-browserify","grunt-cli","grunt-contrib-connect","grunt-contrib-copy","grunt-contrib-uglify","grunt-mocha-istanbul","grunt-saucelabs","istanbul","jscs","jshint","mocha","files","homepage","keywords","license","main","repository","scripts","lint","test","unit","version","cf-pro-account-edit","2.16.840.1.101.3.4.1.1","2.16.840.1.101.3.4.1.2","2.16.840.1.101.3.4.1.3","2.16.840.1.101.3.4.1.4","2.16.840.1.101.3.4.1.21","2.16.840.1.101.3.4.1.22","2.16.840.1.101.3.4.1.23","2.16.840.1.101.3.4.1.24","2.16.840.1.101.3.4.1.41","2.16.840.1.101.3.4.1.42","2.16.840.1.101.3.4.1.43","2.16.840.1.101.3.4.1.44","_vm","_h","$createElement","_c","_self","staticClass","directives","rawName","expression","aria-describedby","domProps","checked","isArray","_i","on","__c","$event","$$a","$$el","$$c","$$v","$$i","slice","_v","for","_e","staticRenderFns","keyup","change","_m","click","options","useUrlFragment","innerHTML","_s","$$selectedVal","filter","o","selected","map","_value","multiple","_l","href","apiKeysViewLink","alt","apiKeysViewText","aria-labelledby","minLogLevelTitle","minLogLevelInfo","level","number","input","composing","send_local","layout","option","pdf_layout","attach_pdf","pdf_link","__WEBPACK_IMPORTED_MODULE_1__store__","__WEBPACK_IMPORTED_MODULE_2__views_Settings_vue__","__WEBPACK_IMPORTED_MODULE_2__views_Settings_vue___default","__WEBPACK_IMPORTED_MODULE_3_vue_tabs_component__","__WEBPACK_IMPORTED_MODULE_4__views_Tab_vue__","__WEBPACK_IMPORTED_MODULE_4__views_Tab_vue___default","component","getElementById","el"],"mappings":"AAAAA,cAAc,EAAE,GAAGC,MAAM,IAAIC,QAOvB,SAAUC,EAAQC,EAAqBC,GAE7C,YAG+BA,GAAoBC,EAAEF,EAAqB,IAAK,WAAa,MAAOG,IAGnG,ICJaA,IDImB,kBAAXC,SAAgCA,OAAOC,SCJlC,SAASC,EAAIC,GACtC,MAAOC,QAAOC,UAAUC,eAAeC,KAAKL,EAAKC,MDuC5C,SAAUR,EAAQC,EAAqBC,GAE7C,YErDAD,GAAA,GAQCY,YAAaC,aAAaC,IAAIC,GAAGC,IASjCC,cAAeJ,aAAaC,IAAIC,GAAGG,MASnCC,OAAQN,aAAaC,IAAIM,MAAMJ,IAS/BK,WAAYR,aAAaQ,WAWzBC,QAAST,aAAaS,QAWnBC,UAAWV,aAAaU,YF2DpB,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAOF,SAAUxB,EAAQyB,GGpJxBzB,EAAAyB,SAAkBC,eAAeC,OAAA,MAAAC,IAAA,IAAAC,GAAA,EAAAC,KAAA,MAAAC,KAAA,SAA4DC,eAAgBL,OAAA,MAAAC,IAAA,IAAAC,GAAA,EAAAC,KAAA,MAAAC,KAAA,SAA4DE,eAAgBN,OAAA,MAAAC,IAAA,IAAAC,GAAA,EAAAC,KAAA,MAAAC,KAAA,SAA4DG,eAAgBP,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,SAA6DI,eAAgBR,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,SAA6DK,eAAgBT,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,SAA6DM,QAAWV,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,SAA6DO,QAAWX,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,SAA6DQ,QAAWZ,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,SAA6DS,eAAgBb,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,UAA8DU,eAAgBd,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,UAA8DW,eAAgBf,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,UAA8DY,gBAAiBhB,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,OAAAC,KAAA,UAA+Da,gBAAiBjB,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,OAAAC,KAAA,UAA+Dc,gBAAiBlB,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,OAAAC,KAAA,UAA+De,gBAAiBnB,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,OAAAC,KAAA,UAA+DgB,gBAAiBpB,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,OAAAC,KAAA,UAA+DiB,gBAAiBrB,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,OAAAC,KAAA,UAA+DkB,eAAgBtB,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,UAA8DmB,eAAgBvB,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,UAA8DoB,eAAgBxB,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,UAA8DqB,eAAgBzB,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,UAA8DsB,eAAgB1B,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,UAA8DuB,eAAgB3B,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,UAA8DwB,eAAgB5B,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,QAA4DyB,eAAgB7B,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,QAA4D0B,eAAgB9B,OAAA,MAAAC,IAAA,IAAAC,GAAA,GAAAC,KAAA,MAAAC,KAAA,UHyJl/D,CAOF,SAAU/B,EAAQyB,GIhKxBzB,EAAAyB,SAAkBiC,yBAA2BC,KAAA,MAAAC,KAAA,SAAAC,GAAA,0CAA2EC,cAAeH,KAAA,YAAAC,KAAA,SAAAC,GAAA,0CAAiFE,yBAA4BJ,KAAA,MAAAC,KAAA,SAAAC,GAAA,0CAA2EG,cAAeL,KAAA,YAAAC,KAAA,SAAAC,GAAA,0CAAiFI,yBAA4BN,KAAA,MAAAC,KAAA,SAAAC,GAAA,0CAA2EK,cAAeP,KAAA,YAAAC,KAAA,SAAAC,GAAA,0CAAiFM,yBAA4BR,KAAA,MAAAC,KAAA,SAAAC,GAAA,0CAA2EO,cAAeT,KAAA,YAAAC,KAAA,SAAAC,GAAA,0CAAiFQ,YAAaV,KAAA,MAAAC,KAAA,OAAAC,GAAA,kCAAiES,mBAAoBX,KAAA,QAAAC,KAAA,OAAAC,GAAA,IAAqCU,QAAWZ,KAAA,QAAAC,KAAA,SAAAC,GAAA,IAAuCW,QAAWb,KAAA,QAAAC,KAAA,SAAAC,GAAA,IAAuCY,QAAWd,KAAA,QAAAC,KAAA,SAAAC,GAAA,IAAuCa,QAAWf,KAAA,QAAAC,KAAA,SAAAC,GAAA,IAAuCc,WAAYhB,KAAA,MAAAC,KAAA,OAAAC,GAAA,IAAmCe,YAAajB,KAAA,MAAAC,KAAA,OAAAC,GAAA,IAAmCgB,KAAQlB,KAAA,MAAAC,KAAA,OAAAC,GAAA,IAAmCiB,mBAAoBnB,KAAA,MAAAC,KAAA,SAAAC,GAAA,IAAqCkB,cAAepB,KAAA,MAAAC,KAAA,SAAAC,GAAA,IAAqCmB,mBAAoBrB,KAAA,MAAAC,KAAA,SAAAC,GAAA,IAAqCoB,cAAetB,KAAA,MAAAC,KAAA,SAAAC,GAAA,IAAqCqB,mBAAoBvB,KAAA,MAAAC,KAAA,SAAAC,GAAA,IAAqCsB,cAAexB,KAAA,MAAAC,KAAA,SAAAC,GAAA,IAAqCuB,mBAAoBzB,KAAA,MAAAC,KAAA,SAAAC,GAAA,IAAqCwB,cAAe1B,KAAA,MAAAC,KAAA,SAAAC,GAAA,IAAqCyB,iBAAkB3B,KAAA,MAAAC,KAAA,SAAAC,GAAA,IAAqC0B,kBAAqB5B,KAAA,MAAAC,KAAA,SAAAC,GAAA,kCAAmE2B,iBAAkB7B,KAAA,MAAAC,KAAA,SAAAC,GAAA,kCAAmE4B,sBAAyB9B,KAAA,MAAAC,KAAA,MAAAC,GAAA,wCAAsE6B,WAAY/B,KAAA,MAAAC,KAAA,MAAAC,GAAA,0CJ2KngE,SAAU7D,EAAQyB,GK3KxBzB,EAAAyB,SAAkBkE,eAAA,YAAAC,eAAA,OAAAC,sBAAA,OAAAC,sBAAA,OAAAC,eAAA,OAAAC,eAAA,SLgLV,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAOF,SAAUhG,EAAQyB,EAASvB,GM3MjCA,EAAA,IAEA,IAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,SNyNM,SAAUzB,EAAQyB,EAASvB,GOxOjC,GAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,SPoPM,SAAUzB,EAAQC,EAAqBC,GAE7C,YACqB,IAAIgG,GAAoChG,EAA+B,IACnEiG,EAAqCjG,EAAgC,GACrEkG,EAA+ClG,EAA2C,IAC1FmG,EAA2CnG,EAAuC,KAClFoG,EAAyCpG,EAAqC,KAC9EqG,EAAyCrG,EAAqC,KAC9EsG,EAAyCtG,EAAqC,IQrQvGgG,GAAA,EAAIO,IAAIN,EAAA,EAIR,IAAMO,IACLC,SAAS,EACTC,WAAW,EACXC,SAEAC,UACCC,kBAAkB,EAClBC,cAAc,EACdC,SAAU,KAEXC,UACEC,KAAK,KAEPC,SACCC,KAAMC,OACNzD,GAAI0D,OACJC,SACCC,OAAQH,OACRI,OAAQJ,OACRK,MAAOL,SAGT/F,QAAS6E,EAAA,EAAY7E,QACrBqG,WACCC,SAAS,EACTC,QAAU,GACVC,MAAM,GAEPvG,UAAW4E,EAAA,EAAY5E,WAalBwG,GACLxB,EAAA,EACAA,EAAA,GAGKyB,EAAS,GAAI9B,GAAA,EAAK+B,OACtBC,QAAQ,EACRC,QAASJ,EACTK,WACAC,MAAO5B,EACP6B,QAAShC,EAAA,EACTiC,UAAWnC,EAAA,EACXoC,QAASnC,EAAA,GAIXrG,GAAA,EAAegI,GRyQT,SAAUjI,EAAQyB,EAASvB,GSvUjCA,EAAA,IAEA,IAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,STqVM,SAAUzB,EAAQyB,EAASvB,GUpWjC,GAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,SV0WQ,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACC,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAOH,SAAUzB,EAAQC,EAAqBC,GAE7C,YACqB,IAAIwI,GAA2CxI,EAAuC,KAElFiG,GADmDjG,EAAoByI,EAAED,GACpCxI,EAAgC,GWvZ9FD,GAAA,GACE2I,OADa,SACNC,GACL,MACEA,GAAA,OAAAC,OAAKjF,GAAG,oBACNgF,EAAA,WACEA,EAAA,yBAAgBE,KAAKC,YACrBH,EAAA,yBAAgBE,KAAKE,YACrBJ,EAAA,oBAAWE,KAAKpB,aAKxBuB,SAAUhJ,EAAAiJ,EAAAhD,EAAA,IACRwB,MAAO,SAAAW,GAAA,MAASA,GAAMlB,QAAQI,QAAQG,OACtCqB,UAAW,SAAAV,GAAA,MAASA,GAAMlB,QAAQI,QAAQC,QAC1CwB,UAAW,SAAAX,GAAA,MAASA,GAAMlB,QAAQI,QAAQE,YX4bxC,SAAU1H,EAAQC,EAAqBC,GAE7C,YACqB,IAAIkJ,GAA0ClJ,EAAsC,KAChFmJ,EAAgDnJ,EAA4C,KAC5FkG,EAA+ClG,EAA2C,GACpFA,GAAoBC,EAAEF,EAAqB,IAAK,WAAa,MAAOqJ,IACnG,IAAIC,GAA4B,kBAAXlJ,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIiJ,cAAgBnJ,QAAUE,IAAQF,OAAOK,UAAY,eAAkBH,IYldzP+I,GACZG,WADsB,SACXC,GACV,MAAO,IAAIC,SAAQ,SAACC,EAASC,GAC5BT,EAAA,EAASU,MAAMC,KAAK,SAAAC,GACnB,GAAIC,EACJ,IAAI,gBAAmBD,GAASE,KAAM,CACrC,GAAMC,GAAQC,KAAKC,MAAML,EAASE,KAClC,IAAI,qBAAqBC,EAArB,YAAAZ,EAAqBY,IAGxB,KAAM,IAAIG,UAFVL,GAAIE,MAKLF,GAAID,EAASE,IAEdR,GAAQa,OAAO,QAASN,EAAEpD,OAC1B6C,EAAQa,OAAO,UAAWN,EAAEzC,SAC5BkC,EAAQa,OAAO,YAAaN,EAAEO,YAC9Bd,EAAQa,OAAO,OAAQN,EAAE5C,MACjBqC,EAAQa,OAAO,WAAYN,EAAEhD,UACrCyC,EAAQa,OAAO,mBAAoBN,EAAElD,kBACrC2C,EAAQa,OAAO,aAAcN,EAAEtJ,eAAgB,cAAiBsJ,EAAE3I,WAAa8E,EAAA,EAAY9E,YAC3FsI,EAAQI,IACN,SAAAS,GACFZ,EAAOY,QAIVC,YA5BsB,SA4BVhB,GACX,GAAI9H,GAAM8H,EAAQpB,MAAMlB,QAAQI,QAAQC,MACpC7F,IAAO,gBAAoBA,KAC9BA,EAAMA,EAAI+I,OAEL,IAAIjD,GAASgC,EAAQpB,MAAMlB,QAAQI,QAAQE,MAKjD,OAJUA,IAAU,gBAAoBA,KAC9BA,EAASA,EAAOiD,QAGnBvB,EAAA,EAASwB,KAAK,IACpBC,UAAWnB,EAAQpB,MAAMlB,QAAQvD,GACjCiH,OAAQlJ,EACRmJ,UAAWrD,EACXX,iBAAkB2C,EAAQpB,MAAMxB,SAASC,iBACzCM,KAAMqC,EAAQpB,MAAMlB,QAAQC,KAC5BR,MAAO6C,EAAQpB,MAAMzB,MACrBI,SAAUyC,EAAQpB,MAAMxB,SAASG,WAC/B8C,KAAK,SAAAE,GACHA,EAAEC,KAAKvJ,eAAgB,mBAC1B+I,EAAQsB,SAAU,kBAAmBC,iBAErCvB,EAAQsB,SAAU,mBACjBlD,QAAS4B,EAAQpB,MAAM/G,QAAQ2J,MAC/BnD,MAAM,EACNF,SAAS,EACTsD,KAAM,UAKVC,eA3DsB,SAAAC,GA2DU,GAAhBd,GAAgBc,EAAhBd,OAAQjC,EAAQ+C,EAAR/C,KACvB,OAAO,IAAIqB,SAAQ,SAACC,EAASC,GAC5B,GAAIvB,EAAMlB,QAAQI,QAAQC,QAAUa,EAAMlB,QAAQI,QAAQE,OACzD,MAAO0B,GAAA,EAAOU,IACb5J,EAAAiJ,EAAAE,EAAA,IAEE5B,OAAQa,EAAMlB,QAAQI,QAAQC,OAC9BE,MAAOzH,EAAAiJ,EAAAC,EAAA,GAAUd,EAAMlB,QAAQI,UAEhC,oBAEAuC,KAAK,SAAAE,GACL3B,EAAMlB,QAAQC,KAAO4C,EAAE5C,KACvBiB,EAAMlB,QAAQvD,GAAKoG,EAAEpG,GACrByE,EAAM1B,WAAY,EAClB2D,EAAQ,aAAa,GACrBX,EAAQK,IAET,SAAAQ,GACCZ,EAAOY,IAITZ,GAAQ,oBAKXyB,WAvFsB,SAAAC,GAuFM,GAAhBhB,GAAgBgB,EAAhBhB,OAAQjC,EAAQiD,EAARjD,KACnB,IAAIA,EAAM1B,UACT,MAAOwC,GAAA,EAAOU,IACb5J,EAAAiJ,EAAAE,EAAA,IAEEmC,QAAQ,EACR/D,OAAQa,EAAMlB,QAAQI,QAAQC,OAC9BE,MAAOW,EAAMlB,QAAQI,QAAQG,OAE9B,kBAEAoC,KACD,SAAAE,GACCM,EAAQ,UAAWN,EAAEC,OACnB,SAAAuB,GACFC,QAAQC,IAAIF,MAehBG,gBArHsB,SAqHNlC,EAASmC,GACxB,GAAMV,GAASU,EAAMlL,eAAgB,UAAcmL,MAAOD,EAAMV,MAAWU,EAAMV,KAAO,CACpFA,IAEHY,OAAOC,WAAY,WAClBtC,EAAQsB,SAAU,mBAChBG,GAEJzB,EAAQa,OAAO,YAAYsB,IAS5BI,eAtIsB,SAsIPvC,GACdA,EAAQsB,SAAU,mBACjBjD,MAAK,OZ6dF,SAAU/H,EAAQC,EAAqBC,GAE7C,YACqB,IAAIgM,GAA4ChM,EAAwC,GAC9EA,GAAoBC,EAAEF,EAAqB,IAAK,WAAa,MAAOkM,Ia3mB5F,IAAMA,IACZnD,UAAW,SAAAV,GACV,MAAOA,GAAMlB,QAAQI,QAAQC,QAE9BwB,UAAW,SAAAX,GACV,MAAOA,GAAMlB,QAAQI,QAAQE,QAE9BF,QAAS,SAAAc,GACR,MAAOA,GAAMlB,QAAQI,SAEtB4E,GAAI,SAAA9D,GACH,MAAO,OAER+D,WAAY,SAAA/D,GAAA,MAAS,UAACgE,EAAQC,GAC7B,MAAIrM,GAAAiJ,EAAA+C,EAAA,GAAW5D,EAAMxB,SAAUwF,GACvBhE,EAAMxB,SAASwF,GAEhBC,IAERC,aAAc,SAAClE,EAAOC,GAAR,MAAoB,UAAC1E,GAClC,MAAOyE,GAAMzB,MAAM4F,KAAK,SAAAC,GAAA,MAAQA,GAAKC,UAAY9I,MAGlDkD,iBAAkB,SAAAuB,GACjB,MAAOA,GAAMxB,SAASC,kBAEvBvF,UAAW,SAAA8G,GACV,MAAOA,GAAM9G,WAEdyF,SAAU,SAAAqB,GACT,MAAOA,GAAMxB,SAASG,UAEvBL,UAAW,SAAA0B,GACV,MAAOA,GAAM1B,WAEdtF,WAAY,SAAAgH,GACX,MAAOA,GAAMhH,YAEdC,QAAS,SAAA+G,GACR,MAAOA,GAAM/G,SAEdqG,UAAW,SAAAU,GACV,MAAOA,GAAMV,ab+nBT,SAAU5H,EAAQC,EAAqBC,GAE7C,YACqB,IAAI0M,GAAiD1M,EAA4C,IACpCA,GAAoByI,EAAEiE,EACzE1M,GAAoBC,EAAEF,EAAqB,IAAK,WAAa,MAAO4M,Ic/qB5F,IAAMA,IACZ7D,UADwB,SACbV,EAAMwE,GAChBxE,EAAMlB,QAAQI,QAAQC,OAASqF,GAEhC7D,UAJwB,SAIbX,EAAMwE,GAChBxE,EAAMlB,QAAQI,QAAQE,OAASoF,GAEhCtF,QAPwB,SAOfc,EAAM/H,GACd+H,EAAMlB,QAAQI,QAAQC,OAASlH,EAAIkH,OACnCa,EAAMlB,QAAQI,QAAQE,OAASnH,EAAImH,OACnCY,EAAMlB,QAAQI,QAAQG,MAAQpH,EAAIoH,OAEnCkD,UAZwB,SAYdvC,EAAMwE,GACfxE,EAAMlB,QAAQvD,GAAKiJ,GAEpBzF,KAfwB,SAenBiB,EAAMwE,GACVxE,EAAMlB,QAAQC,KAAOyF,GAEtBnG,QAlBwB,SAkBhB2B,GACPA,EAAM3B,SAAY2B,EAAM3B,SAEzBE,MArBwB,SAqBlByB,EAAOwE,GACZxE,EAAMzB,MAAQiG,GAEftL,UAxBwB,SAwBd8G,EAAOwE,GAChBxE,EAAM9G,UAAYsL,GAEnBlG,UA3BwB,SA2Bd0B,EAAMwE,GACfxE,EAAM1B,UAAYkG,GAEnB5F,QA9BwB,SA8BhBoB,EAAMwE,GACbxE,EAAMpB,QAAU4F,GAEjBJ,KAjCwB,SAiCnBpE,EAAMwE,GACV,GAAIC,GAAQzE,EAAMzB,MAAMmG,UAAU,SAAAN,GAAA,MAAQA,GAAKC,UAAYG,EAAMH,WAC5D,EAAII,IACRzE,EAAMzB,MAAMkG,GAASD,IAGpB7F,SAvCqB,SAuCZqB,EAAMwE,GACjBxE,EAAMxB,SAASG,SAAW6F,GAE3B/F,iBA1CwB,SA0CPuB,EAAMwE,GACjB,MAAQA,IACZA,GAAQ,GAETxE,EAAMxB,SAASC,iBAAmB+F,GAEnCxL,WAhDwB,SAgDbgH,EAAMwE,GAChBxE,EAAMhH,WAAawL,GAUpBlF,UA3DwB,SA2DdU,EAAMwE,GACfxE,EAAMV,WACLC,UAASiF,EAAMnM,eAAgB,YAAcmM,EAAMjF,QACnDC,QAASgF,EAAMnM,eAAgB,WAAcmM,EAAMhF,QAAU,GAC7DC,OAAM+E,EAAMnM,eAAgB,SAAWmM,EAAM/E,SdisB1C,SAAU/H,EAAQC,EAAqBC,GAE7C,YACqB,IAAI+M,GAAgD/M,EAA2C,IAC3FgN,EAAwDhN,EAAoByI,EAAEsE,EACxE/M,GAAoBC,EAAEF,EAAqB,IAAK,WAAa,MAAOkN,KACpEjN,EAAoBC,EAAEF,EAAqB,IAAK,WAAa,MAAOmN,IACnG,IAAIC,GAAQtE,KevwBCoE,EAAe,SAAAlF,GAC3BA,EAAMqF,UAAU,SAACC,EAAUjF,GAE1B,OADaiF,EAASxL,MAErB,IAAK,UACL,IAAK,YACL,IAAK,YACJ2J,QAAQC,IAAIrD,EAAM1B,UAAW0B,EAAMlB,QAAQI,QAAQE,OAAQY,EAAMlB,QAAQI,QAAQC,SAE5Ea,EAAM1B,WAAa0B,EAAMlB,QAAQI,QAAQE,QAAUY,EAAMlB,QAAQI,QAAQC,QAC9DiE,QAAQC,IAAIrD,EAAM1B,UAAW0B,EAAMlB,QAAQI,QAAQE,OAAQY,EAAMlB,QAAQI,QAAQC,QAEjFQ,EAAM+C,SAAS,kBAC9B/C,EAAM+C,SAAS,gBACJ1C,EAAMlB,QAAQI,QAAQC,QAAWa,EAAMlB,QAAQI,QAAQE,OAGlEO,EAAMsC,OAAO,YAAa,GAE3B,MACD,KAAM,YACDjC,EAAM1B,WACTqB,EAAM+C,SAAS,kBAePoC,EAAY,SAAAnF,GAOxBoF,EAAKG,qBAAuBN,IAC3B,WACCjF,EAAM+C,SAAU,gBACd,KAQJ/C,EAAMqF,UAAU,SAACC,EAAUjF,GACtB,SAAWiF,EAASxL,MACvBsL,EAAKG,2BfmxBF,SAAUxN,EAAQC,EAAqBC,GAE7C,YACqB,IAAIuN,GAAsCvN,EAAiC,IACvEwN,EAA8CxN,EAAoByI,EAAE8E,GACpEE,EAA0CzN,EAAsC,IAChF0N,EAAyD1N,EAAoD,KAC7G2N,EAAiE3N,EAAoByI,EAAEiF,GACvFE,EAAuC5N,EAAmC,GACpEA,GAAoBC,EAAEF,EAAqB,IAAK,WAAa,MAAO8N,KACpE7N,EAAoBC,EAAEF,EAAqB,IAAK,WAAa,MAAO+N,KACpE9N,EAAoBC,EAAEF,EAAqB,IAAK,WAAa,MAAOgO,IgBn1BnG,IAAMC,GAAU,IACHH,EAAWL,EAAAS,EAAMC,QAC7BC,QAASV,EAAA,EAAY9M,YACrBqN,QAASA,EACTI,SAAUC,aAAcZ,EAAA,EAAYzM,iBAGxB8M,EAASN,EAAAS,EAAMC,QAC3BC,QAASV,EAAA,EAAYvM,OACrB8M,QAASA,IAGID,EAAW,SAAUzG,GAClC,GAAItH,EAAAiJ,EAAA2E,EAAA,GAAWtG,EAAQ,WAAatH,EAAAiJ,EAAA2E,EAAA,GAAWtG,EAAQ,UAAU,CAChE,GAAIwB,GAAYxB,EAAQC,OACpBC,EAASF,EAAQE,MACrB,OAAOmG,KAAM7E,EAAYtB,GAE1B,MAAO,KhBm2BF,SAAU1H,EAAQC,EAAqBC,GAE7C,YAC+BA,GAAoBC,EAAEF,EAAqB,IAAK,WAAa,MAAOuO,IiB73B3F,IAAMA,GAAY,SAAUtE,EAAMuE,GACzC,GAAIC,GAAM,EACV,KAAK,GAAI9M,KAAOsI,GACJ,IAAPwE,IACHA,GAAO,KAERA,GAAO9M,EAAM,IAAMsI,EAAKtI,EAEzB,OAAO6M,GAAW,IAAMC,IjBw4BnB,SAAU1O,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,GAC7C,IAAI8B,GAAqC1O,EAAgC,EAwCjED,GAA6B,SkBl5B1DiJ,SAAAzI,OAAAoO,UAAA3O,EAAAiJ,EAAAyF,EAAA,IAEA,YACA,YAGA,eACAE,QAAArO,OAAAoO,UAAA3O,EAAAiJ,EAAAyF,EAAA,IAEA,YAEA,elB24BEG,gBAAiB,SAAyBC,GACzCjG,KAAKkG,OAAO1E,OAAO,YAAayE,EAAGE,OkB14BtCpC,QlB44BEqC,gBAAiB,SAAyBH,GACzCjG,KAAKkG,OAAO1E,OAAO,YAAayE,EAAGE,OkB14BtCpC,YlBs5BM,SAAU9M,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,GAC7C,IAAIsC,GAAuDlP,EAAoD,KAC3GmP,EAA+DnP,EAAoByI,EAAEyG,GACrFE,EAAuDpP,EAAoD,KAC3GqP,EAA+DrP,EAAoByI,EAAE2G,EmBt8B9GrP,GAAA,SnBy9BCuP,YACCC,OmBv9BFJ,EAAAlB,EnBw9BEuB,OmBt9BFH,EAAApB,GnBw9BCwB,OACCC,QACC7N,KmBv9BHuF,OnBw9BGuI,SmBt9BH,GnBw9BE/C,OACC/K,KmBv9BHuF,OnBw9BGwI,UmBt9BH,GnBw9BExD,SACCvK,KmBv9BHuF,OnBw9BGwI,UmBt9BH,GnBw9BEC,OACChO,KmBv9BHuF,OnBw9BGwI,UmBp9BH,MnBi+BM,SAAU9P,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,IoBngClE7M,EAAA,SpB+gCC0P,OACCC,QACC7N,KoB7gCHuF,OpB8gCGuI,SoB5gCH,GpB8gCE/C,OACC/K,KoB7gCHuF,OpB8gCGwI,UoB5gCH,GpB8gCExD,SACCvK,KoB7gCHuF,OpB8gCGwI,UoB5gCH,GpB8gCE/N,MACCA,KoB7gCHuF,OpB8gCG0I,QoB3gCH,SpB8gCClB,SACCmB,OAAQ,WACPlH,KAAKkG,OAAO1E,OAAOxB,KAAKuD,QAASvD,KoB7gCpC+D,WpB0hCM,SAAU9M,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,IqBxjClE7M,EAAA,SrB+jCC2P,QACC7N,KqB7jCFuF,OrB8jCEuI,SqB5jCF,GrB8jCCE,OACChO,KqB7jCFuF,OrB8jCEwI,UqB5jCF,KrBukCM,SAAU9P,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,IsB7kClE7M,EAAA,StB0lCC0P,OsBvlCD,UACA,UAEA,QtBqlCCO,OACCnI,KAAM,WACDgB,KAAKhB,KACRgB,KAAKoH,IAAIC,UsBplCb,wBtBslCIrH,KAAKoH,IAAIC,UsBplCb,4BtBkmCM,SAAUpQ,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,GAC7C,IACIuD,IADqCnQ,EAAgC,GACZA,EAAsD,MAC/GoQ,EAAiEpQ,EAAoByI,EAAE0H,EACrCnQ,GAAkD,GAwFhGD,GAA6B,SACzDuP,YACCe,SuB/nCFD,EAAAnC,GvBioCCwB,OAAQ,OuBhoCT,WvBioCCzG,UACCsH,aAAc,WACb,MAAO,iBAAmBzH,KAAK2D,KuBhoClCC,SvBkoCE8D,gBAAiB,WAChB,MAAO,qBAAuB1H,KAAK2D,KuBhoCtCC,SvBkoCE+D,gBAAiB,WAChB,MAAO,iBAAmB3H,KAAK2D,KuBhoClCC,SvBkoCEgE,cAAe,WACd,MAAO,iBAAmB5H,KAAK2D,KuBhoClCC,SvBkoCEiE,gBAAiB,WAChB,MAAO,qBAAuB7H,KAAK2D,KuBhoCtCC,UvBmoCCmC,SACC+B,aAAc,SAAsBC,EAAMhE,GACzC/D,KAAK2D,KAAKoE,GuBhoCbhE,EvBioCG/D,KAAKkG,OAAO1E,OAAO,OAAQxB,KuBhoC9B2D,OvBkoCEqE,aAAc,SAAsB/B,GACnCjG,KAAK8H,aAAa7B,EAAGE,OAAOpC,MuBhoC/B,WvBkoCEkE,gBAAiB,SAAyBhC,GACzCjG,KAAK8H,aAAa7B,EAAGE,OAAOpC,MuBhoC/B,evBkoCEmE,gBAAiB,SAAyBjC,GACzCjG,KAAK8H,aAAa7B,EAAGE,OAAOpC,MuBhoC/B,evBkoCEoE,cAAe,SAAuBlC,GACrCjG,KAAK8H,aAAa7B,EAAGE,OAAOpC,MuBhoC/B,avBkoCEqE,gBAAiB,SAAyBnC,GACzCjG,KAAK8H,aAAa7B,EAAGE,OAAOpC,MuBhoC/B,kBvB6oCM,SAAU9M,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,GAC7C,IAAIsE,GAAsClR,EAAkC,IACxEmR,EAA8CnR,EAAoByI,EAAEyI,GACpEjL,EAAqCjG,EAAgC,EwB/uC9FD,GAAA,SxBqxCCuP,YACC8B,ewBlxCFD,EAAAlD,GxBoxCCjF,SAAUhJ,EAAoBiJ,EAAEhD,EAAqD,IACpFU,MAAO,SAAeyB,GACrB,MAAOA,GwBpxCVzB,OxBsxCEK,QAAS,SAAiBoB,GACzB,MAAOA,GwBrxCVpB,WACA4H,QAAArO,OAAAoO,UAAA3O,EAAAiJ,EAAAhD,EAAA,IAIA,gBxBoxCCoL,YAAa,WACZxI,KwBnxCFuC,cxBqxCCpB,KAAM,WACL,OACCsH,SwBnxCH,ExBoxCG9E,UAIFwD,OACCsB,SAAU,SAAkBC,GAC3B1I,KAAK2D,KAAO3D,KAAKkG,OAAO1G,QAAQiE,awBpxCnCiF,OxBiyCM,SAAUzR,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,GAC7C,IAAI8B,GAAqC1O,EAAgC,EA0BjED,GAA6B,SyBj2C1DiJ,SAAAzI,OAAAoO,UAAA3O,EAAAiJ,EAAAyF,EAAA,IAGA,sBzBg2CQ8C,eACI5H,IAAK,WACD,MAAOf,MyB/1CvBhC,kBzBi2CY4K,IAAK,SAAa7E,GACd/D,KAAKkG,OAAO1E,OAAO,mByB/1CnCuC,SzB42CM,SAAU9M,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,GAC7C,IAAI8B,GAAqC1O,EAAgC,E0Bz3C9FD,GAAA,SAEAiJ,SAAAzI,OAAAoO,UAAA3O,EAAAiJ,EAAAyF,EAAA,IAEA,YACA,WAEA,a1Bg5CQgD,eACI9H,IAAK,WACD,MAAOf,M0B/4CvB9B,U1Bi5CY0K,IAAK,SAAa7E,GACd/D,KAAKkG,OAAO1E,OAAO,W0B/4CnCuC,S1B45CM,SAAU9M,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,GAC7C,IAAI8B,GAAqC1O,EAAgC,E2Bl8C9FD,GAAA,SAGAiJ,SAAAzI,OAAAoO,UAAA3O,EAAAiJ,EAAAyF,EAAA,IAKA,e3B88CM,SAAU5O,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,GAC7C,IAAI8B,GAAqC1O,EAAgC,GACrE2R,EAA4D3R,EAAyD,KACrH4R,EAAyD5R,EAAsD,KAC/G6R,EAAiE7R,EAAoByI,EAAEmJ,GACvFE,EAA+D9R,EAA4D,KAC3H+R,EAAuE/R,EAAoByI,EAAEqJ,GAC7FE,EAA6EhS,EAA0E,KACvJiS,EAAqFjS,EAAoByI,EAAEuJ,GAC3GE,EAAqElS,EAAkE,KACvImS,EAA6EnS,EAAoByI,EAAEyJ,GACnGE,EAAuEpS,EAAoE,IAC3IqS,EAA+ErS,EAAoByI,EAAE2J,EA8DjGrS,GAA6B,SACzDuP,YACCgD,kB4B3+CFX,EAAA,E5B4+CEY,e4B3+CFV,EAAA5D,E5B4+CEuE,iB4B3+CFT,EAAA9D,E5B4+CEwE,S4B3+CFR,EAAAhE,E5B4+CEyE,K4B3+CFP,EAAAlE,E5B4+CE0E,O4B1+CFN,EAAApE,G5B4+CCjF,SAAUhJ,EAAoBiJ,EAAEyF,EAAqD,IACpFjI,QAAS,SAAiB2B,GACzB,MAAOA,G4B5+CV3B,S5B8+CEC,UAAW,SAAmB0B,GAC7B,MAAOA,G4B9+CV1B,W5Bg/CEoC,UAAW,SAAmBV,GAC7B,MAAOA,GAAMlB,QAAQI,Q4Bh/CxBC,Q5Bk/CEV,iBAAkB,SAA0BuB,GAC3C,MAAOA,GAAMxB,S4Bl/ChBC,kB5Bo/CEE,SAAU,SAAkBqB,GAC3B,MAAOA,GAAMxB,S4Bp/ChBG,U5Bs/CEW,UAAW,SAAmBU,GAC7B,MAAOA,G4Br/CVV,a5Bw/CC2J,YAAa,cACTuB,QAAQlS,KAAKmS,SAASC,iBAAiB,eAAgB,SAAUvH,GACnEA,EAAEwH,WAAWC,Y4Bv/ChBzH,K5B0/CE1C,KAAKkG,OAAOjE,S4Bv/Cd,e5B0/CC8D,SACCqE,KAAM,WACLpK,KAAKkG,OAAOjE,S4Bx/Cf,mB5BogDM,SAAUhL,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,GAC7C,IAAI8B,GAAqC1O,EAAgC,GACrEkT,EAAgDlT,EAA2C,IAE3FmT,GADwDnT,EAAoByI,EAAEyK,GACXlT,EAAgE,KACnIoT,EAA2EpT,EAAoByI,EAAE0K,GACjGE,EAAkErT,EAA+D,IACjIsT,EAA0EtT,EAAoByI,EAAE4K,GAChGE,EAA8DvT,EAA2D,KACzHwT,EAAsExT,EAAoByI,EAAE8K,EA4BxFxT,GAA6B,SACzDuP,YACC8B,e6BxmDFkC,EAAArF,E7BymDEwF,Y6BxmDFD,EAAAvF,E7BymDE0E,O6BvmDFS,EAAAnF,GACAW,QAAArO,OAAAoO,UAAA3O,EAAAiJ,EAAAyF,EAAA,IAEA,aACA,aAGA,iB7BmmDC2C,YAAa,W6BlmDd,GAAAlE,GAAAtE,I7BqmDEA,MAAKU,aAAaM,KAAK,WACtBsD,E6BpmDH/B,a7BqmDG+B,EAAMX,KAAOW,EAAM4B,OAAO1G,QAAQiE,aAAaa,E6BpmDlD/L,e7BwmDC4H,SAAUhJ,EAAoBiJ,EAAEyF,EAAqD,IACpF1H,QAAS,SAAiBoB,GACzB,MAAOA,G6BrmDVpB,S7BumDEN,UAAW,SAAmB0B,GAC7B,MAAOA,G6BvmDV1B,W7BymDEtF,WAAY,SAAoBgH,GAC/B,MAAOA,G6BzmDVhH,Y7B2mDEsG,UAAW,SAAmBU,GAC7B,MAAOA,G6B1mDVV,a7B6mDCsC,KAAM,WACL,OACCwC,YAMM,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAOH,SAAU1M,EAAQyB,G8B5sDxBzB,EAAAyB,SAAkBmS,OAASC,IAAA,KAAAC,MAAA,oMAAsNC,OAAUF,IAAA,KAAAC,MAAA,oQAAsRE,OAAUH,IAAA,KAAAC,MAAA,oYAAsZG,QAAWJ,IAAA,KAAAC,MAAA,ogBAAshBI,QAAWL,IAAA,KAAAC,MAAA,owBAAsxBK,QAAWN,IAAA,KAAAC,MAAA,ogCAAshCM,QAAWP,IAAA,KAAAC,MAAA,ogDAAshDO,QAAWR,IAAA,KAAAC,MAAA,sgE9BitDvzJ,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAOH,SAAU9T,EAAQyB,G+BpuDxBzB,EAAAyB,SAAkB6S,QAAA,2GAAAC,cAAA,EAAAC,MAAA,iBAAAC,IAAA,iBAAAC,WAAA,EAAAC,WAAA,oCAAAC,UAAA,YAAAC,oBAAySC,YAAe/S,KAAA,UAAAgT,UAAA,EAAAC,IAAA,iBAAA7N,KAAA,WAAA8N,YAAA,WAAAC,QAAA,QAAAC,SAAA,KAAAC,UAAA,SAAyJC,aAAA,mCAAAC,UAAA,2DAAAC,MAAA,QAAAC,OAAA,wFAAAC,QAAqPtO,KAAA,gBAAAuO,MAAA,qBAAmDC,MAAS1U,IAAA,8CAAmD2U,cAAiBC,QAAA,SAAAC,QAAA,SAAAC,UAAA,SAAAC,YAAA,SAAAC,SAAA,SAAAC,sBAAA,SAAAC,4BAAA,UAAoKC,YAAA,kBAAAC,iBAAoDC,KAAA,SAAAC,UAAA,UAAAC,MAAA,SAAAC,mBAAA,SAAAC,YAAA,SAAAC,wBAAA,SAAAC,qBAAA,SAAAC,uBAAA,SAAAC,uBAAA,SAAAC,kBAAA,SAAAC,SAAA,SAAAC,KAAA,SAAAC,OAAA,SAAAC,MAAA,UAAyUC,OAAA,OAAAC,SAAA,sCAAAC,UAAA,wCAAAC,QAAA,MAAAC,KAAA,kBAAArQ,KAAA,WAAAsQ,YAA+L1V,KAAA,MAAAd,IAAA,iDAAmEyW,SAAYT,KAAA,yEAAAC,OAAA,yEAAAS,KAAA,iCAAAC,KAAA,+BAAAC,KAAA,qDAAAC,QAAA,+BAAoVA,QAAA,U/B8uDr9D,SAAU9X,EAAQyB,GgC7uDxBzB,EAAAyB,SAAkBsW,sBAAA,uChCyvDZ,SAAU/X,EAAQyB,KAWlB,SAAUzB,EAAQyB,KAWlB,SAAUzB,EAAQyB,KAKf,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAOH,SAAUzB,EAAQyB,GiCxyDxBzB,EAAAyB,SAAkBuW,yBAAA,cAAAC,yBAAA,cAAAC,yBAAA,cAAAC,yBAAA,cAAAC,0BAAA,cAAAC,0BAAA,cAAAC,0BAAA,cAAAC,0BAAA,cAAAC,0BAAA,cAAAC,0BAAA,cAAAC,0BAAA,cAAAC,0BAAA,gBjC6yDT,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAOH,SAAU3Y,EAAQyB,EAASvB,GkCt0DjCA,EAAA,IAEA,IAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,SlCo1DM,SAAUzB,EAAQyB,EAASvB,GmCn2DjC,GAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,SnC+2DM,SAAUzB,EAAQyB,EAASvB,GoC13DjC,GAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,SpCs4DM,SAAUzB,EAAQyB,EAASvB,GqCj5DjC,GAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,SrC65DM,SAAUzB,EAAQyB,EAASvB,GsCx6DjC,GAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,StCo7DM,SAAUzB,EAAQyB,EAASvB,GuC/7DjC,GAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,SvC28DM,SAAUzB,EAAQyB,EAASvB,GwCt9DjC,GAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,SxCk+DM,SAAUzB,EAAQyB,EAASvB,GyC7+DjC,GAAA+F,GAAA/F,EAAA,GAEAA,EAAA,KAEAA,EAAA,KAEA,KAEA,KAGAF,GAAAyB,QAAAwE,EAAAxE,SzCy/DM,SAAUzB,EAAQyB,G0CpgExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAC1E,OAAAE,GAAA,OACAE,YAAA,yBACGF,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHG,aACA/R,KAAA,QACAgS,QAAA,UACArM,MAAA8L,EAAA,cACAQ,WAAA,kBAEAtQ,OACA/G,KAAA,WACA8B,GAAA,2BACAwV,mBAAA,iCAEAC,UACAC,QAAAzZ,MAAA0Z,QAAAZ,EAAAlH,eAAAkH,EAAAa,GAAAb,EAAAlH,cAAA,SAAAkH,EAAA,eAEAc,IACAC,IAAA,SAAAC,GACA,GAAAC,GAAAjB,EAAAlH,cACAoI,EAAAF,EAAA1K,OACA6K,IAAAD,EAAAP,OACA,IAAAzZ,MAAA0Z,QAAAK,GAAA,CACA,GAAAG,GAAA,KACAC,EAAArB,EAAAa,GAAAI,EAAAG,EACAF,GAAAP,QACAU,EAAA,IAAArB,EAAAlH,cAAAmI,EAAA9Z,QAAAia,KAEAC,GAAA,IAAArB,EAAAlH,cAAAmI,EAAAK,MAAA,EAAAD,GAAAla,OAAA8Z,EAAAK,MAAAD,EAAA,SAGArB,GAAAlH,cAAAqI,MAIGnB,EAAAuB,GAAA,KAAApB,EAAA,SACHjQ,OACAsR,IAAA,8BAEGxB,EAAAuB,GAAA,4CAAAvB,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,cACAnQ,OACAjF,GAAA,mCAEGkV,EAAA,KAAAH,EAAAuB,GAAA,iEAAAvB,EAAAuB,GAAA,KAAAvB,EAAA,iBAAAG,EAAA,MAAAA,EAAA,MAAAH,EAAAuB,GAAA,6CAAAvB,EAAAuB,GAAA,KAAApB,EAAA,MAAAH,EAAAuB,GAAA,wDAAAvB,EAAAyB,YACFC,qB1C+gEK,SAAUta,EAAQyB,G2C/jExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAC1E,OAAAE,GAAA,OACAjQ,OACAjF,GAAA,0BAEG+U,EAAA,UAAAG,EAAA,OAAAA,EAAA,gBACHjQ,OACA4D,KAAAkM,EAAAlM,KACAxF,QAAA0R,EAAA1R,YAEG,GAAA0R,EAAAyB,KAAAzB,EAAAuB,GAAA,KAAAvB,EAAAhS,UAAAgS,EAAAyB,KAAAtB,EAAA,OAAAA,EAAA,iBAAAH,EAAAuB,GAAA,KAAApB,EAAA,OACHjQ,OACAjF,GAAA,uBAEGkV,EAAA,UACHjQ,OACAhB,QAAA8Q,EAAAhR,UAAAE,QACAD,QAAA+Q,EAAAhR,UAAAC,QACAE,KAAA6Q,EAAAhR,UAAAG,SAEG,MACFuS,qB3C0kEK,SAAUta,EAAQyB,G4C/lExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,cAChD,QAD0EF,EAAAI,MAAAD,IAAAF,GAC1E,SACA/P,OACA/G,KAAA6W,EAAA7W,KACA8B,GAAA+U,EAAAhJ,QAEA8J,IACAa,MAAA,SAAAX,GACAhB,EAAA3I,UAEAuK,OAAA,SAAAZ,GACAhB,EAAA3I,cAICqK,qB5C0mEK,SAAUta,EAAQyB,G6CznExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAC1E,OAAAE,GAAA,OACAjQ,OACAjF,GAAA,6BAEGkV,EAAA,OACHjQ,OACAjF,GAAA,kCAEGkV,EAAA,OACHE,YAAA,0BACGF,EAAA,MACHE,YAAA,8BACGL,EAAA6B,GAAA,GAAA7B,EAAAuB,GAAA,KAAAvB,EAAA,UAAAG,EAAA,MACHE,YAAA,gBACGL,EAAAuB,GAAA,qCAAAvB,EAAAyB,KAAAzB,EAAAuB,GAAA,KAAAvB,EAAAhS,UAEAgS,EAAAyB,KAFAtB,EAAA,MACHE,YAAA,eACGL,EAAAuB,GAAA,yCAAAvB,EAAAuB,GAAA,KAAApB,EAAA,MACHE,YAAA,gBACGF,EAAA,SACHE,YAAA,wBACAnQ,OACA/G,KAAA,SACA+K,MAAA,QAEA4M,IACAgB,MAAA9B,EAAAzF,UAEGyF,EAAAuB,GAAA,KAAApB,EAAA,MACHjQ,OACAjF,GAAA,uBAEGkV,EAAA,UACHjQ,OACAhB,QAAA8Q,EAAAhR,UAAAE,QACAD,QAAA+Q,EAAAhR,UAAAC,QACAE,KAAA6Q,EAAAhR,UAAAG,SAEG,OAAA6Q,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,oBACGF,EAAA,OAAAA,EAAA,QACHjQ,OACA6R,SACAC,gBAAA,MAGG7B,EAAA,OACHjQ,OACA3B,KAAA,aAEG4R,EAAA,oBAAAH,EAAAuB,GAAA,KAAApB,EAAA,OACHjQ,OACA3B,KAAA,mBAEGyR,EAAA,UAAAG,EAAA,OAAAA,EAAA,sBAAAA,EAAA,OAAAH,EAAAuB,GAAA,mFAAAvB,EAAAuB,GAAA,KAAApB,EAAA,OACHjQ,OACA3B,KAAA,cAEG4R,EAAA,YAAAH,EAAAuB,GAAA,KAAApB,EAAA,2BACFuB,iBAAA,WAA+B,GAAA1B,GAAA7P,KAAa8P,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CACvE,OAAAE,GAAA,MACAE,YAAA,wBACGF,EAAA,QACHE,YAAA,uBACGL,EAAAuB,GAAA,uD7CqoEG,SAAUna,EAAQyB,G8CrsExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,cAChD,QAD0EF,EAAAI,MAAAD,IAAAF,GAC1E,SACA/P,OACAsR,IAAAxB,EAAAhJ,QAEA0J,UACAuB,UAAAjC,EAAAkC,GAAAlC,EAAA7I,WAGCuK,qB9CgtEK,SAAUta,EAAQyB,G+CztExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAC1E,OAAAE,GAAA,OAAAA,EAAA,OACAE,YAAA,yBACGF,EAAA,SACHjQ,OACAsR,IAAA,iCAEGxB,EAAAuB,GAAA,+BAAAvB,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,UACHG,aACA/R,KAAA,QACAgS,QAAA,UACArM,MAAA8L,EAAA,SACAQ,WAAA,aAEAtQ,OACAjF,GAAA,+BAEA6V,IACAc,OAAA,SAAAZ,GACA,GAAAmB,GAAAjb,MAAAY,UAAAsa,OAAApa,KAAAgZ,EAAA1K,OAAAyL,QAAA,SAAAM,GACA,MAAAA,GAAAC,WACSC,IAAA,SAAAF,GAET,MADA,UAAAA,KAAAG,OAAAH,EAAAnO,OAGA8L,GAAApH,SAAAoI,EAAA1K,OAAAmM,SAAAN,IAAA,OAGGhC,EAAA,UAAAH,EAAAuB,GAAA,KAAAvB,EAAA0C,GAAA1C,EAAA,eAAAlM,GACH,MAAAqM,GAAA,UACAO,UACAxM,MAAAJ,EAAAC,WAEKiM,EAAAuB,GAAA,eAAAvB,EAAAkC,GAAApO,EAAAvF,MAAA,mBACF,OAAAyR,EAAAuB,GAAA,KAAAvB,EAAA,SAAAG,EAAA,OAAAA,EAAA,gBACHjQ,OACA4D,KAAAkM,EAAAlM,KACAxF,QAAA0R,EAAA1R,YAEG,GAAA0R,EAAAyB,QACFC,qB/CouEK,SAAUta,EAAQyB,GgD9wExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAC1E,OAAAE,GAAA,OACAE,YAAA,yBACGF,EAAA,SACHjQ,OACAsR,IAAAxB,EAAAhJ,QAEA0J,UACAuB,UAAAjC,EAAAkC,GAAAlC,EAAA7I,UAEG6I,EAAAuB,GAAA,KAAApB,EAAA,UACHjQ,OACA/G,KAAA6W,EAAArI,SACAX,OAAAgJ,EAAAhJ,OACA9C,MAAA8L,EAAA9L,MACAR,QAAAsM,EAAAtM,YAEG,IACFgO,qBhDyxEK,SAAUta,EAAQyB,GiD3yExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,cAChD,QAD0EF,EAAAI,MAAAD,IAAAF,GAC1E,KACA/P,OACAyS,KAAA3C,EAAArX,QAAAia,gBACAC,IAAA7C,EAAArX,QAAAma,gBACAxM,OAAA,YAEG0J,EAAAuB,GAAAvB,EAAAkC,GAAAlC,EAAArX,QAAAma,qBACFpB,qBjDszEK,SAAUta,EAAQyB,GkD9zExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAC1E,OAAAE,GAAA,OAAAA,EAAA,OACAE,YAAA,yBACGF,EAAA,OACHjQ,OACA6S,kBAAA,mBACAtC,mBAAA,qBAEGN,EAAA,SACHjQ,OACAsR,IAAA,gCACAvW,GAAA,sBAEG+U,EAAAuB,GAAA,qBAAAvB,EAAAkC,GAAAlC,EAAArX,QAAAqa,kBAAA,oBAAAhD,EAAAuB,GAAA,KAAApB,EAAA,KACHjQ,OACAjF,GAAA,qBAEG+U,EAAAuB,GAAAvB,EAAAkC,GAAAlC,EAAArX,QAAAsa,sBAAAjD,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,UACHG,aACA/R,KAAA,QACAgS,QAAA,UACArM,MAAA8L,EAAA,cACAQ,WAAA,kBAEAtQ,OACAjF,GAAA,iCAEA6V,IACAc,OAAA,SAAAZ,GACA,GAAAmB,GAAAjb,MAAAY,UAAAsa,OAAApa,KAAAgZ,EAAA1K,OAAAyL,QAAA,SAAAM,GACA,MAAAA,GAAAC,WACSC,IAAA,SAAAF,GAET,MADA,UAAAA,KAAAG,OAAAH,EAAAnO,OAGA8L,GAAAhH,cAAAgI,EAAA1K,OAAAmM,SAAAN,IAAA,MAGGnC,EAAA0C,GAAA1C,EAAA,mBAAAkD,GACH,MAAA/C,GAAA,UACAG,aACA/R,KAAA,MACAgS,QAAA,QACArM,MAAAgP,EAAA,OACA1C,WAAA,iBAEAE,UACAxM,MAAAgP,EAAAC,UAEKnD,EAAAuB,GAAA,yBAAAvB,EAAAkC,GAAAgB,EAAA3U,MAAA,kCAEJmT,qBlDy0EK,SAAUta,EAAQyB,GmD93ExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAC1E,OAAAE,GAAA,OACAjQ,OACAjF,GAAA,yBAEGkV,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHjQ,OACAsR,IAAA,uBAEGxB,EAAAuB,GAAA,8BAAAvB,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHG,aACA/R,KAAA,QACAgS,QAAA,UACArM,MAAA8L,EAAA,UACAQ,WAAA,cAEAtQ,OACA/G,KAAA,OACA8B,GAAA,qBAEAyV,UACAxM,MAAA8L,EAAA,WAEAc,IACAc,OAAA5B,EAAA7J,gBACAiN,MAAA,SAAApC,GACAA,EAAA1K,OAAA+M,YACArD,EAAA5P,UAAA4Q,EAAA1K,OAAApC,eAGG8L,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHjQ,OACAsR,IAAA,uBAEGxB,EAAAuB,GAAA,8BAAAvB,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHG,aACA/R,KAAA,QACAgS,QAAA,UACArM,MAAA8L,EAAA,UACAQ,WAAA,cAEAtQ,OACA/G,KAAA,OACA8B,GAAA,qBAEAyV,UACAxM,MAAA8L,EAAA,WAEAc,IACAc,OAAA5B,EAAAzJ,gBACA6M,MAAA,SAAApC,GACAA,EAAA1K,OAAA+M,YACArD,EAAA3P,UAAA2Q,EAAA1K,OAAApC,eAGG8L,EAAAuB,GAAA,KAAAvB,EAAAhS,UAKAgS,EAAAyB,KALAtB,EAAA,KAAAH,EAAAuB,GAAA,6CAAApB,EAAA,KACHjQ,OACAyS,KAAA,+CACArM,OAAA,YAEG0J,EAAAuB,GAAA,8CACFG,qBnDy4EK,SAAUta,EAAQyB,GoD98ExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAC1E,OAAAE,GAAA,OACAE,YAAA,0BACGL,EAAA7Q,MAAA6Q,EAAA/Q,QAAAkR,EAAA,KACHE,YAAA,8BACGL,EAAAuB,GAAA,SAAAvB,EAAAkC,GAAAlC,EAAA9Q,SAAA,UAAA8Q,EAAAyB,KAAAzB,EAAAuB,GAAA,KAAAvB,EAAA7Q,OAAA6Q,EAAA/Q,QAAAkR,EAAA,KACHE,YAAA,8BACGL,EAAAuB,GAAA,SAAAvB,EAAAkC,GAAAlC,EAAA9Q,SAAA,UAAA8Q,EAAAyB,QACFC,qBpDy9EK,SAAUta,EAAQyB,GqDj+ExBzB,EAAAyB,SAAgBmH,OAAA,WAAmB,GAAAgQ,GAAA7P,KAAa8P,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAC1E,OAAAE,GAAA,OAAAA,EAAA,OACAE,YAAA,yBACG,GAAAL,EAAAlM,KAAAwP,WAAAnD,EAAA,SACHjQ,OACAsR,IAAAxB,EAAAhI,mBAEGgI,EAAAuB,GAAA,6DAAApB,EAAA,SACHjQ,OACAsR,IAAAxB,EAAAhI,mBAEGgI,EAAAuB,GAAA,iEAAAvB,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHG,aACA/R,KAAA,QACAgS,QAAA,UACArM,MAAA8L,EAAAlM,KAAA,WACA0M,WAAA,oBAEAtQ,OACA/G,KAAA,WACA8B,GAAA+U,EAAAhI,iBAEA0I,UACAC,QAAAzZ,MAAA0Z,QAAAZ,EAAAlM,KAAAwP,YAAAtD,EAAAa,GAAAb,EAAAlM,KAAAwP,WAAA,SAAAtD,EAAAlM,KAAA,YAEAgN,IACAc,OAAA5B,EAAAzH,gBACAwI,IAAA,SAAAC,GACA,GAAAC,GAAAjB,EAAAlM,KAAAwP,WACApC,EAAAF,EAAA1K,OACA6K,IAAAD,EAAAP,OACA,IAAAzZ,MAAA0Z,QAAAK,GAAA,CACA,GAAAG,GAAA,KACAC,EAAArB,EAAAa,GAAAI,EAAAG,EACAF,GAAAP,QACAU,EAAA,IAAArB,EAAAlM,KAAAwP,WAAArC,EAAA9Z,QAAAia,KAEAC,GAAA,IAAArB,EAAAlM,KAAAwP,WAAArC,EAAAK,MAAA,EAAAD,GAAAla,OAAA8Z,EAAAK,MAAAD,EAAA,SAGArB,GAAAlM,KAAAwP,WAAAnC,UAIGnB,EAAAuB,GAAA,QAAAvB,EAAAlM,KAAAwP,WAAAnD,EAAA,OAAAA,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHjQ,OACAsR,IAAAxB,EAAApI,gBAEGoI,EAAAuB,GAAA,oCAAAvB,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,UACHG,aACA/R,KAAA,QACAgS,QAAA,UACArM,MAAA8L,EAAAlM,KAAA,OACA0M,WAAA,gBAEAtQ,OACAjF,GAAA+U,EAAApI,cAEAkJ,IACAc,QAAA,SAAAZ,GACA,GAAAmB,GAAAjb,MAAAY,UAAAsa,OAAApa,KAAAgZ,EAAA1K,OAAAyL,QAAA,SAAAM,GACA,MAAAA,GAAAC,WACSC,IAAA,SAAAF,GAET,MADA,UAAAA,KAAAG,OAAAH,EAAAnO,OAGA8L,GAAAlM,KAAAyP,OAAAvC,EAAA1K,OAAAmM,SAAAN,IAAA,IACOnC,EAAA7H,iBAEJgI,EAAA,UAAAH,EAAAuB,GAAA,KAAAvB,EAAA0C,GAAA1C,EAAA,iBAAAwD,GACH,MAAArD,GAAA,UACAO,UACAxM,MAAAsP,EAAAvY,MAEK+U,EAAAuB,GAAA,iBAAAvB,EAAAkC,GAAAsB,EAAAjV,MAAA,qBACF,OAAAyR,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHjQ,OACAsR,IAAAxB,EAAAnI,mBAEGmI,EAAAuB,GAAA,kCAAAvB,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,UACHG,aACA/R,KAAA,QACAgS,QAAA,UACArM,MAAA8L,EAAAlM,KAAA,WACA0M,WAAA,oBAEAtQ,OACAjF,GAAA+U,EAAAnI,iBAEAiJ,IACAc,QAAA,SAAAZ,GACA,GAAAmB,GAAAjb,MAAAY,UAAAsa,OAAApa,KAAAgZ,EAAA1K,OAAAyL,QAAA,SAAAM,GACA,MAAAA,GAAAC,WACSC,IAAA,SAAAF,GAET,MADA,UAAAA,KAAAG,OAAAH,EAAAnO,OAGA8L,GAAAlM,KAAA2P,WAAAzC,EAAA1K,OAAAmM,SAAAN,IAAA,IACOnC,EAAA5H,oBAEJ+H,EAAA,UAAAH,EAAAuB,GAAA,KAAAvB,EAAA0C,GAAA1C,EAAA,iBAAAwD,GACH,MAAArD,GAAA,UACAO,UACAxM,MAAAsP,EAAAvY,MAEK+U,EAAAuB,GAAA,mBAAAvB,EAAAkC,GAAAsB,EAAAjV,MAAA,uBACF,OAAAyR,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHjQ,OACAsR,IAAAxB,EAAAlI,mBAEGkI,EAAAuB,GAAA,iDAAAvB,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHG,aACA/R,KAAA,QACAgS,QAAA,UACArM,MAAA8L,EAAAlM,KAAA,WACA0M,WAAA,oBAEAtQ,OACA/G,KAAA,WACA8B,GAAA+U,EAAAlI,iBAEA4I,UACAC,QAAAzZ,MAAA0Z,QAAAZ,EAAAlM,KAAA4P,YAAA1D,EAAAa,GAAAb,EAAAlM,KAAA4P,WAAA,SAAA1D,EAAAlM,KAAA,YAEAgN,IACAc,OAAA5B,EAAA3H,gBACA0I,IAAA,SAAAC,GACA,GAAAC,GAAAjB,EAAAlM,KAAA4P,WACAxC,EAAAF,EAAA1K,OACA6K,IAAAD,EAAAP,OACA,IAAAzZ,MAAA0Z,QAAAK,GAAA,CACA,GAAAG,GAAA,KACAC,EAAArB,EAAAa,GAAAI,EAAAG,EACAF,GAAAP,QACAU,EAAA,IAAArB,EAAAlM,KAAA4P,WAAAzC,EAAA9Z,QAAAia,KAEAC,GAAA,IAAArB,EAAAlM,KAAA4P,WAAAzC,EAAAK,MAAA,EAAAD,GAAAla,OAAA8Z,EAAAK,MAAAD,EAAA,SAGArB,GAAAlM,KAAA4P,WAAAvC,UAIGnB,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHjQ,OACAsR,IAAAxB,EAAAlI,mBAEGkI,EAAAuB,GAAA,oCAAAvB,EAAAuB,GAAA,KAAApB,EAAA,OACHE,YAAA,yBACGF,EAAA,SACHG,aACA/R,KAAA,QACAgS,QAAA,UACArM,MAAA8L,EAAAlM,KAAA,SACA0M,WAAA,kBAEAtQ,OACA/G,KAAA,WACA8B,GAAA+U,EAAAlI,iBAEA4I,UACAC,QAAAzZ,MAAA0Z,QAAAZ,EAAAlM,KAAA6P,UAAA3D,EAAAa,GAAAb,EAAAlM,KAAA6P,SAAA,SAAA3D,EAAAlM,KAAA,UAEAgN,IACAc,OAAA5B,EAAA1H,cACAyI,IAAA,SAAAC,GACA,GAAAC,GAAAjB,EAAAlM,KAAA6P,SACAzC,EAAAF,EAAA1K,OACA6K,IAAAD,EAAAP,OACA,IAAAzZ,MAAA0Z,QAAAK,GAAA,CACA,GAAAG,GAAA,KACAC,EAAArB,EAAAa,GAAAI,EAAAG,EACAF,GAAAP,QACAU,EAAA,IAAArB,EAAAlM,KAAA6P,SAAA1C,EAAA9Z,QAAAia,KAEAC,GAAA,IAAArB,EAAAlM,KAAA6P,SAAA1C,EAAAK,MAAA,EAAAD,GAAAla,OAAA8Z,EAAAK,MAAAD,EAAA,SAGArB,GAAAlM,KAAA6P,SAAAxC,YAIGnB,EAAAyB,QACFC,qBrDs+EQ,CACA,CAOH,SAAUta,EAAQyB,KAWlB,SAAUzB,EAAQyB,KAWlB,SAAUzB,EAAQyB,KAWlB,SAAUzB,EAAQC,EAAqBC,GAE7C,YACAO,QAAOkO,eAAe1O,EAAqB,cAAgB6M,OAAO,GAC7C,IAAI5G,GAAoChG,EAA+B,IACnEsc,EAAuCtc,EAAmC,IAC1Euc,EAAoDvc,EAAgD,IACpGwc,EAA4Dxc,EAAoByI,EAAE8T,GAClFE,EAAmDzc,EAA8C,IAEjG0c,GAD2D1c,EAAoByI,EAAEgU,GAClCzc,EAA2C,KAC1F2c,EAAuD3c,EAAoByI,EAAEiU,EsDttFtG,ItDutFiC1c,EAAoBC,EAAEF,EAAqB,QAAS,WAAa,MAAOuc,GAAwC,IsD5tFjJtW,EAAA,EAAI4W,UAAU,OAAQH,EAAA,MACtBzW,EAAA,EAAI4W,UAAU,MAAOH,EAAA,KAIjB5J,SAASgK,eAAgB,cAC5B,CAAwB,GAAI7W,GAAA,GAC3B8W,GAAI,cACJ/U,MAAAuU,EAAA,EACAhN,YACC1I,SAAY4V,EAAAvO,GAEbvF,OAN+B,SAMxBC,GACN,MAAOA,GACN,OAECC,OACCjF,GAAI,qBAILgF,EAAG,iBAWR,GAAIkK,SAASgK,eAAgB,kBAC5B,CAAe,GAAI7W,GAAA,GAClB8W,GAAI,kBACJ/U,MAAAuU,EAAA,EACAhN,YACC1I,SAAY+V,EAAA1O,GAEbvF,OANsB,SAMfC,GACN,MAAOA,GACN,OAECC,OACCjF,GAAI,yBAILgF,EAAG,sBtD+tFJ","file":"client.ca043aad.js","sourcesContent":["webpackJsonp([1,2],Array(28).concat([\n/* 28 */\n/* exports provided: isObject, hasProp, objHasProp, findForm, findFormOffset */\n/* exports used: objHasProp */\n/*!************************************!*\\\n !*** ./client/store/util/utils.js ***!\n \\************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export isObject */\n/* unused harmony export hasProp */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return objHasProp; });\n/* unused harmony export findForm */\n/* unused harmony export findFormOffset */\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar isObject = function isObject(value) {\n\t/**@TODO npm in just this function from lodash, beacuse the fact that I copypasted 3 lines of code is THE WORST THING EVER! https://github.com/lodash/lodash/blob/master/isObject.js **/\n\tvar type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\treturn value != null && (type == 'object' || type == 'function');\n\t//Look - I added semicolons\n};\n\nvar hasProp = function hasProp(maybeObj, prop) {\n\treturn isObject(maybeObj) && objHasProp(maybeObj, prop);\n};\n\nvar objHasProp = function objHasProp(obj, prop) {\n\treturn Object.prototype.hasOwnProperty.call(obj, prop);\n};\n\nvar findForm = function findForm(state, formId) {\n\treturn state.forms.find(function (form) {\n\t\treturn form.form_id === formId;\n\t});\n};\n\nvar findFormOffset = function findFormOffset(state, formId) {\n\treturn state.forms.findIndex(function (form) {\n\t\treturn form.form_id === formId;\n\t});\n};\n\n/***/ }),\n/* 29 */\n/* exports provided: default */\n/* exports used: default */\n/*!***************************************!*\\\n !*** ./client/store/util/wpConfig.js ***!\n \\***************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = {\n\t/**\n * The URL for local site API\n *\n * @since 0.0.1\n *\n * @type {string}\n */\n\tlocalApiURL: CF_PRO_ADMIN.api.cf.url,\n\n\t/**\n * The nonce for local site API\n *\n * @since 0.0.1\n *\n * @type {string}\n */\n\tlocalApiNonce: CF_PRO_ADMIN.api.cf.nonce,\n\n\t/**\n * The URL for remote app API\n *\n * @since 0.0.1\n *\n * @type {string}\n */\n\tappURL: CF_PRO_ADMIN.api.cfPro.url,\n\n\t/**\n * The ID of the form whose edit screen we are on\n *\n * @since 1.0.0\n *\n * @type {string}\n */\n\tformScreen: CF_PRO_ADMIN.formScreen,\n\n\t/**\n * Translation and other strings.\n *\n * Created by \"strings\" index of generated in calderawp\\calderaforms\\pro\\admin\\scripts::data()\n *\n * @since 1.0.0\n *\n * @type {Object}\n */\n\tstrings: CF_PRO_ADMIN.strings,\n\n\t/**\n * Levels of Monolog logs\n *\n * Created by \"logLevels\" index of generated in calderawp\\calderaforms\\pro\\admin\\scripts::data()\n *\n * @since 1.5.9\n *\n * @type array\n */\n\tlogLevels: CF_PRO_ADMIN.logLevels\n\n};\n\n/***/ }),\n/* 30 */,\n/* 31 */,\n/* 32 */,\n/* 33 */,\n/* 34 */,\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */,\n/* 41 */,\n/* 42 */,\n/* 43 */,\n/* 44 */,\n/* 45 */,\n/* 46 */,\n/* 47 */,\n/* 48 */,\n/* 49 */,\n/* 50 */,\n/* 51 */,\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */,\n/* 56 */\n/* unknown exports provided */\n/* all exports used */\n/*!******************************************!*\\\n !*** ./~/browserify-aes/modes/list.json ***!\n \\******************************************/\n/***/ (function(module, exports) {\n\nmodule.exports = {\"aes-128-ecb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-192-ecb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-256-ecb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-128-cbc\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-192-cbc\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-256-cbc\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes128\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes192\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes256\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-128-cfb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-192-cfb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-256-cfb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-128-cfb8\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-192-cfb8\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-256-cfb8\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-128-cfb1\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-192-cfb1\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-256-cfb1\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-128-ofb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-192-ofb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-256-ofb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-128-ctr\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-192-ctr\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-256-ctr\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-128-gcm\":{\"cipher\":\"AES\",\"key\":128,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"},\"aes-192-gcm\":{\"cipher\":\"AES\",\"key\":192,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"},\"aes-256-gcm\":{\"cipher\":\"AES\",\"key\":256,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"}}\n\n/***/ }),\n/* 57 */,\n/* 58 */\n/* unknown exports provided */\n/* all exports used */\n/*!***************************************************!*\\\n !*** ./~/browserify-sign/browser/algorithms.json ***!\n \\***************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports = {\"sha224WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha224\",\"id\":\"302d300d06096086480165030402040500041c\"},\"RSA-SHA224\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha224\",\"id\":\"302d300d06096086480165030402040500041c\"},\"sha256WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha256\",\"id\":\"3031300d060960864801650304020105000420\"},\"RSA-SHA256\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha256\",\"id\":\"3031300d060960864801650304020105000420\"},\"sha384WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha384\",\"id\":\"3041300d060960864801650304020205000430\"},\"RSA-SHA384\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha384\",\"id\":\"3041300d060960864801650304020205000430\"},\"sha512WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha512\",\"id\":\"3051300d060960864801650304020305000440\"},\"RSA-SHA512\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha512\",\"id\":\"3051300d060960864801650304020305000440\"},\"RSA-SHA1\":{\"sign\":\"rsa\",\"hash\":\"sha1\",\"id\":\"3021300906052b0e03021a05000414\"},\"ecdsa-with-SHA1\":{\"sign\":\"ecdsa\",\"hash\":\"sha1\",\"id\":\"\"},\"sha256\":{\"sign\":\"ecdsa\",\"hash\":\"sha256\",\"id\":\"\"},\"sha224\":{\"sign\":\"ecdsa\",\"hash\":\"sha224\",\"id\":\"\"},\"sha384\":{\"sign\":\"ecdsa\",\"hash\":\"sha384\",\"id\":\"\"},\"sha512\":{\"sign\":\"ecdsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-SHA\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA-SHA1\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA-WITH-SHA224\":{\"sign\":\"dsa\",\"hash\":\"sha224\",\"id\":\"\"},\"DSA-SHA224\":{\"sign\":\"dsa\",\"hash\":\"sha224\",\"id\":\"\"},\"DSA-WITH-SHA256\":{\"sign\":\"dsa\",\"hash\":\"sha256\",\"id\":\"\"},\"DSA-SHA256\":{\"sign\":\"dsa\",\"hash\":\"sha256\",\"id\":\"\"},\"DSA-WITH-SHA384\":{\"sign\":\"dsa\",\"hash\":\"sha384\",\"id\":\"\"},\"DSA-SHA384\":{\"sign\":\"dsa\",\"hash\":\"sha384\",\"id\":\"\"},\"DSA-WITH-SHA512\":{\"sign\":\"dsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-SHA512\":{\"sign\":\"dsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-RIPEMD160\":{\"sign\":\"dsa\",\"hash\":\"rmd160\",\"id\":\"\"},\"ripemd160WithRSA\":{\"sign\":\"rsa\",\"hash\":\"rmd160\",\"id\":\"3021300906052b2403020105000414\"},\"RSA-RIPEMD160\":{\"sign\":\"rsa\",\"hash\":\"rmd160\",\"id\":\"3021300906052b2403020105000414\"},\"md5WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"md5\",\"id\":\"3020300c06082a864886f70d020505000410\"},\"RSA-MD5\":{\"sign\":\"rsa\",\"hash\":\"md5\",\"id\":\"3020300c06082a864886f70d020505000410\"}}\n\n/***/ }),\n/* 59 */\n/* unknown exports provided */\n/* all exports used */\n/*!***********************************************!*\\\n !*** ./~/browserify-sign/browser/curves.json ***!\n \\***********************************************/\n/***/ (function(module, exports) {\n\nmodule.exports = {\"1.3.132.0.10\":\"secp256k1\",\"1.3.132.0.33\":\"p224\",\"1.2.840.10045.3.1.1\":\"p192\",\"1.2.840.10045.3.1.7\":\"p256\",\"1.3.132.0.34\":\"p384\",\"1.3.132.0.35\":\"p521\"}\n\n/***/ }),\n/* 60 */,\n/* 61 */,\n/* 62 */,\n/* 63 */,\n/* 64 */,\n/* 65 */,\n/* 66 */,\n/* 67 */,\n/* 68 */,\n/* 69 */,\n/* 70 */,\n/* 71 */,\n/* 72 */,\n/* 73 */,\n/* 74 */,\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */\n/* unknown exports provided */\n/* exports used: default */\n/*!******************************************************!*\\\n !*** ./client/components/Elements/Status/Status.vue ***!\n \\******************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(/*! !../../../../~/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"remove\":true}!vue-style-loader!css-loader?sourceMap&-autoprefixer!../../../../~/vue-loader/lib/style-compiler/index?{\"id\":\"data-v-b2ae9c58\",\"scoped\":false,\"hasInlineConfig\":false}!../../../../~/vue-loader/lib/selector?type=styles&index=0!./Status.vue */ 180)\n\nvar Component = __webpack_require__(/*! ../../../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../../../~/vue-loader/lib/selector?type=script&index=0!./Status.vue */ 126),\n /* template */\n __webpack_require__(/*! !../../../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-b2ae9c58\"}!../../../../~/vue-loader/lib/selector?type=template&index=0!./Status.vue */ 234),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 84 */\n/* unknown exports provided */\n/* exports used: default */\n/*!*************************************************!*\\\n !*** ./client/components/FormSettings/Form.vue ***!\n \\*************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(/*! ../../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../../~/vue-loader/lib/selector?type=script&index=0!./Form.vue */ 127),\n /* template */\n __webpack_require__(/*! !../../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-d44e4582\"}!../../../~/vue-loader/lib/selector?type=template&index=0!./Form.vue */ 235),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 85 */\n/* exports provided: default */\n/* exports used: default */\n/*!*******************************!*\\\n !*** ./client/store/index.js ***!\n \\*******************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(/*! vue */ 43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__(/*! vuex */ 5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_wpConfig__ = __webpack_require__(/*! ./util/wpConfig */ 29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mutations__ = __webpack_require__(/*! ./mutations */ 118);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__actions__ = __webpack_require__(/*! ./actions */ 116);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__getters__ = __webpack_require__(/*! ./getters */ 117);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__plugins__ = __webpack_require__(/*! ./plugins */ 119);\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].use(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"e\" /* default */]);\n\n\n\nvar STATE = {\n\tloading: false,\n\tconnected: false,\n\tforms: [],\n\tsettings: {\n\t\tenhancedDelivery: false,\n\t\tgeneratePDFs: false,\n\t\tlogLevel: 250\n\t},\n\tlayouts: [{ name: '' }],\n\taccount: {\n\t\tplan: String,\n\t\tid: Number,\n\t\tapiKeys: {\n\t\t\tpublic: String,\n\t\t\tsecret: String,\n\t\t\ttoken: String\n\t\t}\n\t},\n\tstrings: __WEBPACK_IMPORTED_MODULE_2__util_wpConfig__[\"a\" /* default */].strings,\n\tmainAlert: {\n\t\tsuccess: false,\n\t\tmessage: '',\n\t\tshow: false\n\t},\n\tlogLevels: __WEBPACK_IMPORTED_MODULE_2__util_wpConfig__[\"a\" /* default */].logLevels\n};\n\n\n\n\n\n\n\n\n\nvar PLUGINS = [__WEBPACK_IMPORTED_MODULE_6__plugins__[\"a\" /* accountSaver */], __WEBPACK_IMPORTED_MODULE_6__plugins__[\"b\" /* formSaver */]];\n\nvar store = new __WEBPACK_IMPORTED_MODULE_1_vuex__[\"e\" /* default */].Store({\n\tstrict: false,\n\tplugins: PLUGINS,\n\tmodules: {},\n\tstate: STATE,\n\tgetters: __WEBPACK_IMPORTED_MODULE_5__getters__[\"a\" /* GETTERS */],\n\tmutations: __WEBPACK_IMPORTED_MODULE_3__mutations__[\"a\" /* MUTATIONS */],\n\tactions: __WEBPACK_IMPORTED_MODULE_4__actions__[\"a\" /* ACTIONS */]\n});\n\n/* harmony default export */ __webpack_exports__[\"a\"] = store;\n\n/***/ }),\n/* 86 */\n/* unknown exports provided */\n/* exports used: default */\n/*!***********************************!*\\\n !*** ./client/views/Settings.vue ***!\n \\***********************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(/*! !../../~/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"remove\":true}!vue-style-loader!css-loader?sourceMap&-autoprefixer!../../~/vue-loader/lib/style-compiler/index?{\"id\":\"data-v-16fab070\",\"scoped\":false,\"hasInlineConfig\":false}!../../~/vue-loader/lib/selector?type=styles&index=0!./Settings.vue */ 178)\n\nvar Component = __webpack_require__(/*! ../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../~/vue-loader/lib/selector?type=script&index=0!./Settings.vue */ 132),\n /* template */\n __webpack_require__(/*! !../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-16fab070\"}!../../~/vue-loader/lib/selector?type=template&index=0!./Settings.vue */ 227),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 87 */\n/* unknown exports provided */\n/* exports used: default */\n/*!******************************!*\\\n !*** ./client/views/Tab.vue ***!\n \\******************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(/*! ../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../~/vue-loader/lib/selector?type=script&index=0!./Tab.vue */ 133),\n /* template */\n __webpack_require__(/*! !../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-0b88b150\"}!../../~/vue-loader/lib/selector?type=template&index=0!./Tab.vue */ 225),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 88 */,\n/* 89 */,\n/* 90 */,\n/* 91 */,\n/* 92 */,\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */,\n/* 98 */,\n/* 99 */,\n/* 100 */,\n/* 101 */,\n/* 102 */,\n/* 103 */,\n/* 104 */,\n/* 105 */,\n/* 106 */,\n/* 107 */,\n/* 108 */,\n/* 109 */,\n/* 110 */,\n/* 111 */,\n/* 112 */,\n/* 113 */,\n/* 114 */,\n/* 115 */\n/* exports provided: default */\n/* exports used: default */\n/*!**********************************************!*\\\n !*** ./client/components/Account/display.js ***!\n \\**********************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_css__ = __webpack_require__(/*! ./style.css */ 177);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__style_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__style_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__(/*! vuex */ 5);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = {\n render: function render(h) {\n return h(\n 'div',\n {\n attrs: { id: 'cf-pro-account' }\n },\n [h(\n 'ul',\n null,\n [h(\n 'li',\n null,\n ['Public Key ', this.publicKey]\n ), h(\n 'li',\n null,\n ['Secret Key ', this.secretKey]\n ), h(\n 'li',\n null,\n ['Token ', this.token]\n )]\n )]\n );\n },\n\n computed: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"b\" /* mapState */])({\n token: function token(state) {\n return state.account.apiKeys.token;\n },\n publicKey: function publicKey(state) {\n return state.account.apiKeys.public;\n },\n secretKey: function secretKey(state) {\n return state.account.apiKeys.secret;\n }\n })\n\n};\n\n/***/ }),\n/* 116 */\n/* exports provided: ACTIONS */\n/* exports used: ACTIONS */\n/*!*********************************!*\\\n !*** ./client/store/actions.js ***!\n \\*********************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_API__ = __webpack_require__(/*! ./util/API */ 120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util_urlString__ = __webpack_require__(/*! ./util/urlString */ 121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__util_wpConfig__ = __webpack_require__(/*! ./util/wpConfig */ 29);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ACTIONS; });\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\n\n\nvar ACTIONS = {\n\tgetAccount: function getAccount(context) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\t__WEBPACK_IMPORTED_MODULE_0__util_API__[\"a\" /* localAPI */].get().then(function (response) {\n\t\t\t\tvar r;\n\t\t\t\tif ('string' == typeof response.data) {\n\t\t\t\t\tvar maybe = JSON.parse(response.data);\n\t\t\t\t\tif ('object' === (typeof maybe === 'undefined' ? 'undefined' : _typeof(maybe))) {\n\t\t\t\t\t\tr = maybe;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new Exception();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tr = response.data;\n\t\t\t\t}\n\t\t\t\tcontext.commit('forms', r.forms);\n\t\t\t\tcontext.commit('apiKeys', r.apiKeys);\n\t\t\t\tcontext.commit('accountId', r.account_id);\n\t\t\t\tcontext.commit('plan', r.plan);\n\t\t\t\tcontext.commit('logLevel', r.logLevel);\n\t\t\t\tcontext.commit('enhancedDelivery', r.enhancedDelivery);\n\t\t\t\tcontext.commit('formScreen', r.hasOwnProperty('formScreen') ? r.formScreen : __WEBPACK_IMPORTED_MODULE_2__util_wpConfig__[\"a\" /* default */].formScreen);\n\t\t\t\tresolve(response);\n\t\t\t}, function (error) {\n\t\t\t\treject(error);\n\t\t\t});\n\t\t});\n\t},\n\tsaveAccount: function saveAccount(context) {\n\t\tvar key = context.state.account.apiKeys.public;\n\t\tif (key && 'string' === typeof key) {\n\t\t\tkey = key.trim();\n\t\t}\n\t\tvar secret = context.state.account.apiKeys.secret;\n\t\tif (secret && 'string' === typeof secret) {\n\t\t\tsecret = secret.trim();\n\t\t}\n\n\t\treturn __WEBPACK_IMPORTED_MODULE_0__util_API__[\"a\" /* localAPI */].post('', {\n\t\t\taccountId: context.state.account.id,\n\t\t\tapiKey: key,\n\t\t\tapiSecret: secret,\n\t\t\tenhancedDelivery: context.state.settings.enhancedDelivery,\n\t\t\tplan: context.state.account.plan,\n\t\t\tforms: context.state.forms,\n\t\t\tlogLevel: context.state.settings.logLevel\n\t\t}).then(function (r) {\n\t\t\tif (r.data.hasOwnProperty('_cfAlertMessage')) {\n\t\t\t\tcontext.dispatch('updateMainAlert', _cfAlertMessage);\n\t\t\t} else {\n\t\t\t\tcontext.dispatch('updateMainAlert', {\n\t\t\t\t\tmessage: context.state.strings.saved,\n\t\t\t\t\tshow: true,\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tfade: 1500\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t},\n\ttestConnection: function testConnection(_ref) {\n\t\tvar commit = _ref.commit,\n\t\t state = _ref.state;\n\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tif (state.account.apiKeys.public && state.account.apiKeys.secret) {\n\t\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__util_API__[\"b\" /* appAPI */].get(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_urlString__[\"a\" /* urlString */])({\n\t\t\t\t\tpublic: state.account.apiKeys.public,\n\t\t\t\t\ttoken: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__util_API__[\"c\" /* appToken */])(state.account.apiKeys)\n\t\t\t\t}, '/account/verify')).then(function (r) {\n\t\t\t\t\tstate.account.plan = r.plan;\n\t\t\t\t\tstate.account.id = r.id;\n\t\t\t\t\tstate.connected = true;\n\t\t\t\t\tcommit('connected', true);\n\t\t\t\t\tresolve(r);\n\t\t\t\t}, function (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treject('Not Connected');\n\t\t\t}\n\t\t});\n\t},\n\tgetLayouts: function getLayouts(_ref2) {\n\t\tvar commit = _ref2.commit,\n\t\t state = _ref2.state;\n\n\t\tif (state.connected) {\n\t\t\treturn __WEBPACK_IMPORTED_MODULE_0__util_API__[\"b\" /* appAPI */].get(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util_urlString__[\"a\" /* urlString */])({\n\t\t\t\tsimple: true,\n\t\t\t\tpublic: state.account.apiKeys.public,\n\t\t\t\ttoken: state.account.apiKeys.token\n\t\t\t}, '/layouts/list')).then(function (r) {\n\t\t\t\tcommit('layouts', r.data);\n\t\t\t}, function (e) {\n\t\t\t\tconsole.log(e);\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n * Set the main alert -- status.\n *\n * Using this over mutation mainAlert, which this uses, is you can send a number of milliseconds in alert.fade and it will removed in that number of milliseconds\n *\n * @since 1.0.0\n *\n * @param {*} context\n * @param {Object} alert Commit payload\n */\n\tupdateMainAlert: function updateMainAlert(context, alert) {\n\t\tvar fade = alert.hasOwnProperty('fade') && !isNaN(alert.fade) ? alert.fade : 0;\n\t\tif (fade) {\n\t\t\t//OMG(s) window scope.\n\t\t\twindow.setTimeout(function () {\n\t\t\t\tcontext.dispatch('closeMainAlert');\n\t\t\t}, fade);\n\t\t}\n\t\tcontext.commit('mainAlert', alert);\n\t},\n\n\t/**\n * Make mainAlert clode\n *\n * @since 1.0.0\n *\n * @param context\n */\n\tcloseMainAlert: function closeMainAlert(context) {\n\t\tcontext.dispatch('updateMainAlert', {\n\t\t\tshow: false\n\t\t});\n\t}\n};\n\n/***/ }),\n/* 117 */\n/* exports provided: GETTERS */\n/* exports used: GETTERS */\n/*!*********************************!*\\\n !*** ./client/store/getters.js ***!\n \\*********************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__util_utils__ = __webpack_require__(/*! ./util/utils */ 28);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return GETTERS; });\n\n\nvar GETTERS = {\n\tpublicKey: function publicKey(state) {\n\t\treturn state.account.apiKeys.public;\n\t},\n\tsecretKey: function secretKey(state) {\n\t\treturn state.account.apiKeys.secret;\n\t},\n\tapiKeys: function apiKeys(state) {\n\t\treturn state.account.apiKeys;\n\t},\n\thi: function hi(state) {\n\t\treturn 'Roy';\n\t},\n\tgetSetting: function getSetting(state) {\n\t\treturn function (setting, _default) {\n\t\t\tif (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__util_utils__[\"a\" /* objHasProp */])(state.settings, setting)) {\n\t\t\t\treturn state.settings[setting];\n\t\t\t}\n\t\t\treturn _default;\n\t\t};\n\t},\n\tgetFormsById: function getFormsById(state, getters) {\n\t\treturn function (id) {\n\t\t\treturn state.forms.find(function (form) {\n\t\t\t\treturn form.form_id === id;\n\t\t\t});\n\t\t};\n\t},\n\n\tenhancedDelivery: function enhancedDelivery(state) {\n\t\treturn state.settings.enhancedDelivery;\n\t},\n\tlogLevels: function logLevels(state) {\n\t\treturn state.logLevels;\n\t},\n\tlogLevel: function logLevel(state) {\n\t\treturn state.settings.logLevel;\n\t},\n\tconnected: function connected(state) {\n\t\treturn state.connected;\n\t},\n\tformScreen: function formScreen(state) {\n\t\treturn state.formScreen;\n\t},\n\tstrings: function strings(state) {\n\t\treturn state.strings;\n\t},\n\tmainAlert: function mainAlert(state) {\n\t\treturn state.mainAlert;\n\t}\n};\n\n/***/ }),\n/* 118 */\n/* exports provided: MUTATIONS */\n/* exports used: MUTATIONS */\n/*!***********************************!*\\\n !*** ./client/store/mutations.js ***!\n \\***********************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isboolean__ = __webpack_require__(/*! lodash.isboolean */ 192);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_isboolean___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_isboolean__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return MUTATIONS; });\n\nvar MUTATIONS = {\n\tpublicKey: function publicKey(state, value) {\n\t\tstate.account.apiKeys.public = value;\n\t},\n\tsecretKey: function secretKey(state, value) {\n\t\tstate.account.apiKeys.secret = value;\n\t},\n\tapiKeys: function apiKeys(state, obj) {\n\t\tstate.account.apiKeys.public = obj.public;\n\t\tstate.account.apiKeys.secret = obj.secret;\n\t\tstate.account.apiKeys.token = obj.token;\n\t},\n\taccountId: function accountId(state, value) {\n\t\tstate.account.id = value;\n\t},\n\tplan: function plan(state, value) {\n\t\tstate.account.plan = value;\n\t},\n\tloading: function loading(state) {\n\t\tstate.loading = !state.loading;\n\t},\n\tforms: function forms(state, value) {\n\t\tstate.forms = value;\n\t},\n\tlogLevels: function logLevels(state, value) {\n\t\tstate.logLevels = value;\n\t},\n\tconnected: function connected(state, value) {\n\t\tstate.connected = value;\n\t},\n\tlayouts: function layouts(state, value) {\n\t\tstate.layouts = value;\n\t},\n\tform: function form(state, value) {\n\t\tvar index = state.forms.findIndex(function (form) {\n\t\t\treturn form.form_id === value.form_id;\n\t\t});\n\t\tif (-1 < index) {\n\t\t\tstate.forms[index] = value;\n\t\t}\n\t},\n\tlogLevel: function logLevel(state, value) {\n\t\tstate.settings.logLevel = value;\n\t},\n\tenhancedDelivery: function enhancedDelivery(state, value) {\n\t\tif ('on' == value) {\n\t\t\tvalue = true;\n\t\t}\n\t\tstate.settings.enhancedDelivery = value;\n\t},\n\tformScreen: function formScreen(state, value) {\n\t\tstate.formScreen = value;\n\t},\n\n\t/**\n * Change the main alert\n *\n * @since 1.0.0\n *\n * @param {Object} state\n * @param {Object} value Value to set. success - boolean. show -- boolean. message -- string\n */\n\tmainAlert: function mainAlert(state, value) {\n\t\tstate.mainAlert = {\n\t\t\tsuccess: value.hasOwnProperty('success') ? value.success : false,\n\t\t\tmessage: value.hasOwnProperty('message') ? value.message : '',\n\t\t\tshow: value.hasOwnProperty('show') ? value.show : false\n\t\t};\n\t\t//Notice, this doesn't except fade, fade isn't tracked. You want to set a fade time? Use updateMainAlert action!\n\t}\n};\n\n/***/ }),\n/* 119 */\n/* exports provided: accountSaver, formSaver */\n/* exports used: accountSaver, formSaver */\n/*!*********************************!*\\\n !*** ./client/store/plugins.js ***!\n \\*********************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_debounce__ = __webpack_require__(/*! lodash.debounce */ 67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_debounce__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return accountSaver; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return formSaver; });\nvar _this = this;\n\n\nvar accountSaver = function accountSaver(store) {\n\tstore.subscribe(function (mutation, state) {\n\t\tvar type = mutation.type;\n\t\tswitch (type) {\n\t\t\tcase 'apiKeys':\n\t\t\tcase 'secretKey':\n\t\t\tcase 'publicKey':\n\t\t\t\tconsole.log(state.connected, state.account.apiKeys.secret, state.account.apiKeys.public);\n\n\t\t\t\tif (!state.connected && state.account.apiKeys.secret && state.account.apiKeys.public) {\n\t\t\t\t\tconsole.log(state.connected, state.account.apiKeys.secret, state.account.apiKeys.public);\n\n\t\t\t\t\tstore.dispatch('testConnection');\n\t\t\t\t\tstore.dispatch('getLayouts');\n\t\t\t\t} else if (!state.account.apiKeys.public || !state.account.apiKeys.secret) {\n\t\t\t\t\tstore.commit('connected', 0);\n\t\t\t\t} else {\n\t\t\t\t\tstore.commit('connected', 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'connected':\n\t\t\t\tif (state.connected) {\n\t\t\t\t\tstore.dispatch('getLayouts');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t});\n};\n\n/**\n * Plugin to save account when form settings are changed\n *\n * @since 1.0.0\n *\n * @param {Object} store\n */\nvar formSaver = function formSaver(store) {\n\t/**\n * Debounced version of saveAccount() mutation\n * @since 1.0.0\n *\n * @type {Function}\n */\n\t_this.debounedFormMutation = __WEBPACK_IMPORTED_MODULE_0_lodash_debounce___default()(function () {\n\t\tstore.dispatch('saveAccount');\n\t}, 100);\n\n\t/**\n * When form setting is mutated trigger update\n *\n * @since 1.0.0\n */\n\tstore.subscribe(function (mutation, state) {\n\t\tif ('form' === mutation.type) {\n\t\t\t_this.debounedFormMutation();\n\t\t}\n\t});\n};\n\n/***/ }),\n/* 120 */\n/* exports provided: localAPI, appAPI, appToken */\n/* exports used: localAPI, appAPI, appToken */\n/*!**********************************!*\\\n !*** ./client/store/util/API.js ***!\n \\**********************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_axios__ = __webpack_require__(/*! axios */ 97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_axios___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_axios__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__wpConfig__ = __webpack_require__(/*! ./wpConfig */ 29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_locutus_php_strings_sha1__ = __webpack_require__(/*! locutus/php/strings/sha1 */ 191);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_locutus_php_strings_sha1___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_locutus_php_strings_sha1__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils__ = __webpack_require__(/*! ./utils */ 28);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return localAPI; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return appAPI; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return appToken; });\n\n\n\n\n\nvar timeout = 30000;\nvar localAPI = __WEBPACK_IMPORTED_MODULE_0_axios___default.a.create({\n\tbaseURL: __WEBPACK_IMPORTED_MODULE_1__wpConfig__[\"a\" /* default */].localApiURL,\n\ttimeout: timeout,\n\theaders: { 'X-WP-Nonce': __WEBPACK_IMPORTED_MODULE_1__wpConfig__[\"a\" /* default */].localApiNonce }\n});\n\nvar appAPI = __WEBPACK_IMPORTED_MODULE_0_axios___default.a.create({\n\tbaseURL: __WEBPACK_IMPORTED_MODULE_1__wpConfig__[\"a\" /* default */].appURL,\n\ttimeout: timeout\n});\n\nvar appToken = function appToken(apiKeys) {\n\tif (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils__[\"a\" /* objHasProp */])(apiKeys, 'public') && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__utils__[\"a\" /* objHasProp */])(apiKeys, 'secret')) {\n\t\tvar publicKey = apiKeys.public;\n\t\tvar secret = apiKeys.secret;\n\t\treturn __WEBPACK_IMPORTED_MODULE_2_locutus_php_strings_sha1___default()(publicKey + secret);\n\t}\n\treturn '';\n};\n\n/***/ }),\n/* 121 */\n/* exports provided: urlString */\n/* exports used: urlString */\n/*!****************************************!*\\\n !*** ./client/store/util/urlString.js ***!\n \\****************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return urlString; });\nvar urlString = function urlString(data, endpoint) {\n\tvar str = \"\";\n\tfor (var key in data) {\n\t\tif (str != \"\") {\n\t\t\tstr += \"&\";\n\t\t}\n\t\tstr += key + \"=\" + data[key];\n\t}\n\treturn endpoint + '?' + str;\n};\n\n/***/ }),\n/* 122 */\n/* exports provided: default */\n/* all exports used */\n/*!********************************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/components/Account/Edit.vue ***!\n \\********************************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(/*! vuex */ 5);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n\n\tcomputed: Object.assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"c\" /* mapGetters */])(['publicKey', 'secretKey', 'connected'])),\n\tmethods: Object.assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"d\" /* mapMutations */])(['publicKey', 'secretKey']), {\n\t\tpublicKeyChange: function publicKeyChange(ev) {\n\t\t\tthis.$store.commit('publicKey', ev.target.value);\n\t\t},\n\t\tsecretKeyChange: function secretKeyChange(ev) {\n\t\t\tthis.$store.commit('secretKey', ev.target.value);\n\t\t}\n\t})\n};\n\n/***/ }),\n/* 123 */\n/* exports provided: default */\n/* all exports used */\n/*!*******************************************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/components/Elements/Field/Checkbox.vue ***!\n \\*******************************************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Parts_Label_Label_vue__ = __webpack_require__(/*! ../Parts/Label/Label.vue */ 219);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Parts_Label_Label_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__Parts_Label_Label_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Parts_Input_Input_vue__ = __webpack_require__(/*! ../Parts/Input/Input.vue */ 218);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Parts_Input_Input_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__Parts_Input_Input_vue__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n\tcomponents: {\n\t\t_label: __WEBPACK_IMPORTED_MODULE_0__Parts_Label_Label_vue___default.a,\n\t\t_input: __WEBPACK_IMPORTED_MODULE_1__Parts_Input_Input_vue___default.a\n\t},\n\tprops: {\n\t\tidAttr: {\n\t\t\ttype: String,\n\t\t\trequire: true\n\t\t},\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\t\tsetting: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t}\n\t}\n\n};\n\n/***/ }),\n/* 124 */\n/* exports provided: default */\n/* all exports used */\n/*!**********************************************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/components/Elements/Parts/Input/Input.vue ***!\n \\**********************************************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n\tprops: {\n\t\tidAttr: {\n\t\t\ttype: String,\n\t\t\trequire: true\n\t\t},\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\t\tsetting: {\n\t\t\ttype: String,\n\t\t\trequired: true\n\t\t},\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'text'\n\t\t}\n\t},\n\tmethods: {\n\t\thandle: function handle() {\n\t\t\tthis.$store.commit(this.setting, this.value);\n\t\t}\n\t}\n\n};\n\n/***/ }),\n/* 125 */\n/* exports provided: default */\n/* all exports used */\n/*!**********************************************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/components/Elements/Parts/Label/Label.vue ***!\n \\**********************************************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n\tidAttr: {\n\t\ttype: String,\n\t\trequire: true\n\t},\n\tlabel: {\n\t\ttype: String,\n\t\trequired: true\n\t}\n};\n\n/***/ }),\n/* 126 */\n/* exports provided: default */\n/* all exports used */\n/*!******************************************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/components/Elements/Status/Status.vue ***!\n \\******************************************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n\tprops: ['success', 'message', 'show'],\n\twatch: {\n\t\tshow: function show() {\n\t\t\tif (this.show) {\n\t\t\t\tthis.$el.className = \"cf-alert-wrap cf-show\";\n\t\t\t} else {\n\t\t\t\tthis.$el.className = \"cf-alert-wrap cf-hide\";\n\t\t\t}\n\t\t}\n\t}\n\n};\n\n/***/ }),\n/* 127 */\n/* exports provided: default */\n/* all exports used */\n/*!*************************************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/components/FormSettings/Form.vue ***!\n \\*************************************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(/*! vuex */ 5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Elements_Field_Checkbox__ = __webpack_require__(/*! ../Elements/Field/Checkbox */ 217);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Elements_Field_Checkbox___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__Elements_Field_Checkbox__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__store_util_utils__ = __webpack_require__(/*! ../../store/util/utils */ 28);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n\tcomponents: {\n\t\tcheckbox: __WEBPACK_IMPORTED_MODULE_1__Elements_Field_Checkbox___default.a\n\t},\n\tprops: ['form', 'layouts'],\n\tcomputed: {\n\t\tlayoutIdAttr: function layoutIdAttr() {\n\t\t\treturn 'cf-pro-layout-' + this.form.form_id;\n\t\t},\n\t\tpdfLayoutIdAttr: function pdfLayoutIdAttr() {\n\t\t\treturn 'cf-pro-layout-pdf-' + this.form.form_id;\n\t\t},\n\t\tattachPDFIdAttr: function attachPDFIdAttr() {\n\t\t\treturn 'cf-pro-layout-' + this.form.form_id;\n\t\t},\n\t\tlinkPDFIdAttr: function linkPDFIdAttr() {\n\t\t\treturn 'cf-pro-layout-' + this.form.form_id;\n\t\t},\n\t\tsendLocalIdAttr: function sendLocalIdAttr() {\n\t\t\treturn 'cf-pro-send-local-' + this.form.form_id;\n\t\t}\n\t},\n\tmethods: {\n\t\tcommitChange: function commitChange(what, value) {\n\t\t\tthis.form[what] = value;\n\t\t\tthis.$store.commit('form', this.form);\n\t\t},\n\t\tchangeLayout: function changeLayout(ev) {\n\t\t\tthis.commitChange(ev.target.value, 'layout');\n\t\t},\n\t\tchangePDFLayout: function changePDFLayout(ev) {\n\t\t\tthis.commitChange(ev.target.value, 'pdf_layout');\n\t\t},\n\t\tchangeAttachPDF: function changeAttachPDF(ev) {\n\t\t\tthis.commitChange(ev.target.value, 'attach_pdf');\n\t\t},\n\t\tchangeLinkPDF: function changeLinkPDF(ev) {\n\t\t\tthis.commitChange(ev.target.value, 'pdf_link');\n\t\t},\n\t\tchangeSendLocal: function changeSendLocal(ev) {\n\t\t\tthis.commitChange(ev.target.value, 'send_local');\n\t\t}\n\t}\n\n};\n\n/***/ }),\n/* 128 */\n/* exports provided: default */\n/* all exports used */\n/*!**************************************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/components/FormSettings/Forms.vue ***!\n \\**************************************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Form__ = __webpack_require__(/*! ./Form */ 84);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Form___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__Form__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__(/*! vuex */ 5);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n\tcomponents: {\n\t\t'form-setting': __WEBPACK_IMPORTED_MODULE_0__Form___default.a\n\t},\n\tcomputed: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"b\" /* mapState */])({\n\t\tforms: function forms(state) {\n\t\t\treturn state.forms;\n\t\t},\n\t\tlayouts: function layouts(state) {\n\t\t\treturn state.layouts;\n\t\t}\n\t}),\n\tmethods: Object.assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"a\" /* mapActions */])(['getLayouts'])),\n\tbeforeMount: function beforeMount() {\n\t\tthis.getLayouts();\n\t},\n\tdata: function data() {\n\t\treturn {\n\t\t\teditForm: 0,\n\t\t\tform: {}\n\t\t};\n\t},\n\n\twatch: {\n\t\teditForm: function editForm(v) {\n\t\t\tthis.form = this.$store.getters.getFormsById(v);\n\t\t}\n\t}\n\n};\n\n/***/ }),\n/* 129 */\n/* exports provided: default */\n/* all exports used */\n/*!****************************************************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/components/GeneralSettings/enhancedDelivery.vue ***!\n \\****************************************************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(/*! vuex */ 5);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n computed: Object.assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"c\" /* mapGetters */])(['enhancedDelivery']), {\n deliveryValue: {\n get: function get() {\n return this.enhancedDelivery;\n },\n set: function set(value) {\n this.$store.commit('enhancedDelivery', value);\n }\n }\n })\n};\n\n/***/ }),\n/* 130 */\n/* exports provided: default */\n/* all exports used */\n/*!********************************************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/components/GeneralSettings/logLevel.vue ***!\n \\********************************************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(/*! vuex */ 5);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n computed: Object.assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"c\" /* mapGetters */])(['logLevels', 'logLevel', 'strings']), {\n logLevelValue: {\n get: function get() {\n return this.logLevel;\n },\n set: function set(value) {\n this.$store.commit('logLevel', value);\n }\n }\n })\n};\n\n/***/ }),\n/* 131 */\n/* exports provided: default */\n/* all exports used */\n/*!*********************************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/components/Link/linkKeys.vue ***!\n \\*********************************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(/*! vuex */ 5);\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n\n computed: Object.assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"c\" /* mapGetters */])(['strings']))\n\n};\n\n/***/ }),\n/* 132 */\n/* exports provided: default */\n/* all exports used */\n/*!***********************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/views/Settings.vue ***!\n \\***********************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(/*! vuex */ 5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_Account_display__ = __webpack_require__(/*! ../components/Account/display */ 115);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_Account_Edit__ = __webpack_require__(/*! ../components/Account/Edit */ 216);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_Account_Edit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__components_Account_Edit__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Forms__ = __webpack_require__(/*! ../components/FormSettings/Forms */ 220);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Forms___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Forms__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_GeneralSettings_enhancedDelivery__ = __webpack_require__(/*! ../components/GeneralSettings/enhancedDelivery */ 221);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_GeneralSettings_enhancedDelivery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__components_GeneralSettings_enhancedDelivery__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_GeneralSettings_logLevel__ = __webpack_require__(/*! ../components/GeneralSettings/logLevel */ 222);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_GeneralSettings_logLevel___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__components_GeneralSettings_logLevel__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_Elements_Status_Status_vue__ = __webpack_require__(/*! ../components/Elements/Status/Status.vue */ 83);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_Elements_Status_Status_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__components_Elements_Status_Status_vue__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n\tcomponents: {\n\t\t'account-display': __WEBPACK_IMPORTED_MODULE_1__components_Account_display__[\"a\" /* default */],\n\t\t'account-edit': __WEBPACK_IMPORTED_MODULE_2__components_Account_Edit___default.a,\n\t\t'forms-settings': __WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Forms___default.a,\n\t\t'delivery': __WEBPACK_IMPORTED_MODULE_4__components_GeneralSettings_enhancedDelivery___default.a,\n\t\t'logs': __WEBPACK_IMPORTED_MODULE_5__components_GeneralSettings_logLevel___default.a,\n\t\t'status': __WEBPACK_IMPORTED_MODULE_6__components_Elements_Status_Status_vue___default.a\n\t},\n\tcomputed: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"b\" /* mapState */])({\n\t\tloading: function loading(state) {\n\t\t\treturn state.loading;\n\t\t},\n\t\tconnected: function connected(state) {\n\t\t\treturn state.connected;\n\t\t},\n\t\tpublicKey: function publicKey(state) {\n\t\t\treturn state.account.apiKeys.public;\n\t\t},\n\t\tenhancedDelivery: function enhancedDelivery(state) {\n\t\t\treturn state.settings.enhancedDelivery;\n\t\t},\n\t\tlogLevel: function logLevel(state) {\n\t\t\treturn state.settings.logLevel;\n\t\t},\n\t\tmainAlert: function mainAlert(state) {\n\t\t\treturn state.mainAlert;\n\t\t}\n\t}),\n\tbeforeMount: function beforeMount() {\n\t\t[].forEach.call(document.querySelectorAll('.update-nag'), function (e) {\n\t\t\te.parentNode.removeChild(e);\n\t\t});\n\n\t\tthis.$store.dispatch('getAccount');\n\t},\n\n\tmethods: {\n\t\tsave: function save() {\n\t\t\tthis.$store.dispatch('saveAccount');\n\t\t}\n\t}\n};\n\n/***/ }),\n/* 133 */\n/* exports provided: default */\n/* all exports used */\n/*!******************************************************************************************************!*\\\n !*** ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./client/views/Tab.vue ***!\n \\******************************************************************************************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vuex__ = __webpack_require__(/*! vuex */ 5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_debounce__ = __webpack_require__(/*! lodash.debounce */ 67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_debounce__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_Elements_Status_Status__ = __webpack_require__(/*! ../components/Elements/Status/Status */ 83);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_Elements_Status_Status___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__components_Elements_Status_Status__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Form_vue__ = __webpack_require__(/*! ../components/FormSettings/Form.vue */ 84);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Form_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Form_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_Link_linkKeys_vue__ = __webpack_require__(/*! ../components/Link/linkKeys.vue */ 223);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_Link_linkKeys_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__components_Link_linkKeys_vue__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = {\n\tcomponents: {\n\t\t'form-setting': __WEBPACK_IMPORTED_MODULE_3__components_FormSettings_Form_vue___default.a,\n\t\t'link-keys': __WEBPACK_IMPORTED_MODULE_4__components_Link_linkKeys_vue___default.a,\n\t\t'status': __WEBPACK_IMPORTED_MODULE_2__components_Elements_Status_Status___default.a\n\t},\n\tmethods: Object.assign({}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"a\" /* mapActions */])(['getLayouts', 'getAccount', 'saveAccount'])),\n\tbeforeMount: function beforeMount() {\n\t\tvar _this = this;\n\n\t\tthis.getAccount().then(function () {\n\t\t\t_this.getLayouts();\n\t\t\t_this.form = _this.$store.getters.getFormsById(_this.formScreen);\n\t\t});\n\t},\n\n\tcomputed: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0_vuex__[\"b\" /* mapState */])({\n\t\tlayouts: function layouts(state) {\n\t\t\treturn state.layouts;\n\t\t},\n\t\tconnected: function connected(state) {\n\t\t\treturn state.connected;\n\t\t},\n\t\tformScreen: function formScreen(state) {\n\t\t\treturn state.formScreen;\n\t\t},\n\t\tmainAlert: function mainAlert(state) {\n\t\t\treturn state.mainAlert;\n\t\t}\n\t}),\n\tdata: function data() {\n\t\treturn {\n\t\t\tform: {}\n\t\t};\n\t}\n};\n\n/***/ }),\n/* 134 */,\n/* 135 */,\n/* 136 */,\n/* 137 */,\n/* 138 */,\n/* 139 */,\n/* 140 */,\n/* 141 */,\n/* 142 */,\n/* 143 */,\n/* 144 */,\n/* 145 */,\n/* 146 */,\n/* 147 */,\n/* 148 */,\n/* 149 */,\n/* 150 */,\n/* 151 */,\n/* 152 */,\n/* 153 */,\n/* 154 */,\n/* 155 */,\n/* 156 */,\n/* 157 */,\n/* 158 */,\n/* 159 */,\n/* 160 */,\n/* 161 */,\n/* 162 */\n/* unknown exports provided */\n/* all exports used */\n/*!******************************************!*\\\n !*** ./~/diffie-hellman/lib/primes.json ***!\n \\******************************************/\n/***/ (function(module, exports) {\n\nmodule.exports = {\"modp1\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\"},\"modp2\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\"},\"modp5\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\"},\"modp14\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\"},\"modp15\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\"},\"modp16\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\"},\"modp17\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\"},\"modp18\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\"}}\n\n/***/ }),\n/* 163 */,\n/* 164 */,\n/* 165 */,\n/* 166 */,\n/* 167 */,\n/* 168 */,\n/* 169 */,\n/* 170 */,\n/* 171 */,\n/* 172 */,\n/* 173 */,\n/* 174 */,\n/* 175 */,\n/* 176 */\n/* unknown exports provided */\n/* all exports used */\n/*!*********************************!*\\\n !*** ./~/elliptic/package.json ***!\n \\*********************************/\n/***/ (function(module, exports) {\n\nmodule.exports = {\"_args\":[[\"elliptic@6.4.0\",\"/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client\"]],\"_development\":true,\"_from\":\"elliptic@6.4.0\",\"_id\":\"elliptic@6.4.0\",\"_inBundle\":false,\"_integrity\":\"sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=\",\"_location\":\"/elliptic\",\"_phantomChildren\":{},\"_requested\":{\"type\":\"version\",\"registry\":true,\"raw\":\"elliptic@6.4.0\",\"name\":\"elliptic\",\"escapedName\":\"elliptic\",\"rawSpec\":\"6.4.0\",\"saveSpec\":null,\"fetchSpec\":\"6.4.0\"},\"_requiredBy\":[\"/browserify-sign\",\"/create-ecdh\"],\"_resolved\":\"https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz\",\"_spec\":\"6.4.0\",\"_where\":\"/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client\",\"author\":{\"name\":\"Fedor Indutny\",\"email\":\"fedor@indutny.com\"},\"bugs\":{\"url\":\"https://github.com/indutny/elliptic/issues\"},\"dependencies\":{\"bn.js\":\"^4.4.0\",\"brorand\":\"^1.0.1\",\"hash.js\":\"^1.0.0\",\"hmac-drbg\":\"^1.0.0\",\"inherits\":\"^2.0.1\",\"minimalistic-assert\":\"^1.0.0\",\"minimalistic-crypto-utils\":\"^1.0.0\"},\"description\":\"EC cryptography\",\"devDependencies\":{\"brfs\":\"^1.4.3\",\"coveralls\":\"^2.11.3\",\"grunt\":\"^0.4.5\",\"grunt-browserify\":\"^5.0.0\",\"grunt-cli\":\"^1.2.0\",\"grunt-contrib-connect\":\"^1.0.0\",\"grunt-contrib-copy\":\"^1.0.0\",\"grunt-contrib-uglify\":\"^1.0.1\",\"grunt-mocha-istanbul\":\"^3.0.1\",\"grunt-saucelabs\":\"^8.6.2\",\"istanbul\":\"^0.4.2\",\"jscs\":\"^2.9.0\",\"jshint\":\"^2.6.0\",\"mocha\":\"^2.1.0\"},\"files\":[\"lib\"],\"homepage\":\"https://github.com/indutny/elliptic\",\"keywords\":[\"EC\",\"Elliptic\",\"curve\",\"Cryptography\"],\"license\":\"MIT\",\"main\":\"lib/elliptic.js\",\"name\":\"elliptic\",\"repository\":{\"type\":\"git\",\"url\":\"git+ssh://git@github.com/indutny/elliptic.git\"},\"scripts\":{\"jscs\":\"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js\",\"jshint\":\"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js\",\"lint\":\"npm run jscs && npm run jshint\",\"test\":\"npm run lint && npm run unit\",\"unit\":\"istanbul test _mocha --reporter=spec test/index.js\",\"version\":\"grunt dist && git add dist/\"},\"version\":\"6.4.0\"}\n\n/***/ }),\n/* 177 */\n/* unknown exports provided */\n/*!*********************************************!*\\\n !*** ./client/components/Account/style.css ***!\n \\*********************************************/\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\nmodule.exports = {\"cf-pro-account-edit\":\"style__cf-pro-account-edit___6_kkC\"};\n\n/***/ }),\n/* 178 */\n/* unknown exports provided */\n/* all exports used */\n/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./~/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"remove\":true}!./~/vue-style-loader!./~/css-loader?sourceMap&-autoprefixer!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-16fab070\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./client/views/Settings.vue ***!\n \\***********************************************************************************************************************************************************************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 179 */\n/* unknown exports provided */\n/* all exports used */\n/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./~/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"remove\":true}!./~/vue-style-loader!./~/css-loader?sourceMap&-autoprefixer!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-a873166e\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./client/components/Account/Edit.vue ***!\n \\********************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 180 */\n/* unknown exports provided */\n/* all exports used */\n/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\\\n !*** ./~/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"remove\":true}!./~/vue-style-loader!./~/css-loader?sourceMap&-autoprefixer!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-b2ae9c58\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./client/components/Elements/Status/Status.vue ***!\n \\******************************************************************************************************************************************************************************************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 181 */,\n/* 182 */,\n/* 183 */,\n/* 184 */,\n/* 185 */,\n/* 186 */,\n/* 187 */,\n/* 188 */,\n/* 189 */,\n/* 190 */,\n/* 191 */,\n/* 192 */,\n/* 193 */,\n/* 194 */\n/* unknown exports provided */\n/* all exports used */\n/*!*********************************!*\\\n !*** ./~/parse-asn1/aesid.json ***!\n \\*********************************/\n/***/ (function(module, exports) {\n\nmodule.exports = {\"2.16.840.1.101.3.4.1.1\":\"aes-128-ecb\",\"2.16.840.1.101.3.4.1.2\":\"aes-128-cbc\",\"2.16.840.1.101.3.4.1.3\":\"aes-128-ofb\",\"2.16.840.1.101.3.4.1.4\":\"aes-128-cfb\",\"2.16.840.1.101.3.4.1.21\":\"aes-192-ecb\",\"2.16.840.1.101.3.4.1.22\":\"aes-192-cbc\",\"2.16.840.1.101.3.4.1.23\":\"aes-192-ofb\",\"2.16.840.1.101.3.4.1.24\":\"aes-192-cfb\",\"2.16.840.1.101.3.4.1.41\":\"aes-256-ecb\",\"2.16.840.1.101.3.4.1.42\":\"aes-256-cbc\",\"2.16.840.1.101.3.4.1.43\":\"aes-256-ofb\",\"2.16.840.1.101.3.4.1.44\":\"aes-256-cfb\"}\n\n/***/ }),\n/* 195 */,\n/* 196 */,\n/* 197 */,\n/* 198 */,\n/* 199 */,\n/* 200 */,\n/* 201 */,\n/* 202 */,\n/* 203 */,\n/* 204 */,\n/* 205 */,\n/* 206 */,\n/* 207 */,\n/* 208 */,\n/* 209 */,\n/* 210 */,\n/* 211 */,\n/* 212 */,\n/* 213 */,\n/* 214 */,\n/* 215 */,\n/* 216 */\n/* unknown exports provided */\n/* exports used: default */\n/*!********************************************!*\\\n !*** ./client/components/Account/Edit.vue ***!\n \\********************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(/*! !../../../~/extract-text-webpack-plugin/loader.js?{\"omit\":1,\"remove\":true}!vue-style-loader!css-loader?sourceMap&-autoprefixer!../../../~/vue-loader/lib/style-compiler/index?{\"id\":\"data-v-a873166e\",\"scoped\":false,\"hasInlineConfig\":false}!../../../~/vue-loader/lib/selector?type=styles&index=0!./Edit.vue */ 179)\n\nvar Component = __webpack_require__(/*! ../../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../../~/vue-loader/lib/selector?type=script&index=0!./Edit.vue */ 122),\n /* template */\n __webpack_require__(/*! !../../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-a873166e\"}!../../../~/vue-loader/lib/selector?type=template&index=0!./Edit.vue */ 233),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 217 */\n/* unknown exports provided */\n/* exports used: default */\n/*!*******************************************************!*\\\n !*** ./client/components/Elements/Field/Checkbox.vue ***!\n \\*******************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(/*! ../../../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../../../~/vue-loader/lib/selector?type=script&index=0!./Checkbox.vue */ 123),\n /* template */\n __webpack_require__(/*! !../../../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-2a9917a3\"}!../../../../~/vue-loader/lib/selector?type=template&index=0!./Checkbox.vue */ 230),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 218 */\n/* unknown exports provided */\n/* exports used: default */\n/*!**********************************************************!*\\\n !*** ./client/components/Elements/Parts/Input/Input.vue ***!\n \\**********************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(/*! ../../../../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../../../../~/vue-loader/lib/selector?type=script&index=0!./Input.vue */ 124),\n /* template */\n __webpack_require__(/*! !../../../../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-1106535b\"}!../../../../../~/vue-loader/lib/selector?type=template&index=0!./Input.vue */ 226),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 219 */\n/* unknown exports provided */\n/* exports used: default */\n/*!**********************************************************!*\\\n !*** ./client/components/Elements/Parts/Label/Label.vue ***!\n \\**********************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(/*! ../../../../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../../../../~/vue-loader/lib/selector?type=script&index=0!./Label.vue */ 125),\n /* template */\n __webpack_require__(/*! !../../../../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-2218dfa2\"}!../../../../../~/vue-loader/lib/selector?type=template&index=0!./Label.vue */ 228),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 220 */\n/* unknown exports provided */\n/* exports used: default */\n/*!**************************************************!*\\\n !*** ./client/components/FormSettings/Forms.vue ***!\n \\**************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(/*! ../../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../../~/vue-loader/lib/selector?type=script&index=0!./Forms.vue */ 128),\n /* template */\n __webpack_require__(/*! !../../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-28ee6bc4\"}!../../../~/vue-loader/lib/selector?type=template&index=0!./Forms.vue */ 229),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 221 */\n/* unknown exports provided */\n/* exports used: default */\n/*!****************************************************************!*\\\n !*** ./client/components/GeneralSettings/enhancedDelivery.vue ***!\n \\****************************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(/*! ../../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../../~/vue-loader/lib/selector?type=script&index=0!./enhancedDelivery.vue */ 129),\n /* template */\n __webpack_require__(/*! !../../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-0ad2672a\"}!../../../~/vue-loader/lib/selector?type=template&index=0!./enhancedDelivery.vue */ 224),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 222 */\n/* unknown exports provided */\n/* exports used: default */\n/*!********************************************************!*\\\n !*** ./client/components/GeneralSettings/logLevel.vue ***!\n \\********************************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(/*! ../../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../../~/vue-loader/lib/selector?type=script&index=0!./logLevel.vue */ 130),\n /* template */\n __webpack_require__(/*! !../../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-967240fe\"}!../../../~/vue-loader/lib/selector?type=template&index=0!./logLevel.vue */ 232),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 223 */\n/* unknown exports provided */\n/* exports used: default */\n/*!*********************************************!*\\\n !*** ./client/components/Link/linkKeys.vue ***!\n \\*********************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Component = __webpack_require__(/*! ../../../~/vue-loader/lib/component-normalizer */ 8)(\n /* script */\n __webpack_require__(/*! !babel-loader!../../../~/vue-loader/lib/selector?type=script&index=0!./linkKeys.vue */ 131),\n /* template */\n __webpack_require__(/*! !../../../~/vue-loader/lib/template-compiler/index?{\"id\":\"data-v-698469d6\"}!../../../~/vue-loader/lib/selector?type=template&index=0!./linkKeys.vue */ 231),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 224 */\n/* unknown exports provided */\n/* all exports used */\n/*!***********************************************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0ad2672a\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/GeneralSettings/enhancedDelivery.vue ***!\n \\***********************************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.deliveryValue),\n expression: \"deliveryValue\"\n }],\n attrs: {\n \"type\": \"checkbox\",\n \"id\": \"cf-pro-enhanced-delivery\",\n \"aria-describedby\": \"cf-pro-enhanced-delivery-desc\"\n },\n domProps: {\n \"checked\": Array.isArray(_vm.deliveryValue) ? _vm._i(_vm.deliveryValue, null) > -1 : (_vm.deliveryValue)\n },\n on: {\n \"__c\": function($event) {\n var $$a = _vm.deliveryValue,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$el.checked) {\n $$i < 0 && (_vm.deliveryValue = $$a.concat([$$v]))\n } else {\n $$i > -1 && (_vm.deliveryValue = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.deliveryValue = $$c\n }\n }\n }\n }), _vm._v(\" \"), _c('label', {\n attrs: {\n \"for\": \"cf-pro-enhanced-delivery\"\n }\n }, [_vm._v(\"\\n\\t\\t\\tEnable Enhanced Delivery\\n\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"description\",\n attrs: {\n \"id\": \"cf-pro-enhanced-delivery-desc\"\n }\n }, [_c('p', [_vm._v(\"If enabled, messages are sent via Caldera Forms Pro Servers\")]), _vm._v(\" \"), (_vm.enhancedDelivery) ? _c('ul', [_c('li', [_vm._v(\"Forms must use database entry tracking.\")]), _vm._v(\" \"), _c('li', [_vm._v(\"From Email setting will be used as the reply-to.\")])]) : _vm._e()])])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 225 */\n/* unknown exports provided */\n/* all exports used */\n/*!*************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0b88b150\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/views/Tab.vue ***!\n \\*************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"cf-pro-form-settings\"\n }\n }, [(_vm.connected) ? _c('div', [_c('form-setting', {\n attrs: {\n \"form\": _vm.form,\n \"layouts\": _vm.layouts\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (!_vm.connected) ? _c('div', [_c('link-keys')], 1) : _vm._e(), _vm._v(\" \"), _c('div', {\n attrs: {\n \"id\": \"cf-pro-alert-wrap\"\n }\n }, [_c('status', {\n attrs: {\n \"message\": _vm.mainAlert.message,\n \"success\": _vm.mainAlert.success,\n \"show\": _vm.mainAlert.show\n }\n })], 1)])\n},staticRenderFns: []}\n\n/***/ }),\n/* 226 */\n/* unknown exports provided */\n/* all exports used */\n/*!*****************************************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-1106535b\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Elements/Parts/Input/Input.vue ***!\n \\*****************************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('input', {\n attrs: {\n \"type\": _vm.type,\n \"id\": _vm.idAttr\n },\n on: {\n \"keyup\": function($event) {\n _vm.handle()\n },\n \"change\": function($event) {\n _vm.handle()\n }\n }\n })\n},staticRenderFns: []}\n\n/***/ }),\n/* 227 */\n/* unknown exports provided */\n/* all exports used */\n/*!******************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-16fab070\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/views/Settings.vue ***!\n \\******************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"cf-pro-message-settings\"\n }\n }, [_c('div', {\n attrs: {\n \"id\": \"cf-pro-message-setting-inner\"\n }\n }, [_c('div', {\n staticClass: \"caldera-editor-header\"\n }, [_c('ul', {\n staticClass: \"caldera-editor-header-nav\"\n }, [_vm._m(0), _vm._v(\" \"), (_vm.connected) ? _c('li', {\n staticClass: \"status good\"\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\tConnected\\n\\t\\t\\t\\t\")]) : _vm._e(), _vm._v(\" \"), (!_vm.connected) ? _c('li', {\n staticClass: \"status bad\"\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\tNot Connected\\n\\t\\t\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _c('li', {\n staticClass: \"cf-pro-save\"\n }, [_c('input', {\n staticClass: \"button button-primary\",\n attrs: {\n \"type\": \"submit\",\n \"value\": \"Save\"\n },\n on: {\n \"click\": _vm.save\n }\n })]), _vm._v(\" \"), _c('li', {\n attrs: {\n \"id\": \"cf-pro-alert-wrap\"\n }\n }, [_c('status', {\n attrs: {\n \"message\": _vm.mainAlert.message,\n \"success\": _vm.mainAlert.success,\n \"show\": _vm.mainAlert.show\n }\n })], 1)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"cf-pro-settings\"\n }, [_c('div', [_c('tabs', {\n attrs: {\n \"options\": {\n useUrlFragment: false\n }\n }\n }, [_c('tab', {\n attrs: {\n \"name\": \"Account\"\n }\n }, [_c('account-edit')], 1), _vm._v(\" \"), _c('tab', {\n attrs: {\n \"name\": \"Form Settings\"\n }\n }, [(_vm.connected) ? _c('div', [_c('forms-settings')], 1) : _c('div', [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\tYou must connected to Caldera Forms Pro First\\n\\t\\t\\t\\t\\t\\t\")])]), _vm._v(\" \"), _c('tab', {\n attrs: {\n \"name\": \"Settings\"\n }\n }, [_c('delivery'), _vm._v(\" \"), _c('logs')], 1)], 1)], 1)])])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('li', {\n staticClass: \"caldera-editor-logo\"\n }, [_c('span', {\n staticClass: \"caldera-forms-name\"\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\tCaldera Forms Pro\\n\\t\\t\\t\\t\\t\")])])\n}]}\n\n/***/ }),\n/* 228 */\n/* unknown exports provided */\n/* all exports used */\n/*!*****************************************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2218dfa2\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Elements/Parts/Label/Label.vue ***!\n \\*****************************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('label', {\n attrs: {\n \"for\": _vm.idAttr\n },\n domProps: {\n \"innerHTML\": _vm._s(_vm.label)\n }\n })\n},staticRenderFns: []}\n\n/***/ }),\n/* 229 */\n/* unknown exports provided */\n/* all exports used */\n/*!*********************************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-28ee6bc4\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/FormSettings/Forms.vue ***!\n \\*********************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": \"cf-pro-form-setting-chooser\"\n }\n }, [_vm._v(\"\\n\\t\\t\\tChoose Form\\n\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.editForm),\n expression: \"editForm\"\n }],\n attrs: {\n \"id\": \"cf-pro-form-setting-chooser\"\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.editForm = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, [_c('option'), _vm._v(\" \"), _vm._l((_vm.forms), function(form) {\n return _c('option', {\n domProps: {\n \"value\": form.form_id\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(form.name) + \"\\n\\t\\t\\t\\t\")])\n })], 2)])]), _vm._v(\" \"), (_vm.editForm) ? _c('div', [_c('form-setting', {\n attrs: {\n \"form\": _vm.form,\n \"layouts\": _vm.layouts\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 230 */\n/* unknown exports provided */\n/* all exports used */\n/*!**************************************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2a9917a3\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Elements/Field/Checkbox.vue ***!\n \\**************************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": _vm.idAttr\n },\n domProps: {\n \"innerHTML\": _vm._s(_vm.label)\n }\n }), _vm._v(\" \"), _c('_input', {\n attrs: {\n \"type\": _vm.checkbox,\n \"idAttr\": _vm.idAttr,\n \"value\": _vm.value,\n \"setting\": _vm.setting\n }\n })], 1)\n},staticRenderFns: []}\n\n/***/ }),\n/* 231 */\n/* unknown exports provided */\n/* all exports used */\n/*!****************************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-698469d6\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Link/linkKeys.vue ***!\n \\****************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('a', {\n attrs: {\n \"href\": _vm.strings.apiKeysViewLink,\n \"alt\": _vm.strings.apiKeysViewText,\n \"target\": \"_blank\"\n }\n }, [_vm._v(_vm._s(_vm.strings.apiKeysViewText))])\n},staticRenderFns: []}\n\n/***/ }),\n/* 232 */\n/* unknown exports provided */\n/* all exports used */\n/*!***************************************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-967240fe\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/GeneralSettings/logLevel.vue ***!\n \\***************************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('div', {\n attrs: {\n \"aria-labelledby\": \"minLogLevelTitle\",\n \"aria-describedby\": \"minLogLevelInfo\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"cf-pro-form-log-level-chooser\",\n \"id\": \"minLogLevelTitle\"\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.strings.minLogLevelTitle) + \"\\n \")]), _vm._v(\" \"), _c('p', {\n attrs: {\n \"id\": \"minLogLevelInfo\"\n }\n }, [_vm._v(_vm._s(_vm.strings.minLogLevelInfo))])]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.logLevelValue),\n expression: \"logLevelValue\"\n }],\n attrs: {\n \"id\": \"cf-pro-form-log-level-chooser\"\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.logLevelValue = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, _vm._l((_vm.logLevels), function(level) {\n return _c('option', {\n directives: [{\n name: \"key\",\n rawName: \"v-key\",\n value: (level.number),\n expression: \"level.number\"\n }],\n domProps: {\n \"value\": level.number\n }\n }, [_vm._v(\"\\n \" + _vm._s(level.name) + \"\\n \")])\n }))])])])\n},staticRenderFns: []}\n\n/***/ }),\n/* 233 */\n/* unknown exports provided */\n/* all exports used */\n/*!***************************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-a873166e\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Account/Edit.vue ***!\n \\***************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"cf-pro-account-edit\"\n }\n }, [_c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": \"cf-pro-api-public\"\n }\n }, [_vm._v(\"\\n\\t\\t\\tPublic Key\\n\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.publicKey),\n expression: \"publicKey\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"cf-pro-api-public\"\n },\n domProps: {\n \"value\": (_vm.publicKey)\n },\n on: {\n \"change\": _vm.publicKeyChange,\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.publicKey = $event.target.value\n }\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": \"cf-pro-api-secret\"\n }\n }, [_vm._v(\"\\n\\t\\t\\tSecret Key\\n\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.secretKey),\n expression: \"secretKey\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"cf-pro-api-secret\"\n },\n domProps: {\n \"value\": (_vm.secretKey)\n },\n on: {\n \"change\": _vm.secretKeyChange,\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.secretKey = $event.target.value\n }\n }\n })])]), _vm._v(\" \"), (!_vm.connected) ? _c('p', [_vm._v(\"\\n\\t\\tYou can find your API keys in your \"), _c('a', {\n attrs: {\n \"href\": \"https://app.calderaformspro.com/app#/account\",\n \"target\": \"_blank\"\n }\n }, [_vm._v(\"\\n\\t\\tCaldera Forms Pro Account\\n\\t\")])]) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 234 */\n/* unknown exports provided */\n/* all exports used */\n/*!*************************************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-b2ae9c58\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Elements/Status/Status.vue ***!\n \\*************************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"cf-alert-wrap cf-hide\"\n }, [(_vm.show && _vm.success) ? _c('p', {\n staticClass: \"cf-alert cf-alert-success\"\n }, [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.message) + \"\\n\\t\")]) : _vm._e(), _vm._v(\" \"), (_vm.show && !_vm.success) ? _c('p', {\n staticClass: \"cf-alert cf-alert-warning\"\n }, [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.message) + \"\\n\\t\")]) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 235 */\n/* unknown exports provided */\n/* all exports used */\n/*!********************************************************************************************************************************************************************!*\\\n !*** ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-d44e4582\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/FormSettings/Form.vue ***!\n \\********************************************************************************************************************************************************************/\n/***/ (function(module, exports) {\n\nmodule.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"caldera-config-group\"\n }, [(_vm.form.send_local != true) ? _c('label', {\n attrs: {\n \"for\": _vm.sendLocalIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tDisable enhanced delivery for this form\\n\\t\\t\")]) : _c('label', {\n attrs: {\n \"for\": _vm.sendLocalIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tEnhanced delivery is disabled for this form\\n\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.form.send_local),\n expression: \"form.send_local\"\n }],\n attrs: {\n \"type\": \"checkbox\",\n \"id\": _vm.sendLocalIdAttr\n },\n domProps: {\n \"checked\": Array.isArray(_vm.form.send_local) ? _vm._i(_vm.form.send_local, null) > -1 : (_vm.form.send_local)\n },\n on: {\n \"change\": _vm.changeSendLocal,\n \"__c\": function($event) {\n var $$a = _vm.form.send_local,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$el.checked) {\n $$i < 0 && (_vm.form.send_local = $$a.concat([$$v]))\n } else {\n $$i > -1 && (_vm.form.send_local = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.form.send_local = $$c\n }\n }\n }\n })])]), _vm._v(\" \"), (_vm.form.send_local != true) ? _c('div', [_c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": _vm.layoutIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tEmail Layout\\n\\t\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.form.layout),\n expression: \"form.layout\"\n }],\n attrs: {\n \"id\": _vm.layoutIdAttr\n },\n on: {\n \"change\": [function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.form.layout = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }, _vm.changeLayout]\n }\n }, [_c('option'), _vm._v(\" \"), _vm._l((_vm.layouts), function(option) {\n return _c('option', {\n domProps: {\n \"value\": option.id\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(option.name) + \"\\n\\t\\t\\t\\t\\t\")])\n })], 2)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": _vm.pdfLayoutIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tPDF Layout\\n\\t\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.form.pdf_layout),\n expression: \"form.pdf_layout\"\n }],\n attrs: {\n \"id\": _vm.pdfLayoutIdAttr\n },\n on: {\n \"change\": [function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.form.pdf_layout = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }, _vm.changePDFLayout]\n }\n }, [_c('option'), _vm._v(\" \"), _vm._l((_vm.layouts), function(option) {\n return _c('option', {\n domProps: {\n \"value\": option.id\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\" + _vm._s(option.name) + \"\\n\\t\\t\\t\\t\\t\\t\")])\n })], 2)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": _vm.attachPDFIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tAttach PDF To Main Mailer\\n\\t\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.form.attach_pdf),\n expression: \"form.attach_pdf\"\n }],\n attrs: {\n \"type\": \"checkbox\",\n \"id\": _vm.attachPDFIdAttr\n },\n domProps: {\n \"checked\": Array.isArray(_vm.form.attach_pdf) ? _vm._i(_vm.form.attach_pdf, null) > -1 : (_vm.form.attach_pdf)\n },\n on: {\n \"change\": _vm.changeAttachPDF,\n \"__c\": function($event) {\n var $$a = _vm.form.attach_pdf,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$el.checked) {\n $$i < 0 && (_vm.form.attach_pdf = $$a.concat([$$v]))\n } else {\n $$i > -1 && (_vm.form.attach_pdf = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.form.attach_pdf = $$c\n }\n }\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": _vm.attachPDFIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tAdd PDF Link\\n\\t\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.form.pdf_link),\n expression: \"form.pdf_link\"\n }],\n attrs: {\n \"type\": \"checkbox\",\n \"id\": _vm.attachPDFIdAttr\n },\n domProps: {\n \"checked\": Array.isArray(_vm.form.pdf_link) ? _vm._i(_vm.form.pdf_link, null) > -1 : (_vm.form.pdf_link)\n },\n on: {\n \"change\": _vm.changeLinkPDF,\n \"__c\": function($event) {\n var $$a = _vm.form.pdf_link,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$el.checked) {\n $$i < 0 && (_vm.form.pdf_link = $$a.concat([$$v]))\n } else {\n $$i > -1 && (_vm.form.pdf_link = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.form.pdf_link = $$c\n }\n }\n }\n })])])]) : _vm._e()])\n},staticRenderFns: []}\n\n/***/ }),\n/* 236 */,\n/* 237 */,\n/* 238 */\n/* unknown exports provided */\n/* all exports used */\n/*!************************!*\\\n !*** buffer (ignored) ***!\n \\************************/\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n/* 239 */\n/* unknown exports provided */\n/* all exports used */\n/*!************************!*\\\n !*** crypto (ignored) ***!\n \\************************/\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n/* 240 */\n/* unknown exports provided */\n/* all exports used */\n/*!**********************!*\\\n !*** util (ignored) ***!\n \\**********************/\n/***/ (function(module, exports) {\n\n/* (ignored) */\n\n/***/ }),\n/* 241 */\n/* exports provided: store */\n/* all exports used */\n/*!*************************!*\\\n !*** ./client/index.js ***!\n \\*************************/\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(/*! vue */ 43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__store__ = __webpack_require__(/*! ./store */ 85);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__views_Settings_vue__ = __webpack_require__(/*! ./views/Settings.vue */ 86);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__views_Settings_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__views_Settings_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_tabs_component__ = __webpack_require__(/*! vue-tabs-component */ 88);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_tabs_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_vue_tabs_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__views_Tab_vue__ = __webpack_require__(/*! ./views/Tab.vue */ 87);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__views_Tab_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__views_Tab_vue__);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"store\", function() { return __WEBPACK_IMPORTED_MODULE_1__store__[\"a\"]; });\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].component('tabs', __WEBPACK_IMPORTED_MODULE_3_vue_tabs_component__[\"Tabs\"]);\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */].component('tab', __WEBPACK_IMPORTED_MODULE_3_vue_tabs_component__[\"Tab\"]);\n\n//@TODO Remove this hack-ass way of selecting which app to run\n\nif (document.getElementById('cf-pro-app')) {\n\tvar mainSettingsApp = new __WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */]({\n\t\tel: '#cf-pro-app',\n\t\tstore: __WEBPACK_IMPORTED_MODULE_1__store__[\"a\" /* default */],\n\t\tcomponents: {\n\t\t\t'settings': __WEBPACK_IMPORTED_MODULE_2__views_Settings_vue___default.a\n\t\t},\n\t\trender: function render(h) {\n\t\t\treturn h('div', {\n\t\t\t\tattrs: {\n\t\t\t\t\tid: 'cf-pro-settings'\n\t\t\t\t}\n\t\t\t}, [h('settings')]);\n\t\t}\n\t});\n}\n\n//@TODO and this.\n\n\nif (document.getElementById('cf-pro-app-tab')) {\n\tvar tabApp = new __WEBPACK_IMPORTED_MODULE_0_vue__[\"a\" /* default */]({\n\t\tel: '#cf-pro-app-tab',\n\t\tstore: __WEBPACK_IMPORTED_MODULE_1__store__[\"a\" /* default */],\n\t\tcomponents: {\n\t\t\t'settings': __WEBPACK_IMPORTED_MODULE_4__views_Tab_vue___default.a\n\t\t},\n\t\trender: function render(h) {\n\t\t\treturn h('div', {\n\t\t\t\tattrs: {\n\t\t\t\t\tid: 'cf-pro-settings-tab'\n\t\t\t\t}\n\t\t\t}, [h('settings')]);\n\t\t}\n\t});\n}\n\n\n\n/***/ })\n]),[241]);\n\n\n// WEBPACK FOOTER //\n// client.ca043aad.js","export const isObject = function (value) {\n\t/**@TODO npm in just this function from lodash, beacuse the fact that I copypasted 3 lines of code is THE WORST THING EVER! https://github.com/lodash/lodash/blob/master/isObject.js **/\n\tconst type = typeof value;\n\treturn value != null && (type == 'object' || type == 'function');\n\t//Look - I added semicolons\n};\n\nexport const hasProp = function (maybeObj, prop) {\n\treturn isObject(maybeObj) && objHasProp(maybeObj,prop);\n};\n\nexport const objHasProp = function(obj,prop) {\n\treturn Object.prototype.hasOwnProperty.call(obj, prop);\n};\n\nexport const findForm = function(state,formId){\n\treturn state.forms.find(form =>\n\t\tform.form_id === formId\n\t);\n};\n\nexport const findFormOffset = function(state,formId){\n\treturn state.forms.findIndex(form => form.form_id === formId);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./client/store/util/utils.js","export default {\n\t/**\n\t * The URL for local site API\n\t *\n\t * @since 0.0.1\n\t *\n\t * @type {string}\n\t */\n\tlocalApiURL: CF_PRO_ADMIN.api.cf.url,\n\n\t/**\n\t * The nonce for local site API\n\t *\n\t * @since 0.0.1\n\t *\n\t * @type {string}\n\t */\n\tlocalApiNonce: CF_PRO_ADMIN.api.cf.nonce,\n\n\t/**\n\t * The URL for remote app API\n\t *\n\t * @since 0.0.1\n\t *\n\t * @type {string}\n\t */\n\tappURL: CF_PRO_ADMIN.api.cfPro.url,\n\n\t/**\n\t * The ID of the form whose edit screen we are on\n\t *\n\t * @since 1.0.0\n\t *\n\t * @type {string}\n\t */\n\tformScreen: CF_PRO_ADMIN.formScreen,\n\n\t/**\n\t * Translation and other strings.\n\t *\n\t * Created by \"strings\" index of generated in calderawp\\calderaforms\\pro\\admin\\scripts::data()\n\t *\n\t * @since 1.0.0\n\t *\n\t * @type {Object}\n\t */\n\tstrings: CF_PRO_ADMIN.strings,\n\n /**\n * Levels of Monolog logs\n *\n * Created by \"logLevels\" index of generated in calderawp\\calderaforms\\pro\\admin\\scripts::data()\n *\n * @since 1.5.9\n *\n * @type array\n */\n logLevels: CF_PRO_ADMIN.logLevels,\n\n};\n\n\n\n// WEBPACK FOOTER //\n// ./client/store/util/wpConfig.js","module.exports = {\"aes-128-ecb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-192-ecb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-256-ecb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-128-cbc\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-192-cbc\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-256-cbc\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes128\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes192\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes256\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-128-cfb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-192-cfb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-256-cfb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-128-cfb8\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-192-cfb8\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-256-cfb8\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-128-cfb1\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-192-cfb1\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-256-cfb1\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-128-ofb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-192-ofb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-256-ofb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-128-ctr\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-192-ctr\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-256-ctr\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-128-gcm\":{\"cipher\":\"AES\",\"key\":128,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"},\"aes-192-gcm\":{\"cipher\":\"AES\",\"key\":192,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"},\"aes-256-gcm\":{\"cipher\":\"AES\",\"key\":256,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/browserify-aes/modes/list.json\n// module id = 56\n// module chunks = 1","module.exports = {\"sha224WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha224\",\"id\":\"302d300d06096086480165030402040500041c\"},\"RSA-SHA224\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha224\",\"id\":\"302d300d06096086480165030402040500041c\"},\"sha256WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha256\",\"id\":\"3031300d060960864801650304020105000420\"},\"RSA-SHA256\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha256\",\"id\":\"3031300d060960864801650304020105000420\"},\"sha384WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha384\",\"id\":\"3041300d060960864801650304020205000430\"},\"RSA-SHA384\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha384\",\"id\":\"3041300d060960864801650304020205000430\"},\"sha512WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha512\",\"id\":\"3051300d060960864801650304020305000440\"},\"RSA-SHA512\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha512\",\"id\":\"3051300d060960864801650304020305000440\"},\"RSA-SHA1\":{\"sign\":\"rsa\",\"hash\":\"sha1\",\"id\":\"3021300906052b0e03021a05000414\"},\"ecdsa-with-SHA1\":{\"sign\":\"ecdsa\",\"hash\":\"sha1\",\"id\":\"\"},\"sha256\":{\"sign\":\"ecdsa\",\"hash\":\"sha256\",\"id\":\"\"},\"sha224\":{\"sign\":\"ecdsa\",\"hash\":\"sha224\",\"id\":\"\"},\"sha384\":{\"sign\":\"ecdsa\",\"hash\":\"sha384\",\"id\":\"\"},\"sha512\":{\"sign\":\"ecdsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-SHA\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA-SHA1\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA-WITH-SHA224\":{\"sign\":\"dsa\",\"hash\":\"sha224\",\"id\":\"\"},\"DSA-SHA224\":{\"sign\":\"dsa\",\"hash\":\"sha224\",\"id\":\"\"},\"DSA-WITH-SHA256\":{\"sign\":\"dsa\",\"hash\":\"sha256\",\"id\":\"\"},\"DSA-SHA256\":{\"sign\":\"dsa\",\"hash\":\"sha256\",\"id\":\"\"},\"DSA-WITH-SHA384\":{\"sign\":\"dsa\",\"hash\":\"sha384\",\"id\":\"\"},\"DSA-SHA384\":{\"sign\":\"dsa\",\"hash\":\"sha384\",\"id\":\"\"},\"DSA-WITH-SHA512\":{\"sign\":\"dsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-SHA512\":{\"sign\":\"dsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-RIPEMD160\":{\"sign\":\"dsa\",\"hash\":\"rmd160\",\"id\":\"\"},\"ripemd160WithRSA\":{\"sign\":\"rsa\",\"hash\":\"rmd160\",\"id\":\"3021300906052b2403020105000414\"},\"RSA-RIPEMD160\":{\"sign\":\"rsa\",\"hash\":\"rmd160\",\"id\":\"3021300906052b2403020105000414\"},\"md5WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"md5\",\"id\":\"3020300c06082a864886f70d020505000410\"},\"RSA-MD5\":{\"sign\":\"rsa\",\"hash\":\"md5\",\"id\":\"3020300c06082a864886f70d020505000410\"}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/browserify-sign/browser/algorithms.json\n// module id = 58\n// module chunks = 1","module.exports = {\"1.3.132.0.10\":\"secp256k1\",\"1.3.132.0.33\":\"p224\",\"1.2.840.10045.3.1.1\":\"p192\",\"1.2.840.10045.3.1.7\":\"p256\",\"1.3.132.0.34\":\"p384\",\"1.3.132.0.35\":\"p521\"}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/browserify-sign/browser/curves.json\n// module id = 59\n// module chunks = 1","\n/* styles */\nrequire(\"!!../../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap&-autoprefixer!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-b2ae9c58\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Status.vue\")\n\nvar Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Status.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-b2ae9c58\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Status.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/components/Elements/Status/Status.vue\n// module id = 83\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Form.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-d44e4582\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Form.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/components/FormSettings/Form.vue\n// module id = 84\n// module chunks = 1","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nVue.use(Vuex);\n\nimport CFProConfig from './util/wpConfig'\n\nconst STATE = {\n\tloading: false,\n\tconnected: false,\n\tforms: [\n\t],\n\tsettings : {\n\t\tenhancedDelivery: false,\n\t\tgeneratePDFs: false,\n\t\tlogLevel: 250\n\t},\n\tlayouts : [\n\t\t{name:''}\n\t],\n\taccount: {\n\t\tplan: String,\n\t\tid: Number,\n\t\tapiKeys: {\n\t\t\tpublic: String,\n\t\t\tsecret: String,\n\t\t\ttoken: String\n\t\t}\n\t},\n\tstrings: CFProConfig.strings,\n\tmainAlert : {\n\t\tsuccess: false,\n\t\tmessage : '',\n\t\tshow: false\n\t},\n\tlogLevels: CFProConfig.logLevels\n};\n\n\nimport { MUTATIONS } from './mutations';\n\nimport { ACTIONS } from './actions';\n\nimport { GETTERS } from './getters';\n\n\nimport { accountSaver, formSaver } from './plugins';\n\nconst PLUGINS = [\n\taccountSaver,\n\tformSaver\n];\n\nconst store = new Vuex.Store({\n strict: false,\n plugins: PLUGINS,\n modules: {},\n state: STATE,\n getters: GETTERS,\n mutations: MUTATIONS,\n actions: ACTIONS\n});\n\n\nexport default store;\n\n\n\n// WEBPACK FOOTER //\n// ./client/store/index.js","\n/* styles */\nrequire(\"!!../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap&-autoprefixer!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-16fab070\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Settings.vue\")\n\nvar Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Settings.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-16fab070\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Settings.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/views/Settings.vue\n// module id = 86\n// module chunks = 1","var Component = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Tab.vue\"),\n /* template */\n require(\"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0b88b150\\\"}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Tab.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/views/Tab.vue\n// module id = 87\n// module chunks = 1","import './style.css'\nimport { mapState } from 'vuex'\n\n\nexport default {\n render(h) {\n return (\n <div id=\"cf-pro-account\">\n <ul>\n <li>Public Key {this.publicKey}</li>\n <li>Secret Key {this.secretKey}</li>\n <li>Token {this.token}</li>\n </ul>\n </div>\n )\n },\n computed: mapState({\n token: state => state.account.apiKeys.token,\n publicKey: state => state.account.apiKeys.public,\n secretKey: state => state.account.apiKeys.secret,\n }),\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./client/components/Account/display.js","import { localAPI, appAPI, appToken } from './util/API';\nimport { urlString } from './util/urlString';\nimport CFProConfig from './util/wpConfig';\n\nexport const ACTIONS = {\n\tgetAccount(context){\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlocalAPI.get().then(response => {\n\t\t\t\tvar r;\n\t\t\t\tif ('string' == typeof response.data) {\n\t\t\t\t\tconst maybe = JSON.parse(response.data);\n\t\t\t\t\tif ('object' === typeof maybe) {\n\t\t\t\t\t\tr = maybe;\n\t\t\t\t\t}else{\n\t\t\t\t\t\tthrow new Exception;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tr = response.data;\n\t\t\t\t}\n\t\t\t\tcontext.commit('forms', r.forms);\n\t\t\t\tcontext.commit('apiKeys', r.apiKeys);\n\t\t\t\tcontext.commit('accountId', r.account_id);\n\t\t\t\tcontext.commit('plan', r.plan);\n \t\t\t\tcontext.commit('logLevel', r.logLevel);\n\t\t\t\tcontext.commit('enhancedDelivery', r.enhancedDelivery);\n\t\t\t\tcontext.commit('formScreen', r.hasOwnProperty( 'formScreen' ) ? r.formScreen : CFProConfig.formScreen );\n\t\t\t\tresolve(response);\n\t\t\t}, error => {\n\t\t\t\treject(error);\n\t\t\t});\n\t\t})\n\t},\n\tsaveAccount(context) {\n\t\tlet key = context.state.account.apiKeys.public;\n\t\tif( key && 'string' === typeof key ){\n\t\t\tkey = key.trim();\n\t\t}\n let secret = context.state.account.apiKeys.secret;\n if( secret && 'string' === typeof secret ){\n secret = secret.trim();\n }\n\n\t\treturn localAPI.post('', {\n\t\t\taccountId: context.state.account.id,\n\t\t\tapiKey: key,\n\t\t\tapiSecret: secret,\n\t\t\tenhancedDelivery: context.state.settings.enhancedDelivery,\n\t\t\tplan: context.state.account.plan,\n\t\t\tforms: context.state.forms,\n\t\t\tlogLevel: context.state.settings.logLevel\n\t\t}).then(r => {\n\t\t\tif( r.data.hasOwnProperty( '_cfAlertMessage' ) ){\n\t\t\t\tcontext.dispatch( 'updateMainAlert', _cfAlertMessage );\n\t\t\t}else{\n\t\t\t\tcontext.dispatch( 'updateMainAlert', {\n\t\t\t\t\tmessage: context.state.strings.saved,\n\t\t\t\t\tshow: true,\n\t\t\t\t\tsuccess: true,\n\t\t\t\t\tfade: 1500\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t},\n\ttestConnection({commit, state}) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (state.account.apiKeys.public && state.account.apiKeys.secret) {\n\t\t\t\treturn appAPI.get(\n\t\t\t\t\turlString(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpublic: state.account.apiKeys.public,\n\t\t\t\t\t\t\ttoken: appToken( state.account.apiKeys ),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'/account/verify'\n\t\t\t\t\t)\n\t\t\t\t).then(r => {\n\t\t\t\t\t\tstate.account.plan = r.plan;\n\t\t\t\t\t\tstate.account.id = r.id;\n\t\t\t\t\t\tstate.connected = true;\n\t\t\t\t\t\tcommit( 'connected', true );\n\t\t\t\t\t\tresolve(r);\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t});\n\n\t\t\t}else{\n\t\t\t\treject( 'Not Connected' );\n\t\t\t}\n\t\t});\n\n\t},\n\tgetLayouts({commit, state}) {\n\t\tif( state.connected ){\n\t\t\treturn appAPI.get(\n\t\t\t\turlString(\n\t\t\t\t\t{\n\t\t\t\t\t\tsimple: true,\n\t\t\t\t\t\tpublic: state.account.apiKeys.public,\n\t\t\t\t\t\ttoken: state.account.apiKeys.token,\n\t\t\t\t\t},\n\t\t\t\t\t'/layouts/list'\n\t\t\t\t)\n\t\t\t).then(\n\t\t\t\tr => {\n\t\t\t\t\tcommit( 'layouts', r.data );\n\t\t\t\t}, e => {\n\t\t\t\t\tconsole.log(e);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t},\n\t/**\n\t * Set the main alert -- status.\n\t *\n\t * Using this over mutation mainAlert, which this uses, is you can send a number of milliseconds in alert.fade and it will removed in that number of milliseconds\n\t *\n\t * @since 1.0.0\n\t *\n\t * @param {*} context\n\t * @param {Object} alert Commit payload\n\t */\n\tupdateMainAlert(context, alert){\n\t\tconst fade = ( alert.hasOwnProperty( 'fade' ) && ! isNaN( alert.fade ) ) ? alert.fade : 0;\n\t\tif( fade ){\n\t\t\t//OMG(s) window scope.\n\t\t\twindow.setTimeout( () =>{\n\t\t\t\tcontext.dispatch( 'closeMainAlert' );\n\t\t\t}, fade );\n\t\t}\n\t\tcontext.commit('mainAlert',alert)\n\t},\n\t/**\n\t * Make mainAlert clode\n\t *\n\t * @since 1.0.0\n\t *\n\t * @param context\n\t */\n\tcloseMainAlert(context){\n\t\tcontext.dispatch( 'updateMainAlert', {\n\t\t\tshow:false,\n\t\t} );\n\t}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./client/store/actions.js","import { objHasProp, findForm } from './util/utils';\n\nexport const GETTERS = {\n\tpublicKey: state => {\n\t\treturn state.account.apiKeys.public;\n\t},\n\tsecretKey: state => {\n\t\treturn state.account.apiKeys.secret;\n\t},\n\tapiKeys: state => {\n\t\treturn state.account.apiKeys;\n\t},\n\thi: state => {\n\t\treturn 'Roy'\n\t},\n\tgetSetting: state => (setting,_default) => {\n\t\tif( objHasProp(state.settings, setting )){\n\t\t\treturn state.settings[setting];\n\t\t}\n\t\treturn _default;\n\t},\n\tgetFormsById: (state, getters) => (id) => {\n\t\treturn state.forms.find(form => form.form_id === id);\n\t},\n\n\tenhancedDelivery: state => {\n\t\treturn state.settings.enhancedDelivery;\n\t},\n\tlogLevels: state => {\n\t\treturn state.logLevels;\n\t},\n\tlogLevel: state => {\n\t\treturn state.settings.logLevel;\n\t},\n\tconnected: state => {\n\t\treturn state.connected;\n\t},\n\tformScreen: state => {\n\t\treturn state.formScreen;\n\t},\n\tstrings: state => {\n\t\treturn state.strings;\n\t},\n\tmainAlert: state => {\n\t\treturn state.mainAlert;\n\t}\n};\n\n\n\n// WEBPACK FOOTER //\n// ./client/store/getters.js","import isBoolean from 'lodash.isboolean';\nexport const MUTATIONS = {\n\tpublicKey (state,value) {\n\t\tstate.account.apiKeys.public = value;\n\t},\n\tsecretKey (state,value) {\n\t\tstate.account.apiKeys.secret = value;\n\t},\n\tapiKeys (state,obj) {\n\t\tstate.account.apiKeys.public = obj.public;\n\t\tstate.account.apiKeys.secret = obj.secret;\n\t\tstate.account.apiKeys.token = obj.token;\n\t},\n\taccountId(state,value){\n\t\tstate.account.id = value;\n\t},\n\tplan(state,value){\n\t\tstate.account.plan = value;\n\t},\n\tloading(state){\n\t\tstate.loading = ! state.loading;\n\t},\n\tforms(state, value){\n\t\tstate.forms = value;\n\t},\n\tlogLevels(state, value){\n\t\tstate.logLevels = value;\n\t},\n\tconnected(state,value ){\n\t\tstate.connected = value;\n\t},\n\tlayouts(state,value){\n\t\tstate.layouts = value;\n\t},\n\tform(state,value){\n\t\tlet index = state.forms.findIndex(form => form.form_id === value.form_id);\n\t\tif( -1 < index ){\n\t\t\tstate.forms[index] = value;\n\t\t}\n\t},\n logLevel(state,value){\n\t\tstate.settings.logLevel = value;\n },\n\tenhancedDelivery(state,value){\n\t\tif( 'on' == value ){\n\t\t\tvalue = true;\n\t\t}\n\t\tstate.settings.enhancedDelivery = value;\n\t},\n\tformScreen(state,value){\n\t\tstate.formScreen = value;\n\t},\n\t/**\n\t * Change the main alert\n\t *\n\t * @since 1.0.0\n\t *\n\t * @param {Object} state\n\t * @param {Object} value Value to set. success - boolean. show -- boolean. message -- string\n\t */\n\tmainAlert(state,value){\n\t\tstate.mainAlert = {\n\t\t\tsuccess: value.hasOwnProperty( 'success' ) ? value.success : false,\n\t\t\tmessage: value.hasOwnProperty( 'message' ) ? value.message : '',\n\t\t\tshow: value.hasOwnProperty( 'show' ) ? value.show : false,\n\t\t};\n\t\t//Notice, this doesn't except fade, fade isn't tracked. You want to set a fade time? Use updateMainAlert action!\n\n\t}\n};\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./client/store/mutations.js","import debounce from 'lodash.debounce';\nexport const accountSaver = store => {\n\tstore.subscribe((mutation, state) => {\n\t\tconst type = mutation.type;\n\t\tswitch (type) {\n\t\t\tcase 'apiKeys' :\n\t\t\tcase 'secretKey':\n\t\t\tcase 'publicKey':\n\t\t\t\tconsole.log(state.connected, state.account.apiKeys.secret, state.account.apiKeys.public);\n\n\t\t\t\tif (!state.connected && state.account.apiKeys.secret && state.account.apiKeys.public) {\n console.log(state.connected, state.account.apiKeys.secret, state.account.apiKeys.public);\n\n store.dispatch('testConnection');\n\t\t\t\t\tstore.dispatch('getLayouts');\n\t\t\t\t} else if (!state.account.apiKeys.public || !state.account.apiKeys.secret) {\n\t\t\t\t\tstore.commit('connected', 0);\n\t\t\t\t} else {\n\t\t\t\t\tstore.commit('connected', 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'connected' :\n\t\t\t\tif (state.connected) {\n\t\t\t\t\tstore.dispatch('getLayouts')\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t})\n};\n\n/**\n * Plugin to save account when form settings are changed\n *\n * @since 1.0.0\n *\n * @param {Object} store\n */\nexport const formSaver = store => {\n\t/**\n\t * Debounced version of saveAccount() mutation\n\t * @since 1.0.0\n\t *\n\t * @type {Function}\n\t */\n\tthis.debounedFormMutation = debounce(\n\t\tfunction(){\n\t\t\tstore.dispatch( 'saveAccount' );\n\t\t}, 100\n\t);\n\n\t/**\n\t * When form setting is mutated trigger update\n\t *\n\t * @since 1.0.0\n\t */\n\tstore.subscribe((mutation, state) => {\n\t\tif( 'form' === mutation.type ){\n\t\t\tthis.debounedFormMutation();\n\t\t}\n\n\t})\n};\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./client/store/plugins.js","import axios from 'axios';\nimport CFProConfig from './wpConfig';\nimport sha1 from 'locutus/php/strings/sha1';\nimport { objHasProp, hasProp } from './utils'\n\nconst timeout = 30000;\nexport const localAPI = axios.create({\n\tbaseURL: CFProConfig.localApiURL,\n\ttimeout: timeout,\n\theaders: {'X-WP-Nonce': CFProConfig.localApiNonce}\n});\n\nexport const appAPI = axios.create({\n\tbaseURL: CFProConfig.appURL,\n\ttimeout: timeout,\n});\n\nexport const appToken = function (apiKeys) {\n\tif( objHasProp(apiKeys,'public') && objHasProp(apiKeys,'secret')){\n\t\tlet publicKey = apiKeys.public;\n\t\tlet secret = apiKeys.secret;\n\t\treturn sha1( publicKey + secret);\n\t}\n\treturn '';\n\n\n};\n\n\n// WEBPACK FOOTER //\n// ./client/store/util/API.js","export const urlString = function (data, endpoint) {\n\tvar str = \"\";\n\tfor (var key in data) {\n\t\tif (str != \"\") {\n\t\t\tstr += \"&\";\n\t\t}\n\t\tstr += key + \"=\" + data[key];\n\t}\n\treturn endpoint + '?' + str;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./client/store/util/urlString.js","<template>\n\t<div id=\"cf-pro-account-edit\">\n\t\t<div class=\"caldera-config-group\">\n\t\t\t<label for=\"cf-pro-api-public\">\n\t\t\t\tPublic Key\n\t\t\t</label>\n\t\t\t<div class=\"caldera-config-field\">\n\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tv-model=\"publicKey\"\n\t\t\t\t\t\tid=\"cf-pro-api-public\"\n\t\t\t\t\t\t@change=\"publicKeyChange\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"caldera-config-group\">\n\t\t\t<label for=\"cf-pro-api-secret\">\n\t\t\t\tSecret Key\n\t\t\t</label>\n\t\t\t<div class=\"caldera-config-field\">\n\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tv-model=\"secretKey\"\n\t\t\t\t\tid=\"cf-pro-api-secret\"\n\t\t\t\t\t@change=\"secretKeyChange\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<p v-if=\"! connected\">\n\t\t\tYou can find your API keys in your <a href=\"https://app.calderaformspro.com/app#/account\" target=\"_blank\">\n\t\t\tCaldera Forms Pro Account\n\t\t</a>\n\t\t</p>\n\t</div>\n</template>\n<script>\n\timport { mapGetters,mapMutations } from 'vuex'\n\texport default{\n\n\t\tcomputed: {\n\t\t\t...mapGetters([\n\t\t\t\t'publicKey',\n\t\t\t\t'secretKey',\n\t\t\t\t'connected'\n\t\t\t])\n\t\t},\n\t\tmethods: {\n\t\t\t...mapMutations([\n\t\t\t\t'publicKey',\n\t\t\t\t'secretKey',\n\t\t\t]),\n\t\t\tpublicKeyChange(ev){\n this.$store.commit('publicKey',ev.target.value);\n\t\t\t},\n\t\t\tsecretKeyChange(ev){\n\t\t\t\tthis.$store.commit('secretKey',ev.target.value);\n\t\t\t}\n\t\t}\n\t}\n</script>\n<style>\n\t@import \"./style.css\";\n</style>\n\n\n// WEBPACK FOOTER //\n// Edit.vue?0995a470","<template>\n\t<div class=\"caldera-config-group\">\n\n\t\t<label v-bind:for=\"idAttr\" v-html=\"label\">\n\t\t</label>\n\t\t<_input\n\t\t\t:type=\"checkbox\"\n\t\t\t:idAttr=\"idAttr\"\n\t\t\t:value=\"value\"\n\t\t\t:setting=\"setting\"\n\t\t/>\n\n\t</div>\n</template>\n<script>\n\timport Label from '../Parts/Label/Label.vue';\n\timport Input from '../Parts/Input/Input.vue'\n\texport default{\n\t\tcomponents: {\n\t\t\t_label: Label,\n\t\t\t_input: Input\n\t\t},\n\t\tprops: {\n\t\t\tidAttr: {\n\t\t\t\ttype: String,\n\t\t\t\trequire: true\n\t\t\t},\n\t\t\tvalue:{\n\t\t\t\ttype:String,\n\t\t\t\trequired: true\n\t\t\t},\n\t\t\tsetting:{\n\t\t\t\ttype:String,\n\t\t\t\trequired: true\n\t\t\t},\n\t\t\tlabel:{\n\t\t\t\ttype:String,\n\t\t\t\trequired: true\n\t\t\t},\n\t\t},\n\n\t}\n</script>\n\n\n// WEBPACK FOOTER //\n// Checkbox.vue?34f7250e","<template>\n\t<input\n\t\t\tv-bind:type=\"type\"\n\t\t\tv-bind:id=\"idAttr\"\n\t\t\t@keyup=\"handle()\"\n\t\t\t@change=\"handle()\"\n\t/>\n\t<!--\t\t\tv-model=\"value\"-->\n</template>\n<script>\n\texport default{\n\t\tprops: {\n\t\t\tidAttr: {\n\t\t\t\ttype: String,\n\t\t\t\trequire: true\n\t\t\t},\n\t\t\tvalue:{\n\t\t\t\ttype:String,\n\t\t\t\trequired: true\n\t\t\t},\n\t\t\tsetting:{\n\t\t\t\ttype:String,\n\t\t\t\trequired: true\n\t\t\t},\n\t\t\ttype: {\n\t\t\t\ttype: String,\n\t\t\t\tdefault: 'text'\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\thandle(){\n\t\t\t\tthis.$store.commit(this.setting,this.value);\n\t\t\t}\n\t\t},\n\n\n\t}\n</script>\n\n\n// WEBPACK FOOTER //\n// Input.vue?6944ebf0","<template>\n\t<label v-bind:for=\"idAttr\" v-html=\"label\">\n\t</label>\n</template>\n<script>\n\texport default{\n\t\tidAttr: {\n\t\t\ttype: String,\n\t\t\trequire: true\n\t\t},\n\t\tlabel:{\n\t\t\ttype:String,\n\t\t\trequired: true\n\t\t},\n\t}\n</script>\n\n\n// WEBPACK FOOTER //\n// Label.vue?5a1f1299","<template>\n\t<div class=\"cf-alert-wrap cf-hide\">\n\t\t<p class=\"cf-alert cf-alert-success\" v-if=\"show && success\">\n\t\t\t{{message}}\n\t\t</p>\n\t\t<p class=\"cf-alert cf-alert-warning\" v-if=\"show && ! success\">\n\t\t\t{{message}}\n\t\t</p>\n\t</div>\n</template>\n<script>\nexport default {\n\tprops: [\n\t\t'success',\n\t\t'message',\n\t\t'show'\n\t],\n\twatch : {\n\t\tshow: function () {\n\t\t\tif( this.show ){\n\t\t\t\tthis.$el.className = \"cf-alert-wrap cf-show\";\n\t\t\t}else{\n\t\t\t\tthis.$el.className = \"cf-alert-wrap cf-hide\";\n\t\t\t}\n\t\t}\n\t}\n\n}\n</script>\n<style>\n\t.cf-alert {\n\t\tdisplay: inline-block;\n\t\tpadding: 4px;\n\t\tborder-radius: 4px;\n\t}\n\t.cf-alert-success {\n\t\tbackground: #a3bf61;\n\t\tcolor: #fff;\n\t}\n\t.cf-alert-error {\n\t\tbackground: #ff0000;\n\t\tcolor: #fff;\n\t}\n\n\t.cf-alert-wrap{\n\t\tmargin-top: -5px;\n\t}\n\n\t.cf-alert p {\n\t\tpadding: 0;\n\t}\n</style>\n\n\n// WEBPACK FOOTER //\n// Status.vue?356c271a","<template>\n\t<div>\n\t\t<div class=\"caldera-config-group\">\n\t\t\t<label v-if=\"form.send_local != true\" v-bind:for=\"sendLocalIdAttr\">\n\t\t\t\t\tDisable enhanced delivery for this form\n\t\t\t</label>\n\t\t\t<label v-else v-bind:for=\"sendLocalIdAttr\">\n\t\t\t\t\tEnhanced delivery is disabled for this form\n\t\t\t</label>\n\t\t\t<div class=\"caldera-config-field\">\n\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tv-model=\"form.send_local\"\n\t\t\t\t\t\tv-bind:id=\"sendLocalIdAttr\"\n\t\t\t\t\t\t@change=\"changeSendLocal\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"form.send_local != true\">\n\t\t\t<div class=\"caldera-config-group\">\n\t\t\t\t<label v-bind:for=\"layoutIdAttr\">\n\t\t\t\t\tEmail Layout\n\t\t\t\t</label>\n\t\t\t\t<div class=\"caldera-config-field\">\n\t\t\t\t\t<select\n\t\t\t\t\t\tv-bind:id=\"layoutIdAttr\"\n\t\t\t\t\t\tv-model=\"form.layout\"\n\t\t\t\t\t\t@change=\"changeLayout\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<option></option>\n\t\t\t\t\t\t<option v-for=\"option in layouts\" v-bind:value=\"option.id\">\n\t\t\t\t\t\t\t{{ option.name }}\n\t\t\t\t\t\t</option>\n\t\t\t\t\t</select>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"caldera-config-group\">\n\t\t\t\t<label v-bind:for=\"pdfLayoutIdAttr\">\n\t\t\t\t\tPDF Layout\n\t\t\t\t</label>\n\t\t\t\t\t<div class=\"caldera-config-field\">\n\t\t\t\t\t\t<select\n\t\t\t\t\t\t\t\tv-bind:id=\"pdfLayoutIdAttr\"\n\t\t\t\t\t\t\t\tv-model=\"form.pdf_layout\"\n\t\t\t\t\t\t\t\t@change=\"changePDFLayout\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<option></option>\n\t\t\t\t\t\t\t<option v-for=\"option in layouts\" v-bind:value=\"option.id\">\n\t\t\t\t\t\t\t\t{{ option.name }}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t</select>\n\t\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"caldera-config-group\">\n\t\t\t\t<label v-bind:for=\"attachPDFIdAttr\">\n\t\t\t\t\tAttach PDF To Main Mailer\n\t\t\t\t</label>\n\t\t\t\t<div class=\"caldera-config-field\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tv-model=\"form.attach_pdf\"\n\t\t\t\t\t\tv-bind:id=\"attachPDFIdAttr\"\n\t\t\t\t\t\t@change=\"changeAttachPDF\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"caldera-config-group\">\n\t\t\t\t<label v-bind:for=\"attachPDFIdAttr\">\n\t\t\t\t\tAdd PDF Link\n\t\t\t\t</label>\n\t\t\t\t<div class=\"caldera-config-field\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tv-model=\"form.pdf_link\"\n\t\t\t\t\t\tv-bind:id=\"attachPDFIdAttr\"\n\t\t\t\t\t\t@change=\"changeLinkPDF\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n<script>\n\timport { mapState } from 'vuex'\n\timport Checkbox from '../Elements/Field/Checkbox';\n\timport { findForm } from '../../store/util/utils';\n\n\texport default{\n\t\tcomponents :{\n\t\t\tcheckbox: Checkbox\n\t\t},\n\t\tprops : [ 'form', 'layouts' ],\n\t\tcomputed :{\n\t\t\tlayoutIdAttr(){\n\t\t\t\treturn 'cf-pro-layout-' + this.form.form_id;\n\t\t\t},\n\t\t\tpdfLayoutIdAttr(){\n\t\t\t\treturn 'cf-pro-layout-pdf-' + this.form.form_id;\n\t\t\t},\n\t\t\tattachPDFIdAttr(){\n\t\t\t\treturn 'cf-pro-layout-' + this.form.form_id;\n\t\t\t},\n\t\t\tlinkPDFIdAttr(){\n\t\t\t\treturn 'cf-pro-layout-' + this.form.form_id;\n\t\t\t},\n sendLocalIdAttr(){\n return 'cf-pro-send-local-' + this.form.form_id;\n },\n\t\t},\n\t\tmethods:{\n\t\t\tcommitChange(what,value){\n\t\t\t\tthis.form[what] = value;\n\t\t\t\tthis.$store.commit( 'form', this.form );\n\t\t\t},\n\t\t\tchangeLayout(ev){\n\t\t\t\tthis.commitChange(ev.target.value,'layout');\n\t\t\t},\n\t\t\tchangePDFLayout(ev){\n\t\t\t\tthis.commitChange(ev.target.value,'pdf_layout');\n\t\t\t},\n\t\t\tchangeAttachPDF(ev){\n\t\t\t\tthis.commitChange(ev.target.value,'attach_pdf');\n\t\t\t},\n\t\t\tchangeLinkPDF(ev){\n\t\t\t\tthis.commitChange(ev.target.value,'pdf_link');\n\t\t\t},\n changeSendLocal(ev){\n this.commitChange(ev.target.value,'send_local');\n }\n\t\t}\n\n\n\t}\n</script>\n\n\n// WEBPACK FOOTER //\n// Form.vue?7a94102f","<template>\n\t<div>\n\t\t<div class=\"caldera-config-group\">\n\t\t\t<label for=\"cf-pro-form-setting-chooser\">\n\t\t\t\tChoose Form\n\t\t\t</label>\n\t\t\t<div class=\"caldera-config-field\">\n\t\t\t\t<select\n\t\t\t\t\tid=\"cf-pro-form-setting-chooser\"\n\t\t\t\t\tv-model=\"editForm\"\n\t\t\t\t>\n\t\t\t\t\t<option></option>\n\t\t\t\t\t<option v-for=\"form in forms\" v-bind:value=\"form.form_id\">\n\t\t\t\t\t\t{{ form.name }}\n\t\t\t\t\t</option>\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t</div>\n\n\n\t\t<div v-if=\"editForm\">\n\t\t\t<form-setting\n\t\t\t\t:form=\"form\"\n\t\t\t\t:layouts=\"layouts\"\n\t\t\t>\n\t\t\t</form-setting>\n\t\t</div>\n\t</div>\n\n\n</template>\n<script>\n\timport Form from './Form';\n\timport { mapState } from 'vuex';\n\timport { mapGetters } from 'vuex'\n\timport { mapActions } from 'vuex'\n\texport default{\n\t\tcomponents:{\n\t\t\t'form-setting': Form\n\t\t},\n\t\tcomputed: mapState({\n\t\t\tforms: state => state.forms,\n\t\t\tlayouts: state => state.layouts,\n\t\t}),\n\t\tmethods: {\n\t\t\t...mapActions([\n\t\t\t\t'getLayouts'\n\t\t\t]),\n\t\t},\n\t\tbeforeMount(){\n\t\t\tthis.getLayouts();\n\t\t},\n\t\tdata(){\n\t\t\treturn{\n\t\t\t\teditForm: 0,\n\t\t\t\tform: {}\n\t\t\t}\n\t\t},\n\t\twatch: {\n\t\t\teditForm(v){\n\t\t\t\tthis.form = this.$store.getters.getFormsById(v);\n\t\t\t}\n\t\t}\n\n\t}\n</script>\n\n\n// WEBPACK FOOTER //\n// Forms.vue?3865799d","<template>\n\t<div class=\"caldera-config-group\">\n\t\t<div class=\"caldera-config-field\">\n\t\t\t<input\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\tv-model='deliveryValue'\n\t\t\t\t\tid=\"cf-pro-enhanced-delivery\"\n\t\t\t\t\taria-describedby=\"cf-pro-enhanced-delivery-desc\"\n\t\t\t/>\n\t\t\t<label for=\"cf-pro-enhanced-delivery\">\n\t\t\t\tEnable Enhanced Delivery\n\t\t\t</label>\n\t\t\t<div class=\"description\" id=\"cf-pro-enhanced-delivery-desc\">\n\t\t\t\t<p>If enabled, messages are sent via Caldera Forms Pro Servers</p>\n\t\t\t\t<ul v-if=\"enhancedDelivery\">\n\t\t\t\t\t<li>Forms must use database entry tracking.</li>\n\t\t\t\t\t<li>From Email setting will be used as the reply-to.</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n<script>\n\timport { mapGetters } from 'vuex';\n\n\texport default {\n computed: {\n ...mapGetters([\n 'enhancedDelivery'\n ]),\n deliveryValue: {\n get() {\n return this.enhancedDelivery;\n },\n set(value) {\n this.$store.commit('enhancedDelivery', value);\n }\n }\n },\n }\n</script>\n\n\n// WEBPACK FOOTER //\n// enhancedDelivery.vue?3dab0983","<template>\n <div>\n <div class=\"caldera-config-group\">\n <div aria-labelledby=\"minLogLevelTitle\" aria-describedby=\"minLogLevelInfo\">\n <label for=\"cf-pro-form-log-level-chooser\" id=\"minLogLevelTitle\">\n {{ strings.minLogLevelTitle }}\n </label>\n <p id=\"minLogLevelInfo\">{{ strings.minLogLevelInfo}}</p>\n </div>\n <div class=\"caldera-config-field\">\n <select\n id=\"cf-pro-form-log-level-chooser\"\n v-model=\"logLevelValue\"\n >\n <option v-for=\"level in logLevels\" v-bind:value=\"level.number\" v-key=\"level.number\">\n {{ level.name }}\n </option>\n\n </select>\n </div>\n </div>\n </div>\n\n</template>\n<script>\n import { mapGetters } from 'vuex';\n\n export default{\n computed : {\n ...mapGetters([\n 'logLevels',\n 'logLevel',\n 'strings'\n ]),\n logLevelValue: {\n get() {\n return this.logLevel;\n },\n set(value) {\n this.$store.commit('logLevel', value);\n }\n },\n },\n }\n\n</script>\n\n\n// WEBPACK FOOTER //\n// logLevel.vue?5bfc5662","<template>\n <a v-bind:href=\"strings.apiKeysViewLink\" :alt=\"strings.apiKeysViewText\" target=\"_blank\">{{ strings.apiKeysViewText }}</a>\n</template>\n<script>\n import { mapGetters } from 'vuex'\n\n export default{\n\n computed :{\n ...mapGetters([\n 'strings'\n ])\n },\n\n }\n</script>\n\n\n\n// WEBPACK FOOTER //\n// linkKeys.vue?528979b5","<template>\n\t<div id=\"cf-pro-message-settings\">\n\t\t<div id=\"cf-pro-message-setting-inner\">\n\t\t\t<div class=\"caldera-editor-header\">\n\t\t\t\t<ul class=\"caldera-editor-header-nav\">\n\t\t\t\t\t<li class=\"caldera-editor-logo\">\n\t\t\t\t\t\t<span class=\"caldera-forms-name\">\n\t\t\t\t\t\t\tCaldera Forms Pro\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li class=\"status good\" v-if=\"connected\">\n\t\t\t\t\t\tConnected\n\t\t\t\t\t</li>\n\t\t\t\t\t<li class=\"status bad\" v-if=\"!connected\">\n\t\t\t\t\t\tNot Connected\n\t\t\t\t\t</li>\n\t\t\t\t\t<li class=\"cf-pro-save\">\n\t\t\t\t\t\t<input type=\"submit\" class=\"button button-primary\" value=\"Save\" @click=\"save\"/>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li id=\"cf-pro-alert-wrap\">\n\t\t\t\t\t\t<status\n\t\t\t\t\t\t\t:message=\"mainAlert.message\"\n\t\t\t\t\t\t\t:success=\"mainAlert.success\"\n\t\t\t\t\t\t\t:show=\"mainAlert.show\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</status>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t<div class=\"cf-pro-settings\" v-cloak>\n\t\t\t\t<div>\n\t\t\t\t\t<tabs :options=\"{ useUrlFragment: false }\">\n\t\t\t\t\t\t<tab name=\"Account\">\n\t\t\t\t\t\t\t<account-edit></account-edit>\n\t\t\t\t\t\t</tab>\n\t\t\t\t\t\t<tab name=\"Form Settings\">\n\t\t\t\t\t\t\t<div v-if=\"connected\">\n\t\t\t\t\t\t\t\t<forms-settings></forms-settings>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div v-else>\n\t\t\t\t\t\t\t\tYou must connected to Caldera Forms Pro First\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</tab>\n\t\t\t\t\t\t<tab name=\"Settings\">\n\t\t\t\t\t\t\t<delivery></delivery>\n\t\t\t\t\t\t\t<logs></logs>\n\t\t\t\t\t\t</tab>\n\t\t\t\t\t</tabs>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n<script>\n\timport { mapState, mapGetters, mapActions, mapMutations } from 'vuex';\n\timport AccountDisplay from '../components/Account/display';\n\timport AccountEdit from '../components/Account/Edit';\n\timport FormsSettings from '../components/FormSettings/Forms';\n\timport enhancedDelivery from '../components/GeneralSettings/enhancedDelivery';\n import logLevel from '../components/GeneralSettings/logLevel';\n\timport Status from '../components/Elements/Status/Status.vue'\n\texport default{\n\t\tcomponents :{\n\t\t\t'account-display': AccountDisplay,\n\t\t\t'account-edit' : AccountEdit,\n\t\t\t'forms-settings' : FormsSettings,\n\t\t\t'delivery' : enhancedDelivery,\n 'logs' : logLevel,\n\t\t\t'status' : Status\n\t\t},\n\t\tcomputed: mapState({\n\t\t\tloading: state => state.loading,\n\t\t\tconnected: state => state.connected,\n\t\t\tpublicKey: state => state.account.apiKeys.public,\n\t\t\tenhancedDelivery: state => state.settings.enhancedDelivery,\n logLevel: state => state.settings.logLevel,\n\t\t\tmainAlert: state => state.mainAlert\n\t\t}),\n\t\tbeforeMount(){\n\t\t\t[].forEach.call(document.querySelectorAll('.update-nag'),function(e){\n\t\t\t\te.parentNode.removeChild(e);\n\t\t\t});\n\n\t\t\tthis.$store.dispatch( 'getAccount' );\n\t\t},\n\t\tmethods:{\n\t\t\tsave(){\n\t\t\t\tthis.$store.dispatch( 'saveAccount' );\n\t\t\t}\n\t\t}\n\t}\n</script>\n<style>\n\t[v-cloak] {\n\t\tdisplay: none;\n\t\tvisibility: hidden;\n\t}\n\n\t.cf-pro-settings {\n\t\tmargin-top: 50px;\n\t}\n\n\t.cf-pro-save input.button {\n\t\tmargin: 10px;\n\t}\n\n\tli.status {\n\t\tpadding: 14px !important;\n\t\tcolor: white;\n\t}\n\n\tli.status.good {\n\t\tbackground-color: #0b7a6f;\n\t}\n\n\tli.status.bad {\n\t\tbackground-color: red;\n\t}\n\n\n\t.tabs-component-panels,ul.tabs-component-tabs {\n\t\tfloat: left;\n\t\tdisplay:inline-block\n\t}\n\n\t.tabs-component-panels{\n\t\tpadding: 1rem;\n\t\tfont-size: 1rem;\n\t}\n\tul.tabs-component-tabs{\n\t\tbackground: #0b7a6f;\n\n\t}\n\tli.tabs-component-tab {\n\t\tmargin-bottom: 0;\n\t\tborder-bottom: thin solid white;\n\t\tpadding: 0;\n\t}\n\tli.tabs-component-tab:last-child() {\n\t\tborder-bottom: none;\n\t }\n\tli.tabs-component-tab a{\n\t\tdisplay: block;\n\t\twidth: 69%;\n\t\tcolor: white;\n\t\tfont-size: 1rem;\n\t\tpadding: 1rem 1.4rem;\n\t\ttext-decoration: none;\n\t\ttext-align: center;\n\t}\n\tli.tabs-component-tab.is-active{\n\t\tbackground-color: #ff7e30;\n\t}\n\n\t.tabs-component-panels section:nth-child(3) .caldera-config-group {\n\t\tmargin: 0 1rem 0;\n\t}\n\t.tabs-component-panels section:nth-child(3) label {\n\t\tdisplay: inline;\n\t\tmargin: 0;\n\t}\n\n</style>\n\n\n// WEBPACK FOOTER //\n// Settings.vue?3500228d","<template>\n\t<div id=\"cf-pro-form-settings\">\n\t\t<div v-if=\"connected\">\n\t\t\t<form-setting :form=\"form\" :layouts=\"layouts\"></form-setting>\n\t\t</div>\n\t\t<div v-if=\"!connected\">\n\t\t\t<link-keys></link-keys>\n\t\t</div>\n\t\t<div id=\"cf-pro-alert-wrap\">\n\t\t\t<status\n\t\t\t\t\t:message=\"mainAlert.message\"\n\t\t\t\t\t:success=\"mainAlert.success\"\n\t\t\t\t\t:show=\"mainAlert.show\"\n\t\t\t>\n\t\t\t</status>\n\t\t</div>\n\t</div>\n</template>\n<script>\n\n\timport { mapState } from 'vuex'\n\timport { mapActions } from 'vuex'\n\timport debounce from 'lodash.debounce';\n\timport Status from '../components/Elements/Status/Status';\n\timport formSetting from '../components/FormSettings/Form.vue';\n import linkKeys from '../components/Link/linkKeys.vue';\n\n\texport default{\n\t\tcomponents: {\n\t\t\t'form-setting' : formSetting,\n 'link-keys' : linkKeys,\n\t\t\t'status' : Status\n\t\t},\n\t\tmethods: {\n\t\t\t...mapActions([\n\t\t\t\t'getLayouts',\n\t\t\t\t'getAccount',\n\t\t\t\t'saveAccount'\n\t\t\t]),\n\t\t},\n\t\tbeforeMount(){\n\t\t\tthis.getAccount().then( () => {\n\t\t\t\tthis.getLayouts();\n\t\t\t\tthis.form = this.$store.getters.getFormsById( this.formScreen );\n\t\t\t});\n\n\t\t},\n\t\tcomputed: mapState({\n\t\t\tlayouts: state => state.layouts,\n\t\t\tconnected: state => state.connected,\n\t\t\tformScreen: state => state.formScreen,\n\t\t\tmainAlert: state => state.mainAlert\n\t\t}),\n\t\tdata(){\n\t\t\treturn{\n\t\t\t\tform: {},\n\t\t\t}\n\t\t}\n\n\n\t}\n</script>\n\n\n// WEBPACK FOOTER //\n// Tab.vue?9f2b6b52","module.exports = {\"modp1\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\"},\"modp2\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\"},\"modp5\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\"},\"modp14\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\"},\"modp15\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\"},\"modp16\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\"},\"modp17\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\"},\"modp18\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\"}}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/diffie-hellman/lib/primes.json\n// module id = 162\n// module chunks = 1","module.exports = {\"_args\":[[\"elliptic@6.4.0\",\"/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client\"]],\"_development\":true,\"_from\":\"elliptic@6.4.0\",\"_id\":\"elliptic@6.4.0\",\"_inBundle\":false,\"_integrity\":\"sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=\",\"_location\":\"/elliptic\",\"_phantomChildren\":{},\"_requested\":{\"type\":\"version\",\"registry\":true,\"raw\":\"elliptic@6.4.0\",\"name\":\"elliptic\",\"escapedName\":\"elliptic\",\"rawSpec\":\"6.4.0\",\"saveSpec\":null,\"fetchSpec\":\"6.4.0\"},\"_requiredBy\":[\"/browserify-sign\",\"/create-ecdh\"],\"_resolved\":\"https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz\",\"_spec\":\"6.4.0\",\"_where\":\"/Users/josh/sites/caldera-dev/wp-content/plugins/caldera-forms/includes/cf-pro-client\",\"author\":{\"name\":\"Fedor Indutny\",\"email\":\"fedor@indutny.com\"},\"bugs\":{\"url\":\"https://github.com/indutny/elliptic/issues\"},\"dependencies\":{\"bn.js\":\"^4.4.0\",\"brorand\":\"^1.0.1\",\"hash.js\":\"^1.0.0\",\"hmac-drbg\":\"^1.0.0\",\"inherits\":\"^2.0.1\",\"minimalistic-assert\":\"^1.0.0\",\"minimalistic-crypto-utils\":\"^1.0.0\"},\"description\":\"EC cryptography\",\"devDependencies\":{\"brfs\":\"^1.4.3\",\"coveralls\":\"^2.11.3\",\"grunt\":\"^0.4.5\",\"grunt-browserify\":\"^5.0.0\",\"grunt-cli\":\"^1.2.0\",\"grunt-contrib-connect\":\"^1.0.0\",\"grunt-contrib-copy\":\"^1.0.0\",\"grunt-contrib-uglify\":\"^1.0.1\",\"grunt-mocha-istanbul\":\"^3.0.1\",\"grunt-saucelabs\":\"^8.6.2\",\"istanbul\":\"^0.4.2\",\"jscs\":\"^2.9.0\",\"jshint\":\"^2.6.0\",\"mocha\":\"^2.1.0\"},\"files\":[\"lib\"],\"homepage\":\"https://github.com/indutny/elliptic\",\"keywords\":[\"EC\",\"Elliptic\",\"curve\",\"Cryptography\"],\"license\":\"MIT\",\"main\":\"lib/elliptic.js\",\"name\":\"elliptic\",\"repository\":{\"type\":\"git\",\"url\":\"git+ssh://git@github.com/indutny/elliptic.git\"},\"scripts\":{\"jscs\":\"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js\",\"jshint\":\"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js\",\"lint\":\"npm run jscs && npm run jshint\",\"test\":\"npm run lint && npm run unit\",\"unit\":\"istanbul test _mocha --reporter=spec test/index.js\",\"version\":\"grunt dist && git add dist/\"},\"version\":\"6.4.0\"}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/elliptic/package.json\n// module id = 176\n// module chunks = 1","// removed by extract-text-webpack-plugin\nmodule.exports = {\"cf-pro-account-edit\":\"style__cf-pro-account-edit___6_kkC\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/components/Account/style.css\n// module id = 177\n// module chunks = 1","module.exports = {\"2.16.840.1.101.3.4.1.1\":\"aes-128-ecb\",\"2.16.840.1.101.3.4.1.2\":\"aes-128-cbc\",\"2.16.840.1.101.3.4.1.3\":\"aes-128-ofb\",\"2.16.840.1.101.3.4.1.4\":\"aes-128-cfb\",\"2.16.840.1.101.3.4.1.21\":\"aes-192-ecb\",\"2.16.840.1.101.3.4.1.22\":\"aes-192-cbc\",\"2.16.840.1.101.3.4.1.23\":\"aes-192-ofb\",\"2.16.840.1.101.3.4.1.24\":\"aes-192-cfb\",\"2.16.840.1.101.3.4.1.41\":\"aes-256-ecb\",\"2.16.840.1.101.3.4.1.42\":\"aes-256-cbc\",\"2.16.840.1.101.3.4.1.43\":\"aes-256-ofb\",\"2.16.840.1.101.3.4.1.44\":\"aes-256-cfb\"}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/parse-asn1/aesid.json\n// module id = 194\n// module chunks = 1","\n/* styles */\nrequire(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap&-autoprefixer!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-a873166e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Edit.vue\")\n\nvar Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Edit.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-a873166e\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Edit.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/components/Account/Edit.vue\n// module id = 216\n// module chunks = 1","var Component = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Checkbox.vue\"),\n /* template */\n require(\"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2a9917a3\\\"}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Checkbox.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/components/Elements/Field/Checkbox.vue\n// module id = 217\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Input.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1106535b\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Input.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/components/Elements/Parts/Input/Input.vue\n// module id = 218\n// module chunks = 1","var Component = require(\"!../../../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Label.vue\"),\n /* template */\n require(\"!!../../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2218dfa2\\\"}!../../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Label.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/components/Elements/Parts/Label/Label.vue\n// module id = 219\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Forms.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-28ee6bc4\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Forms.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/components/FormSettings/Forms.vue\n// module id = 220\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./enhancedDelivery.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0ad2672a\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./enhancedDelivery.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/components/GeneralSettings/enhancedDelivery.vue\n// module id = 221\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./logLevel.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-967240fe\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./logLevel.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/components/GeneralSettings/logLevel.vue\n// module id = 222\n// module chunks = 1","var Component = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./linkKeys.vue\"),\n /* template */\n require(\"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-698469d6\\\"}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./linkKeys.vue\"),\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./client/components/Link/linkKeys.vue\n// module id = 223\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.deliveryValue),\n expression: \"deliveryValue\"\n }],\n attrs: {\n \"type\": \"checkbox\",\n \"id\": \"cf-pro-enhanced-delivery\",\n \"aria-describedby\": \"cf-pro-enhanced-delivery-desc\"\n },\n domProps: {\n \"checked\": Array.isArray(_vm.deliveryValue) ? _vm._i(_vm.deliveryValue, null) > -1 : (_vm.deliveryValue)\n },\n on: {\n \"__c\": function($event) {\n var $$a = _vm.deliveryValue,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$el.checked) {\n $$i < 0 && (_vm.deliveryValue = $$a.concat([$$v]))\n } else {\n $$i > -1 && (_vm.deliveryValue = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.deliveryValue = $$c\n }\n }\n }\n }), _vm._v(\" \"), _c('label', {\n attrs: {\n \"for\": \"cf-pro-enhanced-delivery\"\n }\n }, [_vm._v(\"\\n\\t\\t\\tEnable Enhanced Delivery\\n\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"description\",\n attrs: {\n \"id\": \"cf-pro-enhanced-delivery-desc\"\n }\n }, [_c('p', [_vm._v(\"If enabled, messages are sent via Caldera Forms Pro Servers\")]), _vm._v(\" \"), (_vm.enhancedDelivery) ? _c('ul', [_c('li', [_vm._v(\"Forms must use database entry tracking.\")]), _vm._v(\" \"), _c('li', [_vm._v(\"From Email setting will be used as the reply-to.\")])]) : _vm._e()])])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0ad2672a\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/GeneralSettings/enhancedDelivery.vue\n// module id = 224\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"cf-pro-form-settings\"\n }\n }, [(_vm.connected) ? _c('div', [_c('form-setting', {\n attrs: {\n \"form\": _vm.form,\n \"layouts\": _vm.layouts\n }\n })], 1) : _vm._e(), _vm._v(\" \"), (!_vm.connected) ? _c('div', [_c('link-keys')], 1) : _vm._e(), _vm._v(\" \"), _c('div', {\n attrs: {\n \"id\": \"cf-pro-alert-wrap\"\n }\n }, [_c('status', {\n attrs: {\n \"message\": _vm.mainAlert.message,\n \"success\": _vm.mainAlert.success,\n \"show\": _vm.mainAlert.show\n }\n })], 1)])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-0b88b150\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/views/Tab.vue\n// module id = 225\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('input', {\n attrs: {\n \"type\": _vm.type,\n \"id\": _vm.idAttr\n },\n on: {\n \"keyup\": function($event) {\n _vm.handle()\n },\n \"change\": function($event) {\n _vm.handle()\n }\n }\n })\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-1106535b\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Elements/Parts/Input/Input.vue\n// module id = 226\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"cf-pro-message-settings\"\n }\n }, [_c('div', {\n attrs: {\n \"id\": \"cf-pro-message-setting-inner\"\n }\n }, [_c('div', {\n staticClass: \"caldera-editor-header\"\n }, [_c('ul', {\n staticClass: \"caldera-editor-header-nav\"\n }, [_vm._m(0), _vm._v(\" \"), (_vm.connected) ? _c('li', {\n staticClass: \"status good\"\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\tConnected\\n\\t\\t\\t\\t\")]) : _vm._e(), _vm._v(\" \"), (!_vm.connected) ? _c('li', {\n staticClass: \"status bad\"\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\tNot Connected\\n\\t\\t\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _c('li', {\n staticClass: \"cf-pro-save\"\n }, [_c('input', {\n staticClass: \"button button-primary\",\n attrs: {\n \"type\": \"submit\",\n \"value\": \"Save\"\n },\n on: {\n \"click\": _vm.save\n }\n })]), _vm._v(\" \"), _c('li', {\n attrs: {\n \"id\": \"cf-pro-alert-wrap\"\n }\n }, [_c('status', {\n attrs: {\n \"message\": _vm.mainAlert.message,\n \"success\": _vm.mainAlert.success,\n \"show\": _vm.mainAlert.show\n }\n })], 1)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"cf-pro-settings\"\n }, [_c('div', [_c('tabs', {\n attrs: {\n \"options\": {\n useUrlFragment: false\n }\n }\n }, [_c('tab', {\n attrs: {\n \"name\": \"Account\"\n }\n }, [_c('account-edit')], 1), _vm._v(\" \"), _c('tab', {\n attrs: {\n \"name\": \"Form Settings\"\n }\n }, [(_vm.connected) ? _c('div', [_c('forms-settings')], 1) : _c('div', [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\tYou must connected to Caldera Forms Pro First\\n\\t\\t\\t\\t\\t\\t\")])]), _vm._v(\" \"), _c('tab', {\n attrs: {\n \"name\": \"Settings\"\n }\n }, [_c('delivery'), _vm._v(\" \"), _c('logs')], 1)], 1)], 1)])])])\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('li', {\n staticClass: \"caldera-editor-logo\"\n }, [_c('span', {\n staticClass: \"caldera-forms-name\"\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\tCaldera Forms Pro\\n\\t\\t\\t\\t\\t\")])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-16fab070\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/views/Settings.vue\n// module id = 227\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('label', {\n attrs: {\n \"for\": _vm.idAttr\n },\n domProps: {\n \"innerHTML\": _vm._s(_vm.label)\n }\n })\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2218dfa2\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Elements/Parts/Label/Label.vue\n// module id = 228\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": \"cf-pro-form-setting-chooser\"\n }\n }, [_vm._v(\"\\n\\t\\t\\tChoose Form\\n\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.editForm),\n expression: \"editForm\"\n }],\n attrs: {\n \"id\": \"cf-pro-form-setting-chooser\"\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.editForm = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, [_c('option'), _vm._v(\" \"), _vm._l((_vm.forms), function(form) {\n return _c('option', {\n domProps: {\n \"value\": form.form_id\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(form.name) + \"\\n\\t\\t\\t\\t\")])\n })], 2)])]), _vm._v(\" \"), (_vm.editForm) ? _c('div', [_c('form-setting', {\n attrs: {\n \"form\": _vm.form,\n \"layouts\": _vm.layouts\n }\n })], 1) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-28ee6bc4\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/FormSettings/Forms.vue\n// module id = 229\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": _vm.idAttr\n },\n domProps: {\n \"innerHTML\": _vm._s(_vm.label)\n }\n }), _vm._v(\" \"), _c('_input', {\n attrs: {\n \"type\": _vm.checkbox,\n \"idAttr\": _vm.idAttr,\n \"value\": _vm.value,\n \"setting\": _vm.setting\n }\n })], 1)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2a9917a3\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Elements/Field/Checkbox.vue\n// module id = 230\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('a', {\n attrs: {\n \"href\": _vm.strings.apiKeysViewLink,\n \"alt\": _vm.strings.apiKeysViewText,\n \"target\": \"_blank\"\n }\n }, [_vm._v(_vm._s(_vm.strings.apiKeysViewText))])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-698469d6\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Link/linkKeys.vue\n// module id = 231\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('div', {\n attrs: {\n \"aria-labelledby\": \"minLogLevelTitle\",\n \"aria-describedby\": \"minLogLevelInfo\"\n }\n }, [_c('label', {\n attrs: {\n \"for\": \"cf-pro-form-log-level-chooser\",\n \"id\": \"minLogLevelTitle\"\n }\n }, [_vm._v(\"\\n \" + _vm._s(_vm.strings.minLogLevelTitle) + \"\\n \")]), _vm._v(\" \"), _c('p', {\n attrs: {\n \"id\": \"minLogLevelInfo\"\n }\n }, [_vm._v(_vm._s(_vm.strings.minLogLevelInfo))])]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.logLevelValue),\n expression: \"logLevelValue\"\n }],\n attrs: {\n \"id\": \"cf-pro-form-log-level-chooser\"\n },\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.logLevelValue = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, _vm._l((_vm.logLevels), function(level) {\n return _c('option', {\n directives: [{\n name: \"key\",\n rawName: \"v-key\",\n value: (level.number),\n expression: \"level.number\"\n }],\n domProps: {\n \"value\": level.number\n }\n }, [_vm._v(\"\\n \" + _vm._s(level.name) + \"\\n \")])\n }))])])])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-967240fe\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/GeneralSettings/logLevel.vue\n// module id = 232\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"cf-pro-account-edit\"\n }\n }, [_c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": \"cf-pro-api-public\"\n }\n }, [_vm._v(\"\\n\\t\\t\\tPublic Key\\n\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.publicKey),\n expression: \"publicKey\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"cf-pro-api-public\"\n },\n domProps: {\n \"value\": (_vm.publicKey)\n },\n on: {\n \"change\": _vm.publicKeyChange,\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.publicKey = $event.target.value\n }\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": \"cf-pro-api-secret\"\n }\n }, [_vm._v(\"\\n\\t\\t\\tSecret Key\\n\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.secretKey),\n expression: \"secretKey\"\n }],\n attrs: {\n \"type\": \"text\",\n \"id\": \"cf-pro-api-secret\"\n },\n domProps: {\n \"value\": (_vm.secretKey)\n },\n on: {\n \"change\": _vm.secretKeyChange,\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.secretKey = $event.target.value\n }\n }\n })])]), _vm._v(\" \"), (!_vm.connected) ? _c('p', [_vm._v(\"\\n\\t\\tYou can find your API keys in your \"), _c('a', {\n attrs: {\n \"href\": \"https://app.calderaformspro.com/app#/account\",\n \"target\": \"_blank\"\n }\n }, [_vm._v(\"\\n\\t\\tCaldera Forms Pro Account\\n\\t\")])]) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-a873166e\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Account/Edit.vue\n// module id = 233\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"cf-alert-wrap cf-hide\"\n }, [(_vm.show && _vm.success) ? _c('p', {\n staticClass: \"cf-alert cf-alert-success\"\n }, [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.message) + \"\\n\\t\")]) : _vm._e(), _vm._v(\" \"), (_vm.show && !_vm.success) ? _c('p', {\n staticClass: \"cf-alert cf-alert-warning\"\n }, [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.message) + \"\\n\\t\")]) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-b2ae9c58\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/Elements/Status/Status.vue\n// module id = 234\n// module chunks = 1","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', [_c('div', {\n staticClass: \"caldera-config-group\"\n }, [(_vm.form.send_local != true) ? _c('label', {\n attrs: {\n \"for\": _vm.sendLocalIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tDisable enhanced delivery for this form\\n\\t\\t\")]) : _c('label', {\n attrs: {\n \"for\": _vm.sendLocalIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tEnhanced delivery is disabled for this form\\n\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.form.send_local),\n expression: \"form.send_local\"\n }],\n attrs: {\n \"type\": \"checkbox\",\n \"id\": _vm.sendLocalIdAttr\n },\n domProps: {\n \"checked\": Array.isArray(_vm.form.send_local) ? _vm._i(_vm.form.send_local, null) > -1 : (_vm.form.send_local)\n },\n on: {\n \"change\": _vm.changeSendLocal,\n \"__c\": function($event) {\n var $$a = _vm.form.send_local,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$el.checked) {\n $$i < 0 && (_vm.form.send_local = $$a.concat([$$v]))\n } else {\n $$i > -1 && (_vm.form.send_local = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.form.send_local = $$c\n }\n }\n }\n })])]), _vm._v(\" \"), (_vm.form.send_local != true) ? _c('div', [_c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": _vm.layoutIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tEmail Layout\\n\\t\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.form.layout),\n expression: \"form.layout\"\n }],\n attrs: {\n \"id\": _vm.layoutIdAttr\n },\n on: {\n \"change\": [function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.form.layout = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }, _vm.changeLayout]\n }\n }, [_c('option'), _vm._v(\" \"), _vm._l((_vm.layouts), function(option) {\n return _c('option', {\n domProps: {\n \"value\": option.id\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(option.name) + \"\\n\\t\\t\\t\\t\\t\")])\n })], 2)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": _vm.pdfLayoutIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tPDF Layout\\n\\t\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.form.pdf_layout),\n expression: \"form.pdf_layout\"\n }],\n attrs: {\n \"id\": _vm.pdfLayoutIdAttr\n },\n on: {\n \"change\": [function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.form.pdf_layout = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }, _vm.changePDFLayout]\n }\n }, [_c('option'), _vm._v(\" \"), _vm._l((_vm.layouts), function(option) {\n return _c('option', {\n domProps: {\n \"value\": option.id\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\" + _vm._s(option.name) + \"\\n\\t\\t\\t\\t\\t\\t\")])\n })], 2)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": _vm.attachPDFIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tAttach PDF To Main Mailer\\n\\t\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.form.attach_pdf),\n expression: \"form.attach_pdf\"\n }],\n attrs: {\n \"type\": \"checkbox\",\n \"id\": _vm.attachPDFIdAttr\n },\n domProps: {\n \"checked\": Array.isArray(_vm.form.attach_pdf) ? _vm._i(_vm.form.attach_pdf, null) > -1 : (_vm.form.attach_pdf)\n },\n on: {\n \"change\": _vm.changeAttachPDF,\n \"__c\": function($event) {\n var $$a = _vm.form.attach_pdf,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$el.checked) {\n $$i < 0 && (_vm.form.attach_pdf = $$a.concat([$$v]))\n } else {\n $$i > -1 && (_vm.form.attach_pdf = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.form.attach_pdf = $$c\n }\n }\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-group\"\n }, [_c('label', {\n attrs: {\n \"for\": _vm.attachPDFIdAttr\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\tAdd PDF Link\\n\\t\\t\\t\")]), _vm._v(\" \"), _c('div', {\n staticClass: \"caldera-config-field\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.form.pdf_link),\n expression: \"form.pdf_link\"\n }],\n attrs: {\n \"type\": \"checkbox\",\n \"id\": _vm.attachPDFIdAttr\n },\n domProps: {\n \"checked\": Array.isArray(_vm.form.pdf_link) ? _vm._i(_vm.form.pdf_link, null) > -1 : (_vm.form.pdf_link)\n },\n on: {\n \"change\": _vm.changeLinkPDF,\n \"__c\": function($event) {\n var $$a = _vm.form.pdf_link,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$el.checked) {\n $$i < 0 && (_vm.form.pdf_link = $$a.concat([$$v]))\n } else {\n $$i > -1 && (_vm.form.pdf_link = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.form.pdf_link = $$c\n }\n }\n }\n })])])]) : _vm._e()])\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-d44e4582\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./client/components/FormSettings/Form.vue\n// module id = 235\n// module chunks = 1","import Vue from 'vue'\nimport store from './store'\nimport SettingsView from './views/Settings.vue';\nimport {Tabs, Tab} from 'vue-tabs-component';\n\n\nVue.component('tabs', Tabs);\nVue.component('tab', Tab);\n\n//@TODO Remove this hack-ass way of selecting which app to run\n\nif( document.getElementById( 'cf-pro-app' ) ){\n\tconst mainSettingsApp = new Vue({\n\t\tel: '#cf-pro-app',\n\t\tstore,\n\t\tcomponents: {\n\t\t\t'settings': SettingsView\n\t\t},\n\t\trender(h) {\n\t\t\treturn h(\n\t\t\t\t'div',\n\t\t\t\t{\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tid: 'cf-pro-settings'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\th( 'settings')\n\t\t\t\t]\n\t\t\t)\n\t\t}\n\n\t});\n}\n\n//@TODO and this.\nimport FormTab from './views/Tab.vue';\n\nif( document.getElementById( 'cf-pro-app-tab' ) ){\n\tconst tabApp = new Vue({\n\t\tel: '#cf-pro-app-tab',\n\t\tstore,\n\t\tcomponents: {\n\t\t\t'settings': FormTab\n\t\t},\n\t\trender(h) {\n\t\t\treturn h(\n\t\t\t\t'div',\n\t\t\t\t{\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tid: 'cf-pro-settings-tab'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\th( 'settings')\n\t\t\t\t]\n\t\t\t)\n\t\t}\n\t});\n}\n\n\n\nexport { store }\n\n\n\n// WEBPACK FOOTER //\n// ./client/index.js"],"sourceRoot":""}
|
includes/cf-pro-client/dist/client.js
DELETED
@@ -1,3510 +0,0 @@
|
|
1 |
-
/******/ (function(modules) { // webpackBootstrap
|
2 |
-
/******/ function hotDisposeChunk(chunkId) {
|
3 |
-
/******/ delete installedChunks[chunkId];
|
4 |
-
/******/ }
|
5 |
-
/******/ var parentHotUpdateCallback = this["webpackHotUpdate"];
|
6 |
-
/******/ this["webpackHotUpdate"] =
|
7 |
-
/******/ function webpackHotUpdateCallback(chunkId, moreModules) { // eslint-disable-line no-unused-vars
|
8 |
-
/******/ hotAddUpdateChunk(chunkId, moreModules);
|
9 |
-
/******/ if(parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);
|
10 |
-
/******/ } ;
|
11 |
-
/******/
|
12 |
-
/******/ function hotDownloadUpdateChunk(chunkId) { // eslint-disable-line no-unused-vars
|
13 |
-
/******/ var head = document.getElementsByTagName("head")[0];
|
14 |
-
/******/ var script = document.createElement("script");
|
15 |
-
/******/ script.type = "text/javascript";
|
16 |
-
/******/ script.charset = "utf-8";
|
17 |
-
/******/ script.src = __webpack_require__.p + "" + chunkId + "." + hotCurrentHash + ".hot-update.js";
|
18 |
-
/******/ head.appendChild(script);
|
19 |
-
/******/ }
|
20 |
-
/******/
|
21 |
-
/******/ function hotDownloadManifest() { // eslint-disable-line no-unused-vars
|
22 |
-
/******/ return new Promise(function(resolve, reject) {
|
23 |
-
/******/ if(typeof XMLHttpRequest === "undefined")
|
24 |
-
/******/ return reject(new Error("No browser support"));
|
25 |
-
/******/ try {
|
26 |
-
/******/ var request = new XMLHttpRequest();
|
27 |
-
/******/ var requestPath = __webpack_require__.p + "" + hotCurrentHash + ".hot-update.json";
|
28 |
-
/******/ request.open("GET", requestPath, true);
|
29 |
-
/******/ request.timeout = 10000;
|
30 |
-
/******/ request.send(null);
|
31 |
-
/******/ } catch(err) {
|
32 |
-
/******/ return reject(err);
|
33 |
-
/******/ }
|
34 |
-
/******/ request.onreadystatechange = function() {
|
35 |
-
/******/ if(request.readyState !== 4) return;
|
36 |
-
/******/ if(request.status === 0) {
|
37 |
-
/******/ // timeout
|
38 |
-
/******/ reject(new Error("Manifest request to " + requestPath + " timed out."));
|
39 |
-
/******/ } else if(request.status === 404) {
|
40 |
-
/******/ // no update available
|
41 |
-
/******/ resolve();
|
42 |
-
/******/ } else if(request.status !== 200 && request.status !== 304) {
|
43 |
-
/******/ // other failure
|
44 |
-
/******/ reject(new Error("Manifest request to " + requestPath + " failed."));
|
45 |
-
/******/ } else {
|
46 |
-
/******/ // success
|
47 |
-
/******/ try {
|
48 |
-
/******/ var update = JSON.parse(request.responseText);
|
49 |
-
/******/ } catch(e) {
|
50 |
-
/******/ reject(e);
|
51 |
-
/******/ return;
|
52 |
-
/******/ }
|
53 |
-
/******/ resolve(update);
|
54 |
-
/******/ }
|
55 |
-
/******/ };
|
56 |
-
/******/ });
|
57 |
-
/******/ }
|
58 |
-
/******/
|
59 |
-
/******/
|
60 |
-
/******/
|
61 |
-
/******/ var hotApplyOnUpdate = true;
|
62 |
-
/******/ var hotCurrentHash = "cb1efff36ae0ebaf9c6d"; // eslint-disable-line no-unused-vars
|
63 |
-
/******/ var hotCurrentModuleData = {};
|
64 |
-
/******/ var hotMainModule = true; // eslint-disable-line no-unused-vars
|
65 |
-
/******/ var hotCurrentParents = []; // eslint-disable-line no-unused-vars
|
66 |
-
/******/ var hotCurrentParentsTemp = []; // eslint-disable-line no-unused-vars
|
67 |
-
/******/
|
68 |
-
/******/ function hotCreateRequire(moduleId) { // eslint-disable-line no-unused-vars
|
69 |
-
/******/ var me = installedModules[moduleId];
|
70 |
-
/******/ if(!me) return __webpack_require__;
|
71 |
-
/******/ var fn = function(request) {
|
72 |
-
/******/ if(me.hot.active) {
|
73 |
-
/******/ if(installedModules[request]) {
|
74 |
-
/******/ if(installedModules[request].parents.indexOf(moduleId) < 0)
|
75 |
-
/******/ installedModules[request].parents.push(moduleId);
|
76 |
-
/******/ } else hotCurrentParents = [moduleId];
|
77 |
-
/******/ if(me.children.indexOf(request) < 0)
|
78 |
-
/******/ me.children.push(request);
|
79 |
-
/******/ } else {
|
80 |
-
/******/ console.warn("[HMR] unexpected require(" + request + ") from disposed module " + moduleId);
|
81 |
-
/******/ hotCurrentParents = [];
|
82 |
-
/******/ }
|
83 |
-
/******/ hotMainModule = false;
|
84 |
-
/******/ return __webpack_require__(request);
|
85 |
-
/******/ };
|
86 |
-
/******/ var ObjectFactory = function ObjectFactory(name) {
|
87 |
-
/******/ return {
|
88 |
-
/******/ configurable: true,
|
89 |
-
/******/ enumerable: true,
|
90 |
-
/******/ get: function() {
|
91 |
-
/******/ return __webpack_require__[name];
|
92 |
-
/******/ },
|
93 |
-
/******/ set: function(value) {
|
94 |
-
/******/ __webpack_require__[name] = value;
|
95 |
-
/******/ }
|
96 |
-
/******/ };
|
97 |
-
/******/ };
|
98 |
-
/******/ for(var name in __webpack_require__) {
|
99 |
-
/******/ if(Object.prototype.hasOwnProperty.call(__webpack_require__, name)) {
|
100 |
-
/******/ Object.defineProperty(fn, name, ObjectFactory(name));
|
101 |
-
/******/ }
|
102 |
-
/******/ }
|
103 |
-
/******/ Object.defineProperty(fn, "e", {
|
104 |
-
/******/ enumerable: true,
|
105 |
-
/******/ value: function(chunkId) {
|
106 |
-
/******/ if(hotStatus === "ready")
|
107 |
-
/******/ hotSetStatus("prepare");
|
108 |
-
/******/ hotChunksLoading++;
|
109 |
-
/******/ return __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {
|
110 |
-
/******/ finishChunkLoading();
|
111 |
-
/******/ throw err;
|
112 |
-
/******/ });
|
113 |
-
/******/
|
114 |
-
/******/ function finishChunkLoading() {
|
115 |
-
/******/ hotChunksLoading--;
|
116 |
-
/******/ if(hotStatus === "prepare") {
|
117 |
-
/******/ if(!hotWaitingFilesMap[chunkId]) {
|
118 |
-
/******/ hotEnsureUpdateChunk(chunkId);
|
119 |
-
/******/ }
|
120 |
-
/******/ if(hotChunksLoading === 0 && hotWaitingFiles === 0) {
|
121 |
-
/******/ hotUpdateDownloaded();
|
122 |
-
/******/ }
|
123 |
-
/******/ }
|
124 |
-
/******/ }
|
125 |
-
/******/ }
|
126 |
-
/******/ });
|
127 |
-
/******/ return fn;
|
128 |
-
/******/ }
|
129 |
-
/******/
|
130 |
-
/******/ function hotCreateModule(moduleId) { // eslint-disable-line no-unused-vars
|
131 |
-
/******/ var hot = {
|
132 |
-
/******/ // private stuff
|
133 |
-
/******/ _acceptedDependencies: {},
|
134 |
-
/******/ _declinedDependencies: {},
|
135 |
-
/******/ _selfAccepted: false,
|
136 |
-
/******/ _selfDeclined: false,
|
137 |
-
/******/ _disposeHandlers: [],
|
138 |
-
/******/ _main: hotMainModule,
|
139 |
-
/******/
|
140 |
-
/******/ // Module API
|
141 |
-
/******/ active: true,
|
142 |
-
/******/ accept: function(dep, callback) {
|
143 |
-
/******/ if(typeof dep === "undefined")
|
144 |
-
/******/ hot._selfAccepted = true;
|
145 |
-
/******/ else if(typeof dep === "function")
|
146 |
-
/******/ hot._selfAccepted = dep;
|
147 |
-
/******/ else if(typeof dep === "object")
|
148 |
-
/******/ for(var i = 0; i < dep.length; i++)
|
149 |
-
/******/ hot._acceptedDependencies[dep[i]] = callback || function() {};
|
150 |
-
/******/ else
|
151 |
-
/******/ hot._acceptedDependencies[dep] = callback || function() {};
|
152 |
-
/******/ },
|
153 |
-
/******/ decline: function(dep) {
|
154 |
-
/******/ if(typeof dep === "undefined")
|
155 |
-
/******/ hot._selfDeclined = true;
|
156 |
-
/******/ else if(typeof dep === "object")
|
157 |
-
/******/ for(var i = 0; i < dep.length; i++)
|
158 |
-
/******/ hot._declinedDependencies[dep[i]] = true;
|
159 |
-
/******/ else
|
160 |
-
/******/ hot._declinedDependencies[dep] = true;
|
161 |
-
/******/ },
|
162 |
-
/******/ dispose: function(callback) {
|
163 |
-
/******/ hot._disposeHandlers.push(callback);
|
164 |
-
/******/ },
|
165 |
-
/******/ addDisposeHandler: function(callback) {
|
166 |
-
/******/ hot._disposeHandlers.push(callback);
|
167 |
-
/******/ },
|
168 |
-
/******/ removeDisposeHandler: function(callback) {
|
169 |
-
/******/ var idx = hot._disposeHandlers.indexOf(callback);
|
170 |
-
/******/ if(idx >= 0) hot._disposeHandlers.splice(idx, 1);
|
171 |
-
/******/ },
|
172 |
-
/******/
|
173 |
-
/******/ // Management API
|
174 |
-
/******/ check: hotCheck,
|
175 |
-
/******/ apply: hotApply,
|
176 |
-
/******/ status: function(l) {
|
177 |
-
/******/ if(!l) return hotStatus;
|
178 |
-
/******/ hotStatusHandlers.push(l);
|
179 |
-
/******/ },
|
180 |
-
/******/ addStatusHandler: function(l) {
|
181 |
-
/******/ hotStatusHandlers.push(l);
|
182 |
-
/******/ },
|
183 |
-
/******/ removeStatusHandler: function(l) {
|
184 |
-
/******/ var idx = hotStatusHandlers.indexOf(l);
|
185 |
-
/******/ if(idx >= 0) hotStatusHandlers.splice(idx, 1);
|
186 |
-
/******/ },
|
187 |
-
/******/
|
188 |
-
/******/ //inherit from previous dispose call
|
189 |
-
/******/ data: hotCurrentModuleData[moduleId]
|
190 |
-
/******/ };
|
191 |
-
/******/ hotMainModule = true;
|
192 |
-
/******/ return hot;
|
193 |
-
/******/ }
|
194 |
-
/******/
|
195 |
-
/******/ var hotStatusHandlers = [];
|
196 |
-
/******/ var hotStatus = "idle";
|
197 |
-
/******/
|
198 |
-
/******/ function hotSetStatus(newStatus) {
|
199 |
-
/******/ hotStatus = newStatus;
|
200 |
-
/******/ for(var i = 0; i < hotStatusHandlers.length; i++)
|
201 |
-
/******/ hotStatusHandlers[i].call(null, newStatus);
|
202 |
-
/******/ }
|
203 |
-
/******/
|
204 |
-
/******/ // while downloading
|
205 |
-
/******/ var hotWaitingFiles = 0;
|
206 |
-
/******/ var hotChunksLoading = 0;
|
207 |
-
/******/ var hotWaitingFilesMap = {};
|
208 |
-
/******/ var hotRequestedFilesMap = {};
|
209 |
-
/******/ var hotAvailableFilesMap = {};
|
210 |
-
/******/ var hotDeferred;
|
211 |
-
/******/
|
212 |
-
/******/ // The update info
|
213 |
-
/******/ var hotUpdate, hotUpdateNewHash;
|
214 |
-
/******/
|
215 |
-
/******/ function toModuleId(id) {
|
216 |
-
/******/ var isNumber = (+id) + "" === id;
|
217 |
-
/******/ return isNumber ? +id : id;
|
218 |
-
/******/ }
|
219 |
-
/******/
|
220 |
-
/******/ function hotCheck(apply) {
|
221 |
-
/******/ if(hotStatus !== "idle") throw new Error("check() is only allowed in idle status");
|
222 |
-
/******/ hotApplyOnUpdate = apply;
|
223 |
-
/******/ hotSetStatus("check");
|
224 |
-
/******/ return hotDownloadManifest().then(function(update) {
|
225 |
-
/******/ if(!update) {
|
226 |
-
/******/ hotSetStatus("idle");
|
227 |
-
/******/ return null;
|
228 |
-
/******/ }
|
229 |
-
/******/
|
230 |
-
/******/ hotRequestedFilesMap = {};
|
231 |
-
/******/ hotWaitingFilesMap = {};
|
232 |
-
/******/ hotAvailableFilesMap = update.c;
|
233 |
-
/******/ hotUpdateNewHash = update.h;
|
234 |
-
/******/
|
235 |
-
/******/ hotSetStatus("prepare");
|
236 |
-
/******/ var promise = new Promise(function(resolve, reject) {
|
237 |
-
/******/ hotDeferred = {
|
238 |
-
/******/ resolve: resolve,
|
239 |
-
/******/ reject: reject
|
240 |
-
/******/ };
|
241 |
-
/******/ });
|
242 |
-
/******/ hotUpdate = {};
|
243 |
-
/******/ var chunkId = 0;
|
244 |
-
/******/ { // eslint-disable-line no-lone-blocks
|
245 |
-
/******/ /*globals chunkId */
|
246 |
-
/******/ hotEnsureUpdateChunk(chunkId);
|
247 |
-
/******/ }
|
248 |
-
/******/ if(hotStatus === "prepare" && hotChunksLoading === 0 && hotWaitingFiles === 0) {
|
249 |
-
/******/ hotUpdateDownloaded();
|
250 |
-
/******/ }
|
251 |
-
/******/ return promise;
|
252 |
-
/******/ });
|
253 |
-
/******/ }
|
254 |
-
/******/
|
255 |
-
/******/ function hotAddUpdateChunk(chunkId, moreModules) { // eslint-disable-line no-unused-vars
|
256 |
-
/******/ if(!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])
|
257 |
-
/******/ return;
|
258 |
-
/******/ hotRequestedFilesMap[chunkId] = false;
|
259 |
-
/******/ for(var moduleId in moreModules) {
|
260 |
-
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
|
261 |
-
/******/ hotUpdate[moduleId] = moreModules[moduleId];
|
262 |
-
/******/ }
|
263 |
-
/******/ }
|
264 |
-
/******/ if(--hotWaitingFiles === 0 && hotChunksLoading === 0) {
|
265 |
-
/******/ hotUpdateDownloaded();
|
266 |
-
/******/ }
|
267 |
-
/******/ }
|
268 |
-
/******/
|
269 |
-
/******/ function hotEnsureUpdateChunk(chunkId) {
|
270 |
-
/******/ if(!hotAvailableFilesMap[chunkId]) {
|
271 |
-
/******/ hotWaitingFilesMap[chunkId] = true;
|
272 |
-
/******/ } else {
|
273 |
-
/******/ hotRequestedFilesMap[chunkId] = true;
|
274 |
-
/******/ hotWaitingFiles++;
|
275 |
-
/******/ hotDownloadUpdateChunk(chunkId);
|
276 |
-
/******/ }
|
277 |
-
/******/ }
|
278 |
-
/******/
|
279 |
-
/******/ function hotUpdateDownloaded() {
|
280 |
-
/******/ hotSetStatus("ready");
|
281 |
-
/******/ var deferred = hotDeferred;
|
282 |
-
/******/ hotDeferred = null;
|
283 |
-
/******/ if(!deferred) return;
|
284 |
-
/******/ if(hotApplyOnUpdate) {
|
285 |
-
/******/ hotApply(hotApplyOnUpdate).then(function(result) {
|
286 |
-
/******/ deferred.resolve(result);
|
287 |
-
/******/ }, function(err) {
|
288 |
-
/******/ deferred.reject(err);
|
289 |
-
/******/ });
|
290 |
-
/******/ } else {
|
291 |
-
/******/ var outdatedModules = [];
|
292 |
-
/******/ for(var id in hotUpdate) {
|
293 |
-
/******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
|
294 |
-
/******/ outdatedModules.push(toModuleId(id));
|
295 |
-
/******/ }
|
296 |
-
/******/ }
|
297 |
-
/******/ deferred.resolve(outdatedModules);
|
298 |
-
/******/ }
|
299 |
-
/******/ }
|
300 |
-
/******/
|
301 |
-
/******/ function hotApply(options) {
|
302 |
-
/******/ if(hotStatus !== "ready") throw new Error("apply() is only allowed in ready status");
|
303 |
-
/******/ options = options || {};
|
304 |
-
/******/
|
305 |
-
/******/ var cb;
|
306 |
-
/******/ var i;
|
307 |
-
/******/ var j;
|
308 |
-
/******/ var module;
|
309 |
-
/******/ var moduleId;
|
310 |
-
/******/
|
311 |
-
/******/ function getAffectedStuff(updateModuleId) {
|
312 |
-
/******/ var outdatedModules = [updateModuleId];
|
313 |
-
/******/ var outdatedDependencies = {};
|
314 |
-
/******/
|
315 |
-
/******/ var queue = outdatedModules.slice().map(function(id) {
|
316 |
-
/******/ return {
|
317 |
-
/******/ chain: [id],
|
318 |
-
/******/ id: id
|
319 |
-
/******/ };
|
320 |
-
/******/ });
|
321 |
-
/******/ while(queue.length > 0) {
|
322 |
-
/******/ var queueItem = queue.pop();
|
323 |
-
/******/ var moduleId = queueItem.id;
|
324 |
-
/******/ var chain = queueItem.chain;
|
325 |
-
/******/ module = installedModules[moduleId];
|
326 |
-
/******/ if(!module || module.hot._selfAccepted)
|
327 |
-
/******/ continue;
|
328 |
-
/******/ if(module.hot._selfDeclined) {
|
329 |
-
/******/ return {
|
330 |
-
/******/ type: "self-declined",
|
331 |
-
/******/ chain: chain,
|
332 |
-
/******/ moduleId: moduleId
|
333 |
-
/******/ };
|
334 |
-
/******/ }
|
335 |
-
/******/ if(module.hot._main) {
|
336 |
-
/******/ return {
|
337 |
-
/******/ type: "unaccepted",
|
338 |
-
/******/ chain: chain,
|
339 |
-
/******/ moduleId: moduleId
|
340 |
-
/******/ };
|
341 |
-
/******/ }
|
342 |
-
/******/ for(var i = 0; i < module.parents.length; i++) {
|
343 |
-
/******/ var parentId = module.parents[i];
|
344 |
-
/******/ var parent = installedModules[parentId];
|
345 |
-
/******/ if(!parent) continue;
|
346 |
-
/******/ if(parent.hot._declinedDependencies[moduleId]) {
|
347 |
-
/******/ return {
|
348 |
-
/******/ type: "declined",
|
349 |
-
/******/ chain: chain.concat([parentId]),
|
350 |
-
/******/ moduleId: moduleId,
|
351 |
-
/******/ parentId: parentId
|
352 |
-
/******/ };
|
353 |
-
/******/ }
|
354 |
-
/******/ if(outdatedModules.indexOf(parentId) >= 0) continue;
|
355 |
-
/******/ if(parent.hot._acceptedDependencies[moduleId]) {
|
356 |
-
/******/ if(!outdatedDependencies[parentId])
|
357 |
-
/******/ outdatedDependencies[parentId] = [];
|
358 |
-
/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]);
|
359 |
-
/******/ continue;
|
360 |
-
/******/ }
|
361 |
-
/******/ delete outdatedDependencies[parentId];
|
362 |
-
/******/ outdatedModules.push(parentId);
|
363 |
-
/******/ queue.push({
|
364 |
-
/******/ chain: chain.concat([parentId]),
|
365 |
-
/******/ id: parentId
|
366 |
-
/******/ });
|
367 |
-
/******/ }
|
368 |
-
/******/ }
|
369 |
-
/******/
|
370 |
-
/******/ return {
|
371 |
-
/******/ type: "accepted",
|
372 |
-
/******/ moduleId: updateModuleId,
|
373 |
-
/******/ outdatedModules: outdatedModules,
|
374 |
-
/******/ outdatedDependencies: outdatedDependencies
|
375 |
-
/******/ };
|
376 |
-
/******/ }
|
377 |
-
/******/
|
378 |
-
/******/ function addAllToSet(a, b) {
|
379 |
-
/******/ for(var i = 0; i < b.length; i++) {
|
380 |
-
/******/ var item = b[i];
|
381 |
-
/******/ if(a.indexOf(item) < 0)
|
382 |
-
/******/ a.push(item);
|
383 |
-
/******/ }
|
384 |
-
/******/ }
|
385 |
-
/******/
|
386 |
-
/******/ // at begin all updates modules are outdated
|
387 |
-
/******/ // the "outdated" status can propagate to parents if they don't accept the children
|
388 |
-
/******/ var outdatedDependencies = {};
|
389 |
-
/******/ var outdatedModules = [];
|
390 |
-
/******/ var appliedUpdate = {};
|
391 |
-
/******/
|
392 |
-
/******/ var warnUnexpectedRequire = function warnUnexpectedRequire() {
|
393 |
-
/******/ console.warn("[HMR] unexpected require(" + result.moduleId + ") to disposed module");
|
394 |
-
/******/ };
|
395 |
-
/******/
|
396 |
-
/******/ for(var id in hotUpdate) {
|
397 |
-
/******/ if(Object.prototype.hasOwnProperty.call(hotUpdate, id)) {
|
398 |
-
/******/ moduleId = toModuleId(id);
|
399 |
-
/******/ var result;
|
400 |
-
/******/ if(hotUpdate[id]) {
|
401 |
-
/******/ result = getAffectedStuff(moduleId);
|
402 |
-
/******/ } else {
|
403 |
-
/******/ result = {
|
404 |
-
/******/ type: "disposed",
|
405 |
-
/******/ moduleId: id
|
406 |
-
/******/ };
|
407 |
-
/******/ }
|
408 |
-
/******/ var abortError = false;
|
409 |
-
/******/ var doApply = false;
|
410 |
-
/******/ var doDispose = false;
|
411 |
-
/******/ var chainInfo = "";
|
412 |
-
/******/ if(result.chain) {
|
413 |
-
/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> ");
|
414 |
-
/******/ }
|
415 |
-
/******/ switch(result.type) {
|
416 |
-
/******/ case "self-declined":
|
417 |
-
/******/ if(options.onDeclined)
|
418 |
-
/******/ options.onDeclined(result);
|
419 |
-
/******/ if(!options.ignoreDeclined)
|
420 |
-
/******/ abortError = new Error("Aborted because of self decline: " + result.moduleId + chainInfo);
|
421 |
-
/******/ break;
|
422 |
-
/******/ case "declined":
|
423 |
-
/******/ if(options.onDeclined)
|
424 |
-
/******/ options.onDeclined(result);
|
425 |
-
/******/ if(!options.ignoreDeclined)
|
426 |
-
/******/ abortError = new Error("Aborted because of declined dependency: " + result.moduleId + " in " + result.parentId + chainInfo);
|
427 |
-
/******/ break;
|
428 |
-
/******/ case "unaccepted":
|
429 |
-
/******/ if(options.onUnaccepted)
|
430 |
-
/******/ options.onUnaccepted(result);
|
431 |
-
/******/ if(!options.ignoreUnaccepted)
|
432 |
-
/******/ abortError = new Error("Aborted because " + moduleId + " is not accepted" + chainInfo);
|
433 |
-
/******/ break;
|
434 |
-
/******/ case "accepted":
|
435 |
-
/******/ if(options.onAccepted)
|
436 |
-
/******/ options.onAccepted(result);
|
437 |
-
/******/ doApply = true;
|
438 |
-
/******/ break;
|
439 |
-
/******/ case "disposed":
|
440 |
-
/******/ if(options.onDisposed)
|
441 |
-
/******/ options.onDisposed(result);
|
442 |
-
/******/ doDispose = true;
|
443 |
-
/******/ break;
|
444 |
-
/******/ default:
|
445 |
-
/******/ throw new Error("Unexception type " + result.type);
|
446 |
-
/******/ }
|
447 |
-
/******/ if(abortError) {
|
448 |
-
/******/ hotSetStatus("abort");
|
449 |
-
/******/ return Promise.reject(abortError);
|
450 |
-
/******/ }
|
451 |
-
/******/ if(doApply) {
|
452 |
-
/******/ appliedUpdate[moduleId] = hotUpdate[moduleId];
|
453 |
-
/******/ addAllToSet(outdatedModules, result.outdatedModules);
|
454 |
-
/******/ for(moduleId in result.outdatedDependencies) {
|
455 |
-
/******/ if(Object.prototype.hasOwnProperty.call(result.outdatedDependencies, moduleId)) {
|
456 |
-
/******/ if(!outdatedDependencies[moduleId])
|
457 |
-
/******/ outdatedDependencies[moduleId] = [];
|
458 |
-
/******/ addAllToSet(outdatedDependencies[moduleId], result.outdatedDependencies[moduleId]);
|
459 |
-
/******/ }
|
460 |
-
/******/ }
|
461 |
-
/******/ }
|
462 |
-
/******/ if(doDispose) {
|
463 |
-
/******/ addAllToSet(outdatedModules, [result.moduleId]);
|
464 |
-
/******/ appliedUpdate[moduleId] = warnUnexpectedRequire;
|
465 |
-
/******/ }
|
466 |
-
/******/ }
|
467 |
-
/******/ }
|
468 |
-
/******/
|
469 |
-
/******/ // Store self accepted outdated modules to require them later by the module system
|
470 |
-
/******/ var outdatedSelfAcceptedModules = [];
|
471 |
-
/******/ for(i = 0; i < outdatedModules.length; i++) {
|
472 |
-
/******/ moduleId = outdatedModules[i];
|
473 |
-
/******/ if(installedModules[moduleId] && installedModules[moduleId].hot._selfAccepted)
|
474 |
-
/******/ outdatedSelfAcceptedModules.push({
|
475 |
-
/******/ module: moduleId,
|
476 |
-
/******/ errorHandler: installedModules[moduleId].hot._selfAccepted
|
477 |
-
/******/ });
|
478 |
-
/******/ }
|
479 |
-
/******/
|
480 |
-
/******/ // Now in "dispose" phase
|
481 |
-
/******/ hotSetStatus("dispose");
|
482 |
-
/******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) {
|
483 |
-
/******/ if(hotAvailableFilesMap[chunkId] === false) {
|
484 |
-
/******/ hotDisposeChunk(chunkId);
|
485 |
-
/******/ }
|
486 |
-
/******/ });
|
487 |
-
/******/
|
488 |
-
/******/ var idx;
|
489 |
-
/******/ var queue = outdatedModules.slice();
|
490 |
-
/******/ while(queue.length > 0) {
|
491 |
-
/******/ moduleId = queue.pop();
|
492 |
-
/******/ module = installedModules[moduleId];
|
493 |
-
/******/ if(!module) continue;
|
494 |
-
/******/
|
495 |
-
/******/ var data = {};
|
496 |
-
/******/
|
497 |
-
/******/ // Call dispose handlers
|
498 |
-
/******/ var disposeHandlers = module.hot._disposeHandlers;
|
499 |
-
/******/ for(j = 0; j < disposeHandlers.length; j++) {
|
500 |
-
/******/ cb = disposeHandlers[j];
|
501 |
-
/******/ cb(data);
|
502 |
-
/******/ }
|
503 |
-
/******/ hotCurrentModuleData[moduleId] = data;
|
504 |
-
/******/
|
505 |
-
/******/ // disable module (this disables requires from this module)
|
506 |
-
/******/ module.hot.active = false;
|
507 |
-
/******/
|
508 |
-
/******/ // remove module from cache
|
509 |
-
/******/ delete installedModules[moduleId];
|
510 |
-
/******/
|
511 |
-
/******/ // remove "parents" references from all children
|
512 |
-
/******/ for(j = 0; j < module.children.length; j++) {
|
513 |
-
/******/ var child = installedModules[module.children[j]];
|
514 |
-
/******/ if(!child) continue;
|
515 |
-
/******/ idx = child.parents.indexOf(moduleId);
|
516 |
-
/******/ if(idx >= 0) {
|
517 |
-
/******/ child.parents.splice(idx, 1);
|
518 |
-
/******/ }
|
519 |
-
/******/ }
|
520 |
-
/******/ }
|
521 |
-
/******/
|
522 |
-
/******/ // remove outdated dependency from module children
|
523 |
-
/******/ var dependency;
|
524 |
-
/******/ var moduleOutdatedDependencies;
|
525 |
-
/******/ for(moduleId in outdatedDependencies) {
|
526 |
-
/******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {
|
527 |
-
/******/ module = installedModules[moduleId];
|
528 |
-
/******/ if(module) {
|
529 |
-
/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
|
530 |
-
/******/ for(j = 0; j < moduleOutdatedDependencies.length; j++) {
|
531 |
-
/******/ dependency = moduleOutdatedDependencies[j];
|
532 |
-
/******/ idx = module.children.indexOf(dependency);
|
533 |
-
/******/ if(idx >= 0) module.children.splice(idx, 1);
|
534 |
-
/******/ }
|
535 |
-
/******/ }
|
536 |
-
/******/ }
|
537 |
-
/******/ }
|
538 |
-
/******/
|
539 |
-
/******/ // Not in "apply" phase
|
540 |
-
/******/ hotSetStatus("apply");
|
541 |
-
/******/
|
542 |
-
/******/ hotCurrentHash = hotUpdateNewHash;
|
543 |
-
/******/
|
544 |
-
/******/ // insert new code
|
545 |
-
/******/ for(moduleId in appliedUpdate) {
|
546 |
-
/******/ if(Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {
|
547 |
-
/******/ modules[moduleId] = appliedUpdate[moduleId];
|
548 |
-
/******/ }
|
549 |
-
/******/ }
|
550 |
-
/******/
|
551 |
-
/******/ // call accept handlers
|
552 |
-
/******/ var error = null;
|
553 |
-
/******/ for(moduleId in outdatedDependencies) {
|
554 |
-
/******/ if(Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)) {
|
555 |
-
/******/ module = installedModules[moduleId];
|
556 |
-
/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId];
|
557 |
-
/******/ var callbacks = [];
|
558 |
-
/******/ for(i = 0; i < moduleOutdatedDependencies.length; i++) {
|
559 |
-
/******/ dependency = moduleOutdatedDependencies[i];
|
560 |
-
/******/ cb = module.hot._acceptedDependencies[dependency];
|
561 |
-
/******/ if(callbacks.indexOf(cb) >= 0) continue;
|
562 |
-
/******/ callbacks.push(cb);
|
563 |
-
/******/ }
|
564 |
-
/******/ for(i = 0; i < callbacks.length; i++) {
|
565 |
-
/******/ cb = callbacks[i];
|
566 |
-
/******/ try {
|
567 |
-
/******/ cb(moduleOutdatedDependencies);
|
568 |
-
/******/ } catch(err) {
|
569 |
-
/******/ if(options.onErrored) {
|
570 |
-
/******/ options.onErrored({
|
571 |
-
/******/ type: "accept-errored",
|
572 |
-
/******/ moduleId: moduleId,
|
573 |
-
/******/ dependencyId: moduleOutdatedDependencies[i],
|
574 |
-
/******/ error: err
|
575 |
-
/******/ });
|
576 |
-
/******/ }
|
577 |
-
/******/ if(!options.ignoreErrored) {
|
578 |
-
/******/ if(!error)
|
579 |
-
/******/ error = err;
|
580 |
-
/******/ }
|
581 |
-
/******/ }
|
582 |
-
/******/ }
|
583 |
-
/******/ }
|
584 |
-
/******/ }
|
585 |
-
/******/
|
586 |
-
/******/ // Load self accepted modules
|
587 |
-
/******/ for(i = 0; i < outdatedSelfAcceptedModules.length; i++) {
|
588 |
-
/******/ var item = outdatedSelfAcceptedModules[i];
|
589 |
-
/******/ moduleId = item.module;
|
590 |
-
/******/ hotCurrentParents = [moduleId];
|
591 |
-
/******/ try {
|
592 |
-
/******/ __webpack_require__(moduleId);
|
593 |
-
/******/ } catch(err) {
|
594 |
-
/******/ if(typeof item.errorHandler === "function") {
|
595 |
-
/******/ try {
|
596 |
-
/******/ item.errorHandler(err);
|
597 |
-
/******/ } catch(err2) {
|
598 |
-
/******/ if(options.onErrored) {
|
599 |
-
/******/ options.onErrored({
|
600 |
-
/******/ type: "self-accept-error-handler-errored",
|
601 |
-
/******/ moduleId: moduleId,
|
602 |
-
/******/ error: err2,
|
603 |
-
/******/ orginalError: err
|
604 |
-
/******/ });
|
605 |
-
/******/ }
|
606 |
-
/******/ if(!options.ignoreErrored) {
|
607 |
-
/******/ if(!error)
|
608 |
-
/******/ error = err2;
|
609 |
-
/******/ }
|
610 |
-
/******/ if(!error)
|
611 |
-
/******/ error = err;
|
612 |
-
/******/ }
|
613 |
-
/******/ } else {
|
614 |
-
/******/ if(options.onErrored) {
|
615 |
-
/******/ options.onErrored({
|
616 |
-
/******/ type: "self-accept-errored",
|
617 |
-
/******/ moduleId: moduleId,
|
618 |
-
/******/ error: err
|
619 |
-
/******/ });
|
620 |
-
/******/ }
|
621 |
-
/******/ if(!options.ignoreErrored) {
|
622 |
-
/******/ if(!error)
|
623 |
-
/******/ error = err;
|
624 |
-
/******/ }
|
625 |
-
/******/ }
|
626 |
-
/******/ }
|
627 |
-
/******/ }
|
628 |
-
/******/
|
629 |
-
/******/ // handle errors in accept handlers and self accepted module load
|
630 |
-
/******/ if(error) {
|
631 |
-
/******/ hotSetStatus("fail");
|
632 |
-
/******/ return Promise.reject(error);
|
633 |
-
/******/ }
|
634 |
-
/******/
|
635 |
-
/******/ hotSetStatus("idle");
|
636 |
-
/******/ return Promise.resolve(outdatedModules);
|
637 |
-
/******/ }
|
638 |
-
/******/
|
639 |
-
/******/ // The module cache
|
640 |
-
/******/ var installedModules = {};
|
641 |
-
/******/
|
642 |
-
/******/ // The require function
|
643 |
-
/******/ function __webpack_require__(moduleId) {
|
644 |
-
/******/
|
645 |
-
/******/ // Check if module is in cache
|
646 |
-
/******/ if(installedModules[moduleId])
|
647 |
-
/******/ return installedModules[moduleId].exports;
|
648 |
-
/******/
|
649 |
-
/******/ // Create a new module (and put it into the cache)
|
650 |
-
/******/ var module = installedModules[moduleId] = {
|
651 |
-
/******/ i: moduleId,
|
652 |
-
/******/ l: false,
|
653 |
-
/******/ exports: {},
|
654 |
-
/******/ hot: hotCreateModule(moduleId),
|
655 |
-
/******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),
|
656 |
-
/******/ children: []
|
657 |
-
/******/ };
|
658 |
-
/******/
|
659 |
-
/******/ // Execute the module function
|
660 |
-
/******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
|
661 |
-
/******/
|
662 |
-
/******/ // Flag the module as loaded
|
663 |
-
/******/ module.l = true;
|
664 |
-
/******/
|
665 |
-
/******/ // Return the exports of the module
|
666 |
-
/******/ return module.exports;
|
667 |
-
/******/ }
|
668 |
-
/******/
|
669 |
-
/******/
|
670 |
-
/******/ // expose the modules object (__webpack_modules__)
|
671 |
-
/******/ __webpack_require__.m = modules;
|
672 |
-
/******/
|
673 |
-
/******/ // expose the module cache
|
674 |
-
/******/ __webpack_require__.c = installedModules;
|
675 |
-
/******/
|
676 |
-
/******/ // identity function for calling harmony imports with the correct context
|
677 |
-
/******/ __webpack_require__.i = function(value) { return value; };
|
678 |
-
/******/
|
679 |
-
/******/ // define getter function for harmony exports
|
680 |
-
/******/ __webpack_require__.d = function(exports, name, getter) {
|
681 |
-
/******/ if(!__webpack_require__.o(exports, name)) {
|
682 |
-
/******/ Object.defineProperty(exports, name, {
|
683 |
-
/******/ configurable: false,
|
684 |
-
/******/ enumerable: true,
|
685 |
-
/******/ get: getter
|
686 |
-
/******/ });
|
687 |
-
/******/ }
|
688 |
-
/******/ };
|
689 |
-
/******/
|
690 |
-
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
691 |
-
/******/ __webpack_require__.n = function(module) {
|
692 |
-
/******/ var getter = module && module.__esModule ?
|
693 |
-
/******/ function getDefault() { return module['default']; } :
|
694 |
-
/******/ function getModuleExports() { return module; };
|
695 |
-
/******/ __webpack_require__.d(getter, 'a', getter);
|
696 |
-
/******/ return getter;
|
697 |
-
/******/ };
|
698 |
-
/******/
|
699 |
-
/******/ // Object.prototype.hasOwnProperty.call
|
700 |
-
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
701 |
-
/******/
|
702 |
-
/******/ // __webpack_public_path__
|
703 |
-
/******/ __webpack_require__.p = "/";
|
704 |
-
/******/
|
705 |
-
/******/ // __webpack_hash__
|
706 |
-
/******/ __webpack_require__.h = function() { return hotCurrentHash; };
|
707 |
-
/******/
|
708 |
-
/******/ // Load entry module and return exports
|
709 |
-
/******/ return hotCreateRequire(244)(__webpack_require__.s = 244);
|
710 |
-
/******/ })
|
711 |
-
/************************************************************************/
|
712 |
-
/******/ ([
|
713 |
-
/* 0 */
|
714 |
-
/* unknown exports provided */
|
715 |
-
/* all exports used */
|
716 |
-
/*!****************************************!*\
|
717 |
-
!*** ./~/inherits/inherits_browser.js ***!
|
718 |
-
\****************************************/
|
719 |
-
/***/ (function(module, exports) {
|
720 |
-
|
721 |
-
eval("if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9qb3NoL3NpdGVzL2NmLWRldi93ZWIvd3AtY29udGVudC9wbHVnaW5zL0NhbGRlcmEtRm9ybXMvaW5jbHVkZXMvY2YtcHJvLWNsaWVudC9ub2RlX21vZHVsZXMvaW5oZXJpdHMvaW5oZXJpdHNfYnJvd3Nlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaWYgKHR5cGVvZiBPYmplY3QuY3JlYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gIC8vIGltcGxlbWVudGF0aW9uIGZyb20gc3RhbmRhcmQgbm9kZS5qcyAndXRpbCcgbW9kdWxlXG4gIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaW5oZXJpdHMoY3Rvciwgc3VwZXJDdG9yKSB7XG4gICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3JcbiAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwge1xuICAgICAgY29uc3RydWN0b3I6IHtcbiAgICAgICAgdmFsdWU6IGN0b3IsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICB9XG4gICAgfSk7XG4gIH07XG59IGVsc2Uge1xuICAvLyBvbGQgc2Nob29sIHNoaW0gZm9yIG9sZCBicm93c2Vyc1xuICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yXG4gICAgdmFyIFRlbXBDdG9yID0gZnVuY3Rpb24gKCkge31cbiAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlXG4gICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKVxuICAgIGN0b3IucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gY3RvclxuICB9XG59XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vaW5oZXJpdHMvaW5oZXJpdHNfYnJvd3Nlci5qc1xuLy8gbW9kdWxlIGlkID0gMFxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
|
722 |
-
|
723 |
-
/***/ }),
|
724 |
-
/* 1 */
|
725 |
-
/* unknown exports provided */
|
726 |
-
/* all exports used */
|
727 |
-
/*!***************************!*\
|
728 |
-
!*** ./~/buffer/index.js ***!
|
729 |
-
\***************************/
|
730 |
-
/***/ (function(module, exports, __webpack_require__) {
|
731 |
-
|
732 |
-
"use strict";
|
733 |
-
eval("/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(/*! base64-js */ 139)\nvar ieee754 = __webpack_require__(/*! ieee754 */ 189)\nvar isArray = __webpack_require__(/*! isarray */ 71)\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../webpack/buildin/global.js */ 12)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9qb3NoL3NpdGVzL2NmLWRldi93ZWIvd3AtY29udGVudC9wbHVnaW5zL0NhbGRlcmEtRm9ybXMvaW5jbHVkZXMvY2YtcHJvLWNsaWVudC9ub2RlX21vZHVsZXMvYnVmZmVyL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLG1EQUFtRDtBQUN4RTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLFVBQVU7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLFlBQVk7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQSx1Q0FBdUMsU0FBUztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGlCQUFpQjtBQUNoQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWEsaUJBQWlCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixTQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsU0FBUztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsU0FBUztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxFQUFFO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGlCQUFpQixTQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixlQUFlO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLHdCQUF3QixRQUFRO0FBQ2hDO0FBQ0EscUJBQXFCLGVBQWU7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLFlBQVk7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHFCQUFxQixTQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxxQkFBcUIsU0FBUztBQUM5QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsU0FBUztBQUM5QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsa0JBQWtCO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxtQkFBbUIsY0FBYztBQUNqQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdURBQXVELE9BQU87QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVEQUF1RCxPQUFPO0FBQzlEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQjtBQUNsQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxlQUFlLFNBQVM7QUFDeEI7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxtQkFBbUIsU0FBUztBQUM1QjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxpQkFBaUI7QUFDaEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUIsWUFBWTtBQUM3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsaUJBQWlCLGdCQUFnQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixnQkFBZ0I7QUFDakM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUJBQWlCLFlBQVk7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogVGhlIGJ1ZmZlciBtb2R1bGUgZnJvbSBub2RlLmpzLCBmb3IgdGhlIGJyb3dzZXIuXG4gKlxuICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGZlcm9zc0BmZXJvc3Mub3JnPiA8aHR0cDovL2Zlcm9zcy5vcmc+XG4gKiBAbGljZW5zZSAgTUlUXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovXG5cbid1c2Ugc3RyaWN0J1xuXG52YXIgYmFzZTY0ID0gcmVxdWlyZSgnYmFzZTY0LWpzJylcbnZhciBpZWVlNzU0ID0gcmVxdWlyZSgnaWVlZTc1NCcpXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzYXJyYXknKVxuXG5leHBvcnRzLkJ1ZmZlciA9IEJ1ZmZlclxuZXhwb3J0cy5TbG93QnVmZmVyID0gU2xvd0J1ZmZlclxuZXhwb3J0cy5JTlNQRUNUX01BWF9CWVRFUyA9IDUwXG5cbi8qKlxuICogSWYgYEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUYDpcbiAqICAgPT09IHRydWUgICAgVXNlIFVpbnQ4QXJyYXkgaW1wbGVtZW50YXRpb24gKGZhc3Rlc3QpXG4gKiAgID09PSBmYWxzZSAgIFVzZSBPYmplY3QgaW1wbGVtZW50YXRpb24gKG1vc3QgY29tcGF0aWJsZSwgZXZlbiBJRTYpXG4gKlxuICogQnJvd3NlcnMgdGhhdCBzdXBwb3J0IHR5cGVkIGFycmF5cyBhcmUgSUUgMTArLCBGaXJlZm94IDQrLCBDaHJvbWUgNyssIFNhZmFyaSA1LjErLFxuICogT3BlcmEgMTEuNissIGlPUyA0LjIrLlxuICpcbiAqIER1ZSB0byB2YXJpb3VzIGJyb3dzZXIgYnVncywgc29tZXRpbWVzIHRoZSBPYmplY3QgaW1wbGVtZW50YXRpb24gd2lsbCBiZSB1c2VkIGV2ZW5cbiAqIHdoZW4gdGhlIGJyb3dzZXIgc3VwcG9ydHMgdHlwZWQgYXJyYXlzLlxuICpcbiAqIE5vdGU6XG4gKlxuICogICAtIEZpcmVmb3ggNC0yOSBsYWNrcyBzdXBwb3J0IGZvciBhZGRpbmcgbmV3IHByb3BlcnRpZXMgdG8gYFVpbnQ4QXJyYXlgIGluc3RhbmNlcyxcbiAqICAgICBTZWU6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTQzOC5cbiAqXG4gKiAgIC0gQ2hyb21lIDktMTAgaXMgbWlzc2luZyB0aGUgYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbi5cbiAqXG4gKiAgIC0gSUUxMCBoYXMgYSBicm9rZW4gYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFycmF5cyBvZlxuICogICAgIGluY29ycmVjdCBsZW5ndGggaW4gc29tZSBzaXR1YXRpb25zLlxuXG4gKiBXZSBkZXRlY3QgdGhlc2UgYnVnZ3kgYnJvd3NlcnMgYW5kIHNldCBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgIHRvIGBmYWxzZWAgc28gdGhleVxuICogZ2V0IHRoZSBPYmplY3QgaW1wbGVtZW50YXRpb24sIHdoaWNoIGlzIHNsb3dlciBidXQgYmVoYXZlcyBjb3JyZWN0bHkuXG4gKi9cbkJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUID0gZ2xvYmFsLlRZUEVEX0FSUkFZX1NVUFBPUlQgIT09IHVuZGVmaW5lZFxuICA/IGdsb2JhbC5UWVBFRF9BUlJBWV9TVVBQT1JUXG4gIDogdHlwZWRBcnJheVN1cHBvcnQoKVxuXG4vKlxuICogRXhwb3J0IGtNYXhMZW5ndGggYWZ0ZXIgdHlwZWQgYXJyYXkgc3VwcG9ydCBpcyBkZXRlcm1pbmVkLlxuICovXG5leHBvcnRzLmtNYXhMZW5ndGggPSBrTWF4TGVuZ3RoKClcblxuZnVuY3Rpb24gdHlwZWRBcnJheVN1cHBvcnQgKCkge1xuICB0cnkge1xuICAgIHZhciBhcnIgPSBuZXcgVWludDhBcnJheSgxKVxuICAgIGFyci5fX3Byb3RvX18gPSB7X19wcm90b19fOiBVaW50OEFycmF5LnByb3RvdHlwZSwgZm9vOiBmdW5jdGlvbiAoKSB7IHJldHVybiA0MiB9fVxuICAgIHJldHVybiBhcnIuZm9vKCkgPT09IDQyICYmIC8vIHR5cGVkIGFycmF5IGluc3RhbmNlcyBjYW4gYmUgYXVnbWVudGVkXG4gICAgICAgIHR5cGVvZiBhcnIuc3ViYXJyYXkgPT09ICdmdW5jdGlvbicgJiYgLy8gY2hyb21lIDktMTAgbGFjayBgc3ViYXJyYXlgXG4gICAgICAgIGFyci5zdWJhcnJheSgxLCAxKS5ieXRlTGVuZ3RoID09PSAwIC8vIGllMTAgaGFzIGJyb2tlbiBgc3ViYXJyYXlgXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG5mdW5jdGlvbiBrTWF4TGVuZ3RoICgpIHtcbiAgcmV0dXJuIEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUXG4gICAgPyAweDdmZmZmZmZmXG4gICAgOiAweDNmZmZmZmZmXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJ1ZmZlciAodGhhdCwgbGVuZ3RoKSB7XG4gIGlmIChrTWF4TGVuZ3RoKCkgPCBsZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW52YWxpZCB0eXBlZCBhcnJheSBsZW5ndGgnKVxuICB9XG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBuZXcgVWludDhBcnJheShsZW5ndGgpXG4gICAgdGhhdC5fX3Byb3RvX18gPSBCdWZmZXIucHJvdG90eXBlXG4gIH0gZWxzZSB7XG4gICAgLy8gRmFsbGJhY2s6IFJldHVybiBhbiBvYmplY3QgaW5zdGFuY2Ugb2YgdGhlIEJ1ZmZlciBjbGFzc1xuICAgIGlmICh0aGF0ID09PSBudWxsKSB7XG4gICAgICB0aGF0ID0gbmV3IEJ1ZmZlcihsZW5ndGgpXG4gICAgfVxuICAgIHRoYXQubGVuZ3RoID0gbGVuZ3RoXG4gIH1cblxuICByZXR1cm4gdGhhdFxufVxuXG4vKipcbiAqIFRoZSBCdWZmZXIgY29uc3RydWN0b3IgcmV0dXJucyBpbnN0YW5jZXMgb2YgYFVpbnQ4QXJyYXlgIHRoYXQgaGF2ZSB0aGVpclxuICogcHJvdG90eXBlIGNoYW5nZWQgdG8gYEJ1ZmZlci5wcm90b3R5cGVgLiBGdXJ0aGVybW9yZSwgYEJ1ZmZlcmAgaXMgYSBzdWJjbGFzcyBvZlxuICogYFVpbnQ4QXJyYXlgLCBzbyB0aGUgcmV0dXJuZWQgaW5zdGFuY2VzIHdpbGwgaGF2ZSBhbGwgdGhlIG5vZGUgYEJ1ZmZlcmAgbWV0aG9kc1xuICogYW5kIHRoZSBgVWludDhBcnJheWAgbWV0aG9kcy4gU3F1YXJlIGJyYWNrZXQgbm90YXRpb24gd29ya3MgYXMgZXhwZWN0ZWQgLS0gaXRcbiAqIHJldHVybnMgYSBzaW5nbGUgb2N0ZXQuXG4gKlxuICogVGhlIGBVaW50OEFycmF5YCBwcm90b3R5cGUgcmVtYWlucyB1bm1vZGlmaWVkLlxuICovXG5cbmZ1bmN0aW9uIEJ1ZmZlciAoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCAmJiAhKHRoaXMgaW5zdGFuY2VvZiBCdWZmZXIpKSB7XG4gICAgcmV0dXJuIG5ldyBCdWZmZXIoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG4gIH1cblxuICAvLyBDb21tb24gY2FzZS5cbiAgaWYgKHR5cGVvZiBhcmcgPT09ICdudW1iZXInKSB7XG4gICAgaWYgKHR5cGVvZiBlbmNvZGluZ09yT2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnSWYgZW5jb2RpbmcgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcnXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBhbGxvY1Vuc2FmZSh0aGlzLCBhcmcpXG4gIH1cbiAgcmV0dXJuIGZyb20odGhpcywgYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG59XG5cbkJ1ZmZlci5wb29sU2l6ZSA9IDgxOTIgLy8gbm90IHVzZWQgYnkgdGhpcyBpbXBsZW1lbnRhdGlvblxuXG4vLyBUT0RPOiBMZWdhY3ksIG5vdCBuZWVkZWQgYW55bW9yZS4gUmVtb3ZlIGluIG5leHQgbWFqb3IgdmVyc2lvbi5cbkJ1ZmZlci5fYXVnbWVudCA9IGZ1bmN0aW9uIChhcnIpIHtcbiAgYXJyLl9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGVcbiAgcmV0dXJuIGFyclxufVxuXG5mdW5jdGlvbiBmcm9tICh0aGF0LCB2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJ2YWx1ZVwiIGFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyJylcbiAgfVxuXG4gIGlmICh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICByZXR1cm4gZnJvbUFycmF5QnVmZmVyKHRoYXQsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmcm9tU3RyaW5nKHRoYXQsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0KVxuICB9XG5cbiAgcmV0dXJuIGZyb21PYmplY3QodGhhdCwgdmFsdWUpXG59XG5cbi8qKlxuICogRnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gQnVmZmVyKGFyZywgZW5jb2RpbmcpIGJ1dCB0aHJvd3MgYSBUeXBlRXJyb3JcbiAqIGlmIHZhbHVlIGlzIGEgbnVtYmVyLlxuICogQnVmZmVyLmZyb20oc3RyWywgZW5jb2RpbmddKVxuICogQnVmZmVyLmZyb20oYXJyYXkpXG4gKiBCdWZmZXIuZnJvbShidWZmZXIpXG4gKiBCdWZmZXIuZnJvbShhcnJheUJ1ZmZlclssIGJ5dGVPZmZzZXRbLCBsZW5ndGhdXSlcbiAqKi9cbkJ1ZmZlci5mcm9tID0gZnVuY3Rpb24gKHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGZyb20obnVsbCwgdmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbn1cblxuaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gIEJ1ZmZlci5wcm90b3R5cGUuX19wcm90b19fID0gVWludDhBcnJheS5wcm90b3R5cGVcbiAgQnVmZmVyLl9fcHJvdG9fXyA9IFVpbnQ4QXJyYXlcbiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC5zcGVjaWVzICYmXG4gICAgICBCdWZmZXJbU3ltYm9sLnNwZWNpZXNdID09PSBCdWZmZXIpIHtcbiAgICAvLyBGaXggc3ViYXJyYXkoKSBpbiBFUzIwMTYuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9idWZmZXIvcHVsbC85N1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCdWZmZXIsIFN5bWJvbC5zcGVjaWVzLCB7XG4gICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0U2l6ZSAoc2l6ZSkge1xuICBpZiAodHlwZW9mIHNpemUgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJzaXplXCIgYXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpXG4gIH0gZWxzZSBpZiAoc2l6ZSA8IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCJzaXplXCIgYXJndW1lbnQgbXVzdCBub3QgYmUgbmVnYXRpdmUnKVxuICB9XG59XG5cbmZ1bmN0aW9uIGFsbG9jICh0aGF0LCBzaXplLCBmaWxsLCBlbmNvZGluZykge1xuICBhc3NlcnRTaXplKHNpemUpXG4gIGlmIChzaXplIDw9IDApIHtcbiAgICByZXR1cm4gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpXG4gIH1cbiAgaWYgKGZpbGwgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE9ubHkgcGF5IGF0dGVudGlvbiB0byBlbmNvZGluZyBpZiBpdCdzIGEgc3RyaW5nLiBUaGlzXG4gICAgLy8gcHJldmVudHMgYWNjaWRlbnRhbGx5IHNlbmRpbmcgaW4gYSBudW1iZXIgdGhhdCB3b3VsZFxuICAgIC8vIGJlIGludGVycHJldHRlZCBhcyBhIHN0YXJ0IG9mZnNldC5cbiAgICByZXR1cm4gdHlwZW9mIGVuY29kaW5nID09PSAnc3RyaW5nJ1xuICAgICAgPyBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSkuZmlsbChmaWxsLCBlbmNvZGluZylcbiAgICAgIDogY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpLmZpbGwoZmlsbClcbiAgfVxuICByZXR1cm4gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpXG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBmaWxsZWQgQnVmZmVyIGluc3RhbmNlLlxuICogYWxsb2Moc2l6ZVssIGZpbGxbLCBlbmNvZGluZ11dKVxuICoqL1xuQnVmZmVyLmFsbG9jID0gZnVuY3Rpb24gKHNpemUsIGZpbGwsIGVuY29kaW5nKSB7XG4gIHJldHVybiBhbGxvYyhudWxsLCBzaXplLCBmaWxsLCBlbmNvZGluZylcbn1cblxuZnVuY3Rpb24gYWxsb2NVbnNhZmUgKHRoYXQsIHNpemUpIHtcbiAgYXNzZXJ0U2l6ZShzaXplKVxuICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUgPCAwID8gMCA6IGNoZWNrZWQoc2l6ZSkgfCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaXplOyArK2kpIHtcbiAgICAgIHRoYXRbaV0gPSAwXG4gICAgfVxuICB9XG4gIHJldHVybiB0aGF0XG59XG5cbi8qKlxuICogRXF1aXZhbGVudCB0byBCdWZmZXIobnVtKSwgYnkgZGVmYXVsdCBjcmVhdGVzIGEgbm9uLXplcm8tZmlsbGVkIEJ1ZmZlciBpbnN0YW5jZS5cbiAqICovXG5CdWZmZXIuYWxsb2NVbnNhZmUgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICByZXR1cm4gYWxsb2NVbnNhZmUobnVsbCwgc2l6ZSlcbn1cbi8qKlxuICogRXF1aXZhbGVudCB0byBTbG93QnVmZmVyKG51bSksIGJ5IGRlZmF1bHQgY3JlYXRlcyBhIG5vbi16ZXJvLWZpbGxlZCBCdWZmZXIgaW5zdGFuY2UuXG4gKi9cbkJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3cgPSBmdW5jdGlvbiAoc2l6ZSkge1xuICByZXR1cm4gYWxsb2NVbnNhZmUobnVsbCwgc2l6ZSlcbn1cblxuZnVuY3Rpb24gZnJvbVN0cmluZyAodGhhdCwgc3RyaW5nLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJyB8fCBlbmNvZGluZyA9PT0gJycpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICB9XG5cbiAgaWYgKCFCdWZmZXIuaXNFbmNvZGluZyhlbmNvZGluZykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImVuY29kaW5nXCIgbXVzdCBiZSBhIHZhbGlkIHN0cmluZyBlbmNvZGluZycpXG4gIH1cblxuICB2YXIgbGVuZ3RoID0gYnl0ZUxlbmd0aChzdHJpbmcsIGVuY29kaW5nKSB8IDBcbiAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBsZW5ndGgpXG5cbiAgdmFyIGFjdHVhbCA9IHRoYXQud3JpdGUoc3RyaW5nLCBlbmNvZGluZylcblxuICBpZiAoYWN0dWFsICE9PSBsZW5ndGgpIHtcbiAgICAvLyBXcml0aW5nIGEgaGV4IHN0cmluZywgZm9yIGV4YW1wbGUsIHRoYXQgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIHdpbGxcbiAgICAvLyBjYXVzZSBldmVyeXRoaW5nIGFmdGVyIHRoZSBmaXJzdCBpbnZhbGlkIGNoYXJhY3RlciB0byBiZSBpZ25vcmVkLiAoZS5nLlxuICAgIC8vICdhYnh4Y2QnIHdpbGwgYmUgdHJlYXRlZCBhcyAnYWInKVxuICAgIHRoYXQgPSB0aGF0LnNsaWNlKDAsIGFjdHVhbClcbiAgfVxuXG4gIHJldHVybiB0aGF0XG59XG5cbmZ1bmN0aW9uIGZyb21BcnJheUxpa2UgKHRoYXQsIGFycmF5KSB7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGggPCAwID8gMCA6IGNoZWNrZWQoYXJyYXkubGVuZ3RoKSB8IDBcbiAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBsZW5ndGgpXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHtcbiAgICB0aGF0W2ldID0gYXJyYXlbaV0gJiAyNTVcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tQXJyYXlCdWZmZXIgKHRoYXQsIGFycmF5LCBieXRlT2Zmc2V0LCBsZW5ndGgpIHtcbiAgYXJyYXkuYnl0ZUxlbmd0aCAvLyB0aGlzIHRocm93cyBpZiBgYXJyYXlgIGlzIG5vdCBhIHZhbGlkIEFycmF5QnVmZmVyXG5cbiAgaWYgKGJ5dGVPZmZzZXQgPCAwIHx8IGFycmF5LmJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0KSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1xcJ29mZnNldFxcJyBpcyBvdXQgb2YgYm91bmRzJylcbiAgfVxuXG4gIGlmIChhcnJheS5ieXRlTGVuZ3RoIDwgYnl0ZU9mZnNldCArIChsZW5ndGggfHwgMCkpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXFwnbGVuZ3RoXFwnIGlzIG91dCBvZiBib3VuZHMnKVxuICB9XG5cbiAgaWYgKGJ5dGVPZmZzZXQgPT09IHVuZGVmaW5lZCAmJiBsZW5ndGggPT09IHVuZGVmaW5lZCkge1xuICAgIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXkpXG4gIH0gZWxzZSBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBhcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5LCBieXRlT2Zmc2V0KVxuICB9IGVsc2Uge1xuICAgIGFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXksIGJ5dGVPZmZzZXQsIGxlbmd0aClcbiAgfVxuXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZVxuICAgIHRoYXQgPSBhcnJheVxuICAgIHRoYXQuX19wcm90b19fID0gQnVmZmVyLnByb3RvdHlwZVxuICB9IGVsc2Uge1xuICAgIC8vIEZhbGxiYWNrOiBSZXR1cm4gYW4gb2JqZWN0IGluc3RhbmNlIG9mIHRoZSBCdWZmZXIgY2xhc3NcbiAgICB0aGF0ID0gZnJvbUFycmF5TGlrZSh0aGF0LCBhcnJheSlcbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tT2JqZWN0ICh0aGF0LCBvYmopIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihvYmopKSB7XG4gICAgdmFyIGxlbiA9IGNoZWNrZWQob2JqLmxlbmd0aCkgfCAwXG4gICAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBsZW4pXG5cbiAgICBpZiAodGhhdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGF0XG4gICAgfVxuXG4gICAgb2JqLmNvcHkodGhhdCwgMCwgMCwgbGVuKVxuICAgIHJldHVybiB0aGF0XG4gIH1cblxuICBpZiAob2JqKSB7XG4gICAgaWYgKCh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgIG9iai5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgfHwgJ2xlbmd0aCcgaW4gb2JqKSB7XG4gICAgICBpZiAodHlwZW9mIG9iai5sZW5ndGggIT09ICdudW1iZXInIHx8IGlzbmFuKG9iai5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVCdWZmZXIodGhhdCwgMClcbiAgICAgIH1cbiAgICAgIHJldHVybiBmcm9tQXJyYXlMaWtlKHRoYXQsIG9iailcbiAgICB9XG5cbiAgICBpZiAob2JqLnR5cGUgPT09ICdCdWZmZXInICYmIGlzQXJyYXkob2JqLmRhdGEpKSB7XG4gICAgICByZXR1cm4gZnJvbUFycmF5TGlrZSh0aGF0LCBvYmouZGF0YSlcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCdGaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgYXJyYXktbGlrZSBvYmplY3QuJylcbn1cblxuZnVuY3Rpb24gY2hlY2tlZCAobGVuZ3RoKSB7XG4gIC8vIE5vdGU6IGNhbm5vdCB1c2UgYGxlbmd0aCA8IGtNYXhMZW5ndGgoKWAgaGVyZSBiZWNhdXNlIHRoYXQgZmFpbHMgd2hlblxuICAvLyBsZW5ndGggaXMgTmFOICh3aGljaCBpcyBvdGhlcndpc2UgY29lcmNlZCB0byB6ZXJvLilcbiAgaWYgKGxlbmd0aCA+PSBrTWF4TGVuZ3RoKCkpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAnc2l6ZTogMHgnICsga01heExlbmd0aCgpLnRvU3RyaW5nKDE2KSArICcgYnl0ZXMnKVxuICB9XG4gIHJldHVybiBsZW5ndGggfCAwXG59XG5cbmZ1bmN0aW9uIFNsb3dCdWZmZXIgKGxlbmd0aCkge1xuICBpZiAoK2xlbmd0aCAhPSBsZW5ndGgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBlcWVxZXFcbiAgICBsZW5ndGggPSAwXG4gIH1cbiAgcmV0dXJuIEJ1ZmZlci5hbGxvYygrbGVuZ3RoKVxufVxuXG5CdWZmZXIuaXNCdWZmZXIgPSBmdW5jdGlvbiBpc0J1ZmZlciAoYikge1xuICByZXR1cm4gISEoYiAhPSBudWxsICYmIGIuX2lzQnVmZmVyKVxufVxuXG5CdWZmZXIuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKGEsIGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYSkgfHwgIUJ1ZmZlci5pc0J1ZmZlcihiKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMnKVxuICB9XG5cbiAgaWYgKGEgPT09IGIpIHJldHVybiAwXG5cbiAgdmFyIHggPSBhLmxlbmd0aFxuICB2YXIgeSA9IGIubGVuZ3RoXG5cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IE1hdGgubWluKHgsIHkpOyBpIDwgbGVuOyArK2kpIHtcbiAgICBpZiAoYVtpXSAhPT0gYltpXSkge1xuICAgICAgeCA9IGFbaV1cbiAgICAgIHkgPSBiW2ldXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICh4IDwgeSkgcmV0dXJuIC0xXG4gIGlmICh5IDwgeCkgcmV0dXJuIDFcbiAgcmV0dXJuIDBcbn1cblxuQnVmZmVyLmlzRW5jb2RpbmcgPSBmdW5jdGlvbiBpc0VuY29kaW5nIChlbmNvZGluZykge1xuICBzd2l0Y2ggKFN0cmluZyhlbmNvZGluZykudG9Mb3dlckNhc2UoKSkge1xuICAgIGNhc2UgJ2hleCc6XG4gICAgY2FzZSAndXRmOCc6XG4gICAgY2FzZSAndXRmLTgnOlxuICAgIGNhc2UgJ2FzY2lpJzpcbiAgICBjYXNlICdsYXRpbjEnOlxuICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgY2FzZSAnYmFzZTY0JzpcbiAgICBjYXNlICd1Y3MyJzpcbiAgICBjYXNlICd1Y3MtMic6XG4gICAgY2FzZSAndXRmMTZsZSc6XG4gICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgcmV0dXJuIHRydWVcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuQnVmZmVyLmNvbmNhdCA9IGZ1bmN0aW9uIGNvbmNhdCAobGlzdCwgbGVuZ3RoKSB7XG4gIGlmICghaXNBcnJheShsaXN0KSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdFwiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpXG4gIH1cblxuICBpZiAobGlzdC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gQnVmZmVyLmFsbG9jKDApXG4gIH1cblxuICB2YXIgaVxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBsZW5ndGggPSAwXG4gICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHtcbiAgICAgIGxlbmd0aCArPSBsaXN0W2ldLmxlbmd0aFxuICAgIH1cbiAgfVxuXG4gIHZhciBidWZmZXIgPSBCdWZmZXIuYWxsb2NVbnNhZmUobGVuZ3RoKVxuICB2YXIgcG9zID0gMFxuICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkge1xuICAgIHZhciBidWYgPSBsaXN0W2ldXG4gICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJsaXN0XCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJylcbiAgICB9XG4gICAgYnVmLmNvcHkoYnVmZmVyLCBwb3MpXG4gICAgcG9zICs9IGJ1Zi5sZW5ndGhcbiAgfVxuICByZXR1cm4gYnVmZmVyXG59XG5cbmZ1bmN0aW9uIGJ5dGVMZW5ndGggKHN0cmluZywgZW5jb2RpbmcpIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihzdHJpbmcpKSB7XG4gICAgcmV0dXJuIHN0cmluZy5sZW5ndGhcbiAgfVxuICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3ID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAoQXJyYXlCdWZmZXIuaXNWaWV3KHN0cmluZykgfHwgc3RyaW5nIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpKSB7XG4gICAgcmV0dXJuIHN0cmluZy5ieXRlTGVuZ3RoXG4gIH1cbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmdcbiAgfVxuXG4gIHZhciBsZW4gPSBzdHJpbmcubGVuZ3RoXG4gIGlmIChsZW4gPT09IDApIHJldHVybiAwXG5cbiAgLy8gVXNlIGEgZm9yIGxvb3AgdG8gYXZvaWQgcmVjdXJzaW9uXG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG4gIGZvciAoOzspIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICBjYXNlICdsYXRpbjEnOlxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgICAgcmV0dXJuIGxlblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgcmV0dXJuIHV0ZjhUb0J5dGVzKHN0cmluZykubGVuZ3RoXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gbGVuICogMlxuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGxlbiA+Pj4gMVxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgcmV0dXJuIGJhc2U2NFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGhcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgcmV0dXJuIHV0ZjhUb0J5dGVzKHN0cmluZykubGVuZ3RoIC8vIGFzc3VtZSB1dGY4XG4gICAgICAgIGVuY29kaW5nID0gKCcnICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5CdWZmZXIuYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGhcblxuZnVuY3Rpb24gc2xvd1RvU3RyaW5nIChlbmNvZGluZywgc3RhcnQsIGVuZCkge1xuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuXG4gIC8vIE5vIG5lZWQgdG8gdmVyaWZ5IHRoYXQgXCJ0aGlzLmxlbmd0aCA8PSBNQVhfVUlOVDMyXCIgc2luY2UgaXQncyBhIHJlYWQtb25seVxuICAvLyBwcm9wZXJ0eSBvZiBhIHR5cGVkIGFycmF5LlxuXG4gIC8vIFRoaXMgYmVoYXZlcyBuZWl0aGVyIGxpa2UgU3RyaW5nIG5vciBVaW50OEFycmF5IGluIHRoYXQgd2Ugc2V0IHN0YXJ0L2VuZFxuICAvLyB0byB0aGVpciB1cHBlci9sb3dlciBib3VuZHMgaWYgdGhlIHZhbHVlIHBhc3NlZCBpcyBvdXQgb2YgcmFuZ2UuXG4gIC8vIHVuZGVmaW5lZCBpcyBoYW5kbGVkIHNwZWNpYWxseSBhcyBwZXIgRUNNQS0yNjIgNnRoIEVkaXRpb24sXG4gIC8vIFNlY3Rpb24gMTMuMy4zLjcgUnVudGltZSBTZW1hbnRpY3M6IEtleWVkQmluZGluZ0luaXRpYWxpemF0aW9uLlxuICBpZiAoc3RhcnQgPT09IHVuZGVmaW5lZCB8fCBzdGFydCA8IDApIHtcbiAgICBzdGFydCA9IDBcbiAgfVxuICAvLyBSZXR1cm4gZWFybHkgaWYgc3RhcnQgPiB0aGlzLmxlbmd0aC4gRG9uZSBoZXJlIHRvIHByZXZlbnQgcG90ZW50aWFsIHVpbnQzMlxuICAvLyBjb2VyY2lvbiBmYWlsIGJlbG93LlxuICBpZiAoc3RhcnQgPiB0aGlzLmxlbmd0aCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkIHx8IGVuZCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgZW5kID0gdGhpcy5sZW5ndGhcbiAgfVxuXG4gIGlmIChlbmQgPD0gMCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgLy8gRm9yY2UgY29lcnNpb24gdG8gdWludDMyLiBUaGlzIHdpbGwgYWxzbyBjb2VyY2UgZmFsc2V5L05hTiB2YWx1ZXMgdG8gMC5cbiAgZW5kID4+Pj0gMFxuICBzdGFydCA+Pj49IDBcblxuICBpZiAoZW5kIDw9IHN0YXJ0KSB7XG4gICAgcmV0dXJuICcnXG4gIH1cblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgY2FzZSAnaGV4JzpcbiAgICAgICAgcmV0dXJuIGhleFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgICByZXR1cm4gdXRmOFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2FzY2lpJzpcbiAgICAgICAgcmV0dXJuIGFzY2lpU2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnbGF0aW4xJzpcbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBsYXRpbjFTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdiYXNlNjQnOlxuICAgICAgICByZXR1cm4gYmFzZTY0U2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIHV0ZjE2bGVTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICAgICAgZW5jb2RpbmcgPSAoZW5jb2RpbmcgKyAnJykudG9Mb3dlckNhc2UoKVxuICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWVcbiAgICB9XG4gIH1cbn1cblxuLy8gVGhlIHByb3BlcnR5IGlzIHVzZWQgYnkgYEJ1ZmZlci5pc0J1ZmZlcmAgYW5kIGBpcy1idWZmZXJgIChpbiBTYWZhcmkgNS03KSB0byBkZXRlY3Rcbi8vIEJ1ZmZlciBpbnN0YW5jZXMuXG5CdWZmZXIucHJvdG90eXBlLl9pc0J1ZmZlciA9IHRydWVcblxuZnVuY3Rpb24gc3dhcCAoYiwgbiwgbSkge1xuICB2YXIgaSA9IGJbbl1cbiAgYltuXSA9IGJbbV1cbiAgYlttXSA9IGlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zd2FwMTYgPSBmdW5jdGlvbiBzd2FwMTYgKCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgaWYgKGxlbiAlIDIgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMnKVxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpICs9IDIpIHtcbiAgICBzd2FwKHRoaXMsIGksIGkgKyAxKVxuICB9XG4gIHJldHVybiB0aGlzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc3dhcDMyID0gZnVuY3Rpb24gc3dhcDMyICgpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIGlmIChsZW4gJSA0ICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0J1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMi1iaXRzJylcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSArPSA0KSB7XG4gICAgc3dhcCh0aGlzLCBpLCBpICsgMylcbiAgICBzd2FwKHRoaXMsIGkgKyAxLCBpICsgMilcbiAgfVxuICByZXR1cm4gdGhpc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnN3YXA2NCA9IGZ1bmN0aW9uIHN3YXA2NCAoKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBpZiAobGVuICUgOCAhPT0gMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cycpXG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkgKz0gOCkge1xuICAgIHN3YXAodGhpcywgaSwgaSArIDcpXG4gICAgc3dhcCh0aGlzLCBpICsgMSwgaSArIDYpXG4gICAgc3dhcCh0aGlzLCBpICsgMiwgaSArIDUpXG4gICAgc3dhcCh0aGlzLCBpICsgMywgaSArIDQpXG4gIH1cbiAgcmV0dXJuIHRoaXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nICgpIHtcbiAgdmFyIGxlbmd0aCA9IHRoaXMubGVuZ3RoIHwgMFxuICBpZiAobGVuZ3RoID09PSAwKSByZXR1cm4gJydcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHJldHVybiB1dGY4U2xpY2UodGhpcywgMCwgbGVuZ3RoKVxuICByZXR1cm4gc2xvd1RvU3RyaW5nLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5lcXVhbHMgPSBmdW5jdGlvbiBlcXVhbHMgKGIpIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKVxuICBpZiAodGhpcyA9PT0gYikgcmV0dXJuIHRydWVcbiAgcmV0dXJuIEJ1ZmZlci5jb21wYXJlKHRoaXMsIGIpID09PSAwXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QgKCkge1xuICB2YXIgc3RyID0gJydcbiAgdmFyIG1heCA9IGV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVNcbiAgaWYgKHRoaXMubGVuZ3RoID4gMCkge1xuICAgIHN0ciA9IHRoaXMudG9TdHJpbmcoJ2hleCcsIDAsIG1heCkubWF0Y2goLy57Mn0vZykuam9pbignICcpXG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbWF4KSBzdHIgKz0gJyAuLi4gJ1xuICB9XG4gIHJldHVybiAnPEJ1ZmZlciAnICsgc3RyICsgJz4nXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKHRhcmdldCwgc3RhcnQsIGVuZCwgdGhpc1N0YXJ0LCB0aGlzRW5kKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHRhcmdldCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyJylcbiAgfVxuXG4gIGlmIChzdGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgc3RhcnQgPSAwXG4gIH1cbiAgaWYgKGVuZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZW5kID0gdGFyZ2V0ID8gdGFyZ2V0Lmxlbmd0aCA6IDBcbiAgfVxuICBpZiAodGhpc1N0YXJ0ID09PSB1bmRlZmluZWQpIHtcbiAgICB0aGlzU3RhcnQgPSAwXG4gIH1cbiAgaWYgKHRoaXNFbmQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXNFbmQgPSB0aGlzLmxlbmd0aFxuICB9XG5cbiAgaWYgKHN0YXJ0IDwgMCB8fCBlbmQgPiB0YXJnZXQubGVuZ3RoIHx8IHRoaXNTdGFydCA8IDAgfHwgdGhpc0VuZCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ291dCBvZiByYW5nZSBpbmRleCcpXG4gIH1cblxuICBpZiAodGhpc1N0YXJ0ID49IHRoaXNFbmQgJiYgc3RhcnQgPj0gZW5kKSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuICBpZiAodGhpc1N0YXJ0ID49IHRoaXNFbmQpIHtcbiAgICByZXR1cm4gLTFcbiAgfVxuICBpZiAoc3RhcnQgPj0gZW5kKSB7XG4gICAgcmV0dXJuIDFcbiAgfVxuXG4gIHN0YXJ0ID4+Pj0gMFxuICBlbmQgPj4+PSAwXG4gIHRoaXNTdGFydCA+Pj49IDBcbiAgdGhpc0VuZCA+Pj49IDBcblxuICBpZiAodGhpcyA9PT0gdGFyZ2V0KSByZXR1cm4gMFxuXG4gIHZhciB4ID0gdGhpc0VuZCAtIHRoaXNTdGFydFxuICB2YXIgeSA9IGVuZCAtIHN0YXJ0XG4gIHZhciBsZW4gPSBNYXRoLm1pbih4LCB5KVxuXG4gIHZhciB0aGlzQ29weSA9IHRoaXMuc2xpY2UodGhpc1N0YXJ0LCB0aGlzRW5kKVxuICB2YXIgdGFyZ2V0Q29weSA9IHRhcmdldC5zbGljZShzdGFydCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICBpZiAodGhpc0NvcHlbaV0gIT09IHRhcmdldENvcHlbaV0pIHtcbiAgICAgIHggPSB0aGlzQ29weVtpXVxuICAgICAgeSA9IHRhcmdldENvcHlbaV1cbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKHggPCB5KSByZXR1cm4gLTFcbiAgaWYgKHkgPCB4KSByZXR1cm4gMVxuICByZXR1cm4gMFxufVxuXG4vLyBGaW5kcyBlaXRoZXIgdGhlIGZpcnN0IGluZGV4IG9mIGB2YWxgIGluIGBidWZmZXJgIGF0IG9mZnNldCA+PSBgYnl0ZU9mZnNldGAsXG4vLyBPUiB0aGUgbGFzdCBpbmRleCBvZiBgdmFsYCBpbiBgYnVmZmVyYCBhdCBvZmZzZXQgPD0gYGJ5dGVPZmZzZXRgLlxuLy9cbi8vIEFyZ3VtZW50czpcbi8vIC0gYnVmZmVyIC0gYSBCdWZmZXIgdG8gc2VhcmNoXG4vLyAtIHZhbCAtIGEgc3RyaW5nLCBCdWZmZXIsIG9yIG51bWJlclxuLy8gLSBieXRlT2Zmc2V0IC0gYW4gaW5kZXggaW50byBgYnVmZmVyYDsgd2lsbCBiZSBjbGFtcGVkIHRvIGFuIGludDMyXG4vLyAtIGVuY29kaW5nIC0gYW4gb3B0aW9uYWwgZW5jb2RpbmcsIHJlbGV2YW50IGlzIHZhbCBpcyBhIHN0cmluZ1xuLy8gLSBkaXIgLSB0cnVlIGZvciBpbmRleE9mLCBmYWxzZSBmb3IgbGFzdEluZGV4T2ZcbmZ1bmN0aW9uIGJpZGlyZWN0aW9uYWxJbmRleE9mIChidWZmZXIsIHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGRpcikge1xuICAvLyBFbXB0eSBidWZmZXIgbWVhbnMgbm8gbWF0Y2hcbiAgaWYgKGJ1ZmZlci5sZW5ndGggPT09IDApIHJldHVybiAtMVxuXG4gIC8vIE5vcm1hbGl6ZSBieXRlT2Zmc2V0XG4gIGlmICh0eXBlb2YgYnl0ZU9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICBlbmNvZGluZyA9IGJ5dGVPZmZzZXRcbiAgICBieXRlT2Zmc2V0ID0gMFxuICB9IGVsc2UgaWYgKGJ5dGVPZmZzZXQgPiAweDdmZmZmZmZmKSB7XG4gICAgYnl0ZU9mZnNldCA9IDB4N2ZmZmZmZmZcbiAgfSBlbHNlIGlmIChieXRlT2Zmc2V0IDwgLTB4ODAwMDAwMDApIHtcbiAgICBieXRlT2Zmc2V0ID0gLTB4ODAwMDAwMDBcbiAgfVxuICBieXRlT2Zmc2V0ID0gK2J5dGVPZmZzZXQgIC8vIENvZXJjZSB0byBOdW1iZXIuXG4gIGlmIChpc05hTihieXRlT2Zmc2V0KSkge1xuICAgIC8vIGJ5dGVPZmZzZXQ6IGl0IGl0J3MgdW5kZWZpbmVkLCBudWxsLCBOYU4sIFwiZm9vXCIsIGV0Yywgc2VhcmNoIHdob2xlIGJ1ZmZlclxuICAgIGJ5dGVPZmZzZXQgPSBkaXIgPyAwIDogKGJ1ZmZlci5sZW5ndGggLSAxKVxuICB9XG5cbiAgLy8gTm9ybWFsaXplIGJ5dGVPZmZzZXQ6IG5lZ2F0aXZlIG9mZnNldHMgc3RhcnQgZnJvbSB0aGUgZW5kIG9mIHRoZSBidWZmZXJcbiAgaWYgKGJ5dGVPZmZzZXQgPCAwKSBieXRlT2Zmc2V0ID0gYnVmZmVyLmxlbmd0aCArIGJ5dGVPZmZzZXRcbiAgaWYgKGJ5dGVPZmZzZXQgPj0gYnVmZmVyLmxlbmd0aCkge1xuICAgIGlmIChkaXIpIHJldHVybiAtMVxuICAgIGVsc2UgYnl0ZU9mZnNldCA9IGJ1ZmZlci5sZW5ndGggLSAxXG4gIH0gZWxzZSBpZiAoYnl0ZU9mZnNldCA8IDApIHtcbiAgICBpZiAoZGlyKSBieXRlT2Zmc2V0ID0gMFxuICAgIGVsc2UgcmV0dXJuIC0xXG4gIH1cblxuICAvLyBOb3JtYWxpemUgdmFsXG4gIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIHZhbCA9IEJ1ZmZlci5mcm9tKHZhbCwgZW5jb2RpbmcpXG4gIH1cblxuICAvLyBGaW5hbGx5LCBzZWFyY2ggZWl0aGVyIGluZGV4T2YgKGlmIGRpciBpcyB0cnVlKSBvciBsYXN0SW5kZXhPZlxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbCkpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2U6IGxvb2tpbmcgZm9yIGVtcHR5IHN0cmluZy9idWZmZXIgYWx3YXlzIGZhaWxzXG4gICAgaWYgKHZhbC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiAtMVxuICAgIH1cbiAgICByZXR1cm4gYXJyYXlJbmRleE9mKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKVxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgdmFsID0gdmFsICYgMHhGRiAvLyBTZWFyY2ggZm9yIGEgYnl0ZSB2YWx1ZSBbMC0yNTVdXG4gICAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUICYmXG4gICAgICAgIHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBpZiAoZGlyKSB7XG4gICAgICAgIHJldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoYnVmZmVyLCB2YWwsIGJ5dGVPZmZzZXQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YuY2FsbChidWZmZXIsIHZhbCwgYnl0ZU9mZnNldClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFycmF5SW5kZXhPZihidWZmZXIsIFsgdmFsIF0sIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpXG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKCd2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXInKVxufVxuXG5mdW5jdGlvbiBhcnJheUluZGV4T2YgKGFyciwgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKSB7XG4gIHZhciBpbmRleFNpemUgPSAxXG4gIHZhciBhcnJMZW5ndGggPSBhcnIubGVuZ3RoXG4gIHZhciB2YWxMZW5ndGggPSB2YWwubGVuZ3RoXG5cbiAgaWYgKGVuY29kaW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9IFN0cmluZyhlbmNvZGluZykudG9Mb3dlckNhc2UoKVxuICAgIGlmIChlbmNvZGluZyA9PT0gJ3VjczInIHx8IGVuY29kaW5nID09PSAndWNzLTInIHx8XG4gICAgICAgIGVuY29kaW5nID09PSAndXRmMTZsZScgfHwgZW5jb2RpbmcgPT09ICd1dGYtMTZsZScpIHtcbiAgICAgIGlmIChhcnIubGVuZ3RoIDwgMiB8fCB2YWwubGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4gLTFcbiAgICAgIH1cbiAgICAgIGluZGV4U2l6ZSA9IDJcbiAgICAgIGFyckxlbmd0aCAvPSAyXG4gICAgICB2YWxMZW5ndGggLz0gMlxuICAgICAgYnl0ZU9mZnNldCAvPSAyXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhZCAoYnVmLCBpKSB7XG4gICAgaWYgKGluZGV4U2l6ZSA9PT0gMSkge1xuICAgICAgcmV0dXJuIGJ1ZltpXVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYnVmLnJlYWRVSW50MTZCRShpICogaW5kZXhTaXplKVxuICAgIH1cbiAgfVxuXG4gIHZhciBpXG4gIGlmIChkaXIpIHtcbiAgICB2YXIgZm91bmRJbmRleCA9IC0xXG4gICAgZm9yIChpID0gYnl0ZU9mZnNldDsgaSA8IGFyckxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAocmVhZChhcnIsIGkpID09PSByZWFkKHZhbCwgZm91bmRJbmRleCA9PT0gLTEgPyAwIDogaSAtIGZvdW5kSW5kZXgpKSB7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkgZm91bmRJbmRleCA9IGlcbiAgICAgICAgaWYgKGkgLSBmb3VuZEluZGV4ICsgMSA9PT0gdmFsTGVuZ3RoKSByZXR1cm4gZm91bmRJbmRleCAqIGluZGV4U2l6ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggIT09IC0xKSBpIC09IGkgLSBmb3VuZEluZGV4XG4gICAgICAgIGZvdW5kSW5kZXggPSAtMVxuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoYnl0ZU9mZnNldCArIHZhbExlbmd0aCA+IGFyckxlbmd0aCkgYnl0ZU9mZnNldCA9IGFyckxlbmd0aCAtIHZhbExlbmd0aFxuICAgIGZvciAoaSA9IGJ5dGVPZmZzZXQ7IGkgPj0gMDsgaS0tKSB7XG4gICAgICB2YXIgZm91bmQgPSB0cnVlXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHZhbExlbmd0aDsgaisrKSB7XG4gICAgICAgIGlmIChyZWFkKGFyciwgaSArIGopICE9PSByZWFkKHZhbCwgaikpIHtcbiAgICAgICAgICBmb3VuZCA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGZvdW5kKSByZXR1cm4gaVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAtMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluY2x1ZGVzID0gZnVuY3Rpb24gaW5jbHVkZXMgKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpIHtcbiAgcmV0dXJuIHRoaXMuaW5kZXhPZih2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSAhPT0gLTFcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5pbmRleE9mID0gZnVuY3Rpb24gaW5kZXhPZiAodmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZykge1xuICByZXR1cm4gYmlkaXJlY3Rpb25hbEluZGV4T2YodGhpcywgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgdHJ1ZSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5sYXN0SW5kZXhPZiA9IGZ1bmN0aW9uIGxhc3RJbmRleE9mICh2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSB7XG4gIHJldHVybiBiaWRpcmVjdGlvbmFsSW5kZXhPZih0aGlzLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBmYWxzZSlcbn1cblxuZnVuY3Rpb24gaGV4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICBvZmZzZXQgPSBOdW1iZXIob2Zmc2V0KSB8fCAwXG4gIHZhciByZW1haW5pbmcgPSBidWYubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmICghbGVuZ3RoKSB7XG4gICAgbGVuZ3RoID0gcmVtYWluaW5nXG4gIH0gZWxzZSB7XG4gICAgbGVuZ3RoID0gTnVtYmVyKGxlbmd0aClcbiAgICBpZiAobGVuZ3RoID4gcmVtYWluaW5nKSB7XG4gICAgICBsZW5ndGggPSByZW1haW5pbmdcbiAgICB9XG4gIH1cblxuICAvLyBtdXN0IGJlIGFuIGV2ZW4gbnVtYmVyIG9mIGRpZ2l0c1xuICB2YXIgc3RyTGVuID0gc3RyaW5nLmxlbmd0aFxuICBpZiAoc3RyTGVuICUgMiAhPT0gMCkgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBoZXggc3RyaW5nJylcblxuICBpZiAobGVuZ3RoID4gc3RyTGVuIC8gMikge1xuICAgIGxlbmd0aCA9IHN0ckxlbiAvIDJcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgdmFyIHBhcnNlZCA9IHBhcnNlSW50KHN0cmluZy5zdWJzdHIoaSAqIDIsIDIpLCAxNilcbiAgICBpZiAoaXNOYU4ocGFyc2VkKSkgcmV0dXJuIGlcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSBwYXJzZWRcbiAgfVxuICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiB1dGY4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcih1dGY4VG9CeXRlcyhzdHJpbmcsIGJ1Zi5sZW5ndGggLSBvZmZzZXQpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBhc2NpaVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIoYXNjaWlUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIGxhdGluMVdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGFzY2lpV3JpdGUoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBiYXNlNjRXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGJhc2U2NFRvQnl0ZXMoc3RyaW5nKSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gdWNzMldyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmMTZsZVRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uIHdyaXRlIChzdHJpbmcsIG9mZnNldCwgbGVuZ3RoLCBlbmNvZGluZykge1xuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nKVxuICBpZiAob2Zmc2V0ID09PSB1bmRlZmluZWQpIHtcbiAgICBlbmNvZGluZyA9ICd1dGY4J1xuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBlbmNvZGluZylcbiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb2Zmc2V0ID09PSAnc3RyaW5nJykge1xuICAgIGVuY29kaW5nID0gb2Zmc2V0XG4gICAgbGVuZ3RoID0gdGhpcy5sZW5ndGhcbiAgICBvZmZzZXQgPSAwXG4gIC8vIEJ1ZmZlciN3cml0ZShzdHJpbmcsIG9mZnNldFssIGxlbmd0aF1bLCBlbmNvZGluZ10pXG4gIH0gZWxzZSBpZiAoaXNGaW5pdGUob2Zmc2V0KSkge1xuICAgIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgICBpZiAoaXNGaW5pdGUobGVuZ3RoKSkge1xuICAgICAgbGVuZ3RoID0gbGVuZ3RoIHwgMFxuICAgICAgaWYgKGVuY29kaW5nID09PSB1bmRlZmluZWQpIGVuY29kaW5nID0gJ3V0ZjgnXG4gICAgfSBlbHNlIHtcbiAgICAgIGVuY29kaW5nID0gbGVuZ3RoXG4gICAgICBsZW5ndGggPSB1bmRlZmluZWRcbiAgICB9XG4gIC8vIGxlZ2FjeSB3cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXQsIGxlbmd0aCkgLSByZW1vdmUgaW4gdjAuMTNcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQnVmZmVyLndyaXRlKHN0cmluZywgZW5jb2RpbmcsIG9mZnNldFssIGxlbmd0aF0pIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQnXG4gICAgKVxuICB9XG5cbiAgdmFyIHJlbWFpbmluZyA9IHRoaXMubGVuZ3RoIC0gb2Zmc2V0XG4gIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBsZW5ndGggPiByZW1haW5pbmcpIGxlbmd0aCA9IHJlbWFpbmluZ1xuXG4gIGlmICgoc3RyaW5nLmxlbmd0aCA+IDAgJiYgKGxlbmd0aCA8IDAgfHwgb2Zmc2V0IDwgMCkpIHx8IG9mZnNldCA+IHRoaXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzJylcbiAgfVxuXG4gIGlmICghZW5jb2RpbmcpIGVuY29kaW5nID0gJ3V0ZjgnXG5cbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcbiAgZm9yICg7Oykge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gbGF0aW4xV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgLy8gV2FybmluZzogbWF4TGVuZ3RoIG5vdCB0YWtlbiBpbnRvIGFjY291bnQgaW4gYmFzZTY0V3JpdGVcbiAgICAgICAgcmV0dXJuIGJhc2U2NFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1Y3MyV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKCcnICsgZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gdG9KU09OICgpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnQnVmZmVyJyxcbiAgICBkYXRhOiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnIgfHwgdGhpcywgMClcbiAgfVxufVxuXG5mdW5jdGlvbiBiYXNlNjRTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGlmIChzdGFydCA9PT0gMCAmJiBlbmQgPT09IGJ1Zi5sZW5ndGgpIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBiYXNlNjQuZnJvbUJ5dGVBcnJheShidWYuc2xpY2Uoc3RhcnQsIGVuZCkpXG4gIH1cbn1cblxuZnVuY3Rpb24gdXRmOFNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuICB2YXIgcmVzID0gW11cblxuICB2YXIgaSA9IHN0YXJ0XG4gIHdoaWxlIChpIDwgZW5kKSB7XG4gICAgdmFyIGZpcnN0Qnl0ZSA9IGJ1ZltpXVxuICAgIHZhciBjb2RlUG9pbnQgPSBudWxsXG4gICAgdmFyIGJ5dGVzUGVyU2VxdWVuY2UgPSAoZmlyc3RCeXRlID4gMHhFRikgPyA0XG4gICAgICA6IChmaXJzdEJ5dGUgPiAweERGKSA/IDNcbiAgICAgIDogKGZpcnN0Qnl0ZSA+IDB4QkYpID8gMlxuICAgICAgOiAxXG5cbiAgICBpZiAoaSArIGJ5dGVzUGVyU2VxdWVuY2UgPD0gZW5kKSB7XG4gICAgICB2YXIgc2Vjb25kQnl0ZSwgdGhpcmRCeXRlLCBmb3VydGhCeXRlLCB0ZW1wQ29kZVBvaW50XG5cbiAgICAgIHN3aXRjaCAoYnl0ZXNQZXJTZXF1ZW5jZSkge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8IDB4ODApIHtcbiAgICAgICAgICAgIGNvZGVQb2ludCA9IGZpcnN0Qnl0ZVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweDFGKSA8PCAweDYgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4N0YpIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICB0aGlyZEJ5dGUgPSBidWZbaSArIDJdXG4gICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKHRoaXJkQnl0ZSAmIDB4QzApID09PSAweDgwKSB7XG4gICAgICAgICAgICB0ZW1wQ29kZVBvaW50ID0gKGZpcnN0Qnl0ZSAmIDB4RikgPDwgMHhDIHwgKHNlY29uZEJ5dGUgJiAweDNGKSA8PCAweDYgfCAodGhpcmRCeXRlICYgMHgzRilcbiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHg3RkYgJiYgKHRlbXBDb2RlUG9pbnQgPCAweEQ4MDAgfHwgdGVtcENvZGVQb2ludCA+IDB4REZGRikpIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgc2Vjb25kQnl0ZSA9IGJ1ZltpICsgMV1cbiAgICAgICAgICB0aGlyZEJ5dGUgPSBidWZbaSArIDJdXG4gICAgICAgICAgZm91cnRoQnl0ZSA9IGJ1ZltpICsgM11cbiAgICAgICAgICBpZiAoKHNlY29uZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCAmJiAodGhpcmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKGZvdXJ0aEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweEYpIDw8IDB4MTIgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpIDw8IDB4QyB8ICh0aGlyZEJ5dGUgJiAweDNGKSA8PCAweDYgfCAoZm91cnRoQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4RkZGRiAmJiB0ZW1wQ29kZVBvaW50IDwgMHgxMTAwMDApIHtcbiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29kZVBvaW50ID09PSBudWxsKSB7XG4gICAgICAvLyB3ZSBkaWQgbm90IGdlbmVyYXRlIGEgdmFsaWQgY29kZVBvaW50IHNvIGluc2VydCBhXG4gICAgICAvLyByZXBsYWNlbWVudCBjaGFyIChVK0ZGRkQpIGFuZCBhZHZhbmNlIG9ubHkgMSBieXRlXG4gICAgICBjb2RlUG9pbnQgPSAweEZGRkRcbiAgICAgIGJ5dGVzUGVyU2VxdWVuY2UgPSAxXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPiAweEZGRkYpIHtcbiAgICAgIC8vIGVuY29kZSB0byB1dGYxNiAoc3Vycm9nYXRlIHBhaXIgZGFuY2UpXG4gICAgICBjb2RlUG9pbnQgLT0gMHgxMDAwMFxuICAgICAgcmVzLnB1c2goY29kZVBvaW50ID4+PiAxMCAmIDB4M0ZGIHwgMHhEODAwKVxuICAgICAgY29kZVBvaW50ID0gMHhEQzAwIHwgY29kZVBvaW50ICYgMHgzRkZcbiAgICB9XG5cbiAgICByZXMucHVzaChjb2RlUG9pbnQpXG4gICAgaSArPSBieXRlc1BlclNlcXVlbmNlXG4gIH1cblxuICByZXR1cm4gZGVjb2RlQ29kZVBvaW50c0FycmF5KHJlcylcbn1cblxuLy8gQmFzZWQgb24gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjI3NDcyNzIvNjgwNzQyLCB0aGUgYnJvd3NlciB3aXRoXG4vLyB0aGUgbG93ZXN0IGxpbWl0IGlzIENocm9tZSwgd2l0aCAweDEwMDAwIGFyZ3MuXG4vLyBXZSBnbyAxIG1hZ25pdHVkZSBsZXNzLCBmb3Igc2FmZXR5XG52YXIgTUFYX0FSR1VNRU5UU19MRU5HVEggPSAweDEwMDBcblxuZnVuY3Rpb24gZGVjb2RlQ29kZVBvaW50c0FycmF5IChjb2RlUG9pbnRzKSB7XG4gIHZhciBsZW4gPSBjb2RlUG9pbnRzLmxlbmd0aFxuICBpZiAobGVuIDw9IE1BWF9BUkdVTUVOVFNfTEVOR1RIKSB7XG4gICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCBjb2RlUG9pbnRzKSAvLyBhdm9pZCBleHRyYSBzbGljZSgpXG4gIH1cblxuICAvLyBEZWNvZGUgaW4gY2h1bmtzIHRvIGF2b2lkIFwiY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkXCIuXG4gIHZhciByZXMgPSAnJ1xuICB2YXIgaSA9IDBcbiAgd2hpbGUgKGkgPCBsZW4pIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShcbiAgICAgIFN0cmluZyxcbiAgICAgIGNvZGVQb2ludHMuc2xpY2UoaSwgaSArPSBNQVhfQVJHVU1FTlRTX0xFTkdUSClcbiAgICApXG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHJldCA9ICcnXG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcblxuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkge1xuICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSAmIDB4N0YpXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBsYXRpbjFTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0pXG4gIH1cbiAgcmV0dXJuIHJldFxufVxuXG5mdW5jdGlvbiBoZXhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSBidWYubGVuZ3RoXG5cbiAgaWYgKCFzdGFydCB8fCBzdGFydCA8IDApIHN0YXJ0ID0gMFxuICBpZiAoIWVuZCB8fCBlbmQgPCAwIHx8IGVuZCA+IGxlbikgZW5kID0gbGVuXG5cbiAgdmFyIG91dCA9ICcnXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7XG4gICAgb3V0ICs9IHRvSGV4KGJ1ZltpXSlcbiAgfVxuICByZXR1cm4gb3V0XG59XG5cbmZ1bmN0aW9uIHV0ZjE2bGVTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciBieXRlcyA9IGJ1Zi5zbGljZShzdGFydCwgZW5kKVxuICB2YXIgcmVzID0gJydcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldICsgYnl0ZXNbaSArIDFdICogMjU2KVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zbGljZSA9IGZ1bmN0aW9uIHNsaWNlIChzdGFydCwgZW5kKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBzdGFydCA9IH5+c3RhcnRcbiAgZW5kID0gZW5kID09PSB1bmRlZmluZWQgPyBsZW4gOiB+fmVuZFxuXG4gIGlmIChzdGFydCA8IDApIHtcbiAgICBzdGFydCArPSBsZW5cbiAgICBpZiAoc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgfSBlbHNlIGlmIChzdGFydCA+IGxlbikge1xuICAgIHN0YXJ0ID0gbGVuXG4gIH1cblxuICBpZiAoZW5kIDwgMCkge1xuICAgIGVuZCArPSBsZW5cbiAgICBpZiAoZW5kIDwgMCkgZW5kID0gMFxuICB9IGVsc2UgaWYgKGVuZCA+IGxlbikge1xuICAgIGVuZCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IHN0YXJ0KSBlbmQgPSBzdGFydFxuXG4gIHZhciBuZXdCdWZcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgbmV3QnVmID0gdGhpcy5zdWJhcnJheShzdGFydCwgZW5kKVxuICAgIG5ld0J1Zi5fX3Byb3RvX18gPSBCdWZmZXIucHJvdG90eXBlXG4gIH0gZWxzZSB7XG4gICAgdmFyIHNsaWNlTGVuID0gZW5kIC0gc3RhcnRcbiAgICBuZXdCdWYgPSBuZXcgQnVmZmVyKHNsaWNlTGVuLCB1bmRlZmluZWQpXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbGljZUxlbjsgKytpKSB7XG4gICAgICBuZXdCdWZbaV0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3QnVmXG59XG5cbi8qXG4gKiBOZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGJ1ZmZlciBpc24ndCB0cnlpbmcgdG8gd3JpdGUgb3V0IG9mIGJvdW5kcy5cbiAqL1xuZnVuY3Rpb24gY2hlY2tPZmZzZXQgKG9mZnNldCwgZXh0LCBsZW5ndGgpIHtcbiAgaWYgKChvZmZzZXQgJSAxKSAhPT0gMCB8fCBvZmZzZXQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignb2Zmc2V0IGlzIG5vdCB1aW50JylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgnKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50TEUgPSBmdW5jdGlvbiByZWFkVUludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpXG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0XVxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50QkUgPSBmdW5jdGlvbiByZWFkVUludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuICB9XG5cbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1ieXRlTGVuZ3RoXVxuICB2YXIgbXVsID0gMVxuICB3aGlsZSAoYnl0ZUxlbmd0aCA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdICogbXVsXG4gIH1cblxuICByZXR1cm4gdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQ4ID0gZnVuY3Rpb24gcmVhZFVJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2TEUgPSBmdW5jdGlvbiByZWFkVUludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIHRoaXNbb2Zmc2V0XSB8ICh0aGlzW29mZnNldCArIDFdIDw8IDgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkJFID0gZnVuY3Rpb24gcmVhZFVJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiAodGhpc1tvZmZzZXRdIDw8IDgpIHwgdGhpc1tvZmZzZXQgKyAxXVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJMRSA9IGZ1bmN0aW9uIHJlYWRVSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKVxuXG4gIHJldHVybiAoKHRoaXNbb2Zmc2V0XSkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOCkgfFxuICAgICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpKSArXG4gICAgICAodGhpc1tvZmZzZXQgKyAzXSAqIDB4MTAwMDAwMClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyQkUgPSBmdW5jdGlvbiByZWFkVUludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSAqIDB4MTAwMDAwMCkgK1xuICAgICgodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICB0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRMRSA9IGZ1bmN0aW9uIHJlYWRJbnRMRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF1cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnRCRSA9IGZ1bmN0aW9uIHJlYWRJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciBpID0gYnl0ZUxlbmd0aFxuICB2YXIgbXVsID0gMVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWldXG4gIHdoaWxlIChpID4gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0taV0gKiBtdWxcbiAgfVxuICBtdWwgKj0gMHg4MFxuXG4gIGlmICh2YWwgPj0gbXVsKSB2YWwgLT0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpXG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQ4ID0gZnVuY3Rpb24gcmVhZEludDggKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAxLCB0aGlzLmxlbmd0aClcbiAgaWYgKCEodGhpc1tvZmZzZXRdICYgMHg4MCkpIHJldHVybiAodGhpc1tvZmZzZXRdKVxuICByZXR1cm4gKCgweGZmIC0gdGhpc1tvZmZzZXRdICsgMSkgKiAtMSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZMRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxuICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2QkUgPSBmdW5jdGlvbiByZWFkSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAxXSB8ICh0aGlzW29mZnNldF0gPDwgOClcbiAgcmV0dXJuICh2YWwgJiAweDgwMDApID8gdmFsIHwgMHhGRkZGMDAwMCA6IHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkxFID0gZnVuY3Rpb24gcmVhZEludDMyTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDNdIDw8IDI0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQzMkJFID0gZnVuY3Rpb24gcmVhZEludDMyQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSA8PCAyNCkgfFxuICAgICh0aGlzW29mZnNldCArIDFdIDw8IDE2KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgOCkgfFxuICAgICh0aGlzW29mZnNldCArIDNdKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdExFID0gZnVuY3Rpb24gcmVhZEZsb2F0TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDIzLCA0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdEJFID0gZnVuY3Rpb24gcmVhZEZsb2F0QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlTEUgPSBmdW5jdGlvbiByZWFkRG91YmxlTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDUyLCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWREb3VibGVCRSA9IGZ1bmN0aW9uIHJlYWREb3VibGVCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDgsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDUyLCA4KVxufVxuXG5mdW5jdGlvbiBjaGVja0ludCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wiYnVmZmVyXCIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpXG4gIGlmICh2YWx1ZSA+IG1heCB8fCB2YWx1ZSA8IG1pbikgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1widmFsdWVcIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJylcbiAgaWYgKG9mZnNldCArIGV4dCA+IGJ1Zi5sZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UnKVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludExFID0gZnVuY3Rpb24gd3JpdGVVSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbWF4Qnl0ZXMgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCkgLSAxXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbWF4Qnl0ZXMsIDApXG4gIH1cblxuICB2YXIgbXVsID0gMVxuICB2YXIgaSA9IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludEJFID0gZnVuY3Rpb24gd3JpdGVVSW50QkUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGggfCAwXG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICB2YXIgbWF4Qnl0ZXMgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCkgLSAxXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbWF4Qnl0ZXMsIDApXG4gIH1cblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHRoaXNbb2Zmc2V0ICsgaV0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKC0taSA+PSAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGXG4gIH1cblxuICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDggPSBmdW5jdGlvbiB3cml0ZVVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4ZmYsIDApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHZhbHVlID0gTWF0aC5mbG9vcih2YWx1ZSlcbiAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgcmV0dXJuIG9mZnNldCArIDFcbn1cblxuZnVuY3Rpb24gb2JqZWN0V3JpdGVVSW50MTYgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuKSB7XG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmICsgdmFsdWUgKyAxXG4gIGZvciAodmFyIGkgPSAwLCBqID0gTWF0aC5taW4oYnVmLmxlbmd0aCAtIG9mZnNldCwgMik7IGkgPCBqOyArK2kpIHtcbiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgJiAoMHhmZiA8PCAoOCAqIChsaXR0bGVFbmRpYW4gPyBpIDogMSAtIGkpKSkpID4+PlxuICAgICAgKGxpdHRsZUVuZGlhbiA/IGkgOiAxIC0gaSkgKiA4XG4gIH1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFID0gZnVuY3Rpb24gd3JpdGVVSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweGZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuZnVuY3Rpb24gb2JqZWN0V3JpdGVVSW50MzIgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuKSB7XG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmZmZmZiArIHZhbHVlICsgMVxuICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSBvZmZzZXQsIDQpOyBpIDwgajsgKytpKSB7XG4gICAgYnVmW29mZnNldCArIGldID0gKHZhbHVlID4+PiAobGl0dGxlRW5kaWFuID8gaSA6IDMgLSBpKSAqIDgpICYgMHhmZlxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJMRSA9IGZ1bmN0aW9uIHdyaXRlVUludDMyTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHhmZmZmZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVVSW50MzJCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweGZmZmZmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludExFID0gZnVuY3Rpb24gd3JpdGVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IDBcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHN1YiA9IDBcbiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgaWYgKHZhbHVlIDwgMCAmJiBzdWIgPT09IDAgJiYgdGhpc1tvZmZzZXQgKyBpIC0gMV0gIT09IDApIHtcbiAgICAgIHN1YiA9IDFcbiAgICB9XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludEJFID0gZnVuY3Rpb24gd3JpdGVJbnRCRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKVxuXG4gICAgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbGltaXQgLSAxLCAtbGltaXQpXG4gIH1cblxuICB2YXIgaSA9IGJ5dGVMZW5ndGggLSAxXG4gIHZhciBtdWwgPSAxXG4gIHZhciBzdWIgPSAwXG4gIHRoaXNbb2Zmc2V0ICsgaV0gPSB2YWx1ZSAmIDB4RkZcbiAgd2hpbGUgKC0taSA+PSAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgaWYgKHZhbHVlIDwgMCAmJiBzdWIgPT09IDAgJiYgdGhpc1tvZmZzZXQgKyBpICsgMV0gIT09IDApIHtcbiAgICAgIHN1YiA9IDFcbiAgICB9XG4gICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDggPSBmdW5jdGlvbiB3cml0ZUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHg3ZiwgLTB4ODApXG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHZhbHVlID0gTWF0aC5mbG9vcih2YWx1ZSlcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmICsgdmFsdWUgKyAxXG4gIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIHJldHVybiBvZmZzZXQgKyAxXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkxFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiA4KVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2QkUgPSBmdW5jdGlvbiB3cml0ZUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHg3ZmZmLCAtMHg4MDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpXG4gIH1cbiAgcmV0dXJuIG9mZnNldCArIDJcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyTEUgPSBmdW5jdGlvbiB3cml0ZUludDMyTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKVxuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZmZmZmYgKyB2YWx1ZSArIDFcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbmZ1bmN0aW9uIGNoZWNrSUVFRTc1NCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7XG4gIGlmIChvZmZzZXQgKyBleHQgPiBidWYubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW5kZXggb3V0IG9mIHJhbmdlJylcbiAgaWYgKG9mZnNldCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UnKVxufVxuXG5mdW5jdGlvbiB3cml0ZUZsb2F0IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrSUVFRTc1NChidWYsIHZhbHVlLCBvZmZzZXQsIDQsIDMuNDAyODIzNDY2Mzg1Mjg4NmUrMzgsIC0zLjQwMjgyMzQ2NjM4NTI4ODZlKzM4KVxuICB9XG4gIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDIzLCA0KVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRMRSA9IGZ1bmN0aW9uIHdyaXRlRmxvYXRMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdEJFID0gZnVuY3Rpb24gd3JpdGVGbG9hdEJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVGbG9hdCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpXG59XG5cbmZ1bmN0aW9uIHdyaXRlRG91YmxlIChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIGNoZWNrSUVFRTc1NChidWYsIHZhbHVlLCBvZmZzZXQsIDgsIDEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4LCAtMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgpXG4gIH1cbiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgNTIsIDgpXG4gIHJldHVybiBvZmZzZXQgKyA4XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVMRSA9IGZ1bmN0aW9uIHdyaXRlRG91YmxlTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZURvdWJsZSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlLCBub0Fzc2VydClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZURvdWJsZUJFID0gZnVuY3Rpb24gd3JpdGVEb3VibGVCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydClcbn1cblxuLy8gY29weSh0YXJnZXRCdWZmZXIsIHRhcmdldFN0YXJ0PTAsIHNvdXJjZVN0YXJ0PTAsIHNvdXJjZUVuZD1idWZmZXIubGVuZ3RoKVxuQnVmZmVyLnByb3RvdHlwZS5jb3B5ID0gZnVuY3Rpb24gY29weSAodGFyZ2V0LCB0YXJnZXRTdGFydCwgc3RhcnQsIGVuZCkge1xuICBpZiAoIXN0YXJ0KSBzdGFydCA9IDBcbiAgaWYgKCFlbmQgJiYgZW5kICE9PSAwKSBlbmQgPSB0aGlzLmxlbmd0aFxuICBpZiAodGFyZ2V0U3RhcnQgPj0gdGFyZ2V0Lmxlbmd0aCkgdGFyZ2V0U3RhcnQgPSB0YXJnZXQubGVuZ3RoXG4gIGlmICghdGFyZ2V0U3RhcnQpIHRhcmdldFN0YXJ0ID0gMFxuICBpZiAoZW5kID4gMCAmJiBlbmQgPCBzdGFydCkgZW5kID0gc3RhcnRcblxuICAvLyBDb3B5IDAgYnl0ZXM7IHdlJ3JlIGRvbmVcbiAgaWYgKGVuZCA9PT0gc3RhcnQpIHJldHVybiAwXG4gIGlmICh0YXJnZXQubGVuZ3RoID09PSAwIHx8IHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gMFxuXG4gIC8vIEZhdGFsIGVycm9yIGNvbmRpdGlvbnNcbiAgaWYgKHRhcmdldFN0YXJ0IDwgMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCd0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzJylcbiAgfVxuICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID49IHRoaXMubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc291cmNlU3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChlbmQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc291cmNlRW5kIG91dCBvZiBib3VuZHMnKVxuXG4gIC8vIEFyZSB3ZSBvb2I/XG4gIGlmIChlbmQgPiB0aGlzLmxlbmd0aCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKHRhcmdldC5sZW5ndGggLSB0YXJnZXRTdGFydCA8IGVuZCAtIHN0YXJ0KSB7XG4gICAgZW5kID0gdGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0ICsgc3RhcnRcbiAgfVxuXG4gIHZhciBsZW4gPSBlbmQgLSBzdGFydFxuICB2YXIgaVxuXG4gIGlmICh0aGlzID09PSB0YXJnZXQgJiYgc3RhcnQgPCB0YXJnZXRTdGFydCAmJiB0YXJnZXRTdGFydCA8IGVuZCkge1xuICAgIC8vIGRlc2NlbmRpbmcgY29weSBmcm9tIGVuZFxuICAgIGZvciAoaSA9IGxlbiAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICB0YXJnZXRbaSArIHRhcmdldFN0YXJ0XSA9IHRoaXNbaSArIHN0YXJ0XVxuICAgIH1cbiAgfSBlbHNlIGlmIChsZW4gPCAxMDAwIHx8ICFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIC8vIGFzY2VuZGluZyBjb3B5IGZyb20gc3RhcnRcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgIHRhcmdldFtpICsgdGFyZ2V0U3RhcnRdID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKFxuICAgICAgdGFyZ2V0LFxuICAgICAgdGhpcy5zdWJhcnJheShzdGFydCwgc3RhcnQgKyBsZW4pLFxuICAgICAgdGFyZ2V0U3RhcnRcbiAgICApXG4gIH1cblxuICByZXR1cm4gbGVuXG59XG5cbi8vIFVzYWdlOlxuLy8gICAgYnVmZmVyLmZpbGwobnVtYmVyWywgb2Zmc2V0WywgZW5kXV0pXG4vLyAgICBidWZmZXIuZmlsbChidWZmZXJbLCBvZmZzZXRbLCBlbmRdXSlcbi8vICAgIGJ1ZmZlci5maWxsKHN0cmluZ1ssIG9mZnNldFssIGVuZF1dWywgZW5jb2RpbmddKVxuQnVmZmVyLnByb3RvdHlwZS5maWxsID0gZnVuY3Rpb24gZmlsbCAodmFsLCBzdGFydCwgZW5kLCBlbmNvZGluZykge1xuICAvLyBIYW5kbGUgc3RyaW5nIGNhc2VzOlxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAodHlwZW9mIHN0YXJ0ID09PSAnc3RyaW5nJykge1xuICAgICAgZW5jb2RpbmcgPSBzdGFydFxuICAgICAgc3RhcnQgPSAwXG4gICAgICBlbmQgPSB0aGlzLmxlbmd0aFxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGVuZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVuY29kaW5nID0gZW5kXG4gICAgICBlbmQgPSB0aGlzLmxlbmd0aFxuICAgIH1cbiAgICBpZiAodmFsLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdmFyIGNvZGUgPSB2YWwuY2hhckNvZGVBdCgwKVxuICAgICAgaWYgKGNvZGUgPCAyNTYpIHtcbiAgICAgICAgdmFsID0gY29kZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZW5jb2RpbmcgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZW5jb2RpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nJylcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ3N0cmluZycgJiYgIUJ1ZmZlci5pc0VuY29kaW5nKGVuY29kaW5nKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKVxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIHZhbCA9IHZhbCAmIDI1NVxuICB9XG5cbiAgLy8gSW52YWxpZCByYW5nZXMgYXJlIG5vdCBzZXQgdG8gYSBkZWZhdWx0LCBzbyBjYW4gcmFuZ2UgY2hlY2sgZWFybHkuXG4gIGlmIChzdGFydCA8IDAgfHwgdGhpcy5sZW5ndGggPCBzdGFydCB8fCB0aGlzLmxlbmd0aCA8IGVuZCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdPdXQgb2YgcmFuZ2UgaW5kZXgnKVxuICB9XG5cbiAgaWYgKGVuZCA8PSBzdGFydCkge1xuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzdGFydCA9IHN0YXJ0ID4+PiAwXG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gdGhpcy5sZW5ndGggOiBlbmQgPj4+IDBcblxuICBpZiAoIXZhbCkgdmFsID0gMFxuXG4gIHZhciBpXG4gIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICAgIHRoaXNbaV0gPSB2YWxcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGJ5dGVzID0gQnVmZmVyLmlzQnVmZmVyKHZhbClcbiAgICAgID8gdmFsXG4gICAgICA6IHV0ZjhUb0J5dGVzKG5ldyBCdWZmZXIodmFsLCBlbmNvZGluZykudG9TdHJpbmcoKSlcbiAgICB2YXIgbGVuID0gYnl0ZXMubGVuZ3RoXG4gICAgZm9yIChpID0gMDsgaSA8IGVuZCAtIHN0YXJ0OyArK2kpIHtcbiAgICAgIHRoaXNbaSArIHN0YXJ0XSA9IGJ5dGVzW2kgJSBsZW5dXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRoaXNcbn1cblxuLy8gSEVMUEVSIEZVTkNUSU9OU1xuLy8gPT09PT09PT09PT09PT09PVxuXG52YXIgSU5WQUxJRF9CQVNFNjRfUkUgPSAvW14rXFwvMC05QS1aYS16LV9dL2dcblxuZnVuY3Rpb24gYmFzZTY0Y2xlYW4gKHN0cikge1xuICAvLyBOb2RlIHN0cmlwcyBvdXQgaW52YWxpZCBjaGFyYWN0ZXJzIGxpa2UgXFxuIGFuZCBcXHQgZnJvbSB0aGUgc3RyaW5nLCBiYXNlNjQtanMgZG9lcyBub3RcbiAgc3RyID0gc3RyaW5ndHJpbShzdHIpLnJlcGxhY2UoSU5WQUxJRF9CQVNFNjRfUkUsICcnKVxuICAvLyBOb2RlIGNvbnZlcnRzIHN0cmluZ3Mgd2l0aCBsZW5ndGggPCAyIHRvICcnXG4gIGlmIChzdHIubGVuZ3RoIDwgMikgcmV0dXJuICcnXG4gIC8vIE5vZGUgYWxsb3dzIGZvciBub24tcGFkZGVkIGJhc2U2NCBzdHJpbmdzIChtaXNzaW5nIHRyYWlsaW5nID09PSksIGJhc2U2NC1qcyBkb2VzIG5vdFxuICB3aGlsZSAoc3RyLmxlbmd0aCAlIDQgIT09IDApIHtcbiAgICBzdHIgPSBzdHIgKyAnPSdcbiAgfVxuICByZXR1cm4gc3RyXG59XG5cbmZ1bmN0aW9uIHN0cmluZ3RyaW0gKHN0cikge1xuICBpZiAoc3RyLnRyaW0pIHJldHVybiBzdHIudHJpbSgpXG4gIHJldHVybiBzdHIucmVwbGFjZSgvXlxccyt8XFxzKyQvZywgJycpXG59XG5cbmZ1bmN0aW9uIHRvSGV4IChuKSB7XG4gIGlmIChuIDwgMTYpIHJldHVybiAnMCcgKyBuLnRvU3RyaW5nKDE2KVxuICByZXR1cm4gbi50b1N0cmluZygxNilcbn1cblxuZnVuY3Rpb24gdXRmOFRvQnl0ZXMgKHN0cmluZywgdW5pdHMpIHtcbiAgdW5pdHMgPSB1bml0cyB8fCBJbmZpbml0eVxuICB2YXIgY29kZVBvaW50XG4gIHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoXG4gIHZhciBsZWFkU3Vycm9nYXRlID0gbnVsbFxuICB2YXIgYnl0ZXMgPSBbXVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICBjb2RlUG9pbnQgPSBzdHJpbmcuY2hhckNvZGVBdChpKVxuXG4gICAgLy8gaXMgc3Vycm9nYXRlIGNvbXBvbmVudFxuICAgIGlmIChjb2RlUG9pbnQgPiAweEQ3RkYgJiYgY29kZVBvaW50IDwgMHhFMDAwKSB7XG4gICAgICAvLyBsYXN0IGNoYXIgd2FzIGEgbGVhZFxuICAgICAgaWYgKCFsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAgIC8vIG5vIGxlYWQgeWV0XG4gICAgICAgIGlmIChjb2RlUG9pbnQgPiAweERCRkYpIHtcbiAgICAgICAgICAvLyB1bmV4cGVjdGVkIHRyYWlsXG4gICAgICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfSBlbHNlIGlmIChpICsgMSA9PT0gbGVuZ3RoKSB7XG4gICAgICAgICAgLy8gdW5wYWlyZWQgbGVhZFxuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cblxuICAgICAgICAvLyB2YWxpZCBsZWFkXG4gICAgICAgIGxlYWRTdXJyb2dhdGUgPSBjb2RlUG9pbnRcblxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyAyIGxlYWRzIGluIGEgcm93XG4gICAgICBpZiAoY29kZVBvaW50IDwgMHhEQzAwKSB7XG4gICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICBsZWFkU3Vycm9nYXRlID0gY29kZVBvaW50XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyXG4gICAgICBjb2RlUG9pbnQgPSAobGVhZFN1cnJvZ2F0ZSAtIDB4RDgwMCA8PCAxMCB8IGNvZGVQb2ludCAtIDB4REMwMCkgKyAweDEwMDAwXG4gICAgfSBlbHNlIGlmIChsZWFkU3Vycm9nYXRlKSB7XG4gICAgICAvLyB2YWxpZCBibXAgY2hhciwgYnV0IGxhc3QgY2hhciB3YXMgYSBsZWFkXG4gICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICB9XG5cbiAgICBsZWFkU3Vycm9nYXRlID0gbnVsbFxuXG4gICAgLy8gZW5jb2RlIHV0ZjhcbiAgICBpZiAoY29kZVBvaW50IDwgMHg4MCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAxKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKGNvZGVQb2ludClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4ODAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgfCAweEMwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMDAwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAzKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDIHwgMHhFMCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MFxuICAgICAgKVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMTAwMDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gNCkgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4MTIgfCAweEYwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHhDICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvZGUgcG9pbnQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBieXRlc1xufVxuXG5mdW5jdGlvbiBhc2NpaVRvQnl0ZXMgKHN0cikge1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpIHtcbiAgICAvLyBOb2RlJ3MgY29kZSBzZWVtcyB0byBiZSBkb2luZyB0aGlzIGFuZCBub3QgJiAweDdGLi5cbiAgICBieXRlQXJyYXkucHVzaChzdHIuY2hhckNvZGVBdChpKSAmIDB4RkYpXG4gIH1cbiAgcmV0dXJuIGJ5dGVBcnJheVxufVxuXG5mdW5jdGlvbiB1dGYxNmxlVG9CeXRlcyAoc3RyLCB1bml0cykge1xuICB2YXIgYywgaGksIGxvXG4gIHZhciBieXRlQXJyYXkgPSBbXVxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGg7ICsraSkge1xuICAgIGlmICgodW5pdHMgLT0gMikgPCAwKSBicmVha1xuXG4gICAgYyA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaGkgPSBjID4+IDhcbiAgICBsbyA9IGMgJSAyNTZcbiAgICBieXRlQXJyYXkucHVzaChsbylcbiAgICBieXRlQXJyYXkucHVzaChoaSlcbiAgfVxuXG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gYmFzZTY0VG9CeXRlcyAoc3RyKSB7XG4gIHJldHVybiBiYXNlNjQudG9CeXRlQXJyYXkoYmFzZTY0Y2xlYW4oc3RyKSlcbn1cblxuZnVuY3Rpb24gYmxpdEJ1ZmZlciAoc3JjLCBkc3QsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICBpZiAoKGkgKyBvZmZzZXQgPj0gZHN0Lmxlbmd0aCkgfHwgKGkgPj0gc3JjLmxlbmd0aCkpIGJyZWFrXG4gICAgZHN0W2kgKyBvZmZzZXRdID0gc3JjW2ldXG4gIH1cbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gaXNuYW4gKHZhbCkge1xuICByZXR1cm4gdmFsICE9PSB2YWwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zZWxmLWNvbXBhcmVcbn1cblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi9idWZmZXIvaW5kZXguanNcbi8vIG1vZHVsZSBpZCA9IDFcbi8vIG1vZHVsZSBjaHVua3MgPSAwIl0sInNvdXJjZVJvb3QiOiIifQ==");
|
734 |
-
|
735 |
-
/***/ }),
|
736 |
-
/* 2 */
|
737 |
-
/* unknown exports provided */
|
738 |
-
/* all exports used */
|
739 |
-
/*!***************************************!*\
|
740 |
-
!*** ./~/vue-hot-reload-api/index.js ***!
|
741 |
-
\***************************************/
|
742 |
-
/***/ (function(module, exports) {
|
743 |
-
|
744 |
-
eval("var Vue // late bind\nvar version\nvar map = window.__VUE_HOT_MAP__ = Object.create(null)\nvar installed = false\nvar isBrowserify = false\nvar initHookName = 'beforeCreate'\n\nexports.install = function (vue, browserify) {\n if (installed) return\n installed = true\n\n Vue = vue.__esModule ? vue.default : vue\n version = Vue.version.split('.').map(Number)\n isBrowserify = browserify\n\n // compat with < 2.0.0-alpha.7\n if (Vue.config._lifecycleHooks.indexOf('init') > -1) {\n initHookName = 'init'\n }\n\n exports.compatible = version[0] >= 2\n if (!exports.compatible) {\n console.warn(\n '[HMR] You are using a version of vue-hot-reload-api that is ' +\n 'only compatible with Vue.js core ^2.0.0.'\n )\n return\n }\n}\n\n/**\n * Create a record for a hot module, which keeps track of its constructor\n * and instances\n *\n * @param {String} id\n * @param {Object} options\n */\n\nexports.createRecord = function (id, options) {\n var Ctor = null\n if (typeof options === 'function') {\n Ctor = options\n options = Ctor.options\n }\n makeOptionsHot(id, options)\n map[id] = {\n Ctor: Vue.extend(options),\n instances: []\n }\n}\n\n/**\n * Make a Component options object hot.\n *\n * @param {String} id\n * @param {Object} options\n */\n\nfunction makeOptionsHot (id, options) {\n injectHook(options, initHookName, function () {\n map[id].instances.push(this)\n })\n injectHook(options, 'beforeDestroy', function () {\n var instances = map[id].instances\n instances.splice(instances.indexOf(this), 1)\n })\n}\n\n/**\n * Inject a hook to a hot reloadable component so that\n * we can keep track of it.\n *\n * @param {Object} options\n * @param {String} name\n * @param {Function} hook\n */\n\nfunction injectHook (options, name, hook) {\n var existing = options[name]\n options[name] = existing\n ? Array.isArray(existing)\n ? existing.concat(hook)\n : [existing, hook]\n : [hook]\n}\n\nfunction tryWrap (fn) {\n return function (id, arg) {\n try { fn(id, arg) } catch (e) {\n console.error(e)\n console.warn('Something went wrong during Vue component hot-reload. Full reload required.')\n }\n }\n}\n\nexports.rerender = tryWrap(function (id, options) {\n var record = map[id]\n if (!options) {\n record.instances.slice().forEach(function (instance) {\n instance.$forceUpdate()\n })\n return\n }\n if (typeof options === 'function') {\n options = options.options\n }\n record.Ctor.options.render = options.render\n record.Ctor.options.staticRenderFns = options.staticRenderFns\n record.instances.slice().forEach(function (instance) {\n instance.$options.render = options.render\n instance.$options.staticRenderFns = options.staticRenderFns\n instance._staticTrees = [] // reset static trees\n instance.$forceUpdate()\n })\n})\n\nexports.reload = tryWrap(function (id, options) {\n var record = map[id]\n if (options) {\n if (typeof options === 'function') {\n options = options.options\n }\n makeOptionsHot(id, options)\n if (version[1] < 2) {\n // preserve pre 2.2 behavior for global mixin handling\n record.Ctor.extendOptions = options\n }\n var newCtor = record.Ctor.super.extend(options)\n record.Ctor.options = newCtor.options\n record.Ctor.cid = newCtor.cid\n record.Ctor.prototype = newCtor.prototype\n if (newCtor.release) {\n // temporary global mixin strategy used in < 2.0.0-alpha.6\n newCtor.release()\n }\n }\n record.instances.slice().forEach(function (instance) {\n if (instance.$vnode && instance.$vnode.context) {\n instance.$vnode.context.$forceUpdate()\n } else {\n console.warn('Root or manually mounted instance modified. Full reload required.')\n }\n })\n})\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9qb3NoL3NpdGVzL2NmLWRldi93ZWIvd3AtY29udGVudC9wbHVnaW5zL0NhbGRlcmEtRm9ybXMvaW5jbHVkZXMvY2YtcHJvLWNsaWVudC9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEIsV0FBVyxTQUFTO0FBQ3BCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVMsY0FBYztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUMiLCJmaWxlIjoiMi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBWdWUgLy8gbGF0ZSBiaW5kXG52YXIgdmVyc2lvblxudmFyIG1hcCA9IHdpbmRvdy5fX1ZVRV9IT1RfTUFQX18gPSBPYmplY3QuY3JlYXRlKG51bGwpXG52YXIgaW5zdGFsbGVkID0gZmFsc2VcbnZhciBpc0Jyb3dzZXJpZnkgPSBmYWxzZVxudmFyIGluaXRIb29rTmFtZSA9ICdiZWZvcmVDcmVhdGUnXG5cbmV4cG9ydHMuaW5zdGFsbCA9IGZ1bmN0aW9uICh2dWUsIGJyb3dzZXJpZnkpIHtcbiAgaWYgKGluc3RhbGxlZCkgcmV0dXJuXG4gIGluc3RhbGxlZCA9IHRydWVcblxuICBWdWUgPSB2dWUuX19lc01vZHVsZSA/IHZ1ZS5kZWZhdWx0IDogdnVlXG4gIHZlcnNpb24gPSBWdWUudmVyc2lvbi5zcGxpdCgnLicpLm1hcChOdW1iZXIpXG4gIGlzQnJvd3NlcmlmeSA9IGJyb3dzZXJpZnlcblxuICAvLyBjb21wYXQgd2l0aCA8IDIuMC4wLWFscGhhLjdcbiAgaWYgKFZ1ZS5jb25maWcuX2xpZmVjeWNsZUhvb2tzLmluZGV4T2YoJ2luaXQnKSA+IC0xKSB7XG4gICAgaW5pdEhvb2tOYW1lID0gJ2luaXQnXG4gIH1cblxuICBleHBvcnRzLmNvbXBhdGlibGUgPSB2ZXJzaW9uWzBdID49IDJcbiAgaWYgKCFleHBvcnRzLmNvbXBhdGlibGUpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICAnW0hNUl0gWW91IGFyZSB1c2luZyBhIHZlcnNpb24gb2YgdnVlLWhvdC1yZWxvYWQtYXBpIHRoYXQgaXMgJyArXG4gICAgICAnb25seSBjb21wYXRpYmxlIHdpdGggVnVlLmpzIGNvcmUgXjIuMC4wLidcbiAgICApXG4gICAgcmV0dXJuXG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYSByZWNvcmQgZm9yIGEgaG90IG1vZHVsZSwgd2hpY2gga2VlcHMgdHJhY2sgb2YgaXRzIGNvbnN0cnVjdG9yXG4gKiBhbmQgaW5zdGFuY2VzXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGlkXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICovXG5cbmV4cG9ydHMuY3JlYXRlUmVjb3JkID0gZnVuY3Rpb24gKGlkLCBvcHRpb25zKSB7XG4gIHZhciBDdG9yID0gbnVsbFxuICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBDdG9yID0gb3B0aW9uc1xuICAgIG9wdGlvbnMgPSBDdG9yLm9wdGlvbnNcbiAgfVxuICBtYWtlT3B0aW9uc0hvdChpZCwgb3B0aW9ucylcbiAgbWFwW2lkXSA9IHtcbiAgICBDdG9yOiBWdWUuZXh0ZW5kKG9wdGlvbnMpLFxuICAgIGluc3RhbmNlczogW11cbiAgfVxufVxuXG4vKipcbiAqIE1ha2UgYSBDb21wb25lbnQgb3B0aW9ucyBvYmplY3QgaG90LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpZFxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqL1xuXG5mdW5jdGlvbiBtYWtlT3B0aW9uc0hvdCAoaWQsIG9wdGlvbnMpIHtcbiAgaW5qZWN0SG9vayhvcHRpb25zLCBpbml0SG9va05hbWUsIGZ1bmN0aW9uICgpIHtcbiAgICBtYXBbaWRdLmluc3RhbmNlcy5wdXNoKHRoaXMpXG4gIH0pXG4gIGluamVjdEhvb2sob3B0aW9ucywgJ2JlZm9yZURlc3Ryb3knLCBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGluc3RhbmNlcyA9IG1hcFtpZF0uaW5zdGFuY2VzXG4gICAgaW5zdGFuY2VzLnNwbGljZShpbnN0YW5jZXMuaW5kZXhPZih0aGlzKSwgMSlcbiAgfSlcbn1cblxuLyoqXG4gKiBJbmplY3QgYSBob29rIHRvIGEgaG90IHJlbG9hZGFibGUgY29tcG9uZW50IHNvIHRoYXRcbiAqIHdlIGNhbiBrZWVwIHRyYWNrIG9mIGl0LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gaG9va1xuICovXG5cbmZ1bmN0aW9uIGluamVjdEhvb2sgKG9wdGlvbnMsIG5hbWUsIGhvb2spIHtcbiAgdmFyIGV4aXN0aW5nID0gb3B0aW9uc1tuYW1lXVxuICBvcHRpb25zW25hbWVdID0gZXhpc3RpbmdcbiAgICA/IEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpXG4gICAgICA/IGV4aXN0aW5nLmNvbmNhdChob29rKVxuICAgICAgOiBbZXhpc3RpbmcsIGhvb2tdXG4gICAgOiBbaG9va11cbn1cblxuZnVuY3Rpb24gdHJ5V3JhcCAoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChpZCwgYXJnKSB7XG4gICAgdHJ5IHsgZm4oaWQsIGFyZykgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihlKVxuICAgICAgY29uc29sZS53YXJuKCdTb21ldGhpbmcgd2VudCB3cm9uZyBkdXJpbmcgVnVlIGNvbXBvbmVudCBob3QtcmVsb2FkLiBGdWxsIHJlbG9hZCByZXF1aXJlZC4nKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnRzLnJlcmVuZGVyID0gdHJ5V3JhcChmdW5jdGlvbiAoaWQsIG9wdGlvbnMpIHtcbiAgdmFyIHJlY29yZCA9IG1hcFtpZF1cbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgcmVjb3JkLmluc3RhbmNlcy5zbGljZSgpLmZvckVhY2goZnVuY3Rpb24gKGluc3RhbmNlKSB7XG4gICAgICBpbnN0YW5jZS4kZm9yY2VVcGRhdGUoKVxuICAgIH0pXG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMub3B0aW9uc1xuICB9XG4gIHJlY29yZC5DdG9yLm9wdGlvbnMucmVuZGVyID0gb3B0aW9ucy5yZW5kZXJcbiAgcmVjb3JkLkN0b3Iub3B0aW9ucy5zdGF0aWNSZW5kZXJGbnMgPSBvcHRpb25zLnN0YXRpY1JlbmRlckZuc1xuICByZWNvcmQuaW5zdGFuY2VzLnNsaWNlKCkuZm9yRWFjaChmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgICBpbnN0YW5jZS4kb3B0aW9ucy5yZW5kZXIgPSBvcHRpb25zLnJlbmRlclxuICAgIGluc3RhbmNlLiRvcHRpb25zLnN0YXRpY1JlbmRlckZucyA9IG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zXG4gICAgaW5zdGFuY2UuX3N0YXRpY1RyZWVzID0gW10gLy8gcmVzZXQgc3RhdGljIHRyZWVzXG4gICAgaW5zdGFuY2UuJGZvcmNlVXBkYXRlKClcbiAgfSlcbn0pXG5cbmV4cG9ydHMucmVsb2FkID0gdHJ5V3JhcChmdW5jdGlvbiAoaWQsIG9wdGlvbnMpIHtcbiAgdmFyIHJlY29yZCA9IG1hcFtpZF1cbiAgaWYgKG9wdGlvbnMpIHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIG9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnNcbiAgICB9XG4gICAgbWFrZU9wdGlvbnNIb3QoaWQsIG9wdGlvbnMpXG4gICAgaWYgKHZlcnNpb25bMV0gPCAyKSB7XG4gICAgICAvLyBwcmVzZXJ2ZSBwcmUgMi4yIGJlaGF2aW9yIGZvciBnbG9iYWwgbWl4aW4gaGFuZGxpbmdcbiAgICAgIHJlY29yZC5DdG9yLmV4dGVuZE9wdGlvbnMgPSBvcHRpb25zXG4gICAgfVxuICAgIHZhciBuZXdDdG9yID0gcmVjb3JkLkN0b3Iuc3VwZXIuZXh0ZW5kKG9wdGlvbnMpXG4gICAgcmVjb3JkLkN0b3Iub3B0aW9ucyA9IG5ld0N0b3Iub3B0aW9uc1xuICAgIHJlY29yZC5DdG9yLmNpZCA9IG5ld0N0b3IuY2lkXG4gICAgcmVjb3JkLkN0b3IucHJvdG90eXBlID0gbmV3Q3Rvci5wcm90b3R5cGVcbiAgICBpZiAobmV3Q3Rvci5yZWxlYXNlKSB7XG4gICAgICAvLyB0ZW1wb3JhcnkgZ2xvYmFsIG1peGluIHN0cmF0ZWd5IHVzZWQgaW4gPCAyLjAuMC1hbHBoYS42XG4gICAgICBuZXdDdG9yLnJlbGVhc2UoKVxuICAgIH1cbiAgfVxuICByZWNvcmQuaW5zdGFuY2VzLnNsaWNlKCkuZm9yRWFjaChmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgICBpZiAoaW5zdGFuY2UuJHZub2RlICYmIGluc3RhbmNlLiR2bm9kZS5jb250ZXh0KSB7XG4gICAgICBpbnN0YW5jZS4kdm5vZGUuY29udGV4dC4kZm9yY2VVcGRhdGUoKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1Jvb3Qgb3IgbWFudWFsbHkgbW91bnRlZCBpbnN0YW5jZSBtb2RpZmllZC4gRnVsbCByZWxvYWQgcmVxdWlyZWQuJylcbiAgICB9XG4gIH0pXG59KVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3Z1ZS1ob3QtcmVsb2FkLWFwaS9pbmRleC5qc1xuLy8gbW9kdWxlIGlkID0gMlxuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
|
745 |
-
|
746 |
-
/***/ }),
|
747 |
-
/* 3 */
|
748 |
-
/* unknown exports provided */
|
749 |
-
/* all exports used */
|
750 |
-
/*!***************************!*\
|
751 |
-
!*** ./~/bn.js/lib/bn.js ***!
|
752 |
-
\***************************/
|
753 |
-
/***/ (function(module, exports, __webpack_require__) {
|
754 |
-
|
755 |
-
eval("/* WEBPACK VAR INJECTION */(function(module) {(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = __webpack_require__(/*! buffer */ 241).Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n r.strip();\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(/*! ./../../webpack/buildin/module.js */ 240)(module)))//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9qb3NoL3NpdGVzL2NmLWRldi93ZWIvd3AtY29udGVudC9wbHVnaW5zL0NhbGRlcmEtRm9ybXMvaW5jbHVkZXMvY2YtcHJvLWNsaWVudC9ub2RlX21vZHVsZXMvYm4uanMvbGliL2JuLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUJBQW1CLGlCQUFpQjtBQUNwQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxRQUFRO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx3QkFBd0IsbUJBQW1CO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsU0FBUztBQUNoQzs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixpQkFBaUI7QUFDcEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsWUFBWTtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixTQUFTO0FBQ2hDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0Esc0NBQXNDLHNCQUFzQjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx1QkFBdUIsU0FBUztBQUNoQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUIsU0FBUztBQUMxQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUJBQW1CLGlCQUFpQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGlCQUFpQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDRCQUE0QjtBQUM3QztBQUNBOztBQUVBLGlCQUFpQixhQUFhO0FBQzlCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTCxpQkFBaUIsYUFBYTtBQUM5QjtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsWUFBWSxlQUFlO0FBQzNCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLHFCQUFxQixnQkFBZ0I7QUFDckM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsbUJBQW1CLGlCQUFpQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxtQkFBbUIsZ0JBQWdCO0FBQ25DO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBLG1CQUFtQixjQUFjO0FBQ2pDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBLG1CQUFtQixjQUFjO0FBQ2pDO0FBQ0E7O0FBRUE7QUFDQSxZQUFZLGNBQWM7QUFDMUI7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1CQUFtQixpQkFBaUI7QUFDcEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1CQUFtQixjQUFjO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSw2QkFBNkI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxZQUFZLGNBQWM7QUFDMUI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtQkFBbUIsY0FBYztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsNkJBQTZCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZLGNBQWM7QUFDMUI7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLG1CQUFtQixTQUFTO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QsV0FBVztBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG1CQUFtQixvQkFBb0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0RBQW9ELFdBQVc7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxLQUFLO0FBQ0w7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLE9BQU87QUFDMUI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1CQUFtQixPQUFPO0FBQzFCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsbUJBQW1CLE9BQU87QUFDMUI7O0FBRUE7QUFDQTs7QUFFQSxxQkFBcUIsT0FBTztBQUM1QjtBQUNBOztBQUVBLHVCQUF1QixPQUFPO0FBQzlCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsR0FBRztBQUMxQjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxtQkFBbUIsV0FBVztBQUM5Qjs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtQkFBbUIsV0FBVztBQUM5QjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsbUJBQW1CLFNBQVM7QUFDNUI7O0FBRUEsa0NBQWtDO0FBQ2xDLHNDQUFzQztBQUN0Qzs7QUFFQTtBQUNBLHFCQUFxQixPQUFPO0FBQzVCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtQkFBbUIsT0FBTztBQUMxQjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBLG1CQUFtQixPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtQkFBbUIsaUJBQWlCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG1CQUFtQixjQUFjO0FBQ2pDO0FBQ0E7O0FBRUE7QUFDQSw2QkFBNkIsY0FBYztBQUMzQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGlCQUFpQixpQkFBaUI7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsK0JBQStCLFFBQVE7QUFDdkM7QUFDQTs7QUFFQSxpQkFBaUIsT0FBTztBQUN4QjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxxQkFBcUIsT0FBTztBQUM1QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsaUJBQWlCLGlCQUFpQjtBQUNsQztBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZCQUE2QixtQ0FBbUM7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsbUJBQW1CLCtDQUErQztBQUNsRTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxxQkFBcUIsc0NBQXNDO0FBQzNEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsZUFBZSxnQkFBZ0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSx5QkFBeUI7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZUFBZSxpQkFBaUI7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGNBQWM7QUFDbkM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHVCQUF1QixRQUFRO0FBQy9CO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlDQUFpQyxRQUFRO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxpQ0FBaUMsUUFBUTtBQUN6QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSw2QkFBNkIsbUNBQW1DO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDZCQUE2QixtQ0FBbUM7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSw2QkFBNkIsbUNBQW1DO0FBQ2hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsNkJBQTZCLG1DQUFtQztBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx1QkFBdUIsMEJBQTBCO0FBQ2pEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG1CQUFtQixnQ0FBZ0M7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlDQUFpQyxRQUFRO0FBQ3pDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLG1CQUFtQixZQUFZO0FBQy9CO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG1CQUFtQixnQkFBZ0I7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsZ0JBQWdCO0FBQ25DO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEtBQUs7QUFDTDtBQUNBLEtBQUs7QUFDTDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsb0JBQW9CO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsZ0JBQWdCO0FBQ25DO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsNEJBQTRCLFFBQVE7QUFDcEM7QUFDQSw2QkFBNkIsUUFBUTtBQUNyQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsImZpbGUiOiIzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIChtb2R1bGUsIGV4cG9ydHMpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuXG4gIC8vIFV0aWxzXG4gIGZ1bmN0aW9uIGFzc2VydCAodmFsLCBtc2cpIHtcbiAgICBpZiAoIXZhbCkgdGhyb3cgbmV3IEVycm9yKG1zZyB8fCAnQXNzZXJ0aW9uIGZhaWxlZCcpO1xuICB9XG5cbiAgLy8gQ291bGQgdXNlIGBpbmhlcml0c2AgbW9kdWxlLCBidXQgZG9uJ3Qgd2FudCB0byBtb3ZlIGZyb20gc2luZ2xlIGZpbGVcbiAgLy8gYXJjaGl0ZWN0dXJlIHlldC5cbiAgZnVuY3Rpb24gaW5oZXJpdHMgKGN0b3IsIHN1cGVyQ3Rvcikge1xuICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yO1xuICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9O1xuICAgIFRlbXBDdG9yLnByb3RvdHlwZSA9IHN1cGVyQ3Rvci5wcm90b3R5cGU7XG4gICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKTtcbiAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3I7XG4gIH1cblxuICAvLyBCTlxuXG4gIGZ1bmN0aW9uIEJOIChudW1iZXIsIGJhc2UsIGVuZGlhbikge1xuICAgIGlmIChCTi5pc0JOKG51bWJlcikpIHtcbiAgICAgIHJldHVybiBudW1iZXI7XG4gICAgfVxuXG4gICAgdGhpcy5uZWdhdGl2ZSA9IDA7XG4gICAgdGhpcy53b3JkcyA9IG51bGw7XG4gICAgdGhpcy5sZW5ndGggPSAwO1xuXG4gICAgLy8gUmVkdWN0aW9uIGNvbnRleHRcbiAgICB0aGlzLnJlZCA9IG51bGw7XG5cbiAgICBpZiAobnVtYmVyICE9PSBudWxsKSB7XG4gICAgICBpZiAoYmFzZSA9PT0gJ2xlJyB8fCBiYXNlID09PSAnYmUnKSB7XG4gICAgICAgIGVuZGlhbiA9IGJhc2U7XG4gICAgICAgIGJhc2UgPSAxMDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5faW5pdChudW1iZXIgfHwgMCwgYmFzZSB8fCAxMCwgZW5kaWFuIHx8ICdiZScpO1xuICAgIH1cbiAgfVxuICBpZiAodHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IEJOO1xuICB9IGVsc2Uge1xuICAgIGV4cG9ydHMuQk4gPSBCTjtcbiAgfVxuXG4gIEJOLkJOID0gQk47XG4gIEJOLndvcmRTaXplID0gMjY7XG5cbiAgdmFyIEJ1ZmZlcjtcbiAgdHJ5IHtcbiAgICBCdWZmZXIgPSByZXF1aXJlKCdidWZmZXInKS5CdWZmZXI7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgfVxuXG4gIEJOLmlzQk4gPSBmdW5jdGlvbiBpc0JOIChudW0pIHtcbiAgICBpZiAobnVtIGluc3RhbmNlb2YgQk4pIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBudW0gIT09IG51bGwgJiYgdHlwZW9mIG51bSA9PT0gJ29iamVjdCcgJiZcbiAgICAgIG51bS5jb25zdHJ1Y3Rvci53b3JkU2l6ZSA9PT0gQk4ud29yZFNpemUgJiYgQXJyYXkuaXNBcnJheShudW0ud29yZHMpO1xuICB9O1xuXG4gIEJOLm1heCA9IGZ1bmN0aW9uIG1heCAobGVmdCwgcmlnaHQpIHtcbiAgICBpZiAobGVmdC5jbXAocmlnaHQpID4gMCkgcmV0dXJuIGxlZnQ7XG4gICAgcmV0dXJuIHJpZ2h0O1xuICB9O1xuXG4gIEJOLm1pbiA9IGZ1bmN0aW9uIG1pbiAobGVmdCwgcmlnaHQpIHtcbiAgICBpZiAobGVmdC5jbXAocmlnaHQpIDwgMCkgcmV0dXJuIGxlZnQ7XG4gICAgcmV0dXJuIHJpZ2h0O1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5faW5pdCA9IGZ1bmN0aW9uIGluaXQgKG51bWJlciwgYmFzZSwgZW5kaWFuKSB7XG4gICAgaWYgKHR5cGVvZiBudW1iZXIgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gdGhpcy5faW5pdE51bWJlcihudW1iZXIsIGJhc2UsIGVuZGlhbik7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBudW1iZXIgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gdGhpcy5faW5pdEFycmF5KG51bWJlciwgYmFzZSwgZW5kaWFuKTtcbiAgICB9XG5cbiAgICBpZiAoYmFzZSA9PT0gJ2hleCcpIHtcbiAgICAgIGJhc2UgPSAxNjtcbiAgICB9XG4gICAgYXNzZXJ0KGJhc2UgPT09IChiYXNlIHwgMCkgJiYgYmFzZSA+PSAyICYmIGJhc2UgPD0gMzYpO1xuXG4gICAgbnVtYmVyID0gbnVtYmVyLnRvU3RyaW5nKCkucmVwbGFjZSgvXFxzKy9nLCAnJyk7XG4gICAgdmFyIHN0YXJ0ID0gMDtcbiAgICBpZiAobnVtYmVyWzBdID09PSAnLScpIHtcbiAgICAgIHN0YXJ0Kys7XG4gICAgfVxuXG4gICAgaWYgKGJhc2UgPT09IDE2KSB7XG4gICAgICB0aGlzLl9wYXJzZUhleChudW1iZXIsIHN0YXJ0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcGFyc2VCYXNlKG51bWJlciwgYmFzZSwgc3RhcnQpO1xuICAgIH1cblxuICAgIGlmIChudW1iZXJbMF0gPT09ICctJykge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDE7XG4gICAgfVxuXG4gICAgdGhpcy5zdHJpcCgpO1xuXG4gICAgaWYgKGVuZGlhbiAhPT0gJ2xlJykgcmV0dXJuO1xuXG4gICAgdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLCBiYXNlLCBlbmRpYW4pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5faW5pdE51bWJlciA9IGZ1bmN0aW9uIF9pbml0TnVtYmVyIChudW1iZXIsIGJhc2UsIGVuZGlhbikge1xuICAgIGlmIChudW1iZXIgPCAwKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMTtcbiAgICAgIG51bWJlciA9IC1udW1iZXI7XG4gICAgfVxuICAgIGlmIChudW1iZXIgPCAweDQwMDAwMDApIHtcbiAgICAgIHRoaXMud29yZHMgPSBbIG51bWJlciAmIDB4M2ZmZmZmZiBdO1xuICAgICAgdGhpcy5sZW5ndGggPSAxO1xuICAgIH0gZWxzZSBpZiAobnVtYmVyIDwgMHgxMDAwMDAwMDAwMDAwMCkge1xuICAgICAgdGhpcy53b3JkcyA9IFtcbiAgICAgICAgbnVtYmVyICYgMHgzZmZmZmZmLFxuICAgICAgICAobnVtYmVyIC8gMHg0MDAwMDAwKSAmIDB4M2ZmZmZmZlxuICAgICAgXTtcbiAgICAgIHRoaXMubGVuZ3RoID0gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzZXJ0KG51bWJlciA8IDB4MjAwMDAwMDAwMDAwMDApOyAvLyAyIF4gNTMgKHVuc2FmZSlcbiAgICAgIHRoaXMud29yZHMgPSBbXG4gICAgICAgIG51bWJlciAmIDB4M2ZmZmZmZixcbiAgICAgICAgKG51bWJlciAvIDB4NDAwMDAwMCkgJiAweDNmZmZmZmYsXG4gICAgICAgIDFcbiAgICAgIF07XG4gICAgICB0aGlzLmxlbmd0aCA9IDM7XG4gICAgfVxuXG4gICAgaWYgKGVuZGlhbiAhPT0gJ2xlJykgcmV0dXJuO1xuXG4gICAgLy8gUmV2ZXJzZSB0aGUgYnl0ZXNcbiAgICB0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksIGJhc2UsIGVuZGlhbik7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLl9pbml0QXJyYXkgPSBmdW5jdGlvbiBfaW5pdEFycmF5IChudW1iZXIsIGJhc2UsIGVuZGlhbikge1xuICAgIC8vIFBlcmhhcHMgYSBVaW50OEFycmF5XG4gICAgYXNzZXJ0KHR5cGVvZiBudW1iZXIubGVuZ3RoID09PSAnbnVtYmVyJyk7XG4gICAgaWYgKG51bWJlci5sZW5ndGggPD0gMCkge1xuICAgICAgdGhpcy53b3JkcyA9IFsgMCBdO1xuICAgICAgdGhpcy5sZW5ndGggPSAxO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdGhpcy5sZW5ndGggPSBNYXRoLmNlaWwobnVtYmVyLmxlbmd0aCAvIDMpO1xuICAgIHRoaXMud29yZHMgPSBuZXcgQXJyYXkodGhpcy5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IDA7XG4gICAgfVxuXG4gICAgdmFyIGosIHc7XG4gICAgdmFyIG9mZiA9IDA7XG4gICAgaWYgKGVuZGlhbiA9PT0gJ2JlJykge1xuICAgICAgZm9yIChpID0gbnVtYmVyLmxlbmd0aCAtIDEsIGogPSAwOyBpID49IDA7IGkgLT0gMykge1xuICAgICAgICB3ID0gbnVtYmVyW2ldIHwgKG51bWJlcltpIC0gMV0gPDwgOCkgfCAobnVtYmVyW2kgLSAyXSA8PCAxNik7XG4gICAgICAgIHRoaXMud29yZHNbal0gfD0gKHcgPDwgb2ZmKSAmIDB4M2ZmZmZmZjtcbiAgICAgICAgdGhpcy53b3Jkc1tqICsgMV0gPSAodyA+Pj4gKDI2IC0gb2ZmKSkgJiAweDNmZmZmZmY7XG4gICAgICAgIG9mZiArPSAyNDtcbiAgICAgICAgaWYgKG9mZiA+PSAyNikge1xuICAgICAgICAgIG9mZiAtPSAyNjtcbiAgICAgICAgICBqKys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVuZGlhbiA9PT0gJ2xlJykge1xuICAgICAgZm9yIChpID0gMCwgaiA9IDA7IGkgPCBudW1iZXIubGVuZ3RoOyBpICs9IDMpIHtcbiAgICAgICAgdyA9IG51bWJlcltpXSB8IChudW1iZXJbaSArIDFdIDw8IDgpIHwgKG51bWJlcltpICsgMl0gPDwgMTYpO1xuICAgICAgICB0aGlzLndvcmRzW2pdIHw9ICh3IDw8IG9mZikgJiAweDNmZmZmZmY7XG4gICAgICAgIHRoaXMud29yZHNbaiArIDFdID0gKHcgPj4+ICgyNiAtIG9mZikpICYgMHgzZmZmZmZmO1xuICAgICAgICBvZmYgKz0gMjQ7XG4gICAgICAgIGlmIChvZmYgPj0gMjYpIHtcbiAgICAgICAgICBvZmYgLT0gMjY7XG4gICAgICAgICAgaisrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgZnVuY3Rpb24gcGFyc2VIZXggKHN0ciwgc3RhcnQsIGVuZCkge1xuICAgIHZhciByID0gMDtcbiAgICB2YXIgbGVuID0gTWF0aC5taW4oc3RyLmxlbmd0aCwgZW5kKTtcbiAgICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBsZW47IGkrKykge1xuICAgICAgdmFyIGMgPSBzdHIuY2hhckNvZGVBdChpKSAtIDQ4O1xuXG4gICAgICByIDw8PSA0O1xuXG4gICAgICAvLyAnYScgLSAnZidcbiAgICAgIGlmIChjID49IDQ5ICYmIGMgPD0gNTQpIHtcbiAgICAgICAgciB8PSBjIC0gNDkgKyAweGE7XG5cbiAgICAgIC8vICdBJyAtICdGJ1xuICAgICAgfSBlbHNlIGlmIChjID49IDE3ICYmIGMgPD0gMjIpIHtcbiAgICAgICAgciB8PSBjIC0gMTcgKyAweGE7XG5cbiAgICAgIC8vICcwJyAtICc5J1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgciB8PSBjICYgMHhmO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfVxuXG4gIEJOLnByb3RvdHlwZS5fcGFyc2VIZXggPSBmdW5jdGlvbiBfcGFyc2VIZXggKG51bWJlciwgc3RhcnQpIHtcbiAgICAvLyBDcmVhdGUgcG9zc2libHkgYmlnZ2VyIGFycmF5IHRvIGVuc3VyZSB0aGF0IGl0IGZpdHMgdGhlIG51bWJlclxuICAgIHRoaXMubGVuZ3RoID0gTWF0aC5jZWlsKChudW1iZXIubGVuZ3RoIC0gc3RhcnQpIC8gNik7XG4gICAgdGhpcy53b3JkcyA9IG5ldyBBcnJheSh0aGlzLmxlbmd0aCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLndvcmRzW2ldID0gMDtcbiAgICB9XG5cbiAgICB2YXIgaiwgdztcbiAgICAvLyBTY2FuIDI0LWJpdCBjaHVua3MgYW5kIGFkZCB0aGVtIHRvIHRoZSBudW1iZXJcbiAgICB2YXIgb2ZmID0gMDtcbiAgICBmb3IgKGkgPSBudW1iZXIubGVuZ3RoIC0gNiwgaiA9IDA7IGkgPj0gc3RhcnQ7IGkgLT0gNikge1xuICAgICAgdyA9IHBhcnNlSGV4KG51bWJlciwgaSwgaSArIDYpO1xuICAgICAgdGhpcy53b3Jkc1tqXSB8PSAodyA8PCBvZmYpICYgMHgzZmZmZmZmO1xuICAgICAgLy8gTk9URTogYDB4M2ZmZmZmYCBpcyBpbnRlbnRpb25hbCBoZXJlLCAyNmJpdHMgbWF4IHNoaWZ0ICsgMjRiaXQgaGV4IGxpbWJcbiAgICAgIHRoaXMud29yZHNbaiArIDFdIHw9IHcgPj4+ICgyNiAtIG9mZikgJiAweDNmZmZmZjtcbiAgICAgIG9mZiArPSAyNDtcbiAgICAgIGlmIChvZmYgPj0gMjYpIHtcbiAgICAgICAgb2ZmIC09IDI2O1xuICAgICAgICBqKys7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpICsgNiAhPT0gc3RhcnQpIHtcbiAgICAgIHcgPSBwYXJzZUhleChudW1iZXIsIHN0YXJ0LCBpICsgNik7XG4gICAgICB0aGlzLndvcmRzW2pdIHw9ICh3IDw8IG9mZikgJiAweDNmZmZmZmY7XG4gICAgICB0aGlzLndvcmRzW2ogKyAxXSB8PSB3ID4+PiAoMjYgLSBvZmYpICYgMHgzZmZmZmY7XG4gICAgfVxuICAgIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICBmdW5jdGlvbiBwYXJzZUJhc2UgKHN0ciwgc3RhcnQsIGVuZCwgbXVsKSB7XG4gICAgdmFyIHIgPSAwO1xuICAgIHZhciBsZW4gPSBNYXRoLm1pbihzdHIubGVuZ3RoLCBlbmQpO1xuICAgIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICB2YXIgYyA9IHN0ci5jaGFyQ29kZUF0KGkpIC0gNDg7XG5cbiAgICAgIHIgKj0gbXVsO1xuXG4gICAgICAvLyAnYSdcbiAgICAgIGlmIChjID49IDQ5KSB7XG4gICAgICAgIHIgKz0gYyAtIDQ5ICsgMHhhO1xuXG4gICAgICAvLyAnQSdcbiAgICAgIH0gZWxzZSBpZiAoYyA+PSAxNykge1xuICAgICAgICByICs9IGMgLSAxNyArIDB4YTtcblxuICAgICAgLy8gJzAnIC0gJzknXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByICs9IGM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9XG5cbiAgQk4ucHJvdG90eXBlLl9wYXJzZUJhc2UgPSBmdW5jdGlvbiBfcGFyc2VCYXNlIChudW1iZXIsIGJhc2UsIHN0YXJ0KSB7XG4gICAgLy8gSW5pdGlhbGl6ZSBhcyB6ZXJvXG4gICAgdGhpcy53b3JkcyA9IFsgMCBdO1xuICAgIHRoaXMubGVuZ3RoID0gMTtcblxuICAgIC8vIEZpbmQgbGVuZ3RoIG9mIGxpbWIgaW4gYmFzZVxuICAgIGZvciAodmFyIGxpbWJMZW4gPSAwLCBsaW1iUG93ID0gMTsgbGltYlBvdyA8PSAweDNmZmZmZmY7IGxpbWJQb3cgKj0gYmFzZSkge1xuICAgICAgbGltYkxlbisrO1xuICAgIH1cbiAgICBsaW1iTGVuLS07XG4gICAgbGltYlBvdyA9IChsaW1iUG93IC8gYmFzZSkgfCAwO1xuXG4gICAgdmFyIHRvdGFsID0gbnVtYmVyLmxlbmd0aCAtIHN0YXJ0O1xuICAgIHZhciBtb2QgPSB0b3RhbCAlIGxpbWJMZW47XG4gICAgdmFyIGVuZCA9IE1hdGgubWluKHRvdGFsLCB0b3RhbCAtIG1vZCkgKyBzdGFydDtcblxuICAgIHZhciB3b3JkID0gMDtcbiAgICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkgKz0gbGltYkxlbikge1xuICAgICAgd29yZCA9IHBhcnNlQmFzZShudW1iZXIsIGksIGkgKyBsaW1iTGVuLCBiYXNlKTtcblxuICAgICAgdGhpcy5pbXVsbihsaW1iUG93KTtcbiAgICAgIGlmICh0aGlzLndvcmRzWzBdICsgd29yZCA8IDB4NDAwMDAwMCkge1xuICAgICAgICB0aGlzLndvcmRzWzBdICs9IHdvcmQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9pYWRkbih3b3JkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kICE9PSAwKSB7XG4gICAgICB2YXIgcG93ID0gMTtcbiAgICAgIHdvcmQgPSBwYXJzZUJhc2UobnVtYmVyLCBpLCBudW1iZXIubGVuZ3RoLCBiYXNlKTtcblxuICAgICAgZm9yIChpID0gMDsgaSA8IG1vZDsgaSsrKSB7XG4gICAgICAgIHBvdyAqPSBiYXNlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmltdWxuKHBvdyk7XG4gICAgICBpZiAodGhpcy53b3Jkc1swXSArIHdvcmQgPCAweDQwMDAwMDApIHtcbiAgICAgICAgdGhpcy53b3Jkc1swXSArPSB3b3JkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5faWFkZG4od29yZCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5jb3B5ID0gZnVuY3Rpb24gY29weSAoZGVzdCkge1xuICAgIGRlc3Qud29yZHMgPSBuZXcgQXJyYXkodGhpcy5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgZGVzdC53b3Jkc1tpXSA9IHRoaXMud29yZHNbaV07XG4gICAgfVxuICAgIGRlc3QubGVuZ3RoID0gdGhpcy5sZW5ndGg7XG4gICAgZGVzdC5uZWdhdGl2ZSA9IHRoaXMubmVnYXRpdmU7XG4gICAgZGVzdC5yZWQgPSB0aGlzLnJlZDtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuY2xvbmUgPSBmdW5jdGlvbiBjbG9uZSAoKSB7XG4gICAgdmFyIHIgPSBuZXcgQk4obnVsbCk7XG4gICAgdGhpcy5jb3B5KHIpO1xuICAgIHJldHVybiByO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5fZXhwYW5kID0gZnVuY3Rpb24gX2V4cGFuZCAoc2l6ZSkge1xuICAgIHdoaWxlICh0aGlzLmxlbmd0aCA8IHNpemUpIHtcbiAgICAgIHRoaXMud29yZHNbdGhpcy5sZW5ndGgrK10gPSAwO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvLyBSZW1vdmUgbGVhZGluZyBgMGAgZnJvbSBgdGhpc2BcbiAgQk4ucHJvdG90eXBlLnN0cmlwID0gZnVuY3Rpb24gc3RyaXAgKCkge1xuICAgIHdoaWxlICh0aGlzLmxlbmd0aCA+IDEgJiYgdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCAtIDFdID09PSAwKSB7XG4gICAgICB0aGlzLmxlbmd0aC0tO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fbm9ybVNpZ24oKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuX25vcm1TaWduID0gZnVuY3Rpb24gX25vcm1TaWduICgpIHtcbiAgICAvLyAtMCA9IDBcbiAgICBpZiAodGhpcy5sZW5ndGggPT09IDEgJiYgdGhpcy53b3Jkc1swXSA9PT0gMCkge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pbnNwZWN0ID0gZnVuY3Rpb24gaW5zcGVjdCAoKSB7XG4gICAgcmV0dXJuICh0aGlzLnJlZCA/ICc8Qk4tUjogJyA6ICc8Qk46ICcpICsgdGhpcy50b1N0cmluZygxNikgKyAnPic7XG4gIH07XG5cbiAgLypcblxuICB2YXIgemVyb3MgPSBbXTtcbiAgdmFyIGdyb3VwU2l6ZXMgPSBbXTtcbiAgdmFyIGdyb3VwQmFzZXMgPSBbXTtcblxuICB2YXIgcyA9ICcnO1xuICB2YXIgaSA9IC0xO1xuICB3aGlsZSAoKytpIDwgQk4ud29yZFNpemUpIHtcbiAgICB6ZXJvc1tpXSA9IHM7XG4gICAgcyArPSAnMCc7XG4gIH1cbiAgZ3JvdXBTaXplc1swXSA9IDA7XG4gIGdyb3VwU2l6ZXNbMV0gPSAwO1xuICBncm91cEJhc2VzWzBdID0gMDtcbiAgZ3JvdXBCYXNlc1sxXSA9IDA7XG4gIHZhciBiYXNlID0gMiAtIDE7XG4gIHdoaWxlICgrK2Jhc2UgPCAzNiArIDEpIHtcbiAgICB2YXIgZ3JvdXBTaXplID0gMDtcbiAgICB2YXIgZ3JvdXBCYXNlID0gMTtcbiAgICB3aGlsZSAoZ3JvdXBCYXNlIDwgKDEgPDwgQk4ud29yZFNpemUpIC8gYmFzZSkge1xuICAgICAgZ3JvdXBCYXNlICo9IGJhc2U7XG4gICAgICBncm91cFNpemUgKz0gMTtcbiAgICB9XG4gICAgZ3JvdXBTaXplc1tiYXNlXSA9IGdyb3VwU2l6ZTtcbiAgICBncm91cEJhc2VzW2Jhc2VdID0gZ3JvdXBCYXNlO1xuICB9XG5cbiAgKi9cblxuICB2YXIgemVyb3MgPSBbXG4gICAgJycsXG4gICAgJzAnLFxuICAgICcwMCcsXG4gICAgJzAwMCcsXG4gICAgJzAwMDAnLFxuICAgICcwMDAwMCcsXG4gICAgJzAwMDAwMCcsXG4gICAgJzAwMDAwMDAnLFxuICAgICcwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnXG4gIF07XG5cbiAgdmFyIGdyb3VwU2l6ZXMgPSBbXG4gICAgMCwgMCxcbiAgICAyNSwgMTYsIDEyLCAxMSwgMTAsIDksIDgsXG4gICAgOCwgNywgNywgNywgNywgNiwgNixcbiAgICA2LCA2LCA2LCA2LCA2LCA1LCA1LFxuICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsXG4gICAgNSwgNSwgNSwgNSwgNSwgNSwgNVxuICBdO1xuXG4gIHZhciBncm91cEJhc2VzID0gW1xuICAgIDAsIDAsXG4gICAgMzM1NTQ0MzIsIDQzMDQ2NzIxLCAxNjc3NzIxNiwgNDg4MjgxMjUsIDYwNDY2MTc2LCA0MDM1MzYwNywgMTY3NzcyMTYsXG4gICAgNDMwNDY3MjEsIDEwMDAwMDAwLCAxOTQ4NzE3MSwgMzU4MzE4MDgsIDYyNzQ4NTE3LCA3NTI5NTM2LCAxMTM5MDYyNSxcbiAgICAxNjc3NzIxNiwgMjQxMzc1NjksIDM0MDEyMjI0LCA0NzA0NTg4MSwgNjQwMDAwMDAsIDQwODQxMDEsIDUxNTM2MzIsXG4gICAgNjQzNjM0MywgNzk2MjYyNCwgOTc2NTYyNSwgMTE4ODEzNzYsIDE0MzQ4OTA3LCAxNzIxMDM2OCwgMjA1MTExNDksXG4gICAgMjQzMDAwMDAsIDI4NjI5MTUxLCAzMzU1NDQzMiwgMzkxMzUzOTMsIDQ1NDM1NDI0LCA1MjUyMTg3NSwgNjA0NjYxNzZcbiAgXTtcblxuICBCTi5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyAoYmFzZSwgcGFkZGluZykge1xuICAgIGJhc2UgPSBiYXNlIHx8IDEwO1xuICAgIHBhZGRpbmcgPSBwYWRkaW5nIHwgMCB8fCAxO1xuXG4gICAgdmFyIG91dDtcbiAgICBpZiAoYmFzZSA9PT0gMTYgfHwgYmFzZSA9PT0gJ2hleCcpIHtcbiAgICAgIG91dCA9ICcnO1xuICAgICAgdmFyIG9mZiA9IDA7XG4gICAgICB2YXIgY2FycnkgPSAwO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciB3ID0gdGhpcy53b3Jkc1tpXTtcbiAgICAgICAgdmFyIHdvcmQgPSAoKCh3IDw8IG9mZikgfCBjYXJyeSkgJiAweGZmZmZmZikudG9TdHJpbmcoMTYpO1xuICAgICAgICBjYXJyeSA9ICh3ID4+PiAoMjQgLSBvZmYpKSAmIDB4ZmZmZmZmO1xuICAgICAgICBpZiAoY2FycnkgIT09IDAgfHwgaSAhPT0gdGhpcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgb3V0ID0gemVyb3NbNiAtIHdvcmQubGVuZ3RoXSArIHdvcmQgKyBvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ID0gd29yZCArIG91dDtcbiAgICAgICAgfVxuICAgICAgICBvZmYgKz0gMjtcbiAgICAgICAgaWYgKG9mZiA+PSAyNikge1xuICAgICAgICAgIG9mZiAtPSAyNjtcbiAgICAgICAgICBpLS07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChjYXJyeSAhPT0gMCkge1xuICAgICAgICBvdXQgPSBjYXJyeS50b1N0cmluZygxNikgKyBvdXQ7XG4gICAgICB9XG4gICAgICB3aGlsZSAob3V0Lmxlbmd0aCAlIHBhZGRpbmcgIT09IDApIHtcbiAgICAgICAgb3V0ID0gJzAnICsgb3V0O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMubmVnYXRpdmUgIT09IDApIHtcbiAgICAgICAgb3V0ID0gJy0nICsgb3V0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG5cbiAgICBpZiAoYmFzZSA9PT0gKGJhc2UgfCAwKSAmJiBiYXNlID49IDIgJiYgYmFzZSA8PSAzNikge1xuICAgICAgLy8gdmFyIGdyb3VwU2l6ZSA9IE1hdGguZmxvb3IoQk4ud29yZFNpemUgKiBNYXRoLkxOMiAvIE1hdGgubG9nKGJhc2UpKTtcbiAgICAgIHZhciBncm91cFNpemUgPSBncm91cFNpemVzW2Jhc2VdO1xuICAgICAgLy8gdmFyIGdyb3VwQmFzZSA9IE1hdGgucG93KGJhc2UsIGdyb3VwU2l6ZSk7XG4gICAgICB2YXIgZ3JvdXBCYXNlID0gZ3JvdXBCYXNlc1tiYXNlXTtcbiAgICAgIG91dCA9ICcnO1xuICAgICAgdmFyIGMgPSB0aGlzLmNsb25lKCk7XG4gICAgICBjLm5lZ2F0aXZlID0gMDtcbiAgICAgIHdoaWxlICghYy5pc1plcm8oKSkge1xuICAgICAgICB2YXIgciA9IGMubW9kbihncm91cEJhc2UpLnRvU3RyaW5nKGJhc2UpO1xuICAgICAgICBjID0gYy5pZGl2bihncm91cEJhc2UpO1xuXG4gICAgICAgIGlmICghYy5pc1plcm8oKSkge1xuICAgICAgICAgIG91dCA9IHplcm9zW2dyb3VwU2l6ZSAtIHIubGVuZ3RoXSArIHIgKyBvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb3V0ID0gciArIG91dDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNaZXJvKCkpIHtcbiAgICAgICAgb3V0ID0gJzAnICsgb3V0O1xuICAgICAgfVxuICAgICAgd2hpbGUgKG91dC5sZW5ndGggJSBwYWRkaW5nICE9PSAwKSB7XG4gICAgICAgIG91dCA9ICcwJyArIG91dDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICAgIG91dCA9ICctJyArIG91dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvdXQ7XG4gICAgfVxuXG4gICAgYXNzZXJ0KGZhbHNlLCAnQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNicpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS50b051bWJlciA9IGZ1bmN0aW9uIHRvTnVtYmVyICgpIHtcbiAgICB2YXIgcmV0ID0gdGhpcy53b3Jkc1swXTtcbiAgICBpZiAodGhpcy5sZW5ndGggPT09IDIpIHtcbiAgICAgIHJldCArPSB0aGlzLndvcmRzWzFdICogMHg0MDAwMDAwO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGggPT09IDMgJiYgdGhpcy53b3Jkc1syXSA9PT0gMHgwMSkge1xuICAgICAgLy8gTk9URTogYXQgdGhpcyBzdGFnZSBpdCBpcyBrbm93biB0aGF0IHRoZSB0b3AgYml0IGlzIHNldFxuICAgICAgcmV0ICs9IDB4MTAwMDAwMDAwMDAwMDAgKyAodGhpcy53b3Jkc1sxXSAqIDB4NDAwMDAwMCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxlbmd0aCA+IDIpIHtcbiAgICAgIGFzc2VydChmYWxzZSwgJ051bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cycpO1xuICAgIH1cbiAgICByZXR1cm4gKHRoaXMubmVnYXRpdmUgIT09IDApID8gLXJldCA6IHJldDtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gdG9KU09OICgpIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygxNik7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnRvQnVmZmVyID0gZnVuY3Rpb24gdG9CdWZmZXIgKGVuZGlhbiwgbGVuZ3RoKSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBCdWZmZXIgIT09ICd1bmRlZmluZWQnKTtcbiAgICByZXR1cm4gdGhpcy50b0FycmF5TGlrZShCdWZmZXIsIGVuZGlhbiwgbGVuZ3RoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uIHRvQXJyYXkgKGVuZGlhbiwgbGVuZ3RoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksIGVuZGlhbiwgbGVuZ3RoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudG9BcnJheUxpa2UgPSBmdW5jdGlvbiB0b0FycmF5TGlrZSAoQXJyYXlUeXBlLCBlbmRpYW4sIGxlbmd0aCkge1xuICAgIHZhciBieXRlTGVuZ3RoID0gdGhpcy5ieXRlTGVuZ3RoKCk7XG4gICAgdmFyIHJlcUxlbmd0aCA9IGxlbmd0aCB8fCBNYXRoLm1heCgxLCBieXRlTGVuZ3RoKTtcbiAgICBhc3NlcnQoYnl0ZUxlbmd0aCA8PSByZXFMZW5ndGgsICdieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoJyk7XG4gICAgYXNzZXJ0KHJlcUxlbmd0aCA+IDAsICdSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAnKTtcblxuICAgIHRoaXMuc3RyaXAoKTtcbiAgICB2YXIgbGl0dGxlRW5kaWFuID0gZW5kaWFuID09PSAnbGUnO1xuICAgIHZhciByZXMgPSBuZXcgQXJyYXlUeXBlKHJlcUxlbmd0aCk7XG5cbiAgICB2YXIgYiwgaTtcbiAgICB2YXIgcSA9IHRoaXMuY2xvbmUoKTtcbiAgICBpZiAoIWxpdHRsZUVuZGlhbikge1xuICAgICAgLy8gQXNzdW1lIGJpZy1lbmRpYW5cbiAgICAgIGZvciAoaSA9IDA7IGkgPCByZXFMZW5ndGggLSBieXRlTGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVzW2ldID0gMDtcbiAgICAgIH1cblxuICAgICAgZm9yIChpID0gMDsgIXEuaXNaZXJvKCk7IGkrKykge1xuICAgICAgICBiID0gcS5hbmRsbigweGZmKTtcbiAgICAgICAgcS5pdXNocm4oOCk7XG5cbiAgICAgICAgcmVzW3JlcUxlbmd0aCAtIGkgLSAxXSA9IGI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoaSA9IDA7ICFxLmlzWmVybygpOyBpKyspIHtcbiAgICAgICAgYiA9IHEuYW5kbG4oMHhmZik7XG4gICAgICAgIHEuaXVzaHJuKDgpO1xuXG4gICAgICAgIHJlc1tpXSA9IGI7XG4gICAgICB9XG5cbiAgICAgIGZvciAoOyBpIDwgcmVxTGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVzW2ldID0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG4gIGlmIChNYXRoLmNsejMyKSB7XG4gICAgQk4ucHJvdG90eXBlLl9jb3VudEJpdHMgPSBmdW5jdGlvbiBfY291bnRCaXRzICh3KSB7XG4gICAgICByZXR1cm4gMzIgLSBNYXRoLmNsejMyKHcpO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgQk4ucHJvdG90eXBlLl9jb3VudEJpdHMgPSBmdW5jdGlvbiBfY291bnRCaXRzICh3KSB7XG4gICAgICB2YXIgdCA9IHc7XG4gICAgICB2YXIgciA9IDA7XG4gICAgICBpZiAodCA+PSAweDEwMDApIHtcbiAgICAgICAgciArPSAxMztcbiAgICAgICAgdCA+Pj49IDEzO1xuICAgICAgfVxuICAgICAgaWYgKHQgPj0gMHg0MCkge1xuICAgICAgICByICs9IDc7XG4gICAgICAgIHQgPj4+PSA3O1xuICAgICAgfVxuICAgICAgaWYgKHQgPj0gMHg4KSB7XG4gICAgICAgIHIgKz0gNDtcbiAgICAgICAgdCA+Pj49IDQ7XG4gICAgICB9XG4gICAgICBpZiAodCA+PSAweDAyKSB7XG4gICAgICAgIHIgKz0gMjtcbiAgICAgICAgdCA+Pj49IDI7XG4gICAgICB9XG4gICAgICByZXR1cm4gciArIHQ7XG4gICAgfTtcbiAgfVxuXG4gIEJOLnByb3RvdHlwZS5femVyb0JpdHMgPSBmdW5jdGlvbiBfemVyb0JpdHMgKHcpIHtcbiAgICAvLyBTaG9ydC1jdXRcbiAgICBpZiAodyA9PT0gMCkgcmV0dXJuIDI2O1xuXG4gICAgdmFyIHQgPSB3O1xuICAgIHZhciByID0gMDtcbiAgICBpZiAoKHQgJiAweDFmZmYpID09PSAwKSB7XG4gICAgICByICs9IDEzO1xuICAgICAgdCA+Pj49IDEzO1xuICAgIH1cbiAgICBpZiAoKHQgJiAweDdmKSA9PT0gMCkge1xuICAgICAgciArPSA3O1xuICAgICAgdCA+Pj49IDc7XG4gICAgfVxuICAgIGlmICgodCAmIDB4ZikgPT09IDApIHtcbiAgICAgIHIgKz0gNDtcbiAgICAgIHQgPj4+PSA0O1xuICAgIH1cbiAgICBpZiAoKHQgJiAweDMpID09PSAwKSB7XG4gICAgICByICs9IDI7XG4gICAgICB0ID4+Pj0gMjtcbiAgICB9XG4gICAgaWYgKCh0ICYgMHgxKSA9PT0gMCkge1xuICAgICAgcisrO1xuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfTtcblxuICAvLyBSZXR1cm4gbnVtYmVyIG9mIHVzZWQgYml0cyBpbiBhIEJOXG4gIEJOLnByb3RvdHlwZS5iaXRMZW5ndGggPSBmdW5jdGlvbiBiaXRMZW5ndGggKCkge1xuICAgIHZhciB3ID0gdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCAtIDFdO1xuICAgIHZhciBoaSA9IHRoaXMuX2NvdW50Qml0cyh3KTtcbiAgICByZXR1cm4gKHRoaXMubGVuZ3RoIC0gMSkgKiAyNiArIGhpO1xuICB9O1xuXG4gIGZ1bmN0aW9uIHRvQml0QXJyYXkgKG51bSkge1xuICAgIHZhciB3ID0gbmV3IEFycmF5KG51bS5iaXRMZW5ndGgoKSk7XG5cbiAgICBmb3IgKHZhciBiaXQgPSAwOyBiaXQgPCB3Lmxlbmd0aDsgYml0KyspIHtcbiAgICAgIHZhciBvZmYgPSAoYml0IC8gMjYpIHwgMDtcbiAgICAgIHZhciB3Yml0ID0gYml0ICUgMjY7XG5cbiAgICAgIHdbYml0XSA9IChudW0ud29yZHNbb2ZmXSAmICgxIDw8IHdiaXQpKSA+Pj4gd2JpdDtcbiAgICB9XG5cbiAgICByZXR1cm4gdztcbiAgfVxuXG4gIC8vIE51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHNcbiAgQk4ucHJvdG90eXBlLnplcm9CaXRzID0gZnVuY3Rpb24gemVyb0JpdHMgKCkge1xuICAgIGlmICh0aGlzLmlzWmVybygpKSByZXR1cm4gMDtcblxuICAgIHZhciByID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBiID0gdGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tpXSk7XG4gICAgICByICs9IGI7XG4gICAgICBpZiAoYiAhPT0gMjYpIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuYnl0ZUxlbmd0aCA9IGZ1bmN0aW9uIGJ5dGVMZW5ndGggKCkge1xuICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKSAvIDgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS50b1R3b3MgPSBmdW5jdGlvbiB0b1R3b3MgKHdpZHRoKSB7XG4gICAgaWYgKHRoaXMubmVnYXRpdmUgIT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmFicygpLmlub3RuKHdpZHRoKS5pYWRkbigxKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZnJvbVR3b3MgPSBmdW5jdGlvbiBmcm9tVHdvcyAod2lkdGgpIHtcbiAgICBpZiAodGhpcy50ZXN0bih3aWR0aCAtIDEpKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub3RuKHdpZHRoKS5pYWRkbigxKS5pbmVnKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNsb25lKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmlzTmVnID0gZnVuY3Rpb24gaXNOZWcgKCkge1xuICAgIHJldHVybiB0aGlzLm5lZ2F0aXZlICE9PSAwO1xuICB9O1xuXG4gIC8vIFJldHVybiBuZWdhdGl2ZSBjbG9uZSBvZiBgdGhpc2BcbiAgQk4ucHJvdG90eXBlLm5lZyA9IGZ1bmN0aW9uIG5lZyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmluZWcgPSBmdW5jdGlvbiBpbmVnICgpIHtcbiAgICBpZiAoIXRoaXMuaXNaZXJvKCkpIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgXj0gMTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvLyBPciBgbnVtYCB3aXRoIGB0aGlzYCBpbi1wbGFjZVxuICBCTi5wcm90b3R5cGUuaXVvciA9IGZ1bmN0aW9uIGl1b3IgKG51bSkge1xuICAgIHdoaWxlICh0aGlzLmxlbmd0aCA8IG51bS5sZW5ndGgpIHtcbiAgICAgIHRoaXMud29yZHNbdGhpcy5sZW5ndGgrK10gPSAwO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLndvcmRzW2ldID0gdGhpcy53b3Jkc1tpXSB8IG51bS53b3Jkc1tpXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pb3IgPSBmdW5jdGlvbiBpb3IgKG51bSkge1xuICAgIGFzc2VydCgodGhpcy5uZWdhdGl2ZSB8IG51bS5uZWdhdGl2ZSkgPT09IDApO1xuICAgIHJldHVybiB0aGlzLml1b3IobnVtKTtcbiAgfTtcblxuICAvLyBPciBgbnVtYCB3aXRoIGB0aGlzYFxuICBCTi5wcm90b3R5cGUub3IgPSBmdW5jdGlvbiBvciAobnVtKSB7XG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbnVtLmxlbmd0aCkgcmV0dXJuIHRoaXMuY2xvbmUoKS5pb3IobnVtKTtcbiAgICByZXR1cm4gbnVtLmNsb25lKCkuaW9yKHRoaXMpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS51b3IgPSBmdW5jdGlvbiB1b3IgKG51bSkge1xuICAgIGlmICh0aGlzLmxlbmd0aCA+IG51bS5sZW5ndGgpIHJldHVybiB0aGlzLmNsb25lKCkuaXVvcihudW0pO1xuICAgIHJldHVybiBudW0uY2xvbmUoKS5pdW9yKHRoaXMpO1xuICB9O1xuXG4gIC8vIEFuZCBgbnVtYCB3aXRoIGB0aGlzYCBpbi1wbGFjZVxuICBCTi5wcm90b3R5cGUuaXVhbmQgPSBmdW5jdGlvbiBpdWFuZCAobnVtKSB7XG4gICAgLy8gYiA9IG1pbi1sZW5ndGgobnVtLCB0aGlzKVxuICAgIHZhciBiO1xuICAgIGlmICh0aGlzLmxlbmd0aCA+IG51bS5sZW5ndGgpIHtcbiAgICAgIGIgPSBudW07XG4gICAgfSBlbHNlIHtcbiAgICAgIGIgPSB0aGlzO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYi5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IHRoaXMud29yZHNbaV0gJiBudW0ud29yZHNbaV07XG4gICAgfVxuXG4gICAgdGhpcy5sZW5ndGggPSBiLmxlbmd0aDtcblxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmlhbmQgPSBmdW5jdGlvbiBpYW5kIChudW0pIHtcbiAgICBhc3NlcnQoKHRoaXMubmVnYXRpdmUgfCBudW0ubmVnYXRpdmUpID09PSAwKTtcbiAgICByZXR1cm4gdGhpcy5pdWFuZChudW0pO1xuICB9O1xuXG4gIC8vIEFuZCBgbnVtYCB3aXRoIGB0aGlzYFxuICBCTi5wcm90b3R5cGUuYW5kID0gZnVuY3Rpb24gYW5kIChudW0pIHtcbiAgICBpZiAodGhpcy5sZW5ndGggPiBudW0ubGVuZ3RoKSByZXR1cm4gdGhpcy5jbG9uZSgpLmlhbmQobnVtKTtcbiAgICByZXR1cm4gbnVtLmNsb25lKCkuaWFuZCh0aGlzKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUudWFuZCA9IGZ1bmN0aW9uIHVhbmQgKG51bSkge1xuICAgIGlmICh0aGlzLmxlbmd0aCA+IG51bS5sZW5ndGgpIHJldHVybiB0aGlzLmNsb25lKCkuaXVhbmQobnVtKTtcbiAgICByZXR1cm4gbnVtLmNsb25lKCkuaXVhbmQodGhpcyk7XG4gIH07XG5cbiAgLy8gWG9yIGBudW1gIHdpdGggYHRoaXNgIGluLXBsYWNlXG4gIEJOLnByb3RvdHlwZS5pdXhvciA9IGZ1bmN0aW9uIGl1eG9yIChudW0pIHtcbiAgICAvLyBhLmxlbmd0aCA+IGIubGVuZ3RoXG4gICAgdmFyIGE7XG4gICAgdmFyIGI7XG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbnVtLmxlbmd0aCkge1xuICAgICAgYSA9IHRoaXM7XG4gICAgICBiID0gbnVtO1xuICAgIH0gZWxzZSB7XG4gICAgICBhID0gbnVtO1xuICAgICAgYiA9IHRoaXM7XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLndvcmRzW2ldID0gYS53b3Jkc1tpXSBeIGIud29yZHNbaV07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMgIT09IGEpIHtcbiAgICAgIGZvciAoOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLndvcmRzW2ldID0gYS53b3Jkc1tpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmxlbmd0aCA9IGEubGVuZ3RoO1xuXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaXhvciA9IGZ1bmN0aW9uIGl4b3IgKG51bSkge1xuICAgIGFzc2VydCgodGhpcy5uZWdhdGl2ZSB8IG51bS5uZWdhdGl2ZSkgPT09IDApO1xuICAgIHJldHVybiB0aGlzLml1eG9yKG51bSk7XG4gIH07XG5cbiAgLy8gWG9yIGBudW1gIHdpdGggYHRoaXNgXG4gIEJOLnByb3RvdHlwZS54b3IgPSBmdW5jdGlvbiB4b3IgKG51bSkge1xuICAgIGlmICh0aGlzLmxlbmd0aCA+IG51bS5sZW5ndGgpIHJldHVybiB0aGlzLmNsb25lKCkuaXhvcihudW0pO1xuICAgIHJldHVybiBudW0uY2xvbmUoKS5peG9yKHRoaXMpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS51eG9yID0gZnVuY3Rpb24gdXhvciAobnVtKSB7XG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbnVtLmxlbmd0aCkgcmV0dXJuIHRoaXMuY2xvbmUoKS5pdXhvcihudW0pO1xuICAgIHJldHVybiBudW0uY2xvbmUoKS5pdXhvcih0aGlzKTtcbiAgfTtcblxuICAvLyBOb3QgYGB0aGlzYGAgd2l0aCBgYHdpZHRoYGAgYml0d2lkdGhcbiAgQk4ucHJvdG90eXBlLmlub3RuID0gZnVuY3Rpb24gaW5vdG4gKHdpZHRoKSB7XG4gICAgYXNzZXJ0KHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicgJiYgd2lkdGggPj0gMCk7XG5cbiAgICB2YXIgYnl0ZXNOZWVkZWQgPSBNYXRoLmNlaWwod2lkdGggLyAyNikgfCAwO1xuICAgIHZhciBiaXRzTGVmdCA9IHdpZHRoICUgMjY7XG5cbiAgICAvLyBFeHRlbmQgdGhlIGJ1ZmZlciB3aXRoIGxlYWRpbmcgemVyb2VzXG4gICAgdGhpcy5fZXhwYW5kKGJ5dGVzTmVlZGVkKTtcblxuICAgIGlmIChiaXRzTGVmdCA+IDApIHtcbiAgICAgIGJ5dGVzTmVlZGVkLS07XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGNvbXBsZXRlIHdvcmRzXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBieXRlc05lZWRlZDsgaSsrKSB7XG4gICAgICB0aGlzLndvcmRzW2ldID0gfnRoaXMud29yZHNbaV0gJiAweDNmZmZmZmY7XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHRoZSByZXNpZHVlXG4gICAgaWYgKGJpdHNMZWZ0ID4gMCkge1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IH50aGlzLndvcmRzW2ldICYgKDB4M2ZmZmZmZiA+PiAoMjYgLSBiaXRzTGVmdCkpO1xuICAgIH1cblxuICAgIC8vIEFuZCByZW1vdmUgbGVhZGluZyB6ZXJvZXNcbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5ub3RuID0gZnVuY3Rpb24gbm90biAod2lkdGgpIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKHdpZHRoKTtcbiAgfTtcblxuICAvLyBTZXQgYGJpdGAgb2YgYHRoaXNgXG4gIEJOLnByb3RvdHlwZS5zZXRuID0gZnVuY3Rpb24gc2V0biAoYml0LCB2YWwpIHtcbiAgICBhc3NlcnQodHlwZW9mIGJpdCA9PT0gJ251bWJlcicgJiYgYml0ID49IDApO1xuXG4gICAgdmFyIG9mZiA9IChiaXQgLyAyNikgfCAwO1xuICAgIHZhciB3Yml0ID0gYml0ICUgMjY7XG5cbiAgICB0aGlzLl9leHBhbmQob2ZmICsgMSk7XG5cbiAgICBpZiAodmFsKSB7XG4gICAgICB0aGlzLndvcmRzW29mZl0gPSB0aGlzLndvcmRzW29mZl0gfCAoMSA8PCB3Yml0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53b3Jkc1tvZmZdID0gdGhpcy53b3Jkc1tvZmZdICYgfigxIDw8IHdiaXQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgLy8gQWRkIGBudW1gIHRvIGB0aGlzYCBpbi1wbGFjZVxuICBCTi5wcm90b3R5cGUuaWFkZCA9IGZ1bmN0aW9uIGlhZGQgKG51bSkge1xuICAgIHZhciByO1xuXG4gICAgLy8gbmVnYXRpdmUgKyBwb3NpdGl2ZVxuICAgIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwICYmIG51bS5uZWdhdGl2ZSA9PT0gMCkge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDA7XG4gICAgICByID0gdGhpcy5pc3ViKG51bSk7XG4gICAgICB0aGlzLm5lZ2F0aXZlIF49IDE7XG4gICAgICByZXR1cm4gdGhpcy5fbm9ybVNpZ24oKTtcblxuICAgIC8vIHBvc2l0aXZlICsgbmVnYXRpdmVcbiAgICB9IGVsc2UgaWYgKHRoaXMubmVnYXRpdmUgPT09IDAgJiYgbnVtLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICBudW0ubmVnYXRpdmUgPSAwO1xuICAgICAgciA9IHRoaXMuaXN1YihudW0pO1xuICAgICAgbnVtLm5lZ2F0aXZlID0gMTtcbiAgICAgIHJldHVybiByLl9ub3JtU2lnbigpO1xuICAgIH1cblxuICAgIC8vIGEubGVuZ3RoID4gYi5sZW5ndGhcbiAgICB2YXIgYSwgYjtcbiAgICBpZiAodGhpcy5sZW5ndGggPiBudW0ubGVuZ3RoKSB7XG4gICAgICBhID0gdGhpcztcbiAgICAgIGIgPSBudW07XG4gICAgfSBlbHNlIHtcbiAgICAgIGEgPSBudW07XG4gICAgICBiID0gdGhpcztcbiAgICB9XG5cbiAgICB2YXIgY2FycnkgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYi5sZW5ndGg7IGkrKykge1xuICAgICAgciA9IChhLndvcmRzW2ldIHwgMCkgKyAoYi53b3Jkc1tpXSB8IDApICsgY2Fycnk7XG4gICAgICB0aGlzLndvcmRzW2ldID0gciAmIDB4M2ZmZmZmZjtcbiAgICAgIGNhcnJ5ID0gciA+Pj4gMjY7XG4gICAgfVxuICAgIGZvciAoOyBjYXJyeSAhPT0gMCAmJiBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgICAgciA9IChhLndvcmRzW2ldIHwgMCkgKyBjYXJyeTtcbiAgICAgIHRoaXMud29yZHNbaV0gPSByICYgMHgzZmZmZmZmO1xuICAgICAgY2FycnkgPSByID4+PiAyNjtcbiAgICB9XG5cbiAgICB0aGlzLmxlbmd0aCA9IGEubGVuZ3RoO1xuICAgIGlmIChjYXJyeSAhPT0gMCkge1xuICAgICAgdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF0gPSBjYXJyeTtcbiAgICAgIHRoaXMubGVuZ3RoKys7XG4gICAgLy8gQ29weSB0aGUgcmVzdCBvZiB0aGUgd29yZHNcbiAgICB9IGVsc2UgaWYgKGEgIT09IHRoaXMpIHtcbiAgICAgIGZvciAoOyBpIDwgYS5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLndvcmRzW2ldID0gYS53b3Jkc1tpXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvLyBBZGQgYG51bWAgdG8gYHRoaXNgXG4gIEJOLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiBhZGQgKG51bSkge1xuICAgIHZhciByZXM7XG4gICAgaWYgKG51bS5uZWdhdGl2ZSAhPT0gMCAmJiB0aGlzLm5lZ2F0aXZlID09PSAwKSB7XG4gICAgICBudW0ubmVnYXRpdmUgPSAwO1xuICAgICAgcmVzID0gdGhpcy5zdWIobnVtKTtcbiAgICAgIG51bS5uZWdhdGl2ZSBePSAxO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9IGVsc2UgaWYgKG51bS5uZWdhdGl2ZSA9PT0gMCAmJiB0aGlzLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMDtcbiAgICAgIHJlcyA9IG51bS5zdWIodGhpcyk7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbnVtLmxlbmd0aCkgcmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkKG51bSk7XG5cbiAgICByZXR1cm4gbnVtLmNsb25lKCkuaWFkZCh0aGlzKTtcbiAgfTtcblxuICAvLyBTdWJ0cmFjdCBgbnVtYCBmcm9tIGB0aGlzYCBpbi1wbGFjZVxuICBCTi5wcm90b3R5cGUuaXN1YiA9IGZ1bmN0aW9uIGlzdWIgKG51bSkge1xuICAgIC8vIHRoaXMgLSAoLW51bSkgPSB0aGlzICsgbnVtXG4gICAgaWYgKG51bS5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgbnVtLm5lZ2F0aXZlID0gMDtcbiAgICAgIHZhciByID0gdGhpcy5pYWRkKG51bSk7XG4gICAgICBudW0ubmVnYXRpdmUgPSAxO1xuICAgICAgcmV0dXJuIHIuX25vcm1TaWduKCk7XG5cbiAgICAvLyAtdGhpcyAtIG51bSA9IC0odGhpcyArIG51bSlcbiAgICB9IGVsc2UgaWYgKHRoaXMubmVnYXRpdmUgIT09IDApIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAwO1xuICAgICAgdGhpcy5pYWRkKG51bSk7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMTtcbiAgICAgIHJldHVybiB0aGlzLl9ub3JtU2lnbigpO1xuICAgIH1cblxuICAgIC8vIEF0IHRoaXMgcG9pbnQgYm90aCBudW1iZXJzIGFyZSBwb3NpdGl2ZVxuICAgIHZhciBjbXAgPSB0aGlzLmNtcChudW0pO1xuXG4gICAgLy8gT3B0aW1pemF0aW9uIC0gemVyb2lmeVxuICAgIGlmIChjbXAgPT09IDApIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAwO1xuICAgICAgdGhpcy5sZW5ndGggPSAxO1xuICAgICAgdGhpcy53b3Jkc1swXSA9IDA7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBhID4gYlxuICAgIHZhciBhLCBiO1xuICAgIGlmIChjbXAgPiAwKSB7XG4gICAgICBhID0gdGhpcztcbiAgICAgIGIgPSBudW07XG4gICAgfSBlbHNlIHtcbiAgICAgIGEgPSBudW07XG4gICAgICBiID0gdGhpcztcbiAgICB9XG5cbiAgICB2YXIgY2FycnkgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYi5sZW5ndGg7IGkrKykge1xuICAgICAgciA9IChhLndvcmRzW2ldIHwgMCkgLSAoYi53b3Jkc1tpXSB8IDApICsgY2Fycnk7XG4gICAgICBjYXJyeSA9IHIgPj4gMjY7XG4gICAgICB0aGlzLndvcmRzW2ldID0gciAmIDB4M2ZmZmZmZjtcbiAgICB9XG4gICAgZm9yICg7IGNhcnJ5ICE9PSAwICYmIGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICByID0gKGEud29yZHNbaV0gfCAwKSArIGNhcnJ5O1xuICAgICAgY2FycnkgPSByID4+IDI2O1xuICAgICAgdGhpcy53b3Jkc1tpXSA9IHIgJiAweDNmZmZmZmY7XG4gICAgfVxuXG4gICAgLy8gQ29weSByZXN0IG9mIHRoZSB3b3Jkc1xuICAgIGlmIChjYXJyeSA9PT0gMCAmJiBpIDwgYS5sZW5ndGggJiYgYSAhPT0gdGhpcykge1xuICAgICAgZm9yICg7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMud29yZHNbaV0gPSBhLndvcmRzW2ldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubGVuZ3RoID0gTWF0aC5tYXgodGhpcy5sZW5ndGgsIGkpO1xuXG4gICAgaWYgKGEgIT09IHRoaXMpIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAxO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN0cmlwKCk7XG4gIH07XG5cbiAgLy8gU3VidHJhY3QgYG51bWAgZnJvbSBgdGhpc2BcbiAgQk4ucHJvdG90eXBlLnN1YiA9IGZ1bmN0aW9uIHN1YiAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKG51bSk7XG4gIH07XG5cbiAgZnVuY3Rpb24gc21hbGxNdWxUbyAoc2VsZiwgbnVtLCBvdXQpIHtcbiAgICBvdXQubmVnYXRpdmUgPSBudW0ubmVnYXRpdmUgXiBzZWxmLm5lZ2F0aXZlO1xuICAgIHZhciBsZW4gPSAoc2VsZi5sZW5ndGggKyBudW0ubGVuZ3RoKSB8IDA7XG4gICAgb3V0Lmxlbmd0aCA9IGxlbjtcbiAgICBsZW4gPSAobGVuIC0gMSkgfCAwO1xuXG4gICAgLy8gUGVlbCBvbmUgaXRlcmF0aW9uIChjb21waWxlciBjYW4ndCBkbyBpdCwgYmVjYXVzZSBvZiBjb2RlIGNvbXBsZXhpdHkpXG4gICAgdmFyIGEgPSBzZWxmLndvcmRzWzBdIHwgMDtcbiAgICB2YXIgYiA9IG51bS53b3Jkc1swXSB8IDA7XG4gICAgdmFyIHIgPSBhICogYjtcblxuICAgIHZhciBsbyA9IHIgJiAweDNmZmZmZmY7XG4gICAgdmFyIGNhcnJ5ID0gKHIgLyAweDQwMDAwMDApIHwgMDtcbiAgICBvdXQud29yZHNbMF0gPSBsbztcblxuICAgIGZvciAodmFyIGsgPSAxOyBrIDwgbGVuOyBrKyspIHtcbiAgICAgIC8vIFN1bSBhbGwgd29yZHMgd2l0aCB0aGUgc2FtZSBgaSArIGogPSBrYCBhbmQgYWNjdW11bGF0ZSBgbmNhcnJ5YCxcbiAgICAgIC8vIG5vdGUgdGhhdCBuY2FycnkgY291bGQgYmUgPj0gMHgzZmZmZmZmXG4gICAgICB2YXIgbmNhcnJ5ID0gY2FycnkgPj4+IDI2O1xuICAgICAgdmFyIHJ3b3JkID0gY2FycnkgJiAweDNmZmZmZmY7XG4gICAgICB2YXIgbWF4SiA9IE1hdGgubWluKGssIG51bS5sZW5ndGggLSAxKTtcbiAgICAgIGZvciAodmFyIGogPSBNYXRoLm1heCgwLCBrIC0gc2VsZi5sZW5ndGggKyAxKTsgaiA8PSBtYXhKOyBqKyspIHtcbiAgICAgICAgdmFyIGkgPSAoayAtIGopIHwgMDtcbiAgICAgICAgYSA9IHNlbGYud29yZHNbaV0gfCAwO1xuICAgICAgICBiID0gbnVtLndvcmRzW2pdIHwgMDtcbiAgICAgICAgciA9IGEgKiBiICsgcndvcmQ7XG4gICAgICAgIG5jYXJyeSArPSAociAvIDB4NDAwMDAwMCkgfCAwO1xuICAgICAgICByd29yZCA9IHIgJiAweDNmZmZmZmY7XG4gICAgICB9XG4gICAgICBvdXQud29yZHNba10gPSByd29yZCB8IDA7XG4gICAgICBjYXJyeSA9IG5jYXJyeSB8IDA7XG4gICAgfVxuICAgIGlmIChjYXJyeSAhPT0gMCkge1xuICAgICAgb3V0LndvcmRzW2tdID0gY2FycnkgfCAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQubGVuZ3RoLS07XG4gICAgfVxuXG4gICAgcmV0dXJuIG91dC5zdHJpcCgpO1xuICB9XG5cbiAgLy8gVE9ETyhpbmR1dG55KTogaXQgbWF5IGJlIHJlYXNvbmFibGUgdG8gb21pdCBpdCBmb3IgdXNlcnMgd2hvIGRvbid0IG5lZWRcbiAgLy8gdG8gd29yayB3aXRoIDI1Ni1iaXQgbnVtYmVycywgb3RoZXJ3aXNlIGl0IGdpdmVzIDIwJSBpbXByb3ZlbWVudCBmb3IgMjU2LWJpdFxuICAvLyBtdWx0aXBsaWNhdGlvbiAobGlrZSBlbGxpcHRpYyBzZWNwMjU2azEpLlxuICB2YXIgY29tYjEwTXVsVG8gPSBmdW5jdGlvbiBjb21iMTBNdWxUbyAoc2VsZiwgbnVtLCBvdXQpIHtcbiAgICB2YXIgYSA9IHNlbGYud29yZHM7XG4gICAgdmFyIGIgPSBudW0ud29yZHM7XG4gICAgdmFyIG8gPSBvdXQud29yZHM7XG4gICAgdmFyIGMgPSAwO1xuICAgIHZhciBsbztcbiAgICB2YXIgbWlkO1xuICAgIHZhciBoaTtcbiAgICB2YXIgYTAgPSBhWzBdIHwgMDtcbiAgICB2YXIgYWwwID0gYTAgJiAweDFmZmY7XG4gICAgdmFyIGFoMCA9IGEwID4+PiAxMztcbiAgICB2YXIgYTEgPSBhWzFdIHwgMDtcbiAgICB2YXIgYWwxID0gYTEgJiAweDFmZmY7XG4gICAgdmFyIGFoMSA9IGExID4+PiAxMztcbiAgICB2YXIgYTIgPSBhWzJdIHwgMDtcbiAgICB2YXIgYWwyID0gYTIgJiAweDFmZmY7XG4gICAgdmFyIGFoMiA9IGEyID4+PiAxMztcbiAgICB2YXIgYTMgPSBhWzNdIHwgMDtcbiAgICB2YXIgYWwzID0gYTMgJiAweDFmZmY7XG4gICAgdmFyIGFoMyA9IGEzID4+PiAxMztcbiAgICB2YXIgYTQgPSBhWzRdIHwgMDtcbiAgICB2YXIgYWw0ID0gYTQgJiAweDFmZmY7XG4gICAgdmFyIGFoNCA9IGE0ID4+PiAxMztcbiAgICB2YXIgYTUgPSBhWzVdIHwgMDtcbiAgICB2YXIgYWw1ID0gYTUgJiAweDFmZmY7XG4gICAgdmFyIGFoNSA9IGE1ID4+PiAxMztcbiAgICB2YXIgYTYgPSBhWzZdIHwgMDtcbiAgICB2YXIgYWw2ID0gYTYgJiAweDFmZmY7XG4gICAgdmFyIGFoNiA9IGE2ID4+PiAxMztcbiAgICB2YXIgYTcgPSBhWzddIHwgMDtcbiAgICB2YXIgYWw3ID0gYTcgJiAweDFmZmY7XG4gICAgdmFyIGFoNyA9IGE3ID4+PiAxMztcbiAgICB2YXIgYTggPSBhWzhdIHwgMDtcbiAgICB2YXIgYWw4ID0gYTggJiAweDFmZmY7XG4gICAgdmFyIGFoOCA9IGE4ID4+PiAxMztcbiAgICB2YXIgYTkgPSBhWzldIHwgMDtcbiAgICB2YXIgYWw5ID0gYTkgJiAweDFmZmY7XG4gICAgdmFyIGFoOSA9IGE5ID4+PiAxMztcbiAgICB2YXIgYjAgPSBiWzBdIHwgMDtcbiAgICB2YXIgYmwwID0gYjAgJiAweDFmZmY7XG4gICAgdmFyIGJoMCA9IGIwID4+PiAxMztcbiAgICB2YXIgYjEgPSBiWzFdIHwgMDtcbiAgICB2YXIgYmwxID0gYjEgJiAweDFmZmY7XG4gICAgdmFyIGJoMSA9IGIxID4+PiAxMztcbiAgICB2YXIgYjIgPSBiWzJdIHwgMDtcbiAgICB2YXIgYmwyID0gYjIgJiAweDFmZmY7XG4gICAgdmFyIGJoMiA9IGIyID4+PiAxMztcbiAgICB2YXIgYjMgPSBiWzNdIHwgMDtcbiAgICB2YXIgYmwzID0gYjMgJiAweDFmZmY7XG4gICAgdmFyIGJoMyA9IGIzID4+PiAxMztcbiAgICB2YXIgYjQgPSBiWzRdIHwgMDtcbiAgICB2YXIgYmw0ID0gYjQgJiAweDFmZmY7XG4gICAgdmFyIGJoNCA9IGI0ID4+PiAxMztcbiAgICB2YXIgYjUgPSBiWzVdIHwgMDtcbiAgICB2YXIgYmw1ID0gYjUgJiAweDFmZmY7XG4gICAgdmFyIGJoNSA9IGI1ID4+PiAxMztcbiAgICB2YXIgYjYgPSBiWzZdIHwgMDtcbiAgICB2YXIgYmw2ID0gYjYgJiAweDFmZmY7XG4gICAgdmFyIGJoNiA9IGI2ID4+PiAxMztcbiAgICB2YXIgYjcgPSBiWzddIHwgMDtcbiAgICB2YXIgYmw3ID0gYjcgJiAweDFmZmY7XG4gICAgdmFyIGJoNyA9IGI3ID4+PiAxMztcbiAgICB2YXIgYjggPSBiWzhdIHwgMDtcbiAgICB2YXIgYmw4ID0gYjggJiAweDFmZmY7XG4gICAgdmFyIGJoOCA9IGI4ID4+PiAxMztcbiAgICB2YXIgYjkgPSBiWzldIHwgMDtcbiAgICB2YXIgYmw5ID0gYjkgJiAweDFmZmY7XG4gICAgdmFyIGJoOSA9IGI5ID4+PiAxMztcblxuICAgIG91dC5uZWdhdGl2ZSA9IHNlbGYubmVnYXRpdmUgXiBudW0ubmVnYXRpdmU7XG4gICAgb3V0Lmxlbmd0aCA9IDE5O1xuICAgIC8qIGsgPSAwICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWwwLCBibDApO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDAsIGJoMCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDAsIGJsMCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDAsIGJoMCk7XG4gICAgdmFyIHcwID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MCA+Pj4gMjYpKSB8IDA7XG4gICAgdzAgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAxICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWwxLCBibDApO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDEsIGJoMCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDEsIGJsMCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDEsIGJoMCk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwwLCBibDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDAsIGJoMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMCwgYmwxKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMCwgYmgxKSkgfCAwO1xuICAgIHZhciB3MSA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzEgPj4+IDI2KSkgfCAwO1xuICAgIHcxICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gMiAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsMiwgYmwwKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWwyLCBiaDApO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgyLCBibDApKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWgyLCBiaDApO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMSwgYmwxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwxLCBiaDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDEsIGJsMSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDEsIGJoMSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDAsIGJsMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMCwgYmgyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgwLCBibDIpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgwLCBiaDIpKSB8IDA7XG4gICAgdmFyIHcyID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MiA+Pj4gMjYpKSB8IDA7XG4gICAgdzIgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAzICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWwzLCBibDApO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDMsIGJoMCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDMsIGJsMCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDMsIGJoMCk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwyLCBibDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDIsIGJoMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMiwgYmwxKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMiwgYmgxKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMSwgYmwyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwxLCBiaDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDEsIGJsMikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDEsIGJoMikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDAsIGJsMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMCwgYmgzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgwLCBibDMpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgwLCBiaDMpKSB8IDA7XG4gICAgdmFyIHczID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MyA+Pj4gMjYpKSB8IDA7XG4gICAgdzMgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSA0ICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw0LCBibDApO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDQsIGJoMCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDQsIGJsMCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDQsIGJoMCk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwzLCBibDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDMsIGJoMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMywgYmwxKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMywgYmgxKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMiwgYmwyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwyLCBiaDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDIsIGJsMikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDIsIGJoMikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDEsIGJsMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMSwgYmgzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgxLCBibDMpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgxLCBiaDMpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwwLCBibDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDAsIGJoNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMCwgYmw0KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMCwgYmg0KSkgfCAwO1xuICAgIHZhciB3NCA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzQgPj4+IDI2KSkgfCAwO1xuICAgIHc0ICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gNSAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsNSwgYmwwKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw1LCBiaDApO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg1LCBibDApKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg1LCBiaDApO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNCwgYmwxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw0LCBiaDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDQsIGJsMSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDQsIGJoMSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDMsIGJsMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMywgYmgyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgzLCBibDIpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgzLCBiaDIpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwyLCBibDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDIsIGJoMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMiwgYmwzKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMiwgYmgzKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMSwgYmw0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwxLCBiaDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDEsIGJsNCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDEsIGJoNCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDAsIGJsNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMCwgYmg1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgwLCBibDUpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgwLCBiaDUpKSB8IDA7XG4gICAgdmFyIHc1ID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3NSA+Pj4gMjYpKSB8IDA7XG4gICAgdzUgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSA2ICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw2LCBibDApO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDYsIGJoMCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDYsIGJsMCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDYsIGJoMCk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw1LCBibDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDUsIGJoMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNSwgYmwxKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNSwgYmgxKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNCwgYmwyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw0LCBiaDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDQsIGJsMikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDQsIGJoMikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDMsIGJsMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMywgYmgzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgzLCBibDMpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgzLCBiaDMpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwyLCBibDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDIsIGJoNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMiwgYmw0KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMiwgYmg0KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMSwgYmw1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwxLCBiaDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDEsIGJsNSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDEsIGJoNSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDAsIGJsNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMCwgYmg2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgwLCBibDYpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgwLCBiaDYpKSB8IDA7XG4gICAgdmFyIHc2ID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3NiA+Pj4gMjYpKSB8IDA7XG4gICAgdzYgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSA3ICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw3LCBibDApO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDcsIGJoMCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDcsIGJsMCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDcsIGJoMCk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw2LCBibDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDYsIGJoMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNiwgYmwxKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNiwgYmgxKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNSwgYmwyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw1LCBiaDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDUsIGJsMikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDUsIGJoMikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDQsIGJsMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNCwgYmgzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg0LCBibDMpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg0LCBiaDMpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwzLCBibDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDMsIGJoNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMywgYmw0KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMywgYmg0KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMiwgYmw1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwyLCBiaDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDIsIGJsNSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDIsIGJoNSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDEsIGJsNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMSwgYmg2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgxLCBibDYpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgxLCBiaDYpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwwLCBibDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDAsIGJoNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMCwgYmw3KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMCwgYmg3KSkgfCAwO1xuICAgIHZhciB3NyA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzcgPj4+IDI2KSkgfCAwO1xuICAgIHc3ICY9IDB4M2ZmZmZmZjtcbiAgICAvKiBrID0gOCAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsOCwgYmwwKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw4LCBiaDApO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg4LCBibDApKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg4LCBiaDApO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNywgYmwxKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw3LCBiaDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDcsIGJsMSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDcsIGJoMSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDYsIGJsMikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNiwgYmgyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg2LCBibDIpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg2LCBiaDIpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw1LCBibDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDUsIGJoMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNSwgYmwzKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNSwgYmgzKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNCwgYmw0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw0LCBiaDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDQsIGJsNCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDQsIGJoNCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDMsIGJsNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMywgYmg1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgzLCBibDUpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgzLCBiaDUpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwyLCBibDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDIsIGJoNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMiwgYmw2KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMiwgYmg2KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMSwgYmw3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwxLCBiaDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDEsIGJsNykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDEsIGJoNykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDAsIGJsOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMCwgYmg4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgwLCBibDgpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgwLCBiaDgpKSB8IDA7XG4gICAgdmFyIHc4ID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3OCA+Pj4gMjYpKSB8IDA7XG4gICAgdzggJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSA5ICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw5LCBibDApO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDksIGJoMCk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDksIGJsMCkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDksIGJoMCk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw4LCBibDEpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDgsIGJoMSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOCwgYmwxKSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoOCwgYmgxKSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNywgYmwyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw3LCBiaDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDcsIGJsMikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDcsIGJoMikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDYsIGJsMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNiwgYmgzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg2LCBibDMpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg2LCBiaDMpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw1LCBibDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDUsIGJoNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNSwgYmw0KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNSwgYmg0KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNCwgYmw1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw0LCBiaDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDQsIGJsNSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDQsIGJoNSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDMsIGJsNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMywgYmg2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgzLCBibDYpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgzLCBiaDYpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwyLCBibDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDIsIGJoNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMiwgYmw3KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMiwgYmg3KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMSwgYmw4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwxLCBiaDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDEsIGJsOCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDEsIGJoOCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDAsIGJsOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMCwgYmg5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgwLCBibDkpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgwLCBiaDkpKSB8IDA7XG4gICAgdmFyIHc5ID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3OSA+Pj4gMjYpKSB8IDA7XG4gICAgdzkgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAxMCAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsOSwgYmwxKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw5LCBiaDEpO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg5LCBibDEpKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg5LCBiaDEpO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsOCwgYmwyKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw4LCBiaDIpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDgsIGJsMikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDgsIGJoMikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDcsIGJsMykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNywgYmgzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg3LCBibDMpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg3LCBiaDMpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw2LCBibDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDYsIGJoNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNiwgYmw0KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNiwgYmg0KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNSwgYmw1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw1LCBiaDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDUsIGJsNSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDUsIGJoNSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDQsIGJsNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNCwgYmg2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg0LCBibDYpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg0LCBiaDYpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwzLCBibDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDMsIGJoNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMywgYmw3KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMywgYmg3KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMiwgYmw4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwyLCBiaDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDIsIGJsOCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDIsIGJoOCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDEsIGJsOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMSwgYmg5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgxLCBibDkpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgxLCBiaDkpKSB8IDA7XG4gICAgdmFyIHcxMCA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzEwID4+PiAyNikpIHwgMDtcbiAgICB3MTAgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAxMSAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsOSwgYmwyKTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw5LCBiaDIpO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg5LCBibDIpKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg5LCBiaDIpO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsOCwgYmwzKSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw4LCBiaDMpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDgsIGJsMykpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDgsIGJoMykpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDcsIGJsNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNywgYmg0KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg3LCBibDQpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg3LCBiaDQpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw2LCBibDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDYsIGJoNSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNiwgYmw1KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNiwgYmg1KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNSwgYmw2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw1LCBiaDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDUsIGJsNikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDUsIGJoNikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDQsIGJsNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNCwgYmg3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg0LCBibDcpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg0LCBiaDcpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWwzLCBibDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDMsIGJoOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoMywgYmw4KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoMywgYmg4KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsMiwgYmw5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWwyLCBiaDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDIsIGJsOSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDIsIGJoOSkpIHwgMDtcbiAgICB2YXIgdzExID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MTEgPj4+IDI2KSkgfCAwO1xuICAgIHcxMSAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDEyICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw5LCBibDMpO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDksIGJoMyk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDksIGJsMykpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDksIGJoMyk7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw4LCBibDQpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDgsIGJoNCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOCwgYmw0KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoOCwgYmg0KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNywgYmw1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw3LCBiaDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDcsIGJsNSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDcsIGJoNSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDYsIGJsNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNiwgYmg2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg2LCBibDYpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg2LCBiaDYpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw1LCBibDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDUsIGJoNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNSwgYmw3KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNSwgYmg3KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNCwgYmw4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw0LCBiaDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDQsIGJsOCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDQsIGJoOCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDMsIGJsOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsMywgYmg5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWgzLCBibDkpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWgzLCBiaDkpKSB8IDA7XG4gICAgdmFyIHcxMiA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzEyID4+PiAyNikpIHwgMDtcbiAgICB3MTIgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAxMyAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsOSwgYmw0KTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw5LCBiaDQpO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg5LCBibDQpKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg5LCBiaDQpO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsOCwgYmw1KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw4LCBiaDUpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDgsIGJsNSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDgsIGJoNSkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDcsIGJsNikpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNywgYmg2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg3LCBibDYpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg3LCBiaDYpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw2LCBibDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDYsIGJoNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNiwgYmw3KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNiwgYmg3KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNSwgYmw4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw1LCBiaDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDUsIGJsOCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDUsIGJoOCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDQsIGJsOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNCwgYmg5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg0LCBibDkpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg0LCBiaDkpKSB8IDA7XG4gICAgdmFyIHcxMyA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzEzID4+PiAyNikpIHwgMDtcbiAgICB3MTMgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAxNCAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsOSwgYmw1KTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw5LCBiaDUpO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg5LCBibDUpKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg5LCBiaDUpO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsOCwgYmw2KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw4LCBiaDYpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDgsIGJsNikpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDgsIGJoNikpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDcsIGJsNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNywgYmg3KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg3LCBibDcpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg3LCBiaDcpKSB8IDA7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw2LCBibDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDYsIGJoOCkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoNiwgYmw4KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoNiwgYmg4KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNSwgYmw5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw1LCBiaDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDUsIGJsOSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDUsIGJoOSkpIHwgMDtcbiAgICB2YXIgdzE0ID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MTQgPj4+IDI2KSkgfCAwO1xuICAgIHcxNCAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDE1ICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw5LCBibDYpO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDksIGJoNik7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDksIGJsNikpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDksIGJoNik7XG4gICAgbG8gPSAobG8gKyBNYXRoLmltdWwoYWw4LCBibDcpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhbDgsIGJoNykpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFoOCwgYmw3KSkgfCAwO1xuICAgIGhpID0gKGhpICsgTWF0aC5pbXVsKGFoOCwgYmg3KSkgfCAwO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsNywgYmw4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw3LCBiaDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDcsIGJsOCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDcsIGJoOCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDYsIGJsOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNiwgYmg5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg2LCBibDkpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg2LCBiaDkpKSB8IDA7XG4gICAgdmFyIHcxNSA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzE1ID4+PiAyNikpIHwgMDtcbiAgICB3MTUgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAxNiAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsOSwgYmw3KTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw5LCBiaDcpO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg5LCBibDcpKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg5LCBiaDcpO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsOCwgYmw4KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw4LCBiaDgpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDgsIGJsOCkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDgsIGJoOCkpIHwgMDtcbiAgICBsbyA9IChsbyArIE1hdGguaW11bChhbDcsIGJsOSkpIHwgMDtcbiAgICBtaWQgPSAobWlkICsgTWF0aC5pbXVsKGFsNywgYmg5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg3LCBibDkpKSB8IDA7XG4gICAgaGkgPSAoaGkgKyBNYXRoLmltdWwoYWg3LCBiaDkpKSB8IDA7XG4gICAgdmFyIHcxNiA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzE2ID4+PiAyNikpIHwgMDtcbiAgICB3MTYgJj0gMHgzZmZmZmZmO1xuICAgIC8qIGsgPSAxNyAqL1xuICAgIGxvID0gTWF0aC5pbXVsKGFsOSwgYmw4KTtcbiAgICBtaWQgPSBNYXRoLmltdWwoYWw5LCBiaDgpO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWg5LCBibDgpKSB8IDA7XG4gICAgaGkgPSBNYXRoLmltdWwoYWg5LCBiaDgpO1xuICAgIGxvID0gKGxvICsgTWF0aC5pbXVsKGFsOCwgYmw5KSkgfCAwO1xuICAgIG1pZCA9IChtaWQgKyBNYXRoLmltdWwoYWw4LCBiaDkpKSB8IDA7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDgsIGJsOSkpIHwgMDtcbiAgICBoaSA9IChoaSArIE1hdGguaW11bChhaDgsIGJoOSkpIHwgMDtcbiAgICB2YXIgdzE3ID0gKCgoYyArIGxvKSB8IDApICsgKChtaWQgJiAweDFmZmYpIDw8IDEzKSkgfCAwO1xuICAgIGMgPSAoKChoaSArIChtaWQgPj4+IDEzKSkgfCAwKSArICh3MTcgPj4+IDI2KSkgfCAwO1xuICAgIHcxNyAmPSAweDNmZmZmZmY7XG4gICAgLyogayA9IDE4ICovXG4gICAgbG8gPSBNYXRoLmltdWwoYWw5LCBibDkpO1xuICAgIG1pZCA9IE1hdGguaW11bChhbDksIGJoOSk7XG4gICAgbWlkID0gKG1pZCArIE1hdGguaW11bChhaDksIGJsOSkpIHwgMDtcbiAgICBoaSA9IE1hdGguaW11bChhaDksIGJoOSk7XG4gICAgdmFyIHcxOCA9ICgoKGMgKyBsbykgfCAwKSArICgobWlkICYgMHgxZmZmKSA8PCAxMykpIHwgMDtcbiAgICBjID0gKCgoaGkgKyAobWlkID4+PiAxMykpIHwgMCkgKyAodzE4ID4+PiAyNikpIHwgMDtcbiAgICB3MTggJj0gMHgzZmZmZmZmO1xuICAgIG9bMF0gPSB3MDtcbiAgICBvWzFdID0gdzE7XG4gICAgb1syXSA9IHcyO1xuICAgIG9bM10gPSB3MztcbiAgICBvWzRdID0gdzQ7XG4gICAgb1s1XSA9IHc1O1xuICAgIG9bNl0gPSB3NjtcbiAgICBvWzddID0gdzc7XG4gICAgb1s4XSA9IHc4O1xuICAgIG9bOV0gPSB3OTtcbiAgICBvWzEwXSA9IHcxMDtcbiAgICBvWzExXSA9IHcxMTtcbiAgICBvWzEyXSA9IHcxMjtcbiAgICBvWzEzXSA9IHcxMztcbiAgICBvWzE0XSA9IHcxNDtcbiAgICBvWzE1XSA9IHcxNTtcbiAgICBvWzE2XSA9IHcxNjtcbiAgICBvWzE3XSA9IHcxNztcbiAgICBvWzE4XSA9IHcxODtcbiAgICBpZiAoYyAhPT0gMCkge1xuICAgICAgb1sxOV0gPSBjO1xuICAgICAgb3V0Lmxlbmd0aCsrO1xuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9O1xuXG4gIC8vIFBvbHlmaWxsIGNvbWJcbiAgaWYgKCFNYXRoLmltdWwpIHtcbiAgICBjb21iMTBNdWxUbyA9IHNtYWxsTXVsVG87XG4gIH1cblxuICBmdW5jdGlvbiBiaWdNdWxUbyAoc2VsZiwgbnVtLCBvdXQpIHtcbiAgICBvdXQubmVnYXRpdmUgPSBudW0ubmVnYXRpdmUgXiBzZWxmLm5lZ2F0aXZlO1xuICAgIG91dC5sZW5ndGggPSBzZWxmLmxlbmd0aCArIG51bS5sZW5ndGg7XG5cbiAgICB2YXIgY2FycnkgPSAwO1xuICAgIHZhciBobmNhcnJ5ID0gMDtcbiAgICBmb3IgKHZhciBrID0gMDsgayA8IG91dC5sZW5ndGggLSAxOyBrKyspIHtcbiAgICAgIC8vIFN1bSBhbGwgd29yZHMgd2l0aCB0aGUgc2FtZSBgaSArIGogPSBrYCBhbmQgYWNjdW11bGF0ZSBgbmNhcnJ5YCxcbiAgICAgIC8vIG5vdGUgdGhhdCBuY2FycnkgY291bGQgYmUgPj0gMHgzZmZmZmZmXG4gICAgICB2YXIgbmNhcnJ5ID0gaG5jYXJyeTtcbiAgICAgIGhuY2FycnkgPSAwO1xuICAgICAgdmFyIHJ3b3JkID0gY2FycnkgJiAweDNmZmZmZmY7XG4gICAgICB2YXIgbWF4SiA9IE1hdGgubWluKGssIG51bS5sZW5ndGggLSAxKTtcbiAgICAgIGZvciAodmFyIGogPSBNYXRoLm1heCgwLCBrIC0gc2VsZi5sZW5ndGggKyAxKTsgaiA8PSBtYXhKOyBqKyspIHtcbiAgICAgICAgdmFyIGkgPSBrIC0gajtcbiAgICAgICAgdmFyIGEgPSBzZWxmLndvcmRzW2ldIHwgMDtcbiAgICAgICAgdmFyIGIgPSBudW0ud29yZHNbal0gfCAwO1xuICAgICAgICB2YXIgciA9IGEgKiBiO1xuXG4gICAgICAgIHZhciBsbyA9IHIgJiAweDNmZmZmZmY7XG4gICAgICAgIG5jYXJyeSA9IChuY2FycnkgKyAoKHIgLyAweDQwMDAwMDApIHwgMCkpIHwgMDtcbiAgICAgICAgbG8gPSAobG8gKyByd29yZCkgfCAwO1xuICAgICAgICByd29yZCA9IGxvICYgMHgzZmZmZmZmO1xuICAgICAgICBuY2FycnkgPSAobmNhcnJ5ICsgKGxvID4+PiAyNikpIHwgMDtcblxuICAgICAgICBobmNhcnJ5ICs9IG5jYXJyeSA+Pj4gMjY7XG4gICAgICAgIG5jYXJyeSAmPSAweDNmZmZmZmY7XG4gICAgICB9XG4gICAgICBvdXQud29yZHNba10gPSByd29yZDtcbiAgICAgIGNhcnJ5ID0gbmNhcnJ5O1xuICAgICAgbmNhcnJ5ID0gaG5jYXJyeTtcbiAgICB9XG4gICAgaWYgKGNhcnJ5ICE9PSAwKSB7XG4gICAgICBvdXQud29yZHNba10gPSBjYXJyeTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3V0Lmxlbmd0aC0tO1xuICAgIH1cblxuICAgIHJldHVybiBvdXQuc3RyaXAoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGp1bWJvTXVsVG8gKHNlbGYsIG51bSwgb3V0KSB7XG4gICAgdmFyIGZmdG0gPSBuZXcgRkZUTSgpO1xuICAgIHJldHVybiBmZnRtLm11bHAoc2VsZiwgbnVtLCBvdXQpO1xuICB9XG5cbiAgQk4ucHJvdG90eXBlLm11bFRvID0gZnVuY3Rpb24gbXVsVG8gKG51bSwgb3V0KSB7XG4gICAgdmFyIHJlcztcbiAgICB2YXIgbGVuID0gdGhpcy5sZW5ndGggKyBudW0ubGVuZ3RoO1xuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMTAgJiYgbnVtLmxlbmd0aCA9PT0gMTApIHtcbiAgICAgIHJlcyA9IGNvbWIxME11bFRvKHRoaXMsIG51bSwgb3V0KTtcbiAgICB9IGVsc2UgaWYgKGxlbiA8IDYzKSB7XG4gICAgICByZXMgPSBzbWFsbE11bFRvKHRoaXMsIG51bSwgb3V0KTtcbiAgICB9IGVsc2UgaWYgKGxlbiA8IDEwMjQpIHtcbiAgICAgIHJlcyA9IGJpZ011bFRvKHRoaXMsIG51bSwgb3V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzID0ganVtYm9NdWxUbyh0aGlzLCBudW0sIG91dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuICAvLyBDb29sZXktVHVrZXkgYWxnb3JpdGhtIGZvciBGRlRcbiAgLy8gc2xpZ2h0bHkgcmV2aXNpdGVkIHRvIHJlbHkgb24gbG9vcGluZyBpbnN0ZWFkIG9mIHJlY3Vyc2lvblxuXG4gIGZ1bmN0aW9uIEZGVE0gKHgsIHkpIHtcbiAgICB0aGlzLnggPSB4O1xuICAgIHRoaXMueSA9IHk7XG4gIH1cblxuICBGRlRNLnByb3RvdHlwZS5tYWtlUkJUID0gZnVuY3Rpb24gbWFrZVJCVCAoTikge1xuICAgIHZhciB0ID0gbmV3IEFycmF5KE4pO1xuICAgIHZhciBsID0gQk4ucHJvdG90eXBlLl9jb3VudEJpdHMoTikgLSAxO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgTjsgaSsrKSB7XG4gICAgICB0W2ldID0gdGhpcy5yZXZCaW4oaSwgbCwgTik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHQ7XG4gIH07XG5cbiAgLy8gUmV0dXJucyBiaW5hcnktcmV2ZXJzZWQgcmVwcmVzZW50YXRpb24gb2YgYHhgXG4gIEZGVE0ucHJvdG90eXBlLnJldkJpbiA9IGZ1bmN0aW9uIHJldkJpbiAoeCwgbCwgTikge1xuICAgIGlmICh4ID09PSAwIHx8IHggPT09IE4gLSAxKSByZXR1cm4geDtcblxuICAgIHZhciByYiA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgIHJiIHw9ICh4ICYgMSkgPDwgKGwgLSBpIC0gMSk7XG4gICAgICB4ID4+PSAxO1xuICAgIH1cblxuICAgIHJldHVybiByYjtcbiAgfTtcblxuICAvLyBQZXJmb3JtcyBcInR3ZWVkbGluZ1wiIHBoYXNlLCB0aGVyZWZvcmUgJ2VtdWxhdGluZydcbiAgLy8gYmVoYXZpb3VyIG9mIHRoZSByZWN1cnNpdmUgYWxnb3JpdGhtXG4gIEZGVE0ucHJvdG90eXBlLnBlcm11dGUgPSBmdW5jdGlvbiBwZXJtdXRlIChyYnQsIHJ3cywgaXdzLCBydHdzLCBpdHdzLCBOKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBOOyBpKyspIHtcbiAgICAgIHJ0d3NbaV0gPSByd3NbcmJ0W2ldXTtcbiAgICAgIGl0d3NbaV0gPSBpd3NbcmJ0W2ldXTtcbiAgICB9XG4gIH07XG5cbiAgRkZUTS5wcm90b3R5cGUudHJhbnNmb3JtID0gZnVuY3Rpb24gdHJhbnNmb3JtIChyd3MsIGl3cywgcnR3cywgaXR3cywgTiwgcmJ0KSB7XG4gICAgdGhpcy5wZXJtdXRlKHJidCwgcndzLCBpd3MsIHJ0d3MsIGl0d3MsIE4pO1xuXG4gICAgZm9yICh2YXIgcyA9IDE7IHMgPCBOOyBzIDw8PSAxKSB7XG4gICAgICB2YXIgbCA9IHMgPDwgMTtcblxuICAgICAgdmFyIHJ0d2RmID0gTWF0aC5jb3MoMiAqIE1hdGguUEkgLyBsKTtcbiAgICAgIHZhciBpdHdkZiA9IE1hdGguc2luKDIgKiBNYXRoLlBJIC8gbCk7XG5cbiAgICAgIGZvciAodmFyIHAgPSAwOyBwIDwgTjsgcCArPSBsKSB7XG4gICAgICAgIHZhciBydHdkZl8gPSBydHdkZjtcbiAgICAgICAgdmFyIGl0d2RmXyA9IGl0d2RmO1xuXG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgczsgaisrKSB7XG4gICAgICAgICAgdmFyIHJlID0gcnR3c1twICsgal07XG4gICAgICAgICAgdmFyIGllID0gaXR3c1twICsgal07XG5cbiAgICAgICAgICB2YXIgcm8gPSBydHdzW3AgKyBqICsgc107XG4gICAgICAgICAgdmFyIGlvID0gaXR3c1twICsgaiArIHNdO1xuXG4gICAgICAgICAgdmFyIHJ4ID0gcnR3ZGZfICogcm8gLSBpdHdkZl8gKiBpbztcblxuICAgICAgICAgIGlvID0gcnR3ZGZfICogaW8gKyBpdHdkZl8gKiBybztcbiAgICAgICAgICBybyA9IHJ4O1xuXG4gICAgICAgICAgcnR3c1twICsgal0gPSByZSArIHJvO1xuICAgICAgICAgIGl0d3NbcCArIGpdID0gaWUgKyBpbztcblxuICAgICAgICAgIHJ0d3NbcCArIGogKyBzXSA9IHJlIC0gcm87XG4gICAgICAgICAgaXR3c1twICsgaiArIHNdID0gaWUgLSBpbztcblxuICAgICAgICAgIC8qIGpzaGludCBtYXhkZXB0aCA6IGZhbHNlICovXG4gICAgICAgICAgaWYgKGogIT09IGwpIHtcbiAgICAgICAgICAgIHJ4ID0gcnR3ZGYgKiBydHdkZl8gLSBpdHdkZiAqIGl0d2RmXztcblxuICAgICAgICAgICAgaXR3ZGZfID0gcnR3ZGYgKiBpdHdkZl8gKyBpdHdkZiAqIHJ0d2RmXztcbiAgICAgICAgICAgIHJ0d2RmXyA9IHJ4O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBGRlRNLnByb3RvdHlwZS5ndWVzc0xlbjEzYiA9IGZ1bmN0aW9uIGd1ZXNzTGVuMTNiIChuLCBtKSB7XG4gICAgdmFyIE4gPSBNYXRoLm1heChtLCBuKSB8IDE7XG4gICAgdmFyIG9kZCA9IE4gJiAxO1xuICAgIHZhciBpID0gMDtcbiAgICBmb3IgKE4gPSBOIC8gMiB8IDA7IE47IE4gPSBOID4+PiAxKSB7XG4gICAgICBpKys7XG4gICAgfVxuXG4gICAgcmV0dXJuIDEgPDwgaSArIDEgKyBvZGQ7XG4gIH07XG5cbiAgRkZUTS5wcm90b3R5cGUuY29uanVnYXRlID0gZnVuY3Rpb24gY29uanVnYXRlIChyd3MsIGl3cywgTikge1xuICAgIGlmIChOIDw9IDEpIHJldHVybjtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgTiAvIDI7IGkrKykge1xuICAgICAgdmFyIHQgPSByd3NbaV07XG5cbiAgICAgIHJ3c1tpXSA9IHJ3c1tOIC0gaSAtIDFdO1xuICAgICAgcndzW04gLSBpIC0gMV0gPSB0O1xuXG4gICAgICB0ID0gaXdzW2ldO1xuXG4gICAgICBpd3NbaV0gPSAtaXdzW04gLSBpIC0gMV07XG4gICAgICBpd3NbTiAtIGkgLSAxXSA9IC10O1xuICAgIH1cbiAgfTtcblxuICBGRlRNLnByb3RvdHlwZS5ub3JtYWxpemUxM2IgPSBmdW5jdGlvbiBub3JtYWxpemUxM2IgKHdzLCBOKSB7XG4gICAgdmFyIGNhcnJ5ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IE4gLyAyOyBpKyspIHtcbiAgICAgIHZhciB3ID0gTWF0aC5yb3VuZCh3c1syICogaSArIDFdIC8gTikgKiAweDIwMDAgK1xuICAgICAgICBNYXRoLnJvdW5kKHdzWzIgKiBpXSAvIE4pICtcbiAgICAgICAgY2Fycnk7XG5cbiAgICAgIHdzW2ldID0gdyAmIDB4M2ZmZmZmZjtcblxuICAgICAgaWYgKHcgPCAweDQwMDAwMDApIHtcbiAgICAgICAgY2FycnkgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2FycnkgPSB3IC8gMHg0MDAwMDAwIHwgMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gd3M7XG4gIH07XG5cbiAgRkZUTS5wcm90b3R5cGUuY29udmVydDEzYiA9IGZ1bmN0aW9uIGNvbnZlcnQxM2IgKHdzLCBsZW4sIHJ3cywgTikge1xuICAgIHZhciBjYXJyeSA9IDA7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgY2FycnkgPSBjYXJyeSArICh3c1tpXSB8IDApO1xuXG4gICAgICByd3NbMiAqIGldID0gY2FycnkgJiAweDFmZmY7IGNhcnJ5ID0gY2FycnkgPj4+IDEzO1xuICAgICAgcndzWzIgKiBpICsgMV0gPSBjYXJyeSAmIDB4MWZmZjsgY2FycnkgPSBjYXJyeSA+Pj4gMTM7XG4gICAgfVxuXG4gICAgLy8gUGFkIHdpdGggemVyb2VzXG4gICAgZm9yIChpID0gMiAqIGxlbjsgaSA8IE47ICsraSkge1xuICAgICAgcndzW2ldID0gMDtcbiAgICB9XG5cbiAgICBhc3NlcnQoY2FycnkgPT09IDApO1xuICAgIGFzc2VydCgoY2FycnkgJiB+MHgxZmZmKSA9PT0gMCk7XG4gIH07XG5cbiAgRkZUTS5wcm90b3R5cGUuc3R1YiA9IGZ1bmN0aW9uIHN0dWIgKE4pIHtcbiAgICB2YXIgcGggPSBuZXcgQXJyYXkoTik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBOOyBpKyspIHtcbiAgICAgIHBoW2ldID0gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gcGg7XG4gIH07XG5cbiAgRkZUTS5wcm90b3R5cGUubXVscCA9IGZ1bmN0aW9uIG11bHAgKHgsIHksIG91dCkge1xuICAgIHZhciBOID0gMiAqIHRoaXMuZ3Vlc3NMZW4xM2IoeC5sZW5ndGgsIHkubGVuZ3RoKTtcblxuICAgIHZhciByYnQgPSB0aGlzLm1ha2VSQlQoTik7XG5cbiAgICB2YXIgXyA9IHRoaXMuc3R1YihOKTtcblxuICAgIHZhciByd3MgPSBuZXcgQXJyYXkoTik7XG4gICAgdmFyIHJ3c3QgPSBuZXcgQXJyYXkoTik7XG4gICAgdmFyIGl3c3QgPSBuZXcgQXJyYXkoTik7XG5cbiAgICB2YXIgbnJ3cyA9IG5ldyBBcnJheShOKTtcbiAgICB2YXIgbnJ3c3QgPSBuZXcgQXJyYXkoTik7XG4gICAgdmFyIG5pd3N0ID0gbmV3IEFycmF5KE4pO1xuXG4gICAgdmFyIHJtd3MgPSBvdXQud29yZHM7XG4gICAgcm13cy5sZW5ndGggPSBOO1xuXG4gICAgdGhpcy5jb252ZXJ0MTNiKHgud29yZHMsIHgubGVuZ3RoLCByd3MsIE4pO1xuICAgIHRoaXMuY29udmVydDEzYih5LndvcmRzLCB5Lmxlbmd0aCwgbnJ3cywgTik7XG5cbiAgICB0aGlzLnRyYW5zZm9ybShyd3MsIF8sIHJ3c3QsIGl3c3QsIE4sIHJidCk7XG4gICAgdGhpcy50cmFuc2Zvcm0obnJ3cywgXywgbnJ3c3QsIG5pd3N0LCBOLCByYnQpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBOOyBpKyspIHtcbiAgICAgIHZhciByeCA9IHJ3c3RbaV0gKiBucndzdFtpXSAtIGl3c3RbaV0gKiBuaXdzdFtpXTtcbiAgICAgIGl3c3RbaV0gPSByd3N0W2ldICogbml3c3RbaV0gKyBpd3N0W2ldICogbnJ3c3RbaV07XG4gICAgICByd3N0W2ldID0gcng7XG4gICAgfVxuXG4gICAgdGhpcy5jb25qdWdhdGUocndzdCwgaXdzdCwgTik7XG4gICAgdGhpcy50cmFuc2Zvcm0ocndzdCwgaXdzdCwgcm13cywgXywgTiwgcmJ0KTtcbiAgICB0aGlzLmNvbmp1Z2F0ZShybXdzLCBfLCBOKTtcbiAgICB0aGlzLm5vcm1hbGl6ZTEzYihybXdzLCBOKTtcblxuICAgIG91dC5uZWdhdGl2ZSA9IHgubmVnYXRpdmUgXiB5Lm5lZ2F0aXZlO1xuICAgIG91dC5sZW5ndGggPSB4Lmxlbmd0aCArIHkubGVuZ3RoO1xuICAgIHJldHVybiBvdXQuc3RyaXAoKTtcbiAgfTtcblxuICAvLyBNdWx0aXBseSBgdGhpc2AgYnkgYG51bWBcbiAgQk4ucHJvdG90eXBlLm11bCA9IGZ1bmN0aW9uIG11bCAobnVtKSB7XG4gICAgdmFyIG91dCA9IG5ldyBCTihudWxsKTtcbiAgICBvdXQud29yZHMgPSBuZXcgQXJyYXkodGhpcy5sZW5ndGggKyBudW0ubGVuZ3RoKTtcbiAgICByZXR1cm4gdGhpcy5tdWxUbyhudW0sIG91dCk7XG4gIH07XG5cbiAgLy8gTXVsdGlwbHkgZW1wbG95aW5nIEZGVFxuICBCTi5wcm90b3R5cGUubXVsZiA9IGZ1bmN0aW9uIG11bGYgKG51bSkge1xuICAgIHZhciBvdXQgPSBuZXcgQk4obnVsbCk7XG4gICAgb3V0LndvcmRzID0gbmV3IEFycmF5KHRoaXMubGVuZ3RoICsgbnVtLmxlbmd0aCk7XG4gICAgcmV0dXJuIGp1bWJvTXVsVG8odGhpcywgbnVtLCBvdXQpO1xuICB9O1xuXG4gIC8vIEluLXBsYWNlIE11bHRpcGxpY2F0aW9uXG4gIEJOLnByb3RvdHlwZS5pbXVsID0gZnVuY3Rpb24gaW11bCAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhudW0sIHRoaXMpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pbXVsbiA9IGZ1bmN0aW9uIGltdWxuIChudW0pIHtcbiAgICBhc3NlcnQodHlwZW9mIG51bSA9PT0gJ251bWJlcicpO1xuICAgIGFzc2VydChudW0gPCAweDQwMDAwMDApO1xuXG4gICAgLy8gQ2FycnlcbiAgICB2YXIgY2FycnkgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHcgPSAodGhpcy53b3Jkc1tpXSB8IDApICogbnVtO1xuICAgICAgdmFyIGxvID0gKHcgJiAweDNmZmZmZmYpICsgKGNhcnJ5ICYgMHgzZmZmZmZmKTtcbiAgICAgIGNhcnJ5ID4+PSAyNjtcbiAgICAgIGNhcnJ5ICs9ICh3IC8gMHg0MDAwMDAwKSB8IDA7XG4gICAgICAvLyBOT1RFOiBsbyBpcyAyN2JpdCBtYXhpbXVtXG4gICAgICBjYXJyeSArPSBsbyA+Pj4gMjY7XG4gICAgICB0aGlzLndvcmRzW2ldID0gbG8gJiAweDNmZmZmZmY7XG4gICAgfVxuXG4gICAgaWYgKGNhcnJ5ICE9PSAwKSB7XG4gICAgICB0aGlzLndvcmRzW2ldID0gY2Fycnk7XG4gICAgICB0aGlzLmxlbmd0aCsrO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5tdWxuID0gZnVuY3Rpb24gbXVsbiAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihudW0pO1xuICB9O1xuXG4gIC8vIGB0aGlzYCAqIGB0aGlzYFxuICBCTi5wcm90b3R5cGUuc3FyID0gZnVuY3Rpb24gc3FyICgpIHtcbiAgICByZXR1cm4gdGhpcy5tdWwodGhpcyk7XG4gIH07XG5cbiAgLy8gYHRoaXNgICogYHRoaXNgIGluLXBsYWNlXG4gIEJOLnByb3RvdHlwZS5pc3FyID0gZnVuY3Rpb24gaXNxciAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpO1xuICB9O1xuXG4gIC8vIE1hdGgucG93KGB0aGlzYCwgYG51bWApXG4gIEJOLnByb3RvdHlwZS5wb3cgPSBmdW5jdGlvbiBwb3cgKG51bSkge1xuICAgIHZhciB3ID0gdG9CaXRBcnJheShudW0pO1xuICAgIGlmICh3Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIG5ldyBCTigxKTtcblxuICAgIC8vIFNraXAgbGVhZGluZyB6ZXJvZXNcbiAgICB2YXIgcmVzID0gdGhpcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHcubGVuZ3RoOyBpKyssIHJlcyA9IHJlcy5zcXIoKSkge1xuICAgICAgaWYgKHdbaV0gIT09IDApIGJyZWFrO1xuICAgIH1cblxuICAgIGlmICgrK2kgPCB3Lmxlbmd0aCkge1xuICAgICAgZm9yICh2YXIgcSA9IHJlcy5zcXIoKTsgaSA8IHcubGVuZ3RoOyBpKyssIHEgPSBxLnNxcigpKSB7XG4gICAgICAgIGlmICh3W2ldID09PSAwKSBjb250aW51ZTtcblxuICAgICAgICByZXMgPSByZXMubXVsKHEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH07XG5cbiAgLy8gU2hpZnQtbGVmdCBpbi1wbGFjZVxuICBCTi5wcm90b3R5cGUuaXVzaGxuID0gZnVuY3Rpb24gaXVzaGxuIChiaXRzKSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBiaXRzID09PSAnbnVtYmVyJyAmJiBiaXRzID49IDApO1xuICAgIHZhciByID0gYml0cyAlIDI2O1xuICAgIHZhciBzID0gKGJpdHMgLSByKSAvIDI2O1xuICAgIHZhciBjYXJyeU1hc2sgPSAoMHgzZmZmZmZmID4+PiAoMjYgLSByKSkgPDwgKDI2IC0gcik7XG4gICAgdmFyIGk7XG5cbiAgICBpZiAociAhPT0gMCkge1xuICAgICAgdmFyIGNhcnJ5ID0gMDtcblxuICAgICAgZm9yIChpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIG5ld0NhcnJ5ID0gdGhpcy53b3Jkc1tpXSAmIGNhcnJ5TWFzaztcbiAgICAgICAgdmFyIGMgPSAoKHRoaXMud29yZHNbaV0gfCAwKSAtIG5ld0NhcnJ5KSA8PCByO1xuICAgICAgICB0aGlzLndvcmRzW2ldID0gYyB8IGNhcnJ5O1xuICAgICAgICBjYXJyeSA9IG5ld0NhcnJ5ID4+PiAoMjYgLSByKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNhcnJ5KSB7XG4gICAgICAgIHRoaXMud29yZHNbaV0gPSBjYXJyeTtcbiAgICAgICAgdGhpcy5sZW5ndGgrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocyAhPT0gMCkge1xuICAgICAgZm9yIChpID0gdGhpcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICB0aGlzLndvcmRzW2kgKyBzXSA9IHRoaXMud29yZHNbaV07XG4gICAgICB9XG5cbiAgICAgIGZvciAoaSA9IDA7IGkgPCBzOyBpKyspIHtcbiAgICAgICAgdGhpcy53b3Jkc1tpXSA9IDA7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubGVuZ3RoICs9IHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaXNobG4gPSBmdW5jdGlvbiBpc2hsbiAoYml0cykge1xuICAgIC8vIFRPRE8oaW5kdXRueSk6IGltcGxlbWVudCBtZVxuICAgIGFzc2VydCh0aGlzLm5lZ2F0aXZlID09PSAwKTtcbiAgICByZXR1cm4gdGhpcy5pdXNobG4oYml0cyk7XG4gIH07XG5cbiAgLy8gU2hpZnQtcmlnaHQgaW4tcGxhY2VcbiAgLy8gTk9URTogYGhpbnRgIGlzIGEgbG93ZXN0IGJpdCBiZWZvcmUgdHJhaWxpbmcgemVyb2VzXG4gIC8vIE5PVEU6IGlmIGBleHRlbmRlZGAgaXMgcHJlc2VudCAtIGl0IHdpbGwgYmUgZmlsbGVkIHdpdGggZGVzdHJveWVkIGJpdHNcbiAgQk4ucHJvdG90eXBlLml1c2hybiA9IGZ1bmN0aW9uIGl1c2hybiAoYml0cywgaGludCwgZXh0ZW5kZWQpIHtcbiAgICBhc3NlcnQodHlwZW9mIGJpdHMgPT09ICdudW1iZXInICYmIGJpdHMgPj0gMCk7XG4gICAgdmFyIGg7XG4gICAgaWYgKGhpbnQpIHtcbiAgICAgIGggPSAoaGludCAtIChoaW50ICUgMjYpKSAvIDI2O1xuICAgIH0gZWxzZSB7XG4gICAgICBoID0gMDtcbiAgICB9XG5cbiAgICB2YXIgciA9IGJpdHMgJSAyNjtcbiAgICB2YXIgcyA9IE1hdGgubWluKChiaXRzIC0gcikgLyAyNiwgdGhpcy5sZW5ndGgpO1xuICAgIHZhciBtYXNrID0gMHgzZmZmZmZmIF4gKCgweDNmZmZmZmYgPj4+IHIpIDw8IHIpO1xuICAgIHZhciBtYXNrZWRXb3JkcyA9IGV4dGVuZGVkO1xuXG4gICAgaCAtPSBzO1xuICAgIGggPSBNYXRoLm1heCgwLCBoKTtcblxuICAgIC8vIEV4dGVuZGVkIG1vZGUsIGNvcHkgbWFza2VkIHBhcnRcbiAgICBpZiAobWFza2VkV29yZHMpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgczsgaSsrKSB7XG4gICAgICAgIG1hc2tlZFdvcmRzLndvcmRzW2ldID0gdGhpcy53b3Jkc1tpXTtcbiAgICAgIH1cbiAgICAgIG1hc2tlZFdvcmRzLmxlbmd0aCA9IHM7XG4gICAgfVxuXG4gICAgaWYgKHMgPT09IDApIHtcbiAgICAgIC8vIE5vLW9wLCB3ZSBzaG91bGQgbm90IG1vdmUgYW55dGhpbmcgYXQgYWxsXG4gICAgfSBlbHNlIGlmICh0aGlzLmxlbmd0aCA+IHMpIHtcbiAgICAgIHRoaXMubGVuZ3RoIC09IHM7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLndvcmRzW2ldID0gdGhpcy53b3Jkc1tpICsgc107XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud29yZHNbMF0gPSAwO1xuICAgICAgdGhpcy5sZW5ndGggPSAxO1xuICAgIH1cblxuICAgIHZhciBjYXJyeSA9IDA7XG4gICAgZm9yIChpID0gdGhpcy5sZW5ndGggLSAxOyBpID49IDAgJiYgKGNhcnJ5ICE9PSAwIHx8IGkgPj0gaCk7IGktLSkge1xuICAgICAgdmFyIHdvcmQgPSB0aGlzLndvcmRzW2ldIHwgMDtcbiAgICAgIHRoaXMud29yZHNbaV0gPSAoY2FycnkgPDwgKDI2IC0gcikpIHwgKHdvcmQgPj4+IHIpO1xuICAgICAgY2FycnkgPSB3b3JkICYgbWFzaztcbiAgICB9XG5cbiAgICAvLyBQdXNoIGNhcnJpZWQgYml0cyBhcyBhIG1hc2tcbiAgICBpZiAobWFza2VkV29yZHMgJiYgY2FycnkgIT09IDApIHtcbiAgICAgIG1hc2tlZFdvcmRzLndvcmRzW21hc2tlZFdvcmRzLmxlbmd0aCsrXSA9IGNhcnJ5O1xuICAgIH1cblxuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy53b3Jkc1swXSA9IDA7XG4gICAgICB0aGlzLmxlbmd0aCA9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaXNocm4gPSBmdW5jdGlvbiBpc2hybiAoYml0cywgaGludCwgZXh0ZW5kZWQpIHtcbiAgICAvLyBUT0RPKGluZHV0bnkpOiBpbXBsZW1lbnQgbWVcbiAgICBhc3NlcnQodGhpcy5uZWdhdGl2ZSA9PT0gMCk7XG4gICAgcmV0dXJuIHRoaXMuaXVzaHJuKGJpdHMsIGhpbnQsIGV4dGVuZGVkKTtcbiAgfTtcblxuICAvLyBTaGlmdC1sZWZ0XG4gIEJOLnByb3RvdHlwZS5zaGxuID0gZnVuY3Rpb24gc2hsbiAoYml0cykge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaXNobG4oYml0cyk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnVzaGxuID0gZnVuY3Rpb24gdXNobG4gKGJpdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihiaXRzKTtcbiAgfTtcblxuICAvLyBTaGlmdC1yaWdodFxuICBCTi5wcm90b3R5cGUuc2hybiA9IGZ1bmN0aW9uIHNocm4gKGJpdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKGJpdHMpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS51c2hybiA9IGZ1bmN0aW9uIHVzaHJuIChiaXRzKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oYml0cyk7XG4gIH07XG5cbiAgLy8gVGVzdCBpZiBuIGJpdCBpcyBzZXRcbiAgQk4ucHJvdG90eXBlLnRlc3RuID0gZnVuY3Rpb24gdGVzdG4gKGJpdCkge1xuICAgIGFzc2VydCh0eXBlb2YgYml0ID09PSAnbnVtYmVyJyAmJiBiaXQgPj0gMCk7XG4gICAgdmFyIHIgPSBiaXQgJSAyNjtcbiAgICB2YXIgcyA9IChiaXQgLSByKSAvIDI2O1xuICAgIHZhciBxID0gMSA8PCByO1xuXG4gICAgLy8gRmFzdCBjYXNlOiBiaXQgaXMgbXVjaCBoaWdoZXIgdGhhbiBhbGwgZXhpc3Rpbmcgd29yZHNcbiAgICBpZiAodGhpcy5sZW5ndGggPD0gcykgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gQ2hlY2sgYml0IGFuZCByZXR1cm5cbiAgICB2YXIgdyA9IHRoaXMud29yZHNbc107XG5cbiAgICByZXR1cm4gISEodyAmIHEpO1xuICB9O1xuXG4gIC8vIFJldHVybiBvbmx5IGxvd2VycyBiaXRzIG9mIG51bWJlciAoaW4tcGxhY2UpXG4gIEJOLnByb3RvdHlwZS5pbWFza24gPSBmdW5jdGlvbiBpbWFza24gKGJpdHMpIHtcbiAgICBhc3NlcnQodHlwZW9mIGJpdHMgPT09ICdudW1iZXInICYmIGJpdHMgPj0gMCk7XG4gICAgdmFyIHIgPSBiaXRzICUgMjY7XG4gICAgdmFyIHMgPSAoYml0cyAtIHIpIC8gMjY7XG5cbiAgICBhc3NlcnQodGhpcy5uZWdhdGl2ZSA9PT0gMCwgJ2ltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycycpO1xuXG4gICAgaWYgKHRoaXMubGVuZ3RoIDw9IHMpIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGlmIChyICE9PSAwKSB7XG4gICAgICBzKys7XG4gICAgfVxuICAgIHRoaXMubGVuZ3RoID0gTWF0aC5taW4ocywgdGhpcy5sZW5ndGgpO1xuXG4gICAgaWYgKHIgIT09IDApIHtcbiAgICAgIHZhciBtYXNrID0gMHgzZmZmZmZmIF4gKCgweDNmZmZmZmYgPj4+IHIpIDw8IHIpO1xuICAgICAgdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCAtIDFdICY9IG1hc2s7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICAvLyBSZXR1cm4gb25seSBsb3dlcnMgYml0cyBvZiBudW1iZXJcbiAgQk4ucHJvdG90eXBlLm1hc2tuID0gZnVuY3Rpb24gbWFza24gKGJpdHMpIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihiaXRzKTtcbiAgfTtcblxuICAvLyBBZGQgcGxhaW4gbnVtYmVyIGBudW1gIHRvIGB0aGlzYFxuICBCTi5wcm90b3R5cGUuaWFkZG4gPSBmdW5jdGlvbiBpYWRkbiAobnVtKSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBudW0gPT09ICdudW1iZXInKTtcbiAgICBhc3NlcnQobnVtIDwgMHg0MDAwMDAwKTtcbiAgICBpZiAobnVtIDwgMCkgcmV0dXJuIHRoaXMuaXN1Ym4oLW51bSk7XG5cbiAgICAvLyBQb3NzaWJsZSBzaWduIGNoYW5nZVxuICAgIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICBpZiAodGhpcy5sZW5ndGggPT09IDEgJiYgKHRoaXMud29yZHNbMF0gfCAwKSA8IG51bSkge1xuICAgICAgICB0aGlzLndvcmRzWzBdID0gbnVtIC0gKHRoaXMud29yZHNbMF0gfCAwKTtcbiAgICAgICAgdGhpcy5uZWdhdGl2ZSA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMDtcbiAgICAgIHRoaXMuaXN1Ym4obnVtKTtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSAxO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gQWRkIHdpdGhvdXQgY2hlY2tzXG4gICAgcmV0dXJuIHRoaXMuX2lhZGRuKG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLl9pYWRkbiA9IGZ1bmN0aW9uIF9pYWRkbiAobnVtKSB7XG4gICAgdGhpcy53b3Jkc1swXSArPSBudW07XG5cbiAgICAvLyBDYXJyeVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGggJiYgdGhpcy53b3Jkc1tpXSA+PSAweDQwMDAwMDA7IGkrKykge1xuICAgICAgdGhpcy53b3Jkc1tpXSAtPSAweDQwMDAwMDA7XG4gICAgICBpZiAoaSA9PT0gdGhpcy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHRoaXMud29yZHNbaSArIDFdID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMud29yZHNbaSArIDFdKys7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubGVuZ3RoID0gTWF0aC5tYXgodGhpcy5sZW5ndGgsIGkgKyAxKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8vIFN1YnRyYWN0IHBsYWluIG51bWJlciBgbnVtYCBmcm9tIGB0aGlzYFxuICBCTi5wcm90b3R5cGUuaXN1Ym4gPSBmdW5jdGlvbiBpc3VibiAobnVtKSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBudW0gPT09ICdudW1iZXInKTtcbiAgICBhc3NlcnQobnVtIDwgMHg0MDAwMDAwKTtcbiAgICBpZiAobnVtIDwgMCkgcmV0dXJuIHRoaXMuaWFkZG4oLW51bSk7XG5cbiAgICBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IDA7XG4gICAgICB0aGlzLmlhZGRuKG51bSk7XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMTtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMud29yZHNbMF0gLT0gbnVtO1xuXG4gICAgaWYgKHRoaXMubGVuZ3RoID09PSAxICYmIHRoaXMud29yZHNbMF0gPCAwKSB7XG4gICAgICB0aGlzLndvcmRzWzBdID0gLXRoaXMud29yZHNbMF07XG4gICAgICB0aGlzLm5lZ2F0aXZlID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ2FycnlcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5sZW5ndGggJiYgdGhpcy53b3Jkc1tpXSA8IDA7IGkrKykge1xuICAgICAgICB0aGlzLndvcmRzW2ldICs9IDB4NDAwMDAwMDtcbiAgICAgICAgdGhpcy53b3Jkc1tpICsgMV0gLT0gMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5hZGRuID0gZnVuY3Rpb24gYWRkbiAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5zdWJuID0gZnVuY3Rpb24gc3VibiAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5pYWJzID0gZnVuY3Rpb24gaWFicyAoKSB7XG4gICAgdGhpcy5uZWdhdGl2ZSA9IDA7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuYWJzID0gZnVuY3Rpb24gYWJzICgpIHtcbiAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuX2lzaGxuc3VibXVsID0gZnVuY3Rpb24gX2lzaGxuc3VibXVsIChudW0sIG11bCwgc2hpZnQpIHtcbiAgICB2YXIgbGVuID0gbnVtLmxlbmd0aCArIHNoaWZ0O1xuICAgIHZhciBpO1xuXG4gICAgdGhpcy5fZXhwYW5kKGxlbik7XG5cbiAgICB2YXIgdztcbiAgICB2YXIgY2FycnkgPSAwO1xuICAgIGZvciAoaSA9IDA7IGkgPCBudW0ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHcgPSAodGhpcy53b3Jkc1tpICsgc2hpZnRdIHwgMCkgKyBjYXJyeTtcbiAgICAgIHZhciByaWdodCA9IChudW0ud29yZHNbaV0gfCAwKSAqIG11bDtcbiAgICAgIHcgLT0gcmlnaHQgJiAweDNmZmZmZmY7XG4gICAgICBjYXJyeSA9ICh3ID4+IDI2KSAtICgocmlnaHQgLyAweDQwMDAwMDApIHwgMCk7XG4gICAgICB0aGlzLndvcmRzW2kgKyBzaGlmdF0gPSB3ICYgMHgzZmZmZmZmO1xuICAgIH1cbiAgICBmb3IgKDsgaSA8IHRoaXMubGVuZ3RoIC0gc2hpZnQ7IGkrKykge1xuICAgICAgdyA9ICh0aGlzLndvcmRzW2kgKyBzaGlmdF0gfCAwKSArIGNhcnJ5O1xuICAgICAgY2FycnkgPSB3ID4+IDI2O1xuICAgICAgdGhpcy53b3Jkc1tpICsgc2hpZnRdID0gdyAmIDB4M2ZmZmZmZjtcbiAgICB9XG5cbiAgICBpZiAoY2FycnkgPT09IDApIHJldHVybiB0aGlzLnN0cmlwKCk7XG5cbiAgICAvLyBTdWJ0cmFjdGlvbiBvdmVyZmxvd1xuICAgIGFzc2VydChjYXJyeSA9PT0gLTEpO1xuICAgIGNhcnJ5ID0gMDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgdyA9IC0odGhpcy53b3Jkc1tpXSB8IDApICsgY2Fycnk7XG4gICAgICBjYXJyeSA9IHcgPj4gMjY7XG4gICAgICB0aGlzLndvcmRzW2ldID0gdyAmIDB4M2ZmZmZmZjtcbiAgICB9XG4gICAgdGhpcy5uZWdhdGl2ZSA9IDE7XG5cbiAgICByZXR1cm4gdGhpcy5zdHJpcCgpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5fd29yZERpdiA9IGZ1bmN0aW9uIF93b3JkRGl2IChudW0sIG1vZGUpIHtcbiAgICB2YXIgc2hpZnQgPSB0aGlzLmxlbmd0aCAtIG51bS5sZW5ndGg7XG5cbiAgICB2YXIgYSA9IHRoaXMuY2xvbmUoKTtcbiAgICB2YXIgYiA9IG51bTtcblxuICAgIC8vIE5vcm1hbGl6ZVxuICAgIHZhciBiaGkgPSBiLndvcmRzW2IubGVuZ3RoIC0gMV0gfCAwO1xuICAgIHZhciBiaGlCaXRzID0gdGhpcy5fY291bnRCaXRzKGJoaSk7XG4gICAgc2hpZnQgPSAyNiAtIGJoaUJpdHM7XG4gICAgaWYgKHNoaWZ0ICE9PSAwKSB7XG4gICAgICBiID0gYi51c2hsbihzaGlmdCk7XG4gICAgICBhLml1c2hsbihzaGlmdCk7XG4gICAgICBiaGkgPSBiLndvcmRzW2IubGVuZ3RoIC0gMV0gfCAwO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgcXVvdGllbnRcbiAgICB2YXIgbSA9IGEubGVuZ3RoIC0gYi5sZW5ndGg7XG4gICAgdmFyIHE7XG5cbiAgICBpZiAobW9kZSAhPT0gJ21vZCcpIHtcbiAgICAgIHEgPSBuZXcgQk4obnVsbCk7XG4gICAgICBxLmxlbmd0aCA9IG0gKyAxO1xuICAgICAgcS53b3JkcyA9IG5ldyBBcnJheShxLmxlbmd0aCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcS53b3Jkc1tpXSA9IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGRpZmYgPSBhLmNsb25lKCkuX2lzaGxuc3VibXVsKGIsIDEsIG0pO1xuICAgIGlmIChkaWZmLm5lZ2F0aXZlID09PSAwKSB7XG4gICAgICBhID0gZGlmZjtcbiAgICAgIGlmIChxKSB7XG4gICAgICAgIHEud29yZHNbbV0gPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAodmFyIGogPSBtIC0gMTsgaiA+PSAwOyBqLS0pIHtcbiAgICAgIHZhciBxaiA9IChhLndvcmRzW2IubGVuZ3RoICsgal0gfCAwKSAqIDB4NDAwMDAwMCArXG4gICAgICAgIChhLndvcmRzW2IubGVuZ3RoICsgaiAtIDFdIHwgMCk7XG5cbiAgICAgIC8vIE5PVEU6IChxaiAvIGJoaSkgaXMgKDB4M2ZmZmZmZiAqIDB4NDAwMDAwMCArIDB4M2ZmZmZmZikgLyAweDIwMDAwMDAgbWF4XG4gICAgICAvLyAoMHg3ZmZmZmZmKVxuICAgICAgcWogPSBNYXRoLm1pbigocWogLyBiaGkpIHwgMCwgMHgzZmZmZmZmKTtcblxuICAgICAgYS5faXNobG5zdWJtdWwoYiwgcWosIGopO1xuICAgICAgd2hpbGUgKGEubmVnYXRpdmUgIT09IDApIHtcbiAgICAgICAgcWotLTtcbiAgICAgICAgYS5uZWdhdGl2ZSA9IDA7XG4gICAgICAgIGEuX2lzaGxuc3VibXVsKGIsIDEsIGopO1xuICAgICAgICBpZiAoIWEuaXNaZXJvKCkpIHtcbiAgICAgICAgICBhLm5lZ2F0aXZlIF49IDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChxKSB7XG4gICAgICAgIHEud29yZHNbal0gPSBxajtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHEpIHtcbiAgICAgIHEuc3RyaXAoKTtcbiAgICB9XG4gICAgYS5zdHJpcCgpO1xuXG4gICAgLy8gRGVub3JtYWxpemVcbiAgICBpZiAobW9kZSAhPT0gJ2RpdicgJiYgc2hpZnQgIT09IDApIHtcbiAgICAgIGEuaXVzaHJuKHNoaWZ0KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGl2OiBxIHx8IG51bGwsXG4gICAgICBtb2Q6IGFcbiAgICB9O1xuICB9O1xuXG4gIC8vIE5PVEU6IDEpIGBtb2RlYCBjYW4gYmUgc2V0IHRvIGBtb2RgIHRvIHJlcXVlc3QgbW9kIG9ubHksXG4gIC8vICAgICAgIHRvIGBkaXZgIHRvIHJlcXVlc3QgZGl2IG9ubHksIG9yIGJlIGFic2VudCB0b1xuICAvLyAgICAgICByZXF1ZXN0IGJvdGggZGl2ICYgbW9kXG4gIC8vICAgICAgIDIpIGBwb3NpdGl2ZWAgaXMgdHJ1ZSBpZiB1bnNpZ25lZCBtb2QgaXMgcmVxdWVzdGVkXG4gIEJOLnByb3RvdHlwZS5kaXZtb2QgPSBmdW5jdGlvbiBkaXZtb2QgKG51bSwgbW9kZSwgcG9zaXRpdmUpIHtcbiAgICBhc3NlcnQoIW51bS5pc1plcm8oKSk7XG5cbiAgICBpZiAodGhpcy5pc1plcm8oKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGl2OiBuZXcgQk4oMCksXG4gICAgICAgIG1vZDogbmV3IEJOKDApXG4gICAgICB9O1xuICAgIH1cblxuICAgIHZhciBkaXYsIG1vZCwgcmVzO1xuICAgIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwICYmIG51bS5uZWdhdGl2ZSA9PT0gMCkge1xuICAgICAgcmVzID0gdGhpcy5uZWcoKS5kaXZtb2QobnVtLCBtb2RlKTtcblxuICAgICAgaWYgKG1vZGUgIT09ICdtb2QnKSB7XG4gICAgICAgIGRpdiA9IHJlcy5kaXYubmVnKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtb2RlICE9PSAnZGl2Jykge1xuICAgICAgICBtb2QgPSByZXMubW9kLm5lZygpO1xuICAgICAgICBpZiAocG9zaXRpdmUgJiYgbW9kLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICAgICAgbW9kLmlhZGQobnVtKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkaXY6IGRpdixcbiAgICAgICAgbW9kOiBtb2RcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubmVnYXRpdmUgPT09IDAgJiYgbnVtLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICByZXMgPSB0aGlzLmRpdm1vZChudW0ubmVnKCksIG1vZGUpO1xuXG4gICAgICBpZiAobW9kZSAhPT0gJ21vZCcpIHtcbiAgICAgICAgZGl2ID0gcmVzLmRpdi5uZWcoKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGl2OiBkaXYsXG4gICAgICAgIG1vZDogcmVzLm1vZFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAoKHRoaXMubmVnYXRpdmUgJiBudW0ubmVnYXRpdmUpICE9PSAwKSB7XG4gICAgICByZXMgPSB0aGlzLm5lZygpLmRpdm1vZChudW0ubmVnKCksIG1vZGUpO1xuXG4gICAgICBpZiAobW9kZSAhPT0gJ2RpdicpIHtcbiAgICAgICAgbW9kID0gcmVzLm1vZC5uZWcoKTtcbiAgICAgICAgaWYgKHBvc2l0aXZlICYmIG1vZC5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgICAgIG1vZC5pc3ViKG51bSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGl2OiByZXMuZGl2LFxuICAgICAgICBtb2Q6IG1vZFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBCb3RoIG51bWJlcnMgYXJlIHBvc2l0aXZlIGF0IHRoaXMgcG9pbnRcblxuICAgIC8vIFN0cmlwIGJvdGggbnVtYmVycyB0byBhcHByb3hpbWF0ZSBzaGlmdCB2YWx1ZVxuICAgIGlmIChudW0ubGVuZ3RoID4gdGhpcy5sZW5ndGggfHwgdGhpcy5jbXAobnVtKSA8IDApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRpdjogbmV3IEJOKDApLFxuICAgICAgICBtb2Q6IHRoaXNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gVmVyeSBzaG9ydCByZWR1Y3Rpb25cbiAgICBpZiAobnVtLmxlbmd0aCA9PT0gMSkge1xuICAgICAgaWYgKG1vZGUgPT09ICdkaXYnKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGl2OiB0aGlzLmRpdm4obnVtLndvcmRzWzBdKSxcbiAgICAgICAgICBtb2Q6IG51bGxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1vZGUgPT09ICdtb2QnKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGl2OiBudWxsLFxuICAgICAgICAgIG1vZDogbmV3IEJOKHRoaXMubW9kbihudW0ud29yZHNbMF0pKVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkaXY6IHRoaXMuZGl2bihudW0ud29yZHNbMF0pLFxuICAgICAgICBtb2Q6IG5ldyBCTih0aGlzLm1vZG4obnVtLndvcmRzWzBdKSlcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3dvcmREaXYobnVtLCBtb2RlKTtcbiAgfTtcblxuICAvLyBGaW5kIGB0aGlzYCAvIGBudW1gXG4gIEJOLnByb3RvdHlwZS5kaXYgPSBmdW5jdGlvbiBkaXYgKG51bSkge1xuICAgIHJldHVybiB0aGlzLmRpdm1vZChudW0sICdkaXYnLCBmYWxzZSkuZGl2O1xuICB9O1xuXG4gIC8vIEZpbmQgYHRoaXNgICUgYG51bWBcbiAgQk4ucHJvdG90eXBlLm1vZCA9IGZ1bmN0aW9uIG1vZCAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuZGl2bW9kKG51bSwgJ21vZCcsIGZhbHNlKS5tb2Q7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnVtb2QgPSBmdW5jdGlvbiB1bW9kIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5kaXZtb2QobnVtLCAnbW9kJywgdHJ1ZSkubW9kO1xuICB9O1xuXG4gIC8vIEZpbmQgUm91bmQoYHRoaXNgIC8gYG51bWApXG4gIEJOLnByb3RvdHlwZS5kaXZSb3VuZCA9IGZ1bmN0aW9uIGRpdlJvdW5kIChudW0pIHtcbiAgICB2YXIgZG0gPSB0aGlzLmRpdm1vZChudW0pO1xuXG4gICAgLy8gRmFzdCBjYXNlIC0gZXhhY3QgZGl2aXNpb25cbiAgICBpZiAoZG0ubW9kLmlzWmVybygpKSByZXR1cm4gZG0uZGl2O1xuXG4gICAgdmFyIG1vZCA9IGRtLmRpdi5uZWdhdGl2ZSAhPT0gMCA/IGRtLm1vZC5pc3ViKG51bSkgOiBkbS5tb2Q7XG5cbiAgICB2YXIgaGFsZiA9IG51bS51c2hybigxKTtcbiAgICB2YXIgcjIgPSBudW0uYW5kbG4oMSk7XG4gICAgdmFyIGNtcCA9IG1vZC5jbXAoaGFsZik7XG5cbiAgICAvLyBSb3VuZCBkb3duXG4gICAgaWYgKGNtcCA8IDAgfHwgcjIgPT09IDEgJiYgY21wID09PSAwKSByZXR1cm4gZG0uZGl2O1xuXG4gICAgLy8gUm91bmQgdXBcbiAgICByZXR1cm4gZG0uZGl2Lm5lZ2F0aXZlICE9PSAwID8gZG0uZGl2LmlzdWJuKDEpIDogZG0uZGl2LmlhZGRuKDEpO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5tb2RuID0gZnVuY3Rpb24gbW9kbiAobnVtKSB7XG4gICAgYXNzZXJ0KG51bSA8PSAweDNmZmZmZmYpO1xuICAgIHZhciBwID0gKDEgPDwgMjYpICUgbnVtO1xuXG4gICAgdmFyIGFjYyA9IDA7XG4gICAgZm9yICh2YXIgaSA9IHRoaXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGFjYyA9IChwICogYWNjICsgKHRoaXMud29yZHNbaV0gfCAwKSkgJSBudW07XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfTtcblxuICAvLyBJbi1wbGFjZSBkaXZpc2lvbiBieSBudW1iZXJcbiAgQk4ucHJvdG90eXBlLmlkaXZuID0gZnVuY3Rpb24gaWRpdm4gKG51bSkge1xuICAgIGFzc2VydChudW0gPD0gMHgzZmZmZmZmKTtcblxuICAgIHZhciBjYXJyeSA9IDA7XG4gICAgZm9yICh2YXIgaSA9IHRoaXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciB3ID0gKHRoaXMud29yZHNbaV0gfCAwKSArIGNhcnJ5ICogMHg0MDAwMDAwO1xuICAgICAgdGhpcy53b3Jkc1tpXSA9ICh3IC8gbnVtKSB8IDA7XG4gICAgICBjYXJyeSA9IHcgJSBudW07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3RyaXAoKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZGl2biA9IGZ1bmN0aW9uIGRpdm4gKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNsb25lKCkuaWRpdm4obnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZWdjZCA9IGZ1bmN0aW9uIGVnY2QgKHApIHtcbiAgICBhc3NlcnQocC5uZWdhdGl2ZSA9PT0gMCk7XG4gICAgYXNzZXJ0KCFwLmlzWmVybygpKTtcblxuICAgIHZhciB4ID0gdGhpcztcbiAgICB2YXIgeSA9IHAuY2xvbmUoKTtcblxuICAgIGlmICh4Lm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICB4ID0geC51bW9kKHApO1xuICAgIH0gZWxzZSB7XG4gICAgICB4ID0geC5jbG9uZSgpO1xuICAgIH1cblxuICAgIC8vIEEgKiB4ICsgQiAqIHkgPSB4XG4gICAgdmFyIEEgPSBuZXcgQk4oMSk7XG4gICAgdmFyIEIgPSBuZXcgQk4oMCk7XG5cbiAgICAvLyBDICogeCArIEQgKiB5ID0geVxuICAgIHZhciBDID0gbmV3IEJOKDApO1xuICAgIHZhciBEID0gbmV3IEJOKDEpO1xuXG4gICAgdmFyIGcgPSAwO1xuXG4gICAgd2hpbGUgKHguaXNFdmVuKCkgJiYgeS5pc0V2ZW4oKSkge1xuICAgICAgeC5pdXNocm4oMSk7XG4gICAgICB5Lml1c2hybigxKTtcbiAgICAgICsrZztcbiAgICB9XG5cbiAgICB2YXIgeXAgPSB5LmNsb25lKCk7XG4gICAgdmFyIHhwID0geC5jbG9uZSgpO1xuXG4gICAgd2hpbGUgKCF4LmlzWmVybygpKSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgaW0gPSAxOyAoeC53b3Jkc1swXSAmIGltKSA9PT0gMCAmJiBpIDwgMjY7ICsraSwgaW0gPDw9IDEpO1xuICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgIHguaXVzaHJuKGkpO1xuICAgICAgICB3aGlsZSAoaS0tID4gMCkge1xuICAgICAgICAgIGlmIChBLmlzT2RkKCkgfHwgQi5pc09kZCgpKSB7XG4gICAgICAgICAgICBBLmlhZGQoeXApO1xuICAgICAgICAgICAgQi5pc3ViKHhwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBBLml1c2hybigxKTtcbiAgICAgICAgICBCLml1c2hybigxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKHZhciBqID0gMCwgam0gPSAxOyAoeS53b3Jkc1swXSAmIGptKSA9PT0gMCAmJiBqIDwgMjY7ICsraiwgam0gPDw9IDEpO1xuICAgICAgaWYgKGogPiAwKSB7XG4gICAgICAgIHkuaXVzaHJuKGopO1xuICAgICAgICB3aGlsZSAoai0tID4gMCkge1xuICAgICAgICAgIGlmIChDLmlzT2RkKCkgfHwgRC5pc09kZCgpKSB7XG4gICAgICAgICAgICBDLmlhZGQoeXApO1xuICAgICAgICAgICAgRC5pc3ViKHhwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBDLml1c2hybigxKTtcbiAgICAgICAgICBELml1c2hybigxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoeC5jbXAoeSkgPj0gMCkge1xuICAgICAgICB4LmlzdWIoeSk7XG4gICAgICAgIEEuaXN1YihDKTtcbiAgICAgICAgQi5pc3ViKEQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgeS5pc3ViKHgpO1xuICAgICAgICBDLmlzdWIoQSk7XG4gICAgICAgIEQuaXN1YihCKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYTogQyxcbiAgICAgIGI6IEQsXG4gICAgICBnY2Q6IHkuaXVzaGxuKGcpXG4gICAgfTtcbiAgfTtcblxuICAvLyBUaGlzIGlzIHJlZHVjZWQgaW5jYXJuYXRpb24gb2YgdGhlIGJpbmFyeSBFRUFcbiAgLy8gYWJvdmUsIGRlc2lnbmF0ZWQgdG8gaW52ZXJ0IG1lbWJlcnMgb2YgdGhlXG4gIC8vIF9wcmltZV8gZmllbGRzIEYocCkgYXQgYSBtYXhpbWFsIHNwZWVkXG4gIEJOLnByb3RvdHlwZS5faW52bXAgPSBmdW5jdGlvbiBfaW52bXAgKHApIHtcbiAgICBhc3NlcnQocC5uZWdhdGl2ZSA9PT0gMCk7XG4gICAgYXNzZXJ0KCFwLmlzWmVybygpKTtcblxuICAgIHZhciBhID0gdGhpcztcbiAgICB2YXIgYiA9IHAuY2xvbmUoKTtcblxuICAgIGlmIChhLm5lZ2F0aXZlICE9PSAwKSB7XG4gICAgICBhID0gYS51bW9kKHApO1xuICAgIH0gZWxzZSB7XG4gICAgICBhID0gYS5jbG9uZSgpO1xuICAgIH1cblxuICAgIHZhciB4MSA9IG5ldyBCTigxKTtcbiAgICB2YXIgeDIgPSBuZXcgQk4oMCk7XG5cbiAgICB2YXIgZGVsdGEgPSBiLmNsb25lKCk7XG5cbiAgICB3aGlsZSAoYS5jbXBuKDEpID4gMCAmJiBiLmNtcG4oMSkgPiAwKSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgaW0gPSAxOyAoYS53b3Jkc1swXSAmIGltKSA9PT0gMCAmJiBpIDwgMjY7ICsraSwgaW0gPDw9IDEpO1xuICAgICAgaWYgKGkgPiAwKSB7XG4gICAgICAgIGEuaXVzaHJuKGkpO1xuICAgICAgICB3aGlsZSAoaS0tID4gMCkge1xuICAgICAgICAgIGlmICh4MS5pc09kZCgpKSB7XG4gICAgICAgICAgICB4MS5pYWRkKGRlbHRhKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB4MS5pdXNocm4oMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yICh2YXIgaiA9IDAsIGptID0gMTsgKGIud29yZHNbMF0gJiBqbSkgPT09IDAgJiYgaiA8IDI2OyArK2osIGptIDw8PSAxKTtcbiAgICAgIGlmIChqID4gMCkge1xuICAgICAgICBiLml1c2hybihqKTtcbiAgICAgICAgd2hpbGUgKGotLSA+IDApIHtcbiAgICAgICAgICBpZiAoeDIuaXNPZGQoKSkge1xuICAgICAgICAgICAgeDIuaWFkZChkZWx0YSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgeDIuaXVzaHJuKDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChhLmNtcChiKSA+PSAwKSB7XG4gICAgICAgIGEuaXN1YihiKTtcbiAgICAgICAgeDEuaXN1Yih4Mik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiLmlzdWIoYSk7XG4gICAgICAgIHgyLmlzdWIoeDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhciByZXM7XG4gICAgaWYgKGEuY21wbigxKSA9PT0gMCkge1xuICAgICAgcmVzID0geDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcyA9IHgyO1xuICAgIH1cblxuICAgIGlmIChyZXMuY21wbigwKSA8IDApIHtcbiAgICAgIHJlcy5pYWRkKHApO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmdjZCA9IGZ1bmN0aW9uIGdjZCAobnVtKSB7XG4gICAgaWYgKHRoaXMuaXNaZXJvKCkpIHJldHVybiBudW0uYWJzKCk7XG4gICAgaWYgKG51bS5pc1plcm8oKSkgcmV0dXJuIHRoaXMuYWJzKCk7XG5cbiAgICB2YXIgYSA9IHRoaXMuY2xvbmUoKTtcbiAgICB2YXIgYiA9IG51bS5jbG9uZSgpO1xuICAgIGEubmVnYXRpdmUgPSAwO1xuICAgIGIubmVnYXRpdmUgPSAwO1xuXG4gICAgLy8gUmVtb3ZlIGNvbW1vbiBmYWN0b3Igb2YgdHdvXG4gICAgZm9yICh2YXIgc2hpZnQgPSAwOyBhLmlzRXZlbigpICYmIGIuaXNFdmVuKCk7IHNoaWZ0KyspIHtcbiAgICAgIGEuaXVzaHJuKDEpO1xuICAgICAgYi5pdXNocm4oMSk7XG4gICAgfVxuXG4gICAgZG8ge1xuICAgICAgd2hpbGUgKGEuaXNFdmVuKCkpIHtcbiAgICAgICAgYS5pdXNocm4oMSk7XG4gICAgICB9XG4gICAgICB3aGlsZSAoYi5pc0V2ZW4oKSkge1xuICAgICAgICBiLml1c2hybigxKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHIgPSBhLmNtcChiKTtcbiAgICAgIGlmIChyIDwgMCkge1xuICAgICAgICAvLyBTd2FwIGBhYCBhbmQgYGJgIHRvIG1ha2UgYGFgIGFsd2F5cyBiaWdnZXIgdGhhbiBgYmBcbiAgICAgICAgdmFyIHQgPSBhO1xuICAgICAgICBhID0gYjtcbiAgICAgICAgYiA9IHQ7XG4gICAgICB9IGVsc2UgaWYgKHIgPT09IDAgfHwgYi5jbXBuKDEpID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBhLmlzdWIoYik7XG4gICAgfSB3aGlsZSAodHJ1ZSk7XG5cbiAgICByZXR1cm4gYi5pdXNobG4oc2hpZnQpO1xuICB9O1xuXG4gIC8vIEludmVydCBudW1iZXIgaW4gdGhlIGZpZWxkIEYobnVtKVxuICBCTi5wcm90b3R5cGUuaW52bSA9IGZ1bmN0aW9uIGludm0gKG51bSkge1xuICAgIHJldHVybiB0aGlzLmVnY2QobnVtKS5hLnVtb2QobnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaXNFdmVuID0gZnVuY3Rpb24gaXNFdmVuICgpIHtcbiAgICByZXR1cm4gKHRoaXMud29yZHNbMF0gJiAxKSA9PT0gMDtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaXNPZGQgPSBmdW5jdGlvbiBpc09kZCAoKSB7XG4gICAgcmV0dXJuICh0aGlzLndvcmRzWzBdICYgMSkgPT09IDE7XG4gIH07XG5cbiAgLy8gQW5kIGZpcnN0IHdvcmQgYW5kIG51bVxuICBCTi5wcm90b3R5cGUuYW5kbG4gPSBmdW5jdGlvbiBhbmRsbiAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMud29yZHNbMF0gJiBudW07XG4gIH07XG5cbiAgLy8gSW5jcmVtZW50IGF0IHRoZSBiaXQgcG9zaXRpb24gaW4tbGluZVxuICBCTi5wcm90b3R5cGUuYmluY24gPSBmdW5jdGlvbiBiaW5jbiAoYml0KSB7XG4gICAgYXNzZXJ0KHR5cGVvZiBiaXQgPT09ICdudW1iZXInKTtcbiAgICB2YXIgciA9IGJpdCAlIDI2O1xuICAgIHZhciBzID0gKGJpdCAtIHIpIC8gMjY7XG4gICAgdmFyIHEgPSAxIDw8IHI7XG5cbiAgICAvLyBGYXN0IGNhc2U6IGJpdCBpcyBtdWNoIGhpZ2hlciB0aGFuIGFsbCBleGlzdGluZyB3b3Jkc1xuICAgIGlmICh0aGlzLmxlbmd0aCA8PSBzKSB7XG4gICAgICB0aGlzLl9leHBhbmQocyArIDEpO1xuICAgICAgdGhpcy53b3Jkc1tzXSB8PSBxO1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLy8gQWRkIGJpdCBhbmQgcHJvcGFnYXRlLCBpZiBuZWVkZWRcbiAgICB2YXIgY2FycnkgPSBxO1xuICAgIGZvciAodmFyIGkgPSBzOyBjYXJyeSAhPT0gMCAmJiBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHcgPSB0aGlzLndvcmRzW2ldIHwgMDtcbiAgICAgIHcgKz0gY2Fycnk7XG4gICAgICBjYXJyeSA9IHcgPj4+IDI2O1xuICAgICAgdyAmPSAweDNmZmZmZmY7XG4gICAgICB0aGlzLndvcmRzW2ldID0gdztcbiAgICB9XG4gICAgaWYgKGNhcnJ5ICE9PSAwKSB7XG4gICAgICB0aGlzLndvcmRzW2ldID0gY2Fycnk7XG4gICAgICB0aGlzLmxlbmd0aCsrO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuaXNaZXJvID0gZnVuY3Rpb24gaXNaZXJvICgpIHtcbiAgICByZXR1cm4gdGhpcy5sZW5ndGggPT09IDEgJiYgdGhpcy53b3Jkc1swXSA9PT0gMDtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuY21wbiA9IGZ1bmN0aW9uIGNtcG4gKG51bSkge1xuICAgIHZhciBuZWdhdGl2ZSA9IG51bSA8IDA7XG5cbiAgICBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCAmJiAhbmVnYXRpdmUpIHJldHVybiAtMTtcbiAgICBpZiAodGhpcy5uZWdhdGl2ZSA9PT0gMCAmJiBuZWdhdGl2ZSkgcmV0dXJuIDE7XG5cbiAgICB0aGlzLnN0cmlwKCk7XG5cbiAgICB2YXIgcmVzO1xuICAgIGlmICh0aGlzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJlcyA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChuZWdhdGl2ZSkge1xuICAgICAgICBudW0gPSAtbnVtO1xuICAgICAgfVxuXG4gICAgICBhc3NlcnQobnVtIDw9IDB4M2ZmZmZmZiwgJ051bWJlciBpcyB0b28gYmlnJyk7XG5cbiAgICAgIHZhciB3ID0gdGhpcy53b3Jkc1swXSB8IDA7XG4gICAgICByZXMgPSB3ID09PSBudW0gPyAwIDogdyA8IG51bSA/IC0xIDogMTtcbiAgICB9XG4gICAgaWYgKHRoaXMubmVnYXRpdmUgIT09IDApIHJldHVybiAtcmVzIHwgMDtcbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG4gIC8vIENvbXBhcmUgdHdvIG51bWJlcnMgYW5kIHJldHVybjpcbiAgLy8gMSAtIGlmIGB0aGlzYCA+IGBudW1gXG4gIC8vIDAgLSBpZiBgdGhpc2AgPT0gYG51bWBcbiAgLy8gLTEgLSBpZiBgdGhpc2AgPCBgbnVtYFxuICBCTi5wcm90b3R5cGUuY21wID0gZnVuY3Rpb24gY21wIChudW0pIHtcbiAgICBpZiAodGhpcy5uZWdhdGl2ZSAhPT0gMCAmJiBudW0ubmVnYXRpdmUgPT09IDApIHJldHVybiAtMTtcbiAgICBpZiAodGhpcy5uZWdhdGl2ZSA9PT0gMCAmJiBudW0ubmVnYXRpdmUgIT09IDApIHJldHVybiAxO1xuXG4gICAgdmFyIHJlcyA9IHRoaXMudWNtcChudW0pO1xuICAgIGlmICh0aGlzLm5lZ2F0aXZlICE9PSAwKSByZXR1cm4gLXJlcyB8IDA7XG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuICAvLyBVbnNpZ25lZCBjb21wYXJpc29uXG4gIEJOLnByb3RvdHlwZS51Y21wID0gZnVuY3Rpb24gdWNtcCAobnVtKSB7XG4gICAgLy8gQXQgdGhpcyBwb2ludCBib3RoIG51bWJlcnMgaGF2ZSB0aGUgc2FtZSBzaWduXG4gICAgaWYgKHRoaXMubGVuZ3RoID4gbnVtLmxlbmd0aCkgcmV0dXJuIDE7XG4gICAgaWYgKHRoaXMubGVuZ3RoIDwgbnVtLmxlbmd0aCkgcmV0dXJuIC0xO1xuXG4gICAgdmFyIHJlcyA9IDA7XG4gICAgZm9yICh2YXIgaSA9IHRoaXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHZhciBhID0gdGhpcy53b3Jkc1tpXSB8IDA7XG4gICAgICB2YXIgYiA9IG51bS53b3Jkc1tpXSB8IDA7XG5cbiAgICAgIGlmIChhID09PSBiKSBjb250aW51ZTtcbiAgICAgIGlmIChhIDwgYikge1xuICAgICAgICByZXMgPSAtMTtcbiAgICAgIH0gZWxzZSBpZiAoYSA+IGIpIHtcbiAgICAgICAgcmVzID0gMTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5ndG4gPSBmdW5jdGlvbiBndG4gKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNtcG4obnVtKSA9PT0gMTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZ3QgPSBmdW5jdGlvbiBndCAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY21wKG51bSkgPT09IDE7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmd0ZW4gPSBmdW5jdGlvbiBndGVuIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbXBuKG51bSkgPj0gMDtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZ3RlID0gZnVuY3Rpb24gZ3RlIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbXAobnVtKSA+PSAwO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5sdG4gPSBmdW5jdGlvbiBsdG4gKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNtcG4obnVtKSA9PT0gLTE7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmx0ID0gZnVuY3Rpb24gbHQgKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNtcChudW0pID09PSAtMTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUubHRlbiA9IGZ1bmN0aW9uIGx0ZW4gKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNtcG4obnVtKSA8PSAwO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5sdGUgPSBmdW5jdGlvbiBsdGUgKG51bSkge1xuICAgIHJldHVybiB0aGlzLmNtcChudW0pIDw9IDA7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmVxbiA9IGZ1bmN0aW9uIGVxbiAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuY21wbihudW0pID09PSAwO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5lcSA9IGZ1bmN0aW9uIGVxIChudW0pIHtcbiAgICByZXR1cm4gdGhpcy5jbXAobnVtKSA9PT0gMDtcbiAgfTtcblxuICAvL1xuICAvLyBBIHJlZHVjZSBjb250ZXh0LCBjb3VsZCBiZSB1c2luZyBtb250Z29tZXJ5IG9yIHNvbWV0aGluZyBiZXR0ZXIsIGRlcGVuZGluZ1xuICAvLyBvbiB0aGUgYG1gIGl0c2VsZi5cbiAgLy9cbiAgQk4ucmVkID0gZnVuY3Rpb24gcmVkIChudW0pIHtcbiAgICByZXR1cm4gbmV3IFJlZChudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS50b1JlZCA9IGZ1bmN0aW9uIHRvUmVkIChjdHgpIHtcbiAgICBhc3NlcnQoIXRoaXMucmVkLCAnQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCcpO1xuICAgIGFzc2VydCh0aGlzLm5lZ2F0aXZlID09PSAwLCAncmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMnKTtcbiAgICByZXR1cm4gY3R4LmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoY3R4KTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUuZnJvbVJlZCA9IGZ1bmN0aW9uIGZyb21SZWQgKCkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ2Zyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQnKTtcbiAgICByZXR1cm4gdGhpcy5yZWQuY29udmVydEZyb20odGhpcyk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLl9mb3JjZVJlZCA9IGZ1bmN0aW9uIF9mb3JjZVJlZCAoY3R4KSB7XG4gICAgdGhpcy5yZWQgPSBjdHg7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLmZvcmNlUmVkID0gZnVuY3Rpb24gZm9yY2VSZWQgKGN0eCkge1xuICAgIGFzc2VydCghdGhpcy5yZWQsICdBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0Jyk7XG4gICAgcmV0dXJuIHRoaXMuX2ZvcmNlUmVkKGN0eCk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnJlZEFkZCA9IGZ1bmN0aW9uIHJlZEFkZCAobnVtKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHJldHVybiB0aGlzLnJlZC5hZGQodGhpcywgbnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUucmVkSUFkZCA9IGZ1bmN0aW9uIHJlZElBZGQgKG51bSkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLmlhZGQodGhpcywgbnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUucmVkU3ViID0gZnVuY3Rpb24gcmVkU3ViIChudW0pIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLnN1Yih0aGlzLCBudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5yZWRJU3ViID0gZnVuY3Rpb24gcmVkSVN1YiAobnVtKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICByZXR1cm4gdGhpcy5yZWQuaXN1Yih0aGlzLCBudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5yZWRTaGwgPSBmdW5jdGlvbiByZWRTaGwgKG51bSkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICByZXR1cm4gdGhpcy5yZWQuc2hsKHRoaXMsIG51bSk7XG4gIH07XG5cbiAgQk4ucHJvdG90eXBlLnJlZE11bCA9IGZ1bmN0aW9uIHJlZE11bCAobnVtKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsIG51bSk7XG4gICAgcmV0dXJuIHRoaXMucmVkLm11bCh0aGlzLCBudW0pO1xuICB9O1xuXG4gIEJOLnByb3RvdHlwZS5yZWRJTXVsID0gZnVuY3Rpb24gcmVkSU11bCAobnVtKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycycpO1xuICAgIHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsIG51bSk7XG4gICAgcmV0dXJuIHRoaXMucmVkLmltdWwodGhpcywgbnVtKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUucmVkU3FyID0gZnVuY3Rpb24gcmVkU3FyICgpIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLnNxcih0aGlzKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUucmVkSVNxciA9IGZ1bmN0aW9uIHJlZElTcXIgKCkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLmlzcXIodGhpcyk7XG4gIH07XG5cbiAgLy8gU3F1YXJlIHJvb3Qgb3ZlciBwXG4gIEJOLnByb3RvdHlwZS5yZWRTcXJ0ID0gZnVuY3Rpb24gcmVkU3FydCAoKSB7XG4gICAgYXNzZXJ0KHRoaXMucmVkLCAncmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgICB0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5yZWQuc3FydCh0aGlzKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUucmVkSW52bSA9IGZ1bmN0aW9uIHJlZEludm0gKCkge1xuICAgIGFzc2VydCh0aGlzLnJlZCwgJ3JlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLmludm0odGhpcyk7XG4gIH07XG5cbiAgLy8gUmV0dXJuIG5lZ2F0aXZlIGNsb25lIG9mIGB0aGlzYCAlIGByZWQgbW9kdWxvYFxuICBCTi5wcm90b3R5cGUucmVkTmVnID0gZnVuY3Rpb24gcmVkTmVnICgpIHtcbiAgICBhc3NlcnQodGhpcy5yZWQsICdyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gICAgdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyk7XG4gICAgcmV0dXJuIHRoaXMucmVkLm5lZyh0aGlzKTtcbiAgfTtcblxuICBCTi5wcm90b3R5cGUucmVkUG93ID0gZnVuY3Rpb24gcmVkUG93IChudW0pIHtcbiAgICBhc3NlcnQodGhpcy5yZWQgJiYgIW51bS5yZWQsICdyZWRQb3cobm9ybWFsTnVtKScpO1xuICAgIHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpO1xuICAgIHJldHVybiB0aGlzLnJlZC5wb3codGhpcywgbnVtKTtcbiAgfTtcblxuICAvLyBQcmltZSBudW1iZXJzIHdpdGggZWZmaWNpZW50IHJlZHVjdGlvblxuICB2YXIgcHJpbWVzID0ge1xuICAgIGsyNTY6IG51bGwsXG4gICAgcDIyNDogbnVsbCxcbiAgICBwMTkyOiBudWxsLFxuICAgIHAyNTUxOTogbnVsbFxuICB9O1xuXG4gIC8vIFBzZXVkby1NZXJzZW5uZSBwcmltZVxuICBmdW5jdGlvbiBNUHJpbWUgKG5hbWUsIHApIHtcbiAgICAvLyBQID0gMiBeIE4gLSBLXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnAgPSBuZXcgQk4ocCwgMTYpO1xuICAgIHRoaXMubiA9IHRoaXMucC5iaXRMZW5ndGgoKTtcbiAgICB0aGlzLmsgPSBuZXcgQk4oMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApO1xuXG4gICAgdGhpcy50bXAgPSB0aGlzLl90bXAoKTtcbiAgfVxuXG4gIE1QcmltZS5wcm90b3R5cGUuX3RtcCA9IGZ1bmN0aW9uIF90bXAgKCkge1xuICAgIHZhciB0bXAgPSBuZXcgQk4obnVsbCk7XG4gICAgdG1wLndvcmRzID0gbmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4gLyAxMykpO1xuICAgIHJldHVybiB0bXA7XG4gIH07XG5cbiAgTVByaW1lLnByb3RvdHlwZS5pcmVkdWNlID0gZnVuY3Rpb24gaXJlZHVjZSAobnVtKSB7XG4gICAgLy8gQXNzdW1lcyB0aGF0IGBudW1gIGlzIGxlc3MgdGhhbiBgUF4yYFxuICAgIC8vIG51bSA9IEhJICogKDIgXiBOIC0gSykgKyBISSAqIEsgKyBMTyA9IEhJICogSyArIExPIChtb2QgUClcbiAgICB2YXIgciA9IG51bTtcbiAgICB2YXIgcmxlbjtcblxuICAgIGRvIHtcbiAgICAgIHRoaXMuc3BsaXQociwgdGhpcy50bXApO1xuICAgICAgciA9IHRoaXMuaW11bEsocik7XG4gICAgICByID0gci5pYWRkKHRoaXMudG1wKTtcbiAgICAgIHJsZW4gPSByLmJpdExlbmd0aCgpO1xuICAgIH0gd2hpbGUgKHJsZW4gPiB0aGlzLm4pO1xuXG4gICAgdmFyIGNtcCA9IHJsZW4gPCB0aGlzLm4gPyAtMSA6IHIudWNtcCh0aGlzLnApO1xuICAgIGlmIChjbXAgPT09IDApIHtcbiAgICAgIHIud29yZHNbMF0gPSAwO1xuICAgICAgci5sZW5ndGggPSAxO1xuICAgIH0gZWxzZSBpZiAoY21wID4gMCkge1xuICAgICAgci5pc3ViKHRoaXMucCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHIuc3RyaXAoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcjtcbiAgfTtcblxuICBNUHJpbWUucHJvdG90eXBlLnNwbGl0ID0gZnVuY3Rpb24gc3BsaXQgKGlucHV0LCBvdXQpIHtcbiAgICBpbnB1dC5pdXNocm4odGhpcy5uLCAwLCBvdXQpO1xuICB9O1xuXG4gIE1QcmltZS5wcm90b3R5cGUuaW11bEsgPSBmdW5jdGlvbiBpbXVsSyAobnVtKSB7XG4gICAgcmV0dXJuIG51bS5pbXVsKHRoaXMuayk7XG4gIH07XG5cbiAgZnVuY3Rpb24gSzI1NiAoKSB7XG4gICAgTVByaW1lLmNhbGwoXG4gICAgICB0aGlzLFxuICAgICAgJ2syNTYnLFxuICAgICAgJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmJyk7XG4gIH1cbiAgaW5oZXJpdHMoSzI1NiwgTVByaW1lKTtcblxuICBLMjU2LnByb3RvdHlwZS5zcGxpdCA9IGZ1bmN0aW9uIHNwbGl0IChpbnB1dCwgb3V0cHV0KSB7XG4gICAgLy8gMjU2ID0gOSAqIDI2ICsgMjJcbiAgICB2YXIgbWFzayA9IDB4M2ZmZmZmO1xuXG4gICAgdmFyIG91dExlbiA9IE1hdGgubWluKGlucHV0Lmxlbmd0aCwgOSk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvdXRMZW47IGkrKykge1xuICAgICAgb3V0cHV0LndvcmRzW2ldID0gaW5wdXQud29yZHNbaV07XG4gICAgfVxuICAgIG91dHB1dC5sZW5ndGggPSBvdXRMZW47XG5cbiAgICBpZiAoaW5wdXQubGVuZ3RoIDw9IDkpIHtcbiAgICAgIGlucHV0LndvcmRzWzBdID0gMDtcbiAgICAgIGlucHV0Lmxlbmd0aCA9IDE7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gU2hpZnQgYnkgOSBsaW1ic1xuICAgIHZhciBwcmV2ID0gaW5wdXQud29yZHNbOV07XG4gICAgb3V0cHV0LndvcmRzW291dHB1dC5sZW5ndGgrK10gPSBwcmV2ICYgbWFzaztcblxuICAgIGZvciAoaSA9IDEwOyBpIDwgaW5wdXQubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBuZXh0ID0gaW5wdXQud29yZHNbaV0gfCAwO1xuICAgICAgaW5wdXQud29yZHNbaSAtIDEwXSA9ICgobmV4dCAmIG1hc2spIDw8IDQpIHwgKHByZXYgPj4+IDIyKTtcbiAgICAgIHByZXYgPSBuZXh0O1xuICAgIH1cbiAgICBwcmV2ID4+Pj0gMjI7XG4gICAgaW5wdXQud29yZHNbaSAtIDEwXSA9IHByZXY7XG4gICAgaWYgKHByZXYgPT09IDAgJiYgaW5wdXQubGVuZ3RoID4gMTApIHtcbiAgICAgIGlucHV0Lmxlbmd0aCAtPSAxMDtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5wdXQubGVuZ3RoIC09IDk7XG4gICAgfVxuICB9O1xuXG4gIEsyNTYucHJvdG90eXBlLmltdWxLID0gZnVuY3Rpb24gaW11bEsgKG51bSkge1xuICAgIC8vIEsgPSAweDEwMDAwMDNkMSA9IFsgMHg0MCwgMHgzZDEgXVxuICAgIG51bS53b3Jkc1tudW0ubGVuZ3RoXSA9IDA7XG4gICAgbnVtLndvcmRzW251bS5sZW5ndGggKyAxXSA9IDA7XG4gICAgbnVtLmxlbmd0aCArPSAyO1xuXG4gICAgLy8gYm91bmRlZCBhdDogMHg0MCAqIDB4M2ZmZmZmZiArIDB4M2QwID0gMHgxMDAwMDAzOTBcbiAgICB2YXIgbG8gPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdyA9IG51bS53b3Jkc1tpXSB8IDA7XG4gICAgICBsbyArPSB3ICogMHgzZDE7XG4gICAgICBudW0ud29yZHNbaV0gPSBsbyAmIDB4M2ZmZmZmZjtcbiAgICAgIGxvID0gdyAqIDB4NDAgKyAoKGxvIC8gMHg0MDAwMDAwKSB8IDApO1xuICAgIH1cblxuICAgIC8vIEZhc3QgbGVuZ3RoIHJlZHVjdGlvblxuICAgIGlmIChudW0ud29yZHNbbnVtLmxlbmd0aCAtIDFdID09PSAwKSB7XG4gICAgICBudW0ubGVuZ3RoLS07XG4gICAgICBpZiAobnVtLndvcmRzW251bS5sZW5ndGggLSAxXSA9PT0gMCkge1xuICAgICAgICBudW0ubGVuZ3RoLS07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudW07XG4gIH07XG5cbiAgZnVuY3Rpb24gUDIyNCAoKSB7XG4gICAgTVByaW1lLmNhbGwoXG4gICAgICB0aGlzLFxuICAgICAgJ3AyMjQnLFxuICAgICAgJ2ZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxJyk7XG4gIH1cbiAgaW5oZXJpdHMoUDIyNCwgTVByaW1lKTtcblxuICBmdW5jdGlvbiBQMTkyICgpIHtcbiAgICBNUHJpbWUuY2FsbChcbiAgICAgIHRoaXMsXG4gICAgICAncDE5MicsXG4gICAgICAnZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYnKTtcbiAgfVxuICBpbmhlcml0cyhQMTkyLCBNUHJpbWUpO1xuXG4gIGZ1bmN0aW9uIFAyNTUxOSAoKSB7XG4gICAgLy8gMiBeIDI1NSAtIDE5XG4gICAgTVByaW1lLmNhbGwoXG4gICAgICB0aGlzLFxuICAgICAgJzI1NTE5JyxcbiAgICAgICc3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkJyk7XG4gIH1cbiAgaW5oZXJpdHMoUDI1NTE5LCBNUHJpbWUpO1xuXG4gIFAyNTUxOS5wcm90b3R5cGUuaW11bEsgPSBmdW5jdGlvbiBpbXVsSyAobnVtKSB7XG4gICAgLy8gSyA9IDB4MTNcbiAgICB2YXIgY2FycnkgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaGkgPSAobnVtLndvcmRzW2ldIHwgMCkgKiAweDEzICsgY2Fycnk7XG4gICAgICB2YXIgbG8gPSBoaSAmIDB4M2ZmZmZmZjtcbiAgICAgIGhpID4+Pj0gMjY7XG5cbiAgICAgIG51bS53b3Jkc1tpXSA9IGxvO1xuICAgICAgY2FycnkgPSBoaTtcbiAgICB9XG4gICAgaWYgKGNhcnJ5ICE9PSAwKSB7XG4gICAgICBudW0ud29yZHNbbnVtLmxlbmd0aCsrXSA9IGNhcnJ5O1xuICAgIH1cbiAgICByZXR1cm4gbnVtO1xuICB9O1xuXG4gIC8vIEV4cG9ydGVkIG1vc3RseSBmb3IgdGVzdGluZyBwdXJwb3NlcywgdXNlIHBsYWluIG5hbWUgaW5zdGVhZFxuICBCTi5fcHJpbWUgPSBmdW5jdGlvbiBwcmltZSAobmFtZSkge1xuICAgIC8vIENhY2hlZCB2ZXJzaW9uIG9mIHByaW1lXG4gICAgaWYgKHByaW1lc1tuYW1lXSkgcmV0dXJuIHByaW1lc1tuYW1lXTtcblxuICAgIHZhciBwcmltZTtcbiAgICBpZiAobmFtZSA9PT0gJ2syNTYnKSB7XG4gICAgICBwcmltZSA9IG5ldyBLMjU2KCk7XG4gICAgfSBlbHNlIGlmIChuYW1lID09PSAncDIyNCcpIHtcbiAgICAgIHByaW1lID0gbmV3IFAyMjQoKTtcbiAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICdwMTkyJykge1xuICAgICAgcHJpbWUgPSBuZXcgUDE5MigpO1xuICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ3AyNTUxOScpIHtcbiAgICAgIHByaW1lID0gbmV3IFAyNTUxOSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gcHJpbWUgJyArIG5hbWUpO1xuICAgIH1cbiAgICBwcmltZXNbbmFtZV0gPSBwcmltZTtcblxuICAgIHJldHVybiBwcmltZTtcbiAgfTtcblxuICAvL1xuICAvLyBCYXNlIHJlZHVjdGlvbiBlbmdpbmVcbiAgLy9cbiAgZnVuY3Rpb24gUmVkIChtKSB7XG4gICAgaWYgKHR5cGVvZiBtID09PSAnc3RyaW5nJykge1xuICAgICAgdmFyIHByaW1lID0gQk4uX3ByaW1lKG0pO1xuICAgICAgdGhpcy5tID0gcHJpbWUucDtcbiAgICAgIHRoaXMucHJpbWUgPSBwcmltZTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzZXJ0KG0uZ3RuKDEpLCAnbW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAxJyk7XG4gICAgICB0aGlzLm0gPSBtO1xuICAgICAgdGhpcy5wcmltZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgUmVkLnByb3RvdHlwZS5fdmVyaWZ5MSA9IGZ1bmN0aW9uIF92ZXJpZnkxIChhKSB7XG4gICAgYXNzZXJ0KGEubmVnYXRpdmUgPT09IDAsICdyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcycpO1xuICAgIGFzc2VydChhLnJlZCwgJ3JlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMnKTtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLl92ZXJpZnkyID0gZnVuY3Rpb24gX3ZlcmlmeTIgKGEsIGIpIHtcbiAgICBhc3NlcnQoKGEubmVnYXRpdmUgfCBiLm5lZ2F0aXZlKSA9PT0gMCwgJ3JlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzJyk7XG4gICAgYXNzZXJ0KGEucmVkICYmIGEucmVkID09PSBiLnJlZCxcbiAgICAgICdyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzJyk7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5pbW9kID0gZnVuY3Rpb24gaW1vZCAoYSkge1xuICAgIGlmICh0aGlzLnByaW1lKSByZXR1cm4gdGhpcy5wcmltZS5pcmVkdWNlKGEpLl9mb3JjZVJlZCh0aGlzKTtcbiAgICByZXR1cm4gYS51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUubmVnID0gZnVuY3Rpb24gbmVnIChhKSB7XG4gICAgaWYgKGEuaXNaZXJvKCkpIHtcbiAgICAgIHJldHVybiBhLmNsb25lKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubS5zdWIoYSkuX2ZvcmNlUmVkKHRoaXMpO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gYWRkIChhLCBiKSB7XG4gICAgdGhpcy5fdmVyaWZ5MihhLCBiKTtcblxuICAgIHZhciByZXMgPSBhLmFkZChiKTtcbiAgICBpZiAocmVzLmNtcCh0aGlzLm0pID49IDApIHtcbiAgICAgIHJlcy5pc3ViKHRoaXMubSk7XG4gICAgfVxuICAgIHJldHVybiByZXMuX2ZvcmNlUmVkKHRoaXMpO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuaWFkZCA9IGZ1bmN0aW9uIGlhZGQgKGEsIGIpIHtcbiAgICB0aGlzLl92ZXJpZnkyKGEsIGIpO1xuXG4gICAgdmFyIHJlcyA9IGEuaWFkZChiKTtcbiAgICBpZiAocmVzLmNtcCh0aGlzLm0pID49IDApIHtcbiAgICAgIHJlcy5pc3ViKHRoaXMubSk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5zdWIgPSBmdW5jdGlvbiBzdWIgKGEsIGIpIHtcbiAgICB0aGlzLl92ZXJpZnkyKGEsIGIpO1xuXG4gICAgdmFyIHJlcyA9IGEuc3ViKGIpO1xuICAgIGlmIChyZXMuY21wbigwKSA8IDApIHtcbiAgICAgIHJlcy5pYWRkKHRoaXMubSk7XG4gICAgfVxuICAgIHJldHVybiByZXMuX2ZvcmNlUmVkKHRoaXMpO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuaXN1YiA9IGZ1bmN0aW9uIGlzdWIgKGEsIGIpIHtcbiAgICB0aGlzLl92ZXJpZnkyKGEsIGIpO1xuXG4gICAgdmFyIHJlcyA9IGEuaXN1YihiKTtcbiAgICBpZiAocmVzLmNtcG4oMCkgPCAwKSB7XG4gICAgICByZXMuaWFkZCh0aGlzLm0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuc2hsID0gZnVuY3Rpb24gc2hsIChhLCBudW0pIHtcbiAgICB0aGlzLl92ZXJpZnkxKGEpO1xuICAgIHJldHVybiB0aGlzLmltb2QoYS51c2hsbihudW0pKTtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLmltdWwgPSBmdW5jdGlvbiBpbXVsIChhLCBiKSB7XG4gICAgdGhpcy5fdmVyaWZ5MihhLCBiKTtcbiAgICByZXR1cm4gdGhpcy5pbW9kKGEuaW11bChiKSk7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5tdWwgPSBmdW5jdGlvbiBtdWwgKGEsIGIpIHtcbiAgICB0aGlzLl92ZXJpZnkyKGEsIGIpO1xuICAgIHJldHVybiB0aGlzLmltb2QoYS5tdWwoYikpO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuaXNxciA9IGZ1bmN0aW9uIGlzcXIgKGEpIHtcbiAgICByZXR1cm4gdGhpcy5pbXVsKGEsIGEuY2xvbmUoKSk7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5zcXIgPSBmdW5jdGlvbiBzcXIgKGEpIHtcbiAgICByZXR1cm4gdGhpcy5tdWwoYSwgYSk7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5zcXJ0ID0gZnVuY3Rpb24gc3FydCAoYSkge1xuICAgIGlmIChhLmlzWmVybygpKSByZXR1cm4gYS5jbG9uZSgpO1xuXG4gICAgdmFyIG1vZDMgPSB0aGlzLm0uYW5kbG4oMyk7XG4gICAgYXNzZXJ0KG1vZDMgJSAyID09PSAxKTtcblxuICAgIC8vIEZhc3QgY2FzZVxuICAgIGlmIChtb2QzID09PSAzKSB7XG4gICAgICB2YXIgcG93ID0gdGhpcy5tLmFkZChuZXcgQk4oMSkpLml1c2hybigyKTtcbiAgICAgIHJldHVybiB0aGlzLnBvdyhhLCBwb3cpO1xuICAgIH1cblxuICAgIC8vIFRvbmVsbGktU2hhbmtzIGFsZ29yaXRobSAoVG90YWxseSB1bm9wdGltaXplZCBhbmQgc2xvdylcbiAgICAvL1xuICAgIC8vIEZpbmQgUSBhbmQgUywgdGhhdCBRICogMiBeIFMgPSAoUCAtIDEpXG4gICAgdmFyIHEgPSB0aGlzLm0uc3VibigxKTtcbiAgICB2YXIgcyA9IDA7XG4gICAgd2hpbGUgKCFxLmlzWmVybygpICYmIHEuYW5kbG4oMSkgPT09IDApIHtcbiAgICAgIHMrKztcbiAgICAgIHEuaXVzaHJuKDEpO1xuICAgIH1cbiAgICBhc3NlcnQoIXEuaXNaZXJvKCkpO1xuXG4gICAgdmFyIG9uZSA9IG5ldyBCTigxKS50b1JlZCh0aGlzKTtcbiAgICB2YXIgbk9uZSA9IG9uZS5yZWROZWcoKTtcblxuICAgIC8vIEZpbmQgcXVhZHJhdGljIG5vbi1yZXNpZHVlXG4gICAgLy8gTk9URTogTWF4IGlzIHN1Y2ggYmVjYXVzZSBvZiBnZW5lcmFsaXplZCBSaWVtYW5uIGh5cG90aGVzaXMuXG4gICAgdmFyIGxwb3cgPSB0aGlzLm0uc3VibigxKS5pdXNocm4oMSk7XG4gICAgdmFyIHogPSB0aGlzLm0uYml0TGVuZ3RoKCk7XG4gICAgeiA9IG5ldyBCTigyICogeiAqIHopLnRvUmVkKHRoaXMpO1xuXG4gICAgd2hpbGUgKHRoaXMucG93KHosIGxwb3cpLmNtcChuT25lKSAhPT0gMCkge1xuICAgICAgei5yZWRJQWRkKG5PbmUpO1xuICAgIH1cblxuICAgIHZhciBjID0gdGhpcy5wb3coeiwgcSk7XG4gICAgdmFyIHIgPSB0aGlzLnBvdyhhLCBxLmFkZG4oMSkuaXVzaHJuKDEpKTtcbiAgICB2YXIgdCA9IHRoaXMucG93KGEsIHEpO1xuICAgIHZhciBtID0gcztcbiAgICB3aGlsZSAodC5jbXAob25lKSAhPT0gMCkge1xuICAgICAgdmFyIHRtcCA9IHQ7XG4gICAgICBmb3IgKHZhciBpID0gMDsgdG1wLmNtcChvbmUpICE9PSAwOyBpKyspIHtcbiAgICAgICAgdG1wID0gdG1wLnJlZFNxcigpO1xuICAgICAgfVxuICAgICAgYXNzZXJ0KGkgPCBtKTtcbiAgICAgIHZhciBiID0gdGhpcy5wb3coYywgbmV3IEJOKDEpLml1c2hsbihtIC0gaSAtIDEpKTtcblxuICAgICAgciA9IHIucmVkTXVsKGIpO1xuICAgICAgYyA9IGIucmVkU3FyKCk7XG4gICAgICB0ID0gdC5yZWRNdWwoYyk7XG4gICAgICBtID0gaTtcbiAgICB9XG5cbiAgICByZXR1cm4gcjtcbiAgfTtcblxuICBSZWQucHJvdG90eXBlLmludm0gPSBmdW5jdGlvbiBpbnZtIChhKSB7XG4gICAgdmFyIGludiA9IGEuX2ludm1wKHRoaXMubSk7XG4gICAgaWYgKGludi5uZWdhdGl2ZSAhPT0gMCkge1xuICAgICAgaW52Lm5lZ2F0aXZlID0gMDtcbiAgICAgIHJldHVybiB0aGlzLmltb2QoaW52KS5yZWROZWcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuaW1vZChpbnYpO1xuICAgIH1cbiAgfTtcblxuICBSZWQucHJvdG90eXBlLnBvdyA9IGZ1bmN0aW9uIHBvdyAoYSwgbnVtKSB7XG4gICAgaWYgKG51bS5pc1plcm8oKSkgcmV0dXJuIG5ldyBCTigxKS50b1JlZCh0aGlzKTtcbiAgICBpZiAobnVtLmNtcG4oMSkgPT09IDApIHJldHVybiBhLmNsb25lKCk7XG5cbiAgICB2YXIgd2luZG93U2l6ZSA9IDQ7XG4gICAgdmFyIHduZCA9IG5ldyBBcnJheSgxIDw8IHdpbmRvd1NpemUpO1xuICAgIHduZFswXSA9IG5ldyBCTigxKS50b1JlZCh0aGlzKTtcbiAgICB3bmRbMV0gPSBhO1xuICAgIGZvciAodmFyIGkgPSAyOyBpIDwgd25kLmxlbmd0aDsgaSsrKSB7XG4gICAgICB3bmRbaV0gPSB0aGlzLm11bCh3bmRbaSAtIDFdLCBhKTtcbiAgICB9XG5cbiAgICB2YXIgcmVzID0gd25kWzBdO1xuICAgIHZhciBjdXJyZW50ID0gMDtcbiAgICB2YXIgY3VycmVudExlbiA9IDA7XG4gICAgdmFyIHN0YXJ0ID0gbnVtLmJpdExlbmd0aCgpICUgMjY7XG4gICAgaWYgKHN0YXJ0ID09PSAwKSB7XG4gICAgICBzdGFydCA9IDI2O1xuICAgIH1cblxuICAgIGZvciAoaSA9IG51bS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgdmFyIHdvcmQgPSBudW0ud29yZHNbaV07XG4gICAgICBmb3IgKHZhciBqID0gc3RhcnQgLSAxOyBqID49IDA7IGotLSkge1xuICAgICAgICB2YXIgYml0ID0gKHdvcmQgPj4gaikgJiAxO1xuICAgICAgICBpZiAocmVzICE9PSB3bmRbMF0pIHtcbiAgICAgICAgICByZXMgPSB0aGlzLnNxcihyZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJpdCA9PT0gMCAmJiBjdXJyZW50ID09PSAwKSB7XG4gICAgICAgICAgY3VycmVudExlbiA9IDA7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50IDw8PSAxO1xuICAgICAgICBjdXJyZW50IHw9IGJpdDtcbiAgICAgICAgY3VycmVudExlbisrO1xuICAgICAgICBpZiAoY3VycmVudExlbiAhPT0gd2luZG93U2l6ZSAmJiAoaSAhPT0gMCB8fCBqICE9PSAwKSkgY29udGludWU7XG5cbiAgICAgICAgcmVzID0gdGhpcy5tdWwocmVzLCB3bmRbY3VycmVudF0pO1xuICAgICAgICBjdXJyZW50TGVuID0gMDtcbiAgICAgICAgY3VycmVudCA9IDA7XG4gICAgICB9XG4gICAgICBzdGFydCA9IDI2O1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH07XG5cbiAgUmVkLnByb3RvdHlwZS5jb252ZXJ0VG8gPSBmdW5jdGlvbiBjb252ZXJ0VG8gKG51bSkge1xuICAgIHZhciByID0gbnVtLnVtb2QodGhpcy5tKTtcblxuICAgIHJldHVybiByID09PSBudW0gPyByLmNsb25lKCkgOiByO1xuICB9O1xuXG4gIFJlZC5wcm90b3R5cGUuY29udmVydEZyb20gPSBmdW5jdGlvbiBjb252ZXJ0RnJvbSAobnVtKSB7XG4gICAgdmFyIHJlcyA9IG51bS5jbG9uZSgpO1xuICAgIHJlcy5yZWQgPSBudWxsO1xuICAgIHJldHVybiByZXM7XG4gIH07XG5cbiAgLy9cbiAgLy8gTW9udGdvbWVyeSBtZXRob2QgZW5naW5lXG4gIC8vXG5cbiAgQk4ubW9udCA9IGZ1bmN0aW9uIG1vbnQgKG51bSkge1xuICAgIHJldHVybiBuZXcgTW9udChudW0pO1xuICB9O1xuXG4gIGZ1bmN0aW9uIE1vbnQgKG0pIHtcbiAgICBSZWQuY2FsbCh0aGlzLCBtKTtcblxuICAgIHRoaXMuc2hpZnQgPSB0aGlzLm0uYml0TGVuZ3RoKCk7XG4gICAgaWYgKHRoaXMuc2hpZnQgJSAyNiAhPT0gMCkge1xuICAgICAgdGhpcy5zaGlmdCArPSAyNiAtICh0aGlzLnNoaWZ0ICUgMjYpO1xuICAgIH1cblxuICAgIHRoaXMuciA9IG5ldyBCTigxKS5pdXNobG4odGhpcy5zaGlmdCk7XG4gICAgdGhpcy5yMiA9IHRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpO1xuICAgIHRoaXMucmludiA9IHRoaXMuci5faW52bXAodGhpcy5tKTtcblxuICAgIHRoaXMubWludiA9IHRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKTtcbiAgICB0aGlzLm1pbnYgPSB0aGlzLm1pbnYudW1vZCh0aGlzLnIpO1xuICAgIHRoaXMubWludiA9IHRoaXMuci5zdWIodGhpcy5taW52KTtcbiAgfVxuICBpbmhlcml0cyhNb250LCBSZWQpO1xuXG4gIE1vbnQucHJvdG90eXBlLmNvbnZlcnRUbyA9IGZ1bmN0aW9uIGNvbnZlcnRUbyAobnVtKSB7XG4gICAgcmV0dXJuIHRoaXMuaW1vZChudW0udXNobG4odGhpcy5zaGlmdCkpO1xuICB9O1xuXG4gIE1vbnQucHJvdG90eXBlLmNvbnZlcnRGcm9tID0gZnVuY3Rpb24gY29udmVydEZyb20gKG51bSkge1xuICAgIHZhciByID0gdGhpcy5pbW9kKG51bS5tdWwodGhpcy5yaW52KSk7XG4gICAgci5yZWQgPSBudWxsO1xuICAgIHJldHVybiByO1xuICB9O1xuXG4gIE1vbnQucHJvdG90eXBlLmltdWwgPSBmdW5jdGlvbiBpbXVsIChhLCBiKSB7XG4gICAgaWYgKGEuaXNaZXJvKCkgfHwgYi5pc1plcm8oKSkge1xuICAgICAgYS53b3Jkc1swXSA9IDA7XG4gICAgICBhLmxlbmd0aCA9IDE7XG4gICAgICByZXR1cm4gYTtcbiAgICB9XG5cbiAgICB2YXIgdCA9IGEuaW11bChiKTtcbiAgICB2YXIgYyA9IHQubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pO1xuICAgIHZhciB1ID0gdC5pc3ViKGMpLml1c2hybih0aGlzLnNoaWZ0KTtcbiAgICB2YXIgcmVzID0gdTtcblxuICAgIGlmICh1LmNtcCh0aGlzLm0pID49IDApIHtcbiAgICAgIHJlcyA9IHUuaXN1Yih0aGlzLm0pO1xuICAgIH0gZWxzZSBpZiAodS5jbXBuKDApIDwgMCkge1xuICAgICAgcmVzID0gdS5pYWRkKHRoaXMubSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5fZm9yY2VSZWQodGhpcyk7XG4gIH07XG5cbiAgTW9udC5wcm90b3R5cGUubXVsID0gZnVuY3Rpb24gbXVsIChhLCBiKSB7XG4gICAgaWYgKGEuaXNaZXJvKCkgfHwgYi5pc1plcm8oKSkgcmV0dXJuIG5ldyBCTigwKS5fZm9yY2VSZWQodGhpcyk7XG5cbiAgICB2YXIgdCA9IGEubXVsKGIpO1xuICAgIHZhciBjID0gdC5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSk7XG4gICAgdmFyIHUgPSB0LmlzdWIoYykuaXVzaHJuKHRoaXMuc2hpZnQpO1xuICAgIHZhciByZXMgPSB1O1xuICAgIGlmICh1LmNtcCh0aGlzLm0pID49IDApIHtcbiAgICAgIHJlcyA9IHUuaXN1Yih0aGlzLm0pO1xuICAgIH0gZWxzZSBpZiAodS5jbXBuKDApIDwgMCkge1xuICAgICAgcmVzID0gdS5pYWRkKHRoaXMubSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5fZm9yY2VSZWQodGhpcyk7XG4gIH07XG5cbiAgTW9udC5wcm90b3R5cGUuaW52bSA9IGZ1bmN0aW9uIGludm0gKGEpIHtcbiAgICAvLyAoQVIpXi0xICogUl4yID0gKEFeLTEgKiBSXi0xKSAqIFJeMiA9IEFeLTEgKiBSXG4gICAgdmFyIHJlcyA9IHRoaXMuaW1vZChhLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSk7XG4gICAgcmV0dXJuIHJlcy5fZm9yY2VSZWQodGhpcyk7XG4gIH07XG59KSh0eXBlb2YgbW9kdWxlID09PSAndW5kZWZpbmVkJyB8fCBtb2R1bGUsIHRoaXMpO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L2JuLmpzL2xpYi9ibi5qc1xuLy8gbW9kdWxlIGlkID0gM1xuLy8gbW9kdWxlIGNodW5rcyA9IDAiXSwic291cmNlUm9vdCI6IiJ9");
|
756 |
-
|
757 |
-
/***/ }),
|
758 |
-
/* 4 */
|
759 |
-
/* unknown exports provided */
|
760 |
-
/* all exports used */
|
761 |
-
/*!********************************!*\
|
762 |
-
!*** ./~/safe-buffer/index.js ***!
|
763 |
-
\********************************/
|
764 |
-
/***/ (function(module, exports, __webpack_require__) {
|
765 |
-
|
766 |
-
eval("/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ 1)\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9qb3NoL3NpdGVzL2NmLWRldi93ZWIvd3AtY29udGVudC9wbHVnaW5zL0NhbGRlcmEtRm9ybXMvaW5jbHVkZXMvY2YtcHJvLWNsaWVudC9ub2RlX21vZHVsZXMvc2FmZS1idWZmZXIvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6IjQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBub2RlL25vLWRlcHJlY2F0ZWQtYXBpICovXG52YXIgYnVmZmVyID0gcmVxdWlyZSgnYnVmZmVyJylcbnZhciBCdWZmZXIgPSBidWZmZXIuQnVmZmVyXG5cbi8vIGFsdGVybmF0aXZlIHRvIHVzaW5nIE9iamVjdC5rZXlzIGZvciBvbGQgYnJvd3NlcnNcbmZ1bmN0aW9uIGNvcHlQcm9wcyAoc3JjLCBkc3QpIHtcbiAgZm9yICh2YXIga2V5IGluIHNyYykge1xuICAgIGRzdFtrZXldID0gc3JjW2tleV1cbiAgfVxufVxuaWYgKEJ1ZmZlci5mcm9tICYmIEJ1ZmZlci5hbGxvYyAmJiBCdWZmZXIuYWxsb2NVbnNhZmUgJiYgQnVmZmVyLmFsbG9jVW5zYWZlU2xvdykge1xuICBtb2R1bGUuZXhwb3J0cyA9IGJ1ZmZlclxufSBlbHNlIHtcbiAgLy8gQ29weSBwcm9wZXJ0aWVzIGZyb20gcmVxdWlyZSgnYnVmZmVyJylcbiAgY29weVByb3BzKGJ1ZmZlciwgZXhwb3J0cylcbiAgZXhwb3J0cy5CdWZmZXIgPSBTYWZlQnVmZmVyXG59XG5cbmZ1bmN0aW9uIFNhZmVCdWZmZXIgKGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBCdWZmZXIoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG59XG5cbi8vIENvcHkgc3RhdGljIG1ldGhvZHMgZnJvbSBCdWZmZXJcbmNvcHlQcm9wcyhCdWZmZXIsIFNhZmVCdWZmZXIpXG5cblNhZmVCdWZmZXIuZnJvbSA9IGZ1bmN0aW9uIChhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkge1xuICBpZiAodHlwZW9mIGFyZyA9PT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlcicpXG4gIH1cbiAgcmV0dXJuIEJ1ZmZlcihhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aClcbn1cblxuU2FmZUJ1ZmZlci5hbGxvYyA9IGZ1bmN0aW9uIChzaXplLCBmaWxsLCBlbmNvZGluZykge1xuICBpZiAodHlwZW9mIHNpemUgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpXG4gIH1cbiAgdmFyIGJ1ZiA9IEJ1ZmZlcihzaXplKVxuICBpZiAoZmlsbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGJ1Zi5maWxsKGZpbGwsIGVuY29kaW5nKVxuICAgIH0gZWxzZSB7XG4gICAgICBidWYuZmlsbChmaWxsKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBidWYuZmlsbCgwKVxuICB9XG4gIHJldHVybiBidWZcbn1cblxuU2FmZUJ1ZmZlci5hbGxvY1Vuc2FmZSA9IGZ1bmN0aW9uIChzaXplKSB7XG4gIGlmICh0eXBlb2Ygc2l6ZSAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyJylcbiAgfVxuICByZXR1cm4gQnVmZmVyKHNpemUpXG59XG5cblNhZmVCdWZmZXIuYWxsb2NVbnNhZmVTbG93ID0gZnVuY3Rpb24gKHNpemUpIHtcbiAgaWYgKHR5cGVvZiBzaXplICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBudW1iZXInKVxuICB9XG4gIHJldHVybiBidWZmZXIuU2xvd0J1ZmZlcihzaXplKVxufVxuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gLi9+L3NhZmUtYnVmZmVyL2luZGV4LmpzXG4vLyBtb2R1bGUgaWQgPSA0XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
|
767 |
-
|
768 |
-
/***/ }),
|
769 |
-
/* 5 */
|
770 |
-
/* unknown exports provided */
|
771 |
-
/* all exports used */
|
772 |
-
/*!************************************!*\
|
773 |
-
!*** ./~/elliptic/lib/elliptic.js ***!
|
774 |
-
\************************************/
|
775 |
-
/***/ (function(module, exports, __webpack_require__) {
|
776 |
-
|
777 |
-
"use strict";
|
778 |
-
eval("\n\nvar elliptic = exports;\n\nelliptic.version = __webpack_require__(/*! ../package.json */ 181).version;\nelliptic.utils = __webpack_require__(/*! ./elliptic/utils */ 180);\nelliptic.rand = __webpack_require__(/*! brorand */ 58);\nelliptic.curve = __webpack_require__(/*! ./elliptic/curve */ 25);\nelliptic.curves = __webpack_require__(/*! ./elliptic/curves */ 172);\n\n// Protocols\nelliptic.ec = __webpack_require__(/*! ./elliptic/ec */ 173);\nelliptic.eddsa = __webpack_require__(/*! ./elliptic/eddsa */ 176);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9qb3NoL3NpdGVzL2NmLWRldi93ZWIvd3AtY29udGVudC9wbHVnaW5zL0NhbGRlcmEtRm9ybXMvaW5jbHVkZXMvY2YtcHJvLWNsaWVudC9ub2RlX21vZHVsZXMvZWxsaXB0aWMvbGliL2VsbGlwdGljLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBIiwiZmlsZSI6IjUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbnZhciBlbGxpcHRpYyA9IGV4cG9ydHM7XG5cbmVsbGlwdGljLnZlcnNpb24gPSByZXF1aXJlKCcuLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuZWxsaXB0aWMudXRpbHMgPSByZXF1aXJlKCcuL2VsbGlwdGljL3V0aWxzJyk7XG5lbGxpcHRpYy5yYW5kID0gcmVxdWlyZSgnYnJvcmFuZCcpO1xuZWxsaXB0aWMuY3VydmUgPSByZXF1aXJlKCcuL2VsbGlwdGljL2N1cnZlJyk7XG5lbGxpcHRpYy5jdXJ2ZXMgPSByZXF1aXJlKCcuL2VsbGlwdGljL2N1cnZlcycpO1xuXG4vLyBQcm90b2NvbHNcbmVsbGlwdGljLmVjID0gcmVxdWlyZSgnLi9lbGxpcHRpYy9lYycpO1xuZWxsaXB0aWMuZWRkc2EgPSByZXF1aXJlKCcuL2VsbGlwdGljL2VkZHNhJyk7XG5cblxuXG4vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIFdFQlBBQ0sgRk9PVEVSXG4vLyAuL34vZWxsaXB0aWMvbGliL2VsbGlwdGljLmpzXG4vLyBtb2R1bGUgaWQgPSA1XG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJzb3VyY2VSb290IjoiIn0=");
|
779 |
-
|
780 |
-
/***/ }),
|
781 |
-
/* 6 */
|
782 |
-
/* exports provided: default */
|
783 |
-
/* all exports used */
|
784 |
-
/*!***************************************!*\
|
785 |
-
!*** ./~/vue/dist/vue.runtime.esm.js ***!
|
786 |
-
\***************************************/
|
787 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
788 |
-
|
789 |
-
"use strict";
|
790 |
-
eval("/* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/*!\n * Vue.js v2.4.4\n * (c) 2014-2017 Evan You\n * Released under the MIT License.\n */\n/* */\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nvar _toString = Object.prototype.toString;\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(val);\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind, faster than native\n */\nfunction bind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n // record original fn length\n boundFn._length = fn.length;\n return boundFn\n}\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\n\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated'\n];\n\n/* */\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: \"development\" !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: \"development\" !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\nvar emptyObject = Object.freeze({});\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar formatComponentName = (null); // work around flow check\n\nif (true) {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var name = typeof vm === 'string'\n ? vm\n : typeof vm === 'function' && vm.options\n ? vm.options.name\n : vm._isVue\n ? vm.$options.name || vm.$options._componentTag\n : vm.name;\n\n var file = vm._isVue && vm.$options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n var generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n if (config.errorHandler) {\n config.errorHandler.call(null, err, vm, info);\n } else {\n if (true) {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if (inBrowser && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n }\n}\n\n/* */\n/* globals MutationObserver */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = UA && UA.indexOf('android') > 0;\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\n/**\n * Defer a task to execute it asynchronously.\n */\nvar nextTick = (function () {\n var callbacks = [];\n var pending = false;\n var timerFunc;\n\n function nextTickHandler () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n\n // the nextTick behavior leverages the microtask queue, which can be accessed\n // via either native Promise.then or MutationObserver.\n // MutationObserver has wider support, however it is seriously bugged in\n // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n // completely stops working after triggering a few times... so, if native\n // Promise is available, we will use it:\n /* istanbul ignore if */\n if (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n var logError = function (err) { console.error(err); };\n timerFunc = function () {\n p.then(nextTickHandler).catch(logError);\n // in problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n } else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n )) {\n // use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n var counter = 1;\n var observer = new MutationObserver(nextTickHandler);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n } else {\n // fallback to setTimeout\n /* istanbul ignore next */\n timerFunc = function () {\n setTimeout(nextTickHandler, 0);\n };\n }\n\n return function queueNextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n _resolve = resolve;\n })\n }\n }\n})();\n\nvar _Set;\n/* istanbul ignore if */\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\n\nvar uid$1 = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid$1++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);[\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n]\n.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * By default, when a reactive property is set, the new value is\n * also converted to become reactive. However when passing down props,\n * we don't want to force conversion because the value may be a nested value\n * under a frozen data structure. Converting it would defeat the optimization.\n */\nvar observerState = {\n shouldConvert: true\n};\n\n/**\n * Observer class that are attached to each observed\n * object. Once attached, the observer converts target\n * object's property keys into getter/setters that\n * collect dependencies and dispatches updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i], obj[keys[i]]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value)) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n observerState.shouldConvert &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (\"development\" !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (hasOwn(target, key)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n \"development\" !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n \"development\" !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (true) {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this) : parentVal\n )\n }\n } else if (parentVal || childVal) {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n \"development\" !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn.call(this, parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (parentVal, childVal) {\n var res = Object.create(parentVal || null);\n return childVal\n ? extend(res, childVal)\n : res\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (parentVal, childVal) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key in childVal) {\n var parent = ret[key];\n var child = childVal[key];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (parentVal, childVal) {\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n var lower = key.toLowerCase();\n if (isBuiltInTag(lower) || config.isReservedTag(lower)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + key\n );\n }\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (true) {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options) {\n var inject = options.inject;\n if (Array.isArray(inject)) {\n var normalized = options.inject = {};\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = inject[i];\n }\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (true) {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child);\n normalizeInject(child);\n normalizeDirectives(child);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = mergeOptions(parent, extendsFrom, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (\"development\" !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // handle boolean props\n if (isType(Boolean, prop.type)) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (!isType(String, prop.type) && (value === '' || value === hyphenate(key))) {\n value = true;\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldConvert = observerState.shouldConvert;\n observerState.shouldConvert = true;\n observe(value);\n observerState.shouldConvert = prevShouldConvert;\n }\n if (true) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (\"development\" !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n if (!valid) {\n warn(\n 'Invalid prop: type check failed for prop \"' + name + '\".' +\n ' Expected ' + expectedTypes.map(capitalize).join(', ') +\n ', got ' + Object.prototype.toString.call(value).slice(8, -1) + '.',\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isType (type, fn) {\n if (!Array.isArray(fn)) {\n return getType(fn) === getType(type)\n }\n for (var i = 0, len = fn.length; i < len; i++) {\n if (getType(fn[i]) === getType(type)) {\n return true\n }\n }\n /* istanbul ignore next */\n return false\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (true) {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n \"referenced during render. Make sure to declare reactive data \" +\n \"properties in the data option.\",\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' &&\n Proxy.toString().match(/native code/);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\nvar mark;\nvar measure;\n\nif (true) {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n perf.clearMeasures(name);\n };\n }\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.functionalContext = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: {} };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode, deep) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.isCloned = true;\n if (deep && vnode.children) {\n cloned.children = cloneVNodes(vnode.children);\n }\n return cloned\n}\n\nfunction cloneVNodes (vnodes, deep) {\n var len = vnodes.length;\n var res = new Array(len);\n for (var i = 0; i < len; i++) {\n res[i] = cloneVNode(vnodes[i], deep);\n }\n return res\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n var plain = !(passive || once$$1 || capture);\n return {\n name: name,\n plain: plain,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n cloned[i].apply(null, arguments$1);\n }\n } else {\n // return handler return value for single handlers\n return fns.apply(null, arguments)\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\n// #6552\nfunction prioritizePlainEvents (a, b) {\n return a.plain ? -1 : b.plain ? 1 : 0\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, cur, old, event;\n var toAdd = [];\n var hasModifier = false;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (!event.plain) { hasModifier = true; }\n if (isUndef(cur)) {\n \"development\" !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur);\n }\n event.handler = cur;\n toAdd.push(event);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n if (toAdd.length) {\n if (hasModifier) { toAdd.sort(prioritizePlainEvents); }\n for (var i = 0; i < toAdd.length; i++) {\n var event$1 = toAdd[i];\n add(event$1.name, event$1.handler, event$1.once, event$1.capture, event$1.passive);\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (true) {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n last = res[res.length - 1];\n // nested\n if (Array.isArray(c)) {\n res.push.apply(res, normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i)));\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n (last).text += String(c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[res.length - 1] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (comp.__esModule && comp.default) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor,\n context\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (isDef(factory.contexts)) {\n // already pending\n factory.contexts.push(context);\n } else {\n var contexts = factory.contexts = [context];\n var sync = true;\n\n var forceRender = function () {\n for (var i = 0, l = contexts.length; i < l; i++) {\n contexts[i].$forceUpdate();\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender();\n }\n });\n\n var reject = once(function (reason) {\n \"development\" !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender();\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (typeof res.then === 'function') {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isDef(res.component) && typeof res.component.then === 'function') {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n setTimeout(function () {\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender();\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n setTimeout(function () {\n if (isUndef(factory.resolved)) {\n reject(\n true\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn, once$$1) {\n if (once$$1) {\n target.$once(event, fn);\n } else {\n target.$on(event, fn);\n }\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, vm);\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$off(event[i], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (arguments.length === 1) {\n vm._events[event] = null;\n return vm\n }\n if (fn) {\n // specific handler\n var cb;\n var i$1 = cbs.length;\n while (i$1--) {\n cb = cbs[i$1];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i$1, 1);\n break\n }\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (true) {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n for (var i = 0, l = cbs.length; i < l; i++) {\n try {\n cbs[i].apply(vm, args);\n } catch (e) {\n handleError(e, vm, (\"event handler for \\\"\" + event + \"\\\"\"));\n }\n }\n }\n return vm\n };\n}\n\n/* */\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n var slots = {};\n if (!children) {\n return slots\n }\n var defaultSlot = [];\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.functionalContext === context) &&\n data && data.slot != null\n ) {\n var name = child.data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children);\n } else {\n slot.push(child);\n }\n } else {\n defaultSlot.push(child);\n }\n }\n // ignore whitespace\n if (!defaultSlot.every(isWhitespace)) {\n slots.default = defaultSlot;\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return node.isComment || node.text === ' '\n}\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res\n) {\n res = res || {};\n for (var i = 0; i < fns.length; i++) {\n if (Array.isArray(fns[i])) {\n resolveScopedSlots(fns[i], res);\n } else {\n res[fns[i].key] = fns[i].fn;\n }\n }\n return res\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n if (vm._isMounted) {\n callHook(vm, 'beforeUpdate');\n }\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(\n vm.$el, vnode, hydrating, false /* removeOnly */,\n vm.$options._parentElm,\n vm.$options._refElm\n );\n // no need for the ref nodes after initial patch\n // this prevents keeping a detached DOM tree in memory (#5851)\n vm.$options._parentElm = vm.$options._refElm = null;\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n activeInstance = prevActiveInstance;\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (true) {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (\"development\" !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n vm._watcher = new Watcher(vm, updateComponent, noop);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (true) {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren\n var hasChildren = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n parentVnode.data.scopedSlots || // has new scoped slots\n vm.$scopedSlots !== emptyObject // has old scoped slots\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = (parentVnode.data && parentVnode.data.attrs) || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n observerState.shouldConvert = false;\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n props[key] = validateProp(key, vm.$options.props, propsData, vm);\n }\n observerState.shouldConvert = true;\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n if (listeners) {\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n }\n // resolve slots + force update if has children\n if (hasChildren) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (true) {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n var handlers = vm.$options[hook];\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n try {\n handlers[i].call(vm);\n } catch (e) {\n handleError(e, vm, (hook + \" hook\"));\n }\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n}\n\n/* */\n\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (true) {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (\"development\" !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\nvar uid$2 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options\n) {\n this.vm = vm;\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$2; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = true\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = function () {};\n \"development\" !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n var dep = this$1.deps[i];\n if (!this$1.newDepIds.has(dep.id)) {\n dep.removeSub(this$1);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n var this$1 = this;\n\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].removeSub(this$1);\n }\n this.active = false;\n }\n};\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nvar seenObjects = new _Set();\nfunction traverse (val) {\n seenObjects.clear();\n _traverse(val, seenObjects);\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || !Object.isExtensible(val)) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction checkOptionType (vm, name) {\n var option = vm.$options[name];\n if (!isPlainObject(option)) {\n warn(\n (\"component option \\\"\" + name + \"\\\" should be an object.\"),\n vm\n );\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n observerState.shouldConvert = isRoot;\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (true) {\n if (isReservedAttribute(key) || config.isReservedAttr(key)) {\n warn(\n (\"\\\"\" + key + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive$$1(props, key, value, function () {\n if (vm.$parent && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive$$1(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n observerState.shouldConvert = true;\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n \"development\" !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (true) {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n \"development\" !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n try {\n return data.call(vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n \"development\" !== 'production' && checkOptionType(vm, 'computed');\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (\"development\" !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (true) {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : userDef;\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : userDef.get\n : noop;\n sharedPropertyDefinition.set = userDef.set\n ? userDef.set\n : noop;\n }\n if (\"development\" !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction initMethods (vm, methods) {\n \"development\" !== 'production' && checkOptionType(vm, 'methods');\n var props = vm.$options.props;\n for (var key in methods) {\n if (true) {\n if (methods[key] == null) {\n warn(\n \"Method \\\"\" + key + \"\\\" has an undefined value in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = methods[key] == null ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n \"development\" !== 'production' && checkOptionType(vm, 'watch');\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n keyOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(keyOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (true) {\n dataDef.set = function (newData) {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n cb.call(vm, watcher.value);\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n observerState.shouldConvert = false;\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (true) {\n defineReactive$$1(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive$$1(vm, key, result[key]);\n }\n });\n observerState.shouldConvert = true;\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject).filter(function (key) {\n /* istanbul ignore next */\n return Object.getOwnPropertyDescriptor(inject, key).enumerable\n })\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var provideKey = inject[key];\n var source = vm;\n while (source) {\n if (source._provided && provideKey in source._provided) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (\"development\" !== 'production' && !source) {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n return result\n }\n}\n\n/* */\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n context,\n children\n) {\n var props = {};\n var propOptions = Ctor.options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var _context = Object.create(context);\n var h = function (a, b, c, d) { return createElement(_context, a, b, c, d, true); };\n var vnode = Ctor.options.render.call(null, h, {\n data: data,\n props: props,\n children: children,\n parent: context,\n listeners: data.on || emptyObject,\n injections: resolveInject(Ctor.options.inject, context),\n slots: function () { return resolveSlots(children, context); }\n });\n if (vnode instanceof VNode) {\n vnode.functionalContext = context;\n vnode.functionalOptions = Ctor.options;\n if (data.slot) {\n (vnode.data || (vnode.data = {})).slot = data.slot;\n }\n }\n return vnode\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n// hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (\n vnode,\n hydrating,\n parentElm,\n refElm\n ) {\n if (!vnode.componentInstance || vnode.componentInstance._isDestroyed) {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance,\n parentElm,\n refElm\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n } else if (vnode.data.keepAlive) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|