Version Description
- Added: AJAX form submissions.
- Added: Full support and compatiblity with Google AMP.
- Added: Google reCAPTCHA v3.
- Changed: WPForms uninstall script for better cleanup process.
- Changed: Email field mailcheck feature to offer additional controls. New filters:
wpforms_mailcheck_enabled
,wpforms_mailcheck_domains
, andwpforms_mailcheck_toplevel_domains
. - Fixed: Special characters aren't encoded when Smart Tags are processed in query string.
- Fixed: Fields with Image choices are not working with some Android and older desktop browsers.
- Fixed: Form Builder: Several alert modals are displayed in batch if multiple providers have configuration issues.
- Fixed: WP_Post object is returned from
wpforms()->form->get()
if form data is requested with a non-WPForms post ID.
Download this release
Release Info
Developer | jaredatch |
Plugin | Contact Form by WPForms – Drag & Drop Form Builder for WordPress |
Version | 1.5.3 |
Comparing to | |
See all releases |
Code changes from version 1.5.2.3 to 1.5.3
- assets/css/admin.css +9 -2
- assets/css/admin.min.css +1 -1
- assets/css/wpforms-base.css +23 -3
- assets/css/wpforms-full.css +51 -11
- assets/images/addon-icon-form-pages.png +0 -0
- assets/images/addon-icons-locker.png +0 -0
- assets/images/submit-spin.svg +11 -0
- assets/js/admin-builder-providers.js +200 -191
- assets/js/admin.js +20 -0
- assets/js/admin.min.js +1 -1
- assets/js/jquery.validate.js +1652 -0
- assets/js/wpforms.js +499 -118
- changelog.txt +11 -0
- includes/admin/admin.php +3 -3
- includes/admin/builder/panels/class-settings.php +22 -1
- includes/admin/class-settings.php +61 -4
- includes/admin/settings-api.php +35 -0
- includes/class-form.php +4 -4
- includes/class-frontend.php +308 -101
- includes/class-process.php +303 -43
- includes/class-smart-tags.php +1 -0
- includes/fields/class-checkbox.php +56 -6
- includes/fields/class-email.php +18 -0
- includes/fields/class-radio.php +51 -1
- includes/fields/class-text.php +110 -1
- includes/functions.php +13 -2
- languages/wpforms-lite.pot +510 -453
- lite/wpforms-lite.php +20 -0
- readme.txt +160 -13
- uninstall.php +32 -28
- wpforms.php +2 -2
assets/css/admin.css
CHANGED
@@ -3486,7 +3486,7 @@ body .choices input[type=text].choices__input {
|
|
3486 |
margin-top: 12px;
|
3487 |
}
|
3488 |
|
3489 |
-
.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-text .wpforms-setting-label {
|
3490 |
padding-top: 8px;
|
3491 |
}
|
3492 |
|
@@ -3574,6 +3574,7 @@ body .choices input[type=text].choices__input {
|
|
3574 |
}
|
3575 |
|
3576 |
.wpforms-admin-settings .wpforms-setting-row input[type=text],
|
|
|
3577 |
.wpforms-admin-settings .wpforms-setting-row input[type=password] {
|
3578 |
background-color: #fff;
|
3579 |
border: 1px solid #ddd;
|
@@ -3590,16 +3591,22 @@ body .choices input[type=text].choices__input {
|
|
3590 |
|
3591 |
@media (max-width: 959px) {
|
3592 |
.wpforms-admin-settings .wpforms-setting-row input[type=text],
|
|
|
3593 |
.wpforms-admin-settings .wpforms-setting-row input[type=password] {
|
3594 |
width: 300px;
|
3595 |
}
|
3596 |
}
|
3597 |
|
3598 |
.wpforms-admin-settings .wpforms-setting-row input[type=text]:focus,
|
|
|
3599 |
.wpforms-admin-settings .wpforms-setting-row input[type=password]:focus {
|
3600 |
border-color: #bbb;
|
3601 |
}
|
3602 |
|
|
|
|
|
|
|
|
|
3603 |
.wpforms-admin-settings .wpforms-setting-row button {
|
3604 |
margin-right: 10px;
|
3605 |
}
|
@@ -4225,4 +4232,4 @@ body .choices input[type=text].choices__input {
|
|
4225 |
font-size: 14px;
|
4226 |
}
|
4227 |
|
4228 |
-
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy9hZG1pbi5jc3MiLCJzb3VyY2VzIjpbImFzc2V0cy9zY3NzL2FkbWluLnNjc3MiLCJhc3NldHMvc2Nzcy9fdmFyaWFibGVzLnNjc3MiLCJhc3NldHMvc2Nzcy92ZW5kb3IvcGFydGlhbHMvX2luY2x1ZGUtbWVkaWEuc2NzcyIsImFzc2V0cy9zY3NzL3ZlbmRvci9wYXJ0aWFscy9fY2hvaWNlcy5zY3NzIiwiYXNzZXRzL3Njc3MvYWRtaW4vX2J1dHRvbnMuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19jb25maXJtLnNjc3MiLCJhc3NldHMvc2Nzcy9hZG1pbi9fYWxlcnRzLnNjc3MiLCJhc3NldHMvc2Nzcy9hZG1pbi9fZmxhZ3Muc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19oZWFkZXIuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL190aXRsZS10YWJzLnNjc3MiLCJhc3NldHMvc2Nzcy9hZG1pbi9fZ2VuZXJhbC5zY3NzIiwiYXNzZXRzL3Njc3MvYWRtaW4vX3BhZ2UtZm9ybXMtb3ZlcnZpZXcuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19wYWdlLWVudHJpZXMtc2luZ2xlLnNjc3MiLCJhc3NldHMvc2Nzcy9hZG1pbi9fcGFnZS1lbnRyaWVzLWxpc3Quc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19wYWdlLXdlbGNvbWUuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19wYWdlLWFkZG9ucy5zY3NzIiwiYXNzZXRzL3Njc3MvYWRtaW4vX3BhZ2UtYWJvdXQuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19wYWdlLXNldHRpbmdzLXRvb2xzLnNjc3MiLCJhc3NldHMvc2Nzcy9hZG1pbi9fcGFnZS1zZXR0aW5ncy1pbnRlZ3JhdGlvbnMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBXUEZvcm1zIGFkbWluIHN0eWxlcy5cbi8vIFRoZXNlIHN0eWxlcyBhcmUgbG9hZGVkIG9uIGFsbCBXUEZvcm1zIHJlbGF0ZWQgYWRtaW4gcGFnZXMuXG5cbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3IvcGFydGlhbHMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd2ZW5kb3IvcGFydGlhbHMvY2hvaWNlcyc7XG5cbiRicmVha3BvaW50czogKFxuXHQneHMtcGhvbmUnOiAzMjBweCxcblx0J3Bob25lJzogNjAwcHgsXG5cdCdpcGFkJzogNzY4cHgsXG5cdCd0YWJsZXQnOiA3ODJweCxcblx0J2Rlc2t0b3AnOiA5NjBweCxcbik7XG5cbkBpbXBvcnQgJ2FkbWluL2J1dHRvbnMnO1xuQGltcG9ydCAnYWRtaW4vY29uZmlybSc7XG5AaW1wb3J0ICdhZG1pbi9hbGVydHMnO1xuQGltcG9ydCAnYWRtaW4vZmxhZ3MnO1xuQGltcG9ydCAnYWRtaW4vaGVhZGVyJztcbkBpbXBvcnQgJ2FkbWluL3RpdGxlLXRhYnMnO1xuQGltcG9ydCAnYWRtaW4vZ2VuZXJhbCc7XG5AaW1wb3J0ICdhZG1pbi9wYWdlLWZvcm1zLW92ZXJ2aWV3JztcbkBpbXBvcnQgJ2FkbWluL3BhZ2UtZW50cmllcy1zaW5nbGUnO1xuQGltcG9ydCAnYWRtaW4vcGFnZS1lbnRyaWVzLWxpc3QnO1xuQGltcG9ydCAnYWRtaW4vcGFnZS13ZWxjb21lJztcbkBpbXBvcnQgJ2FkbWluL3BhZ2UtYWRkb25zJztcbkBpbXBvcnQgJ2FkbWluL3BhZ2UtYWJvdXQnO1xuQGltcG9ydCAnYWRtaW4vcGFnZS1zZXR0aW5ncy10b29scyc7XG5AaW1wb3J0ICdhZG1pbi9wYWdlLXNldHRpbmdzLWludGVncmF0aW9ucyc7XG4iLCIkb3JhbmdlOiAjZTI3NzMwO1xuJGRhcmtvcmFuZ2U6ICNiODVhMWI7XG4kZ3JlZW46ICMyYTliMzk7XG4kYmx1ZTogIzBlNmNhZDtcbiRsaWdodEJsdWU6ICNlYmYzZmI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuXHRAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuXHRAd2FybiAkbWVzc2FnZTtcblx0JF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcblx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcblx0QGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcblx0ICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuXHQgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuXHQgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuXHQgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuXHRcdCAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG5cdFx0QHJldHVybiBmYWxzZTtcblx0ICB9XG5cdH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuXHQgIEByZXR1cm4gZmFsc2U7XG5cdH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuXHRAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcblx0ICBAcmV0dXJuICRvcGVyYXRvcjtcblx0fVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG5cdCRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcblx0JHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG5cdCR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcblx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuXHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuXHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cblx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcblx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuXHQkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG5cdCR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuXHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcblx0QHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG5cdEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG5cdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG5cdEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG5cdCRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcblx0JHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcblx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuXHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG5cdCAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcblx0fVxuXG5cdEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG5cdCAgJGRpZ2l0czogMTtcblx0fSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuXHQgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuXHR9IEBlbHNlIHtcblx0ICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG5cdCAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcblx0fVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuXHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG5cdCAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcblx0QGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuXHRAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG5cdCAgLy8gUmVjdXJzaXZlIGNhbGxcblx0ICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcblx0XHRAY29udGVudDtcblx0ICB9XG5cdH1cbiAgfVxufVxuIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG49ICAgICAgICAgICAgQ2hvaWNlcyAgICAgICAgICAgID1cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXG4kY2hvaWNlcy1zZWxlY3RvcjogJ2Nob2ljZXMnICFkZWZhdWx0O1xuJGNob2ljZXMtZm9udC1zaXplLWxnOiAxNnB4ICFkZWZhdWx0O1xuJGNob2ljZXMtZm9udC1zaXplLW1kOiAxNHB4ICFkZWZhdWx0O1xuJGNob2ljZXMtZm9udC1zaXplLXNtOiAxMnB4ICFkZWZhdWx0O1xuJGNob2ljZXMtZ3V0dGVyaW5nOiAyNHB4ICFkZWZhdWx0O1xuJGNob2ljZXMtYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJGNob2ljZXMtYm9yZGVyLXJhZGl1cy1pdGVtOiAzcHggIWRlZmF1bHQ7XG4kY2hvaWNlcy1iZy1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRjaG9pY2VzLWJnLWNvbG9yLWRpc2FibGVkOiAjRUFFQUVBICFkZWZhdWx0O1xuJGNob2ljZXMtYmctY29sb3ItZHJvcGRvd246ICNGRkZGRkYgIWRlZmF1bHQ7XG4kY2hvaWNlcy10ZXh0LWNvbG9yOiAjMzMzMzMzICFkZWZhdWx0O1xuJGNob2ljZXMta2V5bGluZS1jb2xvcjogI0RERERERCAhZGVmYXVsdDtcbiRjaG9pY2VzLXByaW1hcnktY29sb3I6ICRibHVlICFkZWZhdWx0O1xuJGNob2ljZXMtZGlzYWJsZWQtY29sb3I6ICNlYWVhZWEgIWRlZmF1bHQ7XG4kY2hvaWNlcy1oaWdobGlnaHQtY29sb3I6ICRjaG9pY2VzLXByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kY2hvaWNlcy1idXR0b24taWNvbi1wYXRoOiAnLi4vaW1hZ2VzJyAhZGVmYXVsdDtcbiRjaG9pY2VzLWJ1dHRvbi1kaW1lbnNpb246IDhweCAhZGVmYXVsdDtcbiRjaG9pY2VzLWJ1dHRvbi1vZmZzZXQ6IDhweCAhZGVmYXVsdDtcblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAkY2hvaWNlcy1ndXR0ZXJpbmc7XG4gIGZvbnQtc2l6ZTogJGNob2ljZXMtZm9udC1zaXplLWxnO1xuICAmOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuICAmOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICYuaXMtZGlzYWJsZWQge1xuXHQuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2lubmVyLCAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2lucHV0IHtcblx0ICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hvaWNlcy1iZy1jb2xvci1kaXNhYmxlZDtcblx0ICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHQgIHVzZXItc2VsZWN0OiBub25lO1xuXHR9XG5cdC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbSB7IGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgfVxufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1bZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8vIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faW5uZXIgeyBwYWRkaW5nLWJvdHRvbTogNy41cHg7IH1cbiAgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pbm5lciB7IHBhZGRpbmctYm90dG9tOiAzLjBweDsgfVxuICAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2lucHV0IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjaG9pY2VzLWtleWxpbmUtY29sb3IgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19idXR0b24ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJGNob2ljZXMtYnV0dG9uLWljb24tcGF0aCArICcvY3Jvc3MtaW52ZXJzZS5zdmcnKTtcblx0cGFkZGluZzogMDtcblx0YmFja2dyb3VuZC1zaXplOiA4cHg7XG5cdGhlaWdodDogMTAwJTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0cmlnaHQ6IDA7XG5cdG1hcmdpbi10b3A6IC0xMHB4O1xuXHRtYXJnaW4tcmlnaHQ6IDI1cHg7XG5cdGhlaWdodDogMjBweDtcblx0d2lkdGg6IDIwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDEwZW07XG5cdG9wYWNpdHk6IC41O1xuXHQmOmhvdmVyLCAmOmZvY3VzIHsgb3BhY2l0eTogMTsgfVxuXHQmOmZvY3VzIHsgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICRjaG9pY2VzLWhpZ2hsaWdodC1jb2xvcjsgfVxuICB9XG4gICY6YWZ0ZXIge1xuXHRjb250ZW50OiBcIlwiO1xuXHRoZWlnaHQ6IDA7XG5cdHdpZHRoOiAwO1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItY29sb3I6ICRjaG9pY2VzLXRleHQtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci13aWR0aDogNXB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAxMS41cHg7XG5cdHRvcDogNTAlO1xuXHRtYXJnaW4tdG9wOiAtMi41cHg7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG4gICYuaXMtb3BlbjphZnRlciB7XG5cdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGNob2ljZXMtdGV4dC1jb2xvciB0cmFuc3BhcmVudDtcblx0bWFyZ2luLXRvcDogLTcuNXB4O1xuICB9XG4gICZbZGlyPVwicnRsXCJdIHtcblx0JjphZnRlciB7XG5cdCAgbGVmdDogMTEuNXB4O1xuXHQgIHJpZ2h0OiBhdXRvO1xuXHR9XG5cdC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9fYnV0dG9uIHtcblx0ICByaWdodDogYXV0bztcblx0ICBsZWZ0OiAwO1xuXHQgIG1hcmdpbi1sZWZ0OiAyNXB4O1xuXHQgIG1hcmdpbi1yaWdodDogMDtcblx0fVxuICB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfVtkYXRhLXR5cGUqPVwic2VsZWN0LW11bHRpcGxlXCJde1xuXHQmOmFmdGVyIHtcblx0ICBjb250ZW50OiBcIlwiO1xuXHQgIGhlaWdodDogMDtcblx0ICB3aWR0aDogMDtcblx0ICBib3JkZXItc3R5bGU6IHNvbGlkO1xuXHQgIGJvcmRlci1jb2xvcjogJGNob2ljZXMtdGV4dC1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0ICBib3JkZXItd2lkdGg6IDVweDtcblx0ICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgcmlnaHQ6IDExLjVweDtcblx0Ly8gICB0b3A6IDUwJTtcblx0IHRvcDogMThweDtcblx0ICBtYXJnaW4tdG9wOiAtMi41cHg7XG5cdCAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cblx0Ji5pcy1vcGVuOmFmdGVyIHtcblx0ICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjaG9pY2VzLXRleHQtY29sb3IgdHJhbnNwYXJlbnQ7XG5cdCAgbWFyZ2luLXRvcDogLTcuNXB4O1xuXHR9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfVtkYXRhLXR5cGUqPVwic2VsZWN0LW11bHRpcGxlXCJdLCAuI3skY2hvaWNlcy1zZWxlY3Rvcn1bZGF0YS10eXBlKj1cInRleHRcIl0gIHtcbiAgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pbm5lciB7IGN1cnNvcjogdGV4dDsgfVxuICAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2J1dHRvbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRtYXJnaW4tcmlnaHQ6IC0kY2hvaWNlcy1idXR0b24tb2Zmc2V0LzI7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdG1hcmdpbi1sZWZ0OiAkY2hvaWNlcy1idXR0b24tb2Zmc2V0O1xuXHRwYWRkaW5nLWxlZnQ6ICRjaG9pY2VzLWJ1dHRvbi1vZmZzZXQqMjtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBkYXJrZW4oJGNob2ljZXMtcHJpbWFyeS1jb2xvciwgMTAlKTtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCRjaG9pY2VzLWJ1dHRvbi1pY29uLXBhdGggKyAnL2Nyb3NzLnN2ZycpO1xuXHRiYWNrZ3JvdW5kLXNpemU6ICRjaG9pY2VzLWJ1dHRvbi1kaW1lbnNpb247XG5cdHdpZHRoOiAkY2hvaWNlcy1idXR0b24tZGltZW5zaW9uO1xuXHRsaW5lLWhlaWdodDogMTtcblx0b3BhY2l0eTogLjc1O1xuXHQmOmhvdmVyLCAmOmZvY3VzIHsgb3BhY2l0eTogMTsgfVxuICB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hvaWNlcy1iZy1jb2xvcjtcbiAgLy9wYWRkaW5nOiA3LjVweCA3LjVweCAzLjc1cHg7XG4gIHBhZGRpbmc6IDRweCA3LjVweCAxcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjaG9pY2VzLWtleWxpbmUtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6ICRjaG9pY2VzLWJvcmRlci1yYWRpdXM7XG4gIGZvbnQtc2l6ZTogJGNob2ljZXMtZm9udC1zaXplLW1kO1xuICBtaW4taGVpZ2h0OiAzNXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAuaXMtZm9jdXNlZCAmLCAuaXMtb3BlbiAmIHsgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGNob2ljZXMta2V5bGluZS1jb2xvciwgMTUlKTsgfVxuICAuaXMtb3BlbiAmIHsgYm9yZGVyLXJhZGl1czogJGNob2ljZXMtYm9yZGVyLXJhZGl1cyAkY2hvaWNlcy1ib3JkZXItcmFkaXVzIDAgMDsgfVxuICAuaXMtZmxpcHBlZC5pcy1vcGVuICYgeyBib3JkZXItcmFkaXVzOiAwIDAgJGNob2ljZXMtYm9yZGVyLXJhZGl1cyAkY2hvaWNlcy1ib3JkZXItcmFkaXVzOyB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9fbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2xpc3QtLXNpbmdsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogNHB4IDE2cHggNHB4IDRweDtcbiAgd2lkdGg6IDEwMCU7XG4gIFtkaXI9XCJydGxcIl0gJiB7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcblx0cGFkZGluZy1sZWZ0OiAxNnB4O1xuICB9XG4gIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbSB7IHdpZHRoOiAxMDAlOyB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9fbGlzdC0tbXVsdGlwbGUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0Ym9yZGVyLXJhZGl1czogJGNob2ljZXMtYm9yZGVyLXJhZGl1cy1pdGVtO1xuXHRwYWRkaW5nOiAzcHggMTBweDtcblx0Zm9udC1zaXplOiAkY2hvaWNlcy1mb250LXNpemUtc207XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdG1hcmdpbi1yaWdodDogNHB4O1xuXHRtYXJnaW4tdG9wOiAwcHg7XG5cdG1hcmdpbi1ib3R0b206IDNweDtcblx0YmFja2dyb3VuZC1jb2xvcjogJGNob2ljZXMtcHJpbWFyeS1jb2xvcjtcblx0Ym9yZGVyOiAxcHggc29saWQgZGFya2VuKCRjaG9pY2VzLXByaW1hcnktY29sb3IsIDUlKTtcblx0Y29sb3I6ICNGRkZGRkY7XG5cdHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcblx0JltkYXRhLWRlbGV0YWJsZV0geyBwYWRkaW5nLXJpZ2h0OiA1cHg7IH1cblx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0ICBtYXJnaW4tcmlnaHQ6IDA7XG5cdCAgbWFyZ2luLWxlZnQ6IDMuNzVweDtcblx0fVxuXHQmLmlzLWhpZ2hsaWdodGVkIHtcblx0ICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNob2ljZXMtcHJpbWFyeS1jb2xvciwgNSUpO1xuXHQgIGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkY2hvaWNlcy1wcmltYXJ5LWNvbG9yLCAxMCUpO1xuXHR9XG5cdC5pcy1kaXNhYmxlZCAmIHtcblx0ICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNob2ljZXMtZGlzYWJsZWQtY29sb3IsIDI1JSk7XG5cdCAgYm9yZGVyOiAxcHggc29saWQgZGFya2VuKCRjaG9pY2VzLWRpc2FibGVkLWNvbG9yLCAzNSUpO1xuXHR9XG4gIH1cbn1cblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19saXN0LS1kcm9wZG93biB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjaG9pY2VzLWJnLWNvbG9yLWRyb3Bkb3duO1xuICBib3JkZXI6IDFweCBzb2xpZCAkY2hvaWNlcy1rZXlsaW5lLWNvbG9yO1xuICB0b3A6IDEwMCU7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRjaG9pY2VzLWJvcmRlci1yYWRpdXM7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkY2hvaWNlcy1ib3JkZXItcmFkaXVzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICYuaXMtYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgLmlzLW9wZW4gJiB7IGJvcmRlci1jb2xvcjogZGFya2VuKCRjaG9pY2VzLWtleWxpbmUtY29sb3IsIDE1JSk7IH1cbiAgLmlzLWZsaXBwZWQgJiB7XG5cdHRvcDogYXV0bztcblx0Ym90dG9tOiAxMDAlO1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRtYXJnaW4tYm90dG9tOiAtMXB4O1xuXHRib3JkZXItcmFkaXVzOiAuMjVyZW0gLjI1cmVtIDAgMDtcbiAgfVxuICAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2xpc3Qge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1heC1oZWlnaHQ6IDMwMHB4O1xuXHRvdmVyZmxvdzogYXV0bztcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXHR3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xuICB9XG4gIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogMTBweDtcblx0Zm9udC1zaXplOiAkY2hvaWNlcy1mb250LXNpemUtbWQ7XG5cdFtkaXI9XCJydGxcIl0gJiB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIH1cbiAgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pdGVtLS1zZWxlY3RhYmxlIHtcblx0QG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG5cdCAgcGFkZGluZy1yaWdodDogMTAwcHg7XG5cdCAgJjphZnRlciB7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLXNlbGVjdC10ZXh0KTtcblx0XHRmb250LXNpemU6ICRjaG9pY2VzLWZvbnQtc2l6ZS1zbTtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMTBweDtcblx0XHR0b3A6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdCAgfVxuXHQgIFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0cGFkZGluZy1sZWZ0OiAxMDBweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuXHRcdCY6YWZ0ZXIge1xuXHRcdCAgcmlnaHQ6IGF1dG87XG5cdFx0ICBsZWZ0OiAxMHB4O1xuXHRcdH1cblx0ICB9XG5cdH1cblx0Ji5pcy1oaWdobGlnaHRlZCB7XG5cdCAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCMwMDAwMDAsICNGRkZGRkYsIDUlKTtcblx0ICAmOmFmdGVyIHsgb3BhY2l0eTogLjU7IH1cblx0fVxuICB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbSB7IGN1cnNvcjogZGVmYXVsdDsgfVxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pdGVtLS1zZWxlY3RhYmxlIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2l0ZW0tLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIG9wYWNpdHk6IC41O1xufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2hlYWRpbmcge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6ICRjaG9pY2VzLWZvbnQtc2l6ZS1zbTtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0ZW4oJGNob2ljZXMta2V5bGluZS1jb2xvciwgMTAlKTtcbiAgY29sb3I6IGxpZ2h0ZW4oIzMzMywgMzAlKTtcbn1cblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19idXR0b24ge1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgJjpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cbn1cblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IG1peCgjMDAwMDAwLCAjRkZGRkZGLCAyLjUlKTtcbiAgZm9udC1zaXplOiAkY2hvaWNlcy1mb250LXNpemUtbWQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgcGFkZGluZzogNHB4IDAgNHB4IDJweCAhaW1wb3J0YW50O1xuICAmOmZvY3VzIHsgb3V0bGluZTogMDsgfVxuICBbZGlyPVwicnRsXCJdICYge1xuXHRwYWRkaW5nLXJpZ2h0OiAycHg7XG5cdHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX3BsYWNlaG9sZGVyIHsgb3BhY2l0eTogLjU7IH1cblxuLyo9PT09PSAgRW5kIG9mIENob2ljZXMgID09PT09PSovXG4iLCIvLyBCdXR0b24gc3R5bGVzLlxuLndwZm9ybXMtYWRtaW4tcGFnZSB7XG5cblx0LndwZm9ybXMtYnRuIHtcblx0XHRib3JkZXI6IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cblxuXHQud3Bmb3Jtcy1idG4tYmxvY2sge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0LndwZm9ybXMtYnRuLW1kIHtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRwYWRkaW5nOiA4cHggMTJweDtcblx0XHRtaW4taGVpZ2h0OiAzNXB4O1xuXHR9XG5cblx0LndwZm9ybXMtYnRuLWxnIHtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRwYWRkaW5nOiAxNnB4IDI4cHg7XG5cdH1cblxuXHQud3Bmb3Jtcy1idG4tb3JhbmdlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuXHRcdGJvcmRlci1jb2xvcjogJG9yYW5nZTtcblx0XHRjb2xvcjogI2ZmZjtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGRhcmtvcmFuZ2U7XG5cdFx0XHRib3JkZXItY29sb3I6ICRkYXJrb3JhbmdlO1xuXHRcdH1cblx0fVxuXG5cdC53cGZvcm1zLWJ0bi1ncmV5IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuXHRcdGJvcmRlci1jb2xvcjogI2NjYztcblx0XHRjb2xvcjogIzY2NjtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Q3ZDdkNztcblx0XHRcdGJvcmRlci1jb2xvcjogI2NjYztcblx0XHRcdGNvbG9yOiAjNDQ0O1xuXHRcdH1cblx0fVxuXG5cdC53cGZvcm1zLWJ0bi1saWdodC1ncmV5IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG5cdFx0Y29sb3I6ICM2NjY7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG5cdFx0XHRjb2xvcjogIzQ0NDtcblx0XHR9XG5cdH1cblxuXHQud3Bmb3Jtcy1idG4tdHJhbnMtZ3JlZW4ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IG5vbmU7XG5cdFx0Y29sb3I6ICRncmVlbjtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyZWVuO1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0fVxuXG5cdFx0LnVuZGVybGluZSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkZ3JlZW47XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0Ym90dG9tOiAtNXB4O1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZGFzaGljb25zIHtcblx0XHRcdGhlaWdodDogMThweDtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIEFsZXJ0IHN0eWxlcy5cbi8vIFN0eWxpbmcgdHdlYWtzIGZvciBqUXVlcnktY29uZmlybSBKUyBhbGVydCBsaWJyYXJ5LlxuYm9keSB7XG5cblx0ZGl2Lmpjb25maXJtIHtcblxuXHRcdCosXG5cdFx0Kjo6YmVmb3JlLFxuXHRcdCo6OmFmdGVyIHtcblx0XHRcdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0fVxuXG5cdFx0ZGl2Lmpjb25maXJtLWJveC1jb250YWluZXIge1xuXG5cdFx0XHRkaXYuamNvbmZpcm0tYm94IHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcblxuXHRcdFx0XHRkaXYuamNvbmZpcm0tY2xvc2VJY29uIHtcblx0XHRcdFx0XHRjb2xvcjogcmdiYSgwLDAsMCwwLjQpO1xuXHRcdFx0XHRcdHRvcDogOHB4O1xuXHRcdFx0XHRcdHJpZ2h0OiA4cHg7XG5cblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdGNvbG9yOiByZ2JhKDAsMCwwLDAuODApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGRpdi5qY29uZmlybS1ib3gge1xuXG5cdFx0XHRkaXYuamNvbmZpcm0tdGl0bGUtYyB7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDI2cHggMCAhaW1wb3J0YW50O1xuXHRcdFx0XHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cblx0XHRcdFx0c3Bhbi5qY29uZmlybS1pY29uLWMge1xuXHRcdFx0XHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdGNvbG9yOiAjYzRjNGM0ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzcGFuLmpjb25maXJtLXRpdGxlIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRjb2xvcjogIzMzMztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHNwYW4uamNvbmZpcm0taWNvbi1jICsgc3Bhbi5qY29uZmlybS10aXRsZSB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGRpdi5qY29uZmlybS1jb250ZW50LXBhbmUge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyNnB4O1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0XHQuamNvbmZpcm0tY29udGVudCB7XG5cdFx0XHRcdFx0b3ZlcmZsb3c6IGluaGVyaXQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0ZGl2Lmpjb25maXJtLWNvbnRlbnQge1xuXHRcdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRcdGNvbG9yOiAjNTU1O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMS40O1xuXG5cdFx0XHRcdCYubGl0ZS11cGdyYWRlIHtcblx0XHRcdFx0XHRwIHtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDAgMjBweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRwIHtcblx0XHRcdFx0XHRtYXJnaW46IDAgMCAxNnB4O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMS41O1xuXG5cdFx0XHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYubGFyZ2Uge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYuc21hbGwge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5hbHJlYWR5LXB1cmNoYXNlZCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0XHRcdGNvbG9yOiAjY2NjO1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGRpdi5qY29uZmlybS1idXR0b25zIHtcblxuXHRcdFx0XHQuYWxyZWFkeS1wdXJjaGFzZWQge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdFx0XHRjb2xvcjogI2FhYTtcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0cGFkZGluZy10b3A6IDIwcHg7XG5cblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5kaXNjb3VudC1ub3RlIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRtYXJnaW46IDMwcHggMCAwO1xuXG5cdFx0XHRcdHAge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmYWZmYWM7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIC0zMHB4O1xuXHRcdFx0XHRcdHBhZGRpbmc6IDI0cHggNjBweCAyMHB4O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRcdFx0XHRjb2xvcjogIzRkNGQ0ZDtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6ICdcXGYwNTgnO1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdFx0Zm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lO1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMjZweDtcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDVweCA2cHg7XG5cdFx0XHRcdFx0XHR0ZXh0LXJlbmRlcmluZzogYXV0bztcblx0XHRcdFx0XHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRcdFx0XHRcdFx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRcdHRvcDogLTIwcHg7O1xuXHRcdFx0XHRcdFx0cmlnaHQ6IDUwJTtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogLTE4cHg7XG5cdFx0XHRcdFx0XHRjb2xvcjogIzNhYmMwMTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRcdGNvbG9yOiAjM2FiYzAxO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0Y29sb3I6ICNhYWE7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMTJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpbnB1dFt0eXBlPXRleHRdIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiA5OSU7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkNmQ2ZDY7XG5cdFx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdG1hcmdpbjogMjBweCBhdXRvIDAgYXV0bztcblx0XHRcdH1cblxuXHRcdFx0I3dwZm9ybXMtZW1iZWQtc2hvcnRjb2RlIHtcblx0XHRcdFx0bWFyZ2luOiAyMHB4IDA7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdFx0XHRwYWRkaW5nOiA4cHggNXB4O1xuXHRcdFx0fVxuXG5cdFx0XHQjd3Bmb3Jtcy1lbWJlZC1zaG9ydGNvZGU6ZGlzYWJsZWQge1xuXHRcdFx0XHRjb2xvcjogIzMzMztcblx0XHRcdH1cblxuXHRcdFx0YnV0dG9uLmJ0bi1jb25maXJtIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdG91dGxpbmU6IG5vbmU7XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGRhcmtvcmFuZ2U7XG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkZGFya29yYW5nZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuZXJyb3Ige1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0fVxuXG5cdFx0XHQud3Bmb3Jtcy1lcnJvciB7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNlYmNjZDEgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0Lmpjb25maXJtLXRpdGxlLWMgLmpjb25maXJtLWljb24tYyB7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdC1tcy10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdFx0dHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGZvbnQtc2l6ZTogNDVweCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5jaG9pY2VzIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0aW5wdXRbdHlwZT10ZXh0XS5jaG9pY2VzX19pbnB1dCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIEFsZXJ0IHN0eWxlcy5cbi53cGZvcm1zLWFkbWluLXBhZ2Uge1xuXG5cdC53cGZvcm1zLWFsZXJ0IHtcblx0XHRwYWRkaW5nOiAxNnB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDE4cHg7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0XHRoNCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46IDAgMCAxNXB4IDA7XG5cblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYud3Bmb3Jtcy1hbGVydC1ub21hcmdpbiB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0Ji53cGZvcm1zLWFsZXJ0LXNtYWxsIHtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHR9XG5cblx0XHQmLndwZm9ybXMtYWxlcnQtc3VjY2VzcyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjZDZlOWM2O1xuXHRcdFx0Y29sb3I6ICMzYzc2M2Q7XG5cdFx0fVxuXG5cdFx0Ji53cGZvcm1zLWFsZXJ0LWluZm8ge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcblx0XHRcdGJvcmRlci1jb2xvcjogI2JjZThmMTtcblx0XHRcdGNvbG9yOiAjMzE3MDhmO1xuXHRcdH1cblxuXHRcdCYud3Bmb3Jtcy1hbGVydC13YXJuaW5nIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG5cdFx0XHRib3JkZXItY29sb3I6ICNmYWViY2M7XG5cdFx0XHRjb2xvcjogIzhhNmQzYjtcblx0XHR9XG5cblx0XHQmLndwZm9ybXMtYWxlcnQtZGFuZ2VyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG5cdFx0XHRib3JkZXItY29sb3I6ICNlYmNjZDE7XG5cdFx0XHRjb2xvcjogI2E5NDQ0Mjtcblx0XHR9XG5cdH1cbn0iLCIvLyBGbGFnIGljb25zLlxuLndwZm9ybXMtZmxhZyB7XG5cdHdpZHRoOiAxNnB4O1xuXHRoZWlnaHQ6IDE2cHg7XG5cdGJhY2tncm91bmQ6dXJsKC4uL2ltYWdlcy9mbGFncy5wbmcpIG5vLXJlcGVhdDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hZCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggMH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWFlIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYWYge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hZyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggMH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWFpIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYWwge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hbSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hbyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hcyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hdCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hdSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hdyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1heiB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJhIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJiIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJkIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJlIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJmIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJnIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJoIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1iaSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYmoge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ibiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xNnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYm8ge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1icyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xNnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYnQge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1idyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ieSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ieiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jYSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jZCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jZiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jZyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY2gge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMzJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWNpIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jayB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY2wge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMzJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWNtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY28ge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMzJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWNyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY3Uge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY3Yge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY3kge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY3oge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZGUge2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZGoge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZGsge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWRtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTQ4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1kbyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZHoge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWVjIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTQ4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1lZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZWcge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWVoIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTQ4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1lciB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWVzIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWV0IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWZpIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWZqIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWZtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWZvIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWZyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1nYSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC02NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ2Ige2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWdkIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1nZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC02NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ2cge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWdoIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1naSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC02NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ2wge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1nbSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1nbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ncCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ncSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1nciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ndCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ndSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ3cge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtODBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWd5IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1oayB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaG4ge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtODBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWhyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1odCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaHUge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtODBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWlkIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaWUge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaWwge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaW0ge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaW4ge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaXEge2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaXIge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaXMge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWl0IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTk2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1qZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctam0ge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWpvIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTk2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1qcCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWcta2Uge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWtnIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTk2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1raCB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1raSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWcta20ge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWtuIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1rcCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWcta3Ige2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWt3IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1reSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWt6IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbGEge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1sYiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWxjIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbGkge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1sayB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWxyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbHMge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbHQge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWx1IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1sdiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbHkge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1hIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tYyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbWQge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1nIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbWgge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tayB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1sIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbW0ge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1vIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1xIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbXMge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW10IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tdSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbXYge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW13IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbXgge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1teSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW16IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbmEge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1uYyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW5lIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbmcge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1uaSB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ubCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbm8ge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW5wIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1uciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbnoge2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW9tIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1wYSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXBlIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcGYge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1wZyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXBoIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcGsge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1wbCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXByIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcHMge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcHQge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXB3IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1weSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcWEge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXJlIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ybyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcnMge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ydSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXJ3IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc2Ege2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zYiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNjIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc2Qge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNnIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNpIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zayB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc2wge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc28ge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc3Qge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zdiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXN5IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc3oge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10YyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXRkIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdGcge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10aCB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10aiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdGwge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXRtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10biB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdG8ge2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXRyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10dCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXR2IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdHcge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10eiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXVhIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdWcge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy11cyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXV5IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdXoge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdmEge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXZjIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy12ZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdmcge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXZpIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy12biB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdnUge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy13cyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXllIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctemEge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy16bSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXp3IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTIyNHB4fVxuIiwiLy8gSGVhZGVyIHN0eWxlcy5cblxuI3dwZm9ybXMtaGVhZGVyLXRlbXAge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IC0xcHg7XG5cdGxlZnQ6IDIwcHg7XG5cdHJpZ2h0OiAyMHB4O1xuXHR6LWluZGV4OiA5OTtcbn1cblxuI3dwZm9ybXMtaGVhZGVyIHtcblx0Ym9yZGVyLXRvcDogM3B4IHNvbGlkICRvcmFuZ2U7XG5cdHBhZGRpbmc6IDIycHggMjBweDtcblxuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbjogMDtcblx0XHRtYXgtd2lkdGg6IDIzNXB4O1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG5cdFx0XHRtYXgtd2lkdGg6IDIwMHB4O1xuXHRcdH1cblx0fVxufVxuIiwiLy8gUGFnZSB0aXRsZSBhbmQgdGFicyBzdHlsZXMuXG4ud3Bmb3Jtcy1hZG1pbi13cmFwIHtcblxuXHQvLyBUaXRsZSBhcmVhLlxuXHQucGFnZS10aXRsZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRtYXJnaW46IDAgMCAyMHB4IDA7XG5cdFx0cGFkZGluZzogMTVweCAyMHB4O1xuXG5cdFx0LmFkZC1uZXctaDIge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDI4cHg7XG5cdFx0fVxuXHR9XG59XG5cbi8vIFRhYiBuYXZpZ2F0aW9uLlxuLndwZm9ybXMtYWRtaW4tdGFicyB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdG1hcmdpbjogMCAwIDIwcHggMDtcblx0cGFkZGluZzogMCAyMHB4O1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRvdmVyZmxvdzogYXV0bztcblx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdGxpIHtcblx0XHRtYXJnaW46IDAgMzBweCAwIDA7XG5cdFx0cGFkZGluZzogMDtcblx0XHRmbG9hdDogbGVmdDtcblxuXHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdGNvbG9yOiAjNjY2O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwYWRkaW5nOiAyMHB4IDAgMThweCAwO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmZmY7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjOTk5O1xuXHRcdFx0fVxuXG5cdFx0XHQmLmFjdGl2ZSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJG9yYW5nZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8vIEdlbmVyYWwgYWRtaW4gc3R5bGluZy5cblxuLy8gQ29yZSBhZG1pbiBzdHlsZSBvdmVycmlkZXMuXG4jd3Bjb250ZW50IHtcblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuXHRcdHBhZGRpbmctdG9wOiA0NnB4O1xuXHR9XG59XG5cbiN3cGJvZHkge1xuXHRAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG59XG5cbi8vIFRoaXMgY2xhc3MgaXMgYXV0byBhcHBsaWVkIHRvIF9hbGxfIFdQRm9ybXMgYWRtaW4gcGFnZXMvc2NyZWVucy5cbi53cGZvcm1zLWFkbWluLXBhZ2Uge1xuXG5cdC8vIFRoaXMgaXMgaGlkZGVuIG9uIGxvYWQsIHRoZW4gbWFkZSB2aXNpYmxlIHdpdGggSlMsIHRvXG5cdC8vIHByZXZlbnQgaXQgZnJvbSBcImp1bXBpbmdcIi5cblx0I3NjcmVlbi1tZXRhLWxpbmtzLFxuXHQjc2NyZWVuLW1ldGEge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQvLyBSZXNwb25zaXZlIHZpZGVvIGNvbnRhaW5lciwgcmVwbGFjZXMgSlMgbWV0aG9kLlxuXHQudmlkZW8tY29udGFpbmVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZy1ib3R0b206IDU2LjElO1xuXHRcdC8vIHBhZGRpbmctdG9wOiAzMHB4O1xuXHRcdGhlaWdodDogMDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG5cblx0LnZpZGVvLWNvbnRhaW5lciBpZnJhbWUsXG5cdC52aWRlby1jb250YWluZXIgb2JqZWN0LFxuXHQudmlkZW8tY29udGFpbmVyIGVtYmVkIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cblx0Ly8gRmFuY3kgZmlsZSB1cGxvYWQuXG5cdC53cGZvcm1zLWZpbGUtdXBsb2FkIHtcblxuXHRcdGlucHV0W3R5cGU9ZmlsZV0ge1xuXHRcdFx0d2lkdGg6IDAuMXB4O1xuXHRcdFx0aGVpZ2h0OiAwLjFweDtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0ei1pbmRleDogLTE7XG5cdFx0fVxuXG5cdFx0bGFiZWwge1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXG5cdFx0aW5wdXRbdHlwZT1maWxlXTpmb2N1cyArIGxhYmVsLFxuXHRcdGlucHV0W3R5cGU9ZmlsZV0uaGFzLWZvY3VzICsgbGFiZWwge1xuXHRcdFx0b3V0bGluZTogMXB4IGRvdHRlZCAjMDAwO1xuXHRcdFx0b3V0bGluZTogLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIGF1dG8gNXB4O1xuXHRcdH1cblxuXHRcdC5mbGQge1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGNvbG9yOiAjMzMzO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdHBhZGRpbmc6IDdweCAxMnB4O1xuXHRcdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXHRcdFx0d2lkdGg6IDQwMHB4O1xuXHRcdFx0bWluLWhlaWdodDogMzVweDtcblxuXHRcdFx0LnBsYWNlaG9sZGVyIHtcblx0XHRcdFx0Y29sb3I6ICNjY2M7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0c3Ryb25nIC5mYSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDhweDtcblx0XHR9XG5cdH1cblxuXHQvLyBHZW5yaWMgY2xhc3MgZm9yIGhpZGluZyBkaXNwbGF5O1xuXHQud3Bmb3Jtcy1oaWRlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Ly8gUGxhY2Vob2xkZXIgaDEgZm9yIGFkbWluIG5vdGljZXMuXG5cdC53cGZvcm1zLWgxLXBsYWNlaG9sZGVyIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Ly8gSGlkZSBub3RpY2VzIG9uIGxvYWQgdG8gcHJldmVudCBqdW1waW5nLiBKUyB3aWxsIHJldmVhbCB0aGVtLlxuXHQubm90aWNlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi8vIEFkbWluIHdyYXAgLSBjb250YWlucyBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgaGVhZGVyLlxuLndwZm9ybXMtYWRtaW4td3JhcCB7XG5cblx0bWFyZ2luOiAwO1xuXG5cdC5ub3RpY2Uge1xuXHRcdG1hcmdpbi1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLy8gQWRtaW4gY29udGVudC5cbi53cGZvcm1zLWFkbWluLWNvbnRlbnQge1xuXHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHR9XG5cblx0JjphZnRlciB7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0Y29udGVudDogXCIgXCI7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdH1cbn1cblxuLndwZm9ybXMtY2xlYXIge1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0fVxuXG5cdCY6YWZ0ZXIge1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHR9XG59XG5cbi53cGZvcm1zLWFkbWluLWNvbHVtbnMge1xuXG5cdCYgPiBkaXZbY2xhc3MqPVwiLWNvbHVtbi1cIl0ge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHR9XG5cblx0LndwZm9ybXMtYWRtaW4tY29sdW1uLTIwIHt3aWR0aDogMjAlfVxuXHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tMzMge3dpZHRoOiAzMy4zMzMzMyV9XG5cdC53cGZvcm1zLWFkbWluLWNvbHVtbi00MCB7d2lkdGg6IDQwJX1cblx0LndwZm9ybXMtYWRtaW4tY29sdW1uLTUwIHt3aWR0aDogNTAlfVxuXHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tNjAge3dpZHRoOiA2MCV9XG5cdC53cGZvcm1zLWFkbWluLWNvbHVtbi04MCB7d2lkdGg6IDgwJX1cblxuXHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tbGFzdCB7ZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnR9XG5cblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRjbGVhcjogYm90aDtcblx0fVxufVxuIiwiLy8gRm9ybSBPdmVydmlldyAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtb3ZlcnZpZXdcbiN3cGZvcm1zLW92ZXJ2aWV3IHtcblxuXHQvLyBSZW1vdmUgdGhlIHRvcCBtYXJnaW4gc28gaXQgZGlzcGxheXMgMjBweCBiZXR3ZWVuIHRoZSBoZWFkZXIgYXJlYVxuXHQvLyBhbmQgdGhlIGNvbnRlbnQsIGNvbnNpc3RlbnQgd2l0aCBvdXIgb3RoZXIgYWRtaW4gcGFnZXMuXG5cdC50YWJsZW5hdi50b3Age1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cblxuXHQvLyBTZXQgY2VydGFpbiBjb2x1bW4gd2lkdGhzLlxuXHQud3AtbGlzdC10YWJsZSB7XG5cblx0XHQuY29sdW1uLWlkIHtcblx0XHRcdHdpZHRoOiAzMHB4O1xuXHRcdH1cblxuXHRcdC5jb2x1bW4tZW50cmllcyB7XG5cdFx0XHR3aWR0aDogNzBweDtcblx0XHR9XG5cblx0XHQuY29sdW1uLXNob3J0Y29kZSB7XG5cdFx0XHR3aWR0aDogMTUwcHg7XG5cdFx0fVxuXG5cdFx0LmNvbHVtbi1jcmVhdGVkIHtcblx0XHRcdHdpZHRoOiAxNDVweDtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIEVudHJpZXMgU2luZ2xlIChEZXRhaWxzKSAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtZW50cmllcyZ2aWV3PWRldGFpbHNcbiN3cGZvcm1zLWVudHJpZXMtc2luZ2xlIHtcblxuXHQjcG9zdHN0dWZmIHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0Ly8gTWV0YWJveGVzIGFyZSBub3QgbW92YWJsZSBzbyBkb24ndCBsZXQgdGhlIHVzZXIgdGhpbmsgc28uXG5cdC5wb3N0Ym94IC5obmRsZSB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQvLyBFbnRyeSBuYXZpZ2F0aW9uIC0gbmV4dC9wcmV2LlxuXHQud3Bmb3Jtcy1lbnRyeS1uYXZpZ2F0aW9uIHtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI5cHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nLXRvcDogMnB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDFweDtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0LmFkZC1uZXctaDIge1xuXHRcdFx0dG9wOiBhdXRvO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogNHB4IDBweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdH1cblxuXHRcdFx0LmRhc2hpY29ucyB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHR3aWR0aDogMjhweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDI5cHg7XG5cdFx0XHR9XG5cblx0XHRcdCYuaW5hY3RpdmUge1xuXHRcdFx0XHRvcGFjaXR5OiAwLjU7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZW50cnktbmF2aWdhdGlvbi10ZXh0IHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1lbnRyeS1jdXJyZW50IHtcblx0XHRcdHRvcDogYXV0bztcblx0XHRcdG1hcmdpbjogMCAtNXB4IDAgLTNweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHBhZGRpbmc6IDRweCAxMHB4O1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcblx0XHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyOXB4O1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IGNlbnRlcjtcblx0XHR9XG5cblx0fVxuXG5cdC8vIEVudHJ5IGZpZWxkcyBtZXRhYm94LlxuXHQjd3Bmb3Jtcy1lbnRyeS1maWVsZHMge1xuXG5cdFx0aDIuaG5kbGUge1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXG5cdFx0XHQuZGFzaGljb25zIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHRoZWlnaHQ6IDE2cHg7XG5cdFx0XHRcdHdpZHRoOiAxNnB4O1xuXHRcdFx0XHRtYXJnaW46IDRweCA0cHggMCAwO1xuXHRcdFx0XHRjb2xvcjogJG9yYW5nZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQubm8tZmllbGRzIHtcblx0XHRcdHBhZGRpbmc6IDEycHg7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0Lmluc2lkZSB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRwIHtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHQud3Bmb3Jtcy1lbnRyeS1maWVsZC1uYW1lIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ViZjNmYjtcblx0XHRcdFx0cGFkZGluZzogOHB4IDEycHg7XG5cdFx0XHR9XG5cblx0XHRcdC53cGZvcm1zLWVudHJ5LWZpZWxkLXZhbHVlIHtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRcdFx0cGFkZGluZzogOHB4IDEycHg7XG5cdFx0XHR9XG5cblx0XHRcdC5lbXB0eSAud3Bmb3Jtcy1lbnRyeS1maWVsZC12YWx1ZSB7XG5cdFx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdFx0Y29sb3I6ICM5OTk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZW1wdHktZmllbGQtdG9nZ2xlIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdHBhZGRpbmc6IDVweCAwIDA7XG5cdFx0fVxuXHR9XG5cblx0Ly8gRW50cnkgTm90ZXMgbWV0YWJveC5cblx0I3dwZm9ybXMtZW50cnktbm90ZXMge1xuXG5cdFx0Lmluc2lkZSB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblxuXHRcdC53cGZvcm1zLWVudHJ5LW5vdGVzLW5ldyB7XG5cdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdH1cblxuXHRcdGZvcm0ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQuYnRucyB7XG5cdFx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRcdHBhZGRpbmc6IDhweCAwO1xuXHRcdH1cblxuXHRcdC5uby1ub3RlcyB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiA0cHggMTBweCA4cHg7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZW50cnktbm90ZXMtc2luZ2xlIHtcblx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2UzZTFlMztcblxuXHRcdFx0cDpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHQmLmV2ZW4ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLWVudHJ5LW5vdGVzLWJ5bGluZSB7XG5cdFx0XHRjb2xvcjogIzg4ODtcblx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cblx0XHRcdC5zZXAge1xuXHRcdFx0XHRjb2xvcjogI2RkZDtcblx0XHRcdH1cblxuXHRcdFx0Lm5vdGVzLXVzZXIge1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHR9XG5cblx0XHRcdC5ub3RlLWRlbGV0ZSB7XG5cdFx0XHRcdGNvbG9yOiAjYTAwO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0Y29sb3I6IHJlZDtcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBFbnRyeSBEZXRhaWxzLCBBY3Rpb25zLCBhbmQgUGF5bWVudHMuXG5cdCN3cGZvcm1zLWVudHJ5LWRldGFpbHMgLmluc2lkZSxcblx0I3dwZm9ybXMtZW50cnktcGF5bWVudCAuaW5zaWRlLFxuXHQjd3Bmb3Jtcy1lbnRyeS1hY3Rpb25zIC5pbnNpZGUge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0LndwZm9ybXMtZW50cnktZGV0YWlscy1tZXRhLFxuXHQud3Bmb3Jtcy1lbnRyeS1hY3Rpb25zLW1ldGEgIHtcblx0XHRwYWRkaW5nOiA2cHggMCAwO1xuXHR9XG5cblx0LndwZm9ybXMtZW50cnktZGV0YWlscy1tZXRhIHAsXG5cdC53cGZvcm1zLWVudHJ5LXBheW1lbnQtbWV0YSBwLFxuXHQud3Bmb3Jtcy1lbnRyeS1hY3Rpb25zLW1ldGEgcCB7XG5cdFx0cGFkZGluZzogNnB4IDEwcHggOHB4O1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LXBheW1lbnQtbWV0YSB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LXBheW1lbnQtbWV0YSBwIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcblx0XHRwYWRkaW5nOiAxMHB4O1xuXHR9XG5cblx0LndwZm9ybXMtZW50cnktcGF5bWVudC1tZXRhIHA6bGFzdC1vZi10eXBlIHtcblx0XHRib3JkZXItYm90dG9tOiAwO1xuXHR9XG5cblx0LndwZm9ybXMtZW50cnktZGV0YWlscy1tZXRhIHN0cm9uZyxcblx0LndwZm9ybXMtZW50cnktYWN0aW9ucy1tZXRhIHN0cm9uZyB7XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LWRldGFpbHMtbWV0YSAuZGFzaGljb25zLFxuXHQud3Bmb3Jtcy1lbnRyeS1hY3Rpb25zLW1ldGEgLmRhc2hpY29ucyB7XG5cdFx0cGFkZGluZzogMCAycHggMCAwO1xuXHRcdGNvbG9yOiAjODI4NzhBO1xuXHRcdHRvcDogLTFweDtcblx0XHRsZWZ0OiAtMXB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblxuXHQjd3Bmb3Jtcy1lbnRyeS1kZXRhaWxzIC5zdWJtaXRkZWxldGUge1xuXHRcdGNvbG9yOiAjYTAwO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRwYWRkaW5nOiAxcHggMnB4O1xuXHR9XG5cblx0I3dwZm9ybXMtZW50cnktZGV0YWlscyAuc3VibWl0ZGVsZXRlOmhvdmVyIHtcblx0XHRjb2xvcjogcmVkO1xuXHR9XG5cblx0LndwZm9ybXMtZW50cnktYWN0aW9ucy1tZXRhIGEge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LWFjdGlvbnMtbWV0YSBhOmhvdmVyIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0fVxuXG5cdC8vIEVudHJ5IExvY2F0aW9uLlxuXHQjd3Bmb3Jtcy1lbnRyeS1nZW9sb2NhdGlvbiB7XG5cblx0XHQuaW5zaWRlIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0dWwge1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdG92ZXJmbG93OiBhdXRvO1xuXG5cdFx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZ2VvbG9jYXRpb24tbWV0YSB7XG5cdFx0XHR3aWR0aDogODVweDtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2VlZTtcblx0XHRcdHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDEycHg7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZ2VvbG9jYXRpb24tdmFsdWUge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0cGFkZGluZzogMTBweCAxMnB4IDEwcHggMjBweDtcblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1mbGFnIHtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcblx0XHRcdG1hcmdpbi1yaWdodDogNHB4O1xuXHRcdH1cblx0fVxufVxuIiwiLy8gRW50cmllcyBMaXN0IC0gYWRtaW4ucGhwP3BhZ2U9d3Bmb3Jtcy1lbnRyaWVzJnZpZXc9bGlzdFxuI3dwZm9ybXMtZW50cmllcy1saXN0IHtcblxuXHQuZm9ybS1kZXRhaWxzIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMTVweDtcblx0XHRtYXJnaW46IDAgMCAxMHB4O1xuXG5cdFx0LmZvcm0tZGV0YWlscy1zdWIge1xuXHRcdFx0Y29sb3I6ICM5OTk7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtc2l6ZTogMTBweDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRtYXJnaW46IDAgMCA4cHggMDtcblx0XHR9XG5cblx0XHQuZm9ybS1kZXRhaWxzLXRpdGxlIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8MTIwMHB4XCIpIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmZvcm0tc2VsZWN0b3Ige1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQudG9nZ2xlIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0XHRjb2xvcjogIzQ0NDtcblx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXG5cdFx0XHRcdCY6aG92ZXIsXG5cdFx0XHRcdCYuYWN0aXZlIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlM2UzO1xuXHRcdFx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuZm9ybS1saXN0IHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDJweCA4cHggMCByZ2JhKDAsMCwwLDAuMSk7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAyN3B4O1xuXHRcdFx0XHRsZWZ0OiAtMTA4cHg7XG5cdFx0XHRcdHdpZHRoOiAyMzBweDtcblx0XHRcdFx0cGFkZGluZzogMTBweCAwO1xuXHRcdFx0XHR6LWluZGV4OiA5OTkxO1xuXG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiAtMTBweDtcblx0XHRcdFx0XHRsZWZ0OiAxMTBweDtcblx0XHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdFx0XHRib3JkZXItd2lkdGg6IDAgOHB4IDEwcHggOHB4O1xuXHRcdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR1bCB7XG5cdFx0XHRcdG1heC1oZWlnaHQ6IDE5NnB4O1xuXHRcdFx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDVweCAxNXB4O1xuXHRcdFx0XHRcdFx0Y29sb3I6ICM0NDQ7XG5cblx0XHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5mb3JtLWRldGFpbHMtYWN0aW9ucyB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPDEyMDBweFwiKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHRhIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdG1hcmdpbjogMCAxMnB4IDAgMDtcblxuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0bWFyZ2luOiAwXG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuZGFzaGljb25zIHtcblx0XHRcdFx0XHR3aWR0aDogMTZweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDE2cHg7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gU2VhcmNoLlxuXHQuc2VhcmNoLWJveCB7XG5cdFx0LndwZm9ybXMtZm9ybS1zZWFyY2gtYm94LWZpZWxkIHtcblx0XHRcdG1heC13aWR0aDogMTgwcHg7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0bWFyZ2luOiAwIDJweCAwIDA7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZm9ybS1zZWFyY2gtYm94LWNvbXBhcmlzb24ge1xuXHRcdFx0bWF4LXdpZHRoOiA5MHB4O1xuXHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHRcdG1hcmdpbjogMCAycHggMCAwO1xuXHRcdH1cblxuXHRcdC53cGZvcm1zLWZvcm0tc2VhcmNoLWJveC10ZXJtIHtcblx0XHRcdGhlaWdodDogMjhweDtcblx0XHRcdG1hcmdpbjogMCAycHggMCAwO1xuXHRcdH1cblx0fVxuXG5cdC8vIEZpbHRlcmluZy5cblx0LndwZm9ybXMtZmlsdGVyLWRhdGUge1xuXG5cdFx0LndwZm9ybXMtZmlsdGVyLWRhdGUtc2VsZWN0b3Ige1xuXHRcdFx0aGVpZ2h0OiAyOHB4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRtYXgtd2lkdGg6IDIxMHB4O1xuXHRcdH1cblxuXHRcdGJ1dHRvbiB7XG5cdFx0XHRtYXJnaW46IDFweCA4cHggMCAwO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHR9XG5cdH1cblxuXHQvLyBXUCBUYWJsZSBzdHlsaW5nLlxuXHQud3AtbGlzdC10YWJsZSB7XG5cblx0XHQubmV3LWVudHJpZXMtbm90aWZpY2F0aW9uIHRkIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRhIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0cGFkZGluZzogMTBweDtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuY29sdW1uLWluZGljYXRvcnMge1xuXHRcdFx0d2lkdGg6IDM1cHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdGE6Zm9jdXMge1xuXHRcdFx0XHQtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmNvbHVtbi1pbmRpY2F0b3JzIC5kYXNoaWNvbnMge1xuXHRcdFx0d2lkdGg6IDE0cHg7XG5cdFx0XHRoZWlnaHQ6IDE0cHg7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRtYXJnaW4tdG9wOiAzcHg7XG5cdFx0fVxuXG5cdFx0LmluZGljYXRvci1zdGFyIC5kYXNoaWNvbnMge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA2cHg7XG5cdFx0fVxuXG5cdFx0LmluZGljYXRvci1zdGFyIHtcblx0XHRcdGNvbG9yOiAjZTRlNGU0O1xuXG5cdFx0XHQmOmhvdmVyLFxuXHRcdFx0Ji51bnN0YXIge1xuXHRcdFx0XHRjb2xvcjogJG9yYW5nZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuaW5kaWNhdG9yLXJlYWQge1xuXHRcdFx0Y29sb3I6ICM5ZWRlODQ7XG5cblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmLnVucmVhZCB7XG5cdFx0XHRcdGNvbG9yOiAjZTRlNGU0O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5jb2x1bW4tZGF0ZSB7XG5cdFx0XHR3aWR0aDogMTUwcHg7XG5cdFx0fVxuXG5cdFx0LmNvbHVtbi1zdGF0dXMge1xuXHRcdFx0d2lkdGg6IDEyMHB4O1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGhlaWdodDogMTJweDtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdG1hcmdpbjogMCAwIDAgM3B4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5jb2x1bW4tcGF5bWVudF90b3RhbCB7XG5cdFx0XHR3aWR0aDogMTAwcHg7XG5cdFx0fVxuXG5cdFx0LmNvbHVtbi1hY3Rpb25zIHtcblx0XHRcdHdpZHRoOiAxMDBweDtcblx0XHR9XG5cblx0XHQuc2VwIHtcblx0XHRcdGNvbG9yOiAjZGRkO1xuXHRcdH1cblxuXHRcdC5kZWxldGU6aG92ZXIge1xuXHRcdFx0Y29sb3I6IHJlZDtcblx0XHR9XG5cdH1cblxuXHQjd3Bmb3Jtcy1lbnRyaWVzLXRhYmxlLWVkaXQtY29sdW1ucyB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGNvbG9yOiAjY2NjO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogIzY2Njtcblx0XHR9XG5cdH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzgycHgpIHtcblxuXHQud3Bmb3Jtcy1hZG1pbi1jb250ZW50IHtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0fVxuXG5cdC53cC1saXN0LXRhYmxlIHtcblx0XHRtYXJnaW46IDAgLTEwcHggMCAtMTBweDtcblx0XHR3aWR0aDogMTAwdnc7XG5cdFx0dGFibGUtbGF5b3V0OiBhdXRvO1xuXHR9XG5cblx0LndwLWxpc3QtdGFibGUuZW50cmllcyB7XG5cblx0XHQuY29sdW1uLWluZGljYXRvcnMge1xuXHRcdFx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQuaW5kaWNhdG9ycyB7XG5cdFx0XHQuaW5kaWNhdG9yLXN0YXIge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdFx0LmluZGljYXRvci1yZWFkIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR0cjpub3QoLmlubGluZS1lZGl0LXJvdyk6bm90KC5uby1pdGVtcykgdGQuY29sdW1uLXByaW1hcnkge1xuXHRcdFx0aGVpZ2h0OiA4cHg7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0ei1pbmRleDogKzE7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG5cblx0XHQudG9nZ2xlLXJvdyB7XG5cdFx0XHRyaWdodDogNXB4O1xuXHRcdFx0dG9wOiAxNXB4O1xuXHRcdH1cblxuXHRcdHRyOm5vdCguaW5saW5lLWVkaXQtcm93KTpub3QoLm5vLWl0ZW1zKSB0ZC5jb2x1bW4tcHJpbWFyeSt0ZCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdHRyOm5vdCguaW5saW5lLWVkaXQtcm93KTpub3QoLm5vLWl0ZW1zKSB0ZC5jb2x1bW4tcHJpbWFyeX50ZCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcblx0XHRcdG1pbi13aWR0aDogNTB2dztcblx0XHR9XG5cblxuXHR9XG5cblx0cC5zZWFyY2gtYm94IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0d2lkdGg6IGF1dG87XG5cdH1cblxuXHRpbnB1dFt0eXBlPWNoZWNrYm94XSwgaW5wdXRbdHlwZT1yYWRpb10ge1xuXHRcdGhlaWdodDogMTZweDtcblx0XHR3aWR0aDogMTZweDtcblx0fVxuXG59IiwiLy8gV2VsY29tZSBBY3RpdmF0aW9uIC0gaW5kZXgucGhwP3BhZ2U9d3Bmb3Jtcy1nZXR0aW5nLXN0YXJ0ZWRcbiN3cGZvcm1zLXdlbGNvbWUge1xuXHRib3JkZXItdG9wOiAzcHggc29saWQgJG9yYW5nZTtcblx0Y29sb3I6ICM1NTU7XG5cdHBhZGRpbmctdG9wOiAxMTBweDtcblxuXHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRwYWRkaW5nLXRvcDogNjRweDtcblx0fVxuXG5cdCosXG5cdCo6OmJlZm9yZSxcblx0Kjo6YWZ0ZXIge1xuXHRcdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHQtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdC5jb250YWluZXIge1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdG1heC13aWR0aDogNzIwcHg7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC5ibG9jayB7XG5cdFx0cGFkZGluZzogNDBweDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0cGFkZGluZzogMjBweDtcblx0XHR9XG5cdH1cblxuXHRpbWcge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuXHRoMSB7XG5cdFx0Y29sb3I6ICMyMjI7XG5cdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW46IDAgMCAxNnB4IDA7XG5cdH1cblxuXHRoNSB7XG5cdFx0Y29sb3I6ICMyMjI7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdG1hcmdpbjogMCAwIDhweCAwO1xuXHR9XG5cblx0aDYge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjY7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdHAge1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRtYXJnaW46IDAgMCAyMHB4IDA7XG5cdH1cblxuXHQuYnV0dG9uLXdyYXAge1xuXHRcdG1heC13aWR0aDogNTkwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG8gMCBhdXRvO1xuXG5cdFx0LmxlZnQge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQucmlnaHQge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdHBhZGRpbmctbGVmdDogMjBweDtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuaW50cm8ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgI2UxZTFlMTtcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZy10b3A6IDQwcHg7XG5cblx0XHQuc3VsbGllIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRib3JkZXI6IDJweCBzb2xpZCAjZTFlMWUxO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0aGVpZ2h0OiAxMTBweDtcblx0XHRcdHdpZHRoOiAxMTBweDtcblx0XHRcdHBhZGRpbmc6IDE4cHggMTRweCAwIDE0cHg7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IC01OHB4O1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC01NXB4O1xuXHRcdH1cblxuXHRcdC52aWRlby10aHVtYm5haWwge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHR9XG5cblx0XHQuYnV0dG9uLXdyYXAge1xuXHRcdFx0bWFyZ2luLXRvcDogMjVweDtcblx0XHR9XG5cdH1cblxuXHQuZmVhdHVyZXMge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgI2UxZTFlMTtcblx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nLXRvcDogMjBweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMjBweDtcblxuXHRcdC5mZWF0dXJlLWxpc3Qge1xuXHRcdFx0bWFyZ2luLXRvcDogNjBweDtcblx0XHR9XG5cblx0XHQuZmVhdHVyZS1ibG9jayB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMzVweDtcblx0XHRcdG92ZXJmbG93OiBhdXRvO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXG5cdFx0XHQmLmZpcnN0IHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblx0XHRcdFx0Y2xlYXI6IGJvdGg7XG5cblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmLmxhc3Qge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRtYXgtd2lkdGg6IDQ2cHg7XG5cdFx0XHR9XG5cblx0XHRcdGg1IHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDY4cHhcblx0XHRcdH1cblxuXHRcdFx0cCB7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDY4cHhcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYnV0dG9uLXdyYXAge1xuXHRcdFx0bWFyZ2luLXRvcDogMjVweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cdH1cblxuXHQudXBncmFkZS1jdGEge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgI2UxZTFlMTtcblx0XHRib3JkZXItdG9wOiAwO1xuXHRcdGJvcmRlci1ib3R0b206IDA7XG5cdFx0Y29sb3I6ICNmZmY7XG5cblx0XHRoMiB7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdG1hcmdpbjogMCAwIDMwcHggMDtcblx0XHR9XG5cblx0XHR1bCB7XG5cdFx0XHRkaXNwbGF5OiAtbXMtZmxleDtcblx0XHRcdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHQtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDhweCAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHRcdC5kYXNoaWNvbnMge1xuXHRcdFx0XHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQubGVmdCB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiA2Ni42NjY2NjYlO1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQucmlnaHQge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0d2lkdGg6IDMzLjMzMzMzMyU7XG5cdFx0XHRwYWRkaW5nOiAyMHB4IDAgMCAyMHB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHR9XG5cblx0XHRcdGgyIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNTU1O1xuXHRcdFx0XHRcdHBhZGRpbmc6IDAgMTVweCAxMnB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5wcmljZSB7XG5cdFx0XHRcdHBhZGRpbmc6IDI2cHggMDtcblxuXHRcdFx0XHQuYW1vdW50IHtcblx0XHRcdFx0XHRmb250LXNpemU6IDQ4cHg7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0Y29udGVudDogJyQnO1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0dG9wOiAtOHB4O1xuXHRcdFx0XHRcdFx0bGVmdDogLTE2cHg7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnRlcm0ge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblxuXHR9XG5cblx0LnRlc3RpbW9uaWFscyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAjZTFlMWUxO1xuXHRcdGJvcmRlci10b3A6IDA7XG5cdFx0cGFkZGluZzogMjBweCAwO1xuXG5cdFx0LnRlc3RpbW9uaWFsLWJsb2NrIHtcblx0XHRcdG1hcmdpbjogNTBweCAwIDAgMDs7XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1heC13aWR0aDogMTAwcHg7XG5cdFx0XHRcdGJveC1zaGFkb3c6IDAgMCAxOHB4IHJnYmEoMCwwLDAsLjIpO1xuXG5cdFx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHRcdHdpZHRoOiA2NXB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHAge1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDEycHggMTQwcHg7XG5cblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDEwMHB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZm9vdGVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuXHRcdGJvcmRlcjogMnB4IHNvbGlkICNlMWUxZTE7XG5cdFx0Ym9yZGVyLXRvcDogMDtcblx0XHRib3JkZXItcmFkaXVzOiAwIDAgMnB4IDJweDtcblx0fVxuXG5cdC8vIENoYW5nZXMgZm9yIHBhaWQgdmVyc2lvbi5cblx0Ji5wcm8ge1xuXG5cdFx0LmZlYXR1cmVzIHtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkICNlMWUxZTE7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXHRcdH1cblxuXHRcdC51cGdyYWRlLFxuXHRcdC5mb290ZXIge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQudGVzdGltb25pYWxzIHtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkICNlMWUxZTE7XG5cdFx0fVxuXHR9XG59XG5cbi5kYXNoYm9hcmRfcGFnZV93cGZvcm1zLWdldHRpbmctc3RhcnRlZCB7XG5cblx0LnZpZGVvLWNvbnRhaW5lciB7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgI2UxZTFlMTtcblx0fVxuXG5cdC8vIEhpZGUgYWRtaW4gZm9vdGVyLlxuXHQjd3Bmb290ZXIsXG5cdGRpdi5ub3RpY2Uge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuIiwiLy8gQWRkb25zIExpc3QgLSBhZG1pbi5waHA/cGFnZT13cGZvcm1zLWFkZG9uc1xuI3dwZm9ybXMtYWRtaW4tYWRkb25zIHtcblxuXHQqLFxuXHQqOjpiZWZvcmUsXG5cdCo6OmFmdGVyIHtcblx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblxuXHQuYWRkb25zLWNvbnRhaW5lciB7XG5cdFx0bWFyZ2luLWxlZnQ6IC0yMHB4O1xuXHRcdG1hcmdpbi1yaWdodDogLTIwcHg7XG5cdH1cblxuXHQudW5sb2NrLW1zZyB7XG5cdFx0cGFkZGluZzogMCAyMHB4O1xuXHRcdG1hcmdpbi10b3A6IC0yMHB4O1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG5cblx0I3dwZm9ybXMtYWRtaW4tYWRkb25zLXNlYXJjaCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdGNvbG9yOiAjMzMzO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0cGFkZGluZzogN3B4IDEycHg7XG5cdFx0bWFyZ2luOiAtM3B4IDEwcHggMCAwO1xuXHRcdHdpZHRoOiAyMDBweDtcblx0XHRtaW4taGVpZ2h0OiAzNXB4O1xuXHRcdGZsb2F0OiByaWdodDtcblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjYmJiO1xuXHRcdH1cblx0fVxuXG5cdC5hZGRvbi1jb250YWluZXIge1xuXHRcdHBhZGRpbmc6IDAgMjBweDtcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogMzMuMzMzMzMzJTtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPDEyNTBweFwiKSB7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdH1cblx0fVxuXG5cdGg0IHtcblx0XHRmb250LXNpemU6IDE3cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0fVxuXG5cdC5hZGRvbi1pdGVtIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdG1hcmdpbjogMCAwIDQwcHggMDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0bWFyZ2luOiAwIDBcblx0XHR9XG5cblx0XHRpbWcge1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2VlZTtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWF4LXdpZHRoOiA3NXB4O1xuXHRcdH1cblxuXHRcdGg1IHtcblx0XHRcdG1hcmdpbjogMCAwIDEwcHggMTAwcHg7XG5cdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46IDAgMCAwIDEwMHB4O1xuXHRcdH1cblxuXHRcdC5kZXRhaWxzIHtcblx0XHRcdHBhZGRpbmc6IDMwcHggMjBweDtcblxuXHRcdH1cblxuXHRcdC5hY3Rpb25zIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcblx0XHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdC5tc2cge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHR6LWluZGV4OiA5OTtcblx0XHRcdFx0cGFkZGluZzogMjBweDtcblx0XHRcdFx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdFx0XHRcdGRpc3BsYXk6IC1tb3otYm94O1xuXHRcdFx0XHRkaXNwbGF5OiAtbXMtZmxleGJveDtcblx0XHRcdFx0ZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHQtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRcdC1tcy1hbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuXHRcdFx0XHQmLnN1Y2Nlc3Mge1xuXHRcdFx0XHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmVycm9yIHtcblx0XHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnN0YXR1cyB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHBhZGRpbmctdG9wOiA4cHg7XG5cblx0XHRcdC5zdGF0dXMtaW5hY3RpdmUge1xuXHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0fVxuXG5cdFx0XHQuc3RhdHVzLWRvd25sb2FkIHtcblx0XHRcdFx0Y29sb3I6ICM2NjY7XG5cdFx0XHR9XG5cblx0XHRcdC5zdGF0dXMtYWN0aXZlIHtcblx0XHRcdFx0Y29sb3I6ICRncmVlbjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQudXBncmFkZS1idXR0b24ge1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0d2lkdGg6IDE0MHB4O1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdHBhZGRpbmc6IDhweCA1cHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmFjdGlvbi1idXR0b24ge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXG5cdFx0XHRidXR0b24ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0d2lkdGg6IDE0MHB4O1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdHBhZGRpbmc6IDhweCA1cHg7XG5cblx0XHRcdFx0Jjpob3Zlcixcblx0XHRcdFx0Ji5sb2FkaW5nIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTllOWU5O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmZhIHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDhweDtcblxuXHRcdFx0XHRcdCYuZmEtc3Bpbm5lciB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5zdGF0dXMtYWN0aXZlIHtcblxuXHRcdFx0XHRcdC5mYSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogJGdyZWVuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuc3RhdHVzLWluYWN0aXZlIHtcblxuXHRcdFx0XHRcdC5mYSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuc3RhdHVzLWRvd25sb2FkIHtcblxuXHRcdFx0XHRcdC5mYSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogIzk5OTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmRpc2FibGVkIHtcblx0XHRcdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmxvYWRpbmcge1xuXG5cdFx0XHRcdFx0LmZhIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAjNjY2O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLy8gQWJvdXQgV1BGb3JtcyAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtYWJvdXRcblxuJHBhZGRpbmctZGVmYXVsdDogMzBweDtcbiRib3JkZXI6IDFweCBzb2xpZCAjREREREREO1xuXG4vLyBAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcbi8vIFx0d2lkdGg6IDUwJTtcbi8vIH1cblxuLypcbid4cy1waG9uZSc6IDMyMHB4LFxuXHQncGhvbmUnOiA2MDBweCxcblx0J2lwYWQnOiA3NjhweCxcblx0J3RhYmxldCc6IDc4MnB4LFxuXHQnZGVza3RvcCc6IDk2MHB4LFxuKi9cblxuI3dwZm9ybXMtYWRtaW4tYWJvdXQge1xuXG5cdCosICo6OmJlZm9yZSwgKjo6YWZ0ZXIge1xuXHRcdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHQtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24ge1xuXHRcdG1hcmdpbjogMCAyMHB4IDIwcHg7XG5cdFx0cGFkZGluZzogJHBhZGRpbmctZGVmYXVsdDtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdGJvcmRlcjogJGJvcmRlcjtcblx0XHRsaW5lLWhlaWdodDogMjtcblxuXHRcdGgxLCBoMiwgaDMsIGg0LCBoNSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0XHRsaW5lLWhlaWdodDogMS42O1xuXHRcdH1cblxuXHRcdGgyIHtcblx0XHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHR9XG5cblx0XHRoMyB7XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXHRcdFx0Y29sb3I6ICMyMzI4MkM7XG5cdFx0fVxuXG5cdFx0dWwsIHAge1xuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHRcdFx0Ji5iaWdnZXJ7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdH1cblx0XHRcdCYuc21hbGxlciB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdH1cblxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRociB7XG5cdFx0XHRtYXJnaW46ICRwYWRkaW5nLWRlZmF1bHQgMDtcblx0XHR9XG5cblx0XHRmaWd1cmUge1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblxuXHRcdFx0ZmlnY2FwdGlvbiB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdFx0Y29sb3I6ICM4ODg4ODg7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDVweDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogaW5pdGlhbDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tNDAge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAkcGFkZGluZy1kZWZhdWx0LzI7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cdFx0LndwZm9ybXMtYWRtaW4tY29sdW1uLTYwIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLWRlZmF1bHQvMjtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHVsLmxpc3QtcGxhaW4ge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR1bC5saXN0LWZlYXR1cmVzIHtcblx0XHRcdGxpIC5mYSB7XG5cdFx0XHRcdGNvbG9yOiAjMmE5YjM5O1xuXHRcdFx0XHRtYXJnaW46IDAgOHB4IDAgMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZmEtc3RhciB7Y29sb3I6IGdvbGR9XG5cblx0XHQubm8tbWFyZ2luIHttYXJnaW46IDAgIWltcG9ydGFudH1cblx0XHQubm8tcGFkZGluZyB7cGFkZGluZzogMCAhaW1wb3J0YW50fVxuXHRcdC5jZW50ZXJlZCB7dGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnR9XG5cdH1cblxuXHQud3Bmb3Jtcy1hZG1pbi1hYm91dC1zZWN0aW9uLWZpcnN0LWZvcm0ge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYWRtaW4tYWJvdXQtc2VjdGlvbi1maXJzdC1mb3JtLXRleHQge1xuXHRcdFx0ZmxleDogMTtcblx0XHRcdHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLWRlZmF1bHQ7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHRmbGV4OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24tZmlyc3QtZm9ybS12aWRlbyB7XG5cdFx0XHRpZnJhbWUge1xuXHRcdFx0XHRib3JkZXI6ICRib3JkZXI7XG5cdFx0XHR9XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQud3Bmb3Jtcy1hZG1pbi1hYm91dC1zZWN0aW9uLWhlcm8ge1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQud3Bmb3Jtcy1hZG1pbi1hYm91dC1zZWN0aW9uLWhlcm8tbWFpbixcblx0XHQud3Bmb3Jtcy1hZG1pbi1hYm91dC1zZWN0aW9uLWhlcm8tZXh0cmEge1xuXHRcdFx0cGFkZGluZzogJHBhZGRpbmctZGVmYXVsdDtcblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1hZG1pbi1hYm91dC1zZWN0aW9uLWhlcm8tZXh0cmEge1xuXG5cdFx0XHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tNTAge1xuXG5cdFx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYWRtaW4tYWJvdXQtc2VjdGlvbi1oZXJvLW1haW4ge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZBRkFGQTtcblx0XHRcdGJvcmRlci1ib3R0b206ICRib3JkZXI7XG5cblx0XHRcdCYubm8tYm9yZGVyIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0XHRcdH1cblxuXHRcdFx0cCB7XG5cdFx0XHRcdGNvbG9yOiAjNjY2O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGgzLmNhbGwtdG8tYWN0aW9uIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IC0xMHB4O1xuXHRcdH1cblxuXHRcdHNwYW4ucHJpY2UtMjAtb2ZmIHtcblx0XHRcdGNvbG9yOiAjNkFCMjU1O1xuXHRcdH1cblx0fVxuXG5cdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24tc3F1YXNoZWQge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHQmOm5vdCg6bGFzdC1vZi10eXBlKSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdH1cblx0fVxuXG5cdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24tcG9zdCB7XG5cblx0XHRoMiB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAtMTBweDtcblx0XHR9XG5cblx0XHRoMyB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHRcdH1cblxuXHRcdHA6bGFzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYWRtaW4tY29sdW1uLTIwIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdFx0XHR3aWR0aDogYXV0bztcblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0d2lkdGg6IDI3MHB4O1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0d2lkdGg6IDIwJTtcblx0XHRcdFx0aW1nIHtcblx0XHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tODAge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHRcdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDIwcHggLSAyNzBweCk7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHR3aWR0aDogODAlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24tcG9zdC1saW5rIHtcblx0XHRcdHBhZGRpbmc6IDEwcHggJHBhZGRpbmctZGVmYXVsdC8yO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0RGNzczOTtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0bWFyZ2luLXRvcDogMTVweDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNCODVBMUI7XG5cdFx0XHR9XG5cblx0XHRcdC5mYSB7XG5cdFx0XHRcdGNvbG9yOiAjRURCQTlFO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogOHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24tdGFibGUge1xuXG5cdFx0dGFibGUge1xuXHRcdFx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuXHRcdFx0dHIge1xuXHRcdFx0XHR0ZCB7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogJGJvcmRlcjtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6ICRib3JkZXI7XG5cdFx0XHRcdFx0cGFkZGluZzogJHBhZGRpbmctZGVmYXVsdDtcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG5cdFx0XHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB0ZCB7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRwIHtcblx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiAxNXB4IGF1dG87XG5cdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgNnB4O1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdFx0Ji5mZWF0dXJlcy1mdWxsIHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLWRlZmF1bHQ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9hYm91dC9pY29uLWZ1bGwuc3ZnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQmLmZlYXR1cmVzLW5vbmUge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogJHBhZGRpbmctZGVmYXVsdDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Fib3V0L2ljb24tbm9uZS5zdmcpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCYuZmVhdHVyZXMtcGFydGlhbCB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAkcGFkZGluZy1kZWZhdWx0O1xuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0zcHggMDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDIzcHggYXV0bztcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Fib3V0L2ljb24tcGFydGlhbC5zdmcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYWRtaW4tYWJvdXQtc2VjdGlvbi1oZXJvLW1haW4ge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGgzIHtcblx0XHRcdFx0cGFkZGluZzogJHBhZGRpbmctZGVmYXVsdCAkcGFkZGluZy1kZWZhdWx0ICRwYWRkaW5nLWRlZmF1bHQgJHBhZGRpbmctZGVmYXVsdCoyO1xuXHRcdFx0fVxuXHRcdFx0LndwZm9ybXMtYWRtaW4tY29sdW1uLTMzOmZpcnN0LWNoaWxkIGgzIHtcblx0XHRcdFx0cGFkZGluZzogJHBhZGRpbmctZGVmYXVsdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQjd3Bmb3Jtcy1hZG1pbi1hZGRvbnMge1xuXHRcdHBhZGRpbmc6IDAgJHBhZGRpbmctZGVmYXVsdDtcblxuXHRcdC5hZGRvbi1jb250YWluZXIge1xuXHRcdFx0cGFkZGluZzogMCAxMHB4O1xuXHRcdH1cblxuXHRcdC5hZGRvbi1pdGVtIHtcblxuXHRcdFx0LmRldGFpbHMge1xuXHRcdFx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRwYWRkaW5nOiAxMHB4O1xuXG5cdFx0XHRcdCZbc3JjKj1cIi1taVwiXSB7XG5cdFx0XHRcdFx0cGFkZGluZzogMTNweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuYWN0aW9uLWJ1dHRvbiAuYnV0dG9uIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDI2cHg7XG5cdFx0XHRcdGhlaWdodDogMjhweDtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwIDEwcHggMXB4O1xuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZjdmN2Y3O1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDFweCAwICNjY2NjY2M7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cblx0XHRcdFx0Jjpob3ZlciwgJjpmb2N1cyAge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICNmYWZhZmE7XG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjOTk5O1xuXHRcdFx0XHRcdGNvbG9yOiAjMjMyODJkO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5idXR0b24tcHJpbWFyeSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogIzAwODViYTtcblx0XHRcdFx0XHRib3JkZXItY29sb3I6ICMwMDczYWEgIzAwNjc5OSAjMDA2Nzk5O1xuXHRcdFx0XHRcdGJveC1zaGFkb3c6IDAgMXB4IDAgIzAwNjc5OTtcblx0XHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0XHR0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAjMDA2Nzk5LCAxcHggMCAxcHggIzAwNjc5OSwgMCAxcHggMXB4ICMwMDY3OTksIC0xcHggMCAxcHggIzAwNjc5OTtcblxuXHRcdFx0XHRcdCY6aG92ZXIsICY6Zm9jdXMge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogIzAwOGVjMjtcblx0XHRcdFx0XHRcdGJvcmRlci1jb2xvcjogIzAwNjc5OTtcblx0XHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5mYS1zcGlubmVyIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuYnV0dG9uLXNlY29uZGFyeSB7XG5cdFx0XHRcdFx0Y29sb3I6ICM1NTU7XG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjY2NjY2NjO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG5cdFx0XHRcdFx0Ym94LXNoYWRvdzogMCAxcHggMCAjY2NjY2NjO1xuXG5cdFx0XHRcdFx0Jjpob3ZlciwgJjpmb2N1cyAge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogI2ZhZmFmYTtcblx0XHRcdFx0XHRcdGJvcmRlci1jb2xvcjogIzk5OTtcblx0XHRcdFx0XHRcdGNvbG9yOiAjMjMyODJkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuZGlzYWJsZWQge1xuXHRcdFx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLy8gU2V0dGluZ3MgLSBhZG1pbi5waHA/cGFnZT13cGZvcm1zLXNldHRpbmdzXG4vLyBUb29scyAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtdG9vbHNcbi53cGZvcm1zLWFkbWluLXNldHRpbmdzIHtcblxuXHQqLFxuXHQqOjpiZWZvcmUsXG5cdCo6OmFmdGVyIHtcblx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblxuXHQvLyBTZXR0aW5nIHJvd3MsIGVnIGZpZWxkIHJvdy5cblx0LndwZm9ybXMtc2V0dGluZy1yb3cge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU0O1xuXHRcdHBhZGRpbmc6IDMwcHggMDtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMztcblxuXHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG5cdFx0XHRwYWRkaW5nOiAyMHB4IDA7XG5cdFx0fVxuXG5cdFx0Ly8gU2VjdGlvbiBoZWFkaW5nLlxuXHRcdCYuc2VjdGlvbi1oZWFkaW5nIHtcblx0XHRcdHBhZGRpbmc6IDIwcHggMDtcblxuXHRcdFx0Ji5uby1kZXNjIHtcblx0XHRcdFx0aDQge1xuXHRcdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQud3Bmb3Jtcy1zZXR0aW5nLWZpZWxkIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDEwMDBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBUb29scyBmdWxsIHdpZHRoIGZpZWxkcy5cblx0XHQmLnRvb2xzIHtcblxuXHRcdFx0cCxcblx0XHRcdHA6Zmlyc3Qtb2YtdHlwZXtcblx0XHRcdFx0bWFyZ2luOiAwIDAgMTZweCAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENoZWNrYm94IHNldHRpbmdzIGZpZWxkLlxuXHRcdCYud3Bmb3Jtcy1zZXR0aW5nLXJvdy1jaGVja2JveCB7XG5cblx0XHRcdGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1hcmdpbjogMXB4IDAgMCAwO1xuXHRcdFx0fVxuXG5cdFx0XHQuZGVzYyB7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDAgMzBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBMaWNlbnNlIHNldHRpbmdzIGZpZWxkLlxuXHRcdCYud3Bmb3Jtcy1zZXR0aW5nLXJvdy1saWNlbnNlIHtcblxuXHRcdFx0LndwZm9ybXMtc2V0dGluZy1sYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA4cHg7XG5cdFx0XHR9XG5cblx0XHRcdHAudHlwZSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDEycHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gVGV4dCBzZXR0aW5ncyBmaWVsZC5cblx0XHQmLndwZm9ybXMtc2V0dGluZy1yb3ctdGV4dCB7XG5cblx0XHRcdC53cGZvcm1zLXNldHRpbmctbGFiZWwge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogOHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFNlbGVjdCBzZXR0aW5ncyBmaWVsZC5cblx0XHQmLndwZm9ybXMtc2V0dGluZy1yb3ctc2VsZWN0IHtcblxuXHRcdFx0LndwZm9ybXMtc2V0dGluZy1sYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA4cHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUmFkaW8gc2V0dGluZ3MgZmllbGQuXG5cdFx0Ji53cGZvcm1zLXNldHRpbmctcm93LXJhZGlvIHtcblxuXHRcdFx0LndwZm9ybXMtc2V0dGluZy1maWVsZCB7XG5cblx0XHRcdFx0aW5wdXRbdHlwZT1yYWRpb10ge1xuXHRcdFx0XHRcdG1hcmdpbjogLTNweCAxMHB4IDAgMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGxhYmVsIHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDMwcHg7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQvLyBFbWFpbCBUZW1wbGF0ZSBzZXR0aW5nIGZpZWxkLlxuXHRcdCYjd3Bmb3Jtcy1zZXR0aW5nLXJvdy1lbWFpbC10ZW1wbGF0ZSB7XG5cblx0XHRcdC53cGZvcm1zLXNldHRpbmctZmllbGQge1xuXG5cdFx0XHRcdGxhYmVsOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogXCIgXCI7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0d2lkdGg6IDE1NXB4O1xuXHRcdFx0XHRcdGhlaWdodDogMTgwcHg7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDAgMTBweCAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Lm9wdGlvbi1kZWZhdWx0OmJlZm9yZSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9zZXR0aW5ncy1lbWFpbC1odG1sLnBuZykgY2VudGVyIGNlbnRlcjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5vcHRpb24tbm9uZTpiZWZvcmUge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvc2V0dGluZ3MtZW1haWwtcGxhaW50ZXh0LnBuZykgY2VudGVyIGNlbnRlcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFJhZGlvIHNldHRpbmdzIGZpZWxkLlxuXHRcdCYud3Bmb3Jtcy1zZXR0aW5nLXJvdy1pbWFnZSB7XG5cblx0XHRcdC53cGZvcm1zLXNldHRpbmctZmllbGQge1xuXG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDAgMjBweCAwO1xuXHRcdFx0XHRcdG1heC13aWR0aDogNDAwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBDb2xvciBwaWNrZXIgc2V0dGluZ3MgZmllbGQuXG5cdFx0Ji53cGZvcm1zLXNldHRpbmctcm93LWNvbG9yIHtcblxuXHRcdFx0LndwZm9ybXMtY29sb3ItcGlja2VyIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiA0MHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQubWluaWNvbG9ycy1pbnB1dC1zd2F0Y2gge1xuXHRcdFx0XHR0b3A6IDdweDtcblx0XHRcdFx0bGVmdDogN3B4O1xuXHRcdFx0XHRoZWlnaHQ6IDIxcHg7XG5cdFx0XHRcdHdpZHRoOiAyMXB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gR2VuZXJhbCBlbGVtZW50cy5cblx0XHRoNCB7XG5cdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0bWFyZ2luOiAwIDAgNnB4IDA7XG5cdFx0fVxuXG5cdFx0aDMge1xuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdG1hcmdpbjogMCAwIDIwcHggMDtcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbjogMTJweCAwIDA7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4zO1xuXG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRtYXJnaW46IDhweCAwIDA7XG5cdFx0XHR9XG5cblx0XHRcdCYuZGVzYyB7XG5cdFx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdFx0Y29sb3I6ICM2NjY7XG5cdFx0XHR9XG5cblx0XHRcdCYuZGlzY291bnQtbm90ZSB7XG5cdFx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdFx0Y29sb3I6ICM2NjY7XG5cblx0XHRcdFx0c3Ryb25nIHtcblx0XHRcdFx0XHRjb2xvcjogZ3JlZW47XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBGb3JtIGVsZW1lbnRzLlxuXHRcdGlucHV0W3R5cGU9dGV4dF0sXG5cdFx0aW5wdXRbdHlwZT1wYXNzd29yZF0ge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdFx0Y29sb3I6ICMzMzM7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0cGFkZGluZzogN3B4IDEycHg7XG5cdFx0XHRtYXJnaW46IDAgMTBweCAwIDA7XG5cdFx0XHR3aWR0aDogNDAwcHg7XG5cdFx0XHRtaW4taGVpZ2h0OiAzNXB4O1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxkZXNrdG9wXCIpIHtcblx0XHRcdFx0d2lkdGg6IDMwMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjYmJiO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHRleHRhcmVhIHtcblxuXHRcdH1cblxuXHRcdGJ1dHRvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0fVxuXG5cdFx0LmNob2ljZXNqcy1zZWxlY3Qtd3JhcCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1heC13aWR0aDogNDAwcHg7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGRlc2t0b3BcIikge1xuXHRcdFx0XHR3aWR0aDogMzAwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnByb2dyZXNzLWJhciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJG9yYW5nZTtcblx0XHRcdGhlaWdodDogMzBweDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0bWFyZ2luOiAwIDAgMTZweCAwO1xuXG5cdFx0XHQmLmNvbXBsZXRlIHtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGdyZWVuO1xuXG5cdFx0XHRcdC5iYXIge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcblxuXHRcdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0Y29udGVudDogbm9uZTtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5iYXIge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0YmFja2dyb3VuZDogJG9yYW5nZTtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC41cyBlYXNlLWluLW91dDtcblx0XHRcdFx0LW1vei10cmFuc2l0aW9uOiB3aWR0aCAwLjVzIGVhc2UtaW4tb3V0O1xuXHRcdFx0XHQtby10cmFuc2l0aW9uOiB3aWR0aCAwLjVzIGVhc2UtaW4tb3V0O1xuXHRcdFx0XHR0cmFuc2l0aW9uOiB3aWR0aCAwLjVzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHRcdEAtd2Via2l0LWtleWZyYW1lcyBwcm9ncmVzcyB7XG5cdFx0XHRcdFx0dG8geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA2MHB4IDA7IH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdEAtbW96LWtleWZyYW1lcyBwcm9ncmVzcyB7XG5cdFx0XHRcdCAgdG8geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA2MHB4IDA7IH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBrZXlmcmFtZXMgcHJvZ3Jlc3Mge1xuXHRcdFx0XHQgIHRvIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNjBweCAwOyB9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdFx0LXdlYmtpdC1hbmltYXRpb246IHByb2dyZXNzIDFzIGxpbmVhciBpbmZpbml0ZTtcblx0XHRcdFx0XHQtbW96LWFuaW1hdGlvbjogcHJvZ3Jlc3MgMXMgbGluZWFyIGluZmluaXRlO1xuXHRcdFx0XHRcdGFuaW1hdGlvbjogcHJvZ3Jlc3MgMXMgbGluZWFyIGluZmluaXRlO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDYwcHggNjBweDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgtNDVkZWcsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIFJvdyBsYWJlbCAobGVmdCkuXG5cdC53cGZvcm1zLXNldHRpbmctbGFiZWwge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiAyMDBweDtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMTVweDtcblx0XHR9XG5cblx0XHRsYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0fVxuXHR9XG5cblx0Ly8gUm93IGZpZWxkIChyaWdodCkuXG5cdC53cGZvcm1zLXNldHRpbmctZmllbGQge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbjogMCAwIDAgMjAwcHg7XG5cdFx0bWF4LXdpZHRoOiA4MDBweDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHR9XG5cblx0cC5zdWJtaXQge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAyNXB4IDA7XG5cdH1cblxuXHQvLyBHZW5lcmljIGluZm8vY29kZSBpbmZvcm1hdGlvbi5cblx0LmluZm8tYXJlYSxcblx0LnByZS1lcnJvciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiAxMDAwcHg7XG5cdFx0aGVpZ2h0OiA0NTBweDtcblx0XHRmb250LWZhbWlseTogTWVubG8sTW9uYWNvLG1vbm9zcGFjZTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cdFx0d2hpdGUtc3BhY2U6IHByZTtcblx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRwYWRkaW5nOiAyMHB4O1xuXHR9XG5cblx0LnByZS1lcnJvciB7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdG1heC1oZWlnaHQ6IDI1MHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cblxuXHQvLyBDaGVja2JveCBtdWx0aS1zZWxlY3QgY29sdW1ucy5cblx0LmNoZWNrYm94LW11bHRpc2VsZWN0LWNvbHVtbnMge1xuXHRcdG1heC13aWR0aDogNjAwcHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIi5cIjtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDA7XG5cdFx0XHRmb250LXNpemU6IDA7XG5cdFx0XHRjbGVhcjogYm90aDtcblx0XHRcdG1pbi1oZWlnaHQ6IDA7XG5cdFx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0fVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogXCJcXGYwZWNcIjtcblx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0Zm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMjBweC8xIEZvbnRBd2Vzb21lO1xuXHRcdFx0dGV4dC1yZW5kZXJpbmc6IGF1dG87XG5cdFx0XHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0XHRcdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDEzMHB4O1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0bWFyZ2luOiAwIDAgMCAtMTBweDtcblx0XHR9XG5cblx0XHQuaGVhZGVyIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwIDAgNXB4IDA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuXG5cdFx0LmZpcnN0LWNvbHVtbixcblx0XHQuc2Vjb25kLWNvbHVtbiB7XG5cdFx0XHR3aWR0aDogNDUlO1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0fVxuXG5cdFx0LmZpcnN0LWNvbHVtbiB7XG5cblx0XHR9XG5cblx0XHQuc2Vjb25kLWNvbHVtbiB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cblx0XHRcdHVsIHtcblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHR1bCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGhlaWdodDogMjUwcHg7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggI2VlZSBzb2xpZDtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cblx0XHRcdFx0bGFiZWwge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDMycHg7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuXHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcblx0XHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXFxmMGM4XCI7XG5cdFx0XHRcdFx0XHRjb2xvcjogI2RkZDtcblx0XHRcdFx0XHRcdGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE2cHgvMSBGb250QXdlc29tZTtcblx0XHRcdFx0XHRcdHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuXHRcdFx0XHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdFx0XHRcdFx0XHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0dG9wOiAxMnB4O1xuXHRcdFx0XHRcdFx0bGVmdDogMTBweDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLmNoZWNrZWQge1xuXHRcdFx0XHRcdFx0b3BhY2l0eTogMC42O1xuXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXFxmMTRhXCI7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aW5wdXQge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYWxsIHtcblx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0bWFyZ2luOiAxMHB4IDAgMDtcblx0XHR9XG5cdH1cblxuXHQvLyBPdGhlciBJbXBvcnRlcnMuIChUb29scylcblx0I3dwZm9ybXMtaW1wb3J0ZXItYW5hbHl6ZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdC5wcm9jZXNzLWNvdW50LFxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdH1cblxuXHRcdC51cGdyYWRlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cblx0XHRcdGg1IHtcblx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRtYXJnaW46IDMwcHggMCAyMHB4IDA7XG5cdFx0XHR9XG5cblx0XHRcdGhyIHtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNDtcblx0XHRcdFx0bWFyZ2luOiA0MHB4IDA7XG5cdFx0XHR9XG5cblx0XHRcdC53cGZvcm1zLWJ0biB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRcdH1cblxuXHRcdFx0dWwge1xuXHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAxNHB4O1xuXG5cdFx0XHRcdFx0Ji5mb3JtIHtcblx0XHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQjd3Bmb3Jtcy1pbXBvcnRlci1wcm9jZXNzIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0LnByb2Nlc3MtY291bnQsXG5cdFx0LnByb2Nlc3MtY29tcGxldGVkIHtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR9XG5cblx0XHQucHJvY2Vzcy1jb21wbGV0ZWQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQuc3RhdHVzIHtcblx0XHRcdG1hcmdpbjogMjBweCAwIDMwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHRcdG1heC1oZWlnaHQ6IDgwMHB4O1xuXHRcdFx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdFx0Lml0ZW0td3JhcCB7XG5cblx0XHRcdH1cblxuXHRcdFx0Lml0ZW0ge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRcdFx0cGFkZGluZzogMjBweDtcblxuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0XHRcdG1hcmdpbjogMTJweCAwIDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1bCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0XHRcdG1hcmdpbjogMTJweCAwIDAgMTZweDtcblxuXHRcdFx0XHRcdGxpIHtcblx0XHRcdFx0XHRcdGxpc3Qtc3R5bGU6IGRpc2M7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnN0YXR1cy1pY29uIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXG5cdFx0XHRcdFx0Ji5mYS1pbmZvLWNpcmNsZSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogIzAwYTBkMlxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYuZmEtY2hlY2sge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICM0NmI0NTBcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAjZmZiOTAwXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ji5mYS10aW1lcyxcblx0XHRcdFx0XHQmLmZhLWV4Y2xhbWF0aW9uLWNpcmNsZSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5uYW1lIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuYWN0aW9ucyB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0XHRcdGZsb2F0OiByaWdodDtcblxuXHRcdFx0XHRcdC5zZXAge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICNkZGQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gTGl0ZSB1cGdyYWRlLlxuXHQuc2V0dGluZ3MtbGl0ZS1jdGF7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGFkYWRhO1xuXHRcdHBhZGRpbmc6IDI1cHggMjBweDtcblx0XHRtYXJnaW46IDEwcHggMCAwIDA7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0LmRpc21pc3Mge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAxMHB4O1xuXHRcdFx0cmlnaHQ6IDEwcHg7XG5cdFx0XHRjb2xvcjogIzY2Njtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHR9XG5cblx0XHRoNSB7XG5cdFx0XHRtYXJnaW46IDAgMCAxNnB4O1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHR9XG5cblx0XHRoNiB7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0bWFyZ2luOiAwIDAgMTZweDtcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdGNvbG9yOiAjNTU1O1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0bWFyZ2luOiAwIDAgMTZweDtcblxuXHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR9XG5cblx0XHRcdGEge1xuXHRcdFx0XHRjb2xvcjogJG9yYW5nZTtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRjb2xvcjogJGRhcmtvcmFuZ2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHR1bCB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwIDAgMnB4IDE2cHg7XG5cdFx0XHRcdGNvbG9yOiAjNTU1O1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogJysnO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHR0b3A6IC0xcHg7XG5cdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5saXN0IHtcblx0XHRcdG1hcmdpbjogMCAwIDE2cHggMDtcblx0XHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdFx0bWF4LXdpZHRoOiA5MDBweDtcblx0XHR9XG5cblx0XHQuZ3JlZW4ge1xuXHRcdFx0Y29sb3I6ICMyMTg5MDA7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdH1cblxuXHRcdC5mYS1zdGFyIHtcblx0XHRcdGNvbG9yOiAjZmY5ODJkO1xuXHRcdH1cblx0fVxufVxuIiwiLy8gSW50ZWdyYXRpb25zIHRhYiBjb250ZW50LlxuLy8gTGVnYWN5IENTUyBhbmQgc2hvdWxkIGJlIGNsZWFuZWQgdXAgd2hlbiB0aW1lIHBlcm1pdHMuXG4jd3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlcnMge1xuXG5cdC53cGZvcm1zLXNldHRpbmdzLXByb3ZpZGVyIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRwYWRkaW5nOiAzMHB4IDA7XG5cblx0XHQmLmZvY3VzLW91dCB7XG5cdFx0XHRvcGFjaXR5OiAwLjQ7XG5cdFx0fVxuXHR9XG5cblx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItaGVhZGVyIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0bWF4LXdpZHRoOiAxMDAwcHg7XG5cdH1cblxuXHQud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1sb2dvIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQuZmEge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRtYXJnaW46IC05cHggMCAwIDA7XG5cdFx0XHRsZWZ0OiAxMHB4O1xuXHRcdFx0Y29sb3I6ICM2NjY7XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0fVxuXG5cdFx0aW1nIHtcblx0XHRcdGJhY2tncm91bmQ6ICNmZmY7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0bWF4LXdpZHRoOiA5MHB4O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW46IDAgMCAwIDQwcHg7XG5cdFx0fVxuXHR9XG5cblx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItaW5mbyB7XG5cdFx0bWFyZ2luOiAwIDAgMCAxNjBweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZzogMjBweCAwIDA7XG5cblx0XHRoMyB7XG5cdFx0XHRtYXJnaW46IDAgMCAxMHB4IDA7XG5cdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdH1cblxuXHRcdC5jb25uZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdGNvbG9yOiAjODNjMTFmO1xuXHRcdFx0d2lkdGg6IDEzNXB4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgIzgzYzExZjtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRcdHBhZGRpbmc6IDhweCAxNHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAyOHB4O1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC5jb25uZWN0ZWQgLndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItaW5mbyAuY29ubmVjdGVkLWluZGljYXRvciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1hY2NvdW50cyB7XG5cdFx0bWFyZ2luOiAwIDAgMCAxNjBweDtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdG1heC13aWR0aDogODQwcHg7XG5cdH1cblxuXHQuZm9jdXMtaW4gLndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItYWNjb3VudHMge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItYWNjb3VudHMtbGlzdCB1bCB7XG5cdFx0cGFkZGluZzogMDtcblx0XHRtYXJnaW46IDA7XG5cblx0XHRsaSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDEwcHggMDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblxuXHRcdFx0JjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG5cdFx0XHR9XG5cblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTZweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRzcGFuLmxhYmVsIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHR9XG5cblx0XHRzcGFuLmRhdGUge1xuXHRcdFx0Y29sb3I6ICM5OTk7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiAzNSU7XG5cdFx0fVxuXG5cdFx0c3Bhbi5yZW1vdmUge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0d2lkdGg6IDE1JTtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0XG5cdFx0fVxuXHR9XG5cblx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItYWNjb3VudHMtY29ubmVjdCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodEJsdWU7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGJsdWU7XG5cblx0XHRpbnB1dFt0eXBlPXRleHRdIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGNvbG9yOiAjMzMzO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwYWRkaW5nOiA3cHggMTJweDtcblx0XHRcdG1hcmdpbjogNXB4IDA7XG5cdFx0XHR3aWR0aDogNDAwcHg7XG5cdFx0XHRtaW4taGVpZ2h0OiAzNXB4O1xuXG5cdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjYmJiO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5mb2N1cy1pbiAud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1hY2NvdW50cy1jb25uZWN0ICB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1hY2NvdW50cy1jb25uZWN0IC5mYSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC53cGZvcm1zLXNldHRpbmdzLXByb3ZpZGVyLWFjY291bnRzLWNvbm5lY3QgcCxcblx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItYWNjb3VudHMgcCB7XG5cdFx0bWFyZ2luOiAwIDAgMTVweCAwO1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0fVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBR0FBOztpQ0FFaUM7QUFxQmpDLEFBQUEsUUFBUSxDQUFjO0VBQ3BCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGFBQWEsRUFqQkssSUFBSTtFQWtCdEIsU0FBUyxFQXJCWSxJQUFJO0NBZ0MxQjs7QUFkRCxBQUlFLFFBSk0sQUFJ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QUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFB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 */
|
3486 |
margin-top: 12px;
|
3487 |
}
|
3488 |
|
3489 |
+
.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-text .wpforms-setting-label, .wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-number .wpforms-setting-label {
|
3490 |
padding-top: 8px;
|
3491 |
}
|
3492 |
|
3574 |
}
|
3575 |
|
3576 |
.wpforms-admin-settings .wpforms-setting-row input[type=text],
|
3577 |
+
.wpforms-admin-settings .wpforms-setting-row input[type=number],
|
3578 |
.wpforms-admin-settings .wpforms-setting-row input[type=password] {
|
3579 |
background-color: #fff;
|
3580 |
border: 1px solid #ddd;
|
3591 |
|
3592 |
@media (max-width: 959px) {
|
3593 |
.wpforms-admin-settings .wpforms-setting-row input[type=text],
|
3594 |
+
.wpforms-admin-settings .wpforms-setting-row input[type=number],
|
3595 |
.wpforms-admin-settings .wpforms-setting-row input[type=password] {
|
3596 |
width: 300px;
|
3597 |
}
|
3598 |
}
|
3599 |
|
3600 |
.wpforms-admin-settings .wpforms-setting-row input[type=text]:focus,
|
3601 |
+
.wpforms-admin-settings .wpforms-setting-row input[type=number]:focus,
|
3602 |
.wpforms-admin-settings .wpforms-setting-row input[type=password]:focus {
|
3603 |
border-color: #bbb;
|
3604 |
}
|
3605 |
|
3606 |
+
.wpforms-admin-settings .wpforms-setting-row input[type=number] {
|
3607 |
+
width: 100px;
|
3608 |
+
}
|
3609 |
+
|
3610 |
.wpforms-admin-settings .wpforms-setting-row button {
|
3611 |
margin-right: 10px;
|
3612 |
}
|
4232 |
font-size: 14px;
|
4233 |
}
|
4234 |
|
4235 |
+
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2Nzcy9hZG1pbi5jc3MiLCJzb3VyY2VzIjpbImFzc2V0cy9zY3NzL2FkbWluLnNjc3MiLCJhc3NldHMvc2Nzcy9fdmFyaWFibGVzLnNjc3MiLCJhc3NldHMvc2Nzcy92ZW5kb3IvcGFydGlhbHMvX2luY2x1ZGUtbWVkaWEuc2NzcyIsImFzc2V0cy9zY3NzL3ZlbmRvci9wYXJ0aWFscy9fY2hvaWNlcy5zY3NzIiwiYXNzZXRzL3Njc3MvYWRtaW4vX2J1dHRvbnMuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19jb25maXJtLnNjc3MiLCJhc3NldHMvc2Nzcy9hZG1pbi9fYWxlcnRzLnNjc3MiLCJhc3NldHMvc2Nzcy9hZG1pbi9fZmxhZ3Muc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19oZWFkZXIuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL190aXRsZS10YWJzLnNjc3MiLCJhc3NldHMvc2Nzcy9hZG1pbi9fZ2VuZXJhbC5zY3NzIiwiYXNzZXRzL3Njc3MvYWRtaW4vX3BhZ2UtZm9ybXMtb3ZlcnZpZXcuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19wYWdlLWVudHJpZXMtc2luZ2xlLnNjc3MiLCJhc3NldHMvc2Nzcy9hZG1pbi9fcGFnZS1lbnRyaWVzLWxpc3Quc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19wYWdlLXdlbGNvbWUuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19wYWdlLWFkZG9ucy5zY3NzIiwiYXNzZXRzL3Njc3MvYWRtaW4vX3BhZ2UtYWJvdXQuc2NzcyIsImFzc2V0cy9zY3NzL2FkbWluL19wYWdlLXNldHRpbmdzLXRvb2xzLnNjc3MiLCJhc3NldHMvc2Nzcy9hZG1pbi9fcGFnZS1zZXR0aW5ncy1pbnRlZ3JhdGlvbnMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBXUEZvcm1zIGFkbWluIHN0eWxlcy5cbi8vIFRoZXNlIHN0eWxlcyBhcmUgbG9hZGVkIG9uIGFsbCBXUEZvcm1zIHJlbGF0ZWQgYWRtaW4gcGFnZXMuXG5cbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3IvcGFydGlhbHMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd2ZW5kb3IvcGFydGlhbHMvY2hvaWNlcyc7XG5cbiRicmVha3BvaW50czogKFxuXHQneHMtcGhvbmUnOiAzMjBweCxcblx0J3Bob25lJzogNjAwcHgsXG5cdCdpcGFkJzogNzY4cHgsXG5cdCd0YWJsZXQnOiA3ODJweCxcblx0J2Rlc2t0b3AnOiA5NjBweCxcbik7XG5cbkBpbXBvcnQgJ2FkbWluL2J1dHRvbnMnO1xuQGltcG9ydCAnYWRtaW4vY29uZmlybSc7XG5AaW1wb3J0ICdhZG1pbi9hbGVydHMnO1xuQGltcG9ydCAnYWRtaW4vZmxhZ3MnO1xuQGltcG9ydCAnYWRtaW4vaGVhZGVyJztcbkBpbXBvcnQgJ2FkbWluL3RpdGxlLXRhYnMnO1xuQGltcG9ydCAnYWRtaW4vZ2VuZXJhbCc7XG5AaW1wb3J0ICdhZG1pbi9wYWdlLWZvcm1zLW92ZXJ2aWV3JztcbkBpbXBvcnQgJ2FkbWluL3BhZ2UtZW50cmllcy1zaW5nbGUnO1xuQGltcG9ydCAnYWRtaW4vcGFnZS1lbnRyaWVzLWxpc3QnO1xuQGltcG9ydCAnYWRtaW4vcGFnZS13ZWxjb21lJztcbkBpbXBvcnQgJ2FkbWluL3BhZ2UtYWRkb25zJztcbkBpbXBvcnQgJ2FkbWluL3BhZ2UtYWJvdXQnO1xuQGltcG9ydCAnYWRtaW4vcGFnZS1zZXR0aW5ncy10b29scyc7XG5AaW1wb3J0ICdhZG1pbi9wYWdlLXNldHRpbmdzLWludGVncmF0aW9ucyc7XG4iLCIkb3JhbmdlOiAjZTI3NzMwO1xuJGRhcmtvcmFuZ2U6ICNiODVhMWI7XG4kZ3JlZW46ICMyYTliMzk7XG4kYmx1ZTogIzBlNmNhZDtcbiRsaWdodEJsdWU6ICNlYmYzZmI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgICAgICAgICBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgSHVnbyBHaXJhdWRlbCAoQGh1Z29naXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG5cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgbGlicmFyeSBwdWJsaWMgY29uZmlndXJhdGlvblxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIGdsb2JhbCBicmVha3BvaW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgYnJlYWtwb2ludCB3aXRoIHRoZSBsYWJlbCBgcGhvbmVgXG4vLy8gICRicmVha3BvaW50czogKCdwaG9uZSc6IDMyMHB4KTtcbi8vL1xuJGJyZWFrcG9pbnRzOiAoXG4gICdwaG9uZSc6IDMyMHB4LFxuICAndGFibGV0JzogNzY4cHgsXG4gICdkZXNrdG9wJzogMTAyNHB4XG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIENyZWF0ZXMgYSBsaXN0IG9mIHN0YXRpYyBleHByZXNzaW9ucyBvciBtZWRpYSB0eXBlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzaW5nbGUgbWVkaWEgdHlwZSAoc2NyZWVuKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJzogJ3NjcmVlbicpO1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIENyZWF0ZXMgYSBzdGF0aWMgZXhwcmVzc2lvbiB3aXRoIGxvZ2ljYWwgZGlzanVuY3Rpb24gKE9SIG9wZXJhdG9yKVxuLy8vICAkbWVkaWEtZXhwcmVzc2lvbnM6IChcbi8vLyAgICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSdcbi8vLyAgKTtcbi8vL1xuJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4gICdzY3JlZW4nOiAnc2NyZWVuJyxcbiAgJ3ByaW50JzogJ3ByaW50JyxcbiAgJ2hhbmRoZWxkJzogJ2hhbmRoZWxkJyxcbiAgJ2xhbmRzY2FwZSc6ICcob3JpZW50YXRpb246IGxhbmRzY2FwZSknLFxuICAncG9ydHJhaXQnOiAnKG9yaWVudGF0aW9uOiBwb3J0cmFpdCknLFxuICAncmV0aW5hMngnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAyZHBweCknLFxuICAncmV0aW5hM3gnOiAnKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMyksIChtaW4tcmVzb2x1dGlvbjogMzUwZHBpKSwgKG1pbi1yZXNvbHV0aW9uOiAzZHBweCknXG4pICFkZWZhdWx0O1xuXG5cbi8vL1xuLy8vIERlZmluZXMgYSBudW1iZXIgdG8gYmUgYWRkZWQgb3Igc3VidHJhY3RlZCBmcm9tIGVhY2ggdW5pdCB3aGVuIGRlY2xhcmluZyBicmVha3BvaW50cyB3aXRoIGV4Y2x1c2l2ZSBpbnRlcnZhbHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcGl4ZWxzIGlzIGRlZmluZWQgYXMgYDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4xMjhweCcpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMTI5cHgpIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIGVtcyBpcyBkZWZpbmVkIGFzIGAwLjAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MjBlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMjAuMDFlbSkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgcmVtcyBpcyBkZWZpbmVkIGFzIGAwLjFgIGJ5IGRlZmF1bHQsIHRvIGJlIHVzZWQgd2l0aCBgZm9udC1zaXplOiA2Mi41JTtgXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+Mi4wcmVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyLjFyZW0pIHt9XG4vLy9cbiR1bml0LWludGVydmFsczogKFxuICAncHgnOiAxLFxuICAnZW0nOiAwLjAxLFxuICAncmVtJzogMC4xLFxuICAnJzogMFxuKSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gRGVmaW5lcyB3aGV0aGVyIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgYXZhaWxhYmxlLCB1c2VmdWwgZm9yIGNyZWF0aW5nIHNlcGFyYXRlIHN0eWxlc2hlZXRzXG4vLy8gZm9yIGJyb3dzZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBtZWRpYSBxdWVyaWVzLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIERpc2FibGVzIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4kaW0tbWVkaWEtc3VwcG9ydDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBicmVha3BvaW50IHRvIGVtdWxhdGUgd2hlbiBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGRpc2FibGVkLiBNZWRpYSBxdWVyaWVzIHRoYXQgc3RhcnQgYXQgb3Jcbi8vLyBpbnRlcmNlcHQgdGhlIGJyZWFrcG9pbnQgd2lsbCBiZSBkaXNwbGF5ZWQsIGFueSBvdGhlcnMgd2lsbCBiZSBpZ25vcmVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgLmZvbyB7XG4vLy8gICAgY29sb3I6IHRvbWF0bztcbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGRvZXMgbm90IGludGVyY2VwdCB0aGUgZGVza3RvcCBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICd0YWJsZXQnO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJyAhZGVmYXVsdDtcblxuLy8vXG4vLy8gU2VsZWN0cyB3aGljaCBtZWRpYSBleHByZXNzaW9ucyBhcmUgYWxsb3dlZCBpbiBhbiBleHByZXNzaW9uIGZvciBpdCB0byBiZSB1c2VkIHdoZW4gbWVkaWEgcXVlcmllc1xuLy8vIGFyZSBub3Qgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYW5kIGNvbnRhaW5zIG9ubHkgYWNjZXB0ZWQgbWVkaWEgZXhwcmVzc2lvbnNcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdzY3JlZW4nKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gICAuZm9vIHtcbi8vLyAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBidXQgY29udGFpbnMgYSBtZWRpYSBleHByZXNzaW9uIHRoYXQgaXMgbm90IGFjY2VwdGVkXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAncmV0aW5hMngnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJywgJ3BvcnRyYWl0JywgJ2xhbmRzY2FwZScpICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQ3Jvc3MtZW5naW5lIGxvZ2dpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuXHRAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuXHRAd2FybiAkbWVzc2FnZTtcblx0JF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcblx0QGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcblx0QGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcblx0ICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuXHQgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuXHQgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuXHQgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuXHRcdCAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG5cdFx0QHJldHVybiBmYWxzZTtcblx0ICB9XG5cdH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuXHQgIEByZXR1cm4gZmFsc2U7XG5cdH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gR2V0IG9wZXJhdG9yIG9mIGFuIGV4cHJlc3Npb25cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBvcGVyYXRvciBmcm9tXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gQW55IG9mIGA+PWAsIGA+YCwgYDw9YCwgYDxgLCBg4omlYCwgYOKJpGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKSB7XG4gIEBlYWNoICRvcGVyYXRvciBpbiAoJz49JywgJz4nLCAnPD0nLCAnPCcsICfiiaUnLCAn4omkJykge1xuXHRAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcblx0ICBAcmV0dXJuICRvcGVyYXRvcjtcblx0fVxuICB9XG5cbiAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cbiAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAkXzogaW0tbG9nKCdObyBvcGVyYXRvciBmb3VuZCBpbiBgI3skZXhwcmVzc2lvbn1gLicpO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IGRpbWVuc2lvbiBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIGB3aWR0aGAgb3IgYGhlaWdodGAgKG9yIHBvdGVudGlhbGx5IGFueXRoaW5nIGVsc2UpXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHBhcnNlZC1kaW1lbnNpb246IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgMCwgJG9wZXJhdG9yLWluZGV4IC0gMSk7XG4gICRkaW1lbnNpb246ICd3aWR0aCc7XG5cbiAgQGlmIHN0ci1sZW5ndGgoJHBhcnNlZC1kaW1lbnNpb24pID4gMCB7XG5cdCRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcblx0JHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG5cdCR2YWx1ZTogdG8tbnVtYmVyKCR2YWx1ZSk7XG4gIH1cblxuICAkaW50ZXJ2YWw6IG1hcC1nZXQoJHVuaXQtaW50ZXJ2YWxzLCB1bml0KCR2YWx1ZSkpO1xuXG4gIEBpZiBub3QgJGludGVydmFsIHtcblx0Ly8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuXHQvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuXHQvLyBmdW5jdGlvbnMgY2Fubm90IGJlIGNhbGxlZCBhbnl3aGVyZSBpbiBTYXNzLCB3ZSBuZWVkIHRvIGhhY2sgdGhlIGNhbGwgaW5cblx0Ly8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcblx0Ly8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuXHQkXzogaW0tbG9nKCdVbmtub3duIHVuaXQgYCN7dW5pdCgkdmFsdWUpfWAuJyk7XG4gIH1cblxuICBAaWYgJG9wZXJhdG9yID09ICc+JyB7XG5cdCR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuXHQkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcblx0QHJldHVybiBtYXAtZ2V0KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pO1xuICB9XG5cbiAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbik7XG4gICRkaW1lbnNpb246IGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG5cbiAgQHJldHVybiAnKCN7JHByZWZpeH0tI3skZGltZW5zaW9ufTogI3skdmFsdWV9KSc7XG59XG5cbi8vL1xuLy8vIFNsaWNlIGAkbGlzdGAgYmV0d2VlbiBgJHN0YXJ0YCBhbmQgYCRlbmRgIGluZGV4ZXNcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdCAtIExpc3QgdG8gc2xpY2Vcbi8vLyBAcGFyYW0ge051bWJlcn0gJHN0YXJ0IFsxXSAtIFN0YXJ0IGluZGV4XG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRlbmQgW2xlbmd0aCgkbGlzdCldIC0gRW5kIGluZGV4XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fSBTbGljZWQgbGlzdFxuLy8vXG5AZnVuY3Rpb24gc2xpY2UoJGxpc3QsICRzdGFydDogMSwgJGVuZDogbGVuZ3RoKCRsaXN0KSkge1xuICBAaWYgbGVuZ3RoKCRsaXN0KSA8IDEgb3IgJHN0YXJ0ID4gJGVuZCB7XG5cdEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG5cdCRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG5cdEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG5cdCRfOiBpbS1sb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gIH1cblxuICAkZmlyc3QtY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAxLCAxKTtcbiAgJHJlc3VsdDogMDtcbiAgJGRpZ2l0czogMDtcbiAgJG1pbnVzOiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpO1xuICAkbnVtYmVyczogKCcwJzogMCwgJzEnOiAxLCAnMic6IDIsICczJzogMywgJzQnOiA0LCAnNSc6IDUsICc2JzogNiwgJzcnOiA3LCAnOCc6IDgsICc5JzogOSk7XG5cbiAgLy8gUmVtb3ZlICsvLSBzaWduIGlmIHByZXNlbnQgYXQgZmlyc3QgY2hhcmFjdGVyXG4gIEBpZiAoJGZpcnN0LWNoYXJhY3RlciA9PSAnKycgb3IgJGZpcnN0LWNoYXJhY3RlciA9PSAnLScpIHtcblx0JHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcblx0JGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuXHRAaWYgbm90IChpbmRleChtYXAta2V5cygkbnVtYmVycyksICRjaGFyYWN0ZXIpIG9yICRjaGFyYWN0ZXIgPT0gJy4nKSB7XG5cdCAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcblx0fVxuXG5cdEBpZiAkY2hhcmFjdGVyID09ICcuJyB7XG5cdCAgJGRpZ2l0czogMTtcblx0fSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuXHQgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpO1xuXHR9IEBlbHNlIHtcblx0ICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG5cdCAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcblx0fVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuXHQkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG5cdCAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcblx0QGNvbnRlbnQ7XG4gIH0gQGVsc2UgaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID4gMCkge1xuXHRAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG5cdCAgLy8gUmVjdXJzaXZlIGNhbGxcblx0ICBAaW5jbHVkZSBtZWRpYShzbGljZSgkY29uZGl0aW9ucywgMikuLi4pIHtcblx0XHRAY29udGVudDtcblx0ICB9XG5cdH1cbiAgfVxufVxuIiwiLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG49ICAgICAgICAgICAgQ2hvaWNlcyAgICAgICAgICAgID1cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qL1xuXG4kY2hvaWNlcy1zZWxlY3RvcjogJ2Nob2ljZXMnICFkZWZhdWx0O1xuJGNob2ljZXMtZm9udC1zaXplLWxnOiAxNnB4ICFkZWZhdWx0O1xuJGNob2ljZXMtZm9udC1zaXplLW1kOiAxNHB4ICFkZWZhdWx0O1xuJGNob2ljZXMtZm9udC1zaXplLXNtOiAxMnB4ICFkZWZhdWx0O1xuJGNob2ljZXMtZ3V0dGVyaW5nOiAyNHB4ICFkZWZhdWx0O1xuJGNob2ljZXMtYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJGNob2ljZXMtYm9yZGVyLXJhZGl1cy1pdGVtOiAzcHggIWRlZmF1bHQ7XG4kY2hvaWNlcy1iZy1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRjaG9pY2VzLWJnLWNvbG9yLWRpc2FibGVkOiAjRUFFQUVBICFkZWZhdWx0O1xuJGNob2ljZXMtYmctY29sb3ItZHJvcGRvd246ICNGRkZGRkYgIWRlZmF1bHQ7XG4kY2hvaWNlcy10ZXh0LWNvbG9yOiAjMzMzMzMzICFkZWZhdWx0O1xuJGNob2ljZXMta2V5bGluZS1jb2xvcjogI0RERERERCAhZGVmYXVsdDtcbiRjaG9pY2VzLXByaW1hcnktY29sb3I6ICRibHVlICFkZWZhdWx0O1xuJGNob2ljZXMtZGlzYWJsZWQtY29sb3I6ICNlYWVhZWEgIWRlZmF1bHQ7XG4kY2hvaWNlcy1oaWdobGlnaHQtY29sb3I6ICRjaG9pY2VzLXByaW1hcnktY29sb3IgIWRlZmF1bHQ7XG4kY2hvaWNlcy1idXR0b24taWNvbi1wYXRoOiAnLi4vaW1hZ2VzJyAhZGVmYXVsdDtcbiRjaG9pY2VzLWJ1dHRvbi1kaW1lbnNpb246IDhweCAhZGVmYXVsdDtcbiRjaG9pY2VzLWJ1dHRvbi1vZmZzZXQ6IDhweCAhZGVmYXVsdDtcblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAkY2hvaWNlcy1ndXR0ZXJpbmc7XG4gIGZvbnQtc2l6ZTogJGNob2ljZXMtZm9udC1zaXplLWxnO1xuICAmOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgfVxuICAmOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICYuaXMtZGlzYWJsZWQge1xuXHQuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2lubmVyLCAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2lucHV0IHtcblx0ICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hvaWNlcy1iZy1jb2xvci1kaXNhYmxlZDtcblx0ICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHQgIHVzZXItc2VsZWN0OiBub25lO1xuXHR9XG5cdC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbSB7IGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgfVxufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1bZGF0YS10eXBlKj1cInNlbGVjdC1vbmVcIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC8vIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faW5uZXIgeyBwYWRkaW5nLWJvdHRvbTogNy41cHg7IH1cbiAgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pbm5lciB7IHBhZGRpbmctYm90dG9tOiAzLjBweDsgfVxuICAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2lucHV0IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdHBhZGRpbmc6IDEwcHggIWltcG9ydGFudDtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjaG9pY2VzLWtleWxpbmUtY29sb3IgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcblx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19idXR0b24ge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJGNob2ljZXMtYnV0dG9uLWljb24tcGF0aCArICcvY3Jvc3MtaW52ZXJzZS5zdmcnKTtcblx0cGFkZGluZzogMDtcblx0YmFja2dyb3VuZC1zaXplOiA4cHg7XG5cdGhlaWdodDogMTAwJTtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDUwJTtcblx0cmlnaHQ6IDA7XG5cdG1hcmdpbi10b3A6IC0xMHB4O1xuXHRtYXJnaW4tcmlnaHQ6IDI1cHg7XG5cdGhlaWdodDogMjBweDtcblx0d2lkdGg6IDIwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDEwZW07XG5cdG9wYWNpdHk6IC41O1xuXHQmOmhvdmVyLCAmOmZvY3VzIHsgb3BhY2l0eTogMTsgfVxuXHQmOmZvY3VzIHsgYm94LXNoYWRvdzogMHB4IDBweCAwcHggMnB4ICRjaG9pY2VzLWhpZ2hsaWdodC1jb2xvcjsgfVxuICB9XG4gICY6YWZ0ZXIge1xuXHRjb250ZW50OiBcIlwiO1xuXHRoZWlnaHQ6IDA7XG5cdHdpZHRoOiAwO1xuXHRib3JkZXItc3R5bGU6IHNvbGlkO1xuXHRib3JkZXItY29sb3I6ICRjaG9pY2VzLXRleHQtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG5cdGJvcmRlci13aWR0aDogNXB4O1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAxMS41cHg7XG5cdHRvcDogNTAlO1xuXHRtYXJnaW4tdG9wOiAtMi41cHg7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG4gICYuaXMtb3BlbjphZnRlciB7XG5cdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGNob2ljZXMtdGV4dC1jb2xvciB0cmFuc3BhcmVudDtcblx0bWFyZ2luLXRvcDogLTcuNXB4O1xuICB9XG4gICZbZGlyPVwicnRsXCJdIHtcblx0JjphZnRlciB7XG5cdCAgbGVmdDogMTEuNXB4O1xuXHQgIHJpZ2h0OiBhdXRvO1xuXHR9XG5cdC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9fYnV0dG9uIHtcblx0ICByaWdodDogYXV0bztcblx0ICBsZWZ0OiAwO1xuXHQgIG1hcmdpbi1sZWZ0OiAyNXB4O1xuXHQgIG1hcmdpbi1yaWdodDogMDtcblx0fVxuICB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfVtkYXRhLXR5cGUqPVwic2VsZWN0LW11bHRpcGxlXCJde1xuXHQmOmFmdGVyIHtcblx0ICBjb250ZW50OiBcIlwiO1xuXHQgIGhlaWdodDogMDtcblx0ICB3aWR0aDogMDtcblx0ICBib3JkZXItc3R5bGU6IHNvbGlkO1xuXHQgIGJvcmRlci1jb2xvcjogJGNob2ljZXMtdGV4dC1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcblx0ICBib3JkZXItd2lkdGg6IDVweDtcblx0ICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cdCAgcmlnaHQ6IDExLjVweDtcblx0Ly8gICB0b3A6IDUwJTtcblx0IHRvcDogMThweDtcblx0ICBtYXJnaW4tdG9wOiAtMi41cHg7XG5cdCAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cblx0Ji5pcy1vcGVuOmFmdGVyIHtcblx0ICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjaG9pY2VzLXRleHQtY29sb3IgdHJhbnNwYXJlbnQ7XG5cdCAgbWFyZ2luLXRvcDogLTcuNXB4O1xuXHR9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfVtkYXRhLXR5cGUqPVwic2VsZWN0LW11bHRpcGxlXCJdLCAuI3skY2hvaWNlcy1zZWxlY3Rvcn1bZGF0YS10eXBlKj1cInRleHRcIl0gIHtcbiAgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pbm5lciB7IGN1cnNvcjogdGV4dDsgfVxuICAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2J1dHRvbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRtYXJnaW4tcmlnaHQ6IC0kY2hvaWNlcy1idXR0b24tb2Zmc2V0LzI7XG5cdG1hcmdpbi1ib3R0b206IDA7XG5cdG1hcmdpbi1sZWZ0OiAkY2hvaWNlcy1idXR0b24tb2Zmc2V0O1xuXHRwYWRkaW5nLWxlZnQ6ICRjaG9pY2VzLWJ1dHRvbi1vZmZzZXQqMjtcblx0Ym9yZGVyLWxlZnQ6IDFweCBzb2xpZCBkYXJrZW4oJGNob2ljZXMtcHJpbWFyeS1jb2xvciwgMTAlKTtcblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCRjaG9pY2VzLWJ1dHRvbi1pY29uLXBhdGggKyAnL2Nyb3NzLnN2ZycpO1xuXHRiYWNrZ3JvdW5kLXNpemU6ICRjaG9pY2VzLWJ1dHRvbi1kaW1lbnNpb247XG5cdHdpZHRoOiAkY2hvaWNlcy1idXR0b24tZGltZW5zaW9uO1xuXHRsaW5lLWhlaWdodDogMTtcblx0b3BhY2l0eTogLjc1O1xuXHQmOmhvdmVyLCAmOmZvY3VzIHsgb3BhY2l0eTogMTsgfVxuICB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2hvaWNlcy1iZy1jb2xvcjtcbiAgLy9wYWRkaW5nOiA3LjVweCA3LjVweCAzLjc1cHg7XG4gIHBhZGRpbmc6IDRweCA3LjVweCAxcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRjaG9pY2VzLWtleWxpbmUtY29sb3I7XG4gIGJvcmRlci1yYWRpdXM6ICRjaG9pY2VzLWJvcmRlci1yYWRpdXM7XG4gIGZvbnQtc2l6ZTogJGNob2ljZXMtZm9udC1zaXplLW1kO1xuICBtaW4taGVpZ2h0OiAzNXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAuaXMtZm9jdXNlZCAmLCAuaXMtb3BlbiAmIHsgYm9yZGVyLWNvbG9yOiBkYXJrZW4oJGNob2ljZXMta2V5bGluZS1jb2xvciwgMTUlKTsgfVxuICAuaXMtb3BlbiAmIHsgYm9yZGVyLXJhZGl1czogJGNob2ljZXMtYm9yZGVyLXJhZGl1cyAkY2hvaWNlcy1ib3JkZXItcmFkaXVzIDAgMDsgfVxuICAuaXMtZmxpcHBlZC5pcy1vcGVuICYgeyBib3JkZXItcmFkaXVzOiAwIDAgJGNob2ljZXMtYm9yZGVyLXJhZGl1cyAkY2hvaWNlcy1ib3JkZXItcmFkaXVzOyB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9fbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2xpc3QtLXNpbmdsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogNHB4IDE2cHggNHB4IDRweDtcbiAgd2lkdGg6IDEwMCU7XG4gIFtkaXI9XCJydGxcIl0gJiB7XG5cdHBhZGRpbmctcmlnaHQ6IDRweDtcblx0cGFkZGluZy1sZWZ0OiAxNnB4O1xuICB9XG4gIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbSB7IHdpZHRoOiAxMDAlOyB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9fbGlzdC0tbXVsdGlwbGUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0Ym9yZGVyLXJhZGl1czogJGNob2ljZXMtYm9yZGVyLXJhZGl1cy1pdGVtO1xuXHRwYWRkaW5nOiAzcHggMTBweDtcblx0Zm9udC1zaXplOiAkY2hvaWNlcy1mb250LXNpemUtc207XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdG1hcmdpbi1yaWdodDogNHB4O1xuXHRtYXJnaW4tdG9wOiAwcHg7XG5cdG1hcmdpbi1ib3R0b206IDNweDtcblx0YmFja2dyb3VuZC1jb2xvcjogJGNob2ljZXMtcHJpbWFyeS1jb2xvcjtcblx0Ym9yZGVyOiAxcHggc29saWQgZGFya2VuKCRjaG9pY2VzLXByaW1hcnktY29sb3IsIDUlKTtcblx0Y29sb3I6ICNGRkZGRkY7XG5cdHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcblx0JltkYXRhLWRlbGV0YWJsZV0geyBwYWRkaW5nLXJpZ2h0OiA1cHg7IH1cblx0W2Rpcj1cInJ0bFwiXSAmIHtcblx0ICBtYXJnaW4tcmlnaHQ6IDA7XG5cdCAgbWFyZ2luLWxlZnQ6IDMuNzVweDtcblx0fVxuXHQmLmlzLWhpZ2hsaWdodGVkIHtcblx0ICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNob2ljZXMtcHJpbWFyeS1jb2xvciwgNSUpO1xuXHQgIGJvcmRlcjogMXB4IHNvbGlkIGRhcmtlbigkY2hvaWNlcy1wcmltYXJ5LWNvbG9yLCAxMCUpO1xuXHR9XG5cdC5pcy1kaXNhYmxlZCAmIHtcblx0ICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGNob2ljZXMtZGlzYWJsZWQtY29sb3IsIDI1JSk7XG5cdCAgYm9yZGVyOiAxcHggc29saWQgZGFya2VuKCRjaG9pY2VzLWRpc2FibGVkLWNvbG9yLCAzNSUpO1xuXHR9XG4gIH1cbn1cblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19saXN0LS1kcm9wZG93biB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDE7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjaG9pY2VzLWJnLWNvbG9yLWRyb3Bkb3duO1xuICBib3JkZXI6IDFweCBzb2xpZCAkY2hvaWNlcy1rZXlsaW5lLWNvbG9yO1xuICB0b3A6IDEwMCU7XG4gIG1hcmdpbi10b3A6IC0xcHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRjaG9pY2VzLWJvcmRlci1yYWRpdXM7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkY2hvaWNlcy1ib3JkZXItcmFkaXVzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICYuaXMtYWN0aXZlIHsgZGlzcGxheTogYmxvY2s7IH1cbiAgLmlzLW9wZW4gJiB7IGJvcmRlci1jb2xvcjogZGFya2VuKCRjaG9pY2VzLWtleWxpbmUtY29sb3IsIDE1JSk7IH1cbiAgLmlzLWZsaXBwZWQgJiB7XG5cdHRvcDogYXV0bztcblx0Ym90dG9tOiAxMDAlO1xuXHRtYXJnaW4tdG9wOiAwO1xuXHRtYXJnaW4tYm90dG9tOiAtMXB4O1xuXHRib3JkZXItcmFkaXVzOiAuMjVyZW0gLjI1cmVtIDAgMDtcbiAgfVxuICAuI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2xpc3Qge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1heC1oZWlnaHQ6IDMwMHB4O1xuXHRvdmVyZmxvdzogYXV0bztcblx0LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuXHR3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xuICB9XG4gIC4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0cGFkZGluZzogMTBweDtcblx0Zm9udC1zaXplOiAkY2hvaWNlcy1mb250LXNpemUtbWQ7XG5cdFtkaXI9XCJydGxcIl0gJiB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIH1cbiAgLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pdGVtLS1zZWxlY3RhYmxlIHtcblx0QG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG5cdCAgcGFkZGluZy1yaWdodDogMTAwcHg7XG5cdCAgJjphZnRlciB7XG5cdFx0Y29udGVudDogYXR0cihkYXRhLXNlbGVjdC10ZXh0KTtcblx0XHRmb250LXNpemU6ICRjaG9pY2VzLWZvbnQtc2l6ZS1zbTtcblx0XHRvcGFjaXR5OiAwO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMTBweDtcblx0XHR0b3A6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cdCAgfVxuXHQgIFtkaXI9XCJydGxcIl0gJiB7XG5cdFx0dGV4dC1hbGlnbjogcmlnaHQ7XG5cdFx0cGFkZGluZy1sZWZ0OiAxMDBweDtcblx0XHRwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuXHRcdCY6YWZ0ZXIge1xuXHRcdCAgcmlnaHQ6IGF1dG87XG5cdFx0ICBsZWZ0OiAxMHB4O1xuXHRcdH1cblx0ICB9XG5cdH1cblx0Ji5pcy1oaWdobGlnaHRlZCB7XG5cdCAgYmFja2dyb3VuZC1jb2xvcjogbWl4KCMwMDAwMDAsICNGRkZGRkYsIDUlKTtcblx0ICAmOmFmdGVyIHsgb3BhY2l0eTogLjU7IH1cblx0fVxuICB9XG59XG5cbi4jeyRjaG9pY2VzLXNlbGVjdG9yfV9faXRlbSB7IGN1cnNvcjogZGVmYXVsdDsgfVxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pdGVtLS1zZWxlY3RhYmxlIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2l0ZW0tLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIG9wYWNpdHk6IC41O1xufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX2hlYWRpbmcge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6ICRjaG9pY2VzLWZvbnQtc2l6ZS1zbTtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGxpZ2h0ZW4oJGNob2ljZXMta2V5bGluZS1jb2xvciwgMTAlKTtcbiAgY29sb3I6IGxpZ2h0ZW4oIzMzMywgMzAlKTtcbn1cblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19idXR0b24ge1xuICB0ZXh0LWluZGVudDogLTk5OTlweDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgJjpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IH1cbn1cblxuLiN7JGNob2ljZXMtc2VsZWN0b3J9X19pbnB1dCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IG1peCgjMDAwMDAwLCAjRkZGRkZGLCAyLjUlKTtcbiAgZm9udC1zaXplOiAkY2hvaWNlcy1mb250LXNpemUtbWQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgcGFkZGluZzogNHB4IDAgNHB4IDJweCAhaW1wb3J0YW50O1xuICAmOmZvY3VzIHsgb3V0bGluZTogMDsgfVxuICBbZGlyPVwicnRsXCJdICYge1xuXHRwYWRkaW5nLXJpZ2h0OiAycHg7XG5cdHBhZGRpbmctbGVmdDogMDtcbiAgfVxufVxuXG4uI3skY2hvaWNlcy1zZWxlY3Rvcn1fX3BsYWNlaG9sZGVyIHsgb3BhY2l0eTogLjU7IH1cblxuLyo9PT09PSAgRW5kIG9mIENob2ljZXMgID09PT09PSovXG4iLCIvLyBCdXR0b24gc3R5bGVzLlxuLndwZm9ybXMtYWRtaW4tcGFnZSB7XG5cblx0LndwZm9ybXMtYnRuIHtcblx0XHRib3JkZXI6IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdH1cblxuXHQud3Bmb3Jtcy1idG4tYmxvY2sge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cblx0LndwZm9ybXMtYnRuLW1kIHtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRwYWRkaW5nOiA4cHggMTJweDtcblx0XHRtaW4taGVpZ2h0OiAzNXB4O1xuXHR9XG5cblx0LndwZm9ybXMtYnRuLWxnIHtcblx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRwYWRkaW5nOiAxNnB4IDI4cHg7XG5cdH1cblxuXHQud3Bmb3Jtcy1idG4tb3JhbmdlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkb3JhbmdlO1xuXHRcdGJvcmRlci1jb2xvcjogJG9yYW5nZTtcblx0XHRjb2xvcjogI2ZmZjtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGRhcmtvcmFuZ2U7XG5cdFx0XHRib3JkZXItY29sb3I6ICRkYXJrb3JhbmdlO1xuXHRcdH1cblx0fVxuXG5cdC53cGZvcm1zLWJ0bi1ncmV5IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuXHRcdGJvcmRlci1jb2xvcjogI2NjYztcblx0XHRjb2xvcjogIzY2NjtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Q3ZDdkNztcblx0XHRcdGJvcmRlci1jb2xvcjogI2NjYztcblx0XHRcdGNvbG9yOiAjNDQ0O1xuXHRcdH1cblx0fVxuXG5cdC53cGZvcm1zLWJ0bi1saWdodC1ncmV5IHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG5cdFx0Y29sb3I6ICM2NjY7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG5cdFx0XHRjb2xvcjogIzQ0NDtcblx0XHR9XG5cdH1cblxuXHQud3Bmb3Jtcy1idG4tdHJhbnMtZ3JlZW4ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IG5vbmU7XG5cdFx0Y29sb3I6ICRncmVlbjtcblxuXHRcdCY6aG92ZXIge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGdyZWVuO1xuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0fVxuXG5cdFx0LnVuZGVybGluZSB7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkZ3JlZW47XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0Ym90dG9tOiAtNXB4O1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZGFzaGljb25zIHtcblx0XHRcdGhlaWdodDogMThweDtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIEFsZXJ0IHN0eWxlcy5cbi8vIFN0eWxpbmcgdHdlYWtzIGZvciBqUXVlcnktY29uZmlybSBKUyBhbGVydCBsaWJyYXJ5LlxuYm9keSB7XG5cblx0ZGl2Lmpjb25maXJtIHtcblxuXHRcdCosXG5cdFx0Kjo6YmVmb3JlLFxuXHRcdCo6OmFmdGVyIHtcblx0XHRcdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0fVxuXG5cdFx0ZGl2Lmpjb25maXJtLWJveC1jb250YWluZXIge1xuXG5cdFx0XHRkaXYuamNvbmZpcm0tYm94IHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRcdFx0Ym94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcblxuXHRcdFx0XHRkaXYuamNvbmZpcm0tY2xvc2VJY29uIHtcblx0XHRcdFx0XHRjb2xvcjogcmdiYSgwLDAsMCwwLjQpO1xuXHRcdFx0XHRcdHRvcDogOHB4O1xuXHRcdFx0XHRcdHJpZ2h0OiA4cHg7XG5cblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdGNvbG9yOiByZ2JhKDAsMCwwLDAuODApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGRpdi5qY29uZmlybS1ib3gge1xuXG5cdFx0XHRkaXYuamNvbmZpcm0tdGl0bGUtYyB7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDI2cHggMCAhaW1wb3J0YW50O1xuXHRcdFx0XHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG5cblx0XHRcdFx0c3Bhbi5qY29uZmlybS1pY29uLWMge1xuXHRcdFx0XHRcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xuXHRcdFx0XHRcdGNvbG9yOiAjYzRjNGM0ICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzcGFuLmpjb25maXJtLXRpdGxlIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRjb2xvcjogIzMzMztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHNwYW4uamNvbmZpcm0taWNvbi1jICsgc3Bhbi5qY29uZmlybS10aXRsZSB7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGRpdi5qY29uZmlybS1jb250ZW50LXBhbmUge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyNnB4O1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblxuXHRcdFx0XHQuamNvbmZpcm0tY29udGVudCB7XG5cdFx0XHRcdFx0b3ZlcmZsb3c6IGluaGVyaXQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0ZGl2Lmpjb25maXJtLWNvbnRlbnQge1xuXHRcdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRcdGNvbG9yOiAjNTU1O1xuXHRcdFx0XHRsaW5lLWhlaWdodDogMS40O1xuXG5cdFx0XHRcdCYubGl0ZS11cGdyYWRlIHtcblx0XHRcdFx0XHRwIHtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDAgMjBweDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRwIHtcblx0XHRcdFx0XHRtYXJnaW46IDAgMCAxNnB4O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMS41O1xuXG5cdFx0XHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYubGFyZ2Uge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYuc21hbGwge1xuXHRcdFx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5hbHJlYWR5LXB1cmNoYXNlZCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxMnB4O1xuXHRcdFx0XHRcdGNvbG9yOiAjY2NjO1xuXHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGRpdi5qY29uZmlybS1idXR0b25zIHtcblxuXHRcdFx0XHQuYWxyZWFkeS1wdXJjaGFzZWQge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdFx0XHRjb2xvcjogI2FhYTtcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdFx0cGFkZGluZy10b3A6IDIwcHg7XG5cblx0XHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5kaXNjb3VudC1ub3RlIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRtYXJnaW46IDMwcHggMCAwO1xuXG5cdFx0XHRcdHAge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmYWZmYWM7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIC0zMHB4O1xuXHRcdFx0XHRcdHBhZGRpbmc6IDI0cHggNjBweCAyMHB4O1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRcdFx0XHRjb2xvcjogIzRkNGQ0ZDtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6ICdcXGYwNTgnO1xuXHRcdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdFx0Zm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lO1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZTogMjZweDtcblx0XHRcdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDVweCA2cHg7XG5cdFx0XHRcdFx0XHR0ZXh0LXJlbmRlcmluZzogYXV0bztcblx0XHRcdFx0XHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHRcdFx0XHRcdFx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHRcdHRvcDogLTIwcHg7O1xuXHRcdFx0XHRcdFx0cmlnaHQ6IDUwJTtcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogLTE4cHg7XG5cdFx0XHRcdFx0XHRjb2xvcjogIzNhYmMwMTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRzcGFuIHtcblx0XHRcdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0XHRcdGNvbG9yOiAjM2FiYzAxO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0Y29sb3I6ICNhYWE7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogMTJweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpbnB1dFt0eXBlPXRleHRdIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiA5OSU7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNkNmQ2ZDY7XG5cdFx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdG1hcmdpbjogMjBweCBhdXRvIDAgYXV0bztcblx0XHRcdH1cblxuXHRcdFx0I3dwZm9ybXMtZW1iZWQtc2hvcnRjb2RlIHtcblx0XHRcdFx0bWFyZ2luOiAyMHB4IDA7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdFx0XHRwYWRkaW5nOiA4cHggNXB4O1xuXHRcdFx0fVxuXG5cdFx0XHQjd3Bmb3Jtcy1lbWJlZC1zaG9ydGNvZGU6ZGlzYWJsZWQge1xuXHRcdFx0XHRjb2xvcjogIzMzMztcblx0XHRcdH1cblxuXHRcdFx0YnV0dG9uLmJ0bi1jb25maXJtIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcblx0XHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0XHRcdG91dGxpbmU6IG5vbmU7XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJGRhcmtvcmFuZ2U7XG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAkZGFya29yYW5nZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuZXJyb3Ige1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0fVxuXG5cdFx0XHQud3Bmb3Jtcy1lcnJvciB7XG5cdFx0XHRcdGJvcmRlcjogMXB4IHNvbGlkICNlYmNjZDEgIWltcG9ydGFudDtcblx0XHRcdH1cblxuXHRcdFx0Lmpjb25maXJtLXRpdGxlLWMgLmpjb25maXJtLWljb24tYyB7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuXHRcdFx0XHR0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdC1tcy10cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcblx0XHRcdFx0dHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0XHRcdGZvbnQtc2l6ZTogNDVweCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5jaG9pY2VzIHtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXG5cdFx0aW5wdXRbdHlwZT10ZXh0XS5jaG9pY2VzX19pbnB1dCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIEFsZXJ0IHN0eWxlcy5cbi53cGZvcm1zLWFkbWluLXBhZ2Uge1xuXG5cdC53cGZvcm1zLWFsZXJ0IHtcblx0XHRwYWRkaW5nOiAxNnB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDE4cHg7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cblx0XHRoNCB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0Y29sb3I6IGluaGVyaXQ7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46IDAgMCAxNXB4IDA7XG5cblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYud3Bmb3Jtcy1hbGVydC1ub21hcmdpbiB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0Ji53cGZvcm1zLWFsZXJ0LXNtYWxsIHtcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHR9XG5cblx0XHQmLndwZm9ybXMtYWxlcnQtc3VjY2VzcyB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZGZmMGQ4O1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjZDZlOWM2O1xuXHRcdFx0Y29sb3I6ICMzYzc2M2Q7XG5cdFx0fVxuXG5cdFx0Ji53cGZvcm1zLWFsZXJ0LWluZm8ge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcblx0XHRcdGJvcmRlci1jb2xvcjogI2JjZThmMTtcblx0XHRcdGNvbG9yOiAjMzE3MDhmO1xuXHRcdH1cblxuXHRcdCYud3Bmb3Jtcy1hbGVydC13YXJuaW5nIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmY2Y4ZTM7XG5cdFx0XHRib3JkZXItY29sb3I6ICNmYWViY2M7XG5cdFx0XHRjb2xvcjogIzhhNmQzYjtcblx0XHR9XG5cblx0XHQmLndwZm9ybXMtYWxlcnQtZGFuZ2VyIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmMmRlZGU7XG5cdFx0XHRib3JkZXItY29sb3I6ICNlYmNjZDE7XG5cdFx0XHRjb2xvcjogI2E5NDQ0Mjtcblx0XHR9XG5cdH1cbn0iLCIvLyBGbGFnIGljb25zLlxuLndwZm9ybXMtZmxhZyB7XG5cdHdpZHRoOiAxNnB4O1xuXHRoZWlnaHQ6IDE2cHg7XG5cdGJhY2tncm91bmQ6dXJsKC4uL2ltYWdlcy9mbGFncy5wbmcpIG5vLXJlcGVhdDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hZCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggMH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWFlIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYWYge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hZyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggMH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWFpIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAwfVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYWwge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hbSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hbyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hcyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hdCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hdSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1hdyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IDB9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1heiB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJhIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJiIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJkIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJlIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJmIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJnIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJoIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1iaSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYmoge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ibiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xNnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYm8ge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWJyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTE2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1icyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xNnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctYnQge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1idyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ieSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ieiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jYSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jZCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jZiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jZyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY2gge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMzJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWNpIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jayB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY2wge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMzJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWNtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTMycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1jbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0zMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY28ge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMzJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWNyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY3Uge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY3Yge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY3kge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctY3oge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZGUge2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZGoge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZGsge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWRtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTQ4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1kbyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZHoge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWVjIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTQ4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1lZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC00OHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZWcge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtNDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWVoIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTQ4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1lciB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWVzIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWV0IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWZpIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWZqIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWZtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWZvIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWZyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1nYSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC02NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ2Ige2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWdkIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1nZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC02NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ2cge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtNjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWdoIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTY0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1naSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC02NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ2wge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1nbSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1nbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ncCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ncSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1nciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ndCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ndSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctZ3cge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtODBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWd5IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1oayB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaG4ge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtODBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWhyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTgwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1odCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC04MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaHUge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtODBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWlkIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaWUge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaWwge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaW0ge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaW4ge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaXEge2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaXIge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctaXMge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWl0IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTk2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1qZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctam0ge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWpvIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTk2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1qcCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC05NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWcta2Uge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtOTZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWtnIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTk2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1raCB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1raSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWcta20ge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWtuIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1rcCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWcta3Ige2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWt3IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1reSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWt6IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbGEge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1sYiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWxjIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbGkge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTEycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1sayB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xMTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWxyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTExMnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbHMge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbHQge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLWx1IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1sdiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbHkge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1hIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tYyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbWQge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1nIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbWgge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tayB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1sIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTEyOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbW0ge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTI4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xMjhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1vIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW1xIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbXMge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW10IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1tdSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbXYge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW13IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbXgge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1teSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW16IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbmEge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1uYyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xNDRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW5lIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTE0NHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbmcge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTQ0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1uaSB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ubCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbm8ge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW5wIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1uciB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctbnoge2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLW9tIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1wYSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXBlIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcGYge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1wZyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXBoIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcGsge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTYwcHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1wbCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xNjBweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXByIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTE2MHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcHMge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcHQge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXB3IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1weSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcWEge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXJlIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ybyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctcnMge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1ydSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXJ3IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc2Ege2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zYiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNjIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTE3NnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc2Qge2JhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTc2cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xNzZweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNnIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNpIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zayB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc2wge2JhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zbiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc28ge2JhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXNyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc3Qge2JhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy1zdiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXN5IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctc3oge2JhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10YyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xOTJweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXRkIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTE5MnB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdGcge2JhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTkycHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10aCB7YmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10aiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdGwge2JhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXRtIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10biB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdG8ge2JhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXRyIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10dCB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXR2IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdHcge2JhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy10eiB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXVhIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdWcge2JhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMjA4cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy11cyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0yMDhweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXV5IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjI0cHggLTIwOHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdXoge2JhY2tncm91bmQtcG9zaXRpb246IDAgLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdmEge2JhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXZjIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy12ZSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdmcge2JhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXZpIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy12biB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctdnUge2JhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy13cyB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXllIHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTIyNHB4fVxuLndwZm9ybXMtZmxhZy53cGZvcm1zLWZsYWctemEge2JhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtMjI0cHh9XG4ud3Bmb3Jtcy1mbGFnLndwZm9ybXMtZmxhZy16bSB7YmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0yMjRweH1cbi53cGZvcm1zLWZsYWcud3Bmb3Jtcy1mbGFnLXp3IHtiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTIyNHB4fVxuIiwiLy8gSGVhZGVyIHN0eWxlcy5cblxuI3dwZm9ybXMtaGVhZGVyLXRlbXAge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG1hcmdpbjogMDtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IC0xcHg7XG5cdGxlZnQ6IDIwcHg7XG5cdHJpZ2h0OiAyMHB4O1xuXHR6LWluZGV4OiA5OTtcbn1cblxuI3dwZm9ybXMtaGVhZGVyIHtcblx0Ym9yZGVyLXRvcDogM3B4IHNvbGlkICRvcmFuZ2U7XG5cdHBhZGRpbmc6IDIycHggMjBweDtcblxuXHRpbWcge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbjogMDtcblx0XHRtYXgtd2lkdGg6IDIzNXB4O1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG5cdFx0XHRtYXgtd2lkdGg6IDIwMHB4O1xuXHRcdH1cblx0fVxufVxuIiwiLy8gUGFnZSB0aXRsZSBhbmQgdGFicyBzdHlsZXMuXG4ud3Bmb3Jtcy1hZG1pbi13cmFwIHtcblxuXHQvLyBUaXRsZSBhcmVhLlxuXHQucGFnZS10aXRsZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRtYXJnaW46IDAgMCAyMHB4IDA7XG5cdFx0cGFkZGluZzogMTVweCAyMHB4O1xuXG5cdFx0LmFkZC1uZXctaDIge1xuXHRcdFx0bWFyZ2luLWxlZnQ6IDI4cHg7XG5cdFx0fVxuXHR9XG59XG5cbi8vIFRhYiBuYXZpZ2F0aW9uLlxuLndwZm9ybXMtYWRtaW4tdGFicyB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdG1hcmdpbjogMCAwIDIwcHggMDtcblx0cGFkZGluZzogMCAyMHB4O1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRvdmVyZmxvdzogYXV0bztcblx0Zm9udC1zaXplOiAxNHB4O1xuXG5cdGxpIHtcblx0XHRtYXJnaW46IDAgMzBweCAwIDA7XG5cdFx0cGFkZGluZzogMDtcblx0XHRmbG9hdDogbGVmdDtcblxuXHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHRhIHtcblx0XHRcdGNvbG9yOiAjNjY2O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwYWRkaW5nOiAyMHB4IDAgMThweCAwO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmZmY7XG5cdFx0XHRib3gtc2hhZG93OiBub25lO1xuXG5cdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjOTk5O1xuXHRcdFx0fVxuXG5cdFx0XHQmLmFjdGl2ZSB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogJG9yYW5nZTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiIsIi8vIEdlbmVyYWwgYWRtaW4gc3R5bGluZy5cblxuLy8gQ29yZSBhZG1pbiBzdHlsZSBvdmVycmlkZXMuXG4jd3Bjb250ZW50IHtcblx0cGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuXHRcdHBhZGRpbmctdG9wOiA0NnB4O1xuXHR9XG59XG5cbiN3cGJvZHkge1xuXHRAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuXHRcdHBhZGRpbmctdG9wOiAwO1xuXHR9XG59XG5cbi8vIFRoaXMgY2xhc3MgaXMgYXV0byBhcHBsaWVkIHRvIF9hbGxfIFdQRm9ybXMgYWRtaW4gcGFnZXMvc2NyZWVucy5cbi53cGZvcm1zLWFkbWluLXBhZ2Uge1xuXG5cdC8vIFRoaXMgaXMgaGlkZGVuIG9uIGxvYWQsIHRoZW4gbWFkZSB2aXNpYmxlIHdpdGggSlMsIHRvXG5cdC8vIHByZXZlbnQgaXQgZnJvbSBcImp1bXBpbmdcIi5cblx0I3NjcmVlbi1tZXRhLWxpbmtzLFxuXHQjc2NyZWVuLW1ldGEge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQvLyBSZXNwb25zaXZlIHZpZGVvIGNvbnRhaW5lciwgcmVwbGFjZXMgSlMgbWV0aG9kLlxuXHQudmlkZW8tY29udGFpbmVyIHtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZy1ib3R0b206IDU2LjElO1xuXHRcdC8vIHBhZGRpbmctdG9wOiAzMHB4O1xuXHRcdGhlaWdodDogMDtcblx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHR9XG5cblx0LnZpZGVvLWNvbnRhaW5lciBpZnJhbWUsXG5cdC52aWRlby1jb250YWluZXIgb2JqZWN0LFxuXHQudmlkZW8tY29udGFpbmVyIGVtYmVkIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdGxlZnQ6IDA7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiAxMDAlO1xuXHR9XG5cblx0Ly8gRmFuY3kgZmlsZSB1cGxvYWQuXG5cdC53cGZvcm1zLWZpbGUtdXBsb2FkIHtcblxuXHRcdGlucHV0W3R5cGU9ZmlsZV0ge1xuXHRcdFx0d2lkdGg6IDAuMXB4O1xuXHRcdFx0aGVpZ2h0OiAwLjFweDtcblx0XHRcdG9wYWNpdHk6IDA7XG5cdFx0XHRvdmVyZmxvdzogaGlkZGVuO1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0ei1pbmRleDogLTE7XG5cdFx0fVxuXG5cdFx0bGFiZWwge1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0fVxuXG5cdFx0aW5wdXRbdHlwZT1maWxlXTpmb2N1cyArIGxhYmVsLFxuXHRcdGlucHV0W3R5cGU9ZmlsZV0uaGFzLWZvY3VzICsgbGFiZWwge1xuXHRcdFx0b3V0bGluZTogMXB4IGRvdHRlZCAjMDAwO1xuXHRcdFx0b3V0bGluZTogLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIGF1dG8gNXB4O1xuXHRcdH1cblxuXHRcdC5mbGQge1xuXHRcdFx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGNvbG9yOiAjMzMzO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdHBhZGRpbmc6IDdweCAxMnB4O1xuXHRcdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXHRcdFx0d2lkdGg6IDQwMHB4O1xuXHRcdFx0bWluLWhlaWdodDogMzVweDtcblxuXHRcdFx0LnBsYWNlaG9sZGVyIHtcblx0XHRcdFx0Y29sb3I6ICNjY2M7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0c3Ryb25nIC5mYSB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDhweDtcblx0XHR9XG5cdH1cblxuXHQvLyBHZW5yaWMgY2xhc3MgZm9yIGhpZGluZyBkaXNwbGF5O1xuXHQud3Bmb3Jtcy1oaWRlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Ly8gUGxhY2Vob2xkZXIgaDEgZm9yIGFkbWluIG5vdGljZXMuXG5cdC53cGZvcm1zLWgxLXBsYWNlaG9sZGVyIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG5cblx0Ly8gSGlkZSBub3RpY2VzIG9uIGxvYWQgdG8gcHJldmVudCBqdW1waW5nLiBKUyB3aWxsIHJldmVhbCB0aGVtLlxuXHQubm90aWNlIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cbi8vIEFkbWluIHdyYXAgLSBjb250YWlucyBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgaGVhZGVyLlxuLndwZm9ybXMtYWRtaW4td3JhcCB7XG5cblx0bWFyZ2luOiAwO1xuXG5cdC5ub3RpY2Uge1xuXHRcdG1hcmdpbi1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7XG5cdFx0bWFyZ2luLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuLy8gQWRtaW4gY29udGVudC5cbi53cGZvcm1zLWFkbWluLWNvbnRlbnQge1xuXHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cblx0JjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHR9XG5cblx0JjphZnRlciB7XG5cdFx0Y2xlYXI6IGJvdGg7XG5cdFx0Y29udGVudDogXCIgXCI7XG5cdFx0ZGlzcGxheTogdGFibGU7XG5cdH1cbn1cblxuLndwZm9ybXMtY2xlYXIge1xuXG5cdCY6YmVmb3JlIHtcblx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0fVxuXG5cdCY6YWZ0ZXIge1xuXHRcdGNsZWFyOiBib3RoO1xuXHRcdGNvbnRlbnQ6IFwiIFwiO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHR9XG59XG5cbi53cGZvcm1zLWFkbWluLWNvbHVtbnMge1xuXG5cdCYgPiBkaXZbY2xhc3MqPVwiLWNvbHVtbi1cIl0ge1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHR9XG5cblx0LndwZm9ybXMtYWRtaW4tY29sdW1uLTIwIHt3aWR0aDogMjAlfVxuXHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tMzMge3dpZHRoOiAzMy4zMzMzMyV9XG5cdC53cGZvcm1zLWFkbWluLWNvbHVtbi00MCB7d2lkdGg6IDQwJX1cblx0LndwZm9ybXMtYWRtaW4tY29sdW1uLTUwIHt3aWR0aDogNTAlfVxuXHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tNjAge3dpZHRoOiA2MCV9XG5cdC53cGZvcm1zLWFkbWluLWNvbHVtbi04MCB7d2lkdGg6IDgwJX1cblxuXHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tbGFzdCB7ZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnR9XG5cblx0JjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRkaXNwbGF5OiB0YWJsZTtcblx0XHRjbGVhcjogYm90aDtcblx0fVxufVxuIiwiLy8gRm9ybSBPdmVydmlldyAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtb3ZlcnZpZXdcbiN3cGZvcm1zLW92ZXJ2aWV3IHtcblxuXHQvLyBSZW1vdmUgdGhlIHRvcCBtYXJnaW4gc28gaXQgZGlzcGxheXMgMjBweCBiZXR3ZWVuIHRoZSBoZWFkZXIgYXJlYVxuXHQvLyBhbmQgdGhlIGNvbnRlbnQsIGNvbnNpc3RlbnQgd2l0aCBvdXIgb3RoZXIgYWRtaW4gcGFnZXMuXG5cdC50YWJsZW5hdi50b3Age1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdH1cblxuXHQvLyBTZXQgY2VydGFpbiBjb2x1bW4gd2lkdGhzLlxuXHQud3AtbGlzdC10YWJsZSB7XG5cblx0XHQuY29sdW1uLWlkIHtcblx0XHRcdHdpZHRoOiAzMHB4O1xuXHRcdH1cblxuXHRcdC5jb2x1bW4tZW50cmllcyB7XG5cdFx0XHR3aWR0aDogNzBweDtcblx0XHR9XG5cblx0XHQuY29sdW1uLXNob3J0Y29kZSB7XG5cdFx0XHR3aWR0aDogMTUwcHg7XG5cdFx0fVxuXG5cdFx0LmNvbHVtbi1jcmVhdGVkIHtcblx0XHRcdHdpZHRoOiAxNDVweDtcblx0XHR9XG5cdH1cbn1cbiIsIi8vIEVudHJpZXMgU2luZ2xlIChEZXRhaWxzKSAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtZW50cmllcyZ2aWV3PWRldGFpbHNcbiN3cGZvcm1zLWVudHJpZXMtc2luZ2xlIHtcblxuXHQjcG9zdHN0dWZmIHtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0Ly8gTWV0YWJveGVzIGFyZSBub3QgbW92YWJsZSBzbyBkb24ndCBsZXQgdGhlIHVzZXIgdGhpbmsgc28uXG5cdC5wb3N0Ym94IC5obmRsZSB7XG5cdFx0Y3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG5cdH1cblxuXHQvLyBFbnRyeSBuYXZpZ2F0aW9uIC0gbmV4dC9wcmV2LlxuXHQud3Bmb3Jtcy1lbnRyeS1uYXZpZ2F0aW9uIHtcblx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0bGluZS1oZWlnaHQ6IDI5cHg7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nLXRvcDogMnB4O1xuXHRcdHBhZGRpbmctcmlnaHQ6IDFweDtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8PXBob25lXCIpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXG5cdFx0LmFkZC1uZXctaDIge1xuXHRcdFx0dG9wOiBhdXRvO1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0cGFkZGluZzogNHB4IDBweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdH1cblxuXHRcdFx0LmRhc2hpY29ucyB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0XHR3aWR0aDogMjhweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDI5cHg7XG5cdFx0XHR9XG5cblx0XHRcdCYuaW5hY3RpdmUge1xuXHRcdFx0XHRvcGFjaXR5OiAwLjU7XG5cdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZW50cnktbmF2aWdhdGlvbi10ZXh0IHtcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1lbnRyeS1jdXJyZW50IHtcblx0XHRcdHRvcDogYXV0bztcblx0XHRcdG1hcmdpbjogMCAtNXB4IDAgLTNweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdHBhZGRpbmc6IDRweCAxMHB4O1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2NjYztcblx0XHRcdC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogMnB4O1xuXHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAyOXB4O1xuXHRcdFx0dGV4dC10cmFuc2Zvcm06IGNlbnRlcjtcblx0XHR9XG5cblx0fVxuXG5cdC8vIEVudHJ5IGZpZWxkcyBtZXRhYm94LlxuXHQjd3Bmb3Jtcy1lbnRyeS1maWVsZHMge1xuXG5cdFx0aDIuaG5kbGUge1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXG5cdFx0XHQuZGFzaGljb25zIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHRoZWlnaHQ6IDE2cHg7XG5cdFx0XHRcdHdpZHRoOiAxNnB4O1xuXHRcdFx0XHRtYXJnaW46IDRweCA0cHggMCAwO1xuXHRcdFx0XHRjb2xvcjogJG9yYW5nZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQubm8tZmllbGRzIHtcblx0XHRcdHBhZGRpbmc6IDEycHg7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0Lmluc2lkZSB7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRwIHtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHQud3Bmb3Jtcy1lbnRyeS1maWVsZC1uYW1lIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ViZjNmYjtcblx0XHRcdFx0cGFkZGluZzogOHB4IDEycHg7XG5cdFx0XHR9XG5cblx0XHRcdC53cGZvcm1zLWVudHJ5LWZpZWxkLXZhbHVlIHtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRcdFx0cGFkZGluZzogOHB4IDEycHg7XG5cdFx0XHR9XG5cblx0XHRcdC5lbXB0eSAud3Bmb3Jtcy1lbnRyeS1maWVsZC12YWx1ZSB7XG5cdFx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdFx0Y29sb3I6ICM5OTk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZW1wdHktZmllbGQtdG9nZ2xlIHtcblx0XHRcdGZsb2F0OiByaWdodDtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdHBhZGRpbmc6IDVweCAwIDA7XG5cdFx0fVxuXHR9XG5cblx0Ly8gRW50cnkgTm90ZXMgbWV0YWJveC5cblx0I3dwZm9ybXMtZW50cnktbm90ZXMge1xuXG5cdFx0Lmluc2lkZSB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdH1cblxuXHRcdC53cGZvcm1zLWVudHJ5LW5vdGVzLW5ldyB7XG5cdFx0XHRwYWRkaW5nOiAxMHB4O1xuXHRcdH1cblxuXHRcdGZvcm0ge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQuYnRucyB7XG5cdFx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRcdHBhZGRpbmc6IDhweCAwO1xuXHRcdH1cblxuXHRcdC5uby1ub3RlcyB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiA0cHggMTBweCA4cHg7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZW50cnktbm90ZXMtc2luZ2xlIHtcblx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2UzZTFlMztcblxuXHRcdFx0cDpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0fVxuXG5cdFx0XHQmLmV2ZW4ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLWVudHJ5LW5vdGVzLWJ5bGluZSB7XG5cdFx0XHRjb2xvcjogIzg4ODtcblx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cblx0XHRcdC5zZXAge1xuXHRcdFx0XHRjb2xvcjogI2RkZDtcblx0XHRcdH1cblxuXHRcdFx0Lm5vdGVzLXVzZXIge1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHR9XG5cblx0XHRcdC5ub3RlLWRlbGV0ZSB7XG5cdFx0XHRcdGNvbG9yOiAjYTAwO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cblx0XHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdFx0Y29sb3I6IHJlZDtcblx0XHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBFbnRyeSBEZXRhaWxzLCBBY3Rpb25zLCBhbmQgUGF5bWVudHMuXG5cdCN3cGZvcm1zLWVudHJ5LWRldGFpbHMgLmluc2lkZSxcblx0I3dwZm9ybXMtZW50cnktcGF5bWVudCAuaW5zaWRlLFxuXHQjd3Bmb3Jtcy1lbnRyeS1hY3Rpb25zIC5pbnNpZGUge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAwO1xuXHR9XG5cblx0LndwZm9ybXMtZW50cnktZGV0YWlscy1tZXRhLFxuXHQud3Bmb3Jtcy1lbnRyeS1hY3Rpb25zLW1ldGEgIHtcblx0XHRwYWRkaW5nOiA2cHggMCAwO1xuXHR9XG5cblx0LndwZm9ybXMtZW50cnktZGV0YWlscy1tZXRhIHAsXG5cdC53cGZvcm1zLWVudHJ5LXBheW1lbnQtbWV0YSBwLFxuXHQud3Bmb3Jtcy1lbnRyeS1hY3Rpb25zLW1ldGEgcCB7XG5cdFx0cGFkZGluZzogNnB4IDEwcHggOHB4O1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LXBheW1lbnQtbWV0YSB7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LXBheW1lbnQtbWV0YSBwIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcblx0XHRwYWRkaW5nOiAxMHB4O1xuXHR9XG5cblx0LndwZm9ybXMtZW50cnktcGF5bWVudC1tZXRhIHA6bGFzdC1vZi10eXBlIHtcblx0XHRib3JkZXItYm90dG9tOiAwO1xuXHR9XG5cblx0LndwZm9ybXMtZW50cnktZGV0YWlscy1tZXRhIHN0cm9uZyxcblx0LndwZm9ybXMtZW50cnktYWN0aW9ucy1tZXRhIHN0cm9uZyB7XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LWRldGFpbHMtbWV0YSAuZGFzaGljb25zLFxuXHQud3Bmb3Jtcy1lbnRyeS1hY3Rpb25zLW1ldGEgLmRhc2hpY29ucyB7XG5cdFx0cGFkZGluZzogMCAycHggMCAwO1xuXHRcdGNvbG9yOiAjODI4NzhBO1xuXHRcdHRvcDogLTFweDtcblx0XHRsZWZ0OiAtMXB4O1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdH1cblxuXHQjd3Bmb3Jtcy1lbnRyeS1kZXRhaWxzIC5zdWJtaXRkZWxldGUge1xuXHRcdGNvbG9yOiAjYTAwO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRwYWRkaW5nOiAxcHggMnB4O1xuXHR9XG5cblx0I3dwZm9ybXMtZW50cnktZGV0YWlscyAuc3VibWl0ZGVsZXRlOmhvdmVyIHtcblx0XHRjb2xvcjogcmVkO1xuXHR9XG5cblx0LndwZm9ybXMtZW50cnktYWN0aW9ucy1tZXRhIGEge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdC53cGZvcm1zLWVudHJ5LWFjdGlvbnMtbWV0YSBhOmhvdmVyIHtcblx0XHR0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblx0fVxuXG5cdC8vIEVudHJ5IExvY2F0aW9uLlxuXHQjd3Bmb3Jtcy1lbnRyeS1nZW9sb2NhdGlvbiB7XG5cblx0XHQuaW5zaWRlIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXG5cdFx0dWwge1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRsaSB7XG5cdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdG92ZXJmbG93OiBhdXRvO1xuXG5cdFx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZ2VvbG9jYXRpb24tbWV0YSB7XG5cdFx0XHR3aWR0aDogODVweDtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0Ym9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2VlZTtcblx0XHRcdHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDEycHg7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZ2VvbG9jYXRpb24tdmFsdWUge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0cGFkZGluZzogMTBweCAxMnB4IDEwcHggMjBweDtcblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1mbGFnIHtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcblx0XHRcdG1hcmdpbi1yaWdodDogNHB4O1xuXHRcdH1cblx0fVxufVxuIiwiLy8gRW50cmllcyBMaXN0IC0gYWRtaW4ucGhwP3BhZ2U9d3Bmb3Jtcy1lbnRyaWVzJnZpZXc9bGlzdFxuI3dwZm9ybXMtZW50cmllcy1saXN0IHtcblxuXHQuZm9ybS1kZXRhaWxzIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMTVweDtcblx0XHRtYXJnaW46IDAgMCAxMHB4O1xuXG5cdFx0LmZvcm0tZGV0YWlscy1zdWIge1xuXHRcdFx0Y29sb3I6ICM5OTk7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtc2l6ZTogMTBweDtcblx0XHRcdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cdFx0XHRtYXJnaW46IDAgMCA4cHggMDtcblx0XHR9XG5cblx0XHQuZm9ybS1kZXRhaWxzLXRpdGxlIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8MTIwMHB4XCIpIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDEwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmZvcm0tc2VsZWN0b3Ige1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0XHQudG9nZ2xlIHtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0XHRjb2xvcjogIzQ0NDtcblx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHRib3gtc2hhZG93OiBub25lO1xuXG5cdFx0XHRcdCY6aG92ZXIsXG5cdFx0XHRcdCYuYWN0aXZlIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTNlM2UzO1xuXHRcdFx0XHRcdG91dGxpbmU6IG5vbmU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuZm9ybS1saXN0IHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDJweCA4cHggMCByZ2JhKDAsMCwwLDAuMSk7XG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0dG9wOiAyN3B4O1xuXHRcdFx0XHRsZWZ0OiAtMTA4cHg7XG5cdFx0XHRcdHdpZHRoOiAyMzBweDtcblx0XHRcdFx0cGFkZGluZzogMTBweCAwO1xuXHRcdFx0XHR6LWluZGV4OiA5OTkxO1xuXG5cdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRjb250ZW50OiBcIiBcIjtcblx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdFx0dG9wOiAtMTBweDtcblx0XHRcdFx0XHRsZWZ0OiAxMTBweDtcblx0XHRcdFx0XHR3aWR0aDogMDtcblx0XHRcdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHRcdFx0Ym9yZGVyLXN0eWxlOiBzb2xpZDtcblx0XHRcdFx0XHRib3JkZXItd2lkdGg6IDAgOHB4IDEwcHggOHB4O1xuXHRcdFx0XHRcdGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR1bCB7XG5cdFx0XHRcdG1heC1oZWlnaHQ6IDE5NnB4O1xuXHRcdFx0XHRvdmVyZmxvdy14OiBoaWRkZW47XG5cdFx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRcdG1hcmdpbjogMDtcblxuXHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0bGlzdC1zdHlsZTogbm9uZTtcblx0XHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXG5cdFx0XHRcdFx0YSB7XG5cdFx0XHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0XHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDVweCAxNXB4O1xuXHRcdFx0XHRcdFx0Y29sb3I6ICM0NDQ7XG5cblx0XHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5mb3JtLWRldGFpbHMtYWN0aW9ucyB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPDEyMDBweFwiKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0fVxuXG5cdFx0XHRhIHtcblx0XHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdG1hcmdpbjogMCAxMnB4IDAgMDtcblxuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0bWFyZ2luOiAwXG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuZGFzaGljb25zIHtcblx0XHRcdFx0XHR3aWR0aDogMTZweDtcblx0XHRcdFx0XHRoZWlnaHQ6IDE2cHg7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gU2VhcmNoLlxuXHQuc2VhcmNoLWJveCB7XG5cdFx0LndwZm9ybXMtZm9ybS1zZWFyY2gtYm94LWZpZWxkIHtcblx0XHRcdG1heC13aWR0aDogMTgwcHg7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdFx0bWFyZ2luOiAwIDJweCAwIDA7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtZm9ybS1zZWFyY2gtYm94LWNvbXBhcmlzb24ge1xuXHRcdFx0bWF4LXdpZHRoOiA5MHB4O1xuXHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHRcdG1hcmdpbjogMCAycHggMCAwO1xuXHRcdH1cblxuXHRcdC53cGZvcm1zLWZvcm0tc2VhcmNoLWJveC10ZXJtIHtcblx0XHRcdGhlaWdodDogMjhweDtcblx0XHRcdG1hcmdpbjogMCAycHggMCAwO1xuXHRcdH1cblx0fVxuXG5cdC8vIEZpbHRlcmluZy5cblx0LndwZm9ybXMtZmlsdGVyLWRhdGUge1xuXG5cdFx0LndwZm9ybXMtZmlsdGVyLWRhdGUtc2VsZWN0b3Ige1xuXHRcdFx0aGVpZ2h0OiAyOHB4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0XHRtYXgtd2lkdGg6IDIxMHB4O1xuXHRcdH1cblxuXHRcdGJ1dHRvbiB7XG5cdFx0XHRtYXJnaW46IDFweCA4cHggMCAwO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IHRvcDtcblx0XHR9XG5cdH1cblxuXHQvLyBXUCBUYWJsZSBzdHlsaW5nLlxuXHQud3AtbGlzdC10YWJsZSB7XG5cblx0XHQubmV3LWVudHJpZXMtbm90aWZpY2F0aW9uIHRkIHtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRhIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0cGFkZGluZzogMTBweDtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2Q5ZWRmNztcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuY29sdW1uLWluZGljYXRvcnMge1xuXHRcdFx0d2lkdGg6IDM1cHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0XHRcdGE6Zm9jdXMge1xuXHRcdFx0XHQtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmNvbHVtbi1pbmRpY2F0b3JzIC5kYXNoaWNvbnMge1xuXHRcdFx0d2lkdGg6IDE0cHg7XG5cdFx0XHRoZWlnaHQ6IDE0cHg7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRtYXJnaW4tdG9wOiAzcHg7XG5cdFx0fVxuXG5cdFx0LmluZGljYXRvci1zdGFyIC5kYXNoaWNvbnMge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiA2cHg7XG5cdFx0fVxuXG5cdFx0LmluZGljYXRvci1zdGFyIHtcblx0XHRcdGNvbG9yOiAjZTRlNGU0O1xuXG5cdFx0XHQmOmhvdmVyLFxuXHRcdFx0Ji51bnN0YXIge1xuXHRcdFx0XHRjb2xvcjogJG9yYW5nZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuaW5kaWNhdG9yLXJlYWQge1xuXHRcdFx0Y29sb3I6ICM5ZWRlODQ7XG5cblx0XHRcdCY6aG92ZXIsXG5cdFx0XHQmLnVucmVhZCB7XG5cdFx0XHRcdGNvbG9yOiAjZTRlNGU0O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5jb2x1bW4tZGF0ZSB7XG5cdFx0XHR3aWR0aDogMTUwcHg7XG5cdFx0fVxuXG5cdFx0LmNvbHVtbi1zdGF0dXMge1xuXHRcdFx0d2lkdGg6IDEyMHB4O1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdGhlaWdodDogMTJweDtcblx0XHRcdFx0d2lkdGg6IGF1dG87XG5cdFx0XHRcdG1hcmdpbjogMCAwIDAgM3B4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5jb2x1bW4tcGF5bWVudF90b3RhbCB7XG5cdFx0XHR3aWR0aDogMTAwcHg7XG5cdFx0fVxuXG5cdFx0LmNvbHVtbi1hY3Rpb25zIHtcblx0XHRcdHdpZHRoOiAxMDBweDtcblx0XHR9XG5cblx0XHQuc2VwIHtcblx0XHRcdGNvbG9yOiAjZGRkO1xuXHRcdH1cblxuXHRcdC5kZWxldGU6aG92ZXIge1xuXHRcdFx0Y29sb3I6IHJlZDtcblx0XHR9XG5cdH1cblxuXHQjd3Bmb3Jtcy1lbnRyaWVzLXRhYmxlLWVkaXQtY29sdW1ucyB7XG5cdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdGNvbG9yOiAjY2NjO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRjb2xvcjogIzY2Njtcblx0XHR9XG5cdH1cbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzgycHgpIHtcblxuXHQud3Bmb3Jtcy1hZG1pbi1jb250ZW50IHtcblx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcblx0fVxuXG5cdC53cC1saXN0LXRhYmxlIHtcblx0XHRtYXJnaW46IDAgLTEwcHggMCAtMTBweDtcblx0XHR3aWR0aDogMTAwdnc7XG5cdFx0dGFibGUtbGF5b3V0OiBhdXRvO1xuXHR9XG5cblx0LndwLWxpc3QtdGFibGUuZW50cmllcyB7XG5cblx0XHQuY29sdW1uLWluZGljYXRvcnMge1xuXHRcdFx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQuaW5kaWNhdG9ycyB7XG5cdFx0XHQuaW5kaWNhdG9yLXN0YXIge1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuXHRcdFx0LmluZGljYXRvci1yZWFkIHtcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR0cjpub3QoLmlubGluZS1lZGl0LXJvdyk6bm90KC5uby1pdGVtcykgdGQuY29sdW1uLXByaW1hcnkge1xuXHRcdFx0aGVpZ2h0OiA4cHg7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0ei1pbmRleDogKzE7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHR9XG5cblx0XHQudG9nZ2xlLXJvdyB7XG5cdFx0XHRyaWdodDogNXB4O1xuXHRcdFx0dG9wOiAxNXB4O1xuXHRcdH1cblxuXHRcdHRyOm5vdCguaW5saW5lLWVkaXQtcm93KTpub3QoLm5vLWl0ZW1zKSB0ZC5jb2x1bW4tcHJpbWFyeSt0ZCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdHRyOm5vdCguaW5saW5lLWVkaXQtcm93KTpub3QoLm5vLWl0ZW1zKSB0ZC5jb2x1bW4tcHJpbWFyeX50ZCB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcblx0XHRcdG1pbi13aWR0aDogNTB2dztcblx0XHR9XG5cblxuXHR9XG5cblx0cC5zZWFyY2gtYm94IHtcblx0XHRtYXJnaW46IDA7XG5cdFx0d2lkdGg6IGF1dG87XG5cdH1cblxuXHRpbnB1dFt0eXBlPWNoZWNrYm94XSwgaW5wdXRbdHlwZT1yYWRpb10ge1xuXHRcdGhlaWdodDogMTZweDtcblx0XHR3aWR0aDogMTZweDtcblx0fVxuXG59IiwiLy8gV2VsY29tZSBBY3RpdmF0aW9uIC0gaW5kZXgucGhwP3BhZ2U9d3Bmb3Jtcy1nZXR0aW5nLXN0YXJ0ZWRcbiN3cGZvcm1zLXdlbGNvbWUge1xuXHRib3JkZXItdG9wOiAzcHggc29saWQgJG9yYW5nZTtcblx0Y29sb3I6ICM1NTU7XG5cdHBhZGRpbmctdG9wOiAxMTBweDtcblxuXHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRwYWRkaW5nLXRvcDogNjRweDtcblx0fVxuXG5cdCosXG5cdCo6OmJlZm9yZSxcblx0Kjo6YWZ0ZXIge1xuXHRcdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHQtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdC5jb250YWluZXIge1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdG1heC13aWR0aDogNzIwcHg7XG5cdFx0cGFkZGluZzogMDtcblx0fVxuXG5cdC5ibG9jayB7XG5cdFx0cGFkZGluZzogNDBweDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0cGFkZGluZzogMjBweDtcblx0XHR9XG5cdH1cblxuXHRpbWcge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGF1dG87XG5cdH1cblxuXHRoMSB7XG5cdFx0Y29sb3I6ICMyMjI7XG5cdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRtYXJnaW46IDAgMCAxNnB4IDA7XG5cdH1cblxuXHRoNSB7XG5cdFx0Y29sb3I6ICMyMjI7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdG1hcmdpbjogMCAwIDhweCAwO1xuXHR9XG5cblx0aDYge1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHRmb250LXdlaWdodDogNDAwO1xuXHRcdGxpbmUtaGVpZ2h0OiAxLjY7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdHAge1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRtYXJnaW46IDAgMCAyMHB4IDA7XG5cdH1cblxuXHQuYnV0dG9uLXdyYXAge1xuXHRcdG1heC13aWR0aDogNTkwcHg7XG5cdFx0bWFyZ2luOiAwIGF1dG8gMCBhdXRvO1xuXG5cdFx0LmxlZnQge1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQucmlnaHQge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdHBhZGRpbmctbGVmdDogMjBweDtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuaW50cm8ge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgI2UxZTFlMTtcblx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0bWFyZ2luLWJvdHRvbTogMzBweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZy10b3A6IDQwcHg7XG5cblx0XHQuc3VsbGllIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRib3JkZXI6IDJweCBzb2xpZCAjZTFlMWUxO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNTAlO1xuXHRcdFx0aGVpZ2h0OiAxMTBweDtcblx0XHRcdHdpZHRoOiAxMTBweDtcblx0XHRcdHBhZGRpbmc6IDE4cHggMTRweCAwIDE0cHg7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IC01OHB4O1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0bWFyZ2luLWxlZnQ6IC01NXB4O1xuXHRcdH1cblxuXHRcdC52aWRlby10aHVtYm5haWwge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW46IDAgYXV0bztcblx0XHR9XG5cblx0XHQuYnV0dG9uLXdyYXAge1xuXHRcdFx0bWFyZ2luLXRvcDogMjVweDtcblx0XHR9XG5cdH1cblxuXHQuZmVhdHVyZXMge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgI2UxZTFlMTtcblx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRwYWRkaW5nLXRvcDogMjBweDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMjBweDtcblxuXHRcdC5mZWF0dXJlLWxpc3Qge1xuXHRcdFx0bWFyZ2luLXRvcDogNjBweDtcblx0XHR9XG5cblx0XHQuZmVhdHVyZS1ibG9jayB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMzVweDtcblx0XHRcdG92ZXJmbG93OiBhdXRvO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXG5cdFx0XHQmLmZpcnN0IHtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblx0XHRcdFx0Y2xlYXI6IGJvdGg7XG5cblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmLmxhc3Qge1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0XHRtYXgtd2lkdGg6IDQ2cHg7XG5cdFx0XHR9XG5cblx0XHRcdGg1IHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDY4cHhcblx0XHRcdH1cblxuXHRcdFx0cCB7XG5cdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDY4cHhcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYnV0dG9uLXdyYXAge1xuXHRcdFx0bWFyZ2luLXRvcDogMjVweDtcblx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHR9XG5cdH1cblxuXHQudXBncmFkZS1jdGEge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgI2UxZTFlMTtcblx0XHRib3JkZXItdG9wOiAwO1xuXHRcdGJvcmRlci1ib3R0b206IDA7XG5cdFx0Y29sb3I6ICNmZmY7XG5cblx0XHRoMiB7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdGZvbnQtc2l6ZTogMjBweDtcblx0XHRcdG1hcmdpbjogMCAwIDMwcHggMDtcblx0XHR9XG5cblx0XHR1bCB7XG5cdFx0XHRkaXNwbGF5OiAtbXMtZmxleDtcblx0XHRcdGRpc3BsYXk6IC13ZWJraXQtZmxleDtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0XHQtd2Via2l0LWZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGZsZXgtd3JhcDogd3JhcDtcblx0XHRcdGZvbnQtc2l6ZTogMTVweDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiA1MCU7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDhweCAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0XHRcdC5kYXNoaWNvbnMge1xuXHRcdFx0XHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OiA1cHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQubGVmdCB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiA2Ni42NjY2NjYlO1xuXHRcdFx0cGFkZGluZy1yaWdodDogMjBweDtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQucmlnaHQge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0d2lkdGg6IDMzLjMzMzMzMyU7XG5cdFx0XHRwYWRkaW5nOiAyMHB4IDAgMCAyMHB4O1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDA7XG5cdFx0XHR9XG5cblx0XHRcdGgyIHtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdFx0c3BhbiB7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNTU1O1xuXHRcdFx0XHRcdHBhZGRpbmc6IDAgMTVweCAxMnB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5wcmljZSB7XG5cdFx0XHRcdHBhZGRpbmc6IDI2cHggMDtcblxuXHRcdFx0XHQuYW1vdW50IHtcblx0XHRcdFx0XHRmb250LXNpemU6IDQ4cHg7XG5cdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0XHRcdFx0Y29udGVudDogJyQnO1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0dG9wOiAtOHB4O1xuXHRcdFx0XHRcdFx0bGVmdDogLTE2cHg7XG5cdFx0XHRcdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnRlcm0ge1xuXHRcdFx0XHRcdGZvbnQtc2l6ZTogMTJweDtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblxuXHR9XG5cblx0LnRlc3RpbW9uaWFscyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRib3JkZXI6IDJweCBzb2xpZCAjZTFlMWUxO1xuXHRcdGJvcmRlci10b3A6IDA7XG5cdFx0cGFkZGluZzogMjBweCAwO1xuXG5cdFx0LnRlc3RpbW9uaWFsLWJsb2NrIHtcblx0XHRcdG1hcmdpbjogNTBweCAwIDAgMDs7XG5cblx0XHRcdGltZyB7XG5cdFx0XHRcdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1heC13aWR0aDogMTAwcHg7XG5cdFx0XHRcdGJveC1zaGFkb3c6IDAgMCAxOHB4IHJnYmEoMCwwLDAsLjIpO1xuXG5cdFx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHRcdHdpZHRoOiA2NXB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHAge1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDEycHggMTQwcHg7XG5cblx0XHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDEwMHB4O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQuZm9vdGVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxO1xuXHRcdGJvcmRlcjogMnB4IHNvbGlkICNlMWUxZTE7XG5cdFx0Ym9yZGVyLXRvcDogMDtcblx0XHRib3JkZXItcmFkaXVzOiAwIDAgMnB4IDJweDtcblx0fVxuXG5cdC8vIENoYW5nZXMgZm9yIHBhaWQgdmVyc2lvbi5cblx0Ji5wcm8ge1xuXG5cdFx0LmZlYXR1cmVzIHtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkICNlMWUxZTE7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXHRcdH1cblxuXHRcdC51cGdyYWRlLFxuXHRcdC5mb290ZXIge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQudGVzdGltb25pYWxzIHtcblx0XHRcdGJvcmRlcjogMnB4IHNvbGlkICNlMWUxZTE7XG5cdFx0fVxuXHR9XG59XG5cbi5kYXNoYm9hcmRfcGFnZV93cGZvcm1zLWdldHRpbmctc3RhcnRlZCB7XG5cblx0LnZpZGVvLWNvbnRhaW5lciB7XG5cdFx0Ym9yZGVyOiAycHggc29saWQgI2UxZTFlMTtcblx0fVxuXG5cdC8vIEhpZGUgYWRtaW4gZm9vdGVyLlxuXHQjd3Bmb290ZXIsXG5cdGRpdi5ub3RpY2Uge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuIiwiLy8gQWRkb25zIExpc3QgLSBhZG1pbi5waHA/cGFnZT13cGZvcm1zLWFkZG9uc1xuI3dwZm9ybXMtYWRtaW4tYWRkb25zIHtcblxuXHQqLFxuXHQqOjpiZWZvcmUsXG5cdCo6OmFmdGVyIHtcblx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblxuXHQuYWRkb25zLWNvbnRhaW5lciB7XG5cdFx0bWFyZ2luLWxlZnQ6IC0yMHB4O1xuXHRcdG1hcmdpbi1yaWdodDogLTIwcHg7XG5cdH1cblxuXHQudW5sb2NrLW1zZyB7XG5cdFx0cGFkZGluZzogMCAyMHB4O1xuXHRcdG1hcmdpbi10b3A6IC0yMHB4O1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG5cblx0I3dwZm9ybXMtYWRtaW4tYWRkb25zLXNlYXJjaCB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdGNvbG9yOiAjMzMzO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdFx0cGFkZGluZzogN3B4IDEycHg7XG5cdFx0bWFyZ2luOiAtM3B4IDEwcHggMCAwO1xuXHRcdHdpZHRoOiAyMDBweDtcblx0XHRtaW4taGVpZ2h0OiAzNXB4O1xuXHRcdGZsb2F0OiByaWdodDtcblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjYmJiO1xuXHRcdH1cblx0fVxuXG5cdC5hZGRvbi1jb250YWluZXIge1xuXHRcdHBhZGRpbmc6IDAgMjBweDtcblx0XHRmbG9hdDogbGVmdDtcblx0XHR3aWR0aDogMzMuMzMzMzMzJTtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPDEyNTBweFwiKSB7XG5cdFx0XHR3aWR0aDogNTAlO1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdH1cblx0fVxuXG5cdGg0IHtcblx0XHRmb250LXNpemU6IDE3cHg7XG5cdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0fVxuXG5cdC5hZGRvbi1pdGVtIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdG1hcmdpbjogMCAwIDQwcHggMDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0bWFyZ2luOiAwIDBcblx0XHR9XG5cblx0XHRpbWcge1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2VlZTtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWF4LXdpZHRoOiA3NXB4O1xuXHRcdH1cblxuXHRcdGg1IHtcblx0XHRcdG1hcmdpbjogMCAwIDEwcHggMTAwcHg7XG5cdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0fVxuXG5cdFx0cCB7XG5cdFx0XHRtYXJnaW46IDAgMCAwIDEwMHB4O1xuXHRcdH1cblxuXHRcdC5kZXRhaWxzIHtcblx0XHRcdHBhZGRpbmc6IDMwcHggMjBweDtcblxuXHRcdH1cblxuXHRcdC5hY3Rpb25zIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG5cdFx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcblx0XHRcdHBhZGRpbmc6IDIwcHg7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRcdC5tc2cge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdHRleHQtYWxpZ246IGNlbnRlcjtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0dG9wOiAwO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHR6LWluZGV4OiA5OTtcblx0XHRcdFx0cGFkZGluZzogMjBweDtcblx0XHRcdFx0ZGlzcGxheTogLXdlYmtpdC1ib3g7XG5cdFx0XHRcdGRpc3BsYXk6IC1tb3otYm94O1xuXHRcdFx0XHRkaXNwbGF5OiAtbXMtZmxleGJveDtcblx0XHRcdFx0ZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuXHRcdFx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdFx0XHQtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0XHRcdC1tcy1hbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuXHRcdFx0XHQmLnN1Y2Nlc3Mge1xuXHRcdFx0XHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmVycm9yIHtcblx0XHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnN0YXR1cyB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHBhZGRpbmctdG9wOiA4cHg7XG5cblx0XHRcdC5zdGF0dXMtaW5hY3RpdmUge1xuXHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0fVxuXG5cdFx0XHQuc3RhdHVzLWRvd25sb2FkIHtcblx0XHRcdFx0Y29sb3I6ICM2NjY7XG5cdFx0XHR9XG5cblx0XHRcdC5zdGF0dXMtYWN0aXZlIHtcblx0XHRcdFx0Y29sb3I6ICRncmVlbjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQudXBncmFkZS1idXR0b24ge1xuXHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdFx0XHRhIHtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0d2lkdGg6IDE0MHB4O1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdHBhZGRpbmc6IDhweCA1cHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmFjdGlvbi1idXR0b24ge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXG5cdFx0XHRidXR0b24ge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBub25lO1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAzcHg7XG5cdFx0XHRcdGJveC1zaGFkb3c6IG5vbmU7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdFx0d2lkdGg6IDE0MHB4O1xuXHRcdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRcdHBhZGRpbmc6IDhweCA1cHg7XG5cblx0XHRcdFx0Jjpob3Zlcixcblx0XHRcdFx0Ji5sb2FkaW5nIHtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZTllOWU5O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LmZhIHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDhweDtcblxuXHRcdFx0XHRcdCYuZmEtc3Bpbm5lciB7XG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5zdGF0dXMtYWN0aXZlIHtcblxuXHRcdFx0XHRcdC5mYSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogJGdyZWVuO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuc3RhdHVzLWluYWN0aXZlIHtcblxuXHRcdFx0XHRcdC5mYSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuc3RhdHVzLWRvd25sb2FkIHtcblxuXHRcdFx0XHRcdC5mYSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogIzk5OTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmRpc2FibGVkIHtcblx0XHRcdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmLmxvYWRpbmcge1xuXG5cdFx0XHRcdFx0LmZhIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAjNjY2O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLy8gQWJvdXQgV1BGb3JtcyAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtYWJvdXRcblxuJHBhZGRpbmctZGVmYXVsdDogMzBweDtcbiRib3JkZXI6IDFweCBzb2xpZCAjREREREREO1xuXG4vLyBAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcbi8vIFx0d2lkdGg6IDUwJTtcbi8vIH1cblxuLypcbid4cy1waG9uZSc6IDMyMHB4LFxuXHQncGhvbmUnOiA2MDBweCxcblx0J2lwYWQnOiA3NjhweCxcblx0J3RhYmxldCc6IDc4MnB4LFxuXHQnZGVza3RvcCc6IDk2MHB4LFxuKi9cblxuI3dwZm9ybXMtYWRtaW4tYWJvdXQge1xuXG5cdCosICo6OmJlZm9yZSwgKjo6YWZ0ZXIge1xuXHRcdC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHQtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0fVxuXG5cdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24ge1xuXHRcdG1hcmdpbjogMCAyMHB4IDIwcHg7XG5cdFx0cGFkZGluZzogJHBhZGRpbmctZGVmYXVsdDtcblx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdGJvcmRlcjogJGJvcmRlcjtcblx0XHRsaW5lLWhlaWdodDogMjtcblxuXHRcdGgxLCBoMiwgaDMsIGg0LCBoNSB7XG5cdFx0XHRtYXJnaW4tdG9wOiAwO1xuXHRcdFx0cGFkZGluZy10b3A6IDA7XG5cdFx0XHRsaW5lLWhlaWdodDogMS42O1xuXHRcdH1cblxuXHRcdGgyIHtcblx0XHRcdGZvbnQtc2l6ZTogMjRweDtcblx0XHR9XG5cblx0XHRoMyB7XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAzMHB4O1xuXHRcdFx0Y29sb3I6ICMyMzI4MkM7XG5cdFx0fVxuXG5cdFx0dWwsIHAge1xuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcblxuXHRcdFx0Ji5iaWdnZXJ7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRcdH1cblx0XHRcdCYuc21hbGxlciB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdH1cblxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRociB7XG5cdFx0XHRtYXJnaW46ICRwYWRkaW5nLWRlZmF1bHQgMDtcblx0XHR9XG5cblx0XHRmaWd1cmUge1xuXHRcdFx0bWFyZ2luOiAwO1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdH1cblxuXHRcdFx0ZmlnY2FwdGlvbiB7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHRcdFx0Y29sb3I6ICM4ODg4ODg7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDVweDtcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdFx0XHRsaW5lLWhlaWdodDogaW5pdGlhbDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tNDAge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAkcGFkZGluZy1kZWZhdWx0LzI7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAwO1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cdFx0LndwZm9ybXMtYWRtaW4tY29sdW1uLTYwIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLWRlZmF1bHQvMjtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8aXBhZFwiKSB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHVsLmxpc3QtcGxhaW4ge1xuXHRcdFx0bWFyZ2luLXRvcDogMDtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHR1bC5saXN0LWZlYXR1cmVzIHtcblx0XHRcdGxpIC5mYSB7XG5cdFx0XHRcdGNvbG9yOiAjMmE5YjM5O1xuXHRcdFx0XHRtYXJnaW46IDAgOHB4IDAgMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQuZmEtc3RhciB7Y29sb3I6IGdvbGR9XG5cblx0XHQubm8tbWFyZ2luIHttYXJnaW46IDAgIWltcG9ydGFudH1cblx0XHQubm8tcGFkZGluZyB7cGFkZGluZzogMCAhaW1wb3J0YW50fVxuXHRcdC5jZW50ZXJlZCB7dGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnR9XG5cdH1cblxuXHQud3Bmb3Jtcy1hZG1pbi1hYm91dC1zZWN0aW9uLWZpcnN0LWZvcm0ge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYWRtaW4tYWJvdXQtc2VjdGlvbi1maXJzdC1mb3JtLXRleHQge1xuXHRcdFx0ZmxleDogMTtcblx0XHRcdHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nLWRlZmF1bHQ7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHRmbGV4OiBub25lO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24tZmlyc3QtZm9ybS12aWRlbyB7XG5cdFx0XHRpZnJhbWUge1xuXHRcdFx0XHRib3JkZXI6ICRib3JkZXI7XG5cdFx0XHR9XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogMjBweDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQud3Bmb3Jtcy1hZG1pbi1hYm91dC1zZWN0aW9uLWhlcm8ge1xuXHRcdHBhZGRpbmc6IDA7XG5cblx0XHQud3Bmb3Jtcy1hZG1pbi1hYm91dC1zZWN0aW9uLWhlcm8tbWFpbixcblx0XHQud3Bmb3Jtcy1hZG1pbi1hYm91dC1zZWN0aW9uLWhlcm8tZXh0cmEge1xuXHRcdFx0cGFkZGluZzogJHBhZGRpbmctZGVmYXVsdDtcblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1hZG1pbi1hYm91dC1zZWN0aW9uLWhlcm8tZXh0cmEge1xuXG5cdFx0XHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tNTAge1xuXG5cdFx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYWRtaW4tYWJvdXQtc2VjdGlvbi1oZXJvLW1haW4ge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0ZBRkFGQTtcblx0XHRcdGJvcmRlci1ib3R0b206ICRib3JkZXI7XG5cblx0XHRcdCYubm8tYm9yZGVyIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0XHRcdH1cblxuXHRcdFx0cCB7XG5cdFx0XHRcdGNvbG9yOiAjNjY2O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGgzLmNhbGwtdG8tYWN0aW9uIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IC0xMHB4O1xuXHRcdH1cblxuXHRcdHNwYW4ucHJpY2UtMjAtb2ZmIHtcblx0XHRcdGNvbG9yOiAjNkFCMjU1O1xuXHRcdH1cblx0fVxuXG5cdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24tc3F1YXNoZWQge1xuXHRcdG1hcmdpbi1ib3R0b206IDA7XG5cblx0XHQmOm5vdCg6bGFzdC1vZi10eXBlKSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdH1cblx0fVxuXG5cdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24tcG9zdCB7XG5cblx0XHRoMiB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAtMTBweDtcblx0XHR9XG5cblx0XHRoMyB7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxNXB4O1xuXHRcdH1cblxuXHRcdHA6bGFzdC1vZi10eXBlIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDMwcHg7XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYWRtaW4tY29sdW1uLTIwIHtcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDIwcHg7XG5cdFx0XHR3aWR0aDogYXV0bztcblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0d2lkdGg6IDI3MHB4O1xuXHRcdFx0fVxuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjxpcGFkXCIpIHtcblx0XHRcdFx0d2lkdGg6IDIwJTtcblx0XHRcdFx0aW1nIHtcblx0XHRcdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQud3Bmb3Jtcy1hZG1pbi1jb2x1bW4tODAge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAyMHB4O1xuXHRcdFx0d2lkdGg6IGNhbGMoMTAwJSAtIDIwcHggLSAyNzBweCk7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGlwYWRcIikge1xuXHRcdFx0XHR3aWR0aDogODAlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24tcG9zdC1saW5rIHtcblx0XHRcdHBhZGRpbmc6IDEwcHggJHBhZGRpbmctZGVmYXVsdC8yO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI0RGNzczOTtcblx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdFx0bWFyZ2luLXRvcDogMTVweDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblxuXHRcdFx0Jjpob3ZlciB7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNCODVBMUI7XG5cdFx0XHR9XG5cblx0XHRcdC5mYSB7XG5cdFx0XHRcdGNvbG9yOiAjRURCQTlFO1xuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogOHB4O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC53cGZvcm1zLWFkbWluLWFib3V0LXNlY3Rpb24tdGFibGUge1xuXG5cdFx0dGFibGUge1xuXHRcdFx0Ym9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuXHRcdFx0dHIge1xuXHRcdFx0XHR0ZCB7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogJGJvcmRlcjtcblx0XHRcdFx0XHRib3JkZXItcmlnaHQ6ICRib3JkZXI7XG5cdFx0XHRcdFx0cGFkZGluZzogJHBhZGRpbmctZGVmYXVsdDtcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG5cdFx0XHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRcdFx0Ym9yZGVyLXJpZ2h0OiAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB0ZCB7XG5cdFx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRwIHtcblx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcblx0XHRcdFx0YmFja2dyb3VuZC1zaXplOiAxNXB4IGF1dG87XG5cdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IDAgNnB4O1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cblx0XHRcdFx0Ji5mZWF0dXJlcy1mdWxsIHtcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6ICRwYWRkaW5nLWRlZmF1bHQ7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9hYm91dC9pY29uLWZ1bGwuc3ZnKTtcblx0XHRcdFx0fVxuXHRcdFx0XHQmLmZlYXR1cmVzLW5vbmUge1xuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogJHBhZGRpbmctZGVmYXVsdDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Fib3V0L2ljb24tbm9uZS5zdmcpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdCYuZmVhdHVyZXMtcGFydGlhbCB7XG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAkcGFkZGluZy1kZWZhdWx0O1xuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246IC0zcHggMDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDIzcHggYXV0bztcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2Fib3V0L2ljb24tcGFydGlhbC5zdmcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LndwZm9ybXMtYWRtaW4tYWJvdXQtc2VjdGlvbi1oZXJvLW1haW4ge1xuXHRcdFx0cGFkZGluZzogMDtcblx0XHRcdGgzIHtcblx0XHRcdFx0cGFkZGluZzogJHBhZGRpbmctZGVmYXVsdCAkcGFkZGluZy1kZWZhdWx0ICRwYWRkaW5nLWRlZmF1bHQgJHBhZGRpbmctZGVmYXVsdCoyO1xuXHRcdFx0fVxuXHRcdFx0LndwZm9ybXMtYWRtaW4tY29sdW1uLTMzOmZpcnN0LWNoaWxkIGgzIHtcblx0XHRcdFx0cGFkZGluZzogJHBhZGRpbmctZGVmYXVsdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQjd3Bmb3Jtcy1hZG1pbi1hZGRvbnMge1xuXHRcdHBhZGRpbmc6IDAgJHBhZGRpbmctZGVmYXVsdDtcblxuXHRcdC5hZGRvbi1jb250YWluZXIge1xuXHRcdFx0cGFkZGluZzogMCAxMHB4O1xuXHRcdH1cblxuXHRcdC5hZGRvbi1pdGVtIHtcblxuXHRcdFx0LmRldGFpbHMge1xuXHRcdFx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdFx0fVxuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRwYWRkaW5nOiAxMHB4O1xuXG5cdFx0XHRcdCZbc3JjKj1cIi1taVwiXSB7XG5cdFx0XHRcdFx0cGFkZGluZzogMTNweDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuYWN0aW9uLWJ1dHRvbiAuYnV0dG9uIHtcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0XHRcdGZvbnQtc2l6ZTogMTNweDtcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDI2cHg7XG5cdFx0XHRcdGhlaWdodDogMjhweDtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwIDEwcHggMXB4O1xuXHRcdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRcdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblx0XHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjY2NjY2NjO1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiAjZjdmN2Y3O1xuXHRcdFx0XHRib3gtc2hhZG93OiAwIDFweCAwICNjY2NjY2M7XG5cdFx0XHRcdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cblx0XHRcdFx0Jjpob3ZlciwgJjpmb2N1cyAge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICNmYWZhZmE7XG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjOTk5O1xuXHRcdFx0XHRcdGNvbG9yOiAjMjMyODJkO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ji5idXR0b24tcHJpbWFyeSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogIzAwODViYTtcblx0XHRcdFx0XHRib3JkZXItY29sb3I6ICMwMDczYWEgIzAwNjc5OSAjMDA2Nzk5O1xuXHRcdFx0XHRcdGJveC1zaGFkb3c6IDAgMXB4IDAgIzAwNjc5OTtcblx0XHRcdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdFx0XHR0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAjMDA2Nzk5LCAxcHggMCAxcHggIzAwNjc5OSwgMCAxcHggMXB4ICMwMDY3OTksIC0xcHggMCAxcHggIzAwNjc5OTtcblxuXHRcdFx0XHRcdCY6aG92ZXIsICY6Zm9jdXMge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogIzAwOGVjMjtcblx0XHRcdFx0XHRcdGJvcmRlci1jb2xvcjogIzAwNjc5OTtcblx0XHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC5mYS1zcGlubmVyIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuYnV0dG9uLXNlY29uZGFyeSB7XG5cdFx0XHRcdFx0Y29sb3I6ICM1NTU7XG5cdFx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjY2NjY2NjO1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6ICNmN2Y3Zjc7XG5cdFx0XHRcdFx0Ym94LXNoYWRvdzogMCAxcHggMCAjY2NjY2NjO1xuXG5cdFx0XHRcdFx0Jjpob3ZlciwgJjpmb2N1cyAge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZDogI2ZhZmFmYTtcblx0XHRcdFx0XHRcdGJvcmRlci1jb2xvcjogIzk5OTtcblx0XHRcdFx0XHRcdGNvbG9yOiAjMjMyODJkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdCYuZGlzYWJsZWQge1xuXHRcdFx0XHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIiwiLy8gU2V0dGluZ3MgLSBhZG1pbi5waHA/cGFnZT13cGZvcm1zLXNldHRpbmdzXG4vLyBUb29scyAtIGFkbWluLnBocD9wYWdlPXdwZm9ybXMtdG9vbHNcbi53cGZvcm1zLWFkbWluLXNldHRpbmdzIHtcblxuXHQqLFxuXHQqOjpiZWZvcmUsXG5cdCo6OmFmdGVyIHtcblx0XHQtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdH1cblxuXHQvLyBTZXR0aW5nIHJvd3MsIGVnIGZpZWxkIHJvdy5cblx0LndwZm9ybXMtc2V0dGluZy1yb3cge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU0O1xuXHRcdHBhZGRpbmc6IDMwcHggMDtcblx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMztcblxuXHRcdCY6Zmlyc3Qtb2YtdHlwZSB7XG5cdFx0XHRwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG5cdFx0XHRwYWRkaW5nOiAyMHB4IDA7XG5cdFx0fVxuXG5cdFx0Ly8gU2VjdGlvbiBoZWFkaW5nLlxuXHRcdCYuc2VjdGlvbi1oZWFkaW5nIHtcblx0XHRcdHBhZGRpbmc6IDIwcHggMDtcblxuXHRcdFx0Ji5uby1kZXNjIHtcblx0XHRcdFx0aDQge1xuXHRcdFx0XHRcdG1hcmdpbjogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQud3Bmb3Jtcy1zZXR0aW5nLWZpZWxkIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRtYXgtd2lkdGg6IDEwMDBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBUb29scyBmdWxsIHdpZHRoIGZpZWxkcy5cblx0XHQmLnRvb2xzIHtcblxuXHRcdFx0cCxcblx0XHRcdHA6Zmlyc3Qtb2YtdHlwZXtcblx0XHRcdFx0bWFyZ2luOiAwIDAgMTZweCAwO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENoZWNrYm94IHNldHRpbmdzIGZpZWxkLlxuXHRcdCYud3Bmb3Jtcy1zZXR0aW5nLXJvdy1jaGVja2JveCB7XG5cblx0XHRcdGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcblx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdG1hcmdpbjogMXB4IDAgMCAwO1xuXHRcdFx0fVxuXG5cdFx0XHQuZGVzYyB7XG5cdFx0XHRcdG1hcmdpbjogMCAwIDAgMzBweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBMaWNlbnNlIHNldHRpbmdzIGZpZWxkLlxuXHRcdCYud3Bmb3Jtcy1zZXR0aW5nLXJvdy1saWNlbnNlIHtcblxuXHRcdFx0LndwZm9ybXMtc2V0dGluZy1sYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA4cHg7XG5cdFx0XHR9XG5cblx0XHRcdHAudHlwZSB7XG5cdFx0XHRcdG1hcmdpbi10b3A6IDEycHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gVGV4dC9udW1iZXIgc2V0dGluZ3MgZmllbGQuXG5cdFx0Ji53cGZvcm1zLXNldHRpbmctcm93LXRleHQsXG5cdFx0Ji53cGZvcm1zLXNldHRpbmctcm93LW51bWJlciB7XG5cblx0XHRcdC53cGZvcm1zLXNldHRpbmctbGFiZWwge1xuXHRcdFx0XHRwYWRkaW5nLXRvcDogOHB4O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFNlbGVjdCBzZXR0aW5ncyBmaWVsZC5cblx0XHQmLndwZm9ybXMtc2V0dGluZy1yb3ctc2VsZWN0IHtcblxuXHRcdFx0LndwZm9ybXMtc2V0dGluZy1sYWJlbCB7XG5cdFx0XHRcdHBhZGRpbmctdG9wOiA4cHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUmFkaW8gc2V0dGluZ3MgZmllbGQuXG5cdFx0Ji53cGZvcm1zLXNldHRpbmctcm93LXJhZGlvIHtcblxuXHRcdFx0LndwZm9ybXMtc2V0dGluZy1maWVsZCB7XG5cblx0XHRcdFx0aW5wdXRbdHlwZT1yYWRpb10ge1xuXHRcdFx0XHRcdG1hcmdpbjogLTNweCAxMHB4IDAgMDtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGxhYmVsIHtcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDMwcHg7XG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0XHQvLyBFbWFpbCBUZW1wbGF0ZSBzZXR0aW5nIGZpZWxkLlxuXHRcdCYjd3Bmb3Jtcy1zZXR0aW5nLXJvdy1lbWFpbC10ZW1wbGF0ZSB7XG5cblx0XHRcdC53cGZvcm1zLXNldHRpbmctZmllbGQge1xuXG5cdFx0XHRcdGxhYmVsOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogXCIgXCI7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0d2lkdGg6IDE1NXB4O1xuXHRcdFx0XHRcdGhlaWdodDogMTgwcHg7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDAgMTBweCAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Lm9wdGlvbi1kZWZhdWx0OmJlZm9yZSB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9zZXR0aW5ncy1lbWFpbC1odG1sLnBuZykgY2VudGVyIGNlbnRlcjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5vcHRpb24tbm9uZTpiZWZvcmUge1xuXHRcdFx0XHRcdGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvc2V0dGluZ3MtZW1haWwtcGxhaW50ZXh0LnBuZykgY2VudGVyIGNlbnRlcjtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFJhZGlvIHNldHRpbmdzIGZpZWxkLlxuXHRcdCYud3Bmb3Jtcy1zZXR0aW5nLXJvdy1pbWFnZSB7XG5cblx0XHRcdC53cGZvcm1zLXNldHRpbmctZmllbGQge1xuXG5cdFx0XHRcdGltZyB7XG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDAgMjBweCAwO1xuXHRcdFx0XHRcdG1heC13aWR0aDogNDAwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBDb2xvciBwaWNrZXIgc2V0dGluZ3MgZmllbGQuXG5cdFx0Ji53cGZvcm1zLXNldHRpbmctcm93LWNvbG9yIHtcblxuXHRcdFx0LndwZm9ybXMtY29sb3ItcGlja2VyIHtcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiA0MHB4O1xuXHRcdFx0fVxuXG5cdFx0XHQubWluaWNvbG9ycy1pbnB1dC1zd2F0Y2gge1xuXHRcdFx0XHR0b3A6IDdweDtcblx0XHRcdFx0bGVmdDogN3B4O1xuXHRcdFx0XHRoZWlnaHQ6IDIxcHg7XG5cdFx0XHRcdHdpZHRoOiAyMXB4O1xuXHRcdFx0XHRib3JkZXItcmFkaXVzOiAycHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gR2VuZXJhbCBlbGVtZW50cy5cblx0XHRoNCB7XG5cdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0bWFyZ2luOiAwIDAgNnB4IDA7XG5cdFx0fVxuXG5cdFx0aDMge1xuXHRcdFx0Zm9udC1zaXplOiAyNHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdG1hcmdpbjogMCAwIDIwcHggMDtcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdG1hcmdpbjogMTJweCAwIDA7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRsaW5lLWhlaWdodDogMS4zO1xuXG5cdFx0XHQmOmZpcnN0LW9mLXR5cGUge1xuXHRcdFx0XHRtYXJnaW46IDhweCAwIDA7XG5cdFx0XHR9XG5cblx0XHRcdCYuZGVzYyB7XG5cdFx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdFx0Y29sb3I6ICM2NjY7XG5cdFx0XHR9XG5cblx0XHRcdCYuZGlzY291bnQtbm90ZSB7XG5cdFx0XHRcdGZvbnQtc3R5bGU6IGl0YWxpYztcblx0XHRcdFx0Y29sb3I6ICM2NjY7XG5cblx0XHRcdFx0c3Ryb25nIHtcblx0XHRcdFx0XHRjb2xvcjogZ3JlZW47XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBGb3JtIGVsZW1lbnRzLlxuXHRcdGlucHV0W3R5cGU9dGV4dF0sXG5cdFx0aW5wdXRbdHlwZT1udW1iZXJdLFxuXHRcdGlucHV0W3R5cGU9cGFzc3dvcmRdIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGNvbG9yOiAjMzMzO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRcdHBhZGRpbmc6IDdweCAxMnB4O1xuXHRcdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXHRcdFx0d2lkdGg6IDQwMHB4O1xuXHRcdFx0bWluLWhlaWdodDogMzVweDtcblxuXHRcdFx0QGluY2x1ZGUgbWVkaWEoXCI8ZGVza3RvcFwiKSB7XG5cdFx0XHRcdHdpZHRoOiAzMDBweDtcblx0XHRcdH1cblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdGJvcmRlci1jb2xvcjogI2JiYjtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpbnB1dFt0eXBlPW51bWJlcl0ge1xuXHRcdFx0d2lkdGg6IDEwMHB4O1xuXHRcdH1cblxuXHRcdHRleHRhcmVhIHtcblxuXHRcdH1cblxuXHRcdGJ1dHRvbiB7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdFx0fVxuXG5cdFx0LmNob2ljZXNqcy1zZWxlY3Qtd3JhcCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdG1heC13aWR0aDogNDAwcHg7XG5cblx0XHRcdEBpbmNsdWRlIG1lZGlhKFwiPGRlc2t0b3BcIikge1xuXHRcdFx0XHR3aWR0aDogMzAwcHg7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LnByb2dyZXNzLWJhciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJG9yYW5nZTtcblx0XHRcdGhlaWdodDogMzBweDtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0bWFyZ2luOiAwIDAgMTZweCAwO1xuXG5cdFx0XHQmLmNvbXBsZXRlIHtcblx0XHRcdFx0Ym9yZGVyOiAxcHggc29saWQgJGdyZWVuO1xuXG5cdFx0XHRcdC5iYXIge1xuXHRcdFx0XHRcdGJhY2tncm91bmQtY29sb3I6ICRncmVlbjtcblxuXHRcdFx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0XHRcdFx0Y29udGVudDogbm9uZTtcblx0XHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC5iYXIge1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdFx0YmFja2dyb3VuZDogJG9yYW5nZTtcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xuXHRcdFx0XHRsZWZ0OiAwO1xuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHRcdC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC41cyBlYXNlLWluLW91dDtcblx0XHRcdFx0LW1vei10cmFuc2l0aW9uOiB3aWR0aCAwLjVzIGVhc2UtaW4tb3V0O1xuXHRcdFx0XHQtby10cmFuc2l0aW9uOiB3aWR0aCAwLjVzIGVhc2UtaW4tb3V0O1xuXHRcdFx0XHR0cmFuc2l0aW9uOiB3aWR0aCAwLjVzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHRcdEAtd2Via2l0LWtleWZyYW1lcyBwcm9ncmVzcyB7XG5cdFx0XHRcdFx0dG8geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA2MHB4IDA7IH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdEAtbW96LWtleWZyYW1lcyBwcm9ncmVzcyB7XG5cdFx0XHRcdCAgdG8geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA2MHB4IDA7IH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdEBrZXlmcmFtZXMgcHJvZ3Jlc3Mge1xuXHRcdFx0XHQgIHRvIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogNjBweCAwOyB9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQmOmFmdGVyIHtcblx0XHRcdFx0XHRjb250ZW50OiAnJztcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdFx0LXdlYmtpdC1hbmltYXRpb246IHByb2dyZXNzIDFzIGxpbmVhciBpbmZpbml0ZTtcblx0XHRcdFx0XHQtbW96LWFuaW1hdGlvbjogcHJvZ3Jlc3MgMXMgbGluZWFyIGluZmluaXRlO1xuXHRcdFx0XHRcdGFuaW1hdGlvbjogcHJvZ3Jlc3MgMXMgbGluZWFyIGluZmluaXRlO1xuXHRcdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDYwcHggNjBweDtcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCgtNDVkZWcsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNTAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG5cdFx0XHRcdFx0YmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KC00NWRlZywgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KSA1MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSkgNzUlLCB0cmFuc3BhcmVudCA3NSUsIHRyYW5zcGFyZW50KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIFJvdyBsYWJlbCAobGVmdCkuXG5cdC53cGZvcm1zLXNldHRpbmctbGFiZWwge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZsb2F0OiBsZWZ0O1xuXHRcdHdpZHRoOiAyMDBweDtcblx0XHRwYWRkaW5nOiAwO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcblx0XHRcdGZsb2F0OiBub25lO1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMTVweDtcblx0XHR9XG5cblx0XHRsYWJlbCB7XG5cdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0fVxuXHR9XG5cblx0Ly8gUm93IGZpZWxkIChyaWdodCkuXG5cdC53cGZvcm1zLXNldHRpbmctZmllbGQge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdG1hcmdpbjogMCAwIDAgMjAwcHg7XG5cdFx0bWF4LXdpZHRoOiA4MDBweDtcblxuXHRcdEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHR9XG5cblx0cC5zdWJtaXQge1xuXHRcdG1hcmdpbjogMDtcblx0XHRwYWRkaW5nOiAyNXB4IDA7XG5cdH1cblxuXHQvLyBHZW5lcmljIGluZm8vY29kZSBpbmZvcm1hdGlvbi5cblx0LmluZm8tYXJlYSxcblx0LnByZS1lcnJvciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWF4LXdpZHRoOiAxMDAwcHg7XG5cdFx0aGVpZ2h0OiA0NTBweDtcblx0XHRmb250LWZhbWlseTogTWVubG8sTW9uYWNvLG1vbm9zcGFjZTtcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0XHRib3gtc2hhZG93OiBub25lO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG5cdFx0d2hpdGUtc3BhY2U6IHByZTtcblx0XHRvdmVyZmxvdzogYXV0bztcblx0XHRwYWRkaW5nOiAyMHB4O1xuXHR9XG5cblx0LnByZS1lcnJvciB7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdG1heC1oZWlnaHQ6IDI1MHB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdH1cblxuXHQvLyBDaGVja2JveCBtdWx0aS1zZWxlY3QgY29sdW1ucy5cblx0LmNoZWNrYm94LW11bHRpc2VsZWN0LWNvbHVtbnMge1xuXHRcdG1heC13aWR0aDogNjAwcHg7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0JjphZnRlciB7XG5cdFx0XHRjb250ZW50OiBcIi5cIjtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0aGVpZ2h0OiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDA7XG5cdFx0XHRmb250LXNpemU6IDA7XG5cdFx0XHRjbGVhcjogYm90aDtcblx0XHRcdG1pbi1oZWlnaHQ6IDA7XG5cdFx0XHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdFx0fVxuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogXCJcXGYwZWNcIjtcblx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0Zm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMjBweC8xIEZvbnRBd2Vzb21lO1xuXHRcdFx0dGV4dC1yZW5kZXJpbmc6IGF1dG87XG5cdFx0XHQtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0XHRcdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0XHR0b3A6IDEzMHB4O1xuXHRcdFx0bGVmdDogNTAlO1xuXHRcdFx0bWFyZ2luOiAwIDAgMCAtMTBweDtcblx0XHR9XG5cblx0XHQuaGVhZGVyIHtcblx0XHRcdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdFx0XHRmb250LXNpemU6IDEzcHg7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwIDAgNXB4IDA7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0fVxuXG5cdFx0LmZpcnN0LWNvbHVtbixcblx0XHQuc2Vjb25kLWNvbHVtbiB7XG5cdFx0XHR3aWR0aDogNDUlO1xuXHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0fVxuXG5cdFx0LmZpcnN0LWNvbHVtbiB7XG5cblx0XHR9XG5cblx0XHQuc2Vjb25kLWNvbHVtbiB7XG5cdFx0XHRmbG9hdDogcmlnaHQ7XG5cblx0XHRcdHVsIHtcblx0XHRcdFx0bGkge1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHg7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHR1bCB7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0XHRcdGhlaWdodDogMjUwcHg7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0b3ZlcmZsb3cteTogYXV0bztcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblxuXHRcdFx0bGkge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggI2VlZSBzb2xpZDtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cblx0XHRcdFx0bGFiZWwge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0XHRcdHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDMycHg7XG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuXHRcdFx0XHRcdCY6aG92ZXIge1xuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJG9yYW5nZTtcblx0XHRcdFx0XHRcdGNvbG9yOiAjZmZmO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXFxmMGM4XCI7XG5cdFx0XHRcdFx0XHRjb2xvcjogI2RkZDtcblx0XHRcdFx0XHRcdGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE2cHgvMSBGb250QXdlc29tZTtcblx0XHRcdFx0XHRcdHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuXHRcdFx0XHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdFx0XHRcdFx0XHQtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRcdFx0dG9wOiAxMnB4O1xuXHRcdFx0XHRcdFx0bGVmdDogMTBweDtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLmNoZWNrZWQge1xuXHRcdFx0XHRcdFx0b3BhY2l0eTogMC42O1xuXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXFxmMTRhXCI7XG5cdFx0XHRcdFx0XHRcdGNvbG9yOiAkZ3JlZW47XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0aW5wdXQge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHQuYWxsIHtcblx0XHRcdGNvbG9yOiAjOTk5O1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0bWFyZ2luOiAxMHB4IDAgMDtcblx0XHR9XG5cdH1cblxuXHQvLyBPdGhlciBJbXBvcnRlcnMuIChUb29scylcblx0I3dwZm9ybXMtaW1wb3J0ZXItYW5hbHl6ZSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdC5wcm9jZXNzLWNvdW50LFxuXHRcdHAge1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdH1cblxuXHRcdC51cGdyYWRlIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRmb250LXNpemU6IDE0cHg7XG5cblx0XHRcdGg1IHtcblx0XHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0XHRtYXJnaW46IDMwcHggMCAyMHB4IDA7XG5cdFx0XHR9XG5cblx0XHRcdGhyIHtcblx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNDtcblx0XHRcdFx0bWFyZ2luOiA0MHB4IDA7XG5cdFx0XHR9XG5cblx0XHRcdC53cGZvcm1zLWJ0biB7XG5cdFx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcblx0XHRcdH1cblxuXHRcdFx0dWwge1xuXHRcdFx0XHRsaSB7XG5cdFx0XHRcdFx0bGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAxNHB4O1xuXG5cdFx0XHRcdFx0Ji5mb3JtIHtcblx0XHRcdFx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdFx0XHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQjd3Bmb3Jtcy1pbXBvcnRlci1wcm9jZXNzIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXG5cdFx0LnByb2Nlc3MtY291bnQsXG5cdFx0LnByb2Nlc3MtY29tcGxldGVkIHtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR9XG5cblx0XHQucHJvY2Vzcy1jb21wbGV0ZWQge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cblx0XHQuc3RhdHVzIHtcblx0XHRcdG1hcmdpbjogMjBweCAwIDMwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgI2RkZDtcblx0XHRcdG1heC1oZWlnaHQ6IDgwMHB4O1xuXHRcdFx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblxuXHRcdFx0Lml0ZW0td3JhcCB7XG5cblx0XHRcdH1cblxuXHRcdFx0Lml0ZW0ge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRcdFx0cGFkZGluZzogMjBweDtcblxuXHRcdFx0XHQmOmxhc3Qtb2YtdHlwZSB7XG5cdFx0XHRcdFx0Ym9yZGVyOiBub25lO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0XHRcdG1hcmdpbjogMTJweCAwIDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR1bCB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxM3B4O1xuXHRcdFx0XHRcdG1hcmdpbjogMTJweCAwIDAgMTZweDtcblxuXHRcdFx0XHRcdGxpIHtcblx0XHRcdFx0XHRcdGxpc3Qtc3R5bGU6IGRpc2M7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0LnN0YXR1cy1pY29uIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRcdFx0bWFyZ2luOiAwIDEwcHggMCAwO1xuXG5cdFx0XHRcdFx0Ji5mYS1pbmZvLWNpcmNsZSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogIzAwYTBkMlxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCYuZmEtY2hlY2sge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICM0NmI0NTBcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQmLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHtcblx0XHRcdFx0XHRcdGNvbG9yOiAjZmZiOTAwXG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ji5mYS10aW1lcyxcblx0XHRcdFx0XHQmLmZhLWV4Y2xhbWF0aW9uLWNpcmNsZSB7XG5cdFx0XHRcdFx0XHRjb2xvcjogcmVkO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC5uYW1lIHtcblx0XHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdFx0ZmxvYXQ6IGxlZnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQuYWN0aW9ucyB7XG5cdFx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0XHRcdGZsb2F0OiByaWdodDtcblxuXHRcdFx0XHRcdC5zZXAge1xuXHRcdFx0XHRcdFx0Y29sb3I6ICNkZGQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gTGl0ZSB1cGdyYWRlLlxuXHQuc2V0dGluZ3MtbGl0ZS1jdGF7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGFkYWRhO1xuXHRcdHBhZGRpbmc6IDI1cHggMjBweDtcblx0XHRtYXJnaW46IDEwcHggMCAwIDA7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXG5cdFx0LmRpc21pc3Mge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAxMHB4O1xuXHRcdFx0cmlnaHQ6IDEwcHg7XG5cdFx0XHRjb2xvcjogIzY2Njtcblx0XHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHR9XG5cblx0XHRoNSB7XG5cdFx0XHRtYXJnaW46IDAgMCAxNnB4O1xuXHRcdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0XHR9XG5cblx0XHRoNiB7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0bWFyZ2luOiAwIDAgMTZweDtcblx0XHR9XG5cblx0XHRwIHtcblx0XHRcdGNvbG9yOiAjNTU1O1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0bWFyZ2luOiAwIDAgMTZweDtcblxuXHRcdFx0JjpsYXN0LW9mLXR5cGUge1xuXHRcdFx0XHRtYXJnaW46IDA7XG5cdFx0XHR9XG5cblx0XHRcdGEge1xuXHRcdFx0XHRjb2xvcjogJG9yYW5nZTtcblxuXHRcdFx0XHQmOmhvdmVyIHtcblx0XHRcdFx0XHRjb2xvcjogJGRhcmtvcmFuZ2U7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHR1bCB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXG5cdFx0XHRAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVcIikge1xuXHRcdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdFx0ZmxvYXQ6IG5vbmU7XG5cdFx0XHR9XG5cblx0XHRcdGxpIHtcblx0XHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0XHRwYWRkaW5nOiAwIDAgMnB4IDE2cHg7XG5cdFx0XHRcdGNvbG9yOiAjNTU1O1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdFx0XHQmOmJlZm9yZSB7XG5cdFx0XHRcdFx0Y29udGVudDogJysnO1xuXHRcdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRcdFx0XHR0b3A6IC0xcHg7XG5cdFx0XHRcdFx0bGVmdDogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC5saXN0IHtcblx0XHRcdG1hcmdpbjogMCAwIDE2cHggMDtcblx0XHRcdG92ZXJmbG93OiBhdXRvO1xuXHRcdFx0bWF4LXdpZHRoOiA5MDBweDtcblx0XHR9XG5cblx0XHQuZ3JlZW4ge1xuXHRcdFx0Y29sb3I6ICMyMTg5MDA7XG5cdFx0XHRmb250LXdlaWdodDogNzAwO1xuXHRcdH1cblxuXHRcdC5mYS1zdGFyIHtcblx0XHRcdGNvbG9yOiAjZmY5ODJkO1xuXHRcdH1cblx0fVxufVxuIiwiLy8gSW50ZWdyYXRpb25zIHRhYiBjb250ZW50LlxuLy8gTGVnYWN5IENTUyBhbmQgc2hvdWxkIGJlIGNsZWFuZWQgdXAgd2hlbiB0aW1lIHBlcm1pdHMuXG4jd3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlcnMge1xuXG5cdC53cGZvcm1zLXNldHRpbmdzLXByb3ZpZGVyIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRwYWRkaW5nOiAzMHB4IDA7XG5cblx0XHQmLmZvY3VzLW91dCB7XG5cdFx0XHRvcGFjaXR5OiAwLjQ7XG5cdFx0fVxuXHR9XG5cblx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItaGVhZGVyIHtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0bWF4LXdpZHRoOiAxMDAwcHg7XG5cdH1cblxuXHQud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1sb2dvIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHQuZmEge1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiA1MCU7XG5cdFx0XHRtYXJnaW46IC05cHggMCAwIDA7XG5cdFx0XHRsZWZ0OiAxMHB4O1xuXHRcdFx0Y29sb3I6ICM2NjY7XG5cdFx0XHRmb250LXNpemU6IDE4cHg7XG5cdFx0fVxuXG5cdFx0aW1nIHtcblx0XHRcdGJhY2tncm91bmQ6ICNmZmY7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0bWF4LXdpZHRoOiA5MHB4O1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRtYXJnaW46IDAgMCAwIDQwcHg7XG5cdFx0fVxuXHR9XG5cblx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItaW5mbyB7XG5cdFx0bWFyZ2luOiAwIDAgMCAxNjBweDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0cGFkZGluZzogMjBweCAwIDA7XG5cblx0XHRoMyB7XG5cdFx0XHRtYXJnaW46IDAgMCAxMHB4IDA7XG5cdFx0XHRmb250LXNpemU6IDIwcHg7XG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdH1cblxuXHRcdC5jb25uZWN0ZWQtaW5kaWNhdG9yIHtcblx0XHRcdGNvbG9yOiAjODNjMTFmO1xuXHRcdFx0d2lkdGg6IDEzNXB4O1xuXHRcdFx0Ym9yZGVyOiAxcHggc29saWQgIzgzYzExZjtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDRweDtcblx0XHRcdHBhZGRpbmc6IDhweCAxNHB4O1xuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0dG9wOiAyOHB4O1xuXHRcdFx0cmlnaHQ6IDA7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxuXG5cdC5jb25uZWN0ZWQgLndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItaW5mbyAuY29ubmVjdGVkLWluZGljYXRvciB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1hY2NvdW50cyB7XG5cdFx0bWFyZ2luOiAwIDAgMCAxNjBweDtcblx0XHRkaXNwbGF5OiBub25lO1xuXHRcdG1heC13aWR0aDogODQwcHg7XG5cdH1cblxuXHQuZm9jdXMtaW4gLndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItYWNjb3VudHMge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG5cblx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItYWNjb3VudHMtbGlzdCB1bCB7XG5cdFx0cGFkZGluZzogMDtcblx0XHRtYXJnaW46IDA7XG5cblx0XHRsaSB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDEwcHggMDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblxuXHRcdFx0JjpmaXJzdC1vZi10eXBlIHtcblx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkICNkZGQ7XG5cdFx0XHR9XG5cblx0XHRcdCY6bGFzdC1vZi10eXBlIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMTZweDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRzcGFuLmxhYmVsIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0d2lkdGg6IDUwJTtcblx0XHR9XG5cblx0XHRzcGFuLmRhdGUge1xuXHRcdFx0Y29sb3I6ICM5OTk7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdHdpZHRoOiAzNSU7XG5cdFx0fVxuXG5cdFx0c3Bhbi5yZW1vdmUge1xuXHRcdFx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdFx0d2lkdGg6IDE1JTtcblx0XHRcdHRleHQtYWxpZ246IHJpZ2h0XG5cdFx0fVxuXHR9XG5cblx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItYWNjb3VudHMtY29ubmVjdCB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRsaWdodEJsdWU7XG5cdFx0Ym9yZGVyOiAxcHggc29saWQgJGJsdWU7XG5cblx0XHRpbnB1dFt0eXBlPXRleHRdIHtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdFx0XHRib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogM3B4O1xuXHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdGNvbG9yOiAjMzMzO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRwYWRkaW5nOiA3cHggMTJweDtcblx0XHRcdG1hcmdpbjogNXB4IDA7XG5cdFx0XHR3aWR0aDogNDAwcHg7XG5cdFx0XHRtaW4taGVpZ2h0OiAzNXB4O1xuXG5cdFx0XHQmOmZvY3VzIHtcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOiAjYmJiO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5mb2N1cy1pbiAud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1hY2NvdW50cy1jb25uZWN0ICB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdH1cblxuXHQud3Bmb3Jtcy1zZXR0aW5ncy1wcm92aWRlci1hY2NvdW50cy1jb25uZWN0IC5mYSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC53cGZvcm1zLXNldHRpbmdzLXByb3ZpZGVyLWFjY291bnRzLWNvbm5lY3QgcCxcblx0LndwZm9ybXMtc2V0dGluZ3MtcHJvdmlkZXItYWNjb3VudHMgcCB7XG5cdFx0bWFyZ2luOiAwIDAgMTVweCAwO1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0fVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBR0FB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QkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFFBQVE7Q0FBRTs7QUFDOUQsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxZQUFZO0NBQUU7O0FBQ2xFLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsWUFBWTtDQUFFOztBQUNsRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLFlBQVk7Q0FBRTs7QUFDbEUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUFDbkUsQUFBQSxhQUFhLEFBQUEsZ0JBQWdCLENBQUM7RUFBQyxtQkFBbUIsRUFBRSxhQUFhO0NBQUU7O0FBQ25FLEFBQUEsYUFBYSxBQUFBLGdCQUFnQixDQUFDO0VBQUMsbUJBQW1CLEVBQUUsYUFBYTtDQUFFOztBQUNuRSxBQUFBLGFBQWEsQUFBQSxnQkFBZ0IsQ0FBQztFQUFDLG1CQUFtQixFQUFFLGFBQWE7Q0FBRTs7QUNuT25FLEFBQUEsb0JBQW9CLENBQUM7RUFDcEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFQUFFLENBQUM7RUFDVCxRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsSUFBSTtFQUNULElBQUksRUFBRSxJQUFJO0VBQ1YsS0FBSyxFQUFFLElBQUk7RUFDWCxPQUFPLEVBQUUsRUFBRTtDQUNYOztBQUVELEFBQUEsZUFBZSxDQUFDO0VBQ2YsVUFBVSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENQYmIsT0FBTztFT2NmLE9BQU8sRUFBRSxTQUFTO0NBV2xCOztBQWJELEFBSUMsZUFKYyxDQUlkLEdBQUcsQ0FBQztFQUNILE9BQU8sRUFBRSxLQUFLO0VBQ2QsTUFBTSxFQUFFLENBQUM7RUFDVCxTQUFTLEVBQUUsS0FBSztDQUtoQjs7QU51aEJELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFTW5pQnpCLEFBSUMsZUFKYyxDQUlkLEdBQUcsQ0FBQztJQU1GLFNBQVMsRUFBRSxLQUFLO0dBRWpCOzs7QUN2QkYsQUFHQyxtQkFIa0IsQ0FHbEIsV0FBVyxDQUFDO0VBQ1gsZ0JBQWdCLEVBQUUsSUFBSTtFQUN0QixNQUFNLEVBQUUsVUFBVTtFQUNsQixPQUFPLEVBQUUsU0FBUztDQUtsQjs7QUFYRixBQVFFLG1CQVJpQixDQUdsQixXQUFXLENBS1YsV0FBVyxDQUFDO0VBQ1gsV0FBVyxFQUFFLElBQUk7Q0FDakI7O0FBS0gsQUFBQSxtQkFBbUIsQ0FBQztFQUNuQixnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLE1BQU0sRUFBRSxVQUFVO0VBQ2xCLE9BQU8sRUFBRSxNQUFNO0VBQ2YsVUFBVSxFQUFFLElBQUk7RUFDaEIsUUFBUSxFQUFFLElBQUk7RUFDZCxTQUFTLEVBQUUsSUFBSTtDQTRCZjs7QUFsQ0QsQUFRQyxtQkFSa0IsQ0FRbEIsRUFBRSxDQUFDO0VBQ0YsTUFBTSxFQUFFLFVBQVU7RUFDbEIsT0FBTyxFQUFFLENBQUM7RUFDVixLQUFLLEVBQUUsSUFBSTtDQXNCWDs7QUFqQ0YsQUFhRSxtQkFiaUIsQ0FRbEIsRUFBRSxBQUtBLGFBQWEsQ0FBQztFQUNkLE1BQU0sRUFBRSxDQUFDO0NBQ1Q7O0FBZkgsQUFpQkUsbUJBakJpQixDQVFsQixFQUFFLENBU0QsQ0FBQyxDQUFDO0VBQ0QsS0FBSyxFQUFFLElBQUk7RUFDWCxPQUFPLEVBQUUsS0FBSztFQUNkLE9BQU8sRUFBRSxhQUFhO0VBQ3RCLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLGFBQWEsRUFBRSxjQUFjO0VBQzdCLFVBQVUsRUFBRSxJQUFJO0NBU2hCOztBQWhDSCxBQXlCRyxtQkF6QmdCLENBUWxCLEVBQUUsQ0FTRCxDQUFDLEFBUUMsTUFBTSxDQUFDO0VBQ1AsWUFBWSxFQUFFLElBQUk7Q0FDbEI7O0FBM0JKLEFBNkJHLG1CQTdCZ0IsQ0FRbEIsRUFBRSxDQVNELENBQUMsQUFZQyxPQUFPLENBQUM7RUFDUixZQUFZLEVSOUNQLE9BQU87Q1ErQ1o7O0FDNUNKLEFBQUEsVUFBVSxDQUFDO0VBQ1YsWUFBWSxFQUFFLFlBQVk7RUFDMUIsUUFBUSxFQUFFLFFBQVE7Q0FLbEI7O0FScWlCQSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RVE1aUJ6QixBQUFBLFVBQVUsQ0FBQztJQUtULFdBQVcsRUFBRSxJQUFJO0dBRWxCOzs7QVJxaUJBLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFUW5pQnpCLEFBQUEsT0FBTyxDQUFDO0lBRU4sV0FBVyxFQUFFLENBQUM7R0FFZjs7O0FBR0QsQUFJQyxtQkFKa0IsQ0FJbEIsa0JBQWtCO0FBSm5CLG1CQUFtQixDQUtsQixZQUFZLENBQUM7RUFDWixPQUFPLEVBQUUsSUFBSTtDQUNiOztBQVBGLEFBVUMsbUJBVmtCLENBVWxCLGdCQUFnQixDQUFDO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGNBQWMsRUFBRSxLQUFLO0VBRXJCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsUUFBUSxFQUFFLE1BQU07Q0FDaEI7O0FBaEJGLEFBa0JDLG1CQWxCa0IsQ0FrQmxCLGdCQUFnQixDQUFDLE1BQU07QUFsQnhCLG1CQUFtQixDQW1CbEIsZ0JBQWdCLENBQUMsTUFBTTtBQW5CeEIsbUJBQW1CLENBb0JsQixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7RUFDdEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLENBQUM7RUFDTixJQUFJLEVBQUUsQ0FBQztFQUNQLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7Q0FDWjs7QUExQkYsQUErQkUsbUJBL0JpQixDQTZCbEIsb0JBQW9CLENBRW5CLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxJQUFDLEFBQUEsRUFBVztFQUNoQixLQUFLLEVBQUUsS0FBSztFQUNaLE1BQU0sRUFBRSxLQUFLO0VBQ2IsT0FBTyxFQUFFLENBQUM7RUFDVixRQUFRLEVBQUUsTUFBTTtFQUNoQixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsRUFBRTtDQUNYOztBQXRDSCxBQXdDRSxtQkF4Q2lCLENBNkJsQixvQkFBb0IsQ0FXbkIsS0FBSyxDQUFDO0VBQ0wsYUFBYSxFQUFFLFFBQVE7RUFDdkIsV0FBVyxFQUFFLE1BQU07RUFDbkIsTUFBTSxFQUFFLE9BQU87RUFDZixPQUFPLEVBQUUsWUFBWTtFQUNyQixRQUFRLEVBQUUsTUFBTTtFQUNoQixPQUFPLEVBQUUsQ0FBQztDQUNWOztBQS9DSCxBQWlERSxtQkFqRGlCLENBNkJsQixvQkFBb0IsQ0FvQm5CLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxJQUFDLEFBQUEsQ0FBVSxNQUFNLEdBQUcsS0FBSztBQWpEaEMsbUJBQW1CLENBNkJsQixvQkFBb0IsQ0FxQm5CLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxJQUFDLEFBQUEsQ0FBVSxVQUFVLEdBQUcsS0FBSyxDQUFDO0VBQ2xDLE9BQU8sRUFBRSxlQUFlO0VBQ3hCLE9BQU8sRUFBRSxpQ0FBaUM7Q0FDMUM7O0FBckRILEFBdURFLG1CQXZEaUIsQ0E2QmxCLG9CQUFvQixDQTBCbkIsSUFBSSxDQUFDO0VBQ0osYUFBYSxFQUFFLFFBQVE7RUFDdkIsV0FBVyxFQUFFLE1BQU07RUFDbkIsUUFBUSxFQUFFLE1BQU07RUFDaEIsZ0JBQWdCLEVBQUUsSUFBSTtFQUN0QixNQUFNLEVBQUUsY0FBYztFQUN0QixhQUFhLEVBQUUsR0FBRztFQUNsQixVQUFVLEVBQUUsSUFBSTtFQUNoQixLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGNBQWMsRUFBRSxNQUFNO0VBQ3RCLE9BQU8sRUFBRSxRQUFRO0VBQ2pCLE1BQU0sRUFBRSxVQUFVO0VBQ2xCLEtBQUssRUFBRSxLQUFLO0VBQ1osVUFBVSxFQUFFLElBQUk7Q0FLaEI7O0FBMUVILEFBdUVHLG1CQXZFZ0IsQ0E2QmxCLG9CQUFvQixDQTBCbkIsSUFBSSxDQWdCSCxZQUFZLENBQUM7RUFDWixLQUFLLEVBQUUsSUFBSTtDQUNYOztBQXpFSixBQTRFRSxtQkE1RWlCLENBNkJsQixvQkFBb0IsQ0ErQ25CLE1BQU0sQ0FBQyxHQUFHLENBQUM7RUFDVixZQUFZLEVBQUUsR0FBRztDQUNqQjs7QUE5RUgsQUFrRkMsbUJBbEZrQixDQWtGbEIsYUFBYSxDQUFDO0VBQ2IsT0FBTyxFQUFFLElBQUk7Q0FDYjs7QUFwRkYsQUF1RkMsbUJBdkZrQixDQXVGbEIsdUJBQXVCLENBQUM7RUFDdkIsT0FBTyxFQUFFLElBQUk7Q0FDYjs7QUF6RkYsQUE0RkMsbUJBNUZrQixDQTRGbEIsT0FBTyxDQUFDO0VBQ1AsT0FBTyxFQUFFLElBQUk7Q0FDYjs7QUFJRixBQUFBLG1CQUFtQixDQUFDO0VBRW5CLE1BQU0sRUFBRSxDQUFDO0NBTVQ7O0FBUkQsQUFJQyxtQkFKa0IsQ0FJbEIsT0FBTyxDQUFDO0VBQ1AsV0FBVyxFQUFFLGVBQWU7RUFDNUIsWUFBWSxFQUFFLGVBQWU7Q0FDN0I7O0FBSUYsQUFBQSxzQkFBc0IsQ0FBQztFQUN0QixZQUFZLEVBQUUsSUFBSTtFQUNsQixhQUFhLEVBQUUsSUFBSTtDQVluQjs7QUFkRCxBQUlDLHNCQUpxQixBQUlwQixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsR0FBRztFQUNaLE9BQU8sRUFBRSxLQUFLO0NBQ2Q7O0FBUEYsQUFTQyxzQkFUcUIsQUFTcEIsTUFBTSxDQUFDO0VBQ1AsS0FBSyxFQUFFLElBQUk7RUFDWCxPQUFPLEVBQUUsR0FBRztFQUNaLE9BQU8sRUFBRSxLQUFLO0NBQ2Q7O0FBR0YsQUFFQyxjQUZhLEFBRVosT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEdBQUc7RUFDWixPQUFPLEVBQUUsS0FBSztDQUNkOztBQUxGLEFBT0MsY0FQYSxBQU9aLE1BQU0sQ0FBQztFQUNQLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLEdBQUc7RUFDWixPQUFPLEVBQUUsS0FBSztDQUNkOztBQUdGLEFBRUMsc0JBRnFCLEdBRWpCLEdBQUcsQ0FBQSxBQUFBLEtBQUMsRUFBTyxVQUFVLEFBQWpCLEVBQW1CO0VBQzFCLEtBQUssRUFBRSxJQUFJO0NBQ1g7O0FBSkYsQUFNQyxzQkFOcUIsQ0FNckIsd0JBQXdCLENBQUM7RUFBQyxLQUFLLEVBQUUsR0FBRztDQUFFOztBQU52QyxBQU9DLHNCQVBxQixDQU9yQix3QkFBd0IsQ0FBQztFQUFDLEtBQUssRUFBRSxTQUFTO0NBQUU7O0FBUDdDLEFBUUMsc0JBUnFCLENBUXJCLHdCQUF3QixDQUFDO0VBQUMsS0FBSyxFQUFFLEdBQUc7Q0FBRTs7QUFSdkMsQUFTQyxzQkFUcUIsQ0FTckIsd0JBQXdCLENBQUM7RUFBQyxLQUFLLEVBQUUsR0FBRztDQUFFOztBQVR2QyxBQVVDLHNCQVZxQixDQVVyQix3QkFBd0IsQ0FBQztFQUFDLEtBQUssRUFBRSxHQUFHO0NBQUU7O0FBVnZDLEFBV0Msc0JBWHFCLENBV3JCLHdCQUF3QixDQUFDO0VBQUMsS0FBSyxFQUFFLEdBQUc7Q0FBRTs7QUFYdkMsQUFhQyxzQkFicUIsQ0FhckIsMEJBQTBCLENBQUM7RUFBQyxLQUFLLEVBQUUsZ0JBQWdCO0NBQUU7O0FBYnRELEFBZUMsc0JBZnFCLEFBZXBCLE1BQU0sQ0FBQztFQUNQLE9BQU8sRUFBRSxFQUFFO0VBQ1gsT0FBTyxFQUFFLEtBQUs7RUFDZCxLQUFLLEVBQUUsSUFBSTtDQUNYOztBQ2hMRixBQUlDLGlCQUpnQixDQUloQixTQUFTLEFBQUEsSUFBSSxDQUFDO0VBQ2IsVUFBVSxFQUFFLENBQUM7Q0FDYjs7QUFORixBQVdFLGlCQVhlLENBU2hCLGNBQWMsQ0FFYixVQUFVLENBQUM7RUFDVixLQUFLLEVBQUUsSUFBSTtDQUNYOztBQWJILEFBZUUsaUJBZmUsQ0FTaEIsY0FBYyxDQU1iLGVBQWUsQ0FBQztFQUNmLEtBQUssRUFBRSxJQUFJO0NBQ1g7O0FBakJILEFBbUJFLGlCQW5CZSxDQVNoQixjQUFjLENBVWIsaUJBQWlCLENBQUM7RUFDakIsS0FBSyxFQUFFLEtBQUs7Q0FDWjs7QUFyQkgsQUF1QkUsaUJBdkJlLENBU2hCLGNBQWMsQ0FjYixlQUFlLENBQUM7RUFDZixLQUFLLEVBQUUsS0FBSztDQUNaOztBQ3pCSCxBQUVDLHVCQUZzQixDQUV0QixVQUFVLENBQUM7RUFDVixPQUFPLEVBQUUsQ0FBQztDQUNWOztBQUpGLEFBT0MsdUJBUHNCLENBT3RCLFFBQVEsQ0FBQyxNQUFNLENBQUM7RUFDZixNQUFNLEVBQUUsa0JBQWtCO0NBQzFCOztBQVRGLEFBWUMsdUJBWnNCLENBWXRCLHlCQUF5QixDQUFDO0VBQ3pCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLElBQUk7RUFDakIsS0FBSyxFQUFFLEtBQUs7RUFDWixRQUFRLEVBQUUsUUFBUTtFQUNsQixXQUFXLEVBQUUsR0FBRztFQUNoQixhQUFhLEVBQUUsR0FBRztFQUNsQixXQUFXLEVBQUUsTUFBTTtDQW1EbkI7O0FWd2VELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFVTlpQnpCLEFBWUMsdUJBWnNCLENBWXRCLHlCQUF5QixDQUFDO0lBVXhCLE9BQU8sRUFBRSxJQUFJO0dBZ0RkOzs7QUF0RUYsQUF5QkUsdUJBekJxQixDQVl0Qix5QkFBeUIsQ0FheEIsV0FBVyxDQUFDO0VBQ1gsR0FBRyxFQUFFLElBQUk7RUFDVCxNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxPQUFPO0VBQ2hCLFVBQVUsRUFBRSxNQUFNO0NBa0JsQjs7QVYrZkYsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VVOWlCekIsQUF5QkUsdUJBekJxQixDQVl0Qix5QkFBeUIsQ0FheEIsV0FBVyxDQUFDO0lBT1YsU0FBUyxFQUFFLElBQUk7R0FlaEI7OztBQS9DSCxBQW1DRyx1QkFuQ29CLENBWXRCLHlCQUF5QixDQWF4QixXQUFXLENBVVYsVUFBVSxDQUFDO0VBQ1YsU0FBUyxFQUFFLElBQUk7RUFDZixNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxJQUFJO0VBQ1gsV0FBVyxFQUFFLElBQUk7Q0FDakI7O0FBeENKLEFBMENHLHVCQTFDb0IsQ0FZdEIseUJBQXlCLENBYXhCLFdBQVcsQUFpQlQsU0FBUyxDQUFDO0VBQ1YsT0FBTyxFQUFFLEdBQUc7RUFDWixjQUFjLEVBQUUsSUFBSTtFQUNwQixNQUFNLEVBQUUsT0FBTztDQUNmOztBQTlDSixBQWlERSx1QkFqRHFCLENBWXRCLHlCQUF5QixDQXFDeEIsOEJBQThCLENBQUM7RUFDOUIsT0FBTyxFQUFFLFlBQVk7RUFDckIsWUFBWSxFQUFFLElBQUk7Q0FDbEI7O0FBcERILEFBc0RFLHVCQXREcUIsQ0FZdEIseUJBQXlCLENBMEN4QixzQkFBc0IsQ0FBQztFQUN0QixHQUFHLEVBQUUsSUFBSTtFQUNULE1BQU0sRUFBRSxhQUFhO0VBQ3JCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLE9BQU8sRUFBRSxRQUFRO0VBQ2pCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLE1BQU0sRUFBRSxjQUFjO0VBQ3RCLHFCQUFxQixFQUFFLEdBQUc7RUFDMUIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsSUFBSTtFQUNqQixjQUFjLEVBQUUsTUFBTTtDQUN0Qjs7QUFwRUgsQUEyRUUsdUJBM0VxQixDQXlFdEIscUJBQXFCLENBRXBCLEVBQUUsQUFBQSxNQUFNLENBQUM7RUFDUixTQUFTLEVBQUUsSUFBSTtDQVNmOztBQXJGSCxBQThFRyx1QkE5RW9CLENBeUV0QixxQkFBcUIsQ0FFcEIsRUFBRSxBQUFBLE1BQU0sQ0FHUCxVQUFVLENBQUM7RUFDVixTQUFTLEVBQUUsSUFBSTtFQUNmLE1BQU0sRUFBRSxJQUFJO0VBQ1osS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsV0FBVztFQUNuQixLQUFLLEVYcEZBLE9BQU87Q1dxRlo7O0FBcEZKLEFBdUZFLHVCQXZGcUIsQ0F5RXRCLHFCQUFxQixDQWNwQixVQUFVLENBQUM7RUFDVixPQUFPLEVBQUUsSUFBSTtFQUNiLE1BQU0sRUFBRSxDQUFDO0NBQ1Q7O0FBMUZILEFBNEZFLHVCQTVGcUIsQ0F5RXRCLHFCQUFxQixDQW1CcEIsT0FBTyxDQUFDO0VBQ1AsT0FBTyxFQUFFLENBQUM7RUFDVixNQUFNLEVBQUUsQ0FBQztDQXNCVDs7QUFwSEgsQUFnR0csdUJBaEdvQixDQXlFdEIscUJBQXFCLENBbUJwQixPQUFPLENBSU4sQ0FBQyxDQUFDO0VBQ0QsT0FBTyxFQUFFLENBQUM7RUFDVixNQUFNLEVBQUUsQ0FBQztDQUNUOztBQW5HSixBQXFHRyx1QkFyR29CLENBeUV0QixxQkFBcUIsQ0FtQnBCLE9BQU8sQ0FTTix5QkFBeUIsQ0FBQztFQUN6QixXQUFXLEVBQUUsR0FBRztFQUNoQixVQUFVLEVBQUUsT0FBTztFQUNuQixPQUFPLEVBQUUsUUFBUTtDQUNqQjs7QUF6R0osQUEyR0csdUJBM0dvQixDQXlFdEIscUJBQXFCLENBbUJwQixPQUFPLENBZU4sMEJBQTBCLENBQUM7RUFDMUIsVUFBVSxFQUFFLElBQUk7RUFDaEIsT0FBTyxFQUFFLFFBQVE7Q0FDakI7O0FBOUdKLEFBZ0hHLHVCQWhIb0IsQ0F5RXRCLHFCQUFxQixDQW1CcEIsT0FBTyxDQW9CTixNQUFNLENBQUMsMEJBQTBCLENBQUM7RUFDakMsVUFBVSxFQUFFLE1BQU07RUFDbEIsS0FBSyxFQUFFLElBQUk7Q0FDWDs7QUFuSEosQUFzSEUsdUJBdEhxQixDQXlFdEIscUJBQXFCLENBNkNwQiwyQkFBMkIsQ0FBQztFQUMzQixLQUFLLEVBQUUsS0FBSztFQUNaLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLE9BQU8sRUFBRSxPQUFPO0NBQ2hCOztBQTFISCxBQWdJRSx1QkFoSXFCLENBOEh0QixvQkFBb0IsQ0FFbkIsT0FBTyxDQUFDO0VBQ1AsTUFBTSxFQUFFLENBQUM7RUFDVCxPQUFPLEVBQUUsQ0FBQztDQUNWOztBQW5JSCxBQXFJRSx1QkFySXFCLENBOEh0QixvQkFBb0IsQ0FPbkIsd0JBQXdCLENBQUM7RUFDeEIsT0FBTyxFQUFFLElBQUk7Q0FDYjs7QUF2SUgsQUF5SUUsdUJBeklxQixDQThIdEIsb0JBQW9CLENBV25CLElBQUksQ0FBQztFQUNKLE9BQU8sRUFBRSxJQUFJO0NBQ2I7O0FBM0lILEFBNklFLHVCQTdJcUIsQ0E4SHRCLG9CQUFvQixDQWVuQixLQUFLLENBQUM7RUFDTCxRQUFRLEVBQUUsSUFBSTtFQUNkLE9BQU8sRUFBRSxLQUFLO0NBQ2Q7O0FBaEpILEFBa0pFLHVCQWxKcUIsQ0E4SHRCLG9CQUFvQixDQW9CbkIsU0FBUyxDQUFDO0VBQ1QsTUFBTSxFQUFFLENBQUM7RUFDVCxPQUFPLEVBQUUsWUFBWTtDQUNyQjs7QUFySkgsQUF1SkUsdUJBdkpxQixDQThIdEIsb0JBQW9CLENBeUJuQiwyQkFBMkIsQ0FBQztFQUMzQixPQUFPLEVBQUUsSUFBSTtFQUNiLFVBQVUsRUFBRSxpQkFBaUI7Q0FTN0I7O0FBbEtILEFBMkpHLHVCQTNKb0IsQ0E4SHRCLG9CQUFvQixDQXlCbkIsMkJBQTJCLENBSTFCLENBQUMsQUFBQSxhQUFhLENBQUM7RUFDZCxhQUFhLEVBQUUsQ0FBQztDQUNoQjs7QUE3SkosQUErSkcsdUJBL0pvQixDQThIdEIsb0JBQW9CLENBeUJuQiwyQkFBMkIsQUFRekIsS0FBSyxDQUFDO0VBQ04sZ0JBQWdCLEVBQUUsT0FBTztDQUN6Qjs7QUFqS0osQUFvS0UsdUJBcEtxQixDQThIdEIsb0JBQW9CLENBc0NuQiwyQkFBMkIsQ0FBQztFQUMzQixLQUFLLEVBQUUsSUFBSTtFQUNYLGFBQWEsRUFBRSxJQUFJO0NBb0JuQjs7QUExTEgsQUF3S0csdUJBeEtvQixDQThIdEIsb0JBQW9CLENBc0NuQiwyQkFBMkIsQ0FJMUIsSUFBSSxDQUFDO0VBQ0osS0FBSyxFQUFFLElBQUk7Q0FDWDs7QUExS0osQUE0S0csdUJBNUtvQixDQThIdEIsb0JBQW9CLENBc0NuQiwyQkFBMkIsQ0FRMUIsV0FBVyxDQUFDO0VBQ1gsZUFBZSxFQUFFLElBQUk7RUFDckIsV0FBVyxFQUFFLEdBQUc7Q0FDaEI7O0FBL0tKLEFBaUxHLHVCQWpMb0IsQ0E4SHRCLG9CQUFvQixDQXNDbkIsMkJBQTJCLENBYTFCLFlBQVksQ0FBQztFQUNaLEtBQUssRUFBRSxJQUFJO0VBQ1gsZUFBZSxFQUFFLElBQUk7Q0FNckI7O0FBekxKLEFBcUxJLHVCQXJMbUIsQ0E4SHRCLG9CQUFvQixDQXNDbkIsMkJBQTJCLENBYTFCLFlBQVksQUFJVixNQUFNLENBQUM7RUFDUCxLQUFLLEVBQUUsR0FBRztFQUNWLGVBQWUsRUFBRSxJQUFJO0NBQ3JCOztBQXhMTCxBQThMQyx1QkE5THNCLENBOEx0QixzQkFBc0IsQ0FBQyxPQUFPO0FBOUwvQix1QkFBdUIsQ0ErTHRCLHNCQUFzQixDQUFDLE9BQU87QUEvTC9CLHVCQUF1QixDQWdNdEIsc0JBQXNCLENBQUMsT0FBTyxDQUFDO0VBQzlCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7Q0FDVjs7QUFuTUYsQUFxTUMsdUJBck1zQixDQXFNdEIsMkJBQTJCO0FBck01Qix1QkFBdUIsQ0FzTXRCLDJCQUEyQixDQUFFO0VBQzVCLE9BQU8sRUFBRSxPQUFPO0NBQ2hCOztBQXhNRixBQTBNQyx1QkExTXNCLENBME10QiwyQkFBMkIsQ0FBQyxDQUFDO0FBMU05Qix1QkFBdUIsQ0EyTXRCLDJCQUEyQixDQUFDLENBQUM7QUEzTTlCLHVCQUF1QixDQTRNdEIsMkJBQTJCLENBQUMsQ0FBQyxDQUFDO0VBQzdCLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLE1BQU0sRUFBRSxDQUFDO0NBQ1Q7O0FBL01GLEFBaU5DLHVCQWpOc0IsQ0FpTnRCLDJCQUEyQixDQUFDO0VBQzNCLE9BQU8sRUFBRSxDQUFDO0NBQ1Y7O0FBbk5GLEFBcU5DLHVCQXJOc0IsQ0FxTnRCLDJCQUEyQixDQUFDLENBQUMsQ0FBQztFQUM3QixhQUFhLEVBQUUsY0FBYztFQUM3QixPQUFPLEVBQUUsSUFBSTtDQUNiOztBQXhORixBQTBOQyx1QkExTnNCLENBME50QiwyQkFBMkIsQ0FBQyxDQUFDLEFBQUEsYUFBYSxDQUFDO0VBQzFDLGFBQWEsRUFBRSxDQUFDO0NBQ2hCOztBQTVORixBQThOQyx1QkE5TnNCLENBOE50QiwyQkFBMkIsQ0FBQyxNQUFNO0FBOU5uQyx1QkFBdUIsQ0ErTnRCLDJCQUEyQixDQUFDLE1BQU0sQ0FBQztFQUNsQyxXQUFXLEVBQUUsR0FBRztDQUNoQjs7QUFqT0YsQUFtT0MsdUJBbk9zQixDQW1PdEIsMkJBQTJCLENBQUMsVUFBVTtBQW5PdkMsdUJBQXVCLENBb090QiwyQkFBMkIsQ0FBQyxVQUFVLENBQUM7RUFDdEMsT0FBTyxFQUFFLFNBQVM7RUFDbEIsS0FBSyxFQUFFLE9BQU87RUFDZCxHQUFHLEVBQUUsSUFBSTtFQUNULElBQUksRUFBRSxJQUFJO0VBQ1YsUUFBUSxFQUFFLFFBQVE7RUFDbEIsZUFBZSxFQUFFLElBQUk7Q0FDckI7O0FBM09GLEFBNk9DLHVCQTdPc0IsQ0E2T3RCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQztFQUNwQyxLQUFLLEVBQUUsSUFBSTtFQUNYLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLE9BQU8sRUFBRSxPQUFPO0NBQ2hCOztBQWpQRixBQW1QQyx1QkFuUHNCLENBbVB0QixzQkFBc0IsQ0FBQyxhQUFhLEFBQUEsTUFBTSxDQUFDO0VBQzFDLEtBQUssRUFBRSxHQUFHO0NBQ1Y7O0FBclBGLEFBdVBDLHVCQXZQc0IsQ0F1UHRCLDJCQUEyQixDQUFDLENBQUMsQ0FBQztFQUM3QixlQUFlLEVBQUUsSUFBSTtDQUNyQjs7QUF6UEYsQUEyUEMsdUJBM1BzQixDQTJQdEIsMkJBQTJCLENBQUMsQ0FBQyxBQUFBLE1BQU0sQ0FBQztFQUNuQyxlQUFlLEVBQUUsU0FBUztDQUMxQjs7QUE3UEYsQUFrUUUsdUJBbFFxQixDQWdRdEIsMEJBQTBCLENBRXpCLE9BQU8sQ0FBQztFQUNQLE9BQU8sRUFBRSxDQUFDO0VBQ1YsTUFBTSxFQUFFLENBQUM7Q0FDVDs7QUFyUUgsQUF1UUUsdUJBdlFxQixDQWdRdEIsMEJBQTBCLENBT3pCLEVBQUUsQ0FBQztFQUNGLE1BQU0sRUFBRSxDQUFDO0NBV1Q7O0FBblJILEFBMFFHLHVCQTFRb0IsQ0FnUXRCLDBCQUEwQixDQU96QixFQUFFLENBR0QsRUFBRSxDQUFDO0VBQ0YsYUFBYSxFQUFFLGNBQWM7RUFDN0IsTUFBTSxFQUFFLENBQUM7RUFDVCxRQUFRLEVBQUUsSUFBSTtDQUtkOztBQWxSSixBQStRSSx1QkEvUW1CLENBZ1F0QiwwQkFBMEIsQ0FPekIsRUFBRSxDQUdELEVBQUUsQUFLQSxhQUFhLENBQUM7RUFDZCxhQUFhLEVBQUUsQ0FBQztDQUNoQjs7QUFqUkwsQUFxUkUsdUJBclJxQixDQWdRdEIsMEJBQTBCLENBcUJ6Qix5QkFBeUIsQ0FBQztFQUN6QixLQUFLLEVBQUUsSUFBSTtFQUNYLEtBQUssRUFBRSxJQUFJO0VBQ1gsWUFBWSxFQUFFLGNBQWM7RUFDNUIsT0FBTyxFQUFFLG1CQUFtQjtDQUM1Qjs7QUExUkgsQUE0UkUsdUJBNVJxQixDQWdRdEIsMEJBQTBCLENBNEJ6QiwwQkFBMEIsQ0FBQztFQUMxQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsbUJBQW1CO0NBQzVCOztBQS9SSCxBQWlTRSx1QkFqU3FCLENBZ1F0QiwwQkFBMEIsQ0FpQ3pCLGFBQWEsQ0FBQztFQUNiLGNBQWMsRUFBRSxRQUFRO0VBQ3hCLFlBQVksRUFBRSxHQUFHO0NBQ2pCOztBQ3BTSCxBQUVDLHFCQUZvQixDQUVwQixhQUFhLENBQUM7RUFDYixhQUFhLEVBQUUsY0FBYztFQUM3QixjQUFjLEVBQUUsSUFBSTtFQUNwQixNQUFNLEVBQUUsUUFBUTtDQW9IaEI7O0FBekhGLEFBT0UscUJBUG1CLENBRXBCLGFBQWEsQ0FLWixpQkFBaUIsQ0FBQztFQUNqQixLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxLQUFLO0VBQ2QsU0FBUyxFQUFFLElBQUk7RUFDZixjQUFjLEVBQUUsU0FBUztFQUN6QixNQUFNLEVBQUUsU0FBUztDQUNqQjs7QUFiSCxBQWVFLHFCQWZtQixDQUVwQixhQUFhLENBYVosbUJBQW1CLENBQUM7RUFDbkIsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLE1BQU0sRUFBRSxDQUFDO0NBTVQ7O0FYcWhCRixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RVc5aUIxQixBQWVFLHFCQWZtQixDQUVwQixhQUFhLENBYVosbUJBQW1CLENBQUM7SUFPbEIsS0FBSyxFQUFFLElBQUk7SUFDWCxhQUFhLEVBQUUsSUFBSTtHQUVwQjs7O0FBekJILEFBMkJFLHFCQTNCbUIsQ0FFcEIsYUFBYSxDQXlCWixjQUFjLENBQUM7RUFDZCxPQUFPLEVBQUUsWUFBWTtFQUNyQixRQUFRLEVBQUUsUUFBUTtDQW1FbEI7O0FBaEdILEFBK0JHLHFCQS9Ca0IsQ0FFcEIsYUFBYSxDQXlCWixjQUFjLENBSWIsT0FBTyxDQUFDO0VBQ1AsYUFBYSxFQUFFLEdBQUc7RUFDbEIsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSTtFQUNmLFVBQVUsRUFBRSxJQUFJO0NBV2hCOztBQTlDSixBQXFDSSxxQkFyQ2lCLENBRXBCLGFBQWEsQ0F5QlosY0FBYyxDQUliLE9BQU8sQUFNTCxNQUFNLEVBckNYLHFCQUFxQixDQUVwQixhQUFhLENBeUJaLGNBQWMsQ0FJYixPQUFPLEFBT0wsT0FBTyxDQUFDO0VBQ1IsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixPQUFPLEVBQUUsSUFBSTtDQUNiOztBQXpDTCxBQTJDSSxxQkEzQ2lCLENBRXBCLGFBQWEsQ0F5QlosY0FBYyxDQUliLE9BQU8sQUFZTCxPQUFPLENBQUM7RUFDUixjQUFjLEVBQUUsTUFBTTtDQUN0Qjs7QUE3Q0wsQUFnREcscUJBaERrQixDQUVwQixhQUFhLENBeUJaLGNBQWMsQ0FxQmIsVUFBVSxDQUFDO0VBQ1YsT0FBTyxFQUFFLElBQUk7RUFDYixVQUFVLEVBQUUsSUFBSTtFQUNoQixhQUFhLEVBQUUsR0FBRztFQUNsQixVQUFVLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGtCQUFlO0VBQ3ZDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxJQUFJO0VBQ1QsSUFBSSxFQUFFLE1BQU07RUFDWixLQUFLLEVBQUUsS0FBSztFQUNaLE9BQU8sRUFBRSxNQUFNO0VBQ2YsT0FBTyxFQUFFLElBQUk7Q0FhYjs7QUF2RUosQUE0REkscUJBNURpQixDQUVwQixhQUFhLENBeUJaLGNBQWMsQ0FxQmIsVUFBVSxBQVlSLE9BQU8sQ0FBQztFQUNSLE9BQU8sRUFBRSxHQUFHO0VBQ1osUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLEtBQUs7RUFDVixJQUFJLEVBQUUsS0FBSztFQUNYLEtBQUssRUFBRSxDQUFDO0VBQ1IsTUFBTSxFQUFFLENBQUM7RUFDVCxZQUFZLEVBQUUsS0FBSztFQUNuQixZQUFZLEVBQUUsY0FBYztFQUM1QixZQUFZLEVBQUUsd0NBQXdDO0NBQ3REOztBQXRFTCxBQXlFRyxxQkF6RWtCLENBRXBCLGFBQWEsQ0F5QlosY0FBYyxDQThDYixFQUFFLENBQUM7RUFDRixVQUFVLEVBQUUsS0FBSztFQUNqQixVQUFVLEVBQUUsTUFBTTtFQUNsQixPQUFPLEVBQUUsQ0FBQztFQUNWLE1BQU0sRUFBRSxDQUFDO0NBa0JUOztBQS9GSixBQStFSSxxQkEvRWlCLENBRXBCLGFBQWEsQ0F5QlosY0FBYyxDQThDYixFQUFFLENBTUQsRUFBRSxDQUFDO0VBQ0YsVUFBVSxFQUFFLElBQUk7RUFDaEIsTUFBTSxFQUFFLENBQUM7RUFDVCxTQUFTLEVBQUUsSUFBSTtDQVlmOztBQTlGTCxBQW9GSyxxQkFwRmdCLENBRXBCLGFBQWEsQ0F5QlosY0FBYyxDQThDYixFQUFFLENBTUQsRUFBRSxDQUtELENBQUMsQ0FBQztFQUNELE9BQU8sRUFBRSxLQUFLO0VBQ2QsZUFBZSxFQUFFLElBQUk7RUFDckIsT0FBTyxFQUFFLFFBQVE7RUFDakIsS0FBSyxFQUFFLElBQUk7Q0FLWDs7QUE3Rk4sQUEwRk0scUJBMUZlLENBRXBCLGFBQWEsQ0F5QlosY0FBYyxDQThDYixFQUFFLENBTUQsRUFBRSxDQUtELENBQUMsQUFNQyxNQUFNLENBQUM7RUFDUCxnQkFBZ0IsRUFBRSxPQUFPO0NBQ3pCOztBQTVGUCxBQWtHRSxxQkFsR21CLENBRXBCLGFBQWEsQ0FnR1oscUJBQXFCLENBQUM7RUFDckIsS0FBSyxFQUFFLEtBQUs7Q0FxQlo7O0FYc2JGLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtFVzlpQjFCLEFBa0dFLHFCQWxHbUIsQ0FFcEIsYUFBYSxDQWdHWixxQkFBcUIsQ0FBQztJQUlwQixLQUFLLEVBQUUsSUFBSTtHQWtCWjs7O0FBeEhILEFBeUdHLHFCQXpHa0IsQ0FFcEIsYUFBYSxDQWdHWixxQkFBcUIsQ0FPcEIsQ0FBQyxDQUFDO0VBQ0QsZUFBZSxFQUFFLElBQUk7RUFDckIsT0FBTyxFQUFFLFlBQVk7RUFDckIsTUFBTSxFQUFFLFVBQVU7Q0FXbEI7O0FBdkhKLEFBOEdJLHFCQTlHaUIsQ0FFcEIsYUFBYSxDQWdHWixxQkFBcUIsQ0FPcEIsQ0FBQyxBQUtDLGFBQWEsQ0FBQztFQUNkLE1BQU0sRUFBRSxDQUNUO0NBQUM7O0FBaEhMLEFBa0hJLHFCQWxIaUIsQ0FFcEIsYUFBYSxDQWdHWixxQkFBcUIsQ0FPcEIsQ0FBQyxDQVNBLFVBQVUsQ0FBQztFQUNWLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLElBQUk7RUFDWixTQUFTLEVBQUUsSUFBSTtDQUNmOztBQXRITCxBQTZIRSxxQkE3SG1CLENBNEhwQixXQUFXLENBQ1YsOEJBQThCLENBQUM7RUFDOUIsU0FBUyxFQUFFLEtBQUs7RUFDaEIsY0FBYyxFQUFFLEdBQUc7RUFDbkIsTUFBTSxFQUFFLFNBQVM7Q0FDakI7O0FBaklILEFBbUlFLHFCQW5JbUIsQ0E0SHBCLFdBQVcsQ0FPVixtQ0FBbUMsQ0FBQztFQUNuQyxTQUFTLEVBQUUsSUFBSTtFQUNmLGNBQWMsRUFBRSxHQUFHO0VBQ25CLE1BQU0sRUFBRSxTQUFTO0NBQ2pCOztBQXZJSCxBQXlJRSxxQkF6SW1CLENBNEhwQixXQUFXLENBYVYsNkJBQTZCLENBQUM7RUFDN0IsTUFBTSxFQUFFLElBQUk7RUFDWixNQUFNLEVBQUUsU0FBUztDQUNqQjs7QUE1SUgsQUFrSkUscUJBbEptQixDQWdKcEIsb0JBQW9CLENBRW5CLDZCQUE2QixDQUFDO0VBQzdCLE1BQU0sRUFBRSxJQUFJO0VBQ1osZ0JBQWdCLEVBQUUsSUFBSTtFQUN0QixjQUFjLEVBQUUsTUFBTTtFQUN0QixTQUFTLEVBQUUsS0FBSztDQUNoQjs7QUF2SkgsQUF5SkUscUJBekptQixDQWdKcEIsb0JBQW9CLENBU25CLE1BQU0sQ0FBQztFQUNOLE1BQU0sRUFBRSxXQUFXO0VBQ25CLGNBQWMsRUFBRSxHQUFHO0NBQ25COztBQTVKSCxBQWtLRSxxQkFsS21CLENBZ0twQixjQUFjLENBRWIseUJBQXlCLENBQUMsRUFBRSxDQUFDO0VBQzVCLE9BQU8sRUFBRSxDQUFDO0VBQ1YsVUFBVSxFQUFFLE1BQU07Q0FNbEI7O0FBMUtILEFBcUtHLHFCQXJLa0IsQ0FnS3BCLGNBQWMsQ0FFYix5QkFBeUIsQ0FBQyxFQUFFLENBRzNCLENBQUMsQ0FBQztFQUNELE9BQU8sRUFBRSxJQUFJO0VBQ2IsT0FBTyxFQUFFLElBQUk7RUFDYixnQkFBZ0IsRUFBRSxPQUFPO0NBQ3pCOztBQXpLSixBQTRLRSxxQkE1S21CLENBZ0twQixjQUFjLENBWWIsa0JBQWtCLENBQUM7RUFDbEIsS0FBSyxFQUFFLElBQUk7RUFDWCxVQUFVLEVBQUUsTUFBTTtDQU1sQjs7QUFwTEgsQUFnTEcscUJBaExrQixDQWdLcEIsY0FBYyxDQVliLGtCQUFrQixDQUlqQixDQUFDLEFBQUEsTUFBTSxDQUFDO0VBQ1Asa0JBQWtCLEVBQUUsSUFBSTtFQUN4QixVQUFVLEVBQUUsSUFBSTtDQUNoQjs7QUFuTEosQUFzTEUscUJBdExtQixDQWdLcEIsY0FBYyxDQXNCYixrQkFBa0IsQ0FBQyxVQUFVLENBQUM7RUFDN0IsS0FBSyxFQUFFLElBQUk7RUFDWCxNQUFNLEVBQUUsSUFBSTtFQUNaLFNBQVMsRUFBRSxJQUFJO0VBQ2YsVUFBVSxFQUFFLEdBQUc7Q0FDZjs7QUEzTEgsQUE2TEUscUJBN0xtQixDQWdLcEIsY0FBYyxDQTZCYixlQUFlLENBQUMsVUFBVSxDQUFDO0VBQzFCLFlBQVksRUFBRSxHQUFHO0NBQ2pCOztBQS9MSCxBQWlNRSxxQkFqTW1CLENBZ0twQixjQUFjLENBaUNiLGVBQWUsQ0FBQztFQUNmLEtBQUssRUFBRSxPQUFPO0NBTWQ7O0FBeE1ILEFBb01HLHFCQXBNa0IsQ0FnS3BCLGNBQWMsQ0FpQ2IsZUFBZSxBQUdiLE1BQU0sRUFwTVYscUJBQXFCLENBZ0twQixjQUFjLENBaUNiLGVBQWUsQUFJYixPQUFPLENBQUM7RUFDUixLQUFLLEVadk1BLE9BQU87Q1l3TVo7O0FBdk1KLEFBME1FLHFCQTFNbUIsQ0FnS3BCLGNBQWMsQ0EwQ2IsZUFBZSxDQUFDO0VBQ2YsS0FBSyxFQUFFLE9BQU87Q0FNZDs7QUFqTkgsQUE2TUcscUJBN01rQixDQWdLcEIsY0FBYyxDQTBDYixlQUFlLEFBR2IsTUFBTSxFQTdNVixxQkFBcUIsQ0FnS3BCLGNBQWMsQ0EwQ2IsZUFBZSxBQUliLE9BQU8sQ0FBQztFQUNSLEtBQUssRUFBRSxPQUFPO0NBQ2Q7O0FBaE5KLEFBbU5FLHFCQW5ObUIsQ0FnS3BCLGNBQWMsQ0FtRGIsWUFBWSxDQUFDO0VBQ1osS0FBSyxFQUFFLEtBQUs7Q0FDWjs7QUFyTkgsQUF1TkUscUJBdk5tQixDQWdLcEIsY0FBYyxDQXVEYixjQUFjLENBQUM7RUFDZCxLQUFLLEVBQUUsS0FBSztDQVFaOztBQWhPSCxBQTBORyxxQkExTmtCLENBZ0twQixjQUFjLENBdURiLGNBQWMsQ0FHYixHQUFHLENBQUM7RUFDSCxPQUFPLEVBQUUsWUFBWTtFQUNyQixNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLFNBQVM7Q0FDakI7O0FBL05KLEFBa09FLHFCQWxPbUIsQ0FnS3BCLGNBQWMsQ0FrRWIscUJBQXFCLENBQUM7RUFDckIsS0FBSyxFQUFFLEtBQUs7Q0FDWjs7QUFwT0gsQUFzT0UscUJBdE9tQixDQWdLcEIsY0FBYyxDQXNFYixlQUFlLENBQUM7RUFDZixLQUFLLEVBQUUsS0FBSztDQUNaOztBQXhPSCxBQTBPRSxxQkExT21CLENBZ0twQixjQUFjLENBMEViLElBQUksQ0FBQztFQUNKLEtBQUssRUFBRSxJQUFJO0NBQ1g7O0FBNU9ILEFBOE9FLHFCQTlPbUIsQ0FnS3BCLGNBQWMsQ0E4RWIsT0FBTyxBQUFBLE1BQU0sQ0FBQztFQUNiLEtBQUssRUFBRSxHQUFHO0NBQ1Y7O0FBaFBILEFBbVBDLHFCQW5Qb0IsQ0FtUHBCLG1DQUFtQyxDQUFDO0VBQ25DLEtBQUssRUFBRSxLQUFLO0VBQ1osS0FBSyxFQUFFLElBQUk7Q0FLWDs7QUExUEYsQUF1UEUscUJBdlBtQixDQW1QcEIsbUNBQW1DLEFBSWpDLE1BQU0sQ0FBQztFQUNQLEtBQUssRUFBRSxJQUFJO0NBQ1g7O0FBSUgsTUFBTSxDQUFDLE1BQU0sTUFBTSxTQUFTLEVBQUUsS0FBSztFQUVsQyxBQUFBLHNCQUFzQixDQUFDO0lBQ3RCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxJQUFJO0dBQ25CO0VBRUQsQUFBQSxjQUFjLENBQUM7SUFDZCxNQUFNLEVBQUUsZUFBZTtJQUN2QixLQUFLLEVBQUUsS0FBSztJQUNaLFlBQVksRUFBRSxJQUFJO0dBQ2xCO0VBRUQsQUFFQyxjQUZhLEFBQUEsUUFBUSxDQUVyQixrQkFBa0IsQ0FBQztJQUNsQixLQUFLLEVBQUUsZUFBZTtHQUN0QjtFQUpGLEFBT0UsY0FQWSxBQUFBLFFBQVEsQ0FNckIsV0FBVyxDQUNWLGVBQWUsQ0FBQztJQUNmLE9BQU8sRUFBRSxJQUFJO0dBQ2I7RUFUSCxBQVVFLGNBVlksQUFBQSxRQUFRLENBTXJCLFdBQVcsQ0FJVixlQUFlLENBQUM7SUFDZixPQUFPLEVBQUUsSUFBSTtHQUNiO0VBWkgsQUFlQyxjQWZhLEFBQUEsUUFBUSxDQWVyQixFQUFFLEFBQUEsSUFBSyxDQUFBLGdCQUFnQixDQUFDLElBQUssQ0FBQSxTQUFTLEVBQUUsRUFBRSxBQUFBLGVBQWUsQ0FBQztJQUN6RCxNQUFNLEVBQUUsR0FBRztJQUNYLE9BQU8sRUFBRSxDQUFDO0lBQ1YsT0FBTyxFQUFFLEVBQUU7SUFDWCxZQUFZLEVBQUUsQ0FBQztJQUNmLFFBQVEsRUFBRSxPQUFPO0dBQ2pCO0VBckJGLEFBdUJDLGNBdkJhLEFBQUEsUUFBUSxDQXVCckIsV0FBVyxDQUFDO0lBQ1gsS0FBSyxFQUFFLEdBQUc7SUFDVixHQUFHLEVBQUUsSUFBSTtHQUNUO0VBMUJGLEFBNEJDLGNBNUJhLEFBQUEsUUFBUSxDQTRCckIsRUFBRSxBQUFBLElBQUssQ0FBQSxnQkFBZ0IsQ0FBQyxJQUFLLENBQUEsU0FBUyxFQUFFLEVBQUUsQUFBQSxlQUFlLEdBQUMsRUFBRSxDQUFDO0lBQzVELE9BQU8sRUFBRSxnQkFBZ0I7R0FDekI7RUE5QkYsQUFnQ0MsY0FoQ2EsQUFBQSxRQUFRLENBZ0NyQixFQUFFLEFBQUEsSUFBSyxDQUFBLGdCQUFnQixDQUFDLElBQUssQ0FBQSxTQUFTLEVBQUUsRUFBRSxBQUFBLGVBQWUsR0FBQyxFQUFFLENBQUM7SUFDNUQsWUFBWSxFQUFFLEdBQUc7SUFDakIsU0FBUyxFQUFFLElBQUk7R0FDZjtFQUtGLEFBQUEsQ0FBQyxBQUFBLFdBQVcsQ0FBQztJQUNaLE1BQU0sRUFBRSxDQUFDO0lBQ1QsS0FBSyxFQUFFLElBQUk7R0FDWDtFQUVELEFBQUEsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELFFBQUMsQUFBQSxHQUFnQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsS0FBQyxBQUFBLEVBQVk7SUFDdkMsTUFBTSxFQUFFLElBQUk7SUFDWixLQUFLLEVBQUUsSUFBSTtHQUNYOzs7QUMxVEYsQUFBQSxnQkFBZ0IsQ0FBQztFQUNoQixVQUFVLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2JGYixPQUFPO0VhR2YsS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsS0FBSztDQXFWbEI7O0Fac05BLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFWTlpQnpCLEFBQUEsZ0JBQWdCLENBQUM7SUFNZixXQUFXLEVBQUUsSUFBSTtHQWtWbEI7OztBQXhWRCxBQVNDLGdCQVRlLENBU2YsQ0FBQztBQVRGLGdCQUFnQixDQVVmLENBQUMsQUFBQSxRQUFRO0FBVlYsZ0JBQWdCLENBV2YsQ0FBQyxBQUFBLE9BQU8sQ0FBQztFQUNSLGtCQUFrQixFQUFFLFVBQVU7RUFDOUIsZUFBZSxFQUFFLFVBQVU7RUFDM0IsVUFBVSxFQUFFLFVBQVU7Q0FDdEI7O0FBZkYsQUFpQkMsZ0JBakJlLENBaUJmLFVBQVUsQ0FBQztFQUNWLE1BQU0sRUFBRSxNQUFNO0VBQ2QsU0FBUyxFQUFFLEtBQUs7RUFDaEIsT0FBTyxFQUFFLENBQUM7Q0FDVjs7QUFyQkYsQUF1QkMsZ0JBdkJlLENBdUJmLE1BQU0sQ0FBQztFQUNOLE9BQU8sRUFBRSxJQUFJO0NBS2I7O0FaaWhCRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RVk5aUJ6QixBQXVCQyxnQkF2QmUsQ0F1QmYsTUFBTSxDQUFDO0lBSUwsT0FBTyxFQUFFLElBQUk7R0FFZDs7O0FBN0JGLEFBK0JDLGdCQS9CZSxDQStCZixHQUFHLENBQUM7RUFDSCxTQUFTLEVBQUUsSUFBSTtFQUNmLE1BQU0sRUFBRSxJQUFJO0NBQ1o7O0FBbENGLEFBb0NDLGdCQXBDZSxDQW9DZixFQUFFLENBQUM7RUFDRixLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxJQUFJO0VBQ2YsVUFBVSxFQUFFLE1BQU07RUFDbEIsTUFBTSxFQUFFLFVBQVU7Q0FDbEI7O0FBekNGLEFBMkNDLGdCQTNDZSxDQTJDZixFQUFFLENBQUM7RUFDRixLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLFNBQVM7Q0FDakI7O0FBL0NGLEFBaURDLGdCQWpEZSxDQWlEZixFQUFFLENBQUM7RUFDRixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLE1BQU0sRUFBRSxDQUFDO0NBQ1Q7O0FBdkRGLEFBeURDLGdCQXpEZSxDQXlEZixDQUFDLENBQUM7RUFDRCxTQUFTLEVBQUUsSUFBSTtFQUNmLE1BQU0sRUFBRSxVQUFVO0NBQ2xCOztBQTVERixBQThEQyxnQkE5RGUsQ0E4RGYsWUFBWSxDQUFDO0VBQ1osU0FBUyxFQUFFLEtBQUs7RUFDaEIsTUFBTSxFQUFFLGFBQWE7Q0EwQnJCOztBQTFGRixBQWtFRSxnQkFsRWMsQ0E4RGYsWUFBWSxDQUlYLEtBQUssQ0FBQztFQUNMLEtBQUssRUFBRSxJQUFJO0VBQ1gsS0FBSyxFQUFFLEdBQUc7RUFDVixhQUFhLEVBQUUsSUFBSTtDQVFuQjs7QVppZUYsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VZOWlCekIsQUFrRUUsZ0JBbEVjLENBOERmLFlBQVksQ0FJWCxLQUFLLENBQUM7SUFNSixLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxJQUFJO0lBQ1gsT0FBTyxFQUFFLENBQUM7SUFDVixhQUFhLEVBQUUsSUFBSTtHQUVwQjs7O0FBN0VILEFBK0VFLGdCQS9FYyxDQThEZixZQUFZLENBaUJYLE1BQU0sQ0FBQztFQUNOLEtBQUssRUFBRSxLQUFLO0VBQ1osS0FBSyxFQUFFLEdBQUc7RUFDVixZQUFZLEVBQUUsSUFBSTtDQU9sQjs7QVpxZEYsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VZOWlCekIsQUErRUUsZ0JBL0VjLENBOERmLFlBQVksQ0FpQlgsTUFBTSxDQUFDO0lBTUwsS0FBSyxFQUFFLElBQUk7SUFDWCxLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxDQUFDO0dBRVg7OztBQXpGSCxBQTRGQyxnQkE1RmUsQ0E0RmYsTUFBTSxDQUFDO0VBQ04sZ0JBQWdCLEVBQUUsSUFBSTtFQUN0QixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLGFBQWEsRUFBRSxJQUFJO0VBQ25CLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFdBQVcsRUFBRSxJQUFJO0NBdUJqQjs7QUF6SEYsQUFvR0UsZ0JBcEdjLENBNEZmLE1BQU0sQ0FRTCxPQUFPLENBQUM7RUFDUCxnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLE1BQU0sRUFBRSxpQkFBaUI7RUFDekIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsTUFBTSxFQUFFLEtBQUs7RUFDYixLQUFLLEVBQUUsS0FBSztFQUNaLE9BQU8sRUFBRSxnQkFBZ0I7RUFDekIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLEtBQUs7RUFDVixJQUFJLEVBQUUsR0FBRztFQUNULFdBQVcsRUFBRSxLQUFLO0NBQ2xCOztBQS9HSCxBQWlIRSxnQkFqSGMsQ0E0RmYsTUFBTSxDQXFCTCxnQkFBZ0IsQ0FBQztFQUNoQixPQUFPLEVBQUUsS0FBSztFQUNkLE1BQU0sRUFBRSxNQUFNO0NBQ2Q7O0FBcEhILEFBc0hFLGdCQXRIYyxDQTRGZixNQUFNLENBMEJMLFlBQVksQ0FBQztFQUNaLFVBQVUsRUFBRSxJQUFJO0NBQ2hCOztBQXhISCxBQTJIQyxnQkEzSGUsQ0EySGYsU0FBUyxDQUFDO0VBQ1QsZ0JBQWdCLEVBQUUsSUFBSTtFQUN0QixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGFBQWEsRUFBRSxDQUFDO0VBQ2hCLGFBQWEsRUFBRSxXQUFXO0VBQzFCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLFdBQVcsRUFBRSxJQUFJO0VBQ2pCLGNBQWMsRUFBRSxJQUFJO0NBcURwQjs7QUF2TEYsQUFvSUUsZ0JBcEljLENBMkhmLFNBQVMsQ0FTUixhQUFhLENBQUM7RUFDYixVQUFVLEVBQUUsSUFBSTtDQUNoQjs7QUF0SUgsQUF3SUUsZ0JBeEljLENBMkhmLFNBQVMsQ0FhUixjQUFjLENBQUM7RUFDZCxLQUFLLEVBQUUsSUFBSTtFQUNYLEtBQUssRUFBRSxHQUFHO0VBQ1YsY0FBYyxFQUFFLElBQUk7RUFDcEIsUUFBUSxFQUFFLElBQUk7Q0FxQ2Q7O0FaNlhGLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFWTlpQnpCLEFBd0lFLGdCQXhJYyxDQTJIZixTQUFTLENBYVIsY0FBYyxDQUFDO0lBT2IsS0FBSyxFQUFFLElBQUk7SUFDWCxLQUFLLEVBQUUsSUFBSTtHQWlDWjs7O0FBakxILEFBbUpHLGdCQW5KYSxDQTJIZixTQUFTLENBYVIsY0FBYyxBQVdaLE1BQU0sQ0FBQztFQUNQLGFBQWEsRUFBRSxJQUFJO0VBQ25CLEtBQUssRUFBRSxJQUFJO0NBS1g7O0Fab1pILE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFWTlpQnpCLEFBbUpHLGdCQW5KYSxDQTJIZixTQUFTLENBYVIsY0FBYyxBQVdaLE1BQU0sQ0FBQztJQUtOLGFBQWEsRUFBRSxDQUFDO0dBRWpCOzs7QUExSkosQUE0SkcsZ0JBNUphLENBMkhmLFNBQVMsQ0FhUixjQUFjLEFBb0JaLEtBQUssQ0FBQztFQUNOLFlBQVksRUFBRSxJQUFJO0NBS2xCOztBWjRZSCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RVk5aUJ6QixBQTRKRyxnQkE1SmEsQ0EySGYsU0FBUyxDQWFSLGNBQWMsQUFvQlosS0FBSyxDQUFDO0lBSUwsWUFBWSxFQUFFLENBQUM7R0FFaEI7OztBQWxLSixBQW9LRyxnQkFwS2EsQ0EySGYsU0FBUyxDQWFSLGNBQWMsQ0E0QmIsR0FBRyxDQUFDO0VBQ0gsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSTtDQUNmOztBQXZLSixBQXlLRyxnQkF6S2EsQ0EySGYsU0FBUyxDQWFSLGNBQWMsQ0FpQ2IsRUFBRSxDQUFDO0VBQ0YsV0FBVyxFQUFFLElBQ2Q7Q0FBQzs7QUEzS0osQUE2S0csZ0JBN0thLENBMkhmLFNBQVMsQ0FhUixjQUFjLENBcUNiLENBQUMsQ0FBQztFQUNELE1BQU0sRUFBRSxDQUFDO0VBQ1QsV0FBVyxFQUFFLElBQ2Q7Q0FBQzs7QUFoTEosQUFtTEUsZ0JBbkxjLENBMkhmLFNBQVMsQ0F3RFIsWUFBWSxDQUFDO0VBQ1osVUFBVSxFQUFFLElBQUk7RUFDaEIsVUFBVSxFQUFFLE1BQU07Q0FDbEI7O0FBdExILEFBeUxDLGdCQXpMZSxDQXlMZixZQUFZLENBQUM7RUFDWixnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLE1BQU0sRUFBRSxpQkFBaUI7RUFDekIsVUFBVSxFQUFFLENBQUM7RUFDYixhQUFhLEVBQUUsQ0FBQztFQUNoQixLQUFLLEVBQUUsSUFBSTtDQTZGWDs7QUEzUkYsQUFnTUUsZ0JBaE1jLENBeUxmLFlBQVksQ0FPWCxFQUFFLENBQUM7RUFDRixLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLFVBQVU7Q0FDbEI7O0FBcE1ILEFBc01FLGdCQXRNYyxDQXlMZixZQUFZLENBYVgsRUFBRSxDQUFDO0VBQ0YsT0FBTyxFQUFFLFFBQVE7RUFDakIsT0FBTyxFQUFFLFlBQVk7RUFDckIsT0FBTyxFQUFFLElBQUk7RUFDYixpQkFBaUIsRUFBRSxJQUFJO0VBQ3ZCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsU0FBUyxFQUFFLElBQUk7RUFDZixNQUFNLEVBQUUsQ0FBQztFQUNULE9BQU8sRUFBRSxDQUFDO0NBYVY7O0FBM05ILEFBZ05HLGdCQWhOYSxDQXlMZixZQUFZLENBYVgsRUFBRSxDQVVELEVBQUUsQ0FBQztFQUNGLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLEdBQUc7RUFDVixNQUFNLEVBQUUsU0FBUztFQUNqQixPQUFPLEVBQUUsQ0FBQztDQU1WOztBQTFOSixBQXNOSSxnQkF0TlksQ0F5TGYsWUFBWSxDQWFYLEVBQUUsQ0FVRCxFQUFFLENBTUQsVUFBVSxDQUFDO0VBQ1YsS0FBSyxFYnRORixPQUFPO0VhdU5WLFlBQVksRUFBRSxHQUFHO0NBQ2pCOztBQXpOTCxBQTZORSxnQkE3TmMsQ0F5TGYsWUFBWSxDQW9DWCxLQUFLLENBQUM7RUFDTCxLQUFLLEVBQUUsSUFBSTtFQUNYLEtBQUssRUFBRSxVQUFVO0VBQ2pCLGFBQWEsRUFBRSxJQUFJO0NBUW5COztBWnNVRixNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RVk5aUJ6QixBQTZORSxnQkE3TmMsQ0F5TGYsWUFBWSxDQW9DWCxLQUFLLENBQUM7SUFNSixLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLENBQUM7SUFDaEIsYUFBYSxFQUFFLElBQUk7R0FFcEI7OztBQXhPSCxBQTBPRSxnQkExT2MsQ0F5TGYsWUFBWSxDQWlEWCxNQUFNLENBQUM7RUFDTixLQUFLLEVBQUUsS0FBSztFQUNaLEtBQUssRUFBRSxVQUFVO0VBQ2pCLE9BQU8sRUFBRSxhQUFhO0VBQ3RCLFVBQVUsRUFBRSxNQUFNO0NBMENsQjs7QVpzUkYsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VZOWlCekIsQUEwT0UsZ0JBMU9jLENBeUxmLFlBQVksQ0FpRFgsTUFBTSxDQUFDO0lBT0wsS0FBSyxFQUFFLElBQUk7SUFDWCxLQUFLLEVBQUUsSUFBSTtJQUNYLFlBQVksRUFBRSxDQUFDO0dBcUNoQjs7O0FBeFJILEFBc1BHLGdCQXRQYSxDQXlMZixZQUFZLENBaURYLE1BQU0sQ0FZTCxFQUFFLENBQUM7RUFDRixVQUFVLEVBQUUsTUFBTTtFQUNsQixNQUFNLEVBQUUsQ0FBQztDQU9UOztBQS9QSixBQTBQSSxnQkExUFksQ0F5TGYsWUFBWSxDQWlEWCxNQUFNLENBWUwsRUFBRSxDQUlELElBQUksQ0FBQztFQUNKLE9BQU8sRUFBRSxZQUFZO0VBQ3JCLGFBQWEsRUFBRSxjQUFjO0VBQzdCLE9BQU8sRUFBRSxXQUFXO0NBQ3BCOztBQTlQTCxBQWlRRyxnQkFqUWEsQ0F5TGYsWUFBWSxDQWlEWCxNQUFNLENBdUJMLE1BQU0sQ0FBQztFQUNOLE9BQU8sRUFBRSxNQUFNO0NBcUJmOztBQXZSSixBQW9RSSxnQkFwUVksQ0F5TGYsWUFBWSxDQWlEWCxNQUFNLENBdUJMLE1BQU0sQ0FHTCxPQUFPLENBQUM7RUFDUCxTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLE9BQU8sRUFBRSxZQUFZO0NBU3JCOztBQWpSTCxBQTBRSyxnQkExUVcsQ0F5TGYsWUFBWSxDQWlEWCxNQUFNLENBdUJMLE1BQU0sQ0FHTCxPQUFPLEFBTUwsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEdBQUc7RUFDWixRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsSUFBSTtFQUNULElBQUksRUFBRSxLQUFLO0VBQ1gsU0FBUyxFQUFFLElBQUk7Q0FDZjs7QUFoUk4sQUFtUkksZ0JBblJZLENBeUxmLFlBQVksQ0FpRFgsTUFBTSxDQXVCTCxNQUFNLENBa0JMLEtBQUssQ0FBQztFQUNMLFNBQVMsRUFBRSxJQUFJO0VBQ2YsT0FBTyxFQUFFLFlBQVk7Q0FDckI7O0FBdFJMLEFBNlJDLGdCQTdSZSxDQTZSZixhQUFhLENBQUM7RUFDYixnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLE1BQU0sRUFBRSxpQkFBaUI7RUFDekIsVUFBVSxFQUFFLENBQUM7RUFDYixPQUFPLEVBQUUsTUFBTTtDQTZCZjs7QUE5VEYsQUFtU0UsZ0JBblNjLENBNlJmLGFBQWEsQ0FNWixrQkFBa0IsQ0FBQztFQUNsQixNQUFNLEVBQUUsVUFBVTtDQXlCbEI7O0FBN1RILEFBc1NHLGdCQXRTYSxDQTZSZixhQUFhLENBTVosa0JBQWtCLENBR2pCLEdBQUcsQ0FBQztFQUNILGFBQWEsRUFBRSxHQUFHO0VBQ2xCLEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLEtBQUs7RUFDaEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFjO0NBS25DOztBWitQSCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RVk5aUJ6QixBQXNTRyxnQkF0U2EsQ0E2UmYsYUFBYSxDQU1aLGtCQUFrQixDQUdqQixHQUFHLENBQUM7SUFPRixLQUFLLEVBQUUsSUFBSTtHQUVaOzs7QUEvU0osQUFpVEcsZ0JBalRhLENBNlJmLGFBQWEsQ0FNWixrQkFBa0IsQ0FjakIsQ0FBQyxDQUFDO0VBQ0QsU0FBUyxFQUFFLElBQUk7RUFDZixNQUFNLEVBQUUsY0FBYztDQVN0Qjs7QVprUEgsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VZOWlCekIsQUFpVEcsZ0JBalRhLENBNlJmLGFBQWEsQ0FNWixrQkFBa0IsQ0FjakIsQ0FBQyxDQUFDO0lBS0EsV0FBVyxFQUFFLEtBQUs7R0FNbkI7OztBQTVUSixBQXlUSSxnQkF6VFksQ0E2UmYsYUFBYSxDQU1aLGtCQUFrQixDQWNqQixDQUFDLEFBUUMsYUFBYSxDQUFDO0VBQ2QsYUFBYSxFQUFFLENBQUM7Q0FDaEI7O0FBM1RMLEFBZ1VDLGdCQWhVZSxDQWdVZixPQUFPLENBQUM7RUFDUCxnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCLE1BQU0sRUFBRSxpQkFBaUI7RUFDekIsVUFBVSxFQUFFLENBQUM7RUFDYixhQUFhLEVBQUUsV0FBVztDQUMxQjs7QUFyVUYsQUEwVUUsZ0JBMVVjLEFBd1VkLElBQUksQ0FFSixTQUFTLENBQUM7RUFDVCxNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGFBQWEsRUFBRSxJQUFJO0NBQ25COztBQTdVSCxBQStVRSxnQkEvVWMsQUF3VWQsSUFBSSxDQU9KLFFBQVE7QUEvVVYsZ0JBQWdCLEFBd1VkLElBQUksQ0FRSixPQUFPLENBQUM7RUFDUCxPQUFPLEVBQUUsSUFBSTtDQUNiOztBQWxWSCxBQW9WRSxnQkFwVmMsQUF3VWQsSUFBSSxDQVlKLGFBQWEsQ0FBQztFQUNiLE1BQU0sRUFBRSxpQkFBaUI7Q0FDekI7O0FBSUgsQUFFQyx1Q0FGc0MsQ0FFdEMsZ0JBQWdCLENBQUM7RUFDaEIsTUFBTSxFQUFFLGlCQUFpQjtDQUN6Qjs7QUFKRixBQU9DLHVDQVBzQyxDQU90QyxTQUFTO0FBUFYsdUNBQXVDLENBUXRDLEdBQUcsQUFBQSxPQUFPLENBQUM7RUFDVixPQUFPLEVBQUUsZUFBZTtDQUN4Qjs7QUNwV0YsQUFFQyxxQkFGb0IsQ0FFcEIsQ0FBQztBQUZGLHFCQUFxQixDQUdwQixDQUFDLEFBQUEsUUFBUTtBQUhWLHFCQUFxQixDQUlwQixDQUFDLEFBQUEsT0FBTyxDQUFDO0VBQ1Isa0JBQWtCLEVBQUUsVUFBVTtFQUM5QixlQUFlLEVBQUUsVUFBVTtFQUMzQixVQUFVLEVBQUUsVUFBVTtDQUN0Qjs7QUFSRixBQVVDLHFCQVZvQixDQVVwQixpQkFBaUIsQ0FBQztFQUNqQixXQUFXLEVBQUUsS0FBSztFQUNsQixZQUFZLEVBQUUsS0FBSztDQUNuQjs7QUFiRixBQWVDLHFCQWZvQixDQWVwQixXQUFXLENBQUM7RUFDWCxPQUFPLEVBQUUsTUFBTTtFQUNmLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLEtBQUssRUFBRSxJQUFJO0NBQ1g7O0FBbkJGLEFBcUJDLHFCQXJCb0IsQ0FxQnBCLDRCQUE0QixDQUFDO0VBQzVCLGdCQUFnQixFQUFFLElBQUk7RUFDdEIsTUFBTSxFQUFFLGNBQWM7RUFDdEIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsS0FBSyxFQUFFLElBQUk7RUFDWCxjQUFjLEVBQUUsTUFBTTtFQUN0QixPQUFPLEVBQUUsUUFBUTtFQUNqQixNQUFNLEVBQUUsYUFBYTtFQUNyQixLQUFLLEVBQUUsS0FBSztFQUNaLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLEtBQUssRUFBRSxLQUFLO0NBS1o7O0FBckNGLEFBa0NFLHFCQWxDbUIsQ0FxQnBCLDRCQUE0QixBQWExQixNQUFNLENBQUM7RUFDUCxZQUFZLEVBQUUsSUFBSTtDQUNsQjs7QUFwQ0gsQUF1Q0MscUJBdkNvQixDQXVDcEIsZ0JBQWdCLENBQUM7RUFDaEIsT0FBTyxFQUFFLE1BQU07RUFDZixLQUFLLEVBQUUsSUFBSTtFQUNYLEtBQUssRUFBRSxVQUFVO0NBVWpCOztBYjBmRCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU07RWE5aUIxQixBQXVDQyxxQkF2Q29CLENBdUNwQixnQkFBZ0IsQ0FBQztJQU1mLEtBQUssRUFBRSxHQUFHO0dBT1g7OztBYjBmRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RWE5aUJ6QixBQXVDQyxxQkF2Q29CLENBdUNwQixnQkFBZ0IsQ0FBQztJQVVmLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLElBQUk7R0FFcEI7OztBQXBERixBQXNEQyxxQkF0RG9CLENBc0RwQixFQUFFLENBQUM7RUFDRixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0NBQ2hCOztBQXpERixBQTJEQyxxQkEzRG9CLENBMkRwQixXQUFXLENBQUM7RUFDWCxnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLE1BQU0sRUFBRSxjQUFjO0VBQ3RCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE1BQU0sRUFBRSxVQUFVO0NBdUpsQjs7QWJ3VkQsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VhOWlCekIsQUEyREMscUJBM0RvQixDQTJEcEIsV0FBVyxDQUFDO0lBT1YsTUFBTSxFQUFFLEdBQ1Q7R0FtSkE7OztBQXRORixBQXFFRSxxQkFyRW1CLENBMkRwQixXQUFXLENBVVYsR0FBRyxDQUFDO0VBQ0gsTUFBTSxFQUFFLGNBQWM7RUFDdEIsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSTtDQUNmOztBQXpFSCxBQTJFRSxxQkEzRW1CLENBMkRwQixXQUFXLENBZ0JWLEVBQUUsQ0FBQztFQUNGLE1BQU0sRUFBRSxjQUFjO0VBQ3RCLFNBQVMsRUFBRSxJQUFJO0NBQ2Y7O0FBOUVILEFBZ0ZFLHFCQWhGbUIsQ0EyRHBCLFdBQVcsQ0FxQlYsQ0FBQyxDQUFDO0VBQ0QsTUFBTSxFQUFFLFdBQVc7Q0FDbkI7O0FBbEZILEFBb0ZFLHFCQXBGbUIsQ0EyRHBCLFdBQVcsQ0F5QlYsUUFBUSxDQUFDO0VBQ1IsT0FBTyxFQUFFLFNBQVM7Q0FFbEI7O0FBdkZILEFBeUZFLHFCQXpGbUIsQ0EyRHBCLFdBQVcsQ0E4QlYsUUFBUSxDQUFDO0VBQ1IsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixVQUFVLEVBQUUsY0FBYztFQUMxQixPQUFPLEVBQUUsSUFBSTtFQUNiLFFBQVEsRUFBRSxRQUFRO0NBK0JsQjs7QUE1SEgsQUErRkcscUJBL0ZrQixDQTJEcEIsV0FBVyxDQThCVixRQUFRLENBTVAsSUFBSSxDQUFDO0VBQ0osZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixRQUFRLEVBQUUsUUFBUTtFQUNsQixVQUFVLEVBQUUsTUFBTTtFQUNsQixXQUFXLEVBQUUsR0FBRztFQUNoQixHQUFHLEVBQUUsQ0FBQztFQUNOLElBQUksRUFBRSxDQUFDO0VBQ1AsTUFBTSxFQUFFLElBQUk7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUNYLE9BQU8sRUFBRSxFQUFFO0VBQ1gsT0FBTyxFQUFFLElBQUk7RUFDYixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsUUFBUTtFQUNqQixPQUFPLEVBQUUsV0FBVztFQUNwQixPQUFPLEVBQUUsWUFBWTtFQUNyQixPQUFPLEVBQUUsSUFBSTtFQUNiLG1CQUFtQixFQUFFLE1BQU07RUFDM0IsZUFBZSxFQUFFLE1BQU07RUFDdkIsV0FBVyxFQUFFLE1BQU07RUFDbkIsZUFBZSxFQUFFLE1BQU07Q0FTdkI7O0FBM0hKLEFBb0hJLHFCQXBIaUIsQ0EyRHBCLFdBQVcsQ0E4QlYsUUFBUSxDQU1QLElBQUksQUFxQkYsUUFBUSxDQUFDO0VBQ1QsS0FBSyxFZHBIRixPQUFPO0NjcUhWOztBQXRITCxBQXdISSxxQkF4SGlCLENBMkRwQixXQUFXLENBOEJWLFFBQVEsQ0FNUCxJQUFJLEFBeUJGLE1BQU0sQ0FBQztFQUNQLEtBQUssRUFBRSxHQUFHO0NBQ1Y7O0FBMUhMLEFBOEhFLHFCQTlIbUIsQ0EyRHBCLFdBQVcsQ0FtRVYsT0FBTyxDQUFDO0VBQ1AsS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsR0FBRztDQWFoQjs7QUE3SUgsQUFrSUcscUJBbElrQixDQTJEcEIsV0FBVyxDQW1FVixPQUFPLENBSU4sZ0JBQWdCLENBQUM7RUFDaEIsS0FBSyxFQUFFLEdBQUc7Q0FDVjs7QUFwSUosQUFzSUcscUJBdElrQixDQTJEcEIsV0FBVyxDQW1FVixPQUFPLENBUU4sZ0JBQWdCLENBQUM7RUFDaEIsS0FBSyxFQUFFLElBQUk7Q0FDWDs7QUF4SUosQUEwSUcscUJBMUlrQixDQTJEcEIsV0FBVyxDQW1FVixPQUFPLENBWU4sY0FBYyxDQUFDO0VBQ2QsS0FBSyxFZDFJRCxPQUFPO0NjMklYOztBQTVJSixBQStJRSxxQkEvSW1CLENBMkRwQixXQUFXLENBb0ZWLGVBQWUsQ0FBQztFQUNmLFVBQVUsRUFBRSxNQUFNO0NBUWxCOztBQXhKSCxBQWtKRyxxQkFsSmtCLENBMkRwQixXQUFXLENBb0ZWLGVBQWUsQ0FHZCxDQUFDLENBQUM7RUFDRCxXQUFXLEVBQUUsR0FBRztFQUNoQixLQUFLLEVBQUUsS0FBSztFQUNaLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLE9BQU8sRUFBRSxPQUFPO0NBQ2hCOztBQXZKSixBQTBKRSxxQkExSm1CLENBMkRwQixXQUFXLENBK0ZWLGNBQWMsQ0FBQztFQUNkLEtBQUssRUFBRSxLQUFLO0NBMERaOztBQXJOSCxBQTZKRyxxQkE3SmtCLENBMkRwQixXQUFXLENBK0ZWLGNBQWMsQ0FHYixNQUFNLENBQUM7RUFDTixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsY0FBYztFQUN0QixhQUFhLEVBQUUsR0FBRztFQUNsQixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsT0FBTztFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLEtBQUssRUFBRSxLQUFLO0VBQ1osVUFBVSxFQUFFLE1BQU07RUFDbEIsT0FBTyxFQUFFLE9BQU87Q0E4Q2hCOztBQXBOSixBQXdLSSxxQkF4S2lCLENBMkRwQixXQUFXLENBK0ZWLGNBQWMsQ0FHYixNQUFNLEFBV0osTUFBTSxFQXhLWCxxQkFBcUIsQ0EyRHBCLFdBQVcsQ0ErRlYsY0FBYyxDQUdiLE1BQU0sQUFZSixRQUFRLENBQUM7RUFDVCxnQkFBZ0IsRUFBRSxPQUFPO0NBQ3pCOztBQTNLTCxBQTZLSSxxQkE3S2lCLENBMkRwQixXQUFXLENBK0ZWLGNBQWMsQ0FHYixNQUFNLENBZ0JMLEdBQUcsQ0FBQztFQUNILFlBQVksRUFBRSxHQUFHO0NBS2pCOztBQW5MTCxBQWdMSyxxQkFoTGdCLENBMkRwQixXQUFXLENBK0ZWLGNBQWMsQ0FHYixNQUFNLENBZ0JMLEdBQUcsQUFHRCxXQUFXLENBQUM7RUFDWixZQUFZLEVBQUUsQ0FBQztDQUNmOztBQWxMTixBQXVMSyxxQkF2TGdCLENBMkRwQixXQUFXLENBK0ZWLGNBQWMsQ0FHYixNQUFNLEFBd0JKLGNBQWMsQ0FFZCxHQUFHLENBQUM7RUFDSCxLQUFLLEVkdkxILE9BQU87Q2N3TFQ7O0FBekxOLEFBOExLLHFCQTlMZ0IsQ0EyRHBCLFdBQVcsQ0ErRlYsY0FBYyxDQUdiLE1BQU0sQUErQkosZ0JBQWdCLENBRWhCLEdBQUcsQ0FBQztFQUNILEtBQUssRUFBRSxHQUFHO0NBQ1Y7O0FBaE1OLEFBcU1LLHFCQXJNZ0IsQ0EyRHBCLFdBQVcsQ0ErRlYsY0FBYyxDQUdiLE1BQU0sQUFzQ0osZ0JBQWdCLENBRWhCLEdBQUcsQ0FBQztFQUNILEtBQUssRUFBRSxJQUFJO0NBQ1g7O0FBdk1OLEFBME1JLHFCQTFNaUIsQ0EyRHBCLFdBQVcsQ0ErRlYsY0FBYyxDQUdiLE1BQU0sQUE2Q0osU0FBUyxDQUFDO0VBQ1YsTUFBTSxFQUFFLE9BQU87Q0FDZjs7QUE1TUwsQUFnTksscUJBaE5nQixDQTJEcEIsV0FBVyxDQStGVixjQUFjLENBR2IsTUFBTSxBQWlESixRQUFRLENBRVIsR0FBRyxDQUFDO0VBQ0gsS0FBSyxFQUFFLElBQUk7Q0FDWDs7QUMxTU47Ozs7OztFQU1FO0FBRUYsQUFFQyxvQkFGbUIsQ0FFbkIsQ0FBQyxFQUZGLG9CQUFvQixDQUVoQixDQUFDLEFBQUEsUUFBUSxFQUZiLG9CQUFvQixDQUVMLENBQUMsQUFBQSxPQUFPLENBQUM7RUFDdEIsa0JBQWtCLEVBQUUsVUFBVTtFQUM5QixlQUFlLEVBQUUsVUFBVTtFQUMzQixVQUFVLEVBQUUsVUFBVTtDQUN0Qjs7QUFORixBQVFDLG9CQVJtQixDQVFuQiw0QkFBNEIsQ0FBQztFQUM1QixNQUFNLEVBQUUsV0FBVztFQUNuQixPQUFPLEVBekJTLElBQUk7RUEwQnBCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLE1BQU0sRUExQkMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPO0VBMkJ4QixXQUFXLEVBQUUsQ0FBQztDQWdHZDs7QUE3R0YsQUFlRSxvQkFma0IsQ0FRbkIsNEJBQTRCLENBTzNCLEVBQUUsRUFmSixvQkFBb0IsQ0FRbkIsNEJBQTRCLENBT3ZCLEVBQUUsRUFmUixvQkFBb0IsQ0FRbkIsNEJBQTRCLENBT25CLEVBQUUsRUFmWixvQkFBb0IsQ0FRbkIsNEJBQTRCLENBT2YsRUFBRSxFQWZoQixvQkFBb0IsQ0FRbkIsNEJBQTRCLENBT1gsRUFBRSxDQUFDO0VBQ2xCLFVBQVUsRUFBRSxDQUFDO0VBQ2IsV0FBVyxFQUFFLENBQUM7RUFDZCxXQUFXLEVBQUUsR0FBRztDQUNoQjs7QUFuQkgsQUFxQkUsb0JBckJrQixDQVFuQiw0QkFBNEIsQ0FhM0IsRUFBRSxDQUFDO0VBQ0YsU0FBUyxFQUFFLElBQUk7Q0FDZjs7QUF2QkgsQUF5QkUsb0JBekJrQixDQVFuQiw0QkFBNEIsQ0FpQjNCLEVBQUUsQ0FBQztFQUNGLFNBQVMsRUFBRSxJQUFJO0VBQ2YsYUFBYSxFQUFFLElBQUk7RUFDbkIsS0FBSyxFQUFFLE9BQU87Q0FDZDs7QUE3QkgsQUErQkUsb0JBL0JrQixDQVFuQiw0QkFBNEIsQ0F1QjNCLEVBQUUsRUEvQkosb0JBQW9CLENBUW5CLDRCQUE0QixDQXVCdkIsQ0FBQyxDQUFDO0VBQ0wsU0FBUyxFQUFFLElBQUk7Q0FDZjs7QUFqQ0gsQUFtQ0Usb0JBbkNrQixDQVFuQiw0QkFBNEIsQ0EyQjNCLENBQUMsQ0FBQztFQUNELGFBQWEsRUFBRSxJQUFJO0NBWW5COztBQWhESCxBQXNDRyxvQkF0Q2lCLENBUW5CLDRCQUE0QixDQTJCM0IsQ0FBQyxBQUdDLE9BQU8sQ0FBQTtFQUNQLFNBQVMsRUFBRSxJQUFJO0NBQ2Y7O0FBeENKLEFBeUNHLG9CQXpDaUIsQ0FRbkIsNEJBQTRCLENBMkIzQixDQUFDLEFBTUMsUUFBUSxDQUFDO0VBQ1QsU0FBUyxFQUFFLElBQUk7Q0FDZjs7QUEzQ0osQUE2Q0csb0JBN0NpQixDQVFuQiw0QkFBNEIsQ0EyQjNCLENBQUMsQUFVQyxXQUFXLENBQUM7RUFDWixhQUFhLEVBQUUsQ0FBQztDQUNoQjs7QUEvQ0osQUFrREUsb0JBbERrQixDQVFuQiw0QkFBNEIsQ0EwQzNCLEVBQUUsQ0FBQztFQUNGLE1BQU0sRUFsRVMsSUFBSSxDQWtFTSxDQUFDO0NBQzFCOztBQXBESCxBQXNERSxvQkF0RGtCLENBUW5CLDRCQUE0QixDQThDM0IsTUFBTSxDQUFDO0VBQ04sTUFBTSxFQUFFLENBQUM7Q0FhVDs7QUFwRUgsQUF5REcsb0JBekRpQixDQVFuQiw0QkFBNEIsQ0E4QzNCLE1BQU0sQ0FHTCxHQUFHLENBQUM7RUFDSCxLQUFLLEVBQUUsSUFBSTtDQUNYOztBQTNESixBQTZERyxvQkE3RGlCLENBUW5CLDRCQUE0QixDQThDM0IsTUFBTSxDQU9MLFVBQVUsQ0FBQztFQUNWLFNBQVMsRUFBRSxJQUFJO0VBQ2YsS0FBSyxFQUFFLE9BQU87RUFDZCxVQUFVLEVBQUUsR0FBRztFQUNmLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLFdBQVcsRUFBRSxPQUFPO0NBQ3BCOztBQW5FSixBQXNFRSxvQkF0RWtCLENBUW5CLDRCQUE0QixDQThEM0Isd0JBQXdCLENBQUM7RUFDeEIsWUFBWSxFQUFFLElBQWtCO0NBT2hDOztBZGdkRixNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RWM5aEJ6QixBQXNFRSxvQkF0RWtCLENBUW5CLDRCQUE0QixDQThEM0Isd0JBQXdCLENBQUM7SUFJdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxZQUFZLEVBQUUsQ0FBQztJQUNmLFdBQVcsRUFBRSxJQUFJO0dBRWxCOzs7QUE5RUgsQUErRUUsb0JBL0VrQixDQVFuQiw0QkFBNEIsQ0F1RTNCLHdCQUF3QixDQUFDO0VBQ3hCLGFBQWEsRUFBRSxJQUFrQjtDQU1qQzs7QWR3Y0YsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VjOWhCekIsQUErRUUsb0JBL0VrQixDQVFuQiw0QkFBNEIsQ0F1RTNCLHdCQUF3QixDQUFDO0lBSXZCLEtBQUssRUFBRSxJQUFJO0lBQ1gsYUFBYSxFQUFFLENBQUM7R0FFakI7OztBQXRGSCxBQXdGRSxvQkF4RmtCLENBUW5CLDRCQUE0QixDQWdGM0IsRUFBRSxBQUFBLFdBQVcsQ0FBQztFQUNiLFVBQVUsRUFBRSxDQUFDO0VBQ2IsYUFBYSxFQUFFLENBQUM7Q0FLaEI7O0FBL0ZILEFBNEZHLG9CQTVGaUIsQ0FRbkIsNEJBQTRCLENBZ0YzQixFQUFFLEFBQUEsV0FBVyxDQUlaLEVBQUUsQ0FBQztFQUNGLGFBQWEsRUFBRSxDQUFDO0NBQ2hCOztBQTlGSixBQWtHRyxvQkFsR2lCLENBUW5CLDRCQUE0QixDQXlGM0IsRUFBRSxBQUFBLGNBQWMsQ0FDZixFQUFFLENBQUMsR0FBRyxDQUFDO0VBQ04sS0FBSyxFQUFFLE9BQU87RUFDZCxNQUFNLEVBQUUsU0FBUztDQUNqQjs7QUFyR0osQUF3R0Usb0JBeEdrQixDQVFuQiw0QkFBNEIsQ0FnRzNCLFFBQVEsQ0FBQztFQUFDLEtBQUssRUFBRSxJQUFJO0NBQUU7O0FBeEd6QixBQTBHRSxvQkExR2tCLENBUW5CLDRCQUE0QixDQWtHM0IsVUFBVSxDQUFDO0VBQUMsTUFBTSxFQUFFLFlBQVk7Q0FBRTs7QUExR3BDLEFBMkdFLG9CQTNHa0IsQ0FRbkIsNEJBQTRCLENBbUczQixXQUFXLENBQUM7RUFBQyxPQUFPLEVBQUUsWUFBWTtDQUFFOztBQTNHdEMsQUE0R0Usb0JBNUdrQixDQVFuQiw0QkFBNEIsQ0FvRzNCLFNBQVMsQ0FBQztFQUFDLFVBQVUsRUFBRSxpQkFBaUI7Q0FBRTs7QUE1RzVDLEFBK0dDLG9CQS9HbUIsQ0ErR25CLHVDQUF1QyxDQUFDO0VBQ3ZDLE9BQU8sRUFBRSxJQUFJO0NBd0JiOztBZHNaRCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RWM5aEJ6QixBQStHQyxvQkEvR21CLENBK0duQix1Q0FBdUMsQ0FBQztJQUl0QyxPQUFPLEVBQUUsZ0JBQWdCO0dBcUIxQjs7O0FBeElGLEFBc0hFLG9CQXRIa0IsQ0ErR25CLHVDQUF1QyxDQU90Qyw0Q0FBNEMsQ0FBQztFQUM1QyxJQUFJLEVBQUUsQ0FBQztFQUNQLGFBQWEsRUF2SUUsSUFBSTtDQTRJbkI7O0FkaWFGLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFYzloQnpCLEFBc0hFLG9CQXRIa0IsQ0ErR25CLHVDQUF1QyxDQU90Qyw0Q0FBNEMsQ0FBQztJQUszQyxJQUFJLEVBQUUsSUFBSTtHQUVYOzs7QUE3SEgsQUFnSUcsb0JBaElpQixDQStHbkIsdUNBQXVDLENBZ0J0Qyw2Q0FBNkMsQ0FDNUMsTUFBTSxDQUFDO0VBQ04sTUFBTSxFQS9JRCxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU87Q0FnSnRCOztBZDRaSCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RWM5aEJ6QixBQStIRSxvQkEvSGtCLENBK0duQix1Q0FBdUMsQ0FnQnRDLDZDQUE2QyxDQUFDO0lBTTVDLFdBQVcsRUFBRSxJQUFJO0dBRWxCOzs7QUF2SUgsQUEwSUMsb0JBMUltQixDQTBJbkIsaUNBQWlDLENBQUM7RUFDakMsT0FBTyxFQUFFLENBQUM7Q0FzQ1Y7O0FBakxGLEFBNklFLG9CQTdJa0IsQ0EwSW5CLGlDQUFpQyxDQUdoQyxzQ0FBc0M7QUE3SXhDLG9CQUFvQixDQTBJbkIsaUNBQWlDLENBSWhDLHVDQUF1QyxDQUFDO0VBQ3ZDLE9BQU8sRUE5SlEsSUFBSTtDQStKbkI7O0FkOFlGLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFYzloQnpCLEFBb0pHLG9CQXBKaUIsQ0EwSW5CLGlDQUFpQyxDQVFoQyx1Q0FBdUMsQ0FFdEMsd0JBQXdCLENBQUM7SUFHdkIsS0FBSyxFQUFFLElBQUk7SUFDWCxLQUFLLEVBQUUsSUFBSTtHQUVaOzs7QUExSkosQUE2SkUsb0JBN0prQixDQTBJbkIsaUNBQWlDLENBbUJoQyxzQ0FBc0MsQ0FBQztFQUN0QyxnQkFBZ0IsRUFBRSxPQUFPO0VBQ3pCLGFBQWEsRUE3S1AsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPO0NBc0x2Qjs7QUF4S0gsQUFpS0csb0JBaktpQixDQTBJbkIsaUNBQWlDLENBbUJoQyxzQ0FBc0MsQUFJcEMsVUFBVSxDQUFDO0VBQ1gsYUFBYSxFQUFFLENBQUM7Q0FDaEI7O0FBbktKLEFBcUtHLG9CQXJLaUIsQ0EwSW5CLGlDQUFpQyxDQW1CaEMsc0NBQXNDLENBUXJDLENBQUMsQ0FBQztFQUNELEtBQUssRUFBRSxJQUFJO0NBQ1g7O0FBdktKLEFBMEtFLG9CQTFLa0IsQ0EwSW5CLGlDQUFpQyxDQWdDaEMsRUFBRSxBQUFBLGVBQWUsQ0FBQztFQUNqQixhQUFhLEVBQUUsS0FBSztDQUNwQjs7QUE1S0gsQUE4S0Usb0JBOUtrQixDQTBJbkIsaUNBQWlDLENBb0NoQyxJQUFJLEFBQUEsYUFBYSxDQUFDO0VBQ2pCLEtBQUssRUFBRSxPQUFPO0NBQ2Q7O0FBaExILEFBbUxDLG9CQW5MbUIsQ0FtTG5CLHFDQUFxQyxDQUFDO0VBQ3JDLGFBQWEsRUFBRSxDQUFDO0NBS2hCOztBQXpMRixBQXNMRSxvQkF0TGtCLENBbUxuQixxQ0FBcUMsQUFHbkMsSUFBSyxDQUFBLGFBQWEsRUFBRTtFQUNwQixhQUFhLEVBQUUsQ0FBQztDQUNoQjs7QUF4TEgsQUE2TEUsb0JBN0xrQixDQTJMbkIsaUNBQWlDLENBRWhDLEVBQUUsQ0FBQztFQUNGLGFBQWEsRUFBRSxLQUFLO0NBQ3BCOztBQS9MSCxBQWlNRSxvQkFqTWtCLENBMkxuQixpQ0FBaUMsQ0FNaEMsRUFBRSxDQUFDO0VBQ0YsYUFBYSxFQUFFLElBQUk7Q0FDbkI7O0FBbk1ILEFBcU1FLG9CQXJNa0IsQ0EyTG5CLGlDQUFpQyxDQVVoQyxDQUFDLEFBQUEsYUFBYSxDQUFDO0VBQ2QsYUFBYSxFQUFFLElBQUk7Q0FDbkI7O0FBdk1ILEFBeU1FLG9CQXpNa0IsQ0EyTG5CLGlDQUFpQyxDQWNoQyx3QkFBd0IsQ0FBQztFQUN4QixhQUFhLEVBQUUsSUFBSTtFQUNuQixLQUFLLEVBQUUsSUFBSTtDQWFYOztBQXhOSCxBQTZNRyxvQkE3TWlCLENBMkxuQixpQ0FBaUMsQ0FjaEMsd0JBQXdCLENBSXZCLEdBQUcsQ0FBQztFQUNILEtBQUssRUFBRSxLQUFLO0NBQ1o7O0FkK1VILE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFYzloQnpCLEFBeU1FLG9CQXpNa0IsQ0EyTG5CLGlDQUFpQyxDQWNoQyx3QkFBd0IsQ0FBQztJQVN2QixLQUFLLEVBQUUsR0FBRztHQU1YO0VBeE5ILEFBbU5JLG9CQW5OZ0IsQ0EyTG5CLGlDQUFpQyxDQWNoQyx3QkFBd0IsQ0FVdEIsR0FBRyxDQUFDO0lBQ0gsS0FBSyxFQUFFLElBQUk7SUFDWCxTQUFTLEVBQUUsSUFBSTtHQUNmOzs7QUF0TkwsQUEwTkUsb0JBMU5rQixDQTJMbkIsaUNBQWlDLENBK0JoQyx3QkFBd0IsQ0FBQztFQUN4QixZQUFZLEVBQUUsSUFBSTtFQUNsQixLQUFLLEVBQUUseUJBQXlCO0NBS2hDOztBZDZURixNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RWM5aEJ6QixBQTBORSxvQkExTmtCLENBMkxuQixpQ0FBaUMsQ0ErQmhDLHdCQUF3QixDQUFDO0lBS3ZCLEtBQUssRUFBRSxHQUFHO0dBRVg7OztBQWpPSCxBQW1PRSxvQkFuT2tCLENBMkxuQixpQ0FBaUMsQ0F3Q2hDLHNDQUFzQyxDQUFDO0VBQ3RDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBa0I7RUFDaEMsZ0JBQWdCLEVBQUUsT0FBTztFQUN6QixLQUFLLEVBQUUsSUFBSTtFQUNYLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLFNBQVMsRUFBRSxJQUFJO0NBV2Y7O0FBclBILEFBNE9HLG9CQTVPaUIsQ0EyTG5CLGlDQUFpQyxDQXdDaEMsc0NBQXNDLEFBU3BDLE1BQU0sQ0FBQztFQUNQLGdCQUFnQixFQUFFLE9BQU87Q0FDekI7O0FBOU9KLEFBZ1BHLG9CQWhQaUIsQ0EyTG5CLGlDQUFpQyxDQXdDaEMsc0NBQXNDLENBYXJDLEdBQUcsQ0FBQztFQUNILEtBQUssRUFBRSxPQUFPO0VBQ2QsY0FBYyxFQUFFLE1BQU07RUFDdEIsV0FBVyxFQUFFLEdBQUc7Q0FDaEI7O0FBcFBKLEFBMFBFLG9CQTFQa0IsQ0F3UG5CLGtDQUFrQyxDQUVqQyxLQUFLLENBQUM7RUFDTCxlQUFlLEVBQUUsUUFBUTtDQXdDekI7O0FBblNILEFBOFBJLG9CQTlQZ0IsQ0F3UG5CLGtDQUFrQyxDQUVqQyxLQUFLLENBR0osRUFBRSxDQUNELEVBQUUsQ0FBQztFQUNGLGFBQWEsRUE3UVQsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPO0VBOFFyQixZQUFZLEVBOVFSLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTztFQStRckIsT0FBTyxFQWhSTSxJQUFJO0VBaVJqQixjQUFjLEVBQUUsR0FBRztDQUtuQjs7QUF2UUwsQUFvUUssb0JBcFFlLENBd1BuQixrQ0FBa0MsQ0FFakMsS0FBSyxDQUdKLEVBQUUsQ0FDRCxFQUFFLEFBTUEsYUFBYSxDQUFDO0VBQ2QsWUFBWSxFQUFFLENBQUM7Q0FDZjs7QUF0UU4sQUF5UUksb0JBelFnQixDQXdQbkIsa0NBQWtDLENBRWpDLEtBQUssQ0FHSixFQUFFLEFBWUEsV0FBVyxDQUFDLEVBQUUsQ0FBQztFQUNmLGFBQWEsRUFBRSxJQUFJO0NBQ25COztBQTNRTCxBQThRRyxvQkE5UWlCLENBd1BuQixrQ0FBa0MsQ0FFakMsS0FBSyxDQW9CSixDQUFDLENBQUM7RUFDRCxpQkFBaUIsRUFBRSxTQUFTO0VBQzVCLGVBQWUsRUFBRSxTQUFTO0VBQzFCLG1CQUFtQixFQUFFLEtBQUs7RUFDMUIsTUFBTSxFQUFFLENBQUM7Q0FnQlQ7O0FBbFNKLEFBb1JJLG9CQXBSZ0IsQ0F3UG5CLGtDQUFrQyxDQUVqQyxLQUFLLENBb0JKLENBQUMsQUFNQyxjQUFjLENBQUM7RUFDZixZQUFZLEVBcFNDLElBQUk7RUFxU2pCLGdCQUFnQixFQUFFLGtDQUFrQztDQUNwRDs7QUF2UkwsQUF3Ukksb0JBeFJnQixDQXdQbkIsa0NBQWtDLENBRWpDLEtBQUssQ0FvQkosQ0FBQyxBQVVDLGNBQWMsQ0FBQztFQUNmLFlBQVksRUF4U0MsSUFBSTtFQXlTakIsZ0JBQWdCLEVBQUUsa0NBQWtDO0NBQ3BEOztBQTNSTCxBQTRSSSxvQkE1UmdCLENBd1BuQixrQ0FBa0MsQ0FFakMsS0FBSyxDQW9CSixDQUFDLEFBY0MsaUJBQWlCLENBQUM7RUFDbEIsWUFBWSxFQTVTQyxJQUFJO0VBNlNqQixtQkFBbUIsRUFBRSxNQUFNO0VBQzNCLGVBQWUsRUFBRSxTQUFTO0VBQzFCLGdCQUFnQixFQUFFLHFDQUFxQztDQUN2RDs7QUFqU0wsQUFxU0Usb0JBclNrQixDQXdQbkIsa0NBQWtDLENBNkNqQyxzQ0FBc0MsQ0FBQztFQUN0QyxPQUFPLEVBQUUsQ0FBQztDQU9WOztBQTdTSCxBQXVTRyxvQkF2U2lCLENBd1BuQixrQ0FBa0MsQ0E2Q2pDLHNDQUFzQyxDQUVyQyxFQUFFLENBQUM7RUFDRixPQUFPLEVBdlRPLElBQUksQ0FBSixJQUFJLENBQUosSUFBSSxDQXVUMEMsSUFBa0I7Q0FDOUU7O0FBelNKLEFBMFNHLG9CQTFTaUIsQ0F3UG5CLGtDQUFrQyxDQTZDakMsc0NBQXNDLENBS3JDLHdCQUF3QixBQUFBLFlBQVksQ0FBQyxFQUFFLENBQUM7RUFDdkMsT0FBTyxFQTFUTyxJQUFJO0NBMlRsQjs7QUE1U0osQUFnVEMsb0JBaFRtQixDQWdUbkIscUJBQXFCLENBQUM7RUFDckIsT0FBTyxFQUFFLENBQUMsQ0FoVU0sSUFBSTtDQThZcEI7O0FBL1hGLEFBbVRFLG9CQW5Ua0IsQ0FnVG5CLHFCQUFxQixDQUdwQixnQkFBZ0IsQ0FBQztFQUNoQixPQUFPLEVBQUUsTUFBTTtDQUNmOztBQXJUSCxBQXlURyxvQkF6VGlCLENBZ1RuQixxQkFBcUIsQ0FPcEIsV0FBVyxDQUVWLFFBQVEsQ0FBQztFQUNSLE9BQU8sRUFBRSxJQUFJO0NBQ2I7O0FBM1RKLEFBNlRHLG9CQTdUaUIsQ0FnVG5CLHFCQUFxQixDQU9wQixXQUFXLENBTVYsR0FBRyxDQUFDO0VBQ0gsT0FBTyxFQUFFLElBQUk7Q0FLYjs7QUFuVUosQUFnVUksb0JBaFVnQixDQWdUbkIscUJBQXFCLENBT3BCLFdBQVcsQ0FNVixHQUFHLENBR0QsQUFBQSxHQUFDLEVBQUssS0FBSyxBQUFWLEVBQVk7RUFDYixPQUFPLEVBQUUsSUFBSTtDQUNiOztBQWxVTCxBQXFVRyxvQkFyVWlCLENBZ1RuQixxQkFBcUIsQ0FPcEIsV0FBVyxDQWNWLGNBQWMsQ0FBQyxPQUFPLENBQUM7RUFDdEIsT0FBTyxFQUFFLFlBQVk7RUFDckIsZUFBZSxFQUFFLElBQUk7RUFDckIsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsSUFBSTtFQUNqQixNQUFNLEVBQUUsSUFBSTtFQUNaLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLFVBQVU7RUFDbkIsTUFBTSxFQUFFLE9BQU87RUFDZixrQkFBa0IsRUFBRSxJQUFJO0VBQ3hCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE1BQU0sRUFBRSxpQkFBaUI7RUFDekIsVUFBVSxFQUFFLE9BQU87RUFDbkIsVUFBVSxFQUFFLGVBQWU7RUFDM0IsV0FBVyxFQUFFLE1BQU07Q0EwQ25COztBQTdYSixBQXFWSSxvQkFyVmdCLENBZ1RuQixxQkFBcUIsQ0FPcEIsV0FBVyxDQWNWLGNBQWMsQ0FBQyxPQUFPLEFBZ0JwQixNQUFNLEVBclZYLG9CQUFvQixDQWdUbkIscUJBQXFCLENBT3BCLFdBQVcsQ0FjVixjQUFjLENBQUMsT0FBTyxBQWdCWCxNQUFNLENBQUU7RUFDakIsVUFBVSxFQUFFLE9BQU87RUFDbkIsWUFBWSxFQUFFLElBQUk7RUFDbEIsS0FBSyxFQUFFLE9BQU87Q0FDZDs7QUF6VkwsQUEyVkksb0JBM1ZnQixDQWdUbkIscUJBQXFCLENBT3BCLFdBQVcsQ0FjVixjQUFjLENBQUMsT0FBTyxBQXNCcEIsZUFBZSxDQUFDO0VBQ2hCLFVBQVUsRUFBRSxPQUFPO0VBQ25CLFlBQVksRUFBRSx1QkFBdUI7RUFDckMsVUFBVSxFQUFFLGVBQWU7RUFDM0IsS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsNEVBQTRFO0NBV3pGOztBQTNXTCxBQWtXSyxvQkFsV2UsQ0FnVG5CLHFCQUFxQixDQU9wQixXQUFXLENBY1YsY0FBYyxDQUFDLE9BQU8sQUFzQnBCLGVBQWUsQUFPZCxNQUFNLEVBbFdaLG9CQUFvQixDQWdUbkIscUJBQXFCLENBT3BCLFdBQVcsQ0FjVixjQUFjLENBQUMsT0FBTyxBQXNCcEIsZUFBZSxBQU9MLE1BQU0sQ0FBQztFQUNoQixVQUFVLEVBQUUsT0FBTztFQUNuQixZQUFZLEVBQUUsT0FBTztFQUNyQixLQUFLLEVBQUUsSUFBSTtDQUNYOztBQXRXTixBQXdXSyxvQkF4V2UsQ0FnVG5CLHFCQUFxQixDQU9wQixXQUFXLENBY1YsY0FBYyxDQUFDLE9BQU8sQUFzQnBCLGVBQWUsQ0FhZixXQUFXLENBQUM7RUFDWCxLQUFLLEVBQUUsSUFBSTtDQUNYOztBQTFXTixBQTZXSSxvQkE3V2dCLENBZ1RuQixxQkFBcUIsQ0FPcEIsV0FBVyxDQWNWLGNBQWMsQ0FBQyxPQUFPLEFBd0NwQixpQkFBaUIsQ0FBQztFQUNsQixLQUFLLEVBQUUsSUFBSTtFQUNYLFlBQVksRUFBRSxPQUFPO0VBQ3JCLFVBQVUsRUFBRSxPQUFPO0VBQ25CLFVBQVUsRUFBRSxlQUFlO0NBTzNCOztBQXhYTCxBQW1YSyxvQkFuWGUsQ0FnVG5CLHFCQUFxQixDQU9wQixXQUFXLENBY1YsY0FBYyxDQUFDLE9BQU8sQUF3Q3BCLGlCQUFpQixBQU1oQixNQUFNLEVBblhaLG9CQUFvQixDQWdUbkIscUJBQXFCLENBT3BCLFdBQVcsQ0FjVixjQUFjLENBQUMsT0FBTyxBQXdDcEIsaUJBQWlCLEFBTVAsTUFBTSxDQUFFO0VBQ2pCLFVBQVUsRUFBRSxPQUFPO0VBQ25CLFlBQVksRUFBRSxJQUFJO0VBQ2xCLEtBQUssRUFBRSxPQUFPO0NBQ2Q7O0FBdlhOLEFBMFhJLG9CQTFYZ0IsQ0FnVG5CLHFCQUFxQixDQU9wQixXQUFXLENBY1YsY0FBYyxDQUFDLE9BQU8sQUFxRHBCLFNBQVMsQ0FBQztFQUNWLE1BQU0sRUFBRSxPQUFPO0NBQ2Y7O0FDM1lMLEFBRUMsdUJBRnNCLENBRXRCLENBQUM7QUFGRix1QkFBdUIsQ0FHdEIsQ0FBQyxBQUFBLFFBQVE7QUFIVix1QkFBdUIsQ0FJdEIsQ0FBQyxBQUFBLE9BQU8sQ0FBQztFQUNSLGtCQUFrQixFQUFFLFVBQVU7RUFDOUIsZUFBZSxFQUFFLFVBQVU7RUFDM0IsVUFBVSxFQUFFLFVBQVU7Q0FDdEI7O0FBUkYsQUFXQyx1QkFYc0IsQ0FXdEIsb0JBQW9CLENBQUM7RUFDcEIsYUFBYSxFQUFFLGlCQUFpQjtFQUNoQyxPQUFPLEVBQUUsTUFBTTtFQUNmLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7Q0FvU2hCOztBQW5URixBQWlCRSx1QkFqQnFCLENBV3RCLG9CQUFvQixBQU1sQixjQUFjLENBQUM7RUFDZixXQUFXLEVBQUUsZUFBZTtDQUM1Qjs7QWYwaEJGLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFZTdpQnpCLEFBV0MsdUJBWHNCLENBV3RCLG9CQUFvQixDQUFDO0lBV25CLE9BQU8sRUFBRSxNQUFNO0dBNlJoQjs7O0FBblRGLEFBMEJFLHVCQTFCcUIsQ0FXdEIsb0JBQW9CLEFBZWxCLGdCQUFnQixDQUFDO0VBQ2pCLE9BQU8sRUFBRSxNQUFNO0NBWWY7O0FBdkNILEFBOEJJLHVCQTlCbUIsQ0FXdEIsb0JBQW9CLEFBZWxCLGdCQUFnQixBQUdmLFFBQVEsQ0FDUixFQUFFLENBQUM7RUFDRixNQUFNLEVBQUUsQ0FBQztDQUNUOztBQWhDTCxBQW1DRyx1QkFuQ29CLENBV3RCLG9CQUFvQixBQWVsQixnQkFBZ0IsQ0FTaEIsc0JBQXNCLENBQUM7RUFDdEIsTUFBTSxFQUFFLENBQUM7RUFDVCxTQUFTLEVBQUUsTUFBTTtDQUNqQjs7QUF0Q0osQUE0Q0csdUJBNUNvQixDQVd0QixvQkFBb0IsQUErQmxCLE1BQU0sQ0FFTixDQUFDO0FBNUNKLHVCQUF1QixDQVd0QixvQkFBb0IsQUErQmxCLE1BQU0sQ0FHTixDQUFDLEFBQUEsY0FBYyxDQUFBO0VBQ2QsTUFBTSxFQUFFLFVBQVU7Q0FDbEI7O0FBL0NKLEFBcURHLHVCQXJEb0IsQ0FXdEIsb0JBQW9CLEFBd0NsQiw2QkFBNkIsQ0FFN0IsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELFFBQUMsQUFBQSxFQUFlO0VBQ3BCLEtBQUssRUFBRSxJQUFJO0VBQ1gsTUFBTSxFQUFFLFNBQVM7Q0FDakI7O0FBeERKLEFBMERHLHVCQTFEb0IsQ0FXdEIsb0JBQW9CLEFBd0NsQiw2QkFBNkIsQ0FPN0IsS0FBSyxDQUFDO0VBQ0wsTUFBTSxFQUFFLFVBQVU7Q0FDbEI7O0FBNURKLEFBa0VHLHVCQWxFb0IsQ0FXdEIsb0JBQW9CLEFBcURsQiw0QkFBNEIsQ0FFNUIsc0JBQXNCLENBQUM7RUFDdEIsV0FBVyxFQUFFLEdBQUc7Q0FDaEI7O0FBcEVKLEFBc0VHLHVCQXRFb0IsQ0FXdEIsb0JBQW9CLEFBcURsQiw0QkFBNEIsQ0FNNUIsQ0FBQyxBQUFBLEtBQUssQ0FBQztFQUNOLFVBQVUsRUFBRSxJQUFJO0NBQ2hCOztBQXhFSixBQStFRyx1QkEvRW9CLENBV3RCLG9CQUFvQixBQWlFbEIseUJBQXlCLENBR3pCLHNCQUFzQixFQS9FekIsdUJBQXVCLENBV3RCLG9CQUFvQixBQWtFbEIsMkJBQTJCLENBRTNCLHNCQUFzQixDQUFDO0VBQ3RCLFdBQVcsRUFBRSxHQUFHO0NBQ2hCOztBQWpGSixBQXVGRyx1QkF2Rm9CLENBV3RCLG9CQUFvQixBQTBFbEIsMkJBQTJCLENBRTNCLHNCQUFzQixDQUFDO0VBQ3RCLFdBQVcsRUFBRSxHQUFHO0NBQ2hCOztBQXpGSixBQWlHSSx1QkFqR21CLENBV3RCLG9CQUFvQixBQWtGbEIsMEJBQTBCLENBRTFCLHNCQUFzQixDQUVyQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsS0FBQyxBQUFBLEVBQVk7RUFDakIsTUFBTSxFQUFFLGFBQWE7Q0FDckI7O0FBbkdMLEFBcUdJLHVCQXJHbUIsQ0FXdEIsb0JBQW9CLEFBa0ZsQiwwQkFBMEIsQ0FFMUIsc0JBQXNCLENBTXJCLEtBQUssQ0FBQztFQUNMLFlBQVksRUFBRSxJQUFJO0VBQ2xCLE9BQU8sRUFBRSxZQUFZO0NBQ3JCOztBQXhHTCxBQWtISSx1QkFsSG1CLENBV3RCLG9CQUFvQixBQW1HbEIsbUNBQW1DLENBRW5DLHNCQUFzQixDQUVyQixLQUFLLEFBQUEsT0FBTyxDQUFDO0VBQ1osT0FBTyxFQUFFLEdBQUc7RUFDWixPQUFPLEVBQUUsS0FBSztFQUNkLEtBQUssRUFBRSxLQUFLO0VBQ1osTUFBTSxFQUFFLEtBQUs7RUFDYixNQUFNLEVBQUUsVUFBVTtDQUNsQjs7QUF4SEwsQUEwSEksdUJBMUhtQixDQVd0QixvQkFBb0IsQUFtR2xCLG1DQUFtQyxDQUVuQyxzQkFBc0IsQ0FVckIsZUFBZSxBQUFBLE9BQU8sQ0FBQztFQUN0QixVQUFVLEVBQUUsc0NBQXNDLENBQUMsTUFBTSxDQUFDLE1BQU07Q0FDaEU7O0FBNUhMLEFBOEhJLHVCQTlIbUIsQ0FXdEIsb0JBQW9CLEFBbUdsQixtQ0FBbUMsQ0FFbkMsc0JBQXNCLENBY3JCLFlBQVksQUFBQSxPQUFPLENBQUM7RUFDbkIsVUFBVSxFQUFFLDJDQUEyQyxDQUFDLE1BQU0sQ0FBQyxNQUFNO0NBQ3JFOztBQWhJTCxBQXlJSSx1QkF6SW1CLENBV3RCLG9CQUFvQixBQTBIbEIsMEJBQTBCLENBRTFCLHNCQUFzQixDQUVyQixHQUFHLENBQUM7RUFDSCxPQUFPLEVBQUUsS0FBSztFQUNkLE1BQU0sRUFBRSxVQUFVO0VBQ2xCLFNBQVMsRUFBRSxLQUFLO0NBQ2hCOztBQTdJTCxBQW9KRyx1QkFwSm9CLENBV3RCLG9CQUFvQixBQXVJbEIsMEJBQTBCLENBRTFCLHFCQUFxQixDQUFDO0VBQ3JCLFlBQVksRUFBRSxJQUFJO0NBQ2xCOztBQXRKSixBQXdKRyx1QkF4Sm9CLENBV3RCLG9CQUFvQixBQXVJbEIsMEJBQTBCLENBTTFCLHdCQUF3QixDQUFDO0VBQ3hCLEdBQUcsRUFBRSxHQUFHO0VBQ1IsSUFBSSxFQUFFLEdBQUc7RUFDVCxNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxJQUFJO0VBQ1gsYUFBYSxFQUFFLEdBQUc7Q0FDbEI7O0FBOUpKLEFBa0tFLHVCQWxLcUIsQ0FXdEIsb0JBQW9CLENBdUpuQixFQUFFLENBQUM7RUFDRixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLE1BQU0sRUFBRSxTQUFTO0NBQ2pCOztBQXRLSCxBQXdLRSx1QkF4S3FCLENBV3RCLG9CQUFvQixDQTZKbkIsRUFBRSxDQUFDO0VBQ0YsU0FBUyxFQUFFLElBQUk7RUFDZixXQUFXLEVBQUUsR0FBRztFQUNoQixNQUFNLEVBQUUsVUFBVTtDQUNsQjs7QUE1S0gsQUE4S0UsdUJBOUtxQixDQVd0QixvQkFBb0IsQ0FtS25CLENBQUMsQ0FBQztFQUNELE1BQU0sRUFBRSxRQUFRO0VBQ2hCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7Q0FtQmhCOztBQXBNSCxBQW1MRyx1QkFuTG9CLENBV3RCLG9CQUFvQixDQW1LbkIsQ0FBQyxBQUtDLGNBQWMsQ0FBQztFQUNmLE1BQU0sRUFBRSxPQUFPO0NBQ2Y7O0FBckxKLEFBdUxHLHVCQXZMb0IsQ0FXdEIsb0JBQW9CLENBbUtuQixDQUFDLEFBU0MsS0FBSyxDQUFDO0VBQ04sVUFBVSxFQUFFLE1BQU07RUFDbEIsS0FBSyxFQUFFLElBQUk7Q0FDWDs7QUExTEosQUE0TEcsdUJBNUxvQixDQVd0QixvQkFBb0IsQ0FtS25CLENBQUMsQUFjQyxjQUFjLENBQUM7RUFDZixVQUFVLEVBQUUsTUFBTTtFQUNsQixLQUFLLEVBQUUsSUFBSTtDQUtYOztBQW5NSixBQWdNSSx1QkFoTW1CLENBV3RCLG9CQUFvQixDQW1LbkIsQ0FBQyxBQWNDLGNBQWMsQ0FJZCxNQUFNLENBQUM7RUFDTixLQUFLLEVBQUUsS0FBSztDQUNaOztBQWxNTCxBQXVNRSx1QkF2TXFCLENBV3RCLG9CQUFvQixDQTRMbkIsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELElBQUMsQUFBQTtBQXZNUix1QkFBdUIsQ0FXdEIsb0JBQW9CLENBNkxuQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsTUFBQyxBQUFBO0FBeE1SLHVCQUF1QixDQVd0QixvQkFBb0IsQ0E4TG5CLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxRQUFDLEFBQUEsRUFBZTtFQUNwQixnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLE1BQU0sRUFBRSxjQUFjO0VBQ3RCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLFlBQVk7RUFDckIsY0FBYyxFQUFFLE1BQU07RUFDdEIsT0FBTyxFQUFFLFFBQVE7RUFDakIsTUFBTSxFQUFFLFVBQVU7RUFDbEIsS0FBSyxFQUFFLEtBQUs7RUFDWixVQUFVLEVBQUUsSUFBSTtDQVNoQjs7QWZnVkYsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VlN2lCekIsQUF1TUUsdUJBdk1xQixDQVd0QixvQkFBb0IsQ0E0TG5CLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxJQUFDLEFBQUE7RUF2TVIsdUJBQXVCLENBV3RCLG9CQUFvQixDQTZMbkIsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQTtFQXhNUix1QkFBdUIsQ0FXdEIsb0JBQW9CLENBOExuQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsUUFBQyxBQUFBLEVBQWU7SUFjbkIsS0FBSyxFQUFFLEtBQUs7R0FNYjs7O0FBN05ILEFBME5HLHVCQTFOb0IsQ0FXdEIsb0JBQW9CLENBNExuQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsSUFBQyxBQUFBLENBbUJKLE1BQU07QUExTlYsdUJBQXVCLENBV3RCLG9CQUFvQixDQTZMbkIsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELE1BQUMsQUFBQSxDQWtCSixNQUFNO0FBMU5WLHVCQUF1QixDQVd0QixvQkFBb0IsQ0E4TG5CLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxRQUFDLEFBQUEsQ0FpQkosTUFBTSxDQUFDO0VBQ1AsWUFBWSxFQUFFLElBQUk7Q0FDbEI7O0FBNU5KLEFBK05FLHVCQS9OcUIsQ0FXdEIsb0JBQW9CLENBb05uQixLQUFLLENBQUEsQUFBQSxJQUFDLENBQUQsTUFBQyxBQUFBLEVBQWE7RUFDbEIsS0FBSyxFQUFFLEtBQUs7Q0FDWjs7QUFqT0gsQUF1T0UsdUJBdk9xQixDQVd0QixvQkFBb0IsQ0E0Tm5CLE1BQU0sQ0FBQztFQUNOLFlBQVksRUFBRSxJQUFJO0NBQ2xCOztBQXpPSCxBQTJPRSx1QkEzT3FCLENBV3RCLG9CQUFvQixDQWdPbkIsc0JBQXNCLENBQUM7RUFDdEIsT0FBTyxFQUFFLEtBQUs7RUFDZCxTQUFTLEVBQUUsS0FBSztDQUtoQjs7QWYyVEYsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLO0VlN2lCekIsQUEyT0UsdUJBM09xQixDQVd0QixvQkFBb0IsQ0FnT25CLHNCQUFzQixDQUFDO0lBS3JCLEtBQUssRUFBRSxLQUFLO0dBRWI7OztBQWxQSCxBQW9QRSx1QkFwUHFCLENBV3RCLG9CQUFvQixDQXlPbkIsYUFBYSxDQUFDO0VBQ2IsVUFBVSxFQUFFLElBQUk7RUFDaEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENoQnhQWCxPQUFPO0VnQnlQYixNQUFNLEVBQUUsSUFBSTtFQUNaLEtBQUssRUFBRSxJQUFJO0VBQ1gsUUFBUSxFQUFFLFFBQVE7RUFDbEIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsTUFBTSxFQUFFLFVBQVU7Q0F1RGxCOztBQWxUSCxBQTZQRyx1QkE3UG9CLENBV3RCLG9CQUFvQixDQXlPbkIsYUFBYSxBQVNYLFNBQVMsQ0FBQztFQUNWLE1BQU0sRUFBRSxHQUFHLENBQUMsS0FBSyxDaEI5UGIsT0FBTztDZ0J3UVg7O0FBeFFKLEFBZ1FJLHVCQWhRbUIsQ0FXdEIsb0JBQW9CLENBeU9uQixhQUFhLEFBU1gsU0FBUyxDQUdULElBQUksQ0FBQztFQUNKLGdCQUFnQixFaEJqUWIsT0FBTztDZ0J1UVY7O0FBdlFMLEFBbVFLLHVCQW5Ra0IsQ0FXdEIsb0JBQW9CLENBeU9uQixhQUFhLEFBU1gsU0FBUyxDQUdULElBQUksQUFHRixNQUFNLENBQUM7RUFDUCxPQUFPLEVBQUUsSUFBSTtFQUNiLE9BQU8sRUFBRSxJQUFJO0NBQ2I7O0FBdFFOLEFBMFFHLHVCQTFRb0IsQ0FXdEIsb0JBQW9CLENBeU9uQixhQUFhLENBc0JaLElBQUksQ0FBQztFQUNKLE9BQU8sRUFBRSxLQUFLO0VBQ2QsVUFBVSxFaEI5UUwsT0FBTztFZ0IrUVosTUFBTSxFQUFFLElBQUk7RUFDWixJQUFJLEVBQUUsQ0FBQztFQUNQLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGtCQUFrQixFQUFFLHNCQUFzQjtFQUMxQyxlQUFlLEVBQUUsc0JBQXNCO0VBQ3ZDLGFBQWEsRUFBRSxzQkFBc0I7RUFDckMsVUFBVSxFQUFFLHNCQUFzQjtDQThCbEM7O0FBNUJBLGtCQUFrQixDQUFsQixRQUFrQjtFQUNqQixFQUFFO0lBQUcsbUJBQW1CLEVBQUUsTUFBTTs7OztBQUdqQyxlQUFlLENBQWYsUUFBZTtFQUNiLEVBQUU7SUFBRyxtQkFBbUIsRUFBRSxNQUFNOzs7O0FBR2xDLFVBQVUsQ0FBVixRQUFVO0VBQ1IsRUFBRTtJQUFHLG1CQUFtQixFQUFFLE1BQU07Ozs7QUE5UnRDLEFBaVNJLHVCQWpTbUIsQ0FXdEIsb0JBQW9CLENBeU9uQixhQUFhLENBc0JaLElBQUksQUF1QkYsTUFBTSxDQUFDO0VBQ1AsT0FBTyxFQUFFLEVBQUU7RUFDWCxPQUFPLEVBQUMsS0FBSztFQUNiLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxDQUFDO0VBQ04sSUFBSSxFQUFFLENBQUM7RUFDUCxLQUFLLEVBQUUsSUFBSTtFQUNYLE1BQU0sRUFBRSxJQUFJO0VBQ1osaUJBQWlCLEVBQUUsMkJBQTJCO0VBQzlDLGNBQWMsRUFBRSwyQkFBMkI7RUFDM0MsU0FBUyxFQUFFLDJCQUEyQjtFQUN0QyxpQkFBaUIsRUFBRSxRQUFRO0VBQzNCLGVBQWUsRUFBRSxTQUFTO0VBQzFCLGdCQUFnQixFQUFFLDhLQUE4SztFQUNoTSxnQkFBZ0IsRUFBRSxzS0FBc0s7Q0FDeEw7O0FBaFRMLEFBc1RDLHVCQXRUc0IsQ0FzVHRCLHNCQUFzQixDQUFDO0VBQ3RCLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLElBQUk7RUFDWCxLQUFLLEVBQUUsS0FBSztFQUNaLE9BQU8sRUFBRSxDQUFDO0NBWVY7O0FmdU9ELE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztFZTdpQnpCLEFBc1RDLHVCQXRUc0IsQ0FzVHRCLHNCQUFzQixDQUFDO0lBT3JCLEtBQUssRUFBRSxJQUFJO0lBQ1gsS0FBSyxFQUFFLElBQUk7SUFDWCxjQUFjLEVBQUUsSUFBSTtHQU9yQjs7O0FBdFVGLEFBa1VFLHVCQWxVcUIsQ0FzVHRCLHNCQUFzQixDQVlyQixLQUFLLENBQUM7RUFDTCxPQUFPLEVBQUUsS0FBSztFQUNkLFdBQVcsRUFBRSxHQUFHO0NBQ2hCOztBQXJVSCxBQXlVQyx1QkF6VXNCLENBeVV0QixzQkFBc0IsQ0FBQztFQUN0QixPQUFPLEVBQUUsS0FBSztFQUNkLE1BQU0sRUFBRSxXQUFXO0VBQ25CLFNBQVMsRUFBRSxLQUFLO0NBS2hCOztBZjRORCxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RWU3aUJ6QixBQXlVQyx1QkF6VXNCLENBeVV0QixzQkFBc0IsQ0FBQztJQU1yQixNQUFNLEVBQUUsQ0FBQztHQUVWOzs7QUFqVkYsQUFtVkMsdUJBblZzQixDQW1WdEIsQ0FBQyxBQUFBLE9BQU8sQ0FBQztFQUNSLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLE1BQU07Q0FDZjs7QUF0VkYsQUF5VkMsdUJBelZzQixDQXlWdEIsVUFBVTtBQXpWWCx1QkFBdUIsQ0EwVnRCLFVBQVUsQ0FBQztFQUNWLE9BQU8sRUFBRSxLQUFLO0VBQ2QsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsTUFBTTtFQUNqQixNQUFNLEVBQUUsS0FBSztFQUNiLFdBQVcsRUFBRSxzQkFBc0I7RUFDbkMsU0FBUyxFQUFFLElBQUk7RUFDZixVQUFVLEVBQUUsSUFBSTtFQUNoQixVQUFVLEVBQUUsSUFBSTtFQUNoQixNQUFNLEVBQUUsY0FBYztFQUN0QixXQUFXLEVBQUUsR0FBRztFQUNoQixRQUFRLEVBQUUsSUFBSTtFQUNkLE9BQU8sRUFBRSxJQUFJO0NBQ2I7O0FBdldGLEFBeVdDLHVCQXpXc0IsQ0F5V3RCLFVBQVUsQ0FBQztFQUNWLE1BQU0sRUFBRSxJQUFJO0VBQ1osVUFBVSxFQUFFLEtBQUs7RUFDakIsYUFBYSxFQUFFLElBQUk7Q0FDbkI7O0FBN1dGLEFBZ1hDLHVCQWhYc0IsQ0FnWHRCLDZCQUE2QixDQUFDO0VBQzdCLFNBQVMsRUFBRSxLQUFLO0VBQ2hCLFFBQVEsRUFBRSxRQUFRO0NBbUhsQjs7QUFyZUYsQUFvWEUsdUJBcFhxQixDQWdYdEIsNkJBQTZCLEFBSTNCLE1BQU0sQ0FBQztFQUNQLE9BQU8sRUFBRSxHQUFHO0VBQ1osT0FBTyxFQUFFLEtBQUs7RUFDZCxNQUFNLEVBQUUsQ0FBQztFQUNULFdBQVcsRUFBRSxDQUFDO0VBQ2QsU0FBUyxFQUFFLENBQUM7RUFDWixLQUFLLEVBQUUsSUFBSTtFQUNYLFVBQVUsRUFBRSxDQUFDO0VBQ2IsVUFBVSxFQUFFLE1BQU07Q0FDbEI7O0FBN1hILEFBK1hFLHVCQS9YcUIsQ0FnWHRCLDZCQUE2QixBQWUzQixPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixLQUFLLEVBQUUsSUFBSTtFQUNYLElBQUksRUFBRSx1Q0FBdUM7RUFDN0MsY0FBYyxFQUFFLElBQUk7RUFDcEIsc0JBQXNCLEVBQUUsV0FBVztFQUNuQyx1QkFBdUIsRUFBRSxTQUFTO0VBQ2xDLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLEdBQUcsRUFBRSxLQUFLO0VBQ1YsSUFBSSxFQUFFLEdBQUc7RUFDVCxNQUFNLEVBQUUsV0FBVztDQUNuQjs7QUExWUgsQUE0WUUsdUJBNVlxQixDQWdYdEIsNkJBQTZCLENBNEI1QixPQUFPLENBQUM7RUFDUCxXQUFXLEVBQUUsR0FBRztFQUNoQixTQUFTLEVBQUUsSUFBSTtFQUNmLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLFNBQVM7RUFDbEIsVUFBVSxFQUFFLE1BQU07Q0FDbEI7O0FBbFpILEFBb1pFLHVCQXBacUIsQ0FnWHRCLDZCQUE2QixDQW9DNUIsYUFBYTtBQXBaZix1QkFBdUIsQ0FnWHRCLDZCQUE2QixDQXFDNUIsY0FBYyxDQUFDO0VBQ2QsS0FBSyxFQUFFLEdBQUc7RUFDVixLQUFLLEVBQUUsSUFBSTtDQUNYOztBQXhaSCxBQThaRSx1QkE5WnFCLENBZ1h0Qiw2QkFBNkIsQ0E4QzVCLGNBQWMsQ0FBQztFQUNkLEtBQUssRUFBRSxLQUFLO0NBT1o7O0FBdGFILEFBa2FJLHVCQWxhbUIsQ0FnWHRCLDZCQUE2QixDQThDNUIsY0FBYyxDQUdiLEVBQUUsQ0FDRCxFQUFFLENBQUM7RUFDRixPQUFPLEVBQUUsSUFBSTtDQUNiOztBQXBhTCxBQXdhRSx1QkF4YXFCLENBZ1h0Qiw2QkFBNkIsQ0F3RDVCLEVBQUUsQ0FBQztFQUNGLGdCQUFnQixFQUFFLElBQUk7RUFDdEIsTUFBTSxFQUFFLGNBQWM7RUFDdEIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsUUFBUSxFQUFFLFFBQVE7RUFDbEIsTUFBTSxFQUFFLEtBQUs7RUFDYixPQUFPLEVBQUUsQ0FBQztFQUNWLFVBQVUsRUFBRSxJQUFJO0VBQ2hCLE1BQU0sRUFBRSxDQUFDO0VBQ1QsZUFBZSxFQUFFLElBQUk7Q0E0Q3JCOztBQTdkSCxBQW1iRyx1QkFuYm9CLENBZ1h0Qiw2QkFBNkIsQ0F3RDVCLEVBQUUsQ0FXRCxFQUFFLENBQUM7RUFDRixhQUFhLEVBQUUsY0FBYztFQUM3QixNQUFNLEVBQUUsQ0FBQztFQUNULFNBQVMsRUFBRSxJQUFJO0NBc0NmOztBQTVkSixBQXdiSSx1QkF4Ym1CLENBZ1h0Qiw2QkFBNkIsQ0F3RDVCLEVBQUUsQ0FXRCxFQUFFLENBS0QsS0FBSyxDQUFDO0VBQ0wsT0FBTyxFQUFFLEtBQUs7RUFDZCxPQUFPLEVBQUUsbUJBQW1CO0VBQzVCLFFBQVEsRUFBRSxRQUFRO0VBQ2xCLGNBQWMsRUFBRSxRQUFRO0NBMkJ4Qjs7QUF2ZEwsQUE4YkssdUJBOWJrQixDQWdYdEIsNkJBQTZCLENBd0Q1QixFQUFFLENBV0QsRUFBRSxDQUtELEtBQUssQUFNSCxNQUFNLENBQUM7RUFDUCxnQkFBZ0IsRWhCamNiLE9BQU87RWdCa2NWLEtBQUssRUFBRSxJQUFJO0NBQ1g7O0FBamNOLEFBbWNLLHVCQW5ja0IsQ0FnWHRCLDZCQUE2QixDQXdENUIsRUFBRSxDQVdELEVBQUUsQ0FLRCxLQUFLLEFBV0gsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLE9BQU87RUFDaEIsS0FBSyxFQUFFLElBQUk7RUFDWCxJQUFJLEVBQUUsdUNBQXVDO0VBQzdDLGNBQWMsRUFBRSxJQUFJO0VBQ3BCLHNCQUFzQixFQUFFLFdBQVc7RUFDbkMsdUJBQXVCLEVBQUUsU0FBUztFQUNsQyxRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsSUFBSTtFQUNULElBQUksRUFBRSxJQUFJO0NBQ1Y7O0FBN2NOLEFBK2NLLHVCQS9ja0IsQ0FnWHRCLDZCQUE2QixDQXdENUIsRUFBRSxDQVdELEVBQUUsQ0FLRCxLQUFLLEFBdUJILFFBQVEsQ0FBQztFQUNULE9BQU8sRUFBRSxHQUFHO0NBTVo7O0FBdGROLEFBa2RNLHVCQWxkaUIsQ0FnWHRCLDZCQUE2QixDQXdENUIsRUFBRSxDQVdELEVBQUUsQ0FLRCxLQUFLLEFBdUJILFFBQVEsQUFHUCxPQUFPLENBQUM7RUFDUixPQUFPLEVBQUUsT0FBTztFQUNoQixLQUFLLEVoQnBkSixPQUFPO0NnQnFkUjs7QUFyZFAsQUF5ZEksdUJBemRtQixDQWdYdEIsNkJBQTZCLENBd0Q1QixFQUFFLENBV0QsRUFBRSxDQXNDRCxLQUFLLENBQUM7RUFDTCxPQUFPLEVBQUUsSUFBSTtDQUNiOztBQTNkTCxBQStkRSx1QkEvZHFCLENBZ1h0Qiw2QkFBNkIsQ0ErRzVCLElBQUksQ0FBQztFQUNKLEtBQUssRUFBRSxJQUFJO0VBQ1gsT0FBTyxFQUFFLFlBQVk7RUFDckIsU0FBUyxFQUFFLElBQUk7RUFDZixNQUFNLEVBQUUsUUFBUTtDQUNoQjs7QUFwZUgsQUF3ZUMsdUJBeGVzQixDQXdldEIseUJBQXlCLENBQUM7RUFDekIsT0FBTyxFQUFFLElBQUk7Q0F5Q2I7O0FBbGhCRixBQTJlRSx1QkEzZXFCLENBd2V0Qix5QkFBeUIsQ0FHeEIsY0FBYztBQTNlaEIsdUJBQXVCLENBd2V0Qix5QkFBeUIsQ0FJeEIsQ0FBQyxDQUFDO0VBQ0QsU0FBUyxFQUFFLElBQUk7Q0FDZjs7QUE5ZUgsQUFnZkUsdUJBaGZxQixDQXdldEIseUJBQXlCLENBUXhCLFFBQVEsQ0FBQztFQUNSLE9BQU8sRUFBRSxJQUFJO0VBQ2IsU0FBUyxFQUFFLElBQUk7Q0ErQmY7O0FBamhCSCxBQW9mRyx1QkFwZm9CLENBd2V0Qix5QkFBeUIsQ0FReEIsUUFBUSxDQUlQLEVBQUUsQ0FBQztFQUNGLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7RUFDaEIsT0FBTyxFQUFFLENBQUM7RUFDVixNQUFNLEVBQUUsYUFBYTtDQUNyQjs7QUF6ZkosQUEyZkcsdUJBM2ZvQixDQXdldEIseUJBQXlCLENBUXhCLFFBQVEsQ0FXUCxFQUFFLENBQUM7RUFDRixNQUFNLEVBQUUsSUFBSTtFQUNaLGFBQWEsRUFBRSxpQkFBaUI7RUFDaEMsTUFBTSxFQUFFLE1BQU07Q0FDZDs7QUEvZkosQUFpZ0JHLHVCQWpnQm9CLENBd2V0Qix5QkFBeUIsQ0FReEIsUUFBUSxDQWlCUCxZQUFZLENBQUM7RUFDWixZQUFZLEVBQUUsSUFBSTtDQUNsQjs7QUFuZ0JKLEFBc2dCSSx1QkF0Z0JtQixDQXdldEIseUJBQXlCLENBUXhCLFFBQVEsQ0FxQlAsRUFBRSxDQUNELEVBQUUsQ0FBQztFQUNGLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLFdBQVcsRUFBRSxJQUFJO0NBT2pCOztBQS9nQkwsQUEwZ0JLLHVCQTFnQmtCLENBd2V0Qix5QkFBeUIsQ0FReEIsUUFBUSxDQXFCUCxFQUFFLENBQ0QsRUFBRSxBQUlBLEtBQUssQ0FBQztFQUNOLGVBQWUsRUFBRSxJQUFJO0VBQ3JCLFdBQVcsRUFBRSxDQUFDO0VBQ2QsV0FBVyxFQUFFLEdBQUc7Q0FDaEI7O0FBOWdCTixBQW9oQkMsdUJBcGhCc0IsQ0FvaEJ0Qix5QkFBeUIsQ0FBQztFQUN6QixPQUFPLEVBQUUsSUFBSTtDQW1GYjs7QUF4bUJGLEFBdWhCRSx1QkF2aEJxQixDQW9oQnRCLHlCQUF5QixDQUd4QixjQUFjO0FBdmhCaEIsdUJBQXVCLENBb2hCdEIseUJBQXlCLENBSXhCLGtCQUFrQixDQUFDO0VBQ2xCLFNBQVMsRUFBRSxJQUFJO0NBQ2Y7O0FBMWhCSCxBQTRoQkUsdUJBNWhCcUIsQ0FvaEJ0Qix5QkFBeUIsQ0FReEIsa0JBQWtCLENBQUM7RUFDbEIsT0FBTyxFQUFFLElBQUk7Q0FDYjs7QUE5aEJILEFBZ2lCRSx1QkFoaUJxQixDQW9oQnRCLHlCQUF5QixDQVl4QixPQUFPLENBQUM7RUFDUCxNQUFNLEVBQUUsV0FBVztFQUNuQixnQkFBZ0IsRUFBRSxJQUFJO0VBQ3RCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE1BQU0sRUFBRSxjQUFjO0VBQ3RCLFVBQVUsRUFBRSxLQUFLO0VBQ2pCLFVBQVUsRUFBRSxNQUFNO0VBQ2xCLE9BQU8sRUFBRSxJQUFJO0NBZ0ViOztBQXZtQkgsQUE2aUJHLHVCQTdpQm9CLENBb2hCdEIseUJBQXlCLENBWXhCLE9BQU8sQ0FhTixLQUFLLENBQUM7RUFDTCxhQUFhLEVBQUUsY0FBYztFQUM3QixPQUFPLEVBQUUsSUFBSTtDQXVEYjs7QUF0bUJKLEFBaWpCSSx1QkFqakJtQixDQW9oQnRCLHlCQUF5QixDQVl4QixPQUFPLENBYU4sS0FBSyxBQUlILGFBQWEsQ0FBQztFQUNkLE1BQU0sRUFBRSxJQUFJO0NBQ1o7O0FBbmpCTCxBQXFqQkksdUJBcmpCbUIsQ0FvaEJ0Qix5QkFBeUIsQ0FZeEIsT0FBTyxDQWFOLEtBQUssQ0FRSixDQUFDLENBQUM7RUFDRCxTQUFTLEVBQUUsSUFBSTtFQUNmLE1BQU0sRUFBRSxRQUFRO0NBQ2hCOztBQXhqQkwsQUEwakJJLHVCQTFqQm1CLENBb2hCdEIseUJBQXlCLENBWXhCLE9BQU8sQ0FhTixLQUFLLENBYUosRUFBRSxDQUFDO0VBQ0YsU0FBUyxFQUFFLElBQUk7RUFDZixNQUFNLEVBQUUsYUFBYTtDQUtyQjs7QUFqa0JMLEFBOGpCSyx1QkE5akJrQixDQW9oQnRCLHlCQUF5QixDQVl4QixPQUFPLENBYU4sS0FBSyxDQWFKLEVBQUUsQ0FJRCxFQUFFLENBQUM7RUFDRixVQUFVLEVBQUUsSUFBSTtDQUNoQjs7QUFoa0JOLEFBbWtCSSx1QkFua0JtQixDQW9oQnRCLHlCQUF5QixDQVl4QixPQUFPLENBYU4sS0FBSyxDQXNCSixZQUFZLENBQUM7RUFDWixPQUFPLEVBQUUsWUFBWTtFQUNyQixNQUFNLEVBQUUsVUFBVTtDQWtCbEI7O0FBdmxCTCxBQXVrQkssdUJBdmtCa0IsQ0FvaEJ0Qix5QkFBeUIsQ0FZeEIsT0FBTyxDQWFOLEtBQUssQ0FzQkosWUFBWSxBQUlWLGVBQWUsQ0FBQztFQUNoQixLQUFLLEVBQUUsT0FDUjtDQUFDOztBQXprQk4sQUEya0JLLHVCQTNrQmtCLENBb2hCdEIseUJBQXlCLENBWXhCLE9BQU8sQ0FhTixLQUFLLENBc0JKLFlBQVksQUFRVixTQUFTLENBQUM7RUFDVixLQUFLLEVBQUUsT0FDUjtDQUFDOztBQTdrQk4sQUEra0JLLHVCQS9rQmtCLENBb2hCdEIseUJBQXlCLENBWXhCLE9BQU8sQ0FhTixLQUFLLENBc0JKLFlBQVksQUFZVix3QkFBd0IsQ0FBQztFQUN6QixLQUFLLEVBQUUsT0FDUjtDQUFDOztBQWpsQk4sQUFtbEJLLHVCQW5sQmtCLENBb2hCdEIseUJBQXlCLENBWXhCLE9BQU8sQ0FhTixLQUFLLENBc0JKLFlBQVksQUFnQlYsU0FBUyxFQW5sQmYsdUJBQXVCLENBb2hCdEIseUJBQXlCLENBWXhCLE9BQU8sQ0FhTixLQUFLLENBc0JKLFlBQVksQUFpQlYsc0JBQXNCLENBQUM7RUFDdkIsS0FBSyxFQUFFLEdBQUc7Q0FDVjs7QUF0bEJOLEFBeWxCSSx1QkF6bEJtQixDQW9oQnRCLHlCQUF5QixDQVl4QixPQUFPLENBYU4sS0FBSyxDQTRDSixLQUFLLENBQUM7RUFDTCxTQUFTLEVBQUUsSUFBSTtFQUNmLEtBQUssRUFBRSxJQUFJO0NBQ1g7O0FBNWxCTCxBQThsQkksdUJBOWxCbUIsQ0FvaEJ0Qix5QkFBeUIsQ0FZeEIsT0FBTyxDQWFOLEtBQUssQ0FpREosUUFBUSxDQUFDO0VBQ1IsU0FBUyxFQUFFLElBQUk7RUFDZixLQUFLLEVBQUUsS0FBSztDQUtaOztBQXJtQkwsQUFrbUJLLHVCQWxtQmtCLENBb2hCdEIseUJBQXlCLENBWXhCLE9BQU8sQ0FhTixLQUFLLENBaURKLFFBQVEsQ0FJUCxJQUFJLENBQUM7RUFDSixLQUFLLEVBQUUsSUFBSTtDQUNYOztBQXBtQk4sQUEybUJDLHVCQTNtQnNCLENBMm1CdEIsa0JBQWtCLENBQUE7RUFDakIsZ0JBQWdCLEVBQUUsSUFBSTtFQUN0QixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLE9BQU8sRUFBRSxTQUFTO0VBQ2xCLE1BQU0sRUFBRSxVQUFVO0VBQ2xCLFFBQVEsRUFBRSxRQUFRO0NBaUZsQjs7QUFqc0JGLEFBa25CRSx1QkFsbkJxQixDQTJtQnRCLGtCQUFrQixDQU9qQixRQUFRLENBQUM7RUFDUixRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsSUFBSTtFQUNULEtBQUssRUFBRSxJQUFJO0VBQ1gsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSTtDQUNmOztBQXhuQkgsQUEwbkJFLHVCQTFuQnFCLENBMm1CdEIsa0JBQWtCLENBZWpCLEVBQUUsQ0FBQztFQUNGLE1BQU0sRUFBRSxRQUFRO0VBQ2hCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsV0FBVyxFQUFFLEdBQUc7Q0FDaEI7O0FBOW5CSCxBQWdvQkUsdUJBaG9CcUIsQ0EybUJ0QixrQkFBa0IsQ0FxQmpCLEVBQUUsQ0FBQztFQUNGLFdBQVcsRUFBRSxHQUFHO0VBQ2hCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsTUFBTSxFQUFFLFFBQVE7Q0FDaEI7O0FBcG9CSCxBQXNvQkUsdUJBdG9CcUIsQ0EybUJ0QixrQkFBa0IsQ0EyQmpCLENBQUMsQ0FBQztFQUNELEtBQUssRUFBRSxJQUFJO0VBQ1gsU0FBUyxFQUFFLElBQUk7RUFDZixNQUFNLEVBQUUsUUFBUTtDQWFoQjs7QUF0cEJILEFBMm9CRyx1QkEzb0JvQixDQTJtQnRCLGtCQUFrQixDQTJCakIsQ0FBQyxBQUtDLGFBQWEsQ0FBQztFQUNkLE1BQU0sRUFBRSxDQUFDO0NBQ1Q7O0FBN29CSixBQStvQkcsdUJBL29Cb0IsQ0EybUJ0QixrQkFBa0IsQ0EyQmpCLENBQUMsQ0FTQSxDQUFDLENBQUM7RUFDRCxLQUFLLEVoQmxwQkEsT0FBTztDZ0J1cEJaOztBQXJwQkosQUFrcEJJLHVCQWxwQm1CLENBMm1CdEIsa0JBQWtCLENBMkJqQixDQUFDLENBU0EsQ0FBQyxBQUdDLE1BQU0sQ0FBQztFQUNQLEtBQUssRWhCcHBCRyxPQUFPO0NnQnFwQmY7O0FBcHBCTCxBQXdwQkUsdUJBeHBCcUIsQ0EybUJ0QixrQkFBa0IsQ0E2Q2pCLEVBQUUsQ0FBQztFQUNGLE1BQU0sRUFBRSxDQUFDO0VBQ1QsT0FBTyxFQUFFLENBQUM7RUFDVixLQUFLLEVBQUUsR0FBRztFQUNWLEtBQUssRUFBRSxJQUFJO0NBcUJYOztBZnBJRixNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUs7RWU3aUJ6QixBQXdwQkUsdUJBeHBCcUIsQ0EybUJ0QixrQkFBa0IsQ0E2Q2pCLEVBQUUsQ0FBQztJQU9ELEtBQUssRUFBRSxJQUFJO0lBQ1gsS0FBSyxFQUFFLElBQUk7R0FpQlo7OztBQWpyQkgsQUFtcUJHLHVCQW5xQm9CLENBMm1CdEIsa0JBQWtCLENBNkNqQixFQUFFLENBV0QsRUFBRSxDQUFDO0VBQ0YsTUFBTSxFQUFFLENBQUM7RUFDVCxPQUFPLEVBQUUsWUFBWTtFQUNyQixLQUFLLEVBQUUsSUFBSTtFQUNYLFNBQVMsRUFBRSxJQUFJO0VBQ2YsUUFBUSxFQUFFLFFBQVE7Q0FRbEI7O0FBaHJCSixBQTBxQkksdUJBMXFCbUIsQ0EybUJ0QixrQkFBa0IsQ0E2Q2pCLEVBQUUsQ0FXRCxFQUFFLEFBT0EsT0FBTyxDQUFDO0VBQ1IsT0FBTyxFQUFFLEdBQUc7RUFDWixRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsSUFBSTtFQUNULElBQUksRUFBRSxDQUFDO0NBQ1A7O0FBL3FCTCxBQW1yQkUsdUJBbnJCcUIsQ0EybUJ0QixrQkFBa0IsQ0F3RWpCLEtBQUssQ0FBQztFQUNMLE1BQU0sRUFBRSxVQUFVO0VBQ2xCLFFBQVEsRUFBRSxJQUFJO0VBQ2QsU0FBUyxFQUFFLEtBQUs7Q0FDaEI7O0FBdnJCSCxBQXlyQkUsdUJBenJCcUIsQ0EybUJ0QixrQkFBa0IsQ0E4RWpCLE1BQU0sQ0FBQztFQUNOLEtBQUssRUFBRSxPQUFPO0VBQ2QsV0FBVyxFQUFFLEdBQUc7Q0FDaEI7O0FBNXJCSCxBQThyQkUsdUJBOXJCcUIsQ0EybUJ0QixrQkFBa0IsQ0FtRmpCLFFBQVEsQ0FBQztFQUNSLEtBQUssRUFBRSxPQUFPO0NBQ2Q7O0FDaHNCSCxBQUVDLDJCQUYwQixDQUUxQiwwQkFBMEIsQ0FBQztFQUMxQixhQUFhLEVBQUUsY0FBYztFQUM3QixPQUFPLEVBQUUsTUFBTTtDQUtmOztBQVRGLEFBTUUsMkJBTnlCLENBRTFCLDBCQUEwQixBQUl4QixVQUFVLENBQUM7RUFDWCxPQUFPLEVBQUUsR0FBRztDQUNaOztBQVJILEFBV0MsMkJBWDBCLENBVzFCLGlDQUFpQyxDQUFDO0VBQ2pDLE1BQU0sRUFBRSxPQUFPO0VBQ2YsU0FBUyxFQUFFLE1BQU07Q0FDakI7O0FBZEYsQUFnQkMsMkJBaEIwQixDQWdCMUIsK0JBQStCLENBQUM7RUFDL0IsS0FBSyxFQUFFLElBQUk7RUFDWCxRQUFRLEVBQUUsUUFBUTtDQWtCbEI7O0FBcENGLEFBb0JFLDJCQXBCeUIsQ0FnQjFCLCtCQUErQixDQUk5QixHQUFHLENBQUM7RUFDSCxRQUFRLEVBQUUsUUFBUTtFQUNsQixHQUFHLEVBQUUsR0FBRztFQUNSLE1BQU0sRUFBRSxVQUFVO0VBQ2xCLElBQUksRUFBRSxJQUFJO0VBQ1YsS0FBSyxFQUFFLElBQUk7RUFDWCxTQUFTLEVBQUUsSUFBSTtDQUNmOztBQTNCSCxBQTZCRSwyQkE3QnlCLENBZ0IxQiwrQkFBK0IsQ0FhOUIsR0FBRyxDQUFDO0VBQ0gsVUFBVSxFQUFFLElBQUk7RUFDaEIsTUFBTSxFQUFFLGNBQWM7RUFDdEIsU0FBUyxFQUFFLElBQUk7RUFDZixPQUFPLEVBQUUsS0FBSztFQUNkLE1BQU0sRUFBRSxVQUFVO0NBQ2xCOztBQW5DSCxBQXNDQywyQkF0QzBCLENBc0MxQiwrQkFBK0IsQ0FBQztFQUMvQixNQUFNLEVBQUUsV0FBVztFQUNuQixRQUFRLEVBQUUsUUFBUTtFQUNsQixPQUFPLEVBQUUsUUFBUTtDQXlCakI7O0FBbEVGLEFBMkNFLDJCQTNDeUIsQ0FzQzFCLCtCQUErQixDQUs5QixFQUFFLENBQUM7RUFDRixNQUFNLEVBQUUsVUFBVTtFQUNsQixTQUFTLEVBQUUsSUFBSTtFQUNmLFdBQVcsRUFBRSxHQUFHO0NBQ2hCOztBQS9DSCxBQWlERSwyQkFqRHlCLENBc0MxQiwrQkFBK0IsQ0FXOUIsQ0FBQyxDQUFDO0VBQ0QsTUFBTSxFQUFFLENBQUM7RUFDVCxTQUFTLEVBQUUsSUFBSTtDQUNmOztBQXBESCxBQXNERSwyQkF0RHlCLENBc0MxQiwrQkFBK0IsQ0FnQjlCLG9CQUFvQixDQUFDO0VBQ3BCLEtBQUssRUFBRSxPQUFPO0VBQ2QsS0FBSyxFQUFFLEtBQUs7RUFDWixNQUFNLEVBQUUsaUJBQWlCO0VBQ3pCLGFBQWEsRUFBRSxHQUFHO0VBQ2xCLE9BQU8sRUFBRSxRQUFRO0VBQ2pCLFNBQVMsRUFBRSxJQUFJO0VBQ2YsUUFBUSxFQUFFLFFBQVE7RUFDbEIsR0FBRyxFQUFFLElBQUk7RUFDVCxLQUFLLEVBQUUsQ0FBQztFQUNSLE9BQU8sRUFBRSxJQUFJO0NBQ2I7O0FBakVILEFBb0VDLDJCQXBFMEIsQ0FvRTFCLFVBQVUsQ0FBQywrQkFBK0IsQ0FBQyxvQkFBb0IsQ0FBQztFQUMvRCxPQUFPLEVBQUUsS0FBSztDQUNkOztBQXRFRixBQXdFQywyQkF4RTBCLENBd0UxQixtQ0FBbUMsQ0FBQztFQUNuQyxNQUFNLEVBQUUsV0FBVztFQUNuQixPQUFPLEVBQUUsSUFBSTtFQUNiLFNBQVMsRUFBRSxLQUFLO0NBQ2hCOztBQTVFRixBQThFQywyQkE5RTBCLENBOEUxQixTQUFTLENBQUMsbUNBQW1DLENBQUM7RUFDN0MsT0FBTyxFQUFFLEtBQUs7Q0FDZDs7QUFoRkYsQUFrRkMsMkJBbEYwQixDQWtGMUIsd0NBQXdDLENBQUMsRUFBRSxDQUFDO0VBQzNDLE9BQU8sRUFBRSxDQUFDO0VBQ1YsTUFBTSxFQUFFLENBQUM7Q0FpQ1Q7O0FBckhGLEFBc0ZFLDJCQXRGeUIsQ0FrRjFCLHdDQUF3QyxDQUFDLEVBQUUsQ0FJMUMsRUFBRSxDQUFDO0VBQ0YsYUFBYSxFQUFFLGNBQWM7RUFDN0IsTUFBTSxFQUFFLENBQUM7RUFDVCxPQUFPLEVBQUUsTUFBTTtFQUNmLFNBQVMsRUFBRSxJQUFJO0NBU2Y7O0FBbkdILEFBNEZHLDJCQTVGd0IsQ0FrRjFCLHdDQUF3QyxDQUFDLEVBQUUsQ0FJMUMsRUFBRSxBQU1BLGNBQWMsQ0FBQztFQUNmLFVBQVUsRUFBRSxjQUFjO0NBQzFCOztBQTlGSixBQWdHRywyQkFoR3dCLENBa0YxQix3Q0FBd0MsQ0FBQyxFQUFFLENBSTFDLEVBQUUsQUFVQSxhQUFhLENBQUM7RUFDZCxhQUFhLEVBQUUsSUFBSTtDQUNuQjs7QUFsR0osQUFxR0UsMkJBckd5QixDQWtGMUIsd0NBQXdDLENBQUMsRUFBRSxDQW1CMUMsSUFBSSxBQUFBLE1BQU0sQ0FBQztFQUNWLEtBQUssRUFBRSxJQUFJO0VBQ1gsS0FBSyxFQUFFLEdBQUc7Q0FDVjs7QUF4R0gsQUEwR0UsMkJBMUd5QixDQWtGMUIsd0NBQXdDLENBQUMsRUFBRSxDQXdCMUMsSUFBSSxBQUFBLEtBQUssQ0FBQztFQUNULEtBQUssRUFBRSxJQUFJO0VBQ1gsS0FBSyxFQUFFLElBQUk7RUFDWCxLQUFLLEVBQUUsR0FBRztDQUNWOztBQTlHSCxBQWdIRSwyQkFoSHlCLENBa0YxQix3Q0FBd0MsQ0FBQyxFQUFFLENBOEIxQyxJQUFJLEFBQUEsT0FBTyxDQUFDO0VBQ1gsS0FBSyxFQUFFLEtBQUs7RUFDWixLQUFLLEVBQUUsR0FBRztFQUNWLFVBQVUsRUFBRSxLQUNiO0NBQUM7O0FBcEhILEFBdUhDLDJCQXZIMEIsQ0F1SDFCLDJDQUEyQyxDQUFDO0VBQzNDLE9BQU8sRUFBRSxJQUFJO0VBQ2IsT0FBTyxFQUFFLElBQUk7RUFDYixnQkFBZ0IsRWpCeEhOLE9BQU87RWlCeUhqQixNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ2pCMUhaLE9BQU87Q2lCNElaOztBQTdJRixBQTZIRSwyQkE3SHlCLENBdUgxQiwyQ0FBMkMsQ0FNMUMsS0FBSyxDQUFBLEFBQUEsSUFBQyxDQUFELElBQUMsQUFBQSxFQUFXO0VBQ2hCLGdCQUFnQixFQUFFLElBQUk7RUFDdEIsTUFBTSxFQUFFLGNBQWM7RUFDdEIsYUFBYSxFQUFFLEdBQUc7RUFDbEIsVUFBVSxFQUFFLElBQUk7RUFDaEIsS0FBSyxFQUFFLElBQUk7RUFDWCxPQUFPLEVBQUUsS0FBSztFQUNkLE9BQU8sRUFBRSxRQUFRO0VBQ2pCLE1BQU0sRUFBRSxLQUFLO0VBQ2IsS0FBSyxFQUFFLEtBQUs7RUFDWixVQUFVLEVBQUUsSUFBSTtDQUtoQjs7QUE1SUgsQUF5SUcsMkJBekl3QixDQXVIMUIsMkNBQTJDLENBTTFDLEtBQUssQ0FBQSxBQUFBLElBQUMsQ0FBRCxJQUFDLEFBQUEsQ0FZSixNQUFNLENBQUM7RUFDUCxZQUFZLEVBQUUsSUFBSTtDQUNsQjs7QUEzSUosQUErSUMsMkJBL0kwQixDQStJMUIsU0FBUyxDQUFDLDJDQUEyQyxDQUFFO0VBQ3RELE9BQU8sRUFBRSxLQUFLO0NBQ2Q7O0FBakpGLEFBbUpDLDJCQW5KMEIsQ0FtSjFCLDJDQUEyQyxDQUFDLEdBQUcsQ0FBQztFQUMvQyxPQUFPLEVBQUUsSUFBSTtDQUNiOztBQXJKRixBQXVKQywyQkF2SjBCLENBdUoxQiwyQ0FBMkMsQ0FBQyxDQUFDO0FBdko5QywyQkFBMkIsQ0F3SjFCLG1DQUFtQyxDQUFDLENBQUMsQ0FBQztFQUNyQyxNQUFNLEVBQUUsVUFBVTtFQUNsQixTQUFTLEVBQUUsSUFBSTtDQUNmIn0= */
|
assets/css/admin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#EAEAEA;cursor:not-allowed;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices[data-type*="select-one"]{cursor:pointer}.choices[data-type*="select-one"] .choices__inner{padding-bottom:3.0px}.choices[data-type*="select-one"] .choices__input{display:block;width:100% !important;padding:10px !important;border-bottom:1px solid #DDDDDD !important;background-color:#FFFFFF;margin:0 !important}.choices[data-type*="select-one"] .choices__button{background-image:url("../images/cross-inverse.svg");padding:0;background-size:8px;height:100%;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*="select-one"] .choices__button:hover,.choices[data-type*="select-one"] .choices__button:focus{opacity:1}.choices[data-type*="select-one"] .choices__button:focus{box-shadow:0px 0px 0px 2px #0e6cad}.choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-one"].is-open:after{border-color:transparent transparent #333333 transparent;margin-top:-7.5px}.choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}.choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:18px;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent #333333 transparent;margin-top:-7.5px}.choices[data-type*="select-multiple"] .choices__inner,.choices[data-type*="text"] .choices__inner{cursor:text}.choices[data-type*="select-multiple"] .choices__button,.choices[data-type*="text"] .choices__button{position:relative;display:inline-block;margin-top:0;margin-right:-4px;margin-bottom:0;margin-left:8px;padding-left:16px;border-left:1px solid #0a4f7e;background-image:url("../images/cross.svg");background-size:8px;width:8px;line-height:1;opacity:.75}.choices[data-type*="select-multiple"] .choices__button:hover,.choices[data-type*="select-multiple"] .choices__button:focus,.choices[data-type*="text"] .choices__button:hover,.choices[data-type*="text"] .choices__button:focus{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#fff;padding:4px 7.5px 1px;border:1px solid #DDDDDD;border-radius:3px;font-size:14px;min-height:35px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:3px 3px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 3px 3px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir="rtl"] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:3px;padding:3px 10px;font-size:12px;font-weight:500;margin-right:4px;margin-top:0px;margin-bottom:3px;background-color:#0e6cad;border:1px solid #0c5d95;color:#FFFFFF;word-break:break-all}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir="rtl"] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#0c5d95;border:1px solid #0a4f7e}.is-disabled .choices__list--multiple .choices__item{background-color:#aaaaaa;border:1px solid #919191}.choices__list--dropdown{display:none;z-index:1;position:absolute;width:100%;background-color:#FFFFFF;border:1px solid #DDDDDD;top:100%;margin-top:-1px;border-bottom-left-radius:3px;border-bottom-right-radius:3px;overflow:hidden;word-break:break-all}.choices__list--dropdown.is-active{display:block}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir="rtl"] .choices__list--dropdown .choices__item{text-align:right}@media (min-width: 640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir="rtl"] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir="rtl"] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline !important;background-color:#f9f9f9;font-size:14px;margin:0 !important;border:0 !important;border-radius:0 !important;max-width:100%;min-height:0 !important;width:auto !important;padding:4px 0 4px 2px !important}.choices__input:focus{outline:0}[dir="rtl"] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.wpforms-admin-page .wpforms-btn{border:0;border-radius:3px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none}.wpforms-admin-page .wpforms-btn-block{display:block;width:100%}.wpforms-admin-page .wpforms-btn-md{font-size:13px;font-weight:600;padding:8px 12px;min-height:35px}.wpforms-admin-page .wpforms-btn-lg{font-size:16px;font-weight:600;padding:16px 28px}.wpforms-admin-page .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#fff}.wpforms-admin-page .wpforms-btn-orange:hover{background-color:#b85a1b;border-color:#b85a1b}.wpforms-admin-page .wpforms-btn-grey{background-color:#eee;border-color:#ccc;color:#666}.wpforms-admin-page .wpforms-btn-grey:hover{background-color:#d7d7d7;border-color:#ccc;color:#444}.wpforms-admin-page .wpforms-btn-light-grey{background-color:#f5f5f5;border:1px solid #ccc;color:#666}.wpforms-admin-page .wpforms-btn-light-grey:hover{background-color:#eee;color:#444}.wpforms-admin-page .wpforms-btn-trans-green{background-color:none;color:#2a9b39}.wpforms-admin-page .wpforms-btn-trans-green:hover{background-color:#2a9b39;color:#fff}.wpforms-admin-page .wpforms-btn-trans-green .underline{position:relative}.wpforms-admin-page .wpforms-btn-trans-green .underline:after{content:" ";border-bottom:1px dashed #2a9b39;position:absolute;bottom:-5px;left:0;width:100%}.wpforms-admin-page .wpforms-btn-trans-green .dashicons{height:18px}body div.jconfirm *,body div.jconfirm *::before,body div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body div.jconfirm div.jconfirm-box-container div.jconfirm-box{border-radius:0;box-shadow:0 2px 6px rgba(0,0,0,0.2)}body div.jconfirm div.jconfirm-box-container div.jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.4);top:8px;right:8px}body div.jconfirm div.jconfirm-box-container div.jconfirm-box div.jconfirm-closeIcon:hover{color:rgba(0,0,0,0.8)}body div.jconfirm div.jconfirm-box div.jconfirm-title-c{margin:0 0 26px 0 !important;padding:0 !important}body div.jconfirm div.jconfirm-box div.jconfirm-title-c span.jconfirm-icon-c{margin:0 !important;color:#c4c4c4 !important}body div.jconfirm div.jconfirm-box div.jconfirm-title-c span.jconfirm-title{display:block;color:#333}body div.jconfirm div.jconfirm-box div.jconfirm-title-c span.jconfirm-icon-c+span.jconfirm-title{margin-top:20px !important}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane{margin-bottom:26px;display:block}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:inherit}body div.jconfirm div.jconfirm-box div.jconfirm-content{font-size:16px;color:#555;line-height:1.4}body div.jconfirm div.jconfirm-box div.jconfirm-content.lite-upgrade p{font-size:18px;padding:0 20px}body div.jconfirm div.jconfirm-box div.jconfirm-content p{margin:0 0 16px;font-size:16px;line-height:1.5}body div.jconfirm div.jconfirm-box div.jconfirm-content p:last-of-type{margin:0}body div.jconfirm div.jconfirm-box div.jconfirm-content p.large{font-size:18px}body div.jconfirm div.jconfirm-box div.jconfirm-content p.small{font-size:14px}body div.jconfirm div.jconfirm-box div.jconfirm-content .already-purchased{font-size:12px;color:#ccc;text-decoration:none}body div.jconfirm div.jconfirm-box div.jconfirm-content .already-purchased:hover{text-decoration:underline}body div.jconfirm div.jconfirm-box div.jconfirm-buttons .already-purchased{display:block;font-size:12px;color:#aaa;text-decoration:none;padding-top:20px}body div.jconfirm div.jconfirm-box div.jconfirm-buttons .already-purchased:hover{color:#999;text-decoration:underline}body div.jconfirm div.jconfirm-box .discount-note{text-align:center;margin:30px 0 0}body div.jconfirm div.jconfirm-box .discount-note p{background-color:#faffac;margin:0 -30px;padding:24px 60px 20px;font-size:15px;color:#4d4d4d;position:relative}body div.jconfirm div.jconfirm-box .discount-note p:after{content:'\f058';display:inline-block;font:normal normal normal 14px/1 FontAwesome;background-color:#fff;font-size:26px;border-radius:50%;padding:5px 6px;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:-20px;right:50%;margin-right:-18px;color:#3abc01}body div.jconfirm div.jconfirm-box .discount-note span{font-weight:700;color:#3abc01}body div.jconfirm div.jconfirm-box .discount-note a{color:#aaa;display:block;margin-top:12px}body div.jconfirm div.jconfirm-box input[type=text]{display:block;width:99%;border:1px solid #d6d6d6;padding:10px;box-shadow:none;margin:20px auto 0 auto}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode{margin:20px 0;text-align:center;font-size:24px;padding:8px 5px}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled{color:#333}body div.jconfirm div.jconfirm-box button.btn-confirm{background-color:#e27730;color:#fff;outline:none}body div.jconfirm div.jconfirm-box button.btn-confirm:hover{background-color:#b85a1b;border-color:#b85a1b}body div.jconfirm div.jconfirm-box .error{display:none;color:red}body div.jconfirm div.jconfirm-box .wpforms-error{border:1px solid #ebccd1 !important}body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transition:none !important;transition:none !important;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;font-size:45px !important}body .choices{text-align:left}body .choices input[type=text].choices__input{display:inline-block !important}.wpforms-admin-page .wpforms-alert{padding:16px;margin-bottom:18px;border:1px solid transparent}.wpforms-admin-page .wpforms-alert h4{margin-top:0;color:inherit}.wpforms-admin-page .wpforms-alert p{margin:0 0 15px 0}.wpforms-admin-page .wpforms-alert p:last-of-type{margin:0}.wpforms-admin-page .wpforms-alert.wpforms-alert-nomargin{margin:0}.wpforms-admin-page .wpforms-alert.wpforms-alert-small{font-size:12px}.wpforms-admin-page .wpforms-alert.wpforms-alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.wpforms-admin-page .wpforms-alert.wpforms-alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.wpforms-admin-page .wpforms-alert.wpforms-alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.wpforms-admin-page .wpforms-alert.wpforms-alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.wpforms-flag{width:16px;height:16px;background:url(../images/flags.png) no-repeat;display:inline-block}.wpforms-flag.wpforms-flag-ad{background-position:-16px 0}.wpforms-flag.wpforms-flag-ae{background-position:-32px 0}.wpforms-flag.wpforms-flag-af{background-position:-48px 0}.wpforms-flag.wpforms-flag-ag{background-position:-64px 0}.wpforms-flag.wpforms-flag-ai{background-position:-80px 0}.wpforms-flag.wpforms-flag-al{background-position:-96px 0}.wpforms-flag.wpforms-flag-am{background-position:-112px 0}.wpforms-flag.wpforms-flag-an{background-position:-128px 0}.wpforms-flag.wpforms-flag-ao{background-position:-144px 0}.wpforms-flag.wpforms-flag-ar{background-position:-160px 0}.wpforms-flag.wpforms-flag-as{background-position:-176px 0}.wpforms-flag.wpforms-flag-at{background-position:-192px 0}.wpforms-flag.wpforms-flag-au{background-position:-208px 0}.wpforms-flag.wpforms-flag-aw{background-position:-224px 0}.wpforms-flag.wpforms-flag-az{background-position:0 -16px}.wpforms-flag.wpforms-flag-ba{background-position:-16px -16px}.wpforms-flag.wpforms-flag-bb{background-position:-32px -16px}.wpforms-flag.wpforms-flag-bd{background-position:-48px -16px}.wpforms-flag.wpforms-flag-be{background-position:-64px -16px}.wpforms-flag.wpforms-flag-bf{background-position:-80px -16px}.wpforms-flag.wpforms-flag-bg{background-position:-96px -16px}.wpforms-flag.wpforms-flag-bh{background-position:-112px -16px}.wpforms-flag.wpforms-flag-bi{background-position:-128px -16px}.wpforms-flag.wpforms-flag-bj{background-position:-144px -16px}.wpforms-flag.wpforms-flag-bm{background-position:-160px -16px}.wpforms-flag.wpforms-flag-bn{background-position:-176px -16px}.wpforms-flag.wpforms-flag-bo{background-position:-192px -16px}.wpforms-flag.wpforms-flag-br{background-position:-208px -16px}.wpforms-flag.wpforms-flag-bs{background-position:-224px -16px}.wpforms-flag.wpforms-flag-bt{background-position:0 -32px}.wpforms-flag.wpforms-flag-bw{background-position:-16px -32px}.wpforms-flag.wpforms-flag-by{background-position:-32px -32px}.wpforms-flag.wpforms-flag-bz{background-position:-48px -32px}.wpforms-flag.wpforms-flag-ca{background-position:-64px -32px}.wpforms-flag.wpforms-flag-cd{background-position:-80px -32px}.wpforms-flag.wpforms-flag-cf{background-position:-96px -32px}.wpforms-flag.wpforms-flag-cg{background-position:-112px -32px}.wpforms-flag.wpforms-flag-ch{background-position:-128px -32px}.wpforms-flag.wpforms-flag-ci{background-position:-144px -32px}.wpforms-flag.wpforms-flag-ck{background-position:-160px -32px}.wpforms-flag.wpforms-flag-cl{background-position:-176px -32px}.wpforms-flag.wpforms-flag-cm{background-position:-192px -32px}.wpforms-flag.wpforms-flag-cn{background-position:-208px -32px}.wpforms-flag.wpforms-flag-co{background-position:-224px -32px}.wpforms-flag.wpforms-flag-cr{background-position:0 -48px}.wpforms-flag.wpforms-flag-cu{background-position:-16px -48px}.wpforms-flag.wpforms-flag-cv{background-position:-32px -48px}.wpforms-flag.wpforms-flag-cy{background-position:-48px -48px}.wpforms-flag.wpforms-flag-cz{background-position:-64px -48px}.wpforms-flag.wpforms-flag-de{background-position:-80px -48px}.wpforms-flag.wpforms-flag-dj{background-position:-96px -48px}.wpforms-flag.wpforms-flag-dk{background-position:-112px -48px}.wpforms-flag.wpforms-flag-dm{background-position:-128px -48px}.wpforms-flag.wpforms-flag-do{background-position:-144px -48px}.wpforms-flag.wpforms-flag-dz{background-position:-160px -48px}.wpforms-flag.wpforms-flag-ec{background-position:-176px -48px}.wpforms-flag.wpforms-flag-ee{background-position:-192px -48px}.wpforms-flag.wpforms-flag-eg{background-position:-208px -48px}.wpforms-flag.wpforms-flag-eh{background-position:-224px -48px}.wpforms-flag.wpforms-flag-er{background-position:0 -64px}.wpforms-flag.wpforms-flag-es{background-position:-16px -64px}.wpforms-flag.wpforms-flag-et{background-position:-32px -64px}.wpforms-flag.wpforms-flag-fi{background-position:-48px -64px}.wpforms-flag.wpforms-flag-fj{background-position:-64px -64px}.wpforms-flag.wpforms-flag-fm{background-position:-80px -64px}.wpforms-flag.wpforms-flag-fo{background-position:-96px -64px}.wpforms-flag.wpforms-flag-fr{background-position:-112px -64px}.wpforms-flag.wpforms-flag-ga{background-position:-128px -64px}.wpforms-flag.wpforms-flag-gb{background-position:-144px -64px}.wpforms-flag.wpforms-flag-gd{background-position:-160px -64px}.wpforms-flag.wpforms-flag-ge{background-position:-176px -64px}.wpforms-flag.wpforms-flag-gg{background-position:-192px -64px}.wpforms-flag.wpforms-flag-gh{background-position:-208px -64px}.wpforms-flag.wpforms-flag-gi{background-position:-224px -64px}.wpforms-flag.wpforms-flag-gl{background-position:0 -80px}.wpforms-flag.wpforms-flag-gm{background-position:-16px -80px}.wpforms-flag.wpforms-flag-gn{background-position:-32px -80px}.wpforms-flag.wpforms-flag-gp{background-position:-48px -80px}.wpforms-flag.wpforms-flag-gq{background-position:-64px -80px}.wpforms-flag.wpforms-flag-gr{background-position:-80px -80px}.wpforms-flag.wpforms-flag-gt{background-position:-96px -80px}.wpforms-flag.wpforms-flag-gu{background-position:-112px -80px}.wpforms-flag.wpforms-flag-gw{background-position:-128px -80px}.wpforms-flag.wpforms-flag-gy{background-position:-144px -80px}.wpforms-flag.wpforms-flag-hk{background-position:-160px -80px}.wpforms-flag.wpforms-flag-hn{background-position:-176px -80px}.wpforms-flag.wpforms-flag-hr{background-position:-192px -80px}.wpforms-flag.wpforms-flag-ht{background-position:-208px -80px}.wpforms-flag.wpforms-flag-hu{background-position:-224px -80px}.wpforms-flag.wpforms-flag-id{background-position:0 -96px}.wpforms-flag.wpforms-flag-ie{background-position:-16px -96px}.wpforms-flag.wpforms-flag-il{background-position:-32px -96px}.wpforms-flag.wpforms-flag-im{background-position:-48px -96px}.wpforms-flag.wpforms-flag-in{background-position:-64px -96px}.wpforms-flag.wpforms-flag-iq{background-position:-80px -96px}.wpforms-flag.wpforms-flag-ir{background-position:-96px -96px}.wpforms-flag.wpforms-flag-is{background-position:-112px -96px}.wpforms-flag.wpforms-flag-it{background-position:-128px -96px}.wpforms-flag.wpforms-flag-je{background-position:-144px -96px}.wpforms-flag.wpforms-flag-jm{background-position:-160px -96px}.wpforms-flag.wpforms-flag-jo{background-position:-176px -96px}.wpforms-flag.wpforms-flag-jp{background-position:-192px -96px}.wpforms-flag.wpforms-flag-ke{background-position:-208px -96px}.wpforms-flag.wpforms-flag-kg{background-position:-224px -96px}.wpforms-flag.wpforms-flag-kh{background-position:0 -112px}.wpforms-flag.wpforms-flag-ki{background-position:-16px -112px}.wpforms-flag.wpforms-flag-km{background-position:-32px -112px}.wpforms-flag.wpforms-flag-kn{background-position:-48px -112px}.wpforms-flag.wpforms-flag-kp{background-position:-64px -112px}.wpforms-flag.wpforms-flag-kr{background-position:-80px -112px}.wpforms-flag.wpforms-flag-kw{background-position:-96px -112px}.wpforms-flag.wpforms-flag-ky{background-position:-112px -112px}.wpforms-flag.wpforms-flag-kz{background-position:-128px -112px}.wpforms-flag.wpforms-flag-la{background-position:-144px -112px}.wpforms-flag.wpforms-flag-lb{background-position:-160px -112px}.wpforms-flag.wpforms-flag-lc{background-position:-176px -112px}.wpforms-flag.wpforms-flag-li{background-position:-192px -112px}.wpforms-flag.wpforms-flag-lk{background-position:-208px -112px}.wpforms-flag.wpforms-flag-lr{background-position:-224px -112px}.wpforms-flag.wpforms-flag-ls{background-position:0 -128px}.wpforms-flag.wpforms-flag-lt{background-position:-16px -128px}.wpforms-flag.wpforms-flag-lu{background-position:-32px -128px}.wpforms-flag.wpforms-flag-lv{background-position:-48px -128px}.wpforms-flag.wpforms-flag-ly{background-position:-64px -128px}.wpforms-flag.wpforms-flag-ma{background-position:-80px -128px}.wpforms-flag.wpforms-flag-mc{background-position:-96px -128px}.wpforms-flag.wpforms-flag-md{background-position:-112px -128px}.wpforms-flag.wpforms-flag-me{background-position:-128px -128px}.wpforms-flag.wpforms-flag-mg{background-position:-144px -128px}.wpforms-flag.wpforms-flag-mh{background-position:-160px -128px}.wpforms-flag.wpforms-flag-mk{background-position:-176px -128px}.wpforms-flag.wpforms-flag-ml{background-position:-192px -128px}.wpforms-flag.wpforms-flag-mm{background-position:-208px -128px}.wpforms-flag.wpforms-flag-mn{background-position:-224px -128px}.wpforms-flag.wpforms-flag-mo{background-position:0 -144px}.wpforms-flag.wpforms-flag-mq{background-position:-16px -144px}.wpforms-flag.wpforms-flag-mr{background-position:-32px -144px}.wpforms-flag.wpforms-flag-ms{background-position:-48px -144px}.wpforms-flag.wpforms-flag-mt{background-position:-64px -144px}.wpforms-flag.wpforms-flag-mu{background-position:-80px -144px}.wpforms-flag.wpforms-flag-mv{background-position:-96px -144px}.wpforms-flag.wpforms-flag-mw{background-position:-112px -144px}.wpforms-flag.wpforms-flag-mx{background-position:-128px -144px}.wpforms-flag.wpforms-flag-my{background-position:-144px -144px}.wpforms-flag.wpforms-flag-mz{background-position:-160px -144px}.wpforms-flag.wpforms-flag-na{background-position:-176px -144px}.wpforms-flag.wpforms-flag-nc{background-position:-192px -144px}.wpforms-flag.wpforms-flag-ne{background-position:-208px -144px}.wpforms-flag.wpforms-flag-ng{background-position:-224px -144px}.wpforms-flag.wpforms-flag-ni{background-position:0 -160px}.wpforms-flag.wpforms-flag-nl{background-position:-16px -160px}.wpforms-flag.wpforms-flag-no{background-position:-32px -160px}.wpforms-flag.wpforms-flag-np{background-position:-48px -160px}.wpforms-flag.wpforms-flag-nr{background-position:-64px -160px}.wpforms-flag.wpforms-flag-nz{background-position:-80px -160px}.wpforms-flag.wpforms-flag-om{background-position:-96px -160px}.wpforms-flag.wpforms-flag-pa{background-position:-112px -160px}.wpforms-flag.wpforms-flag-pe{background-position:-128px -160px}.wpforms-flag.wpforms-flag-pf{background-position:-144px -160px}.wpforms-flag.wpforms-flag-pg{background-position:-160px -160px}.wpforms-flag.wpforms-flag-ph{background-position:-176px -160px}.wpforms-flag.wpforms-flag-pk{background-position:-192px -160px}.wpforms-flag.wpforms-flag-pl{background-position:-208px -160px}.wpforms-flag.wpforms-flag-pr{background-position:-224px -160px}.wpforms-flag.wpforms-flag-ps{background-position:0 -176px}.wpforms-flag.wpforms-flag-pt{background-position:-16px -176px}.wpforms-flag.wpforms-flag-pw{background-position:-32px -176px}.wpforms-flag.wpforms-flag-py{background-position:-48px -176px}.wpforms-flag.wpforms-flag-qa{background-position:-64px -176px}.wpforms-flag.wpforms-flag-re{background-position:-80px -176px}.wpforms-flag.wpforms-flag-ro{background-position:-96px -176px}.wpforms-flag.wpforms-flag-rs{background-position:-112px -176px}.wpforms-flag.wpforms-flag-ru{background-position:-128px -176px}.wpforms-flag.wpforms-flag-rw{background-position:-144px -176px}.wpforms-flag.wpforms-flag-sa{background-position:-160px -176px}.wpforms-flag.wpforms-flag-sb{background-position:-176px -176px}.wpforms-flag.wpforms-flag-sc{background-position:-192px -176px}.wpforms-flag.wpforms-flag-sd{background-position:-208px -176px}.wpforms-flag.wpforms-flag-se{background-position:-224px -176px}.wpforms-flag.wpforms-flag-sg{background-position:0 -192px}.wpforms-flag.wpforms-flag-si{background-position:-16px -192px}.wpforms-flag.wpforms-flag-sk{background-position:-32px -192px}.wpforms-flag.wpforms-flag-sl{background-position:-48px -192px}.wpforms-flag.wpforms-flag-sm{background-position:-64px -192px}.wpforms-flag.wpforms-flag-sn{background-position:-80px -192px}.wpforms-flag.wpforms-flag-so{background-position:-96px -192px}.wpforms-flag.wpforms-flag-sr{background-position:-112px -192px}.wpforms-flag.wpforms-flag-st{background-position:-128px -192px}.wpforms-flag.wpforms-flag-sv{background-position:-144px -192px}.wpforms-flag.wpforms-flag-sy{background-position:-160px -192px}.wpforms-flag.wpforms-flag-sz{background-position:-176px -192px}.wpforms-flag.wpforms-flag-tc{background-position:-192px -192px}.wpforms-flag.wpforms-flag-td{background-position:-208px -192px}.wpforms-flag.wpforms-flag-tg{background-position:-224px -192px}.wpforms-flag.wpforms-flag-th{background-position:0 -208px}.wpforms-flag.wpforms-flag-tj{background-position:-16px -208px}.wpforms-flag.wpforms-flag-tl{background-position:-32px -208px}.wpforms-flag.wpforms-flag-tm{background-position:-48px -208px}.wpforms-flag.wpforms-flag-tn{background-position:-64px -208px}.wpforms-flag.wpforms-flag-to{background-position:-80px -208px}.wpforms-flag.wpforms-flag-tr{background-position:-96px -208px}.wpforms-flag.wpforms-flag-tt{background-position:-112px -208px}.wpforms-flag.wpforms-flag-tv{background-position:-128px -208px}.wpforms-flag.wpforms-flag-tw{background-position:-144px -208px}.wpforms-flag.wpforms-flag-tz{background-position:-160px -208px}.wpforms-flag.wpforms-flag-ua{background-position:-176px -208px}.wpforms-flag.wpforms-flag-ug{background-position:-192px -208px}.wpforms-flag.wpforms-flag-us{background-position:-208px -208px}.wpforms-flag.wpforms-flag-uy{background-position:-224px -208px}.wpforms-flag.wpforms-flag-uz{background-position:0 -224px}.wpforms-flag.wpforms-flag-va{background-position:-16px -224px}.wpforms-flag.wpforms-flag-vc{background-position:-32px -224px}.wpforms-flag.wpforms-flag-ve{background-position:-48px -224px}.wpforms-flag.wpforms-flag-vg{background-position:-64px -224px}.wpforms-flag.wpforms-flag-vi{background-position:-80px -224px}.wpforms-flag.wpforms-flag-vn{background-position:-96px -224px}.wpforms-flag.wpforms-flag-vu{background-position:-112px -224px}.wpforms-flag.wpforms-flag-ws{background-position:-128px -224px}.wpforms-flag.wpforms-flag-ye{background-position:-144px -224px}.wpforms-flag.wpforms-flag-za{background-position:-160px -224px}.wpforms-flag.wpforms-flag-zm{background-position:-176px -224px}.wpforms-flag.wpforms-flag-zw{background-position:-192px -224px}#wpforms-header-temp{position:relative;margin:0;position:absolute;top:-1px;left:20px;right:20px;z-index:99}#wpforms-header{border-top:3px solid #e27730;padding:22px 20px}#wpforms-header img{display:block;margin:0;max-width:235px}@media (max-width: 782px){#wpforms-header img{max-width:200px}}.wpforms-admin-wrap .page-title{background-color:#fff;margin:0 0 20px 0;padding:15px 20px}.wpforms-admin-wrap .page-title .add-new-h2{margin-left:28px}.wpforms-admin-tabs{background-color:#fff;margin:0 0 20px 0;padding:0 20px;list-style:none;overflow:auto;font-size:14px}.wpforms-admin-tabs li{margin:0 30px 0 0;padding:0;float:left}.wpforms-admin-tabs li:last-of-type{margin:0}.wpforms-admin-tabs li a{color:#666;display:block;padding:20px 0 18px 0;text-decoration:none;border-bottom:2px solid #fff;box-shadow:none}.wpforms-admin-tabs li a:hover{border-color:#999}.wpforms-admin-tabs li a.active{border-color:#e27730}#wpcontent{padding-left:0 !important;position:relative}@media (max-width: 600px){#wpcontent{padding-top:46px}}@media (max-width: 600px){#wpbody{padding-top:0}}.wpforms-admin-page #screen-meta-links,.wpforms-admin-page #screen-meta{display:none}.wpforms-admin-page .video-container{position:relative;padding-bottom:56.1%;height:0;overflow:hidden}.wpforms-admin-page .video-container iframe,.wpforms-admin-page .video-container object,.wpforms-admin-page .video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.wpforms-admin-page .wpforms-file-upload input[type=file]{width:0.1px;height:0.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.wpforms-admin-page .wpforms-file-upload label{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:inline-block;overflow:hidden;padding:0}.wpforms-admin-page .wpforms-file-upload input[type=file]:focus+label,.wpforms-admin-page .wpforms-file-upload input[type=file].has-focus+label{outline:1px dotted #000;outline:-webkit-focus-ring-color auto 5px}.wpforms-admin-page .wpforms-file-upload .fld{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}.wpforms-admin-page .wpforms-file-upload .fld .placeholder{color:#ccc}.wpforms-admin-page .wpforms-file-upload strong .fa{margin-right:8px}.wpforms-admin-page .wpforms-hide{display:none}.wpforms-admin-page .wpforms-h1-placeholder{display:none}.wpforms-admin-page .notice{display:none}.wpforms-admin-wrap{margin:0}.wpforms-admin-wrap .notice{margin-left:20px !important;margin-right:20px !important}.wpforms-admin-content{padding-left:20px;padding-right:20px}.wpforms-admin-content:before{content:" ";display:table}.wpforms-admin-content:after{clear:both;content:" ";display:table}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}.wpforms-admin-columns>div[class*="-column-"]{float:left}.wpforms-admin-columns .wpforms-admin-column-20{width:20%}.wpforms-admin-columns .wpforms-admin-column-33{width:33.33333%}.wpforms-admin-columns .wpforms-admin-column-40{width:40%}.wpforms-admin-columns .wpforms-admin-column-50{width:50%}.wpforms-admin-columns .wpforms-admin-column-60{width:60%}.wpforms-admin-columns .wpforms-admin-column-80{width:80%}.wpforms-admin-columns .wpforms-admin-column-last{float:right !important}.wpforms-admin-columns:after{content:"";display:table;clear:both}#wpforms-overview .tablenav.top{margin-top:0}#wpforms-overview .wp-list-table .column-id{width:30px}#wpforms-overview .wp-list-table .column-entries{width:70px}#wpforms-overview .wp-list-table .column-shortcode{width:150px}#wpforms-overview .wp-list-table .column-created{width:145px}#wpforms-entries-single #poststuff{padding:0}#wpforms-entries-single .postbox .hndle{cursor:default !important}#wpforms-entries-single .wpforms-entry-navigation{font-size:13px;line-height:29px;float:right;position:relative;padding-top:2px;padding-right:1px;white-space:nowrap}@media (max-width: 600px){#wpforms-entries-single .wpforms-entry-navigation{display:none}}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2{top:auto;margin:0;padding:4px 0px;text-align:center}@media (max-width: 782px){#wpforms-entries-single .wpforms-entry-navigation .add-new-h2{font-size:13px}}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2 .dashicons{font-size:16px;height:auto;width:28px;line-height:29px}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2.inactive{opacity:0.5;pointer-events:none;cursor:default}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-navigation-text{display:inline-block;margin-right:10px}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-current{top:auto;margin:0 -5px 0 -3px;text-align:center;padding:4px 10px;position:relative;text-decoration:none;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px;background:#fff;font-size:13px;line-height:29px;text-transform:center}#wpforms-entries-single #wpforms-entry-fields h2.hndle{font-size:18px}#wpforms-entries-single #wpforms-entry-fields h2.hndle .dashicons{font-size:16px;height:16px;width:16px;margin:4px 4px 0 0;color:#e27730}#wpforms-entries-single #wpforms-entry-fields .no-fields{padding:12px;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside p{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-name{font-weight:600;background:#ebf3fb;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-value{background:#fff;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .empty .wpforms-entry-field-value{font-style:italic;color:#999}#wpforms-entries-single #wpforms-entry-fields .wpforms-empty-field-toggle{float:right;text-decoration:none;padding:5px 0 0}#wpforms-entries-single #wpforms-entry-notes .inside{margin:0;padding:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-new{padding:10px}#wpforms-entries-single #wpforms-entry-notes form{display:none}#wpforms-entries-single #wpforms-entry-notes .btns{overflow:auto;padding:8px 0}#wpforms-entries-single #wpforms-entry-notes .no-notes{margin:0;padding:4px 10px 8px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single{padding:10px;border-top:1px solid #e3e1e3}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single p:last-of-type{margin-bottom:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single.even{background-color:#f9f9f9}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline{color:#888;margin-bottom:10px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .sep{color:#ddd}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .notes-user{text-decoration:none;font-weight:600}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete{color:#a00;text-decoration:none}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete:hover{color:red;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .inside,#wpforms-entries-single #wpforms-entry-payment .inside,#wpforms-entries-single #wpforms-entry-actions .inside{margin:0;padding:0}#wpforms-entries-single .wpforms-entry-details-meta,#wpforms-entries-single .wpforms-entry-actions-meta{padding:6px 0 0}#wpforms-entries-single .wpforms-entry-details-meta p,#wpforms-entries-single .wpforms-entry-payment-meta p,#wpforms-entries-single .wpforms-entry-actions-meta p{padding:6px 10px 8px;margin:0}#wpforms-entries-single .wpforms-entry-payment-meta{padding:0}#wpforms-entries-single .wpforms-entry-payment-meta p{border-bottom:1px solid #eee;padding:10px}#wpforms-entries-single .wpforms-entry-payment-meta p:last-of-type{border-bottom:0}#wpforms-entries-single .wpforms-entry-details-meta strong,#wpforms-entries-single .wpforms-entry-actions-meta strong{font-weight:600}#wpforms-entries-single .wpforms-entry-details-meta .dashicons,#wpforms-entries-single .wpforms-entry-actions-meta .dashicons{padding:0 2px 0 0;color:#82878A;top:-1px;left:-1px;position:relative;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .submitdelete{color:#a00;text-decoration:none;padding:1px 2px}#wpforms-entries-single #wpforms-entry-details .submitdelete:hover{color:red}#wpforms-entries-single .wpforms-entry-actions-meta a{text-decoration:none}#wpforms-entries-single .wpforms-entry-actions-meta a:hover{text-decoration:underline}#wpforms-entries-single #wpforms-entry-geolocation .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul{margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul li{border-bottom:1px solid #eee;margin:0;overflow:auto}#wpforms-entries-single #wpforms-entry-geolocation ul li:last-of-type{border-bottom:0}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-meta{width:85px;float:left;border-right:1px solid #eee;padding:10px 20px 10px 12px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-value{display:inline-block;padding:10px 12px 10px 20px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-flag{vertical-align:text-top;margin-right:4px}#wpforms-entries-list .form-details{border-bottom:1px solid #ddd;padding-bottom:15px;margin:0 0 10px}#wpforms-entries-list .form-details .form-details-sub{color:#999;display:block;font-size:10px;text-transform:uppercase;margin:0 0 8px 0}#wpforms-entries-list .form-details .form-details-title{float:left;font-size:18px;font-weight:400;margin:0}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-title{float:none;margin-bottom:10px}}#wpforms-entries-list .form-details .form-selector{display:inline-block;position:relative}#wpforms-entries-list .form-details .form-selector .toggle{border-radius:50%;color:#444;font-size:16px;box-shadow:none}#wpforms-entries-list .form-details .form-selector .toggle:hover,#wpforms-entries-list .form-details .form-selector .toggle.active{background-color:#e3e3e3;outline:none}#wpforms-entries-list .form-details .form-selector .toggle:before{vertical-align:middle}#wpforms-entries-list .form-details .form-selector .form-list{display:none;background:#fff;border-radius:3px;box-shadow:0 2px 8px 0 rgba(0,0,0,0.1);position:absolute;top:27px;left:-108px;width:230px;padding:10px 0;z-index:9991}#wpforms-entries-list .form-details .form-selector .form-list:before{content:" ";position:absolute;top:-10px;left:110px;width:0;height:0;border-style:solid;border-width:0 8px 10px 8px;border-color:transparent transparent #fff transparent}#wpforms-entries-list .form-details .form-selector ul{max-height:196px;overflow-x:hidden;padding:0;margin:0}#wpforms-entries-list .form-details .form-selector ul li{list-style:none;margin:0;font-size:13px}#wpforms-entries-list .form-details .form-selector ul li a{display:block;text-decoration:none;padding:5px 15px;color:#444}#wpforms-entries-list .form-details .form-selector ul li a:hover{background-color:#f7f7f7}#wpforms-entries-list .form-details .form-details-actions{float:right}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-actions{float:none}}#wpforms-entries-list .form-details .form-details-actions a{text-decoration:none;display:inline-block;margin:0 12px 0 0}#wpforms-entries-list .form-details .form-details-actions a:last-of-type{margin:0}#wpforms-entries-list .form-details .form-details-actions a .dashicons{width:16px;height:16px;font-size:16px}#wpforms-entries-list .search-box .wpforms-form-search-box-field{max-width:180px;vertical-align:top;margin:0 2px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-comparison{max-width:90px;vertical-align:top;margin:0 2px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-term{height:28px;margin:0 2px 0 0}#wpforms-entries-list .wpforms-filter-date .wpforms-filter-date-selector{height:28px;background-color:#fff;vertical-align:middle;max-width:210px}#wpforms-entries-list .wpforms-filter-date button{margin:1px 8px 0 0;vertical-align:top}#wpforms-entries-list .wp-list-table .new-entries-notification td{padding:0;text-align:center}#wpforms-entries-list .wp-list-table .new-entries-notification td a{display:none;padding:10px;background-color:#d9edf7}#wpforms-entries-list .wp-list-table .column-indicators{width:35px;text-align:center}#wpforms-entries-list .wp-list-table .column-indicators a:focus{-webkit-box-shadow:none;box-shadow:none}#wpforms-entries-list .wp-list-table .column-indicators .dashicons{width:14px;height:14px;font-size:14px;margin-top:3px}#wpforms-entries-list .wp-list-table .indicator-star .dashicons{margin-right:6px}#wpforms-entries-list .wp-list-table .indicator-star{color:#e4e4e4}#wpforms-entries-list .wp-list-table .indicator-star:hover,#wpforms-entries-list .wp-list-table .indicator-star.unstar{color:#e27730}#wpforms-entries-list .wp-list-table .indicator-read{color:#9ede84}#wpforms-entries-list .wp-list-table .indicator-read:hover,#wpforms-entries-list .wp-list-table .indicator-read.unread{color:#e4e4e4}#wpforms-entries-list .wp-list-table .column-date{width:150px}#wpforms-entries-list .wp-list-table .column-status{width:120px}#wpforms-entries-list .wp-list-table .column-status img{display:inline-block;height:12px;width:auto;margin:0 0 0 3px}#wpforms-entries-list .wp-list-table .column-payment_total{width:100px}#wpforms-entries-list .wp-list-table .column-actions{width:100px}#wpforms-entries-list .wp-list-table .sep{color:#ddd}#wpforms-entries-list .wp-list-table .delete:hover{color:red}#wpforms-entries-list #wpforms-entries-table-edit-columns{float:right;color:#ccc}#wpforms-entries-list #wpforms-entries-table-edit-columns:hover{color:#666}@media screen and (max-width: 782px){.wpforms-admin-content{padding-left:10px;padding-right:10px}.wp-list-table{margin:0 -10px 0 -10px;width:100vw;table-layout:auto}.wp-list-table.entries .column-indicators{width:auto !important}.wp-list-table.entries .indicators .indicator-star{display:none}.wp-list-table.entries .indicators .indicator-read{display:none}.wp-list-table.entries tr:not(.inline-edit-row):not(.no-items) td.column-primary{height:8px;padding:0;z-index:+1;margin-right:0;overflow:visible}.wp-list-table.entries .toggle-row{right:5px;top:15px}.wp-list-table.entries tr:not(.inline-edit-row):not(.no-items) td.column-primary+td{display:block !important}.wp-list-table.entries tr:not(.inline-edit-row):not(.no-items) td.column-primary ~ td{margin-right:5px;min-width:50vw}p.search-box{margin:0;width:auto}input[type=checkbox],input[type=radio]{height:16px;width:16px}}#wpforms-welcome{border-top:3px solid #e27730;color:#555;padding-top:110px}@media (max-width: 767px){#wpforms-welcome{padding-top:64px}}#wpforms-welcome *,#wpforms-welcome *::before,#wpforms-welcome *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-welcome .container{margin:0 auto;max-width:720px;padding:0}#wpforms-welcome .block{padding:40px}@media (max-width: 767px){#wpforms-welcome .block{padding:20px}}#wpforms-welcome img{max-width:100%;height:auto}#wpforms-welcome h1{color:#222;font-size:24px;text-align:center;margin:0 0 16px 0}#wpforms-welcome h5{color:#222;font-size:16px;margin:0 0 8px 0}#wpforms-welcome h6{font-size:16px;font-weight:400;line-height:1.6;text-align:center;margin:0}#wpforms-welcome p{font-size:14px;margin:0 0 20px 0}#wpforms-welcome .button-wrap{max-width:590px;margin:0 auto 0 auto}#wpforms-welcome .button-wrap .left{float:left;width:50%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .left{float:none;width:100%;padding:0;margin-bottom:20px}}#wpforms-welcome .button-wrap .right{float:right;width:50%;padding-left:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .right{float:none;width:100%;padding:0}}#wpforms-welcome .intro{background-color:#fff;border:2px solid #e1e1e1;border-radius:2px;margin-bottom:30px;position:relative;padding-top:40px}#wpforms-welcome .intro .sullie{background-color:#fff;border:2px solid #e1e1e1;border-radius:50%;height:110px;width:110px;padding:18px 14px 0 14px;position:absolute;top:-58px;left:50%;margin-left:-55px}#wpforms-welcome .intro .video-thumbnail{display:block;margin:0 auto}#wpforms-welcome .intro .button-wrap{margin-top:25px}#wpforms-welcome .features{background-color:#fff;border:2px solid #e1e1e1;border-bottom:0;border-radius:2px 2px 0 0;position:relative;padding-top:20px;padding-bottom:20px}#wpforms-welcome .features .feature-list{margin-top:60px}#wpforms-welcome .features .feature-block{float:left;width:50%;padding-bottom:35px;overflow:auto}@media (max-width: 767px){#wpforms-welcome .features .feature-block{float:none;width:100%}}#wpforms-welcome .features .feature-block.first{padding-right:20px;clear:both}@media (max-width: 767px){#wpforms-welcome .features .feature-block.first{padding-right:0}}#wpforms-welcome .features .feature-block.last{padding-left:20px}@media (max-width: 767px){#wpforms-welcome .features .feature-block.last{padding-left:0}}#wpforms-welcome .features .feature-block img{float:left;max-width:46px}#wpforms-welcome .features .feature-block h5{margin-left:68px}#wpforms-welcome .features .feature-block p{margin:0;margin-left:68px}#wpforms-welcome .features .button-wrap{margin-top:25px;text-align:center}#wpforms-welcome .upgrade-cta{background-color:#000;border:2px solid #e1e1e1;border-top:0;border-bottom:0;color:#fff}#wpforms-welcome .upgrade-cta h2{color:#fff;font-size:20px;margin:0 0 30px 0}#wpforms-welcome .upgrade-cta ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;font-size:15px;margin:0;padding:0}#wpforms-welcome .upgrade-cta ul li{display:block;width:50%;margin:0 0 8px 0;padding:0}#wpforms-welcome .upgrade-cta ul li .dashicons{color:#2a9b39;margin-right:5px}#wpforms-welcome .upgrade-cta .left{float:left;width:66.666666%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .left{float:none;width:100%;padding-right:0;margin-bottom:20px}}#wpforms-welcome .upgrade-cta .right{float:right;width:33.333333%;padding:20px 0 0 20px;text-align:center}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .right{float:none;width:100%;padding-left:0}}#wpforms-welcome .upgrade-cta .right h2{text-align:center;margin:0}#wpforms-welcome .upgrade-cta .right h2 span{display:inline-block;border-bottom:1px solid #555;padding:0 15px 12px}#wpforms-welcome .upgrade-cta .right .price{padding:26px 0}#wpforms-welcome .upgrade-cta .right .price .amount{font-size:48px;font-weight:600;position:relative;display:inline-block}#wpforms-welcome .upgrade-cta .right .price .amount:before{content:'$';position:absolute;top:-8px;left:-16px;font-size:18px}#wpforms-welcome .upgrade-cta .right .price .term{font-size:12px;display:inline-block}#wpforms-welcome .testimonials{background-color:#fff;border:2px solid #e1e1e1;border-top:0;padding:20px 0}#wpforms-welcome .testimonials .testimonial-block{margin:50px 0 0 0}#wpforms-welcome .testimonials .testimonial-block img{border-radius:50%;float:left;max-width:100px;box-shadow:0 0 18px rgba(0,0,0,0.2)}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block img{width:65px}}#wpforms-welcome .testimonials .testimonial-block p{font-size:14px;margin:0 0 12px 140px}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block p{margin-left:100px}}#wpforms-welcome .testimonials .testimonial-block p:last-of-type{margin-bottom:0}#wpforms-welcome .footer{background-color:#f1f1f1;border:2px solid #e1e1e1;border-top:0;border-radius:0 0 2px 2px}#wpforms-welcome.pro .features{border:2px solid #e1e1e1;margin-bottom:30px}#wpforms-welcome.pro .upgrade,#wpforms-welcome.pro .footer{display:none}#wpforms-welcome.pro .testimonials{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started .video-container{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started #wpfooter,.dashboard_page_wpforms-getting-started div.notice{display:none !important}#wpforms-admin-addons *,#wpforms-admin-addons *::before,#wpforms-admin-addons *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-admin-addons .addons-container{margin-left:-20px;margin-right:-20px}#wpforms-admin-addons .unlock-msg{padding:0 20px;margin-top:-20px;clear:both}#wpforms-admin-addons #wpforms-admin-addons-search{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;vertical-align:middle;padding:7px 12px;margin:-3px 10px 0 0;width:200px;min-height:35px;float:right}#wpforms-admin-addons #wpforms-admin-addons-search:focus{border-color:#bbb}#wpforms-admin-addons .addon-container{padding:0 20px;float:left;width:33.333333%}@media (max-width: 1249px){#wpforms-admin-addons .addon-container{width:50%}}@media (max-width: 767px){#wpforms-admin-addons .addon-container{width:100%;margin-bottom:20px}}#wpforms-admin-addons h4{font-size:17px;font-weight:700}#wpforms-admin-addons .addon-item{background-color:#fff;border:1px solid #ddd;border-radius:3px;margin:0 0 40px 0}@media (max-width: 767px){#wpforms-admin-addons .addon-item{margin:0 0}}#wpforms-admin-addons .addon-item img{border:1px solid #eee;float:left;max-width:75px}#wpforms-admin-addons .addon-item h5{margin:0 0 10px 100px;font-size:16px}#wpforms-admin-addons .addon-item p{margin:0 0 0 100px}#wpforms-admin-addons .addon-item .details{padding:30px 20px}#wpforms-admin-addons .addon-item .actions{background-color:#f7f7f7;border-top:1px solid #ddd;padding:20px;position:relative}#wpforms-admin-addons .addon-item .actions .msg{background-color:#f7f7f7;position:absolute;text-align:center;font-weight:600;top:0;left:0;height:100%;width:100%;z-index:99;padding:20px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-ms-align-items:center;align-items:center;justify-content:center}#wpforms-admin-addons .addon-item .actions .msg.success{color:#2a9b39}#wpforms-admin-addons .addon-item .actions .msg.error{color:red}#wpforms-admin-addons .addon-item .status{float:left;padding-top:8px}#wpforms-admin-addons .addon-item .status .status-inactive{color:red}#wpforms-admin-addons .addon-item .status .status-download{color:#666}#wpforms-admin-addons .addon-item .status .status-active{color:#2a9b39}#wpforms-admin-addons .addon-item .upgrade-button{text-align:center}#wpforms-admin-addons .addon-item .upgrade-button a{font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button{float:right}#wpforms-admin-addons .addon-item .action-button button{background:none;border:1px solid #ddd;border-radius:3px;box-shadow:none;cursor:pointer;font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button button:hover,#wpforms-admin-addons .addon-item .action-button button.loading{background-color:#e9e9e9}#wpforms-admin-addons .addon-item .action-button button .fa{margin-right:8px}#wpforms-admin-addons .addon-item .action-button button .fa.fa-spinner{margin-right:0}#wpforms-admin-addons .addon-item .action-button button.status-active .fa{color:#2a9b39}#wpforms-admin-addons .addon-item .action-button button.status-inactive .fa{color:red}#wpforms-admin-addons .addon-item .action-button button.status-download .fa{color:#999}#wpforms-admin-addons .addon-item .action-button button.disabled{cursor:default}#wpforms-admin-addons .addon-item .action-button button.loading .fa{color:#666}#wpforms-admin-about *,#wpforms-admin-about *::before,#wpforms-admin-about *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-admin-about .wpforms-admin-about-section{margin:0 20px 20px;padding:30px;background:#fff;border:1px solid #DDDDDD;line-height:2}#wpforms-admin-about .wpforms-admin-about-section h1,#wpforms-admin-about .wpforms-admin-about-section h2,#wpforms-admin-about .wpforms-admin-about-section h3,#wpforms-admin-about .wpforms-admin-about-section h4,#wpforms-admin-about .wpforms-admin-about-section h5{margin-top:0;padding-top:0;line-height:1.6}#wpforms-admin-about .wpforms-admin-about-section h2{font-size:24px}#wpforms-admin-about .wpforms-admin-about-section h3{font-size:18px;margin-bottom:30px;color:#23282C}#wpforms-admin-about .wpforms-admin-about-section ul,#wpforms-admin-about .wpforms-admin-about-section p{font-size:16px}#wpforms-admin-about .wpforms-admin-about-section p{margin-bottom:20px}#wpforms-admin-about .wpforms-admin-about-section p.bigger{font-size:18px}#wpforms-admin-about .wpforms-admin-about-section p.smaller{font-size:14px}#wpforms-admin-about .wpforms-admin-about-section p:last-child{margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section hr{margin:30px 0}#wpforms-admin-about .wpforms-admin-about-section figure{margin:0}#wpforms-admin-about .wpforms-admin-about-section figure img{width:100%}#wpforms-admin-about .wpforms-admin-about-section figure figcaption{font-size:14px;color:#888888;margin-top:5px;text-align:center;line-height:initial}#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-40{padding-left:15px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-40{width:100%;padding-left:0;padding-top:20px}}#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-60{padding-right:15px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-60{width:100%;padding-right:0}}#wpforms-admin-about .wpforms-admin-about-section ul.list-plain{margin-top:0;margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section ul.list-plain li{margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section ul.list-features li .fa{color:#2a9b39;margin:0 8px 0 0}#wpforms-admin-about .wpforms-admin-about-section .fa-star{color:gold}#wpforms-admin-about .wpforms-admin-about-section .no-margin{margin:0 !important}#wpforms-admin-about .wpforms-admin-about-section .no-padding{padding:0 !important}#wpforms-admin-about .wpforms-admin-about-section .centered{text-align:center !important}#wpforms-admin-about .wpforms-admin-about-section-first-form{display:flex}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-first-form{display:block !important}}#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-text{flex:1;padding-right:30px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-text{flex:none}}#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-video iframe{border:1px solid #DDDDDD}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-video{padding-top:20px}}#wpforms-admin-about .wpforms-admin-about-section-hero{padding:0}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main,#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-extra{padding:30px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-extra .wpforms-admin-column-50{float:none;width:100%}}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main{background-color:#FAFAFA;border-bottom:1px solid #DDDDDD}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main.no-border{border-bottom:0}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main p{color:#666}#wpforms-admin-about .wpforms-admin-about-section-hero h3.call-to-action{margin-bottom:-10px}#wpforms-admin-about .wpforms-admin-about-section-hero span.price-20-off{color:#6AB255}#wpforms-admin-about .wpforms-admin-about-section-squashed{margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section-squashed:not(:last-of-type){border-bottom:0}#wpforms-admin-about .wpforms-admin-about-section-post h2{margin-bottom:-10px}#wpforms-admin-about .wpforms-admin-about-section-post h3{margin-bottom:15px}#wpforms-admin-about .wpforms-admin-about-section-post p:last-of-type{margin-bottom:30px}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20{padding-right:20px;width:auto}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20 img{width:270px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20{width:20%}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20 img{width:auto;max-width:100%}}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-80{padding-left:20px;width:calc(100% - 20px - 270px)}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-80{width:80%}}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-about-section-post-link{padding:10px 15px;background-color:#DF7739;color:#fff;border-radius:3px;text-decoration:none;margin-top:15px;font-size:14px}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-about-section-post-link:hover{background-color:#B85A1B}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-about-section-post-link .fa{color:#EDBA9E;vertical-align:middle;margin-left:8px}#wpforms-admin-about .wpforms-admin-about-section-table table{border-collapse:collapse}#wpforms-admin-about .wpforms-admin-about-section-table table tr td{border-bottom:1px solid #DDDDDD;border-right:1px solid #DDDDDD;padding:30px;vertical-align:top}#wpforms-admin-about .wpforms-admin-about-section-table table tr td:last-of-type{border-right:0}#wpforms-admin-about .wpforms-admin-about-section-table table tr:last-child td{border-bottom:none}#wpforms-admin-about .wpforms-admin-about-section-table table p{background-repeat:no-repeat;background-size:15px auto;background-position:0 6px;margin:0}#wpforms-admin-about .wpforms-admin-about-section-table table p.features-full{padding-left:30px;background-image:url(../images/about/icon-full.svg)}#wpforms-admin-about .wpforms-admin-about-section-table table p.features-none{padding-left:30px;background-image:url(../images/about/icon-none.svg)}#wpforms-admin-about .wpforms-admin-about-section-table table p.features-partial{padding-left:30px;background-position:-3px 0;background-size:23px auto;background-image:url(../images/about/icon-partial.svg)}#wpforms-admin-about .wpforms-admin-about-section-table .wpforms-admin-about-section-hero-main{padding:0}#wpforms-admin-about .wpforms-admin-about-section-table .wpforms-admin-about-section-hero-main h3{padding:30px 30px 30px 60px}#wpforms-admin-about .wpforms-admin-about-section-table .wpforms-admin-about-section-hero-main .wpforms-admin-column-33:first-child h3{padding:30px}#wpforms-admin-about #wpforms-admin-addons{padding:0 30px}#wpforms-admin-about #wpforms-admin-addons .addon-container{padding:0 10px}#wpforms-admin-about #wpforms-admin-addons .addon-item .details{padding:20px}#wpforms-admin-about #wpforms-admin-addons .addon-item img{padding:10px}#wpforms-admin-about #wpforms-admin-addons .addon-item img[src*="-mi"]{padding:13px}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;-webkit-appearance:none;border-radius:3px;border:1px solid #cccccc;background:#f7f7f7;box-shadow:0 1px 0 #cccccc;font-weight:normal}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button:hover,#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button:focus{background:#fafafa;border-color:#999;color:#23282d}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-primary{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-shadow:0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-primary:hover,#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-primary:focus{background:#008ec2;border-color:#006799;color:#fff}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-primary .fa-spinner{color:#fff}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-secondary{color:#555;border-color:#cccccc;background:#f7f7f7;box-shadow:0 1px 0 #cccccc}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-secondary:hover,#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-secondary:focus{background:#fafafa;border-color:#999;color:#23282d}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.disabled{cursor:default}.wpforms-admin-settings *,.wpforms-admin-settings *::before,.wpforms-admin-settings *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpforms-admin-settings .wpforms-setting-row{border-bottom:1px solid #e4e4e4;padding:30px 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row:first-of-type{padding-top:10px !important}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row{padding:20px 0}}.wpforms-admin-settings .wpforms-setting-row.section-heading{padding:20px 0}.wpforms-admin-settings .wpforms-setting-row.section-heading.no-desc h4{margin:0}.wpforms-admin-settings .wpforms-setting-row.section-heading .wpforms-setting-field{margin:0;max-width:1000px}.wpforms-admin-settings .wpforms-setting-row.tools p,.wpforms-admin-settings .wpforms-setting-row.tools p:first-of-type{margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox input[type=checkbox]{float:left;margin:1px 0 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox .desc{margin:0 0 0 30px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license p.type{margin-top:12px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-text .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-select .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio]{margin:-3px 10px 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field label{margin-right:30px;display:inline-block}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field label:before{content:" ";display:block;width:155px;height:180px;margin:0 0 10px 0}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-default:before{background:url(../images/settings-email-html.png) center center}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-none:before{background:url(../images/settings-email-plaintext.png) center center}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-image .wpforms-setting-field img{display:block;margin:0 0 20px 0;max-width:400px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .wpforms-color-picker{padding-left:40px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .minicolors-input-swatch{top:7px;left:7px;height:21px;width:21px;border-radius:2px}.wpforms-admin-settings .wpforms-setting-row h4{font-size:20px;font-weight:700;margin:0 0 6px 0}.wpforms-admin-settings .wpforms-setting-row h3{font-size:24px;font-weight:600;margin:0 0 20px 0}.wpforms-admin-settings .wpforms-setting-row p{margin:12px 0 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row p:first-of-type{margin:8px 0 0}.wpforms-admin-settings .wpforms-setting-row p.desc{font-style:italic;color:#666}.wpforms-admin-settings .wpforms-setting-row p.discount-note{font-style:italic;color:#666}.wpforms-admin-settings .wpforms-setting-row p.discount-note strong{color:green}.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=password]{width:300px}}.wpforms-admin-settings .wpforms-setting-row input[type=text]:focus,.wpforms-admin-settings .wpforms-setting-row input[type=password]:focus{border-color:#bbb}.wpforms-admin-settings .wpforms-setting-row button{margin-right:10px}.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{display:block;max-width:400px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{width:300px}}.wpforms-admin-settings .wpforms-setting-row .progress-bar{background:#fff;border:1px solid #e27730;height:30px;width:100%;position:relative;border-radius:3px;margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete{border:1px solid #2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar{background-color:#2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar:after{content:none;display:none}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar{display:block;background:#e27730;height:100%;left:0;position:absolute;-webkit-transition:width 0.5s ease-in-out;-moz-transition:width 0.5s ease-in-out;-o-transition:width 0.5s ease-in-out;transition:width 0.5s ease-in-out}@-webkit-keyframes progress{to{background-position:60px 0}}@-moz-keyframes progress{to{background-position:60px 0}}@keyframes progress{to{background-position:60px 0}}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar:after{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-animation:progress 1s linear infinite;-moz-animation:progress 1s linear infinite;animation:progress 1s linear infinite;background-repeat:repeat-x;background-size:60px 60px;background-image:-webkit-linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.wpforms-admin-settings .wpforms-setting-label{display:block;float:left;width:200px;padding:0}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-label{float:none;width:100%;padding-bottom:15px}}.wpforms-admin-settings .wpforms-setting-label label{display:block;font-weight:600}.wpforms-admin-settings .wpforms-setting-field{display:block;margin:0 0 0 200px;max-width:800px}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-field{margin:0}}.wpforms-admin-settings p.submit{margin:0;padding:25px 0}.wpforms-admin-settings .info-area,.wpforms-admin-settings .pre-error{display:block;width:100%;max-width:1000px;height:450px;font-family:Menlo,Monaco,monospace;font-size:12px;background:#fff;box-shadow:none;border:1px solid #ddd;white-space:pre;overflow:auto;padding:20px}.wpforms-admin-settings .pre-error{height:auto;max-height:250px;margin-bottom:20px}.wpforms-admin-settings .checkbox-multiselect-columns{max-width:600px;position:relative}.wpforms-admin-settings .checkbox-multiselect-columns:after{content:".";display:block;height:0;line-height:0;font-size:0;clear:both;min-height:0;visibility:hidden}.wpforms-admin-settings .checkbox-multiselect-columns:before{content:"\f0ec";color:#999;font:normal normal normal 20px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:130px;left:50%;margin:0 0 0 -10px}.wpforms-admin-settings .checkbox-multiselect-columns .header{font-weight:600;font-size:13px;margin:0;padding:0 0 5px 0;text-align:center}.wpforms-admin-settings .checkbox-multiselect-columns .first-column,.wpforms-admin-settings .checkbox-multiselect-columns .second-column{width:45%;float:left}.wpforms-admin-settings .checkbox-multiselect-columns .second-column{float:right}.wpforms-admin-settings .checkbox-multiselect-columns .second-column ul li{padding:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul{background-color:#fff;border:1px solid #ddd;border-radius:3px;position:relative;height:250px;padding:0;overflow-y:auto;margin:0;list-style-type:none}.wpforms-admin-settings .checkbox-multiselect-columns ul li{border-bottom:1px #eee solid;margin:0;font-size:14px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label{display:block;padding:10px 10px 10px 32px;position:relative;vertical-align:baseline}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:hover{background-color:#e27730;color:#fff}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:before{content:"\f0c8";color:#ddd;font:normal normal normal 16px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:12px;left:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked{opacity:0.6}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked:before{content:"\f14a";color:#2a9b39}.wpforms-admin-settings .checkbox-multiselect-columns ul li input{display:none}.wpforms-admin-settings .checkbox-multiselect-columns .all{color:#999;display:inline-block;font-size:13px;margin:10px 0 0}.wpforms-admin-settings #wpforms-importer-analyze{display:none}.wpforms-admin-settings #wpforms-importer-analyze .process-count,.wpforms-admin-settings #wpforms-importer-analyze p{font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade{display:none;font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade h5{font-size:18px;font-weight:600;padding:0;margin:30px 0 20px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade hr{border:none;border-bottom:1px solid #e4e4e4;margin:40px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade .wpforms-btn{margin-right:10px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li{list-style-type:disc;margin-left:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li.form{list-style-type:none;margin-left:0;font-weight:700}.wpforms-admin-settings #wpforms-importer-process{display:none}.wpforms-admin-settings #wpforms-importer-process .process-count,.wpforms-admin-settings #wpforms-importer-process .process-completed{font-size:14px}.wpforms-admin-settings #wpforms-importer-process .process-completed{display:none}.wpforms-admin-settings #wpforms-importer-process .status{margin:20px 0 30px;background-color:#fff;border-radius:3px;border:1px solid #ddd;max-height:800px;overflow-y:scroll;display:none}.wpforms-admin-settings #wpforms-importer-process .status .item{border-bottom:1px solid #ddd;padding:20px}.wpforms-admin-settings #wpforms-importer-process .status .item:last-of-type{border:none}.wpforms-admin-settings #wpforms-importer-process .status .item p{font-size:13px;margin:12px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item ul{font-size:13px;margin:12px 0 0 16px}.wpforms-admin-settings #wpforms-importer-process .status .item ul li{list-style:disc}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon{display:inline-block;margin:0 10px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-info-circle{color:#00a0d2}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-check{color:#46b450}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-triangle{color:#ffb900}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-times,.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-circle{color:red}.wpforms-admin-settings #wpforms-importer-process .status .item .name{font-size:14px;float:left}.wpforms-admin-settings #wpforms-importer-process .status .item .actions{font-size:14px;float:right}.wpforms-admin-settings #wpforms-importer-process .status .item .actions .sep{color:#ddd}.wpforms-admin-settings .settings-lite-cta{background-color:#fff;border:1px solid #dadada;padding:25px 20px;margin:10px 0 0 0;position:relative}.wpforms-admin-settings .settings-lite-cta .dismiss{position:absolute;top:10px;right:10px;color:#666;font-size:16px}.wpforms-admin-settings .settings-lite-cta h5{margin:0 0 16px;font-size:18px;font-weight:700}.wpforms-admin-settings .settings-lite-cta h6{font-weight:700;font-size:14px;margin:0 0 16px}.wpforms-admin-settings .settings-lite-cta p{color:#555;font-size:14px;margin:0 0 16px}.wpforms-admin-settings .settings-lite-cta p:last-of-type{margin:0}.wpforms-admin-settings .settings-lite-cta p a{color:#e27730}.wpforms-admin-settings .settings-lite-cta p a:hover{color:#b85a1b}.wpforms-admin-settings .settings-lite-cta ul{margin:0;padding:0;width:50%;float:left}@media (max-width: 600px){.wpforms-admin-settings .settings-lite-cta ul{width:100%;float:none}}.wpforms-admin-settings .settings-lite-cta ul li{margin:0;padding:0 0 2px 16px;color:#555;font-size:14px;position:relative}.wpforms-admin-settings .settings-lite-cta ul li:before{content:'+';position:absolute;top:-1px;left:0}.wpforms-admin-settings .settings-lite-cta .list{margin:0 0 16px 0;overflow:auto;max-width:900px}.wpforms-admin-settings .settings-lite-cta .green{color:#218900;font-weight:700}.wpforms-admin-settings .settings-lite-cta .fa-star{color:#ff982d}#wpforms-settings-providers .wpforms-settings-provider{border-bottom:1px solid #ddd;padding:30px 0}#wpforms-settings-providers .wpforms-settings-provider.focus-out{opacity:0.4}#wpforms-settings-providers .wpforms-settings-provider-header{cursor:pointer;max-width:1000px}#wpforms-settings-providers .wpforms-settings-provider-logo{float:left;position:relative}#wpforms-settings-providers .wpforms-settings-provider-logo .fa{position:absolute;top:50%;margin:-9px 0 0 0;left:10px;color:#666;font-size:18px}#wpforms-settings-providers .wpforms-settings-provider-logo img{background:#fff;border:1px solid #ddd;max-width:90px;display:block;margin:0 0 0 40px}#wpforms-settings-providers .wpforms-settings-provider-info{margin:0 0 0 160px;position:relative;padding:20px 0 0}#wpforms-settings-providers .wpforms-settings-provider-info h3{margin:0 0 10px 0;font-size:20px;font-weight:600}#wpforms-settings-providers .wpforms-settings-provider-info p{margin:0;font-size:14px}#wpforms-settings-providers .wpforms-settings-provider-info .connected-indicator{color:#83c11f;width:135px;border:1px solid #83c11f;border-radius:4px;padding:8px 14px;font-size:16px;position:absolute;top:28px;right:0;display:none}#wpforms-settings-providers .connected .wpforms-settings-provider-info .connected-indicator{display:block}#wpforms-settings-providers .wpforms-settings-provider-accounts{margin:0 0 0 160px;display:none;max-width:840px}#wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts{display:block}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul{padding:0;margin:0}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li{border-bottom:1px solid #ddd;margin:0;padding:10px 0;font-size:14px}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:first-of-type{border-top:1px solid #ddd}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:last-of-type{margin-bottom:16px}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label{float:left;width:50%}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.date{color:#999;float:left;width:35%}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.remove{float:right;width:15%;text-align:right}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect{display:none;padding:20px;background-color:#ebf3fb;border:1px solid #0e6cad}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:block;padding:7px 12px;margin:5px 0;width:400px;min-height:35px}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]:focus{border-color:#bbb}#wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts-connect{display:block}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect .fa{display:none}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect p,#wpforms-settings-providers .wpforms-settings-provider-accounts p{margin:0 0 15px 0;font-size:14px}
|
1 |
+
.choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#EAEAEA;cursor:not-allowed;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices[data-type*="select-one"]{cursor:pointer}.choices[data-type*="select-one"] .choices__inner{padding-bottom:3.0px}.choices[data-type*="select-one"] .choices__input{display:block;width:100% !important;padding:10px !important;border-bottom:1px solid #DDDDDD !important;background-color:#FFFFFF;margin:0 !important}.choices[data-type*="select-one"] .choices__button{background-image:url("../images/cross-inverse.svg");padding:0;background-size:8px;height:100%;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*="select-one"] .choices__button:hover,.choices[data-type*="select-one"] .choices__button:focus{opacity:1}.choices[data-type*="select-one"] .choices__button:focus{box-shadow:0px 0px 0px 2px #0e6cad}.choices[data-type*="select-one"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-one"].is-open:after{border-color:transparent transparent #333333 transparent;margin-top:-7.5px}.choices[data-type*="select-one"][dir="rtl"]:after{left:11.5px;right:auto}.choices[data-type*="select-one"][dir="rtl"] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*="select-multiple"]:after{content:"";height:0;width:0;border-style:solid;border-color:#333333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:18px;margin-top:-2.5px;pointer-events:none}.choices[data-type*="select-multiple"].is-open:after{border-color:transparent transparent #333333 transparent;margin-top:-7.5px}.choices[data-type*="select-multiple"] .choices__inner,.choices[data-type*="text"] .choices__inner{cursor:text}.choices[data-type*="select-multiple"] .choices__button,.choices[data-type*="text"] .choices__button{position:relative;display:inline-block;margin-top:0;margin-right:-4px;margin-bottom:0;margin-left:8px;padding-left:16px;border-left:1px solid #0a4f7e;background-image:url("../images/cross.svg");background-size:8px;width:8px;line-height:1;opacity:.75}.choices[data-type*="select-multiple"] .choices__button:hover,.choices[data-type*="select-multiple"] .choices__button:focus,.choices[data-type*="text"] .choices__button:hover,.choices[data-type*="text"] .choices__button:focus{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#fff;padding:4px 7.5px 1px;border:1px solid #DDDDDD;border-radius:3px;font-size:14px;min-height:35px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:3px 3px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 3px 3px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir="rtl"] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:3px;padding:3px 10px;font-size:12px;font-weight:500;margin-right:4px;margin-top:0px;margin-bottom:3px;background-color:#0e6cad;border:1px solid #0c5d95;color:#FFFFFF;word-break:break-all}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir="rtl"] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#0c5d95;border:1px solid #0a4f7e}.is-disabled .choices__list--multiple .choices__item{background-color:#aaaaaa;border:1px solid #919191}.choices__list--dropdown{display:none;z-index:1;position:absolute;width:100%;background-color:#FFFFFF;border:1px solid #DDDDDD;top:100%;margin-top:-1px;border-bottom-left-radius:3px;border-bottom-right-radius:3px;overflow:hidden;word-break:break-all}.choices__list--dropdown.is-active{display:block}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir="rtl"] .choices__list--dropdown .choices__item{text-align:right}@media (min-width: 640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir="rtl"] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir="rtl"] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline !important;background-color:#f9f9f9;font-size:14px;margin:0 !important;border:0 !important;border-radius:0 !important;max-width:100%;min-height:0 !important;width:auto !important;padding:4px 0 4px 2px !important}.choices__input:focus{outline:0}[dir="rtl"] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}.wpforms-admin-page .wpforms-btn{border:0;border-radius:3px;cursor:pointer;display:inline-block;margin:0;text-decoration:none;text-align:center;vertical-align:middle;white-space:nowrap;box-shadow:none}.wpforms-admin-page .wpforms-btn-block{display:block;width:100%}.wpforms-admin-page .wpforms-btn-md{font-size:13px;font-weight:600;padding:8px 12px;min-height:35px}.wpforms-admin-page .wpforms-btn-lg{font-size:16px;font-weight:600;padding:16px 28px}.wpforms-admin-page .wpforms-btn-orange{background-color:#e27730;border-color:#e27730;color:#fff}.wpforms-admin-page .wpforms-btn-orange:hover{background-color:#b85a1b;border-color:#b85a1b}.wpforms-admin-page .wpforms-btn-grey{background-color:#eee;border-color:#ccc;color:#666}.wpforms-admin-page .wpforms-btn-grey:hover{background-color:#d7d7d7;border-color:#ccc;color:#444}.wpforms-admin-page .wpforms-btn-light-grey{background-color:#f5f5f5;border:1px solid #ccc;color:#666}.wpforms-admin-page .wpforms-btn-light-grey:hover{background-color:#eee;color:#444}.wpforms-admin-page .wpforms-btn-trans-green{background-color:none;color:#2a9b39}.wpforms-admin-page .wpforms-btn-trans-green:hover{background-color:#2a9b39;color:#fff}.wpforms-admin-page .wpforms-btn-trans-green .underline{position:relative}.wpforms-admin-page .wpforms-btn-trans-green .underline:after{content:" ";border-bottom:1px dashed #2a9b39;position:absolute;bottom:-5px;left:0;width:100%}.wpforms-admin-page .wpforms-btn-trans-green .dashicons{height:18px}body div.jconfirm *,body div.jconfirm *::before,body div.jconfirm *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body div.jconfirm div.jconfirm-box-container div.jconfirm-box{border-radius:0;box-shadow:0 2px 6px rgba(0,0,0,0.2)}body div.jconfirm div.jconfirm-box-container div.jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.4);top:8px;right:8px}body div.jconfirm div.jconfirm-box-container div.jconfirm-box div.jconfirm-closeIcon:hover{color:rgba(0,0,0,0.8)}body div.jconfirm div.jconfirm-box div.jconfirm-title-c{margin:0 0 26px 0 !important;padding:0 !important}body div.jconfirm div.jconfirm-box div.jconfirm-title-c span.jconfirm-icon-c{margin:0 !important;color:#c4c4c4 !important}body div.jconfirm div.jconfirm-box div.jconfirm-title-c span.jconfirm-title{display:block;color:#333}body div.jconfirm div.jconfirm-box div.jconfirm-title-c span.jconfirm-icon-c+span.jconfirm-title{margin-top:20px !important}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane{margin-bottom:26px;display:block}body div.jconfirm div.jconfirm-box div.jconfirm-content-pane .jconfirm-content{overflow:inherit}body div.jconfirm div.jconfirm-box div.jconfirm-content{font-size:16px;color:#555;line-height:1.4}body div.jconfirm div.jconfirm-box div.jconfirm-content.lite-upgrade p{font-size:18px;padding:0 20px}body div.jconfirm div.jconfirm-box div.jconfirm-content p{margin:0 0 16px;font-size:16px;line-height:1.5}body div.jconfirm div.jconfirm-box div.jconfirm-content p:last-of-type{margin:0}body div.jconfirm div.jconfirm-box div.jconfirm-content p.large{font-size:18px}body div.jconfirm div.jconfirm-box div.jconfirm-content p.small{font-size:14px}body div.jconfirm div.jconfirm-box div.jconfirm-content .already-purchased{font-size:12px;color:#ccc;text-decoration:none}body div.jconfirm div.jconfirm-box div.jconfirm-content .already-purchased:hover{text-decoration:underline}body div.jconfirm div.jconfirm-box div.jconfirm-buttons .already-purchased{display:block;font-size:12px;color:#aaa;text-decoration:none;padding-top:20px}body div.jconfirm div.jconfirm-box div.jconfirm-buttons .already-purchased:hover{color:#999;text-decoration:underline}body div.jconfirm div.jconfirm-box .discount-note{text-align:center;margin:30px 0 0}body div.jconfirm div.jconfirm-box .discount-note p{background-color:#faffac;margin:0 -30px;padding:24px 60px 20px;font-size:15px;color:#4d4d4d;position:relative}body div.jconfirm div.jconfirm-box .discount-note p:after{content:'\f058';display:inline-block;font:normal normal normal 14px/1 FontAwesome;background-color:#fff;font-size:26px;border-radius:50%;padding:5px 6px;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:-20px;right:50%;margin-right:-18px;color:#3abc01}body div.jconfirm div.jconfirm-box .discount-note span{font-weight:700;color:#3abc01}body div.jconfirm div.jconfirm-box .discount-note a{color:#aaa;display:block;margin-top:12px}body div.jconfirm div.jconfirm-box input[type=text]{display:block;width:99%;border:1px solid #d6d6d6;padding:10px;box-shadow:none;margin:20px auto 0 auto}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode{margin:20px 0;text-align:center;font-size:24px;padding:8px 5px}body div.jconfirm div.jconfirm-box #wpforms-embed-shortcode:disabled{color:#333}body div.jconfirm div.jconfirm-box button.btn-confirm{background-color:#e27730;color:#fff;outline:none}body div.jconfirm div.jconfirm-box button.btn-confirm:hover{background-color:#b85a1b;border-color:#b85a1b}body div.jconfirm div.jconfirm-box .error{display:none;color:red}body div.jconfirm div.jconfirm-box .wpforms-error{border:1px solid #ebccd1 !important}body div.jconfirm div.jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transition:none !important;transition:none !important;-webkit-transform:none !important;-ms-transform:none !important;transform:none !important;font-size:45px !important}body .choices{text-align:left}body .choices input[type=text].choices__input{display:inline-block !important}.wpforms-admin-page .wpforms-alert{padding:16px;margin-bottom:18px;border:1px solid transparent}.wpforms-admin-page .wpforms-alert h4{margin-top:0;color:inherit}.wpforms-admin-page .wpforms-alert p{margin:0 0 15px 0}.wpforms-admin-page .wpforms-alert p:last-of-type{margin:0}.wpforms-admin-page .wpforms-alert.wpforms-alert-nomargin{margin:0}.wpforms-admin-page .wpforms-alert.wpforms-alert-small{font-size:12px}.wpforms-admin-page .wpforms-alert.wpforms-alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.wpforms-admin-page .wpforms-alert.wpforms-alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.wpforms-admin-page .wpforms-alert.wpforms-alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.wpforms-admin-page .wpforms-alert.wpforms-alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.wpforms-flag{width:16px;height:16px;background:url(../images/flags.png) no-repeat;display:inline-block}.wpforms-flag.wpforms-flag-ad{background-position:-16px 0}.wpforms-flag.wpforms-flag-ae{background-position:-32px 0}.wpforms-flag.wpforms-flag-af{background-position:-48px 0}.wpforms-flag.wpforms-flag-ag{background-position:-64px 0}.wpforms-flag.wpforms-flag-ai{background-position:-80px 0}.wpforms-flag.wpforms-flag-al{background-position:-96px 0}.wpforms-flag.wpforms-flag-am{background-position:-112px 0}.wpforms-flag.wpforms-flag-an{background-position:-128px 0}.wpforms-flag.wpforms-flag-ao{background-position:-144px 0}.wpforms-flag.wpforms-flag-ar{background-position:-160px 0}.wpforms-flag.wpforms-flag-as{background-position:-176px 0}.wpforms-flag.wpforms-flag-at{background-position:-192px 0}.wpforms-flag.wpforms-flag-au{background-position:-208px 0}.wpforms-flag.wpforms-flag-aw{background-position:-224px 0}.wpforms-flag.wpforms-flag-az{background-position:0 -16px}.wpforms-flag.wpforms-flag-ba{background-position:-16px -16px}.wpforms-flag.wpforms-flag-bb{background-position:-32px -16px}.wpforms-flag.wpforms-flag-bd{background-position:-48px -16px}.wpforms-flag.wpforms-flag-be{background-position:-64px -16px}.wpforms-flag.wpforms-flag-bf{background-position:-80px -16px}.wpforms-flag.wpforms-flag-bg{background-position:-96px -16px}.wpforms-flag.wpforms-flag-bh{background-position:-112px -16px}.wpforms-flag.wpforms-flag-bi{background-position:-128px -16px}.wpforms-flag.wpforms-flag-bj{background-position:-144px -16px}.wpforms-flag.wpforms-flag-bm{background-position:-160px -16px}.wpforms-flag.wpforms-flag-bn{background-position:-176px -16px}.wpforms-flag.wpforms-flag-bo{background-position:-192px -16px}.wpforms-flag.wpforms-flag-br{background-position:-208px -16px}.wpforms-flag.wpforms-flag-bs{background-position:-224px -16px}.wpforms-flag.wpforms-flag-bt{background-position:0 -32px}.wpforms-flag.wpforms-flag-bw{background-position:-16px -32px}.wpforms-flag.wpforms-flag-by{background-position:-32px -32px}.wpforms-flag.wpforms-flag-bz{background-position:-48px -32px}.wpforms-flag.wpforms-flag-ca{background-position:-64px -32px}.wpforms-flag.wpforms-flag-cd{background-position:-80px -32px}.wpforms-flag.wpforms-flag-cf{background-position:-96px -32px}.wpforms-flag.wpforms-flag-cg{background-position:-112px -32px}.wpforms-flag.wpforms-flag-ch{background-position:-128px -32px}.wpforms-flag.wpforms-flag-ci{background-position:-144px -32px}.wpforms-flag.wpforms-flag-ck{background-position:-160px -32px}.wpforms-flag.wpforms-flag-cl{background-position:-176px -32px}.wpforms-flag.wpforms-flag-cm{background-position:-192px -32px}.wpforms-flag.wpforms-flag-cn{background-position:-208px -32px}.wpforms-flag.wpforms-flag-co{background-position:-224px -32px}.wpforms-flag.wpforms-flag-cr{background-position:0 -48px}.wpforms-flag.wpforms-flag-cu{background-position:-16px -48px}.wpforms-flag.wpforms-flag-cv{background-position:-32px -48px}.wpforms-flag.wpforms-flag-cy{background-position:-48px -48px}.wpforms-flag.wpforms-flag-cz{background-position:-64px -48px}.wpforms-flag.wpforms-flag-de{background-position:-80px -48px}.wpforms-flag.wpforms-flag-dj{background-position:-96px -48px}.wpforms-flag.wpforms-flag-dk{background-position:-112px -48px}.wpforms-flag.wpforms-flag-dm{background-position:-128px -48px}.wpforms-flag.wpforms-flag-do{background-position:-144px -48px}.wpforms-flag.wpforms-flag-dz{background-position:-160px -48px}.wpforms-flag.wpforms-flag-ec{background-position:-176px -48px}.wpforms-flag.wpforms-flag-ee{background-position:-192px -48px}.wpforms-flag.wpforms-flag-eg{background-position:-208px -48px}.wpforms-flag.wpforms-flag-eh{background-position:-224px -48px}.wpforms-flag.wpforms-flag-er{background-position:0 -64px}.wpforms-flag.wpforms-flag-es{background-position:-16px -64px}.wpforms-flag.wpforms-flag-et{background-position:-32px -64px}.wpforms-flag.wpforms-flag-fi{background-position:-48px -64px}.wpforms-flag.wpforms-flag-fj{background-position:-64px -64px}.wpforms-flag.wpforms-flag-fm{background-position:-80px -64px}.wpforms-flag.wpforms-flag-fo{background-position:-96px -64px}.wpforms-flag.wpforms-flag-fr{background-position:-112px -64px}.wpforms-flag.wpforms-flag-ga{background-position:-128px -64px}.wpforms-flag.wpforms-flag-gb{background-position:-144px -64px}.wpforms-flag.wpforms-flag-gd{background-position:-160px -64px}.wpforms-flag.wpforms-flag-ge{background-position:-176px -64px}.wpforms-flag.wpforms-flag-gg{background-position:-192px -64px}.wpforms-flag.wpforms-flag-gh{background-position:-208px -64px}.wpforms-flag.wpforms-flag-gi{background-position:-224px -64px}.wpforms-flag.wpforms-flag-gl{background-position:0 -80px}.wpforms-flag.wpforms-flag-gm{background-position:-16px -80px}.wpforms-flag.wpforms-flag-gn{background-position:-32px -80px}.wpforms-flag.wpforms-flag-gp{background-position:-48px -80px}.wpforms-flag.wpforms-flag-gq{background-position:-64px -80px}.wpforms-flag.wpforms-flag-gr{background-position:-80px -80px}.wpforms-flag.wpforms-flag-gt{background-position:-96px -80px}.wpforms-flag.wpforms-flag-gu{background-position:-112px -80px}.wpforms-flag.wpforms-flag-gw{background-position:-128px -80px}.wpforms-flag.wpforms-flag-gy{background-position:-144px -80px}.wpforms-flag.wpforms-flag-hk{background-position:-160px -80px}.wpforms-flag.wpforms-flag-hn{background-position:-176px -80px}.wpforms-flag.wpforms-flag-hr{background-position:-192px -80px}.wpforms-flag.wpforms-flag-ht{background-position:-208px -80px}.wpforms-flag.wpforms-flag-hu{background-position:-224px -80px}.wpforms-flag.wpforms-flag-id{background-position:0 -96px}.wpforms-flag.wpforms-flag-ie{background-position:-16px -96px}.wpforms-flag.wpforms-flag-il{background-position:-32px -96px}.wpforms-flag.wpforms-flag-im{background-position:-48px -96px}.wpforms-flag.wpforms-flag-in{background-position:-64px -96px}.wpforms-flag.wpforms-flag-iq{background-position:-80px -96px}.wpforms-flag.wpforms-flag-ir{background-position:-96px -96px}.wpforms-flag.wpforms-flag-is{background-position:-112px -96px}.wpforms-flag.wpforms-flag-it{background-position:-128px -96px}.wpforms-flag.wpforms-flag-je{background-position:-144px -96px}.wpforms-flag.wpforms-flag-jm{background-position:-160px -96px}.wpforms-flag.wpforms-flag-jo{background-position:-176px -96px}.wpforms-flag.wpforms-flag-jp{background-position:-192px -96px}.wpforms-flag.wpforms-flag-ke{background-position:-208px -96px}.wpforms-flag.wpforms-flag-kg{background-position:-224px -96px}.wpforms-flag.wpforms-flag-kh{background-position:0 -112px}.wpforms-flag.wpforms-flag-ki{background-position:-16px -112px}.wpforms-flag.wpforms-flag-km{background-position:-32px -112px}.wpforms-flag.wpforms-flag-kn{background-position:-48px -112px}.wpforms-flag.wpforms-flag-kp{background-position:-64px -112px}.wpforms-flag.wpforms-flag-kr{background-position:-80px -112px}.wpforms-flag.wpforms-flag-kw{background-position:-96px -112px}.wpforms-flag.wpforms-flag-ky{background-position:-112px -112px}.wpforms-flag.wpforms-flag-kz{background-position:-128px -112px}.wpforms-flag.wpforms-flag-la{background-position:-144px -112px}.wpforms-flag.wpforms-flag-lb{background-position:-160px -112px}.wpforms-flag.wpforms-flag-lc{background-position:-176px -112px}.wpforms-flag.wpforms-flag-li{background-position:-192px -112px}.wpforms-flag.wpforms-flag-lk{background-position:-208px -112px}.wpforms-flag.wpforms-flag-lr{background-position:-224px -112px}.wpforms-flag.wpforms-flag-ls{background-position:0 -128px}.wpforms-flag.wpforms-flag-lt{background-position:-16px -128px}.wpforms-flag.wpforms-flag-lu{background-position:-32px -128px}.wpforms-flag.wpforms-flag-lv{background-position:-48px -128px}.wpforms-flag.wpforms-flag-ly{background-position:-64px -128px}.wpforms-flag.wpforms-flag-ma{background-position:-80px -128px}.wpforms-flag.wpforms-flag-mc{background-position:-96px -128px}.wpforms-flag.wpforms-flag-md{background-position:-112px -128px}.wpforms-flag.wpforms-flag-me{background-position:-128px -128px}.wpforms-flag.wpforms-flag-mg{background-position:-144px -128px}.wpforms-flag.wpforms-flag-mh{background-position:-160px -128px}.wpforms-flag.wpforms-flag-mk{background-position:-176px -128px}.wpforms-flag.wpforms-flag-ml{background-position:-192px -128px}.wpforms-flag.wpforms-flag-mm{background-position:-208px -128px}.wpforms-flag.wpforms-flag-mn{background-position:-224px -128px}.wpforms-flag.wpforms-flag-mo{background-position:0 -144px}.wpforms-flag.wpforms-flag-mq{background-position:-16px -144px}.wpforms-flag.wpforms-flag-mr{background-position:-32px -144px}.wpforms-flag.wpforms-flag-ms{background-position:-48px -144px}.wpforms-flag.wpforms-flag-mt{background-position:-64px -144px}.wpforms-flag.wpforms-flag-mu{background-position:-80px -144px}.wpforms-flag.wpforms-flag-mv{background-position:-96px -144px}.wpforms-flag.wpforms-flag-mw{background-position:-112px -144px}.wpforms-flag.wpforms-flag-mx{background-position:-128px -144px}.wpforms-flag.wpforms-flag-my{background-position:-144px -144px}.wpforms-flag.wpforms-flag-mz{background-position:-160px -144px}.wpforms-flag.wpforms-flag-na{background-position:-176px -144px}.wpforms-flag.wpforms-flag-nc{background-position:-192px -144px}.wpforms-flag.wpforms-flag-ne{background-position:-208px -144px}.wpforms-flag.wpforms-flag-ng{background-position:-224px -144px}.wpforms-flag.wpforms-flag-ni{background-position:0 -160px}.wpforms-flag.wpforms-flag-nl{background-position:-16px -160px}.wpforms-flag.wpforms-flag-no{background-position:-32px -160px}.wpforms-flag.wpforms-flag-np{background-position:-48px -160px}.wpforms-flag.wpforms-flag-nr{background-position:-64px -160px}.wpforms-flag.wpforms-flag-nz{background-position:-80px -160px}.wpforms-flag.wpforms-flag-om{background-position:-96px -160px}.wpforms-flag.wpforms-flag-pa{background-position:-112px -160px}.wpforms-flag.wpforms-flag-pe{background-position:-128px -160px}.wpforms-flag.wpforms-flag-pf{background-position:-144px -160px}.wpforms-flag.wpforms-flag-pg{background-position:-160px -160px}.wpforms-flag.wpforms-flag-ph{background-position:-176px -160px}.wpforms-flag.wpforms-flag-pk{background-position:-192px -160px}.wpforms-flag.wpforms-flag-pl{background-position:-208px -160px}.wpforms-flag.wpforms-flag-pr{background-position:-224px -160px}.wpforms-flag.wpforms-flag-ps{background-position:0 -176px}.wpforms-flag.wpforms-flag-pt{background-position:-16px -176px}.wpforms-flag.wpforms-flag-pw{background-position:-32px -176px}.wpforms-flag.wpforms-flag-py{background-position:-48px -176px}.wpforms-flag.wpforms-flag-qa{background-position:-64px -176px}.wpforms-flag.wpforms-flag-re{background-position:-80px -176px}.wpforms-flag.wpforms-flag-ro{background-position:-96px -176px}.wpforms-flag.wpforms-flag-rs{background-position:-112px -176px}.wpforms-flag.wpforms-flag-ru{background-position:-128px -176px}.wpforms-flag.wpforms-flag-rw{background-position:-144px -176px}.wpforms-flag.wpforms-flag-sa{background-position:-160px -176px}.wpforms-flag.wpforms-flag-sb{background-position:-176px -176px}.wpforms-flag.wpforms-flag-sc{background-position:-192px -176px}.wpforms-flag.wpforms-flag-sd{background-position:-208px -176px}.wpforms-flag.wpforms-flag-se{background-position:-224px -176px}.wpforms-flag.wpforms-flag-sg{background-position:0 -192px}.wpforms-flag.wpforms-flag-si{background-position:-16px -192px}.wpforms-flag.wpforms-flag-sk{background-position:-32px -192px}.wpforms-flag.wpforms-flag-sl{background-position:-48px -192px}.wpforms-flag.wpforms-flag-sm{background-position:-64px -192px}.wpforms-flag.wpforms-flag-sn{background-position:-80px -192px}.wpforms-flag.wpforms-flag-so{background-position:-96px -192px}.wpforms-flag.wpforms-flag-sr{background-position:-112px -192px}.wpforms-flag.wpforms-flag-st{background-position:-128px -192px}.wpforms-flag.wpforms-flag-sv{background-position:-144px -192px}.wpforms-flag.wpforms-flag-sy{background-position:-160px -192px}.wpforms-flag.wpforms-flag-sz{background-position:-176px -192px}.wpforms-flag.wpforms-flag-tc{background-position:-192px -192px}.wpforms-flag.wpforms-flag-td{background-position:-208px -192px}.wpforms-flag.wpforms-flag-tg{background-position:-224px -192px}.wpforms-flag.wpforms-flag-th{background-position:0 -208px}.wpforms-flag.wpforms-flag-tj{background-position:-16px -208px}.wpforms-flag.wpforms-flag-tl{background-position:-32px -208px}.wpforms-flag.wpforms-flag-tm{background-position:-48px -208px}.wpforms-flag.wpforms-flag-tn{background-position:-64px -208px}.wpforms-flag.wpforms-flag-to{background-position:-80px -208px}.wpforms-flag.wpforms-flag-tr{background-position:-96px -208px}.wpforms-flag.wpforms-flag-tt{background-position:-112px -208px}.wpforms-flag.wpforms-flag-tv{background-position:-128px -208px}.wpforms-flag.wpforms-flag-tw{background-position:-144px -208px}.wpforms-flag.wpforms-flag-tz{background-position:-160px -208px}.wpforms-flag.wpforms-flag-ua{background-position:-176px -208px}.wpforms-flag.wpforms-flag-ug{background-position:-192px -208px}.wpforms-flag.wpforms-flag-us{background-position:-208px -208px}.wpforms-flag.wpforms-flag-uy{background-position:-224px -208px}.wpforms-flag.wpforms-flag-uz{background-position:0 -224px}.wpforms-flag.wpforms-flag-va{background-position:-16px -224px}.wpforms-flag.wpforms-flag-vc{background-position:-32px -224px}.wpforms-flag.wpforms-flag-ve{background-position:-48px -224px}.wpforms-flag.wpforms-flag-vg{background-position:-64px -224px}.wpforms-flag.wpforms-flag-vi{background-position:-80px -224px}.wpforms-flag.wpforms-flag-vn{background-position:-96px -224px}.wpforms-flag.wpforms-flag-vu{background-position:-112px -224px}.wpforms-flag.wpforms-flag-ws{background-position:-128px -224px}.wpforms-flag.wpforms-flag-ye{background-position:-144px -224px}.wpforms-flag.wpforms-flag-za{background-position:-160px -224px}.wpforms-flag.wpforms-flag-zm{background-position:-176px -224px}.wpforms-flag.wpforms-flag-zw{background-position:-192px -224px}#wpforms-header-temp{position:relative;margin:0;position:absolute;top:-1px;left:20px;right:20px;z-index:99}#wpforms-header{border-top:3px solid #e27730;padding:22px 20px}#wpforms-header img{display:block;margin:0;max-width:235px}@media (max-width: 782px){#wpforms-header img{max-width:200px}}.wpforms-admin-wrap .page-title{background-color:#fff;margin:0 0 20px 0;padding:15px 20px}.wpforms-admin-wrap .page-title .add-new-h2{margin-left:28px}.wpforms-admin-tabs{background-color:#fff;margin:0 0 20px 0;padding:0 20px;list-style:none;overflow:auto;font-size:14px}.wpforms-admin-tabs li{margin:0 30px 0 0;padding:0;float:left}.wpforms-admin-tabs li:last-of-type{margin:0}.wpforms-admin-tabs li a{color:#666;display:block;padding:20px 0 18px 0;text-decoration:none;border-bottom:2px solid #fff;box-shadow:none}.wpforms-admin-tabs li a:hover{border-color:#999}.wpforms-admin-tabs li a.active{border-color:#e27730}#wpcontent{padding-left:0 !important;position:relative}@media (max-width: 600px){#wpcontent{padding-top:46px}}@media (max-width: 600px){#wpbody{padding-top:0}}.wpforms-admin-page #screen-meta-links,.wpforms-admin-page #screen-meta{display:none}.wpforms-admin-page .video-container{position:relative;padding-bottom:56.1%;height:0;overflow:hidden}.wpforms-admin-page .video-container iframe,.wpforms-admin-page .video-container object,.wpforms-admin-page .video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.wpforms-admin-page .wpforms-file-upload input[type=file]{width:0.1px;height:0.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}.wpforms-admin-page .wpforms-file-upload label{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:inline-block;overflow:hidden;padding:0}.wpforms-admin-page .wpforms-file-upload input[type=file]:focus+label,.wpforms-admin-page .wpforms-file-upload input[type=file].has-focus+label{outline:1px dotted #000;outline:-webkit-focus-ring-color auto 5px}.wpforms-admin-page .wpforms-file-upload .fld{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}.wpforms-admin-page .wpforms-file-upload .fld .placeholder{color:#ccc}.wpforms-admin-page .wpforms-file-upload strong .fa{margin-right:8px}.wpforms-admin-page .wpforms-hide{display:none}.wpforms-admin-page .wpforms-h1-placeholder{display:none}.wpforms-admin-page .notice{display:none}.wpforms-admin-wrap{margin:0}.wpforms-admin-wrap .notice{margin-left:20px !important;margin-right:20px !important}.wpforms-admin-content{padding-left:20px;padding-right:20px}.wpforms-admin-content:before{content:" ";display:table}.wpforms-admin-content:after{clear:both;content:" ";display:table}.wpforms-clear:before{content:" ";display:table}.wpforms-clear:after{clear:both;content:" ";display:table}.wpforms-admin-columns>div[class*="-column-"]{float:left}.wpforms-admin-columns .wpforms-admin-column-20{width:20%}.wpforms-admin-columns .wpforms-admin-column-33{width:33.33333%}.wpforms-admin-columns .wpforms-admin-column-40{width:40%}.wpforms-admin-columns .wpforms-admin-column-50{width:50%}.wpforms-admin-columns .wpforms-admin-column-60{width:60%}.wpforms-admin-columns .wpforms-admin-column-80{width:80%}.wpforms-admin-columns .wpforms-admin-column-last{float:right !important}.wpforms-admin-columns:after{content:"";display:table;clear:both}#wpforms-overview .tablenav.top{margin-top:0}#wpforms-overview .wp-list-table .column-id{width:30px}#wpforms-overview .wp-list-table .column-entries{width:70px}#wpforms-overview .wp-list-table .column-shortcode{width:150px}#wpforms-overview .wp-list-table .column-created{width:145px}#wpforms-entries-single #poststuff{padding:0}#wpforms-entries-single .postbox .hndle{cursor:default !important}#wpforms-entries-single .wpforms-entry-navigation{font-size:13px;line-height:29px;float:right;position:relative;padding-top:2px;padding-right:1px;white-space:nowrap}@media (max-width: 600px){#wpforms-entries-single .wpforms-entry-navigation{display:none}}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2{top:auto;margin:0;padding:4px 0px;text-align:center}@media (max-width: 782px){#wpforms-entries-single .wpforms-entry-navigation .add-new-h2{font-size:13px}}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2 .dashicons{font-size:16px;height:auto;width:28px;line-height:29px}#wpforms-entries-single .wpforms-entry-navigation .add-new-h2.inactive{opacity:0.5;pointer-events:none;cursor:default}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-navigation-text{display:inline-block;margin-right:10px}#wpforms-entries-single .wpforms-entry-navigation .wpforms-entry-current{top:auto;margin:0 -5px 0 -3px;text-align:center;padding:4px 10px;position:relative;text-decoration:none;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px;background:#fff;font-size:13px;line-height:29px;text-transform:center}#wpforms-entries-single #wpforms-entry-fields h2.hndle{font-size:18px}#wpforms-entries-single #wpforms-entry-fields h2.hndle .dashicons{font-size:16px;height:16px;width:16px;margin:4px 4px 0 0;color:#e27730}#wpforms-entries-single #wpforms-entry-fields .no-fields{padding:12px;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside p{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-name{font-weight:600;background:#ebf3fb;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .wpforms-entry-field-value{background:#fff;padding:8px 12px}#wpforms-entries-single #wpforms-entry-fields .inside .empty .wpforms-entry-field-value{font-style:italic;color:#999}#wpforms-entries-single #wpforms-entry-fields .wpforms-empty-field-toggle{float:right;text-decoration:none;padding:5px 0 0}#wpforms-entries-single #wpforms-entry-notes .inside{margin:0;padding:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-new{padding:10px}#wpforms-entries-single #wpforms-entry-notes form{display:none}#wpforms-entries-single #wpforms-entry-notes .btns{overflow:auto;padding:8px 0}#wpforms-entries-single #wpforms-entry-notes .no-notes{margin:0;padding:4px 10px 8px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single{padding:10px;border-top:1px solid #e3e1e3}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single p:last-of-type{margin-bottom:0}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-single.even{background-color:#f9f9f9}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline{color:#888;margin-bottom:10px}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .sep{color:#ddd}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .notes-user{text-decoration:none;font-weight:600}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete{color:#a00;text-decoration:none}#wpforms-entries-single #wpforms-entry-notes .wpforms-entry-notes-byline .note-delete:hover{color:red;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .inside,#wpforms-entries-single #wpforms-entry-payment .inside,#wpforms-entries-single #wpforms-entry-actions .inside{margin:0;padding:0}#wpforms-entries-single .wpforms-entry-details-meta,#wpforms-entries-single .wpforms-entry-actions-meta{padding:6px 0 0}#wpforms-entries-single .wpforms-entry-details-meta p,#wpforms-entries-single .wpforms-entry-payment-meta p,#wpforms-entries-single .wpforms-entry-actions-meta p{padding:6px 10px 8px;margin:0}#wpforms-entries-single .wpforms-entry-payment-meta{padding:0}#wpforms-entries-single .wpforms-entry-payment-meta p{border-bottom:1px solid #eee;padding:10px}#wpforms-entries-single .wpforms-entry-payment-meta p:last-of-type{border-bottom:0}#wpforms-entries-single .wpforms-entry-details-meta strong,#wpforms-entries-single .wpforms-entry-actions-meta strong{font-weight:600}#wpforms-entries-single .wpforms-entry-details-meta .dashicons,#wpforms-entries-single .wpforms-entry-actions-meta .dashicons{padding:0 2px 0 0;color:#82878A;top:-1px;left:-1px;position:relative;text-decoration:none}#wpforms-entries-single #wpforms-entry-details .submitdelete{color:#a00;text-decoration:none;padding:1px 2px}#wpforms-entries-single #wpforms-entry-details .submitdelete:hover{color:red}#wpforms-entries-single .wpforms-entry-actions-meta a{text-decoration:none}#wpforms-entries-single .wpforms-entry-actions-meta a:hover{text-decoration:underline}#wpforms-entries-single #wpforms-entry-geolocation .inside{padding:0;margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul{margin:0}#wpforms-entries-single #wpforms-entry-geolocation ul li{border-bottom:1px solid #eee;margin:0;overflow:auto}#wpforms-entries-single #wpforms-entry-geolocation ul li:last-of-type{border-bottom:0}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-meta{width:85px;float:left;border-right:1px solid #eee;padding:10px 20px 10px 12px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-geolocation-value{display:inline-block;padding:10px 12px 10px 20px}#wpforms-entries-single #wpforms-entry-geolocation .wpforms-flag{vertical-align:text-top;margin-right:4px}#wpforms-entries-list .form-details{border-bottom:1px solid #ddd;padding-bottom:15px;margin:0 0 10px}#wpforms-entries-list .form-details .form-details-sub{color:#999;display:block;font-size:10px;text-transform:uppercase;margin:0 0 8px 0}#wpforms-entries-list .form-details .form-details-title{float:left;font-size:18px;font-weight:400;margin:0}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-title{float:none;margin-bottom:10px}}#wpforms-entries-list .form-details .form-selector{display:inline-block;position:relative}#wpforms-entries-list .form-details .form-selector .toggle{border-radius:50%;color:#444;font-size:16px;box-shadow:none}#wpforms-entries-list .form-details .form-selector .toggle:hover,#wpforms-entries-list .form-details .form-selector .toggle.active{background-color:#e3e3e3;outline:none}#wpforms-entries-list .form-details .form-selector .toggle:before{vertical-align:middle}#wpforms-entries-list .form-details .form-selector .form-list{display:none;background:#fff;border-radius:3px;box-shadow:0 2px 8px 0 rgba(0,0,0,0.1);position:absolute;top:27px;left:-108px;width:230px;padding:10px 0;z-index:9991}#wpforms-entries-list .form-details .form-selector .form-list:before{content:" ";position:absolute;top:-10px;left:110px;width:0;height:0;border-style:solid;border-width:0 8px 10px 8px;border-color:transparent transparent #fff transparent}#wpforms-entries-list .form-details .form-selector ul{max-height:196px;overflow-x:hidden;padding:0;margin:0}#wpforms-entries-list .form-details .form-selector ul li{list-style:none;margin:0;font-size:13px}#wpforms-entries-list .form-details .form-selector ul li a{display:block;text-decoration:none;padding:5px 15px;color:#444}#wpforms-entries-list .form-details .form-selector ul li a:hover{background-color:#f7f7f7}#wpforms-entries-list .form-details .form-details-actions{float:right}@media (max-width: 1199px){#wpforms-entries-list .form-details .form-details-actions{float:none}}#wpforms-entries-list .form-details .form-details-actions a{text-decoration:none;display:inline-block;margin:0 12px 0 0}#wpforms-entries-list .form-details .form-details-actions a:last-of-type{margin:0}#wpforms-entries-list .form-details .form-details-actions a .dashicons{width:16px;height:16px;font-size:16px}#wpforms-entries-list .search-box .wpforms-form-search-box-field{max-width:180px;vertical-align:top;margin:0 2px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-comparison{max-width:90px;vertical-align:top;margin:0 2px 0 0}#wpforms-entries-list .search-box .wpforms-form-search-box-term{height:28px;margin:0 2px 0 0}#wpforms-entries-list .wpforms-filter-date .wpforms-filter-date-selector{height:28px;background-color:#fff;vertical-align:middle;max-width:210px}#wpforms-entries-list .wpforms-filter-date button{margin:1px 8px 0 0;vertical-align:top}#wpforms-entries-list .wp-list-table .new-entries-notification td{padding:0;text-align:center}#wpforms-entries-list .wp-list-table .new-entries-notification td a{display:none;padding:10px;background-color:#d9edf7}#wpforms-entries-list .wp-list-table .column-indicators{width:35px;text-align:center}#wpforms-entries-list .wp-list-table .column-indicators a:focus{-webkit-box-shadow:none;box-shadow:none}#wpforms-entries-list .wp-list-table .column-indicators .dashicons{width:14px;height:14px;font-size:14px;margin-top:3px}#wpforms-entries-list .wp-list-table .indicator-star .dashicons{margin-right:6px}#wpforms-entries-list .wp-list-table .indicator-star{color:#e4e4e4}#wpforms-entries-list .wp-list-table .indicator-star:hover,#wpforms-entries-list .wp-list-table .indicator-star.unstar{color:#e27730}#wpforms-entries-list .wp-list-table .indicator-read{color:#9ede84}#wpforms-entries-list .wp-list-table .indicator-read:hover,#wpforms-entries-list .wp-list-table .indicator-read.unread{color:#e4e4e4}#wpforms-entries-list .wp-list-table .column-date{width:150px}#wpforms-entries-list .wp-list-table .column-status{width:120px}#wpforms-entries-list .wp-list-table .column-status img{display:inline-block;height:12px;width:auto;margin:0 0 0 3px}#wpforms-entries-list .wp-list-table .column-payment_total{width:100px}#wpforms-entries-list .wp-list-table .column-actions{width:100px}#wpforms-entries-list .wp-list-table .sep{color:#ddd}#wpforms-entries-list .wp-list-table .delete:hover{color:red}#wpforms-entries-list #wpforms-entries-table-edit-columns{float:right;color:#ccc}#wpforms-entries-list #wpforms-entries-table-edit-columns:hover{color:#666}@media screen and (max-width: 782px){.wpforms-admin-content{padding-left:10px;padding-right:10px}.wp-list-table{margin:0 -10px 0 -10px;width:100vw;table-layout:auto}.wp-list-table.entries .column-indicators{width:auto !important}.wp-list-table.entries .indicators .indicator-star{display:none}.wp-list-table.entries .indicators .indicator-read{display:none}.wp-list-table.entries tr:not(.inline-edit-row):not(.no-items) td.column-primary{height:8px;padding:0;z-index:+1;margin-right:0;overflow:visible}.wp-list-table.entries .toggle-row{right:5px;top:15px}.wp-list-table.entries tr:not(.inline-edit-row):not(.no-items) td.column-primary+td{display:block !important}.wp-list-table.entries tr:not(.inline-edit-row):not(.no-items) td.column-primary ~ td{margin-right:5px;min-width:50vw}p.search-box{margin:0;width:auto}input[type=checkbox],input[type=radio]{height:16px;width:16px}}#wpforms-welcome{border-top:3px solid #e27730;color:#555;padding-top:110px}@media (max-width: 767px){#wpforms-welcome{padding-top:64px}}#wpforms-welcome *,#wpforms-welcome *::before,#wpforms-welcome *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-welcome .container{margin:0 auto;max-width:720px;padding:0}#wpforms-welcome .block{padding:40px}@media (max-width: 767px){#wpforms-welcome .block{padding:20px}}#wpforms-welcome img{max-width:100%;height:auto}#wpforms-welcome h1{color:#222;font-size:24px;text-align:center;margin:0 0 16px 0}#wpforms-welcome h5{color:#222;font-size:16px;margin:0 0 8px 0}#wpforms-welcome h6{font-size:16px;font-weight:400;line-height:1.6;text-align:center;margin:0}#wpforms-welcome p{font-size:14px;margin:0 0 20px 0}#wpforms-welcome .button-wrap{max-width:590px;margin:0 auto 0 auto}#wpforms-welcome .button-wrap .left{float:left;width:50%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .left{float:none;width:100%;padding:0;margin-bottom:20px}}#wpforms-welcome .button-wrap .right{float:right;width:50%;padding-left:20px}@media (max-width: 767px){#wpforms-welcome .button-wrap .right{float:none;width:100%;padding:0}}#wpforms-welcome .intro{background-color:#fff;border:2px solid #e1e1e1;border-radius:2px;margin-bottom:30px;position:relative;padding-top:40px}#wpforms-welcome .intro .sullie{background-color:#fff;border:2px solid #e1e1e1;border-radius:50%;height:110px;width:110px;padding:18px 14px 0 14px;position:absolute;top:-58px;left:50%;margin-left:-55px}#wpforms-welcome .intro .video-thumbnail{display:block;margin:0 auto}#wpforms-welcome .intro .button-wrap{margin-top:25px}#wpforms-welcome .features{background-color:#fff;border:2px solid #e1e1e1;border-bottom:0;border-radius:2px 2px 0 0;position:relative;padding-top:20px;padding-bottom:20px}#wpforms-welcome .features .feature-list{margin-top:60px}#wpforms-welcome .features .feature-block{float:left;width:50%;padding-bottom:35px;overflow:auto}@media (max-width: 767px){#wpforms-welcome .features .feature-block{float:none;width:100%}}#wpforms-welcome .features .feature-block.first{padding-right:20px;clear:both}@media (max-width: 767px){#wpforms-welcome .features .feature-block.first{padding-right:0}}#wpforms-welcome .features .feature-block.last{padding-left:20px}@media (max-width: 767px){#wpforms-welcome .features .feature-block.last{padding-left:0}}#wpforms-welcome .features .feature-block img{float:left;max-width:46px}#wpforms-welcome .features .feature-block h5{margin-left:68px}#wpforms-welcome .features .feature-block p{margin:0;margin-left:68px}#wpforms-welcome .features .button-wrap{margin-top:25px;text-align:center}#wpforms-welcome .upgrade-cta{background-color:#000;border:2px solid #e1e1e1;border-top:0;border-bottom:0;color:#fff}#wpforms-welcome .upgrade-cta h2{color:#fff;font-size:20px;margin:0 0 30px 0}#wpforms-welcome .upgrade-cta ul{display:-ms-flex;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;font-size:15px;margin:0;padding:0}#wpforms-welcome .upgrade-cta ul li{display:block;width:50%;margin:0 0 8px 0;padding:0}#wpforms-welcome .upgrade-cta ul li .dashicons{color:#2a9b39;margin-right:5px}#wpforms-welcome .upgrade-cta .left{float:left;width:66.666666%;padding-right:20px}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .left{float:none;width:100%;padding-right:0;margin-bottom:20px}}#wpforms-welcome .upgrade-cta .right{float:right;width:33.333333%;padding:20px 0 0 20px;text-align:center}@media (max-width: 767px){#wpforms-welcome .upgrade-cta .right{float:none;width:100%;padding-left:0}}#wpforms-welcome .upgrade-cta .right h2{text-align:center;margin:0}#wpforms-welcome .upgrade-cta .right h2 span{display:inline-block;border-bottom:1px solid #555;padding:0 15px 12px}#wpforms-welcome .upgrade-cta .right .price{padding:26px 0}#wpforms-welcome .upgrade-cta .right .price .amount{font-size:48px;font-weight:600;position:relative;display:inline-block}#wpforms-welcome .upgrade-cta .right .price .amount:before{content:'$';position:absolute;top:-8px;left:-16px;font-size:18px}#wpforms-welcome .upgrade-cta .right .price .term{font-size:12px;display:inline-block}#wpforms-welcome .testimonials{background-color:#fff;border:2px solid #e1e1e1;border-top:0;padding:20px 0}#wpforms-welcome .testimonials .testimonial-block{margin:50px 0 0 0}#wpforms-welcome .testimonials .testimonial-block img{border-radius:50%;float:left;max-width:100px;box-shadow:0 0 18px rgba(0,0,0,0.2)}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block img{width:65px}}#wpforms-welcome .testimonials .testimonial-block p{font-size:14px;margin:0 0 12px 140px}@media (max-width: 767px){#wpforms-welcome .testimonials .testimonial-block p{margin-left:100px}}#wpforms-welcome .testimonials .testimonial-block p:last-of-type{margin-bottom:0}#wpforms-welcome .footer{background-color:#f1f1f1;border:2px solid #e1e1e1;border-top:0;border-radius:0 0 2px 2px}#wpforms-welcome.pro .features{border:2px solid #e1e1e1;margin-bottom:30px}#wpforms-welcome.pro .upgrade,#wpforms-welcome.pro .footer{display:none}#wpforms-welcome.pro .testimonials{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started .video-container{border:2px solid #e1e1e1}.dashboard_page_wpforms-getting-started #wpfooter,.dashboard_page_wpforms-getting-started div.notice{display:none !important}#wpforms-admin-addons *,#wpforms-admin-addons *::before,#wpforms-admin-addons *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-admin-addons .addons-container{margin-left:-20px;margin-right:-20px}#wpforms-admin-addons .unlock-msg{padding:0 20px;margin-top:-20px;clear:both}#wpforms-admin-addons #wpforms-admin-addons-search{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;vertical-align:middle;padding:7px 12px;margin:-3px 10px 0 0;width:200px;min-height:35px;float:right}#wpforms-admin-addons #wpforms-admin-addons-search:focus{border-color:#bbb}#wpforms-admin-addons .addon-container{padding:0 20px;float:left;width:33.333333%}@media (max-width: 1249px){#wpforms-admin-addons .addon-container{width:50%}}@media (max-width: 767px){#wpforms-admin-addons .addon-container{width:100%;margin-bottom:20px}}#wpforms-admin-addons h4{font-size:17px;font-weight:700}#wpforms-admin-addons .addon-item{background-color:#fff;border:1px solid #ddd;border-radius:3px;margin:0 0 40px 0}@media (max-width: 767px){#wpforms-admin-addons .addon-item{margin:0 0}}#wpforms-admin-addons .addon-item img{border:1px solid #eee;float:left;max-width:75px}#wpforms-admin-addons .addon-item h5{margin:0 0 10px 100px;font-size:16px}#wpforms-admin-addons .addon-item p{margin:0 0 0 100px}#wpforms-admin-addons .addon-item .details{padding:30px 20px}#wpforms-admin-addons .addon-item .actions{background-color:#f7f7f7;border-top:1px solid #ddd;padding:20px;position:relative}#wpforms-admin-addons .addon-item .actions .msg{background-color:#f7f7f7;position:absolute;text-align:center;font-weight:600;top:0;left:0;height:100%;width:100%;z-index:99;padding:20px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-align-items:center;-ms-align-items:center;align-items:center;justify-content:center}#wpforms-admin-addons .addon-item .actions .msg.success{color:#2a9b39}#wpforms-admin-addons .addon-item .actions .msg.error{color:red}#wpforms-admin-addons .addon-item .status{float:left;padding-top:8px}#wpforms-admin-addons .addon-item .status .status-inactive{color:red}#wpforms-admin-addons .addon-item .status .status-download{color:#666}#wpforms-admin-addons .addon-item .status .status-active{color:#2a9b39}#wpforms-admin-addons .addon-item .upgrade-button{text-align:center}#wpforms-admin-addons .addon-item .upgrade-button a{font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button{float:right}#wpforms-admin-addons .addon-item .action-button button{background:none;border:1px solid #ddd;border-radius:3px;box-shadow:none;cursor:pointer;font-weight:600;width:140px;text-align:center;padding:8px 5px}#wpforms-admin-addons .addon-item .action-button button:hover,#wpforms-admin-addons .addon-item .action-button button.loading{background-color:#e9e9e9}#wpforms-admin-addons .addon-item .action-button button .fa{margin-right:8px}#wpforms-admin-addons .addon-item .action-button button .fa.fa-spinner{margin-right:0}#wpforms-admin-addons .addon-item .action-button button.status-active .fa{color:#2a9b39}#wpforms-admin-addons .addon-item .action-button button.status-inactive .fa{color:red}#wpforms-admin-addons .addon-item .action-button button.status-download .fa{color:#999}#wpforms-admin-addons .addon-item .action-button button.disabled{cursor:default}#wpforms-admin-addons .addon-item .action-button button.loading .fa{color:#666}#wpforms-admin-about *,#wpforms-admin-about *::before,#wpforms-admin-about *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpforms-admin-about .wpforms-admin-about-section{margin:0 20px 20px;padding:30px;background:#fff;border:1px solid #DDDDDD;line-height:2}#wpforms-admin-about .wpforms-admin-about-section h1,#wpforms-admin-about .wpforms-admin-about-section h2,#wpforms-admin-about .wpforms-admin-about-section h3,#wpforms-admin-about .wpforms-admin-about-section h4,#wpforms-admin-about .wpforms-admin-about-section h5{margin-top:0;padding-top:0;line-height:1.6}#wpforms-admin-about .wpforms-admin-about-section h2{font-size:24px}#wpforms-admin-about .wpforms-admin-about-section h3{font-size:18px;margin-bottom:30px;color:#23282C}#wpforms-admin-about .wpforms-admin-about-section ul,#wpforms-admin-about .wpforms-admin-about-section p{font-size:16px}#wpforms-admin-about .wpforms-admin-about-section p{margin-bottom:20px}#wpforms-admin-about .wpforms-admin-about-section p.bigger{font-size:18px}#wpforms-admin-about .wpforms-admin-about-section p.smaller{font-size:14px}#wpforms-admin-about .wpforms-admin-about-section p:last-child{margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section hr{margin:30px 0}#wpforms-admin-about .wpforms-admin-about-section figure{margin:0}#wpforms-admin-about .wpforms-admin-about-section figure img{width:100%}#wpforms-admin-about .wpforms-admin-about-section figure figcaption{font-size:14px;color:#888888;margin-top:5px;text-align:center;line-height:initial}#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-40{padding-left:15px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-40{width:100%;padding-left:0;padding-top:20px}}#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-60{padding-right:15px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section .wpforms-admin-column-60{width:100%;padding-right:0}}#wpforms-admin-about .wpforms-admin-about-section ul.list-plain{margin-top:0;margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section ul.list-plain li{margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section ul.list-features li .fa{color:#2a9b39;margin:0 8px 0 0}#wpforms-admin-about .wpforms-admin-about-section .fa-star{color:gold}#wpforms-admin-about .wpforms-admin-about-section .no-margin{margin:0 !important}#wpforms-admin-about .wpforms-admin-about-section .no-padding{padding:0 !important}#wpforms-admin-about .wpforms-admin-about-section .centered{text-align:center !important}#wpforms-admin-about .wpforms-admin-about-section-first-form{display:flex}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-first-form{display:block !important}}#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-text{flex:1;padding-right:30px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-text{flex:none}}#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-video iframe{border:1px solid #DDDDDD}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-first-form .wpforms-admin-about-section-first-form-video{padding-top:20px}}#wpforms-admin-about .wpforms-admin-about-section-hero{padding:0}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main,#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-extra{padding:30px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-extra .wpforms-admin-column-50{float:none;width:100%}}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main{background-color:#FAFAFA;border-bottom:1px solid #DDDDDD}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main.no-border{border-bottom:0}#wpforms-admin-about .wpforms-admin-about-section-hero .wpforms-admin-about-section-hero-main p{color:#666}#wpforms-admin-about .wpforms-admin-about-section-hero h3.call-to-action{margin-bottom:-10px}#wpforms-admin-about .wpforms-admin-about-section-hero span.price-20-off{color:#6AB255}#wpforms-admin-about .wpforms-admin-about-section-squashed{margin-bottom:0}#wpforms-admin-about .wpforms-admin-about-section-squashed:not(:last-of-type){border-bottom:0}#wpforms-admin-about .wpforms-admin-about-section-post h2{margin-bottom:-10px}#wpforms-admin-about .wpforms-admin-about-section-post h3{margin-bottom:15px}#wpforms-admin-about .wpforms-admin-about-section-post p:last-of-type{margin-bottom:30px}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20{padding-right:20px;width:auto}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20 img{width:270px}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20{width:20%}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-20 img{width:auto;max-width:100%}}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-80{padding-left:20px;width:calc(100% - 20px - 270px)}@media (max-width: 767px){#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-column-80{width:80%}}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-about-section-post-link{padding:10px 15px;background-color:#DF7739;color:#fff;border-radius:3px;text-decoration:none;margin-top:15px;font-size:14px}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-about-section-post-link:hover{background-color:#B85A1B}#wpforms-admin-about .wpforms-admin-about-section-post .wpforms-admin-about-section-post-link .fa{color:#EDBA9E;vertical-align:middle;margin-left:8px}#wpforms-admin-about .wpforms-admin-about-section-table table{border-collapse:collapse}#wpforms-admin-about .wpforms-admin-about-section-table table tr td{border-bottom:1px solid #DDDDDD;border-right:1px solid #DDDDDD;padding:30px;vertical-align:top}#wpforms-admin-about .wpforms-admin-about-section-table table tr td:last-of-type{border-right:0}#wpforms-admin-about .wpforms-admin-about-section-table table tr:last-child td{border-bottom:none}#wpforms-admin-about .wpforms-admin-about-section-table table p{background-repeat:no-repeat;background-size:15px auto;background-position:0 6px;margin:0}#wpforms-admin-about .wpforms-admin-about-section-table table p.features-full{padding-left:30px;background-image:url(../images/about/icon-full.svg)}#wpforms-admin-about .wpforms-admin-about-section-table table p.features-none{padding-left:30px;background-image:url(../images/about/icon-none.svg)}#wpforms-admin-about .wpforms-admin-about-section-table table p.features-partial{padding-left:30px;background-position:-3px 0;background-size:23px auto;background-image:url(../images/about/icon-partial.svg)}#wpforms-admin-about .wpforms-admin-about-section-table .wpforms-admin-about-section-hero-main{padding:0}#wpforms-admin-about .wpforms-admin-about-section-table .wpforms-admin-about-section-hero-main h3{padding:30px 30px 30px 60px}#wpforms-admin-about .wpforms-admin-about-section-table .wpforms-admin-about-section-hero-main .wpforms-admin-column-33:first-child h3{padding:30px}#wpforms-admin-about #wpforms-admin-addons{padding:0 30px}#wpforms-admin-about #wpforms-admin-addons .addon-container{padding:0 10px}#wpforms-admin-about #wpforms-admin-addons .addon-item .details{padding:20px}#wpforms-admin-about #wpforms-admin-addons .addon-item img{padding:10px}#wpforms-admin-about #wpforms-admin-addons .addon-item img[src*="-mi"]{padding:13px}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button{display:inline-block;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0 10px 1px;cursor:pointer;-webkit-appearance:none;border-radius:3px;border:1px solid #cccccc;background:#f7f7f7;box-shadow:0 1px 0 #cccccc;font-weight:normal}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button:hover,#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button:focus{background:#fafafa;border-color:#999;color:#23282d}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-primary{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-shadow:0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-primary:hover,#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-primary:focus{background:#008ec2;border-color:#006799;color:#fff}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-primary .fa-spinner{color:#fff}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-secondary{color:#555;border-color:#cccccc;background:#f7f7f7;box-shadow:0 1px 0 #cccccc}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-secondary:hover,#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.button-secondary:focus{background:#fafafa;border-color:#999;color:#23282d}#wpforms-admin-about #wpforms-admin-addons .addon-item .action-button .button.disabled{cursor:default}.wpforms-admin-settings *,.wpforms-admin-settings *::before,.wpforms-admin-settings *::after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpforms-admin-settings .wpforms-setting-row{border-bottom:1px solid #e4e4e4;padding:30px 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row:first-of-type{padding-top:10px !important}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-row{padding:20px 0}}.wpforms-admin-settings .wpforms-setting-row.section-heading{padding:20px 0}.wpforms-admin-settings .wpforms-setting-row.section-heading.no-desc h4{margin:0}.wpforms-admin-settings .wpforms-setting-row.section-heading .wpforms-setting-field{margin:0;max-width:1000px}.wpforms-admin-settings .wpforms-setting-row.tools p,.wpforms-admin-settings .wpforms-setting-row.tools p:first-of-type{margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox input[type=checkbox]{float:left;margin:1px 0 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-checkbox .desc{margin:0 0 0 30px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-license p.type{margin-top:12px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-text .wpforms-setting-label,.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-number .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-select .wpforms-setting-label{padding-top:8px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field input[type=radio]{margin:-3px 10px 0 0}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-radio .wpforms-setting-field label{margin-right:30px;display:inline-block}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field label:before{content:" ";display:block;width:155px;height:180px;margin:0 0 10px 0}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-default:before{background:url(../images/settings-email-html.png) center center}.wpforms-admin-settings .wpforms-setting-row#wpforms-setting-row-email-template .wpforms-setting-field .option-none:before{background:url(../images/settings-email-plaintext.png) center center}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-image .wpforms-setting-field img{display:block;margin:0 0 20px 0;max-width:400px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .wpforms-color-picker{padding-left:40px}.wpforms-admin-settings .wpforms-setting-row.wpforms-setting-row-color .minicolors-input-swatch{top:7px;left:7px;height:21px;width:21px;border-radius:2px}.wpforms-admin-settings .wpforms-setting-row h4{font-size:20px;font-weight:700;margin:0 0 6px 0}.wpforms-admin-settings .wpforms-setting-row h3{font-size:24px;font-weight:600;margin:0 0 20px 0}.wpforms-admin-settings .wpforms-setting-row p{margin:12px 0 0;font-size:14px;line-height:1.3}.wpforms-admin-settings .wpforms-setting-row p:first-of-type{margin:8px 0 0}.wpforms-admin-settings .wpforms-setting-row p.desc{font-style:italic;color:#666}.wpforms-admin-settings .wpforms-setting-row p.discount-note{font-style:italic;color:#666}.wpforms-admin-settings .wpforms-setting-row p.discount-note strong{color:green}.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=number],.wpforms-admin-settings .wpforms-setting-row input[type=password]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:inline-block;vertical-align:middle;padding:7px 12px;margin:0 10px 0 0;width:400px;min-height:35px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row input[type=text],.wpforms-admin-settings .wpforms-setting-row input[type=number],.wpforms-admin-settings .wpforms-setting-row input[type=password]{width:300px}}.wpforms-admin-settings .wpforms-setting-row input[type=text]:focus,.wpforms-admin-settings .wpforms-setting-row input[type=number]:focus,.wpforms-admin-settings .wpforms-setting-row input[type=password]:focus{border-color:#bbb}.wpforms-admin-settings .wpforms-setting-row input[type=number]{width:100px}.wpforms-admin-settings .wpforms-setting-row button{margin-right:10px}.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{display:block;max-width:400px}@media (max-width: 959px){.wpforms-admin-settings .wpforms-setting-row .choicesjs-select-wrap{width:300px}}.wpforms-admin-settings .wpforms-setting-row .progress-bar{background:#fff;border:1px solid #e27730;height:30px;width:100%;position:relative;border-radius:3px;margin:0 0 16px 0}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete{border:1px solid #2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar{background-color:#2a9b39}.wpforms-admin-settings .wpforms-setting-row .progress-bar.complete .bar:after{content:none;display:none}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar{display:block;background:#e27730;height:100%;left:0;position:absolute;-webkit-transition:width 0.5s ease-in-out;-moz-transition:width 0.5s ease-in-out;-o-transition:width 0.5s ease-in-out;transition:width 0.5s ease-in-out}@-webkit-keyframes progress{to{background-position:60px 0}}@-moz-keyframes progress{to{background-position:60px 0}}@keyframes progress{to{background-position:60px 0}}.wpforms-admin-settings .wpforms-setting-row .progress-bar .bar:after{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-animation:progress 1s linear infinite;-moz-animation:progress 1s linear infinite;animation:progress 1s linear infinite;background-repeat:repeat-x;background-size:60px 60px;background-image:-webkit-linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, transparent 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.wpforms-admin-settings .wpforms-setting-label{display:block;float:left;width:200px;padding:0}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-label{float:none;width:100%;padding-bottom:15px}}.wpforms-admin-settings .wpforms-setting-label label{display:block;font-weight:600}.wpforms-admin-settings .wpforms-setting-field{display:block;margin:0 0 0 200px;max-width:800px}@media (max-width: 781px){.wpforms-admin-settings .wpforms-setting-field{margin:0}}.wpforms-admin-settings p.submit{margin:0;padding:25px 0}.wpforms-admin-settings .info-area,.wpforms-admin-settings .pre-error{display:block;width:100%;max-width:1000px;height:450px;font-family:Menlo,Monaco,monospace;font-size:12px;background:#fff;box-shadow:none;border:1px solid #ddd;white-space:pre;overflow:auto;padding:20px}.wpforms-admin-settings .pre-error{height:auto;max-height:250px;margin-bottom:20px}.wpforms-admin-settings .checkbox-multiselect-columns{max-width:600px;position:relative}.wpforms-admin-settings .checkbox-multiselect-columns:after{content:".";display:block;height:0;line-height:0;font-size:0;clear:both;min-height:0;visibility:hidden}.wpforms-admin-settings .checkbox-multiselect-columns:before{content:"\f0ec";color:#999;font:normal normal normal 20px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:130px;left:50%;margin:0 0 0 -10px}.wpforms-admin-settings .checkbox-multiselect-columns .header{font-weight:600;font-size:13px;margin:0;padding:0 0 5px 0;text-align:center}.wpforms-admin-settings .checkbox-multiselect-columns .first-column,.wpforms-admin-settings .checkbox-multiselect-columns .second-column{width:45%;float:left}.wpforms-admin-settings .checkbox-multiselect-columns .second-column{float:right}.wpforms-admin-settings .checkbox-multiselect-columns .second-column ul li{padding:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul{background-color:#fff;border:1px solid #ddd;border-radius:3px;position:relative;height:250px;padding:0;overflow-y:auto;margin:0;list-style-type:none}.wpforms-admin-settings .checkbox-multiselect-columns ul li{border-bottom:1px #eee solid;margin:0;font-size:14px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label{display:block;padding:10px 10px 10px 32px;position:relative;vertical-align:baseline}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:hover{background-color:#e27730;color:#fff}.wpforms-admin-settings .checkbox-multiselect-columns ul li label:before{content:"\f0c8";color:#ddd;font:normal normal normal 16px/1 FontAwesome;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:12px;left:10px}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked{opacity:0.6}.wpforms-admin-settings .checkbox-multiselect-columns ul li label.checked:before{content:"\f14a";color:#2a9b39}.wpforms-admin-settings .checkbox-multiselect-columns ul li input{display:none}.wpforms-admin-settings .checkbox-multiselect-columns .all{color:#999;display:inline-block;font-size:13px;margin:10px 0 0}.wpforms-admin-settings #wpforms-importer-analyze{display:none}.wpforms-admin-settings #wpforms-importer-analyze .process-count,.wpforms-admin-settings #wpforms-importer-analyze p{font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade{display:none;font-size:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade h5{font-size:18px;font-weight:600;padding:0;margin:30px 0 20px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade hr{border:none;border-bottom:1px solid #e4e4e4;margin:40px 0}.wpforms-admin-settings #wpforms-importer-analyze .upgrade .wpforms-btn{margin-right:10px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li{list-style-type:disc;margin-left:14px}.wpforms-admin-settings #wpforms-importer-analyze .upgrade ul li.form{list-style-type:none;margin-left:0;font-weight:700}.wpforms-admin-settings #wpforms-importer-process{display:none}.wpforms-admin-settings #wpforms-importer-process .process-count,.wpforms-admin-settings #wpforms-importer-process .process-completed{font-size:14px}.wpforms-admin-settings #wpforms-importer-process .process-completed{display:none}.wpforms-admin-settings #wpforms-importer-process .status{margin:20px 0 30px;background-color:#fff;border-radius:3px;border:1px solid #ddd;max-height:800px;overflow-y:scroll;display:none}.wpforms-admin-settings #wpforms-importer-process .status .item{border-bottom:1px solid #ddd;padding:20px}.wpforms-admin-settings #wpforms-importer-process .status .item:last-of-type{border:none}.wpforms-admin-settings #wpforms-importer-process .status .item p{font-size:13px;margin:12px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item ul{font-size:13px;margin:12px 0 0 16px}.wpforms-admin-settings #wpforms-importer-process .status .item ul li{list-style:disc}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon{display:inline-block;margin:0 10px 0 0}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-info-circle{color:#00a0d2}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-check{color:#46b450}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-triangle{color:#ffb900}.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-times,.wpforms-admin-settings #wpforms-importer-process .status .item .status-icon.fa-exclamation-circle{color:red}.wpforms-admin-settings #wpforms-importer-process .status .item .name{font-size:14px;float:left}.wpforms-admin-settings #wpforms-importer-process .status .item .actions{font-size:14px;float:right}.wpforms-admin-settings #wpforms-importer-process .status .item .actions .sep{color:#ddd}.wpforms-admin-settings .settings-lite-cta{background-color:#fff;border:1px solid #dadada;padding:25px 20px;margin:10px 0 0 0;position:relative}.wpforms-admin-settings .settings-lite-cta .dismiss{position:absolute;top:10px;right:10px;color:#666;font-size:16px}.wpforms-admin-settings .settings-lite-cta h5{margin:0 0 16px;font-size:18px;font-weight:700}.wpforms-admin-settings .settings-lite-cta h6{font-weight:700;font-size:14px;margin:0 0 16px}.wpforms-admin-settings .settings-lite-cta p{color:#555;font-size:14px;margin:0 0 16px}.wpforms-admin-settings .settings-lite-cta p:last-of-type{margin:0}.wpforms-admin-settings .settings-lite-cta p a{color:#e27730}.wpforms-admin-settings .settings-lite-cta p a:hover{color:#b85a1b}.wpforms-admin-settings .settings-lite-cta ul{margin:0;padding:0;width:50%;float:left}@media (max-width: 600px){.wpforms-admin-settings .settings-lite-cta ul{width:100%;float:none}}.wpforms-admin-settings .settings-lite-cta ul li{margin:0;padding:0 0 2px 16px;color:#555;font-size:14px;position:relative}.wpforms-admin-settings .settings-lite-cta ul li:before{content:'+';position:absolute;top:-1px;left:0}.wpforms-admin-settings .settings-lite-cta .list{margin:0 0 16px 0;overflow:auto;max-width:900px}.wpforms-admin-settings .settings-lite-cta .green{color:#218900;font-weight:700}.wpforms-admin-settings .settings-lite-cta .fa-star{color:#ff982d}#wpforms-settings-providers .wpforms-settings-provider{border-bottom:1px solid #ddd;padding:30px 0}#wpforms-settings-providers .wpforms-settings-provider.focus-out{opacity:0.4}#wpforms-settings-providers .wpforms-settings-provider-header{cursor:pointer;max-width:1000px}#wpforms-settings-providers .wpforms-settings-provider-logo{float:left;position:relative}#wpforms-settings-providers .wpforms-settings-provider-logo .fa{position:absolute;top:50%;margin:-9px 0 0 0;left:10px;color:#666;font-size:18px}#wpforms-settings-providers .wpforms-settings-provider-logo img{background:#fff;border:1px solid #ddd;max-width:90px;display:block;margin:0 0 0 40px}#wpforms-settings-providers .wpforms-settings-provider-info{margin:0 0 0 160px;position:relative;padding:20px 0 0}#wpforms-settings-providers .wpforms-settings-provider-info h3{margin:0 0 10px 0;font-size:20px;font-weight:600}#wpforms-settings-providers .wpforms-settings-provider-info p{margin:0;font-size:14px}#wpforms-settings-providers .wpforms-settings-provider-info .connected-indicator{color:#83c11f;width:135px;border:1px solid #83c11f;border-radius:4px;padding:8px 14px;font-size:16px;position:absolute;top:28px;right:0;display:none}#wpforms-settings-providers .connected .wpforms-settings-provider-info .connected-indicator{display:block}#wpforms-settings-providers .wpforms-settings-provider-accounts{margin:0 0 0 160px;display:none;max-width:840px}#wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts{display:block}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul{padding:0;margin:0}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li{border-bottom:1px solid #ddd;margin:0;padding:10px 0;font-size:14px}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:first-of-type{border-top:1px solid #ddd}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul li:last-of-type{margin-bottom:16px}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.label{float:left;width:50%}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.date{color:#999;float:left;width:35%}#wpforms-settings-providers .wpforms-settings-provider-accounts-list ul span.remove{float:right;width:15%;text-align:right}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect{display:none;padding:20px;background-color:#ebf3fb;border:1px solid #0e6cad}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]{background-color:#fff;border:1px solid #ddd;border-radius:3px;box-shadow:none;color:#333;display:block;padding:7px 12px;margin:5px 0;width:400px;min-height:35px}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect input[type=text]:focus{border-color:#bbb}#wpforms-settings-providers .focus-in .wpforms-settings-provider-accounts-connect{display:block}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect .fa{display:none}#wpforms-settings-providers .wpforms-settings-provider-accounts-connect p,#wpforms-settings-providers .wpforms-settings-provider-accounts p{margin:0 0 15px 0;font-size:14px}
|
assets/css/wpforms-base.css
CHANGED
@@ -364,6 +364,10 @@
|
|
364 |
vertical-align: baseline;
|
365 |
}
|
366 |
|
|
|
|
|
|
|
|
|
367 |
|
368 |
/* Errors, Warnings, etc
|
369 |
----------------------------------------------------------------------------- */
|
@@ -380,8 +384,11 @@
|
|
380 |
}
|
381 |
|
382 |
.wpforms-container .wpforms-field input.wpforms-error,
|
|
|
383 |
.wpforms-container .wpforms-field textarea.wpforms-error,
|
384 |
-
.wpforms-container .wpforms-field
|
|
|
|
|
385 |
border: 1px solid #cc0000;
|
386 |
}
|
387 |
|
@@ -434,6 +441,10 @@
|
|
434 |
.wpforms-container button[type=submit] {
|
435 |
}
|
436 |
|
|
|
|
|
|
|
|
|
437 |
|
438 |
/* Date/time field
|
439 |
----------------------------------------------------------------------------- */
|
@@ -486,7 +497,7 @@
|
|
486 |
}
|
487 |
|
488 |
.wpforms-container .wpforms-image-choices-modern img {
|
489 |
-
display: inline;
|
490 |
margin: 0 auto;
|
491 |
max-width: 100%;
|
492 |
}
|
@@ -553,7 +564,7 @@
|
|
553 |
}
|
554 |
|
555 |
.wpforms-container .wpforms-image-choices-classic img {
|
556 |
-
display: inline;
|
557 |
margin: 0 auto;
|
558 |
max-width: 100%;
|
559 |
}
|
@@ -853,6 +864,15 @@ div.wpforms-container-full .wpforms-notice.wpforms-error .wpforms-notice-action:
|
|
853 |
word-wrap: normal !important;
|
854 |
}
|
855 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
856 |
|
857 |
/* Media Queries
|
858 |
----------------------------------------------------------------------------- */
|
364 |
vertical-align: baseline;
|
365 |
}
|
366 |
|
367 |
+
.wpforms-container amp-img > img {
|
368 |
+
position: absolute; /* Override position:static from previous rule, to prevent breaking AMP layout. */
|
369 |
+
}
|
370 |
+
|
371 |
|
372 |
/* Errors, Warnings, etc
|
373 |
----------------------------------------------------------------------------- */
|
384 |
}
|
385 |
|
386 |
.wpforms-container .wpforms-field input.wpforms-error,
|
387 |
+
.wpforms-container .wpforms-field input.user-invalid,
|
388 |
.wpforms-container .wpforms-field textarea.wpforms-error,
|
389 |
+
.wpforms-container .wpforms-field textarea.user-invalid,
|
390 |
+
.wpforms-container .wpforms-field select.wpforms-error,
|
391 |
+
.wpforms-container .wpforms-field select.user-invalid {
|
392 |
border: 1px solid #cc0000;
|
393 |
}
|
394 |
|
441 |
.wpforms-container button[type=submit] {
|
442 |
}
|
443 |
|
444 |
+
.wpforms-container .wpforms-submit-spinner {
|
445 |
+
margin-left: 0.5em;
|
446 |
+
}
|
447 |
+
|
448 |
|
449 |
/* Date/time field
|
450 |
----------------------------------------------------------------------------- */
|
497 |
}
|
498 |
|
499 |
.wpforms-container .wpforms-image-choices-modern img {
|
500 |
+
display: inline-block;
|
501 |
margin: 0 auto;
|
502 |
max-width: 100%;
|
503 |
}
|
564 |
}
|
565 |
|
566 |
.wpforms-container .wpforms-image-choices-classic img {
|
567 |
+
display: inline-block;
|
568 |
margin: 0 auto;
|
569 |
max-width: 100%;
|
570 |
}
|
864 |
word-wrap: normal !important;
|
865 |
}
|
866 |
|
867 |
+
/*
|
868 |
+
* Hide the form fields upon successful submission. This may not be the best approach.
|
869 |
+
* Perhaps more robust: .wpforms-form.amp-form-submit-success > *:not([submit-success]) { display:none }
|
870 |
+
*/
|
871 |
+
.amp-form-submit-success .wpforms-field-container,
|
872 |
+
.amp-form-submit-success .wpforms-submit-container {
|
873 |
+
display: none;
|
874 |
+
}
|
875 |
+
|
876 |
|
877 |
/* Media Queries
|
878 |
----------------------------------------------------------------------------- */
|
assets/css/wpforms-full.css
CHANGED
@@ -50,6 +50,10 @@ div.wpforms-container-full .wpforms-form * {
|
|
50 |
box-shadow:none;
|
51 |
}
|
52 |
|
|
|
|
|
|
|
|
|
53 |
div.wpforms-container-full .wpforms-form input,
|
54 |
div.wpforms-container-full .wpforms-form label,
|
55 |
div.wpforms-container-full .wpforms-form select,
|
@@ -496,11 +500,14 @@ div.wpforms-container-full .wpforms-form .wpforms-page-button {
|
|
496 |
}
|
497 |
|
498 |
div.wpforms-container-full .wpforms-form input[type=submit]:hover,
|
|
|
499 |
div.wpforms-container-full .wpforms-form input[type=submit]:active,
|
500 |
div.wpforms-container-full .wpforms-form button[type=submit]:hover,
|
|
|
501 |
div.wpforms-container-full .wpforms-form button[type=submit]:active,
|
502 |
div.wpforms-container-full .wpforms-form .wpforms-page-button:hover,
|
503 |
-
div.wpforms-container-full .wpforms-form .wpforms-page-button:active
|
|
|
504 |
background-color: #ddd;
|
505 |
border: 1px solid #ccc;
|
506 |
cursor: pointer;
|
@@ -546,8 +553,11 @@ div.wpforms-container-full .wpforms-form label.wpforms-error {
|
|
546 |
}
|
547 |
|
548 |
div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error,
|
|
|
549 |
div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error,
|
550 |
-
div.wpforms-container-full .wpforms-form .wpforms-field
|
|
|
|
|
551 |
border: 1px solid #cc0000;
|
552 |
}
|
553 |
|
@@ -570,18 +580,40 @@ div.wpforms-container-full .wpforms-form .wpforms-error-alert {
|
|
570 |
/* Confirmation
|
571 |
----------------------------------------------------------------------------- */
|
572 |
|
573 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
574 |
color: #333;
|
575 |
margin: 0 0 24px 0;
|
|
|
|
|
|
|
|
|
|
|
576 |
background: #e0ffc7;
|
577 |
border: 1px solid #b4d39b;
|
578 |
-
padding: 15px 15px;
|
579 |
}
|
580 |
|
581 |
-
.wpforms-confirmation-container-full p:last-of-type
|
|
|
582 |
margin: 0;
|
583 |
}
|
584 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
585 |
|
586 |
/* reCAPTCHA Area
|
587 |
----------------------------------------------------------------------------- */
|
@@ -621,6 +653,13 @@ div.wpforms-container-full .wpforms-form .wpforms-submit-container {
|
|
621 |
div.wpforms-container-full .wpforms-form button[type=submit] {
|
622 |
}
|
623 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
624 |
div.wpforms-container-full .wpforms-form .wpforms-pagebreak-center {
|
625 |
text-align: center;
|
626 |
}
|
@@ -789,7 +828,7 @@ div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-image-c
|
|
789 |
}
|
790 |
|
791 |
div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern img {
|
792 |
-
display: inline;
|
793 |
margin: 0 auto;
|
794 |
max-width: 100%;
|
795 |
}
|
@@ -806,7 +845,8 @@ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label {
|
|
806 |
text-align: center;
|
807 |
}
|
808 |
|
809 |
-
div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:hover
|
|
|
810 |
border:1px solid #ddd;
|
811 |
}
|
812 |
|
@@ -855,7 +895,7 @@ div.wpforms-container-full .wpforms-form .wpforms-list-inline ul.wpforms-image-c
|
|
855 |
}
|
856 |
|
857 |
div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic img {
|
858 |
-
display: inline;
|
859 |
margin: 0 auto;
|
860 |
max-width: 100%;
|
861 |
}
|
@@ -870,7 +910,8 @@ div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label
|
|
870 |
text-align: center;
|
871 |
}
|
872 |
|
873 |
-
div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:hover
|
|
|
874 |
border-color: #ddd;
|
875 |
}
|
876 |
|
@@ -1162,7 +1203,6 @@ div.wpforms-container-full .wpforms-form .wpforms-screen-reader-element {
|
|
1162 |
word-wrap: normal !important;
|
1163 |
}
|
1164 |
|
1165 |
-
|
1166 |
/* Media Queries
|
1167 |
----------------------------------------------------------------------------- */
|
1168 |
|
@@ -1280,4 +1320,4 @@ div.components-panel__body .wpforms-gutenberg-panel-notice {
|
|
1280 |
border: 1px solid #bce8f1;
|
1281 |
color: #31708f;
|
1282 |
padding: 10px;
|
1283 |
-
}
|
50 |
box-shadow:none;
|
51 |
}
|
52 |
|
53 |
+
div.wpforms-container-full .wpforms-form amp-img > img {
|
54 |
+
position: absolute; /* Override position:static from previous rule, to prevent breaking AMP layout. */
|
55 |
+
}
|
56 |
+
|
57 |
div.wpforms-container-full .wpforms-form input,
|
58 |
div.wpforms-container-full .wpforms-form label,
|
59 |
div.wpforms-container-full .wpforms-form select,
|
500 |
}
|
501 |
|
502 |
div.wpforms-container-full .wpforms-form input[type=submit]:hover,
|
503 |
+
div.wpforms-container-full .wpforms-form input[type=submit]:focus,
|
504 |
div.wpforms-container-full .wpforms-form input[type=submit]:active,
|
505 |
div.wpforms-container-full .wpforms-form button[type=submit]:hover,
|
506 |
+
div.wpforms-container-full .wpforms-form button[type=submit]:focus,
|
507 |
div.wpforms-container-full .wpforms-form button[type=submit]:active,
|
508 |
div.wpforms-container-full .wpforms-form .wpforms-page-button:hover,
|
509 |
+
div.wpforms-container-full .wpforms-form .wpforms-page-button:active,
|
510 |
+
div.wpforms-container-full .wpforms-form .wpforms-page-button:focus {
|
511 |
background-color: #ddd;
|
512 |
border: 1px solid #ccc;
|
513 |
cursor: pointer;
|
553 |
}
|
554 |
|
555 |
div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error,
|
556 |
+
div.wpforms-container-full .wpforms-form .wpforms-field input.user-invalid,
|
557 |
div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error,
|
558 |
+
div.wpforms-container-full .wpforms-form .wpforms-field textarea.user-invalid,
|
559 |
+
div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error,
|
560 |
+
div.wpforms-container-full .wpforms-form .wpforms-field select.user-invalid {
|
561 |
border: 1px solid #cc0000;
|
562 |
}
|
563 |
|
580 |
/* Confirmation
|
581 |
----------------------------------------------------------------------------- */
|
582 |
|
583 |
+
/*
|
584 |
+
* Note: The second selector for the following two rules is needed to override the rule with
|
585 |
+
* the selector: `div.wpforms-container-full, div.wpforms-container-full .wpforms-form *`.
|
586 |
+
* The underlying cause is that the .wpforms-confirmation-container-full is not expected
|
587 |
+
* to be located inside of the .wpforms-confirmation-container-full element, since on non-AMP
|
588 |
+
* pages the confirmation message is never displayed on the same page as the form.
|
589 |
+
*/
|
590 |
+
.wpforms-confirmation-container-full,
|
591 |
+
div[submit-success] > .wpforms-confirmation-container-full {
|
592 |
color: #333;
|
593 |
margin: 0 0 24px 0;
|
594 |
+
padding: 15px 15px;
|
595 |
+
}
|
596 |
+
|
597 |
+
.wpforms-confirmation-container-full,
|
598 |
+
div[submit-success] > .wpforms-confirmation-container-full:not(.wpforms-redirection-message) {
|
599 |
background: #e0ffc7;
|
600 |
border: 1px solid #b4d39b;
|
|
|
601 |
}
|
602 |
|
603 |
+
.wpforms-confirmation-container-full p:last-of-type,
|
604 |
+
div[submit-success] > .wpforms-confirmation-container-full p:last-of-type {
|
605 |
margin: 0;
|
606 |
}
|
607 |
|
608 |
+
/*
|
609 |
+
* Hide the form fields upon successful submission. This may not be the best approach.
|
610 |
+
* Perhaps more robust: .wpforms-form.amp-form-submit-success > *:not([submit-success]) { display:none }
|
611 |
+
*/
|
612 |
+
.amp-form-submit-success .wpforms-field-container,
|
613 |
+
.amp-form-submit-success .wpforms-submit-container {
|
614 |
+
display: none;
|
615 |
+
}
|
616 |
+
|
617 |
|
618 |
/* reCAPTCHA Area
|
619 |
----------------------------------------------------------------------------- */
|
653 |
div.wpforms-container-full .wpforms-form button[type=submit] {
|
654 |
}
|
655 |
|
656 |
+
div.wpforms-container-full .wpforms-form .wpforms-submit-spinner {
|
657 |
+
margin-left: 0.5em;
|
658 |
+
display: inline-block;
|
659 |
+
vertical-align: middle;
|
660 |
+
max-width: 26px;
|
661 |
+
}
|
662 |
+
|
663 |
div.wpforms-container-full .wpforms-form .wpforms-pagebreak-center {
|
664 |
text-align: center;
|
665 |
}
|
828 |
}
|
829 |
|
830 |
div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern img {
|
831 |
+
display: inline-block;
|
832 |
margin: 0 auto;
|
833 |
max-width: 100%;
|
834 |
}
|
845 |
text-align: center;
|
846 |
}
|
847 |
|
848 |
+
div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:hover,
|
849 |
+
div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-modern label:focus {
|
850 |
border:1px solid #ddd;
|
851 |
}
|
852 |
|
895 |
}
|
896 |
|
897 |
div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic img {
|
898 |
+
display: inline-block;
|
899 |
margin: 0 auto;
|
900 |
max-width: 100%;
|
901 |
}
|
910 |
text-align: center;
|
911 |
}
|
912 |
|
913 |
+
div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:hover,
|
914 |
+
div.wpforms-container-full .wpforms-form ul.wpforms-image-choices-classic label:focus {
|
915 |
border-color: #ddd;
|
916 |
}
|
917 |
|
1203 |
word-wrap: normal !important;
|
1204 |
}
|
1205 |
|
|
|
1206 |
/* Media Queries
|
1207 |
----------------------------------------------------------------------------- */
|
1208 |
|
1320 |
border: 1px solid #bce8f1;
|
1321 |
color: #31708f;
|
1322 |
padding: 10px;
|
1323 |
+
}
|
assets/images/addon-icon-form-pages.png
ADDED
Binary file
|
assets/images/addon-icons-locker.png
ADDED
Binary file
|
assets/images/submit-spin.svg
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" stroke="currentColor" width="30" height="30">
|
2 |
+
<g fill="none" fill-rule="evenodd">
|
3 |
+
<g transform="translate(1 1)" stroke-width="5">
|
4 |
+
<circle stroke-opacity=".4" cx="24" cy="24" r="22.2"/>
|
5 |
+
<path d="M46.2,24c0-12.2-9.9-22.2-22.2-22.2">
|
6 |
+
<animateTransform accumulate="none" additive="replace" attributeName="transform" calcMode="linear" dur="1s" fill="remove" from="0 24 24" repeatCount="indefinite" restart="always" to="360 24 24" type="rotate">
|
7 |
+
</animateTransform>
|
8 |
+
</path>
|
9 |
+
</g>
|
10 |
+
</g>
|
11 |
+
</svg>
|
assets/js/admin-builder-providers.js
CHANGED
@@ -1,14 +1,14 @@
|
|
1 |
-
/* global wpforms_builder_providers, wpforms_builder, jQuery */
|
2 |
|
3 |
-
|
4 |
|
5 |
var s;
|
6 |
|
7 |
var WPFormsProviders = {
|
8 |
|
9 |
settings: {
|
10 |
-
form : $('#wpforms-builder-form'),
|
11 |
-
spinner: '<i class="fa fa-circle-o-notch fa-spin wpforms-button-icon" />'
|
12 |
},
|
13 |
|
14 |
/**
|
@@ -20,7 +20,7 @@
|
|
20 |
s = this.settings;
|
21 |
|
22 |
// Document ready.
|
23 |
-
$(document).ready(WPFormsProviders.ready);
|
24 |
|
25 |
WPFormsProviders.bindUIActions();
|
26 |
},
|
@@ -33,7 +33,7 @@
|
|
33 |
ready: function() {
|
34 |
|
35 |
// Setup/cache some vars not available before.
|
36 |
-
s.formID = $('#wpforms-builder-form').data('id');
|
37 |
},
|
38 |
|
39 |
/**
|
@@ -44,38 +44,39 @@
|
|
44 |
bindUIActions: function() {
|
45 |
|
46 |
// Delete connection.
|
47 |
-
$(document).on('click', '.wpforms-provider-connection-delete', function(e) {
|
48 |
-
WPFormsProviders.connectionDelete(this, e);
|
49 |
-
});
|
50 |
|
51 |
// Add new connection.
|
52 |
-
$(document).on('click', '.wpforms-provider-connections-add', function(e) {
|
53 |
-
WPFormsProviders.connectionAdd(this, e);
|
54 |
-
});
|
55 |
|
56 |
// Add new provider account.
|
57 |
-
$(document).on('click', '.wpforms-provider-account-add button', function(e) {
|
58 |
-
WPFormsProviders.accountAdd(this, e);
|
59 |
-
});
|
60 |
|
61 |
// Select provider account.
|
62 |
-
$(document).on('change', '.wpforms-provider-accounts select', function(e) {
|
63 |
-
WPFormsProviders.accountSelect(this, e);
|
64 |
-
});
|
65 |
|
66 |
// Select account list.
|
67 |
-
$(document).on('change', '.wpforms-provider-lists select', function(e) {
|
68 |
-
WPFormsProviders.accountListSelect(this, e);
|
69 |
-
});
|
70 |
|
71 |
-
$(document).on('wpformsPanelSwitch', function(e, targetPanel) {
|
72 |
-
WPFormsProviders.providerPanelConfirm(targetPanel);
|
73 |
-
});
|
74 |
|
75 |
// Alert users if they save a form and do not configure required
|
76 |
// fields.
|
77 |
-
$( document ).on( 'wpformsSaved', function(){
|
78 |
|
|
|
79 |
var $connectionBlocks = $( '#wpforms-panel-providers' ).find( '.wpforms-connection-block' );
|
80 |
|
81 |
if ( ! $connectionBlocks.length ) {
|
@@ -83,34 +84,40 @@
|
|
83 |
}
|
84 |
|
85 |
$connectionBlocks.each( function() {
|
86 |
-
var requiredEmpty = false
|
|
|
87 |
$( this ).find( 'table span.required' ).each(function() {
|
88 |
var $element = $( this ).parent().parent().find( 'select' );
|
89 |
if ( $element.val() === '' ) {
|
90 |
requiredEmpty = true;
|
91 |
}
|
92 |
-
});
|
93 |
if ( requiredEmpty ) {
|
94 |
var $titleArea = $( this ).closest( '.wpforms-panel-content-section' ).find( '.wpforms-panel-content-section-title' ).clone();
|
95 |
$titleArea.find( 'button' ).remove();
|
|
|
96 |
var msg = wpforms_builder.provider_required_flds;
|
97 |
|
98 |
-
|
|
|
|
|
|
|
99 |
title: wpforms_builder.heads_up,
|
100 |
-
content: msg.replace( '{provider}',
|
101 |
icon: 'fa fa-exclamation-circle',
|
102 |
type: 'orange',
|
103 |
buttons: {
|
104 |
confirm: {
|
105 |
text: wpforms_builder.ok,
|
106 |
btnClass: 'btn-confirm',
|
107 |
-
keys: ['enter']
|
108 |
-
}
|
109 |
-
}
|
110 |
-
});
|
|
|
111 |
}
|
112 |
-
});
|
113 |
-
});
|
114 |
},
|
115 |
|
116 |
/**
|
@@ -118,11 +125,11 @@
|
|
118 |
*
|
119 |
* @since 1.0.0
|
120 |
*/
|
121 |
-
connectionDelete: function(el, e) {
|
122 |
e.preventDefault();
|
123 |
|
124 |
-
var $this = $(el);
|
125 |
-
$.confirm({
|
126 |
title: false,
|
127 |
content: wpforms_builder_providers.confirm_connection,
|
128 |
backgroundDismiss: false,
|
@@ -133,16 +140,16 @@
|
|
133 |
confirm: {
|
134 |
text: wpforms_builder.ok,
|
135 |
btnClass: 'btn-confirm',
|
136 |
-
keys: ['enter'],
|
137 |
-
action: function(){
|
138 |
-
$this.closest('.wpforms-provider-connection').remove();
|
139 |
-
}
|
140 |
},
|
141 |
cancel: {
|
142 |
-
text: wpforms_builder.cancel
|
143 |
-
}
|
144 |
-
}
|
145 |
-
});
|
146 |
},
|
147 |
|
148 |
/**
|
@@ -150,22 +157,22 @@
|
|
150 |
*
|
151 |
* @since 1.0.0
|
152 |
*/
|
153 |
-
connectionAdd: function(el, e) {
|
154 |
e.preventDefault();
|
155 |
|
156 |
-
var $this = $(el),
|
157 |
$connections = $this.parent().parent(),
|
158 |
$container = $this.parent(),
|
159 |
-
provider = $this.data('provider'),
|
160 |
-
type = $this.data('type'),
|
161 |
namePrompt = wpforms_builder_providers.prompt_connection,
|
162 |
-
nameField = '<input autofocus="" type="text" id="provider-connection-name" placeholder="'+wpforms_builder_providers.prompt_placeholder+'">',
|
163 |
-
nameError = '<p class="error">'+wpforms_builder_providers.error_name+'</p>',
|
164 |
-
modalContent = namePrompt+nameField+nameError;
|
165 |
|
166 |
-
modalContent = modalContent.replace(/%type%/g,type);
|
167 |
|
168 |
-
$.confirm({
|
169 |
title: false,
|
170 |
content: modalContent,
|
171 |
icon: 'fa fa-info-circle',
|
@@ -176,11 +183,11 @@
|
|
176 |
confirm: {
|
177 |
text: wpforms_builder.ok,
|
178 |
btnClass: 'btn-confirm',
|
179 |
-
keys: ['enter'],
|
180 |
action: function() {
|
181 |
-
var input = this.$content.find('input#provider-connection-name');
|
182 |
-
var error = this.$content.find('.error');
|
183 |
-
if (input.val() === '') {
|
184 |
error.show();
|
185 |
return false;
|
186 |
} else {
|
@@ -188,38 +195,39 @@
|
|
188 |
var name = input.val();
|
189 |
|
190 |
// Disable button.
|
191 |
-
WPFormsProviders.inputToggle($this, 'disable');
|
192 |
|
193 |
// Fire AJAX.
|
194 |
var data = {
|
195 |
-
action : 'wpforms_provider_ajax_'+provider,
|
196 |
provider: provider,
|
197 |
task : 'new_connection',
|
198 |
name : name,
|
199 |
-
id : s.form.data('id'),
|
200 |
-
nonce : wpforms_builder.nonce
|
201 |
};
|
202 |
-
WPFormsProviders.fireAJAX($this, data, function(res) {
|
203 |
-
if (res.success) {
|
204 |
-
$connections.find('.wpforms-provider-connections').prepend(res.data.html);
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
$connection.find('.wpforms-provider-accounts
|
|
|
210 |
}
|
211 |
} else {
|
212 |
-
WPFormsProviders.errorDisplay(res.data.error, $container);
|
213 |
}
|
214 |
-
});
|
215 |
}
|
216 |
-
}
|
217 |
},
|
218 |
cancel: {
|
219 |
-
text: wpforms_builder.cancel
|
220 |
-
}
|
221 |
-
}
|
222 |
-
});
|
223 |
},
|
224 |
|
225 |
/**
|
@@ -227,44 +235,44 @@
|
|
227 |
*
|
228 |
* @since 1.0.0
|
229 |
*/
|
230 |
-
accountAdd: function(el, e) {
|
231 |
e.preventDefault();
|
232 |
|
233 |
-
var $this = $(el),
|
234 |
-
provider = $this.data('provider'),
|
235 |
-
$connection = $this.closest('.wpforms-provider-connection'),
|
236 |
$container = $this.parent(),
|
237 |
-
$fields = $container.find(':input'),
|
238 |
-
errors = WPFormsProviders.requiredCheck($fields, $container);
|
239 |
|
240 |
// Disable button.
|
241 |
-
WPFormsProviders.inputToggle($this, 'disable');
|
242 |
|
243 |
// Bail if we have any errors.
|
244 |
-
if (errors) {
|
245 |
-
$this.prop('disabled', false).find('i').remove();
|
246 |
return false;
|
247 |
}
|
248 |
|
249 |
// Fire AJAX.
|
250 |
var data = {
|
251 |
-
action : 'wpforms_provider_ajax_'+provider,
|
252 |
provider : provider,
|
253 |
-
connection_id: $connection.data('connection_id'),
|
254 |
task : 'new_account',
|
255 |
-
data : WPFormsProviders.fakeSerialize($fields)
|
256 |
};
|
257 |
-
WPFormsProviders.fireAJAX($this, data, function(res) {
|
258 |
-
if (res.success) {
|
259 |
-
$container.nextAll('.wpforms-connection-block').remove();
|
260 |
-
$container.nextAll('.wpforms-conditional-block').remove();
|
261 |
-
$container.after(res.data.html);
|
262 |
$container.slideUp();
|
263 |
-
$connection.find('.wpforms-provider-accounts select').trigger('change');
|
264 |
} else {
|
265 |
-
WPFormsProviders.errorDisplay(res.data.error, $container);
|
266 |
}
|
267 |
-
});
|
268 |
},
|
269 |
|
270 |
/**
|
@@ -272,50 +280,51 @@
|
|
272 |
*
|
273 |
* @since 1.0.0
|
274 |
*/
|
275 |
-
accountSelect: function(el, e) {
|
276 |
e.preventDefault();
|
277 |
|
278 |
-
var $this = $(el),
|
279 |
-
$connection = $this.closest('.wpforms-provider-connection'),
|
280 |
$container = $this.parent(),
|
281 |
-
provider = $connection.data('provider');
|
282 |
|
283 |
// Disable select, show loading.
|
284 |
-
WPFormsProviders.inputToggle($this, 'disable');
|
285 |
|
286 |
// Remove any blocks that might exist as we prep for new account.
|
287 |
-
$container.nextAll('.wpforms-connection-block').remove();
|
288 |
-
$container.nextAll('.wpforms-conditional-block').remove();
|
289 |
|
290 |
-
if (
|
291 |
|
292 |
// User selected to option to add new account.
|
293 |
-
$connection.find('.wpforms-provider-account-add input').val('');
|
294 |
-
$connection.find('.wpforms-provider-account-add').slideDown();
|
295 |
-
WPFormsProviders.inputToggle($this, 'enable');
|
296 |
|
297 |
} else {
|
298 |
|
299 |
-
$connection.find('.wpforms-provider-account-add').slideUp();
|
300 |
|
301 |
// Fire AJAX.
|
302 |
var data = {
|
303 |
-
action : 'wpforms_provider_ajax_'+provider,
|
304 |
provider : provider,
|
305 |
-
connection_id: $connection.data('connection_id'),
|
306 |
task : 'select_account',
|
307 |
-
account_id : $this.find(':selected').val()
|
308 |
};
|
309 |
-
WPFormsProviders.fireAJAX($this, data, function(res) {
|
310 |
-
if (res.success) {
|
311 |
-
$container.after(res.data.html);
|
|
|
312 |
// Process first list found.
|
313 |
-
$connection.find('.wpforms-provider-lists option:first').prop('selected', true);
|
314 |
-
$connection.find('.wpforms-provider-lists select').trigger('change');
|
315 |
} else {
|
316 |
-
WPFormsProviders.errorDisplay(res.data.error, $container);
|
317 |
}
|
318 |
-
});
|
319 |
}
|
320 |
},
|
321 |
|
@@ -324,38 +333,38 @@
|
|
324 |
*
|
325 |
* @since 1.0.0
|
326 |
*/
|
327 |
-
accountListSelect: function(el, e) {
|
328 |
e.preventDefault();
|
329 |
|
330 |
-
var $this = $(el),
|
331 |
-
$connection = $this.closest('.wpforms-provider-connection'),
|
332 |
$container = $this.parent(),
|
333 |
-
provider = $connection.data('provider');
|
334 |
|
335 |
// Disable select, show loading.
|
336 |
-
WPFormsProviders.inputToggle($this, 'disable');
|
337 |
|
338 |
// Remove any blocks that might exist as we prep for new account.
|
339 |
-
$container.nextAll('.wpforms-connection-block').remove();
|
340 |
-
$container.nextAll('.wpforms-conditional-block').remove();
|
341 |
|
342 |
var data = {
|
343 |
-
action : 'wpforms_provider_ajax_'+provider,
|
344 |
provider : provider,
|
345 |
-
connection_id: $connection.data('connection_id'),
|
346 |
task : 'select_list',
|
347 |
-
account_id : $connection.find('.wpforms-provider-accounts option:selected').val(),
|
348 |
-
list_id : $this.find(':selected').val(),
|
349 |
-
form_id : s.formID
|
350 |
};
|
351 |
|
352 |
-
WPFormsProviders.fireAJAX($this, data, function(res) {
|
353 |
-
if (res.success) {
|
354 |
-
$container.after(res.data.html);
|
355 |
} else {
|
356 |
-
WPFormsProviders.errorDisplay(res.data.error, $container);
|
357 |
}
|
358 |
-
});
|
359 |
},
|
360 |
|
361 |
/**
|
@@ -364,13 +373,13 @@
|
|
364 |
*
|
365 |
* @since 1.0.0
|
366 |
*/
|
367 |
-
providerPanelConfirm: function(targetPanel) {
|
368 |
|
369 |
wpforms_panel_switch = true;
|
370 |
-
if (targetPanel === 'providers') {
|
371 |
-
if ( wpf.savedState != wpf.getFormState('#wpforms-builder-form') ) {
|
372 |
wpforms_panel_switch = false;
|
373 |
-
$.confirm({
|
374 |
title: false,
|
375 |
content: wpforms_builder_providers.confirm_save,
|
376 |
backgroundDismiss: false,
|
@@ -381,19 +390,19 @@
|
|
381 |
confirm: {
|
382 |
text: wpforms_builder.ok,
|
383 |
btnClass: 'btn-confirm',
|
384 |
-
keys: ['enter'],
|
385 |
-
action: function(){
|
386 |
-
$('#wpforms-save').trigger('click');
|
387 |
-
$(document).on('wpformsSaved', function() {
|
388 |
window.location.href = wpforms_builder_providers.url;
|
389 |
-
});
|
390 |
-
}
|
391 |
},
|
392 |
cancel: {
|
393 |
-
text: wpforms_builder.cancel
|
394 |
-
}
|
395 |
-
}
|
396 |
-
});
|
397 |
}
|
398 |
}
|
399 |
},
|
@@ -407,20 +416,20 @@
|
|
407 |
*
|
408 |
* @since 1.0.0
|
409 |
*/
|
410 |
-
fireAJAX: function(el, d, success) {
|
411 |
-
var $this = $(el);
|
412 |
var data = {
|
413 |
-
id : $('#wpforms-builder-form').data('id'),
|
414 |
-
nonce : wpforms_builder.nonce
|
415 |
};
|
416 |
|
417 |
-
$.extend(data, d);
|
418 |
-
$.post(wpforms_builder.ajax_url, data, function(res) {
|
419 |
-
success(res);
|
420 |
-
WPFormsProviders.inputToggle($this, 'enable');
|
421 |
-
}).fail(function(xhr, textStatus, e) {
|
422 |
-
console.log(xhr.responseText);
|
423 |
-
});
|
424 |
},
|
425 |
|
426 |
/**
|
@@ -428,19 +437,19 @@
|
|
428 |
*
|
429 |
* @since 1.0.0
|
430 |
*/
|
431 |
-
inputToggle: function(el, status) {
|
432 |
-
var $this = $(el);
|
433 |
-
if (status === 'enable') {
|
434 |
-
if ($this.is('select')) {
|
435 |
-
$this.prop('disabled', false).next('i').remove();
|
436 |
} else {
|
437 |
-
$this.prop('disabled', false).find('i').remove();
|
438 |
}
|
439 |
-
} else if (status === 'disable'){
|
440 |
-
if ($this.is('select')) {
|
441 |
-
$this.prop('disabled', true).after(s.spinner);
|
442 |
} else {
|
443 |
-
$this.prop('disabled', true).prepend(s.spinner);
|
444 |
}
|
445 |
}
|
446 |
},
|
@@ -450,9 +459,9 @@
|
|
450 |
*
|
451 |
* @since 1.0.0
|
452 |
*/
|
453 |
-
errorDisplay: function(msg, location) {
|
454 |
-
location.find('.wpforms-error-msg').remove();
|
455 |
-
location.prepend('<p class="wpforms-alert-danger wpforms-alert wpforms-error-msg">'+msg+'</p>');
|
456 |
},
|
457 |
|
458 |
/**
|
@@ -460,23 +469,23 @@
|
|
460 |
*
|
461 |
* @since 1.0.0
|
462 |
*/
|
463 |
-
requiredCheck: function(fields, location) {
|
464 |
var error = false;
|
465 |
|
466 |
// Remove any previous errors.
|
467 |
-
location.find('.wpforms-alert-required').remove();
|
468 |
|
469 |
// Loop through input fields and check for values.
|
470 |
-
fields.each(function(index, el) {
|
471 |
-
if ( $(el).hasClass('wpforms-required') && $(el).val().length === 0 ) {
|
472 |
-
$(el).addClass('wpforms-error');
|
473 |
error = true;
|
474 |
} else {
|
475 |
-
$(el).removeClass('wpforms-error');
|
476 |
}
|
477 |
-
});
|
478 |
-
if (error) {
|
479 |
-
location.prepend('<p class="wpforms-alert-danger wpforms-alert wpforms-alert-required">'+wpforms_builder_providers.required_field+'</p>');
|
480 |
}
|
481 |
return error;
|
482 |
},
|
@@ -486,17 +495,17 @@
|
|
486 |
*
|
487 |
* @since 1.0.0
|
488 |
*/
|
489 |
-
fakeSerialize: function(els) {
|
490 |
var fields = els.clone();
|
491 |
|
492 |
-
fields.each(function(index, el){
|
493 |
-
if ($(el).data('name')) {
|
494 |
-
$(el).attr('name', $(el).data('name'));
|
495 |
}
|
496 |
-
});
|
497 |
return fields.serialize();
|
498 |
-
}
|
499 |
};
|
500 |
|
501 |
WPFormsProviders.init();
|
502 |
-
})(jQuery);
|
1 |
+
/* global wpforms_builder_providers, wpforms_builder, wpf, jQuery */
|
2 |
|
3 |
+
( function( $ ) {
|
4 |
|
5 |
var s;
|
6 |
|
7 |
var WPFormsProviders = {
|
8 |
|
9 |
settings: {
|
10 |
+
form : $( '#wpforms-builder-form' ),
|
11 |
+
spinner: '<i class="fa fa-circle-o-notch fa-spin wpforms-button-icon" />',
|
12 |
},
|
13 |
|
14 |
/**
|
20 |
s = this.settings;
|
21 |
|
22 |
// Document ready.
|
23 |
+
$( document ).ready( WPFormsProviders.ready );
|
24 |
|
25 |
WPFormsProviders.bindUIActions();
|
26 |
},
|
33 |
ready: function() {
|
34 |
|
35 |
// Setup/cache some vars not available before.
|
36 |
+
s.formID = $( '#wpforms-builder-form' ).data( 'id' );
|
37 |
},
|
38 |
|
39 |
/**
|
44 |
bindUIActions: function() {
|
45 |
|
46 |
// Delete connection.
|
47 |
+
$( document ).on( 'click', '.wpforms-provider-connection-delete', function( e ) {
|
48 |
+
WPFormsProviders.connectionDelete( this, e );
|
49 |
+
} );
|
50 |
|
51 |
// Add new connection.
|
52 |
+
$( document ).on( 'click', '.wpforms-provider-connections-add', function( e ) {
|
53 |
+
WPFormsProviders.connectionAdd( this, e );
|
54 |
+
} );
|
55 |
|
56 |
// Add new provider account.
|
57 |
+
$( document ).on( 'click', '.wpforms-provider-account-add button', function( e ) {
|
58 |
+
WPFormsProviders.accountAdd( this, e );
|
59 |
+
} );
|
60 |
|
61 |
// Select provider account.
|
62 |
+
$( document ).on( 'change', '.wpforms-provider-accounts select', function( e ) {
|
63 |
+
WPFormsProviders.accountSelect( this, e );
|
64 |
+
} );
|
65 |
|
66 |
// Select account list.
|
67 |
+
$( document ).on( 'change', '.wpforms-provider-lists select', function( e ) {
|
68 |
+
WPFormsProviders.accountListSelect( this, e );
|
69 |
+
} );
|
70 |
|
71 |
+
$( document ).on( 'wpformsPanelSwitch', function( e, targetPanel ) {
|
72 |
+
WPFormsProviders.providerPanelConfirm( targetPanel );
|
73 |
+
} );
|
74 |
|
75 |
// Alert users if they save a form and do not configure required
|
76 |
// fields.
|
77 |
+
$( document ).on( 'wpformsSaved', function() {
|
78 |
|
79 |
+
var providerAlerts = [];
|
80 |
var $connectionBlocks = $( '#wpforms-panel-providers' ).find( '.wpforms-connection-block' );
|
81 |
|
82 |
if ( ! $connectionBlocks.length ) {
|
84 |
}
|
85 |
|
86 |
$connectionBlocks.each( function() {
|
87 |
+
var requiredEmpty = false,
|
88 |
+
providerName;
|
89 |
$( this ).find( 'table span.required' ).each(function() {
|
90 |
var $element = $( this ).parent().parent().find( 'select' );
|
91 |
if ( $element.val() === '' ) {
|
92 |
requiredEmpty = true;
|
93 |
}
|
94 |
+
} );
|
95 |
if ( requiredEmpty ) {
|
96 |
var $titleArea = $( this ).closest( '.wpforms-panel-content-section' ).find( '.wpforms-panel-content-section-title' ).clone();
|
97 |
$titleArea.find( 'button' ).remove();
|
98 |
+
providerName = $titleArea.text().trim();
|
99 |
var msg = wpforms_builder.provider_required_flds;
|
100 |
|
101 |
+
if ( -1 < providerAlerts.indexOf( providerName ) ) {
|
102 |
+
return;
|
103 |
+
}
|
104 |
+
$.alert( {
|
105 |
title: wpforms_builder.heads_up,
|
106 |
+
content: msg.replace( '{provider}', providerName ),
|
107 |
icon: 'fa fa-exclamation-circle',
|
108 |
type: 'orange',
|
109 |
buttons: {
|
110 |
confirm: {
|
111 |
text: wpforms_builder.ok,
|
112 |
btnClass: 'btn-confirm',
|
113 |
+
keys: [ 'enter' ],
|
114 |
+
},
|
115 |
+
},
|
116 |
+
} );
|
117 |
+
providerAlerts.push( providerName );
|
118 |
}
|
119 |
+
} );
|
120 |
+
} );
|
121 |
},
|
122 |
|
123 |
/**
|
125 |
*
|
126 |
* @since 1.0.0
|
127 |
*/
|
128 |
+
connectionDelete: function( el, e ) {
|
129 |
e.preventDefault();
|
130 |
|
131 |
+
var $this = $( el );
|
132 |
+
$.confirm( {
|
133 |
title: false,
|
134 |
content: wpforms_builder_providers.confirm_connection,
|
135 |
backgroundDismiss: false,
|
140 |
confirm: {
|
141 |
text: wpforms_builder.ok,
|
142 |
btnClass: 'btn-confirm',
|
143 |
+
keys: [ 'enter' ],
|
144 |
+
action: function() {
|
145 |
+
$this.closest( '.wpforms-provider-connection' ).remove();
|
146 |
+
},
|
147 |
},
|
148 |
cancel: {
|
149 |
+
text: wpforms_builder.cancel,
|
150 |
+
},
|
151 |
+
},
|
152 |
+
} );
|
153 |
},
|
154 |
|
155 |
/**
|
157 |
*
|
158 |
* @since 1.0.0
|
159 |
*/
|
160 |
+
connectionAdd: function( el, e ) {
|
161 |
e.preventDefault();
|
162 |
|
163 |
+
var $this = $( el ),
|
164 |
$connections = $this.parent().parent(),
|
165 |
$container = $this.parent(),
|
166 |
+
provider = $this.data( 'provider' ),
|
167 |
+
type = $this.data( 'type' ),
|
168 |
namePrompt = wpforms_builder_providers.prompt_connection,
|
169 |
+
nameField = '<input autofocus="" type="text" id="provider-connection-name" placeholder="' + wpforms_builder_providers.prompt_placeholder + '">',
|
170 |
+
nameError = '<p class="error">' + wpforms_builder_providers.error_name + '</p>',
|
171 |
+
modalContent = namePrompt + nameField + nameError;
|
172 |
|
173 |
+
modalContent = modalContent.replace( /%type%/g, type );
|
174 |
|
175 |
+
$.confirm( {
|
176 |
title: false,
|
177 |
content: modalContent,
|
178 |
icon: 'fa fa-info-circle',
|
183 |
confirm: {
|
184 |
text: wpforms_builder.ok,
|
185 |
btnClass: 'btn-confirm',
|
186 |
+
keys: [ 'enter' ],
|
187 |
action: function() {
|
188 |
+
var input = this.$content.find( 'input#provider-connection-name' );
|
189 |
+
var error = this.$content.find( '.error' );
|
190 |
+
if ( input.val() === '' ) {
|
191 |
error.show();
|
192 |
return false;
|
193 |
} else {
|
195 |
var name = input.val();
|
196 |
|
197 |
// Disable button.
|
198 |
+
WPFormsProviders.inputToggle( $this, 'disable' );
|
199 |
|
200 |
// Fire AJAX.
|
201 |
var data = {
|
202 |
+
action : 'wpforms_provider_ajax_' + provider,
|
203 |
provider: provider,
|
204 |
task : 'new_connection',
|
205 |
name : name,
|
206 |
+
id : s.form.data( 'id' ),
|
207 |
+
nonce : wpforms_builder.nonce,
|
208 |
};
|
209 |
+
WPFormsProviders.fireAJAX( $this, data, function( res ) {
|
210 |
+
if ( res.success ) {
|
211 |
+
$connections.find( '.wpforms-provider-connections' ).prepend( res.data.html );
|
212 |
+
|
213 |
+
// Process and load the accounts if they exist.
|
214 |
+
var $connection = $connections.find( '.wpforms-provider-connection:first' );
|
215 |
+
if ( $connection.find( '.wpforms-provider-accounts option:selected' ) ) {
|
216 |
+
$connection.find( '.wpforms-provider-accounts option:first' ).prop( 'selected', true );
|
217 |
+
$connection.find( '.wpforms-provider-accounts select' ).trigger( 'change' );
|
218 |
}
|
219 |
} else {
|
220 |
+
WPFormsProviders.errorDisplay( res.data.error, $container );
|
221 |
}
|
222 |
+
} );
|
223 |
}
|
224 |
+
},
|
225 |
},
|
226 |
cancel: {
|
227 |
+
text: wpforms_builder.cancel,
|
228 |
+
},
|
229 |
+
},
|
230 |
+
} );
|
231 |
},
|
232 |
|
233 |
/**
|
235 |
*
|
236 |
* @since 1.0.0
|
237 |
*/
|
238 |
+
accountAdd: function( el, e ) {
|
239 |
e.preventDefault();
|
240 |
|
241 |
+
var $this = $( el ),
|
242 |
+
provider = $this.data( 'provider' ),
|
243 |
+
$connection = $this.closest( '.wpforms-provider-connection' ),
|
244 |
$container = $this.parent(),
|
245 |
+
$fields = $container.find( ':input' ),
|
246 |
+
errors = WPFormsProviders.requiredCheck( $fields, $container );
|
247 |
|
248 |
// Disable button.
|
249 |
+
WPFormsProviders.inputToggle( $this, 'disable' );
|
250 |
|
251 |
// Bail if we have any errors.
|
252 |
+
if ( errors ) {
|
253 |
+
$this.prop( 'disabled', false ).find( 'i' ).remove();
|
254 |
return false;
|
255 |
}
|
256 |
|
257 |
// Fire AJAX.
|
258 |
var data = {
|
259 |
+
action : 'wpforms_provider_ajax_' + provider,
|
260 |
provider : provider,
|
261 |
+
connection_id: $connection.data( 'connection_id' ),
|
262 |
task : 'new_account',
|
263 |
+
data : WPFormsProviders.fakeSerialize( $fields ),
|
264 |
};
|
265 |
+
WPFormsProviders.fireAJAX( $this, data, function( res ) {
|
266 |
+
if ( res.success ) {
|
267 |
+
$container.nextAll( '.wpforms-connection-block' ).remove();
|
268 |
+
$container.nextAll( '.wpforms-conditional-block' ).remove();
|
269 |
+
$container.after( res.data.html );
|
270 |
$container.slideUp();
|
271 |
+
$connection.find( '.wpforms-provider-accounts select' ).trigger( 'change' );
|
272 |
} else {
|
273 |
+
WPFormsProviders.errorDisplay( res.data.error, $container );
|
274 |
}
|
275 |
+
} );
|
276 |
},
|
277 |
|
278 |
/**
|
280 |
*
|
281 |
* @since 1.0.0
|
282 |
*/
|
283 |
+
accountSelect: function( el, e ) {
|
284 |
e.preventDefault();
|
285 |
|
286 |
+
var $this = $( el ),
|
287 |
+
$connection = $this.closest( '.wpforms-provider-connection' ),
|
288 |
$container = $this.parent(),
|
289 |
+
provider = $connection.data( 'provider' );
|
290 |
|
291 |
// Disable select, show loading.
|
292 |
+
WPFormsProviders.inputToggle( $this, 'disable' );
|
293 |
|
294 |
// Remove any blocks that might exist as we prep for new account.
|
295 |
+
$container.nextAll( '.wpforms-connection-block' ).remove();
|
296 |
+
$container.nextAll( '.wpforms-conditional-block' ).remove();
|
297 |
|
298 |
+
if ( ! $this.val() ) {
|
299 |
|
300 |
// User selected to option to add new account.
|
301 |
+
$connection.find( '.wpforms-provider-account-add input' ).val( '' );
|
302 |
+
$connection.find( '.wpforms-provider-account-add' ).slideDown();
|
303 |
+
WPFormsProviders.inputToggle( $this, 'enable' );
|
304 |
|
305 |
} else {
|
306 |
|
307 |
+
$connection.find( '.wpforms-provider-account-add' ).slideUp();
|
308 |
|
309 |
// Fire AJAX.
|
310 |
var data = {
|
311 |
+
action : 'wpforms_provider_ajax_' + provider,
|
312 |
provider : provider,
|
313 |
+
connection_id: $connection.data( 'connection_id' ),
|
314 |
task : 'select_account',
|
315 |
+
account_id : $this.find( ':selected' ).val(),
|
316 |
};
|
317 |
+
WPFormsProviders.fireAJAX( $this, data, function( res ) {
|
318 |
+
if ( res.success ) {
|
319 |
+
$container.after( res.data.html );
|
320 |
+
|
321 |
// Process first list found.
|
322 |
+
$connection.find( '.wpforms-provider-lists option:first' ).prop( 'selected', true );
|
323 |
+
$connection.find( '.wpforms-provider-lists select' ).trigger( 'change' );
|
324 |
} else {
|
325 |
+
WPFormsProviders.errorDisplay( res.data.error, $container );
|
326 |
}
|
327 |
+
} );
|
328 |
}
|
329 |
},
|
330 |
|
333 |
*
|
334 |
* @since 1.0.0
|
335 |
*/
|
336 |
+
accountListSelect: function( el, e ) {
|
337 |
e.preventDefault();
|
338 |
|
339 |
+
var $this = $( el ),
|
340 |
+
$connection = $this.closest( '.wpforms-provider-connection' ),
|
341 |
$container = $this.parent(),
|
342 |
+
provider = $connection.data( 'provider' );
|
343 |
|
344 |
// Disable select, show loading.
|
345 |
+
WPFormsProviders.inputToggle( $this, 'disable' );
|
346 |
|
347 |
// Remove any blocks that might exist as we prep for new account.
|
348 |
+
$container.nextAll( '.wpforms-connection-block' ).remove();
|
349 |
+
$container.nextAll( '.wpforms-conditional-block' ).remove();
|
350 |
|
351 |
var data = {
|
352 |
+
action : 'wpforms_provider_ajax_' + provider,
|
353 |
provider : provider,
|
354 |
+
connection_id: $connection.data( 'connection_id' ),
|
355 |
task : 'select_list',
|
356 |
+
account_id : $connection.find( '.wpforms-provider-accounts option:selected' ).val(),
|
357 |
+
list_id : $this.find( ':selected' ).val(),
|
358 |
+
form_id : s.formID,
|
359 |
};
|
360 |
|
361 |
+
WPFormsProviders.fireAJAX( $this, data, function( res ) {
|
362 |
+
if ( res.success ) {
|
363 |
+
$container.after( res.data.html );
|
364 |
} else {
|
365 |
+
WPFormsProviders.errorDisplay( res.data.error, $container );
|
366 |
}
|
367 |
+
} );
|
368 |
},
|
369 |
|
370 |
/**
|
373 |
*
|
374 |
* @since 1.0.0
|
375 |
*/
|
376 |
+
providerPanelConfirm: function( targetPanel ) {
|
377 |
|
378 |
wpforms_panel_switch = true;
|
379 |
+
if ( targetPanel === 'providers' ) {
|
380 |
+
if ( wpf.savedState != wpf.getFormState( '#wpforms-builder-form' ) ) {
|
381 |
wpforms_panel_switch = false;
|
382 |
+
$.confirm( {
|
383 |
title: false,
|
384 |
content: wpforms_builder_providers.confirm_save,
|
385 |
backgroundDismiss: false,
|
390 |
confirm: {
|
391 |
text: wpforms_builder.ok,
|
392 |
btnClass: 'btn-confirm',
|
393 |
+
keys: [ 'enter' ],
|
394 |
+
action: function() {
|
395 |
+
$( '#wpforms-save' ).trigger( 'click' );
|
396 |
+
$( document ).on( 'wpformsSaved', function() {
|
397 |
window.location.href = wpforms_builder_providers.url;
|
398 |
+
} );
|
399 |
+
},
|
400 |
},
|
401 |
cancel: {
|
402 |
+
text: wpforms_builder.cancel,
|
403 |
+
},
|
404 |
+
},
|
405 |
+
} );
|
406 |
}
|
407 |
}
|
408 |
},
|
416 |
*
|
417 |
* @since 1.0.0
|
418 |
*/
|
419 |
+
fireAJAX: function( el, d, success ) {
|
420 |
+
var $this = $( el );
|
421 |
var data = {
|
422 |
+
id : $( '#wpforms-builder-form' ).data( 'id' ),
|
423 |
+
nonce : wpforms_builder.nonce,
|
424 |
};
|
425 |
|
426 |
+
$.extend( data, d );
|
427 |
+
$.post( wpforms_builder.ajax_url, data, function( res ) {
|
428 |
+
success( res );
|
429 |
+
WPFormsProviders.inputToggle( $this, 'enable' );
|
430 |
+
} ).fail( function( xhr, textStatus, e ) {
|
431 |
+
console.log( xhr.responseText );
|
432 |
+
} );
|
433 |
},
|
434 |
|
435 |
/**
|
437 |
*
|
438 |
* @since 1.0.0
|
439 |
*/
|
440 |
+
inputToggle: function( el, status ) {
|
441 |
+
var $this = $( el );
|
442 |
+
if ( status === 'enable' ) {
|
443 |
+
if ( $this.is( 'select' ) ) {
|
444 |
+
$this.prop( 'disabled', false ).next( 'i' ).remove();
|
445 |
} else {
|
446 |
+
$this.prop( 'disabled', false ).find( 'i' ).remove();
|
447 |
}
|
448 |
+
} else if ( status === 'disable' ) {
|
449 |
+
if ( $this.is( 'select' ) ) {
|
450 |
+
$this.prop( 'disabled', true ).after( s.spinner );
|
451 |
} else {
|
452 |
+
$this.prop( 'disabled', true ).prepend( s.spinner );
|
453 |
}
|
454 |
}
|
455 |
},
|
459 |
*
|
460 |
* @since 1.0.0
|
461 |
*/
|
462 |
+
errorDisplay: function( msg, location ) {
|
463 |
+
location.find( '.wpforms-error-msg' ).remove();
|
464 |
+
location.prepend( '<p class="wpforms-alert-danger wpforms-alert wpforms-error-msg">' + msg + '</p>' );
|
465 |
},
|
466 |
|
467 |
/**
|
469 |
*
|
470 |
* @since 1.0.0
|
471 |
*/
|
472 |
+
requiredCheck: function( fields, location ) {
|
473 |
var error = false;
|
474 |
|
475 |
// Remove any previous errors.
|
476 |
+
location.find( '.wpforms-alert-required' ).remove();
|
477 |
|
478 |
// Loop through input fields and check for values.
|
479 |
+
fields.each( function( index, el ) {
|
480 |
+
if ( $( el ).hasClass( 'wpforms-required' ) && $( el ).val().length === 0 ) {
|
481 |
+
$( el ).addClass( 'wpforms-error' );
|
482 |
error = true;
|
483 |
} else {
|
484 |
+
$( el ).removeClass( 'wpforms-error' );
|
485 |
}
|
486 |
+
} );
|
487 |
+
if ( error ) {
|
488 |
+
location.prepend( '<p class="wpforms-alert-danger wpforms-alert wpforms-alert-required">' + wpforms_builder_providers.required_field + '</p>' );
|
489 |
}
|
490 |
return error;
|
491 |
},
|
495 |
*
|
496 |
* @since 1.0.0
|
497 |
*/
|
498 |
+
fakeSerialize: function( els ) {
|
499 |
var fields = els.clone();
|
500 |
|
501 |
+
fields.each( function( index, el ) {
|
502 |
+
if ( $( el ).data( 'name' ) ) {
|
503 |
+
$( el ).attr( 'name', $( el ).data( 'name' ) );
|
504 |
}
|
505 |
+
} );
|
506 |
return fields.serialize();
|
507 |
+
},
|
508 |
};
|
509 |
|
510 |
WPFormsProviders.init();
|
511 |
+
} )( jQuery );
|
assets/js/admin.js
CHANGED
@@ -941,6 +941,26 @@
|
|
941 |
}
|
942 |
},
|
943 |
effect: 'appear'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
944 |
}
|
945 |
] );
|
946 |
});
|
941 |
}
|
942 |
},
|
943 |
effect: 'appear'
|
944 |
+
},
|
945 |
+
// reCAPTCHA > Score Threshold.
|
946 |
+
{
|
947 |
+
conditions: {
|
948 |
+
element: 'input[name=recaptcha-type]:checked',
|
949 |
+
type: 'value',
|
950 |
+
operator: '=',
|
951 |
+
condition: 'v3'
|
952 |
+
},
|
953 |
+
actions: {
|
954 |
+
if: {
|
955 |
+
element: '#wpforms-setting-row-recaptcha-v3-threshold',
|
956 |
+
action: 'show'
|
957 |
+
},
|
958 |
+
else : {
|
959 |
+
element: '#wpforms-setting-row-recaptcha-v3-threshold',
|
960 |
+
action: 'hide'
|
961 |
+
}
|
962 |
+
},
|
963 |
+
effect: 'appear'
|
964 |
}
|
965 |
] );
|
966 |
});
|
assets/js/admin.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(l){"use strict";var f,s={settings:{iconActivate:'<i class="fa fa-toggle-on fa-flip-horizontal" aria-hidden="true"></i>',iconDeactivate:'<i class="fa fa-toggle-on" aria-hidden="true"></i>',iconInstall:'<i class="fa fa-cloud-download" aria-hidden="true"></i>',iconSpinner:'<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>',mediaFrame:!1},init:function(){f=this.settings,l(document).ready(s.ready),s.initFormOverview(),s.initEntriesSingle(),s.initEntriesList(),s.initWelcome(),s.initAddons(),s.initSettings(),s.initTools(),s.initUpgrades()},ready:function(){l(".notice").show(),l("#screen-meta-links, #screen-meta").prependTo("#wpforms-header-temp").show(),s.initChoicesJS(),s.initCheckboxMultiselectColumns(),l(".wpforms-color-picker").minicolors(),l(".wpforms-file-upload").each(function(){var e=l(this).find("input[type=file]"),n=l(this).find("label"),o=n.html();e.on("change",function(e){var t="";this.files&&1<this.files.length?t=(this.getAttribute("data-multiple-caption")||"").replace("{count}",this.files.length):e.target.value&&(t=e.target.value.split("\\").pop()),t?n.find(".fld").html(t):n.html(o)}),e.on("focus",function(){e.addClass("has-focus")}).on("blur",function(){e.removeClass("has-focus")})}),jconfirm.defaults={closeIcon:!0,backgroundDismiss:!0,escapeKey:!0,animationBounce:1,useBootstrap:!1,theme:"modern",boxWidth:"400px",animateFromElement:!1},l(document).on("click",".wpforms-upgrade-modal",function(){l.alert({title:!1,content:wpforms_admin.upgrade_modal,icon:"fa fa-info-circle",type:"blue",boxWidth:"565px",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),l(document).trigger("wpformsReady")},initChoicesJS:function(){l(".choicesjs-select").each(function(){var e=l(this),t={searchEnabled:!1};e.attr("multiple")&&(t.searchEnabled=!0,t.removeItemButton=!0),e.data("placeholder")&&(t.placeholderValue=e.data("placeholder")),"off"===e.data("sorting")&&(t.shouldSort=!1),e.data("search")&&(t.searchEnabled=!0),t.loadingText=wpforms_admin.choicesjs_loading,t.noResultsText=wpforms_admin.choicesjs_no_results,t.noChoicesText=wpforms_admin.choicesjs_no_choices,t.itemSelectText=wpforms_admin.choicesjs_item_select,new Choices(e[0],t)})},initCheckboxMultiselectColumns:function(){l(document).on("change",".checkbox-multiselect-columns input",function(){var e=l(this),t=e.parent(),n=e.closest(".checkbox-multiselect-columns"),o=t.text(),i="check-item-"+e.val(),s=n.find("#"+i);e.prop("checked")?(e.parent().addClass("checked"),s.length||n.find(".second-column ul").append('<li id="'+i+'">'+o+"</li>")):(e.parent().removeClass("checked"),n.find("#"+i).remove())}),l(document).on("click",".checkbox-multiselect-columns .all",function(e){e.preventDefault(),l(this).closest(".checkbox-multiselect-columns").find("input[type=checkbox]").prop("checked",!0).trigger("change"),l(this).remove()})},initFormOverview:function(){l(document).on("click","#wpforms-overview .wp-list-table .delete a, #wpforms-overview .wp-list-table .duplicate a",function(e){e.preventDefault();var t=l(this).attr("href"),n=l(this).parent().hasClass("delete")?wpforms_admin.form_delete_confirm:wpforms_admin.form_duplicate_confirm;l.confirm({title:!1,content:n,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},initEntriesSingle:function(){"wpforms-entries"===s.getQueryString("page")&&"details"===s.getQueryString("view")&&s.entryHotkeys(),l(document).on("click","#wpforms-entries-single .submitdelete",function(e){e.preventDefault();var t=l(this).attr("href");l.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),l(document).on("click","#wpforms-entries-single .wpforms-entry-print a",function(e){e.preventDefault(),window.open(l(this).attr("href"))}),l(document).on("click","#wpforms-entries-single .wpforms-empty-field-toggle",function(e){e.preventDefault(),"true"===wpCookies.get("wpforms_entry_hide_empty")?(wpCookies.remove("wpforms_entry_hide_empty"),l(this).text(wpforms_admin.entry_empty_fields_hide)):(wpCookies.set("wpforms_entry_hide_empty","true",2592e3),l(this).text(wpforms_admin.entry_empty_fields_show)),l(".wpforms-entry-field.empty").toggle()}),l(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .add",function(e){e.preventDefault(),l(this).hide().next("form").slideToggle()}),l(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .cancel",function(e){e.preventDefault(),l(this).closest("form").slideToggle(),l(".wpforms-entry-notes-new .add").show()}),l(document).on("click","#wpforms-entries-single .wpforms-entry-notes-byline .note-delete",function(e){e.preventDefault();var t=l(this).attr("href");l.confirm({title:!1,content:wpforms_admin.entry_note_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},entryHotkeys:function(){l(document).keydown(function(e){if(74!==e.keyCode||s.isFormTypeNode(e.target.nodeName)){if(75===e.keyCode&&!s.isFormTypeNode(e.target.nodeName)){var t=l("#wpforms-entry-next-link").attr("href");"#"!==t&&(window.location.href=t)}}else{var n=l("#wpforms-entry-prev-link").attr("href");"#"!==n&&(window.location.href=n)}})},initEntriesList:function(){l(document).on("click","#wpforms-entries-table-edit-columns",function(e){e.preventDefault(),s.entriesListFieldColumn()}),l(document).on("click","#wpforms-entries-list .form-selector .toggle",function(e){e.preventDefault(),l(this).toggleClass("active").next(".form-list").toggle()}),l(document).on("click","#wpforms-entries-list .wp-list-table .delete",function(e){e.preventDefault();var t=l(this).attr("href");l.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),l(document).on("click","#wpforms-entries-list .wp-list-table .indicator-star",function(e){e.preventDefault();var t=l(this),n="",o=Number(l("#wpforms-entries-list .starred-num").text()),i=t.data("id");t.hasClass("star")?(n="star",o++,t.attr("title",wpforms_admin.entry_unstar)):(n="unstar",o--,t.attr("title",wpforms_admin.entry_star)),t.toggleClass("star unstar"),l("#wpforms-entries-list .starred-num").text(o);var s={task:n,action:"wpforms_entry_list_star",nonce:wpforms_admin.nonce,entry_id:i};l.post(wpforms_admin.ajax_url,s)}),l(document).on("click","#wpforms-entries-list .wp-list-table .indicator-read",function(e){e.preventDefault();var t=l(this),n="",o=Number(l("#wpforms-entries-list .unread-num").text()),i=t.data("id");t.hasClass("read")?(n="read",o--,t.attr("title",wpforms_admin.entry_unread)):(n="unread",o++,t.attr("title",wpforms_admin.entry_read)),t.toggleClass("read unread"),l("#wpforms-entries-list .unread-num").text(o);var s={task:n,action:"wpforms_entry_list_read",nonce:wpforms_admin.nonce,entry_id:i};l.post(wpforms_admin.ajax_url,s)}),l(document).on("click","#wpforms-entries-list .form-details-actions-deleteall",function(e){e.preventDefault();var t=l(this).attr("href");l.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.entry_delete_all_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),l(document).on("heartbeat-send",function(e,t){var n=l("#wpforms-entries-list");if(n.length){var o=n.find("#wpforms-entries-table").data("last-entry-id");void 0!==o&&(t.wpforms_new_entries_entry_id=o,t.wpforms_new_entries_form_id=n.find("input[name=form_id]").val())}}),l(document).on("heartbeat-tick",function(e,t){var n,o=l("#wpforms-entries-list");o.length&&t.wpforms_new_entries_notification&&(n=o.find(".wp-list-table thead tr").first().children().length,o.find(".new-entries-notification").length||o.find(".wp-list-table thead").append('<tr class="new-entries-notification"><td colspan="'+n+'"><a href=""></a></td></tr>'),o.find(".new-entries-notification a").text(t.wpforms_new_entries_notification).slideDown({duration:500,start:function(){l(this).css({display:"block"})}}))})},entriesListFieldColumn:function(){l.alert({title:wpforms_admin.entry_field_columns,boxWidth:"500px",content:f.iconSpinner+l("#wpforms-field-column-select").html(),onContentReady:function(){var e=this.$content,t=e.find("select"),n=new Choices(t[0],{shouldSort:!1,removeItemButton:!0,placeholderValue:wpforms_admin.choicesjs_fields_select+"...",loadingText:wpforms_admin.choicesjs_loading,noResultsText:wpforms_admin.choicesjs_no_results,noChoicesText:wpforms_admin.choicesjs_no_choices,itemSelectText:wpforms_admin.choicesjs_item_select,callbackOnInit:function(){e.find(".fa").remove(),e.find("form").show()}});l(".jconfirm-content-pane, .jconfirm-box").css("overflow","visible"),n.passedElement.addEventListener("change",function(){n.hideDropdown()},!1)},buttons:{confirm:{text:wpforms_admin.save_refresh,btnClass:"btn-confirm",keys:["enter"],action:function(){this.$content.find("form").submit()}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initWelcome:function(){l(document).on("click","#wpforms-welcome .play-video",function(e){e.preventDefault();l.dialog({title:!1,content:'<div class="video-container"><iframe width="1280" height="720" src="https://www.youtube-nocookie.com/embed/yDyvSGV7tP4?rel=0&showinfo=0&autoplay=1" frameborder="0" allowfullscreen></iframe></div>',closeIcon:!0,boxWidth:"70%"})})},initAddons:function(){l(document).on("wpformsReady",function(){if(l("#wpforms-admin-addons").length&&(l(".addon-item .details").matchHeight({byrow:!1,property:"height"}),l("#wpforms-admin-addons-list").length)){var n=new List("wpforms-admin-addons-list",{valueNames:["addon-name"]});l("#wpforms-admin-addons-search").on("keyup",function(){var e=l(this).val(),t=l("#addons-heading");e?t.text(wpforms_admin.addon_search):t.text(t.data("text")),n.search(e)})}}),l(document).on("click","#wpforms-admin-addons .addon-item button",function(e){if(e.preventDefault(),l(this).hasClass("disabled"))return!1;s.addonToggle(l(this))})},addonToggle:function(t){var n,o,i,s,a,r,c=t.closest(".addon-item"),e=t.attr("data-plugin"),d=t.attr("data-type");if(t.hasClass("status-go-to-url"))window.open(t.attr("data-plugin"),"_blank");else{if(t.prop("disabled",!0).addClass("loading"),t.html(f.iconSpinner),t.hasClass("status-active"))n="wpforms_deactivate_addon",o="status-inactive","plugin"===d&&(o+=" button button-secondary"),i=wpforms_admin.addon_inactive,s=wpforms_admin.addon_activate,"addon"===d&&(s=f.iconActivate+s),a=f.iconDeactivate+wpforms_admin.addon_deactivate;else if(t.hasClass("status-inactive"))n="wpforms_activate_addon",o="status-active","plugin"===d&&(o+=" button button-secondary disabled"),i=wpforms_admin.addon_active,s=wpforms_admin.addon_deactivate,"addon"===d?s=f.iconDeactivate+s:"plugin"===d&&(s=wpforms_admin.addon_activated),a=f.iconActivate+wpforms_admin.addon_activate;else{if(!t.hasClass("status-download"))return;n="wpforms_install_addon",o="status-active","plugin"===d&&(o+=" button disabled"),i=wpforms_admin.addon_active,s=wpforms_admin.addon_activated,"addon"===d&&(s=f.iconActivate+wpforms_admin.addon_deactivate),a=f.iconInstall+wpforms_admin.addon_activate}var m={action:n,nonce:wpforms_admin.nonce,plugin:e,type:d};l.post(wpforms_admin.ajax_url,m,function(e){e.success?("wpforms_install_addon"===n?(t.attr("data-plugin",e.data.basename),r=e.data.msg,e.data.is_activated||(o="status-inactive","plugin"===d&&(o="button"),i=wpforms_admin.addon_inactive,s=f.iconActivate+wpforms_admin.addon_activate)):r=e.data,c.find(".actions").append('<div class="msg success">'+r+"</div>"),c.find("span.status-label").removeClass("status-active status-inactive status-download").addClass(o).removeClass("button button-primary button-secondary disabled").text(i),t.removeClass("status-active status-inactive status-download").removeClass("button button-primary button-secondary disabled").addClass(o).html(s)):("download_failed"===e.data[0].code?"addon"===d?c.find(".actions").append('<div class="msg error">'+wpforms_admin.addon_error+"</div>"):c.find(".actions").append('<div class="msg error">'+wpforms_admin.plugin_error+"</div>"):c.find(".actions").append('<div class="msg error">'+e.data+"</div>"),t.html(a)),t.prop("disabled",!1).removeClass("loading"),setTimeout(function(){l(".addon-item .msg").remove()},3e3)}).fail(function(e){console.log(e.responseText)})}},initSettings:function(){l(document).on("wpformsReady",function(){if(l("#wpforms-settings").length){var e=s.getQueryString("wpforms-integration"),t=s.getQueryString("jump");e?l("body").animate({scrollTop:l("#wpforms-integration-"+e).offset().top},1e3):t&&l("body").animate({scrollTop:l("#"+t).offset().top},1e3),l(".wpforms-admin-settings-form").conditions([{conditions:{element:"#wpforms-setting-gdpr",type:"checked",operator:"is"},actions:{if:{element:"#wpforms-setting-row-gdpr-disable-uuid,#wpforms-setting-row-gdpr-disable-details",action:"show"},else:{element:"#wpforms-setting-row-gdpr-disable-uuid,#wpforms-setting-row-gdpr-disable-details",action:"hide"}},effect:"appear"}])}}),l(document).on("change","#wpforms-setting-disable-css",function(){s.settingsFormStylesAlert(l(this).val())}),l(document).on("click",".wpforms-setting-row-image button",function(e){e.preventDefault(),s.imageUploadModal(l(this))}),l(document).on("click","#wpforms-setting-license-key-verify",function(e){e.preventDefault(),s.licenseVerify(l(this))}),l(document).on("click","#wpforms-setting-license-key-deactivate",function(e){e.preventDefault(),s.licenseDeactivate(l(this))}),l(document).on("click","#wpforms-setting-license-key-refresh",function(e){e.preventDefault(),s.licenseRefresh(l(this))}),l(document).on("click",".wpforms-settings-provider-connect",function(e){e.preventDefault();var t=l(this);s.integrationConnect(t)}),l(document).on("click",".wpforms-settings-provider-accounts-list a",function(e){e.preventDefault(),s.integrationDisconnect(l(this))}),l(document).on("click",".wpforms-settings-provider-header",function(e){e.preventDefault(),l(this).parent().find(".wpforms-settings-provider-accounts").slideToggle(),l(this).parent().find(".wpforms-settings-provider-logo i").toggleClass("fa-chevron-right fa-chevron-down")}),l(document).on("click",".wpforms-settings-provider-accounts-toggle a",function(e){e.preventDefault();var t=l(this).parent().next(".wpforms-settings-provider-accounts-connect");t.find("input[type=text], input[type=password]").val(""),t.slideToggle()})},settingsFormStylesAlert:function(e){if("2"===e)var t=wpforms_admin.settings_form_style_base;else{if("3"!==e)return;t=wpforms_admin.settings_form_style_none}l.alert({title:wpforms_admin.heads_up,content:t,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})},imageUploadModal:function(e){if(f.media_frame)f.media_frame.open();else{var t=l(e).closest(".wpforms-setting-field");f.media_frame=wp.media.frames.wpforms_media_frame=wp.media({className:"media-frame wpforms-media-frame",frame:"select",multiple:!1,title:wpforms_admin.upload_image_title,library:{type:"image"},button:{text:wpforms_admin.upload_image_button}}),f.media_frame.on("select",function(){var e=f.media_frame.state().get("selection").first().toJSON();t.find("input[type=text]").val(e.url),t.find("img").remove(),t.prepend('<img src="'+e.url+'">')}),f.media_frame.open()}},licenseVerify:function(e){var i=l(e),s=i.closest(".wpforms-setting-row"),t=i.outerWidth(),a=i.text(),n={action:"wpforms_verify_license",nonce:wpforms_admin.nonce,license:l("#wpforms-setting-license-key").val()};i.html(f.iconSpinner).css("width",t).prop("disabled",!0),l.post(wpforms_admin.ajax_url,n,function(e){var t,n="fa fa-check-circle",o="green";e.success?(t=e.data.msg,s.find(".type, .desc, #wpforms-setting-license-key-deactivate").show(),s.find(".type strong").text(e.data.type),l(".wpforms-license-notice").remove()):(n="fa fa-exclamation-circle",o="orange",t=e.data,s.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),l.alert({title:!1,content:t,icon:n,type:o,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),i.html(a).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseDeactivate:function(e){var i=l(e),s=i.closest(".wpforms-setting-row"),t=i.outerWidth(),a=i.text(),n={action:"wpforms_deactivate_license",nonce:wpforms_admin.nonce};i.html(f.iconSpinner).css("width",t).prop("disabled",!0),l.post(wpforms_admin.ajax_url,n,function(e){var t="fa fa-info-circle",n="blue",o=e.data;e.success?(s.find("#wpforms-setting-license-key").val(""),s.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()):(t="fa fa-exclamation-circle",n="orange"),l.alert({title:!1,content:o,icon:t,type:n,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),i.html(a).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseRefresh:function(e){var i=l(e).closest(".wpforms-setting-row"),t={action:"wpforms_refresh_license",nonce:wpforms_admin.nonce,license:l("#wpforms-setting-license-key").val()};l.post(wpforms_admin.ajax_url,t,function(e){var t,n="fa fa-check-circle",o="green";e.success?(t=e.data.msg,i.find(".type strong").text(e.data.type)):(n="fa fa-exclamation-circle",o="orange",t=e.data,i.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),l.alert({title:!1,content:t,icon:n,type:o,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}).fail(function(e){console.log(e.responseText)})},integrationConnect:function(n){var e=n.outerWidth(),o=n.text(),i=n.closest(".wpforms-settings-provider"),t={action:"wpforms_settings_provider_add",data:n.closest("form").serialize(),provider:n.data("provider"),nonce:wpforms_admin.nonce};n.html("Connecting...").css("width",e).prop("disabled",!0),l.post(wpforms_admin.ajax_url,t,function(e){if(e.success)i.find(".wpforms-settings-provider-accounts-list ul").append(e.data.html),i.addClass("connected"),n.closest(".wpforms-settings-provider-accounts-connect").slideToggle();else{var t=wpforms_admin.provider_auth_error;e.hasOwnProperty("data")&&e.data.hasOwnProperty("error_msg")&&(t+="\n"+e.data.error_msg),l.alert({title:!1,content:t,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}n.html(o).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},integrationDisconnect:function(e){var n=l(e),o=n.parents(".wpforms-settings-provider"),t={action:"wpforms_settings_provider_disconnect",provider:n.data("provider"),key:n.data("key"),nonce:wpforms_admin.nonce};l.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.provider_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){l.post(wpforms_admin.ajax_url,t,function(e){if(e.success){n.parent().parent().remove();var t=o.find(".wpforms-settings-provider-accounts-list li").length;void 0!==t&&0!==t||o.removeClass("connected")}else console.log(e)}).fail(function(e){console.log(e.responseText)})}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initTools:function(){l(document).on("click","#wpforms-ssl-verify",function(e){e.preventDefault(),s.verifySSLConnection()}),l(document).on("click","#wpforms-importer-forms-submit",function(e){if(e.preventDefault(),l("#wpforms-importer-forms input:checked").length){var t=[];l("#wpforms-importer-forms input:checked").each(function(e){t[e]=l(this).val()}),wpforms_admin.isPro?s.importForms(t):s.analyzeForms(t)}else l.alert({title:!1,content:wpforms_admin.importer_forms_required,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),l(document).on("click","#wpforms-importer-continue-submit",function(e){e.preventDefault(),s.importForms(f.formIDs)})},verifySSLConnection:function(){var t=l("#wpforms-ssl-verify"),n=t.text(),o=t.outerWidth(),i=t.parent(),e={action:"wpforms_verify_ssl",nonce:wpforms_admin.nonce};t.css("width",o).prop("disabled",!0).text(wpforms_admin.testing),l.post(wpforms_admin.ajax_url,e,function(e){console.log(e),i.find(".wpforms-alert, .wpforms-ssl-error").remove(),e.success?t.before('<div class="wpforms-alert wpforms-alert-success">'+e.data.msg+"</div>"):(t.before('<div class="wpforms-alert wpforms-alert-danger">'+e.data.msg+"</div>"),t.before('<div class="wpforms-ssl-error pre-error">'+e.data.debug+"</div>")),t.css("width",o).prop("disabled",!1).text(n)})},analyzeForms:function(e){var t=l("#wpforms-importer-analyze");t.find(".form-total").text(e.length),t.find(".form-current").text("1"),l("#wpforms-importer-forms").hide(),t.show(),f.analyzeQueue=e,f.analyzed=0,f.analyzeUpgrade=[],f.formIDs=e,s.analyzeForm()},analyzeForm:function(){var n=l("#wpforms-importer-analyze"),o=_.first(f.analyzeQueue),e={action:"wpforms_import_form_"+s.getQueryString("provider"),analyze:1,form_id:o,nonce:wpforms_admin.nonce};l.post(wpforms_admin.ajax_url,e,function(e){if(e.success)if(_.isEmpty(e.data.upgrade_plain)&&_.isEmpty(e.data.upgrade_omit)||f.analyzeUpgrade.push({name:e.data.name,fields:_.union(e.data.upgrade_omit,e.data.upgrade_plain)}),f.analyzeQueue=_.without(f.analyzeQueue,o),f.analyzed++,_.isEmpty(f.analyzeQueue))if(_.isEmpty(f.analyzeUpgrade))s.importForms(f.formIDs);else{var t=wp.template("wpforms-importer-upgrade");n.find(".upgrade").append(t(f.analyzeUpgrade)),n.find(".upgrade").show(),n.find(".process-analyze").hide()}else n.find(".form-current").text(f.analyzed+1),s.analyzeForm()})},importForms:function(e){var t=l("#wpforms-importer-process");t.find(".form-total").text(e.length),t.find(".form-current").text("1"),l("#wpforms-importer-forms, #wpforms-importer-analyze").hide(),t.show(),f.importQueue=e,f.imported=0,s.importForm()},importForm:function(){var n=l("#wpforms-importer-process"),o=_.first(f.importQueue),e={action:"wpforms_import_form_"+s.getQueryString("provider"),form_id:o,nonce:wpforms_admin.nonce};l.post(wpforms_admin.ajax_url,e,function(e){var t;e.success&&(t=e.data.error?wp.template("wpforms-importer-status-error"):wp.template("wpforms-importer-status-update"),n.find(".status").prepend(t(e.data)),n.find(".status").show(),f.importQueue=_.without(f.importQueue,o),f.imported++,_.isEmpty(f.importQueue)?(n.find(".process-count").hide(),n.find(".forms-completed").text(f.imported),n.find(".process-completed").show()):(n.find(".form-current").text(f.imported+1),s.importForm()))})},initUpgrades:function(){l(document).on("click","#wpforms-upgrade-143 button",function(e){e.preventDefault();var n=l(this),t=n.outerWidth(),o=l("#wpforms-upgrade-143 .status"),i={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,init:!0,incomplete:n.data("incomplete")};n.html(f.iconSpinner).css("width",t).prop("disabled",!0),l.post(wpforms_admin.ajax_url,i,function(e){if(e.success){f.upgraded=Number(e.data.upgraded),f.upgradeTotal=Number(e.data.total);var t=Math.round(Number(f.upgraded)/Number(f.upgradeTotal)*100);n.remove(),o.find(".bar").css("width",t+"%"),o.show().find(".total").text(f.upgradeTotal),o.find(".current").text(f.upgraded),o.find(".percent").text(t+"%"),s.upgrade143()}})})},upgrade143:function(){var n=l("#wpforms-upgrade-143 .status"),e={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,upgraded:f.upgraded};l.post(wpforms_admin.ajax_url,e,function(e){if(e.success){f.upgraded=Number(f.upgraded)+Number(e.data.count);var t=Math.round(Number(f.upgraded)/Number(f.upgradeTotal)*100);n.find(".bar").css("width",t+"%"),Number(e.data.count)<10?(n.find(".progress-bar").addClass("complete"),n.find(".msg").text(wpforms_admin.upgrade_completed)):(n.find(".current").text(f.upgraded),n.find(".percent").text(t+"%"),s.upgrade143())}})},isFormTypeNode:function(e){return"TEXTAREA"===(e=e||!1)||"INPUT"===e||"SELECT"===e},getQueryString:function(e){var t=new RegExp("[?&]"+e+"=([^&]*)").exec(window.location.search);return t&&decodeURIComponent(t[1].replace(/\+/g," "))},debug:function(e){s.isDebug()&&("object"==typeof e||e.constructor===Array?(console.log("WPForms Debug:"),console.log(e)):console.log("WPForms Debug: "+e))},isDebug:function(){return window.location.hash&&"#wpformsdebug"===window.location.hash}};s.init(),window.WPFormsAdmin=s}(jQuery);
|
1 |
+
!function(l){"use strict";var f,s={settings:{iconActivate:'<i class="fa fa-toggle-on fa-flip-horizontal" aria-hidden="true"></i>',iconDeactivate:'<i class="fa fa-toggle-on" aria-hidden="true"></i>',iconInstall:'<i class="fa fa-cloud-download" aria-hidden="true"></i>',iconSpinner:'<i class="fa fa-spinner fa-spin" aria-hidden="true"></i>',mediaFrame:!1},init:function(){f=this.settings,l(document).ready(s.ready),s.initFormOverview(),s.initEntriesSingle(),s.initEntriesList(),s.initWelcome(),s.initAddons(),s.initSettings(),s.initTools(),s.initUpgrades()},ready:function(){l(".notice").show(),l("#screen-meta-links, #screen-meta").prependTo("#wpforms-header-temp").show(),s.initChoicesJS(),s.initCheckboxMultiselectColumns(),l(".wpforms-color-picker").minicolors(),l(".wpforms-file-upload").each(function(){var e=l(this).find("input[type=file]"),n=l(this).find("label"),o=n.html();e.on("change",function(e){var t="";this.files&&1<this.files.length?t=(this.getAttribute("data-multiple-caption")||"").replace("{count}",this.files.length):e.target.value&&(t=e.target.value.split("\\").pop()),t?n.find(".fld").html(t):n.html(o)}),e.on("focus",function(){e.addClass("has-focus")}).on("blur",function(){e.removeClass("has-focus")})}),jconfirm.defaults={closeIcon:!0,backgroundDismiss:!0,escapeKey:!0,animationBounce:1,useBootstrap:!1,theme:"modern",boxWidth:"400px",animateFromElement:!1},l(document).on("click",".wpforms-upgrade-modal",function(){l.alert({title:!1,content:wpforms_admin.upgrade_modal,icon:"fa fa-info-circle",type:"blue",boxWidth:"565px",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),l(document).trigger("wpformsReady")},initChoicesJS:function(){l(".choicesjs-select").each(function(){var e=l(this),t={searchEnabled:!1};e.attr("multiple")&&(t.searchEnabled=!0,t.removeItemButton=!0),e.data("placeholder")&&(t.placeholderValue=e.data("placeholder")),"off"===e.data("sorting")&&(t.shouldSort=!1),e.data("search")&&(t.searchEnabled=!0),t.loadingText=wpforms_admin.choicesjs_loading,t.noResultsText=wpforms_admin.choicesjs_no_results,t.noChoicesText=wpforms_admin.choicesjs_no_choices,t.itemSelectText=wpforms_admin.choicesjs_item_select,new Choices(e[0],t)})},initCheckboxMultiselectColumns:function(){l(document).on("change",".checkbox-multiselect-columns input",function(){var e=l(this),t=e.parent(),n=e.closest(".checkbox-multiselect-columns"),o=t.text(),i="check-item-"+e.val(),s=n.find("#"+i);e.prop("checked")?(e.parent().addClass("checked"),s.length||n.find(".second-column ul").append('<li id="'+i+'">'+o+"</li>")):(e.parent().removeClass("checked"),n.find("#"+i).remove())}),l(document).on("click",".checkbox-multiselect-columns .all",function(e){e.preventDefault(),l(this).closest(".checkbox-multiselect-columns").find("input[type=checkbox]").prop("checked",!0).trigger("change"),l(this).remove()})},initFormOverview:function(){l(document).on("click","#wpforms-overview .wp-list-table .delete a, #wpforms-overview .wp-list-table .duplicate a",function(e){e.preventDefault();var t=l(this).attr("href"),n=l(this).parent().hasClass("delete")?wpforms_admin.form_delete_confirm:wpforms_admin.form_duplicate_confirm;l.confirm({title:!1,content:n,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},initEntriesSingle:function(){"wpforms-entries"===s.getQueryString("page")&&"details"===s.getQueryString("view")&&s.entryHotkeys(),l(document).on("click","#wpforms-entries-single .submitdelete",function(e){e.preventDefault();var t=l(this).attr("href");l.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),l(document).on("click","#wpforms-entries-single .wpforms-entry-print a",function(e){e.preventDefault(),window.open(l(this).attr("href"))}),l(document).on("click","#wpforms-entries-single .wpforms-empty-field-toggle",function(e){e.preventDefault(),"true"===wpCookies.get("wpforms_entry_hide_empty")?(wpCookies.remove("wpforms_entry_hide_empty"),l(this).text(wpforms_admin.entry_empty_fields_hide)):(wpCookies.set("wpforms_entry_hide_empty","true",2592e3),l(this).text(wpforms_admin.entry_empty_fields_show)),l(".wpforms-entry-field.empty").toggle()}),l(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .add",function(e){e.preventDefault(),l(this).hide().next("form").slideToggle()}),l(document).on("click","#wpforms-entries-single .wpforms-entry-notes-new .cancel",function(e){e.preventDefault(),l(this).closest("form").slideToggle(),l(".wpforms-entry-notes-new .add").show()}),l(document).on("click","#wpforms-entries-single .wpforms-entry-notes-byline .note-delete",function(e){e.preventDefault();var t=l(this).attr("href");l.confirm({title:!1,content:wpforms_admin.entry_note_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})})},entryHotkeys:function(){l(document).keydown(function(e){if(74!==e.keyCode||s.isFormTypeNode(e.target.nodeName)){if(75===e.keyCode&&!s.isFormTypeNode(e.target.nodeName)){var t=l("#wpforms-entry-next-link").attr("href");"#"!==t&&(window.location.href=t)}}else{var n=l("#wpforms-entry-prev-link").attr("href");"#"!==n&&(window.location.href=n)}})},initEntriesList:function(){l(document).on("click","#wpforms-entries-table-edit-columns",function(e){e.preventDefault(),s.entriesListFieldColumn()}),l(document).on("click","#wpforms-entries-list .form-selector .toggle",function(e){e.preventDefault(),l(this).toggleClass("active").next(".form-list").toggle()}),l(document).on("click","#wpforms-entries-list .wp-list-table .delete",function(e){e.preventDefault();var t=l(this).attr("href");l.confirm({title:!1,content:wpforms_admin.entry_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),l(document).on("click","#wpforms-entries-list .wp-list-table .indicator-star",function(e){e.preventDefault();var t=l(this),n="",o=Number(l("#wpforms-entries-list .starred-num").text()),i=t.data("id");t.hasClass("star")?(n="star",o++,t.attr("title",wpforms_admin.entry_unstar)):(n="unstar",o--,t.attr("title",wpforms_admin.entry_star)),t.toggleClass("star unstar"),l("#wpforms-entries-list .starred-num").text(o);var s={task:n,action:"wpforms_entry_list_star",nonce:wpforms_admin.nonce,entry_id:i};l.post(wpforms_admin.ajax_url,s)}),l(document).on("click","#wpforms-entries-list .wp-list-table .indicator-read",function(e){e.preventDefault();var t=l(this),n="",o=Number(l("#wpforms-entries-list .unread-num").text()),i=t.data("id");t.hasClass("read")?(n="read",o--,t.attr("title",wpforms_admin.entry_unread)):(n="unread",o++,t.attr("title",wpforms_admin.entry_read)),t.toggleClass("read unread"),l("#wpforms-entries-list .unread-num").text(o);var s={task:n,action:"wpforms_entry_list_read",nonce:wpforms_admin.nonce,entry_id:i};l.post(wpforms_admin.ajax_url,s)}),l(document).on("click","#wpforms-entries-list .form-details-actions-deleteall",function(e){e.preventDefault();var t=l(this).attr("href");l.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.entry_delete_all_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){window.location=t}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})}),l(document).on("heartbeat-send",function(e,t){var n=l("#wpforms-entries-list");if(n.length){var o=n.find("#wpforms-entries-table").data("last-entry-id");void 0!==o&&(t.wpforms_new_entries_entry_id=o,t.wpforms_new_entries_form_id=n.find("input[name=form_id]").val())}}),l(document).on("heartbeat-tick",function(e,t){var n,o=l("#wpforms-entries-list");o.length&&t.wpforms_new_entries_notification&&(n=o.find(".wp-list-table thead tr").first().children().length,o.find(".new-entries-notification").length||o.find(".wp-list-table thead").append('<tr class="new-entries-notification"><td colspan="'+n+'"><a href=""></a></td></tr>'),o.find(".new-entries-notification a").text(t.wpforms_new_entries_notification).slideDown({duration:500,start:function(){l(this).css({display:"block"})}}))})},entriesListFieldColumn:function(){l.alert({title:wpforms_admin.entry_field_columns,boxWidth:"500px",content:f.iconSpinner+l("#wpforms-field-column-select").html(),onContentReady:function(){var e=this.$content,t=e.find("select"),n=new Choices(t[0],{shouldSort:!1,removeItemButton:!0,placeholderValue:wpforms_admin.choicesjs_fields_select+"...",loadingText:wpforms_admin.choicesjs_loading,noResultsText:wpforms_admin.choicesjs_no_results,noChoicesText:wpforms_admin.choicesjs_no_choices,itemSelectText:wpforms_admin.choicesjs_item_select,callbackOnInit:function(){e.find(".fa").remove(),e.find("form").show()}});l(".jconfirm-content-pane, .jconfirm-box").css("overflow","visible"),n.passedElement.addEventListener("change",function(){n.hideDropdown()},!1)},buttons:{confirm:{text:wpforms_admin.save_refresh,btnClass:"btn-confirm",keys:["enter"],action:function(){this.$content.find("form").submit()}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initWelcome:function(){l(document).on("click","#wpforms-welcome .play-video",function(e){e.preventDefault();l.dialog({title:!1,content:'<div class="video-container"><iframe width="1280" height="720" src="https://www.youtube-nocookie.com/embed/yDyvSGV7tP4?rel=0&showinfo=0&autoplay=1" frameborder="0" allowfullscreen></iframe></div>',closeIcon:!0,boxWidth:"70%"})})},initAddons:function(){l(document).on("wpformsReady",function(){if(l("#wpforms-admin-addons").length&&(l(".addon-item .details").matchHeight({byrow:!1,property:"height"}),l("#wpforms-admin-addons-list").length)){var n=new List("wpforms-admin-addons-list",{valueNames:["addon-name"]});l("#wpforms-admin-addons-search").on("keyup",function(){var e=l(this).val(),t=l("#addons-heading");e?t.text(wpforms_admin.addon_search):t.text(t.data("text")),n.search(e)})}}),l(document).on("click","#wpforms-admin-addons .addon-item button",function(e){if(e.preventDefault(),l(this).hasClass("disabled"))return!1;s.addonToggle(l(this))})},addonToggle:function(t){var n,o,i,s,a,r,c=t.closest(".addon-item"),e=t.attr("data-plugin"),d=t.attr("data-type");if(t.hasClass("status-go-to-url"))window.open(t.attr("data-plugin"),"_blank");else{if(t.prop("disabled",!0).addClass("loading"),t.html(f.iconSpinner),t.hasClass("status-active"))n="wpforms_deactivate_addon",o="status-inactive","plugin"===d&&(o+=" button button-secondary"),i=wpforms_admin.addon_inactive,s=wpforms_admin.addon_activate,"addon"===d&&(s=f.iconActivate+s),a=f.iconDeactivate+wpforms_admin.addon_deactivate;else if(t.hasClass("status-inactive"))n="wpforms_activate_addon",o="status-active","plugin"===d&&(o+=" button button-secondary disabled"),i=wpforms_admin.addon_active,s=wpforms_admin.addon_deactivate,"addon"===d?s=f.iconDeactivate+s:"plugin"===d&&(s=wpforms_admin.addon_activated),a=f.iconActivate+wpforms_admin.addon_activate;else{if(!t.hasClass("status-download"))return;n="wpforms_install_addon",o="status-active","plugin"===d&&(o+=" button disabled"),i=wpforms_admin.addon_active,s=wpforms_admin.addon_activated,"addon"===d&&(s=f.iconActivate+wpforms_admin.addon_deactivate),a=f.iconInstall+wpforms_admin.addon_activate}var m={action:n,nonce:wpforms_admin.nonce,plugin:e,type:d};l.post(wpforms_admin.ajax_url,m,function(e){e.success?("wpforms_install_addon"===n?(t.attr("data-plugin",e.data.basename),r=e.data.msg,e.data.is_activated||(o="status-inactive","plugin"===d&&(o="button"),i=wpforms_admin.addon_inactive,s=f.iconActivate+wpforms_admin.addon_activate)):r=e.data,c.find(".actions").append('<div class="msg success">'+r+"</div>"),c.find("span.status-label").removeClass("status-active status-inactive status-download").addClass(o).removeClass("button button-primary button-secondary disabled").text(i),t.removeClass("status-active status-inactive status-download").removeClass("button button-primary button-secondary disabled").addClass(o).html(s)):("download_failed"===e.data[0].code?"addon"===d?c.find(".actions").append('<div class="msg error">'+wpforms_admin.addon_error+"</div>"):c.find(".actions").append('<div class="msg error">'+wpforms_admin.plugin_error+"</div>"):c.find(".actions").append('<div class="msg error">'+e.data+"</div>"),t.html(a)),t.prop("disabled",!1).removeClass("loading"),setTimeout(function(){l(".addon-item .msg").remove()},3e3)}).fail(function(e){console.log(e.responseText)})}},initSettings:function(){l(document).on("wpformsReady",function(){if(l("#wpforms-settings").length){var e=s.getQueryString("wpforms-integration"),t=s.getQueryString("jump");e?l("body").animate({scrollTop:l("#wpforms-integration-"+e).offset().top},1e3):t&&l("body").animate({scrollTop:l("#"+t).offset().top},1e3),l(".wpforms-admin-settings-form").conditions([{conditions:{element:"#wpforms-setting-gdpr",type:"checked",operator:"is"},actions:{if:{element:"#wpforms-setting-row-gdpr-disable-uuid,#wpforms-setting-row-gdpr-disable-details",action:"show"},else:{element:"#wpforms-setting-row-gdpr-disable-uuid,#wpforms-setting-row-gdpr-disable-details",action:"hide"}},effect:"appear"},{conditions:{element:"input[name=recaptcha-type]:checked",type:"value",operator:"=",condition:"v3"},actions:{if:{element:"#wpforms-setting-row-recaptcha-v3-threshold",action:"show"},else:{element:"#wpforms-setting-row-recaptcha-v3-threshold",action:"hide"}},effect:"appear"}])}}),l(document).on("change","#wpforms-setting-disable-css",function(){s.settingsFormStylesAlert(l(this).val())}),l(document).on("click",".wpforms-setting-row-image button",function(e){e.preventDefault(),s.imageUploadModal(l(this))}),l(document).on("click","#wpforms-setting-license-key-verify",function(e){e.preventDefault(),s.licenseVerify(l(this))}),l(document).on("click","#wpforms-setting-license-key-deactivate",function(e){e.preventDefault(),s.licenseDeactivate(l(this))}),l(document).on("click","#wpforms-setting-license-key-refresh",function(e){e.preventDefault(),s.licenseRefresh(l(this))}),l(document).on("click",".wpforms-settings-provider-connect",function(e){e.preventDefault();var t=l(this);s.integrationConnect(t)}),l(document).on("click",".wpforms-settings-provider-accounts-list a",function(e){e.preventDefault(),s.integrationDisconnect(l(this))}),l(document).on("click",".wpforms-settings-provider-header",function(e){e.preventDefault(),l(this).parent().find(".wpforms-settings-provider-accounts").slideToggle(),l(this).parent().find(".wpforms-settings-provider-logo i").toggleClass("fa-chevron-right fa-chevron-down")}),l(document).on("click",".wpforms-settings-provider-accounts-toggle a",function(e){e.preventDefault();var t=l(this).parent().next(".wpforms-settings-provider-accounts-connect");t.find("input[type=text], input[type=password]").val(""),t.slideToggle()})},settingsFormStylesAlert:function(e){if("2"===e)var t=wpforms_admin.settings_form_style_base;else{if("3"!==e)return;t=wpforms_admin.settings_form_style_none}l.alert({title:wpforms_admin.heads_up,content:t,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})},imageUploadModal:function(e){if(f.media_frame)f.media_frame.open();else{var t=l(e).closest(".wpforms-setting-field");f.media_frame=wp.media.frames.wpforms_media_frame=wp.media({className:"media-frame wpforms-media-frame",frame:"select",multiple:!1,title:wpforms_admin.upload_image_title,library:{type:"image"},button:{text:wpforms_admin.upload_image_button}}),f.media_frame.on("select",function(){var e=f.media_frame.state().get("selection").first().toJSON();t.find("input[type=text]").val(e.url),t.find("img").remove(),t.prepend('<img src="'+e.url+'">')}),f.media_frame.open()}},licenseVerify:function(e){var i=l(e),s=i.closest(".wpforms-setting-row"),t=i.outerWidth(),a=i.text(),n={action:"wpforms_verify_license",nonce:wpforms_admin.nonce,license:l("#wpforms-setting-license-key").val()};i.html(f.iconSpinner).css("width",t).prop("disabled",!0),l.post(wpforms_admin.ajax_url,n,function(e){var t,n="fa fa-check-circle",o="green";e.success?(t=e.data.msg,s.find(".type, .desc, #wpforms-setting-license-key-deactivate").show(),s.find(".type strong").text(e.data.type),l(".wpforms-license-notice").remove()):(n="fa fa-exclamation-circle",o="orange",t=e.data,s.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),l.alert({title:!1,content:t,icon:n,type:o,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),i.html(a).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseDeactivate:function(e){var i=l(e),s=i.closest(".wpforms-setting-row"),t=i.outerWidth(),a=i.text(),n={action:"wpforms_deactivate_license",nonce:wpforms_admin.nonce};i.html(f.iconSpinner).css("width",t).prop("disabled",!0),l.post(wpforms_admin.ajax_url,n,function(e){var t="fa fa-info-circle",n="blue",o=e.data;e.success?(s.find("#wpforms-setting-license-key").val(""),s.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()):(t="fa fa-exclamation-circle",n="orange"),l.alert({title:!1,content:o,icon:t,type:n,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}}),i.html(a).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},licenseRefresh:function(e){var i=l(e).closest(".wpforms-setting-row"),t={action:"wpforms_refresh_license",nonce:wpforms_admin.nonce,license:l("#wpforms-setting-license-key").val()};l.post(wpforms_admin.ajax_url,t,function(e){var t,n="fa fa-check-circle",o="green";e.success?(t=e.data.msg,i.find(".type strong").text(e.data.type)):(n="fa fa-exclamation-circle",o="orange",t=e.data,i.find(".type, .desc, #wpforms-setting-license-key-deactivate").hide()),l.alert({title:!1,content:t,icon:n,type:o,buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}).fail(function(e){console.log(e.responseText)})},integrationConnect:function(n){var e=n.outerWidth(),o=n.text(),i=n.closest(".wpforms-settings-provider"),t={action:"wpforms_settings_provider_add",data:n.closest("form").serialize(),provider:n.data("provider"),nonce:wpforms_admin.nonce};n.html("Connecting...").css("width",e).prop("disabled",!0),l.post(wpforms_admin.ajax_url,t,function(e){if(e.success)i.find(".wpforms-settings-provider-accounts-list ul").append(e.data.html),i.addClass("connected"),n.closest(".wpforms-settings-provider-accounts-connect").slideToggle();else{var t=wpforms_admin.provider_auth_error;e.hasOwnProperty("data")&&e.data.hasOwnProperty("error_msg")&&(t+="\n"+e.data.error_msg),l.alert({title:!1,content:t,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}n.html(o).css("width","auto").prop("disabled",!1)}).fail(function(e){console.log(e.responseText)})},integrationDisconnect:function(e){var n=l(e),o=n.parents(".wpforms-settings-provider"),t={action:"wpforms_settings_provider_disconnect",provider:n.data("provider"),key:n.data("key"),nonce:wpforms_admin.nonce};l.confirm({title:wpforms_admin.heads_up,content:wpforms_admin.provider_delete_confirm,backgroundDismiss:!1,closeIcon:!1,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"],action:function(){l.post(wpforms_admin.ajax_url,t,function(e){if(e.success){n.parent().parent().remove();var t=o.find(".wpforms-settings-provider-accounts-list li").length;void 0!==t&&0!==t||o.removeClass("connected")}else console.log(e)}).fail(function(e){console.log(e.responseText)})}},cancel:{text:wpforms_admin.cancel,keys:["esc"]}}})},initTools:function(){l(document).on("click","#wpforms-ssl-verify",function(e){e.preventDefault(),s.verifySSLConnection()}),l(document).on("click","#wpforms-importer-forms-submit",function(e){if(e.preventDefault(),l("#wpforms-importer-forms input:checked").length){var t=[];l("#wpforms-importer-forms input:checked").each(function(e){t[e]=l(this).val()}),wpforms_admin.isPro?s.importForms(t):s.analyzeForms(t)}else l.alert({title:!1,content:wpforms_admin.importer_forms_required,icon:"fa fa-info-circle",type:"blue",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}),l(document).on("click","#wpforms-importer-continue-submit",function(e){e.preventDefault(),s.importForms(f.formIDs)})},verifySSLConnection:function(){var t=l("#wpforms-ssl-verify"),n=t.text(),o=t.outerWidth(),i=t.parent(),e={action:"wpforms_verify_ssl",nonce:wpforms_admin.nonce};t.css("width",o).prop("disabled",!0).text(wpforms_admin.testing),l.post(wpforms_admin.ajax_url,e,function(e){console.log(e),i.find(".wpforms-alert, .wpforms-ssl-error").remove(),e.success?t.before('<div class="wpforms-alert wpforms-alert-success">'+e.data.msg+"</div>"):(t.before('<div class="wpforms-alert wpforms-alert-danger">'+e.data.msg+"</div>"),t.before('<div class="wpforms-ssl-error pre-error">'+e.data.debug+"</div>")),t.css("width",o).prop("disabled",!1).text(n)})},analyzeForms:function(e){var t=l("#wpforms-importer-analyze");t.find(".form-total").text(e.length),t.find(".form-current").text("1"),l("#wpforms-importer-forms").hide(),t.show(),f.analyzeQueue=e,f.analyzed=0,f.analyzeUpgrade=[],f.formIDs=e,s.analyzeForm()},analyzeForm:function(){var n=l("#wpforms-importer-analyze"),o=_.first(f.analyzeQueue),e={action:"wpforms_import_form_"+s.getQueryString("provider"),analyze:1,form_id:o,nonce:wpforms_admin.nonce};l.post(wpforms_admin.ajax_url,e,function(e){if(e.success)if(_.isEmpty(e.data.upgrade_plain)&&_.isEmpty(e.data.upgrade_omit)||f.analyzeUpgrade.push({name:e.data.name,fields:_.union(e.data.upgrade_omit,e.data.upgrade_plain)}),f.analyzeQueue=_.without(f.analyzeQueue,o),f.analyzed++,_.isEmpty(f.analyzeQueue))if(_.isEmpty(f.analyzeUpgrade))s.importForms(f.formIDs);else{var t=wp.template("wpforms-importer-upgrade");n.find(".upgrade").append(t(f.analyzeUpgrade)),n.find(".upgrade").show(),n.find(".process-analyze").hide()}else n.find(".form-current").text(f.analyzed+1),s.analyzeForm()})},importForms:function(e){var t=l("#wpforms-importer-process");t.find(".form-total").text(e.length),t.find(".form-current").text("1"),l("#wpforms-importer-forms, #wpforms-importer-analyze").hide(),t.show(),f.importQueue=e,f.imported=0,s.importForm()},importForm:function(){var n=l("#wpforms-importer-process"),o=_.first(f.importQueue),e={action:"wpforms_import_form_"+s.getQueryString("provider"),form_id:o,nonce:wpforms_admin.nonce};l.post(wpforms_admin.ajax_url,e,function(e){var t;e.success&&(t=e.data.error?wp.template("wpforms-importer-status-error"):wp.template("wpforms-importer-status-update"),n.find(".status").prepend(t(e.data)),n.find(".status").show(),f.importQueue=_.without(f.importQueue,o),f.imported++,_.isEmpty(f.importQueue)?(n.find(".process-count").hide(),n.find(".forms-completed").text(f.imported),n.find(".process-completed").show()):(n.find(".form-current").text(f.imported+1),s.importForm()))})},initUpgrades:function(){l(document).on("click","#wpforms-upgrade-143 button",function(e){e.preventDefault();var n=l(this),t=n.outerWidth(),o=l("#wpforms-upgrade-143 .status"),i={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,init:!0,incomplete:n.data("incomplete")};n.html(f.iconSpinner).css("width",t).prop("disabled",!0),l.post(wpforms_admin.ajax_url,i,function(e){if(e.success){f.upgraded=Number(e.data.upgraded),f.upgradeTotal=Number(e.data.total);var t=Math.round(Number(f.upgraded)/Number(f.upgradeTotal)*100);n.remove(),o.find(".bar").css("width",t+"%"),o.show().find(".total").text(f.upgradeTotal),o.find(".current").text(f.upgraded),o.find(".percent").text(t+"%"),s.upgrade143()}})})},upgrade143:function(){var n=l("#wpforms-upgrade-143 .status"),e={action:"wpforms_upgrade_143",nonce:wpforms_admin.nonce,upgraded:f.upgraded};l.post(wpforms_admin.ajax_url,e,function(e){if(e.success){f.upgraded=Number(f.upgraded)+Number(e.data.count);var t=Math.round(Number(f.upgraded)/Number(f.upgradeTotal)*100);n.find(".bar").css("width",t+"%"),Number(e.data.count)<10?(n.find(".progress-bar").addClass("complete"),n.find(".msg").text(wpforms_admin.upgrade_completed)):(n.find(".current").text(f.upgraded),n.find(".percent").text(t+"%"),s.upgrade143())}})},isFormTypeNode:function(e){return"TEXTAREA"===(e=e||!1)||"INPUT"===e||"SELECT"===e},getQueryString:function(e){var t=new RegExp("[?&]"+e+"=([^&]*)").exec(window.location.search);return t&&decodeURIComponent(t[1].replace(/\+/g," "))},debug:function(e){s.isDebug()&&("object"==typeof e||e.constructor===Array?(console.log("WPForms Debug:"),console.log(e)):console.log("WPForms Debug: "+e))},isDebug:function(){return window.location.hash&&"#wpformsdebug"===window.location.hash}};s.init(),window.WPFormsAdmin=s}(jQuery);
|
assets/js/jquery.validate.js
ADDED
@@ -0,0 +1,1652 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
* jQuery Validation Plugin v1.19.0
|
3 |
+
*
|
4 |
+
* https://jqueryvalidation.org/
|
5 |
+
*
|
6 |
+
* Copyright (c) 2018 Jörn Zaefferer
|
7 |
+
* Released under the MIT license
|
8 |
+
*/
|
9 |
+
(function( factory ) {
|
10 |
+
if ( typeof define === "function" && define.amd ) {
|
11 |
+
define( ["jquery"], factory );
|
12 |
+
} else if (typeof module === "object" && module.exports) {
|
13 |
+
module.exports = factory( require( "jquery" ) );
|
14 |
+
} else {
|
15 |
+
factory( jQuery );
|
16 |
+
}
|
17 |
+
}(function( $ ) {
|
18 |
+
|
19 |
+
$.extend( $.fn, {
|
20 |
+
|
21 |
+
// https://jqueryvalidation.org/validate/
|
22 |
+
validate: function( options ) {
|
23 |
+
|
24 |
+
// If nothing is selected, return nothing; can't chain anyway
|
25 |
+
if ( !this.length ) {
|
26 |
+
if ( options && options.debug && window.console ) {
|
27 |
+
console.warn( "Nothing selected, can't validate, returning nothing." );
|
28 |
+
}
|
29 |
+
return;
|
30 |
+
}
|
31 |
+
|
32 |
+
// Check if a validator for this form was already created
|
33 |
+
var validator = $.data( this[ 0 ], "validator" );
|
34 |
+
if ( validator ) {
|
35 |
+
return validator;
|
36 |
+
}
|
37 |
+
|
38 |
+
// Add novalidate tag if HTML5.
|
39 |
+
this.attr( "novalidate", "novalidate" );
|
40 |
+
|
41 |
+
validator = new $.validator( options, this[ 0 ] );
|
42 |
+
$.data( this[ 0 ], "validator", validator );
|
43 |
+
|
44 |
+
if ( validator.settings.onsubmit ) {
|
45 |
+
|
46 |
+
this.on( "click.validate", ":submit", function( event ) {
|
47 |
+
|
48 |
+
// Track the used submit button to properly handle scripted
|
49 |
+
// submits later.
|
50 |
+
validator.submitButton = event.currentTarget;
|
51 |
+
|
52 |
+
// Allow suppressing validation by adding a cancel class to the submit button
|
53 |
+
if ( $( this ).hasClass( "cancel" ) ) {
|
54 |
+
validator.cancelSubmit = true;
|
55 |
+
}
|
56 |
+
|
57 |
+
// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button
|
58 |
+
if ( $( this ).attr( "formnovalidate" ) !== undefined ) {
|
59 |
+
validator.cancelSubmit = true;
|
60 |
+
}
|
61 |
+
} );
|
62 |
+
|
63 |
+
// Validate the form on submit
|
64 |
+
this.on( "submit.validate", function( event ) {
|
65 |
+
if ( validator.settings.debug ) {
|
66 |
+
|
67 |
+
// Prevent form submit to be able to see console output
|
68 |
+
event.preventDefault();
|
69 |
+
}
|
70 |
+
|
71 |
+
function handle() {
|
72 |
+
var hidden, result;
|
73 |
+
|
74 |
+
// Insert a hidden input as a replacement for the missing submit button
|
75 |
+
// The hidden input is inserted in two cases:
|
76 |
+
// - A user defined a `submitHandler`
|
77 |
+
// - There was a pending request due to `remote` method and `stopRequest()`
|
78 |
+
// was called to submit the form in case it's valid
|
79 |
+
if ( validator.submitButton && ( validator.settings.submitHandler || validator.formSubmitted ) ) {
|
80 |
+
hidden = $( "<input type='hidden'/>" )
|
81 |
+
.attr( "name", validator.submitButton.name )
|
82 |
+
.val( $( validator.submitButton ).val() )
|
83 |
+
.appendTo( validator.currentForm );
|
84 |
+
}
|
85 |
+
|
86 |
+
if ( validator.settings.submitHandler && !validator.settings.debug ) {
|
87 |
+
result = validator.settings.submitHandler.call( validator, validator.currentForm, event );
|
88 |
+
if ( hidden ) {
|
89 |
+
|
90 |
+
// And clean up afterwards; thanks to no-block-scope, hidden can be referenced
|
91 |
+
hidden.remove();
|
92 |
+
}
|
93 |
+
if ( result !== undefined ) {
|
94 |
+
return result;
|
95 |
+
}
|
96 |
+
return false;
|
97 |
+
}
|
98 |
+
return true;
|
99 |
+
}
|
100 |
+
|
101 |
+
// Prevent submit for invalid forms or custom submit handlers
|
102 |
+
if ( validator.cancelSubmit ) {
|
103 |
+
validator.cancelSubmit = false;
|
104 |
+
return handle();
|
105 |
+
}
|
106 |
+
if ( validator.form() ) {
|
107 |
+
if ( validator.pendingRequest ) {
|
108 |
+
validator.formSubmitted = true;
|
109 |
+
return false;
|
110 |
+
}
|
111 |
+
return handle();
|
112 |
+
} else {
|
113 |
+
validator.focusInvalid();
|
114 |
+
return false;
|
115 |
+
}
|
116 |
+
} );
|
117 |
+
}
|
118 |
+
|
119 |
+
return validator;
|
120 |
+
},
|
121 |
+
|
122 |
+
// https://jqueryvalidation.org/valid/
|
123 |
+
valid: function() {
|
124 |
+
var valid, validator, errorList;
|
125 |
+
|
126 |
+
if ( $( this[ 0 ] ).is( "form" ) ) {
|
127 |
+
valid = this.validate().form();
|
128 |
+
} else {
|
129 |
+
errorList = [];
|
130 |
+
valid = true;
|
131 |
+
validator = $( this[ 0 ].form ).validate();
|
132 |
+
this.each( function() {
|
133 |
+
valid = validator.element( this ) && valid;
|
134 |
+
if ( !valid ) {
|
135 |
+
errorList = errorList.concat( validator.errorList );
|
136 |
+
}
|
137 |
+
} );
|
138 |
+
validator.errorList = errorList;
|
139 |
+
}
|
140 |
+
return valid;
|
141 |
+
},
|
142 |
+
|
143 |
+
// https://jqueryvalidation.org/rules/
|
144 |
+
rules: function( command, argument ) {
|
145 |
+
var element = this[ 0 ],
|
146 |
+
isContentEditable = typeof this.attr( "contenteditable" ) !== "undefined" && this.attr( "contenteditable" ) !== "false",
|
147 |
+
settings, staticRules, existingRules, data, param, filtered;
|
148 |
+
|
149 |
+
// If nothing is selected, return empty object; can't chain anyway
|
150 |
+
if ( element == null ) {
|
151 |
+
return;
|
152 |
+
}
|
153 |
+
|
154 |
+
if ( !element.form && isContentEditable ) {
|
155 |
+
element.form = this.closest( "form" )[ 0 ];
|
156 |
+
element.name = this.attr( "name" );
|
157 |
+
}
|
158 |
+
|
159 |
+
if ( element.form == null ) {
|
160 |
+
return;
|
161 |
+
}
|
162 |
+
|
163 |
+
if ( command ) {
|
164 |
+
settings = $.data( element.form, "validator" ).settings;
|
165 |
+
staticRules = settings.rules;
|
166 |
+
existingRules = $.validator.staticRules( element );
|
167 |
+
switch ( command ) {
|
168 |
+
case "add":
|
169 |
+
$.extend( existingRules, $.validator.normalizeRule( argument ) );
|
170 |
+
|
171 |
+
// Remove messages from rules, but allow them to be set separately
|
172 |
+
delete existingRules.messages;
|
173 |
+
staticRules[ element.name ] = existingRules;
|
174 |
+
if ( argument.messages ) {
|
175 |
+
settings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );
|
176 |
+
}
|
177 |
+
break;
|
178 |
+
case "remove":
|
179 |
+
if ( !argument ) {
|
180 |
+
delete staticRules[ element.name ];
|
181 |
+
return existingRules;
|
182 |
+
}
|
183 |
+
filtered = {};
|
184 |
+
$.each( argument.split( /\s/ ), function( index, method ) {
|
185 |
+
filtered[ method ] = existingRules[ method ];
|
186 |
+
delete existingRules[ method ];
|
187 |
+
} );
|
188 |
+
return filtered;
|
189 |
+
}
|
190 |
+
}
|
191 |
+
|
192 |
+
data = $.validator.normalizeRules(
|
193 |
+
$.extend(
|
194 |
+
{},
|
195 |
+
$.validator.classRules( element ),
|
196 |
+
$.validator.attributeRules( element ),
|
197 |
+
$.validator.dataRules( element ),
|
198 |
+
$.validator.staticRules( element )
|
199 |
+
), element );
|
200 |
+
|
201 |
+
// Make sure required is at front
|
202 |
+
if ( data.required ) {
|
203 |
+
param = data.required;
|
204 |
+
delete data.required;
|
205 |
+
data = $.extend( { required: param }, data );
|
206 |
+
}
|
207 |
+
|
208 |
+
// Make sure remote is at back
|
209 |
+
if ( data.remote ) {
|
210 |
+
param = data.remote;
|
211 |
+
delete data.remote;
|
212 |
+
data = $.extend( data, { remote: param } );
|
213 |
+
}
|
214 |
+
|
215 |
+
return data;
|
216 |
+
}
|
217 |
+
} );
|
218 |
+
|
219 |
+
// Custom selectors
|
220 |
+
$.extend( $.expr.pseudos || $.expr[ ":" ], { // '|| $.expr[ ":" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support
|
221 |
+
|
222 |
+
// https://jqueryvalidation.org/blank-selector/
|
223 |
+
blank: function( a ) {
|
224 |
+
return !$.trim( "" + $( a ).val() );
|
225 |
+
},
|
226 |
+
|
227 |
+
// https://jqueryvalidation.org/filled-selector/
|
228 |
+
filled: function( a ) {
|
229 |
+
var val = $( a ).val();
|
230 |
+
return val !== null && !!$.trim( "" + val );
|
231 |
+
},
|
232 |
+
|
233 |
+
// https://jqueryvalidation.org/unchecked-selector/
|
234 |
+
unchecked: function( a ) {
|
235 |
+
return !$( a ).prop( "checked" );
|
236 |
+
}
|
237 |
+
} );
|
238 |
+
|
239 |
+
// Constructor for validator
|
240 |
+
$.validator = function( options, form ) {
|
241 |
+
this.settings = $.extend( true, {}, $.validator.defaults, options );
|
242 |
+
this.currentForm = form;
|
243 |
+
this.init();
|
244 |
+
};
|
245 |
+
|
246 |
+
// https://jqueryvalidation.org/jQuery.validator.format/
|
247 |
+
$.validator.format = function( source, params ) {
|
248 |
+
if ( arguments.length === 1 ) {
|
249 |
+
return function() {
|
250 |
+
var args = $.makeArray( arguments );
|
251 |
+
args.unshift( source );
|
252 |
+
return $.validator.format.apply( this, args );
|
253 |
+
};
|
254 |
+
}
|
255 |
+
if ( params === undefined ) {
|
256 |
+
return source;
|
257 |
+
}
|
258 |
+
if ( arguments.length > 2 && params.constructor !== Array ) {
|
259 |
+
params = $.makeArray( arguments ).slice( 1 );
|
260 |
+
}
|
261 |
+
if ( params.constructor !== Array ) {
|
262 |
+
params = [ params ];
|
263 |
+
}
|
264 |
+
$.each( params, function( i, n ) {
|
265 |
+
source = source.replace( new RegExp( "\\{" + i + "\\}", "g" ), function() {
|
266 |
+
return n;
|
267 |
+
} );
|
268 |
+
} );
|
269 |
+
return source;
|
270 |
+
};
|
271 |
+
|
272 |
+
$.extend( $.validator, {
|
273 |
+
|
274 |
+
defaults: {
|
275 |
+
messages: {},
|
276 |
+
groups: {},
|
277 |
+
rules: {},
|
278 |
+
errorClass: "error",
|
279 |
+
pendingClass: "pending",
|
280 |
+
validClass: "valid",
|
281 |
+
errorElement: "label",
|
282 |
+
focusCleanup: false,
|
283 |
+
focusInvalid: true,
|
284 |
+
errorContainer: $( [] ),
|
285 |
+
errorLabelContainer: $( [] ),
|
286 |
+
onsubmit: true,
|
287 |
+
ignore: ":hidden",
|
288 |
+
ignoreTitle: false,
|
289 |
+
onfocusin: function( element ) {
|
290 |
+
this.lastActive = element;
|
291 |
+
|
292 |
+
// Hide error label and remove error class on focus if enabled
|
293 |
+
if ( this.settings.focusCleanup ) {
|
294 |
+
if ( this.settings.unhighlight ) {
|
295 |
+
this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );
|
296 |
+
}
|
297 |
+
this.hideThese( this.errorsFor( element ) );
|
298 |
+
}
|
299 |
+
},
|
300 |
+
onfocusout: function( element ) {
|
301 |
+
if ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {
|
302 |
+
this.element( element );
|
303 |
+
}
|
304 |
+
},
|
305 |
+
onkeyup: function( element, event ) {
|
306 |
+
|
307 |
+
// Avoid revalidate the field when pressing one of the following keys
|
308 |
+
// Shift => 16
|
309 |
+
// Ctrl => 17
|
310 |
+
// Alt => 18
|
311 |
+
// Caps lock => 20
|
312 |
+
// End => 35
|
313 |
+
// Home => 36
|
314 |
+
// Left arrow => 37
|
315 |
+
// Up arrow => 38
|
316 |
+
// Right arrow => 39
|
317 |
+
// Down arrow => 40
|
318 |
+
// Insert => 45
|
319 |
+
// Num lock => 144
|
320 |
+
// AltGr key => 225
|
321 |
+
var excludedKeys = [
|
322 |
+
16, 17, 18, 20, 35, 36, 37,
|
323 |
+
38, 39, 40, 45, 144, 225
|
324 |
+
];
|
325 |
+
|
326 |
+
if ( event.which === 9 && this.elementValue( element ) === "" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {
|
327 |
+
return;
|
328 |
+
} else if ( element.name in this.submitted || element.name in this.invalid ) {
|
329 |
+
this.element( element );
|
330 |
+
}
|
331 |
+
},
|
332 |
+
onclick: function( element ) {
|
333 |
+
|
334 |
+
// Click on selects, radiobuttons and checkboxes
|
335 |
+
if ( element.name in this.submitted ) {
|
336 |
+
this.element( element );
|
337 |
+
|
338 |
+
// Or option elements, check parent select in that case
|
339 |
+
} else if ( element.parentNode.name in this.submitted ) {
|
340 |
+
this.element( element.parentNode );
|
341 |
+
}
|
342 |
+
},
|
343 |
+
highlight: function( element, errorClass, validClass ) {
|
344 |
+
if ( element.type === "radio" ) {
|
345 |
+
this.findByName( element.name ).addClass( errorClass ).removeClass( validClass );
|
346 |
+
} else {
|
347 |
+
$( element ).addClass( errorClass ).removeClass( validClass );
|
348 |
+
}
|
349 |
+
},
|
350 |
+
unhighlight: function( element, errorClass, validClass ) {
|
351 |
+
if ( element.type === "radio" ) {
|
352 |
+
this.findByName( element.name ).removeClass( errorClass ).addClass( validClass );
|
353 |
+
} else {
|
354 |
+
$( element ).removeClass( errorClass ).addClass( validClass );
|
355 |
+
}
|
356 |
+
}
|
357 |
+
},
|
358 |
+
|
359 |
+
// https://jqueryvalidation.org/jQuery.validator.setDefaults/
|
360 |
+
setDefaults: function( settings ) {
|
361 |
+
$.extend( $.validator.defaults, settings );
|
362 |
+
},
|
363 |
+
|
364 |
+
messages: {
|
365 |
+
required: "This field is required.",
|
366 |
+
remote: "Please fix this field.",
|
367 |
+
email: "Please enter a valid email address.",
|
368 |
+
url: "Please enter a valid URL.",
|
369 |
+
date: "Please enter a valid date.",
|
370 |
+
dateISO: "Please enter a valid date (ISO).",
|
371 |
+
number: "Please enter a valid number.",
|
372 |
+
digits: "Please enter only digits.",
|
373 |
+
equalTo: "Please enter the same value again.",
|
374 |
+
maxlength: $.validator.format( "Please enter no more than {0} characters." ),
|
375 |
+
minlength: $.validator.format( "Please enter at least {0} characters." ),
|
376 |
+
rangelength: $.validator.format( "Please enter a value between {0} and {1} characters long." ),
|
377 |
+
range: $.validator.format( "Please enter a value between {0} and {1}." ),
|
378 |
+
max: $.validator.format( "Please enter a value less than or equal to {0}." ),
|
379 |
+
min: $.validator.format( "Please enter a value greater than or equal to {0}." ),
|
380 |
+
step: $.validator.format( "Please enter a multiple of {0}." )
|
381 |
+
},
|
382 |
+
|
383 |
+
autoCreateRanges: false,
|
384 |
+
|
385 |
+
prototype: {
|
386 |
+
|
387 |
+
init: function() {
|
388 |
+
this.labelContainer = $( this.settings.errorLabelContainer );
|
389 |
+
this.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );
|
390 |
+
this.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );
|
391 |
+
this.submitted = {};
|
392 |
+
this.valueCache = {};
|
393 |
+
this.pendingRequest = 0;
|
394 |
+
this.pending = {};
|
395 |
+
this.invalid = {};
|
396 |
+
this.reset();
|
397 |
+
|
398 |
+
var currentForm = this.currentForm,
|
399 |
+
groups = ( this.groups = {} ),
|
400 |
+
rules;
|
401 |
+
$.each( this.settings.groups, function( key, value ) {
|
402 |
+
if ( typeof value === "string" ) {
|
403 |
+
value = value.split( /\s/ );
|
404 |
+
}
|
405 |
+
$.each( value, function( index, name ) {
|
406 |
+
groups[ name ] = key;
|
407 |
+
} );
|
408 |
+
} );
|
409 |
+
rules = this.settings.rules;
|
410 |
+
$.each( rules, function( key, value ) {
|
411 |
+
rules[ key ] = $.validator.normalizeRule( value );
|
412 |
+
} );
|
413 |
+
|
414 |
+
function delegate( event ) {
|
415 |
+
var isContentEditable = typeof $( this ).attr( "contenteditable" ) !== "undefined" && $( this ).attr( "contenteditable" ) !== "false";
|
416 |
+
|
417 |
+
// Set form expando on contenteditable
|
418 |
+
if ( !this.form && isContentEditable ) {
|
419 |
+
this.form = $( this ).closest( "form" )[ 0 ];
|
420 |
+
this.name = $( this ).attr( "name" );
|
421 |
+
}
|
422 |
+
|
423 |
+
// Ignore the element if it belongs to another form. This will happen mainly
|
424 |
+
// when setting the `form` attribute of an input to the id of another form.
|
425 |
+
if ( currentForm !== this.form ) {
|
426 |
+
return;
|
427 |
+
}
|
428 |
+
|
429 |
+
var validator = $.data( this.form, "validator" ),
|
430 |
+
eventType = "on" + event.type.replace( /^validate/, "" ),
|
431 |
+
settings = validator.settings;
|
432 |
+
if ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {
|
433 |
+
settings[ eventType ].call( validator, this, event );
|
434 |
+
}
|
435 |
+
}
|
436 |
+
|
437 |
+
$( this.currentForm )
|
438 |
+
.on( "focusin.validate focusout.validate keyup.validate",
|
439 |
+
":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], " +
|
440 |
+
"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], " +
|
441 |
+
"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], " +
|
442 |
+
"[type='radio'], [type='checkbox'], [contenteditable], [type='button']", delegate )
|
443 |
+
|
444 |
+
// Support: Chrome, oldIE
|
445 |
+
// "select" is provided as event.target when clicking a option
|
446 |
+
.on( "click.validate", "select, option, [type='radio'], [type='checkbox']", delegate );
|
447 |
+
|
448 |
+
if ( this.settings.invalidHandler ) {
|
449 |
+
$( this.currentForm ).on( "invalid-form.validate", this.settings.invalidHandler );
|
450 |
+
}
|
451 |
+
},
|
452 |
+
|
453 |
+
// https://jqueryvalidation.org/Validator.form/
|
454 |
+
form: function() {
|
455 |
+
this.checkForm();
|
456 |
+
$.extend( this.submitted, this.errorMap );
|
457 |
+
this.invalid = $.extend( {}, this.errorMap );
|
458 |
+
if ( !this.valid() ) {
|
459 |
+
$( this.currentForm ).triggerHandler( "invalid-form", [ this ] );
|
460 |
+
}
|
461 |
+
this.showErrors();
|
462 |
+
return this.valid();
|
463 |
+
},
|
464 |
+
|
465 |
+
checkForm: function() {
|
466 |
+
this.prepareForm();
|
467 |
+
for ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {
|
468 |
+
this.check( elements[ i ] );
|
469 |
+
}
|
470 |
+
return this.valid();
|
471 |
+
},
|
472 |
+
|
473 |
+
// https://jqueryvalidation.org/Validator.element/
|
474 |
+
element: function( element ) {
|
475 |
+
var cleanElement = this.clean( element ),
|
476 |
+
checkElement = this.validationTargetFor( cleanElement ),
|
477 |
+
v = this,
|
478 |
+
result = true,
|
479 |
+
rs, group;
|
480 |
+
|
481 |
+
if ( checkElement === undefined ) {
|
482 |
+
delete this.invalid[ cleanElement.name ];
|
483 |
+
} else {
|
484 |
+
this.prepareElement( checkElement );
|
485 |
+
this.currentElements = $( checkElement );
|
486 |
+
|
487 |
+
// If this element is grouped, then validate all group elements already
|
488 |
+
// containing a value
|
489 |
+
group = this.groups[ checkElement.name ];
|
490 |
+
if ( group ) {
|
491 |
+
$.each( this.groups, function( name, testgroup ) {
|
492 |
+
if ( testgroup === group && name !== checkElement.name ) {
|
493 |
+
cleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) );
|
494 |
+
if ( cleanElement && cleanElement.name in v.invalid ) {
|
495 |
+
v.currentElements.push( cleanElement );
|
496 |
+
result = v.check( cleanElement ) && result;
|
497 |
+
}
|
498 |
+
}
|
499 |
+
} );
|
500 |
+
}
|
501 |
+
|
502 |
+
rs = this.check( checkElement ) !== false;
|
503 |
+
result = result && rs;
|
504 |
+
if ( rs ) {
|
505 |
+
this.invalid[ checkElement.name ] = false;
|
506 |
+
} else {
|
507 |
+
this.invalid[ checkElement.name ] = true;
|
508 |
+
}
|
509 |
+
|
510 |
+
if ( !this.numberOfInvalids() ) {
|
511 |
+
|
512 |
+
// Hide error containers on last error
|
513 |
+
this.toHide = this.toHide.add( this.containers );
|
514 |
+
}
|
515 |
+
this.showErrors();
|
516 |
+
|
517 |
+
// Add aria-invalid status for screen readers
|
518 |
+
$( element ).attr( "aria-invalid", !rs );
|
519 |
+
}
|
520 |
+
|
521 |
+
return result;
|
522 |
+
},
|
523 |
+
|
524 |
+
// https://jqueryvalidation.org/Validator.showErrors/
|
525 |
+
showErrors: function( errors ) {
|
526 |
+
if ( errors ) {
|
527 |
+
var validator = this;
|
528 |
+
|
529 |
+
// Add items to error list and map
|
530 |
+
$.extend( this.errorMap, errors );
|
531 |
+
this.errorList = $.map( this.errorMap, function( message, name ) {
|
532 |
+
return {
|
533 |
+
message: message,
|
534 |
+
element: validator.findByName( name )[ 0 ]
|
535 |
+
};
|
536 |
+
} );
|
537 |
+
|
538 |
+
// Remove items from success list
|
539 |
+
this.successList = $.grep( this.successList, function( element ) {
|
540 |
+
return !( element.name in errors );
|
541 |
+
} );
|
542 |
+
}
|
543 |
+
if ( this.settings.showErrors ) {
|
544 |
+
this.settings.showErrors.call( this, this.errorMap, this.errorList );
|
545 |
+
} else {
|
546 |
+
this.defaultShowErrors();
|
547 |
+
}
|
548 |
+
},
|
549 |
+
|
550 |
+
// https://jqueryvalidation.org/Validator.resetForm/
|
551 |
+
resetForm: function() {
|
552 |
+
if ( $.fn.resetForm ) {
|
553 |
+
$( this.currentForm ).resetForm();
|
554 |
+
}
|
555 |
+
this.invalid = {};
|
556 |
+
this.submitted = {};
|
557 |
+
this.prepareForm();
|
558 |
+
this.hideErrors();
|
559 |
+
var elements = this.elements()
|
560 |
+
.removeData( "previousValue" )
|
561 |
+
.removeAttr( "aria-invalid" );
|
562 |
+
|
563 |
+
console.log( elements );
|
564 |
+
|
565 |
+
this.resetElements( elements );
|
566 |
+
},
|
567 |
+
|
568 |
+
resetElements: function( elements ) {
|
569 |
+
var i;
|
570 |
+
|
571 |
+
if ( this.settings.unhighlight ) {
|
572 |
+
for ( i = 0; elements[ i ]; i++ ) {
|
573 |
+
this.settings.unhighlight.call( this, elements[ i ],
|
574 |
+
this.settings.errorClass, "" );
|
575 |
+
this.findByName( elements[ i ].name ).removeClass( this.settings.validClass );
|
576 |
+
}
|
577 |
+
} else {
|
578 |
+
elements
|
579 |
+
.removeClass( this.settings.errorClass )
|
580 |
+
.removeClass( this.settings.validClass );
|
581 |
+
}
|
582 |
+
},
|
583 |
+
|
584 |
+
numberOfInvalids: function() {
|
585 |
+
return this.objectLength( this.invalid );
|
586 |
+
},
|
587 |
+
|
588 |
+
objectLength: function( obj ) {
|
589 |
+
/* jshint unused: false */
|
590 |
+
var count = 0,
|
591 |
+
i;
|
592 |
+
for ( i in obj ) {
|
593 |
+
|
594 |
+
// This check allows counting elements with empty error
|
595 |
+
// message as invalid elements
|
596 |
+
if ( obj[ i ] !== undefined && obj[ i ] !== null && obj[ i ] !== false ) {
|
597 |
+
count++;
|
598 |
+
}
|
599 |
+
}
|
600 |
+
return count;
|
601 |
+
},
|
602 |
+
|
603 |
+
hideErrors: function() {
|
604 |
+
this.hideThese( this.toHide );
|
605 |
+
},
|
606 |
+
|
607 |
+
hideThese: function( errors ) {
|
608 |
+
errors.not( this.containers ).text( "" );
|
609 |
+
this.addWrapper( errors ).hide();
|
610 |
+
},
|
611 |
+
|
612 |
+
valid: function() {
|
613 |
+
return this.size() === 0;
|
614 |
+
},
|
615 |
+
|
616 |
+
size: function() {
|
617 |
+
return this.errorList.length;
|
618 |
+
},
|
619 |
+
|
620 |
+
focusInvalid: function() {
|
621 |
+
if ( this.settings.focusInvalid ) {
|
622 |
+
try {
|
623 |
+
$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] )
|
624 |
+
.filter( ":visible" )
|
625 |
+
.focus()
|
626 |
+
|
627 |
+
// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find
|
628 |
+
.trigger( "focusin" );
|
629 |
+
} catch ( e ) {
|
630 |
+
|
631 |
+
// Ignore IE throwing errors when focusing hidden elements
|
632 |
+
}
|
633 |
+
}
|
634 |
+
},
|
635 |
+
|
636 |
+
findLastActive: function() {
|
637 |
+
var lastActive = this.lastActive;
|
638 |
+
return lastActive && $.grep( this.errorList, function( n ) {
|
639 |
+
return n.element.name === lastActive.name;
|
640 |
+
} ).length === 1 && lastActive;
|
641 |
+
},
|
642 |
+
|
643 |
+
elements: function() {
|
644 |
+
var validator = this,
|
645 |
+
rulesCache = {};
|
646 |
+
|
647 |
+
// Select all valid inputs inside the form (no submit or reset buttons)
|
648 |
+
return $( this.currentForm )
|
649 |
+
.find( "input, select, textarea, [contenteditable]" )
|
650 |
+
.not( ":submit, :reset, :image, :disabled" )
|
651 |
+
.not( this.settings.ignore )
|
652 |
+
.filter( function() {
|
653 |
+
var name = this.name || $( this ).attr( "name" ); // For contenteditable
|
654 |
+
var isContentEditable = typeof $( this ).attr( "contenteditable" ) !== "undefined" && $( this ).attr( "contenteditable" ) !== "false";
|
655 |
+
|
656 |
+
if ( !name && validator.settings.debug && window.console ) {
|
657 |
+
console.error( "%o has no name assigned", this );
|
658 |
+
}
|
659 |
+
|
660 |
+
// Set form expando on contenteditable
|
661 |
+
if ( isContentEditable ) {
|
662 |
+
this.form = $( this ).closest( "form" )[ 0 ];
|
663 |
+
this.name = name;
|
664 |
+
}
|
665 |
+
|
666 |
+
// Ignore elements that belong to other/nested forms
|
667 |
+
if ( this.form !== validator.currentForm ) {
|
668 |
+
return false;
|
669 |
+
}
|
670 |
+
|
671 |
+
// Select only the first element for each name, and only those with rules specified
|
672 |
+
if ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {
|
673 |
+
return false;
|
674 |
+
}
|
675 |
+
|
676 |
+
rulesCache[ name ] = true;
|
677 |
+
return true;
|
678 |
+
} );
|
679 |
+
},
|
680 |
+
|
681 |
+
clean: function( selector ) {
|
682 |
+
return $( selector )[ 0 ];
|
683 |
+
},
|
684 |
+
|
685 |
+
errors: function() {
|
686 |
+
var errorClass = this.settings.errorClass.split( " " ).join( "." );
|
687 |
+
return $( this.settings.errorElement + "." + errorClass, this.errorContext );
|
688 |
+
},
|
689 |
+
|
690 |
+
resetInternals: function() {
|
691 |
+
this.successList = [];
|
692 |
+
this.errorList = [];
|
693 |
+
this.errorMap = {};
|
694 |
+
this.toShow = $( [] );
|
695 |
+
this.toHide = $( [] );
|
696 |
+
},
|
697 |
+
|
698 |
+
reset: function() {
|
699 |
+
this.resetInternals();
|
700 |
+
this.currentElements = $( [] );
|
701 |
+
},
|
702 |
+
|
703 |
+
prepareForm: function() {
|
704 |
+
this.reset();
|
705 |
+
this.toHide = this.errors().add( this.containers );
|
706 |
+
},
|
707 |
+
|
708 |
+
prepareElement: function( element ) {
|
709 |
+
this.reset();
|
710 |
+
this.toHide = this.errorsFor( element );
|
711 |
+
},
|
712 |
+
|
713 |
+
elementValue: function( element ) {
|
714 |
+
var $element = $( element ),
|
715 |
+
type = element.type,
|
716 |
+
isContentEditable = typeof $element.attr( "contenteditable" ) !== "undefined" && $element.attr( "contenteditable" ) !== "false",
|
717 |
+
val, idx;
|
718 |
+
|
719 |
+
if ( type === "radio" || type === "checkbox" ) {
|
720 |
+
return this.findByName( element.name ).filter( ":checked" ).val();
|
721 |
+
} else if ( type === "number" && typeof element.validity !== "undefined" ) {
|
722 |
+
return element.validity.badInput ? "NaN" : $element.val();
|
723 |
+
}
|
724 |
+
|
725 |
+
if ( isContentEditable ) {
|
726 |
+
val = $element.text();
|
727 |
+
} else {
|
728 |
+
val = $element.val();
|
729 |
+
}
|
730 |
+
|
731 |
+
if ( type === "file" ) {
|
732 |
+
|
733 |
+
// Modern browser (chrome & safari)
|
734 |
+
if ( val.substr( 0, 12 ) === "C:\\fakepath\\" ) {
|
735 |
+
return val.substr( 12 );
|
736 |
+
}
|
737 |
+
|
738 |
+
// Legacy browsers
|
739 |
+
// Unix-based path
|
740 |
+
idx = val.lastIndexOf( "/" );
|
741 |
+
if ( idx >= 0 ) {
|
742 |
+
return val.substr( idx + 1 );
|
743 |
+
}
|
744 |
+
|
745 |
+
// Windows-based path
|
746 |
+
idx = val.lastIndexOf( "\\" );
|
747 |
+
if ( idx >= 0 ) {
|
748 |
+
return val.substr( idx + 1 );
|
749 |
+
}
|
750 |
+
|
751 |
+
// Just the file name
|
752 |
+
return val;
|
753 |
+
}
|
754 |
+
|
755 |
+
if ( typeof val === "string" ) {
|
756 |
+
return val.replace( /\r/g, "" );
|
757 |
+
}
|
758 |
+
return val;
|
759 |
+
},
|
760 |
+
|
761 |
+
check: function( element ) {
|
762 |
+
element = this.validationTargetFor( this.clean( element ) );
|
763 |
+
|
764 |
+
var rules = $( element ).rules(),
|
765 |
+
rulesCount = $.map( rules, function( n, i ) {
|
766 |
+
return i;
|
767 |
+
} ).length,
|
768 |
+
dependencyMismatch = false,
|
769 |
+
val = this.elementValue( element ),
|
770 |
+
result, method, rule, normalizer;
|
771 |
+
|
772 |
+
// Prioritize the local normalizer defined for this element over the global one
|
773 |
+
// if the former exists, otherwise user the global one in case it exists.
|
774 |
+
if ( typeof rules.normalizer === "function" ) {
|
775 |
+
normalizer = rules.normalizer;
|
776 |
+
} else if ( typeof this.settings.normalizer === "function" ) {
|
777 |
+
normalizer = this.settings.normalizer;
|
778 |
+
}
|
779 |
+
|
780 |
+
// If normalizer is defined, then call it to retreive the changed value instead
|
781 |
+
// of using the real one.
|
782 |
+
// Note that `this` in the normalizer is `element`.
|
783 |
+
if ( normalizer ) {
|
784 |
+
val = normalizer.call( element, val );
|
785 |
+
|
786 |
+
// Delete the normalizer from rules to avoid treating it as a pre-defined method.
|
787 |
+
delete rules.normalizer;
|
788 |
+
}
|
789 |
+
|
790 |
+
for ( method in rules ) {
|
791 |
+
rule = { method: method, parameters: rules[ method ] };
|
792 |
+
try {
|
793 |
+
result = $.validator.methods[ method ].call( this, val, element, rule.parameters );
|
794 |
+
|
795 |
+
// If a method indicates that the field is optional and therefore valid,
|
796 |
+
// don't mark it as valid when there are no other rules
|
797 |
+
if ( result === "dependency-mismatch" && rulesCount === 1 ) {
|
798 |
+
dependencyMismatch = true;
|
799 |
+
continue;
|
800 |
+
}
|
801 |
+
dependencyMismatch = false;
|
802 |
+
|
803 |
+
if ( result === "pending" ) {
|
804 |
+
this.toHide = this.toHide.not( this.errorsFor( element ) );
|
805 |
+
return;
|
806 |
+
}
|
807 |
+
|
808 |
+
if ( !result ) {
|
809 |
+
this.formatAndAdd( element, rule );
|
810 |
+
return false;
|
811 |
+
}
|
812 |
+
} catch ( e ) {
|
813 |
+
if ( this.settings.debug && window.console ) {
|
814 |
+
console.log( "Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.", e );
|
815 |
+
}
|
816 |
+
if ( e instanceof TypeError ) {
|
817 |
+
e.message += ". Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.";
|
818 |
+
}
|
819 |
+
|
820 |
+
throw e;
|
821 |
+
}
|
822 |
+
}
|
823 |
+
if ( dependencyMismatch ) {
|
824 |
+
return;
|
825 |
+
}
|
826 |
+
if ( this.objectLength( rules ) ) {
|
827 |
+
this.successList.push( element );
|
828 |
+
}
|
829 |
+
return true;
|
830 |
+
},
|
831 |
+
|
832 |
+
// Return the custom message for the given element and validation method
|
833 |
+
// specified in the element's HTML5 data attribute
|
834 |
+
// return the generic message if present and no method specific message is present
|
835 |
+
customDataMessage: function( element, method ) {
|
836 |
+
return $( element ).data( "msg" + method.charAt( 0 ).toUpperCase() +
|
837 |
+
method.substring( 1 ).toLowerCase() ) || $( element ).data( "msg" );
|
838 |
+
},
|
839 |
+
|
840 |
+
// Return the custom message for the given element name and validation method
|
841 |
+
customMessage: function( name, method ) {
|
842 |
+
var m = this.settings.messages[ name ];
|
843 |
+
return m && ( m.constructor === String ? m : m[ method ] );
|
844 |
+
},
|
845 |
+
|
846 |
+
// Return the first defined argument, allowing empty strings
|
847 |
+
findDefined: function() {
|
848 |
+
for ( var i = 0; i < arguments.length; i++ ) {
|
849 |
+
if ( arguments[ i ] !== undefined ) {
|
850 |
+
return arguments[ i ];
|
851 |
+
}
|
852 |
+
}
|
853 |
+
return undefined;
|
854 |
+
},
|
855 |
+
|
856 |
+
// The second parameter 'rule' used to be a string, and extended to an object literal
|
857 |
+
// of the following form:
|
858 |
+
// rule = {
|
859 |
+
// method: "method name",
|
860 |
+
// parameters: "the given method parameters"
|
861 |
+
// }
|
862 |
+
//
|
863 |
+
// The old behavior still supported, kept to maintain backward compatibility with
|
864 |
+
// old code, and will be removed in the next major release.
|
865 |
+
defaultMessage: function( element, rule ) {
|
866 |
+
if ( typeof rule === "string" ) {
|
867 |
+
rule = { method: rule };
|
868 |
+
}
|
869 |
+
|
870 |
+
var message = this.findDefined(
|
871 |
+
this.customMessage( element.name, rule.method ),
|
872 |
+
this.customDataMessage( element, rule.method ),
|
873 |
+
|
874 |
+
// 'title' is never undefined, so handle empty string as undefined
|
875 |
+
!this.settings.ignoreTitle && element.title || undefined,
|
876 |
+
$.validator.messages[ rule.method ],
|
877 |
+
"<strong>Warning: No message defined for " + element.name + "</strong>"
|
878 |
+
),
|
879 |
+
theregex = /\$?\{(\d+)\}/g;
|
880 |
+
if ( typeof message === "function" ) {
|
881 |
+
message = message.call( this, rule.parameters, element );
|
882 |
+
} else if ( theregex.test( message ) ) {
|
883 |
+
message = $.validator.format( message.replace( theregex, "{$1}" ), rule.parameters );
|
884 |
+
}
|
885 |
+
|
886 |
+
return message;
|
887 |
+
},
|
888 |
+
|
889 |
+
formatAndAdd: function( element, rule ) {
|
890 |
+
var message = this.defaultMessage( element, rule );
|
891 |
+
|
892 |
+
this.errorList.push( {
|
893 |
+
message: message,
|
894 |
+
element: element,
|
895 |
+
method: rule.method
|
896 |
+
} );
|
897 |
+
|
898 |
+
this.errorMap[ element.name ] = message;
|
899 |
+
this.submitted[ element.name ] = message;
|
900 |
+
},
|
901 |
+
|
902 |
+
addWrapper: function( toToggle ) {
|
903 |
+
if ( this.settings.wrapper ) {
|
904 |
+
toToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );
|
905 |
+
}
|
906 |
+
return toToggle;
|
907 |
+
},
|
908 |
+
|
909 |
+
defaultShowErrors: function() {
|
910 |
+
var i, elements, error;
|
911 |
+
for ( i = 0; this.errorList[ i ]; i++ ) {
|
912 |
+
error = this.errorList[ i ];
|
913 |
+
if ( this.settings.highlight ) {
|
914 |
+
this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );
|
915 |
+
}
|
916 |
+
this.showLabel( error.element, error.message );
|
917 |
+
}
|
918 |
+
if ( this.errorList.length ) {
|
919 |
+
this.toShow = this.toShow.add( this.containers );
|
920 |
+
}
|
921 |
+
if ( this.settings.success ) {
|
922 |
+
for ( i = 0; this.successList[ i ]; i++ ) {
|
923 |
+
this.showLabel( this.successList[ i ] );
|
924 |
+
}
|
925 |
+
}
|
926 |
+
if ( this.settings.unhighlight ) {
|
927 |
+
for ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {
|
928 |
+
this.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );
|
929 |
+
}
|
930 |
+
}
|
931 |
+
this.toHide = this.toHide.not( this.toShow );
|
932 |
+
this.hideErrors();
|
933 |
+
this.addWrapper( this.toShow ).show();
|
934 |
+
},
|
935 |
+
|
936 |
+
validElements: function() {
|
937 |
+
return this.currentElements.not( this.invalidElements() );
|
938 |
+
},
|
939 |
+
|
940 |
+
invalidElements: function() {
|
941 |
+
return $( this.errorList ).map( function() {
|
942 |
+
return this.element;
|
943 |
+
} );
|
944 |
+
},
|
945 |
+
|
946 |
+
showLabel: function( element, message ) {
|
947 |
+
var place, group, errorID, v,
|
948 |
+
error = this.errorsFor( element ),
|
949 |
+
elementID = this.idOrName( element ),
|
950 |
+
describedBy = $( element ).attr( "aria-describedby" );
|
951 |
+
|
952 |
+
if ( error.length ) {
|
953 |
+
|
954 |
+
// Refresh error/success class
|
955 |
+
error.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );
|
956 |
+
|
957 |
+
// Replace message on existing label
|
958 |
+
error.html( message );
|
959 |
+
} else {
|
960 |
+
|
961 |
+
// Create error element
|
962 |
+
error = $( "<" + this.settings.errorElement + ">" )
|
963 |
+
.attr( "id", elementID + "-error" )
|
964 |
+
.addClass( this.settings.errorClass )
|
965 |
+
.html( message || "" );
|
966 |
+
|
967 |
+
// Maintain reference to the element to be placed into the DOM
|
968 |
+
place = error;
|
969 |
+
if ( this.settings.wrapper ) {
|
970 |
+
|
971 |
+
// Make sure the element is visible, even in IE
|
972 |
+
// actually showing the wrapped element is handled elsewhere
|
973 |
+
place = error.hide().show().wrap( "<" + this.settings.wrapper + "/>" ).parent();
|
974 |
+
}
|
975 |
+
if ( this.labelContainer.length ) {
|
976 |
+
this.labelContainer.append( place );
|
977 |
+
} else if ( this.settings.errorPlacement ) {
|
978 |
+
this.settings.errorPlacement.call( this, place, $( element ) );
|
979 |
+
} else {
|
980 |
+
place.insertAfter( element );
|
981 |
+
}
|
982 |
+
|
983 |
+
// Link error back to the element
|
984 |
+
if ( error.is( "label" ) ) {
|
985 |
+
|
986 |
+
// If the error is a label, then associate using 'for'
|
987 |
+
error.attr( "for", elementID );
|
988 |
+
|
989 |
+
// If the element is not a child of an associated label, then it's necessary
|
990 |
+
// to explicitly apply aria-describedby
|
991 |
+
} else if ( error.parents( "label[for='" + this.escapeCssMeta( elementID ) + "']" ).length === 0 ) {
|
992 |
+
errorID = error.attr( "id" );
|
993 |
+
|
994 |
+
// Respect existing non-error aria-describedby
|
995 |
+
if ( !describedBy ) {
|
996 |
+
describedBy = errorID;
|
997 |
+
} else if ( !describedBy.match( new RegExp( "\\b" + this.escapeCssMeta( errorID ) + "\\b" ) ) ) {
|
998 |
+
|
999 |
+
// Add to end of list if not already present
|
1000 |
+
describedBy += " " + errorID;
|
1001 |
+
}
|
1002 |
+
$( element ).attr( "aria-describedby", describedBy );
|
1003 |
+
|
1004 |
+
// If this element is grouped, then assign to all elements in the same group
|
1005 |
+
group = this.groups[ element.name ];
|
1006 |
+
if ( group ) {
|
1007 |
+
v = this;
|
1008 |
+
$.each( v.groups, function( name, testgroup ) {
|
1009 |
+
if ( testgroup === group ) {
|
1010 |
+
$( "[name='" + v.escapeCssMeta( name ) + "']", v.currentForm )
|
1011 |
+
.attr( "aria-describedby", error.attr( "id" ) );
|
1012 |
+
}
|
1013 |
+
} );
|
1014 |
+
}
|
1015 |
+
}
|
1016 |
+
}
|
1017 |
+
if ( !message && this.settings.success ) {
|
1018 |
+
error.text( "" );
|
1019 |
+
if ( typeof this.settings.success === "string" ) {
|
1020 |
+
error.addClass( this.settings.success );
|
1021 |
+
} else {
|
1022 |
+
this.settings.success( error, element );
|
1023 |
+
}
|
1024 |
+
}
|
1025 |
+
this.toShow = this.toShow.add( error );
|
1026 |
+
},
|
1027 |
+
|
1028 |
+
errorsFor: function( element ) {
|
1029 |
+
var name = this.escapeCssMeta( this.idOrName( element ) ),
|
1030 |
+
describer = $( element ).attr( "aria-describedby" ),
|
1031 |
+
selector = "label[for='" + name + "'], label[for='" + name + "'] *";
|
1032 |
+
|
1033 |
+
// 'aria-describedby' should directly reference the error element
|
1034 |
+
if ( describer ) {
|
1035 |
+
selector = selector + ", #" + this.escapeCssMeta( describer )
|
1036 |
+
.replace( /\s+/g, ", #" );
|
1037 |
+
}
|
1038 |
+
|
1039 |
+
return this
|
1040 |
+
.errors()
|
1041 |
+
.filter( selector );
|
1042 |
+
},
|
1043 |
+
|
1044 |
+
// See https://api.jquery.com/category/selectors/, for CSS
|
1045 |
+
// meta-characters that should be escaped in order to be used with JQuery
|
1046 |
+
// as a literal part of a name/id or any selector.
|
1047 |
+
escapeCssMeta: function( string ) {
|
1048 |
+
return string.replace( /([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g, "\\$1" );
|
1049 |
+
},
|
1050 |
+
|
1051 |
+
idOrName: function( element ) {
|
1052 |
+
return this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );
|
1053 |
+
},
|
1054 |
+
|
1055 |
+
validationTargetFor: function( element ) {
|
1056 |
+
|
1057 |
+
// If radio/checkbox, validate first element in group instead
|
1058 |
+
if ( this.checkable( element ) ) {
|
1059 |
+
element = this.findByName( element.name );
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
// Always apply ignore filter
|
1063 |
+
return $( element ).not( this.settings.ignore )[ 0 ];
|
1064 |
+
},
|
1065 |
+
|
1066 |
+
checkable: function( element ) {
|
1067 |
+
return ( /radio|checkbox/i ).test( element.type );
|
1068 |
+
},
|
1069 |
+
|
1070 |
+
findByName: function( name ) {
|
1071 |
+
return $( this.currentForm ).find( "[name='" + this.escapeCssMeta( name ) + "']" );
|
1072 |
+
},
|
1073 |
+
|
1074 |
+
getLength: function( value, element ) {
|
1075 |
+
switch ( element.nodeName.toLowerCase() ) {
|
1076 |
+
case "select":
|
1077 |
+
return $( "option:selected", element ).length;
|
1078 |
+
case "input":
|
1079 |
+
if ( this.checkable( element ) ) {
|
1080 |
+
return this.findByName( element.name ).filter( ":checked" ).length;
|
1081 |
+
}
|
1082 |
+
}
|
1083 |
+
return value.length;
|
1084 |
+
},
|
1085 |
+
|
1086 |
+
depend: function( param, element ) {
|
1087 |
+
return this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true;
|
1088 |
+
},
|
1089 |
+
|
1090 |
+
dependTypes: {
|
1091 |
+
"boolean": function( param ) {
|
1092 |
+
return param;
|
1093 |
+
},
|
1094 |
+
"string": function( param, element ) {
|
1095 |
+
return !!$( param, element.form ).length;
|
1096 |
+
},
|
1097 |
+
"function": function( param, element ) {
|
1098 |
+
return param( element );
|
1099 |
+
}
|
1100 |
+
},
|
1101 |
+
|
1102 |
+
optional: function( element ) {
|
1103 |
+
var val = this.elementValue( element );
|
1104 |
+
return !$.validator.methods.required.call( this, val, element ) && "dependency-mismatch";
|
1105 |
+
},
|
1106 |
+
|
1107 |
+
startRequest: function( element ) {
|
1108 |
+
if ( !this.pending[ element.name ] ) {
|
1109 |
+
this.pendingRequest++;
|
1110 |
+
$( element ).addClass( this.settings.pendingClass );
|
1111 |
+
this.pending[ element.name ] = true;
|
1112 |
+
}
|
1113 |
+
},
|
1114 |
+
|
1115 |
+
stopRequest: function( element, valid ) {
|
1116 |
+
this.pendingRequest--;
|
1117 |
+
|
1118 |
+
// Sometimes synchronization fails, make sure pendingRequest is never < 0
|
1119 |
+
if ( this.pendingRequest < 0 ) {
|
1120 |
+
this.pendingRequest = 0;
|
1121 |
+
}
|
1122 |
+
delete this.pending[ element.name ];
|
1123 |
+
$( element ).removeClass( this.settings.pendingClass );
|
1124 |
+
if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {
|
1125 |
+
$( this.currentForm ).submit();
|
1126 |
+
|
1127 |
+
// Remove the hidden input that was used as a replacement for the
|
1128 |
+
// missing submit button. The hidden input is added by `handle()`
|
1129 |
+
// to ensure that the value of the used submit button is passed on
|
1130 |
+
// for scripted submits triggered by this method
|
1131 |
+
if ( this.submitButton ) {
|
1132 |
+
$( "input:hidden[name='" + this.submitButton.name + "']", this.currentForm ).remove();
|
1133 |
+
}
|
1134 |
+
|
1135 |
+
this.formSubmitted = false;
|
1136 |
+
} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {
|
1137 |
+
$( this.currentForm ).triggerHandler( "invalid-form", [ this ] );
|
1138 |
+
this.formSubmitted = false;
|
1139 |
+
}
|
1140 |
+
},
|
1141 |
+
|
1142 |
+
previousValue: function( element, method ) {
|
1143 |
+
method = typeof method === "string" && method || "remote";
|
1144 |
+
|
1145 |
+
return $.data( element, "previousValue" ) || $.data( element, "previousValue", {
|
1146 |
+
old: null,
|
1147 |
+
valid: true,
|
1148 |
+
message: this.defaultMessage( element, { method: method } )
|
1149 |
+
} );
|
1150 |
+
},
|
1151 |
+
|
1152 |
+
// Cleans up all forms and elements, removes validator-specific events
|
1153 |
+
destroy: function() {
|
1154 |
+
this.resetForm();
|
1155 |
+
|
1156 |
+
$( this.currentForm )
|
1157 |
+
.off( ".validate" )
|
1158 |
+
.removeData( "validator" )
|
1159 |
+
.find( ".validate-equalTo-blur" )
|
1160 |
+
.off( ".validate-equalTo" )
|
1161 |
+
.removeClass( "validate-equalTo-blur" )
|
1162 |
+
.find( ".validate-lessThan-blur" )
|
1163 |
+
.off( ".validate-lessThan" )
|
1164 |
+
.removeClass( "validate-lessThan-blur" )
|
1165 |
+
.find( ".validate-lessThanEqual-blur" )
|
1166 |
+
.off( ".validate-lessThanEqual" )
|
1167 |
+
.removeClass( "validate-lessThanEqual-blur" )
|
1168 |
+
.find( ".validate-greaterThanEqual-blur" )
|
1169 |
+
.off( ".validate-greaterThanEqual" )
|
1170 |
+
.removeClass( "validate-greaterThanEqual-blur" )
|
1171 |
+
.find( ".validate-greaterThan-blur" )
|
1172 |
+
.off( ".validate-greaterThan" )
|
1173 |
+
.removeClass( "validate-greaterThan-blur" );
|
1174 |
+
}
|
1175 |
+
|
1176 |
+
},
|
1177 |
+
|
1178 |
+
classRuleSettings: {
|
1179 |
+
required: { required: true },
|
1180 |
+
email: { email: true },
|
1181 |
+
url: { url: true },
|
1182 |
+
date: { date: true },
|
1183 |
+
dateISO: { dateISO: true },
|
1184 |
+
number: { number: true },
|
1185 |
+
digits: { digits: true },
|
1186 |
+
creditcard: { creditcard: true }
|
1187 |
+
},
|
1188 |
+
|
1189 |
+
addClassRules: function( className, rules ) {
|
1190 |
+
if ( className.constructor === String ) {
|
1191 |
+
this.classRuleSettings[ className ] = rules;
|
1192 |
+
} else {
|
1193 |
+
$.extend( this.classRuleSettings, className );
|
1194 |
+
}
|
1195 |
+
},
|
1196 |
+
|
1197 |
+
classRules: function( element ) {
|
1198 |
+
var rules = {},
|
1199 |
+
classes = $( element ).attr( "class" );
|
1200 |
+
|
1201 |
+
if ( classes ) {
|
1202 |
+
$.each( classes.split( " " ), function() {
|
1203 |
+
if ( this in $.validator.classRuleSettings ) {
|
1204 |
+
$.extend( rules, $.validator.classRuleSettings[ this ] );
|
1205 |
+
}
|
1206 |
+
} );
|
1207 |
+
}
|
1208 |
+
return rules;
|
1209 |
+
},
|
1210 |
+
|
1211 |
+
normalizeAttributeRule: function( rules, type, method, value ) {
|
1212 |
+
|
1213 |
+
// Convert the value to a number for number inputs, and for text for backwards compability
|
1214 |
+
// allows type="date" and others to be compared as strings
|
1215 |
+
if ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {
|
1216 |
+
value = Number( value );
|
1217 |
+
|
1218 |
+
// Support Opera Mini, which returns NaN for undefined minlength
|
1219 |
+
if ( isNaN( value ) ) {
|
1220 |
+
value = undefined;
|
1221 |
+
}
|
1222 |
+
}
|
1223 |
+
|
1224 |
+
if ( value || value === 0 ) {
|
1225 |
+
rules[ method ] = value;
|
1226 |
+
} else if ( type === method && type !== "range" ) {
|
1227 |
+
|
1228 |
+
// Exception: the jquery validate 'range' method
|
1229 |
+
// does not test for the html5 'range' type
|
1230 |
+
rules[ method ] = true;
|
1231 |
+
}
|
1232 |
+
},
|
1233 |
+
|
1234 |
+
attributeRules: function( element ) {
|
1235 |
+
var rules = {},
|
1236 |
+
$element = $( element ),
|
1237 |
+
type = element.getAttribute( "type" ),
|
1238 |
+
method, value;
|
1239 |
+
|
1240 |
+
for ( method in $.validator.methods ) {
|
1241 |
+
|
1242 |
+
// Support for <input required> in both html5 and older browsers
|
1243 |
+
if ( method === "required" ) {
|
1244 |
+
value = element.getAttribute( method );
|
1245 |
+
|
1246 |
+
// Some browsers return an empty string for the required attribute
|
1247 |
+
// and non-HTML5 browsers might have required="" markup
|
1248 |
+
if ( value === "" ) {
|
1249 |
+
value = true;
|
1250 |
+
}
|
1251 |
+
|
1252 |
+
// Force non-HTML5 browsers to return bool
|
1253 |
+
value = !!value;
|
1254 |
+
} else {
|
1255 |
+
value = $element.attr( method );
|
1256 |
+
}
|
1257 |
+
|
1258 |
+
this.normalizeAttributeRule( rules, type, method, value );
|
1259 |
+
}
|
1260 |
+
|
1261 |
+
// 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs
|
1262 |
+
if ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {
|
1263 |
+
delete rules.maxlength;
|
1264 |
+
}
|
1265 |
+
|
1266 |
+
return rules;
|
1267 |
+
},
|
1268 |
+
|
1269 |
+
dataRules: function( element ) {
|
1270 |
+
var rules = {},
|
1271 |
+
$element = $( element ),
|
1272 |
+
type = element.getAttribute( "type" ),
|
1273 |
+
method, value;
|
1274 |
+
|
1275 |
+
for ( method in $.validator.methods ) {
|
1276 |
+
value = $element.data( "rule" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );
|
1277 |
+
|
1278 |
+
// Cast empty attributes like `data-rule-required` to `true`
|
1279 |
+
if ( value === "" ) {
|
1280 |
+
value = true;
|
1281 |
+
}
|
1282 |
+
|
1283 |
+
this.normalizeAttributeRule( rules, type, method, value );
|
1284 |
+
}
|
1285 |
+
return rules;
|
1286 |
+
},
|
1287 |
+
|
1288 |
+
staticRules: function( element ) {
|
1289 |
+
var rules = {},
|
1290 |
+
validator = $.data( element.form, "validator" );
|
1291 |
+
|
1292 |
+
if ( validator.settings.rules ) {
|
1293 |
+
rules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};
|
1294 |
+
}
|
1295 |
+
return rules;
|
1296 |
+
},
|
1297 |
+
|
1298 |
+
normalizeRules: function( rules, element ) {
|
1299 |
+
|
1300 |
+
// Handle dependency check
|
1301 |
+
$.each( rules, function( prop, val ) {
|
1302 |
+
|
1303 |
+
// Ignore rule when param is explicitly false, eg. required:false
|
1304 |
+
if ( val === false ) {
|
1305 |
+
delete rules[ prop ];
|
1306 |
+
return;
|
1307 |
+
}
|
1308 |
+
if ( val.param || val.depends ) {
|
1309 |
+
var keepRule = true;
|
1310 |
+
switch ( typeof val.depends ) {
|
1311 |
+
case "string":
|
1312 |
+
keepRule = !!$( val.depends, element.form ).length;
|
1313 |
+
break;
|
1314 |
+
case "function":
|
1315 |
+
keepRule = val.depends.call( element, element );
|
1316 |
+
break;
|
1317 |
+
}
|
1318 |
+
if ( keepRule ) {
|
1319 |
+
rules[ prop ] = val.param !== undefined ? val.param : true;
|
1320 |
+
} else {
|
1321 |
+
$.data( element.form, "validator" ).resetElements( $( element ) );
|
1322 |
+
delete rules[ prop ];
|
1323 |
+
}
|
1324 |
+
}
|
1325 |
+
} );
|
1326 |
+
|
1327 |
+
// Evaluate parameters
|
1328 |
+
$.each( rules, function( rule, parameter ) {
|
1329 |
+
rules[ rule ] = $.isFunction( parameter ) && rule !== "normalizer" ? parameter( element ) : parameter;
|
1330 |
+
} );
|
1331 |
+
|
1332 |
+
// Clean number parameters
|
1333 |
+
$.each( [ "minlength", "maxlength" ], function() {
|
1334 |
+
if ( rules[ this ] ) {
|
1335 |
+
rules[ this ] = Number( rules[ this ] );
|
1336 |
+
}
|
1337 |
+
} );
|
1338 |
+
$.each( [ "rangelength", "range" ], function() {
|
1339 |
+
var parts;
|
1340 |
+
if ( rules[ this ] ) {
|
1341 |
+
if ( $.isArray( rules[ this ] ) ) {
|
1342 |
+
rules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ];
|
1343 |
+
} else if ( typeof rules[ this ] === "string" ) {
|
1344 |
+
parts = rules[ this ].replace( /[\[\]]/g, "" ).split( /[\s,]+/ );
|
1345 |
+
rules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ];
|
1346 |
+
}
|
1347 |
+
}
|
1348 |
+
} );
|
1349 |
+
|
1350 |
+
if ( $.validator.autoCreateRanges ) {
|
1351 |
+
|
1352 |
+
// Auto-create ranges
|
1353 |
+
if ( rules.min != null && rules.max != null ) {
|
1354 |
+
rules.range = [ rules.min, rules.max ];
|
1355 |
+
delete rules.min;
|
1356 |
+
delete rules.max;
|
1357 |
+
}
|
1358 |
+
if ( rules.minlength != null && rules.maxlength != null ) {
|
1359 |
+
rules.rangelength = [ rules.minlength, rules.maxlength ];
|
1360 |
+
delete rules.minlength;
|
1361 |
+
delete rules.maxlength;
|
1362 |
+
}
|
1363 |
+
}
|
1364 |
+
|
1365 |
+
return rules;
|
1366 |
+
},
|
1367 |
+
|
1368 |
+
// Converts a simple string to a {string: true} rule, e.g., "required" to {required:true}
|
1369 |
+
normalizeRule: function( data ) {
|
1370 |
+
if ( typeof data === "string" ) {
|
1371 |
+
var transformed = {};
|
1372 |
+
$.each( data.split( /\s/ ), function() {
|
1373 |
+
transformed[ this ] = true;
|
1374 |
+
} );
|
1375 |
+
data = transformed;
|
1376 |
+
}
|
1377 |
+
return data;
|
1378 |
+
},
|
1379 |
+
|
1380 |
+
// https://jqueryvalidation.org/jQuery.validator.addMethod/
|
1381 |
+
addMethod: function( name, method, message ) {
|
1382 |
+
$.validator.methods[ name ] = method;
|
1383 |
+
$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];
|
1384 |
+
if ( method.length < 3 ) {
|
1385 |
+
$.validator.addClassRules( name, $.validator.normalizeRule( name ) );
|
1386 |
+
}
|
1387 |
+
},
|
1388 |
+
|
1389 |
+
// https://jqueryvalidation.org/jQuery.validator.methods/
|
1390 |
+
methods: {
|
1391 |
+
|
1392 |
+
// https://jqueryvalidation.org/required-method/
|
1393 |
+
required: function( value, element, param ) {
|
1394 |
+
|
1395 |
+
// Check if dependency is met
|
1396 |
+
if ( !this.depend( param, element ) ) {
|
1397 |
+
return "dependency-mismatch";
|
1398 |
+
}
|
1399 |
+
if ( element.nodeName.toLowerCase() === "select" ) {
|
1400 |
+
|
1401 |
+
// Could be an array for select-multiple or a string, both are fine this way
|
1402 |
+
var val = $( element ).val();
|
1403 |
+
return val && val.length > 0;
|
1404 |
+
}
|
1405 |
+
if ( this.checkable( element ) ) {
|
1406 |
+
return this.getLength( value, element ) > 0;
|
1407 |
+
}
|
1408 |
+
return value !== undefined && value !== null && value.length > 0;
|
1409 |
+
},
|
1410 |
+
|
1411 |
+
// https://jqueryvalidation.org/email-method/
|
1412 |
+
email: function( value, element ) {
|
1413 |
+
|
1414 |
+
// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address
|
1415 |
+
// Retrieved 2014-01-14
|
1416 |
+
// If you have a problem with this implementation, report a bug against the above spec
|
1417 |
+
// Or use custom methods to implement your own email validation
|
1418 |
+
return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );
|
1419 |
+
},
|
1420 |
+
|
1421 |
+
// https://jqueryvalidation.org/url-method/
|
1422 |
+
url: function( value, element ) {
|
1423 |
+
|
1424 |
+
// Copyright (c) 2010-2013 Diego Perini, MIT licensed
|
1425 |
+
// https://gist.github.com/dperini/729294
|
1426 |
+
// see also https://mathiasbynens.be/demo/url-regex
|
1427 |
+
// modified to allow protocol-relative URLs
|
1428 |
+
return this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( value );
|
1429 |
+
},
|
1430 |
+
|
1431 |
+
// https://jqueryvalidation.org/date-method/
|
1432 |
+
date: ( function() {
|
1433 |
+
var called = false;
|
1434 |
+
|
1435 |
+
return function( value, element ) {
|
1436 |
+
if ( !called ) {
|
1437 |
+
called = true;
|
1438 |
+
if ( this.settings.debug && window.console ) {
|
1439 |
+
console.warn(
|
1440 |
+
"The `date` method is deprecated and will be removed in version '2.0.0'.\n" +
|
1441 |
+
"Please don't use it, since it relies on the Date constructor, which\n" +
|
1442 |
+
"behaves very differently across browsers and locales. Use `dateISO`\n" +
|
1443 |
+
"instead or one of the locale specific methods in `localizations/`\n" +
|
1444 |
+
"and `additional-methods.js`."
|
1445 |
+
);
|
1446 |
+
}
|
1447 |
+
}
|
1448 |
+
|
1449 |
+
return this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );
|
1450 |
+
};
|
1451 |
+
}() ),
|
1452 |
+
|
1453 |
+
// https://jqueryvalidation.org/dateISO-method/
|
1454 |
+
dateISO: function( value, element ) {
|
1455 |
+
return this.optional( element ) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );
|
1456 |
+
},
|
1457 |
+
|
1458 |
+
// https://jqueryvalidation.org/number-method/
|
1459 |
+
number: function( value, element ) {
|
1460 |
+
return this.optional( element ) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test( value );
|
1461 |
+
},
|
1462 |
+
|
1463 |
+
// https://jqueryvalidation.org/digits-method/
|
1464 |
+
digits: function( value, element ) {
|
1465 |
+
return this.optional( element ) || /^\d+$/.test( value );
|
1466 |
+
},
|
1467 |
+
|
1468 |
+
// https://jqueryvalidation.org/minlength-method/
|
1469 |
+
minlength: function( value, element, param ) {
|
1470 |
+
var length = $.isArray( value ) ? value.length : this.getLength( value, element );
|
1471 |
+
return this.optional( element ) || length >= param;
|
1472 |
+
},
|
1473 |
+
|
1474 |
+
// https://jqueryvalidation.org/maxlength-method/
|
1475 |
+
maxlength: function( value, element, param ) {
|
1476 |
+
var length = $.isArray( value ) ? value.length : this.getLength( value, element );
|
1477 |
+
return this.optional( element ) || length <= param;
|
1478 |
+
},
|
1479 |
+
|
1480 |
+
// https://jqueryvalidation.org/rangelength-method/
|
1481 |
+
rangelength: function( value, element, param ) {
|
1482 |
+
var length = $.isArray( value ) ? value.length : this.getLength( value, element );
|
1483 |
+
return this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );
|
1484 |
+
},
|
1485 |
+
|
1486 |
+
// https://jqueryvalidation.org/min-method/
|
1487 |
+
min: function( value, element, param ) {
|
1488 |
+
return this.optional( element ) || value >= param;
|
1489 |
+
},
|
1490 |
+
|
1491 |
+
// https://jqueryvalidation.org/max-method/
|
1492 |
+
max: function( value, element, param ) {
|
1493 |
+
return this.optional( element ) || value <= param;
|
1494 |
+
},
|
1495 |
+
|
1496 |
+
// https://jqueryvalidation.org/range-method/
|
1497 |
+
range: function( value, element, param ) {
|
1498 |
+
return this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );
|
1499 |
+
},
|
1500 |
+
|
1501 |
+
// https://jqueryvalidation.org/step-method/
|
1502 |
+
step: function( value, element, param ) {
|
1503 |
+
var type = $( element ).attr( "type" ),
|
1504 |
+
errorMessage = "Step attribute on input type " + type + " is not supported.",
|
1505 |
+
supportedTypes = [ "text", "number", "range" ],
|
1506 |
+
re = new RegExp( "\\b" + type + "\\b" ),
|
1507 |
+
notSupported = type && !re.test( supportedTypes.join() ),
|
1508 |
+
decimalPlaces = function( num ) {
|
1509 |
+
var match = ( "" + num ).match( /(?:\.(\d+))?$/ );
|
1510 |
+
if ( !match ) {
|
1511 |
+
return 0;
|
1512 |
+
}
|
1513 |
+
|
1514 |
+
// Number of digits right of decimal point.
|
1515 |
+
return match[ 1 ] ? match[ 1 ].length : 0;
|
1516 |
+
},
|
1517 |
+
toInt = function( num ) {
|
1518 |
+
return Math.round( num * Math.pow( 10, decimals ) );
|
1519 |
+
},
|
1520 |
+
valid = true,
|
1521 |
+
decimals;
|
1522 |
+
|
1523 |
+
// Works only for text, number and range input types
|
1524 |
+
// TODO find a way to support input types date, datetime, datetime-local, month, time and week
|
1525 |
+
if ( notSupported ) {
|
1526 |
+
throw new Error( errorMessage );
|
1527 |
+
}
|
1528 |
+
|
1529 |
+
decimals = decimalPlaces( param );
|
1530 |
+
|
1531 |
+
// Value can't have too many decimals
|
1532 |
+
if ( decimalPlaces( value ) > decimals || toInt( value ) % toInt( param ) !== 0 ) {
|
1533 |
+
valid = false;
|
1534 |
+
}
|
1535 |
+
|
1536 |
+
return this.optional( element ) || valid;
|
1537 |
+
},
|
1538 |
+
|
1539 |
+
// https://jqueryvalidation.org/equalTo-method/
|
1540 |
+
equalTo: function( value, element, param ) {
|
1541 |
+
|
1542 |
+
// Bind to the blur event of the target in order to revalidate whenever the target field is updated
|
1543 |
+
var target = $( param );
|
1544 |
+
if ( this.settings.onfocusout && target.not( ".validate-equalTo-blur" ).length ) {
|
1545 |
+
target.addClass( "validate-equalTo-blur" ).on( "blur.validate-equalTo", function() {
|
1546 |
+
$( element ).valid();
|
1547 |
+
} );
|
1548 |
+
}
|
1549 |
+
return value === target.val();
|
1550 |
+
},
|
1551 |
+
|
1552 |
+
// https://jqueryvalidation.org/remote-method/
|
1553 |
+
remote: function( value, element, param, method ) {
|
1554 |
+
if ( this.optional( element ) ) {
|
1555 |
+
return "dependency-mismatch";
|
1556 |
+
}
|
1557 |
+
|
1558 |
+
method = typeof method === "string" && method || "remote";
|
1559 |
+
|
1560 |
+
var previous = this.previousValue( element, method ),
|
1561 |
+
validator, data, optionDataString;
|
1562 |
+
|
1563 |
+
if ( !this.settings.messages[ element.name ] ) {
|
1564 |
+
this.settings.messages[ element.name ] = {};
|
1565 |
+
}
|
1566 |
+
previous.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];
|
1567 |
+
this.settings.messages[ element.name ][ method ] = previous.message;
|
1568 |
+
|
1569 |
+
param = typeof param === "string" && { url: param } || param;
|
1570 |
+
optionDataString = $.param( $.extend( { data: value }, param.data ) );
|
1571 |
+
if ( previous.old === optionDataString ) {
|
1572 |
+
return previous.valid;
|
1573 |
+
}
|
1574 |
+
|
1575 |
+
previous.old = optionDataString;
|
1576 |
+
validator = this;
|
1577 |
+
this.startRequest( element );
|
1578 |
+
data = {};
|
1579 |
+
data[ element.name ] = value;
|
1580 |
+
$.ajax( $.extend( true, {
|
1581 |
+
mode: "abort",
|
1582 |
+
port: "validate" + element.name,
|
1583 |
+
dataType: "json",
|
1584 |
+
data: data,
|
1585 |
+
context: validator.currentForm,
|
1586 |
+
success: function( response ) {
|
1587 |
+
var valid = response === true || response === "true",
|
1588 |
+
errors, message, submitted;
|
1589 |
+
|
1590 |
+
validator.settings.messages[ element.name ][ method ] = previous.originalMessage;
|
1591 |
+
if ( valid ) {
|
1592 |
+
submitted = validator.formSubmitted;
|
1593 |
+
validator.resetInternals();
|
1594 |
+
validator.toHide = validator.errorsFor( element );
|
1595 |
+
validator.formSubmitted = submitted;
|
1596 |
+
validator.successList.push( element );
|
1597 |
+
validator.invalid[ element.name ] = false;
|
1598 |
+
validator.showErrors();
|
1599 |
+
} else {
|
1600 |
+
errors = {};
|
1601 |
+
message = response || validator.defaultMessage( element, { method: method, parameters: value } );
|
1602 |
+
errors[ element.name ] = previous.message = message;
|
1603 |
+
validator.invalid[ element.name ] = true;
|
1604 |
+
validator.showErrors( errors );
|
1605 |
+
}
|
1606 |
+
previous.valid = valid;
|
1607 |
+
validator.stopRequest( element, valid );
|
1608 |
+
}
|
1609 |
+
}, param ) );
|
1610 |
+
return "pending";
|
1611 |
+
}
|
1612 |
+
}
|
1613 |
+
|
1614 |
+
} );
|
1615 |
+
|
1616 |
+
// Ajax mode: abort
|
1617 |
+
// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]});
|
1618 |
+
// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()
|
1619 |
+
|
1620 |
+
var pendingRequests = {},
|
1621 |
+
ajax;
|
1622 |
+
|
1623 |
+
// Use a prefilter if available (1.5+)
|
1624 |
+
if ( $.ajaxPrefilter ) {
|
1625 |
+
$.ajaxPrefilter( function( settings, _, xhr ) {
|
1626 |
+
var port = settings.port;
|
1627 |
+
if ( settings.mode === "abort" ) {
|
1628 |
+
if ( pendingRequests[ port ] ) {
|
1629 |
+
pendingRequests[ port ].abort();
|
1630 |
+
}
|
1631 |
+
pendingRequests[ port ] = xhr;
|
1632 |
+
}
|
1633 |
+
} );
|
1634 |
+
} else {
|
1635 |
+
|
1636 |
+
// Proxy ajax
|
1637 |
+
ajax = $.ajax;
|
1638 |
+
$.ajax = function( settings ) {
|
1639 |
+
var mode = ( "mode" in settings ? settings : $.ajaxSettings ).mode,
|
1640 |
+
port = ( "port" in settings ? settings : $.ajaxSettings ).port;
|
1641 |
+
if ( mode === "abort" ) {
|
1642 |
+
if ( pendingRequests[ port ] ) {
|
1643 |
+
pendingRequests[ port ].abort();
|
1644 |
+
}
|
1645 |
+
pendingRequests[ port ] = ajax.apply( this, arguments );
|
1646 |
+
return pendingRequests[ port ];
|
1647 |
+
}
|
1648 |
+
return ajax.apply( this, arguments );
|
1649 |
+
};
|
1650 |
+
}
|
1651 |
+
return $;
|
1652 |
+
}));
|
assets/js/wpforms.js
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
-
/* global wpforms_settings,grecaptcha,wpforms_validate,wpforms_timepicker */
|
2 |
|
3 |
-
;
|
4 |
|
5 |
-
|
6 |
|
7 |
-
var
|
8 |
|
9 |
/**
|
10 |
* Start the engine.
|
@@ -13,14 +13,14 @@
|
|
13 |
*/
|
14 |
init: function() {
|
15 |
|
16 |
-
// Document ready
|
17 |
-
$( document ).ready(
|
18 |
|
19 |
-
// Page load
|
20 |
-
$( window ).on( 'load',
|
21 |
|
22 |
-
|
23 |
-
|
24 |
},
|
25 |
|
26 |
/**
|
@@ -31,17 +31,18 @@
|
|
31 |
ready: function() {
|
32 |
|
33 |
// Clear URL - remove wpforms_form_id.
|
34 |
-
|
35 |
|
36 |
-
// Set user identifier
|
37 |
-
|
38 |
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
|
|
45 |
|
46 |
// Randomize elements.
|
47 |
$( '.wpforms-randomize' ).each( function() {
|
@@ -116,9 +117,9 @@
|
|
116 |
} );
|
117 |
|
118 |
$.validator.messages.required = wpforms_settings.val_required;
|
119 |
-
$.validator.messages.url
|
120 |
-
$.validator.messages.email
|
121 |
-
$.validator.messages.number
|
122 |
|
123 |
// Payments: Validate method for Credit Card Number.
|
124 |
if ( typeof $.fn.payment !== 'undefined' ) {
|
@@ -171,7 +172,7 @@
|
|
171 |
|
172 |
// Validate required payments.
|
173 |
$.validator.addMethod( 'required-payment', function( value, element ) {
|
174 |
-
return
|
175 |
}, wpforms_settings.val_requiredpayment );
|
176 |
|
177 |
// Validate 12-hour time.
|
@@ -269,27 +270,27 @@
|
|
269 |
},
|
270 |
submitHandler: function( form ) {
|
271 |
|
272 |
-
var $form
|
273 |
-
$submit
|
274 |
-
altText
|
|
|
275 |
|
276 |
-
if (
|
277 |
|
278 |
-
//
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
// Remove name attributes if needed.
|
284 |
-
$( '.wpforms-input-temp-name' ).removeAttr( 'name' );
|
285 |
|
286 |
-
|
|
|
|
|
|
|
287 |
|
288 |
-
|
|
|
289 |
|
290 |
-
|
291 |
-
grecaptcha.execute( $submit.get( 0 ).recaptchaID );
|
292 |
-
}
|
293 |
},
|
294 |
onkeyup: function( element, event ) {
|
295 |
|
@@ -453,7 +454,7 @@
|
|
453 |
|
454 |
// Determine the country by IP if no GDPR restrictions enabled.
|
455 |
if ( ! wpforms_settings.gdpr ) {
|
456 |
-
inputOptions.geoIpLookup =
|
457 |
}
|
458 |
|
459 |
// Try to kick in an alternative solution if GDPR restrictions are enabled.
|
@@ -503,18 +504,71 @@
|
|
503 |
*/
|
504 |
loadPayments: function() {
|
505 |
|
506 |
-
// Update Total field(s) with latest calculation
|
507 |
$( '.wpforms-payment-total' ).each( function( index, el ) {
|
508 |
-
|
509 |
} );
|
510 |
|
511 |
-
// Credit card validation
|
512 |
if ( typeof $.fn.payment !== 'undefined' ) {
|
513 |
$( '.wpforms-field-credit-card-cardnumber' ).payment( 'formatCardNumber' );
|
514 |
$( '.wpforms-field-credit-card-cardcvc' ).payment( 'formatCardCVC' );
|
515 |
}
|
516 |
},
|
517 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
518 |
//--------------------------------------------------------------------//
|
519 |
// Binds.
|
520 |
//--------------------------------------------------------------------//
|
@@ -529,12 +583,12 @@
|
|
529 |
// Pagebreak navigation.
|
530 |
$( document ).on( 'click', '.wpforms-page-button', function( event ) {
|
531 |
event.preventDefault();
|
532 |
-
|
533 |
} );
|
534 |
|
535 |
// Payments: Update Total field(s) when latest calculation.
|
536 |
$( document ).on( 'change input', '.wpforms-payment-price', function() {
|
537 |
-
|
538 |
} );
|
539 |
|
540 |
// Payments: Restrict user input payment fields.
|
@@ -548,11 +602,16 @@
|
|
548 |
$( document ).on( 'focusout', '.wpforms-payment-user-input', function() {
|
549 |
var $this = $( this ),
|
550 |
amount = $this.val(),
|
551 |
-
sanitized =
|
552 |
-
formatted =
|
553 |
$this.val( formatted );
|
554 |
} );
|
555 |
|
|
|
|
|
|
|
|
|
|
|
556 |
// Payment radio/checkbox fields: preselect the selected payment (from dynamic/fallback population).
|
557 |
$( document ).ready( function() {
|
558 |
|
@@ -593,7 +652,22 @@
|
|
593 |
$( '.wpforms-field-rating-item input:checked' ).change();
|
594 |
} );
|
595 |
|
596 |
-
// Checkbox/Radio/Payment checkbox:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
597 |
$( document ).on( 'change', '.wpforms-field-checkbox input, .wpforms-field-radio input, .wpforms-field-payment-multiple input, .wpforms-field-payment-checkbox input, .wpforms-field-gdpr-checkbox input', function( event ) {
|
598 |
|
599 |
var $this = $( this ),
|
@@ -613,12 +687,12 @@
|
|
613 |
break;
|
614 |
|
615 |
case 'checkbox':
|
616 |
-
if ( $this.
|
617 |
$this.closest( 'li' ).addClass( 'wpforms-selected' );
|
618 |
$this.prop( 'checked', true );
|
619 |
} else {
|
620 |
$this.closest( 'li' ).removeClass( 'wpforms-selected' );
|
621 |
-
$this.
|
622 |
}
|
623 |
break;
|
624 |
}
|
@@ -626,15 +700,15 @@
|
|
626 |
|
627 |
// Upload fields: Check combined file size.
|
628 |
$( document ).on( 'change', '.wpforms-field-file-upload input', function() {
|
629 |
-
var $this
|
630 |
-
$uploads
|
631 |
-
totalSize
|
632 |
-
postMaxSize
|
633 |
-
errorMsg
|
634 |
-
errorCntTpl
|
635 |
-
$submitCnt
|
636 |
-
$submitBtn
|
637 |
-
$errorCnt
|
638 |
|
639 |
// Calculating totalSize.
|
640 |
$uploads.each( function() {
|
@@ -675,30 +749,35 @@
|
|
675 |
|
676 |
} );
|
677 |
|
678 |
-
//
|
679 |
-
$( document ).on( '
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
$( '#' + id + '_suggestion' ).remove();
|
685 |
-
var sugg = '<a href="#" class="mailcheck-suggestion" data-id="' + id + '" title="' + wpforms_settings.val_email_suggestion_title + '">' + suggestion.full + '</a>';
|
686 |
-
sugg = wpforms_settings.val_email_suggestion.replace( '{suggestion}', sugg );
|
687 |
-
$( el ).after( '<label class="wpforms-error mailcheck-error" id="' + id + '_suggestion">' + sugg + '</label>' );
|
688 |
-
},
|
689 |
-
empty: function() {
|
690 |
-
$( '#' + id + '_suggestion' ).remove();
|
691 |
-
},
|
692 |
-
} );
|
693 |
-
} );
|
694 |
|
695 |
-
// Apply Mailcheck suggestion.
|
696 |
-
$( document ).on( 'click', '.wpforms-field-email .mailcheck-suggestion', function( e ) {
|
697 |
var $t = $( this ),
|
698 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
699 |
e.preventDefault();
|
700 |
-
$( '
|
701 |
-
$t.parent().remove();
|
702 |
} );
|
703 |
|
704 |
},
|
@@ -707,6 +786,8 @@
|
|
707 |
* Update Pagebreak navigation.
|
708 |
*
|
709 |
* @since 1.2.2
|
|
|
|
|
710 |
*/
|
711 |
pagebreakNav: function( el ) {
|
712 |
|
@@ -729,7 +810,7 @@
|
|
729 |
// TODO: cleanup this BC with wpform_pageScroll.
|
730 |
if ( false === window.wpforms_pageScroll ) {
|
731 |
pageScroll = false;
|
732 |
-
} else if ( !
|
733 |
pageScroll = window.wpform_pageScroll;
|
734 |
} else {
|
735 |
pageScroll = 75;
|
@@ -749,11 +830,7 @@
|
|
749 |
// Scroll to first/top error on page.
|
750 |
var $topError = $page.find( '.wpforms-error' ).first();
|
751 |
if ( $topError.length ) {
|
752 |
-
$(
|
753 |
-
scrollTop: $topError.offset().top - 75,
|
754 |
-
}, 750, function() {
|
755 |
-
$topError.focus();
|
756 |
-
} );
|
757 |
}
|
758 |
}
|
759 |
|
@@ -770,9 +847,7 @@
|
|
770 |
if ( pageScroll ) {
|
771 |
|
772 |
// Scroll to top of the form.
|
773 |
-
$(
|
774 |
-
scrollTop: $form.offset().top - pageScroll,
|
775 |
-
}, 1000 );
|
776 |
}
|
777 |
$this.trigger( 'wpformsPageChange', [ page2, $form ] );
|
778 |
}
|
@@ -787,9 +862,7 @@
|
|
787 |
if ( pageScroll ) {
|
788 |
|
789 |
// Scroll to top of the form.
|
790 |
-
$(
|
791 |
-
scrollTop: $form.offset().top - pageScroll,
|
792 |
-
}, 1000 );
|
793 |
}
|
794 |
$this.trigger( 'wpformsPageChange', [ page2, $form ] );
|
795 |
}
|
@@ -836,14 +909,14 @@
|
|
836 |
|
837 |
// OM v5.
|
838 |
document.addEventListener( 'om.Campaign.load', function( event ) {
|
839 |
-
|
840 |
-
|
841 |
} );
|
842 |
|
843 |
// OM Legacy.
|
844 |
$( document ).on( 'OptinMonsterOnShow', function( event, data, object ) {
|
845 |
-
|
846 |
-
|
847 |
} );
|
848 |
},
|
849 |
|
@@ -889,18 +962,22 @@
|
|
889 |
*/
|
890 |
amountTotal: function( el, validate ) {
|
891 |
|
892 |
-
|
893 |
-
|
|
|
894 |
total = 0,
|
895 |
-
totalFormatted
|
896 |
-
totalFormattedSymbol
|
897 |
-
currency =
|
898 |
|
899 |
$( '.wpforms-payment-price', $form ).each( function( index, el ) {
|
900 |
|
901 |
var amount = 0,
|
902 |
$this = $( this );
|
903 |
|
|
|
|
|
|
|
904 |
if ( 'text' === $this.attr( 'type' ) || 'hidden' === $this.attr( 'type' ) ) {
|
905 |
amount = $this.val();
|
906 |
} else if ( ( 'radio' === $this.attr( 'type' ) || 'checkbox' === $this.attr( 'type' ) ) && $this.is( ':checked' ) ) {
|
@@ -908,13 +985,13 @@
|
|
908 |
} else if ( $this.is( 'select' ) && $this.find( 'option:selected' ).length > 0 ) {
|
909 |
amount = $this.find( 'option:selected' ).data( 'amount' );
|
910 |
}
|
911 |
-
if ( !
|
912 |
-
amount =
|
913 |
total = Number( total ) + Number( amount );
|
914 |
}
|
915 |
} );
|
916 |
|
917 |
-
totalFormatted =
|
918 |
|
919 |
if ( 'left' === currency.symbol_pos ) {
|
920 |
totalFormattedSymbol = currency.symbol + ' ' + totalFormatted;
|
@@ -941,7 +1018,7 @@
|
|
941 |
*/
|
942 |
amountSanitize: function( amount ) {
|
943 |
|
944 |
-
var currency =
|
945 |
|
946 |
amount = amount.toString().replace( /[^0-9.,]/g, '' );
|
947 |
|
@@ -956,7 +1033,7 @@
|
|
956 |
amount = amount.replace( currency.thousands_sep, '' );
|
957 |
}
|
958 |
|
959 |
-
return
|
960 |
},
|
961 |
|
962 |
/**
|
@@ -966,7 +1043,7 @@
|
|
966 |
*/
|
967 |
amountFormat: function( amount ) {
|
968 |
|
969 |
-
var currency =
|
970 |
|
971 |
amount = String( amount );
|
972 |
|
@@ -983,11 +1060,11 @@
|
|
983 |
amount = amount.replace( ',', '' );
|
984 |
}
|
985 |
|
986 |
-
if (
|
987 |
amount = 0;
|
988 |
}
|
989 |
|
990 |
-
return
|
991 |
},
|
992 |
|
993 |
/**
|
@@ -1097,7 +1174,7 @@
|
|
1097 |
*/
|
1098 |
setUserIndentifier: function() {
|
1099 |
|
1100 |
-
if ( ( ( ! window.hasRequiredConsent && typeof wpforms_settings !== 'undefined' && wpforms_settings.uuid_cookie ) || ( window.hasRequiredConsent && window.hasRequiredConsent() ) ) && !
|
1101 |
|
1102 |
// Generate UUID - http://stackoverflow.com/a/873856/1489528
|
1103 |
var s = new Array( 36 ),
|
@@ -1113,7 +1190,7 @@
|
|
1113 |
|
1114 |
uuid = s.join( '' );
|
1115 |
|
1116 |
-
|
1117 |
}
|
1118 |
},
|
1119 |
|
@@ -1173,7 +1250,7 @@
|
|
1173 |
*/
|
1174 |
removeCookie: function( name ) {
|
1175 |
|
1176 |
-
|
1177 |
},
|
1178 |
|
1179 |
/**
|
@@ -1227,19 +1304,323 @@
|
|
1227 |
var countryCode = ( resp && resp.country ) ? resp.country : '';
|
1228 |
|
1229 |
if ( ! countryCode ) {
|
1230 |
-
var lang =
|
1231 |
countryCode = lang.indexOf( '-' ) > -1 ? lang.split( '-' ).pop() : '';
|
1232 |
}
|
1233 |
|
1234 |
callback( countryCode );
|
1235 |
} );
|
1236 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1237 |
};
|
1238 |
|
1239 |
-
|
1240 |
-
WPForms.init();
|
1241 |
|
1242 |
-
|
1243 |
-
window.wpforms = WPForms;
|
1244 |
|
1245 |
-
|
|
1 |
+
/* global wpforms_settings, grecaptcha, wpformsRecaptchaCallback, wpforms_validate, wpforms_datepicker, wpforms_timepicker, Mailcheck */
|
2 |
|
3 |
+
'use strict';
|
4 |
|
5 |
+
var wpforms = window.wpforms || ( function( document, window, $ ) {
|
6 |
|
7 |
+
var app = {
|
8 |
|
9 |
/**
|
10 |
* Start the engine.
|
13 |
*/
|
14 |
init: function() {
|
15 |
|
16 |
+
// Document ready.
|
17 |
+
$( document ).ready( app.ready );
|
18 |
|
19 |
+
// Page load.
|
20 |
+
$( window ).on( 'load', app.load );
|
21 |
|
22 |
+
app.bindUIActions();
|
23 |
+
app.bindOptinMonster();
|
24 |
},
|
25 |
|
26 |
/**
|
31 |
ready: function() {
|
32 |
|
33 |
// Clear URL - remove wpforms_form_id.
|
34 |
+
app.clearUrlQuery();
|
35 |
|
36 |
+
// Set user identifier.
|
37 |
+
app.setUserIndentifier();
|
38 |
|
39 |
+
app.loadValidation();
|
40 |
+
app.loadDatePicker();
|
41 |
+
app.loadTimePicker();
|
42 |
+
app.loadInputMask();
|
43 |
+
app.loadSmartPhoneField();
|
44 |
+
app.loadPayments();
|
45 |
+
app.loadMailcheck();
|
46 |
|
47 |
// Randomize elements.
|
48 |
$( '.wpforms-randomize' ).each( function() {
|
117 |
} );
|
118 |
|
119 |
$.validator.messages.required = wpforms_settings.val_required;
|
120 |
+
$.validator.messages.url = wpforms_settings.val_url;
|
121 |
+
$.validator.messages.email = wpforms_settings.val_email;
|
122 |
+
$.validator.messages.number = wpforms_settings.val_number;
|
123 |
|
124 |
// Payments: Validate method for Credit Card Number.
|
125 |
if ( typeof $.fn.payment !== 'undefined' ) {
|
172 |
|
173 |
// Validate required payments.
|
174 |
$.validator.addMethod( 'required-payment', function( value, element ) {
|
175 |
+
return app.amountSanitize( value ) > 0;
|
176 |
}, wpforms_settings.val_requiredpayment );
|
177 |
|
178 |
// Validate 12-hour time.
|
270 |
},
|
271 |
submitHandler: function( form ) {
|
272 |
|
273 |
+
var $form = $( form ),
|
274 |
+
$submit = $form.find( '.wpforms-submit' ),
|
275 |
+
altText = $submit.data( 'alt-text' ),
|
276 |
+
recaptchaID = $submit.get( 0 ).recaptchaID;
|
277 |
|
278 |
+
if ( ! app.empty( recaptchaID ) || recaptchaID === 0 ) {
|
279 |
|
280 |
+
// Form contains invisible reCAPTCHA.
|
281 |
+
grecaptcha.execute( recaptchaID );
|
282 |
+
return false;
|
283 |
+
}
|
|
|
|
|
|
|
284 |
|
285 |
+
// Normal form.
|
286 |
+
if ( altText ) {
|
287 |
+
$submit.text( altText ).prop( 'disabled', true );
|
288 |
+
}
|
289 |
|
290 |
+
// Remove name attributes if needed.
|
291 |
+
$( '.wpforms-input-temp-name' ).removeAttr( 'name' );
|
292 |
|
293 |
+
app.formSubmit( $form );
|
|
|
|
|
294 |
},
|
295 |
onkeyup: function( element, event ) {
|
296 |
|
454 |
|
455 |
// Determine the country by IP if no GDPR restrictions enabled.
|
456 |
if ( ! wpforms_settings.gdpr ) {
|
457 |
+
inputOptions.geoIpLookup = app.currentIpToCountry;
|
458 |
}
|
459 |
|
460 |
// Try to kick in an alternative solution if GDPR restrictions are enabled.
|
504 |
*/
|
505 |
loadPayments: function() {
|
506 |
|
507 |
+
// Update Total field(s) with latest calculation.
|
508 |
$( '.wpforms-payment-total' ).each( function( index, el ) {
|
509 |
+
app.amountTotal( this );
|
510 |
} );
|
511 |
|
512 |
+
// Credit card validation.
|
513 |
if ( typeof $.fn.payment !== 'undefined' ) {
|
514 |
$( '.wpforms-field-credit-card-cardnumber' ).payment( 'formatCardNumber' );
|
515 |
$( '.wpforms-field-credit-card-cardcvc' ).payment( 'formatCardCVC' );
|
516 |
}
|
517 |
},
|
518 |
|
519 |
+
/**
|
520 |
+
* Load mailcheck.
|
521 |
+
*
|
522 |
+
* @since 1.5.3
|
523 |
+
*/
|
524 |
+
loadMailcheck: function() {
|
525 |
+
|
526 |
+
// Skip loading if `wpforms_mailcheck_enabled` filter return false.
|
527 |
+
if ( ! wpforms_settings.mailcheck_enabled ) {
|
528 |
+
return;
|
529 |
+
}
|
530 |
+
|
531 |
+
// Only load if library exists.
|
532 |
+
if ( typeof $.fn.mailcheck === 'undefined' ) {
|
533 |
+
return;
|
534 |
+
}
|
535 |
+
|
536 |
+
if ( wpforms_settings.mailcheck_domains.length > 0 ) {
|
537 |
+
Mailcheck.defaultDomains = Mailcheck.defaultDomains.concat( wpforms_settings.mailcheck_domains );
|
538 |
+
}
|
539 |
+
if ( wpforms_settings.mailcheck_toplevel_domains.length > 0 ) {
|
540 |
+
Mailcheck.defaultTopLevelDomains = Mailcheck.defaultTopLevelDomains.concat( wpforms_settings.mailcheck_toplevel_domains );
|
541 |
+
}
|
542 |
+
|
543 |
+
// Mailcheck suggestion.
|
544 |
+
$( document ).on( 'blur', '.wpforms-field-email input', function() {
|
545 |
+
var $t = $( this ),
|
546 |
+
id = $t.attr( 'id' );
|
547 |
+
|
548 |
+
$t.mailcheck( {
|
549 |
+
suggested: function( el, suggestion ) {
|
550 |
+
$( '#' + id + '_suggestion' ).remove();
|
551 |
+
var sugg = '<a href="#" class="mailcheck-suggestion" data-id="' + id + '" title="' + wpforms_settings.val_email_suggestion_title + '">' + suggestion.full + '</a>';
|
552 |
+
sugg = wpforms_settings.val_email_suggestion.replace( '{suggestion}', sugg );
|
553 |
+
$( el ).after( '<label class="wpforms-error mailcheck-error" id="' + id + '_suggestion">' + sugg + '</label>' );
|
554 |
+
},
|
555 |
+
empty: function() {
|
556 |
+
$( '#' + id + '_suggestion' ).remove();
|
557 |
+
},
|
558 |
+
} );
|
559 |
+
} );
|
560 |
+
|
561 |
+
// Apply Mailcheck suggestion.
|
562 |
+
$( document ).on( 'click', '.wpforms-field-email .mailcheck-suggestion', function( e ) {
|
563 |
+
var $t = $( this ),
|
564 |
+
id = $t.attr( 'data-id' );
|
565 |
+
e.preventDefault();
|
566 |
+
$( '#' + id ).val( $t.text() );
|
567 |
+
$t.parent().remove();
|
568 |
+
} );
|
569 |
+
|
570 |
+
},
|
571 |
+
|
572 |
//--------------------------------------------------------------------//
|
573 |
// Binds.
|
574 |
//--------------------------------------------------------------------//
|
583 |
// Pagebreak navigation.
|
584 |
$( document ).on( 'click', '.wpforms-page-button', function( event ) {
|
585 |
event.preventDefault();
|
586 |
+
app.pagebreakNav( $( this ) );
|
587 |
} );
|
588 |
|
589 |
// Payments: Update Total field(s) when latest calculation.
|
590 |
$( document ).on( 'change input', '.wpforms-payment-price', function() {
|
591 |
+
app.amountTotal( this, true );
|
592 |
} );
|
593 |
|
594 |
// Payments: Restrict user input payment fields.
|
602 |
$( document ).on( 'focusout', '.wpforms-payment-user-input', function() {
|
603 |
var $this = $( this ),
|
604 |
amount = $this.val(),
|
605 |
+
sanitized = app.amountSanitize( amount ),
|
606 |
+
formatted = app.amountFormat( sanitized );
|
607 |
$this.val( formatted );
|
608 |
} );
|
609 |
|
610 |
+
// Payments: Update Total field(s) when conditials are processed.
|
611 |
+
$( document ).on( 'wpformsProcessConditionals', function( e, el ) {
|
612 |
+
app.amountTotal( el, true );
|
613 |
+
} );
|
614 |
+
|
615 |
// Payment radio/checkbox fields: preselect the selected payment (from dynamic/fallback population).
|
616 |
$( document ).ready( function() {
|
617 |
|
652 |
$( '.wpforms-field-rating-item input:checked' ).change();
|
653 |
} );
|
654 |
|
655 |
+
// Checkbox/Radio/Payment checkbox: make labels keyboard-accessible.
|
656 |
+
$( document ).on( 'keypress', '.wpforms-image-choices-item label', function( event ) {
|
657 |
+
var $this = $( this ),
|
658 |
+
$field = $this.closest( '.wpforms-field' );
|
659 |
+
|
660 |
+
if ( $field.hasClass( 'wpforms-conditional-hide' ) ) {
|
661 |
+
event.preventDefault();
|
662 |
+
return false;
|
663 |
+
}
|
664 |
+
|
665 |
+
// Cause the input to be clicked when clicking the label.
|
666 |
+
if ( 13 === event.which ) {
|
667 |
+
$( '#' + $this.attr( 'for' ) ).click();
|
668 |
+
}
|
669 |
+
} );
|
670 |
+
|
671 |
$( document ).on( 'change', '.wpforms-field-checkbox input, .wpforms-field-radio input, .wpforms-field-payment-multiple input, .wpforms-field-payment-checkbox input, .wpforms-field-gdpr-checkbox input', function( event ) {
|
672 |
|
673 |
var $this = $( this ),
|
687 |
break;
|
688 |
|
689 |
case 'checkbox':
|
690 |
+
if ( $this.is( ':checked' ) ) {
|
691 |
$this.closest( 'li' ).addClass( 'wpforms-selected' );
|
692 |
$this.prop( 'checked', true );
|
693 |
} else {
|
694 |
$this.closest( 'li' ).removeClass( 'wpforms-selected' );
|
695 |
+
$this.prop( 'checked', false );
|
696 |
}
|
697 |
break;
|
698 |
}
|
700 |
|
701 |
// Upload fields: Check combined file size.
|
702 |
$( document ).on( 'change', '.wpforms-field-file-upload input', function() {
|
703 |
+
var $this = $( this ),
|
704 |
+
$uploads = $this.closest( 'form.wpforms-form' ).find( '.wpforms-field-file-upload input' ),
|
705 |
+
totalSize = 0,
|
706 |
+
postMaxSize = Number( wpforms_settings.post_max_size ),
|
707 |
+
errorMsg = '<div class="wpforms-error-container-post_max_size">' + wpforms_settings.val_post_max_size + '</div>',
|
708 |
+
errorCntTpl = '<div class="wpforms-error-container">{errorMsg}</span></div>',
|
709 |
+
$submitCnt = $this.closest( 'form.wpforms-form' ).find( '.wpforms-submit-container' ),
|
710 |
+
$submitBtn = $submitCnt.find( 'button.wpforms-submit' ),
|
711 |
+
$errorCnt = $submitCnt.prev();
|
712 |
|
713 |
// Calculating totalSize.
|
714 |
$uploads.each( function() {
|
749 |
|
750 |
} );
|
751 |
|
752 |
+
// Enter key event.
|
753 |
+
$( document ).on( 'keydown', '.wpforms-form input', function( e ) {
|
754 |
+
|
755 |
+
if ( e.keyCode !== 13 ) {
|
756 |
+
return;
|
757 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
758 |
|
|
|
|
|
759 |
var $t = $( this ),
|
760 |
+
$page = $t.closest( '.wpforms-page' );
|
761 |
+
|
762 |
+
if ( $page.length === 0 ) {
|
763 |
+
return;
|
764 |
+
}
|
765 |
+
|
766 |
+
if ( [ 'text', 'tel', 'number', 'email', 'url', 'radio', 'checkbox' ].indexOf( $t.attr( 'type' ) ) < 0 ) {
|
767 |
+
return;
|
768 |
+
}
|
769 |
+
|
770 |
+
if ( $t.hasClass( 'wpforms-datepicker' ) ) {
|
771 |
+
$t.flatpickr( 'close' );
|
772 |
+
}
|
773 |
+
|
774 |
+
if ( $page.hasClass( 'last' ) ) {
|
775 |
+
$page.closest( '.wpforms-form' ).find( '.wpforms-submit' ).click();
|
776 |
+
return;
|
777 |
+
}
|
778 |
+
|
779 |
e.preventDefault();
|
780 |
+
$page.find( '.wpforms-page-next' ).click();
|
|
|
781 |
} );
|
782 |
|
783 |
},
|
786 |
* Update Pagebreak navigation.
|
787 |
*
|
788 |
* @since 1.2.2
|
789 |
+
*
|
790 |
+
* @param {jQuery} el jQuery element object.
|
791 |
*/
|
792 |
pagebreakNav: function( el ) {
|
793 |
|
810 |
// TODO: cleanup this BC with wpform_pageScroll.
|
811 |
if ( false === window.wpforms_pageScroll ) {
|
812 |
pageScroll = false;
|
813 |
+
} else if ( ! app.empty( window.wpform_pageScroll ) ) {
|
814 |
pageScroll = window.wpform_pageScroll;
|
815 |
} else {
|
816 |
pageScroll = 75;
|
830 |
// Scroll to first/top error on page.
|
831 |
var $topError = $page.find( '.wpforms-error' ).first();
|
832 |
if ( $topError.length ) {
|
833 |
+
app.animateScrollTop( $topError.offset().top - 75, 750, $topError.focus );
|
|
|
|
|
|
|
|
|
834 |
}
|
835 |
}
|
836 |
|
847 |
if ( pageScroll ) {
|
848 |
|
849 |
// Scroll to top of the form.
|
850 |
+
app.animateScrollTop( $form.offset().top - pageScroll );
|
|
|
|
|
851 |
}
|
852 |
$this.trigger( 'wpformsPageChange', [ page2, $form ] );
|
853 |
}
|
862 |
if ( pageScroll ) {
|
863 |
|
864 |
// Scroll to top of the form.
|
865 |
+
app.animateScrollTop( $form.offset().top - pageScroll );
|
|
|
|
|
866 |
}
|
867 |
$this.trigger( 'wpformsPageChange', [ page2, $form ] );
|
868 |
}
|
909 |
|
910 |
// OM v5.
|
911 |
document.addEventListener( 'om.Campaign.load', function( event ) {
|
912 |
+
app.ready();
|
913 |
+
app.optinMonsterRecaptchaReset( event.detail.Campaign.data.id );
|
914 |
} );
|
915 |
|
916 |
// OM Legacy.
|
917 |
$( document ).on( 'OptinMonsterOnShow', function( event, data, object ) {
|
918 |
+
app.ready();
|
919 |
+
app.optinMonsterRecaptchaReset( data.optin );
|
920 |
} );
|
921 |
},
|
922 |
|
962 |
*/
|
963 |
amountTotal: function( el, validate ) {
|
964 |
|
965 |
+
validate = validate || false;
|
966 |
+
|
967 |
+
var $form = $( el ).closest( '.wpforms-form' ),
|
968 |
total = 0,
|
969 |
+
totalFormatted,
|
970 |
+
totalFormattedSymbol,
|
971 |
+
currency = app.getCurrency();
|
972 |
|
973 |
$( '.wpforms-payment-price', $form ).each( function( index, el ) {
|
974 |
|
975 |
var amount = 0,
|
976 |
$this = $( this );
|
977 |
|
978 |
+
if ( $this.closest( '.wpforms-field-payment-single' ).hasClass( 'wpforms-conditional-hide' ) ) {
|
979 |
+
return;
|
980 |
+
}
|
981 |
if ( 'text' === $this.attr( 'type' ) || 'hidden' === $this.attr( 'type' ) ) {
|
982 |
amount = $this.val();
|
983 |
} else if ( ( 'radio' === $this.attr( 'type' ) || 'checkbox' === $this.attr( 'type' ) ) && $this.is( ':checked' ) ) {
|
985 |
} else if ( $this.is( 'select' ) && $this.find( 'option:selected' ).length > 0 ) {
|
986 |
amount = $this.find( 'option:selected' ).data( 'amount' );
|
987 |
}
|
988 |
+
if ( ! app.empty( amount ) ) {
|
989 |
+
amount = app.amountSanitize( amount );
|
990 |
total = Number( total ) + Number( amount );
|
991 |
}
|
992 |
} );
|
993 |
|
994 |
+
totalFormatted = app.amountFormat( total );
|
995 |
|
996 |
if ( 'left' === currency.symbol_pos ) {
|
997 |
totalFormattedSymbol = currency.symbol + ' ' + totalFormatted;
|
1018 |
*/
|
1019 |
amountSanitize: function( amount ) {
|
1020 |
|
1021 |
+
var currency = app.getCurrency();
|
1022 |
|
1023 |
amount = amount.toString().replace( /[^0-9.,]/g, '' );
|
1024 |
|
1033 |
amount = amount.replace( currency.thousands_sep, '' );
|
1034 |
}
|
1035 |
|
1036 |
+
return app.numberFormat( amount, 2, '.', '' );
|
1037 |
},
|
1038 |
|
1039 |
/**
|
1043 |
*/
|
1044 |
amountFormat: function( amount ) {
|
1045 |
|
1046 |
+
var currency = app.getCurrency();
|
1047 |
|
1048 |
amount = String( amount );
|
1049 |
|
1060 |
amount = amount.replace( ',', '' );
|
1061 |
}
|
1062 |
|
1063 |
+
if ( app.empty( amount ) ) {
|
1064 |
amount = 0;
|
1065 |
}
|
1066 |
|
1067 |
+
return app.numberFormat( amount, 2, currency.decimal_sep, currency.thousands_sep );
|
1068 |
},
|
1069 |
|
1070 |
/**
|
1174 |
*/
|
1175 |
setUserIndentifier: function() {
|
1176 |
|
1177 |
+
if ( ( ( ! window.hasRequiredConsent && typeof wpforms_settings !== 'undefined' && wpforms_settings.uuid_cookie ) || ( window.hasRequiredConsent && window.hasRequiredConsent() ) ) && ! app.getCookie( '_wpfuuid' ) ) {
|
1178 |
|
1179 |
// Generate UUID - http://stackoverflow.com/a/873856/1489528
|
1180 |
var s = new Array( 36 ),
|
1190 |
|
1191 |
uuid = s.join( '' );
|
1192 |
|
1193 |
+
app.createCookie( '_wpfuuid', uuid, 3999 );
|
1194 |
}
|
1195 |
},
|
1196 |
|
1250 |
*/
|
1251 |
removeCookie: function( name ) {
|
1252 |
|
1253 |
+
app.createCookie( name, '', -1 );
|
1254 |
},
|
1255 |
|
1256 |
/**
|
1304 |
var countryCode = ( resp && resp.country ) ? resp.country : '';
|
1305 |
|
1306 |
if ( ! countryCode ) {
|
1307 |
+
var lang = app.getFirstBrowserLanguage();
|
1308 |
countryCode = lang.indexOf( '-' ) > -1 ? lang.split( '-' ).pop() : '';
|
1309 |
}
|
1310 |
|
1311 |
callback( countryCode );
|
1312 |
} );
|
1313 |
},
|
1314 |
+
|
1315 |
+
/**
|
1316 |
+
* Form submit.
|
1317 |
+
*
|
1318 |
+
* @since 1.5.3
|
1319 |
+
*
|
1320 |
+
* @param {jQuery} $form Form element.
|
1321 |
+
*/
|
1322 |
+
formSubmit: function( $form ) {
|
1323 |
+
|
1324 |
+
if ( $form.hasClass( 'wpforms-ajax-form' ) && typeof FormData !== 'undefined' ) {
|
1325 |
+
app.formSubmitAjax( $form );
|
1326 |
+
} else {
|
1327 |
+
app.formSubmitNormal( $form );
|
1328 |
+
}
|
1329 |
+
},
|
1330 |
+
|
1331 |
+
/**
|
1332 |
+
* Normal form submit with page reload.
|
1333 |
+
*
|
1334 |
+
* @since 1.5.3
|
1335 |
+
*
|
1336 |
+
* @param {jQuery} $form Form element.
|
1337 |
+
*/
|
1338 |
+
formSubmitNormal: function( $form ) {
|
1339 |
+
|
1340 |
+
if ( ! $form.length ) {
|
1341 |
+
return;
|
1342 |
+
}
|
1343 |
+
|
1344 |
+
var $submit = $form.find( '.wpforms-submit' ),
|
1345 |
+
recaptchaID = $submit.get( 0 ).recaptchaID;
|
1346 |
+
|
1347 |
+
if ( ! app.empty( recaptchaID ) || recaptchaID === 0 ) {
|
1348 |
+
$submit.get( 0 ).recaptchaID = false;
|
1349 |
+
}
|
1350 |
+
|
1351 |
+
$form.get( 0 ).submit();
|
1352 |
+
},
|
1353 |
+
|
1354 |
+
/**
|
1355 |
+
* Reset form recaptcha.
|
1356 |
+
*
|
1357 |
+
* @since 1.5.3
|
1358 |
+
*
|
1359 |
+
* @param {jQuery} $form Form element.
|
1360 |
+
*/
|
1361 |
+
resetFormRecaptcha: function( $form ) {
|
1362 |
+
|
1363 |
+
if ( ! $form || ! $form.length ) {
|
1364 |
+
return;
|
1365 |
+
}
|
1366 |
+
|
1367 |
+
if ( typeof grecaptcha === 'undefined' ) {
|
1368 |
+
return;
|
1369 |
+
}
|
1370 |
+
|
1371 |
+
var recaptchaID;
|
1372 |
+
|
1373 |
+
// Check for invisible recaptcha first.
|
1374 |
+
recaptchaID = $form.find( '.wpforms-submit' ).get( 0 ).recaptchaID;
|
1375 |
+
|
1376 |
+
// Check for v2 recaptcha if invisible recaptcha is not found.
|
1377 |
+
if ( app.empty( recaptchaID ) && recaptchaID !== 0 ) {
|
1378 |
+
recaptchaID = $form.find( '.g-recaptcha' ).data( 'recaptcha-id' );
|
1379 |
+
}
|
1380 |
+
|
1381 |
+
// Reset recaptcha.
|
1382 |
+
if ( ! app.empty( recaptchaID ) || recaptchaID === 0 ) {
|
1383 |
+
grecaptcha.reset( recaptchaID );
|
1384 |
+
}
|
1385 |
+
},
|
1386 |
+
|
1387 |
+
/**
|
1388 |
+
* Console log AJAX error.
|
1389 |
+
*
|
1390 |
+
* @since 1.5.3
|
1391 |
+
*
|
1392 |
+
* @param {string} error Error text (optional).
|
1393 |
+
*/
|
1394 |
+
consoleLogAjaxError: function( error ) {
|
1395 |
+
|
1396 |
+
if ( error ) {
|
1397 |
+
console.error( 'WPForms AJAX submit error:\n%s', error ); // eslint-disable-line no-console
|
1398 |
+
} else {
|
1399 |
+
console.error( 'WPForms AJAX submit error' ); // eslint-disable-line no-console
|
1400 |
+
}
|
1401 |
+
},
|
1402 |
+
|
1403 |
+
/**
|
1404 |
+
* Display form AJAX errors.
|
1405 |
+
*
|
1406 |
+
* @since 1.5.3
|
1407 |
+
*
|
1408 |
+
* @param {jQuery} $form Form element.
|
1409 |
+
* @param {object} errors Errors in format { general: { generalErrors }, field: { fieldErrors } }.
|
1410 |
+
*/
|
1411 |
+
displayFormAjaxErrors: function( $form, errors ) {
|
1412 |
+
|
1413 |
+
if ( app.empty( errors ) || ( app.empty( errors.general ) && app.empty( errors.field ) ) ) {
|
1414 |
+
app.consoleLogAjaxError();
|
1415 |
+
return;
|
1416 |
+
}
|
1417 |
+
|
1418 |
+
if ( ! app.empty( errors.general ) ) {
|
1419 |
+
app.displayFormAjaxGeneralErrors( $form, errors.general );
|
1420 |
+
}
|
1421 |
+
|
1422 |
+
if ( ! app.empty( errors.field ) ) {
|
1423 |
+
app.displayFormAjaxFieldErrors( $form, errors.field );
|
1424 |
+
}
|
1425 |
+
},
|
1426 |
+
|
1427 |
+
/**
|
1428 |
+
* Display form AJAX general errors that cannot be displayed using jQuery Validation plugin.
|
1429 |
+
*
|
1430 |
+
* @since 1.5.3
|
1431 |
+
*
|
1432 |
+
* @param {jQuery} $form Form element.
|
1433 |
+
* @param {object} errors Errors in format { errorType: errorText }.
|
1434 |
+
*/
|
1435 |
+
displayFormAjaxGeneralErrors: function( $form, errors ) {
|
1436 |
+
|
1437 |
+
if ( ! $form || ! $form.length ) {
|
1438 |
+
return;
|
1439 |
+
}
|
1440 |
+
|
1441 |
+
if ( app.empty( errors ) ) {
|
1442 |
+
return;
|
1443 |
+
}
|
1444 |
+
|
1445 |
+
$.each( errors, function( type, html ) {
|
1446 |
+
switch ( type ) {
|
1447 |
+
case 'header':
|
1448 |
+
$form.prepend( html );
|
1449 |
+
break;
|
1450 |
+
case 'footer':
|
1451 |
+
$form.find( '.wpforms-submit-container' ).before( html );
|
1452 |
+
break;
|
1453 |
+
case 'recaptcha':
|
1454 |
+
$form.find( '.wpforms-recaptcha-container' ).append( html );
|
1455 |
+
break;
|
1456 |
+
}
|
1457 |
+
} );
|
1458 |
+
},
|
1459 |
+
|
1460 |
+
/**
|
1461 |
+
* Clear forms AJAX general errors that cannot be cleared using jQuery Validation plugin.
|
1462 |
+
*
|
1463 |
+
* @since 1.5.3
|
1464 |
+
*
|
1465 |
+
* @param {jQuery} $form Form element.
|
1466 |
+
*/
|
1467 |
+
clearFormAjaxGeneralErrors: function( $form ) {
|
1468 |
+
|
1469 |
+
$form.find( '.wpforms-error-container' ).remove();
|
1470 |
+
$form.find( '#wpforms-field_recaptcha-error' ).remove();
|
1471 |
+
},
|
1472 |
+
|
1473 |
+
/**
|
1474 |
+
* Display form AJAX field errors using jQuery Validation plugin.
|
1475 |
+
*
|
1476 |
+
* @since 1.5.3
|
1477 |
+
*
|
1478 |
+
* @param {jQuery} $form Form element.
|
1479 |
+
* @param {object} errors Errors in format { fieldName: errorText }.
|
1480 |
+
*/
|
1481 |
+
displayFormAjaxFieldErrors: function( $form, errors ) {
|
1482 |
+
|
1483 |
+
if ( ! $form || ! $form.length ) {
|
1484 |
+
return;
|
1485 |
+
}
|
1486 |
+
|
1487 |
+
if ( app.empty( errors ) ) {
|
1488 |
+
return;
|
1489 |
+
}
|
1490 |
+
|
1491 |
+
var validator = $form.data( 'validator' );
|
1492 |
+
|
1493 |
+
if ( ! validator ) {
|
1494 |
+
return;
|
1495 |
+
}
|
1496 |
+
|
1497 |
+
validator.showErrors( errors );
|
1498 |
+
validator.focusInvalid();
|
1499 |
+
},
|
1500 |
+
|
1501 |
+
/**
|
1502 |
+
* Submit a form using AJAX.
|
1503 |
+
*
|
1504 |
+
* @since 1.5.3
|
1505 |
+
*
|
1506 |
+
* @param {jQuery} $form Form element.
|
1507 |
+
*
|
1508 |
+
* @returns {JQueryXHR|JQueryDeferred} Promise like object for async callbacks.
|
1509 |
+
*/
|
1510 |
+
formSubmitAjax: function( $form ) {
|
1511 |
+
|
1512 |
+
if ( ! $form.length ) {
|
1513 |
+
return $.Deferred().reject(); // eslint-disable-line new-cap
|
1514 |
+
}
|
1515 |
+
|
1516 |
+
var $container = $form.closest( '.wpforms-container' ),
|
1517 |
+
$spinner = $form.find( '.wpforms-submit-spinner' ),
|
1518 |
+
$confirmationScroll,
|
1519 |
+
formData,
|
1520 |
+
args;
|
1521 |
+
|
1522 |
+
$container.css( 'opacity', 0.6 );
|
1523 |
+
$spinner.show();
|
1524 |
+
|
1525 |
+
app.clearFormAjaxGeneralErrors( $form );
|
1526 |
+
|
1527 |
+
formData = new FormData( $form.get( 0 ) );
|
1528 |
+
formData.append( 'action', 'wpforms_submit' );
|
1529 |
+
|
1530 |
+
args = {
|
1531 |
+
type : 'post',
|
1532 |
+
dataType : 'json',
|
1533 |
+
url : wpforms_settings.ajaxurl,
|
1534 |
+
data : formData,
|
1535 |
+
cache : false,
|
1536 |
+
contentType: false,
|
1537 |
+
processData: false,
|
1538 |
+
};
|
1539 |
+
|
1540 |
+
args.success = function( json ) {
|
1541 |
+
|
1542 |
+
if ( ! json ) {
|
1543 |
+
app.consoleLogAjaxError();
|
1544 |
+
return;
|
1545 |
+
}
|
1546 |
+
|
1547 |
+
if ( ! json.success ) {
|
1548 |
+
app.resetFormRecaptcha( $form );
|
1549 |
+
var errors = json.data && 'errors' in json.data ? json.data.errors : null;
|
1550 |
+
app.displayFormAjaxErrors( $form, errors );
|
1551 |
+
$form.trigger( 'wpformsAjaxSubmitFailed', json );
|
1552 |
+
return;
|
1553 |
+
}
|
1554 |
+
|
1555 |
+
$form.trigger( 'wpformsAjaxSubmitSuccess', json );
|
1556 |
+
|
1557 |
+
if ( ! json.data ) {
|
1558 |
+
return;
|
1559 |
+
}
|
1560 |
+
|
1561 |
+
if ( json.data.redirect_url ) {
|
1562 |
+
$form.trigger( 'wpformsAjaxSubmitBeforeRedirect', json );
|
1563 |
+
window.location = json.data.redirect_url;
|
1564 |
+
return;
|
1565 |
+
}
|
1566 |
+
|
1567 |
+
if ( json.data.confirmation ) {
|
1568 |
+
$container.html( json.data.confirmation );
|
1569 |
+
$confirmationScroll = $container.find( 'div.wpforms-confirmation-scroll' );
|
1570 |
+
if ( $confirmationScroll.length ) {
|
1571 |
+
app.animateScrollTop( $confirmationScroll.offset().top - 100 );
|
1572 |
+
}
|
1573 |
+
}
|
1574 |
+
};
|
1575 |
+
|
1576 |
+
args.error = function( jqHXR, textStatus, error ) {
|
1577 |
+
|
1578 |
+
app.consoleLogAjaxError( error );
|
1579 |
+
|
1580 |
+
$form.trigger( 'wpformsAjaxSubmitError', [ jqHXR, textStatus, error ] );
|
1581 |
+
};
|
1582 |
+
|
1583 |
+
args.complete = function( jqHXR, textStatus ) {
|
1584 |
+
|
1585 |
+
var $submit = $form.find( '.wpforms-submit' ),
|
1586 |
+
submitText = $submit.data( 'submit-text' );
|
1587 |
+
|
1588 |
+
if ( submitText ) {
|
1589 |
+
$submit.text( submitText ).prop( 'disabled', false );
|
1590 |
+
}
|
1591 |
+
|
1592 |
+
$container.css( 'opacity', '' );
|
1593 |
+
$spinner.hide();
|
1594 |
+
|
1595 |
+
$form.trigger( 'wpformsAjaxSubmitCompleted', [ jqHXR, textStatus ] );
|
1596 |
+
};
|
1597 |
+
|
1598 |
+
$form.trigger( 'wpformsAjaxBeforeSubmit' );
|
1599 |
+
|
1600 |
+
return $.ajax( args );
|
1601 |
+
},
|
1602 |
+
|
1603 |
+
/**
|
1604 |
+
* Scroll to position with animation.
|
1605 |
+
*
|
1606 |
+
* @since 1.5.3
|
1607 |
+
*
|
1608 |
+
* @param {number} position Position (in pixels) to scroll to,
|
1609 |
+
* @param {number} duration Animation duration.
|
1610 |
+
* @param {Function} complete Function to execute after animation is complete.
|
1611 |
+
*
|
1612 |
+
* @returns {JQueryPromise} Promise object for async callbacks.
|
1613 |
+
*/
|
1614 |
+
animateScrollTop: function( position, duration, complete ) {
|
1615 |
+
|
1616 |
+
duration = duration || 1000;
|
1617 |
+
return $( 'html, body' ).animate( { scrollTop: position }, duration, complete ).promise();
|
1618 |
+
},
|
1619 |
};
|
1620 |
|
1621 |
+
return app;
|
|
|
1622 |
|
1623 |
+
}( document, window, jQuery ) );
|
|
|
1624 |
|
1625 |
+
// Initialize.
|
1626 |
+
wpforms.init();
|
changelog.txt
CHANGED
@@ -1,5 +1,16 @@
|
|
1 |
== Changelog ==
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
= 1.5.2.3 =
|
4 |
- Fixed: PHP error if checkbox field is empty when form is submitted.
|
5 |
|
1 |
== Changelog ==
|
2 |
|
3 |
+
= 1.5.3 =
|
4 |
+
- Added: AJAX form submissions.
|
5 |
+
- Added: Full support and compatiblity with Google AMP.
|
6 |
+
- Added: Google reCAPTCHA v3.
|
7 |
+
- Changed: WPForms uninstall script for better cleanup process.
|
8 |
+
- Changed: Email field mailcheck feature to offer additional controls. New filters: `wpforms_mailcheck_enabled`, `wpforms_mailcheck_domains`, and `wpforms_mailcheck_toplevel_domains`.
|
9 |
+
- Fixed: Special characters aren't encoded when Smart Tags are processed in query string.
|
10 |
+
- Fixed: Fields with Image choices are not working with some Android and older desktop browsers.
|
11 |
+
- Fixed: Form Builder: Several alert modals are displayed in batch if multiple providers have configuration issues.
|
12 |
+
- Fixed: WP_Post object is returned from `wpforms()->form->get()` if form data is requested with a non-WPForms post ID.
|
13 |
+
|
14 |
= 1.5.2.3 =
|
15 |
- Fixed: PHP error if checkbox field is empty when form is submitted.
|
16 |
|
includes/admin/admin.php
CHANGED
@@ -344,8 +344,8 @@ function wpforms_admin_upgrade_link( $medium = 'link' ) {
|
|
344 |
*/
|
345 |
function wpforms_check_php_version() {
|
346 |
|
347 |
-
// Display for PHP below 5.
|
348 |
-
if ( version_compare( PHP_VERSION, '5.
|
349 |
return;
|
350 |
}
|
351 |
|
@@ -379,7 +379,7 @@ function wpforms_check_php_version() {
|
|
379 |
) .
|
380 |
'<br><br><em>' .
|
381 |
wp_kses(
|
382 |
-
__( '<strong>Please Note:</strong> Support for PHP 5.3 will be discontinued in 2019. After this, if no further action is taken, WPForms functionality will be disabled.', 'wpforms-lite' ),
|
383 |
array(
|
384 |
'strong' => array(),
|
385 |
'em' => array(),
|
344 |
*/
|
345 |
function wpforms_check_php_version() {
|
346 |
|
347 |
+
// Display for PHP below 5.6
|
348 |
+
if ( version_compare( PHP_VERSION, '5.5', '>=' ) ) {
|
349 |
return;
|
350 |
}
|
351 |
|
379 |
) .
|
380 |
'<br><br><em>' .
|
381 |
wp_kses(
|
382 |
+
__( '<strong>Please Note:</strong> Support for PHP 5.3 to 5.5 will be discontinued in 2019. After this, if no further action is taken, WPForms functionality will be disabled.', 'wpforms-lite' ),
|
383 |
array(
|
384 |
'strong' => array(),
|
385 |
'em' => array(),
|
includes/admin/builder/panels/class-settings.php
CHANGED
@@ -150,12 +150,23 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
|
|
150 |
$recaptcha_secret = wpforms_setting( 'recaptcha-secret-key' );
|
151 |
$recaptcha_type = wpforms_setting( 'recaptcha-type' );
|
152 |
if ( ! empty( $recaptcha_key ) && ! empty( $recaptcha_secret ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
wpforms_panel_field(
|
154 |
'checkbox',
|
155 |
'settings',
|
156 |
'recaptcha',
|
157 |
$this->form_data,
|
158 |
-
|
159 |
);
|
160 |
}
|
161 |
wpforms_panel_field(
|
@@ -168,6 +179,16 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
|
|
168 |
'tooltip' => '<a href="https://developers.wpforms.com/docs/enable-dynamic-field-population/" target="_blank" rel="noopener noreferrer">' . esc_html__( 'How to use Dynamic Field Population', 'wpforms-lite' ) . '</a>',
|
169 |
)
|
170 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
|
172 |
do_action( 'wpforms_form_settings_general', $this );
|
173 |
echo '</div>';
|
150 |
$recaptcha_secret = wpforms_setting( 'recaptcha-secret-key' );
|
151 |
$recaptcha_type = wpforms_setting( 'recaptcha-type' );
|
152 |
if ( ! empty( $recaptcha_key ) && ! empty( $recaptcha_secret ) ) {
|
153 |
+
switch ( $recaptcha_type ) {
|
154 |
+
case 'v2':
|
155 |
+
$lbl = esc_html__( 'Enable Google Checkbox v2 reCAPTCHA', 'wpforms-lite' );
|
156 |
+
break;
|
157 |
+
case 'invisible':
|
158 |
+
$lbl = esc_html__( 'Enable Google Invisible v2 reCAPTCHA', 'wpforms-lite' );
|
159 |
+
break;
|
160 |
+
case 'v3':
|
161 |
+
$lbl = esc_html__( 'Enable Google v3 reCAPTCHA', 'wpforms-lite' );
|
162 |
+
break;
|
163 |
+
}
|
164 |
wpforms_panel_field(
|
165 |
'checkbox',
|
166 |
'settings',
|
167 |
'recaptcha',
|
168 |
$this->form_data,
|
169 |
+
$lbl
|
170 |
);
|
171 |
}
|
172 |
wpforms_panel_field(
|
179 |
'tooltip' => '<a href="https://developers.wpforms.com/docs/enable-dynamic-field-population/" target="_blank" rel="noopener noreferrer">' . esc_html__( 'How to use Dynamic Field Population', 'wpforms-lite' ) . '</a>',
|
180 |
)
|
181 |
);
|
182 |
+
wpforms_panel_field(
|
183 |
+
'checkbox',
|
184 |
+
'settings',
|
185 |
+
'ajax_submit',
|
186 |
+
$this->form_data,
|
187 |
+
esc_html__( 'Enable AJAX form submission', 'wpforms-lite' ),
|
188 |
+
array(
|
189 |
+
'tooltip' => esc_html__( 'Enables form submission without page reload.', 'wpforms-lite' ),
|
190 |
+
)
|
191 |
+
);
|
192 |
|
193 |
do_action( 'wpforms_form_settings_general', $this );
|
194 |
echo '</div>';
|
includes/admin/class-settings.php
CHANGED
@@ -123,6 +123,9 @@ class WPForms_Settings {
|
|
123 |
case 'color':
|
124 |
$value = wpforms_sanitize_hex_color( $value );
|
125 |
break;
|
|
|
|
|
|
|
126 |
case 'text':
|
127 |
case 'radio':
|
128 |
case 'select':
|
@@ -228,8 +231,37 @@ class WPForms_Settings {
|
|
228 |
|
229 |
// reCAPTCHA heading description is long so we define it separately.
|
230 |
$recaptcha_desc = '<p>' . esc_html__( 'reCAPTCHA is a free anti-spam service from Google which helps to protect your website from spam and abuse while letting real people pass through with ease.', 'wpforms-lite' ) . '</p>';
|
231 |
-
$recaptcha_desc .= '<p>' . esc_html__( 'Google
|
232 |
-
$recaptcha_desc .= '<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
$recaptcha_desc .=
|
234 |
'<p>' .
|
235 |
sprintf(
|
@@ -246,7 +278,7 @@ class WPForms_Settings {
|
|
246 |
),
|
247 |
'https://wpforms.com/docs/setup-captcha-wpforms/'
|
248 |
) .
|
249 |
-
'</p>';
|
250 |
|
251 |
$defaults = array(
|
252 |
// General Settings tab.
|
@@ -386,6 +418,7 @@ class WPForms_Settings {
|
|
386 |
'options' => array(
|
387 |
'v2' => esc_html__( 'Checkbox reCAPTCHA v2', 'wpforms-lite' ),
|
388 |
'invisible' => esc_html__( 'Invisible reCAPTCHA v2', 'wpforms-lite' ),
|
|
|
389 |
),
|
390 |
),
|
391 |
'recaptcha-site-key' => array(
|
@@ -398,6 +431,25 @@ class WPForms_Settings {
|
|
398 |
'name' => esc_html__( 'Secret Key', 'wpforms-lite' ),
|
399 |
'type' => 'text',
|
400 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
401 |
'recaptcha-noconflict' => array(
|
402 |
'id' => 'recaptcha-noconflict',
|
403 |
'name' => esc_html__( 'No-Conflict Mode', 'wpforms-lite' ),
|
@@ -491,11 +543,16 @@ class WPForms_Settings {
|
|
491 |
'uninstall-data' => array(
|
492 |
'id' => 'uninstall-data',
|
493 |
'name' => esc_html__( 'Uninstall WPForms', 'wpforms-lite' ),
|
494 |
-
'desc' => esc_html__( 'Check this if you would like to remove ALL WPForms data upon plugin deletion. All forms
|
495 |
'type' => 'checkbox',
|
496 |
),
|
497 |
),
|
498 |
);
|
|
|
|
|
|
|
|
|
|
|
499 |
$defaults = apply_filters( 'wpforms_settings_defaults', $defaults );
|
500 |
|
501 |
return empty( $view ) ? $defaults : $defaults[ $view ];
|
123 |
case 'color':
|
124 |
$value = wpforms_sanitize_hex_color( $value );
|
125 |
break;
|
126 |
+
case 'number':
|
127 |
+
$value = (float) $value;
|
128 |
+
break;
|
129 |
case 'text':
|
130 |
case 'radio':
|
131 |
case 'select':
|
231 |
|
232 |
// reCAPTCHA heading description is long so we define it separately.
|
233 |
$recaptcha_desc = '<p>' . esc_html__( 'reCAPTCHA is a free anti-spam service from Google which helps to protect your website from spam and abuse while letting real people pass through with ease.', 'wpforms-lite' ) . '</p>';
|
234 |
+
$recaptcha_desc .= '<p>' . esc_html__( 'Google offers 3 versions of reCAPTCHA (all supported within WPForms):', 'wpforms-lite' ) . '</p>';
|
235 |
+
$recaptcha_desc .= '<ul style="list-style: disc;margin-left: 20px;">';
|
236 |
+
$recaptcha_desc .=
|
237 |
+
'<li>' .
|
238 |
+
wp_kses(
|
239 |
+
__( '<strong>v2 Checkbox reCAPTCHA</strong>: Prompts users to check a box to prove they\'re human.', 'wpforms-lite' ),
|
240 |
+
array(
|
241 |
+
'strong' => array()
|
242 |
+
)
|
243 |
+
) .
|
244 |
+
'</li>';
|
245 |
+
$recaptcha_desc .=
|
246 |
+
'<li>' .
|
247 |
+
wp_kses(
|
248 |
+
__( '<strong>v2 Invisible reCAPTCHA</strong>: Uses advanced technology to detect real users without requiring any input.', 'wpforms-lite' ),
|
249 |
+
array(
|
250 |
+
'strong' => array()
|
251 |
+
)
|
252 |
+
) .
|
253 |
+
'</li>';
|
254 |
+
$recaptcha_desc .=
|
255 |
+
'<li>' .
|
256 |
+
wp_kses(
|
257 |
+
__( '<strong>v3 reCAPTCHA</strong>: Uses a behind-the-scenes scoring system to detect abusive traffic, and lets you decide the minimum passing score. Recommended for advanced use only (or if using Google AMP).', 'wpforms-lite' ),
|
258 |
+
array(
|
259 |
+
'strong' => array()
|
260 |
+
)
|
261 |
+
) .
|
262 |
+
'</li>';
|
263 |
+
$recaptcha_desc .= '</ul>';
|
264 |
+
$recaptcha_desc .= '<p>' . esc_html__( 'Sites already using one type of reCAPTCHA will need to create new site keys before switching to a different option.', 'wpforms-lite' ) . '</p>';
|
265 |
$recaptcha_desc .=
|
266 |
'<p>' .
|
267 |
sprintf(
|
278 |
),
|
279 |
'https://wpforms.com/docs/setup-captcha-wpforms/'
|
280 |
) .
|
281 |
+
'</p></ul>';
|
282 |
|
283 |
$defaults = array(
|
284 |
// General Settings tab.
|
418 |
'options' => array(
|
419 |
'v2' => esc_html__( 'Checkbox reCAPTCHA v2', 'wpforms-lite' ),
|
420 |
'invisible' => esc_html__( 'Invisible reCAPTCHA v2', 'wpforms-lite' ),
|
421 |
+
'v3' => esc_html__( 'reCAPTCHA v3', 'wpforms-lite' ),
|
422 |
),
|
423 |
),
|
424 |
'recaptcha-site-key' => array(
|
431 |
'name' => esc_html__( 'Secret Key', 'wpforms-lite' ),
|
432 |
'type' => 'text',
|
433 |
),
|
434 |
+
'recaptcha-fail-msg' => array(
|
435 |
+
'id' => 'recaptcha-fail-msg',
|
436 |
+
'name' => esc_html__( 'Fail Message', 'wpforms-lite' ),
|
437 |
+
'desc' => esc_html__( 'The message displayed to users who fail the reCAPTCHA verification process.', 'wpforms-lite' ),
|
438 |
+
'type' => 'text',
|
439 |
+
'default' => esc_html__( 'Google reCAPTCHA verification failed, please try again later.', 'wpforms-lite' ),
|
440 |
+
),
|
441 |
+
'recaptcha-v3-threshold' => array(
|
442 |
+
'id' => 'recaptcha-v3-threshold',
|
443 |
+
'name' => esc_html__( 'Score Threshold', 'wpforms-lite' ),
|
444 |
+
'desc' => esc_html__( 'reCAPTCHA v3 returns a score (1.0 is very likely a good interaction, 0.0 is very likely a bot). If the score less than or equal to this threshold, the form submission will be blocked and the message above will be displayed.', 'wpforms-lite' ),
|
445 |
+
'type' => 'number',
|
446 |
+
'attr' => array(
|
447 |
+
'step' => '0.1',
|
448 |
+
'min' => '0.0',
|
449 |
+
'max' => '1.0',
|
450 |
+
),
|
451 |
+
'default' => esc_html__( '0.4', 'wpforms-lite' ),
|
452 |
+
),
|
453 |
'recaptcha-noconflict' => array(
|
454 |
'id' => 'recaptcha-noconflict',
|
455 |
'name' => esc_html__( 'No-Conflict Mode', 'wpforms-lite' ),
|
543 |
'uninstall-data' => array(
|
544 |
'id' => 'uninstall-data',
|
545 |
'name' => esc_html__( 'Uninstall WPForms', 'wpforms-lite' ),
|
546 |
+
'desc' => esc_html__( 'Check this if you would like to remove ALL WPForms data upon plugin deletion. All forms and settings will be unrecoverable.', 'wpforms-lite' ),
|
547 |
'type' => 'checkbox',
|
548 |
),
|
549 |
),
|
550 |
);
|
551 |
+
|
552 |
+
if ( wpforms()->pro ) {
|
553 |
+
$defaults['misc']['uninstall-data']['desc'] = esc_html__( 'Check this if you would like to remove ALL WPForms data upon plugin deletion. All forms, entries, and uploaded files will be unrecoverable.', 'wpforms' );
|
554 |
+
}
|
555 |
+
|
556 |
$defaults = apply_filters( 'wpforms_settings_defaults', $defaults );
|
557 |
|
558 |
return empty( $view ) ? $defaults : $defaults[ $view ];
|
includes/admin/settings-api.php
CHANGED
@@ -195,6 +195,41 @@ function wpforms_settings_text_callback( $args ) {
|
|
195 |
return $output;
|
196 |
}
|
197 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
/**
|
199 |
* Settings select field callback.
|
200 |
*
|
195 |
return $output;
|
196 |
}
|
197 |
|
198 |
+
/**
|
199 |
+
* Settings number input field callback.
|
200 |
+
*
|
201 |
+
* @since 1.5.3
|
202 |
+
*
|
203 |
+
* @param array $args Setting field arguments.
|
204 |
+
*
|
205 |
+
* @return string
|
206 |
+
*/
|
207 |
+
function wpforms_settings_number_callback( $args ) {
|
208 |
+
|
209 |
+
$default = isset( $args['default'] ) ? esc_html( $args['default'] ) : '';
|
210 |
+
$id = 'wpforms-setting-' . wpforms_sanitize_key( $args['id'] );
|
211 |
+
$attr = array(
|
212 |
+
'value' => wpforms_setting( $args['id'], $default ),
|
213 |
+
'name' => wpforms_sanitize_key( $args['id'] ),
|
214 |
+
);
|
215 |
+
$data = ! empty( $args['data'] ) ? $args['data'] : array();
|
216 |
+
|
217 |
+
if ( ! empty( $args['attr'] ) ) {
|
218 |
+
$attr = array_merge( $attr, $args['attr'] );
|
219 |
+
}
|
220 |
+
|
221 |
+
$output = sprintf(
|
222 |
+
'<input type="number" %s>',
|
223 |
+
wpforms_html_attributes( $id, array(), $data, $attr )
|
224 |
+
);
|
225 |
+
|
226 |
+
if ( ! empty( $args['desc'] ) ) {
|
227 |
+
$output .= '<p class="desc">' . wp_kses_post( $args['desc'] ) . '</p>';
|
228 |
+
}
|
229 |
+
|
230 |
+
return $output;
|
231 |
+
}
|
232 |
+
|
233 |
/**
|
234 |
* Settings select field callback.
|
235 |
*
|
includes/class-form.php
CHANGED
@@ -83,8 +83,8 @@ class WPForms_Form_Handler {
|
|
83 |
*
|
84 |
* @since 1.0.0
|
85 |
*
|
86 |
-
* @param mixed $id
|
87 |
-
* @param array $args
|
88 |
*
|
89 |
* @return array|bool|null|WP_Post
|
90 |
*/
|
@@ -102,8 +102,8 @@ class WPForms_Form_Handler {
|
|
102 |
// If ID is provided, we get a single form
|
103 |
$forms = get_post( absint( $id ) );
|
104 |
|
105 |
-
if ( ! empty( $args['content_only'] )
|
106 |
-
$forms = wpforms_decode( $forms->post_content );
|
107 |
}
|
108 |
} else {
|
109 |
|
83 |
*
|
84 |
* @since 1.0.0
|
85 |
*
|
86 |
+
* @param mixed $id Form ID.
|
87 |
+
* @param array $args Additional arguments array.
|
88 |
*
|
89 |
* @return array|bool|null|WP_Post
|
90 |
*/
|
102 |
// If ID is provided, we get a single form
|
103 |
$forms = get_post( absint( $id ) );
|
104 |
|
105 |
+
if ( ! empty( $args['content_only'] ) ) {
|
106 |
+
$forms = ! empty( $forms ) && 'wpforms' === $forms->post_type ? wpforms_decode( $forms->post_content ) : false;
|
107 |
}
|
108 |
} else {
|
109 |
|
includes/class-frontend.php
CHANGED
@@ -35,6 +35,7 @@ class WPForms_Frontend {
|
|
35 |
* Contains a form confirmation message.
|
36 |
*
|
37 |
* @since 1.4.8
|
|
|
38 |
*
|
39 |
* @var string
|
40 |
*/
|
@@ -58,6 +59,9 @@ class WPForms_Frontend {
|
|
58 |
|
59 |
$this->forms = array();
|
60 |
|
|
|
|
|
|
|
61 |
// Actions.
|
62 |
add_action( 'wpforms_frontend_output_success', array( $this, 'confirmation' ), 10, 3 );
|
63 |
add_action( 'wpforms_frontend_output', array( $this, 'head' ), 5, 5 );
|
@@ -81,6 +85,33 @@ class WPForms_Frontend {
|
|
81 |
add_shortcode( 'wpforms', array( $this, 'shortcode' ) );
|
82 |
}
|
83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
/**
|
85 |
* Primary function to render a form on the frontend.
|
86 |
*
|
@@ -119,6 +150,29 @@ class WPForms_Frontend {
|
|
119 |
return;
|
120 |
}
|
121 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
// Add url query var wpforms_form_id to track post_max_size overflows.
|
123 |
if ( in_array( 'file-upload', wp_list_pluck( $form_data['fields'], 'type' ), true ) ) {
|
124 |
$action = add_query_arg( 'wpforms_form_id', $form_id, $action );
|
@@ -174,41 +228,102 @@ class WPForms_Frontend {
|
|
174 |
}
|
175 |
$classes = wpforms_sanitize_classes( $classes, true );
|
176 |
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
$
|
181 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
);
|
183 |
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
'atts'
|
191 |
-
|
192 |
-
|
193 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
),
|
195 |
-
|
196 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
|
198 |
-
|
|
|
|
|
|
|
199 |
|
200 |
-
|
|
|
|
|
201 |
|
202 |
-
|
203 |
|
204 |
-
//
|
205 |
-
do_action( '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
|
207 |
// Add form to class property that tracks all forms in a page.
|
208 |
$this->forms[ $form_id ] = $form_data;
|
209 |
|
210 |
// Optional debug information if WPFORMS_DEBUG is defined.
|
211 |
wpforms_debug_data( $form_data );
|
|
|
|
|
|
|
212 |
}
|
213 |
|
214 |
/**
|
@@ -221,15 +336,15 @@ class WPForms_Frontend {
|
|
221 |
* @param int $entry_id Entry id.
|
222 |
*/
|
223 |
public function confirmation( $form_data, $fields = array(), $entry_id = 0 ) {
|
|
|
224 |
|
225 |
-
//
|
226 |
-
if (
|
|
|
|
|
227 |
return;
|
228 |
}
|
229 |
|
230 |
-
// Load confirmation specific assets.
|
231 |
-
$this->assets_confirmation();
|
232 |
-
|
233 |
if ( empty( $fields ) ) {
|
234 |
$fields = ! empty( $_POST['wpforms']['complete'] ) ? $_POST['wpforms']['complete'] : array();
|
235 |
}
|
@@ -238,16 +353,23 @@ class WPForms_Frontend {
|
|
238 |
$entry_id = ! empty( $_POST['wpforms']['entry_id'] ) ? $_POST['wpforms']['entry_id'] : 0;
|
239 |
}
|
240 |
|
241 |
-
$
|
242 |
-
|
243 |
-
|
244 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
|
246 |
printf(
|
247 |
'<div class="%s" id="wpforms-confirmation-%d">%s</div>',
|
248 |
$class,
|
249 |
absint( $form_data['id'] ),
|
250 |
-
$
|
251 |
);
|
252 |
}
|
253 |
|
@@ -283,7 +405,7 @@ class WPForms_Frontend {
|
|
283 |
|
284 |
// Output header errors if they exist.
|
285 |
if ( ! empty( $errors['header'] ) ) {
|
286 |
-
|
287 |
}
|
288 |
}
|
289 |
|
@@ -448,6 +570,10 @@ class WPForms_Frontend {
|
|
448 |
*/
|
449 |
public function get_field_properties( $field, $form_data, $attributes = array() ) {
|
450 |
|
|
|
|
|
|
|
|
|
451 |
// This filter is for backwards compatibility purposes.
|
452 |
$types = array( 'text', 'textarea', 'number', 'email', 'hidden', 'url', 'html', 'divider', 'password', 'phone', 'address', 'checkbox', 'radio' );
|
453 |
if ( in_array( $field['type'], $types, true ) ) {
|
@@ -689,6 +815,7 @@ class WPForms_Frontend {
|
|
689 |
// Check that recaptcha is configured in the settings.
|
690 |
$site_key = wpforms_setting( 'recaptcha-site-key' );
|
691 |
$secret_key = wpforms_setting( 'recaptcha-secret-key' );
|
|
|
692 |
if ( ! $site_key || ! $secret_key ) {
|
693 |
return;
|
694 |
}
|
@@ -701,7 +828,41 @@ class WPForms_Frontend {
|
|
701 |
return;
|
702 |
}
|
703 |
|
704 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
705 |
$visible = $this->pages ? 'style="display:none;"' : '';
|
706 |
$data = array(
|
707 |
'sitekey' => trim( sanitize_text_field( $site_key ) ),
|
@@ -714,15 +875,15 @@ class WPForms_Frontend {
|
|
714 |
|
715 |
echo '<div class="wpforms-recaptcha-container" ' . $visible . '>';
|
716 |
|
717 |
-
|
718 |
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
|
727 |
echo '</div>';
|
728 |
}
|
@@ -743,13 +904,23 @@ class WPForms_Frontend {
|
|
743 |
$form_id = absint( $form_data['id'] );
|
744 |
$settings = $form_data['settings'];
|
745 |
$submit = apply_filters( 'wpforms_field_submit', $settings['submit_text'], $form_data );
|
746 |
-
$process = '';
|
747 |
$classes = '';
|
748 |
$visible = $this->pages ? 'style="display:none;"' : '';
|
749 |
|
750 |
// Check for submit button alt-text.
|
751 |
if ( ! empty( $settings['submit_text_processing'] ) ) {
|
752 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
753 |
}
|
754 |
|
755 |
// Check user defined submit button classes.
|
@@ -757,35 +928,79 @@ class WPForms_Frontend {
|
|
757 |
$classes = wpforms_sanitize_classes( $settings['submit_class'] );
|
758 |
}
|
759 |
|
|
|
|
|
|
|
|
|
|
|
760 |
// Output footer errors if they exist.
|
761 |
if ( ! empty( $errors['footer'] ) ) {
|
762 |
-
|
763 |
}
|
764 |
|
765 |
// Submit button area.
|
766 |
echo '<div class="wpforms-submit-container" ' . $visible . '>';
|
767 |
|
768 |
-
echo '<input type="hidden" name="wpforms[id]" value="' . $form_id . '">';
|
769 |
|
770 |
echo '<input type="hidden" name="wpforms[author]" value="' . absint( get_the_author_meta( 'ID' ) ) . '">';
|
771 |
|
772 |
if ( is_singular() ) {
|
773 |
-
echo '<input type="hidden" name="wpforms[post_id]" value="' . get_the_ID() . '">';
|
774 |
}
|
775 |
|
776 |
do_action( 'wpforms_display_submit_before', $form_data );
|
777 |
|
778 |
printf(
|
779 |
'<button type="submit" name="wpforms[submit]" class="wpforms-submit %s" id="wpforms-submit-%d" value="wpforms-submit" %s>%s</button>',
|
780 |
-
$classes,
|
781 |
-
$form_id,
|
782 |
$process,
|
783 |
-
$submit
|
784 |
);
|
785 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
786 |
do_action( 'wpforms_display_submit_after', $form_data );
|
787 |
|
788 |
echo '</div>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
789 |
}
|
790 |
|
791 |
/**
|
@@ -875,6 +1090,9 @@ class WPForms_Frontend {
|
|
875 |
* @since 1.0.0
|
876 |
*/
|
877 |
public function assets_js() {
|
|
|
|
|
|
|
878 |
|
879 |
do_action( 'wpforms_frontend_js', $this->forms );
|
880 |
|
@@ -964,20 +1182,39 @@ class WPForms_Frontend {
|
|
964 |
$site_key = wpforms_setting( 'recaptcha-site-key' );
|
965 |
$secret_key = wpforms_setting( 'recaptcha-secret-key' );
|
966 |
$type = wpforms_setting( 'recaptcha-type', 'v2' );
|
967 |
-
|
968 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
969 |
wp_enqueue_script(
|
970 |
'wpforms-recaptcha',
|
971 |
$recaptcha_api,
|
972 |
-
array( 'jquery' ),
|
973 |
-
|
974 |
true
|
975 |
);
|
976 |
-
if ( '
|
977 |
-
$recaptch_inline = '
|
978 |
-
|
|
|
|
|
979 |
} else {
|
980 |
-
$recaptch_inline = 'var wpformsRecaptchaLoad = function(){jQuery(".g-recaptcha").each(function(index, el){grecaptcha.render(el,{callback:function(){wpformsRecaptchaCallback(el);}},true);});};';
|
981 |
$recaptch_inline .= 'var wpformsRecaptchaCallback = function(el){jQuery(el).parent().find(".wpforms-recaptcha-hidden").val("1").trigger("change").valid();};';
|
982 |
}
|
983 |
wp_add_inline_script( 'wpforms-recaptcha', $recaptch_inline );
|
@@ -1002,13 +1239,15 @@ class WPForms_Frontend {
|
|
1002 |
}
|
1003 |
|
1004 |
// Special confirmation JS.
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
|
|
|
|
1012 |
|
1013 |
do_action( 'wpforms_frontend_confirmation' );
|
1014 |
}
|
@@ -1037,7 +1276,7 @@ class WPForms_Frontend {
|
|
1037 |
*/
|
1038 |
public function footer_end() {
|
1039 |
|
1040 |
-
if ( empty( $this->forms ) && ! $this->assets_global() ) {
|
1041 |
return;
|
1042 |
}
|
1043 |
|
@@ -1070,6 +1309,10 @@ class WPForms_Frontend {
|
|
1070 |
'locale' => wpforms_get_language_code(),
|
1071 |
'wpforms_plugin_url' => WPFORMS_PLUGIN_URL,
|
1072 |
'gdpr' => wpforms_setting( 'gdpr' ),
|
|
|
|
|
|
|
|
|
1073 |
);
|
1074 |
// Include payment related strings if needed.
|
1075 |
if ( function_exists( 'wpforms_get_currencies' ) ) {
|
@@ -1159,42 +1402,6 @@ class WPForms_Frontend {
|
|
1159 |
|
1160 |
$atts = shortcode_atts( $defaults, shortcode_atts( $defaults, $atts, 'output' ), 'wpforms' );
|
1161 |
|
1162 |
-
// We need to stop shortcode processing in case we are on AMP page.
|
1163 |
-
if ( wpforms_is_amp() ) {
|
1164 |
-
$post_id = get_the_ID();
|
1165 |
-
|
1166 |
-
// Display our custom link to non-AMP only if we are on single post/page.
|
1167 |
-
if ( ! empty( $post_id ) && ! empty( $atts['id'] ) ) {
|
1168 |
-
/*
|
1169 |
-
* We need this get param as one of the most popular ampforwp plugin has feature
|
1170 |
-
* for mobile users being force-redirected to AMP version of a site.
|
1171 |
-
* This `nonamp` GET param will ensure they will get to the actual page.
|
1172 |
-
* Other plugins will ignore it.
|
1173 |
-
*/
|
1174 |
-
$link = trailingslashit( get_permalink( $post_id ) ) . '?nonamp=1#wpforms-' . absint( $atts['id'] );
|
1175 |
-
$text = apply_filters(
|
1176 |
-
'wpforms_frontend_shortcode_amp_text',
|
1177 |
-
sprintf(
|
1178 |
-
wp_kses(
|
1179 |
-
/* translators: %s - URL to a non-amp version of a page with the form. */
|
1180 |
-
__( '<a href="%s">Go to the full page</a> to view and submit the form.', 'wpforms-lite' ),
|
1181 |
-
array(
|
1182 |
-
'a' => array(
|
1183 |
-
'href' => array(),
|
1184 |
-
),
|
1185 |
-
)
|
1186 |
-
),
|
1187 |
-
$link
|
1188 |
-
)
|
1189 |
-
);
|
1190 |
-
|
1191 |
-
return '<p class="wpforms-shortcode-amp-text">' . $text . '</p>';
|
1192 |
-
}
|
1193 |
-
|
1194 |
-
// In case we are not on a post/page - return early with empty output.
|
1195 |
-
return '';
|
1196 |
-
}
|
1197 |
-
|
1198 |
ob_start();
|
1199 |
|
1200 |
$this->output( $atts['id'], $atts['title'], $atts['description'] );
|
35 |
* Contains a form confirmation message.
|
36 |
*
|
37 |
* @since 1.4.8
|
38 |
+
* @todo Remove in favor of \WPForms_Process::$confirmation_message().
|
39 |
*
|
40 |
* @var string
|
41 |
*/
|
59 |
|
60 |
$this->forms = array();
|
61 |
|
62 |
+
// Filters.
|
63 |
+
add_filter( 'amp_skip_post', array( $this, 'amp_skip_post' ) );
|
64 |
+
|
65 |
// Actions.
|
66 |
add_action( 'wpforms_frontend_output_success', array( $this, 'confirmation' ), 10, 3 );
|
67 |
add_action( 'wpforms_frontend_output', array( $this, 'head' ), 5, 5 );
|
85 |
add_shortcode( 'wpforms', array( $this, 'shortcode' ) );
|
86 |
}
|
87 |
|
88 |
+
/**
|
89 |
+
* Get the amp-state ID for a given form.
|
90 |
+
*
|
91 |
+
* @param int $form_id Form ID.
|
92 |
+
* @return string State ID.
|
93 |
+
*/
|
94 |
+
protected function get_form_amp_state_id( $form_id ) {
|
95 |
+
return sprintf( 'wpforms_form_state_%d', $form_id );
|
96 |
+
}
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Disable AMP if query param is detected.
|
100 |
+
*
|
101 |
+
* This allows the full form to be accessible for Pro users or sites
|
102 |
+
* that do not have SSL.
|
103 |
+
*
|
104 |
+
* @since 1.5.3
|
105 |
+
*
|
106 |
+
* @param bool $skip Skip AMP mode, display full post.
|
107 |
+
*
|
108 |
+
* @return bool
|
109 |
+
*/
|
110 |
+
public function amp_skip_post( $skip ) {
|
111 |
+
|
112 |
+
return isset( $_GET['nonamp'] ) ? true : $skip;
|
113 |
+
}
|
114 |
+
|
115 |
/**
|
116 |
* Primary function to render a form on the frontend.
|
117 |
*
|
150 |
return;
|
151 |
}
|
152 |
|
153 |
+
// We need to stop output processing in case we are on AMP page.
|
154 |
+
if ( wpforms_is_amp( false ) && ( ! current_theme_supports( 'amp' ) || apply_filters( 'wpforms_amp_pro', wpforms()->pro ) || ! is_ssl() || ! defined( 'AMP__VERSION' ) || version_compare( AMP__VERSION, '1.2', '<' ) ) ) {
|
155 |
+
|
156 |
+
$text = apply_filters(
|
157 |
+
'wpforms_frontend_shortcode_amp_text',
|
158 |
+
sprintf(
|
159 |
+
wp_kses(
|
160 |
+
/* translators: %s - URL to a non-amp version of a page with the form. */
|
161 |
+
__( '<a href="%s">Go to the full page</a> to view and submit the form.', 'wpforms-lite' ),
|
162 |
+
array(
|
163 |
+
'a' => array(
|
164 |
+
'href' => array(),
|
165 |
+
),
|
166 |
+
)
|
167 |
+
),
|
168 |
+
esc_url( home_url( add_query_arg( 'nonamp', '1' ) . '#wpforms-' . absint( $form->ID ) ) )
|
169 |
+
)
|
170 |
+
);
|
171 |
+
|
172 |
+
echo '<p class="wpforms-shortcode-amp-text">' . $text . '</p>';
|
173 |
+
return;
|
174 |
+
}
|
175 |
+
|
176 |
// Add url query var wpforms_form_id to track post_max_size overflows.
|
177 |
if ( in_array( 'file-upload', wp_list_pluck( $form_data['fields'], 'type' ), true ) ) {
|
178 |
$action = add_query_arg( 'wpforms_form_id', $form_id, $action );
|
228 |
}
|
229 |
$classes = wpforms_sanitize_classes( $classes, true );
|
230 |
|
231 |
+
$form_classes = array( 'wpforms-validate', 'wpforms-form' );
|
232 |
+
|
233 |
+
if ( ! empty( $form_data['settings']['ajax_submit'] ) ) {
|
234 |
+
$form_classes[] = 'wpforms-ajax-form';
|
235 |
+
}
|
236 |
+
|
237 |
+
$form_atts = array(
|
238 |
+
'id' => sprintf( 'wpforms-form-%d', absint( $form_id ) ),
|
239 |
+
'class' => $form_classes,
|
240 |
+
'data' => array(
|
241 |
+
'formid' => absint( $form_id ),
|
242 |
+
),
|
243 |
+
'atts' => array(
|
244 |
+
'method' => 'post',
|
245 |
+
'enctype' => 'multipart/form-data',
|
246 |
+
'action' => esc_url( $action ),
|
247 |
+
),
|
248 |
);
|
249 |
|
250 |
+
if ( wpforms_is_amp() ) {
|
251 |
+
|
252 |
+
// Set submitting state.
|
253 |
+
if ( ! isset( $form_atts['atts']['on'] ) ) {
|
254 |
+
$form_atts['atts']['on'] = '';
|
255 |
+
} else {
|
256 |
+
$form_atts['atts']['on'] .= ';';
|
257 |
+
}
|
258 |
+
$form_atts['atts']['on'] .= sprintf(
|
259 |
+
'submit:AMP.setState( %1$s ); submit-success:AMP.setState( %2$s ); submit-error:AMP.setState( %2$s );',
|
260 |
+
wp_json_encode(
|
261 |
+
array(
|
262 |
+
$this->get_form_amp_state_id( $form_id ) => array(
|
263 |
+
'submitting' => true,
|
264 |
+
),
|
265 |
+
)
|
266 |
),
|
267 |
+
wp_json_encode(
|
268 |
+
array(
|
269 |
+
$this->get_form_amp_state_id( $form_id ) => array(
|
270 |
+
'submitting' => false,
|
271 |
+
),
|
272 |
+
)
|
273 |
+
)
|
274 |
+
);
|
275 |
|
276 |
+
// Upgrade the form to be an amp-form to avoid sanitizer conversion.
|
277 |
+
if ( isset( $form_atts['atts']['action'] ) ) {
|
278 |
+
$form_atts['atts']['action-xhr'] = $form_atts['atts']['action'];
|
279 |
+
unset( $form_atts['atts']['action'] );
|
280 |
|
281 |
+
$form_atts['atts']['verify-xhr'] = $form_atts['atts']['action-xhr'];
|
282 |
+
}
|
283 |
+
}
|
284 |
|
285 |
+
$form_atts = apply_filters( 'wpforms_frontend_form_atts', $form_atts, $form_data );
|
286 |
|
287 |
+
// Begin to build the output.
|
288 |
+
do_action( 'wpforms_frontend_output_container_before', $form_data, $form );
|
289 |
+
|
290 |
+
printf( '<div class="wpforms-container %s" id="wpforms-%d">', esc_attr( $classes ), absint( $form_id ) );
|
291 |
+
|
292 |
+
do_action( 'wpforms_frontend_output_form_before', $form_data, $form );
|
293 |
+
|
294 |
+
echo '<form ' . wpforms_html_attributes( $form_atts['id'], $form_atts['class'], $form_atts['data'], $form_atts['atts'] ) . '>';
|
295 |
+
|
296 |
+
if ( wpforms_is_amp() ) {
|
297 |
+
|
298 |
+
$state = array(
|
299 |
+
'submitting' => false,
|
300 |
+
);
|
301 |
+
printf(
|
302 |
+
'<amp-state id="%s"><script type="application/json">%s</script></amp-state>',
|
303 |
+
$this->get_form_amp_state_id( $form_id ),
|
304 |
+
wp_json_encode( $state )
|
305 |
+
);
|
306 |
+
}
|
307 |
+
|
308 |
+
|
309 |
+
do_action( 'wpforms_frontend_output', $form_data, null, $title, $description, $errors );
|
310 |
+
|
311 |
+
echo '</form>';
|
312 |
+
|
313 |
+
do_action( 'wpforms_frontend_output_form_after', $form_data, $form );
|
314 |
+
|
315 |
+
echo '</div> <!-- .wpforms-container -->';
|
316 |
+
|
317 |
+
do_action( 'wpforms_frontend_output_container_after', $form_data, $form );
|
318 |
|
319 |
// Add form to class property that tracks all forms in a page.
|
320 |
$this->forms[ $form_id ] = $form_data;
|
321 |
|
322 |
// Optional debug information if WPFORMS_DEBUG is defined.
|
323 |
wpforms_debug_data( $form_data );
|
324 |
+
|
325 |
+
// After output hook.
|
326 |
+
do_action( 'wpforms_frontend_output_after', $form_data, $form );
|
327 |
}
|
328 |
|
329 |
/**
|
336 |
* @param int $entry_id Entry id.
|
337 |
*/
|
338 |
public function confirmation( $form_data, $fields = array(), $entry_id = 0 ) {
|
339 |
+
$class = intval( wpforms_setting( 'disable-css', '1' ) ) === 1 ? 'wpforms-confirmation-container-full' : 'wpforms-confirmation-container';
|
340 |
|
341 |
+
// In AMP, just print template.
|
342 |
+
if ( wpforms_is_amp() ) {
|
343 |
+
$this->assets_confirmation();
|
344 |
+
printf( '<div submit-success><template type="amp-mustache"><div class="%s {{#redirecting}}wpforms-redirection-message{{/redirecting}}">{{{message}}}</div></template></div>', esc_attr( $class ) );
|
345 |
return;
|
346 |
}
|
347 |
|
|
|
|
|
|
|
348 |
if ( empty( $fields ) ) {
|
349 |
$fields = ! empty( $_POST['wpforms']['complete'] ) ? $_POST['wpforms']['complete'] : array();
|
350 |
}
|
353 |
$entry_id = ! empty( $_POST['wpforms']['entry_id'] ) ? $_POST['wpforms']['entry_id'] : 0;
|
354 |
}
|
355 |
|
356 |
+
$confirmation_message = wpforms()->process->get_confirmation_message( $form_data, $fields, $entry_id );
|
357 |
+
|
358 |
+
// Only display if a confirmation message has been configured.
|
359 |
+
if ( empty( $confirmation_message ) ) {
|
360 |
+
return;
|
361 |
+
}
|
362 |
+
|
363 |
+
// Load confirmation specific assets.
|
364 |
+
$this->assets_confirmation();
|
365 |
+
|
366 |
+
$class .= $this->confirmation_message_scroll ? ' wpforms-confirmation-scroll' : '';
|
367 |
|
368 |
printf(
|
369 |
'<div class="%s" id="wpforms-confirmation-%d">%s</div>',
|
370 |
$class,
|
371 |
absint( $form_data['id'] ),
|
372 |
+
$confirmation_message
|
373 |
);
|
374 |
}
|
375 |
|
405 |
|
406 |
// Output header errors if they exist.
|
407 |
if ( ! empty( $errors['header'] ) ) {
|
408 |
+
$this->form_error( 'header', $errors['header'] );
|
409 |
}
|
410 |
}
|
411 |
|
570 |
*/
|
571 |
public function get_field_properties( $field, $form_data, $attributes = array() ) {
|
572 |
|
573 |
+
if ( empty( $attributes ) ) {
|
574 |
+
$attributes = $this->get_field_attributes( $field, $form_data );
|
575 |
+
}
|
576 |
+
|
577 |
// This filter is for backwards compatibility purposes.
|
578 |
$types = array( 'text', 'textarea', 'number', 'email', 'hidden', 'url', 'html', 'divider', 'password', 'phone', 'address', 'checkbox', 'radio' );
|
579 |
if ( in_array( $field['type'], $types, true ) ) {
|
815 |
// Check that recaptcha is configured in the settings.
|
816 |
$site_key = wpforms_setting( 'recaptcha-site-key' );
|
817 |
$secret_key = wpforms_setting( 'recaptcha-secret-key' );
|
818 |
+
$type = wpforms_setting( 'recaptcha-type', 'v2' );
|
819 |
if ( ! $site_key || ! $secret_key ) {
|
820 |
return;
|
821 |
}
|
828 |
return;
|
829 |
}
|
830 |
|
831 |
+
if ( wpforms_is_amp() ) {
|
832 |
+
if ( 'v3' === $type ) {
|
833 |
+
printf(
|
834 |
+
'<amp-recaptcha-input name="wpforms[recaptcha]" data-sitekey="%s" data-action="%s" layout="nodisplay"></amp-recaptcha-input>',
|
835 |
+
esc_attr( $site_key ),
|
836 |
+
esc_attr( 'wpforms_' . $form_data['id'] )
|
837 |
+
);
|
838 |
+
} elseif ( is_super_admin() ) {
|
839 |
+
echo '<div class="wpforms-notice wpforms-warning" style="margin: 20px 0;">';
|
840 |
+
printf(
|
841 |
+
wp_kses(
|
842 |
+
/* translators: %s - URL to reCAPTCHA documentation. */
|
843 |
+
__( 'Google reCAPTCHA v2 is not supported by AMP and is currently disabled.<br><a href="%s" rel="noopener noreferrer" target="_blank">Upgrade to reCAPTCHA v3</a> for full AMP support. <br><em>Please note: this message is only displayed to site administrators.</em>', 'wpforms-drip' ),
|
844 |
+
array(
|
845 |
+
'a' => array(
|
846 |
+
'href' => array(),
|
847 |
+
'rel' => array(),
|
848 |
+
'target' => array(),
|
849 |
+
),
|
850 |
+
'br' => array(),
|
851 |
+
'em' => array(),
|
852 |
+
)
|
853 |
+
),
|
854 |
+
'https://wpforms.com/docs/setup-captcha-wpforms/'
|
855 |
+
);
|
856 |
+
echo '</div>';
|
857 |
+
}
|
858 |
+
return; // Only v3 is supported in AMP.
|
859 |
+
}
|
860 |
+
|
861 |
+
if ( 'v3' === $type ) {
|
862 |
+
echo '<input type="hidden" name="wpforms[recaptcha]" value="">';
|
863 |
+
return;
|
864 |
+
}
|
865 |
+
|
866 |
$visible = $this->pages ? 'style="display:none;"' : '';
|
867 |
$data = array(
|
868 |
'sitekey' => trim( sanitize_text_field( $site_key ) ),
|
875 |
|
876 |
echo '<div class="wpforms-recaptcha-container" ' . $visible . '>';
|
877 |
|
878 |
+
echo '<div ' . wpforms_html_attributes( '', array( 'g-recaptcha' ), $data ) . '></div>';
|
879 |
|
880 |
+
if ( 'invisible' !== $type ) {
|
881 |
+
echo '<input type="text" name="g-recaptcha-hidden" class="wpforms-recaptcha-hidden" style="position:absolute!important;clip:rect(0,0,0,0)!important;height:1px!important;width:1px!important;border:0!important;overflow:hidden!important;padding:0!important;margin:0!important;" required>';
|
882 |
+
}
|
883 |
|
884 |
+
if ( ! empty( $errors['recaptcha'] ) ) {
|
885 |
+
$this->form_error( 'recaptcha', $errors['recaptcha'] );
|
886 |
+
}
|
887 |
|
888 |
echo '</div>';
|
889 |
}
|
904 |
$form_id = absint( $form_data['id'] );
|
905 |
$settings = $form_data['settings'];
|
906 |
$submit = apply_filters( 'wpforms_field_submit', $settings['submit_text'], $form_data );
|
907 |
+
$process = 'aria-live="assertive" ';
|
908 |
$classes = '';
|
909 |
$visible = $this->pages ? 'style="display:none;"' : '';
|
910 |
|
911 |
// Check for submit button alt-text.
|
912 |
if ( ! empty( $settings['submit_text_processing'] ) ) {
|
913 |
+
if ( wpforms_is_amp() ) {
|
914 |
+
$bound_text = sprintf(
|
915 |
+
'%s.submitting ? %s : %s',
|
916 |
+
$this->get_form_amp_state_id( $form_id ),
|
917 |
+
wp_json_encode( $settings['submit_text_processing'], JSON_UNESCAPED_UNICODE ),
|
918 |
+
wp_json_encode( $submit, JSON_UNESCAPED_UNICODE )
|
919 |
+
);
|
920 |
+
$process .= '[text]="' . esc_attr( $bound_text ) . '"';
|
921 |
+
} else {
|
922 |
+
$process .= 'data-alt-text="' . esc_attr( $settings['submit_text_processing'] ) . '" data-submit-text="' . esc_attr( $submit ) . '"';
|
923 |
+
}
|
924 |
}
|
925 |
|
926 |
// Check user defined submit button classes.
|
928 |
$classes = wpforms_sanitize_classes( $settings['submit_class'] );
|
929 |
}
|
930 |
|
931 |
+
// AMP submit error template.
|
932 |
+
if ( wpforms_is_amp() ) {
|
933 |
+
echo '<div submit-error><template type="amp-mustache"><div class="wpforms-error-container"><p>{{{message}}}</p></div></template></div>';
|
934 |
+
}
|
935 |
+
|
936 |
// Output footer errors if they exist.
|
937 |
if ( ! empty( $errors['footer'] ) ) {
|
938 |
+
$this->form_error( 'footer', $errors['footer'] );
|
939 |
}
|
940 |
|
941 |
// Submit button area.
|
942 |
echo '<div class="wpforms-submit-container" ' . $visible . '>';
|
943 |
|
944 |
+
echo '<input type="hidden" name="wpforms[id]" value="' . esc_attr( $form_id ) . '">';
|
945 |
|
946 |
echo '<input type="hidden" name="wpforms[author]" value="' . absint( get_the_author_meta( 'ID' ) ) . '">';
|
947 |
|
948 |
if ( is_singular() ) {
|
949 |
+
echo '<input type="hidden" name="wpforms[post_id]" value="' . esc_attr( get_the_ID() ) . '">';
|
950 |
}
|
951 |
|
952 |
do_action( 'wpforms_display_submit_before', $form_data );
|
953 |
|
954 |
printf(
|
955 |
'<button type="submit" name="wpforms[submit]" class="wpforms-submit %s" id="wpforms-submit-%d" value="wpforms-submit" %s>%s</button>',
|
956 |
+
esc_attr( $classes ),
|
957 |
+
esc_attr( $form_id ),
|
958 |
$process,
|
959 |
+
esc_html( $submit )
|
960 |
);
|
961 |
|
962 |
+
if ( ! empty( $settings['ajax_submit'] ) ) {
|
963 |
+
printf(
|
964 |
+
'<img src="%s" class="wpforms-submit-spinner" style="display: none;">',
|
965 |
+
esc_url(
|
966 |
+
apply_filters(
|
967 |
+
'wpforms_display_sumbit_spinner_src',
|
968 |
+
WPFORMS_PLUGIN_URL . 'assets/images/submit-spin.svg',
|
969 |
+
$form_data
|
970 |
+
)
|
971 |
+
)
|
972 |
+
);
|
973 |
+
}
|
974 |
+
|
975 |
do_action( 'wpforms_display_submit_after', $form_data );
|
976 |
|
977 |
echo '</div>';
|
978 |
+
|
979 |
+
// Load the success template in AMP.
|
980 |
+
if ( wpforms_is_amp() ) {
|
981 |
+
$this->confirmation( $form_data, $form_data['fields'] );
|
982 |
+
}
|
983 |
+
}
|
984 |
+
|
985 |
+
/**
|
986 |
+
* Display form error.
|
987 |
+
*
|
988 |
+
* @since 1.5.3
|
989 |
+
*
|
990 |
+
* @param string $type Error type.
|
991 |
+
* @param string $error Error text.
|
992 |
+
*/
|
993 |
+
public function form_error( $type, $error ) {
|
994 |
+
|
995 |
+
switch ( $type ) {
|
996 |
+
case 'header':
|
997 |
+
case 'footer':
|
998 |
+
echo '<div class="wpforms-error-container">' . wpforms_sanitize_error( $error ) . '</div>';
|
999 |
+
break;
|
1000 |
+
case 'recaptcha':
|
1001 |
+
echo '<label id="wpforms-field_recaptcha-error" class="wpforms-error">' . wpforms_sanitize_error( $error ) . '</label>';
|
1002 |
+
break;
|
1003 |
+
}
|
1004 |
}
|
1005 |
|
1006 |
/**
|
1090 |
* @since 1.0.0
|
1091 |
*/
|
1092 |
public function assets_js() {
|
1093 |
+
if ( wpforms_is_amp() ) {
|
1094 |
+
return;
|
1095 |
+
}
|
1096 |
|
1097 |
do_action( 'wpforms_frontend_js', $this->forms );
|
1098 |
|
1182 |
$site_key = wpforms_setting( 'recaptcha-site-key' );
|
1183 |
$secret_key = wpforms_setting( 'recaptcha-secret-key' );
|
1184 |
$type = wpforms_setting( 'recaptcha-type', 'v2' );
|
1185 |
+
$recaptcha = false;
|
1186 |
+
|
1187 |
+
foreach ( $this->forms as $form ) {
|
1188 |
+
if ( ! empty( $form['settings']['recaptcha'] ) ) {
|
1189 |
+
$recaptcha = true;
|
1190 |
+
break;
|
1191 |
+
}
|
1192 |
+
}
|
1193 |
+
|
1194 |
+
if (
|
1195 |
+
( $recaptcha || $this->assets_global() ) &&
|
1196 |
+
( $secret_key && $site_key )
|
1197 |
+
) {
|
1198 |
+
if ( $type === 'v3' ) {
|
1199 |
+
$recaptcha_api = 'https://www.google.com/recaptcha/api.js?render=' . $site_key;
|
1200 |
+
} else {
|
1201 |
+
$recaptcha_api = apply_filters( 'wpforms_frontend_recaptcha_url', 'https://www.google.com/recaptcha/api.js?onload=wpformsRecaptchaLoad&render=explicit' );
|
1202 |
+
}
|
1203 |
+
|
1204 |
wp_enqueue_script(
|
1205 |
'wpforms-recaptcha',
|
1206 |
$recaptcha_api,
|
1207 |
+
$type === 'v3' ? array() : array( 'jquery' ),
|
1208 |
+
null,
|
1209 |
true
|
1210 |
);
|
1211 |
+
if ( 'v3' === $type ) {
|
1212 |
+
$recaptch_inline = 'grecaptcha.ready(function(){grecaptcha.execute("' . esc_html( $site_key ) . '",{action:"wpforms"}).then(function(token){var f=document.getElementsByName("wpforms[recaptcha]");for(var i=0;i<f.length;i++){f[i].value = token;}});});';
|
1213 |
+
} elseif ( 'invisible' === $type ) {
|
1214 |
+
$recaptch_inline = 'var wpformsRecaptchaLoad = function(){jQuery(".g-recaptcha").each(function(index,el){var recaptchaID = grecaptcha.render(el,{callback:function(){wpformsRecaptchaCallback(el);}},true);jQuery(el).closest("form").find("button[type=submit]").get(0).recaptchaID = recaptchaID;});};';
|
1215 |
+
$recaptch_inline .= 'var wpformsRecaptchaCallback = function(el){var $form = jQuery(el).closest("form");if(typeof wpforms.formSubmit === "function"){wpforms.formSubmit($form);}else{$form.find("button[type=submit]").get(0).recaptchaID = false;$form.submit();}};';
|
1216 |
} else {
|
1217 |
+
$recaptch_inline = 'var wpformsRecaptchaLoad = function(){jQuery(".g-recaptcha").each(function(index, el){var recaptchaID = grecaptcha.render(el,{callback:function(){wpformsRecaptchaCallback(el);}},true);jQuery(el).attr( "data-recaptcha-id", recaptchaID);});};';
|
1218 |
$recaptch_inline .= 'var wpformsRecaptchaCallback = function(el){jQuery(el).parent().find(".wpforms-recaptcha-hidden").val("1").trigger("change").valid();};';
|
1219 |
}
|
1220 |
wp_add_inline_script( 'wpforms-recaptcha', $recaptch_inline );
|
1239 |
}
|
1240 |
|
1241 |
// Special confirmation JS.
|
1242 |
+
if ( ! wpforms_is_amp() ) {
|
1243 |
+
wp_enqueue_script(
|
1244 |
+
'wpforms-confirmation',
|
1245 |
+
WPFORMS_PLUGIN_URL . 'assets/js/wpforms-confirmation.js',
|
1246 |
+
array( 'jquery' ),
|
1247 |
+
WPFORMS_VERSION,
|
1248 |
+
true
|
1249 |
+
);
|
1250 |
+
}
|
1251 |
|
1252 |
do_action( 'wpforms_frontend_confirmation' );
|
1253 |
}
|
1276 |
*/
|
1277 |
public function footer_end() {
|
1278 |
|
1279 |
+
if ( ( empty( $this->forms ) && ! $this->assets_global() ) || wpforms_is_amp() ) {
|
1280 |
return;
|
1281 |
}
|
1282 |
|
1309 |
'locale' => wpforms_get_language_code(),
|
1310 |
'wpforms_plugin_url' => WPFORMS_PLUGIN_URL,
|
1311 |
'gdpr' => wpforms_setting( 'gdpr' ),
|
1312 |
+
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
1313 |
+
'mailcheck_enabled' => (bool) apply_filters( 'wpforms_mailcheck_enabled', true ),
|
1314 |
+
'mailcheck_domains' => array_map( 'sanitize_text_field', (array) apply_filters( 'wpforms_mailcheck_domains', array() ) ),
|
1315 |
+
'mailcheck_toplevel_domains' => array_map( 'sanitize_text_field', (array) apply_filters( 'wpforms_mailcheck_toplevel_domains', array() ) ),
|
1316 |
);
|
1317 |
// Include payment related strings if needed.
|
1318 |
if ( function_exists( 'wpforms_get_currencies' ) ) {
|
1402 |
|
1403 |
$atts = shortcode_atts( $defaults, shortcode_atts( $defaults, $atts, 'output' ), 'wpforms' );
|
1404 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1405 |
ob_start();
|
1406 |
|
1407 |
$this->output( $atts['id'], $atts['title'], $atts['description'] );
|
includes/class-process.php
CHANGED
@@ -19,6 +19,13 @@ class WPForms_Process {
|
|
19 |
*/
|
20 |
public $errors;
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
/**
|
23 |
* Holds formatted fields.
|
24 |
*
|
@@ -63,6 +70,8 @@ class WPForms_Process {
|
|
63 |
public function __construct() {
|
64 |
|
65 |
add_action( 'wp', array( $this, 'listen' ) );
|
|
|
|
|
66 |
}
|
67 |
|
68 |
/**
|
@@ -83,6 +92,30 @@ class WPForms_Process {
|
|
83 |
|
84 |
if ( ! empty( $_POST['wpforms']['id'] ) ) { // phpcs:ignore
|
85 |
$this->process( stripslashes_deep( $_POST['wpforms'] ) ); // phpcs:ignore
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
}
|
87 |
}
|
88 |
|
@@ -108,42 +141,59 @@ class WPForms_Process {
|
|
108 |
}
|
109 |
|
110 |
// Formatted form data for hooks.
|
111 |
-
$form_data = apply_filters( 'wpforms_process_before_form_data', wpforms_decode( $form->post_content ), $entry );
|
112 |
|
113 |
// Pre-process/validate hooks and filter.
|
114 |
// Data is not validated or cleaned yet so use with caution.
|
115 |
-
$entry = apply_filters( 'wpforms_process_before_filter', $entry, $form_data );
|
116 |
|
117 |
-
do_action( 'wpforms_process_before', $entry, $form_data );
|
118 |
-
do_action( "wpforms_process_before_{$form_id}", $entry, $form_data );
|
119 |
|
120 |
// Validate fields.
|
121 |
-
foreach ( $form_data['fields'] as $
|
122 |
|
123 |
-
$field_id = $
|
124 |
-
$field_type = $
|
125 |
$field_submit = isset( $entry['fields'][ $field_id ] ) ? $entry['fields'][ $field_id ] : '';
|
126 |
|
127 |
-
do_action( "wpforms_process_validate_{$field_type}", $field_id, $field_submit, $form_data );
|
128 |
}
|
129 |
|
130 |
// reCAPTCHA check.
|
131 |
$site_key = wpforms_setting( 'recaptcha-site-key', '' );
|
132 |
$secret_key = wpforms_setting( 'recaptcha-secret-key', '' );
|
|
|
133 |
if (
|
134 |
! empty( $site_key ) &&
|
135 |
! empty( $secret_key ) &&
|
136 |
-
isset( $form_data['settings']['recaptcha'] ) &&
|
137 |
-
'1' == $form_data['settings']['recaptcha']
|
|
|
|
|
|
|
138 |
) {
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
144 |
}
|
145 |
-
} else {
|
146 |
-
$this->errors[ $form_id ]['recaptcha'] = esc_html__( 'reCAPTCHA is required.', 'wpforms-lite' );
|
147 |
}
|
148 |
}
|
149 |
|
@@ -171,7 +221,55 @@ class WPForms_Process {
|
|
171 |
// Don't proceed if there are any errors thus far. We provide a filter
|
172 |
// so that other features, such as conditional logic, have the ability
|
173 |
// to adjust blocking errors.
|
174 |
-
$errors = apply_filters( 'wpforms_process_initial_errors', $this->errors, $form_data );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
|
176 |
if ( ! empty( $errors[ $form_id ] ) ) {
|
177 |
if ( empty( $this->errors[ $form_id ]['header'] ) ) {
|
@@ -183,14 +281,14 @@ class WPForms_Process {
|
|
183 |
|
184 |
// Validate honeypot early - before actual processing.
|
185 |
if (
|
186 |
-
! empty( $form_data['settings']['honeypot'] ) &&
|
187 |
-
'1' == $form_data['settings']['honeypot'] &&
|
188 |
! empty( $entry['hp'] )
|
189 |
) {
|
190 |
$honeypot = esc_html__( 'WPForms honeypot field triggered.', 'wpforms-lite' );
|
191 |
}
|
192 |
|
193 |
-
$honeypot = apply_filters( 'wpforms_process_honeypot', $honeypot, $this->fields, $entry, $form_data );
|
194 |
|
195 |
// If spam - return early.
|
196 |
if ( $honeypot ) {
|
@@ -200,7 +298,7 @@ class WPForms_Process {
|
|
200 |
array( $honeypot, $entry ),
|
201 |
array(
|
202 |
'type' => array( 'spam' ),
|
203 |
-
'form_id' => $form_data['id'],
|
204 |
)
|
205 |
);
|
206 |
|
@@ -208,30 +306,30 @@ class WPForms_Process {
|
|
208 |
}
|
209 |
|
210 |
// Pass the form created date into the form data.
|
211 |
-
$form_data['created'] = $form->post_date;
|
212 |
|
213 |
// Format fields.
|
214 |
-
foreach ( (array) $form_data['fields'] as $
|
215 |
|
216 |
-
$field_id = $
|
217 |
-
$field_type = $
|
218 |
$field_submit = isset( $entry['fields'][ $field_id ] ) ? $entry['fields'][ $field_id ] : '';
|
219 |
|
220 |
-
do_action( "wpforms_process_format_{$field_type}", $field_id, $field_submit, $form_data );
|
221 |
}
|
222 |
|
223 |
// This hook is for internal purposes and should not be leveraged.
|
224 |
-
do_action( 'wpforms_process_format_after', $form_data );
|
225 |
|
226 |
// Process hooks/filter - this is where most addons should hook
|
227 |
// because at this point we have completed all field validation and
|
228 |
// formatted the data.
|
229 |
-
$this->fields = apply_filters( 'wpforms_process_filter', $this->fields, $entry, $form_data );
|
230 |
|
231 |
-
do_action( 'wpforms_process', $this->fields, $entry, $form_data );
|
232 |
-
do_action( "wpforms_process_{$form_id}", $this->fields, $entry, $form_data );
|
233 |
|
234 |
-
$this->fields = apply_filters( 'wpforms_process_after_filter', $this->fields, $entry, $form_data );
|
235 |
|
236 |
// One last error check - don't proceed if there are any errors.
|
237 |
if ( ! empty( $this->errors[ $form_id ] ) ) {
|
@@ -242,33 +340,33 @@ class WPForms_Process {
|
|
242 |
}
|
243 |
|
244 |
// Success - add entry to database.
|
245 |
-
$entry_id = $this->entry_save( $this->fields, $entry, $form_data['id'], $form_data );
|
246 |
|
247 |
// Success - send email notification.
|
248 |
-
$this->entry_email( $this->fields, $entry, $form_data, $entry_id, 'entry' );
|
249 |
|
250 |
// Pass completed and formatted fields in POST.
|
251 |
$_POST['wpforms']['complete'] = $this->fields;
|
252 |
|
253 |
// Pass entry ID in POST.
|
254 |
-
$_POST['wpforms']['entry_id'] = $entry_id;
|
255 |
|
256 |
// Logs entry depending on log levels set.
|
257 |
wpforms_log(
|
258 |
-
$entry_id ? "Entry {$entry_id}" : 'Entry',
|
259 |
$this->fields,
|
260 |
array(
|
261 |
'type' => array( 'entry' ),
|
262 |
-
'parent' => $entry_id,
|
263 |
-
'form_id' => $form_data['id'],
|
264 |
)
|
265 |
);
|
266 |
|
267 |
// Post-process hooks.
|
268 |
-
do_action( 'wpforms_process_complete', $this->fields, $entry, $form_data, $entry_id );
|
269 |
-
do_action( "wpforms_process_complete_{$form_id}", $this->fields, $entry, $form_data, $entry_id );
|
270 |
|
271 |
-
$this->entry_confirmation_redirect( $form_data );
|
272 |
}
|
273 |
|
274 |
/**
|
@@ -374,6 +472,7 @@ class WPForms_Process {
|
|
374 |
if ( ! empty( $confirmations[ $confirmation_id ]['type'] ) && 'message' !== $confirmations[ $confirmation_id ]['type'] ) {
|
375 |
|
376 |
if ( 'redirect' === $confirmations[ $confirmation_id ]['type'] ) {
|
|
|
377 |
$url = apply_filters( 'wpforms_process_smart_tags', $confirmations[ $confirmation_id ]['redirect'], $this->form_data, $this->fields, $this->entry_id );
|
378 |
}
|
379 |
|
@@ -384,7 +483,22 @@ class WPForms_Process {
|
|
384 |
|
385 |
if ( ! empty( $url ) ) {
|
386 |
$url = apply_filters( 'wpforms_process_redirect_url', $url, $this->form_data['id'], $this->fields, $this->form_data, $this->entry_id );
|
387 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
388 |
do_action( 'wpforms_process_redirect', $this->form_data['id'] );
|
389 |
do_action( "wpforms_process_redirect_{$this->form_data['id']}", $this->form_data['id'] );
|
390 |
exit;
|
@@ -392,7 +506,7 @@ class WPForms_Process {
|
|
392 |
|
393 |
// Pass a message to a frontend if no redirection happened.
|
394 |
if ( ! empty( $confirmations[ $confirmation_id ]['type'] ) && 'message' === $confirmations[ $confirmation_id ]['type'] ) {
|
395 |
-
|
396 |
|
397 |
if ( ! empty( $confirmations[ $confirmation_id ]['message_scroll'] ) ) {
|
398 |
wpforms()->frontend->confirmation_message_scroll = true;
|
@@ -400,6 +514,23 @@ class WPForms_Process {
|
|
400 |
}
|
401 |
}
|
402 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
403 |
/**
|
404 |
* Catch the post_max_size overflow.
|
405 |
*
|
@@ -546,4 +677,133 @@ class WPForms_Process {
|
|
546 |
|
547 |
return $this->entry_id;
|
548 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
549 |
}
|
19 |
*/
|
20 |
public $errors;
|
21 |
|
22 |
+
/**
|
23 |
+
* Confirmation message.
|
24 |
+
*
|
25 |
+
* @var string
|
26 |
+
*/
|
27 |
+
public $confirmation_message;
|
28 |
+
|
29 |
/**
|
30 |
* Holds formatted fields.
|
31 |
*
|
70 |
public function __construct() {
|
71 |
|
72 |
add_action( 'wp', array( $this, 'listen' ) );
|
73 |
+
add_action( 'wp_ajax_wpforms_submit', array( $this, 'ajax_submit' ) );
|
74 |
+
add_action( 'wp_ajax_nopriv_wpforms_submit', array( $this, 'ajax_submit' ) );
|
75 |
}
|
76 |
|
77 |
/**
|
92 |
|
93 |
if ( ! empty( $_POST['wpforms']['id'] ) ) { // phpcs:ignore
|
94 |
$this->process( stripslashes_deep( $_POST['wpforms'] ) ); // phpcs:ignore
|
95 |
+
|
96 |
+
$form_id = wp_unslash( $_POST['wpforms']['id'] );
|
97 |
+
if ( wpforms_is_amp() ) {
|
98 |
+
// Send 400 Bad Request when there are errors.
|
99 |
+
if ( ! empty( $this->errors[ $form_id ] ) ) {
|
100 |
+
$message = $this->errors[ $form_id ]['header'];
|
101 |
+
if ( ! empty( $this->errors[ $form_id ]['footer'] ) ) {
|
102 |
+
$message .= ' ' . $this->errors[ $form_id ]['footer'];
|
103 |
+
}
|
104 |
+
wp_send_json(
|
105 |
+
array(
|
106 |
+
'message' => $message,
|
107 |
+
),
|
108 |
+
400
|
109 |
+
);
|
110 |
+
} else {
|
111 |
+
wp_send_json(
|
112 |
+
array(
|
113 |
+
'message' => $this->get_confirmation_message( $this->form_data, $this->fields, $this->entry_id ),
|
114 |
+
),
|
115 |
+
200
|
116 |
+
);
|
117 |
+
}
|
118 |
+
}
|
119 |
}
|
120 |
}
|
121 |
|
141 |
}
|
142 |
|
143 |
// Formatted form data for hooks.
|
144 |
+
$this->form_data = apply_filters( 'wpforms_process_before_form_data', wpforms_decode( $form->post_content ), $entry );
|
145 |
|
146 |
// Pre-process/validate hooks and filter.
|
147 |
// Data is not validated or cleaned yet so use with caution.
|
148 |
+
$entry = apply_filters( 'wpforms_process_before_filter', $entry, $this->form_data );
|
149 |
|
150 |
+
do_action( 'wpforms_process_before', $entry, $this->form_data );
|
151 |
+
do_action( "wpforms_process_before_{$form_id}", $entry, $this->form_data );
|
152 |
|
153 |
// Validate fields.
|
154 |
+
foreach ( $this->form_data['fields'] as $field_properties ) {
|
155 |
|
156 |
+
$field_id = $field_properties['id'];
|
157 |
+
$field_type = $field_properties['type'];
|
158 |
$field_submit = isset( $entry['fields'][ $field_id ] ) ? $entry['fields'][ $field_id ] : '';
|
159 |
|
160 |
+
do_action( "wpforms_process_validate_{$field_type}", $field_id, $field_submit, $this->form_data );
|
161 |
}
|
162 |
|
163 |
// reCAPTCHA check.
|
164 |
$site_key = wpforms_setting( 'recaptcha-site-key', '' );
|
165 |
$secret_key = wpforms_setting( 'recaptcha-secret-key', '' );
|
166 |
+
$type = wpforms_setting( 'recaptcha-type', 'v2' );
|
167 |
if (
|
168 |
! empty( $site_key ) &&
|
169 |
! empty( $secret_key ) &&
|
170 |
+
isset( $this->form_data['settings']['recaptcha'] ) &&
|
171 |
+
'1' == $this->form_data['settings']['recaptcha'] &&
|
172 |
+
! isset( $_POST['__amp_form_verify'] ) // phpcs:ignore WordPress.Security.NonceVerification.Missing -- No need to check reCAPTCHA until form is submitted.
|
173 |
+
&&
|
174 |
+
( 'v3' === $type || ! wpforms_is_amp() ) // AMP requires v3.
|
175 |
) {
|
176 |
+
$error = wpforms_setting( 'recaptcha-fail-msg', esc_html__( 'Google reCAPTCHA verification failed, please try again later.', 'wpforms-lite' ) );
|
177 |
+
$token = ! empty( $_POST['g-recaptcha-response'] ) ? $_POST['g-recaptcha-response'] : false;
|
178 |
+
|
179 |
+
if ( 'v3' === $type ) {
|
180 |
+
$token = ! empty( $_POST['wpforms']['recaptcha'] ) ? $_POST['wpforms']['recaptcha'] : false;
|
181 |
+
}
|
182 |
+
|
183 |
+
$response = json_decode( wp_remote_retrieve_body( wp_remote_get( 'https://www.google.com/recaptcha/api/siteverify?secret=' . $secret_key . '&response=' . $token ) ) );
|
184 |
+
|
185 |
+
if (
|
186 |
+
empty( $response->success ) ||
|
187 |
+
( 'v3' === $type && $response->score <= wpforms_setting( 'recaptcha-v3-threshold', '0.4' ) )
|
188 |
+
) {
|
189 |
+
if ( 'v3' === $type ) {
|
190 |
+
if ( isset( $response->score ) ) {
|
191 |
+
$error .= ' (' . esc_html( $response->score ) . ')';
|
192 |
+
}
|
193 |
+
$this->errors[ $form_id ]['footer'] = $error;
|
194 |
+
} else {
|
195 |
+
$this->errors[ $form_id ]['recaptcha'] = $error;
|
196 |
}
|
|
|
|
|
197 |
}
|
198 |
}
|
199 |
|
221 |
// Don't proceed if there are any errors thus far. We provide a filter
|
222 |
// so that other features, such as conditional logic, have the ability
|
223 |
// to adjust blocking errors.
|
224 |
+
$errors = apply_filters( 'wpforms_process_initial_errors', $this->errors, $this->form_data );
|
225 |
+
|
226 |
+
if ( isset( $_POST['__amp_form_verify'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
|
227 |
+
if ( empty( $errors[ $form_id ] ) ) {
|
228 |
+
wp_send_json( array(), 200 );
|
229 |
+
} else {
|
230 |
+
$verify_errors = array();
|
231 |
+
|
232 |
+
foreach ( $errors[ $form_id ] as $field_id => $error_fields ) {
|
233 |
+
$field = $this->form_data['fields'][ $field_id ];
|
234 |
+
$field_properties = wpforms()->frontend->get_field_properties( $field, $this->form_data );
|
235 |
+
|
236 |
+
if ( is_string( $error_fields ) ) {
|
237 |
+
|
238 |
+
if ( 'checkbox' === $field['type'] || 'radio' === $field['type'] || 'select' === $field['type'] ) {
|
239 |
+
$first = current( $field_properties['inputs'] );
|
240 |
+
$name = $first['attr']['name'];
|
241 |
+
} elseif ( isset( $field_properties['inputs']['primary']['attr']['name'] ) ) {
|
242 |
+
$name = $field_properties['inputs']['primary']['attr']['name'];
|
243 |
+
}
|
244 |
+
|
245 |
+
$verify_errors[] = array(
|
246 |
+
'name' => $name,
|
247 |
+
'message' => $error_fields,
|
248 |
+
);
|
249 |
+
} else {
|
250 |
+
foreach ( $error_fields as $error_field => $error_message ) {
|
251 |
+
|
252 |
+
if ( isset( $field_properties['inputs'][ $error_field ]['attr']['name'] ) ) {
|
253 |
+
$name = $field_properties['inputs'][ $error_field ]['attr']['name'];
|
254 |
+
}
|
255 |
+
|
256 |
+
$verify_errors[] = array(
|
257 |
+
'name' => $name,
|
258 |
+
'message' => $error_message,
|
259 |
+
);
|
260 |
+
}
|
261 |
+
}
|
262 |
+
}
|
263 |
+
|
264 |
+
wp_send_json(
|
265 |
+
array(
|
266 |
+
'verifyErrors' => $verify_errors,
|
267 |
+
),
|
268 |
+
400
|
269 |
+
);
|
270 |
+
}
|
271 |
+
return;
|
272 |
+
}
|
273 |
|
274 |
if ( ! empty( $errors[ $form_id ] ) ) {
|
275 |
if ( empty( $this->errors[ $form_id ]['header'] ) ) {
|
281 |
|
282 |
// Validate honeypot early - before actual processing.
|
283 |
if (
|
284 |
+
! empty( $this->form_data['settings']['honeypot'] ) &&
|
285 |
+
'1' == $this->form_data['settings']['honeypot'] &&
|
286 |
! empty( $entry['hp'] )
|
287 |
) {
|
288 |
$honeypot = esc_html__( 'WPForms honeypot field triggered.', 'wpforms-lite' );
|
289 |
}
|
290 |
|
291 |
+
$honeypot = apply_filters( 'wpforms_process_honeypot', $honeypot, $this->fields, $entry, $this->form_data );
|
292 |
|
293 |
// If spam - return early.
|
294 |
if ( $honeypot ) {
|
298 |
array( $honeypot, $entry ),
|
299 |
array(
|
300 |
'type' => array( 'spam' ),
|
301 |
+
'form_id' => $this->form_data['id'],
|
302 |
)
|
303 |
);
|
304 |
|
306 |
}
|
307 |
|
308 |
// Pass the form created date into the form data.
|
309 |
+
$this->form_data['created'] = $form->post_date;
|
310 |
|
311 |
// Format fields.
|
312 |
+
foreach ( (array) $this->form_data['fields'] as $field_properties ) {
|
313 |
|
314 |
+
$field_id = $field_properties['id'];
|
315 |
+
$field_type = $field_properties['type'];
|
316 |
$field_submit = isset( $entry['fields'][ $field_id ] ) ? $entry['fields'][ $field_id ] : '';
|
317 |
|
318 |
+
do_action( "wpforms_process_format_{$field_type}", $field_id, $field_submit, $this->form_data );
|
319 |
}
|
320 |
|
321 |
// This hook is for internal purposes and should not be leveraged.
|
322 |
+
do_action( 'wpforms_process_format_after', $this->form_data );
|
323 |
|
324 |
// Process hooks/filter - this is where most addons should hook
|
325 |
// because at this point we have completed all field validation and
|
326 |
// formatted the data.
|
327 |
+
$this->fields = apply_filters( 'wpforms_process_filter', $this->fields, $entry, $this->form_data );
|
328 |
|
329 |
+
do_action( 'wpforms_process', $this->fields, $entry, $this->form_data );
|
330 |
+
do_action( "wpforms_process_{$form_id}", $this->fields, $entry, $this->form_data );
|
331 |
|
332 |
+
$this->fields = apply_filters( 'wpforms_process_after_filter', $this->fields, $entry, $this->form_data );
|
333 |
|
334 |
// One last error check - don't proceed if there are any errors.
|
335 |
if ( ! empty( $this->errors[ $form_id ] ) ) {
|
340 |
}
|
341 |
|
342 |
// Success - add entry to database.
|
343 |
+
$this->entry_id = $this->entry_save( $this->fields, $entry, $this->form_data['id'], $this->form_data );
|
344 |
|
345 |
// Success - send email notification.
|
346 |
+
$this->entry_email( $this->fields, $entry, $this->form_data, $this->entry_id, 'entry' );
|
347 |
|
348 |
// Pass completed and formatted fields in POST.
|
349 |
$_POST['wpforms']['complete'] = $this->fields;
|
350 |
|
351 |
// Pass entry ID in POST.
|
352 |
+
$_POST['wpforms']['entry_id'] = $this->entry_id;
|
353 |
|
354 |
// Logs entry depending on log levels set.
|
355 |
wpforms_log(
|
356 |
+
$this->entry_id ? "Entry {$this->entry_id}" : 'Entry',
|
357 |
$this->fields,
|
358 |
array(
|
359 |
'type' => array( 'entry' ),
|
360 |
+
'parent' => $this->entry_id,
|
361 |
+
'form_id' => $this->form_data['id'],
|
362 |
)
|
363 |
);
|
364 |
|
365 |
// Post-process hooks.
|
366 |
+
do_action( 'wpforms_process_complete', $this->fields, $entry, $this->form_data, $this->entry_id );
|
367 |
+
do_action( "wpforms_process_complete_{$form_id}", $this->fields, $entry, $this->form_data, $this->entry_id );
|
368 |
|
369 |
+
$this->entry_confirmation_redirect( $this->form_data );
|
370 |
}
|
371 |
|
372 |
/**
|
472 |
if ( ! empty( $confirmations[ $confirmation_id ]['type'] ) && 'message' !== $confirmations[ $confirmation_id ]['type'] ) {
|
473 |
|
474 |
if ( 'redirect' === $confirmations[ $confirmation_id ]['type'] ) {
|
475 |
+
add_filter( 'wpforms_field_smart_tag_value', 'rawurlencode' );
|
476 |
$url = apply_filters( 'wpforms_process_smart_tags', $confirmations[ $confirmation_id ]['redirect'], $this->form_data, $this->fields, $this->entry_id );
|
477 |
}
|
478 |
|
483 |
|
484 |
if ( ! empty( $url ) ) {
|
485 |
$url = apply_filters( 'wpforms_process_redirect_url', $url, $this->form_data['id'], $this->fields, $this->form_data, $this->entry_id );
|
486 |
+
if ( wpforms_is_amp() ) {
|
487 |
+
/** This filter is documented in wp-includes/pluggable.php */
|
488 |
+
$url = apply_filters( 'wp_redirect', $url, 302 );
|
489 |
+
$url = wp_sanitize_redirect( $url );
|
490 |
+
header( sprintf( 'AMP-Redirect-To: %s', $url ) );
|
491 |
+
header( 'Access-Control-Expose-Headers: AMP-Redirect-To', false );
|
492 |
+
wp_send_json(
|
493 |
+
array(
|
494 |
+
'message' => __( 'Redirecting…', 'wpforms-lite' ),
|
495 |
+
'redirecting' => true,
|
496 |
+
),
|
497 |
+
200
|
498 |
+
);
|
499 |
+
} else {
|
500 |
+
wp_redirect( esc_url_raw( $url ) ); // phpcs:ignore
|
501 |
+
}
|
502 |
do_action( 'wpforms_process_redirect', $this->form_data['id'] );
|
503 |
do_action( "wpforms_process_redirect_{$this->form_data['id']}", $this->form_data['id'] );
|
504 |
exit;
|
506 |
|
507 |
// Pass a message to a frontend if no redirection happened.
|
508 |
if ( ! empty( $confirmations[ $confirmation_id ]['type'] ) && 'message' === $confirmations[ $confirmation_id ]['type'] ) {
|
509 |
+
$this->confirmation_message = $confirmations[ $confirmation_id ]['message'];
|
510 |
|
511 |
if ( ! empty( $confirmations[ $confirmation_id ]['message_scroll'] ) ) {
|
512 |
wpforms()->frontend->confirmation_message_scroll = true;
|
514 |
}
|
515 |
}
|
516 |
|
517 |
+
/**
|
518 |
+
* Get confirmation message.
|
519 |
+
*
|
520 |
+
* @param array $form_data Form data and settings.
|
521 |
+
* @param array $fields Sanitized field data.
|
522 |
+
* @param int $entry_id Entry id.
|
523 |
+
* @return string Confirmation message.
|
524 |
+
*/
|
525 |
+
public function get_confirmation_message( $form_data, $fields, $entry_id ) {
|
526 |
+
if ( empty( $this->confirmation_message ) ) {
|
527 |
+
return '';
|
528 |
+
}
|
529 |
+
$confirmation_message = apply_filters( 'wpforms_process_smart_tags', $this->confirmation_message, $form_data, $fields, $entry_id );
|
530 |
+
$confirmation_message = apply_filters( 'wpforms_frontend_confirmation_message', wpautop( $confirmation_message ), $form_data, $fields, $entry_id );
|
531 |
+
return $confirmation_message;
|
532 |
+
}
|
533 |
+
|
534 |
/**
|
535 |
* Catch the post_max_size overflow.
|
536 |
*
|
677 |
|
678 |
return $this->entry_id;
|
679 |
}
|
680 |
+
|
681 |
+
/**
|
682 |
+
* Process AJAX form submit.
|
683 |
+
*
|
684 |
+
* @since 1.5.3
|
685 |
+
*/
|
686 |
+
public function ajax_submit() {
|
687 |
+
|
688 |
+
$form_id = isset( $_POST['wpforms']['id'] ) ? absint( $_POST['wpforms']['id'] ) : 0; // phpcs:ignore
|
689 |
+
|
690 |
+
if ( empty( $form_id ) ) {
|
691 |
+
wp_send_json_error();
|
692 |
+
}
|
693 |
+
|
694 |
+
add_filter( 'wpforms_process_redirect_url', array( $this, 'ajax_process_redirect' ), 999, 2 );
|
695 |
+
|
696 |
+
do_action( 'wpforms_ajax_submit_before_processing', $form_id );
|
697 |
+
|
698 |
+
// If redirect happens in listen(), ajax_process_redirect() gets executed.
|
699 |
+
// The code below listen() runs only if no redirect happened.
|
700 |
+
$this->listen();
|
701 |
+
|
702 |
+
$form_data = $this->form_data;
|
703 |
+
|
704 |
+
if ( empty( $form_data ) ) {
|
705 |
+
$form_data = wpforms()->form->get( $form_id, array( 'content_only' => true ) );
|
706 |
+
$form_data = apply_filters( 'wpforms_frontend_form_data', $form_data );
|
707 |
+
}
|
708 |
+
|
709 |
+
if ( ! empty( $this->errors[ $form_id ] ) ) {
|
710 |
+
$this->ajax_process_errors( $form_id, $form_data );
|
711 |
+
wp_send_json_error();
|
712 |
+
}
|
713 |
+
|
714 |
+
ob_start();
|
715 |
+
|
716 |
+
wpforms()->frontend->confirmation( $form_data );
|
717 |
+
|
718 |
+
$response = apply_filters( 'wpforms_ajax_submit_success_response', array( 'confirmation' => ob_get_clean() ), $form_id, $form_data );
|
719 |
+
|
720 |
+
do_action( 'wpforms_ajax_submit_completed', $form_id, $response );
|
721 |
+
|
722 |
+
wp_send_json_success( $response );
|
723 |
+
}
|
724 |
+
|
725 |
+
/**
|
726 |
+
* Process AJAX errors.
|
727 |
+
*
|
728 |
+
* @since 1.5.3
|
729 |
+
* @todo This should be re-used/combined for AMP verify-xhr requests.
|
730 |
+
*
|
731 |
+
* @param int $form_id Form ID.
|
732 |
+
* @param array $form_data Form data and settings.
|
733 |
+
*/
|
734 |
+
protected function ajax_process_errors( $form_id, $form_data ) {
|
735 |
+
|
736 |
+
$errors = isset( $this->errors[ $form_id ] ) ? $this->errors[ $form_id ] : array();
|
737 |
+
|
738 |
+
$errors = apply_filters( 'wpforms_ajax_submit_errors', $errors, $form_id, $form_data );
|
739 |
+
|
740 |
+
if ( empty( $errors ) ) {
|
741 |
+
wp_send_json_error();
|
742 |
+
}
|
743 |
+
|
744 |
+
// General errors are errors that cannot be populated with jQuery Validate plugin.
|
745 |
+
$general_errors = array_intersect_key( $errors, array_flip( array( 'header', 'footer', 'recaptcha' ) ) );
|
746 |
+
|
747 |
+
foreach ( $general_errors as $key => $error ) {
|
748 |
+
ob_start();
|
749 |
+
wpforms()->frontend->form_error( $key, $error );
|
750 |
+
$general_errors[ $key ] = ob_get_clean();
|
751 |
+
}
|
752 |
+
|
753 |
+
$fields = isset( $form_data['fields'] ) ? $form_data['fields'] : array();
|
754 |
+
|
755 |
+
// Get registered fields errors only.
|
756 |
+
$field_errors = array_intersect_key( $errors, $fields );
|
757 |
+
|
758 |
+
// Transform field ids to field names for jQuery Validate plugin.
|
759 |
+
foreach ( $field_errors as $key => $error ) {
|
760 |
+
|
761 |
+
$props = wpforms()->frontend->get_field_properties( $fields[ $key ], $form_data );
|
762 |
+
$name = isset( $props['inputs']['primary']['attr']['name'] ) ? $props['inputs']['primary']['attr']['name'] : '';
|
763 |
+
|
764 |
+
if ( $name ) {
|
765 |
+
$field_errors[ $name ] = $error;
|
766 |
+
}
|
767 |
+
|
768 |
+
unset( $field_errors[ $key ] );
|
769 |
+
}
|
770 |
+
|
771 |
+
$response = array();
|
772 |
+
|
773 |
+
if ( $general_errors ) {
|
774 |
+
$response['errors']['general'] = $general_errors;
|
775 |
+
}
|
776 |
+
|
777 |
+
if ( $field_errors ) {
|
778 |
+
$response['errors']['field'] = $field_errors;
|
779 |
+
}
|
780 |
+
|
781 |
+
$response = apply_filters( 'wpforms_ajax_submit_errors_response', $response, $form_id, $form_data );
|
782 |
+
|
783 |
+
do_action( 'wpforms_ajax_submit_completed', $form_id, $response );
|
784 |
+
|
785 |
+
wp_send_json_error( $response );
|
786 |
+
}
|
787 |
+
|
788 |
+
/**
|
789 |
+
* Process AJAX redirect.
|
790 |
+
*
|
791 |
+
* @since 1.5.3
|
792 |
+
*
|
793 |
+
* @param string $url Redirect URL.
|
794 |
+
* @param int $form_id Form ID.
|
795 |
+
*/
|
796 |
+
public function ajax_process_redirect( $url, $form_id ) {
|
797 |
+
|
798 |
+
$response = array(
|
799 |
+
'form_id' => $form_id,
|
800 |
+
'redirect_url' => $url,
|
801 |
+
);
|
802 |
+
|
803 |
+
$response = apply_filters( 'wpforms_ajax_submit_redirect', $response, $form_id, $url );
|
804 |
+
|
805 |
+
do_action( 'wpforms_ajax_submit_completed', $form_id, $response );
|
806 |
+
|
807 |
+
wp_send_json_success( $response );
|
808 |
+
}
|
809 |
}
|
includes/class-smart-tags.php
CHANGED
@@ -299,6 +299,7 @@ class WPForms_Smart_Tags {
|
|
299 |
$field_id = $field_parts[0];
|
300 |
$field_key = ! empty( $field_parts[1] ) ? sanitize_key( $field_parts[1] ) : 'value';
|
301 |
$value = ! empty( $fields[ $field_id ][ $field_key ] ) ? wpforms_sanitize_textarea_field( $fields[ $field_id ][ $field_key ] ) : '';
|
|
|
302 |
$content = str_replace( '{field_id="' . $parts . '"}', $value, $content );
|
303 |
}
|
304 |
}
|
299 |
$field_id = $field_parts[0];
|
300 |
$field_key = ! empty( $field_parts[1] ) ? sanitize_key( $field_parts[1] ) : 'value';
|
301 |
$value = ! empty( $fields[ $field_id ][ $field_key ] ) ? wpforms_sanitize_textarea_field( $fields[ $field_id ][ $field_key ] ) : '';
|
302 |
+
$value = apply_filters( 'wpforms_field_smart_tag_value', $value );
|
303 |
$content = str_replace( '{field_id="' . $parts . '"}', $value, $content );
|
304 |
}
|
305 |
}
|
includes/fields/class-checkbox.php
CHANGED
@@ -440,11 +440,26 @@ class WPForms_Field_Checkbox extends WPForms_Field {
|
|
440 |
* @param array $form_data Form data and settings.
|
441 |
*/
|
442 |
public function field_display( $field, $deprecated, $form_data ) {
|
|
|
443 |
|
444 |
// Define data.
|
445 |
$container = $field['properties']['input_container'];
|
446 |
$choices = $field['properties']['inputs'];
|
447 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
448 |
printf(
|
449 |
'<ul %s>',
|
450 |
wpforms_html_attributes( $container['id'], $container['class'], $container['data'] )
|
@@ -452,6 +467,15 @@ class WPForms_Field_Checkbox extends WPForms_Field {
|
|
452 |
|
453 |
foreach ( $choices as $key => $choice ) {
|
454 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
455 |
// If the field is required, has the label hidden, and has
|
456 |
// disclaimer mode enabled, so the required status in choice
|
457 |
// label.
|
@@ -465,7 +489,24 @@ class WPForms_Field_Checkbox extends WPForms_Field {
|
|
465 |
wpforms_html_attributes( $choice['container']['id'], $choice['container']['class'], $choice['container']['data'], $choice['container']['attr'] )
|
466 |
);
|
467 |
|
468 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
469 |
|
470 |
// Image choices.
|
471 |
printf(
|
@@ -486,10 +527,20 @@ class WPForms_Field_Checkbox extends WPForms_Field {
|
|
486 |
echo '<br>';
|
487 |
}
|
488 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
489 |
printf(
|
490 |
'<input type="checkbox" %s %s %s>',
|
491 |
wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ),
|
492 |
-
esc_attr( $
|
493 |
checked( '1', $choice['default'], false )
|
494 |
);
|
495 |
|
@@ -503,7 +554,7 @@ class WPForms_Field_Checkbox extends WPForms_Field {
|
|
503 |
printf(
|
504 |
'<input type="checkbox" %s %s %s>',
|
505 |
wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ),
|
506 |
-
esc_attr( $
|
507 |
checked( '1', $choice['default'], false )
|
508 |
);
|
509 |
|
@@ -533,18 +584,17 @@ class WPForms_Field_Checkbox extends WPForms_Field {
|
|
533 |
public function validate( $field_id, $field_submit, $form_data ) {
|
534 |
|
535 |
$field_submit = (array) $field_submit;
|
536 |
-
$form_id = $form_data['id'];
|
537 |
$choice_limit = empty( $form_data['fields'][ $field_id ]['choice_limit'] ) ? 0 : (int) $form_data['fields'][ $field_id ]['choice_limit'];
|
538 |
$count_choices = count( $field_submit );
|
539 |
|
540 |
if ( $choice_limit > 0 && $count_choices > $choice_limit ) {
|
541 |
// Generating the error.
|
542 |
$error = wpforms_setting( 'validation-check-limit', esc_html__( 'You have exceeded the number of allowed selections: {#}.', 'wpforms-lite' ) );
|
543 |
-
$error = str_replace( '{#}', $choice_limit,
|
544 |
}
|
545 |
|
546 |
// Basic required check - If field is marked as required, check for entry data.
|
547 |
-
if ( ! empty( $form_data['fields'][ $field_id ]['required'] ) && empty( $field_submit ) ) {
|
548 |
$error = wpforms_get_required_label();
|
549 |
}
|
550 |
|
440 |
* @param array $form_data Form data and settings.
|
441 |
*/
|
442 |
public function field_display( $field, $deprecated, $form_data ) {
|
443 |
+
$using_image_choices = empty( $field['dynamic_choices'] ) && ! empty( $field['choices_images'] );
|
444 |
|
445 |
// Define data.
|
446 |
$container = $field['properties']['input_container'];
|
447 |
$choices = $field['properties']['inputs'];
|
448 |
|
449 |
+
$amp_state_id = '';
|
450 |
+
if ( wpforms_is_amp() && $using_image_choices ) {
|
451 |
+
$amp_state_id = str_replace( '-', '_', sanitize_key( $container['id'] ) ) . '_state';
|
452 |
+
$state = array();
|
453 |
+
foreach ( $choices as $key => $choice ) {
|
454 |
+
$state[ $choice['id'] ] = ! empty( $choice['default'] );
|
455 |
+
}
|
456 |
+
printf(
|
457 |
+
'<amp-state id="%s"><script type="application/json">%s</script></amp-state>',
|
458 |
+
esc_attr( $amp_state_id ),
|
459 |
+
wp_json_encode( $state )
|
460 |
+
);
|
461 |
+
}
|
462 |
+
|
463 |
printf(
|
464 |
'<ul %s>',
|
465 |
wpforms_html_attributes( $container['id'], $container['class'], $container['data'] )
|
467 |
|
468 |
foreach ( $choices as $key => $choice ) {
|
469 |
|
470 |
+
if ( wpforms_is_amp() && $using_image_choices ) {
|
471 |
+
$choice['container']['attr']['[class]'] = sprintf(
|
472 |
+
'%s + ( %s[%s] ? " wpforms-selected" : "")',
|
473 |
+
wp_json_encode( implode( ' ', $choice['container']['class'] ) ),
|
474 |
+
$amp_state_id,
|
475 |
+
wp_json_encode( $choice['id'] )
|
476 |
+
);
|
477 |
+
}
|
478 |
+
|
479 |
// If the field is required, has the label hidden, and has
|
480 |
// disclaimer mode enabled, so the required status in choice
|
481 |
// label.
|
489 |
wpforms_html_attributes( $choice['container']['id'], $choice['container']['class'], $choice['container']['data'], $choice['container']['attr'] )
|
490 |
);
|
491 |
|
492 |
+
// The required constraint in HTML5 form validation does not work with checkbox groups, so omit in AMP.
|
493 |
+
$required_attr = wpforms_is_amp() && count( $choices ) > 1 ? '' : $choice['required'];
|
494 |
+
|
495 |
+
if ( $using_image_choices ) {
|
496 |
+
|
497 |
+
// Make sure the image choices are keyboard-accessible.
|
498 |
+
$choice['label']['attr']['tabindex'] = 0;
|
499 |
+
|
500 |
+
if ( wpforms_is_amp() ) {
|
501 |
+
$choice['label']['attr']['on'] = sprintf(
|
502 |
+
'tap:AMP.setState({ %s: { %s: ! %s[%s] } })',
|
503 |
+
wp_json_encode( $amp_state_id ),
|
504 |
+
wp_json_encode( $choice['id'] ),
|
505 |
+
$amp_state_id,
|
506 |
+
wp_json_encode( $choice['id'] )
|
507 |
+
);
|
508 |
+
$choice['label']['attr']['role'] = 'button';
|
509 |
+
}
|
510 |
|
511 |
// Image choices.
|
512 |
printf(
|
527 |
echo '<br>';
|
528 |
}
|
529 |
|
530 |
+
$choice['attr']['tabindex'] = '-1';
|
531 |
+
|
532 |
+
if ( wpforms_is_amp() ) {
|
533 |
+
$choice['attr']['[checked]'] = sprintf(
|
534 |
+
'%s[%s]',
|
535 |
+
$amp_state_id,
|
536 |
+
wp_json_encode( $choice['id'] )
|
537 |
+
);
|
538 |
+
}
|
539 |
+
|
540 |
printf(
|
541 |
'<input type="checkbox" %s %s %s>',
|
542 |
wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ),
|
543 |
+
esc_attr( $required_attr ),
|
544 |
checked( '1', $choice['default'], false )
|
545 |
);
|
546 |
|
554 |
printf(
|
555 |
'<input type="checkbox" %s %s %s>',
|
556 |
wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ),
|
557 |
+
esc_attr( $required_attr ),
|
558 |
checked( '1', $choice['default'], false )
|
559 |
);
|
560 |
|
584 |
public function validate( $field_id, $field_submit, $form_data ) {
|
585 |
|
586 |
$field_submit = (array) $field_submit;
|
|
|
587 |
$choice_limit = empty( $form_data['fields'][ $field_id ]['choice_limit'] ) ? 0 : (int) $form_data['fields'][ $field_id ]['choice_limit'];
|
588 |
$count_choices = count( $field_submit );
|
589 |
|
590 |
if ( $choice_limit > 0 && $count_choices > $choice_limit ) {
|
591 |
// Generating the error.
|
592 |
$error = wpforms_setting( 'validation-check-limit', esc_html__( 'You have exceeded the number of allowed selections: {#}.', 'wpforms-lite' ) );
|
593 |
+
$error = str_replace( '{#}', $choice_limit, $error );
|
594 |
}
|
595 |
|
596 |
// Basic required check - If field is marked as required, check for entry data.
|
597 |
+
if ( ! empty( $form_data['fields'][ $field_id ]['required'] ) && ( empty( $field_submit ) ) || ( 1 === count( $field_submit ) && empty( $field_submit[0] ) ) ) {
|
598 |
$error = wpforms_get_required_label();
|
599 |
}
|
600 |
|
includes/fields/class-email.php
CHANGED
@@ -404,6 +404,24 @@ class WPForms_Field_Email extends WPForms_Field {
|
|
404 |
);
|
405 |
}
|
406 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
407 |
|
408 |
}
|
409 |
|
404 |
);
|
405 |
}
|
406 |
|
407 |
+
/**
|
408 |
+
* Validates field on form submit.
|
409 |
+
*
|
410 |
+
* @param int $field_id
|
411 |
+
* @param array $field_submit
|
412 |
+
* @param array $form_data
|
413 |
+
*/
|
414 |
+
public function validate( $field_id, $field_submit, $form_data ) {
|
415 |
+
$form_id = $form_data['id'];
|
416 |
+
|
417 |
+
parent::validate( $field_id, $field_submit, $form_data );
|
418 |
+
|
419 |
+
if ( ! empty( $field_submit['primary'] ) && ! is_email( $field_submit['primary'] ) ) {
|
420 |
+
wpforms()->process->errors[ $form_id ][ $field_id ]['primary'] = esc_html__( 'The provided email is not valid.', 'wpforms-lite' );
|
421 |
+
} elseif ( isset( $field_submit['primary'] ) && isset( $field_submit['secondary'] ) && $field_submit['secondary'] !== $field_submit['primary'] ) {
|
422 |
+
wpforms()->process->errors[ $form_id ][ $field_id ]['secondary'] = esc_html__( 'The provided emails do not match.', 'wpforms-lite' );
|
423 |
+
}
|
424 |
+
}
|
425 |
|
426 |
}
|
427 |
|
includes/fields/class-radio.php
CHANGED
@@ -345,11 +345,31 @@ class WPForms_Field_Radio extends WPForms_Field {
|
|
345 |
* @param array $form_data Form data and settings.
|
346 |
*/
|
347 |
public function field_display( $field, $deprecated, $form_data ) {
|
|
|
348 |
|
349 |
// Define data.
|
350 |
$container = $field['properties']['input_container'];
|
351 |
$choices = $field['properties']['inputs'];
|
352 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
printf(
|
354 |
'<ul %s>',
|
355 |
wpforms_html_attributes( $container['id'], $container['class'], $container['data'] )
|
@@ -357,12 +377,32 @@ class WPForms_Field_Radio extends WPForms_Field {
|
|
357 |
|
358 |
foreach ( $choices as $key => $choice ) {
|
359 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
360 |
printf(
|
361 |
'<li %s>',
|
362 |
wpforms_html_attributes( $choice['container']['id'], $choice['container']['class'], $choice['container']['data'], $choice['container']['attr'] )
|
363 |
); // WPCS: XSS ok.
|
364 |
|
365 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
|
367 |
// Image choices.
|
368 |
printf(
|
@@ -383,6 +423,16 @@ class WPForms_Field_Radio extends WPForms_Field {
|
|
383 |
echo '<br>';
|
384 |
}
|
385 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
386 |
printf(
|
387 |
'<input type="radio" %s %s %s>',
|
388 |
wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ),
|
345 |
* @param array $form_data Form data and settings.
|
346 |
*/
|
347 |
public function field_display( $field, $deprecated, $form_data ) {
|
348 |
+
$using_image_choices = empty( $field['dynamic_choices'] ) && ! empty( $field['choices_images'] );
|
349 |
|
350 |
// Define data.
|
351 |
$container = $field['properties']['input_container'];
|
352 |
$choices = $field['properties']['inputs'];
|
353 |
|
354 |
+
$amp_state_id = '';
|
355 |
+
if ( wpforms_is_amp() && $using_image_choices ) {
|
356 |
+
$amp_state_id = str_replace( '-', '_', sanitize_key( $container['id'] ) ) . '_state';
|
357 |
+
$state = array(
|
358 |
+
'selected' => null,
|
359 |
+
);
|
360 |
+
foreach ( $choices as $key => $choice ) {
|
361 |
+
if ( $choice['default'] ) {
|
362 |
+
$state['selected'] = $choice['attr']['value'];
|
363 |
+
break;
|
364 |
+
}
|
365 |
+
}
|
366 |
+
printf(
|
367 |
+
'<amp-state id="%s"><script type="application/json">%s</script></amp-state>',
|
368 |
+
esc_attr( $amp_state_id ),
|
369 |
+
wp_json_encode( $state )
|
370 |
+
);
|
371 |
+
}
|
372 |
+
|
373 |
printf(
|
374 |
'<ul %s>',
|
375 |
wpforms_html_attributes( $container['id'], $container['class'], $container['data'] )
|
377 |
|
378 |
foreach ( $choices as $key => $choice ) {
|
379 |
|
380 |
+
if ( wpforms_is_amp() && $using_image_choices ) {
|
381 |
+
$choice['container']['attr']['[class]'] = sprintf(
|
382 |
+
'%s + ( %s == %s ? " wpforms-selected" : "")',
|
383 |
+
wp_json_encode( implode( ' ', $choice['container']['class'] ) ),
|
384 |
+
$amp_state_id,
|
385 |
+
wp_json_encode( $choice['attr']['value'] )
|
386 |
+
);
|
387 |
+
}
|
388 |
+
|
389 |
printf(
|
390 |
'<li %s>',
|
391 |
wpforms_html_attributes( $choice['container']['id'], $choice['container']['class'], $choice['container']['data'], $choice['container']['attr'] )
|
392 |
); // WPCS: XSS ok.
|
393 |
|
394 |
+
if ( $using_image_choices ) {
|
395 |
+
|
396 |
+
// Make sure the image choices are keyboard-accessible.
|
397 |
+
$choice['label']['attr']['tabindex'] = 0;
|
398 |
+
|
399 |
+
if ( wpforms_is_amp() ) {
|
400 |
+
$choice['label']['attr']['on'] = sprintf(
|
401 |
+
'tap:AMP.setState(%s)',
|
402 |
+
wp_json_encode( array( $amp_state_id => $choice['attr']['value'] ) )
|
403 |
+
);
|
404 |
+
$choice['label']['attr']['role'] = 'button';
|
405 |
+
}
|
406 |
|
407 |
// Image choices.
|
408 |
printf(
|
423 |
echo '<br>';
|
424 |
}
|
425 |
|
426 |
+
$choice['attr']['tabindex'] = '-1';
|
427 |
+
|
428 |
+
if ( wpforms_is_amp() ) {
|
429 |
+
$choice['attr']['[checked]'] = sprintf(
|
430 |
+
'%s == %s',
|
431 |
+
$amp_state_id,
|
432 |
+
wp_json_encode( $choice['attr']['value'] )
|
433 |
+
);
|
434 |
+
}
|
435 |
+
|
436 |
printf(
|
437 |
'<input type="radio" %s %s %s>',
|
438 |
wpforms_html_attributes( $choice['id'], $choice['class'], $choice['data'], $choice['attr'] ),
|
includes/fields/class-text.php
CHANGED
@@ -28,6 +28,108 @@ class WPForms_Field_Text extends WPForms_Field {
|
|
28 |
add_filter( 'wpforms_field_properties_text', array( $this, 'field_properties' ), 5, 3 );
|
29 |
}
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
/**
|
32 |
* Define additional field properties.
|
33 |
*
|
@@ -47,7 +149,14 @@ class WPForms_Field_Text extends WPForms_Field {
|
|
47 |
// Add class that will trigger custom mask.
|
48 |
$properties['inputs']['primary']['class'][] = 'wpforms-masked-input';
|
49 |
|
50 |
-
if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
$mask = str_replace( 'alias:', '', $field['input_mask'] );
|
52 |
$properties['inputs']['primary']['data']['inputmask-alias'] = $mask;
|
53 |
} elseif ( false !== strpos( $field['input_mask'], 'regex:' ) ) {
|
28 |
add_filter( 'wpforms_field_properties_text', array( $this, 'field_properties' ), 5, 3 );
|
29 |
}
|
30 |
|
31 |
+
/**
|
32 |
+
* Convert mask formatted for jquery.inputmask into the format used by amp-inputmask.
|
33 |
+
*
|
34 |
+
* Note that amp-inputmask does not yet support all of the options that jquery.inputmask provides.
|
35 |
+
* In particular, amp-inputmask doesn't provides:
|
36 |
+
* - Upper-alphabetical mask.
|
37 |
+
* - Upper-alphanumeric mask.
|
38 |
+
* - Advanced Input Masks with arbitrary repeating groups.
|
39 |
+
*
|
40 |
+
* @link https://amp.dev/documentation/components/amp-inputmask
|
41 |
+
* @link https://wpforms.com/docs/how-to-use-custom-input-masks/
|
42 |
+
*
|
43 |
+
* @param string $mask Mask formatted for jquery.inputmask.
|
44 |
+
* @return array {
|
45 |
+
* Mask and placeholder.
|
46 |
+
*
|
47 |
+
* @type string $mask Mask for amp-inputmask.
|
48 |
+
* @type string $placeholder Placeholder derived from mask if one is not supplied.
|
49 |
+
* }
|
50 |
+
*/
|
51 |
+
protected function convert_mask_to_amp_inputmask( $mask ) {
|
52 |
+
$placeholder = '';
|
53 |
+
|
54 |
+
// Convert jquery.inputmask format into amp-inputmask format.
|
55 |
+
$amp_mask = '';
|
56 |
+
$req_mask_mapping = array(
|
57 |
+
'9' => '0', // Numeric.
|
58 |
+
'a' => 'L', // Alphabetical (a-z or A-Z).
|
59 |
+
'A' => 'L', // Upper-alphabetical (A-Z). Note: AMP does not have an uppercase-alphabetical mask type, so same as previous.
|
60 |
+
'*' => 'A', // Alphanumeric (0-9, a-z, A-Z).
|
61 |
+
'&' => 'A', // Upper-alphanumeric (A-Z, 0-9). Note: AMP does not have an uppercase-alphanumeric mask type, so same as previous.
|
62 |
+
' ' => '_', // Automatically insert spaces.
|
63 |
+
);
|
64 |
+
$opt_mask_mapping = array(
|
65 |
+
'9' => '9', // The user may optionally add a numeric character.
|
66 |
+
'a' => 'l', // The user may optionally add an alphabetical character.
|
67 |
+
'A' => 'l', // The user may optionally add an alphabetical character.
|
68 |
+
'*' => 'a', // The user may optionally add an alphanumeric character.
|
69 |
+
'&' => 'a', // The user may optionally add an alphanumeric character.
|
70 |
+
);
|
71 |
+
$placeholder_mapping = array(
|
72 |
+
'9' => '0',
|
73 |
+
'a' => 'a',
|
74 |
+
'A' => 'a',
|
75 |
+
'*' => '_',
|
76 |
+
'&' => '_',
|
77 |
+
);
|
78 |
+
$is_inside_optional = false;
|
79 |
+
$last_mask_token = null;
|
80 |
+
for ( $i = 0, $len = strlen( $mask ); $i < $len; $i++ ) {
|
81 |
+
if ( '[' === $mask[ $i ] ) {
|
82 |
+
$is_inside_optional = true;
|
83 |
+
$placeholder .= $mask[ $i ];
|
84 |
+
continue;
|
85 |
+
} elseif ( ']' === $mask[ $i ] ) {
|
86 |
+
$is_inside_optional = false;
|
87 |
+
$placeholder .= $mask[ $i ];
|
88 |
+
continue;
|
89 |
+
} elseif ( isset( $last_mask_token ) && preg_match( '/^\{(?P<n>\d+)(?:,(?P<m>\d+))?\}/', substr( $mask, $i ), $matches ) ) {
|
90 |
+
$amp_mask .= str_repeat( $req_mask_mapping[ $last_mask_token ], $matches['n'] );
|
91 |
+
$placeholder .= str_repeat( $placeholder_mapping[ $last_mask_token ], $matches['n'] );
|
92 |
+
if ( isset( $matches['m'] ) ) {
|
93 |
+
$amp_mask .= str_repeat( $opt_mask_mapping[ $last_mask_token ], $matches['m'] );
|
94 |
+
$placeholder .= str_repeat( $placeholder_mapping[ $last_mask_token ], $matches['m'] );
|
95 |
+
}
|
96 |
+
$i += strlen( $matches[0] ) - 1;
|
97 |
+
|
98 |
+
$last_mask_token = null; // Reset.
|
99 |
+
continue;
|
100 |
+
}
|
101 |
+
|
102 |
+
if ( '\\' === $mask[ $i ] ) {
|
103 |
+
$amp_mask .= '\\';
|
104 |
+
$i++;
|
105 |
+
if ( ! isset( $mask[ $i ] ) ) {
|
106 |
+
continue;
|
107 |
+
}
|
108 |
+
$amp_mask .= $mask[ $i ];
|
109 |
+
} else {
|
110 |
+
// Remember this token in case it is a mask.
|
111 |
+
if ( isset( $opt_mask_mapping[ $mask[ $i ] ] ) ) {
|
112 |
+
$last_mask_token = $mask[ $i ];
|
113 |
+
}
|
114 |
+
|
115 |
+
if ( $is_inside_optional && isset( $opt_mask_mapping[ $mask[ $i ] ] ) ) {
|
116 |
+
$amp_mask .= $opt_mask_mapping[ $mask[ $i ] ];
|
117 |
+
} elseif ( isset( $req_mask_mapping[ $mask[ $i ] ] ) ) {
|
118 |
+
$amp_mask .= $req_mask_mapping[ $mask[ $i ] ];
|
119 |
+
} else {
|
120 |
+
$amp_mask .= '\\' . $mask[ $i ];
|
121 |
+
}
|
122 |
+
}
|
123 |
+
|
124 |
+
if ( isset( $placeholder_mapping[ $mask[ $i ] ] ) ) {
|
125 |
+
$placeholder .= $placeholder_mapping[ $mask[ $i ] ];
|
126 |
+
} else {
|
127 |
+
$placeholder .= $mask[ $i ];
|
128 |
+
}
|
129 |
+
}
|
130 |
+
return array( $amp_mask, $placeholder );
|
131 |
+
}
|
132 |
+
|
133 |
/**
|
134 |
* Define additional field properties.
|
135 |
*
|
149 |
// Add class that will trigger custom mask.
|
150 |
$properties['inputs']['primary']['class'][] = 'wpforms-masked-input';
|
151 |
|
152 |
+
if ( wpforms_is_amp() ) {
|
153 |
+
list( $amp_mask, $placeholder ) = $this->convert_mask_to_amp_inputmask( $field['input_mask'] );
|
154 |
+
|
155 |
+
$properties['inputs']['primary']['attr']['mask'] = $amp_mask;
|
156 |
+
if ( empty( $properties['inputs']['primary']['attr']['placeholder'] ) ) {
|
157 |
+
$properties['inputs']['primary']['attr']['placeholder'] = $placeholder;
|
158 |
+
}
|
159 |
+
} elseif ( false !== strpos( $field['input_mask'], 'alias:' ) ) {
|
160 |
$mask = str_replace( 'alias:', '', $field['input_mask'] );
|
161 |
$properties['inputs']['primary']['data']['inputmask-alias'] = $mask;
|
162 |
} elseif ( false !== strpos( $field['input_mask'], 'regex:' ) ) {
|
includes/functions.php
CHANGED
@@ -424,7 +424,13 @@ function wpforms_html_attributes( $id = '', $class = array(), $datas = array(),
|
|
424 |
if ( ! empty( $atts ) ) {
|
425 |
foreach ( $atts as $att => $val ) {
|
426 |
if ( '0' == $val || ! empty( $val ) ) {
|
427 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
428 |
}
|
429 |
}
|
430 |
}
|
@@ -1624,9 +1630,10 @@ function wpforms_log( $title = '', $message = '', $args = array() ) {
|
|
1624 |
*
|
1625 |
* @since 1.4.1
|
1626 |
*
|
|
|
1627 |
* @return bool
|
1628 |
*/
|
1629 |
-
function wpforms_is_amp() {
|
1630 |
|
1631 |
$is_amp = false;
|
1632 |
|
@@ -1639,6 +1646,10 @@ function wpforms_is_amp() {
|
|
1639 |
$is_amp = true;
|
1640 |
}
|
1641 |
|
|
|
|
|
|
|
|
|
1642 |
return apply_filters( 'wpforms_is_amp', $is_amp );
|
1643 |
}
|
1644 |
|
424 |
if ( ! empty( $atts ) ) {
|
425 |
foreach ( $atts as $att => $val ) {
|
426 |
if ( '0' == $val || ! empty( $val ) ) {
|
427 |
+
if ( '[' === $att[0] ) {
|
428 |
+
// Handle special case for bound attributes in AMP.
|
429 |
+
$escaped_att = '[' . sanitize_html_class( trim( $att, '[]' ) ) . ']';
|
430 |
+
} else {
|
431 |
+
$escaped_att = sanitize_html_class( $att );
|
432 |
+
}
|
433 |
+
$parts[] = $escaped_att . '="' . esc_attr( $val ) . '"';
|
434 |
}
|
435 |
}
|
436 |
}
|
1630 |
*
|
1631 |
* @since 1.4.1
|
1632 |
*
|
1633 |
+
* @param bool $check_theme_support Whether theme support should be checked. Defaults to true.
|
1634 |
* @return bool
|
1635 |
*/
|
1636 |
+
function wpforms_is_amp( $check_theme_support = true ) {
|
1637 |
|
1638 |
$is_amp = false;
|
1639 |
|
1646 |
$is_amp = true;
|
1647 |
}
|
1648 |
|
1649 |
+
if ( $is_amp && $check_theme_support ) {
|
1650 |
+
$is_amp = current_theme_supports( 'amp' );
|
1651 |
+
}
|
1652 |
+
|
1653 |
return apply_filters( 'wpforms_is_amp', $is_amp );
|
1654 |
}
|
1655 |
|
languages/wpforms-lite.pot
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
-
"Project-Id-Version: WPForms Lite 1.5.
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms-lite\n"
|
5 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
6 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
7 |
"MIME-Version: 1.0\n"
|
8 |
"Content-Type: text/plain; charset=UTF-8\n"
|
9 |
"Content-Transfer-Encoding: 8bit\n"
|
10 |
-
"POT-Creation-Date: 2019-
|
11 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
12 |
"X-Generator: WP-CLI 2.1.0\n"
|
13 |
"X-Domain: wpforms-lite\n"
|
@@ -36,7 +36,7 @@ msgstr ""
|
|
36 |
|
37 |
#. translators: %s - form name.
|
38 |
#: lite/wpforms-lite.php:55
|
39 |
-
#: includes/class-process.php:
|
40 |
msgid "New %s Entry"
|
41 |
msgstr ""
|
42 |
|
@@ -129,7 +129,7 @@ msgstr ""
|
|
129 |
#: includes/admin/importers/class-ninja-forms.php:142
|
130 |
#: includes/admin/importers/class-pirate-forms.php:459
|
131 |
#: includes/templates/class-contact.php:70
|
132 |
-
#: includes/class-process.php:
|
133 |
#: includes/class-form.php:247
|
134 |
msgid "Thanks for contacting us! We will be in touch with you shortly."
|
135 |
msgstr ""
|
@@ -302,1313 +302,1313 @@ msgstr ""
|
|
302 |
msgid "Upgrade to WPForms Pro Now"
|
303 |
msgstr ""
|
304 |
|
305 |
-
#: lite/wpforms-lite.php:
|
306 |
#: includes/admin/class-about.php:85
|
307 |
#: includes/admin/class-menu.php:113
|
308 |
msgid "WPForms Addons"
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: lite/wpforms-lite.php:
|
312 |
msgid "Search Addons"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: lite/wpforms-lite.php:
|
316 |
msgid "Form Addons are a PRO feature."
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: lite/wpforms-lite.php:
|
320 |
msgid "Please upgrade to the PRO plan to unlock them and more awesome features."
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: lite/wpforms-lite.php:
|
324 |
-
#: lite/wpforms-lite.php:
|
325 |
#: includes/admin/class-tools.php:499
|
326 |
#: includes/admin/class-welcome.php:262
|
327 |
msgid "Upgrade Now"
|
328 |
msgstr ""
|
329 |
|
330 |
#. translators: %s - addon name
|
331 |
-
#: lite/wpforms-lite.php:
|
332 |
msgid "%s Addon"
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: includes/functions.php:
|
336 |
msgid "Alabama"
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: includes/functions.php:
|
340 |
msgid "Alaska"
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: includes/functions.php:
|
344 |
msgid "Arizona"
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: includes/functions.php:
|
348 |
msgid "Arkansas"
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: includes/functions.php:
|
352 |
msgid "California"
|
353 |
msgstr ""
|
354 |
|
355 |
-
#: includes/functions.php:
|
356 |
msgid "Colorado"
|
357 |
msgstr ""
|
358 |
|
359 |
-
#: includes/functions.php:
|
360 |
msgid "Connecticut"
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: includes/functions.php:
|
364 |
msgid "Delaware"
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: includes/functions.php:
|
368 |
msgid "District of Columbia"
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: includes/functions.php:
|
372 |
msgid "Florida"
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: includes/functions.php:
|
376 |
msgctxt "US State"
|
377 |
msgid "Georgia"
|
378 |
msgstr ""
|
379 |
|
380 |
-
#: includes/functions.php:
|
381 |
msgid "Hawaii"
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: includes/functions.php:
|
385 |
msgid "Idaho"
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: includes/functions.php:
|
389 |
msgid "Illinois"
|
390 |
msgstr ""
|
391 |
|
392 |
-
#: includes/functions.php:
|
393 |
msgid "Indiana"
|
394 |
msgstr ""
|
395 |
|
396 |
-
#: includes/functions.php:
|
397 |
msgid "Iowa"
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: includes/functions.php:
|
401 |
msgid "Kansas"
|
402 |
msgstr ""
|
403 |
|
404 |
-
#: includes/functions.php:
|
405 |
msgid "Kentucky"
|
406 |
msgstr ""
|
407 |
|
408 |
-
#: includes/functions.php:
|
409 |
msgid "Louisiana"
|
410 |
msgstr ""
|
411 |
|
412 |
-
#: includes/functions.php:
|
413 |
msgid "Maine"
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: includes/functions.php:
|
417 |
msgid "Maryland"
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: includes/functions.php:
|
421 |
msgid "Massachusetts"
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: includes/functions.php:
|
425 |
msgid "Michigan"
|
426 |
msgstr ""
|
427 |
|
428 |
-
#: includes/functions.php:
|
429 |
msgid "Minnesota"
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: includes/functions.php:
|
433 |
msgid "Mississippi"
|
434 |
msgstr ""
|
435 |
|
436 |
-
#: includes/functions.php:
|
437 |
msgid "Missouri"
|
438 |
msgstr ""
|
439 |
|
440 |
-
#: includes/functions.php:
|
441 |
msgid "Montana"
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: includes/functions.php:
|
445 |
msgid "Nebraska"
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: includes/functions.php:
|
449 |
msgid "Nevada"
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: includes/functions.php:
|
453 |
msgid "New Hampshire"
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: includes/functions.php:
|
457 |
msgid "New Jersey"
|
458 |
msgstr ""
|
459 |
|
460 |
-
#: includes/functions.php:
|
461 |
msgid "New Mexico"
|
462 |
msgstr ""
|
463 |
|
464 |
-
#: includes/functions.php:
|
465 |
msgid "New York"
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: includes/functions.php:
|
469 |
msgid "North Carolina"
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: includes/functions.php:
|
473 |
msgid "North Dakota"
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: includes/functions.php:
|
477 |
msgid "Ohio"
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: includes/functions.php:
|
481 |
msgid "Oklahoma"
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: includes/functions.php:
|
485 |
msgid "Oregon"
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: includes/functions.php:
|
489 |
msgid "Pennsylvania"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: includes/functions.php:
|
493 |
msgid "Rhode Island"
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: includes/functions.php:
|
497 |
msgid "South Carolina"
|
498 |
msgstr ""
|
499 |
|
500 |
-
#: includes/functions.php:
|
501 |
msgid "South Dakota"
|
502 |
msgstr ""
|
503 |
|
504 |
-
#: includes/functions.php:
|
505 |
msgid "Tennessee"
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: includes/functions.php:
|
509 |
msgid "Texas"
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: includes/functions.php:
|
513 |
msgid "Utah"
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: includes/functions.php:
|
517 |
msgid "Vermont"
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: includes/functions.php:
|
521 |
msgid "Virginia"
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: includes/functions.php:
|
525 |
msgid "Washington"
|
526 |
msgstr ""
|
527 |
|
528 |
-
#: includes/functions.php:
|
529 |
msgid "West Virginia"
|
530 |
msgstr ""
|
531 |
|
532 |
-
#: includes/functions.php:
|
533 |
msgid "Wisconsin"
|
534 |
msgstr ""
|
535 |
|
536 |
-
#: includes/functions.php:
|
537 |
msgid "Wyoming"
|
538 |
msgstr ""
|
539 |
|
540 |
-
#: includes/functions.php:
|
541 |
msgid "Afghanistan"
|
542 |
msgstr ""
|
543 |
|
544 |
-
#: includes/functions.php:
|
545 |
msgid "Åland Islands"
|
546 |
msgstr ""
|
547 |
|
548 |
-
#: includes/functions.php:
|
549 |
msgid "Albania"
|
550 |
msgstr ""
|
551 |
|
552 |
-
#: includes/functions.php:
|
553 |
msgid "Algeria"
|
554 |
msgstr ""
|
555 |
|
556 |
-
#: includes/functions.php:
|
557 |
msgid "American Samoa"
|
558 |
msgstr ""
|
559 |
|
560 |
-
#: includes/functions.php:
|
561 |
msgid "Andorra"
|
562 |
msgstr ""
|
563 |
|
564 |
-
#: includes/functions.php:
|
565 |
msgid "Angola"
|
566 |
msgstr ""
|
567 |
|
568 |
-
#: includes/functions.php:
|
569 |
msgid "Anguilla"
|
570 |
msgstr ""
|
571 |
|
572 |
-
#: includes/functions.php:
|
573 |
msgid "Antarctica"
|
574 |
msgstr ""
|
575 |
|
576 |
-
#: includes/functions.php:
|
577 |
msgid "Antigua and Barbuda"
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: includes/functions.php:
|
581 |
msgid "Argentina"
|
582 |
msgstr ""
|
583 |
|
584 |
-
#: includes/functions.php:
|
585 |
msgid "Armenia"
|
586 |
msgstr ""
|
587 |
|
588 |
-
#: includes/functions.php:
|
589 |
msgid "Aruba"
|
590 |
msgstr ""
|
591 |
|
592 |
-
#: includes/functions.php:
|
593 |
msgid "Australia"
|
594 |
msgstr ""
|
595 |
|
596 |
-
#: includes/functions.php:
|
597 |
msgid "Austria"
|
598 |
msgstr ""
|
599 |
|
600 |
-
#: includes/functions.php:
|
601 |
msgid "Azerbaijan"
|
602 |
msgstr ""
|
603 |
|
604 |
-
#: includes/functions.php:
|
605 |
msgid "Bahamas"
|
606 |
msgstr ""
|
607 |
|
608 |
-
#: includes/functions.php:
|
609 |
msgid "Bahrain"
|
610 |
msgstr ""
|
611 |
|
612 |
-
#: includes/functions.php:
|
613 |
msgid "Bangladesh"
|
614 |
msgstr ""
|
615 |
|
616 |
-
#: includes/functions.php:
|
617 |
msgid "Barbados"
|
618 |
msgstr ""
|
619 |
|
620 |
-
#: includes/functions.php:
|
621 |
msgid "Belarus"
|
622 |
msgstr ""
|
623 |
|
624 |
-
#: includes/functions.php:
|
625 |
msgid "Belgium"
|
626 |
msgstr ""
|
627 |
|
628 |
-
#: includes/functions.php:
|
629 |
msgid "Belize"
|
630 |
msgstr ""
|
631 |
|
632 |
-
#: includes/functions.php:
|
633 |
msgid "Benin"
|
634 |
msgstr ""
|
635 |
|
636 |
-
#: includes/functions.php:
|
637 |
msgid "Bermuda"
|
638 |
msgstr ""
|
639 |
|
640 |
-
#: includes/functions.php:
|
641 |
msgid "Bhutan"
|
642 |
msgstr ""
|
643 |
|
644 |
-
#: includes/functions.php:
|
645 |
msgid "Bolivia (Plurinational State of)"
|
646 |
msgstr ""
|
647 |
|
648 |
-
#: includes/functions.php:
|
649 |
msgid "Bosnia and Herzegovina"
|
650 |
msgstr ""
|
651 |
|
652 |
-
#: includes/functions.php:
|
653 |
msgid "Botswana"
|
654 |
msgstr ""
|
655 |
|
656 |
-
#: includes/functions.php:
|
657 |
msgid "Bouvet Island"
|
658 |
msgstr ""
|
659 |
|
660 |
-
#: includes/functions.php:
|
661 |
msgid "Brazil"
|
662 |
msgstr ""
|
663 |
|
664 |
-
#: includes/functions.php:
|
665 |
msgid "British Indian Ocean Territory"
|
666 |
msgstr ""
|
667 |
|
668 |
-
#: includes/functions.php:
|
669 |
msgid "Brunei Darussalam"
|
670 |
msgstr ""
|
671 |
|
672 |
-
#: includes/functions.php:
|
673 |
msgid "Bulgaria"
|
674 |
msgstr ""
|
675 |
|
676 |
-
#: includes/functions.php:
|
677 |
msgid "Burkina Faso"
|
678 |
msgstr ""
|
679 |
|
680 |
-
#: includes/functions.php:
|
681 |
msgid "Burundi"
|
682 |
msgstr ""
|
683 |
|
684 |
-
#: includes/functions.php:
|
685 |
msgid "Cabo Verde"
|
686 |
msgstr ""
|
687 |
|
688 |
-
#: includes/functions.php:
|
689 |
msgid "Cambodia"
|
690 |
msgstr ""
|
691 |
|
692 |
-
#: includes/functions.php:
|
693 |
msgid "Cameroon"
|
694 |
msgstr ""
|
695 |
|
696 |
-
#: includes/functions.php:
|
697 |
msgid "Canada"
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: includes/functions.php:
|
701 |
msgid "Cayman Islands"
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: includes/functions.php:
|
705 |
msgid "Central African Republic"
|
706 |
msgstr ""
|
707 |
|
708 |
-
#: includes/functions.php:
|
709 |
msgid "Chad"
|
710 |
msgstr ""
|
711 |
|
712 |
-
#: includes/functions.php:
|
713 |
msgid "Chile"
|
714 |
msgstr ""
|
715 |
|
716 |
-
#: includes/functions.php:
|
717 |
msgid "China"
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: includes/functions.php:
|
721 |
msgid "Christmas Island"
|
722 |
msgstr ""
|
723 |
|
724 |
-
#: includes/functions.php:
|
725 |
msgid "Cocos (Keeling) Islands"
|
726 |
msgstr ""
|
727 |
|
728 |
-
#: includes/functions.php:
|
729 |
msgid "Colombia"
|
730 |
msgstr ""
|
731 |
|
732 |
-
#: includes/functions.php:
|
733 |
msgid "Comoros"
|
734 |
msgstr ""
|
735 |
|
736 |
-
#: includes/functions.php:
|
737 |
msgid "Congo"
|
738 |
msgstr ""
|
739 |
|
740 |
-
#: includes/functions.php:
|
741 |
msgid "Congo (Democratic Republic of the)"
|
742 |
msgstr ""
|
743 |
|
744 |
-
#: includes/functions.php:
|
745 |
msgid "Cook Islands"
|
746 |
msgstr ""
|
747 |
|
748 |
-
#: includes/functions.php:
|
749 |
msgid "Costa Rica"
|
750 |
msgstr ""
|
751 |
|
752 |
-
#: includes/functions.php:
|
753 |
msgid "Côte d'Ivoire"
|
754 |
msgstr ""
|
755 |
|
756 |
-
#: includes/functions.php:
|
757 |
msgid "Croatia"
|
758 |
msgstr ""
|
759 |
|
760 |
-
#: includes/functions.php:
|
761 |
msgid "Cuba"
|
762 |
msgstr ""
|
763 |
|
764 |
-
#: includes/functions.php:
|
765 |
msgid "Curaçao"
|
766 |
msgstr ""
|
767 |
|
768 |
-
#: includes/functions.php:
|
769 |
msgid "Cyprus"
|
770 |
msgstr ""
|
771 |
|
772 |
-
#: includes/functions.php:
|
773 |
msgid "Czech Republic"
|
774 |
msgstr ""
|
775 |
|
776 |
-
#: includes/functions.php:
|
777 |
msgid "Denmark"
|
778 |
msgstr ""
|
779 |
|
780 |
-
#: includes/functions.php:
|
781 |
msgid "Djibouti"
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: includes/functions.php:
|
785 |
msgid "Dominica"
|
786 |
msgstr ""
|
787 |
|
788 |
-
#: includes/functions.php:
|
789 |
msgid "Dominican Republic"
|
790 |
msgstr ""
|
791 |
|
792 |
-
#: includes/functions.php:
|
793 |
msgid "Ecuador"
|
794 |
msgstr ""
|
795 |
|
796 |
-
#: includes/functions.php:
|
797 |
msgid "Egypt"
|
798 |
msgstr ""
|
799 |
|
800 |
-
#: includes/functions.php:
|
801 |
msgid "El Salvador"
|
802 |
msgstr ""
|
803 |
|
804 |
-
#: includes/functions.php:
|
805 |
msgid "Equatorial Guinea"
|
806 |
msgstr ""
|
807 |
|
808 |
-
#: includes/functions.php:
|
809 |
msgid "Eritrea"
|
810 |
msgstr ""
|
811 |
|
812 |
-
#: includes/functions.php:
|
813 |
msgid "Estonia"
|
814 |
msgstr ""
|
815 |
|
816 |
-
#: includes/functions.php:
|
817 |
msgid "Ethiopia"
|
818 |
msgstr ""
|
819 |
|
820 |
-
#: includes/functions.php:
|
821 |
msgid "Falkland Islands (Malvinas)"
|
822 |
msgstr ""
|
823 |
|
824 |
-
#: includes/functions.php:
|
825 |
msgid "Faroe Islands"
|
826 |
msgstr ""
|
827 |
|
828 |
-
#: includes/functions.php:
|
829 |
msgid "Fiji"
|
830 |
msgstr ""
|
831 |
|
832 |
-
#: includes/functions.php:
|
833 |
msgid "Finland"
|
834 |
msgstr ""
|
835 |
|
836 |
-
#: includes/functions.php:
|
837 |
msgid "France"
|
838 |
msgstr ""
|
839 |
|
840 |
-
#: includes/functions.php:
|
841 |
msgid "French Guiana"
|
842 |
msgstr ""
|
843 |
|
844 |
-
#: includes/functions.php:
|
845 |
msgid "French Polynesia"
|
846 |
msgstr ""
|
847 |
|
848 |
-
#: includes/functions.php:
|
849 |
msgid "French Southern Territories"
|
850 |
msgstr ""
|
851 |
|
852 |
-
#: includes/functions.php:
|
853 |
msgid "Gabon"
|
854 |
msgstr ""
|
855 |
|
856 |
-
#: includes/functions.php:
|
857 |
msgid "Gambia"
|
858 |
msgstr ""
|
859 |
|
860 |
-
#: includes/functions.php:
|
861 |
msgctxt "Country"
|
862 |
msgid "Georgia"
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: includes/functions.php:
|
866 |
msgid "Germany"
|
867 |
msgstr ""
|
868 |
|
869 |
-
#: includes/functions.php:
|
870 |
msgid "Ghana"
|
871 |
msgstr ""
|
872 |
|
873 |
-
#: includes/functions.php:
|
874 |
msgid "Gibraltar"
|
875 |
msgstr ""
|
876 |
|
877 |
-
#: includes/functions.php:
|
878 |
msgid "Greece"
|
879 |
msgstr ""
|
880 |
|
881 |
-
#: includes/functions.php:
|
882 |
msgid "Greenland"
|
883 |
msgstr ""
|
884 |
|
885 |
-
#: includes/functions.php:
|
886 |
msgid "Grenada"
|
887 |
msgstr ""
|
888 |
|
889 |
-
#: includes/functions.php:
|
890 |
msgid "Guadeloupe"
|
891 |
msgstr ""
|
892 |
|
893 |
-
#: includes/functions.php:
|
894 |
msgid "Guam"
|
895 |
msgstr ""
|
896 |
|
897 |
-
#: includes/functions.php:
|
898 |
msgid "Guatemala"
|
899 |
msgstr ""
|
900 |
|
901 |
-
#: includes/functions.php:
|
902 |
msgid "Guernsey"
|
903 |
msgstr ""
|
904 |
|
905 |
-
#: includes/functions.php:
|
906 |
msgid "Guinea"
|
907 |
msgstr ""
|
908 |
|
909 |
-
#: includes/functions.php:
|
910 |
msgid "Guinea-Bissau"
|
911 |
msgstr ""
|
912 |
|
913 |
-
#: includes/functions.php:
|
914 |
msgid "Guyana"
|
915 |
msgstr ""
|
916 |
|
917 |
-
#: includes/functions.php:
|
918 |
msgid "Haiti"
|
919 |
msgstr ""
|
920 |
|
921 |
-
#: includes/functions.php:
|
922 |
msgid "Heard Island and McDonald Islands"
|
923 |
msgstr ""
|
924 |
|
925 |
-
#: includes/functions.php:
|
926 |
msgid "Honduras"
|
927 |
msgstr ""
|
928 |
|
929 |
-
#: includes/functions.php:
|
930 |
msgid "Hong Kong"
|
931 |
msgstr ""
|
932 |
|
933 |
-
#: includes/functions.php:
|
934 |
msgid "Hungary"
|
935 |
msgstr ""
|
936 |
|
937 |
-
#: includes/functions.php:
|
938 |
msgid "Iceland"
|
939 |
msgstr ""
|
940 |
|
941 |
-
#: includes/functions.php:
|
942 |
msgid "India"
|
943 |
msgstr ""
|
944 |
|
945 |
-
#: includes/functions.php:
|
946 |
msgid "Indonesia"
|
947 |
msgstr ""
|
948 |
|
949 |
-
#: includes/functions.php:
|
950 |
msgid "Iran (Islamic Republic of)"
|
951 |
msgstr ""
|
952 |
|
953 |
-
#: includes/functions.php:
|
954 |
msgid "Iraq"
|
955 |
msgstr ""
|
956 |
|
957 |
-
#: includes/functions.php:
|
958 |
msgid "Ireland (Republic of)"
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: includes/functions.php:
|
962 |
msgid "Isle of Man"
|
963 |
msgstr ""
|
964 |
|
965 |
-
#: includes/functions.php:
|
966 |
msgid "Israel"
|
967 |
msgstr ""
|
968 |
|
969 |
-
#: includes/functions.php:
|
970 |
msgid "Italy"
|
971 |
msgstr ""
|
972 |
|
973 |
-
#: includes/functions.php:
|
974 |
msgid "Jamaica"
|
975 |
msgstr ""
|
976 |
|
977 |
-
#: includes/functions.php:
|
978 |
msgid "Japan"
|
979 |
msgstr ""
|
980 |
|
981 |
-
#: includes/functions.php:
|
982 |
msgid "Jersey"
|
983 |
msgstr ""
|
984 |
|
985 |
-
#: includes/functions.php:
|
986 |
msgid "Jordan"
|
987 |
msgstr ""
|
988 |
|
989 |
-
#: includes/functions.php:
|
990 |
msgid "Kazakhstan"
|
991 |
msgstr ""
|
992 |
|
993 |
-
#: includes/functions.php:
|
994 |
msgid "Kenya"
|
995 |
msgstr ""
|
996 |
|
997 |
-
#: includes/functions.php:
|
998 |
msgid "Kiribati"
|
999 |
msgstr ""
|
1000 |
|
1001 |
-
#: includes/functions.php:
|
1002 |
msgid "Korea (Democratic People's Republic of)"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
-
#: includes/functions.php:
|
1006 |
msgid "Korea (Republic of)"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
-
#: includes/functions.php:
|
1010 |
msgid "Kuwait"
|
1011 |
msgstr ""
|
1012 |
|
1013 |
-
#: includes/functions.php:
|
1014 |
msgid "Kyrgyzstan"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
-
#: includes/functions.php:
|
1018 |
msgid "Lao People's Democratic Republic"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
-
#: includes/functions.php:
|
1022 |
msgid "Latvia"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
-
#: includes/functions.php:
|
1026 |
msgid "Lebanon"
|
1027 |
msgstr ""
|
1028 |
|
1029 |
-
#: includes/functions.php:
|
1030 |
msgid "Lesotho"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
-
#: includes/functions.php:
|
1034 |
msgid "Liberia"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
-
#: includes/functions.php:
|
1038 |
msgid "Libya"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
-
#: includes/functions.php:
|
1042 |
msgid "Liechtenstein"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
-
#: includes/functions.php:
|
1046 |
msgid "Lithuania"
|
1047 |
msgstr ""
|
1048 |
|
1049 |
-
#: includes/functions.php:
|
1050 |
msgid "Luxembourg"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
-
#: includes/functions.php:
|
1054 |
msgid "Macao"
|
1055 |
msgstr ""
|
1056 |
|
1057 |
-
#: includes/functions.php:
|
1058 |
msgid "Macedonia (Republic of)"
|
1059 |
msgstr ""
|
1060 |
|
1061 |
-
#: includes/functions.php:
|
1062 |
msgid "Madagascar"
|
1063 |
msgstr ""
|
1064 |
|
1065 |
-
#: includes/functions.php:
|
1066 |
msgid "Malawi"
|
1067 |
msgstr ""
|
1068 |
|
1069 |
-
#: includes/functions.php:
|
1070 |
msgid "Malaysia"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
-
#: includes/functions.php:
|
1074 |
msgid "Maldives"
|
1075 |
msgstr ""
|
1076 |
|
1077 |
-
#: includes/functions.php:
|
1078 |
msgid "Mali"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
-
#: includes/functions.php:
|
1082 |
msgid "Malta"
|
1083 |
msgstr ""
|
1084 |
|
1085 |
-
#: includes/functions.php:
|
1086 |
msgid "Marshall Islands"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
-
#: includes/functions.php:
|
1090 |
msgid "Martinique"
|
1091 |
msgstr ""
|
1092 |
|
1093 |
-
#: includes/functions.php:
|
1094 |
msgid "Mauritania"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
-
#: includes/functions.php:
|
1098 |
msgid "Mauritius"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
-
#: includes/functions.php:
|
1102 |
msgid "Mayotte"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
-
#: includes/functions.php:
|
1106 |
msgid "Mexico"
|
1107 |
msgstr ""
|
1108 |
|
1109 |
-
#: includes/functions.php:
|
1110 |
msgid "Micronesia (Federated States of)"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
-
#: includes/functions.php:
|
1114 |
msgid "Moldova (Republic of)"
|
1115 |
msgstr ""
|
1116 |
|
1117 |
-
#: includes/functions.php:
|
1118 |
msgid "Monaco"
|
1119 |
msgstr ""
|
1120 |
|
1121 |
-
#: includes/functions.php:
|
1122 |
msgid "Mongolia"
|
1123 |
msgstr ""
|
1124 |
|
1125 |
-
#: includes/functions.php:
|
1126 |
msgid "Montenegro"
|
1127 |
msgstr ""
|
1128 |
|
1129 |
-
#: includes/functions.php:
|
1130 |
msgid "Montserrat"
|
1131 |
msgstr ""
|
1132 |
|
1133 |
-
#: includes/functions.php:
|
1134 |
msgid "Morocco"
|
1135 |
msgstr ""
|
1136 |
|
1137 |
-
#: includes/functions.php:
|
1138 |
msgid "Mozambique"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
-
#: includes/functions.php:
|
1142 |
msgid "Myanmar"
|
1143 |
msgstr ""
|
1144 |
|
1145 |
-
#: includes/functions.php:
|
1146 |
msgid "Namibia"
|
1147 |
msgstr ""
|
1148 |
|
1149 |
-
#: includes/functions.php:
|
1150 |
msgid "Nauru"
|
1151 |
msgstr ""
|
1152 |
|
1153 |
-
#: includes/functions.php:
|
1154 |
msgid "Nepal"
|
1155 |
msgstr ""
|
1156 |
|
1157 |
-
#: includes/functions.php:
|
1158 |
msgid "Netherlands"
|
1159 |
msgstr ""
|
1160 |
|
1161 |
-
#: includes/functions.php:
|
1162 |
msgid "New Caledonia"
|
1163 |
msgstr ""
|
1164 |
|
1165 |
-
#: includes/functions.php:
|
1166 |
msgid "New Zealand"
|
1167 |
msgstr ""
|
1168 |
|
1169 |
-
#: includes/functions.php:
|
1170 |
msgid "Nicaragua"
|
1171 |
msgstr ""
|
1172 |
|
1173 |
-
#: includes/functions.php:
|
1174 |
msgid "Niger"
|
1175 |
msgstr ""
|
1176 |
|
1177 |
-
#: includes/functions.php:
|
1178 |
msgid "Nigeria"
|
1179 |
msgstr ""
|
1180 |
|
1181 |
-
#: includes/functions.php:
|
1182 |
msgid "Niue"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#: includes/functions.php:
|
1186 |
msgid "Norfolk Island"
|
1187 |
msgstr ""
|
1188 |
|
1189 |
-
#: includes/functions.php:
|
1190 |
msgid "Northern Mariana Islands"
|
1191 |
msgstr ""
|
1192 |
|
1193 |
-
#: includes/functions.php:
|
1194 |
msgid "Norway"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: includes/functions.php:
|
1198 |
msgid "Oman"
|
1199 |
msgstr ""
|
1200 |
|
1201 |
-
#: includes/functions.php:
|
1202 |
msgid "Pakistan"
|
1203 |
msgstr ""
|
1204 |
|
1205 |
-
#: includes/functions.php:
|
1206 |
msgid "Palau"
|
1207 |
msgstr ""
|
1208 |
|
1209 |
-
#: includes/functions.php:
|
1210 |
msgid "Palestine (State of)"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
-
#: includes/functions.php:
|
1214 |
msgid "Panama"
|
1215 |
msgstr ""
|
1216 |
|
1217 |
-
#: includes/functions.php:
|
1218 |
msgid "Papua New Guinea"
|
1219 |
msgstr ""
|
1220 |
|
1221 |
-
#: includes/functions.php:
|
1222 |
msgid "Paraguay"
|
1223 |
msgstr ""
|
1224 |
|
1225 |
-
#: includes/functions.php:
|
1226 |
msgid "Peru"
|
1227 |
msgstr ""
|
1228 |
|
1229 |
-
#: includes/functions.php:
|
1230 |
msgid "Philippines"
|
1231 |
msgstr ""
|
1232 |
|
1233 |
-
#: includes/functions.php:
|
1234 |
msgid "Pitcairn"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
-
#: includes/functions.php:
|
1238 |
msgid "Poland"
|
1239 |
msgstr ""
|
1240 |
|
1241 |
-
#: includes/functions.php:
|
1242 |
msgid "Portugal"
|
1243 |
msgstr ""
|
1244 |
|
1245 |
-
#: includes/functions.php:
|
1246 |
msgid "Puerto Rico"
|
1247 |
msgstr ""
|
1248 |
|
1249 |
-
#: includes/functions.php:
|
1250 |
msgid "Qatar"
|
1251 |
msgstr ""
|
1252 |
|
1253 |
-
#: includes/functions.php:
|
1254 |
msgid "Réunion"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
-
#: includes/functions.php:
|
1258 |
msgid "Romania"
|
1259 |
msgstr ""
|
1260 |
|
1261 |
-
#: includes/functions.php:
|
1262 |
msgid "Russian Federation"
|
1263 |
msgstr ""
|
1264 |
|
1265 |
-
#: includes/functions.php:
|
1266 |
msgid "Rwanda"
|
1267 |
msgstr ""
|
1268 |
|
1269 |
-
#: includes/functions.php:
|
1270 |
msgid "Saint Barthélemy"
|
1271 |
msgstr ""
|
1272 |
|
1273 |
-
#: includes/functions.php:
|
1274 |
msgid "Saint Helena, Ascension and Tristan da Cunha"
|
1275 |
msgstr ""
|
1276 |
|
1277 |
-
#: includes/functions.php:
|
1278 |
msgid "Saint Kitts and Nevis"
|
1279 |
msgstr ""
|
1280 |
|
1281 |
-
#: includes/functions.php:
|
1282 |
msgid "Saint Lucia"
|
1283 |
msgstr ""
|
1284 |
|
1285 |
-
#: includes/functions.php:
|
1286 |
msgid "Saint Martin (French part)"
|
1287 |
msgstr ""
|
1288 |
|
1289 |
-
#: includes/functions.php:
|
1290 |
msgid "Saint Pierre and Miquelon"
|
1291 |
msgstr ""
|
1292 |
|
1293 |
-
#: includes/functions.php:
|
1294 |
msgid "Saint Vincent and the Grenadines"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
-
#: includes/functions.php:
|
1298 |
msgid "Samoa"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
-
#: includes/functions.php:
|
1302 |
msgid "San Marino"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
-
#: includes/functions.php:
|
1306 |
msgid "Sao Tome and Principe"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
-
#: includes/functions.php:
|
1310 |
msgid "Saudi Arabia"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
-
#: includes/functions.php:
|
1314 |
msgid "Senegal"
|
1315 |
msgstr ""
|
1316 |
|
1317 |
-
#: includes/functions.php:
|
1318 |
msgid "Serbia"
|
1319 |
msgstr ""
|
1320 |
|
1321 |
-
#: includes/functions.php:
|
1322 |
msgid "Seychelles"
|
1323 |
msgstr ""
|
1324 |
|
1325 |
-
#: includes/functions.php:
|
1326 |
msgid "Sierra Leone"
|
1327 |
msgstr ""
|
1328 |
|
1329 |
-
#: includes/functions.php:
|
1330 |
msgid "Singapore"
|
1331 |
msgstr ""
|
1332 |
|
1333 |
-
#: includes/functions.php:
|
1334 |
msgid "Sint Maarten (Dutch part)"
|
1335 |
msgstr ""
|
1336 |
|
1337 |
-
#: includes/functions.php:
|
1338 |
msgid "Slovakia"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
-
#: includes/functions.php:
|
1342 |
msgid "Slovenia"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
-
#: includes/functions.php:
|
1346 |
msgid "Solomon Islands"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
-
#: includes/functions.php:
|
1350 |
msgid "Somalia"
|
1351 |
msgstr ""
|
1352 |
|
1353 |
-
#: includes/functions.php:
|
1354 |
msgid "South Africa"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
-
#: includes/functions.php:
|
1358 |
msgid "South Georgia and the South Sandwich Islands"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
-
#: includes/functions.php:
|
1362 |
msgid "South Sudan"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
-
#: includes/functions.php:
|
1366 |
msgid "Spain"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
-
#: includes/functions.php:
|
1370 |
msgid "Sri Lanka"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
-
#: includes/functions.php:
|
1374 |
msgid "Sudan"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
-
#: includes/functions.php:
|
1378 |
msgid "Suriname"
|
1379 |
msgstr ""
|
1380 |
|
1381 |
-
#: includes/functions.php:
|
1382 |
msgid "Svalbard and Jan Mayen"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
-
#: includes/functions.php:
|
1386 |
msgid "Swaziland"
|
1387 |
msgstr ""
|
1388 |
|
1389 |
-
#: includes/functions.php:
|
1390 |
msgid "Sweden"
|
1391 |
msgstr ""
|
1392 |
|
1393 |
-
#: includes/functions.php:
|
1394 |
msgid "Switzerland"
|
1395 |
msgstr ""
|
1396 |
|
1397 |
-
#: includes/functions.php:
|
1398 |
msgid "Syrian Arab Republic"
|
1399 |
msgstr ""
|
1400 |
|
1401 |
-
#: includes/functions.php:
|
1402 |
msgid "Taiwan, Province of China"
|
1403 |
msgstr ""
|
1404 |
|
1405 |
-
#: includes/functions.php:
|
1406 |
msgid "Tajikistan"
|
1407 |
msgstr ""
|
1408 |
|
1409 |
-
#: includes/functions.php:
|
1410 |
msgid "Tanzania (United Republic of)"
|
1411 |
msgstr ""
|
1412 |
|
1413 |
-
#: includes/functions.php:
|
1414 |
msgid "Thailand"
|
1415 |
msgstr ""
|
1416 |
|
1417 |
-
#: includes/functions.php:
|
1418 |
msgid "Timor-Leste"
|
1419 |
msgstr ""
|
1420 |
|
1421 |
-
#: includes/functions.php:
|
1422 |
msgid "Togo"
|
1423 |
msgstr ""
|
1424 |
|
1425 |
-
#: includes/functions.php:
|
1426 |
msgid "Tokelau"
|
1427 |
msgstr ""
|
1428 |
|
1429 |
-
#: includes/functions.php:
|
1430 |
msgid "Tonga"
|
1431 |
msgstr ""
|
1432 |
|
1433 |
-
#: includes/functions.php:
|
1434 |
msgid "Trinidad and Tobago"
|
1435 |
msgstr ""
|
1436 |
|
1437 |
-
#: includes/functions.php:
|
1438 |
msgid "Tunisia"
|
1439 |
msgstr ""
|
1440 |
|
1441 |
-
#: includes/functions.php:
|
1442 |
msgid "Turkey"
|
1443 |
msgstr ""
|
1444 |
|
1445 |
-
#: includes/functions.php:
|
1446 |
msgid "Turkmenistan"
|
1447 |
msgstr ""
|
1448 |
|
1449 |
-
#: includes/functions.php:
|
1450 |
msgid "Turks and Caicos Islands"
|
1451 |
msgstr ""
|
1452 |
|
1453 |
-
#: includes/functions.php:
|
1454 |
msgid "Tuvalu"
|
1455 |
msgstr ""
|
1456 |
|
1457 |
-
#: includes/functions.php:
|
1458 |
msgid "Uganda"
|
1459 |
msgstr ""
|
1460 |
|
1461 |
-
#: includes/functions.php:
|
1462 |
msgid "Ukraine"
|
1463 |
msgstr ""
|
1464 |
|
1465 |
-
#: includes/functions.php:
|
1466 |
msgid "United Arab Emirates"
|
1467 |
msgstr ""
|
1468 |
|
1469 |
-
#: includes/functions.php:
|
1470 |
msgid "United Kingdom of Great Britain and Northern Ireland"
|
1471 |
msgstr ""
|
1472 |
|
1473 |
-
#: includes/functions.php:
|
1474 |
msgid "United States of America"
|
1475 |
msgstr ""
|
1476 |
|
1477 |
-
#: includes/functions.php:
|
1478 |
msgid "United States Minor Outlying Islands"
|
1479 |
msgstr ""
|
1480 |
|
1481 |
-
#: includes/functions.php:
|
1482 |
msgid "Uruguay"
|
1483 |
msgstr ""
|
1484 |
|
1485 |
-
#: includes/functions.php:
|
1486 |
msgid "Uzbekistan"
|
1487 |
msgstr ""
|
1488 |
|
1489 |
-
#: includes/functions.php:
|
1490 |
msgid "Vanuatu"
|
1491 |
msgstr ""
|
1492 |
|
1493 |
-
#: includes/functions.php:
|
1494 |
msgid "Vatican City State"
|
1495 |
msgstr ""
|
1496 |
|
1497 |
-
#: includes/functions.php:
|
1498 |
msgid "Venezuela (Bolivarian Republic of)"
|
1499 |
msgstr ""
|
1500 |
|
1501 |
-
#: includes/functions.php:
|
1502 |
msgid "Viet Nam"
|
1503 |
msgstr ""
|
1504 |
|
1505 |
-
#: includes/functions.php:
|
1506 |
msgid "Virgin Islands (British)"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
-
#: includes/functions.php:
|
1510 |
msgid "Virgin Islands (U.S.)"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
-
#: includes/functions.php:
|
1514 |
msgid "Wallis and Futuna"
|
1515 |
msgstr ""
|
1516 |
|
1517 |
-
#: includes/functions.php:
|
1518 |
msgid "Western Sahara"
|
1519 |
msgstr ""
|
1520 |
|
1521 |
-
#: includes/functions.php:
|
1522 |
msgid "Yemen"
|
1523 |
msgstr ""
|
1524 |
|
1525 |
-
#: includes/functions.php:
|
1526 |
msgid "Zambia"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
-
#: includes/functions.php:
|
1530 |
msgid "Zimbabwe"
|
1531 |
msgstr ""
|
1532 |
|
1533 |
-
#: includes/functions.php:
|
1534 |
msgid "January"
|
1535 |
msgstr ""
|
1536 |
|
1537 |
-
#: includes/functions.php:
|
1538 |
msgid "February"
|
1539 |
msgstr ""
|
1540 |
|
1541 |
-
#: includes/functions.php:
|
1542 |
msgid "March"
|
1543 |
msgstr ""
|
1544 |
|
1545 |
-
#: includes/functions.php:
|
1546 |
msgid "April"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
-
#: includes/functions.php:
|
1550 |
msgid "May"
|
1551 |
msgstr ""
|
1552 |
|
1553 |
-
#: includes/functions.php:
|
1554 |
msgid "June"
|
1555 |
msgstr ""
|
1556 |
|
1557 |
-
#: includes/functions.php:
|
1558 |
msgid "July"
|
1559 |
msgstr ""
|
1560 |
|
1561 |
-
#: includes/functions.php:
|
1562 |
msgid "August"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
-
#: includes/functions.php:
|
1566 |
msgid "September"
|
1567 |
msgstr ""
|
1568 |
|
1569 |
-
#: includes/functions.php:
|
1570 |
msgid "October"
|
1571 |
msgstr ""
|
1572 |
|
1573 |
-
#: includes/functions.php:
|
1574 |
msgid "November"
|
1575 |
msgstr ""
|
1576 |
|
1577 |
-
#: includes/functions.php:
|
1578 |
msgid "December"
|
1579 |
msgstr ""
|
1580 |
|
1581 |
-
#: includes/functions.php:
|
1582 |
msgid "Sunday"
|
1583 |
msgstr ""
|
1584 |
|
1585 |
-
#: includes/functions.php:
|
1586 |
msgid "Monday"
|
1587 |
msgstr ""
|
1588 |
|
1589 |
-
#: includes/functions.php:
|
1590 |
msgid "Tuesday"
|
1591 |
msgstr ""
|
1592 |
|
1593 |
-
#: includes/functions.php:
|
1594 |
msgid "Wednesday"
|
1595 |
msgstr ""
|
1596 |
|
1597 |
-
#: includes/functions.php:
|
1598 |
msgid "Thursday"
|
1599 |
msgstr ""
|
1600 |
|
1601 |
-
#: includes/functions.php:
|
1602 |
msgid "Friday"
|
1603 |
msgstr ""
|
1604 |
|
1605 |
-
#: includes/functions.php:
|
1606 |
msgid "Saturday"
|
1607 |
msgstr ""
|
1608 |
|
1609 |
-
#: includes/functions.php:
|
1610 |
-
#: includes/class-frontend.php:
|
1611 |
-
#: includes/admin/class-settings.php:
|
1612 |
msgid "This field is required."
|
1613 |
msgstr ""
|
1614 |
|
@@ -1652,80 +1652,80 @@ msgctxt "Widget"
|
|
1652 |
msgid "Display form description"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
-
|
1656 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
1657 |
msgid "Please enter a valid URL."
|
1658 |
msgstr ""
|
1659 |
|
1660 |
-
#: includes/class-frontend.php:
|
1661 |
-
#: includes/admin/class-settings.php:
|
1662 |
msgid "Please enter a valid email address."
|
1663 |
msgstr ""
|
1664 |
|
1665 |
-
#: includes/class-frontend.php:
|
1666 |
-
#: includes/admin/class-settings.php:
|
1667 |
msgid "Did you mean {suggestion}?"
|
1668 |
msgstr ""
|
1669 |
|
1670 |
-
#: includes/class-frontend.php:
|
1671 |
msgid "Click to accept this suggestion."
|
1672 |
msgstr ""
|
1673 |
|
1674 |
-
#: includes/class-frontend.php:
|
1675 |
-
#: includes/admin/class-settings.php:
|
1676 |
#: includes/fields/class-number.php:162
|
1677 |
msgid "Please enter a valid number."
|
1678 |
msgstr ""
|
1679 |
|
1680 |
-
#: includes/class-frontend.php:
|
1681 |
-
#: includes/admin/class-settings.php:
|
1682 |
msgid "Field values do not match."
|
1683 |
msgstr ""
|
1684 |
|
1685 |
-
#: includes/class-frontend.php:
|
1686 |
msgid "File type is not allowed."
|
1687 |
msgstr ""
|
1688 |
|
1689 |
-
#: includes/class-frontend.php:
|
1690 |
msgid "File exceeds max size allowed."
|
1691 |
msgstr ""
|
1692 |
|
1693 |
-
#: includes/class-frontend.php:
|
1694 |
msgid "Please enter time in 12-hour AM/PM format (eg 8:45 AM)."
|
1695 |
msgstr ""
|
1696 |
|
1697 |
-
#: includes/class-frontend.php:
|
1698 |
msgid "Please enter time in 24-hour format (eg 22:45)."
|
1699 |
msgstr ""
|
1700 |
|
1701 |
-
#: includes/class-frontend.php:
|
1702 |
msgid "Payment is required."
|
1703 |
msgstr ""
|
1704 |
|
1705 |
-
#: includes/class-frontend.php:
|
1706 |
msgid "Please enter a valid credit card number."
|
1707 |
msgstr ""
|
1708 |
|
1709 |
-
#: includes/class-frontend.php:
|
1710 |
msgid "Please enter a valid phone number."
|
1711 |
msgstr ""
|
1712 |
|
1713 |
-
#: includes/class-frontend.php:
|
1714 |
-
#: includes/class-process.php:
|
1715 |
msgid "The total size of the selected files {totalSize} Mb exceeds the allowed limit {maxSize} Mb."
|
1716 |
msgstr ""
|
1717 |
|
1718 |
-
#: includes/class-frontend.php:
|
1719 |
-
#: includes/admin/class-settings.php:
|
1720 |
-
#: includes/fields/class-checkbox.php:
|
1721 |
msgid "You have exceeded the number of allowed selections: {#}."
|
1722 |
msgstr ""
|
1723 |
|
1724 |
-
#. translators: %s - URL to a non-amp version of a page with the form.
|
1725 |
-
#: includes/class-frontend.php:1180
|
1726 |
-
msgid "<a href=\"%s\">Go to the full page</a> to view and submit the form."
|
1727 |
-
msgstr ""
|
1728 |
-
|
1729 |
#: includes/providers/class-base.php:93
|
1730 |
msgid "Connection"
|
1731 |
msgstr ""
|
@@ -2676,7 +2676,7 @@ msgstr ""
|
|
2676 |
msgid "If your license has been upgraded or is incorrect, <a href=\"#\" id=\"wpforms-setting-license-key-refresh\">click here to force a refresh</a>."
|
2677 |
msgstr ""
|
2678 |
|
2679 |
-
#: includes/admin/settings-api.php:
|
2680 |
#: includes/fields/class-base.php:820
|
2681 |
#: includes/fields/class-base.php:951
|
2682 |
msgid "Upload Image"
|
@@ -3432,7 +3432,7 @@ msgid "Your site is running an outdated version of PHP that is no longer support
|
|
3432 |
msgstr ""
|
3433 |
|
3434 |
#: includes/admin/admin.php:382
|
3435 |
-
msgid "<strong>Please Note:</strong> Support for PHP 5.3 will be discontinued in 2019. After this, if no further action is taken, WPForms functionality will be disabled."
|
3436 |
msgstr ""
|
3437 |
|
3438 |
#: includes/admin/admin.php:404
|
@@ -3702,8 +3702,8 @@ msgstr ""
|
|
3702 |
|
3703 |
#: includes/admin/builder/panels/class-settings.php:42
|
3704 |
#: includes/admin/builder/panels/class-settings.php:82
|
3705 |
-
#: includes/admin/class-settings.php:
|
3706 |
-
#: includes/admin/class-settings.php:
|
3707 |
msgid "General"
|
3708 |
msgstr ""
|
3709 |
|
@@ -3751,22 +3751,34 @@ msgstr ""
|
|
3751 |
msgid "Enable anti-spam honeypot"
|
3752 |
msgstr ""
|
3753 |
|
|
|
|
|
|
|
|
|
3754 |
#: includes/admin/builder/panels/class-settings.php:158
|
3755 |
msgid "Enable Google Invisible v2 reCAPTCHA"
|
3756 |
msgstr ""
|
3757 |
|
3758 |
-
#: includes/admin/builder/panels/class-settings.php:
|
3759 |
-
msgid "Enable Google
|
3760 |
msgstr ""
|
3761 |
|
3762 |
-
#: includes/admin/builder/panels/class-settings.php:
|
3763 |
msgid "Enable dynamic fields population"
|
3764 |
msgstr ""
|
3765 |
|
3766 |
-
#: includes/admin/builder/panels/class-settings.php:
|
3767 |
msgid "How to use Dynamic Field Population"
|
3768 |
msgstr ""
|
3769 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3770 |
#: includes/admin/builder/panels/class-fields.php:22
|
3771 |
msgid "Fields"
|
3772 |
msgstr ""
|
@@ -4158,21 +4170,21 @@ msgstr ""
|
|
4158 |
msgid "Save Form"
|
4159 |
msgstr ""
|
4160 |
|
4161 |
-
#: includes/admin/class-settings.php:
|
4162 |
msgid "Settings were successfully saved."
|
4163 |
msgstr ""
|
4164 |
|
4165 |
-
#: includes/admin/class-settings.php:
|
4166 |
-
#: includes/admin/class-settings.php:
|
4167 |
-
#: includes/admin/class-settings.php:
|
4168 |
-
#: includes/admin/class-settings.php:
|
4169 |
-
#: includes/admin/class-settings.php:
|
4170 |
msgid "Save Settings"
|
4171 |
msgstr ""
|
4172 |
|
4173 |
-
#: includes/admin/class-settings.php:
|
4174 |
-
#: includes/admin/class-settings.php:
|
4175 |
-
#: includes/admin/class-settings.php:
|
4176 |
#: includes/templates/class-subscribe.php:44
|
4177 |
#: includes/templates/class-suggestion.php:41
|
4178 |
#: includes/templates/class-contact.php:42
|
@@ -4182,217 +4194,258 @@ msgstr ""
|
|
4182 |
msgid "Email"
|
4183 |
msgstr ""
|
4184 |
|
4185 |
-
#: includes/admin/class-settings.php:
|
4186 |
-
#: includes/admin/class-settings.php:
|
4187 |
msgid "reCAPTCHA"
|
4188 |
msgstr ""
|
4189 |
|
4190 |
-
#: includes/admin/class-settings.php:
|
4191 |
msgid "Validation"
|
4192 |
msgstr ""
|
4193 |
|
4194 |
-
#: includes/admin/class-settings.php:
|
4195 |
-
#: includes/admin/class-settings.php:
|
4196 |
-
#: includes/admin/class-settings.php:
|
4197 |
msgid "Integrations"
|
4198 |
msgstr ""
|
4199 |
|
4200 |
-
#: includes/admin/class-settings.php:
|
4201 |
-
#: includes/admin/class-settings.php:
|
4202 |
msgid "Misc"
|
4203 |
msgstr ""
|
4204 |
|
4205 |
-
#: includes/admin/class-settings.php:
|
4206 |
msgid "reCAPTCHA is a free anti-spam service from Google which helps to protect your website from spam and abuse while letting real people pass through with ease."
|
4207 |
msgstr ""
|
4208 |
|
4209 |
-
#: includes/admin/class-settings.php:
|
4210 |
-
msgid "Google
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4211 |
msgstr ""
|
4212 |
|
4213 |
-
#: includes/admin/class-settings.php:
|
4214 |
-
msgid "Sites already using
|
4215 |
msgstr ""
|
4216 |
|
4217 |
#. translators: %s - WPForms.com Setup Captcha URL.
|
4218 |
-
#: includes/admin/class-settings.php:
|
4219 |
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Read our walk through</a> to learn more and for step-by-step directions."
|
4220 |
msgstr ""
|
4221 |
|
4222 |
-
#: includes/admin/class-settings.php:
|
4223 |
msgid "License"
|
4224 |
msgstr ""
|
4225 |
|
4226 |
-
#: includes/admin/class-settings.php:
|
4227 |
msgid "Your license key provides access to updates and addons."
|
4228 |
msgstr ""
|
4229 |
|
4230 |
-
#: includes/admin/class-settings.php:
|
4231 |
msgid "License Key"
|
4232 |
msgstr ""
|
4233 |
|
4234 |
-
#: includes/admin/class-settings.php:
|
4235 |
msgid "Include Form Styling"
|
4236 |
msgstr ""
|
4237 |
|
4238 |
#. translators: %s - WPForms.com documentation URL.
|
4239 |
-
#: includes/admin/class-settings.php:
|
4240 |
msgid "Determines which CSS files to load for the site (<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">please see our tutorial for full details</a>). Unless experienced with CSS or instructed by support, \"Base and Form Theme Styling\" is recommended."
|
4241 |
msgstr ""
|
4242 |
|
4243 |
-
#: includes/admin/class-settings.php:
|
4244 |
msgid "Base and form theme styling"
|
4245 |
msgstr ""
|
4246 |
|
4247 |
-
#: includes/admin/class-settings.php:
|
4248 |
msgid "Base styling only"
|
4249 |
msgstr ""
|
4250 |
|
4251 |
-
#: includes/admin/class-settings.php:
|
4252 |
msgid "No styling"
|
4253 |
msgstr ""
|
4254 |
|
4255 |
-
#: includes/admin/class-settings.php:
|
4256 |
msgid "Load Assets Globally"
|
4257 |
msgstr ""
|
4258 |
|
4259 |
-
#: includes/admin/class-settings.php:
|
4260 |
msgid "Check this if you would like to load WPForms assets site-wide. Only check if your site is having compatibility issues or instructed to by support."
|
4261 |
msgstr ""
|
4262 |
|
4263 |
-
#: includes/admin/class-settings.php:
|
4264 |
msgid "GDPR"
|
4265 |
msgstr ""
|
4266 |
|
4267 |
-
#: includes/admin/class-settings.php:
|
4268 |
msgid "GDPR Enhancements"
|
4269 |
msgstr ""
|
4270 |
|
4271 |
#. translators: %s - WPForms.com GDPR documentation URL.
|
4272 |
-
#: includes/admin/class-settings.php:
|
4273 |
msgid "Check this to turn on GDPR related features and enhancements. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Read our GDPR documentation</a> to learn more."
|
4274 |
msgstr ""
|
4275 |
|
4276 |
-
#: includes/admin/class-settings.php:
|
4277 |
msgid "Template"
|
4278 |
msgstr ""
|
4279 |
|
4280 |
-
#: includes/admin/class-settings.php:
|
4281 |
msgid "Determines how email notifications will be formatted. HTML Templates are the default."
|
4282 |
msgstr ""
|
4283 |
|
4284 |
-
#: includes/admin/class-settings.php:
|
4285 |
msgid "HTML Template"
|
4286 |
msgstr ""
|
4287 |
|
4288 |
-
#: includes/admin/class-settings.php:
|
4289 |
msgid "Plain text"
|
4290 |
msgstr ""
|
4291 |
|
4292 |
-
#: includes/admin/class-settings.php:
|
4293 |
msgid "Header Image"
|
4294 |
msgstr ""
|
4295 |
|
4296 |
-
#: includes/admin/class-settings.php:
|
4297 |
msgid "Upload or choose a logo to be displayed at the top of email notifications.<br>Recommended size is 300x100 or smaller for best support on all devices."
|
4298 |
msgstr ""
|
4299 |
|
4300 |
-
#: includes/admin/class-settings.php:
|
4301 |
msgid "Background Color"
|
4302 |
msgstr ""
|
4303 |
|
4304 |
-
#: includes/admin/class-settings.php:
|
4305 |
msgid "Customize the background color of the HTML email template."
|
4306 |
msgstr ""
|
4307 |
|
4308 |
-
#: includes/admin/class-settings.php:
|
4309 |
msgid "Carbon Copy"
|
4310 |
msgstr ""
|
4311 |
|
4312 |
-
#: includes/admin/class-settings.php:
|
4313 |
msgid "Check this if you would like to enable the ability to CC: email addresses in the form notification settings."
|
4314 |
msgstr ""
|
4315 |
|
4316 |
-
#: includes/admin/class-settings.php:
|
4317 |
msgid "Type"
|
4318 |
msgstr ""
|
4319 |
|
4320 |
-
#: includes/admin/class-settings.php:
|
4321 |
msgid "Checkbox reCAPTCHA v2"
|
4322 |
msgstr ""
|
4323 |
|
4324 |
-
#: includes/admin/class-settings.php:
|
4325 |
msgid "Invisible reCAPTCHA v2"
|
4326 |
msgstr ""
|
4327 |
|
4328 |
-
#: includes/admin/class-settings.php:
|
|
|
|
|
|
|
|
|
4329 |
msgid "Site Key"
|
4330 |
msgstr ""
|
4331 |
|
4332 |
-
#: includes/admin/class-settings.php:
|
4333 |
msgid "Secret Key"
|
4334 |
msgstr ""
|
4335 |
|
4336 |
-
#: includes/admin/class-settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4337 |
msgid "No-Conflict Mode"
|
4338 |
msgstr ""
|
4339 |
|
4340 |
-
#: includes/admin/class-settings.php:
|
4341 |
msgid "When checked, other reCAPTCHA occurrences are forcefully removed, to prevent conflicts. Only check if your site is having compatibility issues or instructed to by support."
|
4342 |
msgstr ""
|
4343 |
|
4344 |
-
#: includes/admin/class-settings.php:
|
4345 |
msgid "Validation Messages"
|
4346 |
msgstr ""
|
4347 |
|
4348 |
-
#: includes/admin/class-settings.php:
|
4349 |
msgid "These messages are displayed to the users as they fill out a form in real-time."
|
4350 |
msgstr ""
|
4351 |
|
4352 |
-
#: includes/admin/class-settings.php:
|
4353 |
#: includes/fields/class-base.php:717
|
4354 |
msgid "Required"
|
4355 |
msgstr ""
|
4356 |
|
4357 |
-
#: includes/admin/class-settings.php:
|
4358 |
msgid "Website URL"
|
4359 |
msgstr ""
|
4360 |
|
4361 |
-
#: includes/admin/class-settings.php:
|
4362 |
msgid "Email Suggestion"
|
4363 |
msgstr ""
|
4364 |
|
4365 |
-
#: includes/admin/class-settings.php:
|
4366 |
msgid "Number"
|
4367 |
msgstr ""
|
4368 |
|
4369 |
-
#: includes/admin/class-settings.php:
|
4370 |
msgid "Confirm Value"
|
4371 |
msgstr ""
|
4372 |
|
4373 |
-
#: includes/admin/class-settings.php:
|
4374 |
msgid "Checkbox Selection Limit"
|
4375 |
msgstr ""
|
4376 |
|
4377 |
-
#: includes/admin/class-settings.php:
|
4378 |
-
#: includes/admin/class-settings.php:
|
4379 |
msgid "Manage integrations with popular providers such as Constant Contact, MailChimp, Zapier, and more."
|
4380 |
msgstr ""
|
4381 |
|
4382 |
-
#: includes/admin/class-settings.php:
|
4383 |
msgid "Hide Announcements"
|
4384 |
msgstr ""
|
4385 |
|
4386 |
-
#: includes/admin/class-settings.php:
|
4387 |
msgid "Check this if you would like to hide plugin announcements and update details."
|
4388 |
msgstr ""
|
4389 |
|
4390 |
-
#: includes/admin/class-settings.php:
|
4391 |
msgid "Uninstall WPForms"
|
4392 |
msgstr ""
|
4393 |
|
4394 |
-
#: includes/admin/class-settings.php:
|
4395 |
-
msgid "Check this if you would like to remove ALL WPForms data upon plugin deletion. All forms
|
4396 |
msgstr ""
|
4397 |
|
4398 |
#: includes/admin/class-am-deactivation-survey.php:172
|
@@ -5042,6 +5095,14 @@ msgstr ""
|
|
5042 |
msgid "Enter text for the confirmation field placeholder."
|
5043 |
msgstr ""
|
5044 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5045 |
#: includes/fields/class-radio.php:22
|
5046 |
msgid "Multiple Choice"
|
5047 |
msgstr ""
|
@@ -5054,44 +5115,40 @@ msgstr ""
|
|
5054 |
msgid "Single Line Text"
|
5055 |
msgstr ""
|
5056 |
|
5057 |
-
#: includes/fields/class-text.php:
|
5058 |
msgid "Input Mask"
|
5059 |
msgstr ""
|
5060 |
|
5061 |
-
#: includes/fields/class-text.php:
|
5062 |
msgid "Enter your custom input mask."
|
5063 |
msgstr ""
|
5064 |
|
5065 |
-
#: includes/fields/class-text.php:
|
5066 |
msgid "See Examples & Docs"
|
5067 |
msgstr ""
|
5068 |
|
5069 |
-
#: includes/class-process.php:
|
5070 |
msgid "Invalid form."
|
5071 |
msgstr ""
|
5072 |
|
5073 |
-
#: includes/class-process.php:
|
5074 |
-
msgid "Incorrect reCAPTCHA, please try again."
|
5075 |
-
msgstr ""
|
5076 |
-
|
5077 |
-
#: includes/class-process.php:146
|
5078 |
-
msgid "reCAPTCHA is required."
|
5079 |
-
msgstr ""
|
5080 |
-
|
5081 |
-
#: includes/class-process.php:166
|
5082 |
msgid "Uploaded files combined size exceeds allowed maximum."
|
5083 |
msgstr ""
|
5084 |
|
5085 |
-
#: includes/class-process.php:
|
5086 |
-
#: includes/class-process.php:
|
5087 |
-
#: includes/class-process.php:
|
5088 |
msgid "Form has not been submitted, please see the errors below."
|
5089 |
msgstr ""
|
5090 |
|
5091 |
-
#: includes/class-process.php:
|
5092 |
msgid "WPForms honeypot field triggered."
|
5093 |
msgstr ""
|
5094 |
|
|
|
|
|
|
|
|
|
5095 |
#: includes/integrations.php:32
|
5096 |
msgid "Select a form to display"
|
5097 |
msgstr ""
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
+
"Project-Id-Version: WPForms Lite 1.5.3\n"
|
4 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms-lite\n"
|
5 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
6 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
7 |
"MIME-Version: 1.0\n"
|
8 |
"Content-Type: text/plain; charset=UTF-8\n"
|
9 |
"Content-Transfer-Encoding: 8bit\n"
|
10 |
+
"POT-Creation-Date: 2019-06-17T15:02:41+00:00\n"
|
11 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
12 |
"X-Generator: WP-CLI 2.1.0\n"
|
13 |
"X-Domain: wpforms-lite\n"
|
36 |
|
37 |
#. translators: %s - form name.
|
38 |
#: lite/wpforms-lite.php:55
|
39 |
+
#: includes/class-process.php:630
|
40 |
msgid "New %s Entry"
|
41 |
msgstr ""
|
42 |
|
129 |
#: includes/admin/importers/class-ninja-forms.php:142
|
130 |
#: includes/admin/importers/class-pirate-forms.php:459
|
131 |
#: includes/templates/class-contact.php:70
|
132 |
+
#: includes/class-process.php:442
|
133 |
#: includes/class-form.php:247
|
134 |
msgid "Thanks for contacting us! We will be in touch with you shortly."
|
135 |
msgstr ""
|
302 |
msgid "Upgrade to WPForms Pro Now"
|
303 |
msgstr ""
|
304 |
|
305 |
+
#: lite/wpforms-lite.php:1065
|
306 |
#: includes/admin/class-about.php:85
|
307 |
#: includes/admin/class-menu.php:113
|
308 |
msgid "WPForms Addons"
|
309 |
msgstr ""
|
310 |
|
311 |
+
#: lite/wpforms-lite.php:1066
|
312 |
msgid "Search Addons"
|
313 |
msgstr ""
|
314 |
|
315 |
+
#: lite/wpforms-lite.php:1069
|
316 |
msgid "Form Addons are a PRO feature."
|
317 |
msgstr ""
|
318 |
|
319 |
+
#: lite/wpforms-lite.php:1070
|
320 |
msgid "Please upgrade to the PRO plan to unlock them and more awesome features."
|
321 |
msgstr ""
|
322 |
|
323 |
+
#: lite/wpforms-lite.php:1073
|
324 |
+
#: lite/wpforms-lite.php:1099
|
325 |
#: includes/admin/class-tools.php:499
|
326 |
#: includes/admin/class-welcome.php:262
|
327 |
msgid "Upgrade Now"
|
328 |
msgstr ""
|
329 |
|
330 |
#. translators: %s - addon name
|
331 |
+
#: lite/wpforms-lite.php:1089
|
332 |
msgid "%s Addon"
|
333 |
msgstr ""
|
334 |
|
335 |
+
#: includes/functions.php:721
|
336 |
msgid "Alabama"
|
337 |
msgstr ""
|
338 |
|
339 |
+
#: includes/functions.php:722
|
340 |
msgid "Alaska"
|
341 |
msgstr ""
|
342 |
|
343 |
+
#: includes/functions.php:723
|
344 |
msgid "Arizona"
|
345 |
msgstr ""
|
346 |
|
347 |
+
#: includes/functions.php:724
|
348 |
msgid "Arkansas"
|
349 |
msgstr ""
|
350 |
|
351 |
+
#: includes/functions.php:725
|
352 |
msgid "California"
|
353 |
msgstr ""
|
354 |
|
355 |
+
#: includes/functions.php:726
|
356 |
msgid "Colorado"
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: includes/functions.php:727
|
360 |
msgid "Connecticut"
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: includes/functions.php:728
|
364 |
msgid "Delaware"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: includes/functions.php:729
|
368 |
msgid "District of Columbia"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: includes/functions.php:730
|
372 |
msgid "Florida"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: includes/functions.php:731
|
376 |
msgctxt "US State"
|
377 |
msgid "Georgia"
|
378 |
msgstr ""
|
379 |
|
380 |
+
#: includes/functions.php:732
|
381 |
msgid "Hawaii"
|
382 |
msgstr ""
|
383 |
|
384 |
+
#: includes/functions.php:733
|
385 |
msgid "Idaho"
|
386 |
msgstr ""
|
387 |
|
388 |
+
#: includes/functions.php:734
|
389 |
msgid "Illinois"
|
390 |
msgstr ""
|
391 |
|
392 |
+
#: includes/functions.php:735
|
393 |
msgid "Indiana"
|
394 |
msgstr ""
|
395 |
|
396 |
+
#: includes/functions.php:736
|
397 |
msgid "Iowa"
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: includes/functions.php:737
|
401 |
msgid "Kansas"
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: includes/functions.php:738
|
405 |
msgid "Kentucky"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: includes/functions.php:739
|
409 |
msgid "Louisiana"
|
410 |
msgstr ""
|
411 |
|
412 |
+
#: includes/functions.php:740
|
413 |
msgid "Maine"
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: includes/functions.php:741
|
417 |
msgid "Maryland"
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: includes/functions.php:742
|
421 |
msgid "Massachusetts"
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: includes/functions.php:743
|
425 |
msgid "Michigan"
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: includes/functions.php:744
|
429 |
msgid "Minnesota"
|
430 |
msgstr ""
|
431 |
|
432 |
+
#: includes/functions.php:745
|
433 |
msgid "Mississippi"
|
434 |
msgstr ""
|
435 |
|
436 |
+
#: includes/functions.php:746
|
437 |
msgid "Missouri"
|
438 |
msgstr ""
|
439 |
|
440 |
+
#: includes/functions.php:747
|
441 |
msgid "Montana"
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: includes/functions.php:748
|
445 |
msgid "Nebraska"
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: includes/functions.php:749
|
449 |
msgid "Nevada"
|
450 |
msgstr ""
|
451 |
|
452 |
+
#: includes/functions.php:750
|
453 |
msgid "New Hampshire"
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: includes/functions.php:751
|
457 |
msgid "New Jersey"
|
458 |
msgstr ""
|
459 |
|
460 |
+
#: includes/functions.php:752
|
461 |
msgid "New Mexico"
|
462 |
msgstr ""
|
463 |
|
464 |
+
#: includes/functions.php:753
|
465 |
msgid "New York"
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: includes/functions.php:754
|
469 |
msgid "North Carolina"
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: includes/functions.php:755
|
473 |
msgid "North Dakota"
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: includes/functions.php:756
|
477 |
msgid "Ohio"
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: includes/functions.php:757
|
481 |
msgid "Oklahoma"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: includes/functions.php:758
|
485 |
msgid "Oregon"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: includes/functions.php:759
|
489 |
msgid "Pennsylvania"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: includes/functions.php:760
|
493 |
msgid "Rhode Island"
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: includes/functions.php:761
|
497 |
msgid "South Carolina"
|
498 |
msgstr ""
|
499 |
|
500 |
+
#: includes/functions.php:762
|
501 |
msgid "South Dakota"
|
502 |
msgstr ""
|
503 |
|
504 |
+
#: includes/functions.php:763
|
505 |
msgid "Tennessee"
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: includes/functions.php:764
|
509 |
msgid "Texas"
|
510 |
msgstr ""
|
511 |
|
512 |
+
#: includes/functions.php:765
|
513 |
msgid "Utah"
|
514 |
msgstr ""
|
515 |
|
516 |
+
#: includes/functions.php:766
|
517 |
msgid "Vermont"
|
518 |
msgstr ""
|
519 |
|
520 |
+
#: includes/functions.php:767
|
521 |
msgid "Virginia"
|
522 |
msgstr ""
|
523 |
|
524 |
+
#: includes/functions.php:768
|
525 |
msgid "Washington"
|
526 |
msgstr ""
|
527 |
|
528 |
+
#: includes/functions.php:769
|
529 |
msgid "West Virginia"
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: includes/functions.php:770
|
533 |
msgid "Wisconsin"
|
534 |
msgstr ""
|
535 |
|
536 |
+
#: includes/functions.php:771
|
537 |
msgid "Wyoming"
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: includes/functions.php:787
|
541 |
msgid "Afghanistan"
|
542 |
msgstr ""
|
543 |
|
544 |
+
#: includes/functions.php:788
|
545 |
msgid "Åland Islands"
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: includes/functions.php:789
|
549 |
msgid "Albania"
|
550 |
msgstr ""
|
551 |
|
552 |
+
#: includes/functions.php:790
|
553 |
msgid "Algeria"
|
554 |
msgstr ""
|
555 |
|
556 |
+
#: includes/functions.php:791
|
557 |
msgid "American Samoa"
|
558 |
msgstr ""
|
559 |
|
560 |
+
#: includes/functions.php:792
|
561 |
msgid "Andorra"
|
562 |
msgstr ""
|
563 |
|
564 |
+
#: includes/functions.php:793
|
565 |
msgid "Angola"
|
566 |
msgstr ""
|
567 |
|
568 |
+
#: includes/functions.php:794
|
569 |
msgid "Anguilla"
|
570 |
msgstr ""
|
571 |
|
572 |
+
#: includes/functions.php:795
|
573 |
msgid "Antarctica"
|
574 |
msgstr ""
|
575 |
|
576 |
+
#: includes/functions.php:796
|
577 |
msgid "Antigua and Barbuda"
|
578 |
msgstr ""
|
579 |
|
580 |
+
#: includes/functions.php:797
|
581 |
msgid "Argentina"
|
582 |
msgstr ""
|
583 |
|
584 |
+
#: includes/functions.php:798
|
585 |
msgid "Armenia"
|
586 |
msgstr ""
|
587 |
|
588 |
+
#: includes/functions.php:799
|
589 |
msgid "Aruba"
|
590 |
msgstr ""
|
591 |
|
592 |
+
#: includes/functions.php:800
|
593 |
msgid "Australia"
|
594 |
msgstr ""
|
595 |
|
596 |
+
#: includes/functions.php:801
|
597 |
msgid "Austria"
|
598 |
msgstr ""
|
599 |
|
600 |
+
#: includes/functions.php:802
|
601 |
msgid "Azerbaijan"
|
602 |
msgstr ""
|
603 |
|
604 |
+
#: includes/functions.php:803
|
605 |
msgid "Bahamas"
|
606 |
msgstr ""
|
607 |
|
608 |
+
#: includes/functions.php:804
|
609 |
msgid "Bahrain"
|
610 |
msgstr ""
|
611 |
|
612 |
+
#: includes/functions.php:805
|
613 |
msgid "Bangladesh"
|
614 |
msgstr ""
|
615 |
|
616 |
+
#: includes/functions.php:806
|
617 |
msgid "Barbados"
|
618 |
msgstr ""
|
619 |
|
620 |
+
#: includes/functions.php:807
|
621 |
msgid "Belarus"
|
622 |
msgstr ""
|
623 |
|
624 |
+
#: includes/functions.php:808
|
625 |
msgid "Belgium"
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: includes/functions.php:809
|
629 |
msgid "Belize"
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: includes/functions.php:810
|
633 |
msgid "Benin"
|
634 |
msgstr ""
|
635 |
|
636 |
+
#: includes/functions.php:811
|
637 |
msgid "Bermuda"
|
638 |
msgstr ""
|
639 |
|
640 |
+
#: includes/functions.php:812
|
641 |
msgid "Bhutan"
|
642 |
msgstr ""
|
643 |
|
644 |
+
#: includes/functions.php:813
|
645 |
msgid "Bolivia (Plurinational State of)"
|
646 |
msgstr ""
|
647 |
|
648 |
+
#: includes/functions.php:814
|
649 |
msgid "Bosnia and Herzegovina"
|
650 |
msgstr ""
|
651 |
|
652 |
+
#: includes/functions.php:815
|
653 |
msgid "Botswana"
|
654 |
msgstr ""
|
655 |
|
656 |
+
#: includes/functions.php:816
|
657 |
msgid "Bouvet Island"
|
658 |
msgstr ""
|
659 |
|
660 |
+
#: includes/functions.php:817
|
661 |
msgid "Brazil"
|
662 |
msgstr ""
|
663 |
|
664 |
+
#: includes/functions.php:818
|
665 |
msgid "British Indian Ocean Territory"
|
666 |
msgstr ""
|
667 |
|
668 |
+
#: includes/functions.php:819
|
669 |
msgid "Brunei Darussalam"
|
670 |
msgstr ""
|
671 |
|
672 |
+
#: includes/functions.php:820
|
673 |
msgid "Bulgaria"
|
674 |
msgstr ""
|
675 |
|
676 |
+
#: includes/functions.php:821
|
677 |
msgid "Burkina Faso"
|
678 |
msgstr ""
|
679 |
|
680 |
+
#: includes/functions.php:822
|
681 |
msgid "Burundi"
|
682 |
msgstr ""
|
683 |
|
684 |
+
#: includes/functions.php:823
|
685 |
msgid "Cabo Verde"
|
686 |
msgstr ""
|
687 |
|
688 |
+
#: includes/functions.php:824
|
689 |
msgid "Cambodia"
|
690 |
msgstr ""
|
691 |
|
692 |
+
#: includes/functions.php:825
|
693 |
msgid "Cameroon"
|
694 |
msgstr ""
|
695 |
|
696 |
+
#: includes/functions.php:826
|
697 |
msgid "Canada"
|
698 |
msgstr ""
|
699 |
|
700 |
+
#: includes/functions.php:827
|
701 |
msgid "Cayman Islands"
|
702 |
msgstr ""
|
703 |
|
704 |
+
#: includes/functions.php:828
|
705 |
msgid "Central African Republic"
|
706 |
msgstr ""
|
707 |
|
708 |
+
#: includes/functions.php:829
|
709 |
msgid "Chad"
|
710 |
msgstr ""
|
711 |
|
712 |
+
#: includes/functions.php:830
|
713 |
msgid "Chile"
|
714 |
msgstr ""
|
715 |
|
716 |
+
#: includes/functions.php:831
|
717 |
msgid "China"
|
718 |
msgstr ""
|
719 |
|
720 |
+
#: includes/functions.php:832
|
721 |
msgid "Christmas Island"
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: includes/functions.php:833
|
725 |
msgid "Cocos (Keeling) Islands"
|
726 |
msgstr ""
|
727 |
|
728 |
+
#: includes/functions.php:834
|
729 |
msgid "Colombia"
|
730 |
msgstr ""
|
731 |
|
732 |
+
#: includes/functions.php:835
|
733 |
msgid "Comoros"
|
734 |
msgstr ""
|
735 |
|
736 |
+
#: includes/functions.php:836
|
737 |
msgid "Congo"
|
738 |
msgstr ""
|
739 |
|
740 |
+
#: includes/functions.php:837
|
741 |
msgid "Congo (Democratic Republic of the)"
|
742 |
msgstr ""
|
743 |
|
744 |
+
#: includes/functions.php:838
|
745 |
msgid "Cook Islands"
|
746 |
msgstr ""
|
747 |
|
748 |
+
#: includes/functions.php:839
|
749 |
msgid "Costa Rica"
|
750 |
msgstr ""
|
751 |
|
752 |
+
#: includes/functions.php:840
|
753 |
msgid "Côte d'Ivoire"
|
754 |
msgstr ""
|
755 |
|
756 |
+
#: includes/functions.php:841
|
757 |
msgid "Croatia"
|
758 |
msgstr ""
|
759 |
|
760 |
+
#: includes/functions.php:842
|
761 |
msgid "Cuba"
|
762 |
msgstr ""
|
763 |
|
764 |
+
#: includes/functions.php:843
|
765 |
msgid "Curaçao"
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: includes/functions.php:844
|
769 |
msgid "Cyprus"
|
770 |
msgstr ""
|
771 |
|
772 |
+
#: includes/functions.php:845
|
773 |
msgid "Czech Republic"
|
774 |
msgstr ""
|
775 |
|
776 |
+
#: includes/functions.php:846
|
777 |
msgid "Denmark"
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: includes/functions.php:847
|
781 |
msgid "Djibouti"
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: includes/functions.php:848
|
785 |
msgid "Dominica"
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: includes/functions.php:849
|
789 |
msgid "Dominican Republic"
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: includes/functions.php:850
|
793 |
msgid "Ecuador"
|
794 |
msgstr ""
|
795 |
|
796 |
+
#: includes/functions.php:851
|
797 |
msgid "Egypt"
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: includes/functions.php:852
|
801 |
msgid "El Salvador"
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: includes/functions.php:853
|
805 |
msgid "Equatorial Guinea"
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: includes/functions.php:854
|
809 |
msgid "Eritrea"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: includes/functions.php:855
|
813 |
msgid "Estonia"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: includes/functions.php:856
|
817 |
msgid "Ethiopia"
|
818 |
msgstr ""
|
819 |
|
820 |
+
#: includes/functions.php:857
|
821 |
msgid "Falkland Islands (Malvinas)"
|
822 |
msgstr ""
|
823 |
|
824 |
+
#: includes/functions.php:858
|
825 |
msgid "Faroe Islands"
|
826 |
msgstr ""
|
827 |
|
828 |
+
#: includes/functions.php:859
|
829 |
msgid "Fiji"
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: includes/functions.php:860
|
833 |
msgid "Finland"
|
834 |
msgstr ""
|
835 |
|
836 |
+
#: includes/functions.php:861
|
837 |
msgid "France"
|
838 |
msgstr ""
|
839 |
|
840 |
+
#: includes/functions.php:862
|
841 |
msgid "French Guiana"
|
842 |
msgstr ""
|
843 |
|
844 |
+
#: includes/functions.php:863
|
845 |
msgid "French Polynesia"
|
846 |
msgstr ""
|
847 |
|
848 |
+
#: includes/functions.php:864
|
849 |
msgid "French Southern Territories"
|
850 |
msgstr ""
|
851 |
|
852 |
+
#: includes/functions.php:865
|
853 |
msgid "Gabon"
|
854 |
msgstr ""
|
855 |
|
856 |
+
#: includes/functions.php:866
|
857 |
msgid "Gambia"
|
858 |
msgstr ""
|
859 |
|
860 |
+
#: includes/functions.php:867
|
861 |
msgctxt "Country"
|
862 |
msgid "Georgia"
|
863 |
msgstr ""
|
864 |
|
865 |
+
#: includes/functions.php:868
|
866 |
msgid "Germany"
|
867 |
msgstr ""
|
868 |
|
869 |
+
#: includes/functions.php:869
|
870 |
msgid "Ghana"
|
871 |
msgstr ""
|
872 |
|
873 |
+
#: includes/functions.php:870
|
874 |
msgid "Gibraltar"
|
875 |
msgstr ""
|
876 |
|
877 |
+
#: includes/functions.php:871
|
878 |
msgid "Greece"
|
879 |
msgstr ""
|
880 |
|
881 |
+
#: includes/functions.php:872
|
882 |
msgid "Greenland"
|
883 |
msgstr ""
|
884 |
|
885 |
+
#: includes/functions.php:873
|
886 |
msgid "Grenada"
|
887 |
msgstr ""
|
888 |
|
889 |
+
#: includes/functions.php:874
|
890 |
msgid "Guadeloupe"
|
891 |
msgstr ""
|
892 |
|
893 |
+
#: includes/functions.php:875
|
894 |
msgid "Guam"
|
895 |
msgstr ""
|
896 |
|
897 |
+
#: includes/functions.php:876
|
898 |
msgid "Guatemala"
|
899 |
msgstr ""
|
900 |
|
901 |
+
#: includes/functions.php:877
|
902 |
msgid "Guernsey"
|
903 |
msgstr ""
|
904 |
|
905 |
+
#: includes/functions.php:878
|
906 |
msgid "Guinea"
|
907 |
msgstr ""
|
908 |
|
909 |
+
#: includes/functions.php:879
|
910 |
msgid "Guinea-Bissau"
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: includes/functions.php:880
|
914 |
msgid "Guyana"
|
915 |
msgstr ""
|
916 |
|
917 |
+
#: includes/functions.php:881
|
918 |
msgid "Haiti"
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: includes/functions.php:882
|
922 |
msgid "Heard Island and McDonald Islands"
|
923 |
msgstr ""
|
924 |
|
925 |
+
#: includes/functions.php:883
|
926 |
msgid "Honduras"
|
927 |
msgstr ""
|
928 |
|
929 |
+
#: includes/functions.php:884
|
930 |
msgid "Hong Kong"
|
931 |
msgstr ""
|
932 |
|
933 |
+
#: includes/functions.php:885
|
934 |
msgid "Hungary"
|
935 |
msgstr ""
|
936 |
|
937 |
+
#: includes/functions.php:886
|
938 |
msgid "Iceland"
|
939 |
msgstr ""
|
940 |
|
941 |
+
#: includes/functions.php:887
|
942 |
msgid "India"
|
943 |
msgstr ""
|
944 |
|
945 |
+
#: includes/functions.php:888
|
946 |
msgid "Indonesia"
|
947 |
msgstr ""
|
948 |
|
949 |
+
#: includes/functions.php:889
|
950 |
msgid "Iran (Islamic Republic of)"
|
951 |
msgstr ""
|
952 |
|
953 |
+
#: includes/functions.php:890
|
954 |
msgid "Iraq"
|
955 |
msgstr ""
|
956 |
|
957 |
+
#: includes/functions.php:891
|
958 |
msgid "Ireland (Republic of)"
|
959 |
msgstr ""
|
960 |
|
961 |
+
#: includes/functions.php:892
|
962 |
msgid "Isle of Man"
|
963 |
msgstr ""
|
964 |
|
965 |
+
#: includes/functions.php:893
|
966 |
msgid "Israel"
|
967 |
msgstr ""
|
968 |
|
969 |
+
#: includes/functions.php:894
|
970 |
msgid "Italy"
|
971 |
msgstr ""
|
972 |
|
973 |
+
#: includes/functions.php:895
|
974 |
msgid "Jamaica"
|
975 |
msgstr ""
|
976 |
|
977 |
+
#: includes/functions.php:896
|
978 |
msgid "Japan"
|
979 |
msgstr ""
|
980 |
|
981 |
+
#: includes/functions.php:897
|
982 |
msgid "Jersey"
|
983 |
msgstr ""
|
984 |
|
985 |
+
#: includes/functions.php:898
|
986 |
msgid "Jordan"
|
987 |
msgstr ""
|
988 |
|
989 |
+
#: includes/functions.php:899
|
990 |
msgid "Kazakhstan"
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: includes/functions.php:900
|
994 |
msgid "Kenya"
|
995 |
msgstr ""
|
996 |
|
997 |
+
#: includes/functions.php:901
|
998 |
msgid "Kiribati"
|
999 |
msgstr ""
|
1000 |
|
1001 |
+
#: includes/functions.php:902
|
1002 |
msgid "Korea (Democratic People's Republic of)"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
+
#: includes/functions.php:903
|
1006 |
msgid "Korea (Republic of)"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
+
#: includes/functions.php:904
|
1010 |
msgid "Kuwait"
|
1011 |
msgstr ""
|
1012 |
|
1013 |
+
#: includes/functions.php:905
|
1014 |
msgid "Kyrgyzstan"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
+
#: includes/functions.php:906
|
1018 |
msgid "Lao People's Democratic Republic"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
+
#: includes/functions.php:907
|
1022 |
msgid "Latvia"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
+
#: includes/functions.php:908
|
1026 |
msgid "Lebanon"
|
1027 |
msgstr ""
|
1028 |
|
1029 |
+
#: includes/functions.php:909
|
1030 |
msgid "Lesotho"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: includes/functions.php:910
|
1034 |
msgid "Liberia"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
+
#: includes/functions.php:911
|
1038 |
msgid "Libya"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
+
#: includes/functions.php:912
|
1042 |
msgid "Liechtenstein"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
+
#: includes/functions.php:913
|
1046 |
msgid "Lithuania"
|
1047 |
msgstr ""
|
1048 |
|
1049 |
+
#: includes/functions.php:914
|
1050 |
msgid "Luxembourg"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
+
#: includes/functions.php:915
|
1054 |
msgid "Macao"
|
1055 |
msgstr ""
|
1056 |
|
1057 |
+
#: includes/functions.php:916
|
1058 |
msgid "Macedonia (Republic of)"
|
1059 |
msgstr ""
|
1060 |
|
1061 |
+
#: includes/functions.php:917
|
1062 |
msgid "Madagascar"
|
1063 |
msgstr ""
|
1064 |
|
1065 |
+
#: includes/functions.php:918
|
1066 |
msgid "Malawi"
|
1067 |
msgstr ""
|
1068 |
|
1069 |
+
#: includes/functions.php:919
|
1070 |
msgid "Malaysia"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
+
#: includes/functions.php:920
|
1074 |
msgid "Maldives"
|
1075 |
msgstr ""
|
1076 |
|
1077 |
+
#: includes/functions.php:921
|
1078 |
msgid "Mali"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
+
#: includes/functions.php:922
|
1082 |
msgid "Malta"
|
1083 |
msgstr ""
|
1084 |
|
1085 |
+
#: includes/functions.php:923
|
1086 |
msgid "Marshall Islands"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
+
#: includes/functions.php:924
|
1090 |
msgid "Martinique"
|
1091 |
msgstr ""
|
1092 |
|
1093 |
+
#: includes/functions.php:925
|
1094 |
msgid "Mauritania"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
+
#: includes/functions.php:926
|
1098 |
msgid "Mauritius"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
+
#: includes/functions.php:927
|
1102 |
msgid "Mayotte"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
+
#: includes/functions.php:928
|
1106 |
msgid "Mexico"
|
1107 |
msgstr ""
|
1108 |
|
1109 |
+
#: includes/functions.php:929
|
1110 |
msgid "Micronesia (Federated States of)"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
+
#: includes/functions.php:930
|
1114 |
msgid "Moldova (Republic of)"
|
1115 |
msgstr ""
|
1116 |
|
1117 |
+
#: includes/functions.php:931
|
1118 |
msgid "Monaco"
|
1119 |
msgstr ""
|
1120 |
|
1121 |
+
#: includes/functions.php:932
|
1122 |
msgid "Mongolia"
|
1123 |
msgstr ""
|
1124 |
|
1125 |
+
#: includes/functions.php:933
|
1126 |
msgid "Montenegro"
|
1127 |
msgstr ""
|
1128 |
|
1129 |
+
#: includes/functions.php:934
|
1130 |
msgid "Montserrat"
|
1131 |
msgstr ""
|
1132 |
|
1133 |
+
#: includes/functions.php:935
|
1134 |
msgid "Morocco"
|
1135 |
msgstr ""
|
1136 |
|
1137 |
+
#: includes/functions.php:936
|
1138 |
msgid "Mozambique"
|
1139 |
msgstr ""
|
1140 |
|
1141 |
+
#: includes/functions.php:937
|
1142 |
msgid "Myanmar"
|
1143 |
msgstr ""
|
1144 |
|
1145 |
+
#: includes/functions.php:938
|
1146 |
msgid "Namibia"
|
1147 |
msgstr ""
|
1148 |
|
1149 |
+
#: includes/functions.php:939
|
1150 |
msgid "Nauru"
|
1151 |
msgstr ""
|
1152 |
|
1153 |
+
#: includes/functions.php:940
|
1154 |
msgid "Nepal"
|
1155 |
msgstr ""
|
1156 |
|
1157 |
+
#: includes/functions.php:941
|
1158 |
msgid "Netherlands"
|
1159 |
msgstr ""
|
1160 |
|
1161 |
+
#: includes/functions.php:942
|
1162 |
msgid "New Caledonia"
|
1163 |
msgstr ""
|
1164 |
|
1165 |
+
#: includes/functions.php:943
|
1166 |
msgid "New Zealand"
|
1167 |
msgstr ""
|
1168 |
|
1169 |
+
#: includes/functions.php:944
|
1170 |
msgid "Nicaragua"
|
1171 |
msgstr ""
|
1172 |
|
1173 |
+
#: includes/functions.php:945
|
1174 |
msgid "Niger"
|
1175 |
msgstr ""
|
1176 |
|
1177 |
+
#: includes/functions.php:946
|
1178 |
msgid "Nigeria"
|
1179 |
msgstr ""
|
1180 |
|
1181 |
+
#: includes/functions.php:947
|
1182 |
msgid "Niue"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
+
#: includes/functions.php:948
|
1186 |
msgid "Norfolk Island"
|
1187 |
msgstr ""
|
1188 |
|
1189 |
+
#: includes/functions.php:949
|
1190 |
msgid "Northern Mariana Islands"
|
1191 |
msgstr ""
|
1192 |
|
1193 |
+
#: includes/functions.php:950
|
1194 |
msgid "Norway"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
+
#: includes/functions.php:951
|
1198 |
msgid "Oman"
|
1199 |
msgstr ""
|
1200 |
|
1201 |
+
#: includes/functions.php:952
|
1202 |
msgid "Pakistan"
|
1203 |
msgstr ""
|
1204 |
|
1205 |
+
#: includes/functions.php:953
|
1206 |
msgid "Palau"
|
1207 |
msgstr ""
|
1208 |
|
1209 |
+
#: includes/functions.php:954
|
1210 |
msgid "Palestine (State of)"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
+
#: includes/functions.php:955
|
1214 |
msgid "Panama"
|
1215 |
msgstr ""
|
1216 |
|
1217 |
+
#: includes/functions.php:956
|
1218 |
msgid "Papua New Guinea"
|
1219 |
msgstr ""
|
1220 |
|
1221 |
+
#: includes/functions.php:957
|
1222 |
msgid "Paraguay"
|
1223 |
msgstr ""
|
1224 |
|
1225 |
+
#: includes/functions.php:958
|
1226 |
msgid "Peru"
|
1227 |
msgstr ""
|
1228 |
|
1229 |
+
#: includes/functions.php:959
|
1230 |
msgid "Philippines"
|
1231 |
msgstr ""
|
1232 |
|
1233 |
+
#: includes/functions.php:960
|
1234 |
msgid "Pitcairn"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
+
#: includes/functions.php:961
|
1238 |
msgid "Poland"
|
1239 |
msgstr ""
|
1240 |
|
1241 |
+
#: includes/functions.php:962
|
1242 |
msgid "Portugal"
|
1243 |
msgstr ""
|
1244 |
|
1245 |
+
#: includes/functions.php:963
|
1246 |
msgid "Puerto Rico"
|
1247 |
msgstr ""
|
1248 |
|
1249 |
+
#: includes/functions.php:964
|
1250 |
msgid "Qatar"
|
1251 |
msgstr ""
|
1252 |
|
1253 |
+
#: includes/functions.php:965
|
1254 |
msgid "Réunion"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
+
#: includes/functions.php:966
|
1258 |
msgid "Romania"
|
1259 |
msgstr ""
|
1260 |
|
1261 |
+
#: includes/functions.php:967
|
1262 |
msgid "Russian Federation"
|
1263 |
msgstr ""
|
1264 |
|
1265 |
+
#: includes/functions.php:968
|
1266 |
msgid "Rwanda"
|
1267 |
msgstr ""
|
1268 |
|
1269 |
+
#: includes/functions.php:969
|
1270 |
msgid "Saint Barthélemy"
|
1271 |
msgstr ""
|
1272 |
|
1273 |
+
#: includes/functions.php:970
|
1274 |
msgid "Saint Helena, Ascension and Tristan da Cunha"
|
1275 |
msgstr ""
|
1276 |
|
1277 |
+
#: includes/functions.php:971
|
1278 |
msgid "Saint Kitts and Nevis"
|
1279 |
msgstr ""
|
1280 |
|
1281 |
+
#: includes/functions.php:972
|
1282 |
msgid "Saint Lucia"
|
1283 |
msgstr ""
|
1284 |
|
1285 |
+
#: includes/functions.php:973
|
1286 |
msgid "Saint Martin (French part)"
|
1287 |
msgstr ""
|
1288 |
|
1289 |
+
#: includes/functions.php:974
|
1290 |
msgid "Saint Pierre and Miquelon"
|
1291 |
msgstr ""
|
1292 |
|
1293 |
+
#: includes/functions.php:975
|
1294 |
msgid "Saint Vincent and the Grenadines"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
+
#: includes/functions.php:976
|
1298 |
msgid "Samoa"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
+
#: includes/functions.php:977
|
1302 |
msgid "San Marino"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
+
#: includes/functions.php:978
|
1306 |
msgid "Sao Tome and Principe"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: includes/functions.php:979
|
1310 |
msgid "Saudi Arabia"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
#: includes/functions.php:980
|
1314 |
msgid "Senegal"
|
1315 |
msgstr ""
|
1316 |
|
1317 |
+
#: includes/functions.php:981
|
1318 |
msgid "Serbia"
|
1319 |
msgstr ""
|
1320 |
|
1321 |
+
#: includes/functions.php:982
|
1322 |
msgid "Seychelles"
|
1323 |
msgstr ""
|
1324 |
|
1325 |
+
#: includes/functions.php:983
|
1326 |
msgid "Sierra Leone"
|
1327 |
msgstr ""
|
1328 |
|
1329 |
+
#: includes/functions.php:984
|
1330 |
msgid "Singapore"
|
1331 |
msgstr ""
|
1332 |
|
1333 |
+
#: includes/functions.php:985
|
1334 |
msgid "Sint Maarten (Dutch part)"
|
1335 |
msgstr ""
|
1336 |
|
1337 |
+
#: includes/functions.php:986
|
1338 |
msgid "Slovakia"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
+
#: includes/functions.php:987
|
1342 |
msgid "Slovenia"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
+
#: includes/functions.php:988
|
1346 |
msgid "Solomon Islands"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
+
#: includes/functions.php:989
|
1350 |
msgid "Somalia"
|
1351 |
msgstr ""
|
1352 |
|
1353 |
+
#: includes/functions.php:990
|
1354 |
msgid "South Africa"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
+
#: includes/functions.php:991
|
1358 |
msgid "South Georgia and the South Sandwich Islands"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
+
#: includes/functions.php:992
|
1362 |
msgid "South Sudan"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
+
#: includes/functions.php:993
|
1366 |
msgid "Spain"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
+
#: includes/functions.php:994
|
1370 |
msgid "Sri Lanka"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
+
#: includes/functions.php:995
|
1374 |
msgid "Sudan"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
+
#: includes/functions.php:996
|
1378 |
msgid "Suriname"
|
1379 |
msgstr ""
|
1380 |
|
1381 |
+
#: includes/functions.php:997
|
1382 |
msgid "Svalbard and Jan Mayen"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
+
#: includes/functions.php:998
|
1386 |
msgid "Swaziland"
|
1387 |
msgstr ""
|
1388 |
|
1389 |
+
#: includes/functions.php:999
|
1390 |
msgid "Sweden"
|
1391 |
msgstr ""
|
1392 |
|
1393 |
+
#: includes/functions.php:1000
|
1394 |
msgid "Switzerland"
|
1395 |
msgstr ""
|
1396 |
|
1397 |
+
#: includes/functions.php:1001
|
1398 |
msgid "Syrian Arab Republic"
|
1399 |
msgstr ""
|
1400 |
|
1401 |
+
#: includes/functions.php:1002
|
1402 |
msgid "Taiwan, Province of China"
|
1403 |
msgstr ""
|
1404 |
|
1405 |
+
#: includes/functions.php:1003
|
1406 |
msgid "Tajikistan"
|
1407 |
msgstr ""
|
1408 |
|
1409 |
+
#: includes/functions.php:1004
|
1410 |
msgid "Tanzania (United Republic of)"
|
1411 |
msgstr ""
|
1412 |
|
1413 |
+
#: includes/functions.php:1005
|
1414 |
msgid "Thailand"
|
1415 |
msgstr ""
|
1416 |
|
1417 |
+
#: includes/functions.php:1006
|
1418 |
msgid "Timor-Leste"
|
1419 |
msgstr ""
|
1420 |
|
1421 |
+
#: includes/functions.php:1007
|
1422 |
msgid "Togo"
|
1423 |
msgstr ""
|
1424 |
|
1425 |
+
#: includes/functions.php:1008
|
1426 |
msgid "Tokelau"
|
1427 |
msgstr ""
|
1428 |
|
1429 |
+
#: includes/functions.php:1009
|
1430 |
msgid "Tonga"
|
1431 |
msgstr ""
|
1432 |
|
1433 |
+
#: includes/functions.php:1010
|
1434 |
msgid "Trinidad and Tobago"
|
1435 |
msgstr ""
|
1436 |
|
1437 |
+
#: includes/functions.php:1011
|
1438 |
msgid "Tunisia"
|
1439 |
msgstr ""
|
1440 |
|
1441 |
+
#: includes/functions.php:1012
|
1442 |
msgid "Turkey"
|
1443 |
msgstr ""
|
1444 |
|
1445 |
+
#: includes/functions.php:1013
|
1446 |
msgid "Turkmenistan"
|
1447 |
msgstr ""
|
1448 |
|
1449 |
+
#: includes/functions.php:1014
|
1450 |
msgid "Turks and Caicos Islands"
|
1451 |
msgstr ""
|
1452 |
|
1453 |
+
#: includes/functions.php:1015
|
1454 |
msgid "Tuvalu"
|
1455 |
msgstr ""
|
1456 |
|
1457 |
+
#: includes/functions.php:1016
|
1458 |
msgid "Uganda"
|
1459 |
msgstr ""
|
1460 |
|
1461 |
+
#: includes/functions.php:1017
|
1462 |
msgid "Ukraine"
|
1463 |
msgstr ""
|
1464 |
|
1465 |
+
#: includes/functions.php:1018
|
1466 |
msgid "United Arab Emirates"
|
1467 |
msgstr ""
|
1468 |
|
1469 |
+
#: includes/functions.php:1019
|
1470 |
msgid "United Kingdom of Great Britain and Northern Ireland"
|
1471 |
msgstr ""
|
1472 |
|
1473 |
+
#: includes/functions.php:1020
|
1474 |
msgid "United States of America"
|
1475 |
msgstr ""
|
1476 |
|
1477 |
+
#: includes/functions.php:1021
|
1478 |
msgid "United States Minor Outlying Islands"
|
1479 |
msgstr ""
|
1480 |
|
1481 |
+
#: includes/functions.php:1022
|
1482 |
msgid "Uruguay"
|
1483 |
msgstr ""
|
1484 |
|
1485 |
+
#: includes/functions.php:1023
|
1486 |
msgid "Uzbekistan"
|
1487 |
msgstr ""
|
1488 |
|
1489 |
+
#: includes/functions.php:1024
|
1490 |
msgid "Vanuatu"
|
1491 |
msgstr ""
|
1492 |
|
1493 |
+
#: includes/functions.php:1025
|
1494 |
msgid "Vatican City State"
|
1495 |
msgstr ""
|
1496 |
|
1497 |
+
#: includes/functions.php:1026
|
1498 |
msgid "Venezuela (Bolivarian Republic of)"
|
1499 |
msgstr ""
|
1500 |
|
1501 |
+
#: includes/functions.php:1027
|
1502 |
msgid "Viet Nam"
|
1503 |
msgstr ""
|
1504 |
|
1505 |
+
#: includes/functions.php:1028
|
1506 |
msgid "Virgin Islands (British)"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
+
#: includes/functions.php:1029
|
1510 |
msgid "Virgin Islands (U.S.)"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
+
#: includes/functions.php:1030
|
1514 |
msgid "Wallis and Futuna"
|
1515 |
msgstr ""
|
1516 |
|
1517 |
+
#: includes/functions.php:1031
|
1518 |
msgid "Western Sahara"
|
1519 |
msgstr ""
|
1520 |
|
1521 |
+
#: includes/functions.php:1032
|
1522 |
msgid "Yemen"
|
1523 |
msgstr ""
|
1524 |
|
1525 |
+
#: includes/functions.php:1033
|
1526 |
msgid "Zambia"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
+
#: includes/functions.php:1034
|
1530 |
msgid "Zimbabwe"
|
1531 |
msgstr ""
|
1532 |
|
1533 |
+
#: includes/functions.php:1049
|
1534 |
msgid "January"
|
1535 |
msgstr ""
|
1536 |
|
1537 |
+
#: includes/functions.php:1050
|
1538 |
msgid "February"
|
1539 |
msgstr ""
|
1540 |
|
1541 |
+
#: includes/functions.php:1051
|
1542 |
msgid "March"
|
1543 |
msgstr ""
|
1544 |
|
1545 |
+
#: includes/functions.php:1052
|
1546 |
msgid "April"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
+
#: includes/functions.php:1053
|
1550 |
msgid "May"
|
1551 |
msgstr ""
|
1552 |
|
1553 |
+
#: includes/functions.php:1054
|
1554 |
msgid "June"
|
1555 |
msgstr ""
|
1556 |
|
1557 |
+
#: includes/functions.php:1055
|
1558 |
msgid "July"
|
1559 |
msgstr ""
|
1560 |
|
1561 |
+
#: includes/functions.php:1056
|
1562 |
msgid "August"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
+
#: includes/functions.php:1057
|
1566 |
msgid "September"
|
1567 |
msgstr ""
|
1568 |
|
1569 |
+
#: includes/functions.php:1058
|
1570 |
msgid "October"
|
1571 |
msgstr ""
|
1572 |
|
1573 |
+
#: includes/functions.php:1059
|
1574 |
msgid "November"
|
1575 |
msgstr ""
|
1576 |
|
1577 |
+
#: includes/functions.php:1060
|
1578 |
msgid "December"
|
1579 |
msgstr ""
|
1580 |
|
1581 |
+
#: includes/functions.php:1075
|
1582 |
msgid "Sunday"
|
1583 |
msgstr ""
|
1584 |
|
1585 |
+
#: includes/functions.php:1076
|
1586 |
msgid "Monday"
|
1587 |
msgstr ""
|
1588 |
|
1589 |
+
#: includes/functions.php:1077
|
1590 |
msgid "Tuesday"
|
1591 |
msgstr ""
|
1592 |
|
1593 |
+
#: includes/functions.php:1078
|
1594 |
msgid "Wednesday"
|
1595 |
msgstr ""
|
1596 |
|
1597 |
+
#: includes/functions.php:1079
|
1598 |
msgid "Thursday"
|
1599 |
msgstr ""
|
1600 |
|
1601 |
+
#: includes/functions.php:1080
|
1602 |
msgid "Friday"
|
1603 |
msgstr ""
|
1604 |
|
1605 |
+
#: includes/functions.php:1081
|
1606 |
msgid "Saturday"
|
1607 |
msgstr ""
|
1608 |
|
1609 |
+
#: includes/functions.php:1695
|
1610 |
+
#: includes/class-frontend.php:1291
|
1611 |
+
#: includes/admin/class-settings.php:473
|
1612 |
msgid "This field is required."
|
1613 |
msgstr ""
|
1614 |
|
1652 |
msgid "Display form description"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
+
#. translators: %s - URL to a non-amp version of a page with the form.
|
1656 |
+
#: includes/class-frontend.php:161
|
1657 |
+
msgid "<a href=\"%s\">Go to the full page</a> to view and submit the form."
|
1658 |
+
msgstr ""
|
1659 |
+
|
1660 |
+
#: includes/class-frontend.php:1292
|
1661 |
+
#: includes/admin/class-settings.php:479
|
1662 |
msgid "Please enter a valid URL."
|
1663 |
msgstr ""
|
1664 |
|
1665 |
+
#: includes/class-frontend.php:1293
|
1666 |
+
#: includes/admin/class-settings.php:485
|
1667 |
msgid "Please enter a valid email address."
|
1668 |
msgstr ""
|
1669 |
|
1670 |
+
#: includes/class-frontend.php:1294
|
1671 |
+
#: includes/admin/class-settings.php:491
|
1672 |
msgid "Did you mean {suggestion}?"
|
1673 |
msgstr ""
|
1674 |
|
1675 |
+
#: includes/class-frontend.php:1295
|
1676 |
msgid "Click to accept this suggestion."
|
1677 |
msgstr ""
|
1678 |
|
1679 |
+
#: includes/class-frontend.php:1296
|
1680 |
+
#: includes/admin/class-settings.php:497
|
1681 |
#: includes/fields/class-number.php:162
|
1682 |
msgid "Please enter a valid number."
|
1683 |
msgstr ""
|
1684 |
|
1685 |
+
#: includes/class-frontend.php:1297
|
1686 |
+
#: includes/admin/class-settings.php:503
|
1687 |
msgid "Field values do not match."
|
1688 |
msgstr ""
|
1689 |
|
1690 |
+
#: includes/class-frontend.php:1298
|
1691 |
msgid "File type is not allowed."
|
1692 |
msgstr ""
|
1693 |
|
1694 |
+
#: includes/class-frontend.php:1299
|
1695 |
msgid "File exceeds max size allowed."
|
1696 |
msgstr ""
|
1697 |
|
1698 |
+
#: includes/class-frontend.php:1300
|
1699 |
msgid "Please enter time in 12-hour AM/PM format (eg 8:45 AM)."
|
1700 |
msgstr ""
|
1701 |
|
1702 |
+
#: includes/class-frontend.php:1301
|
1703 |
msgid "Please enter time in 24-hour format (eg 22:45)."
|
1704 |
msgstr ""
|
1705 |
|
1706 |
+
#: includes/class-frontend.php:1302
|
1707 |
msgid "Payment is required."
|
1708 |
msgstr ""
|
1709 |
|
1710 |
+
#: includes/class-frontend.php:1303
|
1711 |
msgid "Please enter a valid credit card number."
|
1712 |
msgstr ""
|
1713 |
|
1714 |
+
#: includes/class-frontend.php:1304
|
1715 |
msgid "Please enter a valid phone number."
|
1716 |
msgstr ""
|
1717 |
|
1718 |
+
#: includes/class-frontend.php:1305
|
1719 |
+
#: includes/class-process.php:558
|
1720 |
msgid "The total size of the selected files {totalSize} Mb exceeds the allowed limit {maxSize} Mb."
|
1721 |
msgstr ""
|
1722 |
|
1723 |
+
#: includes/class-frontend.php:1306
|
1724 |
+
#: includes/admin/class-settings.php:509
|
1725 |
+
#: includes/fields/class-checkbox.php:592
|
1726 |
msgid "You have exceeded the number of allowed selections: {#}."
|
1727 |
msgstr ""
|
1728 |
|
|
|
|
|
|
|
|
|
|
|
1729 |
#: includes/providers/class-base.php:93
|
1730 |
msgid "Connection"
|
1731 |
msgstr ""
|
2676 |
msgid "If your license has been upgraded or is incorrect, <a href=\"#\" id=\"wpforms-setting-license-key-refresh\">click here to force a refresh</a>."
|
2677 |
msgstr ""
|
2678 |
|
2679 |
+
#: includes/admin/settings-api.php:352
|
2680 |
#: includes/fields/class-base.php:820
|
2681 |
#: includes/fields/class-base.php:951
|
2682 |
msgid "Upload Image"
|
3432 |
msgstr ""
|
3433 |
|
3434 |
#: includes/admin/admin.php:382
|
3435 |
+
msgid "<strong>Please Note:</strong> Support for PHP 5.3 to 5.5 will be discontinued in 2019. After this, if no further action is taken, WPForms functionality will be disabled."
|
3436 |
msgstr ""
|
3437 |
|
3438 |
#: includes/admin/admin.php:404
|
3702 |
|
3703 |
#: includes/admin/builder/panels/class-settings.php:42
|
3704 |
#: includes/admin/builder/panels/class-settings.php:82
|
3705 |
+
#: includes/admin/class-settings.php:167
|
3706 |
+
#: includes/admin/class-settings.php:300
|
3707 |
msgid "General"
|
3708 |
msgstr ""
|
3709 |
|
3751 |
msgid "Enable anti-spam honeypot"
|
3752 |
msgstr ""
|
3753 |
|
3754 |
+
#: includes/admin/builder/panels/class-settings.php:155
|
3755 |
+
msgid "Enable Google Checkbox v2 reCAPTCHA"
|
3756 |
+
msgstr ""
|
3757 |
+
|
3758 |
#: includes/admin/builder/panels/class-settings.php:158
|
3759 |
msgid "Enable Google Invisible v2 reCAPTCHA"
|
3760 |
msgstr ""
|
3761 |
|
3762 |
+
#: includes/admin/builder/panels/class-settings.php:161
|
3763 |
+
msgid "Enable Google v3 reCAPTCHA"
|
3764 |
msgstr ""
|
3765 |
|
3766 |
+
#: includes/admin/builder/panels/class-settings.php:177
|
3767 |
msgid "Enable dynamic fields population"
|
3768 |
msgstr ""
|
3769 |
|
3770 |
+
#: includes/admin/builder/panels/class-settings.php:179
|
3771 |
msgid "How to use Dynamic Field Population"
|
3772 |
msgstr ""
|
3773 |
|
3774 |
+
#: includes/admin/builder/panels/class-settings.php:187
|
3775 |
+
msgid "Enable AJAX form submission"
|
3776 |
+
msgstr ""
|
3777 |
+
|
3778 |
+
#: includes/admin/builder/panels/class-settings.php:189
|
3779 |
+
msgid "Enables form submission without page reload."
|
3780 |
+
msgstr ""
|
3781 |
+
|
3782 |
#: includes/admin/builder/panels/class-fields.php:22
|
3783 |
msgid "Fields"
|
3784 |
msgstr ""
|
4170 |
msgid "Save Form"
|
4171 |
msgstr ""
|
4172 |
|
4173 |
+
#: includes/admin/class-settings.php:145
|
4174 |
msgid "Settings were successfully saved."
|
4175 |
msgstr ""
|
4176 |
|
4177 |
+
#: includes/admin/class-settings.php:169
|
4178 |
+
#: includes/admin/class-settings.php:174
|
4179 |
+
#: includes/admin/class-settings.php:179
|
4180 |
+
#: includes/admin/class-settings.php:184
|
4181 |
+
#: includes/admin/class-settings.php:194
|
4182 |
msgid "Save Settings"
|
4183 |
msgstr ""
|
4184 |
|
4185 |
+
#: includes/admin/class-settings.php:172
|
4186 |
+
#: includes/admin/class-settings.php:368
|
4187 |
+
#: includes/admin/class-settings.php:483
|
4188 |
#: includes/templates/class-subscribe.php:44
|
4189 |
#: includes/templates/class-suggestion.php:41
|
4190 |
#: includes/templates/class-contact.php:42
|
4194 |
msgid "Email"
|
4195 |
msgstr ""
|
4196 |
|
4197 |
+
#: includes/admin/class-settings.php:177
|
4198 |
+
#: includes/admin/class-settings.php:408
|
4199 |
msgid "reCAPTCHA"
|
4200 |
msgstr ""
|
4201 |
|
4202 |
+
#: includes/admin/class-settings.php:182
|
4203 |
msgid "Validation"
|
4204 |
msgstr ""
|
4205 |
|
4206 |
+
#: includes/admin/class-settings.php:187
|
4207 |
+
#: includes/admin/class-settings.php:516
|
4208 |
+
#: includes/admin/class-settings.php:523
|
4209 |
msgid "Integrations"
|
4210 |
msgstr ""
|
4211 |
|
4212 |
+
#: includes/admin/class-settings.php:192
|
4213 |
+
#: includes/admin/class-settings.php:532
|
4214 |
msgid "Misc"
|
4215 |
msgstr ""
|
4216 |
|
4217 |
+
#: includes/admin/class-settings.php:233
|
4218 |
msgid "reCAPTCHA is a free anti-spam service from Google which helps to protect your website from spam and abuse while letting real people pass through with ease."
|
4219 |
msgstr ""
|
4220 |
|
4221 |
+
#: includes/admin/class-settings.php:234
|
4222 |
+
msgid "Google offers 3 versions of reCAPTCHA (all supported within WPForms):"
|
4223 |
+
msgstr ""
|
4224 |
+
|
4225 |
+
#: includes/admin/class-settings.php:239
|
4226 |
+
msgid "<strong>v2 Checkbox reCAPTCHA</strong>: Prompts users to check a box to prove they're human."
|
4227 |
+
msgstr ""
|
4228 |
+
|
4229 |
+
#: includes/admin/class-settings.php:248
|
4230 |
+
msgid "<strong>v2 Invisible reCAPTCHA</strong>: Uses advanced technology to detect real users without requiring any input."
|
4231 |
+
msgstr ""
|
4232 |
+
|
4233 |
+
#: includes/admin/class-settings.php:257
|
4234 |
+
msgid "<strong>v3 reCAPTCHA</strong>: Uses a behind-the-scenes scoring system to detect abusive traffic, and lets you decide the minimum passing score. Recommended for advanced use only (or if using Google AMP)."
|
4235 |
msgstr ""
|
4236 |
|
4237 |
+
#: includes/admin/class-settings.php:264
|
4238 |
+
msgid "Sites already using one type of reCAPTCHA will need to create new site keys before switching to a different option."
|
4239 |
msgstr ""
|
4240 |
|
4241 |
#. translators: %s - WPForms.com Setup Captcha URL.
|
4242 |
+
#: includes/admin/class-settings.php:270
|
4243 |
msgid "<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Read our walk through</a> to learn more and for step-by-step directions."
|
4244 |
msgstr ""
|
4245 |
|
4246 |
+
#: includes/admin/class-settings.php:288
|
4247 |
msgid "License"
|
4248 |
msgstr ""
|
4249 |
|
4250 |
+
#: includes/admin/class-settings.php:288
|
4251 |
msgid "Your license key provides access to updates and addons."
|
4252 |
msgstr ""
|
4253 |
|
4254 |
+
#: includes/admin/class-settings.php:295
|
4255 |
msgid "License Key"
|
4256 |
msgstr ""
|
4257 |
|
4258 |
+
#: includes/admin/class-settings.php:307
|
4259 |
msgid "Include Form Styling"
|
4260 |
msgstr ""
|
4261 |
|
4262 |
#. translators: %s - WPForms.com documentation URL.
|
4263 |
+
#: includes/admin/class-settings.php:311
|
4264 |
msgid "Determines which CSS files to load for the site (<a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">please see our tutorial for full details</a>). Unless experienced with CSS or instructed by support, \"Base and Form Theme Styling\" is recommended."
|
4265 |
msgstr ""
|
4266 |
|
4267 |
+
#: includes/admin/class-settings.php:326
|
4268 |
msgid "Base and form theme styling"
|
4269 |
msgstr ""
|
4270 |
|
4271 |
+
#: includes/admin/class-settings.php:327
|
4272 |
msgid "Base styling only"
|
4273 |
msgstr ""
|
4274 |
|
4275 |
+
#: includes/admin/class-settings.php:328
|
4276 |
msgid "No styling"
|
4277 |
msgstr ""
|
4278 |
|
4279 |
+
#: includes/admin/class-settings.php:333
|
4280 |
msgid "Load Assets Globally"
|
4281 |
msgstr ""
|
4282 |
|
4283 |
+
#: includes/admin/class-settings.php:334
|
4284 |
msgid "Check this if you would like to load WPForms assets site-wide. Only check if your site is having compatibility issues or instructed to by support."
|
4285 |
msgstr ""
|
4286 |
|
4287 |
+
#: includes/admin/class-settings.php:339
|
4288 |
msgid "GDPR"
|
4289 |
msgstr ""
|
4290 |
|
4291 |
+
#: includes/admin/class-settings.php:346
|
4292 |
msgid "GDPR Enhancements"
|
4293 |
msgstr ""
|
4294 |
|
4295 |
#. translators: %s - WPForms.com GDPR documentation URL.
|
4296 |
+
#: includes/admin/class-settings.php:350
|
4297 |
msgid "Check this to turn on GDPR related features and enhancements. <a href=\"%s\" target=\"_blank\" rel=\"noopener noreferrer\">Read our GDPR documentation</a> to learn more."
|
4298 |
msgstr ""
|
4299 |
|
4300 |
+
#: includes/admin/class-settings.php:375
|
4301 |
msgid "Template"
|
4302 |
msgstr ""
|
4303 |
|
4304 |
+
#: includes/admin/class-settings.php:376
|
4305 |
msgid "Determines how email notifications will be formatted. HTML Templates are the default."
|
4306 |
msgstr ""
|
4307 |
|
4308 |
+
#: includes/admin/class-settings.php:380
|
4309 |
msgid "HTML Template"
|
4310 |
msgstr ""
|
4311 |
|
4312 |
+
#: includes/admin/class-settings.php:381
|
4313 |
msgid "Plain text"
|
4314 |
msgstr ""
|
4315 |
|
4316 |
+
#: includes/admin/class-settings.php:386
|
4317 |
msgid "Header Image"
|
4318 |
msgstr ""
|
4319 |
|
4320 |
+
#: includes/admin/class-settings.php:387
|
4321 |
msgid "Upload or choose a logo to be displayed at the top of email notifications.<br>Recommended size is 300x100 or smaller for best support on all devices."
|
4322 |
msgstr ""
|
4323 |
|
4324 |
+
#: includes/admin/class-settings.php:392
|
4325 |
msgid "Background Color"
|
4326 |
msgstr ""
|
4327 |
|
4328 |
+
#: includes/admin/class-settings.php:393
|
4329 |
msgid "Customize the background color of the HTML email template."
|
4330 |
msgstr ""
|
4331 |
|
4332 |
+
#: includes/admin/class-settings.php:399
|
4333 |
msgid "Carbon Copy"
|
4334 |
msgstr ""
|
4335 |
|
4336 |
+
#: includes/admin/class-settings.php:400
|
4337 |
msgid "Check this if you would like to enable the ability to CC: email addresses in the form notification settings."
|
4338 |
msgstr ""
|
4339 |
|
4340 |
+
#: includes/admin/class-settings.php:415
|
4341 |
msgid "Type"
|
4342 |
msgstr ""
|
4343 |
|
4344 |
+
#: includes/admin/class-settings.php:419
|
4345 |
msgid "Checkbox reCAPTCHA v2"
|
4346 |
msgstr ""
|
4347 |
|
4348 |
+
#: includes/admin/class-settings.php:420
|
4349 |
msgid "Invisible reCAPTCHA v2"
|
4350 |
msgstr ""
|
4351 |
|
4352 |
+
#: includes/admin/class-settings.php:421
|
4353 |
+
msgid "reCAPTCHA v3"
|
4354 |
+
msgstr ""
|
4355 |
+
|
4356 |
+
#: includes/admin/class-settings.php:426
|
4357 |
msgid "Site Key"
|
4358 |
msgstr ""
|
4359 |
|
4360 |
+
#: includes/admin/class-settings.php:431
|
4361 |
msgid "Secret Key"
|
4362 |
msgstr ""
|
4363 |
|
4364 |
+
#: includes/admin/class-settings.php:436
|
4365 |
+
msgid "Fail Message"
|
4366 |
+
msgstr ""
|
4367 |
+
|
4368 |
+
#: includes/admin/class-settings.php:437
|
4369 |
+
msgid "The message displayed to users who fail the reCAPTCHA verification process."
|
4370 |
+
msgstr ""
|
4371 |
+
|
4372 |
+
#: includes/admin/class-settings.php:439
|
4373 |
+
#: includes/class-process.php:176
|
4374 |
+
msgid "Google reCAPTCHA verification failed, please try again later."
|
4375 |
+
msgstr ""
|
4376 |
+
|
4377 |
+
#: includes/admin/class-settings.php:443
|
4378 |
+
msgid "Score Threshold"
|
4379 |
+
msgstr ""
|
4380 |
+
|
4381 |
+
#: includes/admin/class-settings.php:444
|
4382 |
+
msgid "reCAPTCHA v3 returns a score (1.0 is very likely a good interaction, 0.0 is very likely a bot). If the score less than or equal to this threshold, the form submission will be blocked and the message above will be displayed."
|
4383 |
+
msgstr ""
|
4384 |
+
|
4385 |
+
#: includes/admin/class-settings.php:451
|
4386 |
+
msgid "0.4"
|
4387 |
+
msgstr ""
|
4388 |
+
|
4389 |
+
#: includes/admin/class-settings.php:455
|
4390 |
msgid "No-Conflict Mode"
|
4391 |
msgstr ""
|
4392 |
|
4393 |
+
#: includes/admin/class-settings.php:456
|
4394 |
msgid "When checked, other reCAPTCHA occurrences are forcefully removed, to prevent conflicts. Only check if your site is having compatibility issues or instructed to by support."
|
4395 |
msgstr ""
|
4396 |
|
4397 |
+
#: includes/admin/class-settings.php:464
|
4398 |
msgid "Validation Messages"
|
4399 |
msgstr ""
|
4400 |
|
4401 |
+
#: includes/admin/class-settings.php:464
|
4402 |
msgid "These messages are displayed to the users as they fill out a form in real-time."
|
4403 |
msgstr ""
|
4404 |
|
4405 |
+
#: includes/admin/class-settings.php:471
|
4406 |
#: includes/fields/class-base.php:717
|
4407 |
msgid "Required"
|
4408 |
msgstr ""
|
4409 |
|
4410 |
+
#: includes/admin/class-settings.php:477
|
4411 |
msgid "Website URL"
|
4412 |
msgstr ""
|
4413 |
|
4414 |
+
#: includes/admin/class-settings.php:489
|
4415 |
msgid "Email Suggestion"
|
4416 |
msgstr ""
|
4417 |
|
4418 |
+
#: includes/admin/class-settings.php:495
|
4419 |
msgid "Number"
|
4420 |
msgstr ""
|
4421 |
|
4422 |
+
#: includes/admin/class-settings.php:501
|
4423 |
msgid "Confirm Value"
|
4424 |
msgstr ""
|
4425 |
|
4426 |
+
#: includes/admin/class-settings.php:507
|
4427 |
msgid "Checkbox Selection Limit"
|
4428 |
msgstr ""
|
4429 |
|
4430 |
+
#: includes/admin/class-settings.php:516
|
4431 |
+
#: includes/admin/class-settings.php:523
|
4432 |
msgid "Manage integrations with popular providers such as Constant Contact, MailChimp, Zapier, and more."
|
4433 |
msgstr ""
|
4434 |
|
4435 |
+
#: includes/admin/class-settings.php:539
|
4436 |
msgid "Hide Announcements"
|
4437 |
msgstr ""
|
4438 |
|
4439 |
+
#: includes/admin/class-settings.php:540
|
4440 |
msgid "Check this if you would like to hide plugin announcements and update details."
|
4441 |
msgstr ""
|
4442 |
|
4443 |
+
#: includes/admin/class-settings.php:545
|
4444 |
msgid "Uninstall WPForms"
|
4445 |
msgstr ""
|
4446 |
|
4447 |
+
#: includes/admin/class-settings.php:546
|
4448 |
+
msgid "Check this if you would like to remove ALL WPForms data upon plugin deletion. All forms and settings will be unrecoverable."
|
4449 |
msgstr ""
|
4450 |
|
4451 |
#: includes/admin/class-am-deactivation-survey.php:172
|
5095 |
msgid "Enter text for the confirmation field placeholder."
|
5096 |
msgstr ""
|
5097 |
|
5098 |
+
#: includes/fields/class-email.php:420
|
5099 |
+
msgid "The provided email is not valid."
|
5100 |
+
msgstr ""
|
5101 |
+
|
5102 |
+
#: includes/fields/class-email.php:422
|
5103 |
+
msgid "The provided emails do not match."
|
5104 |
+
msgstr ""
|
5105 |
+
|
5106 |
#: includes/fields/class-radio.php:22
|
5107 |
msgid "Multiple Choice"
|
5108 |
msgstr ""
|
5115 |
msgid "Single Line Text"
|
5116 |
msgstr ""
|
5117 |
|
5118 |
+
#: includes/fields/class-text.php:251
|
5119 |
msgid "Input Mask"
|
5120 |
msgstr ""
|
5121 |
|
5122 |
+
#: includes/fields/class-text.php:252
|
5123 |
msgid "Enter your custom input mask."
|
5124 |
msgstr ""
|
5125 |
|
5126 |
+
#: includes/fields/class-text.php:253
|
5127 |
msgid "See Examples & Docs"
|
5128 |
msgstr ""
|
5129 |
|
5130 |
+
#: includes/class-process.php:139
|
5131 |
msgid "Invalid form."
|
5132 |
msgstr ""
|
5133 |
|
5134 |
+
#: includes/class-process.php:216
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5135 |
msgid "Uploaded files combined size exceeds allowed maximum."
|
5136 |
msgstr ""
|
5137 |
|
5138 |
+
#: includes/class-process.php:276
|
5139 |
+
#: includes/class-process.php:337
|
5140 |
+
#: includes/class-process.php:557
|
5141 |
msgid "Form has not been submitted, please see the errors below."
|
5142 |
msgstr ""
|
5143 |
|
5144 |
+
#: includes/class-process.php:288
|
5145 |
msgid "WPForms honeypot field triggered."
|
5146 |
msgstr ""
|
5147 |
|
5148 |
+
#: includes/class-process.php:494
|
5149 |
+
msgid "Redirecting…"
|
5150 |
+
msgstr ""
|
5151 |
+
|
5152 |
#: includes/integrations.php:32
|
5153 |
msgid "Select a form to display"
|
5154 |
msgstr ""
|
lite/wpforms-lite.php
CHANGED
@@ -987,6 +987,21 @@ class WPForms_Lite {
|
|
987 |
'desc' => 'Unlock more leads by capturing partial entries from your forms. Easily follow up with interested leads and turn them into loyal customers.',
|
988 |
'icon' => 'addon-icon-form-abandonment.png',
|
989 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
990 |
array(
|
991 |
'name' => 'Geolocation',
|
992 |
'desc' => 'WPForms Geolocation addon allows you to collect and store your website visitors geolocation data along with their form submission.',
|
@@ -1017,6 +1032,11 @@ class WPForms_Lite {
|
|
1017 |
'desc' => 'WPForms Post Submissions addon makes it easy to have user-submitted content in WordPress. This front-end post submission form allow your users to submit blog posts without logging into the admin area.',
|
1018 |
'icon' => 'addon-icon-post-submissions.png',
|
1019 |
),
|
|
|
|
|
|
|
|
|
|
|
1020 |
array(
|
1021 |
'name' => 'Stripe',
|
1022 |
'desc' => 'WPForms Stripe addon allows you to connect your WordPress site with Stripe to easily collect payments, donations, and online orders.',
|
987 |
'desc' => 'Unlock more leads by capturing partial entries from your forms. Easily follow up with interested leads and turn them into loyal customers.',
|
988 |
'icon' => 'addon-icon-form-abandonment.png',
|
989 |
),
|
990 |
+
array(
|
991 |
+
'name' => 'Form Locker',
|
992 |
+
'desc' => 'WPForms\' Form Locker addon allows you to lock your WordPress forms with various permissions and access control rules including passwords, members-only, specific date / time, max entry limit, and more.',
|
993 |
+
'icon' => 'addon-icons-locker.png',
|
994 |
+
),
|
995 |
+
array(
|
996 |
+
'name' => 'Form Pages',
|
997 |
+
'desc' => 'Want to improve your form conversions? WPForms Form Pages addon allows you to create completely custom "distraction-free" form landing pages to boost conversions (without writing any code).',
|
998 |
+
'icon' => 'addon-icon-form-pages.png',
|
999 |
+
),
|
1000 |
+
array(
|
1001 |
+
'name' => 'Form Templates Pack',
|
1002 |
+
'desc' => 'Choose from a huge variety of pre-built templates for every niche and industry, so you can build all kinds of web forms in minutes, not hours.',
|
1003 |
+
'icon' => 'addon-icon-form-templates-pack.png',
|
1004 |
+
),
|
1005 |
array(
|
1006 |
'name' => 'Geolocation',
|
1007 |
'desc' => 'WPForms Geolocation addon allows you to collect and store your website visitors geolocation data along with their form submission.',
|
1032 |
'desc' => 'WPForms Post Submissions addon makes it easy to have user-submitted content in WordPress. This front-end post submission form allow your users to submit blog posts without logging into the admin area.',
|
1033 |
'icon' => 'addon-icon-post-submissions.png',
|
1034 |
),
|
1035 |
+
array(
|
1036 |
+
'name' => 'Signatures',
|
1037 |
+
'desc' => 'WPForms Signatures addon makes it easy for users to sign your forms. This WordPress signatures plugin will allow your users to sign contracts and other agreements with their mouse or touch screen.',
|
1038 |
+
'icon' => 'addon-icon-signatures.png',
|
1039 |
+
),
|
1040 |
array(
|
1041 |
'name' => 'Stripe',
|
1042 |
'desc' => 'WPForms Stripe addon allows you to connect your WordPress site with Stripe to easily collect payments, donations, and online orders.',
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== Contact Form by WPForms - Drag & Drop Form Builder for WordPress ===
|
2 |
Contributors: wpforms, jaredatch, smub, slaFFik
|
3 |
-
Tags: contact form, contact form plugin, forms, form builder, custom form, contact button, contact me, custom contact form, form manager, form, forms builder, forms creator, captcha, recaptcha, Akismet, email form, web form, feedback form, payment form, survey form, donation form, email submit form, message form, mailchimp, mailchimp form, aweber, aweber form, paypal, paypal form, stripe, stripe form, getresponse, getresponse form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form
|
4 |
Requires at least: 4.8
|
5 |
-
Tested up to: 5.
|
6 |
-
Stable tag: 1.5.
|
7 |
Requires PHP: 5.3.3
|
8 |
License: GNU General Public License v2.0 or later
|
9 |
|
@@ -15,13 +15,13 @@ The best WordPress contact form plugin. Drag & Drop online form builder that hel
|
|
15 |
|
16 |
We believe that you shouldn't have to hire a developer to create a WordPress contact form. That's why we built <a href="https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend" title="WPForms">WPForms</a>, a drag & drop WordPress form builder that's EASY and POWERFUL.
|
17 |
|
18 |
-
WPForms allows you to create beautiful contact forms, subscription forms, payment forms, and other type of forms for your site in minutes, not hours!
|
19 |
|
20 |
At WPForms, user experience is our #1 priority. Our pre-built form templates and workflows make WPForms the most beginner friendly contact form plugin in the market.
|
21 |
|
22 |
WPForms is a 100% mobile responsive contact form solution, so your contact forms will always look great on all devices (mobile, tablet, laptop, and desktop).
|
23 |
|
24 |
-
WPForms' contact forms are also highly optimized for web and server performance because we understand the importance of speed when it comes to SEO and conversion. We can honestly say that WPForms is one of the fastest WordPress contact form builder plugins in the
|
25 |
|
26 |
> <strong>WPForms Pro</strong><br />
|
27 |
> This plugin is the lite version of the WPForms Pro plugin that comes with all the contact form features you will ever need including email subscription forms, multi-page contact forms, file uploads, conditional logic, payment integrations, form templates, and tons more. <a href="https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend" title="WPForms">Click here to purchase the best premium WordPress contact form plugin now!</a>
|
@@ -45,10 +45,12 @@ Building contact forms in WordPress can be time consuming. Why?
|
|
45 |
|
46 |
Because every other WordPress contact form builder plugin requires you to build your contact form from scratch. The truth is it's often not necessary to create a contact form completely from scratch unless you really want to.
|
47 |
|
48 |
-
Whether you're looking to create a simple contact form, request a quote form, donation form, payment order form, registration form, or a subscription form, we have a form template for you inside our contact form builder.
|
49 |
|
50 |
WPForms comes with <a href="https://wpforms.com/features/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">pre-built form templates</a> to help you save time. You can add, remove, or re-arrange fields as necessary.
|
51 |
|
|
|
|
|
52 |
= Mobile Ready, SEO Friendly and Optimized for Speed =
|
53 |
|
54 |
WPForms' contact forms are 100% responsive and mobile-friendly by default. We also optimized every query on the front-end and the back-end to ensure maximum speed - Yes, WPForms is one of the fastest WordPress contact form plugin.
|
@@ -57,7 +59,7 @@ You can embed your contact form on any page with optimized title and description
|
|
57 |
|
58 |
= All the Fields & Features that You Need to Succeed =
|
59 |
|
60 |
-
From
|
61 |
|
62 |
You can easily integrate your contact forms with an email marketing service or collect payments for bookings and orders. WPForms allows you to do it all.
|
63 |
|
@@ -99,6 +101,8 @@ You can easily customize your contact forms with our section dividers, HTML bloc
|
|
99 |
|
100 |
We also knew that our developer friends may want to extend contact forms further. That's why WPForms come with tons of hooks and filters to create custom functionality.
|
101 |
|
|
|
|
|
102 |
= Full WPForms Feature List =
|
103 |
|
104 |
* <a href="https://wpforms.com/features/drag-drop-online-form-builder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Online Form Builder</a> - Our powerful drag & drop contact form builder allows you to easily create WordPress contact forms and other online forms in just a few minutes without writing any code.
|
@@ -109,7 +113,7 @@ We also knew that our developer friends may want to extend contact forms further
|
|
109 |
* <a href="https://wpforms.com/features/instant-notifications/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Instant Form Notification</a> - Quickly respond to incoming inquiries with our instant contact form notification system.
|
110 |
* <a href="https://wpforms.com/features/form-confirmation/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Smart Form Confirmation</a> - Show a custom success message, or redirect users to a custom thank you page.
|
111 |
* <a href="https://wpforms.com/features/file-uploads/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">File Uploads</a> - Collect files and media through your contact forms with File Uploads.
|
112 |
-
* <a href="https://wpforms.com/features/multi-page-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Multi-Page Forms</a> - Split long forms into multiple pages to improve user experience.
|
113 |
* <a href="https://wpforms.com/features/conditional-logic/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Smart Conditional Logic</a> - Show or hide fields and contact form sections based on user behavior.
|
114 |
* <a href="https://wpforms.com/addons/signature-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Signature Forms</a> - Create signature forms or add the signature field to your contact form, application form, booking form, etc.
|
115 |
* <a href="https://wpforms.com/addons/user-registration-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">User Registration Forms</a> - Create custom user registration form and custom login form in WordPress.
|
@@ -120,7 +124,7 @@ We also knew that our developer friends may want to extend contact forms further
|
|
120 |
* <a href="https://wpforms.com/addons/form-abandonment-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Form Abandonment</a> - Unlock more leads and grow your business with partial-form submission.
|
121 |
* <a href="https://wpforms.com/addons/form-locker-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Form Locker</a> - Manage form permissions and add access control rules including password-protected forms, members only forms, limit contact form entry per person, close form after specific date / time, etc.
|
122 |
* <a href="https://wpforms.com/addons/offline-forms-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Offline Forms</a> - Let your visitors save their entered data offline and submit when their internet connection is restored.
|
123 |
-
* <a href="https://wpforms.com/addons/form-pages-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Form Landing Pages</a> - Create "distraction-free" form landing pages to boost conversions. Great Google Forms alternative.
|
124 |
* <a href="https://wpforms.com/addons/conversational-forms-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Conversational Forms</a> - Interactive form layout that makes your form feels more human and boost overall completion rate. Great for surveys and registration forms. Perfect Typeform alternative for WordPress without the high costs.
|
125 |
|
126 |
= Integrations =
|
@@ -199,7 +203,7 @@ WPForms drag & drop form builder combined with our addons is the most powerful W
|
|
199 |
* Simple Contact Forms
|
200 |
* Advanced Contact Forms
|
201 |
* Custom Contact Forms
|
202 |
-
* Multi-Page Contact Forms
|
203 |
* Dynamic Contact Forms (where fields change based on user's answers)
|
204 |
* Request a Quote Contact Form
|
205 |
* Job Application Contact Form
|
@@ -237,16 +241,133 @@ WPForms drag & drop form builder combined with our addons is the most powerful W
|
|
237 |
* Scholarship Application Forms
|
238 |
* File Download Forms
|
239 |
* Employment Verification Forms
|
|
|
|
|
|
|
240 |
* Make a Referral Contact Form
|
241 |
* Volunteer Registration Contact Form
|
242 |
* Membership Registration Forms
|
243 |
-
*
|
|
|
244 |
* Poll Forms
|
245 |
* Offline Contact Form
|
246 |
* Password-Protected Contact Form
|
247 |
* Members Only Contact Form
|
248 |
* Conversational Forms like Typeform
|
249 |
-
* Form
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
|
251 |
= I'd like access to all features. How can I get them? =
|
252 |
|
@@ -256,6 +377,21 @@ You can get access to more features, addons and support by <a href="https://wpfo
|
|
256 |
|
257 |
Yes, WPForms has full translation and localization support via the wpforms textdomain. All .mo and .po translation files should go into the languages folder in the base of the plugin. The same is true for every WPForms Addon as well.
|
258 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
259 |
== Notes ==
|
260 |
|
261 |
WPForms is absolutely, positively the most <a href="https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend" title="Best WordPress contact form plugin">beginner friendly WordPress contact form plugin</a> on the market. It is both easy and powerful.
|
@@ -272,6 +408,17 @@ Syed Balkhi
|
|
272 |
|
273 |
== Changelog ==
|
274 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
= 1.5.2.3 =
|
276 |
- Fixed: PHP error if checkbox field is empty when form is submitted.
|
277 |
|
@@ -344,4 +491,4 @@ Syed Balkhi
|
|
344 |
- Fixed: reCAPTCHA compatibility when form is inside OptinMonster popup.
|
345 |
- Fixed: Gutenberg block returning error if no forms have been created.
|
346 |
|
347 |
-
[See changelog for all versions](https://plugins.svn.wordpress.org/wpforms-lite/trunk/changelog.txt).
|
1 |
=== Contact Form by WPForms - Drag & Drop Form Builder for WordPress ===
|
2 |
Contributors: wpforms, jaredatch, smub, slaFFik
|
3 |
+
Tags: contact form, contact form plugin, forms, form builder, custom form, contact button, contact me, custom contact form, form manager, form, forms builder, forms creator, captcha, recaptcha, Akismet, email form, web form, feedback form, payment form, survey form, donation form, email submit form, message form, mailchimp, mailchimp form, aweber, aweber form, paypal, paypal form, stripe, stripe form, getresponse, getresponse form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form, feedback
|
4 |
Requires at least: 4.8
|
5 |
+
Tested up to: 5.2
|
6 |
+
Stable tag: 1.5.3
|
7 |
Requires PHP: 5.3.3
|
8 |
License: GNU General Public License v2.0 or later
|
9 |
|
15 |
|
16 |
We believe that you shouldn't have to hire a developer to create a WordPress contact form. That's why we built <a href="https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend" title="WPForms">WPForms</a>, a drag & drop WordPress form builder that's EASY and POWERFUL.
|
17 |
|
18 |
+
WPForms allows you to create beautiful contact forms, feedback form, subscription forms, payment forms, and other type of forms for your site in minutes, not hours!
|
19 |
|
20 |
At WPForms, user experience is our #1 priority. Our pre-built form templates and workflows make WPForms the most beginner friendly contact form plugin in the market.
|
21 |
|
22 |
WPForms is a 100% mobile responsive contact form solution, so your contact forms will always look great on all devices (mobile, tablet, laptop, and desktop).
|
23 |
|
24 |
+
WPForms' contact forms are also highly optimized for web and server performance because we understand the importance of speed when it comes to SEO, marketing, and conversion. We can honestly say that WPForms is one of the fastest WordPress contact form builder plugins in the world.
|
25 |
|
26 |
> <strong>WPForms Pro</strong><br />
|
27 |
> This plugin is the lite version of the WPForms Pro plugin that comes with all the contact form features you will ever need including email subscription forms, multi-page contact forms, file uploads, conditional logic, payment integrations, form templates, and tons more. <a href="https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend" title="WPForms">Click here to purchase the best premium WordPress contact form plugin now!</a>
|
45 |
|
46 |
Because every other WordPress contact form builder plugin requires you to build your contact form from scratch. The truth is it's often not necessary to create a contact form completely from scratch unless you really want to.
|
47 |
|
48 |
+
Whether you're looking to create a simple contact form, marketing form, request a quote form, donation form, payment order form, registration form, or a subscription form, we have a form template for you inside our contact form builder.
|
49 |
|
50 |
WPForms comes with <a href="https://wpforms.com/features/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">pre-built form templates</a> to help you save time. You can add, remove, or re-arrange fields as necessary.
|
51 |
|
52 |
+
See <a href="https://wpforms.com/demo/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">150+ Pre-Made WPForms Form Template Demo</a>
|
53 |
+
|
54 |
= Mobile Ready, SEO Friendly and Optimized for Speed =
|
55 |
|
56 |
WPForms' contact forms are 100% responsive and mobile-friendly by default. We also optimized every query on the front-end and the back-end to ensure maximum speed - Yes, WPForms is one of the fastest WordPress contact form plugin.
|
59 |
|
60 |
= All the Fields & Features that You Need to Succeed =
|
61 |
|
62 |
+
From star ratings to file uploads to multi-page contact forms with progress bar, we have all the fields you need.
|
63 |
|
64 |
You can easily integrate your contact forms with an email marketing service or collect payments for bookings and orders. WPForms allows you to do it all.
|
65 |
|
101 |
|
102 |
We also knew that our developer friends may want to extend contact forms further. That's why WPForms come with tons of hooks and filters to create custom functionality.
|
103 |
|
104 |
+
Since contact forms are essential for marketing, WPForms is a must have plugin for every website!
|
105 |
+
|
106 |
= Full WPForms Feature List =
|
107 |
|
108 |
* <a href="https://wpforms.com/features/drag-drop-online-form-builder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Online Form Builder</a> - Our powerful drag & drop contact form builder allows you to easily create WordPress contact forms and other online forms in just a few minutes without writing any code.
|
113 |
* <a href="https://wpforms.com/features/instant-notifications/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Instant Form Notification</a> - Quickly respond to incoming inquiries with our instant contact form notification system.
|
114 |
* <a href="https://wpforms.com/features/form-confirmation/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Smart Form Confirmation</a> - Show a custom success message, or redirect users to a custom thank you page.
|
115 |
* <a href="https://wpforms.com/features/file-uploads/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">File Uploads</a> - Collect files and media through your contact forms with File Uploads.
|
116 |
+
* <a href="https://wpforms.com/features/multi-page-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Multi-Page Forms</a> - Split long forms into multiple pages with progress bar to improve user experience.
|
117 |
* <a href="https://wpforms.com/features/conditional-logic/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Smart Conditional Logic</a> - Show or hide fields and contact form sections based on user behavior.
|
118 |
* <a href="https://wpforms.com/addons/signature-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Signature Forms</a> - Create signature forms or add the signature field to your contact form, application form, booking form, etc.
|
119 |
* <a href="https://wpforms.com/addons/user-registration-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">User Registration Forms</a> - Create custom user registration form and custom login form in WordPress.
|
124 |
* <a href="https://wpforms.com/addons/form-abandonment-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Form Abandonment</a> - Unlock more leads and grow your business with partial-form submission.
|
125 |
* <a href="https://wpforms.com/addons/form-locker-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Form Locker</a> - Manage form permissions and add access control rules including password-protected forms, members only forms, limit contact form entry per person, close form after specific date / time, etc.
|
126 |
* <a href="https://wpforms.com/addons/offline-forms-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Offline Forms</a> - Let your visitors save their entered data offline and submit when their internet connection is restored.
|
127 |
+
* <a href="https://wpforms.com/addons/form-pages-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Form Landing Pages</a> - Create "distraction-free" form landing pages to boost conversions. Great Google Forms and Wufoo alternative.
|
128 |
* <a href="https://wpforms.com/addons/conversational-forms-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Conversational Forms</a> - Interactive form layout that makes your form feels more human and boost overall completion rate. Great for surveys and registration forms. Perfect Typeform alternative for WordPress without the high costs.
|
129 |
|
130 |
= Integrations =
|
203 |
* Simple Contact Forms
|
204 |
* Advanced Contact Forms
|
205 |
* Custom Contact Forms
|
206 |
+
* Multi-Page Contact Forms with Progress Bar
|
207 |
* Dynamic Contact Forms (where fields change based on user's answers)
|
208 |
* Request a Quote Contact Form
|
209 |
* Job Application Contact Form
|
241 |
* Scholarship Application Forms
|
242 |
* File Download Forms
|
243 |
* Employment Verification Forms
|
244 |
+
* Employee Feedback Form
|
245 |
+
* Customer Feedback Form
|
246 |
+
* Generic Feedback Form
|
247 |
* Make a Referral Contact Form
|
248 |
* Volunteer Registration Contact Form
|
249 |
* Membership Registration Forms
|
250 |
+
* Address Book Contact Forms
|
251 |
+
* Custom Survey Forms like Survey Monkey
|
252 |
* Poll Forms
|
253 |
* Offline Contact Form
|
254 |
* Password-Protected Contact Form
|
255 |
* Members Only Contact Form
|
256 |
* Conversational Forms like Typeform
|
257 |
+
* Custom Form Landing Page like Google Forms and Wufoo
|
258 |
+
|
259 |
+
= Which Form Fields Does WPForms offer? =
|
260 |
+
|
261 |
+
We made WPForms form builder to be both easy and powerful.
|
262 |
+
|
263 |
+
Here are the contact form fields that comes with WPForms Form Builder (also known as Standard Fields):
|
264 |
+
|
265 |
+
* Text Field
|
266 |
+
* Paragraph Text (Textarea)
|
267 |
+
* Dropdown Field
|
268 |
+
* Multiple Choice (Radio Buttons)
|
269 |
+
* Checkboxes
|
270 |
+
* Numbers Field
|
271 |
+
* Name Field
|
272 |
+
* Email Address Field
|
273 |
+
|
274 |
+
Here is a list of our advanced contact form builder fields (Fancy Fields):
|
275 |
+
|
276 |
+
* Website / URL Field
|
277 |
+
* Address Field
|
278 |
+
* Password Field
|
279 |
+
* Smart Phone Field with international format verification
|
280 |
+
* Date / Time Field
|
281 |
+
* Hidden Field
|
282 |
+
* HTML Field - add Custom HTML inside your form
|
283 |
+
* File Upload - Great for File Upload Form
|
284 |
+
* Page Break Field - Great for Multi Page Contact Form with Progress Bar.
|
285 |
+
* Section Divider - Great for Long Contact Forms
|
286 |
+
* Signature Field - Great for Contracts and Booking Forms
|
287 |
+
* Star Rating - Great for Survey Forms and Polls
|
288 |
+
* Likert Scale - Great for Survey Forms
|
289 |
+
* Net Promoter Score (NPS Field) - Great for Survey Forms
|
290 |
+
* Questions CAPTCHA - Great for Preventing Contact Form Spam
|
291 |
+
* Math CAPTCHA - Great for Preventing Contact Form Spam
|
292 |
+
* Google ReCAPTCHA - Great for Preventing Contact Form Spam
|
293 |
+
|
294 |
+
Here is a list of our Payment Fields that will help you create a order form, donation form, booking form, and other payment forms:
|
295 |
+
|
296 |
+
* Single Item
|
297 |
+
* Multiple Items
|
298 |
+
* Checkbox Items
|
299 |
+
* Dropdown Items
|
300 |
+
* Total (Calculation Field)
|
301 |
+
* Credit Card (Stripe)
|
302 |
+
* PayPal
|
303 |
+
|
304 |
+
= Can I integrate WPForms with my CRM or Email Marketing Service? =
|
305 |
+
|
306 |
+
Yes, WPForms offers seamless integration with over 1,000+ popular marketing and CRM software.
|
307 |
+
|
308 |
+
You can easily send data from your contact form and other WordPress forms to your favorite CRM, email newsletter, and other marketing platforms.
|
309 |
+
|
310 |
+
Here is a list of our popular marketing integrations:
|
311 |
+
|
312 |
+
* MailChimp
|
313 |
+
* Constant Contact
|
314 |
+
* AWeber
|
315 |
+
* Drip
|
316 |
+
* Campaign Monitor
|
317 |
+
* GetResponse
|
318 |
+
* Zapier
|
319 |
+
|
320 |
+
Using our Zapier integration, you can easily connect WPForms with over 1000+ marketing apps including:
|
321 |
+
|
322 |
+
* Salesforce CRM
|
323 |
+
* PipeDrive CRM
|
324 |
+
* HubSpot Email Marketing
|
325 |
+
* HubSpot CRM
|
326 |
+
* Google Sheets
|
327 |
+
* Active Campaign
|
328 |
+
* Zoho CRM
|
329 |
+
* Zoho Mail
|
330 |
+
* Zoho Invoice
|
331 |
+
* Agile CRM
|
332 |
+
* Slack
|
333 |
+
* Trello
|
334 |
+
* Infusionsoft by Keap
|
335 |
+
* Microsoft Excel
|
336 |
+
* Dropbox
|
337 |
+
* HelpScout
|
338 |
+
* Zendesk
|
339 |
+
* Freshbooks
|
340 |
+
* Freshsales
|
341 |
+
* Intercom
|
342 |
+
* Click Funnels
|
343 |
+
* Microsoft Dynamics 365 CRM
|
344 |
+
* Capsule CRM
|
345 |
+
* Insightly CRM
|
346 |
+
* Printfection
|
347 |
+
* Acuity Scheduling
|
348 |
+
* Quickbooks Online
|
349 |
+
|
350 |
+
WPForms was voted Zapier's 8th fastest growing app in the world.
|
351 |
+
|
352 |
+
= Can I create a Payment Form with WPForms =
|
353 |
+
|
354 |
+
Yes, WPForms is not your average contact form plugin. You can use it to create any type of form including payment forms.
|
355 |
+
|
356 |
+
We make it easy for you to accept payments using Stripe and PayPal.
|
357 |
+
|
358 |
+
Our Stripe integration helps you easily accept credit card payments online.
|
359 |
+
|
360 |
+
Our PayPal integration allows you to accept PayPal payments online.
|
361 |
+
|
362 |
+
= Can I Import / Export Forms with WPForms?
|
363 |
+
|
364 |
+
Yes, WPForms makes it easy to import / export your contact forms and other WordPress forms created with WPForms form builder. This is incredibly useful for developers and agencies who are building websites for clients.
|
365 |
+
|
366 |
+
You can also create custom form templates that you can use on client websites. For more see our documentation.
|
367 |
+
|
368 |
+
Aside from that, WPForms also allows you to import froms from other WordPress Contact Form plugins such as Contact Form 7, Ninja Forms, and Pirate Forms.
|
369 |
+
|
370 |
+
If you're not happy with your WordPress contact form plugin, then definitely give WPForms a try!
|
371 |
|
372 |
= I'd like access to all features. How can I get them? =
|
373 |
|
377 |
|
378 |
Yes, WPForms has full translation and localization support via the wpforms textdomain. All .mo and .po translation files should go into the languages folder in the base of the plugin. The same is true for every WPForms Addon as well.
|
379 |
|
380 |
+
= Does WPForms include spam protection? =
|
381 |
+
|
382 |
+
Yes, WPForms includes a spam "honeypot" which is enabled on all forms by default.
|
383 |
+
|
384 |
+
Additionally, Google reCAPTCHA is also supported and can be setup at WPForms > Settings > reCAPTCHA.
|
385 |
+
|
386 |
+
WPForms is fully compatible with all versions of Google reCAPTCHA:
|
387 |
+
|
388 |
+
* Checkbox reCAPTCHA v2
|
389 |
+
* Invisible reCAPTCHA v2
|
390 |
+
* reCAPTCHA v3
|
391 |
+
|
392 |
+
Lastly, <a href="https://wpforms.com/addons/custom-catpcha-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Custom Captchas</a> are available which allow you to create math or question based captchas for your contact forms.
|
393 |
+
|
394 |
+
|
395 |
== Notes ==
|
396 |
|
397 |
WPForms is absolutely, positively the most <a href="https://wpforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend" title="Best WordPress contact form plugin">beginner friendly WordPress contact form plugin</a> on the market. It is both easy and powerful.
|
408 |
|
409 |
== Changelog ==
|
410 |
|
411 |
+
= 1.5.3 =
|
412 |
+
- Added: AJAX form submissions.
|
413 |
+
- Added: Full support and compatiblity with Google AMP.
|
414 |
+
- Added: Google reCAPTCHA v3.
|
415 |
+
- Changed: WPForms uninstall script for better cleanup process.
|
416 |
+
- Changed: Email field mailcheck feature to offer additional controls. New filters: `wpforms_mailcheck_enabled`, `wpforms_mailcheck_domains`, and `wpforms_mailcheck_toplevel_domains`.
|
417 |
+
- Fixed: Special characters aren't encoded when Smart Tags are processed in query string.
|
418 |
+
- Fixed: Fields with Image choices are not working with some Android and older desktop browsers.
|
419 |
+
- Fixed: Form Builder: Several alert modals are displayed in batch if multiple providers have configuration issues.
|
420 |
+
- Fixed: WP_Post object is returned from `wpforms()->form->get()` if form data is requested with a non-WPForms post ID.
|
421 |
+
|
422 |
= 1.5.2.3 =
|
423 |
- Fixed: PHP error if checkbox field is empty when form is submitted.
|
424 |
|
491 |
- Fixed: reCAPTCHA compatibility when form is inside OptinMonster popup.
|
492 |
- Fixed: Gutenberg block returning error if no forms have been created.
|
493 |
|
494 |
+
[See changelog for all versions](https://plugins.svn.wordpress.org/wpforms-lite/trunk/changelog.txt).
|
uninstall.php
CHANGED
@@ -10,6 +10,8 @@
|
|
10 |
* - wpforms_log post type posts and post_meta
|
11 |
* - wpforms post type posts and post_meta
|
12 |
* - WPForms settings/options
|
|
|
|
|
13 |
* - WPForms Uploads
|
14 |
*
|
15 |
* @package WPForms
|
@@ -17,9 +19,13 @@
|
|
17 |
* @since 1.4.5
|
18 |
* @license GPL-2.0+
|
19 |
* @copyright Copyright (c) 2018, WPForms LLC
|
|
|
|
|
20 |
*/
|
21 |
|
22 |
-
|
|
|
|
|
23 |
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
24 |
exit;
|
25 |
}
|
@@ -42,42 +48,40 @@ $wpdb->query( 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'wpforms_entry_meta' );
|
|
42 |
$wpdb->query( 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'wpforms_entry_fields' );
|
43 |
|
44 |
// Delete Preview page.
|
45 |
-
$
|
46 |
-
if ( ! empty( $
|
47 |
-
wp_delete_post( $
|
48 |
}
|
49 |
|
50 |
// Delete wpforms and wpforms_log post type posts/post_meta.
|
51 |
-
$
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
|
|
|
|
60 |
}
|
61 |
}
|
62 |
|
63 |
// Delete plugin settings.
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
delete_option( 'wpforms_zapier_apikey' );
|
72 |
-
delete_option( 'wpforms_activated' );
|
73 |
-
delete_option( 'wpforms_review' );
|
74 |
-
delete_option( 'wpforms_imported' );
|
75 |
|
76 |
// Remove any transients we've left behind.
|
77 |
-
$wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '\_transient\_wpforms\_%'" );
|
78 |
-
$wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '\_site\_transient\_wpforms\_%'" );
|
79 |
-
$wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '\_transient\_timeout\_wpforms\_%'" );
|
80 |
-
$wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE '\_site\_transient\_timeout\_wpforms\_%'" );
|
81 |
|
82 |
// Remove uploaded files.
|
83 |
$uploads_directory = wp_upload_dir();
|
10 |
* - wpforms_log post type posts and post_meta
|
11 |
* - wpforms post type posts and post_meta
|
12 |
* - WPForms settings/options
|
13 |
+
* - WPForms user meta
|
14 |
+
* - WPForms term meta
|
15 |
* - WPForms Uploads
|
16 |
*
|
17 |
* @package WPForms
|
19 |
* @since 1.4.5
|
20 |
* @license GPL-2.0+
|
21 |
* @copyright Copyright (c) 2018, WPForms LLC
|
22 |
+
*
|
23 |
+
* @var WP_Filesystem_Base $wp_filesystem
|
24 |
*/
|
25 |
|
26 |
+
// phpcs:disable WordPress.DB.DirectDatabaseQuery
|
27 |
+
|
28 |
+
// Exit if accessed directly.
|
29 |
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
30 |
exit;
|
31 |
}
|
48 |
$wpdb->query( 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'wpforms_entry_fields' );
|
49 |
|
50 |
// Delete Preview page.
|
51 |
+
$preview_page = get_option( 'wpforms_preview_page', false );
|
52 |
+
if ( ! empty( $preview_page ) ) {
|
53 |
+
wp_delete_post( $preview_page, true );
|
54 |
}
|
55 |
|
56 |
// Delete wpforms and wpforms_log post type posts/post_meta.
|
57 |
+
$wpforms_posts = get_posts(
|
58 |
+
array(
|
59 |
+
'post_type' => array( 'wpforms_log', 'wpforms' ),
|
60 |
+
'post_status' => 'any',
|
61 |
+
'numberposts' => -1,
|
62 |
+
'fields' => 'ids',
|
63 |
+
)
|
64 |
+
);
|
65 |
+
if ( $wpforms_posts ) {
|
66 |
+
foreach ( $wpforms_posts as $wpforms_post ) {
|
67 |
+
wp_delete_post( $wpforms_post, true );
|
68 |
}
|
69 |
}
|
70 |
|
71 |
// Delete plugin settings.
|
72 |
+
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE 'wpforms\_%'" );
|
73 |
+
|
74 |
+
// Delete plugin user meta.
|
75 |
+
$wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key LIKE 'wpforms\_%'" );
|
76 |
+
|
77 |
+
// Delete plugin term meta.
|
78 |
+
$wpdb->query( "DELETE FROM {$wpdb->termmeta} WHERE meta_key LIKE 'wpforms\_%'" );
|
|
|
|
|
|
|
|
|
79 |
|
80 |
// Remove any transients we've left behind.
|
81 |
+
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_wpforms\_%'" );
|
82 |
+
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_site\_transient\_wpforms\_%'" );
|
83 |
+
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_timeout\_wpforms\_%'" );
|
84 |
+
$wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '\_site\_transient\_timeout\_wpforms\_%'" );
|
85 |
|
86 |
// Remove uploaded files.
|
87 |
$uploads_directory = wp_upload_dir();
|
wpforms.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: Beginner friendly WordPress contact form plugin. Use our Drag & Drop form builder to create your WordPress forms.
|
6 |
* Author: WPForms
|
7 |
* Author URI: https://wpforms.com
|
8 |
-
* Version: 1.5.
|
9 |
* Text Domain: wpforms-lite
|
10 |
* Domain Path: languages
|
11 |
*
|
@@ -36,7 +36,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
36 |
|
37 |
// Plugin version.
|
38 |
if ( ! defined( 'WPFORMS_VERSION' ) ) {
|
39 |
-
define( 'WPFORMS_VERSION', '1.5.
|
40 |
}
|
41 |
|
42 |
// Plugin Folder Path.
|
5 |
* Description: Beginner friendly WordPress contact form plugin. Use our Drag & Drop form builder to create your WordPress forms.
|
6 |
* Author: WPForms
|
7 |
* Author URI: https://wpforms.com
|
8 |
+
* Version: 1.5.3
|
9 |
* Text Domain: wpforms-lite
|
10 |
* Domain Path: languages
|
11 |
*
|
36 |
|
37 |
// Plugin version.
|
38 |
if ( ! defined( 'WPFORMS_VERSION' ) ) {
|
39 |
+
define( 'WPFORMS_VERSION', '1.5.3' );
|
40 |
}
|
41 |
|
42 |
// Plugin Folder Path.
|