Booking Calendar - Version 9.1.2

Version Description

  • Changes in all versions:
    • New. Ability permanently delete all imported bookings before new import, instead of sending to Trash. Activate this option at the Booking > Settings > Sync > "General" page. (9.1.2.6)
    • Fix. Double scrolling issue to "Thank you" message after submitting of the booking. (9.1.2.1)
    • Fix. Showing slashes in "Thank you" message, if used quote symbols. (9.1.2.2)
    • Fix. Issue of incorrectly defining path for calendar skins at some servers. (9.1.2.10)
    • Under hood. New 'booking_options' field in booking table in Database, for saving different bookings meta data, like booking language locale, etc.. (9.1.2.12) (Business Large, MultiUser)
  • Changes in Personal / Business Small / Business Medium / Business Large / MultiUser versions:
    • Improvement. Disable using "Unavailable time before / after booking" in booking resources with specific capacity. Otherwise it generate availability issue. (9.1.2.7) (Business Large, MultiUser)
    • Improvement. Ability to disabled fully booked dates in calendar, if in booking form was used "start time" fields in the conditional section. (9.1.2.8) (Business Medium/Large, MultiUser)
    • Improvement. Block dates in calendar, if all time slots was booked for specific date(s), if activated this option "Disable booked time slots in multiple days selection mode" at the Booking > Settings General page in "Advanced" section. (9.1.2.9) (Business Small/Medium/Large, MultiUser)
    • Improvement. Making automatic selection of custom search fields in search form after initial search. (9.1.2.11)
    • Improvement. Updated print script to version 2.0.0 (9.1.2.13)
    • Improvement. Save time of log note at the beginning of message (9.1.2.14)
    • Fix. Prevent of showing '1980-01-01' in search results, after initial loading of page (if searching was not made, yet) instead of [search_check_in] and [search_check_out] shortcodes . (9.1.2.11)
    • Fix. Showing booking resource labels with very long name, more than 80 characters. Trim such name to 80 symbols and show full booking resource name in a tooltip, when mouse over. (9.1.2.3)
    • Fix. Uncaught TypeError: jQuery(...).hide is not a function, during cancellation of the bookings. (9.1.2.4)
    • Under hood. Search availability enhance functionality. Ability to use shortcode like this [bookinglooking type=4 nummonths=1] instead of [booking type=4 nummonths=1] in content of the page, for ability to show this page in search availability result. Usually this trick useful, if the Booking Calendar shortcode used in side bar or meta-boxes of as widget, and we can not use it in main page content. Parameters of this [bookinglooking ... ] shortcode have to be the same as in [booking ... ] shortcode. Please check more here https://wpbookingcalendar.com/faq/shortcode-booking-form/ (9.1.2.5) (Business Large, MultiUser)
Download this release

Release Info

Developer wpdevelop
Plugin Icon 128x128 Booking Calendar
Version 9.1.2
Comparing to
See all releases

Code changes from version 9.1.1 to 9.1.2

assets/libs/bootstrap-css/css/bootstrap.css CHANGED
@@ -190,73 +190,73 @@
190
  padding: 0;
191
  }
192
  @media print {
193
- .wpdevelop *,
194
- .wpdevelop *:before,
195
- .wpdevelop *:after {
196
  background: transparent !important;
197
  color: #000 !important;
198
  -webkit-box-shadow: none !important;
199
  box-shadow: none !important;
200
  text-shadow: none !important;
201
  }
202
- .wpdevelop a,
203
- .wpdevelop a:visited {
204
  text-decoration: underline;
205
  }
206
- .wpdevelop a[href]:after {
207
  content: " (" attr(href) ")";
208
  }
209
- .wpdevelop abbr[title]:after {
210
  content: " (" attr(title) ")";
211
  }
212
- .wpdevelop a[href^="#"]:after,
213
- .wpdevelop a[href^="javascript:"]:after {
214
  content: "";
215
  }
216
- .wpdevelop pre,
217
- .wpdevelop blockquote {
218
  border: 1px solid #999;
219
  page-break-inside: avoid;
220
  }
221
- .wpdevelop thead {
222
  display: table-header-group;
223
  }
224
- .wpdevelop tr,
225
- .wpdevelop img {
226
  page-break-inside: avoid;
227
  }
228
- .wpdevelop img {
229
  max-width: 100% !important;
230
  }
231
- .wpdevelop p,
232
- .wpdevelop h2,
233
- .wpdevelop h3 {
234
  orphans: 3;
235
  widows: 3;
236
  }
237
- .wpdevelop h2,
238
- .wpdevelop h3 {
239
  page-break-after: avoid;
240
  }
241
- .wpdevelop .navbar {
242
  display: none;
243
  }
244
- .wpdevelop .btn > .caret,
245
- .wpdevelop .dropup > .btn > .caret {
246
  border-top-color: #000 !important;
247
  }
248
- .wpdevelop .label {
249
  border: 1px solid #000;
250
  }
251
- .wpdevelop .table {
252
  border-collapse: collapse !important;
253
  }
254
- .wpdevelop .table td,
255
- .wpdevelop .table th {
256
  background-color: #fff !important;
257
  }
258
- .wpdevelop .table-bordered th,
259
- .wpdevelop .table-bordered td {
260
  border: 1px solid #ddd !important;
261
  }
262
  }
190
  padding: 0;
191
  }
192
  @media print {
193
+ .wpdevelop_print *,
194
+ .wpdevelop_print *:before,
195
+ .wpdevelop_print *:after {
196
  background: transparent !important;
197
  color: #000 !important;
198
  -webkit-box-shadow: none !important;
199
  box-shadow: none !important;
200
  text-shadow: none !important;
201
  }
202
+ .wpdevelop_print a,
203
+ .wpdevelop_print a:visited {
204
  text-decoration: underline;
205
  }
206
+ .wpdevelop_print a[href]:after {
207
  content: " (" attr(href) ")";
208
  }
209
+ .wpdevelop_print abbr[title]:after {
210
  content: " (" attr(title) ")";
211
  }
212
+ .wpdevelop_print a[href^="#"]:after,
213
+ .wpdevelop_print a[href^="javascript:"]:after {
214
  content: "";
215
  }
216
+ .wpdevelop_print pre,
217
+ .wpdevelop_print blockquote {
218
  border: 1px solid #999;
219
  page-break-inside: avoid;
220
  }
221
+ .wpdevelop_print thead {
222
  display: table-header-group;
223
  }
224
+ .wpdevelop_print tr,
225
+ .wpdevelop_print img {
226
  page-break-inside: avoid;
227
  }
228
+ .wpdevelop_print img {
229
  max-width: 100% !important;
230
  }
231
+ .wpdevelop_print p,
232
+ .wpdevelop_print h2,
233
+ .wpdevelop_print h3 {
234
  orphans: 3;
235
  widows: 3;
236
  }
237
+ .wpdevelop_print h2,
238
+ .wpdevelop_print h3 {
239
  page-break-after: avoid;
240
  }
241
+ .wpdevelop_print .navbar {
242
  display: none;
243
  }
244
+ .wpdevelop_print .btn > .caret,
245
+ .wpdevelop_print .dropup > .btn > .caret {
246
  border-top-color: #000 !important;
247
  }
248
+ .wpdevelop_print .label {
249
  border: 1px solid #000;
250
  }
251
+ .wpdevelop_print .table {
252
  border-collapse: collapse !important;
253
  }
254
+ .wpdevelop_print .table td,
255
+ .wpdevelop_print .table th {
256
  background-color: #fff !important;
257
  }
258
+ .wpdevelop_print .table-bordered th,
259
+ .wpdevelop_print .table-bordered td {
260
  border: 1px solid #ddd !important;
261
  }
262
  }
assets/libs/material-design-icons/material-design-icons.css CHANGED
@@ -1,4 +1,7 @@
1
- /* Font Icons: https://fonts.google.com/icons?selected=Material+Icons */
 
 
 
2
  /* License: Apache License Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt */
3
  @font-face {
4
  font-family: 'wpbc-material-icons';
1
+ /* Font Icons: https://fonts.google.com/icons?icon.query=event&icon.style=Filled&icon.set=Material+Icons
2
+ Download: https://github.com/google/material-design-icons/tree/master/font
3
+ Convertor: https://cloudconvert.com/otf-to-woff2
4
+ */
5
  /* License: Apache License Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt */
6
  @font-face {
7
  font-family: 'wpbc-material-icons';
assets/libs/ui/_out/dropdown_modal.js CHANGED
@@ -378,7 +378,7 @@ if (typeof jQuery === 'undefined') {
378
  }
379
 
380
  var desc = ' li:not(.disabled):visible a';
381
- var $items = $parent.find('.dropdown-menu' + desc);
382
  if (!$items.length) return;
383
  var index = $items.index(e.target);
384
  if (e.which == 38 && index > 0) index--; // up
@@ -414,6 +414,6 @@ if (typeof jQuery === 'undefined') {
414
 
415
  $(document).on('click.wpbc.dropdown.data-api', clearMenus).on('click.wpbc.dropdown.data-api', '.dropdown form', function (e) {
416
  e.stopPropagation();
417
- }).on('click.wpbc.dropdown.data-api', toggle, Dropdown.prototype.toggle).on('keydown.wpbc.dropdown.data-api', toggle, Dropdown.prototype.keydown).on('keydown.wpbc.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown);
418
  }(jQuery);
419
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9saWJzL3VpL19zcmMvZHJvcGRvd25fbW9kYWwuanMiXSwibmFtZXMiOlsialF1ZXJ5IiwiRXJyb3IiLCIkIiwidmVyc2lvbiIsImZuIiwianF1ZXJ5Iiwic3BsaXQiLCJNb2RhbCIsImVsZW1lbnQiLCJvcHRpb25zIiwiJGJvZHkiLCJkb2N1bWVudCIsImJvZHkiLCIkZWxlbWVudCIsIiRkaWFsb2ciLCJmaW5kIiwiJGJhY2tkcm9wIiwiaXNTaG93biIsIm9yaWdpbmFsQm9keVBhZCIsInNjcm9sbGJhcldpZHRoIiwiaWdub3JlQmFja2Ryb3BDbGljayIsInJlbW90ZSIsImxvYWQiLCJwcm94eSIsInRyaWdnZXIiLCJWRVJTSU9OIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsIkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04iLCJERUZBVUxUUyIsImJhY2tkcm9wIiwia2V5Ym9hcmQiLCJzaG93IiwicHJvdG90eXBlIiwidG9nZ2xlIiwiX3JlbGF0ZWRUYXJnZXQiLCJoaWRlIiwidGhhdCIsImUiLCJFdmVudCIsInJlbGF0ZWRUYXJnZXQiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJjaGVja1Njcm9sbGJhciIsInNldFNjcm9sbGJhciIsImFkZENsYXNzIiwiZXNjYXBlIiwicmVzaXplIiwib24iLCJvbmUiLCJ0YXJnZXQiLCJpcyIsInRyYW5zaXRpb24iLCJzdXBwb3J0IiwiaGFzQ2xhc3MiLCJwYXJlbnQiLCJsZW5ndGgiLCJhcHBlbmRUbyIsInNjcm9sbFRvcCIsImFkanVzdERpYWxvZyIsIm9mZnNldFdpZHRoIiwiZW5mb3JjZUZvY3VzIiwiZW11bGF0ZVRyYW5zaXRpb25FbmQiLCJwcmV2ZW50RGVmYXVsdCIsIm9mZiIsInJlbW92ZUNsYXNzIiwiaGlkZU1vZGFsIiwiaGFzIiwid2hpY2giLCJ3aW5kb3ciLCJoYW5kbGVVcGRhdGUiLCJyZXNldEFkanVzdG1lbnRzIiwicmVzZXRTY3JvbGxiYXIiLCJyZW1vdmVCYWNrZHJvcCIsInJlbW92ZSIsImNhbGxiYWNrIiwiYW5pbWF0ZSIsImRvQW5pbWF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJjdXJyZW50VGFyZ2V0IiwiZm9jdXMiLCJjYWxsYmFja1JlbW92ZSIsIm1vZGFsSXNPdmVyZmxvd2luZyIsInNjcm9sbEhlaWdodCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudEhlaWdodCIsImNzcyIsInBhZGRpbmdMZWZ0IiwiYm9keUlzT3ZlcmZsb3dpbmciLCJwYWRkaW5nUmlnaHQiLCJmdWxsV2luZG93V2lkdGgiLCJpbm5lcldpZHRoIiwiZG9jdW1lbnRFbGVtZW50UmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInJpZ2h0IiwiTWF0aCIsImFicyIsImxlZnQiLCJjbGllbnRXaWR0aCIsIm1lYXN1cmVTY3JvbGxiYXIiLCJib2R5UGFkIiwicGFyc2VJbnQiLCJzdHlsZSIsInNjcm9sbERpdiIsImNsYXNzTmFtZSIsImFwcGVuZCIsInJlbW92ZUNoaWxkIiwiUGx1Z2luIiwib3B0aW9uIiwiZWFjaCIsIiR0aGlzIiwiZGF0YSIsImV4dGVuZCIsIm9sZCIsIndwYmNfbXlfbW9kYWwiLCJDb25zdHJ1Y3RvciIsIm5vQ29uZmxpY3QiLCJocmVmIiwiYXR0ciIsIiR0YXJnZXQiLCJyZXBsYWNlIiwidGVzdCIsInNob3dFdmVudCIsImNhbGwiLCJEcm9wZG93biIsImdldFBhcmVudCIsInNlbGVjdG9yIiwiJHBhcmVudCIsImNsZWFyTWVudXMiLCJ0eXBlIiwidGFnTmFtZSIsImNvbnRhaW5zIiwiaXNBY3RpdmUiLCJjbG9zZXN0IiwiaW5zZXJ0QWZ0ZXIiLCJ0b2dnbGVDbGFzcyIsImtleWRvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJkZXNjIiwiJGl0ZW1zIiwiaW5kZXgiLCJlcSIsIndwYmNfZHJvcGRvd24iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksT0FBT0EsTUFBUCxLQUFrQixXQUF0QixFQUFtQztBQUNqQyxRQUFNLElBQUlDLEtBQUosQ0FBVSx5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LElBQWIsQ0FBa0JiLEtBQWxCO0FBQ2hDLEtBTk0sQ0FBUDtBQU9EOztBQUVELE1BQUlHLEdBQUcsR0FBRzdHLENBQUMsQ0FBQ0UsRUFBRixDQUFLd0ksYUFBZjtBQUVBMUksRUFBQUEsQ0FBQyxDQUFDRSxFQUFGLENBQUt3SSxhQUFMLEdBQWlDbkMsTUFBakM7QUFDQXZHLEVBQUFBLENBQUMsQ0FBQ0UsRUFBRixDQUFLd0ksYUFBTCxDQUFtQjNCLFdBQW5CLEdBQWlDUyxRQUFqQyxDQXJJWSxDQXdJWjtBQUNBOztBQUVBeEgsRUFBQUEsQ0FBQyxDQUFDRSxFQUFGLENBQUt3SSxhQUFMLENBQW1CMUIsVUFBbkIsR0FBZ0MsWUFBWTtBQUMxQ2hILElBQUFBLENBQUMsQ0FBQ0UsRUFBRixDQUFLd0ksYUFBTCxHQUFxQjdCLEdBQXJCO0FBQ0EsV0FBTyxJQUFQO0FBQ0QsR0FIRCxDQTNJWSxDQWlKWjtBQUNBOzs7QUFFQTdHLEVBQUFBLENBQUMsQ0FBQ1MsUUFBRCxDQUFELENBQ0dtQyxFQURILENBQ00sOEJBRE4sRUFDc0NnRixVQUR0QyxFQUVHaEYsRUFGSCxDQUVNLDhCQUZOLEVBRXNDLGdCQUZ0QyxFQUV3RCxVQUFVVCxDQUFWLEVBQWE7QUFBRUEsSUFBQUEsQ0FBQyxDQUFDa0csZUFBRjtBQUFxQixHQUY1RixFQUdHekYsRUFISCxDQUdNLDhCQUhOLEVBR3NDYixNQUh0QyxFQUc4Q3lGLFFBQVEsQ0FBQzFGLFNBQVQsQ0FBbUJDLE1BSGpFLEVBSUdhLEVBSkgsQ0FJTSxnQ0FKTixFQUl3Q2IsTUFKeEMsRUFJZ0R5RixRQUFRLENBQUMxRixTQUFULENBQW1Cc0csT0FKbkUsRUFLR3hGLEVBTEgsQ0FLTSxnQ0FMTixFQUt3QyxnQkFMeEMsRUFLMEQ0RSxRQUFRLENBQUMxRixTQUFULENBQW1Cc0csT0FMN0U7QUFPRCxDQTNKQSxDQTJKQ3RJLE1BM0pELENBQUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcclxuICogR2VuZXJhdGVkIHVzaW5nIHRoZSBCb290c3RyYXAgQ3VzdG9taXplciAoaHR0cDovL2dldGJvb3RzdHJhcC5jb20vY3VzdG9taXplLz9pZD1mNGI0YzljYjg1ZGY3NTdjYTA4YylcclxuICogQ29uZmlnIHNhdmVkIHRvIGNvbmZpZy5qc29uIGFuZCBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9mNGI0YzljYjg1ZGY3NTdjYTA4Y1xyXG4gKi9cclxuaWYgKHR5cGVvZiBqUXVlcnkgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgdGhyb3cgbmV3IEVycm9yKCdCb290c3RyYXBcXCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5JylcclxufVxyXG4rZnVuY3Rpb24gKCQpIHtcclxuICAndXNlIHN0cmljdCc7XHJcbiAgdmFyIHZlcnNpb24gPSAkLmZuLmpxdWVyeS5zcGxpdCgnICcpWzBdLnNwbGl0KCcuJylcclxuICBpZiAoKHZlcnNpb25bMF0gPCAyICYmIHZlcnNpb25bMV0gPCA5KSB8fCAodmVyc2lvblswXSA9PSAxICYmIHZlcnNpb25bMV0gPT0gOSAmJiB2ZXJzaW9uWzJdIDwgMSkpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignQm9vdHN0cmFwXFwncyBKYXZhU2NyaXB0IHJlcXVpcmVzIGpRdWVyeSB2ZXJzaW9uIDEuOS4xIG9yIGhpZ2hlcicpXHJcbiAgfVxyXG59KGpRdWVyeSk7XHJcblxyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQm9vdHN0cmFwOiBtb2RhbC5qcyB2My4zLjVcclxuICogaHR0cDovL2dldGJvb3RzdHJhcC5jb20vamF2YXNjcmlwdC8jbW9kYWxzXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy5cclxuICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSlcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuK2Z1bmN0aW9uICgkKSB7XHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG5cclxuICAvLyBNT0RBTCBDTEFTUyBERUZJTklUSU9OXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICB2YXIgTW9kYWwgPSBmdW5jdGlvbiAoZWxlbWVudCwgb3B0aW9ucykge1xyXG4gICAgdGhpcy5vcHRpb25zICAgICAgICAgICAgID0gb3B0aW9uc1xyXG4gICAgdGhpcy4kYm9keSAgICAgICAgICAgICAgID0gJChkb2N1bWVudC5ib2R5KVxyXG4gICAgdGhpcy4kZWxlbWVudCAgICAgICAgICAgID0gJChlbGVtZW50KVxyXG4gICAgdGhpcy4kZGlhbG9nICAgICAgICAgICAgID0gdGhpcy4kZWxlbWVudC5maW5kKCcubW9kYWwtZGlhbG9nJylcclxuICAgIHRoaXMuJGJhY2tkcm9wICAgICAgICAgICA9IG51bGxcclxuICAgIHRoaXMuaXNTaG93biAgICAgICAgICAgICA9IG51bGxcclxuICAgIHRoaXMub3JpZ2luYWxCb2R5UGFkICAgICA9IG51bGxcclxuICAgIHRoaXMuc2Nyb2xsYmFyV2lkdGggICAgICA9IDBcclxuICAgIHRoaXMuaWdub3JlQmFja2Ryb3BDbGljayA9IGZhbHNlXHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5yZW1vdGUpIHtcclxuICAgICAgdGhpcy4kZWxlbWVudFxyXG4gICAgICAgIC5maW5kKCcubW9kYWwtY29udGVudCcpXHJcbiAgICAgICAgLmxvYWQodGhpcy5vcHRpb25zLnJlbW90ZSwgJC5wcm94eShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoJ2xvYWRlZC53cGJjLm1vZGFsJylcclxuICAgICAgICB9LCB0aGlzKSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIE1vZGFsLlZFUlNJT04gID0gJzMuMy41J1xyXG5cclxuICBNb2RhbC5UUkFOU0lUSU9OX0RVUkFUSU9OID0gMzAwXHJcbiAgTW9kYWwuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTiA9IDE1MFxyXG5cclxuICBNb2RhbC5ERUZBVUxUUyA9IHtcclxuICAgIGJhY2tkcm9wOiB0cnVlLFxyXG4gICAga2V5Ym9hcmQ6IHRydWUsXHJcbiAgICBzaG93OiB0cnVlXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24gKF9yZWxhdGVkVGFyZ2V0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc1Nob3duID8gdGhpcy5oaWRlKCkgOiB0aGlzLnNob3coX3JlbGF0ZWRUYXJnZXQpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uIChfcmVsYXRlZFRhcmdldCkge1xyXG4gICAgdmFyIHRoYXQgPSB0aGlzXHJcbiAgICB2YXIgZSAgICA9ICQuRXZlbnQoJ3Nob3cud3BiYy5tb2RhbCcsIHsgcmVsYXRlZFRhcmdldDogX3JlbGF0ZWRUYXJnZXQgfSlcclxuXHJcbiAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSlcclxuXHJcbiAgICBpZiAodGhpcy5pc1Nob3duIHx8IGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVyblxyXG5cclxuICAgIHRoaXMuaXNTaG93biA9IHRydWVcclxuXHJcbiAgICB0aGlzLmNoZWNrU2Nyb2xsYmFyKClcclxuICAgIHRoaXMuc2V0U2Nyb2xsYmFyKClcclxuICAgIHRoaXMuJGJvZHkuYWRkQ2xhc3MoJ21vZGFsLW9wZW4nKVxyXG5cclxuICAgIHRoaXMuZXNjYXBlKClcclxuICAgIHRoaXMucmVzaXplKClcclxuXHJcbiAgICB0aGlzLiRlbGVtZW50Lm9uKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnLCAnW2RhdGEtZGlzbWlzcz1cIm1vZGFsXCJdJywgJC5wcm94eSh0aGlzLmhpZGUsIHRoaXMpKVxyXG5cclxuICAgIHRoaXMuJGRpYWxvZy5vbignbW91c2Vkb3duLmRpc21pc3Mud3BiYy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgdGhhdC4kZWxlbWVudC5vbmUoJ21vdXNldXAuZGlzbWlzcy53cGJjLm1vZGFsJywgZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBpZiAoJChlLnRhcmdldCkuaXModGhhdC4kZWxlbWVudCkpIHRoYXQuaWdub3JlQmFja2Ryb3BDbGljayA9IHRydWVcclxuICAgICAgfSlcclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5iYWNrZHJvcChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciB0cmFuc2l0aW9uID0gJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgdGhhdC4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpXHJcblxyXG4gICAgICBpZiAoIXRoYXQuJGVsZW1lbnQucGFyZW50KCkubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhhdC4kZWxlbWVudC5hcHBlbmRUbyh0aGF0LiRib2R5KSAvLyBkb24ndCBtb3ZlIG1vZGFscyBkb20gcG9zaXRpb25cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhhdC4kZWxlbWVudFxyXG4gICAgICAgIC5zaG93KClcclxuICAgICAgICAuc2Nyb2xsVG9wKDApXHJcblxyXG4gICAgICB0aGF0LmFkanVzdERpYWxvZygpXHJcblxyXG4gICAgICBpZiAodHJhbnNpdGlvbikge1xyXG4gICAgICAgIHRoYXQuJGVsZW1lbnRbMF0ub2Zmc2V0V2lkdGggLy8gZm9yY2UgcmVmbG93XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoYXQuJGVsZW1lbnQuYWRkQ2xhc3MoJ2luJylcclxuXHJcbiAgICAgIHRoYXQuZW5mb3JjZUZvY3VzKClcclxuXHJcbiAgICAgIHZhciBlID0gJC5FdmVudCgnc2hvd24ud3BiYy5tb2RhbCcsIHsgcmVsYXRlZFRhcmdldDogX3JlbGF0ZWRUYXJnZXQgfSlcclxuXHJcbiAgICAgIHRyYW5zaXRpb24gP1xyXG4gICAgICAgIHRoYXQuJGRpYWxvZyAvLyB3YWl0IGZvciBtb2RhbCB0byBzbGlkZSBpblxyXG4gICAgICAgICAgLm9uZSgnYnNUcmFuc2l0aW9uRW5kJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB0aGF0LiRlbGVtZW50LnRyaWdnZXIoJ2ZvY3VzJykudHJpZ2dlcihlKVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5UUkFOU0lUSU9OX0RVUkFUSU9OKSA6XHJcbiAgICAgICAgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdmb2N1cycpLnRyaWdnZXIoZSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuaGlkZSA9IGZ1bmN0aW9uIChlKSB7XHJcbiAgICBpZiAoZSkgZS5wcmV2ZW50RGVmYXVsdCgpXHJcblxyXG4gICAgZSA9ICQuRXZlbnQoJ2hpZGUud3BiYy5tb2RhbCcpXHJcblxyXG4gICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKGUpXHJcblxyXG4gICAgaWYgKCF0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuXHJcblxyXG4gICAgdGhpcy5pc1Nob3duID0gZmFsc2VcclxuXHJcbiAgICB0aGlzLmVzY2FwZSgpXHJcbiAgICB0aGlzLnJlc2l6ZSgpXHJcblxyXG4gICAgJChkb2N1bWVudCkub2ZmKCdmb2N1c2luLndwYmMubW9kYWwnKVxyXG5cclxuICAgIHRoaXMuJGVsZW1lbnRcclxuICAgICAgLnJlbW92ZUNsYXNzKCdpbicpXHJcbiAgICAgIC5vZmYoJ2NsaWNrLmRpc21pc3Mud3BiYy5tb2RhbCcpXHJcbiAgICAgIC5vZmYoJ21vdXNldXAuZGlzbWlzcy53cGJjLm1vZGFsJylcclxuXHJcbiAgICB0aGlzLiRkaWFsb2cub2ZmKCdtb3VzZWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJylcclxuXHJcbiAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdmYWRlJykgP1xyXG4gICAgICB0aGlzLiRlbGVtZW50XHJcbiAgICAgICAgLm9uZSgnYnNUcmFuc2l0aW9uRW5kJywgJC5wcm94eSh0aGlzLmhpZGVNb2RhbCwgdGhpcykpXHJcbiAgICAgICAgLmVtdWxhdGVUcmFuc2l0aW9uRW5kKE1vZGFsLlRSQU5TSVRJT05fRFVSQVRJT04pIDpcclxuICAgICAgdGhpcy5oaWRlTW9kYWwoKVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmVuZm9yY2VGb2N1cyA9IGZ1bmN0aW9uICgpIHtcclxuICAgICQoZG9jdW1lbnQpXHJcbiAgICAgIC5vZmYoJ2ZvY3VzaW4ud3BiYy5tb2RhbCcpIC8vIGd1YXJkIGFnYWluc3QgaW5maW5pdGUgZm9jdXMgbG9vcFxyXG4gICAgICAub24oJ2ZvY3VzaW4ud3BiYy5tb2RhbCcsICQucHJveHkoZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBpZiAodGhpcy4kZWxlbWVudFswXSAhPT0gZS50YXJnZXQgJiYgIXRoaXMuJGVsZW1lbnQuaGFzKGUudGFyZ2V0KS5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKVxyXG4gICAgICAgIH1cclxuICAgICAgfSwgdGhpcykpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuZXNjYXBlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMua2V5Ym9hcmQpIHtcclxuICAgICAgdGhpcy4kZWxlbWVudC5vbigna2V5ZG93bi5kaXNtaXNzLndwYmMubW9kYWwnLCAkLnByb3h5KGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgZS53aGljaCA9PSAyNyAmJiB0aGlzLmhpZGUoKVxyXG4gICAgICB9LCB0aGlzKSlcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93bikge1xyXG4gICAgICB0aGlzLiRlbGVtZW50Lm9mZigna2V5ZG93bi5kaXNtaXNzLndwYmMubW9kYWwnKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnJlc2l6ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIGlmICh0aGlzLmlzU2hvd24pIHtcclxuICAgICAgJCh3aW5kb3cpLm9uKCdyZXNpemUud3BiYy5tb2RhbCcsICQucHJveHkodGhpcy5oYW5kbGVVcGRhdGUsIHRoaXMpKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgJCh3aW5kb3cpLm9mZigncmVzaXplLndwYmMubW9kYWwnKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmhpZGVNb2RhbCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciB0aGF0ID0gdGhpc1xyXG4gICAgdGhpcy4kZWxlbWVudC5oaWRlKClcclxuICAgIHRoaXMuYmFja2Ryb3AoZnVuY3Rpb24gKCkge1xyXG4gICAgICB0aGF0LiRib2R5LnJlbW92ZUNsYXNzKCdtb2RhbC1vcGVuJylcclxuICAgICAgdGhhdC5yZXNldEFkanVzdG1lbnRzKClcclxuICAgICAgdGhhdC5yZXNldFNjcm9sbGJhcigpXHJcbiAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignaGlkZGVuLndwYmMubW9kYWwnKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5yZW1vdmVCYWNrZHJvcCA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHRoaXMuJGJhY2tkcm9wICYmIHRoaXMuJGJhY2tkcm9wLnJlbW92ZSgpXHJcbiAgICB0aGlzLiRiYWNrZHJvcCA9IG51bGxcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5iYWNrZHJvcCA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xyXG4gICAgdmFyIHRoYXQgPSB0aGlzXHJcbiAgICB2YXIgYW5pbWF0ZSA9IHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/ICdmYWRlJyA6ICcnXHJcblxyXG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMuYmFja2Ryb3ApIHtcclxuICAgICAgdmFyIGRvQW5pbWF0ZSA9ICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIGFuaW1hdGVcclxuXHJcbiAgICAgIHRoaXMuJGJhY2tkcm9wID0gJChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcclxuICAgICAgICAuYWRkQ2xhc3MoJ21vZGFsLWJhY2tkcm9wICcgKyBhbmltYXRlKVxyXG4gICAgICAgIC5hcHBlbmRUbyh0aGlzLiRib2R5KVxyXG5cclxuICAgICAgdGhpcy4kZWxlbWVudC5vbignY2xpY2suZGlzbWlzcy53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIGlmICh0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2spIHtcclxuICAgICAgICAgIHRoaXMuaWdub3JlQmFja2Ryb3BDbGljayA9IGZhbHNlXHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSBlLmN1cnJlbnRUYXJnZXQpIHJldHVyblxyXG4gICAgICAgIHRoaXMub3B0aW9ucy5iYWNrZHJvcCA9PSAnc3RhdGljJ1xyXG4gICAgICAgICAgPyB0aGlzLiRlbGVtZW50WzBdLmZvY3VzKClcclxuICAgICAgICAgIDogdGhpcy5oaWRlKClcclxuICAgICAgfSwgdGhpcykpXHJcblxyXG4gICAgICBpZiAoZG9BbmltYXRlKSB0aGlzLiRiYWNrZHJvcFswXS5vZmZzZXRXaWR0aCAvLyBmb3JjZSByZWZsb3dcclxuXHJcbiAgICAgIHRoaXMuJGJhY2tkcm9wLmFkZENsYXNzKCdpbicpXHJcblxyXG4gICAgICBpZiAoIWNhbGxiYWNrKSByZXR1cm5cclxuXHJcbiAgICAgIGRvQW5pbWF0ZSA/XHJcbiAgICAgICAgdGhpcy4kYmFja2Ryb3BcclxuICAgICAgICAgIC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGNhbGxiYWNrKVxyXG4gICAgICAgICAgLmVtdWxhdGVUcmFuc2l0aW9uRW5kKE1vZGFsLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04pIDpcclxuICAgICAgICBjYWxsYmFjaygpXHJcblxyXG4gICAgfSBlbHNlIGlmICghdGhpcy5pc1Nob3duICYmIHRoaXMuJGJhY2tkcm9wKSB7XHJcbiAgICAgIHRoaXMuJGJhY2tkcm9wLnJlbW92ZUNsYXNzKCdpbicpXHJcblxyXG4gICAgICB2YXIgY2FsbGJhY2tSZW1vdmUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdGhhdC5yZW1vdmVCYWNrZHJvcCgpXHJcbiAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soKVxyXG4gICAgICB9XHJcbiAgICAgICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/XHJcbiAgICAgICAgdGhpcy4kYmFja2Ryb3BcclxuICAgICAgICAgIC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGNhbGxiYWNrUmVtb3ZlKVxyXG4gICAgICAgICAgLmVtdWxhdGVUcmFuc2l0aW9uRW5kKE1vZGFsLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04pIDpcclxuICAgICAgICBjYWxsYmFja1JlbW92ZSgpXHJcblxyXG4gICAgfSBlbHNlIGlmIChjYWxsYmFjaykge1xyXG4gICAgICBjYWxsYmFjaygpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyB0aGVzZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUgdXNlZCB0byBoYW5kbGUgb3ZlcmZsb3dpbmcgbW9kYWxzXHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5oYW5kbGVVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB0aGlzLmFkanVzdERpYWxvZygpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuYWRqdXN0RGlhbG9nID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIG1vZGFsSXNPdmVyZmxvd2luZyA9IHRoaXMuJGVsZW1lbnRbMF0uc2Nyb2xsSGVpZ2h0ID4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodFxyXG5cclxuICAgIHRoaXMuJGVsZW1lbnQuY3NzKHtcclxuICAgICAgcGFkZGluZ0xlZnQ6ICAhdGhpcy5ib2R5SXNPdmVyZmxvd2luZyAmJiBtb2RhbElzT3ZlcmZsb3dpbmcgPyB0aGlzLnNjcm9sbGJhcldpZHRoIDogJycsXHJcbiAgICAgIHBhZGRpbmdSaWdodDogdGhpcy5ib2R5SXNPdmVyZmxvd2luZyAmJiAhbW9kYWxJc092ZXJmbG93aW5nID8gdGhpcy5zY3JvbGxiYXJXaWR0aCA6ICcnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnJlc2V0QWRqdXN0bWVudHMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB0aGlzLiRlbGVtZW50LmNzcyh7XHJcbiAgICAgIHBhZGRpbmdMZWZ0OiAnJyxcclxuICAgICAgcGFkZGluZ1JpZ2h0OiAnJ1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5jaGVja1Njcm9sbGJhciA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBmdWxsV2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aFxyXG4gICAgaWYgKCFmdWxsV2luZG93V2lkdGgpIHsgLy8gd29ya2Fyb3VuZCBmb3IgbWlzc2luZyB3aW5kb3cuaW5uZXJXaWR0aCBpbiBJRThcclxuICAgICAgdmFyIGRvY3VtZW50RWxlbWVudFJlY3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcclxuICAgICAgZnVsbFdpbmRvd1dpZHRoID0gZG9jdW1lbnRFbGVtZW50UmVjdC5yaWdodCAtIE1hdGguYWJzKGRvY3VtZW50RWxlbWVudFJlY3QubGVmdClcclxuICAgIH1cclxuICAgIHRoaXMuYm9keUlzT3ZlcmZsb3dpbmcgPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIDwgZnVsbFdpbmRvd1dpZHRoXHJcbiAgICB0aGlzLnNjcm9sbGJhcldpZHRoID0gdGhpcy5tZWFzdXJlU2Nyb2xsYmFyKClcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5zZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgYm9keVBhZCA9IHBhcnNlSW50KCh0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcpIHx8IDApLCAxMClcclxuICAgIHRoaXMub3JpZ2luYWxCb2R5UGFkID0gZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQgfHwgJydcclxuICAgIGlmICh0aGlzLmJvZHlJc092ZXJmbG93aW5nKSB0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcsIGJvZHlQYWQgKyB0aGlzLnNjcm9sbGJhcldpZHRoKVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnJlc2V0U2Nyb2xsYmFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdGhpcy4kYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnLCB0aGlzLm9yaWdpbmFsQm9keVBhZClcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5tZWFzdXJlU2Nyb2xsYmFyID0gZnVuY3Rpb24gKCkgeyAvLyB0aHggd2Fsc2hcclxuICAgIHZhciBzY3JvbGxEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxyXG4gICAgc2Nyb2xsRGl2LmNsYXNzTmFtZSA9ICdtb2RhbC1zY3JvbGxiYXItbWVhc3VyZSdcclxuICAgIHRoaXMuJGJvZHkuYXBwZW5kKHNjcm9sbERpdilcclxuICAgIHZhciBzY3JvbGxiYXJXaWR0aCA9IHNjcm9sbERpdi5vZmZzZXRXaWR0aCAtIHNjcm9sbERpdi5jbGllbnRXaWR0aFxyXG4gICAgdGhpcy4kYm9keVswXS5yZW1vdmVDaGlsZChzY3JvbGxEaXYpXHJcbiAgICByZXR1cm4gc2Nyb2xsYmFyV2lkdGhcclxuICB9XHJcblxyXG5cclxuICAvLyBNT0RBTCBQTFVHSU4gREVGSU5JVElPTlxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIGZ1bmN0aW9uIFBsdWdpbihvcHRpb24sIF9yZWxhdGVkVGFyZ2V0KSB7XHJcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyICR0aGlzICAgPSAkKHRoaXMpXHJcbiAgICAgIHZhciBkYXRhICAgID0gJHRoaXMuZGF0YSgnd3BiYy5tb2RhbCcpXHJcbiAgICAgIHZhciBvcHRpb25zID0gJC5leHRlbmQoe30sIE1vZGFsLkRFRkFVTFRTLCAkdGhpcy5kYXRhKCksIHR5cGVvZiBvcHRpb24gPT0gJ29iamVjdCcgJiYgb3B0aW9uKVxyXG5cclxuICAgICAgaWYgKCFkYXRhKSAkdGhpcy5kYXRhKCd3cGJjLm1vZGFsJywgKGRhdGEgPSBuZXcgTW9kYWwodGhpcywgb3B0aW9ucykpKVxyXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PSAnc3RyaW5nJykgZGF0YVtvcHRpb25dKF9yZWxhdGVkVGFyZ2V0KVxyXG4gICAgICBlbHNlIGlmIChvcHRpb25zLnNob3cpIGRhdGEuc2hvdyhfcmVsYXRlZFRhcmdldClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB2YXIgb2xkID0gJC5mbi53cGJjX215X21vZGFsXHJcblxyXG4gICQuZm4ud3BiY19teV9tb2RhbCAgICAgICAgICAgICA9IFBsdWdpblxyXG4gICQuZm4ud3BiY19teV9tb2RhbC5Db25zdHJ1Y3RvciA9IE1vZGFsXHJcblxyXG5cclxuICAvLyBNT0RBTCBOTyBDT05GTElDVFxyXG4gIC8vID09PT09PT09PT09PT09PT09XHJcblxyXG4gICQuZm4ud3BiY19teV9tb2RhbC5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgJC5mbi53cGJjX215X21vZGFsID0gb2xkXHJcbiAgICByZXR1cm4gdGhpc1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIE1PREFMIERBVEEtQVBJXHJcbiAgLy8gPT09PT09PT09PT09PT1cclxuXHJcbiAgJChkb2N1bWVudCkub24oJ2NsaWNrLndwYmMubW9kYWwuZGF0YS1hcGknLCAnW2RhdGEtdG9nZ2xlPVwid3BiY19teV9tb2RhbFwiXScsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICB2YXIgJHRoaXMgICA9ICQodGhpcylcclxuICAgIHZhciBocmVmICAgID0gJHRoaXMuYXR0cignaHJlZicpXHJcbiAgICB2YXIgJHRhcmdldCA9ICQoJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKSB8fCAoaHJlZiAmJiBocmVmLnJlcGxhY2UoLy4qKD89I1teXFxzXSskKS8sICcnKSkpIC8vIHN0cmlwIGZvciBpZTdcclxuICAgIHZhciBvcHRpb24gID0gJHRhcmdldC5kYXRhKCd3cGJjLm1vZGFsJykgPyAndG9nZ2xlJyA6ICQuZXh0ZW5kKHsgcmVtb3RlOiAhLyMvLnRlc3QoaHJlZikgJiYgaHJlZiB9LCAkdGFyZ2V0LmRhdGEoKSwgJHRoaXMuZGF0YSgpKVxyXG5cclxuICAgIGlmICgkdGhpcy5pcygnYScpKSBlLnByZXZlbnREZWZhdWx0KClcclxuXHJcbiAgICAkdGFyZ2V0Lm9uZSgnc2hvdy53cGJjLm1vZGFsJywgZnVuY3Rpb24gKHNob3dFdmVudCkge1xyXG4gICAgICBpZiAoc2hvd0V2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm4gLy8gb25seSByZWdpc3RlciBmb2N1cyByZXN0b3JlciBpZiBtb2RhbCB3aWxsIGFjdHVhbGx5IGdldCBzaG93blxyXG4gICAgICAkdGFyZ2V0Lm9uZSgnaGlkZGVuLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgJHRoaXMuaXMoJzp2aXNpYmxlJykgJiYgJHRoaXMudHJpZ2dlcignZm9jdXMnKVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICAgIFBsdWdpbi5jYWxsKCR0YXJnZXQsIG9wdGlvbiwgdGhpcylcclxuICB9KVxyXG5cclxufShqUXVlcnkpO1xyXG5cclxuXHJcbitmdW5jdGlvbiAoJCkge1xyXG4gICd1c2Ugc3RyaWN0JztcclxuXHJcbiAgLy8gRFJPUERPV04gQ0xBU1MgREVGSU5JVElPTlxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgdmFyIGJhY2tkcm9wID0gJy5kcm9wZG93bi1iYWNrZHJvcCdcclxuICB2YXIgdG9nZ2xlICAgPSAnW2RhdGEtdG9nZ2xlPVwid3BiY19kcm9wZG93blwiXSdcclxuICB2YXIgRHJvcGRvd24gPSBmdW5jdGlvbiAoZWxlbWVudCkge1xyXG4gICAgJChlbGVtZW50KS5vbignY2xpY2sud3BiYy5kcm9wZG93bicsIHRoaXMudG9nZ2xlKVxyXG4gIH1cclxuXHJcbiAgRHJvcGRvd24uVkVSU0lPTiA9ICczLjMuNSdcclxuXHJcbiAgZnVuY3Rpb24gZ2V0UGFyZW50KCR0aGlzKSB7XHJcbiAgICB2YXIgc2VsZWN0b3IgPSAkdGhpcy5hdHRyKCdkYXRhLXRhcmdldCcpXHJcblxyXG4gICAgaWYgKCFzZWxlY3Rvcikge1xyXG4gICAgICBzZWxlY3RvciA9ICR0aGlzLmF0dHIoJ2hyZWYnKVxyXG4gICAgICBzZWxlY3RvciA9IHNlbGVjdG9yICYmIC8jW0EtWmEtel0vLnRlc3Qoc2VsZWN0b3IpICYmIHNlbGVjdG9yLnJlcGxhY2UoLy4qKD89I1teXFxzXSokKS8sICcnKSAvLyBzdHJpcCBmb3IgaWU3XHJcbiAgICB9XHJcblxyXG4gICAgdmFyICRwYXJlbnQgPSBzZWxlY3RvciAmJiAkKHNlbGVjdG9yKVxyXG5cclxuICAgIHJldHVybiAkcGFyZW50ICYmICRwYXJlbnQubGVuZ3RoID8gJHBhcmVudCA6ICR0aGlzLnBhcmVudCgpXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBjbGVhck1lbnVzKGUpIHtcclxuICAgIGlmIChlICYmIGUud2hpY2ggPT09IDMpIHJldHVyblxyXG4gICAgJChiYWNrZHJvcCkucmVtb3ZlKClcclxuICAgICQodG9nZ2xlKS5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyICR0aGlzICAgICAgICAgPSAkKHRoaXMpXHJcbiAgICAgIHZhciAkcGFyZW50ICAgICAgID0gZ2V0UGFyZW50KCR0aGlzKVxyXG4gICAgICB2YXIgcmVsYXRlZFRhcmdldCA9IHsgcmVsYXRlZFRhcmdldDogdGhpcyB9XHJcblxyXG4gICAgICBpZiAoISRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKSkgcmV0dXJuXHJcblxyXG4gICAgICBpZiAoZSAmJiBlLnR5cGUgPT0gJ2NsaWNrJyAmJiAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpICYmICQuY29udGFpbnMoJHBhcmVudFswXSwgZS50YXJnZXQpKSByZXR1cm5cclxuXHJcbiAgICAgICRwYXJlbnQudHJpZ2dlcihlID0gJC5FdmVudCgnaGlkZS53cGJjLmRyb3Bkb3duJywgcmVsYXRlZFRhcmdldCkpXHJcblxyXG4gICAgICBpZiAoZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuXHJcblxyXG4gICAgICAkdGhpcy5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJylcclxuICAgICAgJHBhcmVudC5yZW1vdmVDbGFzcygnb3BlbicpLnRyaWdnZXIoJ2hpZGRlbi53cGJjLmRyb3Bkb3duJywgcmVsYXRlZFRhcmdldClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBEcm9wZG93bi5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24gKGUpIHtcclxuICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuXHJcbiAgICBpZiAoJHRoaXMuaXMoJy5kaXNhYmxlZCwgOmRpc2FibGVkJykpIHJldHVyblxyXG5cclxuICAgIHZhciAkcGFyZW50ICA9IGdldFBhcmVudCgkdGhpcylcclxuICAgIHZhciBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKVxyXG5cclxuICAgIGNsZWFyTWVudXMoKVxyXG5cclxuICAgIGlmICghaXNBY3RpdmUpIHtcclxuICAgICAgaWYgKCdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiAhJHBhcmVudC5jbG9zZXN0KCcubmF2YmFyLW5hdicpLmxlbmd0aCkge1xyXG4gICAgICAgIC8vIGlmIG1vYmlsZSB3ZSB1c2UgYSBiYWNrZHJvcCBiZWNhdXNlIGNsaWNrIGV2ZW50cyBkb24ndCBkZWxlZ2F0ZVxyXG4gICAgICAgICQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JykpXHJcbiAgICAgICAgICAuYWRkQ2xhc3MoJ2Ryb3Bkb3duLWJhY2tkcm9wJylcclxuICAgICAgICAgIC5pbnNlcnRBZnRlcigkKHRoaXMpKVxyXG4gICAgICAgICAgLm9uKCdjbGljaycsIGNsZWFyTWVudXMpXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZhciByZWxhdGVkVGFyZ2V0ID0geyByZWxhdGVkVGFyZ2V0OiB0aGlzIH1cclxuICAgICAgJHBhcmVudC50cmlnZ2VyKGUgPSAkLkV2ZW50KCdzaG93LndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KSlcclxuXHJcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm5cclxuXHJcbiAgICAgICR0aGlzXHJcbiAgICAgICAgLnRyaWdnZXIoJ2ZvY3VzJylcclxuICAgICAgICAuYXR0cignYXJpYS1leHBhbmRlZCcsICd0cnVlJylcclxuXHJcbiAgICAgICRwYXJlbnRcclxuICAgICAgICAudG9nZ2xlQ2xhc3MoJ29wZW4nKVxyXG4gICAgICAgIC50cmlnZ2VyKCdzaG93bi53cGJjLmRyb3Bkb3duJywgcmVsYXRlZFRhcmdldClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2VcclxuICB9XHJcblxyXG4gIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duID0gZnVuY3Rpb24gKGUpIHtcclxuICAgIGlmICghLygzOHw0MHwyN3wzMikvLnRlc3QoZS53aGljaCkgfHwgL2lucHV0fHRleHRhcmVhL2kudGVzdChlLnRhcmdldC50YWdOYW1lKSkgcmV0dXJuXHJcblxyXG4gICAgdmFyICR0aGlzID0gJCh0aGlzKVxyXG5cclxuICAgIGUucHJldmVudERlZmF1bHQoKVxyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxyXG5cclxuICAgIGlmICgkdGhpcy5pcygnLmRpc2FibGVkLCA6ZGlzYWJsZWQnKSkgcmV0dXJuXHJcblxyXG4gICAgdmFyICRwYXJlbnQgID0gZ2V0UGFyZW50KCR0aGlzKVxyXG4gICAgdmFyIGlzQWN0aXZlID0gJHBhcmVudC5oYXNDbGFzcygnb3BlbicpXHJcblxyXG4gICAgaWYgKCFpc0FjdGl2ZSAmJiBlLndoaWNoICE9IDI3IHx8IGlzQWN0aXZlICYmIGUud2hpY2ggPT0gMjcpIHtcclxuICAgICAgaWYgKGUud2hpY2ggPT0gMjcpICRwYXJlbnQuZmluZCh0b2dnbGUpLnRyaWdnZXIoJ2ZvY3VzJylcclxuICAgICAgcmV0dXJuICR0aGlzLnRyaWdnZXIoJ2NsaWNrJylcclxuICAgIH1cclxuXHJcbiAgICB2YXIgZGVzYyA9ICcgbGk6bm90KC5kaXNhYmxlZCk6dmlzaWJsZSBhJ1xyXG4gICAgdmFyICRpdGVtcyA9ICRwYXJlbnQuZmluZCgnLmRyb3Bkb3duLW1lbnUnICsgZGVzYylcclxuXHJcbiAgICBpZiAoISRpdGVtcy5sZW5ndGgpIHJldHVyblxyXG5cclxuICAgIHZhciBpbmRleCA9ICRpdGVtcy5pbmRleChlLnRhcmdldClcclxuXHJcbiAgICBpZiAoZS53aGljaCA9PSAzOCAmJiBpbmRleCA+IDApICAgICAgICAgICAgICAgICBpbmRleC0tICAgICAgICAgLy8gdXBcclxuICAgIGlmIChlLndoaWNoID09IDQwICYmIGluZGV4IDwgJGl0ZW1zLmxlbmd0aCAtIDEpIGluZGV4KysgICAgICAgICAvLyBkb3duXHJcbiAgICBpZiAoIX5pbmRleCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IDBcclxuXHJcbiAgICAkaXRlbXMuZXEoaW5kZXgpLnRyaWdnZXIoJ2ZvY3VzJylcclxuICB9XHJcblxyXG5cclxuICAvLyBEUk9QRE9XTiBQTFVHSU4gREVGSU5JVElPTlxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIGZ1bmN0aW9uIFBsdWdpbihvcHRpb24pIHtcclxuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpXHJcbiAgICAgIHZhciBkYXRhICA9ICR0aGlzLmRhdGEoJ3dwYmMuZHJvcGRvd24nKVxyXG5cclxuICAgICAgaWYgKCFkYXRhKSAkdGhpcy5kYXRhKCd3cGJjLmRyb3Bkb3duJywgKGRhdGEgPSBuZXcgRHJvcGRvd24odGhpcykpKVxyXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PSAnc3RyaW5nJykgZGF0YVtvcHRpb25dLmNhbGwoJHRoaXMpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdmFyIG9sZCA9ICQuZm4ud3BiY19kcm9wZG93blxyXG5cclxuICAkLmZuLndwYmNfZHJvcGRvd24gICAgICAgICAgICAgPSBQbHVnaW5cclxuICAkLmZuLndwYmNfZHJvcGRvd24uQ29uc3RydWN0b3IgPSBEcm9wZG93blxyXG5cclxuXHJcbiAgLy8gRFJPUERPV04gTk8gQ09ORkxJQ1RcclxuICAvLyA9PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICAkLmZuLndwYmNfZHJvcGRvd24ubm9Db25mbGljdCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICQuZm4ud3BiY19kcm9wZG93biA9IG9sZFxyXG4gICAgcmV0dXJuIHRoaXNcclxuICB9XHJcblxyXG5cclxuICAvLyBBUFBMWSBUTyBTVEFOREFSRCBEUk9QRE9XTiBFTEVNRU5UU1xyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gICQoZG9jdW1lbnQpXHJcbiAgICAub24oJ2NsaWNrLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCBjbGVhck1lbnVzKVxyXG4gICAgLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgJy5kcm9wZG93biBmb3JtJywgZnVuY3Rpb24gKGUpIHsgZS5zdG9wUHJvcGFnYXRpb24oKSB9KVxyXG4gICAgLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUudG9nZ2xlKVxyXG4gICAgLm9uKCdrZXlkb3duLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCB0b2dnbGUsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKVxyXG4gICAgLm9uKCdrZXlkb3duLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duLW1lbnUnLCBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93bilcclxuXHJcbn0oalF1ZXJ5KTtcclxuIl0sImZpbGUiOiJhc3NldHMvbGlicy91aS9fb3V0L2Ryb3Bkb3duX21vZGFsLmpzIn0=
378
  }
379
 
380
  var desc = ' li:not(.disabled):visible a';
381
+ var $items = $parent.find('.dropdown-menu' + desc + ',.ui_dropdown_menu' + desc);
382
  if (!$items.length) return;
383
  var index = $items.index(e.target);
384
  if (e.which == 38 && index > 0) index--; // up
414
 
415
  $(document).on('click.wpbc.dropdown.data-api', clearMenus).on('click.wpbc.dropdown.data-api', '.dropdown form', function (e) {
416
  e.stopPropagation();
417
+ }).on('click.wpbc.dropdown.data-api', toggle, Dropdown.prototype.toggle).on('keydown.wpbc.dropdown.data-api', toggle, Dropdown.prototype.keydown).on('keydown.wpbc.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown).on('keydown.wpbc.dropdown.data-api', '.ui_dropdown_menu', Dropdown.prototype.keydown);
418
  }(jQuery);
419
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0cy9saWJzL3VpL19zcmMvZHJvcGRvd25fbW9kYWwuanMiXSwibmFtZXMiOlsialF1ZXJ5IiwiRXJyb3IiLCIkIiwidmVyc2lvbiIsImZuIiwianF1ZXJ5Iiwic3BsaXQiLCJNb2RhbCIsImVsZW1lbnQiLCJvcHRpb25zIiwiJGJvZHkiLCJkb2N1bWVudCIsImJvZHkiLCIkZWxlbWVudCIsIiRkaWFsb2ciLCJmaW5kIiwiJGJhY2tkcm9wIiwiaXNTaG93biIsIm9yaWdpbmFsQm9keVBhZCIsInNjcm9sbGJhcldpZHRoIiwiaWdub3JlQmFja2Ryb3BDbGljayIsInJlbW90ZSIsImxvYWQiLCJwcm94eSIsInRyaWdnZXIiLCJWRVJTSU9OIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsIkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04iLCJERUZBVUxUUyIsImJhY2tkcm9wIiwia2V5Ym9hcmQiLCJzaG93IiwicHJvdG90eXBlIiwidG9nZ2xlIiwiX3JlbGF0ZWRUYXJnZXQiLCJoaWRlIiwidGhhdCIsImUiLCJFdmVudCIsInJlbGF0ZWRUYXJnZXQiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJjaGVja1Njcm9sbGJhciIsInNldFNjcm9sbGJhciIsImFkZENsYXNzIiwiZXNjYXBlIiwicmVzaXplIiwib24iLCJvbmUiLCJ0YXJnZXQiLCJpcyIsInRyYW5zaXRpb24iLCJzdXBwb3J0IiwiaGFzQ2xhc3MiLCJwYXJlbnQiLCJsZW5ndGgiLCJhcHBlbmRUbyIsInNjcm9sbFRvcCIsImFkanVzdERpYWxvZyIsIm9mZnNldFdpZHRoIiwiZW5mb3JjZUZvY3VzIiwiZW11bGF0ZVRyYW5zaXRpb25FbmQiLCJwcmV2ZW50RGVmYXVsdCIsIm9mZiIsInJlbW92ZUNsYXNzIiwiaGlkZU1vZGFsIiwiaGFzIiwid2hpY2giLCJ3aW5kb3ciLCJoYW5kbGVVcGRhdGUiLCJyZXNldEFkanVzdG1lbnRzIiwicmVzZXRTY3JvbGxiYXIiLCJyZW1vdmVCYWNrZHJvcCIsInJlbW92ZSIsImNhbGxiYWNrIiwiYW5pbWF0ZSIsImRvQW5pbWF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJjdXJyZW50VGFyZ2V0IiwiZm9jdXMiLCJjYWxsYmFja1JlbW92ZSIsIm1vZGFsSXNPdmVyZmxvd2luZyIsInNjcm9sbEhlaWdodCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudEhlaWdodCIsImNzcyIsInBhZGRpbmdMZWZ0IiwiYm9keUlzT3ZlcmZsb3dpbmciLCJwYWRkaW5nUmlnaHQiLCJmdWxsV2luZG93V2lkdGgiLCJpbm5lcldpZHRoIiwiZG9jdW1lbnRFbGVtZW50UmVjdCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInJpZ2h0IiwiTWF0aCIsImFicyIsImxlZnQiLCJjbGllbnRXaWR0aCIsIm1lYXN1cmVTY3JvbGxiYXIiLCJib2R5UGFkIiwicGFyc2VJbnQiLCJzdHlsZSIsInNjcm9sbERpdiIsImNsYXNzTmFtZSIsImFwcGVuZCIsInJlbW92ZUNoaWxkIiwiUGx1Z2luIiwib3B0aW9uIiwiZWFjaCIsIiR0aGlzIiwiZGF0YSIsImV4dGVuZCIsIm9sZCIsIndwYmNfbXlfbW9kYWwiLCJDb25zdHJ1Y3RvciIsIm5vQ29uZmxpY3QiLCJocmVmIiwiYXR0ciIsIiR0YXJnZXQiLCJyZXBsYWNlIiwidGVzdCIsInNob3dFdmVudCIsImNhbGwiLCJEcm9wZG93biIsImdldFBhcmVudCIsInNlbGVjdG9yIiwiJHBhcmVudCIsImNsZWFyTWVudXMiLCJ0eXBlIiwidGFnTmFtZSIsImNvbnRhaW5zIiwiaXNBY3RpdmUiLCJjbG9zZXN0IiwiaW5zZXJ0QWZ0ZXIiLCJ0b2dnbGVDbGFzcyIsImtleWRvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJkZXNjIiwiJGl0ZW1zIiwiaW5kZXgiLCJlcSIsIndwYmNfZHJvcGRvd24iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksT0FBT0EsTUFBUCxLQUFrQixXQUF0QixFQUFtQztBQUNqQyxRQUFNLElBQUlDLEtBQUosQ0FBVSx5Q0FBVixDQUFOO0FBQ0Q7O0FBQ0QsQ0FBQyxVQUFVQyxDQUFWLEVBQWE7QUFDWjs7QUFDQSxNQUFJQyxPQUFPLEdBQUdELENBQUMsQ0FBQ0UsRUFBRixDQUFLQyxNQUFMLENBQVlDLEtBQVosQ0FBa0IsR0FBbEIsRUFBdUIsQ0FBdkIsRUFBMEJBLEtBQTFCLENBQWdDLEdBQWhDLENBQWQ7O0FBQ0EsTUFBS0gsT0FBTyxDQUFDLENBQUQsQ0FBUCxHQUFhLENBQWIsSUFBa0JBLE9BQU8sQ0FBQyxDQUFELENBQVAsR0FBYSxDQUFoQyxJQUF1Q0EsT0FBTyxDQUFDLENBQUQsQ0FBUCxJQUFjLENBQWQsSUFBbUJBLE9BQU8sQ0FBQyxDQUFELENBQVAsSUFBYyxDQUFqQyxJQUFzQ0EsT0FBTyxDQUFDLENBQUQsQ0FBUCxHQUFhLENBQTlGLEVBQWtHO0FBQ2hHLFVBQU0sSUFBSUYsS0FBSixDQUFVLGlFQUFWLENBQU47QUFDRDtBQUNGLENBTkEsQ0FNQ0QsTUFORCxDQUFEO0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBR0EsQ0FBQyxVQUFVRSxDQUFWLEVBQWE7QUFDWixlQURZLENBR1o7QUFDQTs7QUFFQSxNQUFJSyxLQUFLLEdBQUcsU0FBUkEsS0FBUSxDQUFVQyxPQUFWLEVBQW1CQyxPQUFuQixFQUE0QjtBQUN0QyxTQUFLQSxPQUFMLEdBQTJCQSxPQUEzQjtBQUNBLFNBQUtDLEtBQUwsR0FBMkJSLENBQUMsQ0FBQ1MsUUFBUSxDQUFDQyxJQUFWLENBQTVCO0FBQ0EsU0FBS0MsUUFBTCxHQUEyQlgsQ0FBQyxDQUFDTSxPQUFELENBQTVCO0FBQ0EsU0FBS00sT0FBTCxHQUEyQixLQUFLRCxRQUFMLENBQWNFLElBQWQsQ0FBbUIsZUFBbkIsQ0FBM0I7QUFDQSxTQUFLQyxTQUFMLEdBQTJCLElBQTNCO0FBQ0EsU0FBS0MsT0FBTCxHQUEyQixJQUEzQjtBQUNBLFNBQUtDLGVBQUwsR0FBMkIsSUFBM0I7QUFDQSxTQUFLQyxjQUFMLEdBQTJCLENBQTNCO0FBQ0EsU0FBS0MsbUJBQUwsR0FBMkIsS0FBM0I7O0FBRUEsUUFBSSxLQUFLWCxPQUFMLENBQWFZLE1BQWpCLEVBQXlCO0FBQ3ZCLFdBQUtSLFFBQUwsQ0FDR0UsSUFESCxDQUNRLGdCQURSLEVBRUdPLElBRkgsQ0FFUSxLQUFLYixPQUFMLENBQWFZLE1BRnJCLEVBRTZCbkIsQ0FBQyxDQUFDcUIsS0FBRixDQUFRLFlBQVk7QUFDN0MsYUFBS1YsUUFBTCxDQUFjVyxPQUFkLENBQXNCLG1CQUF0QjtBQUNELE9BRjBCLEVBRXhCLElBRndCLENBRjdCO0FBS0Q7QUFDRixHQWxCRDs7QUFvQkFqQixFQUFBQSxLQUFLLENBQUNrQixPQUFOLEdBQWlCLE9BQWpCO0FBRUFsQixFQUFBQSxLQUFLLENBQUNtQixtQkFBTixHQUE0QixHQUE1QjtBQUNBbkIsRUFBQUEsS0FBSyxDQUFDb0IsNEJBQU4sR0FBcUMsR0FBckM7QUFFQXBCLEVBQUFBLEtBQUssQ0FBQ3FCLFFBQU4sR0FBaUI7QUFDZkMsSUFBQUEsUUFBUSxFQUFFLElBREs7QUFFZkMsSUFBQUEsUUFBUSxFQUFFLElBRks7QUFHZkMsSUFBQUEsSUFBSSxFQUFFO0FBSFMsR0FBakI7O0FBTUF4QixFQUFBQSxLQUFLLENBQUN5QixTQUFOLENBQWdCQyxNQUFoQixHQUF5QixVQUFVQyxjQUFWLEVBQTBCO0FBQ2pELFdBQU8sS0FBS2pCLE9BQUwsR0FBZSxLQUFLa0IsSUFBTCxFQUFmLEdBQTZCLEtBQUtKLElBQUwsQ0FBVUcsY0FBVixDQUFwQztBQUNELEdBRkQ7O0FBSUEzQixFQUFBQSxLQUFLLENBQUN5QixTQUFOLENBQWdCRCxJQUFoQixHQUF1QixVQUFVRyxjQUFWLEVBQTBCO0FBQy9DLFFBQUlFLElBQUksR0FBRyxJQUFYO0FBQ0EsUUFBSUMsQ0FBQyxHQUFNbkMsQ0FBQyxDQUFDb0MsS0FBRixDQUFRLGlCQUFSLEVBQTJCO0FBQUVDLE1BQUFBLGFBQWEsRUFBRUw7QUFBakIsS0FBM0IsQ0FBWDtBQUVBLFNBQUtyQixRQUFMLENBQWNXLE9BQWQsQ0FBc0JhLENBQXRCO0FBRUEsUUFBSSxLQUFLcEIsT0FBTCxJQUFnQm9CLENBQUMsQ0FBQ0csa0JBQUYsRUFBcEIsRUFBNEM7QUFFNUMsU0FBS3ZCLE9BQUwsR0FBZSxJQUFmO0FBRUEsU0FBS3dCLGNBQUw7QUFDQSxTQUFLQyxZQUFMO0FBQ0EsU0FBS2hDLEtBQUwsQ0FBV2lDLFFBQVgsQ0FBb0IsWUFBcEI7QUFFQSxTQUFLQyxNQUFMO0FBQ0EsU0FBS0MsTUFBTDtBQUVBLFNBQUtoQyxRQUFMLENBQWNpQyxFQUFkLENBQWlCLDBCQUFqQixFQUE2Qyx3QkFBN0MsRUFBdUU1QyxDQUFDLENBQUNxQixLQUFGLENBQVEsS0FBS1ksSUFBYixFQUFtQixJQUFuQixDQUF2RTtBQUVBLFNBQUtyQixPQUFMLENBQWFnQyxFQUFiLENBQWdCLDhCQUFoQixFQUFnRCxZQUFZO0FBQzFEVixNQUFBQSxJQUFJLENBQUN2QixRQUFMLENBQWNrQyxHQUFkLENBQWtCLDRCQUFsQixFQUFnRCxVQUFVVixDQUFWLEVBQWE7QUFDM0QsWUFBSW5DLENBQUMsQ0FBQ21DLENBQUMsQ0FBQ1csTUFBSCxDQUFELENBQVlDLEVBQVosQ0FBZWIsSUFBSSxDQUFDdkIsUUFBcEIsQ0FBSixFQUFtQ3VCLElBQUksQ0FBQ2hCLG1CQUFMLEdBQTJCLElBQTNCO0FBQ3BDLE9BRkQ7QUFHRCxLQUpEO0FBTUEsU0FBS1MsUUFBTCxDQUFjLFlBQVk7QUFDeEIsVUFBSXFCLFVBQVUsR0FBR2hELENBQUMsQ0FBQ2lELE9BQUYsQ0FBVUQsVUFBVixJQUF3QmQsSUFBSSxDQUFDdkIsUUFBTCxDQUFjdUMsUUFBZCxDQUF1QixNQUF2QixDQUF6Qzs7QUFFQSxVQUFJLENBQUNoQixJQUFJLENBQUN2QixRQUFMLENBQWN3QyxNQUFkLEdBQXVCQyxNQUE1QixFQUFvQztBQUNsQ2xCLFFBQUFBLElBQUksQ0FBQ3ZCLFFBQUwsQ0FBYzBDLFFBQWQsQ0FBdUJuQixJQUFJLENBQUMxQixLQUE1QixFQURrQyxDQUNDO0FBQ3BDOztBQUVEMEIsTUFBQUEsSUFBSSxDQUFDdkIsUUFBTCxDQUNHa0IsSUFESCxHQUVHeUIsU0FGSCxDQUVhLENBRmI7QUFJQXBCLE1BQUFBLElBQUksQ0FBQ3FCLFlBQUw7O0FBRUEsVUFBSVAsVUFBSixFQUFnQjtBQUNkZCxRQUFBQSxJQUFJLENBQUN2QixRQUFMLENBQWMsQ0FBZCxFQUFpQjZDLFdBQWpCLENBRGMsQ0FDZTtBQUM5Qjs7QUFFRHRCLE1BQUFBLElBQUksQ0FBQ3ZCLFFBQUwsQ0FBYzhCLFFBQWQsQ0FBdUIsSUFBdkI7QUFFQVAsTUFBQUEsSUFBSSxDQUFDdUIsWUFBTDtBQUVBLFVBQUl0QixDQUFDLEdBQUduQyxDQUFDLENBQUNvQyxLQUFGLENBQVEsa0JBQVIsRUFBNEI7QUFBRUMsUUFBQUEsYUFBYSxFQUFFTDtBQUFqQixPQUE1QixDQUFSO0FBRUFnQixNQUFBQSxVQUFVLEdBQ1JkLElBQUksQ0FBQ3RCLE9BQUwsQ0FBYTtBQUFiLE9BQ0dpQyxHQURILENBQ08saUJBRFAsRUFDMEIsWUFBWTtBQUNsQ1gsUUFBQUEsSUFBSSxDQUFDdkIsUUFBTCxDQUFjVyxPQUFkLENBQXNCLE9BQXRCLEVBQStCQSxPQUEvQixDQUF1Q2EsQ0FBdkM7QUFDRCxPQUhILEVBSUd1QixvQkFKSCxDQUl3QnJELEtBQUssQ0FBQ21CLG1CQUo5QixDQURRLEdBTVJVLElBQUksQ0FBQ3ZCLFFBQUwsQ0FBY1csT0FBZCxDQUFzQixPQUF0QixFQUErQkEsT0FBL0IsQ0FBdUNhLENBQXZDLENBTkY7QUFPRCxLQTlCRDtBQStCRCxHQXhERDs7QUEwREE5QixFQUFBQSxLQUFLLENBQUN5QixTQUFOLENBQWdCRyxJQUFoQixHQUF1QixVQUFVRSxDQUFWLEVBQWE7QUFDbEMsUUFBSUEsQ0FBSixFQUFPQSxDQUFDLENBQUN3QixjQUFGO0FBRVB4QixJQUFBQSxDQUFDLEdBQUduQyxDQUFDLENBQUNvQyxLQUFGLENBQVEsaUJBQVIsQ0FBSjtBQUVBLFNBQUt6QixRQUFMLENBQWNXLE9BQWQsQ0FBc0JhLENBQXRCO0FBRUEsUUFBSSxDQUFDLEtBQUtwQixPQUFOLElBQWlCb0IsQ0FBQyxDQUFDRyxrQkFBRixFQUFyQixFQUE2QztBQUU3QyxTQUFLdkIsT0FBTCxHQUFlLEtBQWY7QUFFQSxTQUFLMkIsTUFBTDtBQUNBLFNBQUtDLE1BQUw7QUFFQTNDLElBQUFBLENBQUMsQ0FBQ1MsUUFBRCxDQUFELENBQVltRCxHQUFaLENBQWdCLG9CQUFoQjtBQUVBLFNBQUtqRCxRQUFMLENBQ0drRCxXQURILENBQ2UsSUFEZixFQUVHRCxHQUZILENBRU8sMEJBRlAsRUFHR0EsR0FISCxDQUdPLDRCQUhQO0FBS0EsU0FBS2hELE9BQUwsQ0FBYWdELEdBQWIsQ0FBaUIsOEJBQWpCO0FBRUE1RCxJQUFBQSxDQUFDLENBQUNpRCxPQUFGLENBQVVELFVBQVYsSUFBd0IsS0FBS3JDLFFBQUwsQ0FBY3VDLFFBQWQsQ0FBdUIsTUFBdkIsQ0FBeEIsR0FDRSxLQUFLdkMsUUFBTCxDQUNHa0MsR0FESCxDQUNPLGlCQURQLEVBQzBCN0MsQ0FBQyxDQUFDcUIsS0FBRixDQUFRLEtBQUt5QyxTQUFiLEVBQXdCLElBQXhCLENBRDFCLEVBRUdKLG9CQUZILENBRXdCckQsS0FBSyxDQUFDbUIsbUJBRjlCLENBREYsR0FJRSxLQUFLc0MsU0FBTCxFQUpGO0FBS0QsR0E1QkQ7O0FBOEJBekQsRUFBQUEsS0FBSyxDQUFDeUIsU0FBTixDQUFnQjJCLFlBQWhCLEdBQStCLFlBQVk7QUFDekN6RCxJQUFBQSxDQUFDLENBQUNTLFFBQUQsQ0FBRCxDQUNHbUQsR0FESCxDQUNPLG9CQURQLEVBQzZCO0FBRDdCLEtBRUdoQixFQUZILENBRU0sb0JBRk4sRUFFNEI1QyxDQUFDLENBQUNxQixLQUFGLENBQVEsVUFBVWMsQ0FBVixFQUFhO0FBQzdDLFVBQUksS0FBS3hCLFFBQUwsQ0FBYyxDQUFkLE1BQXFCd0IsQ0FBQyxDQUFDVyxNQUF2QixJQUFpQyxDQUFDLEtBQUtuQyxRQUFMLENBQWNvRCxHQUFkLENBQWtCNUIsQ0FBQyxDQUFDVyxNQUFwQixFQUE0Qk0sTUFBbEUsRUFBMEU7QUFDeEUsYUFBS3pDLFFBQUwsQ0FBY1csT0FBZCxDQUFzQixPQUF0QjtBQUNEO0FBQ0YsS0FKeUIsRUFJdkIsSUFKdUIsQ0FGNUI7QUFPRCxHQVJEOztBQVVBakIsRUFBQUEsS0FBSyxDQUFDeUIsU0FBTixDQUFnQlksTUFBaEIsR0FBeUIsWUFBWTtBQUNuQyxRQUFJLEtBQUszQixPQUFMLElBQWdCLEtBQUtSLE9BQUwsQ0FBYXFCLFFBQWpDLEVBQTJDO0FBQ3pDLFdBQUtqQixRQUFMLENBQWNpQyxFQUFkLENBQWlCLDRCQUFqQixFQUErQzVDLENBQUMsQ0FBQ3FCLEtBQUYsQ0FBUSxVQUFVYyxDQUFWLEVBQWE7QUFDbEVBLFFBQUFBLENBQUMsQ0FBQzZCLEtBQUYsSUFBVyxFQUFYLElBQWlCLEtBQUsvQixJQUFMLEVBQWpCO0FBQ0QsT0FGOEMsRUFFNUMsSUFGNEMsQ0FBL0M7QUFHRCxLQUpELE1BSU8sSUFBSSxDQUFDLEtBQUtsQixPQUFWLEVBQW1CO0FBQ3hCLFdBQUtKLFFBQUwsQ0FBY2lELEdBQWQsQ0FBa0IsNEJBQWxCO0FBQ0Q7QUFDRixHQVJEOztBQVVBdkQsRUFBQUEsS0FBSyxDQUFDeUIsU0FBTixDQUFnQmEsTUFBaEIsR0FBeUIsWUFBWTtBQUNuQyxRQUFJLEtBQUs1QixPQUFULEVBQWtCO0FBQ2hCZixNQUFBQSxDQUFDLENBQUNpRSxNQUFELENBQUQsQ0FBVXJCLEVBQVYsQ0FBYSxtQkFBYixFQUFrQzVDLENBQUMsQ0FBQ3FCLEtBQUYsQ0FBUSxLQUFLNkMsWUFBYixFQUEyQixJQUEzQixDQUFsQztBQUNELEtBRkQsTUFFTztBQUNMbEUsTUFBQUEsQ0FBQyxDQUFDaUUsTUFBRCxDQUFELENBQVVMLEdBQVYsQ0FBYyxtQkFBZDtBQUNEO0FBQ0YsR0FORDs7QUFRQXZELEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JnQyxTQUFoQixHQUE0QixZQUFZO0FBQ3RDLFFBQUk1QixJQUFJLEdBQUcsSUFBWDtBQUNBLFNBQUt2QixRQUFMLENBQWNzQixJQUFkO0FBQ0EsU0FBS04sUUFBTCxDQUFjLFlBQVk7QUFDeEJPLE1BQUFBLElBQUksQ0FBQzFCLEtBQUwsQ0FBV3FELFdBQVgsQ0FBdUIsWUFBdkI7QUFDQTNCLE1BQUFBLElBQUksQ0FBQ2lDLGdCQUFMO0FBQ0FqQyxNQUFBQSxJQUFJLENBQUNrQyxjQUFMO0FBQ0FsQyxNQUFBQSxJQUFJLENBQUN2QixRQUFMLENBQWNXLE9BQWQsQ0FBc0IsbUJBQXRCO0FBQ0QsS0FMRDtBQU1ELEdBVEQ7O0FBV0FqQixFQUFBQSxLQUFLLENBQUN5QixTQUFOLENBQWdCdUMsY0FBaEIsR0FBaUMsWUFBWTtBQUMzQyxTQUFLdkQsU0FBTCxJQUFrQixLQUFLQSxTQUFMLENBQWV3RCxNQUFmLEVBQWxCO0FBQ0EsU0FBS3hELFNBQUwsR0FBaUIsSUFBakI7QUFDRCxHQUhEOztBQUtBVCxFQUFBQSxLQUFLLENBQUN5QixTQUFOLENBQWdCSCxRQUFoQixHQUEyQixVQUFVNEMsUUFBVixFQUFvQjtBQUM3QyxRQUFJckMsSUFBSSxHQUFHLElBQVg7QUFDQSxRQUFJc0MsT0FBTyxHQUFHLEtBQUs3RCxRQUFMLENBQWN1QyxRQUFkLENBQXVCLE1BQXZCLElBQWlDLE1BQWpDLEdBQTBDLEVBQXhEOztBQUVBLFFBQUksS0FBS25DLE9BQUwsSUFBZ0IsS0FBS1IsT0FBTCxDQUFhb0IsUUFBakMsRUFBMkM7QUFDekMsVUFBSThDLFNBQVMsR0FBR3pFLENBQUMsQ0FBQ2lELE9BQUYsQ0FBVUQsVUFBVixJQUF3QndCLE9BQXhDO0FBRUEsV0FBSzFELFNBQUwsR0FBaUJkLENBQUMsQ0FBQ1MsUUFBUSxDQUFDaUUsYUFBVCxDQUF1QixLQUF2QixDQUFELENBQUQsQ0FDZGpDLFFBRGMsQ0FDTCxvQkFBb0IrQixPQURmLEVBRWRuQixRQUZjLENBRUwsS0FBSzdDLEtBRkEsQ0FBakI7QUFJQSxXQUFLRyxRQUFMLENBQWNpQyxFQUFkLENBQWlCLDBCQUFqQixFQUE2QzVDLENBQUMsQ0FBQ3FCLEtBQUYsQ0FBUSxVQUFVYyxDQUFWLEVBQWE7QUFDaEUsWUFBSSxLQUFLakIsbUJBQVQsRUFBOEI7QUFDNUIsZUFBS0EsbUJBQUwsR0FBMkIsS0FBM0I7QUFDQTtBQUNEOztBQUNELFlBQUlpQixDQUFDLENBQUNXLE1BQUYsS0FBYVgsQ0FBQyxDQUFDd0MsYUFBbkIsRUFBa0M7QUFDbEMsYUFBS3BFLE9BQUwsQ0FBYW9CLFFBQWIsSUFBeUIsUUFBekIsR0FDSSxLQUFLaEIsUUFBTCxDQUFjLENBQWQsRUFBaUJpRSxLQUFqQixFQURKLEdBRUksS0FBSzNDLElBQUwsRUFGSjtBQUdELE9BVDRDLEVBUzFDLElBVDBDLENBQTdDO0FBV0EsVUFBSXdDLFNBQUosRUFBZSxLQUFLM0QsU0FBTCxDQUFlLENBQWYsRUFBa0IwQyxXQUFsQixDQWxCMEIsQ0FrQkk7O0FBRTdDLFdBQUsxQyxTQUFMLENBQWUyQixRQUFmLENBQXdCLElBQXhCO0FBRUEsVUFBSSxDQUFDOEIsUUFBTCxFQUFlO0FBRWZFLE1BQUFBLFNBQVMsR0FDUCxLQUFLM0QsU0FBTCxDQUNHK0IsR0FESCxDQUNPLGlCQURQLEVBQzBCMEIsUUFEMUIsRUFFR2Isb0JBRkgsQ0FFd0JyRCxLQUFLLENBQUNvQiw0QkFGOUIsQ0FETyxHQUlQOEMsUUFBUSxFQUpWO0FBTUQsS0E5QkQsTUE4Qk8sSUFBSSxDQUFDLEtBQUt4RCxPQUFOLElBQWlCLEtBQUtELFNBQTFCLEVBQXFDO0FBQzFDLFdBQUtBLFNBQUwsQ0FBZStDLFdBQWYsQ0FBMkIsSUFBM0I7O0FBRUEsVUFBSWdCLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsR0FBWTtBQUMvQjNDLFFBQUFBLElBQUksQ0FBQ21DLGNBQUw7QUFDQUUsUUFBQUEsUUFBUSxJQUFJQSxRQUFRLEVBQXBCO0FBQ0QsT0FIRDs7QUFJQXZFLE1BQUFBLENBQUMsQ0FBQ2lELE9BQUYsQ0FBVUQsVUFBVixJQUF3QixLQUFLckMsUUFBTCxDQUFjdUMsUUFBZCxDQUF1QixNQUF2QixDQUF4QixHQUNFLEtBQUtwQyxTQUFMLENBQ0crQixHQURILENBQ08saUJBRFAsRUFDMEJnQyxjQUQxQixFQUVHbkIsb0JBRkgsQ0FFd0JyRCxLQUFLLENBQUNvQiw0QkFGOUIsQ0FERixHQUlFb0QsY0FBYyxFQUpoQjtBQU1ELEtBYk0sTUFhQSxJQUFJTixRQUFKLEVBQWM7QUFDbkJBLE1BQUFBLFFBQVE7QUFDVDtBQUNGLEdBbERELENBN0tZLENBaU9aOzs7QUFFQWxFLEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JvQyxZQUFoQixHQUErQixZQUFZO0FBQ3pDLFNBQUtYLFlBQUw7QUFDRCxHQUZEOztBQUlBbEQsRUFBQUEsS0FBSyxDQUFDeUIsU0FBTixDQUFnQnlCLFlBQWhCLEdBQStCLFlBQVk7QUFDekMsUUFBSXVCLGtCQUFrQixHQUFHLEtBQUtuRSxRQUFMLENBQWMsQ0FBZCxFQUFpQm9FLFlBQWpCLEdBQWdDdEUsUUFBUSxDQUFDdUUsZUFBVCxDQUF5QkMsWUFBbEY7QUFFQSxTQUFLdEUsUUFBTCxDQUFjdUUsR0FBZCxDQUFrQjtBQUNoQkMsTUFBQUEsV0FBVyxFQUFHLENBQUMsS0FBS0MsaUJBQU4sSUFBMkJOLGtCQUEzQixHQUFnRCxLQUFLN0QsY0FBckQsR0FBc0UsRUFEcEU7QUFFaEJvRSxNQUFBQSxZQUFZLEVBQUUsS0FBS0QsaUJBQUwsSUFBMEIsQ0FBQ04sa0JBQTNCLEdBQWdELEtBQUs3RCxjQUFyRCxHQUFzRTtBQUZwRSxLQUFsQjtBQUlELEdBUEQ7O0FBU0FaLEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JxQyxnQkFBaEIsR0FBbUMsWUFBWTtBQUM3QyxTQUFLeEQsUUFBTCxDQUFjdUUsR0FBZCxDQUFrQjtBQUNoQkMsTUFBQUEsV0FBVyxFQUFFLEVBREc7QUFFaEJFLE1BQUFBLFlBQVksRUFBRTtBQUZFLEtBQWxCO0FBSUQsR0FMRDs7QUFPQWhGLEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JTLGNBQWhCLEdBQWlDLFlBQVk7QUFDM0MsUUFBSStDLGVBQWUsR0FBR3JCLE1BQU0sQ0FBQ3NCLFVBQTdCOztBQUNBLFFBQUksQ0FBQ0QsZUFBTCxFQUFzQjtBQUFFO0FBQ3RCLFVBQUlFLG1CQUFtQixHQUFHL0UsUUFBUSxDQUFDdUUsZUFBVCxDQUF5QlMscUJBQXpCLEVBQTFCO0FBQ0FILE1BQUFBLGVBQWUsR0FBR0UsbUJBQW1CLENBQUNFLEtBQXBCLEdBQTRCQyxJQUFJLENBQUNDLEdBQUwsQ0FBU0osbUJBQW1CLENBQUNLLElBQTdCLENBQTlDO0FBQ0Q7O0FBQ0QsU0FBS1QsaUJBQUwsR0FBeUIzRSxRQUFRLENBQUNDLElBQVQsQ0FBY29GLFdBQWQsR0FBNEJSLGVBQXJEO0FBQ0EsU0FBS3JFLGNBQUwsR0FBc0IsS0FBSzhFLGdCQUFMLEVBQXRCO0FBQ0QsR0FSRDs7QUFVQTFGLEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JVLFlBQWhCLEdBQStCLFlBQVk7QUFDekMsUUFBSXdELE9BQU8sR0FBR0MsUUFBUSxDQUFFLEtBQUt6RixLQUFMLENBQVcwRSxHQUFYLENBQWUsZUFBZixLQUFtQyxDQUFyQyxFQUF5QyxFQUF6QyxDQUF0QjtBQUNBLFNBQUtsRSxlQUFMLEdBQXVCUCxRQUFRLENBQUNDLElBQVQsQ0FBY3dGLEtBQWQsQ0FBb0JiLFlBQXBCLElBQW9DLEVBQTNEO0FBQ0EsUUFBSSxLQUFLRCxpQkFBVCxFQUE0QixLQUFLNUUsS0FBTCxDQUFXMEUsR0FBWCxDQUFlLGVBQWYsRUFBZ0NjLE9BQU8sR0FBRyxLQUFLL0UsY0FBL0M7QUFDN0IsR0FKRDs7QUFNQVosRUFBQUEsS0FBSyxDQUFDeUIsU0FBTixDQUFnQnNDLGNBQWhCLEdBQWlDLFlBQVk7QUFDM0MsU0FBSzVELEtBQUwsQ0FBVzBFLEdBQVgsQ0FBZSxlQUFmLEVBQWdDLEtBQUtsRSxlQUFyQztBQUNELEdBRkQ7O0FBSUFYLEVBQUFBLEtBQUssQ0FBQ3lCLFNBQU4sQ0FBZ0JpRSxnQkFBaEIsR0FBbUMsWUFBWTtBQUFFO0FBQy9DLFFBQUlJLFNBQVMsR0FBRzFGLFFBQVEsQ0FBQ2lFLGFBQVQsQ0FBdUIsS0FBdkIsQ0FBaEI7QUFDQXlCLElBQUFBLFNBQVMsQ0FBQ0MsU0FBVixHQUFzQix5QkFBdEI7QUFDQSxTQUFLNUYsS0FBTCxDQUFXNkYsTUFBWCxDQUFrQkYsU0FBbEI7QUFDQSxRQUFJbEYsY0FBYyxHQUFHa0YsU0FBUyxDQUFDM0MsV0FBVixHQUF3QjJDLFNBQVMsQ0FBQ0wsV0FBdkQ7QUFDQSxTQUFLdEYsS0FBTCxDQUFXLENBQVgsRUFBYzhGLFdBQWQsQ0FBMEJILFNBQTFCO0FBQ0EsV0FBT2xGLGNBQVA7QUFDRCxHQVBELENBM1FZLENBcVJaO0FBQ0E7OztBQUVBLFdBQVNzRixNQUFULENBQWdCQyxNQUFoQixFQUF3QnhFLGNBQXhCLEVBQXdDO0FBQ3RDLFdBQU8sS0FBS3lFLElBQUwsQ0FBVSxZQUFZO0FBQzNCLFVBQUlDLEtBQUssR0FBSzFHLENBQUMsQ0FBQyxJQUFELENBQWY7QUFDQSxVQUFJMkcsSUFBSSxHQUFNRCxLQUFLLENBQUNDLElBQU4sQ0FBVyxZQUFYLENBQWQ7QUFDQSxVQUFJcEcsT0FBTyxHQUFHUCxDQUFDLENBQUM0RyxNQUFGLENBQVMsRUFBVCxFQUFhdkcsS0FBSyxDQUFDcUIsUUFBbkIsRUFBNkJnRixLQUFLLENBQUNDLElBQU4sRUFBN0IsRUFBMkMsUUFBT0gsTUFBUCxLQUFpQixRQUFqQixJQUE2QkEsTUFBeEUsQ0FBZDtBQUVBLFVBQUksQ0FBQ0csSUFBTCxFQUFXRCxLQUFLLENBQUNDLElBQU4sQ0FBVyxZQUFYLEVBQTBCQSxJQUFJLEdBQUcsSUFBSXRHLEtBQUosQ0FBVSxJQUFWLEVBQWdCRSxPQUFoQixDQUFqQztBQUNYLFVBQUksT0FBT2lHLE1BQVAsSUFBaUIsUUFBckIsRUFBK0JHLElBQUksQ0FBQ0gsTUFBRCxDQUFKLENBQWF4RSxjQUFiLEVBQS9CLEtBQ0ssSUFBSXpCLE9BQU8sQ0FBQ3NCLElBQVosRUFBa0I4RSxJQUFJLENBQUM5RSxJQUFMLENBQVVHLGNBQVY7QUFDeEIsS0FSTSxDQUFQO0FBU0Q7O0FBRUQsTUFBSTZFLEdBQUcsR0FBRzdHLENBQUMsQ0FBQ0UsRUFBRixDQUFLNEcsYUFBZjtBQUVBOUcsRUFBQUEsQ0FBQyxDQUFDRSxFQUFGLENBQUs0RyxhQUFMLEdBQWlDUCxNQUFqQztBQUNBdkcsRUFBQUEsQ0FBQyxDQUFDRSxFQUFGLENBQUs0RyxhQUFMLENBQW1CQyxXQUFuQixHQUFpQzFHLEtBQWpDLENBdlNZLENBMFNaO0FBQ0E7O0FBRUFMLEVBQUFBLENBQUMsQ0FBQ0UsRUFBRixDQUFLNEcsYUFBTCxDQUFtQkUsVUFBbkIsR0FBZ0MsWUFBWTtBQUMxQ2hILElBQUFBLENBQUMsQ0FBQ0UsRUFBRixDQUFLNEcsYUFBTCxHQUFxQkQsR0FBckI7QUFDQSxXQUFPLElBQVA7QUFDRCxHQUhELENBN1NZLENBbVRaO0FBQ0E7OztBQUVBN0csRUFBQUEsQ0FBQyxDQUFDUyxRQUFELENBQUQsQ0FBWW1DLEVBQVosQ0FBZSwyQkFBZixFQUE0QywrQkFBNUMsRUFBNkUsVUFBVVQsQ0FBVixFQUFhO0FBQ3hGLFFBQUl1RSxLQUFLLEdBQUsxRyxDQUFDLENBQUMsSUFBRCxDQUFmO0FBQ0EsUUFBSWlILElBQUksR0FBTVAsS0FBSyxDQUFDUSxJQUFOLENBQVcsTUFBWCxDQUFkO0FBQ0EsUUFBSUMsT0FBTyxHQUFHbkgsQ0FBQyxDQUFDMEcsS0FBSyxDQUFDUSxJQUFOLENBQVcsYUFBWCxLQUE4QkQsSUFBSSxJQUFJQSxJQUFJLENBQUNHLE9BQUwsQ0FBYSxnQkFBYixFQUErQixFQUEvQixDQUF2QyxDQUFmLENBSHdGLENBR0c7O0FBQzNGLFFBQUlaLE1BQU0sR0FBSVcsT0FBTyxDQUFDUixJQUFSLENBQWEsWUFBYixJQUE2QixRQUE3QixHQUF3QzNHLENBQUMsQ0FBQzRHLE1BQUYsQ0FBUztBQUFFekYsTUFBQUEsTUFBTSxFQUFFLENBQUMsSUFBSWtHLElBQUosQ0FBU0osSUFBVCxDQUFELElBQW1CQTtBQUE3QixLQUFULEVBQThDRSxPQUFPLENBQUNSLElBQVIsRUFBOUMsRUFBOERELEtBQUssQ0FBQ0MsSUFBTixFQUE5RCxDQUF0RDtBQUVBLFFBQUlELEtBQUssQ0FBQzNELEVBQU4sQ0FBUyxHQUFULENBQUosRUFBbUJaLENBQUMsQ0FBQ3dCLGNBQUY7QUFFbkJ3RCxJQUFBQSxPQUFPLENBQUN0RSxHQUFSLENBQVksaUJBQVosRUFBK0IsVUFBVXlFLFNBQVYsRUFBcUI7QUFDbEQsVUFBSUEsU0FBUyxDQUFDaEYsa0JBQVYsRUFBSixFQUFvQyxPQURjLENBQ1A7O0FBQzNDNkUsTUFBQUEsT0FBTyxDQUFDdEUsR0FBUixDQUFZLG1CQUFaLEVBQWlDLFlBQVk7QUFDM0M2RCxRQUFBQSxLQUFLLENBQUMzRCxFQUFOLENBQVMsVUFBVCxLQUF3QjJELEtBQUssQ0FBQ3BGLE9BQU4sQ0FBYyxPQUFkLENBQXhCO0FBQ0QsT0FGRDtBQUdELEtBTEQ7QUFNQWlGLElBQUFBLE1BQU0sQ0FBQ2dCLElBQVAsQ0FBWUosT0FBWixFQUFxQlgsTUFBckIsRUFBNkIsSUFBN0I7QUFDRCxHQWZEO0FBaUJELENBdlVBLENBdVVDMUcsTUF2VUQsQ0FBRDtBQTBVQSxDQUFDLFVBQVVFLENBQVYsRUFBYTtBQUNaLGVBRFksQ0FHWjtBQUNBOztBQUVBLE1BQUkyQixRQUFRLEdBQUcsb0JBQWY7QUFDQSxNQUFJSSxNQUFNLEdBQUssK0JBQWY7O0FBQ0EsTUFBSXlGLFFBQVEsR0FBRyxTQUFYQSxRQUFXLENBQVVsSCxPQUFWLEVBQW1CO0FBQ2hDTixJQUFBQSxDQUFDLENBQUNNLE9BQUQsQ0FBRCxDQUFXc0MsRUFBWCxDQUFjLHFCQUFkLEVBQXFDLEtBQUtiLE1BQTFDO0FBQ0QsR0FGRDs7QUFJQXlGLEVBQUFBLFFBQVEsQ0FBQ2pHLE9BQVQsR0FBbUIsT0FBbkI7O0FBRUEsV0FBU2tHLFNBQVQsQ0FBbUJmLEtBQW5CLEVBQTBCO0FBQ3hCLFFBQUlnQixRQUFRLEdBQUdoQixLQUFLLENBQUNRLElBQU4sQ0FBVyxhQUFYLENBQWY7O0FBRUEsUUFBSSxDQUFDUSxRQUFMLEVBQWU7QUFDYkEsTUFBQUEsUUFBUSxHQUFHaEIsS0FBSyxDQUFDUSxJQUFOLENBQVcsTUFBWCxDQUFYO0FBQ0FRLE1BQUFBLFFBQVEsR0FBR0EsUUFBUSxJQUFJLFlBQVlMLElBQVosQ0FBaUJLLFFBQWpCLENBQVosSUFBMENBLFFBQVEsQ0FBQ04sT0FBVCxDQUFpQixnQkFBakIsRUFBbUMsRUFBbkMsQ0FBckQsQ0FGYSxDQUUrRTtBQUM3Rjs7QUFFRCxRQUFJTyxPQUFPLEdBQUdELFFBQVEsSUFBSTFILENBQUMsQ0FBQzBILFFBQUQsQ0FBM0I7QUFFQSxXQUFPQyxPQUFPLElBQUlBLE9BQU8sQ0FBQ3ZFLE1BQW5CLEdBQTRCdUUsT0FBNUIsR0FBc0NqQixLQUFLLENBQUN2RCxNQUFOLEVBQTdDO0FBQ0Q7O0FBRUQsV0FBU3lFLFVBQVQsQ0FBb0J6RixDQUFwQixFQUF1QjtBQUNyQixRQUFJQSxDQUFDLElBQUlBLENBQUMsQ0FBQzZCLEtBQUYsS0FBWSxDQUFyQixFQUF3QjtBQUN4QmhFLElBQUFBLENBQUMsQ0FBQzJCLFFBQUQsQ0FBRCxDQUFZMkMsTUFBWjtBQUNBdEUsSUFBQUEsQ0FBQyxDQUFDK0IsTUFBRCxDQUFELENBQVUwRSxJQUFWLENBQWUsWUFBWTtBQUN6QixVQUFJQyxLQUFLLEdBQVcxRyxDQUFDLENBQUMsSUFBRCxDQUFyQjtBQUNBLFVBQUkySCxPQUFPLEdBQVNGLFNBQVMsQ0FBQ2YsS0FBRCxDQUE3QjtBQUNBLFVBQUlyRSxhQUFhLEdBQUc7QUFBRUEsUUFBQUEsYUFBYSxFQUFFO0FBQWpCLE9BQXBCO0FBRUEsVUFBSSxDQUFDc0YsT0FBTyxDQUFDekUsUUFBUixDQUFpQixNQUFqQixDQUFMLEVBQStCO0FBRS9CLFVBQUlmLENBQUMsSUFBSUEsQ0FBQyxDQUFDMEYsSUFBRixJQUFVLE9BQWYsSUFBMEIsa0JBQWtCUixJQUFsQixDQUF1QmxGLENBQUMsQ0FBQ1csTUFBRixDQUFTZ0YsT0FBaEMsQ0FBMUIsSUFBc0U5SCxDQUFDLENBQUMrSCxRQUFGLENBQVdKLE9BQU8sQ0FBQyxDQUFELENBQWxCLEVBQXVCeEYsQ0FBQyxDQUFDVyxNQUF6QixDQUExRSxFQUE0RztBQUU1RzZFLE1BQUFBLE9BQU8sQ0FBQ3JHLE9BQVIsQ0FBZ0JhLENBQUMsR0FBR25DLENBQUMsQ0FBQ29DLEtBQUYsQ0FBUSxvQkFBUixFQUE4QkMsYUFBOUIsQ0FBcEI7QUFFQSxVQUFJRixDQUFDLENBQUNHLGtCQUFGLEVBQUosRUFBNEI7QUFFNUJvRSxNQUFBQSxLQUFLLENBQUNRLElBQU4sQ0FBVyxlQUFYLEVBQTRCLE9BQTVCO0FBQ0FTLE1BQUFBLE9BQU8sQ0FBQzlELFdBQVIsQ0FBb0IsTUFBcEIsRUFBNEJ2QyxPQUE1QixDQUFvQyxzQkFBcEMsRUFBNERlLGFBQTVEO0FBQ0QsS0FmRDtBQWdCRDs7QUFFRG1GLEVBQUFBLFFBQVEsQ0FBQzFGLFNBQVQsQ0FBbUJDLE1BQW5CLEdBQTRCLFVBQVVJLENBQVYsRUFBYTtBQUN2QyxRQUFJdUUsS0FBSyxHQUFHMUcsQ0FBQyxDQUFDLElBQUQsQ0FBYjtBQUVBLFFBQUkwRyxLQUFLLENBQUMzRCxFQUFOLENBQVMsc0JBQVQsQ0FBSixFQUFzQztBQUV0QyxRQUFJNEUsT0FBTyxHQUFJRixTQUFTLENBQUNmLEtBQUQsQ0FBeEI7QUFDQSxRQUFJc0IsUUFBUSxHQUFHTCxPQUFPLENBQUN6RSxRQUFSLENBQWlCLE1BQWpCLENBQWY7QUFFQTBFLElBQUFBLFVBQVU7O0FBRVYsUUFBSSxDQUFDSSxRQUFMLEVBQWU7QUFDYixVQUFJLGtCQUFrQnZILFFBQVEsQ0FBQ3VFLGVBQTNCLElBQThDLENBQUMyQyxPQUFPLENBQUNNLE9BQVIsQ0FBZ0IsYUFBaEIsRUFBK0I3RSxNQUFsRixFQUEwRjtBQUN4RjtBQUNBcEQsUUFBQUEsQ0FBQyxDQUFDUyxRQUFRLENBQUNpRSxhQUFULENBQXVCLEtBQXZCLENBQUQsQ0FBRCxDQUNHakMsUUFESCxDQUNZLG1CQURaLEVBRUd5RixXQUZILENBRWVsSSxDQUFDLENBQUMsSUFBRCxDQUZoQixFQUdHNEMsRUFISCxDQUdNLE9BSE4sRUFHZWdGLFVBSGY7QUFJRDs7QUFFRCxVQUFJdkYsYUFBYSxHQUFHO0FBQUVBLFFBQUFBLGFBQWEsRUFBRTtBQUFqQixPQUFwQjtBQUNBc0YsTUFBQUEsT0FBTyxDQUFDckcsT0FBUixDQUFnQmEsQ0FBQyxHQUFHbkMsQ0FBQyxDQUFDb0MsS0FBRixDQUFRLG9CQUFSLEVBQThCQyxhQUE5QixDQUFwQjtBQUVBLFVBQUlGLENBQUMsQ0FBQ0csa0JBQUYsRUFBSixFQUE0QjtBQUU1Qm9FLE1BQUFBLEtBQUssQ0FDRnBGLE9BREgsQ0FDVyxPQURYLEVBRUc0RixJQUZILENBRVEsZUFGUixFQUV5QixNQUZ6QjtBQUlBUyxNQUFBQSxPQUFPLENBQ0pRLFdBREgsQ0FDZSxNQURmLEVBRUc3RyxPQUZILENBRVcscUJBRlgsRUFFa0NlLGFBRmxDO0FBR0Q7O0FBRUQsV0FBTyxLQUFQO0FBQ0QsR0FsQ0Q7O0FBb0NBbUYsRUFBQUEsUUFBUSxDQUFDMUYsU0FBVCxDQUFtQnNHLE9BQW5CLEdBQTZCLFVBQVVqRyxDQUFWLEVBQWE7QUFDeEMsUUFBSSxDQUFDLGdCQUFnQmtGLElBQWhCLENBQXFCbEYsQ0FBQyxDQUFDNkIsS0FBdkIsQ0FBRCxJQUFrQyxrQkFBa0JxRCxJQUFsQixDQUF1QmxGLENBQUMsQ0FBQ1csTUFBRixDQUFTZ0YsT0FBaEMsQ0FBdEMsRUFBZ0Y7QUFFaEYsUUFBSXBCLEtBQUssR0FBRzFHLENBQUMsQ0FBQyxJQUFELENBQWI7QUFFQW1DLElBQUFBLENBQUMsQ0FBQ3dCLGNBQUY7QUFDQXhCLElBQUFBLENBQUMsQ0FBQ2tHLGVBQUY7QUFFQSxRQUFJM0IsS0FBSyxDQUFDM0QsRUFBTixDQUFTLHNCQUFULENBQUosRUFBc0M7QUFFdEMsUUFBSTRFLE9BQU8sR0FBSUYsU0FBUyxDQUFDZixLQUFELENBQXhCO0FBQ0EsUUFBSXNCLFFBQVEsR0FBR0wsT0FBTyxDQUFDekUsUUFBUixDQUFpQixNQUFqQixDQUFmOztBQUVBLFFBQUksQ0FBQzhFLFFBQUQsSUFBYTdGLENBQUMsQ0FBQzZCLEtBQUYsSUFBVyxFQUF4QixJQUE4QmdFLFFBQVEsSUFBSTdGLENBQUMsQ0FBQzZCLEtBQUYsSUFBVyxFQUF6RCxFQUE2RDtBQUMzRCxVQUFJN0IsQ0FBQyxDQUFDNkIsS0FBRixJQUFXLEVBQWYsRUFBbUIyRCxPQUFPLENBQUM5RyxJQUFSLENBQWFrQixNQUFiLEVBQXFCVCxPQUFyQixDQUE2QixPQUE3QjtBQUNuQixhQUFPb0YsS0FBSyxDQUFDcEYsT0FBTixDQUFjLE9BQWQsQ0FBUDtBQUNEOztBQUVELFFBQUlnSCxJQUFJLEdBQUcsOEJBQVg7QUFDQSxRQUFJQyxNQUFNLEdBQUdaLE9BQU8sQ0FBQzlHLElBQVIsQ0FBYSxtQkFBbUJ5SCxJQUFuQixHQUEwQixvQkFBMUIsR0FBaURBLElBQTlELENBQWI7QUFFQSxRQUFJLENBQUNDLE1BQU0sQ0FBQ25GLE1BQVosRUFBb0I7QUFFcEIsUUFBSW9GLEtBQUssR0FBR0QsTUFBTSxDQUFDQyxLQUFQLENBQWFyRyxDQUFDLENBQUNXLE1BQWYsQ0FBWjtBQUVBLFFBQUlYLENBQUMsQ0FBQzZCLEtBQUYsSUFBVyxFQUFYLElBQWlCd0UsS0FBSyxHQUFHLENBQTdCLEVBQWdEQSxLQUFLLEdBekJiLENBeUJ3Qjs7QUFDaEUsUUFBSXJHLENBQUMsQ0FBQzZCLEtBQUYsSUFBVyxFQUFYLElBQWlCd0UsS0FBSyxHQUFHRCxNQUFNLENBQUNuRixNQUFQLEdBQWdCLENBQTdDLEVBQWdEb0YsS0FBSyxHQTFCYixDQTBCd0I7O0FBQ2hFLFFBQUksQ0FBQyxDQUFDQSxLQUFOLEVBQWdEQSxLQUFLLEdBQUcsQ0FBUjtBQUVoREQsSUFBQUEsTUFBTSxDQUFDRSxFQUFQLENBQVVELEtBQVYsRUFBaUJsSCxPQUFqQixDQUF5QixPQUF6QjtBQUNELEdBOUJELENBcEZZLENBcUhaO0FBQ0E7OztBQUVBLFdBQVNpRixNQUFULENBQWdCQyxNQUFoQixFQUF3QjtBQUN0QixXQUFPLEtBQUtDLElBQUwsQ0FBVSxZQUFZO0FBQzNCLFVBQUlDLEtBQUssR0FBRzFHLENBQUMsQ0FBQyxJQUFELENBQWI7QUFDQSxVQUFJMkcsSUFBSSxHQUFJRCxLQUFLLENBQUNDLElBQU4sQ0FBVyxlQUFYLENBQVo7QUFFQSxVQUFJLENBQUNBLElBQUwsRUFBV0QsS0FBSyxDQUFDQyxJQUFOLENBQVcsZUFBWCxFQUE2QkEsSUFBSSxHQUFHLElBQUlhLFFBQUosQ0FBYSxJQUFiLENBQXBDO0FBQ1gsVUFBSSxPQUFPaEIsTUFBUCxJQUFpQixRQUFyQixFQUErQkcsSUFBSSxDQUFDSCxNQUFELENBQUosQ0FBYWUsSUFBYixDQUFrQmIsS0FBbEI7QUFDaEMsS0FOTSxDQUFQO0FBT0Q7O0FBRUQsTUFBSUcsR0FBRyxHQUFHN0csQ0FBQyxDQUFDRSxFQUFGLENBQUt3SSxhQUFmO0FBRUExSSxFQUFBQSxDQUFDLENBQUNFLEVBQUYsQ0FBS3dJLGFBQUwsR0FBaUNuQyxNQUFqQztBQUNBdkcsRUFBQUEsQ0FBQyxDQUFDRSxFQUFGLENBQUt3SSxhQUFMLENBQW1CM0IsV0FBbkIsR0FBaUNTLFFBQWpDLENBcklZLENBd0laO0FBQ0E7O0FBRUF4SCxFQUFBQSxDQUFDLENBQUNFLEVBQUYsQ0FBS3dJLGFBQUwsQ0FBbUIxQixVQUFuQixHQUFnQyxZQUFZO0FBQzFDaEgsSUFBQUEsQ0FBQyxDQUFDRSxFQUFGLENBQUt3SSxhQUFMLEdBQXFCN0IsR0FBckI7QUFDQSxXQUFPLElBQVA7QUFDRCxHQUhELENBM0lZLENBaUpaO0FBQ0E7OztBQUVBN0csRUFBQUEsQ0FBQyxDQUFDUyxRQUFELENBQUQsQ0FDR21DLEVBREgsQ0FDTSw4QkFETixFQUNzQ2dGLFVBRHRDLEVBRUdoRixFQUZILENBRU0sOEJBRk4sRUFFc0MsZ0JBRnRDLEVBRXdELFVBQVVULENBQVYsRUFBYTtBQUFFQSxJQUFBQSxDQUFDLENBQUNrRyxlQUFGO0FBQXFCLEdBRjVGLEVBR0d6RixFQUhILENBR00sOEJBSE4sRUFHc0NiLE1BSHRDLEVBRzhDeUYsUUFBUSxDQUFDMUYsU0FBVCxDQUFtQkMsTUFIakUsRUFJR2EsRUFKSCxDQUlNLGdDQUpOLEVBSXdDYixNQUp4QyxFQUlnRHlGLFFBQVEsQ0FBQzFGLFNBQVQsQ0FBbUJzRyxPQUpuRSxFQUtHeEYsRUFMSCxDQUtNLGdDQUxOLEVBS3dDLGdCQUx4QyxFQUswRDRFLFFBQVEsQ0FBQzFGLFNBQVQsQ0FBbUJzRyxPQUw3RSxFQU1HeEYsRUFOSCxDQU1NLGdDQU5OLEVBTXdDLG1CQU54QyxFQU02RDRFLFFBQVEsQ0FBQzFGLFNBQVQsQ0FBbUJzRyxPQU5oRjtBQVFELENBNUpBLENBNEpDdEksTUE1SkQsQ0FBRCIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxyXG4gKiBHZW5lcmF0ZWQgdXNpbmcgdGhlIEJvb3RzdHJhcCBDdXN0b21pemVyIChodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9jdXN0b21pemUvP2lkPWY0YjRjOWNiODVkZjc1N2NhMDhjKVxyXG4gKiBDb25maWcgc2F2ZWQgdG8gY29uZmlnLmpzb24gYW5kIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2Y0YjRjOWNiODVkZjc1N2NhMDhjXHJcbiAqL1xyXG5pZiAodHlwZW9mIGpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICB0aHJvdyBuZXcgRXJyb3IoJ0Jvb3RzdHJhcFxcJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnknKVxyXG59XHJcbitmdW5jdGlvbiAoJCkge1xyXG4gICd1c2Ugc3RyaWN0JztcclxuICB2YXIgdmVyc2lvbiA9ICQuZm4uanF1ZXJ5LnNwbGl0KCcgJylbMF0uc3BsaXQoJy4nKVxyXG4gIGlmICgodmVyc2lvblswXSA8IDIgJiYgdmVyc2lvblsxXSA8IDkpIHx8ICh2ZXJzaW9uWzBdID09IDEgJiYgdmVyc2lvblsxXSA9PSA5ICYmIHZlcnNpb25bMl0gPCAxKSkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdCb290c3RyYXBcXCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5IHZlcnNpb24gMS45LjEgb3IgaGlnaGVyJylcclxuICB9XHJcbn0oalF1ZXJ5KTtcclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKiBCb290c3RyYXA6IG1vZGFsLmpzIHYzLjMuNVxyXG4gKiBodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbS9qYXZhc2NyaXB0LyNtb2RhbHNcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIENvcHlyaWdodCAyMDExLTIwMTUgVHdpdHRlciwgSW5jLlxyXG4gKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKVxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4rZnVuY3Rpb24gKCQpIHtcclxuICAndXNlIHN0cmljdCc7XHJcblxyXG4gIC8vIE1PREFMIENMQVNTIERFRklOSVRJT05cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIHZhciBNb2RhbCA9IGZ1bmN0aW9uIChlbGVtZW50LCBvcHRpb25zKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgICAgICAgICAgICAgPSBvcHRpb25zXHJcbiAgICB0aGlzLiRib2R5ICAgICAgICAgICAgICAgPSAkKGRvY3VtZW50LmJvZHkpXHJcbiAgICB0aGlzLiRlbGVtZW50ICAgICAgICAgICAgPSAkKGVsZW1lbnQpXHJcbiAgICB0aGlzLiRkaWFsb2cgICAgICAgICAgICAgPSB0aGlzLiRlbGVtZW50LmZpbmQoJy5tb2RhbC1kaWFsb2cnKVxyXG4gICAgdGhpcy4kYmFja2Ryb3AgICAgICAgICAgID0gbnVsbFxyXG4gICAgdGhpcy5pc1Nob3duICAgICAgICAgICAgID0gbnVsbFxyXG4gICAgdGhpcy5vcmlnaW5hbEJvZHlQYWQgICAgID0gbnVsbFxyXG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCAgICAgID0gMFxyXG4gICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2VcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLnJlbW90ZSkge1xyXG4gICAgICB0aGlzLiRlbGVtZW50XHJcbiAgICAgICAgLmZpbmQoJy5tb2RhbC1jb250ZW50JylcclxuICAgICAgICAubG9hZCh0aGlzLm9wdGlvbnMucmVtb3RlLCAkLnByb3h5KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcignbG9hZGVkLndwYmMubW9kYWwnKVxyXG4gICAgICAgIH0sIHRoaXMpKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgTW9kYWwuVkVSU0lPTiAgPSAnMy4zLjUnXHJcblxyXG4gIE1vZGFsLlRSQU5TSVRJT05fRFVSQVRJT04gPSAzMDBcclxuICBNb2RhbC5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OID0gMTUwXHJcblxyXG4gIE1vZGFsLkRFRkFVTFRTID0ge1xyXG4gICAgYmFja2Ryb3A6IHRydWUsXHJcbiAgICBrZXlib2FyZDogdHJ1ZSxcclxuICAgIHNob3c6IHRydWVcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbiAoX3JlbGF0ZWRUYXJnZXQpIHtcclxuICAgIHJldHVybiB0aGlzLmlzU2hvd24gPyB0aGlzLmhpZGUoKSA6IHRoaXMuc2hvdyhfcmVsYXRlZFRhcmdldClcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5zaG93ID0gZnVuY3Rpb24gKF9yZWxhdGVkVGFyZ2V0KSB7XHJcbiAgICB2YXIgdGhhdCA9IHRoaXNcclxuICAgIHZhciBlICAgID0gJC5FdmVudCgnc2hvdy53cGJjLm1vZGFsJywgeyByZWxhdGVkVGFyZ2V0OiBfcmVsYXRlZFRhcmdldCB9KVxyXG5cclxuICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihlKVxyXG5cclxuICAgIGlmICh0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuXHJcblxyXG4gICAgdGhpcy5pc1Nob3duID0gdHJ1ZVxyXG5cclxuICAgIHRoaXMuY2hlY2tTY3JvbGxiYXIoKVxyXG4gICAgdGhpcy5zZXRTY3JvbGxiYXIoKVxyXG4gICAgdGhpcy4kYm9keS5hZGRDbGFzcygnbW9kYWwtb3BlbicpXHJcblxyXG4gICAgdGhpcy5lc2NhcGUoKVxyXG4gICAgdGhpcy5yZXNpemUoKVxyXG5cclxuICAgIHRoaXMuJGVsZW1lbnQub24oJ2NsaWNrLmRpc21pc3Mud3BiYy5tb2RhbCcsICdbZGF0YS1kaXNtaXNzPVwibW9kYWxcIl0nLCAkLnByb3h5KHRoaXMuaGlkZSwgdGhpcykpXHJcblxyXG4gICAgdGhpcy4kZGlhbG9nLm9uKCdtb3VzZWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICB0aGF0LiRlbGVtZW50Lm9uZSgnbW91c2V1cC5kaXNtaXNzLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIGlmICgkKGUudGFyZ2V0KS5pcyh0aGF0LiRlbGVtZW50KSkgdGhhdC5pZ25vcmVCYWNrZHJvcENsaWNrID0gdHJ1ZVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyIHRyYW5zaXRpb24gPSAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGF0LiRlbGVtZW50Lmhhc0NsYXNzKCdmYWRlJylcclxuXHJcbiAgICAgIGlmICghdGhhdC4kZWxlbWVudC5wYXJlbnQoKS5sZW5ndGgpIHtcclxuICAgICAgICB0aGF0LiRlbGVtZW50LmFwcGVuZFRvKHRoYXQuJGJvZHkpIC8vIGRvbid0IG1vdmUgbW9kYWxzIGRvbSBwb3NpdGlvblxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGF0LiRlbGVtZW50XHJcbiAgICAgICAgLnNob3coKVxyXG4gICAgICAgIC5zY3JvbGxUb3AoMClcclxuXHJcbiAgICAgIHRoYXQuYWRqdXN0RGlhbG9nKClcclxuXHJcbiAgICAgIGlmICh0cmFuc2l0aW9uKSB7XHJcbiAgICAgICAgdGhhdC4kZWxlbWVudFswXS5vZmZzZXRXaWR0aCAvLyBmb3JjZSByZWZsb3dcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhhdC4kZWxlbWVudC5hZGRDbGFzcygnaW4nKVxyXG5cclxuICAgICAgdGhhdC5lbmZvcmNlRm9jdXMoKVxyXG5cclxuICAgICAgdmFyIGUgPSAkLkV2ZW50KCdzaG93bi53cGJjLm1vZGFsJywgeyByZWxhdGVkVGFyZ2V0OiBfcmVsYXRlZFRhcmdldCB9KVxyXG5cclxuICAgICAgdHJhbnNpdGlvbiA/XHJcbiAgICAgICAgdGhhdC4kZGlhbG9nIC8vIHdhaXQgZm9yIG1vZGFsIHRvIHNsaWRlIGluXHJcbiAgICAgICAgICAub25lKCdic1RyYW5zaXRpb25FbmQnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKS50cmlnZ2VyKGUpXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmVtdWxhdGVUcmFuc2l0aW9uRW5kKE1vZGFsLlRSQU5TSVRJT05fRFVSQVRJT04pIDpcclxuICAgICAgICB0aGF0LiRlbGVtZW50LnRyaWdnZXIoJ2ZvY3VzJykudHJpZ2dlcihlKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKGUpIHtcclxuICAgIGlmIChlKSBlLnByZXZlbnREZWZhdWx0KClcclxuXHJcbiAgICBlID0gJC5FdmVudCgnaGlkZS53cGJjLm1vZGFsJylcclxuXHJcbiAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSlcclxuXHJcbiAgICBpZiAoIXRoaXMuaXNTaG93biB8fCBlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm5cclxuXHJcbiAgICB0aGlzLmlzU2hvd24gPSBmYWxzZVxyXG5cclxuICAgIHRoaXMuZXNjYXBlKClcclxuICAgIHRoaXMucmVzaXplKClcclxuXHJcbiAgICAkKGRvY3VtZW50KS5vZmYoJ2ZvY3VzaW4ud3BiYy5tb2RhbCcpXHJcblxyXG4gICAgdGhpcy4kZWxlbWVudFxyXG4gICAgICAucmVtb3ZlQ2xhc3MoJ2luJylcclxuICAgICAgLm9mZignY2xpY2suZGlzbWlzcy53cGJjLm1vZGFsJylcclxuICAgICAgLm9mZignbW91c2V1cC5kaXNtaXNzLndwYmMubW9kYWwnKVxyXG5cclxuICAgIHRoaXMuJGRpYWxvZy5vZmYoJ21vdXNlZG93bi5kaXNtaXNzLndwYmMubW9kYWwnKVxyXG5cclxuICAgICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/XHJcbiAgICAgIHRoaXMuJGVsZW1lbnRcclxuICAgICAgICAub25lKCdic1RyYW5zaXRpb25FbmQnLCAkLnByb3h5KHRoaXMuaGlkZU1vZGFsLCB0aGlzKSlcclxuICAgICAgICAuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuVFJBTlNJVElPTl9EVVJBVElPTikgOlxyXG4gICAgICB0aGlzLmhpZGVNb2RhbCgpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuZW5mb3JjZUZvY3VzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgJChkb2N1bWVudClcclxuICAgICAgLm9mZignZm9jdXNpbi53cGJjLm1vZGFsJykgLy8gZ3VhcmQgYWdhaW5zdCBpbmZpbml0ZSBmb2N1cyBsb29wXHJcbiAgICAgIC5vbignZm9jdXNpbi53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgIGlmICh0aGlzLiRlbGVtZW50WzBdICE9PSBlLnRhcmdldCAmJiAhdGhpcy4kZWxlbWVudC5oYXMoZS50YXJnZXQpLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKCdmb2N1cycpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LCB0aGlzKSlcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5lc2NhcGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICBpZiAodGhpcy5pc1Nob3duICYmIHRoaXMub3B0aW9ucy5rZXlib2FyZCkge1xyXG4gICAgICB0aGlzLiRlbGVtZW50Lm9uKCdrZXlkb3duLmRpc21pc3Mud3BiYy5tb2RhbCcsICQucHJveHkoZnVuY3Rpb24gKGUpIHtcclxuICAgICAgICBlLndoaWNoID09IDI3ICYmIHRoaXMuaGlkZSgpXHJcbiAgICAgIH0sIHRoaXMpKVxyXG4gICAgfSBlbHNlIGlmICghdGhpcy5pc1Nob3duKSB7XHJcbiAgICAgIHRoaXMuJGVsZW1lbnQub2ZmKCdrZXlkb3duLmRpc21pc3Mud3BiYy5tb2RhbCcpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUucmVzaXplID0gZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKHRoaXMuaXNTaG93bikge1xyXG4gICAgICAkKHdpbmRvdykub24oJ3Jlc2l6ZS53cGJjLm1vZGFsJywgJC5wcm94eSh0aGlzLmhhbmRsZVVwZGF0ZSwgdGhpcykpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAkKHdpbmRvdykub2ZmKCdyZXNpemUud3BiYy5tb2RhbCcpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUuaGlkZU1vZGFsID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIHRoYXQgPSB0aGlzXHJcbiAgICB0aGlzLiRlbGVtZW50LmhpZGUoKVxyXG4gICAgdGhpcy5iYWNrZHJvcChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHRoYXQuJGJvZHkucmVtb3ZlQ2xhc3MoJ21vZGFsLW9wZW4nKVxyXG4gICAgICB0aGF0LnJlc2V0QWRqdXN0bWVudHMoKVxyXG4gICAgICB0aGF0LnJlc2V0U2Nyb2xsYmFyKClcclxuICAgICAgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdoaWRkZW4ud3BiYy5tb2RhbCcpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnJlbW92ZUJhY2tkcm9wID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdGhpcy4kYmFja2Ryb3AgJiYgdGhpcy4kYmFja2Ryb3AucmVtb3ZlKClcclxuICAgIHRoaXMuJGJhY2tkcm9wID0gbnVsbFxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmJhY2tkcm9wID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XHJcbiAgICB2YXIgdGhhdCA9IHRoaXNcclxuICAgIHZhciBhbmltYXRlID0gdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpID8gJ2ZhZGUnIDogJydcclxuXHJcbiAgICBpZiAodGhpcy5pc1Nob3duICYmIHRoaXMub3B0aW9ucy5iYWNrZHJvcCkge1xyXG4gICAgICB2YXIgZG9BbmltYXRlID0gJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgYW5pbWF0ZVxyXG5cclxuICAgICAgdGhpcy4kYmFja2Ryb3AgPSAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKVxyXG4gICAgICAgIC5hZGRDbGFzcygnbW9kYWwtYmFja2Ryb3AgJyArIGFuaW1hdGUpXHJcbiAgICAgICAgLmFwcGVuZFRvKHRoaXMuJGJvZHkpXHJcblxyXG4gICAgICB0aGlzLiRlbGVtZW50Lm9uKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnLCAkLnByb3h5KGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaykge1xyXG4gICAgICAgICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2VcclxuICAgICAgICAgIHJldHVyblxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZS50YXJnZXQgIT09IGUuY3VycmVudFRhcmdldCkgcmV0dXJuXHJcbiAgICAgICAgdGhpcy5vcHRpb25zLmJhY2tkcm9wID09ICdzdGF0aWMnXHJcbiAgICAgICAgICA/IHRoaXMuJGVsZW1lbnRbMF0uZm9jdXMoKVxyXG4gICAgICAgICAgOiB0aGlzLmhpZGUoKVxyXG4gICAgICB9LCB0aGlzKSlcclxuXHJcbiAgICAgIGlmIChkb0FuaW1hdGUpIHRoaXMuJGJhY2tkcm9wWzBdLm9mZnNldFdpZHRoIC8vIGZvcmNlIHJlZmxvd1xyXG5cclxuICAgICAgdGhpcy4kYmFja2Ryb3AuYWRkQ2xhc3MoJ2luJylcclxuXHJcbiAgICAgIGlmICghY2FsbGJhY2spIHJldHVyblxyXG5cclxuICAgICAgZG9BbmltYXRlID9cclxuICAgICAgICB0aGlzLiRiYWNrZHJvcFxyXG4gICAgICAgICAgLm9uZSgnYnNUcmFuc2l0aW9uRW5kJywgY2FsbGJhY2spXHJcbiAgICAgICAgICAuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTikgOlxyXG4gICAgICAgIGNhbGxiYWNrKClcclxuXHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzU2hvd24gJiYgdGhpcy4kYmFja2Ryb3ApIHtcclxuICAgICAgdGhpcy4kYmFja2Ryb3AucmVtb3ZlQ2xhc3MoJ2luJylcclxuXHJcbiAgICAgIHZhciBjYWxsYmFja1JlbW92ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB0aGF0LnJlbW92ZUJhY2tkcm9wKClcclxuICAgICAgICBjYWxsYmFjayAmJiBjYWxsYmFjaygpXHJcbiAgICAgIH1cclxuICAgICAgJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpID9cclxuICAgICAgICB0aGlzLiRiYWNrZHJvcFxyXG4gICAgICAgICAgLm9uZSgnYnNUcmFuc2l0aW9uRW5kJywgY2FsbGJhY2tSZW1vdmUpXHJcbiAgICAgICAgICAuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTikgOlxyXG4gICAgICAgIGNhbGxiYWNrUmVtb3ZlKClcclxuXHJcbiAgICB9IGVsc2UgaWYgKGNhbGxiYWNrKSB7XHJcbiAgICAgIGNhbGxiYWNrKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHRoZXNlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIHRvIGhhbmRsZSBvdmVyZmxvd2luZyBtb2RhbHNcclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmhhbmRsZVVwZGF0ZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHRoaXMuYWRqdXN0RGlhbG9nKClcclxuICB9XHJcblxyXG4gIE1vZGFsLnByb3RvdHlwZS5hZGp1c3REaWFsb2cgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgbW9kYWxJc092ZXJmbG93aW5nID0gdGhpcy4kZWxlbWVudFswXS5zY3JvbGxIZWlnaHQgPiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0XHJcblxyXG4gICAgdGhpcy4kZWxlbWVudC5jc3Moe1xyXG4gICAgICBwYWRkaW5nTGVmdDogICF0aGlzLmJvZHlJc092ZXJmbG93aW5nICYmIG1vZGFsSXNPdmVyZmxvd2luZyA/IHRoaXMuc2Nyb2xsYmFyV2lkdGggOiAnJyxcclxuICAgICAgcGFkZGluZ1JpZ2h0OiB0aGlzLmJvZHlJc092ZXJmbG93aW5nICYmICFtb2RhbElzT3ZlcmZsb3dpbmcgPyB0aGlzLnNjcm9sbGJhcldpZHRoIDogJydcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUucmVzZXRBZGp1c3RtZW50cyA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHRoaXMuJGVsZW1lbnQuY3NzKHtcclxuICAgICAgcGFkZGluZ0xlZnQ6ICcnLFxyXG4gICAgICBwYWRkaW5nUmlnaHQ6ICcnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLmNoZWNrU2Nyb2xsYmFyID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGZ1bGxXaW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoXHJcbiAgICBpZiAoIWZ1bGxXaW5kb3dXaWR0aCkgeyAvLyB3b3JrYXJvdW5kIGZvciBtaXNzaW5nIHdpbmRvdy5pbm5lcldpZHRoIGluIElFOFxyXG4gICAgICB2YXIgZG9jdW1lbnRFbGVtZW50UmVjdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxyXG4gICAgICBmdWxsV2luZG93V2lkdGggPSBkb2N1bWVudEVsZW1lbnRSZWN0LnJpZ2h0IC0gTWF0aC5hYnMoZG9jdW1lbnRFbGVtZW50UmVjdC5sZWZ0KVxyXG4gICAgfVxyXG4gICAgdGhpcy5ib2R5SXNPdmVyZmxvd2luZyA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggPCBmdWxsV2luZG93V2lkdGhcclxuICAgIHRoaXMuc2Nyb2xsYmFyV2lkdGggPSB0aGlzLm1lYXN1cmVTY3JvbGxiYXIoKVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLnNldFNjcm9sbGJhciA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBib2R5UGFkID0gcGFyc2VJbnQoKHRoaXMuJGJvZHkuY3NzKCdwYWRkaW5nLXJpZ2h0JykgfHwgMCksIDEwKVxyXG4gICAgdGhpcy5vcmlnaW5hbEJvZHlQYWQgPSBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCB8fCAnJ1xyXG4gICAgaWYgKHRoaXMuYm9keUlzT3ZlcmZsb3dpbmcpIHRoaXMuJGJvZHkuY3NzKCdwYWRkaW5nLXJpZ2h0JywgYm9keVBhZCArIHRoaXMuc2Nyb2xsYmFyV2lkdGgpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcsIHRoaXMub3JpZ2luYWxCb2R5UGFkKVxyXG4gIH1cclxuXHJcbiAgTW9kYWwucHJvdG90eXBlLm1lYXN1cmVTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7IC8vIHRoeCB3YWxzaFxyXG4gICAgdmFyIHNjcm9sbERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXHJcbiAgICBzY3JvbGxEaXYuY2xhc3NOYW1lID0gJ21vZGFsLXNjcm9sbGJhci1tZWFzdXJlJ1xyXG4gICAgdGhpcy4kYm9keS5hcHBlbmQoc2Nyb2xsRGl2KVxyXG4gICAgdmFyIHNjcm9sbGJhcldpZHRoID0gc2Nyb2xsRGl2Lm9mZnNldFdpZHRoIC0gc2Nyb2xsRGl2LmNsaWVudFdpZHRoXHJcbiAgICB0aGlzLiRib2R5WzBdLnJlbW92ZUNoaWxkKHNjcm9sbERpdilcclxuICAgIHJldHVybiBzY3JvbGxiYXJXaWR0aFxyXG4gIH1cclxuXHJcblxyXG4gIC8vIE1PREFMIFBMVUdJTiBERUZJTklUSU9OXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgZnVuY3Rpb24gUGx1Z2luKG9wdGlvbiwgX3JlbGF0ZWRUYXJnZXQpIHtcclxuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgJHRoaXMgICA9ICQodGhpcylcclxuICAgICAgdmFyIGRhdGEgICAgPSAkdGhpcy5kYXRhKCd3cGJjLm1vZGFsJylcclxuICAgICAgdmFyIG9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgTW9kYWwuREVGQVVMVFMsICR0aGlzLmRhdGEoKSwgdHlwZW9mIG9wdGlvbiA9PSAnb2JqZWN0JyAmJiBvcHRpb24pXHJcblxyXG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMubW9kYWwnLCAoZGF0YSA9IG5ldyBNb2RhbCh0aGlzLCBvcHRpb25zKSkpXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0oX3JlbGF0ZWRUYXJnZXQpXHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbnMuc2hvdykgZGF0YS5zaG93KF9yZWxhdGVkVGFyZ2V0KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHZhciBvbGQgPSAkLmZuLndwYmNfbXlfbW9kYWxcclxuXHJcbiAgJC5mbi53cGJjX215X21vZGFsICAgICAgICAgICAgID0gUGx1Z2luXHJcbiAgJC5mbi53cGJjX215X21vZGFsLkNvbnN0cnVjdG9yID0gTW9kYWxcclxuXHJcblxyXG4gIC8vIE1PREFMIE5PIENPTkZMSUNUXHJcbiAgLy8gPT09PT09PT09PT09PT09PT1cclxuXHJcbiAgJC5mbi53cGJjX215X21vZGFsLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAkLmZuLndwYmNfbXlfbW9kYWwgPSBvbGRcclxuICAgIHJldHVybiB0aGlzXHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gTU9EQUwgREFUQS1BUElcclxuICAvLyA9PT09PT09PT09PT09PVxyXG5cclxuICAkKGRvY3VtZW50KS5vbignY2xpY2sud3BiYy5tb2RhbC5kYXRhLWFwaScsICdbZGF0YS10b2dnbGU9XCJ3cGJjX215X21vZGFsXCJdJywgZnVuY3Rpb24gKGUpIHtcclxuICAgIHZhciAkdGhpcyAgID0gJCh0aGlzKVxyXG4gICAgdmFyIGhyZWYgICAgPSAkdGhpcy5hdHRyKCdocmVmJylcclxuICAgIHZhciAkdGFyZ2V0ID0gJCgkdGhpcy5hdHRyKCdkYXRhLXRhcmdldCcpIHx8IChocmVmICYmIGhyZWYucmVwbGFjZSgvLiooPz0jW15cXHNdKyQpLywgJycpKSkgLy8gc3RyaXAgZm9yIGllN1xyXG4gICAgdmFyIG9wdGlvbiAgPSAkdGFyZ2V0LmRhdGEoJ3dwYmMubW9kYWwnKSA/ICd0b2dnbGUnIDogJC5leHRlbmQoeyByZW1vdGU6ICEvIy8udGVzdChocmVmKSAmJiBocmVmIH0sICR0YXJnZXQuZGF0YSgpLCAkdGhpcy5kYXRhKCkpXHJcblxyXG4gICAgaWYgKCR0aGlzLmlzKCdhJykpIGUucHJldmVudERlZmF1bHQoKVxyXG5cclxuICAgICR0YXJnZXQub25lKCdzaG93LndwYmMubW9kYWwnLCBmdW5jdGlvbiAoc2hvd0V2ZW50KSB7XHJcbiAgICAgIGlmIChzaG93RXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVybiAvLyBvbmx5IHJlZ2lzdGVyIGZvY3VzIHJlc3RvcmVyIGlmIG1vZGFsIHdpbGwgYWN0dWFsbHkgZ2V0IHNob3duXHJcbiAgICAgICR0YXJnZXQub25lKCdoaWRkZW4ud3BiYy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAkdGhpcy5pcygnOnZpc2libGUnKSAmJiAkdGhpcy50cmlnZ2VyKCdmb2N1cycpXHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gICAgUGx1Z2luLmNhbGwoJHRhcmdldCwgb3B0aW9uLCB0aGlzKVxyXG4gIH0pXHJcblxyXG59KGpRdWVyeSk7XHJcblxyXG5cclxuK2Z1bmN0aW9uICgkKSB7XHJcbiAgJ3VzZSBzdHJpY3QnO1xyXG5cclxuICAvLyBEUk9QRE9XTiBDTEFTUyBERUZJTklUSU9OXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICB2YXIgYmFja2Ryb3AgPSAnLmRyb3Bkb3duLWJhY2tkcm9wJ1xyXG4gIHZhciB0b2dnbGUgICA9ICdbZGF0YS10b2dnbGU9XCJ3cGJjX2Ryb3Bkb3duXCJdJ1xyXG4gIHZhciBEcm9wZG93biA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XHJcbiAgICAkKGVsZW1lbnQpLm9uKCdjbGljay53cGJjLmRyb3Bkb3duJywgdGhpcy50b2dnbGUpXHJcbiAgfVxyXG5cclxuICBEcm9wZG93bi5WRVJTSU9OID0gJzMuMy41J1xyXG5cclxuICBmdW5jdGlvbiBnZXRQYXJlbnQoJHRoaXMpIHtcclxuICAgIHZhciBzZWxlY3RvciA9ICR0aGlzLmF0dHIoJ2RhdGEtdGFyZ2V0JylcclxuXHJcbiAgICBpZiAoIXNlbGVjdG9yKSB7XHJcbiAgICAgIHNlbGVjdG9yID0gJHRoaXMuYXR0cignaHJlZicpXHJcbiAgICAgIHNlbGVjdG9yID0gc2VsZWN0b3IgJiYgLyNbQS1aYS16XS8udGVzdChzZWxlY3RvcikgJiYgc2VsZWN0b3IucmVwbGFjZSgvLiooPz0jW15cXHNdKiQpLywgJycpIC8vIHN0cmlwIGZvciBpZTdcclxuICAgIH1cclxuXHJcbiAgICB2YXIgJHBhcmVudCA9IHNlbGVjdG9yICYmICQoc2VsZWN0b3IpXHJcblxyXG4gICAgcmV0dXJuICRwYXJlbnQgJiYgJHBhcmVudC5sZW5ndGggPyAkcGFyZW50IDogJHRoaXMucGFyZW50KClcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIGNsZWFyTWVudXMoZSkge1xyXG4gICAgaWYgKGUgJiYgZS53aGljaCA9PT0gMykgcmV0dXJuXHJcbiAgICAkKGJhY2tkcm9wKS5yZW1vdmUoKVxyXG4gICAgJCh0b2dnbGUpLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgJHRoaXMgICAgICAgICA9ICQodGhpcylcclxuICAgICAgdmFyICRwYXJlbnQgICAgICAgPSBnZXRQYXJlbnQoJHRoaXMpXHJcbiAgICAgIHZhciByZWxhdGVkVGFyZ2V0ID0geyByZWxhdGVkVGFyZ2V0OiB0aGlzIH1cclxuXHJcbiAgICAgIGlmICghJHBhcmVudC5oYXNDbGFzcygnb3BlbicpKSByZXR1cm5cclxuXHJcbiAgICAgIGlmIChlICYmIGUudHlwZSA9PSAnY2xpY2snICYmIC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QoZS50YXJnZXQudGFnTmFtZSkgJiYgJC5jb250YWlucygkcGFyZW50WzBdLCBlLnRhcmdldCkpIHJldHVyblxyXG5cclxuICAgICAgJHBhcmVudC50cmlnZ2VyKGUgPSAkLkV2ZW50KCdoaWRlLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KSlcclxuXHJcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm5cclxuXHJcbiAgICAgICR0aGlzLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKVxyXG4gICAgICAkcGFyZW50LnJlbW92ZUNsYXNzKCdvcGVuJykudHJpZ2dlcignaGlkZGVuLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgdmFyICR0aGlzID0gJCh0aGlzKVxyXG5cclxuICAgIGlmICgkdGhpcy5pcygnLmRpc2FibGVkLCA6ZGlzYWJsZWQnKSkgcmV0dXJuXHJcblxyXG4gICAgdmFyICRwYXJlbnQgID0gZ2V0UGFyZW50KCR0aGlzKVxyXG4gICAgdmFyIGlzQWN0aXZlID0gJHBhcmVudC5oYXNDbGFzcygnb3BlbicpXHJcblxyXG4gICAgY2xlYXJNZW51cygpXHJcblxyXG4gICAgaWYgKCFpc0FjdGl2ZSkge1xyXG4gICAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmICEkcGFyZW50LmNsb3Nlc3QoJy5uYXZiYXItbmF2JykubGVuZ3RoKSB7XHJcbiAgICAgICAgLy8gaWYgbW9iaWxlIHdlIHVzZSBhIGJhY2tkcm9wIGJlY2F1c2UgY2xpY2sgZXZlbnRzIGRvbid0IGRlbGVnYXRlXHJcbiAgICAgICAgJChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSlcclxuICAgICAgICAgIC5hZGRDbGFzcygnZHJvcGRvd24tYmFja2Ryb3AnKVxyXG4gICAgICAgICAgLmluc2VydEFmdGVyKCQodGhpcykpXHJcbiAgICAgICAgICAub24oJ2NsaWNrJywgY2xlYXJNZW51cylcclxuICAgICAgfVxyXG5cclxuICAgICAgdmFyIHJlbGF0ZWRUYXJnZXQgPSB7IHJlbGF0ZWRUYXJnZXQ6IHRoaXMgfVxyXG4gICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ3Nob3cud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKVxyXG5cclxuICAgICAgaWYgKGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVyblxyXG5cclxuICAgICAgJHRoaXNcclxuICAgICAgICAudHJpZ2dlcignZm9jdXMnKVxyXG4gICAgICAgIC5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ3RydWUnKVxyXG5cclxuICAgICAgJHBhcmVudFxyXG4gICAgICAgIC50b2dnbGVDbGFzcygnb3BlbicpXHJcbiAgICAgICAgLnRyaWdnZXIoJ3Nob3duLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24gPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgaWYgKCEvKDM4fDQwfDI3fDMyKS8udGVzdChlLndoaWNoKSB8fCAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpKSByZXR1cm5cclxuXHJcbiAgICB2YXIgJHRoaXMgPSAkKHRoaXMpXHJcblxyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXHJcblxyXG4gICAgaWYgKCR0aGlzLmlzKCcuZGlzYWJsZWQsIDpkaXNhYmxlZCcpKSByZXR1cm5cclxuXHJcbiAgICB2YXIgJHBhcmVudCAgPSBnZXRQYXJlbnQoJHRoaXMpXHJcbiAgICB2YXIgaXNBY3RpdmUgPSAkcGFyZW50Lmhhc0NsYXNzKCdvcGVuJylcclxuXHJcbiAgICBpZiAoIWlzQWN0aXZlICYmIGUud2hpY2ggIT0gMjcgfHwgaXNBY3RpdmUgJiYgZS53aGljaCA9PSAyNykge1xyXG4gICAgICBpZiAoZS53aGljaCA9PSAyNykgJHBhcmVudC5maW5kKHRvZ2dsZSkudHJpZ2dlcignZm9jdXMnKVxyXG4gICAgICByZXR1cm4gJHRoaXMudHJpZ2dlcignY2xpY2snKVxyXG4gICAgfVxyXG5cclxuICAgIHZhciBkZXNjID0gJyBsaTpub3QoLmRpc2FibGVkKTp2aXNpYmxlIGEnXHJcbiAgICB2YXIgJGl0ZW1zID0gJHBhcmVudC5maW5kKCcuZHJvcGRvd24tbWVudScgKyBkZXNjICsgJywudWlfZHJvcGRvd25fbWVudScgKyBkZXNjKVxyXG5cclxuICAgIGlmICghJGl0ZW1zLmxlbmd0aCkgcmV0dXJuXHJcblxyXG4gICAgdmFyIGluZGV4ID0gJGl0ZW1zLmluZGV4KGUudGFyZ2V0KVxyXG5cclxuICAgIGlmIChlLndoaWNoID09IDM4ICYmIGluZGV4ID4gMCkgICAgICAgICAgICAgICAgIGluZGV4LS0gICAgICAgICAvLyB1cFxyXG4gICAgaWYgKGUud2hpY2ggPT0gNDAgJiYgaW5kZXggPCAkaXRlbXMubGVuZ3RoIC0gMSkgaW5kZXgrKyAgICAgICAgIC8vIGRvd25cclxuICAgIGlmICghfmluZGV4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gMFxyXG5cclxuICAgICRpdGVtcy5lcShpbmRleCkudHJpZ2dlcignZm9jdXMnKVxyXG4gIH1cclxuXHJcblxyXG4gIC8vIERST1BET1dOIFBMVUdJTiBERUZJTklUSU9OXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgZnVuY3Rpb24gUGx1Z2luKG9wdGlvbikge1xyXG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuICAgICAgdmFyIGRhdGEgID0gJHRoaXMuZGF0YSgnd3BiYy5kcm9wZG93bicpXHJcblxyXG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMuZHJvcGRvd24nLCAoZGF0YSA9IG5ldyBEcm9wZG93bih0aGlzKSkpXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0uY2FsbCgkdGhpcylcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB2YXIgb2xkID0gJC5mbi53cGJjX2Ryb3Bkb3duXHJcblxyXG4gICQuZm4ud3BiY19kcm9wZG93biAgICAgICAgICAgICA9IFBsdWdpblxyXG4gICQuZm4ud3BiY19kcm9wZG93bi5Db25zdHJ1Y3RvciA9IERyb3Bkb3duXHJcblxyXG5cclxuICAvLyBEUk9QRE9XTiBOTyBDT05GTElDVFxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gICQuZm4ud3BiY19kcm9wZG93bi5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgJC5mbi53cGJjX2Ryb3Bkb3duID0gb2xkXHJcbiAgICByZXR1cm4gdGhpc1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIEFQUExZIFRPIFNUQU5EQVJEIERST1BET1dOIEVMRU1FTlRTXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgJChkb2N1bWVudClcclxuICAgIC5vbignY2xpY2sud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsIGNsZWFyTWVudXMpXHJcbiAgICAub24oJ2NsaWNrLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duIGZvcm0nLCBmdW5jdGlvbiAoZSkgeyBlLnN0b3BQcm9wYWdhdGlvbigpIH0pXHJcbiAgICAub24oJ2NsaWNrLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCB0b2dnbGUsIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUpXHJcbiAgICAub24oJ2tleWRvd24ud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsIHRvZ2dsZSwgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24pXHJcbiAgICAub24oJ2tleWRvd24ud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsICcuZHJvcGRvd24tbWVudScsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKVxyXG4gICAgLm9uKCdrZXlkb3duLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCAnLnVpX2Ryb3Bkb3duX21lbnUnLCBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93bilcclxuXHJcbn0oalF1ZXJ5KTtcclxuIl0sImZpbGUiOiJhc3NldHMvbGlicy91aS9fb3V0L2Ryb3Bkb3duX21vZGFsLmpzIn0=
assets/libs/ui/_out/dropdown_modal.min.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(){var t=jQuery.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(),function(s){function r(t,e){this.options=e,this.$body=s(document.body),this.$element=s(t),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,s.proxy(function(){this.$element.trigger("loaded.wpbc.modal")},this))}function n(i,n){return this.each(function(){var t=s(this),e=t.data("wpbc.modal"),o=s.extend({},r.DEFAULTS,t.data(),"object"==_typeof(i)&&i);e||t.data("wpbc.modal",e=new r(this,o)),"string"==typeof i?e[i](n):o.show&&e.show(n)})}r.VERSION="3.3.5",r.TRANSITION_DURATION=300,r.BACKDROP_TRANSITION_DURATION=150,r.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},r.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},r.prototype.show=function(o){var i=this,t=s.Event("show.wpbc.modal",{relatedTarget:o});this.$element.trigger(t),this.isShown||t.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.wpbc.modal",'[data-dismiss="modal"]',s.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.wpbc.modal",function(){i.$element.one("mouseup.dismiss.wpbc.modal",function(t){s(t.target).is(i.$element)&&(i.ignoreBackdropClick=!0)})}),this.backdrop(function(){var t=s.support.transition&&i.$element.hasClass("fade");i.$element.parent().length||i.$element.appendTo(i.$body),i.$element.show().scrollTop(0),i.adjustDialog(),t&&i.$element[0].offsetWidth,i.$element.addClass("in"),i.enforceFocus();var e=s.Event("shown.wpbc.modal",{relatedTarget:o});t?i.$dialog.one("bsTransitionEnd",function(){i.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(r.TRANSITION_DURATION):i.$element.trigger("focus").trigger(e)}))},r.prototype.hide=function(t){t&&t.preventDefault(),t=s.Event("hide.wpbc.modal"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),s(document).off("focusin.wpbc.modal"),this.$element.removeClass("in").off("click.dismiss.wpbc.modal").off("mouseup.dismiss.wpbc.modal"),this.$dialog.off("mousedown.dismiss.wpbc.modal"),s.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",s.proxy(this.hideModal,this)).emulateTransitionEnd(r.TRANSITION_DURATION):this.hideModal())},r.prototype.enforceFocus=function(){s(document).off("focusin.wpbc.modal").on("focusin.wpbc.modal",s.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},r.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.wpbc.modal",s.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.wpbc.modal")},r.prototype.resize=function(){this.isShown?s(window).on("resize.wpbc.modal",s.proxy(this.handleUpdate,this)):s(window).off("resize.wpbc.modal")},r.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.wpbc.modal")})},r.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},r.prototype.backdrop=function(t){var e,o=this,i=this.$element.hasClass("fade")?"fade":"";this.isShown&&this.options.backdrop?(e=s.support.transition&&i,this.$backdrop=s(document.createElement("div")).addClass("modal-backdrop "+i).appendTo(this.$body),this.$element.on("click.dismiss.wpbc.modal",s.proxy(function(t){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide())},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),t&&(e?this.$backdrop.one("bsTransitionEnd",t).emulateTransitionEnd(r.BACKDROP_TRANSITION_DURATION):t())):!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e=function(){o.removeBackdrop(),t&&t()},s.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(r.BACKDROP_TRANSITION_DURATION):e()):t&&t()},r.prototype.handleUpdate=function(){this.adjustDialog()},r.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},r.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},r.prototype.checkScrollbar=function(){var t,e=window.innerWidth;e||(e=(t=document.documentElement.getBoundingClientRect()).right-Math.abs(t.left)),this.bodyIsOverflowing=document.body.clientWidth<e,this.scrollbarWidth=this.measureScrollbar()},r.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},r.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},r.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var t=s.fn.wpbc_my_modal;s.fn.wpbc_my_modal=n,s.fn.wpbc_my_modal.Constructor=r,s.fn.wpbc_my_modal.noConflict=function(){return s.fn.wpbc_my_modal=t,this},s(document).on("click.wpbc.modal.data-api",'[data-toggle="wpbc_my_modal"]',function(t){var e=s(this),o=e.attr("href"),i=s(e.attr("data-target")||o&&o.replace(/.*(?=#[^\s]+$)/,"")),o=i.data("wpbc.modal")?"toggle":s.extend({remote:!/#/.test(o)&&o},i.data(),e.data());e.is("a")&&t.preventDefault(),i.one("show.wpbc.modal",function(t){t.isDefaultPrevented()||i.one("hidden.wpbc.modal",function(){e.is(":visible")&&e.trigger("focus")})}),n.call(i,o,this)})}(jQuery),function(n){function i(t){n(t).on("click.wpbc.dropdown",this.toggle)}var s='[data-toggle="wpbc_dropdown"]';function r(t){var e=t.attr("data-target"),e=(e=e||(e=t.attr("href"))&&/#[A-Za-z]/.test(e)&&e.replace(/.*(?=#[^\s]*$)/,""))&&n(e);return e&&e.length?e:t.parent()}function a(i){i&&3===i.which||(n(".dropdown-backdrop").remove(),n(s).each(function(){var t=n(this),e=r(t),o={relatedTarget:this};e.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&n.contains(e[0],i.target)||(e.trigger(i=n.Event("hide.wpbc.dropdown",o)),i.isDefaultPrevented()||(t.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.wpbc.dropdown",o))))}))}i.VERSION="3.3.5",i.prototype.toggle=function(t){var e=n(this);if(!e.is(".disabled, :disabled")){var o=r(e),i=o.hasClass("open");if(a(),!i){"ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&n(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(n(this)).on("click",a);i={relatedTarget:this};if(o.trigger(t=n.Event("show.wpbc.dropdown",i)),t.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),o.toggleClass("open").trigger("shown.wpbc.dropdown",i)}return!1}},i.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var e=n(this);if(t.preventDefault(),t.stopPropagation(),!e.is(".disabled, :disabled")){var o=r(e),i=o.hasClass("open");if(!i&&27!=t.which||i&&27==t.which)return 27==t.which&&o.find(s).trigger("focus"),e.trigger("click");e=o.find(".dropdown-menu li:not(.disabled):visible a");e.length&&(o=e.index(t.target),38==t.which&&0<o&&o--,40==t.which&&o<e.length-1&&o++,e.eq(o=!~o?0:o).trigger("focus"))}}};var t=n.fn.wpbc_dropdown;n.fn.wpbc_dropdown=function(o){return this.each(function(){var t=n(this),e=t.data("wpbc.dropdown");e||t.data("wpbc.dropdown",e=new i(this)),"string"==typeof o&&e[o].call(t)})},n.fn.wpbc_dropdown.Constructor=i,n.fn.wpbc_dropdown.noConflict=function(){return n.fn.wpbc_dropdown=t,this},n(document).on("click.wpbc.dropdown.data-api",a).on("click.wpbc.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.wpbc.dropdown.data-api",s,i.prototype.toggle).on("keydown.wpbc.dropdown.data-api",s,i.prototype.keydown).on("keydown.wpbc.dropdown.data-api",".dropdown-menu",i.prototype.keydown)}(jQuery);
2
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2xpYnMvdWkvX291dC9kcm9wZG93bl9tb2RhbC5taW4uanMiLCJzb3VyY2VzIjpbImFzc2V0cy9saWJzL3VpL19vdXQvZHJvcGRvd25fbW9kYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgcmV0dXJuIF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9IDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9LCBfdHlwZW9mKG9iaik7IH1cblxuLyohXHJcbiAqIEdlbmVyYXRlZCB1c2luZyB0aGUgQm9vdHN0cmFwIEN1c3RvbWl6ZXIgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2N1c3RvbWl6ZS8/aWQ9ZjRiNGM5Y2I4NWRmNzU3Y2EwOGMpXHJcbiAqIENvbmZpZyBzYXZlZCB0byBjb25maWcuanNvbiBhbmQgaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZjRiNGM5Y2I4NWRmNzU3Y2EwOGNcclxuICovXG5pZiAodHlwZW9mIGpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdCb290c3RyYXBcXCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Jyk7XG59XG5cbitmdW5jdGlvbiAoJCkge1xuICAndXNlIHN0cmljdCc7XG5cbiAgdmFyIHZlcnNpb24gPSAkLmZuLmpxdWVyeS5zcGxpdCgnICcpWzBdLnNwbGl0KCcuJyk7XG5cbiAgaWYgKHZlcnNpb25bMF0gPCAyICYmIHZlcnNpb25bMV0gPCA5IHx8IHZlcnNpb25bMF0gPT0gMSAmJiB2ZXJzaW9uWzFdID09IDkgJiYgdmVyc2lvblsyXSA8IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Jvb3RzdHJhcFxcJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkgdmVyc2lvbiAxLjkuMSBvciBoaWdoZXInKTtcbiAgfVxufShqUXVlcnkpO1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIEJvb3RzdHJhcDogbW9kYWwuanMgdjMuMy41XHJcbiAqIGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2phdmFzY3JpcHQvI21vZGFsc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTEtMjAxNSBUd2l0dGVyLCBJbmMuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4rZnVuY3Rpb24gKCQpIHtcbiAgJ3VzZSBzdHJpY3QnOyAvLyBNT0RBTCBDTEFTUyBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT1cblxuICB2YXIgTW9kYWwgPSBmdW5jdGlvbiBNb2RhbChlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLiRib2R5ID0gJChkb2N1bWVudC5ib2R5KTtcbiAgICB0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KTtcbiAgICB0aGlzLiRkaWFsb2cgPSB0aGlzLiRlbGVtZW50LmZpbmQoJy5tb2RhbC1kaWFsb2cnKTtcbiAgICB0aGlzLiRiYWNrZHJvcCA9IG51bGw7XG4gICAgdGhpcy5pc1Nob3duID0gbnVsbDtcbiAgICB0aGlzLm9yaWdpbmFsQm9keVBhZCA9IG51bGw7XG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCA9IDA7XG4gICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnJlbW90ZSkge1xuICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCcubW9kYWwtY29udGVudCcpLmxvYWQodGhpcy5vcHRpb25zLnJlbW90ZSwgJC5wcm94eShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcignbG9hZGVkLndwYmMubW9kYWwnKTtcbiAgICAgIH0sIHRoaXMpKTtcbiAgICB9XG4gIH07XG5cbiAgTW9kYWwuVkVSU0lPTiA9ICczLjMuNSc7XG4gIE1vZGFsLlRSQU5TSVRJT05fRFVSQVRJT04gPSAzMDA7XG4gIE1vZGFsLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04gPSAxNTA7XG4gIE1vZGFsLkRFRkFVTFRTID0ge1xuICAgIGJhY2tkcm9wOiB0cnVlLFxuICAgIGtleWJvYXJkOiB0cnVlLFxuICAgIHNob3c6IHRydWVcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24gKF9yZWxhdGVkVGFyZ2V0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTaG93biA/IHRoaXMuaGlkZSgpIDogdGhpcy5zaG93KF9yZWxhdGVkVGFyZ2V0KTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uIChfcmVsYXRlZFRhcmdldCkge1xuICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICB2YXIgZSA9ICQuRXZlbnQoJ3Nob3cud3BiYy5tb2RhbCcsIHtcbiAgICAgIHJlbGF0ZWRUYXJnZXQ6IF9yZWxhdGVkVGFyZ2V0XG4gICAgfSk7XG4gICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKGUpO1xuICAgIGlmICh0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNTaG93biA9IHRydWU7XG4gICAgdGhpcy5jaGVja1Njcm9sbGJhcigpO1xuICAgIHRoaXMuc2V0U2Nyb2xsYmFyKCk7XG4gICAgdGhpcy4kYm9keS5hZGRDbGFzcygnbW9kYWwtb3BlbicpO1xuICAgIHRoaXMuZXNjYXBlKCk7XG4gICAgdGhpcy5yZXNpemUoKTtcbiAgICB0aGlzLiRlbGVtZW50Lm9uKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnLCAnW2RhdGEtZGlzbWlzcz1cIm1vZGFsXCJdJywgJC5wcm94eSh0aGlzLmhpZGUsIHRoaXMpKTtcbiAgICB0aGlzLiRkaWFsb2cub24oJ21vdXNlZG93bi5kaXNtaXNzLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB0aGF0LiRlbGVtZW50Lm9uZSgnbW91c2V1cC5kaXNtaXNzLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAoJChlLnRhcmdldCkuaXModGhhdC4kZWxlbWVudCkpIHRoYXQuaWdub3JlQmFja2Ryb3BDbGljayA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciB0cmFuc2l0aW9uID0gJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgdGhhdC4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpO1xuXG4gICAgICBpZiAoIXRoYXQuJGVsZW1lbnQucGFyZW50KCkubGVuZ3RoKSB7XG4gICAgICAgIHRoYXQuJGVsZW1lbnQuYXBwZW5kVG8odGhhdC4kYm9keSk7IC8vIGRvbid0IG1vdmUgbW9kYWxzIGRvbSBwb3NpdGlvblxuICAgICAgfVxuXG4gICAgICB0aGF0LiRlbGVtZW50LnNob3coKS5zY3JvbGxUb3AoMCk7XG4gICAgICB0aGF0LmFkanVzdERpYWxvZygpO1xuXG4gICAgICBpZiAodHJhbnNpdGlvbikge1xuICAgICAgICB0aGF0LiRlbGVtZW50WzBdLm9mZnNldFdpZHRoOyAvLyBmb3JjZSByZWZsb3dcbiAgICAgIH1cblxuICAgICAgdGhhdC4kZWxlbWVudC5hZGRDbGFzcygnaW4nKTtcbiAgICAgIHRoYXQuZW5mb3JjZUZvY3VzKCk7XG4gICAgICB2YXIgZSA9ICQuRXZlbnQoJ3Nob3duLndwYmMubW9kYWwnLCB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IF9yZWxhdGVkVGFyZ2V0XG4gICAgICB9KTtcbiAgICAgIHRyYW5zaXRpb24gPyB0aGF0LiRkaWFsb2cgLy8gd2FpdCBmb3IgbW9kYWwgdG8gc2xpZGUgaW5cbiAgICAgIC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdmb2N1cycpLnRyaWdnZXIoZSk7XG4gICAgICB9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5UUkFOU0lUSU9OX0RVUkFUSU9OKSA6IHRoYXQuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKS50cmlnZ2VyKGUpO1xuICAgIH0pO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoZSkgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUgPSAkLkV2ZW50KCdoaWRlLndwYmMubW9kYWwnKTtcbiAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSk7XG4gICAgaWYgKCF0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNTaG93biA9IGZhbHNlO1xuICAgIHRoaXMuZXNjYXBlKCk7XG4gICAgdGhpcy5yZXNpemUoKTtcbiAgICAkKGRvY3VtZW50KS5vZmYoJ2ZvY3VzaW4ud3BiYy5tb2RhbCcpO1xuICAgIHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2luJykub2ZmKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnKS5vZmYoJ21vdXNldXAuZGlzbWlzcy53cGJjLm1vZGFsJyk7XG4gICAgdGhpcy4kZGlhbG9nLm9mZignbW91c2Vkb3duLmRpc21pc3Mud3BiYy5tb2RhbCcpO1xuICAgICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/IHRoaXMuJGVsZW1lbnQub25lKCdic1RyYW5zaXRpb25FbmQnLCAkLnByb3h5KHRoaXMuaGlkZU1vZGFsLCB0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuVFJBTlNJVElPTl9EVVJBVElPTikgOiB0aGlzLmhpZGVNb2RhbCgpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5lbmZvcmNlRm9jdXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgJChkb2N1bWVudCkub2ZmKCdmb2N1c2luLndwYmMubW9kYWwnKSAvLyBndWFyZCBhZ2FpbnN0IGluZmluaXRlIGZvY3VzIGxvb3BcbiAgICAub24oJ2ZvY3VzaW4ud3BiYy5tb2RhbCcsICQucHJveHkoZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmICh0aGlzLiRlbGVtZW50WzBdICE9PSBlLnRhcmdldCAmJiAhdGhpcy4kZWxlbWVudC5oYXMoZS50YXJnZXQpLmxlbmd0aCkge1xuICAgICAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoJ2ZvY3VzJyk7XG4gICAgICB9XG4gICAgfSwgdGhpcykpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5lc2NhcGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMua2V5Ym9hcmQpIHtcbiAgICAgIHRoaXMuJGVsZW1lbnQub24oJ2tleWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLndoaWNoID09IDI3ICYmIHRoaXMuaGlkZSgpO1xuICAgICAgfSwgdGhpcykpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93bikge1xuICAgICAgdGhpcy4kZWxlbWVudC5vZmYoJ2tleWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJyk7XG4gICAgfVxuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5yZXNpemUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuaXNTaG93bikge1xuICAgICAgJCh3aW5kb3cpLm9uKCdyZXNpemUud3BiYy5tb2RhbCcsICQucHJveHkodGhpcy5oYW5kbGVVcGRhdGUsIHRoaXMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJCh3aW5kb3cpLm9mZigncmVzaXplLndwYmMubW9kYWwnKTtcbiAgICB9XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLmhpZGVNb2RhbCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgdGhpcy4kZWxlbWVudC5oaWRlKCk7XG4gICAgdGhpcy5iYWNrZHJvcChmdW5jdGlvbiAoKSB7XG4gICAgICB0aGF0LiRib2R5LnJlbW92ZUNsYXNzKCdtb2RhbC1vcGVuJyk7XG4gICAgICB0aGF0LnJlc2V0QWRqdXN0bWVudHMoKTtcbiAgICAgIHRoYXQucmVzZXRTY3JvbGxiYXIoKTtcbiAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignaGlkZGVuLndwYmMubW9kYWwnKTtcbiAgICB9KTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUucmVtb3ZlQmFja2Ryb3AgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kYmFja2Ryb3AgJiYgdGhpcy4kYmFja2Ryb3AucmVtb3ZlKCk7XG4gICAgdGhpcy4kYmFja2Ryb3AgPSBudWxsO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5iYWNrZHJvcCA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICB2YXIgYW5pbWF0ZSA9IHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/ICdmYWRlJyA6ICcnO1xuXG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMuYmFja2Ryb3ApIHtcbiAgICAgIHZhciBkb0FuaW1hdGUgPSAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiBhbmltYXRlO1xuICAgICAgdGhpcy4kYmFja2Ryb3AgPSAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKS5hZGRDbGFzcygnbW9kYWwtYmFja2Ryb3AgJyArIGFuaW1hdGUpLmFwcGVuZFRvKHRoaXMuJGJvZHkpO1xuICAgICAgdGhpcy4kZWxlbWVudC5vbignY2xpY2suZGlzbWlzcy53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAodGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrKSB7XG4gICAgICAgICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSBlLmN1cnJlbnRUYXJnZXQpIHJldHVybjtcbiAgICAgICAgdGhpcy5vcHRpb25zLmJhY2tkcm9wID09ICdzdGF0aWMnID8gdGhpcy4kZWxlbWVudFswXS5mb2N1cygpIDogdGhpcy5oaWRlKCk7XG4gICAgICB9LCB0aGlzKSk7XG4gICAgICBpZiAoZG9BbmltYXRlKSB0aGlzLiRiYWNrZHJvcFswXS5vZmZzZXRXaWR0aDsgLy8gZm9yY2UgcmVmbG93XG5cbiAgICAgIHRoaXMuJGJhY2tkcm9wLmFkZENsYXNzKCdpbicpO1xuICAgICAgaWYgKCFjYWxsYmFjaykgcmV0dXJuO1xuICAgICAgZG9BbmltYXRlID8gdGhpcy4kYmFja2Ryb3Aub25lKCdic1RyYW5zaXRpb25FbmQnLCBjYWxsYmFjaykuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTikgOiBjYWxsYmFjaygpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93biAmJiB0aGlzLiRiYWNrZHJvcCkge1xuICAgICAgdGhpcy4kYmFja2Ryb3AucmVtb3ZlQ2xhc3MoJ2luJyk7XG5cbiAgICAgIHZhciBjYWxsYmFja1JlbW92ZSA9IGZ1bmN0aW9uIGNhbGxiYWNrUmVtb3ZlKCkge1xuICAgICAgICB0aGF0LnJlbW92ZUJhY2tkcm9wKCk7XG4gICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG4gICAgICB9O1xuXG4gICAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdmYWRlJykgPyB0aGlzLiRiYWNrZHJvcC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGNhbGxiYWNrUmVtb3ZlKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKSA6IGNhbGxiYWNrUmVtb3ZlKCk7XG4gICAgfSBlbHNlIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG4gIH07IC8vIHRoZXNlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIHRvIGhhbmRsZSBvdmVyZmxvd2luZyBtb2RhbHNcblxuXG4gIE1vZGFsLnByb3RvdHlwZS5oYW5kbGVVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5hZGp1c3REaWFsb2coKTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUuYWRqdXN0RGlhbG9nID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBtb2RhbElzT3ZlcmZsb3dpbmcgPSB0aGlzLiRlbGVtZW50WzBdLnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgdGhpcy4kZWxlbWVudC5jc3Moe1xuICAgICAgcGFkZGluZ0xlZnQ6ICF0aGlzLmJvZHlJc092ZXJmbG93aW5nICYmIG1vZGFsSXNPdmVyZmxvd2luZyA/IHRoaXMuc2Nyb2xsYmFyV2lkdGggOiAnJyxcbiAgICAgIHBhZGRpbmdSaWdodDogdGhpcy5ib2R5SXNPdmVyZmxvd2luZyAmJiAhbW9kYWxJc092ZXJmbG93aW5nID8gdGhpcy5zY3JvbGxiYXJXaWR0aCA6ICcnXG4gICAgfSk7XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLnJlc2V0QWRqdXN0bWVudHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kZWxlbWVudC5jc3Moe1xuICAgICAgcGFkZGluZ0xlZnQ6ICcnLFxuICAgICAgcGFkZGluZ1JpZ2h0OiAnJ1xuICAgIH0pO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5jaGVja1Njcm9sbGJhciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZnVsbFdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG5cbiAgICBpZiAoIWZ1bGxXaW5kb3dXaWR0aCkge1xuICAgICAgLy8gd29ya2Fyb3VuZCBmb3IgbWlzc2luZyB3aW5kb3cuaW5uZXJXaWR0aCBpbiBJRThcbiAgICAgIHZhciBkb2N1bWVudEVsZW1lbnRSZWN0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgZnVsbFdpbmRvd1dpZHRoID0gZG9jdW1lbnRFbGVtZW50UmVjdC5yaWdodCAtIE1hdGguYWJzKGRvY3VtZW50RWxlbWVudFJlY3QubGVmdCk7XG4gICAgfVxuXG4gICAgdGhpcy5ib2R5SXNPdmVyZmxvd2luZyA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggPCBmdWxsV2luZG93V2lkdGg7XG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCA9IHRoaXMubWVhc3VyZVNjcm9sbGJhcigpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5zZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGJvZHlQYWQgPSBwYXJzZUludCh0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcpIHx8IDAsIDEwKTtcbiAgICB0aGlzLm9yaWdpbmFsQm9keVBhZCA9IGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0IHx8ICcnO1xuICAgIGlmICh0aGlzLmJvZHlJc092ZXJmbG93aW5nKSB0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcsIGJvZHlQYWQgKyB0aGlzLnNjcm9sbGJhcldpZHRoKTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnLCB0aGlzLm9yaWdpbmFsQm9keVBhZCk7XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLm1lYXN1cmVTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgLy8gdGh4IHdhbHNoXG4gICAgdmFyIHNjcm9sbERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHNjcm9sbERpdi5jbGFzc05hbWUgPSAnbW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUnO1xuICAgIHRoaXMuJGJvZHkuYXBwZW5kKHNjcm9sbERpdik7XG4gICAgdmFyIHNjcm9sbGJhcldpZHRoID0gc2Nyb2xsRGl2Lm9mZnNldFdpZHRoIC0gc2Nyb2xsRGl2LmNsaWVudFdpZHRoO1xuICAgIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoc2Nyb2xsRGl2KTtcbiAgICByZXR1cm4gc2Nyb2xsYmFyV2lkdGg7XG4gIH07IC8vIE1PREFMIFBMVUdJTiBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uLCBfcmVsYXRlZFRhcmdldCkge1xuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICAgIHZhciBkYXRhID0gJHRoaXMuZGF0YSgnd3BiYy5tb2RhbCcpO1xuICAgICAgdmFyIG9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgTW9kYWwuREVGQVVMVFMsICR0aGlzLmRhdGEoKSwgX3R5cGVvZihvcHRpb24pID09ICdvYmplY3QnICYmIG9wdGlvbik7XG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMubW9kYWwnLCBkYXRhID0gbmV3IE1vZGFsKHRoaXMsIG9wdGlvbnMpKTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0oX3JlbGF0ZWRUYXJnZXQpO2Vsc2UgaWYgKG9wdGlvbnMuc2hvdykgZGF0YS5zaG93KF9yZWxhdGVkVGFyZ2V0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhciBvbGQgPSAkLmZuLndwYmNfbXlfbW9kYWw7XG4gICQuZm4ud3BiY19teV9tb2RhbCA9IFBsdWdpbjtcbiAgJC5mbi53cGJjX215X21vZGFsLkNvbnN0cnVjdG9yID0gTW9kYWw7IC8vIE1PREFMIE5PIENPTkZMSUNUXG4gIC8vID09PT09PT09PT09PT09PT09XG5cbiAgJC5mbi53cGJjX215X21vZGFsLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgJC5mbi53cGJjX215X21vZGFsID0gb2xkO1xuICAgIHJldHVybiB0aGlzO1xuICB9OyAvLyBNT0RBTCBEQVRBLUFQSVxuICAvLyA9PT09PT09PT09PT09PVxuXG5cbiAgJChkb2N1bWVudCkub24oJ2NsaWNrLndwYmMubW9kYWwuZGF0YS1hcGknLCAnW2RhdGEtdG9nZ2xlPVwid3BiY19teV9tb2RhbFwiXScsIGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICB2YXIgaHJlZiA9ICR0aGlzLmF0dHIoJ2hyZWYnKTtcbiAgICB2YXIgJHRhcmdldCA9ICQoJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKSB8fCBocmVmICYmIGhyZWYucmVwbGFjZSgvLiooPz0jW15cXHNdKyQpLywgJycpKTsgLy8gc3RyaXAgZm9yIGllN1xuXG4gICAgdmFyIG9wdGlvbiA9ICR0YXJnZXQuZGF0YSgnd3BiYy5tb2RhbCcpID8gJ3RvZ2dsZScgOiAkLmV4dGVuZCh7XG4gICAgICByZW1vdGU6ICEvIy8udGVzdChocmVmKSAmJiBocmVmXG4gICAgfSwgJHRhcmdldC5kYXRhKCksICR0aGlzLmRhdGEoKSk7XG4gICAgaWYgKCR0aGlzLmlzKCdhJykpIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAkdGFyZ2V0Lm9uZSgnc2hvdy53cGJjLm1vZGFsJywgZnVuY3Rpb24gKHNob3dFdmVudCkge1xuICAgICAgaWYgKHNob3dFdmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuOyAvLyBvbmx5IHJlZ2lzdGVyIGZvY3VzIHJlc3RvcmVyIGlmIG1vZGFsIHdpbGwgYWN0dWFsbHkgZ2V0IHNob3duXG5cbiAgICAgICR0YXJnZXQub25lKCdoaWRkZW4ud3BiYy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJHRoaXMuaXMoJzp2aXNpYmxlJykgJiYgJHRoaXMudHJpZ2dlcignZm9jdXMnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIFBsdWdpbi5jYWxsKCR0YXJnZXQsIG9wdGlvbiwgdGhpcyk7XG4gIH0pO1xufShqUXVlcnkpO1xuK2Z1bmN0aW9uICgkKSB7XG4gICd1c2Ugc3RyaWN0JzsgLy8gRFJPUERPV04gQ0xBU1MgREVGSU5JVElPTlxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgdmFyIGJhY2tkcm9wID0gJy5kcm9wZG93bi1iYWNrZHJvcCc7XG4gIHZhciB0b2dnbGUgPSAnW2RhdGEtdG9nZ2xlPVwid3BiY19kcm9wZG93blwiXSc7XG5cbiAgdmFyIERyb3Bkb3duID0gZnVuY3Rpb24gRHJvcGRvd24oZWxlbWVudCkge1xuICAgICQoZWxlbWVudCkub24oJ2NsaWNrLndwYmMuZHJvcGRvd24nLCB0aGlzLnRvZ2dsZSk7XG4gIH07XG5cbiAgRHJvcGRvd24uVkVSU0lPTiA9ICczLjMuNSc7XG5cbiAgZnVuY3Rpb24gZ2V0UGFyZW50KCR0aGlzKSB7XG4gICAgdmFyIHNlbGVjdG9yID0gJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKTtcblxuICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgIHNlbGVjdG9yID0gJHRoaXMuYXR0cignaHJlZicpO1xuICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciAmJiAvI1tBLVphLXpdLy50ZXN0KHNlbGVjdG9yKSAmJiBzZWxlY3Rvci5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLCAnJyk7IC8vIHN0cmlwIGZvciBpZTdcbiAgICB9XG5cbiAgICB2YXIgJHBhcmVudCA9IHNlbGVjdG9yICYmICQoc2VsZWN0b3IpO1xuICAgIHJldHVybiAkcGFyZW50ICYmICRwYXJlbnQubGVuZ3RoID8gJHBhcmVudCA6ICR0aGlzLnBhcmVudCgpO1xuICB9XG5cbiAgZnVuY3Rpb24gY2xlYXJNZW51cyhlKSB7XG4gICAgaWYgKGUgJiYgZS53aGljaCA9PT0gMykgcmV0dXJuO1xuICAgICQoYmFja2Ryb3ApLnJlbW92ZSgpO1xuICAgICQodG9nZ2xlKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgICB2YXIgJHBhcmVudCA9IGdldFBhcmVudCgkdGhpcyk7XG4gICAgICB2YXIgcmVsYXRlZFRhcmdldCA9IHtcbiAgICAgICAgcmVsYXRlZFRhcmdldDogdGhpc1xuICAgICAgfTtcbiAgICAgIGlmICghJHBhcmVudC5oYXNDbGFzcygnb3BlbicpKSByZXR1cm47XG4gICAgICBpZiAoZSAmJiBlLnR5cGUgPT0gJ2NsaWNrJyAmJiAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpICYmICQuY29udGFpbnMoJHBhcmVudFswXSwgZS50YXJnZXQpKSByZXR1cm47XG4gICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ2hpZGUud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKTtcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm47XG4gICAgICAkdGhpcy5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAkcGFyZW50LnJlbW92ZUNsYXNzKCdvcGVuJykudHJpZ2dlcignaGlkZGVuLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KTtcbiAgICB9KTtcbiAgfVxuXG4gIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbiAoZSkge1xuICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgaWYgKCR0aGlzLmlzKCcuZGlzYWJsZWQsIDpkaXNhYmxlZCcpKSByZXR1cm47XG4gICAgdmFyICRwYXJlbnQgPSBnZXRQYXJlbnQoJHRoaXMpO1xuICAgIHZhciBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKTtcbiAgICBjbGVhck1lbnVzKCk7XG5cbiAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmICEkcGFyZW50LmNsb3Nlc3QoJy5uYXZiYXItbmF2JykubGVuZ3RoKSB7XG4gICAgICAgIC8vIGlmIG1vYmlsZSB3ZSB1c2UgYSBiYWNrZHJvcCBiZWNhdXNlIGNsaWNrIGV2ZW50cyBkb24ndCBkZWxlZ2F0ZVxuICAgICAgICAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKS5hZGRDbGFzcygnZHJvcGRvd24tYmFja2Ryb3AnKS5pbnNlcnRBZnRlcigkKHRoaXMpKS5vbignY2xpY2snLCBjbGVhck1lbnVzKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlbGF0ZWRUYXJnZXQgPSB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IHRoaXNcbiAgICAgIH07XG4gICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ3Nob3cud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKTtcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm47XG4gICAgICAkdGhpcy50cmlnZ2VyKCdmb2N1cycpLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICAgICAgJHBhcmVudC50b2dnbGVDbGFzcygnb3BlbicpLnRyaWdnZXIoJ3Nob3duLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24gPSBmdW5jdGlvbiAoZSkge1xuICAgIGlmICghLygzOHw0MHwyN3wzMikvLnRlc3QoZS53aGljaCkgfHwgL2lucHV0fHRleHRhcmVhL2kudGVzdChlLnRhcmdldC50YWdOYW1lKSkgcmV0dXJuO1xuICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCR0aGlzLmlzKCcuZGlzYWJsZWQsIDpkaXNhYmxlZCcpKSByZXR1cm47XG4gICAgdmFyICRwYXJlbnQgPSBnZXRQYXJlbnQoJHRoaXMpO1xuICAgIHZhciBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKTtcblxuICAgIGlmICghaXNBY3RpdmUgJiYgZS53aGljaCAhPSAyNyB8fCBpc0FjdGl2ZSAmJiBlLndoaWNoID09IDI3KSB7XG4gICAgICBpZiAoZS53aGljaCA9PSAyNykgJHBhcmVudC5maW5kKHRvZ2dsZSkudHJpZ2dlcignZm9jdXMnKTtcbiAgICAgIHJldHVybiAkdGhpcy50cmlnZ2VyKCdjbGljaycpO1xuICAgIH1cblxuICAgIHZhciBkZXNjID0gJyBsaTpub3QoLmRpc2FibGVkKTp2aXNpYmxlIGEnO1xuICAgIHZhciAkaXRlbXMgPSAkcGFyZW50LmZpbmQoJy5kcm9wZG93bi1tZW51JyArIGRlc2MpO1xuICAgIGlmICghJGl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuICAgIHZhciBpbmRleCA9ICRpdGVtcy5pbmRleChlLnRhcmdldCk7XG4gICAgaWYgKGUud2hpY2ggPT0gMzggJiYgaW5kZXggPiAwKSBpbmRleC0tOyAvLyB1cFxuXG4gICAgaWYgKGUud2hpY2ggPT0gNDAgJiYgaW5kZXggPCAkaXRlbXMubGVuZ3RoIC0gMSkgaW5kZXgrKzsgLy8gZG93blxuXG4gICAgaWYgKCF+aW5kZXgpIGluZGV4ID0gMDtcbiAgICAkaXRlbXMuZXEoaW5kZXgpLnRyaWdnZXIoJ2ZvY3VzJyk7XG4gIH07IC8vIERST1BET1dOIFBMVUdJTiBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgdmFyIGRhdGEgPSAkdGhpcy5kYXRhKCd3cGJjLmRyb3Bkb3duJyk7XG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMuZHJvcGRvd24nLCBkYXRhID0gbmV3IERyb3Bkb3duKHRoaXMpKTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0uY2FsbCgkdGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICB2YXIgb2xkID0gJC5mbi53cGJjX2Ryb3Bkb3duO1xuICAkLmZuLndwYmNfZHJvcGRvd24gPSBQbHVnaW47XG4gICQuZm4ud3BiY19kcm9wZG93bi5Db25zdHJ1Y3RvciA9IERyb3Bkb3duOyAvLyBEUk9QRE9XTiBOTyBDT05GTElDVFxuICAvLyA9PT09PT09PT09PT09PT09PT09PVxuXG4gICQuZm4ud3BiY19kcm9wZG93bi5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xuICAgICQuZm4ud3BiY19kcm9wZG93biA9IG9sZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfTsgLy8gQVBQTFkgVE8gU1RBTkRBUkQgRFJPUERPV04gRUxFTUVOVFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4gICQoZG9jdW1lbnQpLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgY2xlYXJNZW51cykub24oJ2NsaWNrLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duIGZvcm0nLCBmdW5jdGlvbiAoZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH0pLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUudG9nZ2xlKS5vbigna2V5ZG93bi53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93bikub24oJ2tleWRvd24ud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsICcuZHJvcGRvd24tbWVudScsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKTtcbn0oalF1ZXJ5KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zjg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSW1GemMyVjBjeTlzYVdKekwzVnBMMTl6Y21NdlpISnZjR1J2ZDI1ZmJXOWtZV3d1YW5NaVhTd2libUZ0WlhNaU9sc2lhbEYxWlhKNUlpd2lSWEp5YjNJaUxDSWtJaXdpZG1WeWMybHZiaUlzSW1adUlpd2lhbkYxWlhKNUlpd2ljM0JzYVhRaUxDSk5iMlJoYkNJc0ltVnNaVzFsYm5RaUxDSnZjSFJwYjI1eklpd2lKR0p2WkhraUxDSmtiMk4xYldWdWRDSXNJbUp2WkhraUxDSWtaV3hsYldWdWRDSXNJaVJrYVdGc2IyY2lMQ0ptYVc1a0lpd2lKR0poWTJ0a2NtOXdJaXdpYVhOVGFHOTNiaUlzSW05eWFXZHBibUZzUW05a2VWQmhaQ0lzSW5OamNtOXNiR0poY2xkcFpIUm9JaXdpYVdkdWIzSmxRbUZqYTJSeWIzQkRiR2xqYXlJc0luSmxiVzkwWlNJc0lteHZZV1FpTENKd2NtOTRlU0lzSW5SeWFXZG5aWElpTENKV1JWSlRTVTlPSWl3aVZGSkJUbE5KVkVsUFRsOUVWVkpCVkVsUFRpSXNJa0pCUTB0RVVrOVFYMVJTUVU1VFNWUkpUMDVmUkZWU1FWUkpUMDRpTENKRVJVWkJWVXhVVXlJc0ltSmhZMnRrY205d0lpd2lhMlY1WW05aGNtUWlMQ0p6YUc5M0lpd2ljSEp2ZEc5MGVYQmxJaXdpZEc5bloyeGxJaXdpWDNKbGJHRjBaV1JVWVhKblpYUWlMQ0pvYVdSbElpd2lkR2hoZENJc0ltVWlMQ0pGZG1WdWRDSXNJbkpsYkdGMFpXUlVZWEpuWlhRaUxDSnBjMFJsWm1GMWJIUlFjbVYyWlc1MFpXUWlMQ0pqYUdWamExTmpjbTlzYkdKaGNpSXNJbk5sZEZOamNtOXNiR0poY2lJc0ltRmtaRU5zWVhOeklpd2laWE5qWVhCbElpd2ljbVZ6YVhwbElpd2liMjRpTENKdmJtVWlMQ0owWVhKblpYUWlMQ0pwY3lJc0luUnlZVzV6YVhScGIyNGlMQ0p6ZFhCd2IzSjBJaXdpYUdGelEyeGhjM01pTENKd1lYSmxiblFpTENKc1pXNW5kR2dpTENKaGNIQmxibVJVYnlJc0luTmpjbTlzYkZSdmNDSXNJbUZrYW5WemRFUnBZV3h2WnlJc0ltOW1abk5sZEZkcFpIUm9JaXdpWlc1bWIzSmpaVVp2WTNWeklpd2laVzExYkdGMFpWUnlZVzV6YVhScGIyNUZibVFpTENKd2NtVjJaVzUwUkdWbVlYVnNkQ0lzSW05bVppSXNJbkpsYlc5MlpVTnNZWE56SWl3aWFHbGtaVTF2WkdGc0lpd2lhR0Z6SWl3aWQyaHBZMmdpTENKM2FXNWtiM2NpTENKb1lXNWtiR1ZWY0dSaGRHVWlMQ0p5WlhObGRFRmthblZ6ZEcxbGJuUnpJaXdpY21WelpYUlRZM0p2Ykd4aVlYSWlMQ0p5WlcxdmRtVkNZV05yWkhKdmNDSXNJbkpsYlc5MlpTSXNJbU5oYkd4aVlXTnJJaXdpWVc1cGJXRjBaU0lzSW1SdlFXNXBiV0YwWlNJc0ltTnlaV0YwWlVWc1pXMWxiblFpTENKamRYSnlaVzUwVkdGeVoyVjBJaXdpWm05amRYTWlMQ0pqWVd4c1ltRmphMUpsYlc5MlpTSXNJbTF2WkdGc1NYTlBkbVZ5Wm14dmQybHVaeUlzSW5OamNtOXNiRWhsYVdkb2RDSXNJbVJ2WTNWdFpXNTBSV3hsYldWdWRDSXNJbU5zYVdWdWRFaGxhV2RvZENJc0ltTnpjeUlzSW5CaFpHUnBibWRNWldaMElpd2lZbTlrZVVselQzWmxjbVpzYjNkcGJtY2lMQ0p3WVdSa2FXNW5VbWxuYUhRaUxDSm1kV3hzVjJsdVpHOTNWMmxrZEdnaUxDSnBibTVsY2xkcFpIUm9JaXdpWkc5amRXMWxiblJGYkdWdFpXNTBVbVZqZENJc0ltZGxkRUp2ZFc1a2FXNW5RMnhwWlc1MFVtVmpkQ0lzSW5KcFoyaDBJaXdpVFdGMGFDSXNJbUZpY3lJc0lteGxablFpTENKamJHbGxiblJYYVdSMGFDSXNJbTFsWVhOMWNtVlRZM0p2Ykd4aVlYSWlMQ0ppYjJSNVVHRmtJaXdpY0dGeWMyVkpiblFpTENKemRIbHNaU0lzSW5OamNtOXNiRVJwZGlJc0ltTnNZWE56VG1GdFpTSXNJbUZ3Y0dWdVpDSXNJbkpsYlc5MlpVTm9hV3hrSWl3aVVHeDFaMmx1SWl3aWIzQjBhVzl1SWl3aVpXRmphQ0lzSWlSMGFHbHpJaXdpWkdGMFlTSXNJbVY0ZEdWdVpDSXNJbTlzWkNJc0luZHdZbU5mYlhsZmJXOWtZV3dpTENKRGIyNXpkSEoxWTNSdmNpSXNJbTV2UTI5dVpteHBZM1FpTENKb2NtVm1JaXdpWVhSMGNpSXNJaVIwWVhKblpYUWlMQ0p5WlhCc1lXTmxJaXdpZEdWemRDSXNJbk5vYjNkRmRtVnVkQ0lzSW1OaGJHd2lMQ0pFY205d1pHOTNiaUlzSW1kbGRGQmhjbVZ1ZENJc0luTmxiR1ZqZEc5eUlpd2lKSEJoY21WdWRDSXNJbU5zWldGeVRXVnVkWE1pTENKMGVYQmxJaXdpZEdGblRtRnRaU0lzSW1OdmJuUmhhVzV6SWl3aWFYTkJZM1JwZG1VaUxDSmpiRzl6WlhOMElpd2lhVzV6WlhKMFFXWjBaWElpTENKMGIyZG5iR1ZEYkdGemN5SXNJbXRsZVdSdmQyNGlMQ0p6ZEc5d1VISnZjR0ZuWVhScGIyNGlMQ0prWlhOaklpd2lKR2wwWlcxeklpd2lhVzVrWlhnaUxDSmxjU0lzSW5kd1ltTmZaSEp2Y0dSdmQyNGlYU3dpYldGd2NHbHVaM01pT2lJN096czdRVUZCUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQkxFbEJRVWtzVDBGQlQwRXNUVUZCVUN4TFFVRnJRaXhYUVVGMFFpeEZRVUZ0UXp0QlFVTnFReXhSUVVGTkxFbEJRVWxETEV0QlFVb3NRMEZCVlN4NVEwRkJWaXhEUVVGT08wRkJRMFE3TzBGQlEwUXNRMEZCUXl4VlFVRlZReXhEUVVGV0xFVkJRV0U3UVVGRFdqczdRVUZEUVN4TlFVRkpReXhQUVVGUExFZEJRVWRFTEVOQlFVTXNRMEZCUTBVc1JVRkJSaXhEUVVGTFF5eE5RVUZNTEVOQlFWbERMRXRCUVZvc1EwRkJhMElzUjBGQmJFSXNSVUZCZFVJc1EwRkJka0lzUlVGQk1FSkJMRXRCUVRGQ0xFTkJRV2RETEVkQlFXaERMRU5CUVdRN08wRkJRMEVzVFVGQlMwZ3NUMEZCVHl4RFFVRkRMRU5CUVVRc1EwRkJVQ3hIUVVGaExFTkJRV0lzU1VGQmEwSkJMRTlCUVU4c1EwRkJReXhEUVVGRUxFTkJRVkFzUjBGQllTeERRVUZvUXl4SlFVRjFRMEVzVDBGQlR5eERRVUZETEVOQlFVUXNRMEZCVUN4SlFVRmpMRU5CUVdRc1NVRkJiVUpCTEU5QlFVOHNRMEZCUXl4RFFVRkVMRU5CUVZBc1NVRkJZeXhEUVVGcVF5eEpRVUZ6UTBFc1QwRkJUeXhEUVVGRExFTkJRVVFzUTBGQlVDeEhRVUZoTEVOQlFUbEdMRVZCUVd0SE8wRkJRMmhITEZWQlFVMHNTVUZCU1VZc1MwRkJTaXhEUVVGVkxHbEZRVUZXTEVOQlFVNDdRVUZEUkR0QlFVTkdMRU5CVGtFc1EwRk5RMFFzVFVGT1JDeERRVUZFTzBGQlVVRTdRVUZEUVR0QlFVTkJPMEZCUTBFN1FVRkRRVHRCUVVOQk8wRkJRMEU3TzBGQlIwRXNRMEZCUXl4VlFVRlZSU3hEUVVGV0xFVkJRV0U3UVVGRFdpeGxRVVJaTEVOQlIxbzdRVUZEUVRzN1FVRkZRU3hOUVVGSlN5eExRVUZMTEVkQlFVY3NVMEZCVWtFc1MwRkJVU3hEUVVGVlF5eFBRVUZXTEVWQlFXMUNReXhQUVVGdVFpeEZRVUUwUWp0QlFVTjBReXhUUVVGTFFTeFBRVUZNTEVkQlFUSkNRU3hQUVVFelFqdEJRVU5CTEZOQlFVdERMRXRCUVV3c1IwRkJNa0pTTEVOQlFVTXNRMEZCUTFNc1VVRkJVU3hEUVVGRFF5eEpRVUZXTEVOQlFUVkNPMEZCUTBFc1UwRkJTME1zVVVGQlRDeEhRVUV5UWxnc1EwRkJReXhEUVVGRFRTeFBRVUZFTEVOQlFUVkNPMEZCUTBFc1UwRkJTMDBzVDBGQlRDeEhRVUV5UWl4TFFVRkxSQ3hSUVVGTUxFTkJRV05GTEVsQlFXUXNRMEZCYlVJc1pVRkJia0lzUTBGQk0wSTdRVUZEUVN4VFFVRkxReXhUUVVGTUxFZEJRVEpDTEVsQlFUTkNPMEZCUTBFc1UwRkJTME1zVDBGQlRDeEhRVUV5UWl4SlFVRXpRanRCUVVOQkxGTkJRVXRETEdWQlFVd3NSMEZCTWtJc1NVRkJNMEk3UVVGRFFTeFRRVUZMUXl4alFVRk1MRWRCUVRKQ0xFTkJRVE5DTzBGQlEwRXNVMEZCUzBNc2JVSkJRVXdzUjBGQk1rSXNTMEZCTTBJN08wRkJSVUVzVVVGQlNTeExRVUZMV0N4UFFVRk1MRU5CUVdGWkxFMUJRV3BDTEVWQlFYbENPMEZCUTNaQ0xGZEJRVXRTTEZGQlFVd3NRMEZEUjBVc1NVRkVTQ3hEUVVOUkxHZENRVVJTTEVWQlJVZFBMRWxCUmtnc1EwRkZVU3hMUVVGTFlpeFBRVUZNTEVOQlFXRlpMRTFCUm5KQ0xFVkJSVFpDYmtJc1EwRkJReXhEUVVGRGNVSXNTMEZCUml4RFFVRlJMRmxCUVZrN1FVRkROME1zWVVGQlMxWXNVVUZCVEN4RFFVRmpWeXhQUVVGa0xFTkJRWE5DTEcxQ1FVRjBRanRCUVVORUxFOUJSakJDTEVWQlJYaENMRWxCUm5kQ0xFTkJSamRDTzBGQlMwUTdRVUZEUml4SFFXeENSRHM3UVVGdlFrRnFRaXhGUVVGQlFTeExRVUZMTEVOQlFVTnJRaXhQUVVGT0xFZEJRV2xDTEU5QlFXcENPMEZCUlVGc1FpeEZRVUZCUVN4TFFVRkxMRU5CUVVOdFFpeHRRa0ZCVGl4SFFVRTBRaXhIUVVFMVFqdEJRVU5CYmtJc1JVRkJRVUVzUzBGQlN5eERRVUZEYjBJc05FSkJRVTRzUjBGQmNVTXNSMEZCY2tNN1FVRkZRWEJDTEVWQlFVRkJMRXRCUVVzc1EwRkJRM0ZDTEZGQlFVNHNSMEZCYVVJN1FVRkRaa01zU1VGQlFVRXNVVUZCVVN4RlFVRkZMRWxCUkVzN1FVRkZaa01zU1VGQlFVRXNVVUZCVVN4RlFVRkZMRWxCUmtzN1FVRkhaa01zU1VGQlFVRXNTVUZCU1N4RlFVRkZPMEZCU0ZNc1IwRkJha0k3TzBGQlRVRjRRaXhGUVVGQlFTeExRVUZMTEVOQlFVTjVRaXhUUVVGT0xFTkJRV2RDUXl4TlFVRm9RaXhIUVVGNVFpeFZRVUZWUXl4alFVRldMRVZCUVRCQ08wRkJRMnBFTEZkQlFVOHNTMEZCUzJwQ0xFOUJRVXdzUjBGQlpTeExRVUZMYTBJc1NVRkJUQ3hGUVVGbUxFZEJRVFpDTEV0QlFVdEtMRWxCUVV3c1EwRkJWVWNzWTBGQlZpeERRVUZ3UXp0QlFVTkVMRWRCUmtRN08wRkJTVUV6UWl4RlFVRkJRU3hMUVVGTExFTkJRVU41UWl4VFFVRk9MRU5CUVdkQ1JDeEpRVUZvUWl4SFFVRjFRaXhWUVVGVlJ5eGpRVUZXTEVWQlFUQkNPMEZCUXk5RExGRkJRVWxGTEVsQlFVa3NSMEZCUnl4SlFVRllPMEZCUTBFc1VVRkJTVU1zUTBGQlF5eEhRVUZOYmtNc1EwRkJReXhEUVVGRGIwTXNTMEZCUml4RFFVRlJMR2xDUVVGU0xFVkJRVEpDTzBGQlFVVkRMRTFCUVVGQkxHRkJRV0VzUlVGQlJVdzdRVUZCYWtJc1MwRkJNMElzUTBGQldEdEJRVVZCTEZOQlFVdHlRaXhSUVVGTUxFTkJRV05YTEU5QlFXUXNRMEZCYzBKaExFTkJRWFJDTzBGQlJVRXNVVUZCU1N4TFFVRkxjRUlzVDBGQlRDeEpRVUZuUW05Q0xFTkJRVU1zUTBGQlEwY3NhMEpCUVVZc1JVRkJjRUlzUlVGQk5FTTdRVUZGTlVNc1UwRkJTM1pDTEU5QlFVd3NSMEZCWlN4SlFVRm1PMEZCUlVFc1UwRkJTM2RDTEdOQlFVdzdRVUZEUVN4VFFVRkxReXhaUVVGTU8wRkJRMEVzVTBGQlMyaERMRXRCUVV3c1EwRkJWMmxETEZGQlFWZ3NRMEZCYjBJc1dVRkJjRUk3UVVGRlFTeFRRVUZMUXl4TlFVRk1PMEZCUTBFc1UwRkJTME1zVFVGQlREdEJRVVZCTEZOQlFVdG9ReXhSUVVGTUxFTkJRV05wUXl4RlFVRmtMRU5CUVdsQ0xEQkNRVUZxUWl4RlFVRTJReXgzUWtGQk4wTXNSVUZCZFVVMVF5eERRVUZETEVOQlFVTnhRaXhMUVVGR0xFTkJRVkVzUzBGQlMxa3NTVUZCWWl4RlFVRnRRaXhKUVVGdVFpeERRVUYyUlR0QlFVVkJMRk5CUVV0eVFpeFBRVUZNTEVOQlFXRm5ReXhGUVVGaUxFTkJRV2RDTERoQ1FVRm9RaXhGUVVGblJDeFpRVUZaTzBGQlF6RkVWaXhOUVVGQlFTeEpRVUZKTEVOQlFVTjJRaXhSUVVGTUxFTkJRV05yUXl4SFFVRmtMRU5CUVd0Q0xEUkNRVUZzUWl4RlFVRm5SQ3hWUVVGVlZpeERRVUZXTEVWQlFXRTdRVUZETTBRc1dVRkJTVzVETEVOQlFVTXNRMEZCUTIxRExFTkJRVU1zUTBGQlExY3NUVUZCU0N4RFFVRkVMRU5CUVZsRExFVkJRVm9zUTBGQlpXSXNTVUZCU1N4RFFVRkRka0lzVVVGQmNFSXNRMEZCU2l4RlFVRnRRM1ZDTEVsQlFVa3NRMEZCUTJoQ0xHMUNRVUZNTEVkQlFUSkNMRWxCUVROQ08wRkJRM0JETEU5QlJrUTdRVUZIUkN4TFFVcEVPMEZCVFVFc1UwRkJTMU1zVVVGQlRDeERRVUZqTEZsQlFWazdRVUZEZUVJc1ZVRkJTWEZDTEZWQlFWVXNSMEZCUjJoRUxFTkJRVU1zUTBGQlEybEVMRTlCUVVZc1EwRkJWVVFzVlVGQlZpeEpRVUYzUW1Rc1NVRkJTU3hEUVVGRGRrSXNVVUZCVEN4RFFVRmpkVU1zVVVGQlpDeERRVUYxUWl4TlFVRjJRaXhEUVVGNlF6czdRVUZGUVN4VlFVRkpMRU5CUVVOb1FpeEpRVUZKTEVOQlFVTjJRaXhSUVVGTUxFTkJRV04zUXl4TlFVRmtMRWRCUVhWQ1F5eE5RVUUxUWl4RlFVRnZRenRCUVVOc1EyeENMRkZCUVVGQkxFbEJRVWtzUTBGQlEzWkNMRkZCUVV3c1EwRkJZekJETEZGQlFXUXNRMEZCZFVKdVFpeEpRVUZKTEVOQlFVTXhRaXhMUVVFMVFpeEZRVVJyUXl4RFFVTkRPMEZCUTNCRE96dEJRVVZFTUVJc1RVRkJRVUVzU1VGQlNTeERRVUZEZGtJc1VVRkJUQ3hEUVVOSGEwSXNTVUZFU0N4SFFVVkhlVUlzVTBGR1NDeERRVVZoTEVOQlJtSTdRVUZKUVhCQ0xFMUJRVUZCTEVsQlFVa3NRMEZCUTNGQ0xGbEJRVXc3TzBGQlJVRXNWVUZCU1ZBc1ZVRkJTaXhGUVVGblFqdEJRVU5rWkN4UlFVRkJRU3hKUVVGSkxFTkJRVU4yUWl4UlFVRk1MRU5CUVdNc1EwRkJaQ3hGUVVGcFFqWkRMRmRCUVdwQ0xFTkJSR01zUTBGRFpUdEJRVU01UWpzN1FVRkZSSFJDTEUxQlFVRkJMRWxCUVVrc1EwRkJRM1pDTEZGQlFVd3NRMEZCWXpoQ0xGRkJRV1FzUTBGQmRVSXNTVUZCZGtJN1FVRkZRVkFzVFVGQlFVRXNTVUZCU1N4RFFVRkRkVUlzV1VGQlREdEJRVVZCTEZWQlFVbDBRaXhEUVVGRExFZEJRVWR1UXl4RFFVRkRMRU5CUVVOdlF5eExRVUZHTEVOQlFWRXNhMEpCUVZJc1JVRkJORUk3UVVGQlJVTXNVVUZCUVVFc1lVRkJZU3hGUVVGRlREdEJRVUZxUWl4UFFVRTFRaXhEUVVGU08wRkJSVUZuUWl4TlFVRkJRU3hWUVVGVkxFZEJRMUprTEVsQlFVa3NRMEZCUTNSQ0xFOUJRVXdzUTBGQllUdEJRVUZpTEU5QlEwZHBReXhIUVVSSUxFTkJRMDhzYVVKQlJGQXNSVUZETUVJc1dVRkJXVHRCUVVOc1ExZ3NVVUZCUVVFc1NVRkJTU3hEUVVGRGRrSXNVVUZCVEN4RFFVRmpWeXhQUVVGa0xFTkJRWE5DTEU5QlFYUkNMRVZCUVN0Q1FTeFBRVUV2UWl4RFFVRjFRMkVzUTBGQmRrTTdRVUZEUkN4UFFVaElMRVZCU1VkMVFpeHZRa0ZLU0N4RFFVbDNRbkpFTEV0QlFVc3NRMEZCUTIxQ0xHMUNRVW81UWl4RFFVUlJMRWRCVFZKVkxFbEJRVWtzUTBGQlEzWkNMRkZCUVV3c1EwRkJZMWNzVDBGQlpDeERRVUZ6UWl4UFFVRjBRaXhGUVVFclFrRXNUMEZCTDBJc1EwRkJkVU5oTEVOQlFYWkRMRU5CVGtZN1FVRlBSQ3hMUVRsQ1JEdEJRU3RDUkN4SFFYaEVSRHM3UVVFd1JFRTVRaXhGUVVGQlFTeExRVUZMTEVOQlFVTjVRaXhUUVVGT0xFTkJRV2RDUnl4SlFVRm9RaXhIUVVGMVFpeFZRVUZWUlN4RFFVRldMRVZCUVdFN1FVRkRiRU1zVVVGQlNVRXNRMEZCU2l4RlFVRlBRU3hEUVVGRExFTkJRVU4zUWl4alFVRkdPMEZCUlZCNFFpeEpRVUZCUVN4RFFVRkRMRWRCUVVkdVF5eERRVUZETEVOQlFVTnZReXhMUVVGR0xFTkJRVkVzYVVKQlFWSXNRMEZCU2p0QlFVVkJMRk5CUVV0NlFpeFJRVUZNTEVOQlFXTlhMRTlCUVdRc1EwRkJjMEpoTEVOQlFYUkNPMEZCUlVFc1VVRkJTU3hEUVVGRExFdEJRVXR3UWl4UFFVRk9MRWxCUVdsQ2IwSXNRMEZCUXl4RFFVRkRSeXhyUWtGQlJpeEZRVUZ5UWl4RlFVRTJRenRCUVVVM1F5eFRRVUZMZGtJc1QwRkJUQ3hIUVVGbExFdEJRV1k3UVVGRlFTeFRRVUZMTWtJc1RVRkJURHRCUVVOQkxGTkJRVXRETEUxQlFVdzdRVUZGUVRORExFbEJRVUZCTEVOQlFVTXNRMEZCUTFNc1VVRkJSQ3hEUVVGRUxFTkJRVmx0UkN4SFFVRmFMRU5CUVdkQ0xHOUNRVUZvUWp0QlFVVkJMRk5CUVV0cVJDeFJRVUZNTEVOQlEwZHJSQ3hYUVVSSUxFTkJRMlVzU1VGRVppeEZRVVZIUkN4SFFVWklMRU5CUlU4c01FSkJSbEFzUlVGSFIwRXNSMEZJU0N4RFFVZFBMRFJDUVVoUU8wRkJTMEVzVTBGQlMyaEVMRTlCUVV3c1EwRkJZV2RFTEVkQlFXSXNRMEZCYVVJc09FSkJRV3BDTzBGQlJVRTFSQ3hKUVVGQlFTeERRVUZETEVOQlFVTnBSQ3hQUVVGR0xFTkJRVlZFTEZWQlFWWXNTVUZCZDBJc1MwRkJTM0pETEZGQlFVd3NRMEZCWTNWRExGRkJRV1FzUTBGQmRVSXNUVUZCZGtJc1EwRkJlRUlzUjBGRFJTeExRVUZMZGtNc1VVRkJUQ3hEUVVOSGEwTXNSMEZFU0N4RFFVTlBMR2xDUVVSUUxFVkJRekJDTjBNc1EwRkJReXhEUVVGRGNVSXNTMEZCUml4RFFVRlJMRXRCUVV0NVF5eFRRVUZpTEVWQlFYZENMRWxCUVhoQ0xFTkJSREZDTEVWQlJVZEtMRzlDUVVaSUxFTkJSWGRDY2tRc1MwRkJTeXhEUVVGRGJVSXNiVUpCUmpsQ0xFTkJSRVlzUjBGSlJTeExRVUZMYzBNc1UwRkJUQ3hGUVVwR08wRkJTMFFzUjBFMVFrUTdPMEZCT0VKQmVrUXNSVUZCUVVFc1MwRkJTeXhEUVVGRGVVSXNVMEZCVGl4RFFVRm5RakpDTEZsQlFXaENMRWRCUVN0Q0xGbEJRVms3UVVGRGVrTjZSQ3hKUVVGQlFTeERRVUZETEVOQlFVTlRMRkZCUVVRc1EwRkJSQ3hEUVVOSGJVUXNSMEZFU0N4RFFVTlBMRzlDUVVSUUxFVkJRelpDTzBGQlJEZENMRXRCUlVkb1FpeEZRVVpJTEVOQlJVMHNiMEpCUms0c1JVRkZORUkxUXl4RFFVRkRMRU5CUVVOeFFpeExRVUZHTEVOQlFWRXNWVUZCVldNc1EwRkJWaXhGUVVGaE8wRkJRemRETEZWQlFVa3NTMEZCUzNoQ0xGRkJRVXdzUTBGQll5eERRVUZrTEUxQlFYRkNkMElzUTBGQlF5eERRVUZEVnl4TlFVRjJRaXhKUVVGcFF5eERRVUZETEV0QlFVdHVReXhSUVVGTUxFTkJRV052UkN4SFFVRmtMRU5CUVd0Q05VSXNRMEZCUXl4RFFVRkRWeXhOUVVGd1FpeEZRVUUwUWswc1RVRkJiRVVzUlVGQk1FVTdRVUZEZUVVc1lVRkJTM3BETEZGQlFVd3NRMEZCWTFjc1QwRkJaQ3hEUVVGelFpeFBRVUYwUWp0QlFVTkVPMEZCUTBZc1MwRktlVUlzUlVGSmRrSXNTVUZLZFVJc1EwRkdOVUk3UVVGUFJDeEhRVkpFT3p0QlFWVkJha0lzUlVGQlFVRXNTMEZCU3l4RFFVRkRlVUlzVTBGQlRpeERRVUZuUWxrc1RVRkJhRUlzUjBGQmVVSXNXVUZCV1R0QlFVTnVReXhSUVVGSkxFdEJRVXN6UWl4UFFVRk1MRWxCUVdkQ0xFdEJRVXRTTEU5QlFVd3NRMEZCWVhGQ0xGRkJRV3BETEVWQlFUSkRPMEZCUTNwRExGZEJRVXRxUWl4UlFVRk1MRU5CUVdOcFF5eEZRVUZrTEVOQlFXbENMRFJDUVVGcVFpeEZRVUVyUXpWRExFTkJRVU1zUTBGQlEzRkNMRXRCUVVZc1EwRkJVU3hWUVVGVll5eERRVUZXTEVWQlFXRTdRVUZEYkVWQkxGRkJRVUZCTEVOQlFVTXNRMEZCUXpaQ0xFdEJRVVlzU1VGQlZ5eEZRVUZZTEVsQlFXbENMRXRCUVVzdlFpeEpRVUZNTEVWQlFXcENPMEZCUTBRc1QwRkdPRU1zUlVGRk5VTXNTVUZHTkVNc1EwRkJMME03UVVGSFJDeExRVXBFTEUxQlNVOHNTVUZCU1N4RFFVRkRMRXRCUVV0c1FpeFBRVUZXTEVWQlFXMUNPMEZCUTNoQ0xGZEJRVXRLTEZGQlFVd3NRMEZCWTJsRUxFZEJRV1FzUTBGQmEwSXNORUpCUVd4Q08wRkJRMFE3UVVGRFJpeEhRVkpFT3p0QlFWVkJka1FzUlVGQlFVRXNTMEZCU3l4RFFVRkRlVUlzVTBGQlRpeERRVUZuUW1Fc1RVRkJhRUlzUjBGQmVVSXNXVUZCV1R0QlFVTnVReXhSUVVGSkxFdEJRVXMxUWl4UFFVRlVMRVZCUVd0Q08wRkJRMmhDWml4TlFVRkJRU3hEUVVGRExFTkJRVU5wUlN4TlFVRkVMRU5CUVVRc1EwRkJWWEpDTEVWQlFWWXNRMEZCWVN4dFFrRkJZaXhGUVVGclF6VkRMRU5CUVVNc1EwRkJRM0ZDTEV0QlFVWXNRMEZCVVN4TFFVRkxOa01zV1VGQllpeEZRVUV5UWl4SlFVRXpRaXhEUVVGc1F6dEJRVU5FTEV0QlJrUXNUVUZGVHp0QlFVTk1iRVVzVFVGQlFVRXNRMEZCUXl4RFFVRkRhVVVzVFVGQlJDeERRVUZFTEVOQlFWVk1MRWRCUVZZc1EwRkJZeXh0UWtGQlpEdEJRVU5FTzBGQlEwWXNSMEZPUkRzN1FVRlJRWFpFTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKblF5eFRRVUZvUWl4SFFVRTBRaXhaUVVGWk8wRkJRM1JETEZGQlFVazFRaXhKUVVGSkxFZEJRVWNzU1VGQldEdEJRVU5CTEZOQlFVdDJRaXhSUVVGTUxFTkJRV056UWl4SlFVRmtPMEZCUTBFc1UwRkJTMDRzVVVGQlRDeERRVUZqTEZsQlFWazdRVUZEZUVKUExFMUJRVUZCTEVsQlFVa3NRMEZCUXpGQ0xFdEJRVXdzUTBGQlYzRkVMRmRCUVZnc1EwRkJkVUlzV1VGQmRrSTdRVUZEUVROQ0xFMUJRVUZCTEVsQlFVa3NRMEZCUTJsRExHZENRVUZNTzBGQlEwRnFReXhOUVVGQlFTeEpRVUZKTEVOQlFVTnJReXhqUVVGTU8wRkJRMEZzUXl4TlFVRkJRU3hKUVVGSkxFTkJRVU4yUWl4UlFVRk1MRU5CUVdOWExFOUJRV1FzUTBGQmMwSXNiVUpCUVhSQ08wRkJRMFFzUzBGTVJEdEJRVTFFTEVkQlZFUTdPMEZCVjBGcVFpeEZRVUZCUVN4TFFVRkxMRU5CUVVONVFpeFRRVUZPTEVOQlFXZENkVU1zWTBGQmFFSXNSMEZCYVVNc1dVRkJXVHRCUVVNelF5eFRRVUZMZGtRc1UwRkJUQ3hKUVVGclFpeExRVUZMUVN4VFFVRk1MRU5CUVdWM1JDeE5RVUZtTEVWQlFXeENPMEZCUTBFc1UwRkJTM2hFTEZOQlFVd3NSMEZCYVVJc1NVRkJha0k3UVVGRFJDeEhRVWhFT3p0QlFVdEJWQ3hGUVVGQlFTeExRVUZMTEVOQlFVTjVRaXhUUVVGT0xFTkJRV2RDU0N4UlFVRm9RaXhIUVVFeVFpeFZRVUZWTkVNc1VVRkJWaXhGUVVGdlFqdEJRVU0zUXl4UlFVRkpja01zU1VGQlNTeEhRVUZITEVsQlFWZzdRVUZEUVN4UlFVRkpjME1zVDBGQlR5eEhRVUZITEV0QlFVczNSQ3hSUVVGTUxFTkJRV04xUXl4UlFVRmtMRU5CUVhWQ0xFMUJRWFpDTEVsQlFXbERMRTFCUVdwRExFZEJRVEJETEVWQlFYaEVPenRCUVVWQkxGRkJRVWtzUzBGQlMyNURMRTlCUVV3c1NVRkJaMElzUzBGQlMxSXNUMEZCVEN4RFFVRmhiMElzVVVGQmFrTXNSVUZCTWtNN1FVRkRla01zVlVGQlNUaERMRk5CUVZNc1IwRkJSM3BGTEVOQlFVTXNRMEZCUTJsRUxFOUJRVVlzUTBGQlZVUXNWVUZCVml4SlFVRjNRbmRDTEU5QlFYaERPMEZCUlVFc1YwRkJTekZFTEZOQlFVd3NSMEZCYVVKa0xFTkJRVU1zUTBGQlExTXNVVUZCVVN4RFFVRkRhVVVzWVVGQlZDeERRVUYxUWl4TFFVRjJRaXhEUVVGRUxFTkJRVVFzUTBGRFpHcERMRkZCUkdNc1EwRkRUQ3h2UWtGQmIwSXJRaXhQUVVSbUxFVkJSV1J1UWl4UlFVWmpMRU5CUlV3c1MwRkJTemRETEV0QlJrRXNRMEZCYWtJN1FVRkpRU3hYUVVGTFJ5eFJRVUZNTEVOQlFXTnBReXhGUVVGa0xFTkJRV2xDTERCQ1FVRnFRaXhGUVVFMlF6VkRMRU5CUVVNc1EwRkJRM0ZDTEV0QlFVWXNRMEZCVVN4VlFVRlZZeXhEUVVGV0xFVkJRV0U3UVVGRGFFVXNXVUZCU1N4TFFVRkxha0lzYlVKQlFWUXNSVUZCT0VJN1FVRkROVUlzWlVGQlMwRXNiVUpCUVV3c1IwRkJNa0lzUzBGQk0wSTdRVUZEUVR0QlFVTkVPenRCUVVORUxGbEJRVWxwUWl4RFFVRkRMRU5CUVVOWExFMUJRVVlzUzBGQllWZ3NRMEZCUXl4RFFVRkRkME1zWVVGQmJrSXNSVUZCYTBNN1FVRkRiRU1zWVVGQlMzQkZMRTlCUVV3c1EwRkJZVzlDTEZGQlFXSXNTVUZCZVVJc1VVRkJla0lzUjBGRFNTeExRVUZMYUVJc1VVRkJUQ3hEUVVGakxFTkJRV1FzUlVGQmFVSnBSU3hMUVVGcVFpeEZRVVJLTEVkQlJVa3NTMEZCU3pORExFbEJRVXdzUlVGR1NqdEJRVWRFTEU5QlZEUkRMRVZCVXpGRExFbEJWREJETEVOQlFUZERPMEZCVjBFc1ZVRkJTWGRETEZOQlFVb3NSVUZCWlN4TFFVRkxNMFFzVTBGQlRDeERRVUZsTEVOQlFXWXNSVUZCYTBJd1F5eFhRVUZzUWl4RFFXeENNRUlzUTBGclFrazdPMEZCUlRkRExGZEJRVXN4UXl4VFFVRk1MRU5CUVdVeVFpeFJRVUZtTEVOQlFYZENMRWxCUVhoQ08wRkJSVUVzVlVGQlNTeERRVUZET0VJc1VVRkJUQ3hGUVVGbE8wRkJSV1pGTEUxQlFVRkJMRk5CUVZNc1IwRkRVQ3hMUVVGTE0wUXNVMEZCVEN4RFFVTkhLMElzUjBGRVNDeERRVU5QTEdsQ1FVUlFMRVZCUXpCQ01FSXNVVUZFTVVJc1JVRkZSMklzYjBKQlJrZ3NRMEZGZDBKeVJDeExRVUZMTEVOQlFVTnZRaXcwUWtGR09VSXNRMEZFVHl4SFFVbFFPRU1zVVVGQlVTeEZRVXBXTzBGQlRVUXNTMEU1UWtRc1RVRTRRazhzU1VGQlNTeERRVUZETEV0QlFVdDRSQ3hQUVVGT0xFbEJRV2xDTEV0QlFVdEVMRk5CUVRGQ0xFVkJRWEZETzBGQlF6RkRMRmRCUVV0QkxGTkJRVXdzUTBGQlpTdERMRmRCUVdZc1EwRkJNa0lzU1VGQk0wSTdPMEZCUlVFc1ZVRkJTV2RDTEdOQlFXTXNSMEZCUnl4VFFVRnFRa0VzWTBGQmFVSXNSMEZCV1R0QlFVTXZRak5ETEZGQlFVRkJMRWxCUVVrc1EwRkJRMjFETEdOQlFVdzdRVUZEUVVVc1VVRkJRVUVzVVVGQlVTeEpRVUZKUVN4UlFVRlJMRVZCUVhCQ08wRkJRMFFzVDBGSVJEczdRVUZKUVhaRkxFMUJRVUZCTEVOQlFVTXNRMEZCUTJsRUxFOUJRVVlzUTBGQlZVUXNWVUZCVml4SlFVRjNRaXhMUVVGTGNrTXNVVUZCVEN4RFFVRmpkVU1zVVVGQlpDeERRVUYxUWl4TlFVRjJRaXhEUVVGNFFpeEhRVU5GTEV0QlFVdHdReXhUUVVGTUxFTkJRMGNyUWl4SFFVUklMRU5CUTA4c2FVSkJSRkFzUlVGRE1FSm5ReXhqUVVReFFpeEZRVVZIYmtJc2IwSkJSa2dzUTBGRmQwSnlSQ3hMUVVGTExFTkJRVU52UWl3MFFrRkdPVUlzUTBGRVJpeEhRVWxGYjBRc1kwRkJZeXhGUVVwb1FqdEJRVTFFTEV0QllrMHNUVUZoUVN4SlFVRkpUaXhSUVVGS0xFVkJRV003UVVGRGJrSkJMRTFCUVVGQkxGRkJRVkU3UVVGRFZEdEJRVU5HTEVkQmJFUkVMRU5CTjB0WkxFTkJhVTlhT3pzN1FVRkZRV3hGTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKdlF5eFpRVUZvUWl4SFFVRXJRaXhaUVVGWk8wRkJRM3BETEZOQlFVdFlMRmxCUVV3N1FVRkRSQ3hIUVVaRU96dEJRVWxCYkVRc1JVRkJRVUVzUzBGQlN5eERRVUZEZVVJc1UwRkJUaXhEUVVGblFubENMRmxCUVdoQ0xFZEJRU3RDTEZsQlFWazdRVUZEZWtNc1VVRkJTWFZDTEd0Q1FVRnJRaXhIUVVGSExFdEJRVXR1UlN4UlFVRk1MRU5CUVdNc1EwRkJaQ3hGUVVGcFFtOUZMRmxCUVdwQ0xFZEJRV2REZEVVc1VVRkJVU3hEUVVGRGRVVXNaVUZCVkN4RFFVRjVRa01zV1VGQmJFWTdRVUZGUVN4VFFVRkxkRVVzVVVGQlRDeERRVUZqZFVVc1IwRkJaQ3hEUVVGclFqdEJRVU5vUWtNc1RVRkJRVUVzVjBGQlZ5eEZRVUZITEVOQlFVTXNTMEZCUzBNc2FVSkJRVTRzU1VGQk1rSk9MR3RDUVVFelFpeEhRVUZuUkN4TFFVRkxOMFFzWTBGQmNrUXNSMEZCYzBVc1JVRkVjRVU3UVVGRmFFSnZSU3hOUVVGQlFTeFpRVUZaTEVWQlFVVXNTMEZCUzBRc2FVSkJRVXdzU1VGQk1FSXNRMEZCUTA0c2EwSkJRVE5DTEVkQlFXZEVMRXRCUVVzM1JDeGpRVUZ5UkN4SFFVRnpSVHRCUVVad1JTeExRVUZzUWp0QlFVbEVMRWRCVUVRN08wRkJVMEZhTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKeFF5eG5Ra0ZCYUVJc1IwRkJiVU1zV1VGQldUdEJRVU0zUXl4VFFVRkxlRVFzVVVGQlRDeERRVUZqZFVVc1IwRkJaQ3hEUVVGclFqdEJRVU5vUWtNc1RVRkJRVUVzVjBGQlZ5eEZRVUZGTEVWQlJFYzdRVUZGYUVKRkxFMUJRVUZCTEZsQlFWa3NSVUZCUlR0QlFVWkZMRXRCUVd4Q08wRkJTVVFzUjBGTVJEczdRVUZQUVdoR0xFVkJRVUZCTEV0QlFVc3NRMEZCUTNsQ0xGTkJRVTRzUTBGQlowSlRMR05CUVdoQ0xFZEJRV2xETEZsQlFWazdRVUZETTBNc1VVRkJTU3RETEdWQlFXVXNSMEZCUjNKQ0xFMUJRVTBzUTBGQlEzTkNMRlZCUVRkQ096dEJRVU5CTEZGQlFVa3NRMEZCUTBRc1pVRkJUQ3hGUVVGelFqdEJRVUZGTzBGQlEzUkNMRlZCUVVsRkxHMUNRVUZ0UWl4SFFVRkhMMFVzVVVGQlVTeERRVUZEZFVVc1pVRkJWQ3hEUVVGNVFsTXNjVUpCUVhwQ0xFVkJRVEZDTzBGQlEwRklMRTFCUVVGQkxHVkJRV1VzUjBGQlIwVXNiVUpCUVcxQ0xFTkJRVU5GTEV0QlFYQkNMRWRCUVRSQ1F5eEpRVUZKTEVOQlFVTkRMRWRCUVV3c1EwRkJVMG9zYlVKQlFXMUNMRU5CUVVOTExFbEJRVGRDTEVOQlFUbERPMEZCUTBRN08wRkJRMFFzVTBGQlMxUXNhVUpCUVV3c1IwRkJlVUl6UlN4UlFVRlJMRU5CUVVORExFbEJRVlFzUTBGQlkyOUdMRmRCUVdRc1IwRkJORUpTTEdWQlFYSkVPMEZCUTBFc1UwRkJTM0pGTEdOQlFVd3NSMEZCYzBJc1MwRkJTemhGTEdkQ1FVRk1MRVZCUVhSQ08wRkJRMFFzUjBGU1JEczdRVUZWUVRGR0xFVkJRVUZCTEV0QlFVc3NRMEZCUTNsQ0xGTkJRVTRzUTBGQlowSlZMRmxCUVdoQ0xFZEJRU3RDTEZsQlFWazdRVUZEZWtNc1VVRkJTWGRFTEU5QlFVOHNSMEZCUjBNc1VVRkJVU3hEUVVGRkxFdEJRVXQ2Uml4TFFVRk1MRU5CUVZjd1JTeEhRVUZZTEVOQlFXVXNaVUZCWml4TFFVRnRReXhEUVVGeVF5eEZRVUY1UXl4RlFVRjZReXhEUVVGMFFqdEJRVU5CTEZOQlFVdHNSU3hsUVVGTUxFZEJRWFZDVUN4UlFVRlJMRU5CUVVORExFbEJRVlFzUTBGQlkzZEdMRXRCUVdRc1EwRkJiMEppTEZsQlFYQkNMRWxCUVc5RExFVkJRVE5FTzBGQlEwRXNVVUZCU1N4TFFVRkxSQ3hwUWtGQlZDeEZRVUUwUWl4TFFVRkxOVVVzUzBGQlRDeERRVUZYTUVVc1IwRkJXQ3hEUVVGbExHVkJRV1lzUlVGQlowTmpMRTlCUVU4c1IwRkJSeXhMUVVGTEwwVXNZMEZCTDBNN1FVRkROMElzUjBGS1JEczdRVUZOUVZvc1JVRkJRVUVzUzBGQlN5eERRVUZEZVVJc1UwRkJUaXhEUVVGblFuTkRMR05CUVdoQ0xFZEJRV2xETEZsQlFWazdRVUZETTBNc1UwRkJTelZFTEV0QlFVd3NRMEZCVnpCRkxFZEJRVmdzUTBGQlpTeGxRVUZtTEVWQlFXZERMRXRCUVV0c1JTeGxRVUZ5UXp0QlFVTkVMRWRCUmtRN08wRkJTVUZZTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKcFJTeG5Ra0ZCYUVJc1IwRkJiVU1zV1VGQldUdEJRVUZGTzBGQlF5OURMRkZCUVVsSkxGTkJRVk1zUjBGQlJ6RkdMRkZCUVZFc1EwRkJRMmxGTEdGQlFWUXNRMEZCZFVJc1MwRkJka0lzUTBGQmFFSTdRVUZEUVhsQ0xFbEJRVUZCTEZOQlFWTXNRMEZCUTBNc1UwRkJWaXhIUVVGelFpeDVRa0ZCZEVJN1FVRkRRU3hUUVVGTE5VWXNTMEZCVEN4RFFVRlhOa1lzVFVGQldDeERRVUZyUWtZc1UwRkJiRUk3UVVGRFFTeFJRVUZKYkVZc1kwRkJZeXhIUVVGSGEwWXNVMEZCVXl4RFFVRkRNME1zVjBGQlZpeEhRVUYzUWpKRExGTkJRVk1zUTBGQlEwd3NWMEZCZGtRN1FVRkRRU3hUUVVGTGRFWXNTMEZCVEN4RFFVRlhMRU5CUVZnc1JVRkJZemhHTEZkQlFXUXNRMEZCTUVKSUxGTkJRVEZDTzBGQlEwRXNWMEZCVDJ4R0xHTkJRVkE3UVVGRFJDeEhRVkJFTEVOQk0xRlpMRU5CY1ZKYU8wRkJRMEU3T3p0QlFVVkJMRmRCUVZOelJpeE5RVUZVTEVOQlFXZENReXhOUVVGb1FpeEZRVUYzUW5oRkxHTkJRWGhDTEVWQlFYZERPMEZCUTNSRExGZEJRVThzUzBGQlMzbEZMRWxCUVV3c1EwRkJWU3haUVVGWk8wRkJRek5DTEZWQlFVbERMRXRCUVVzc1IwRkJTekZITEVOQlFVTXNRMEZCUXl4SlFVRkVMRU5CUVdZN1FVRkRRU3hWUVVGSk1rY3NTVUZCU1N4SFFVRk5SQ3hMUVVGTExFTkJRVU5ETEVsQlFVNHNRMEZCVnl4WlFVRllMRU5CUVdRN1FVRkRRU3hWUVVGSmNFY3NUMEZCVHl4SFFVRkhVQ3hEUVVGRExFTkJRVU0wUnl4TlFVRkdMRU5CUVZNc1JVRkJWQ3hGUVVGaGRrY3NTMEZCU3l4RFFVRkRjVUlzVVVGQmJrSXNSVUZCTmtKblJpeExRVUZMTEVOQlFVTkRMRWxCUVU0c1JVRkJOMElzUlVGQk1rTXNVVUZCVDBnc1RVRkJVQ3hMUVVGcFFpeFJRVUZxUWl4SlFVRTJRa0VzVFVGQmVFVXNRMEZCWkR0QlFVVkJMRlZCUVVrc1EwRkJRMGNzU1VGQlRDeEZRVUZYUkN4TFFVRkxMRU5CUVVORExFbEJRVTRzUTBGQlZ5eFpRVUZZTEVWQlFUQkNRU3hKUVVGSkxFZEJRVWNzU1VGQlNYUkhMRXRCUVVvc1EwRkJWU3hKUVVGV0xFVkJRV2RDUlN4UFFVRm9RaXhEUVVGcVF6dEJRVU5ZTEZWQlFVa3NUMEZCVDJsSExFMUJRVkFzU1VGQmFVSXNVVUZCY2tJc1JVRkJLMEpITEVsQlFVa3NRMEZCUTBnc1RVRkJSQ3hEUVVGS0xFTkJRV0Y0UlN4alFVRmlMRVZCUVM5Q0xFdEJRMHNzU1VGQlNYcENMRTlCUVU4c1EwRkJRM05DTEVsQlFWb3NSVUZCYTBJNFJTeEpRVUZKTEVOQlFVTTVSU3hKUVVGTUxFTkJRVlZITEdOQlFWWTdRVUZEZUVJc1MwRlNUU3hEUVVGUU8wRkJVMFE3TzBGQlJVUXNUVUZCU1RaRkxFZEJRVWNzUjBGQlJ6ZEhMRU5CUVVNc1EwRkJRMFVzUlVGQlJpeERRVUZMTkVjc1lVRkJaanRCUVVWQk9VY3NSVUZCUVVFc1EwRkJReXhEUVVGRFJTeEZRVUZHTEVOQlFVczBSeXhoUVVGTUxFZEJRV2xEVUN4TlFVRnFRenRCUVVOQmRrY3NSVUZCUVVFc1EwRkJReXhEUVVGRFJTeEZRVUZHTEVOQlFVczBSeXhoUVVGTUxFTkJRVzFDUXl4WFFVRnVRaXhIUVVGcFF6RkhMRXRCUVdwRExFTkJkbE5aTEVOQk1GTmFPMEZCUTBFN08wRkJSVUZNTEVWQlFVRkJMRU5CUVVNc1EwRkJRMFVzUlVGQlJpeERRVUZMTkVjc1lVRkJUQ3hEUVVGdFFrVXNWVUZCYmtJc1IwRkJaME1zV1VGQldUdEJRVU14UTJoSUxFbEJRVUZCTEVOQlFVTXNRMEZCUTBVc1JVRkJSaXhEUVVGTE5FY3NZVUZCVEN4SFFVRnhRa1FzUjBGQmNrSTdRVUZEUVN4WFFVRlBMRWxCUVZBN1FVRkRSQ3hIUVVoRUxFTkJOMU5aTEVOQmJWUmFPMEZCUTBFN096dEJRVVZCTjBjc1JVRkJRVUVzUTBGQlF5eERRVUZEVXl4UlFVRkVMRU5CUVVRc1EwRkJXVzFETEVWQlFWb3NRMEZCWlN3eVFrRkJaaXhGUVVFMFF5d3JRa0ZCTlVNc1JVRkJOa1VzVlVGQlZWUXNRMEZCVml4RlFVRmhPMEZCUTNoR0xGRkJRVWwxUlN4TFFVRkxMRWRCUVVzeFJ5eERRVUZETEVOQlFVTXNTVUZCUkN4RFFVRm1PMEZCUTBFc1VVRkJTV2xJTEVsQlFVa3NSMEZCVFZBc1MwRkJTeXhEUVVGRFVTeEpRVUZPTEVOQlFWY3NUVUZCV0N4RFFVRmtPMEZCUTBFc1VVRkJTVU1zVDBGQlR5eEhRVUZIYmtnc1EwRkJReXhEUVVGRE1FY3NTMEZCU3l4RFFVRkRVU3hKUVVGT0xFTkJRVmNzWVVGQldDeExRVUU0UWtRc1NVRkJTU3hKUVVGSlFTeEpRVUZKTEVOQlFVTkhMRTlCUVV3c1EwRkJZU3huUWtGQllpeEZRVUVyUWl4RlFVRXZRaXhEUVVGMlF5eERRVUZtTEVOQlNIZEdMRU5CUjBjN08wRkJRek5HTEZGQlFVbGFMRTFCUVUwc1IwRkJTVmNzVDBGQlR5eERRVUZEVWl4SlFVRlNMRU5CUVdFc1dVRkJZaXhKUVVFMlFpeFJRVUUzUWl4SFFVRjNRek5ITEVOQlFVTXNRMEZCUXpSSExFMUJRVVlzUTBGQlV6dEJRVUZGZWtZc1RVRkJRVUVzVFVGQlRTeEZRVUZGTEVOQlFVTXNTVUZCU1d0SExFbEJRVW9zUTBGQlUwb3NTVUZCVkN4RFFVRkVMRWxCUVcxQ1FUdEJRVUUzUWl4TFFVRlVMRVZCUVRoRFJTeFBRVUZQTEVOQlFVTlNMRWxCUVZJc1JVRkJPVU1zUlVGQk9FUkVMRXRCUVVzc1EwRkJRME1zU1VGQlRpeEZRVUU1UkN4RFFVRjBSRHRCUVVWQkxGRkJRVWxFTEV0QlFVc3NRMEZCUXpORUxFVkJRVTRzUTBGQlV5eEhRVUZVTEVOQlFVb3NSVUZCYlVKYUxFTkJRVU1zUTBGQlEzZENMR05CUVVZN1FVRkZia0ozUkN4SlFVRkJRU3hQUVVGUExFTkJRVU4wUlN4SFFVRlNMRU5CUVZrc2FVSkJRVm9zUlVGQkswSXNWVUZCVlhsRkxGTkJRVllzUlVGQmNVSTdRVUZEYkVRc1ZVRkJTVUVzVTBGQlV5eERRVUZEYUVZc2EwSkJRVllzUlVGQlNpeEZRVUZ2UXl4UFFVUmpMRU5CUTFBN08wRkJRek5ETmtVc1RVRkJRVUVzVDBGQlR5eERRVUZEZEVVc1IwRkJVaXhEUVVGWkxHMUNRVUZhTEVWQlFXbERMRmxCUVZrN1FVRkRNME0yUkN4UlFVRkJRU3hMUVVGTExFTkJRVU16UkN4RlFVRk9MRU5CUVZNc1ZVRkJWQ3hMUVVGM1FqSkVMRXRCUVVzc1EwRkJRM0JHTEU5QlFVNHNRMEZCWXl4UFFVRmtMRU5CUVhoQ08wRkJRMFFzVDBGR1JEdEJRVWRFTEV0QlRFUTdRVUZOUVdsR0xFbEJRVUZCTEUxQlFVMHNRMEZCUTJkQ0xFbEJRVkFzUTBGQldVb3NUMEZCV2l4RlFVRnhRbGdzVFVGQmNrSXNSVUZCTmtJc1NVRkJOMEk3UVVGRFJDeEhRV1pFTzBGQmFVSkVMRU5CZGxWQkxFTkJkVlZETVVjc1RVRjJWVVFzUTBGQlJEdEJRVEJWUVN4RFFVRkRMRlZCUVZWRkxFTkJRVllzUlVGQllUdEJRVU5hTEdWQlJGa3NRMEZIV2p0QlFVTkJPenRCUVVWQkxFMUJRVWt5UWl4UlFVRlJMRWRCUVVjc2IwSkJRV1k3UVVGRFFTeE5RVUZKU1N4TlFVRk5MRWRCUVVzc0swSkJRV1k3TzBGQlEwRXNUVUZCU1hsR0xGRkJRVkVzUjBGQlJ5eFRRVUZZUVN4UlFVRlhMRU5CUVZWc1NDeFBRVUZXTEVWQlFXMUNPMEZCUTJoRFRpeEpRVUZCUVN4RFFVRkRMRU5CUVVOTkxFOUJRVVFzUTBGQlJDeERRVUZYYzBNc1JVRkJXQ3hEUVVGakxIRkNRVUZrTEVWQlFYRkRMRXRCUVV0aUxFMUJRVEZETzBGQlEwUXNSMEZHUkRzN1FVRkpRWGxHTEVWQlFVRkJMRkZCUVZFc1EwRkJRMnBITEU5QlFWUXNSMEZCYlVJc1QwRkJia0k3TzBGQlJVRXNWMEZCVTJ0SExGTkJRVlFzUTBGQmJVSm1MRXRCUVc1Q0xFVkJRVEJDTzBGQlEzaENMRkZCUVVsblFpeFJRVUZSTEVkQlFVZG9RaXhMUVVGTExFTkJRVU5STEVsQlFVNHNRMEZCVnl4aFFVRllMRU5CUVdZN08wRkJSVUVzVVVGQlNTeERRVUZEVVN4UlFVRk1MRVZCUVdVN1FVRkRZa0VzVFVGQlFVRXNVVUZCVVN4SFFVRkhhRUlzUzBGQlN5eERRVUZEVVN4SlFVRk9MRU5CUVZjc1RVRkJXQ3hEUVVGWU8wRkJRMEZSTEUxQlFVRkJMRkZCUVZFc1IwRkJSMEVzVVVGQlVTeEpRVUZKTEZsQlFWbE1MRWxCUVZvc1EwRkJhVUpMTEZGQlFXcENMRU5CUVZvc1NVRkJNRU5CTEZGQlFWRXNRMEZCUTA0c1QwRkJWQ3hEUVVGcFFpeG5Ra0ZCYWtJc1JVRkJiVU1zUlVGQmJrTXNRMEZCY2tRc1EwRkdZU3hEUVVVclJUdEJRVU0zUmpzN1FVRkZSQ3hSUVVGSlR5eFBRVUZQTEVkQlFVZEVMRkZCUVZFc1NVRkJTVEZJTEVOQlFVTXNRMEZCUXpCSUxGRkJRVVFzUTBGQk0wSTdRVUZGUVN4WFFVRlBReXhQUVVGUExFbEJRVWxCTEU5QlFVOHNRMEZCUTNaRkxFMUJRVzVDTEVkQlFUUkNkVVVzVDBGQk5VSXNSMEZCYzBOcVFpeExRVUZMTEVOQlFVTjJSQ3hOUVVGT0xFVkJRVGRETzBGQlEwUTdPMEZCUlVRc1YwRkJVM2xGTEZWQlFWUXNRMEZCYjBKNlJpeERRVUZ3UWl4RlFVRjFRanRCUVVOeVFpeFJRVUZKUVN4RFFVRkRMRWxCUVVsQkxFTkJRVU1zUTBGQlF6WkNMRXRCUVVZc1MwRkJXU3hEUVVGeVFpeEZRVUYzUWp0QlFVTjRRbWhGTEVsQlFVRkJMRU5CUVVNc1EwRkJRekpDTEZGQlFVUXNRMEZCUkN4RFFVRlpNa01zVFVGQldqdEJRVU5CZEVVc1NVRkJRVUVzUTBGQlF5eERRVUZESzBJc1RVRkJSQ3hEUVVGRUxFTkJRVlV3UlN4SlFVRldMRU5CUVdVc1dVRkJXVHRCUVVONlFpeFZRVUZKUXl4TFFVRkxMRWRCUVZjeFJ5eERRVUZETEVOQlFVTXNTVUZCUkN4RFFVRnlRanRCUVVOQkxGVkJRVWt5U0N4UFFVRlBMRWRCUVZOR0xGTkJRVk1zUTBGQlEyWXNTMEZCUkN4RFFVRTNRanRCUVVOQkxGVkJRVWx5UlN4aFFVRmhMRWRCUVVjN1FVRkJSVUVzVVVGQlFVRXNZVUZCWVN4RlFVRkZPMEZCUVdwQ0xFOUJRWEJDTzBGQlJVRXNWVUZCU1N4RFFVRkRjMFlzVDBGQlR5eERRVUZEZWtVc1VVRkJVaXhEUVVGcFFpeE5RVUZxUWl4RFFVRk1MRVZCUVN0Q08wRkJSUzlDTEZWQlFVbG1MRU5CUVVNc1NVRkJTVUVzUTBGQlF5eERRVUZETUVZc1NVRkJSaXhKUVVGVkxFOUJRV1lzU1VGQk1FSXNhMEpCUVd0Q1VpeEpRVUZzUWl4RFFVRjFRbXhHTEVOQlFVTXNRMEZCUTFjc1RVRkJSaXhEUVVGVFowWXNUMEZCYUVNc1EwRkJNVUlzU1VGQmMwVTVTQ3hEUVVGRExFTkJRVU1yU0N4UlFVRkdMRU5CUVZkS0xFOUJRVThzUTBGQlF5eERRVUZFTEVOQlFXeENMRVZCUVhWQ2VFWXNRMEZCUXl4RFFVRkRWeXhOUVVGNlFpeERRVUV4UlN4RlFVRTBSenRCUVVVMVJ6WkZMRTFCUVVGQkxFOUJRVThzUTBGQlEzSkhMRTlCUVZJc1EwRkJaMEpoTEVOQlFVTXNSMEZCUjI1RExFTkJRVU1zUTBGQlEyOURMRXRCUVVZc1EwRkJVU3h2UWtGQlVpeEZRVUU0UWtNc1lVRkJPVUlzUTBGQmNFSTdRVUZGUVN4VlFVRkpSaXhEUVVGRExFTkJRVU5ITEd0Q1FVRkdMRVZCUVVvc1JVRkJORUk3UVVGRk5VSnZSU3hOUVVGQlFTeExRVUZMTEVOQlFVTlJMRWxCUVU0c1EwRkJWeXhsUVVGWUxFVkJRVFJDTEU5QlFUVkNPMEZCUTBGVExFMUJRVUZCTEU5QlFVOHNRMEZCUXpsRUxGZEJRVklzUTBGQmIwSXNUVUZCY0VJc1JVRkJORUoyUXl4UFFVRTFRaXhEUVVGdlF5eHpRa0ZCY0VNc1JVRkJORVJsTEdGQlFUVkVPMEZCUTBRc1MwRm1SRHRCUVdkQ1JEczdRVUZGUkcxR0xFVkJRVUZCTEZGQlFWRXNRMEZCUXpGR0xGTkJRVlFzUTBGQmJVSkRMRTFCUVc1Q0xFZEJRVFJDTEZWQlFWVkpMRU5CUVZZc1JVRkJZVHRCUVVOMlF5eFJRVUZKZFVVc1MwRkJTeXhIUVVGSE1VY3NRMEZCUXl4RFFVRkRMRWxCUVVRc1EwRkJZanRCUVVWQkxGRkJRVWt3Unl4TFFVRkxMRU5CUVVNelJDeEZRVUZPTEVOQlFWTXNjMEpCUVZRc1EwRkJTaXhGUVVGelF6dEJRVVYwUXl4UlFVRkpORVVzVDBGQlR5eEhRVUZKUml4VFFVRlRMRU5CUVVObUxFdEJRVVFzUTBGQmVFSTdRVUZEUVN4UlFVRkpjMElzVVVGQlVTeEhRVUZIVEN4UFFVRlBMRU5CUVVONlJTeFJRVUZTTEVOQlFXbENMRTFCUVdwQ0xFTkJRV1k3UVVGRlFUQkZMRWxCUVVGQkxGVkJRVlU3TzBGQlJWWXNVVUZCU1N4RFFVRkRTU3hSUVVGTUxFVkJRV1U3UVVGRFlpeFZRVUZKTEd0Q1FVRnJRblpJTEZGQlFWRXNRMEZCUTNWRkxHVkJRVE5DTEVsQlFUaERMRU5CUVVNeVF5eFBRVUZQTEVOQlFVTk5MRTlCUVZJc1EwRkJaMElzWVVGQmFFSXNSVUZCSzBJM1JTeE5RVUZzUml4RlFVRXdSanRCUVVONFJqdEJRVU5CY0VRc1VVRkJRVUVzUTBGQlF5eERRVUZEVXl4UlFVRlJMRU5CUVVOcFJTeGhRVUZVTEVOQlFYVkNMRXRCUVhaQ0xFTkJRVVFzUTBGQlJDeERRVU5IYWtNc1VVRkVTQ3hEUVVOWkxHMUNRVVJhTEVWQlJVZDVSaXhYUVVaSUxFTkJSV1ZzU1N4RFFVRkRMRU5CUVVNc1NVRkJSQ3hEUVVab1FpeEZRVWRITkVNc1JVRklTQ3hEUVVkTkxFOUJTRTRzUlVGSFpXZEdMRlZCU0dZN1FVRkpSRHM3UVVGRlJDeFZRVUZKZGtZc1lVRkJZU3hIUVVGSE8wRkJRVVZCTEZGQlFVRkJMR0ZCUVdFc1JVRkJSVHRCUVVGcVFpeFBRVUZ3UWp0QlFVTkJjMFlzVFVGQlFVRXNUMEZCVHl4RFFVRkRja2NzVDBGQlVpeERRVUZuUW1Fc1EwRkJReXhIUVVGSGJrTXNRMEZCUXl4RFFVRkRiME1zUzBGQlJpeERRVUZSTEc5Q1FVRlNMRVZCUVRoQ1F5eGhRVUU1UWl4RFFVRndRanRCUVVWQkxGVkJRVWxHTEVOQlFVTXNRMEZCUTBjc2EwSkJRVVlzUlVGQlNpeEZRVUUwUWp0QlFVVTFRbTlGTEUxQlFVRkJMRXRCUVVzc1EwRkRSbkJHTEU5QlJFZ3NRMEZEVnl4UFFVUllMRVZCUlVjMFJpeEpRVVpJTEVOQlJWRXNaVUZHVWl4RlFVVjVRaXhOUVVaNlFqdEJRVWxCVXl4TlFVRkJRU3hQUVVGUExFTkJRMHBSTEZkQlJFZ3NRMEZEWlN4TlFVUm1MRVZCUlVjM1J5eFBRVVpJTEVOQlJWY3NjVUpCUmxnc1JVRkZhME5sTEdGQlJteERPMEZCUjBRN08wRkJSVVFzVjBGQlR5eExRVUZRTzBGQlEwUXNSMEZzUTBRN08wRkJiME5CYlVZc1JVRkJRVUVzVVVGQlVTeERRVUZETVVZc1UwRkJWQ3hEUVVGdFFuTkhMRTlCUVc1Q0xFZEJRVFpDTEZWQlFWVnFSeXhEUVVGV0xFVkJRV0U3UVVGRGVFTXNVVUZCU1N4RFFVRkRMR2RDUVVGblFtdEdMRWxCUVdoQ0xFTkJRWEZDYkVZc1EwRkJReXhEUVVGRE5rSXNTMEZCZGtJc1EwRkJSQ3hKUVVGclF5eHJRa0ZCYTBKeFJDeEpRVUZzUWl4RFFVRjFRbXhHTEVOQlFVTXNRMEZCUTFjc1RVRkJSaXhEUVVGVFowWXNUMEZCYUVNc1EwRkJkRU1zUlVGQlowWTdRVUZGYUVZc1VVRkJTWEJDTEV0QlFVc3NSMEZCUnpGSExFTkJRVU1zUTBGQlF5eEpRVUZFTEVOQlFXSTdRVUZGUVcxRExFbEJRVUZCTEVOQlFVTXNRMEZCUTNkQ0xHTkJRVVk3UVVGRFFYaENMRWxCUVVGQkxFTkJRVU1zUTBGQlEydEhMR1ZCUVVZN1FVRkZRU3hSUVVGSk0wSXNTMEZCU3l4RFFVRkRNMFFzUlVGQlRpeERRVUZUTEhOQ1FVRlVMRU5CUVVvc1JVRkJjME03UVVGRmRFTXNVVUZCU1RSRkxFOUJRVThzUjBGQlNVWXNVMEZCVXl4RFFVRkRaaXhMUVVGRUxFTkJRWGhDTzBGQlEwRXNVVUZCU1hOQ0xGRkJRVkVzUjBGQlIwd3NUMEZCVHl4RFFVRkRla1VzVVVGQlVpeERRVUZwUWl4TlFVRnFRaXhEUVVGbU96dEJRVVZCTEZGQlFVa3NRMEZCUXpoRkxGRkJRVVFzU1VGQllUZEdMRU5CUVVNc1EwRkJRelpDTEV0QlFVWXNTVUZCVnl4RlFVRjRRaXhKUVVFNFFtZEZMRkZCUVZFc1NVRkJTVGRHTEVOQlFVTXNRMEZCUXpaQ0xFdEJRVVlzU1VGQlZ5eEZRVUY2UkN4RlFVRTJSRHRCUVVNelJDeFZRVUZKTjBJc1EwRkJReXhEUVVGRE5rSXNTMEZCUml4SlFVRlhMRVZCUVdZc1JVRkJiVUl5UkN4UFFVRlBMRU5CUVVNNVJ5eEpRVUZTTEVOQlFXRnJRaXhOUVVGaUxFVkJRWEZDVkN4UFFVRnlRaXhEUVVFMlFpeFBRVUUzUWp0QlFVTnVRaXhoUVVGUGIwWXNTMEZCU3l4RFFVRkRjRVlzVDBGQlRpeERRVUZqTEU5QlFXUXNRMEZCVUR0QlFVTkVPenRCUVVWRUxGRkJRVWxuU0N4SlFVRkpMRWRCUVVjc09FSkJRVmc3UVVGRFFTeFJRVUZKUXl4TlFVRk5MRWRCUVVkYUxFOUJRVThzUTBGQlF6bEhMRWxCUVZJc1EwRkJZU3h0UWtGQmJVSjVTQ3hKUVVGb1F5eERRVUZpTzBGQlJVRXNVVUZCU1N4RFFVRkRReXhOUVVGTkxFTkJRVU51Uml4TlFVRmFMRVZCUVc5Q08wRkJSWEJDTEZGQlFVbHZSaXhMUVVGTExFZEJRVWRFTEUxQlFVMHNRMEZCUTBNc1MwRkJVQ3hEUVVGaGNrY3NRMEZCUXl4RFFVRkRWeXhOUVVGbUxFTkJRVm83UVVGRlFTeFJRVUZKV0N4RFFVRkRMRU5CUVVNMlFpeExRVUZHTEVsQlFWY3NSVUZCV0N4SlFVRnBRbmRGTEV0QlFVc3NSMEZCUnl4RFFVRTNRaXhGUVVGblJFRXNTMEZCU3l4SFFYcENZaXhEUVhsQ2QwSTdPMEZCUTJoRkxGRkJRVWx5Unl4RFFVRkRMRU5CUVVNMlFpeExRVUZHTEVsQlFWY3NSVUZCV0N4SlFVRnBRbmRGTEV0QlFVc3NSMEZCUjBRc1RVRkJUU3hEUVVGRGJrWXNUVUZCVUN4SFFVRm5RaXhEUVVFM1F5eEZRVUZuUkc5R0xFdEJRVXNzUjBFeFFtSXNRMEV3UW5kQ096dEJRVU5vUlN4UlFVRkpMRU5CUVVNc1EwRkJRMEVzUzBGQlRpeEZRVUZuUkVFc1MwRkJTeXhIUVVGSExFTkJRVkk3UVVGRmFFUkVMRWxCUVVGQkxFMUJRVTBzUTBGQlEwVXNSVUZCVUN4RFFVRlZSQ3hMUVVGV0xFVkJRV2xDYkVnc1QwRkJha0lzUTBGQmVVSXNUMEZCZWtJN1FVRkRSQ3hIUVRsQ1JDeERRWEJHV1N4RFFYRklXanRCUVVOQk96czdRVUZGUVN4WFFVRlRhVVlzVFVGQlZDeERRVUZuUWtNc1RVRkJhRUlzUlVGQmQwSTdRVUZEZEVJc1YwRkJUeXhMUVVGTFF5eEpRVUZNTEVOQlFWVXNXVUZCV1R0QlFVTXpRaXhWUVVGSlF5eExRVUZMTEVkQlFVY3hSeXhEUVVGRExFTkJRVU1zU1VGQlJDeERRVUZpTzBGQlEwRXNWVUZCU1RKSExFbEJRVWtzUjBGQlNVUXNTMEZCU3l4RFFVRkRReXhKUVVGT0xFTkJRVmNzWlVGQldDeERRVUZhTzBGQlJVRXNWVUZCU1N4RFFVRkRRU3hKUVVGTUxFVkJRVmRFTEV0QlFVc3NRMEZCUTBNc1NVRkJUaXhEUVVGWExHVkJRVmdzUlVGQk5rSkJMRWxCUVVrc1IwRkJSeXhKUVVGSllTeFJRVUZLTEVOQlFXRXNTVUZCWWl4RFFVRndRenRCUVVOWUxGVkJRVWtzVDBGQlQyaENMRTFCUVZBc1NVRkJhVUlzVVVGQmNrSXNSVUZCSzBKSExFbEJRVWtzUTBGQlEwZ3NUVUZCUkN4RFFVRktMRU5CUVdGbExFbEJRV0lzUTBGQmEwSmlMRXRCUVd4Q08wRkJRMmhETEV0QlRrMHNRMEZCVUR0QlFVOUVPenRCUVVWRUxFMUJRVWxITEVkQlFVY3NSMEZCUnpkSExFTkJRVU1zUTBGQlEwVXNSVUZCUml4RFFVRkxkMGtzWVVGQlpqdEJRVVZCTVVrc1JVRkJRVUVzUTBGQlF5eERRVUZEUlN4RlFVRkdMRU5CUVV0M1NTeGhRVUZNTEVkQlFXbERia01zVFVGQmFrTTdRVUZEUVhaSExFVkJRVUZCTEVOQlFVTXNRMEZCUTBVc1JVRkJSaXhEUVVGTGQwa3NZVUZCVEN4RFFVRnRRak5DTEZkQlFXNUNMRWRCUVdsRFV5eFJRVUZxUXl4RFFYSkpXU3hEUVhkSldqdEJRVU5CT3p0QlFVVkJlRWdzUlVGQlFVRXNRMEZCUXl4RFFVRkRSU3hGUVVGR0xFTkJRVXQzU1N4aFFVRk1MRU5CUVcxQ01VSXNWVUZCYmtJc1IwRkJaME1zV1VGQldUdEJRVU14UTJoSUxFbEJRVUZCTEVOQlFVTXNRMEZCUTBVc1JVRkJSaXhEUVVGTGQwa3NZVUZCVEN4SFFVRnhRamRDTEVkQlFYSkNPMEZCUTBFc1YwRkJUeXhKUVVGUU8wRkJRMFFzUjBGSVJDeERRVE5KV1N4RFFXbEtXanRCUVVOQk96czdRVUZGUVRkSExFVkJRVUZCTEVOQlFVTXNRMEZCUTFNc1VVRkJSQ3hEUVVGRUxFTkJRMGR0UXl4RlFVUklMRU5CUTAwc09FSkJSRTRzUlVGRGMwTm5SaXhWUVVSMFF5eEZRVVZIYUVZc1JVRkdTQ3hEUVVWTkxEaENRVVpPTEVWQlJYTkRMR2RDUVVaMFF5eEZRVVYzUkN4VlFVRlZWQ3hEUVVGV0xFVkJRV0U3UVVGQlJVRXNTVUZCUVVFc1EwRkJReXhEUVVGRGEwY3NaVUZCUmp0QlFVRnhRaXhIUVVZMVJpeEZRVWRIZWtZc1JVRklTQ3hEUVVkTkxEaENRVWhPTEVWQlIzTkRZaXhOUVVoMFF5eEZRVWM0UTNsR0xGRkJRVkVzUTBGQlF6RkdMRk5CUVZRc1EwRkJiVUpETEUxQlNHcEZMRVZCU1VkaExFVkJTa2dzUTBGSlRTeG5RMEZLVGl4RlFVbDNRMklzVFVGS2VFTXNSVUZKWjBSNVJpeFJRVUZSTEVOQlFVTXhSaXhUUVVGVUxFTkJRVzFDYzBjc1QwRktia1VzUlVGTFIzaEdMRVZCVEVnc1EwRkxUU3huUTBGTVRpeEZRVXQzUXl4blFrRk1lRU1zUlVGTE1FUTBSU3hSUVVGUkxFTkJRVU14Uml4VFFVRlVMRU5CUVcxQ2MwY3NUMEZNTjBVN1FVRlBSQ3hEUVROS1FTeERRVEpLUTNSSkxFMUJNMHBFTEVOQlFVUWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lGY2NseHVJQ29nUjJWdVpYSmhkR1ZrSUhWemFXNW5JSFJvWlNCQ2IyOTBjM1J5WVhBZ1EzVnpkRzl0YVhwbGNpQW9hSFIwY0RvdkwyZGxkR0p2YjNSemRISmhjQzVqYjIwdlkzVnpkRzl0YVhwbEx6OXBaRDFtTkdJMFl6bGpZamcxWkdZM05UZGpZVEE0WXlsY2NseHVJQ29nUTI5dVptbG5JSE5oZG1Wa0lIUnZJR052Ym1acFp5NXFjMjl1SUdGdVpDQm9kSFJ3Y3pvdkwyZHBjM1F1WjJsMGFIVmlMbU52YlM5bU5HSTBZemxqWWpnMVpHWTNOVGRqWVRBNFkxeHlYRzRnS2k5Y2NseHVhV1lnS0hSNWNHVnZaaUJxVVhWbGNua2dQVDA5SUNkMWJtUmxabWx1WldRbktTQjdYSEpjYmlBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkQ2IyOTBjM1J5WVhCY1hDZHpJRXBoZG1GVFkzSnBjSFFnY21WeGRXbHlaWE1nYWxGMVpYSjVKeWxjY2x4dWZWeHlYRzRyWm5WdVkzUnBiMjRnS0NRcElIdGNjbHh1SUNBbmRYTmxJSE4wY21samRDYzdYSEpjYmlBZ2RtRnlJSFpsY25OcGIyNGdQU0FrTG1adUxtcHhkV1Z5ZVM1emNHeHBkQ2duSUNjcFd6QmRMbk53YkdsMEtDY3VKeWxjY2x4dUlDQnBaaUFvS0habGNuTnBiMjViTUYwZ1BDQXlJQ1ltSUhabGNuTnBiMjViTVYwZ1BDQTVLU0I4ZkNBb2RtVnljMmx2Ymxzd1hTQTlQU0F4SUNZbUlIWmxjbk5wYjI1Yk1WMGdQVDBnT1NBbUppQjJaWEp6YVc5dVd6SmRJRHdnTVNrcElIdGNjbHh1SUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblFtOXZkSE4wY21Gd1hGd25jeUJLWVhaaFUyTnlhWEIwSUhKbGNYVnBjbVZ6SUdwUmRXVnllU0IyWlhKemFXOXVJREV1T1M0eElHOXlJR2hwWjJobGNpY3BYSEpjYmlBZ2ZWeHlYRzU5S0dwUmRXVnllU2s3WEhKY2JseHlYRzR2S2lBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2NseHVJQ29nUW05dmRITjBjbUZ3T2lCdGIyUmhiQzVxY3lCMk15NHpMalZjY2x4dUlDb2dhSFIwY0RvdkwyZGxkR0p2YjNSemRISmhjQzVqYjIwdmFtRjJZWE5qY21sd2RDOGpiVzlrWVd4elhISmNiaUFxSUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4eVhHNGdLaUJEYjNCNWNtbG5hSFFnTWpBeE1TMHlNREUxSUZSM2FYUjBaWElzSUVsdVl5NWNjbHh1SUNvZ1RHbGpaVzV6WldRZ2RXNWtaWElnVFVsVUlDaG9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZkSGRpY3k5aWIyOTBjM1J5WVhBdllteHZZaTl0WVhOMFpYSXZURWxEUlU1VFJTbGNjbHh1SUNvZ1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOUlDb3ZYSEpjYmx4eVhHNWNjbHh1SzJaMWJtTjBhVzl1SUNna0tTQjdYSEpjYmlBZ0ozVnpaU0J6ZEhKcFkzUW5PMXh5WEc1Y2NseHVJQ0F2THlCTlQwUkJUQ0JEVEVGVFV5QkVSVVpKVGtsVVNVOU9YSEpjYmlBZ0x5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4eVhHNWNjbHh1SUNCMllYSWdUVzlrWVd3Z1BTQm1kVzVqZEdsdmJpQW9aV3hsYldWdWRDd2diM0IwYVc5dWN5a2dlMXh5WEc0Z0lDQWdkR2hwY3k1dmNIUnBiMjV6SUNBZ0lDQWdJQ0FnSUNBZ0lEMGdiM0IwYVc5dWMxeHlYRzRnSUNBZ2RHaHBjeTRrWW05a2VTQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQwZ0pDaGtiMk4xYldWdWRDNWliMlI1S1Z4eVhHNGdJQ0FnZEdocGN5NGtaV3hsYldWdWRDQWdJQ0FnSUNBZ0lDQWdJRDBnSkNobGJHVnRaVzUwS1Z4eVhHNGdJQ0FnZEdocGN5NGtaR2xoYkc5bklDQWdJQ0FnSUNBZ0lDQWdJRDBnZEdocGN5NGtaV3hsYldWdWRDNW1hVzVrS0NjdWJXOWtZV3d0WkdsaGJHOW5KeWxjY2x4dUlDQWdJSFJvYVhNdUpHSmhZMnRrY205d0lDQWdJQ0FnSUNBZ0lDQTlJRzUxYkd4Y2NseHVJQ0FnSUhSb2FYTXVhWE5UYUc5M2JpQWdJQ0FnSUNBZ0lDQWdJQ0E5SUc1MWJHeGNjbHh1SUNBZ0lIUm9hWE11YjNKcFoybHVZV3hDYjJSNVVHRmtJQ0FnSUNBOUlHNTFiR3hjY2x4dUlDQWdJSFJvYVhNdWMyTnliMnhzWW1GeVYybGtkR2dnSUNBZ0lDQTlJREJjY2x4dUlDQWdJSFJvYVhNdWFXZHViM0psUW1GamEyUnliM0JEYkdsamF5QTlJR1poYkhObFhISmNibHh5WEc0Z0lDQWdhV1lnS0hSb2FYTXViM0IwYVc5dWN5NXlaVzF2ZEdVcElIdGNjbHh1SUNBZ0lDQWdkR2hwY3k0a1pXeGxiV1Z1ZEZ4eVhHNGdJQ0FnSUNBZ0lDNW1hVzVrS0NjdWJXOWtZV3d0WTI5dWRHVnVkQ2NwWEhKY2JpQWdJQ0FnSUNBZ0xteHZZV1FvZEdocGN5NXZjSFJwYjI1ekxuSmxiVzkwWlN3Z0pDNXdjbTk0ZVNobWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMaVJsYkdWdFpXNTBMblJ5YVdkblpYSW9KMnh2WVdSbFpDNTNjR0pqTG0xdlpHRnNKeWxjY2x4dUlDQWdJQ0FnSUNCOUxDQjBhR2x6S1NsY2NseHVJQ0FnSUgxY2NseHVJQ0I5WEhKY2JseHlYRzRnSUUxdlpHRnNMbFpGVWxOSlQwNGdJRDBnSnpNdU15NDFKMXh5WEc1Y2NseHVJQ0JOYjJSaGJDNVVVa0ZPVTBsVVNVOU9YMFJWVWtGVVNVOU9JRDBnTXpBd1hISmNiaUFnVFc5a1lXd3VRa0ZEUzBSU1QxQmZWRkpCVGxOSlZFbFBUbDlFVlZKQlZFbFBUaUE5SURFMU1GeHlYRzVjY2x4dUlDQk5iMlJoYkM1RVJVWkJWVXhVVXlBOUlIdGNjbHh1SUNBZ0lHSmhZMnRrY205d09pQjBjblZsTEZ4eVhHNGdJQ0FnYTJWNVltOWhjbVE2SUhSeWRXVXNYSEpjYmlBZ0lDQnphRzkzT2lCMGNuVmxYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQk5iMlJoYkM1d2NtOTBiM1I1Y0dVdWRHOW5aMnhsSUQwZ1puVnVZM1JwYjI0Z0tGOXlaV3hoZEdWa1ZHRnlaMlYwS1NCN1hISmNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXBjMU5vYjNkdUlEOGdkR2hwY3k1b2FXUmxLQ2tnT2lCMGFHbHpMbk5vYjNjb1gzSmxiR0YwWldSVVlYSm5aWFFwWEhKY2JpQWdmVnh5WEc1Y2NseHVJQ0JOYjJSaGJDNXdjbTkwYjNSNWNHVXVjMmh2ZHlBOUlHWjFibU4wYVc5dUlDaGZjbVZzWVhSbFpGUmhjbWRsZENrZ2UxeHlYRzRnSUNBZ2RtRnlJSFJvWVhRZ1BTQjBhR2x6WEhKY2JpQWdJQ0IyWVhJZ1pTQWdJQ0E5SUNRdVJYWmxiblFvSjNOb2IzY3VkM0JpWXk1dGIyUmhiQ2NzSUhzZ2NtVnNZWFJsWkZSaGNtZGxkRG9nWDNKbGJHRjBaV1JVWVhKblpYUWdmU2xjY2x4dVhISmNiaUFnSUNCMGFHbHpMaVJsYkdWdFpXNTBMblJ5YVdkblpYSW9aU2xjY2x4dVhISmNiaUFnSUNCcFppQW9kR2hwY3k1cGMxTm9iM2R1SUh4OElHVXVhWE5FWldaaGRXeDBVSEpsZG1WdWRHVmtLQ2twSUhKbGRIVnlibHh5WEc1Y2NseHVJQ0FnSUhSb2FYTXVhWE5UYUc5M2JpQTlJSFJ5ZFdWY2NseHVYSEpjYmlBZ0lDQjBhR2x6TG1Ob1pXTnJVMk55YjJ4c1ltRnlLQ2xjY2x4dUlDQWdJSFJvYVhNdWMyVjBVMk55YjJ4c1ltRnlLQ2xjY2x4dUlDQWdJSFJvYVhNdUpHSnZaSGt1WVdSa1EyeGhjM01vSjIxdlpHRnNMVzl3Wlc0bktWeHlYRzVjY2x4dUlDQWdJSFJvYVhNdVpYTmpZWEJsS0NsY2NseHVJQ0FnSUhSb2FYTXVjbVZ6YVhwbEtDbGNjbHh1WEhKY2JpQWdJQ0IwYUdsekxpUmxiR1Z0Wlc1MExtOXVLQ2RqYkdsamF5NWthWE50YVhOekxuZHdZbU11Ylc5a1lXd25MQ0FuVzJSaGRHRXRaR2x6YldsemN6MWNJbTF2WkdGc1hDSmRKeXdnSkM1d2NtOTRlU2gwYUdsekxtaHBaR1VzSUhSb2FYTXBLVnh5WEc1Y2NseHVJQ0FnSUhSb2FYTXVKR1JwWVd4dlp5NXZiaWduYlc5MWMyVmtiM2R1TG1ScGMyMXBjM011ZDNCaVl5NXRiMlJoYkNjc0lHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJQ0FnZEdoaGRDNGtaV3hsYldWdWRDNXZibVVvSjIxdmRYTmxkWEF1WkdsemJXbHpjeTUzY0dKakxtMXZaR0ZzSnl3Z1puVnVZM1JwYjI0Z0tHVXBJSHRjY2x4dUlDQWdJQ0FnSUNCcFppQW9KQ2hsTG5SaGNtZGxkQ2t1YVhNb2RHaGhkQzRrWld4bGJXVnVkQ2twSUhSb1lYUXVhV2R1YjNKbFFtRmphMlJ5YjNCRGJHbGpheUE5SUhSeWRXVmNjbHh1SUNBZ0lDQWdmU2xjY2x4dUlDQWdJSDBwWEhKY2JseHlYRzRnSUNBZ2RHaHBjeTVpWVdOclpISnZjQ2htZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lIWmhjaUIwY21GdWMybDBhVzl1SUQwZ0pDNXpkWEJ3YjNKMExuUnlZVzV6YVhScGIyNGdKaVlnZEdoaGRDNGtaV3hsYldWdWRDNW9ZWE5EYkdGemN5Z25abUZrWlNjcFhISmNibHh5WEc0Z0lDQWdJQ0JwWmlBb0lYUm9ZWFF1SkdWc1pXMWxiblF1Y0dGeVpXNTBLQ2t1YkdWdVozUm9LU0I3WEhKY2JpQWdJQ0FnSUNBZ2RHaGhkQzRrWld4bGJXVnVkQzVoY0hCbGJtUlVieWgwYUdGMExpUmliMlI1S1NBdkx5QmtiMjRuZENCdGIzWmxJRzF2WkdGc2N5QmtiMjBnY0c5emFYUnBiMjVjY2x4dUlDQWdJQ0FnZlZ4eVhHNWNjbHh1SUNBZ0lDQWdkR2hoZEM0a1pXeGxiV1Z1ZEZ4eVhHNGdJQ0FnSUNBZ0lDNXphRzkzS0NsY2NseHVJQ0FnSUNBZ0lDQXVjMk55YjJ4c1ZHOXdLREFwWEhKY2JseHlYRzRnSUNBZ0lDQjBhR0YwTG1Ga2FuVnpkRVJwWVd4dlp5Z3BYSEpjYmx4eVhHNGdJQ0FnSUNCcFppQW9kSEpoYm5OcGRHbHZiaWtnZTF4eVhHNGdJQ0FnSUNBZ0lIUm9ZWFF1SkdWc1pXMWxiblJiTUYwdWIyWm1jMlYwVjJsa2RHZ2dMeThnWm05eVkyVWdjbVZtYkc5M1hISmNiaUFnSUNBZ0lIMWNjbHh1WEhKY2JpQWdJQ0FnSUhSb1lYUXVKR1ZzWlcxbGJuUXVZV1JrUTJ4aGMzTW9KMmx1SnlsY2NseHVYSEpjYmlBZ0lDQWdJSFJvWVhRdVpXNW1iM0pqWlVadlkzVnpLQ2xjY2x4dVhISmNiaUFnSUNBZ0lIWmhjaUJsSUQwZ0pDNUZkbVZ1ZENnbmMyaHZkMjR1ZDNCaVl5NXRiMlJoYkNjc0lIc2djbVZzWVhSbFpGUmhjbWRsZERvZ1gzSmxiR0YwWldSVVlYSm5aWFFnZlNsY2NseHVYSEpjYmlBZ0lDQWdJSFJ5WVc1emFYUnBiMjRnUDF4eVhHNGdJQ0FnSUNBZ0lIUm9ZWFF1SkdScFlXeHZaeUF2THlCM1lXbDBJR1p2Y2lCdGIyUmhiQ0IwYnlCemJHbGtaU0JwYmx4eVhHNGdJQ0FnSUNBZ0lDQWdMbTl1WlNnblluTlVjbUZ1YzJsMGFXOXVSVzVrSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ0lDQjBhR0YwTGlSbGJHVnRaVzUwTG5SeWFXZG5aWElvSjJadlkzVnpKeWt1ZEhKcFoyZGxjaWhsS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdmU2xjY2x4dUlDQWdJQ0FnSUNBZ0lDNWxiWFZzWVhSbFZISmhibk5wZEdsdmJrVnVaQ2hOYjJSaGJDNVVVa0ZPVTBsVVNVOU9YMFJWVWtGVVNVOU9LU0E2WEhKY2JpQWdJQ0FnSUNBZ2RHaGhkQzRrWld4bGJXVnVkQzUwY21sbloyVnlLQ2RtYjJOMWN5Y3BMblJ5YVdkblpYSW9aU2xjY2x4dUlDQWdJSDBwWEhKY2JpQWdmVnh5WEc1Y2NseHVJQ0JOYjJSaGJDNXdjbTkwYjNSNWNHVXVhR2xrWlNBOUlHWjFibU4wYVc5dUlDaGxLU0I3WEhKY2JpQWdJQ0JwWmlBb1pTa2daUzV3Y21WMlpXNTBSR1ZtWVhWc2RDZ3BYSEpjYmx4eVhHNGdJQ0FnWlNBOUlDUXVSWFpsYm5Rb0oyaHBaR1V1ZDNCaVl5NXRiMlJoYkNjcFhISmNibHh5WEc0Z0lDQWdkR2hwY3k0a1pXeGxiV1Z1ZEM1MGNtbG5aMlZ5S0dVcFhISmNibHh5WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbWx6VTJodmQyNGdmSHdnWlM1cGMwUmxabUYxYkhSUWNtVjJaVzUwWldRb0tTa2djbVYwZFhKdVhISmNibHh5WEc0Z0lDQWdkR2hwY3k1cGMxTm9iM2R1SUQwZ1ptRnNjMlZjY2x4dVhISmNiaUFnSUNCMGFHbHpMbVZ6WTJGd1pTZ3BYSEpjYmlBZ0lDQjBhR2x6TG5KbGMybDZaU2dwWEhKY2JseHlYRzRnSUNBZ0pDaGtiMk4xYldWdWRDa3ViMlptS0NkbWIyTjFjMmx1TG5kd1ltTXViVzlrWVd3bktWeHlYRzVjY2x4dUlDQWdJSFJvYVhNdUpHVnNaVzFsYm5SY2NseHVJQ0FnSUNBZ0xuSmxiVzkyWlVOc1lYTnpLQ2RwYmljcFhISmNiaUFnSUNBZ0lDNXZabVlvSjJOc2FXTnJMbVJwYzIxcGMzTXVkM0JpWXk1dGIyUmhiQ2NwWEhKY2JpQWdJQ0FnSUM1dlptWW9KMjF2ZFhObGRYQXVaR2x6YldsemN5NTNjR0pqTG0xdlpHRnNKeWxjY2x4dVhISmNiaUFnSUNCMGFHbHpMaVJrYVdGc2IyY3ViMlptS0NkdGIzVnpaV1J2ZDI0dVpHbHpiV2x6Y3k1M2NHSmpMbTF2WkdGc0p5bGNjbHh1WEhKY2JpQWdJQ0FrTG5OMWNIQnZjblF1ZEhKaGJuTnBkR2x2YmlBbUppQjBhR2x6TGlSbGJHVnRaVzUwTG1oaGMwTnNZWE56S0NkbVlXUmxKeWtnUDF4eVhHNGdJQ0FnSUNCMGFHbHpMaVJsYkdWdFpXNTBYSEpjYmlBZ0lDQWdJQ0FnTG05dVpTZ25Zbk5VY21GdWMybDBhVzl1Ulc1a0p5d2dKQzV3Y205NGVTaDBhR2x6TG1ocFpHVk5iMlJoYkN3Z2RHaHBjeWtwWEhKY2JpQWdJQ0FnSUNBZ0xtVnRkV3hoZEdWVWNtRnVjMmwwYVc5dVJXNWtLRTF2WkdGc0xsUlNRVTVUU1ZSSlQwNWZSRlZTUVZSSlQwNHBJRHBjY2x4dUlDQWdJQ0FnZEdocGN5NW9hV1JsVFc5a1lXd29LVnh5WEc0Z0lIMWNjbHh1WEhKY2JpQWdUVzlrWVd3dWNISnZkRzkwZVhCbExtVnVabTl5WTJWR2IyTjFjeUE5SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDUW9aRzlqZFcxbGJuUXBYSEpjYmlBZ0lDQWdJQzV2Wm1Zb0oyWnZZM1Z6YVc0dWQzQmlZeTV0YjJSaGJDY3BJQzh2SUdkMVlYSmtJR0ZuWVdsdWMzUWdhVzVtYVc1cGRHVWdabTlqZFhNZ2JHOXZjRnh5WEc0Z0lDQWdJQ0F1YjI0b0oyWnZZM1Z6YVc0dWQzQmlZeTV0YjJSaGJDY3NJQ1F1Y0hKdmVIa29ablZ1WTNScGIyNGdLR1VwSUh0Y2NseHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NGtaV3hsYldWdWRGc3dYU0FoUFQwZ1pTNTBZWEpuWlhRZ0ppWWdJWFJvYVhNdUpHVnNaVzFsYm5RdWFHRnpLR1V1ZEdGeVoyVjBLUzVzWlc1bmRHZ3BJSHRjY2x4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11SkdWc1pXMWxiblF1ZEhKcFoyZGxjaWduWm05amRYTW5LVnh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ2ZTd2dkR2hwY3lrcFhISmNiaUFnZlZ4eVhHNWNjbHh1SUNCTmIyUmhiQzV3Y205MGIzUjVjR1V1WlhOallYQmxJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ2FXWWdLSFJvYVhNdWFYTlRhRzkzYmlBbUppQjBhR2x6TG05d2RHbHZibk11YTJWNVltOWhjbVFwSUh0Y2NseHVJQ0FnSUNBZ2RHaHBjeTRrWld4bGJXVnVkQzV2YmlnbmEyVjVaRzkzYmk1a2FYTnRhWE56TG5kd1ltTXViVzlrWVd3bkxDQWtMbkJ5YjNoNUtHWjFibU4wYVc5dUlDaGxLU0I3WEhKY2JpQWdJQ0FnSUNBZ1pTNTNhR2xqYUNBOVBTQXlOeUFtSmlCMGFHbHpMbWhwWkdVb0tWeHlYRzRnSUNBZ0lDQjlMQ0IwYUdsektTbGNjbHh1SUNBZ0lIMGdaV3h6WlNCcFppQW9JWFJvYVhNdWFYTlRhRzkzYmlrZ2UxeHlYRzRnSUNBZ0lDQjBhR2x6TGlSbGJHVnRaVzUwTG05bVppZ25hMlY1Wkc5M2JpNWthWE50YVhOekxuZHdZbU11Ylc5a1lXd25LVnh5WEc0Z0lDQWdmVnh5WEc0Z0lIMWNjbHh1WEhKY2JpQWdUVzlrWVd3dWNISnZkRzkwZVhCbExuSmxjMmw2WlNBOUlHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJR2xtSUNoMGFHbHpMbWx6VTJodmQyNHBJSHRjY2x4dUlDQWdJQ0FnSkNoM2FXNWtiM2NwTG05dUtDZHlaWE5wZW1VdWQzQmlZeTV0YjJSaGJDY3NJQ1F1Y0hKdmVIa29kR2hwY3k1b1lXNWtiR1ZWY0dSaGRHVXNJSFJvYVhNcEtWeHlYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2NseHVJQ0FnSUNBZ0pDaDNhVzVrYjNjcExtOW1aaWduY21WemFYcGxMbmR3WW1NdWJXOWtZV3duS1Z4eVhHNGdJQ0FnZlZ4eVhHNGdJSDFjY2x4dVhISmNiaUFnVFc5a1lXd3VjSEp2ZEc5MGVYQmxMbWhwWkdWTmIyUmhiQ0E5SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lIWmhjaUIwYUdGMElEMGdkR2hwYzF4eVhHNGdJQ0FnZEdocGN5NGtaV3hsYldWdWRDNW9hV1JsS0NsY2NseHVJQ0FnSUhSb2FYTXVZbUZqYTJSeWIzQW9ablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnSUNCMGFHRjBMaVJpYjJSNUxuSmxiVzkyWlVOc1lYTnpLQ2R0YjJSaGJDMXZjR1Z1SnlsY2NseHVJQ0FnSUNBZ2RHaGhkQzV5WlhObGRFRmthblZ6ZEcxbGJuUnpLQ2xjY2x4dUlDQWdJQ0FnZEdoaGRDNXlaWE5sZEZOamNtOXNiR0poY2lncFhISmNiaUFnSUNBZ0lIUm9ZWFF1SkdWc1pXMWxiblF1ZEhKcFoyZGxjaWduYUdsa1pHVnVMbmR3WW1NdWJXOWtZV3duS1Z4eVhHNGdJQ0FnZlNsY2NseHVJQ0I5WEhKY2JseHlYRzRnSUUxdlpHRnNMbkJ5YjNSdmRIbHdaUzV5WlcxdmRtVkNZV05yWkhKdmNDQTlJR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUhSb2FYTXVKR0poWTJ0a2NtOXdJQ1ltSUhSb2FYTXVKR0poWTJ0a2NtOXdMbkpsYlc5MlpTZ3BYSEpjYmlBZ0lDQjBhR2x6TGlSaVlXTnJaSEp2Y0NBOUlHNTFiR3hjY2x4dUlDQjlYSEpjYmx4eVhHNGdJRTF2WkdGc0xuQnliM1J2ZEhsd1pTNWlZV05yWkhKdmNDQTlJR1oxYm1OMGFXOXVJQ2hqWVd4c1ltRmpheWtnZTF4eVhHNGdJQ0FnZG1GeUlIUm9ZWFFnUFNCMGFHbHpYSEpjYmlBZ0lDQjJZWElnWVc1cGJXRjBaU0E5SUhSb2FYTXVKR1ZzWlcxbGJuUXVhR0Z6UTJ4aGMzTW9KMlpoWkdVbktTQS9JQ2RtWVdSbEp5QTZJQ2NuWEhKY2JseHlYRzRnSUNBZ2FXWWdLSFJvYVhNdWFYTlRhRzkzYmlBbUppQjBhR2x6TG05d2RHbHZibk11WW1GamEyUnliM0FwSUh0Y2NseHVJQ0FnSUNBZ2RtRnlJR1J2UVc1cGJXRjBaU0E5SUNRdWMzVndjRzl5ZEM1MGNtRnVjMmwwYVc5dUlDWW1JR0Z1YVcxaGRHVmNjbHh1WEhKY2JpQWdJQ0FnSUhSb2FYTXVKR0poWTJ0a2NtOXdJRDBnSkNoa2IyTjFiV1Z1ZEM1amNtVmhkR1ZGYkdWdFpXNTBLQ2RrYVhZbktTbGNjbHh1SUNBZ0lDQWdJQ0F1WVdSa1EyeGhjM01vSjIxdlpHRnNMV0poWTJ0a2NtOXdJQ2NnS3lCaGJtbHRZWFJsS1Z4eVhHNGdJQ0FnSUNBZ0lDNWhjSEJsYm1SVWJ5aDBhR2x6TGlSaWIyUjVLVnh5WEc1Y2NseHVJQ0FnSUNBZ2RHaHBjeTRrWld4bGJXVnVkQzV2YmlnblkyeHBZMnN1WkdsemJXbHpjeTUzY0dKakxtMXZaR0ZzSnl3Z0pDNXdjbTk0ZVNobWRXNWpkR2x2YmlBb1pTa2dlMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDaDBhR2x6TG1sbmJtOXlaVUpoWTJ0a2NtOXdRMnhwWTJzcElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVhV2R1YjNKbFFtRmphMlJ5YjNCRGJHbGpheUE5SUdaaGJITmxYSEpjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTVjY2x4dUlDQWdJQ0FnSUNCOVhISmNiaUFnSUNBZ0lDQWdhV1lnS0dVdWRHRnlaMlYwSUNFOVBTQmxMbU4xY25KbGJuUlVZWEpuWlhRcElISmxkSFZ5Ymx4eVhHNGdJQ0FnSUNBZ0lIUm9hWE11YjNCMGFXOXVjeTVpWVdOclpISnZjQ0E5UFNBbmMzUmhkR2xqSjF4eVhHNGdJQ0FnSUNBZ0lDQWdQeUIwYUdsekxpUmxiR1Z0Wlc1MFd6QmRMbVp2WTNWektDbGNjbHh1SUNBZ0lDQWdJQ0FnSURvZ2RHaHBjeTVvYVdSbEtDbGNjbHh1SUNBZ0lDQWdmU3dnZEdocGN5a3BYSEpjYmx4eVhHNGdJQ0FnSUNCcFppQW9aRzlCYm1sdFlYUmxLU0IwYUdsekxpUmlZV05yWkhKdmNGc3dYUzV2Wm1aelpYUlhhV1IwYUNBdkx5Qm1iM0pqWlNCeVpXWnNiM2RjY2x4dVhISmNiaUFnSUNBZ0lIUm9hWE11SkdKaFkydGtjbTl3TG1Ga1pFTnNZWE56S0NkcGJpY3BYSEpjYmx4eVhHNGdJQ0FnSUNCcFppQW9JV05oYkd4aVlXTnJLU0J5WlhSMWNtNWNjbHh1WEhKY2JpQWdJQ0FnSUdSdlFXNXBiV0YwWlNBL1hISmNiaUFnSUNBZ0lDQWdkR2hwY3k0a1ltRmphMlJ5YjNCY2NseHVJQ0FnSUNBZ0lDQWdJQzV2Ym1Vb0oySnpWSEpoYm5OcGRHbHZia1Z1WkNjc0lHTmhiR3hpWVdOcktWeHlYRzRnSUNBZ0lDQWdJQ0FnTG1WdGRXeGhkR1ZVY21GdWMybDBhVzl1Ulc1a0tFMXZaR0ZzTGtKQlEwdEVVazlRWDFSU1FVNVRTVlJKVDA1ZlJGVlNRVlJKVDA0cElEcGNjbHh1SUNBZ0lDQWdJQ0JqWVd4c1ltRmpheWdwWEhKY2JseHlYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDZ2hkR2hwY3k1cGMxTm9iM2R1SUNZbUlIUm9hWE11SkdKaFkydGtjbTl3S1NCN1hISmNiaUFnSUNBZ0lIUm9hWE11SkdKaFkydGtjbTl3TG5KbGJXOTJaVU5zWVhOektDZHBiaWNwWEhKY2JseHlYRzRnSUNBZ0lDQjJZWElnWTJGc2JHSmhZMnRTWlcxdmRtVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBZ0lDQWdkR2hoZEM1eVpXMXZkbVZDWVdOclpISnZjQ2dwWEhKY2JpQWdJQ0FnSUNBZ1kyRnNiR0poWTJzZ0ppWWdZMkZzYkdKaFkyc29LVnh5WEc0Z0lDQWdJQ0I5WEhKY2JpQWdJQ0FnSUNRdWMzVndjRzl5ZEM1MGNtRnVjMmwwYVc5dUlDWW1JSFJvYVhNdUpHVnNaVzFsYm5RdWFHRnpRMnhoYzNNb0oyWmhaR1VuS1NBL1hISmNiaUFnSUNBZ0lDQWdkR2hwY3k0a1ltRmphMlJ5YjNCY2NseHVJQ0FnSUNBZ0lDQWdJQzV2Ym1Vb0oySnpWSEpoYm5OcGRHbHZia1Z1WkNjc0lHTmhiR3hpWVdOclVtVnRiM1psS1Z4eVhHNGdJQ0FnSUNBZ0lDQWdMbVZ0ZFd4aGRHVlVjbUZ1YzJsMGFXOXVSVzVrS0UxdlpHRnNMa0pCUTB0RVVrOVFYMVJTUVU1VFNWUkpUMDVmUkZWU1FWUkpUMDRwSURwY2NseHVJQ0FnSUNBZ0lDQmpZV3hzWW1GamExSmxiVzkyWlNncFhISmNibHh5WEc0Z0lDQWdmU0JsYkhObElHbG1JQ2hqWVd4c1ltRmpheWtnZTF4eVhHNGdJQ0FnSUNCallXeHNZbUZqYXlncFhISmNiaUFnSUNCOVhISmNiaUFnZlZ4eVhHNWNjbHh1SUNBdkx5QjBhR1Z6WlNCbWIyeHNiM2RwYm1jZ2JXVjBhRzlrY3lCaGNtVWdkWE5sWkNCMGJ5Qm9ZVzVrYkdVZ2IzWmxjbVpzYjNkcGJtY2diVzlrWVd4elhISmNibHh5WEc0Z0lFMXZaR0ZzTG5CeWIzUnZkSGx3WlM1b1lXNWtiR1ZWY0dSaGRHVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNCMGFHbHpMbUZrYW5WemRFUnBZV3h2WnlncFhISmNiaUFnZlZ4eVhHNWNjbHh1SUNCTmIyUmhiQzV3Y205MGIzUjVjR1V1WVdScWRYTjBSR2xoYkc5bklEMGdablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnZG1GeUlHMXZaR0ZzU1hOUGRtVnlabXh2ZDJsdVp5QTlJSFJvYVhNdUpHVnNaVzFsYm5SYk1GMHVjMk55YjJ4c1NHVnBaMmgwSUQ0Z1pHOWpkVzFsYm5RdVpHOWpkVzFsYm5SRmJHVnRaVzUwTG1Oc2FXVnVkRWhsYVdkb2RGeHlYRzVjY2x4dUlDQWdJSFJvYVhNdUpHVnNaVzFsYm5RdVkzTnpLSHRjY2x4dUlDQWdJQ0FnY0dGa1pHbHVaMHhsWm5RNklDQWhkR2hwY3k1aWIyUjVTWE5QZG1WeVpteHZkMmx1WnlBbUppQnRiMlJoYkVselQzWmxjbVpzYjNkcGJtY2dQeUIwYUdsekxuTmpjbTlzYkdKaGNsZHBaSFJvSURvZ0p5Y3NYSEpjYmlBZ0lDQWdJSEJoWkdScGJtZFNhV2RvZERvZ2RHaHBjeTVpYjJSNVNYTlBkbVZ5Wm14dmQybHVaeUFtSmlBaGJXOWtZV3hKYzA5MlpYSm1iRzkzYVc1bklEOGdkR2hwY3k1elkzSnZiR3hpWVhKWGFXUjBhQ0E2SUNjblhISmNiaUFnSUNCOUtWeHlYRzRnSUgxY2NseHVYSEpjYmlBZ1RXOWtZV3d1Y0hKdmRHOTBlWEJsTG5KbGMyVjBRV1JxZFhOMGJXVnVkSE1nUFNCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQjBhR2x6TGlSbGJHVnRaVzUwTG1OemN5aDdYSEpjYmlBZ0lDQWdJSEJoWkdScGJtZE1aV1owT2lBbkp5eGNjbHh1SUNBZ0lDQWdjR0ZrWkdsdVoxSnBaMmgwT2lBbkoxeHlYRzRnSUNBZ2ZTbGNjbHh1SUNCOVhISmNibHh5WEc0Z0lFMXZaR0ZzTG5CeWIzUnZkSGx3WlM1amFHVmphMU5qY205c2JHSmhjaUE5SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lIWmhjaUJtZFd4c1YybHVaRzkzVjJsa2RHZ2dQU0IzYVc1a2IzY3VhVzV1WlhKWGFXUjBhRnh5WEc0Z0lDQWdhV1lnS0NGbWRXeHNWMmx1Wkc5M1YybGtkR2dwSUhzZ0x5OGdkMjl5YTJGeWIzVnVaQ0JtYjNJZ2JXbHpjMmx1WnlCM2FXNWtiM2N1YVc1dVpYSlhhV1IwYUNCcGJpQkpSVGhjY2x4dUlDQWdJQ0FnZG1GeUlHUnZZM1Z0Wlc1MFJXeGxiV1Z1ZEZKbFkzUWdQU0JrYjJOMWJXVnVkQzVrYjJOMWJXVnVkRVZzWlcxbGJuUXVaMlYwUW05MWJtUnBibWREYkdsbGJuUlNaV04wS0NsY2NseHVJQ0FnSUNBZ1puVnNiRmRwYm1SdmQxZHBaSFJvSUQwZ1pHOWpkVzFsYm5SRmJHVnRaVzUwVW1WamRDNXlhV2RvZENBdElFMWhkR2d1WVdKektHUnZZM1Z0Wlc1MFJXeGxiV1Z1ZEZKbFkzUXViR1ZtZENsY2NseHVJQ0FnSUgxY2NseHVJQ0FnSUhSb2FYTXVZbTlrZVVselQzWmxjbVpzYjNkcGJtY2dQU0JrYjJOMWJXVnVkQzVpYjJSNUxtTnNhV1Z1ZEZkcFpIUm9JRHdnWm5Wc2JGZHBibVJ2ZDFkcFpIUm9YSEpjYmlBZ0lDQjBhR2x6TG5OamNtOXNiR0poY2xkcFpIUm9JRDBnZEdocGN5NXRaV0Z6ZFhKbFUyTnliMnhzWW1GeUtDbGNjbHh1SUNCOVhISmNibHh5WEc0Z0lFMXZaR0ZzTG5CeWIzUnZkSGx3WlM1elpYUlRZM0p2Ykd4aVlYSWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNCMllYSWdZbTlrZVZCaFpDQTlJSEJoY25ObFNXNTBLQ2gwYUdsekxpUmliMlI1TG1OemN5Z25jR0ZrWkdsdVp5MXlhV2RvZENjcElIeDhJREFwTENBeE1DbGNjbHh1SUNBZ0lIUm9hWE11YjNKcFoybHVZV3hDYjJSNVVHRmtJRDBnWkc5amRXMWxiblF1WW05a2VTNXpkSGxzWlM1d1lXUmthVzVuVW1sbmFIUWdmSHdnSnlkY2NseHVJQ0FnSUdsbUlDaDBhR2x6TG1KdlpIbEpjMDkyWlhKbWJHOTNhVzVuS1NCMGFHbHpMaVJpYjJSNUxtTnpjeWduY0dGa1pHbHVaeTF5YVdkb2RDY3NJR0p2WkhsUVlXUWdLeUIwYUdsekxuTmpjbTlzYkdKaGNsZHBaSFJvS1Z4eVhHNGdJSDFjY2x4dVhISmNiaUFnVFc5a1lXd3VjSEp2ZEc5MGVYQmxMbkpsYzJWMFUyTnliMnhzWW1GeUlEMGdablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnZEdocGN5NGtZbTlrZVM1amMzTW9KM0JoWkdScGJtY3RjbWxuYUhRbkxDQjBhR2x6TG05eWFXZHBibUZzUW05a2VWQmhaQ2xjY2x4dUlDQjlYSEpjYmx4eVhHNGdJRTF2WkdGc0xuQnliM1J2ZEhsd1pTNXRaV0Z6ZFhKbFUyTnliMnhzWW1GeUlEMGdablZ1WTNScGIyNGdLQ2tnZXlBdkx5QjBhSGdnZDJGc2MyaGNjbHh1SUNBZ0lIWmhjaUJ6WTNKdmJHeEVhWFlnUFNCa2IyTjFiV1Z1ZEM1amNtVmhkR1ZGYkdWdFpXNTBLQ2RrYVhZbktWeHlYRzRnSUNBZ2MyTnliMnhzUkdsMkxtTnNZWE56VG1GdFpTQTlJQ2R0YjJSaGJDMXpZM0p2Ykd4aVlYSXRiV1ZoYzNWeVpTZGNjbHh1SUNBZ0lIUm9hWE11SkdKdlpIa3VZWEJ3Wlc1a0tITmpjbTlzYkVScGRpbGNjbHh1SUNBZ0lIWmhjaUJ6WTNKdmJHeGlZWEpYYVdSMGFDQTlJSE5qY205c2JFUnBkaTV2Wm1aelpYUlhhV1IwYUNBdElITmpjbTlzYkVScGRpNWpiR2xsYm5SWGFXUjBhRnh5WEc0Z0lDQWdkR2hwY3k0a1ltOWtlVnN3WFM1eVpXMXZkbVZEYUdsc1pDaHpZM0p2Ykd4RWFYWXBYSEpjYmlBZ0lDQnlaWFIxY200Z2MyTnliMnhzWW1GeVYybGtkR2hjY2x4dUlDQjlYSEpjYmx4eVhHNWNjbHh1SUNBdkx5Qk5UMFJCVENCUVRGVkhTVTRnUkVWR1NVNUpWRWxQVGx4eVhHNGdJQzh2SUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlYSEpjYmx4eVhHNGdJR1oxYm1OMGFXOXVJRkJzZFdkcGJpaHZjSFJwYjI0c0lGOXlaV3hoZEdWa1ZHRnlaMlYwS1NCN1hISmNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWxZV05vS0daMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDQWdkbUZ5SUNSMGFHbHpJQ0FnUFNBa0tIUm9hWE1wWEhKY2JpQWdJQ0FnSUhaaGNpQmtZWFJoSUNBZ0lEMGdKSFJvYVhNdVpHRjBZU2duZDNCaVl5NXRiMlJoYkNjcFhISmNiaUFnSUNBZ0lIWmhjaUJ2Y0hScGIyNXpJRDBnSkM1bGVIUmxibVFvZTMwc0lFMXZaR0ZzTGtSRlJrRlZURlJUTENBa2RHaHBjeTVrWVhSaEtDa3NJSFI1Y0dWdlppQnZjSFJwYjI0Z1BUMGdKMjlpYW1WamRDY2dKaVlnYjNCMGFXOXVLVnh5WEc1Y2NseHVJQ0FnSUNBZ2FXWWdLQ0ZrWVhSaEtTQWtkR2hwY3k1a1lYUmhLQ2QzY0dKakxtMXZaR0ZzSnl3Z0tHUmhkR0VnUFNCdVpYY2dUVzlrWVd3b2RHaHBjeXdnYjNCMGFXOXVjeWtwS1Z4eVhHNGdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlHOXdkR2x2YmlBOVBTQW5jM1J5YVc1bkp5a2daR0YwWVZ0dmNIUnBiMjVkS0Y5eVpXeGhkR1ZrVkdGeVoyVjBLVnh5WEc0Z0lDQWdJQ0JsYkhObElHbG1JQ2h2Y0hScGIyNXpMbk5vYjNjcElHUmhkR0V1YzJodmR5aGZjbVZzWVhSbFpGUmhjbWRsZENsY2NseHVJQ0FnSUgwcFhISmNiaUFnZlZ4eVhHNWNjbHh1SUNCMllYSWdiMnhrSUQwZ0pDNW1iaTUzY0dKalgyMTVYMjF2WkdGc1hISmNibHh5WEc0Z0lDUXVabTR1ZDNCaVkxOXRlVjl0YjJSaGJDQWdJQ0FnSUNBZ0lDQWdJQ0E5SUZCc2RXZHBibHh5WEc0Z0lDUXVabTR1ZDNCaVkxOXRlVjl0YjJSaGJDNURiMjV6ZEhKMVkzUnZjaUE5SUUxdlpHRnNYSEpjYmx4eVhHNWNjbHh1SUNBdkx5Qk5UMFJCVENCT1R5QkRUMDVHVEVsRFZGeHlYRzRnSUM4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhISmNibHh5WEc0Z0lDUXVabTR1ZDNCaVkxOXRlVjl0YjJSaGJDNXViME52Ym1ac2FXTjBJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0pDNW1iaTUzY0dKalgyMTVYMjF2WkdGc0lEMGdiMnhrWEhKY2JpQWdJQ0J5WlhSMWNtNGdkR2hwYzF4eVhHNGdJSDFjY2x4dVhISmNibHh5WEc0Z0lDOHZJRTFQUkVGTUlFUkJWRUV0UVZCSlhISmNiaUFnTHk4Z1BUMDlQVDA5UFQwOVBUMDlQVDFjY2x4dVhISmNiaUFnSkNoa2IyTjFiV1Z1ZENrdWIyNG9KMk5zYVdOckxuZHdZbU11Ylc5a1lXd3VaR0YwWVMxaGNHa25MQ0FuVzJSaGRHRXRkRzluWjJ4bFBWd2lkM0JpWTE5dGVWOXRiMlJoYkZ3aVhTY3NJR1oxYm1OMGFXOXVJQ2hsS1NCN1hISmNiaUFnSUNCMllYSWdKSFJvYVhNZ0lDQTlJQ1FvZEdocGN5bGNjbHh1SUNBZ0lIWmhjaUJvY21WbUlDQWdJRDBnSkhSb2FYTXVZWFIwY2lnbmFISmxaaWNwWEhKY2JpQWdJQ0IyWVhJZ0pIUmhjbWRsZENBOUlDUW9KSFJvYVhNdVlYUjBjaWduWkdGMFlTMTBZWEpuWlhRbktTQjhmQ0FvYUhKbFppQW1KaUJvY21WbUxuSmxjR3hoWTJVb0x5NHFLRDg5STF0ZVhGeHpYU3NrS1M4c0lDY25LU2twSUM4dklITjBjbWx3SUdadmNpQnBaVGRjY2x4dUlDQWdJSFpoY2lCdmNIUnBiMjRnSUQwZ0pIUmhjbWRsZEM1a1lYUmhLQ2QzY0dKakxtMXZaR0ZzSnlrZ1B5QW5kRzluWjJ4bEp5QTZJQ1F1WlhoMFpXNWtLSHNnY21WdGIzUmxPaUFoTHlNdkxuUmxjM1FvYUhKbFppa2dKaVlnYUhKbFppQjlMQ0FrZEdGeVoyVjBMbVJoZEdFb0tTd2dKSFJvYVhNdVpHRjBZU2dwS1Z4eVhHNWNjbHh1SUNBZ0lHbG1JQ2drZEdocGN5NXBjeWduWVNjcEtTQmxMbkJ5WlhabGJuUkVaV1poZFd4MEtDbGNjbHh1WEhKY2JpQWdJQ0FrZEdGeVoyVjBMbTl1WlNnbmMyaHZkeTUzY0dKakxtMXZaR0ZzSnl3Z1puVnVZM1JwYjI0Z0tITm9iM2RGZG1WdWRDa2dlMXh5WEc0Z0lDQWdJQ0JwWmlBb2MyaHZkMFYyWlc1MExtbHpSR1ZtWVhWc2RGQnlaWFpsYm5SbFpDZ3BLU0J5WlhSMWNtNGdMeThnYjI1c2VTQnlaV2RwYzNSbGNpQm1iMk4xY3lCeVpYTjBiM0psY2lCcFppQnRiMlJoYkNCM2FXeHNJR0ZqZEhWaGJHeDVJR2RsZENCemFHOTNibHh5WEc0Z0lDQWdJQ0FrZEdGeVoyVjBMbTl1WlNnbmFHbGtaR1Z1TG5kd1ltTXViVzlrWVd3bkxDQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0FnSUNBZ0pIUm9hWE11YVhNb0p6cDJhWE5wWW14bEp5a2dKaVlnSkhSb2FYTXVkSEpwWjJkbGNpZ25abTlqZFhNbktWeHlYRzRnSUNBZ0lDQjlLVnh5WEc0Z0lDQWdmU2xjY2x4dUlDQWdJRkJzZFdkcGJpNWpZV3hzS0NSMFlYSm5aWFFzSUc5d2RHbHZiaXdnZEdocGN5bGNjbHh1SUNCOUtWeHlYRzVjY2x4dWZTaHFVWFZsY25rcE8xeHlYRzVjY2x4dVhISmNiaXRtZFc1amRHbHZiaUFvSkNrZ2UxeHlYRzRnSUNkMWMyVWdjM1J5YVdOMEp6dGNjbHh1WEhKY2JpQWdMeThnUkZKUFVFUlBWMDRnUTB4QlUxTWdSRVZHU1U1SlZFbFBUbHh5WEc0Z0lDOHZJRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNjbHh1WEhKY2JpQWdkbUZ5SUdKaFkydGtjbTl3SUQwZ0p5NWtjbTl3Wkc5M2JpMWlZV05yWkhKdmNDZGNjbHh1SUNCMllYSWdkRzluWjJ4bElDQWdQU0FuVzJSaGRHRXRkRzluWjJ4bFBWd2lkM0JpWTE5a2NtOXdaRzkzYmx3aVhTZGNjbHh1SUNCMllYSWdSSEp2Y0dSdmQyNGdQU0JtZFc1amRHbHZiaUFvWld4bGJXVnVkQ2tnZTF4eVhHNGdJQ0FnSkNobGJHVnRaVzUwS1M1dmJpZ25ZMnhwWTJzdWQzQmlZeTVrY205d1pHOTNiaWNzSUhSb2FYTXVkRzluWjJ4bEtWeHlYRzRnSUgxY2NseHVYSEpjYmlBZ1JISnZjR1J2ZDI0dVZrVlNVMGxQVGlBOUlDY3pMak11TlNkY2NseHVYSEpjYmlBZ1puVnVZM1JwYjI0Z1oyVjBVR0Z5Wlc1MEtDUjBhR2x6S1NCN1hISmNiaUFnSUNCMllYSWdjMlZzWldOMGIzSWdQU0FrZEdocGN5NWhkSFJ5S0Nka1lYUmhMWFJoY21kbGRDY3BYSEpjYmx4eVhHNGdJQ0FnYVdZZ0tDRnpaV3hsWTNSdmNpa2dlMXh5WEc0Z0lDQWdJQ0J6Wld4bFkzUnZjaUE5SUNSMGFHbHpMbUYwZEhJb0oyaHlaV1luS1Z4eVhHNGdJQ0FnSUNCelpXeGxZM1J2Y2lBOUlITmxiR1ZqZEc5eUlDWW1JQzhqVzBFdFdtRXRlbDB2TG5SbGMzUW9jMlZzWldOMGIzSXBJQ1ltSUhObGJHVmpkRzl5TG5KbGNHeGhZMlVvTHk0cUtEODlJMXRlWEZ4elhTb2tLUzhzSUNjbktTQXZMeUJ6ZEhKcGNDQm1iM0lnYVdVM1hISmNiaUFnSUNCOVhISmNibHh5WEc0Z0lDQWdkbUZ5SUNSd1lYSmxiblFnUFNCelpXeGxZM1J2Y2lBbUppQWtLSE5sYkdWamRHOXlLVnh5WEc1Y2NseHVJQ0FnSUhKbGRIVnliaUFrY0dGeVpXNTBJQ1ltSUNSd1lYSmxiblF1YkdWdVozUm9JRDhnSkhCaGNtVnVkQ0E2SUNSMGFHbHpMbkJoY21WdWRDZ3BYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQm1kVzVqZEdsdmJpQmpiR1ZoY2sxbGJuVnpLR1VwSUh0Y2NseHVJQ0FnSUdsbUlDaGxJQ1ltSUdVdWQyaHBZMmdnUFQwOUlETXBJSEpsZEhWeWJseHlYRzRnSUNBZ0pDaGlZV05yWkhKdmNDa3VjbVZ0YjNabEtDbGNjbHh1SUNBZ0lDUW9kRzluWjJ4bEtTNWxZV05vS0daMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDQWdkbUZ5SUNSMGFHbHpJQ0FnSUNBZ0lDQWdQU0FrS0hSb2FYTXBYSEpjYmlBZ0lDQWdJSFpoY2lBa2NHRnlaVzUwSUNBZ0lDQWdJRDBnWjJWMFVHRnlaVzUwS0NSMGFHbHpLVnh5WEc0Z0lDQWdJQ0IyWVhJZ2NtVnNZWFJsWkZSaGNtZGxkQ0E5SUhzZ2NtVnNZWFJsWkZSaGNtZGxkRG9nZEdocGN5QjlYSEpjYmx4eVhHNGdJQ0FnSUNCcFppQW9JU1J3WVhKbGJuUXVhR0Z6UTJ4aGMzTW9KMjl3Wlc0bktTa2djbVYwZFhKdVhISmNibHh5WEc0Z0lDQWdJQ0JwWmlBb1pTQW1KaUJsTG5SNWNHVWdQVDBnSjJOc2FXTnJKeUFtSmlBdmFXNXdkWFI4ZEdWNGRHRnlaV0V2YVM1MFpYTjBLR1V1ZEdGeVoyVjBMblJoWjA1aGJXVXBJQ1ltSUNRdVkyOXVkR0ZwYm5Nb0pIQmhjbVZ1ZEZzd1hTd2daUzUwWVhKblpYUXBLU0J5WlhSMWNtNWNjbHh1WEhKY2JpQWdJQ0FnSUNSd1lYSmxiblF1ZEhKcFoyZGxjaWhsSUQwZ0pDNUZkbVZ1ZENnbmFHbGtaUzUzY0dKakxtUnliM0JrYjNkdUp5d2djbVZzWVhSbFpGUmhjbWRsZENrcFhISmNibHh5WEc0Z0lDQWdJQ0JwWmlBb1pTNXBjMFJsWm1GMWJIUlFjbVYyWlc1MFpXUW9LU2tnY21WMGRYSnVYSEpjYmx4eVhHNGdJQ0FnSUNBa2RHaHBjeTVoZEhSeUtDZGhjbWxoTFdWNGNHRnVaR1ZrSnl3Z0oyWmhiSE5sSnlsY2NseHVJQ0FnSUNBZ0pIQmhjbVZ1ZEM1eVpXMXZkbVZEYkdGemN5Z25iM0JsYmljcExuUnlhV2RuWlhJb0oyaHBaR1JsYmk1M2NHSmpMbVJ5YjNCa2IzZHVKeXdnY21Wc1lYUmxaRlJoY21kbGRDbGNjbHh1SUNBZ0lIMHBYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQkVjbTl3Wkc5M2JpNXdjbTkwYjNSNWNHVXVkRzluWjJ4bElEMGdablZ1WTNScGIyNGdLR1VwSUh0Y2NseHVJQ0FnSUhaaGNpQWtkR2hwY3lBOUlDUW9kR2hwY3lsY2NseHVYSEpjYmlBZ0lDQnBaaUFvSkhSb2FYTXVhWE1vSnk1a2FYTmhZbXhsWkN3Z09tUnBjMkZpYkdWa0p5a3BJSEpsZEhWeWJseHlYRzVjY2x4dUlDQWdJSFpoY2lBa2NHRnlaVzUwSUNBOUlHZGxkRkJoY21WdWRDZ2tkR2hwY3lsY2NseHVJQ0FnSUhaaGNpQnBjMEZqZEdsMlpTQTlJQ1J3WVhKbGJuUXVhR0Z6UTJ4aGMzTW9KMjl3Wlc0bktWeHlYRzVjY2x4dUlDQWdJR05zWldGeVRXVnVkWE1vS1Z4eVhHNWNjbHh1SUNBZ0lHbG1JQ2doYVhOQlkzUnBkbVVwSUh0Y2NseHVJQ0FnSUNBZ2FXWWdLQ2R2Ym5SdmRXTm9jM1JoY25RbklHbHVJR1J2WTNWdFpXNTBMbVJ2WTNWdFpXNTBSV3hsYldWdWRDQW1KaUFoSkhCaGNtVnVkQzVqYkc5elpYTjBLQ2N1Ym1GMlltRnlMVzVoZGljcExteGxibWQwYUNrZ2UxeHlYRzRnSUNBZ0lDQWdJQzh2SUdsbUlHMXZZbWxzWlNCM1pTQjFjMlVnWVNCaVlXTnJaSEp2Y0NCaVpXTmhkWE5sSUdOc2FXTnJJR1YyWlc1MGN5QmtiMjRuZENCa1pXeGxaMkYwWlZ4eVhHNGdJQ0FnSUNBZ0lDUW9aRzlqZFcxbGJuUXVZM0psWVhSbFJXeGxiV1Z1ZENnblpHbDJKeWtwWEhKY2JpQWdJQ0FnSUNBZ0lDQXVZV1JrUTJ4aGMzTW9KMlJ5YjNCa2IzZHVMV0poWTJ0a2NtOXdKeWxjY2x4dUlDQWdJQ0FnSUNBZ0lDNXBibk5sY25SQlpuUmxjaWdrS0hSb2FYTXBLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0xtOXVLQ2RqYkdsamF5Y3NJR05zWldGeVRXVnVkWE1wWEhKY2JpQWdJQ0FnSUgxY2NseHVYSEpjYmlBZ0lDQWdJSFpoY2lCeVpXeGhkR1ZrVkdGeVoyVjBJRDBnZXlCeVpXeGhkR1ZrVkdGeVoyVjBPaUIwYUdseklIMWNjbHh1SUNBZ0lDQWdKSEJoY21WdWRDNTBjbWxuWjJWeUtHVWdQU0FrTGtWMlpXNTBLQ2R6YUc5M0xuZHdZbU11WkhKdmNHUnZkMjRuTENCeVpXeGhkR1ZrVkdGeVoyVjBLU2xjY2x4dVhISmNiaUFnSUNBZ0lHbG1JQ2hsTG1selJHVm1ZWFZzZEZCeVpYWmxiblJsWkNncEtTQnlaWFIxY201Y2NseHVYSEpjYmlBZ0lDQWdJQ1IwYUdselhISmNiaUFnSUNBZ0lDQWdMblJ5YVdkblpYSW9KMlp2WTNWekp5bGNjbHh1SUNBZ0lDQWdJQ0F1WVhSMGNpZ25ZWEpwWVMxbGVIQmhibVJsWkNjc0lDZDBjblZsSnlsY2NseHVYSEpjYmlBZ0lDQWdJQ1J3WVhKbGJuUmNjbHh1SUNBZ0lDQWdJQ0F1ZEc5bloyeGxRMnhoYzNNb0oyOXdaVzRuS1Z4eVhHNGdJQ0FnSUNBZ0lDNTBjbWxuWjJWeUtDZHphRzkzYmk1M2NHSmpMbVJ5YjNCa2IzZHVKeXdnY21Wc1lYUmxaRlJoY21kbGRDbGNjbHh1SUNBZ0lIMWNjbHh1WEhKY2JpQWdJQ0J5WlhSMWNtNGdabUZzYzJWY2NseHVJQ0I5WEhKY2JseHlYRzRnSUVSeWIzQmtiM2R1TG5CeWIzUnZkSGx3WlM1clpYbGtiM2R1SUQwZ1puVnVZM1JwYjI0Z0tHVXBJSHRjY2x4dUlDQWdJR2xtSUNnaEx5Z3pPSHcwTUh3eU4zd3pNaWt2TG5SbGMzUW9aUzUzYUdsamFDa2dmSHdnTDJsdWNIVjBmSFJsZUhSaGNtVmhMMmt1ZEdWemRDaGxMblJoY21kbGRDNTBZV2RPWVcxbEtTa2djbVYwZFhKdVhISmNibHh5WEc0Z0lDQWdkbUZ5SUNSMGFHbHpJRDBnSkNoMGFHbHpLVnh5WEc1Y2NseHVJQ0FnSUdVdWNISmxkbVZ1ZEVSbFptRjFiSFFvS1Z4eVhHNGdJQ0FnWlM1emRHOXdVSEp2Y0dGbllYUnBiMjRvS1Z4eVhHNWNjbHh1SUNBZ0lHbG1JQ2drZEdocGN5NXBjeWduTG1ScGMyRmliR1ZrTENBNlpHbHpZV0pzWldRbktTa2djbVYwZFhKdVhISmNibHh5WEc0Z0lDQWdkbUZ5SUNSd1lYSmxiblFnSUQwZ1oyVjBVR0Z5Wlc1MEtDUjBhR2x6S1Z4eVhHNGdJQ0FnZG1GeUlHbHpRV04wYVhabElEMGdKSEJoY21WdWRDNW9ZWE5EYkdGemN5Z25iM0JsYmljcFhISmNibHh5WEc0Z0lDQWdhV1lnS0NGcGMwRmpkR2wyWlNBbUppQmxMbmRvYVdOb0lDRTlJREkzSUh4OElHbHpRV04wYVhabElDWW1JR1V1ZDJocFkyZ2dQVDBnTWpjcElIdGNjbHh1SUNBZ0lDQWdhV1lnS0dVdWQyaHBZMmdnUFQwZ01qY3BJQ1J3WVhKbGJuUXVabWx1WkNoMGIyZG5iR1VwTG5SeWFXZG5aWElvSjJadlkzVnpKeWxjY2x4dUlDQWdJQ0FnY21WMGRYSnVJQ1IwYUdsekxuUnlhV2RuWlhJb0oyTnNhV05ySnlsY2NseHVJQ0FnSUgxY2NseHVYSEpjYmlBZ0lDQjJZWElnWkdWell5QTlJQ2NnYkdrNmJtOTBLQzVrYVhOaFlteGxaQ2s2ZG1semFXSnNaU0JoSjF4eVhHNGdJQ0FnZG1GeUlDUnBkR1Z0Y3lBOUlDUndZWEpsYm5RdVptbHVaQ2duTG1SeWIzQmtiM2R1TFcxbGJuVW5JQ3NnWkdWell5bGNjbHh1WEhKY2JpQWdJQ0JwWmlBb0lTUnBkR1Z0Y3k1c1pXNW5kR2dwSUhKbGRIVnlibHh5WEc1Y2NseHVJQ0FnSUhaaGNpQnBibVJsZUNBOUlDUnBkR1Z0Y3k1cGJtUmxlQ2hsTG5SaGNtZGxkQ2xjY2x4dVhISmNiaUFnSUNCcFppQW9aUzUzYUdsamFDQTlQU0F6T0NBbUppQnBibVJsZUNBK0lEQXBJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBibVJsZUMwdElDQWdJQ0FnSUNBZ0x5OGdkWEJjY2x4dUlDQWdJR2xtSUNobExuZG9hV05vSUQwOUlEUXdJQ1ltSUdsdVpHVjRJRHdnSkdsMFpXMXpMbXhsYm1kMGFDQXRJREVwSUdsdVpHVjRLeXNnSUNBZ0lDQWdJQ0F2THlCa2IzZHVYSEpjYmlBZ0lDQnBaaUFvSVg1cGJtUmxlQ2tnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JwYm1SbGVDQTlJREJjY2x4dVhISmNiaUFnSUNBa2FYUmxiWE11WlhFb2FXNWtaWGdwTG5SeWFXZG5aWElvSjJadlkzVnpKeWxjY2x4dUlDQjlYSEpjYmx4eVhHNWNjbHh1SUNBdkx5QkVVazlRUkU5WFRpQlFURlZIU1U0Z1JFVkdTVTVKVkVsUFRseHlYRzRnSUM4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhISmNibHh5WEc0Z0lHWjFibU4wYVc5dUlGQnNkV2RwYmlodmNIUnBiMjRwSUh0Y2NseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtVmhZMmdvWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0lDQjJZWElnSkhSb2FYTWdQU0FrS0hSb2FYTXBYSEpjYmlBZ0lDQWdJSFpoY2lCa1lYUmhJQ0E5SUNSMGFHbHpMbVJoZEdFb0ozZHdZbU11WkhKdmNHUnZkMjRuS1Z4eVhHNWNjbHh1SUNBZ0lDQWdhV1lnS0NGa1lYUmhLU0FrZEdocGN5NWtZWFJoS0NkM2NHSmpMbVJ5YjNCa2IzZHVKeXdnS0dSaGRHRWdQU0J1WlhjZ1JISnZjR1J2ZDI0b2RHaHBjeWtwS1Z4eVhHNGdJQ0FnSUNCcFppQW9kSGx3Wlc5bUlHOXdkR2x2YmlBOVBTQW5jM1J5YVc1bkp5a2daR0YwWVZ0dmNIUnBiMjVkTG1OaGJHd29KSFJvYVhNcFhISmNiaUFnSUNCOUtWeHlYRzRnSUgxY2NseHVYSEpjYmlBZ2RtRnlJRzlzWkNBOUlDUXVabTR1ZDNCaVkxOWtjbTl3Wkc5M2JseHlYRzVjY2x4dUlDQWtMbVp1TG5kd1ltTmZaSEp2Y0dSdmQyNGdJQ0FnSUNBZ0lDQWdJQ0FnUFNCUWJIVm5hVzVjY2x4dUlDQWtMbVp1TG5kd1ltTmZaSEp2Y0dSdmQyNHVRMjl1YzNSeWRXTjBiM0lnUFNCRWNtOXdaRzkzYmx4eVhHNWNjbHh1WEhKY2JpQWdMeThnUkZKUFVFUlBWMDRnVGs4Z1EwOU9Sa3hKUTFSY2NseHVJQ0F2THlBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHlYRzVjY2x4dUlDQWtMbVp1TG5kd1ltTmZaSEp2Y0dSdmQyNHVibTlEYjI1bWJHbGpkQ0E5SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDUXVabTR1ZDNCaVkxOWtjbTl3Wkc5M2JpQTlJRzlzWkZ4eVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhOY2NseHVJQ0I5WEhKY2JseHlYRzVjY2x4dUlDQXZMeUJCVUZCTVdTQlVUeUJUVkVGT1JFRlNSQ0JFVWs5UVJFOVhUaUJGVEVWTlJVNVVVMXh5WEc0Z0lDOHZJRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlYSEpjYmx4eVhHNGdJQ1FvWkc5amRXMWxiblFwWEhKY2JpQWdJQ0F1YjI0b0oyTnNhV05yTG5kd1ltTXVaSEp2Y0dSdmQyNHVaR0YwWVMxaGNHa25MQ0JqYkdWaGNrMWxiblZ6S1Z4eVhHNGdJQ0FnTG05dUtDZGpiR2xqYXk1M2NHSmpMbVJ5YjNCa2IzZHVMbVJoZEdFdFlYQnBKeXdnSnk1a2NtOXdaRzkzYmlCbWIzSnRKeXdnWm5WdVkzUnBiMjRnS0dVcElIc2daUzV6ZEc5d1VISnZjR0ZuWVhScGIyNG9LU0I5S1Z4eVhHNGdJQ0FnTG05dUtDZGpiR2xqYXk1M2NHSmpMbVJ5YjNCa2IzZHVMbVJoZEdFdFlYQnBKeXdnZEc5bloyeGxMQ0JFY205d1pHOTNiaTV3Y205MGIzUjVjR1V1ZEc5bloyeGxLVnh5WEc0Z0lDQWdMbTl1S0NkclpYbGtiM2R1TG5kd1ltTXVaSEp2Y0dSdmQyNHVaR0YwWVMxaGNHa25MQ0IwYjJkbmJHVXNJRVJ5YjNCa2IzZHVMbkJ5YjNSdmRIbHdaUzVyWlhsa2IzZHVLVnh5WEc0Z0lDQWdMbTl1S0NkclpYbGtiM2R1TG5kd1ltTXVaSEp2Y0dSdmQyNHVaR0YwWVMxaGNHa25MQ0FuTG1SeWIzQmtiM2R1TFcxbGJuVW5MQ0JFY205d1pHOTNiaTV3Y205MGIzUjVjR1V1YTJWNVpHOTNiaWxjY2x4dVhISmNibjBvYWxGMVpYSjVLVHRjY2x4dUlsMHNJbVpwYkdVaU9pSmhjM05sZEhNdmJHbGljeTkxYVM5ZmIzVjBMMlJ5YjNCa2IzZHVYMjF2WkdGc0xtcHpJbjA9XG4iXSwibmFtZXMiOlsiX3R5cGVvZiIsIm9iaiIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJqUXVlcnkiLCJFcnJvciIsInZlcnNpb24iLCJmbiIsImpxdWVyeSIsInNwbGl0IiwiJCIsIk1vZGFsIiwiZWxlbWVudCIsIm9wdGlvbnMiLCJ0aGlzIiwiJGJvZHkiLCJkb2N1bWVudCIsImJvZHkiLCIkZWxlbWVudCIsIiRkaWFsb2ciLCJmaW5kIiwiJGJhY2tkcm9wIiwiaXNTaG93biIsIm9yaWdpbmFsQm9keVBhZCIsInNjcm9sbGJhcldpZHRoIiwiaWdub3JlQmFja2Ryb3BDbGljayIsInJlbW90ZSIsImxvYWQiLCJwcm94eSIsInRyaWdnZXIiLCJQbHVnaW4iLCJvcHRpb24iLCJfcmVsYXRlZFRhcmdldCIsImVhY2giLCIkdGhpcyIsImRhdGEiLCJleHRlbmQiLCJERUZBVUxUUyIsInNob3ciLCJWRVJTSU9OIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsIkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04iLCJiYWNrZHJvcCIsImtleWJvYXJkIiwidG9nZ2xlIiwiaGlkZSIsInRoYXQiLCJlIiwiRXZlbnQiLCJyZWxhdGVkVGFyZ2V0IiwiaXNEZWZhdWx0UHJldmVudGVkIiwiY2hlY2tTY3JvbGxiYXIiLCJzZXRTY3JvbGxiYXIiLCJhZGRDbGFzcyIsImVzY2FwZSIsInJlc2l6ZSIsIm9uIiwib25lIiwidGFyZ2V0IiwiaXMiLCJ0cmFuc2l0aW9uIiwic3VwcG9ydCIsImhhc0NsYXNzIiwicGFyZW50IiwibGVuZ3RoIiwiYXBwZW5kVG8iLCJzY3JvbGxUb3AiLCJhZGp1c3REaWFsb2ciLCJvZmZzZXRXaWR0aCIsImVuZm9yY2VGb2N1cyIsImVtdWxhdGVUcmFuc2l0aW9uRW5kIiwicHJldmVudERlZmF1bHQiLCJvZmYiLCJyZW1vdmVDbGFzcyIsImhpZGVNb2RhbCIsImhhcyIsIndoaWNoIiwid2luZG93IiwiaGFuZGxlVXBkYXRlIiwicmVzZXRBZGp1c3RtZW50cyIsInJlc2V0U2Nyb2xsYmFyIiwicmVtb3ZlQmFja2Ryb3AiLCJyZW1vdmUiLCJjYWxsYmFjayIsImNhbGxiYWNrUmVtb3ZlIiwiYW5pbWF0ZSIsImRvQW5pbWF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJjdXJyZW50VGFyZ2V0IiwiZm9jdXMiLCJtb2RhbElzT3ZlcmZsb3dpbmciLCJzY3JvbGxIZWlnaHQiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRIZWlnaHQiLCJjc3MiLCJwYWRkaW5nTGVmdCIsImJvZHlJc092ZXJmbG93aW5nIiwicGFkZGluZ1JpZ2h0IiwiZG9jdW1lbnRFbGVtZW50UmVjdCIsImZ1bGxXaW5kb3dXaWR0aCIsImlubmVyV2lkdGgiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJyaWdodCIsIk1hdGgiLCJhYnMiLCJsZWZ0IiwiY2xpZW50V2lkdGgiLCJtZWFzdXJlU2Nyb2xsYmFyIiwiYm9keVBhZCIsInBhcnNlSW50Iiwic3R5bGUiLCJzY3JvbGxEaXYiLCJjbGFzc05hbWUiLCJhcHBlbmQiLCJyZW1vdmVDaGlsZCIsIm9sZCIsIndwYmNfbXlfbW9kYWwiLCJDb25zdHJ1Y3RvciIsIm5vQ29uZmxpY3QiLCJocmVmIiwiYXR0ciIsIiR0YXJnZXQiLCJyZXBsYWNlIiwidGVzdCIsInNob3dFdmVudCIsImNhbGwiLCJEcm9wZG93biIsImdldFBhcmVudCIsInNlbGVjdG9yIiwiJHBhcmVudCIsImNsZWFyTWVudXMiLCJ0eXBlIiwidGFnTmFtZSIsImNvbnRhaW5zIiwiaXNBY3RpdmUiLCJjbG9zZXN0IiwiaW5zZXJ0QWZ0ZXIiLCJ0b2dnbGVDbGFzcyIsImtleWRvd24iLCJzdG9wUHJvcGFnYXRpb24iLCIkaXRlbXMiLCJpbmRleCIsImVxIiwid3BiY19kcm9wZG93biJdLCJtYXBwaW5ncyI6ImFBRUEsU0FBU0EsUUFBUUMsR0FBa0MsT0FBT0QsUUFBVSxtQkFBcUJFLFFBQVUsaUJBQW1CQSxPQUFPQyxTQUFXLFNBQVVGLEdBQU8sY0FBY0EsR0FBUyxTQUFVQSxHQUFPLE9BQU9BLEdBQU8sbUJBQXFCQyxRQUFVRCxFQUFJRyxjQUFnQkYsUUFBVUQsSUFBUUMsT0FBT0csVUFBWSxnQkFBa0JKLElBQWdCQSxHQU16VSxHQUFzQixvQkFBWEssT0FDVCxNQUFNLElBQUlDLE1BQU0sMkNBR2pCLFdBR0MsSUFBSUMsRUFLSkYsT0FMZ0JHLEdBQUdDLE9BQU9DLE1BQU0sS0FBSyxHQUFHQSxNQUFNLEtBRTlDLEdBQUlILEVBQVEsR0FBSyxHQUFLQSxFQUFRLEdBQUssR0FBbUIsR0FBZEEsRUFBUSxJQUF5QixHQUFkQSxFQUFRLElBQVdBLEVBQVEsR0FBSyxFQUN6RixNQUFNLElBQUlELE1BQU0sa0VBTm5CLEdBaUJBLFNBQVVLLEdBSUcsU0FBUkMsRUFBdUJDLEVBQVNDLEdBQ2xDQyxLQUFLRCxRQUFVQSxFQUNmQyxLQUFLQyxNQUFRTCxFQUFFTSxTQUFTQyxNQUN4QkgsS0FBS0ksU0FBV1IsRUFBRUUsR0FDbEJFLEtBQUtLLFFBQVVMLEtBQUtJLFNBQVNFLEtBQUssaUJBQ2xDTixLQUFL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
1
+ "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(){var t=jQuery.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(),function(s){function r(t,e){this.options=e,this.$body=s(document.body),this.$element=s(t),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,s.proxy(function(){this.$element.trigger("loaded.wpbc.modal")},this))}function n(i,n){return this.each(function(){var t=s(this),e=t.data("wpbc.modal"),o=s.extend({},r.DEFAULTS,t.data(),"object"==_typeof(i)&&i);e||t.data("wpbc.modal",e=new r(this,o)),"string"==typeof i?e[i](n):o.show&&e.show(n)})}r.VERSION="3.3.5",r.TRANSITION_DURATION=300,r.BACKDROP_TRANSITION_DURATION=150,r.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},r.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},r.prototype.show=function(o){var i=this,t=s.Event("show.wpbc.modal",{relatedTarget:o});this.$element.trigger(t),this.isShown||t.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.wpbc.modal",'[data-dismiss="modal"]',s.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.wpbc.modal",function(){i.$element.one("mouseup.dismiss.wpbc.modal",function(t){s(t.target).is(i.$element)&&(i.ignoreBackdropClick=!0)})}),this.backdrop(function(){var t=s.support.transition&&i.$element.hasClass("fade");i.$element.parent().length||i.$element.appendTo(i.$body),i.$element.show().scrollTop(0),i.adjustDialog(),t&&i.$element[0].offsetWidth,i.$element.addClass("in"),i.enforceFocus();var e=s.Event("shown.wpbc.modal",{relatedTarget:o});t?i.$dialog.one("bsTransitionEnd",function(){i.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(r.TRANSITION_DURATION):i.$element.trigger("focus").trigger(e)}))},r.prototype.hide=function(t){t&&t.preventDefault(),t=s.Event("hide.wpbc.modal"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),s(document).off("focusin.wpbc.modal"),this.$element.removeClass("in").off("click.dismiss.wpbc.modal").off("mouseup.dismiss.wpbc.modal"),this.$dialog.off("mousedown.dismiss.wpbc.modal"),s.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",s.proxy(this.hideModal,this)).emulateTransitionEnd(r.TRANSITION_DURATION):this.hideModal())},r.prototype.enforceFocus=function(){s(document).off("focusin.wpbc.modal").on("focusin.wpbc.modal",s.proxy(function(t){this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},r.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.wpbc.modal",s.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.wpbc.modal")},r.prototype.resize=function(){this.isShown?s(window).on("resize.wpbc.modal",s.proxy(this.handleUpdate,this)):s(window).off("resize.wpbc.modal")},r.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.wpbc.modal")})},r.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},r.prototype.backdrop=function(t){var e,o=this,i=this.$element.hasClass("fade")?"fade":"";this.isShown&&this.options.backdrop?(e=s.support.transition&&i,this.$backdrop=s(document.createElement("div")).addClass("modal-backdrop "+i).appendTo(this.$body),this.$element.on("click.dismiss.wpbc.modal",s.proxy(function(t){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide())},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),t&&(e?this.$backdrop.one("bsTransitionEnd",t).emulateTransitionEnd(r.BACKDROP_TRANSITION_DURATION):t())):!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e=function(){o.removeBackdrop(),t&&t()},s.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(r.BACKDROP_TRANSITION_DURATION):e()):t&&t()},r.prototype.handleUpdate=function(){this.adjustDialog()},r.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},r.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},r.prototype.checkScrollbar=function(){var t,e=window.innerWidth;e||(e=(t=document.documentElement.getBoundingClientRect()).right-Math.abs(t.left)),this.bodyIsOverflowing=document.body.clientWidth<e,this.scrollbarWidth=this.measureScrollbar()},r.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},r.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},r.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var t=s.fn.wpbc_my_modal;s.fn.wpbc_my_modal=n,s.fn.wpbc_my_modal.Constructor=r,s.fn.wpbc_my_modal.noConflict=function(){return s.fn.wpbc_my_modal=t,this},s(document).on("click.wpbc.modal.data-api",'[data-toggle="wpbc_my_modal"]',function(t){var e=s(this),o=e.attr("href"),i=s(e.attr("data-target")||o&&o.replace(/.*(?=#[^\s]+$)/,"")),o=i.data("wpbc.modal")?"toggle":s.extend({remote:!/#/.test(o)&&o},i.data(),e.data());e.is("a")&&t.preventDefault(),i.one("show.wpbc.modal",function(t){t.isDefaultPrevented()||i.one("hidden.wpbc.modal",function(){e.is(":visible")&&e.trigger("focus")})}),n.call(i,o,this)})}(jQuery),function(n){function i(t){n(t).on("click.wpbc.dropdown",this.toggle)}var s='[data-toggle="wpbc_dropdown"]';function r(t){var e=t.attr("data-target"),e=(e=e||(e=t.attr("href"))&&/#[A-Za-z]/.test(e)&&e.replace(/.*(?=#[^\s]*$)/,""))&&n(e);return e&&e.length?e:t.parent()}function a(i){i&&3===i.which||(n(".dropdown-backdrop").remove(),n(s).each(function(){var t=n(this),e=r(t),o={relatedTarget:this};e.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&n.contains(e[0],i.target)||(e.trigger(i=n.Event("hide.wpbc.dropdown",o)),i.isDefaultPrevented()||(t.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.wpbc.dropdown",o))))}))}i.VERSION="3.3.5",i.prototype.toggle=function(t){var e=n(this);if(!e.is(".disabled, :disabled")){var o=r(e),i=o.hasClass("open");if(a(),!i){"ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&n(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(n(this)).on("click",a);i={relatedTarget:this};if(o.trigger(t=n.Event("show.wpbc.dropdown",i)),t.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),o.toggleClass("open").trigger("shown.wpbc.dropdown",i)}return!1}},i.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var e=n(this);if(t.preventDefault(),t.stopPropagation(),!e.is(".disabled, :disabled")){var o=r(e),i=o.hasClass("open");if(!i&&27!=t.which||i&&27==t.which)return 27==t.which&&o.find(s).trigger("focus"),e.trigger("click");var e=" li:not(.disabled):visible a",o=o.find(".dropdown-menu"+e+",.ui_dropdown_menu"+e);o.length&&(e=o.index(t.target),38==t.which&&0<e&&e--,40==t.which&&e<o.length-1&&e++,o.eq(e=!~e?0:e).trigger("focus"))}}};var t=n.fn.wpbc_dropdown;n.fn.wpbc_dropdown=function(o){return this.each(function(){var t=n(this),e=t.data("wpbc.dropdown");e||t.data("wpbc.dropdown",e=new i(this)),"string"==typeof o&&e[o].call(t)})},n.fn.wpbc_dropdown.Constructor=i,n.fn.wpbc_dropdown.noConflict=function(){return n.fn.wpbc_dropdown=t,this},n(document).on("click.wpbc.dropdown.data-api",a).on("click.wpbc.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.wpbc.dropdown.data-api",s,i.prototype.toggle).on("keydown.wpbc.dropdown.data-api",s,i.prototype.keydown).on("keydown.wpbc.dropdown.data-api",".dropdown-menu",i.prototype.keydown).on("keydown.wpbc.dropdown.data-api",".ui_dropdown_menu",i.prototype.keydown)}(jQuery);
2
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2xpYnMvdWkvX291dC9kcm9wZG93bl9tb2RhbC5taW4uanMiLCJzb3VyY2VzIjpbImFzc2V0cy9saWJzL3VpL19vdXQvZHJvcGRvd25fbW9kYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF90eXBlb2Yob2JqKSB7IFwiQGJhYmVsL2hlbHBlcnMgLSB0eXBlb2ZcIjsgcmV0dXJuIF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9IDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqICYmIFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG9iaiAhPT0gU3ltYm9sLnByb3RvdHlwZSA/IFwic3ltYm9sXCIgOiB0eXBlb2Ygb2JqOyB9LCBfdHlwZW9mKG9iaik7IH1cblxuLyohXHJcbiAqIEdlbmVyYXRlZCB1c2luZyB0aGUgQm9vdHN0cmFwIEN1c3RvbWl6ZXIgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2N1c3RvbWl6ZS8/aWQ9ZjRiNGM5Y2I4NWRmNzU3Y2EwOGMpXHJcbiAqIENvbmZpZyBzYXZlZCB0byBjb25maWcuanNvbiBhbmQgaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZjRiNGM5Y2I4NWRmNzU3Y2EwOGNcclxuICovXG5pZiAodHlwZW9mIGpRdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdCb290c3RyYXBcXCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Jyk7XG59XG5cbitmdW5jdGlvbiAoJCkge1xuICAndXNlIHN0cmljdCc7XG5cbiAgdmFyIHZlcnNpb24gPSAkLmZuLmpxdWVyeS5zcGxpdCgnICcpWzBdLnNwbGl0KCcuJyk7XG5cbiAgaWYgKHZlcnNpb25bMF0gPCAyICYmIHZlcnNpb25bMV0gPCA5IHx8IHZlcnNpb25bMF0gPT0gMSAmJiB2ZXJzaW9uWzFdID09IDkgJiYgdmVyc2lvblsyXSA8IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Jvb3RzdHJhcFxcJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkgdmVyc2lvbiAxLjkuMSBvciBoaWdoZXInKTtcbiAgfVxufShqUXVlcnkpO1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIEJvb3RzdHJhcDogbW9kYWwuanMgdjMuMy41XHJcbiAqIGh0dHA6Ly9nZXRib290c3RyYXAuY29tL2phdmFzY3JpcHQvI21vZGFsc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTEtMjAxNSBUd2l0dGVyLCBJbmMuXHJcbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4rZnVuY3Rpb24gKCQpIHtcbiAgJ3VzZSBzdHJpY3QnOyAvLyBNT0RBTCBDTEFTUyBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT1cblxuICB2YXIgTW9kYWwgPSBmdW5jdGlvbiBNb2RhbChlbGVtZW50LCBvcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLiRib2R5ID0gJChkb2N1bWVudC5ib2R5KTtcbiAgICB0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KTtcbiAgICB0aGlzLiRkaWFsb2cgPSB0aGlzLiRlbGVtZW50LmZpbmQoJy5tb2RhbC1kaWFsb2cnKTtcbiAgICB0aGlzLiRiYWNrZHJvcCA9IG51bGw7XG4gICAgdGhpcy5pc1Nob3duID0gbnVsbDtcbiAgICB0aGlzLm9yaWdpbmFsQm9keVBhZCA9IG51bGw7XG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCA9IDA7XG4gICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnJlbW90ZSkge1xuICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCcubW9kYWwtY29udGVudCcpLmxvYWQodGhpcy5vcHRpb25zLnJlbW90ZSwgJC5wcm94eShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcignbG9hZGVkLndwYmMubW9kYWwnKTtcbiAgICAgIH0sIHRoaXMpKTtcbiAgICB9XG4gIH07XG5cbiAgTW9kYWwuVkVSU0lPTiA9ICczLjMuNSc7XG4gIE1vZGFsLlRSQU5TSVRJT05fRFVSQVRJT04gPSAzMDA7XG4gIE1vZGFsLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04gPSAxNTA7XG4gIE1vZGFsLkRFRkFVTFRTID0ge1xuICAgIGJhY2tkcm9wOiB0cnVlLFxuICAgIGtleWJvYXJkOiB0cnVlLFxuICAgIHNob3c6IHRydWVcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUudG9nZ2xlID0gZnVuY3Rpb24gKF9yZWxhdGVkVGFyZ2V0KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNTaG93biA/IHRoaXMuaGlkZSgpIDogdGhpcy5zaG93KF9yZWxhdGVkVGFyZ2V0KTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUuc2hvdyA9IGZ1bmN0aW9uIChfcmVsYXRlZFRhcmdldCkge1xuICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICB2YXIgZSA9ICQuRXZlbnQoJ3Nob3cud3BiYy5tb2RhbCcsIHtcbiAgICAgIHJlbGF0ZWRUYXJnZXQ6IF9yZWxhdGVkVGFyZ2V0XG4gICAgfSk7XG4gICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKGUpO1xuICAgIGlmICh0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNTaG93biA9IHRydWU7XG4gICAgdGhpcy5jaGVja1Njcm9sbGJhcigpO1xuICAgIHRoaXMuc2V0U2Nyb2xsYmFyKCk7XG4gICAgdGhpcy4kYm9keS5hZGRDbGFzcygnbW9kYWwtb3BlbicpO1xuICAgIHRoaXMuZXNjYXBlKCk7XG4gICAgdGhpcy5yZXNpemUoKTtcbiAgICB0aGlzLiRlbGVtZW50Lm9uKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnLCAnW2RhdGEtZGlzbWlzcz1cIm1vZGFsXCJdJywgJC5wcm94eSh0aGlzLmhpZGUsIHRoaXMpKTtcbiAgICB0aGlzLiRkaWFsb2cub24oJ21vdXNlZG93bi5kaXNtaXNzLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB0aGF0LiRlbGVtZW50Lm9uZSgnbW91c2V1cC5kaXNtaXNzLndwYmMubW9kYWwnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAoJChlLnRhcmdldCkuaXModGhhdC4kZWxlbWVudCkpIHRoYXQuaWdub3JlQmFja2Ryb3BDbGljayA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciB0cmFuc2l0aW9uID0gJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgdGhhdC4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpO1xuXG4gICAgICBpZiAoIXRoYXQuJGVsZW1lbnQucGFyZW50KCkubGVuZ3RoKSB7XG4gICAgICAgIHRoYXQuJGVsZW1lbnQuYXBwZW5kVG8odGhhdC4kYm9keSk7IC8vIGRvbid0IG1vdmUgbW9kYWxzIGRvbSBwb3NpdGlvblxuICAgICAgfVxuXG4gICAgICB0aGF0LiRlbGVtZW50LnNob3coKS5zY3JvbGxUb3AoMCk7XG4gICAgICB0aGF0LmFkanVzdERpYWxvZygpO1xuXG4gICAgICBpZiAodHJhbnNpdGlvbikge1xuICAgICAgICB0aGF0LiRlbGVtZW50WzBdLm9mZnNldFdpZHRoOyAvLyBmb3JjZSByZWZsb3dcbiAgICAgIH1cblxuICAgICAgdGhhdC4kZWxlbWVudC5hZGRDbGFzcygnaW4nKTtcbiAgICAgIHRoYXQuZW5mb3JjZUZvY3VzKCk7XG4gICAgICB2YXIgZSA9ICQuRXZlbnQoJ3Nob3duLndwYmMubW9kYWwnLCB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IF9yZWxhdGVkVGFyZ2V0XG4gICAgICB9KTtcbiAgICAgIHRyYW5zaXRpb24gPyB0aGF0LiRkaWFsb2cgLy8gd2FpdCBmb3IgbW9kYWwgdG8gc2xpZGUgaW5cbiAgICAgIC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdmb2N1cycpLnRyaWdnZXIoZSk7XG4gICAgICB9KS5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5UUkFOU0lUSU9OX0RVUkFUSU9OKSA6IHRoYXQuJGVsZW1lbnQudHJpZ2dlcignZm9jdXMnKS50cmlnZ2VyKGUpO1xuICAgIH0pO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24gKGUpIHtcbiAgICBpZiAoZSkgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUgPSAkLkV2ZW50KCdoaWRlLndwYmMubW9kYWwnKTtcbiAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSk7XG4gICAgaWYgKCF0aGlzLmlzU2hvd24gfHwgZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuO1xuICAgIHRoaXMuaXNTaG93biA9IGZhbHNlO1xuICAgIHRoaXMuZXNjYXBlKCk7XG4gICAgdGhpcy5yZXNpemUoKTtcbiAgICAkKGRvY3VtZW50KS5vZmYoJ2ZvY3VzaW4ud3BiYy5tb2RhbCcpO1xuICAgIHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2luJykub2ZmKCdjbGljay5kaXNtaXNzLndwYmMubW9kYWwnKS5vZmYoJ21vdXNldXAuZGlzbWlzcy53cGJjLm1vZGFsJyk7XG4gICAgdGhpcy4kZGlhbG9nLm9mZignbW91c2Vkb3duLmRpc21pc3Mud3BiYy5tb2RhbCcpO1xuICAgICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/IHRoaXMuJGVsZW1lbnQub25lKCdic1RyYW5zaXRpb25FbmQnLCAkLnByb3h5KHRoaXMuaGlkZU1vZGFsLCB0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuVFJBTlNJVElPTl9EVVJBVElPTikgOiB0aGlzLmhpZGVNb2RhbCgpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5lbmZvcmNlRm9jdXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgJChkb2N1bWVudCkub2ZmKCdmb2N1c2luLndwYmMubW9kYWwnKSAvLyBndWFyZCBhZ2FpbnN0IGluZmluaXRlIGZvY3VzIGxvb3BcbiAgICAub24oJ2ZvY3VzaW4ud3BiYy5tb2RhbCcsICQucHJveHkoZnVuY3Rpb24gKGUpIHtcbiAgICAgIGlmICh0aGlzLiRlbGVtZW50WzBdICE9PSBlLnRhcmdldCAmJiAhdGhpcy4kZWxlbWVudC5oYXMoZS50YXJnZXQpLmxlbmd0aCkge1xuICAgICAgICB0aGlzLiRlbGVtZW50LnRyaWdnZXIoJ2ZvY3VzJyk7XG4gICAgICB9XG4gICAgfSwgdGhpcykpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5lc2NhcGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMua2V5Ym9hcmQpIHtcbiAgICAgIHRoaXMuJGVsZW1lbnQub24oJ2tleWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xuICAgICAgICBlLndoaWNoID09IDI3ICYmIHRoaXMuaGlkZSgpO1xuICAgICAgfSwgdGhpcykpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93bikge1xuICAgICAgdGhpcy4kZWxlbWVudC5vZmYoJ2tleWRvd24uZGlzbWlzcy53cGJjLm1vZGFsJyk7XG4gICAgfVxuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5yZXNpemUgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMuaXNTaG93bikge1xuICAgICAgJCh3aW5kb3cpLm9uKCdyZXNpemUud3BiYy5tb2RhbCcsICQucHJveHkodGhpcy5oYW5kbGVVcGRhdGUsIHRoaXMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgJCh3aW5kb3cpLm9mZigncmVzaXplLndwYmMubW9kYWwnKTtcbiAgICB9XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLmhpZGVNb2RhbCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgdGhpcy4kZWxlbWVudC5oaWRlKCk7XG4gICAgdGhpcy5iYWNrZHJvcChmdW5jdGlvbiAoKSB7XG4gICAgICB0aGF0LiRib2R5LnJlbW92ZUNsYXNzKCdtb2RhbC1vcGVuJyk7XG4gICAgICB0aGF0LnJlc2V0QWRqdXN0bWVudHMoKTtcbiAgICAgIHRoYXQucmVzZXRTY3JvbGxiYXIoKTtcbiAgICAgIHRoYXQuJGVsZW1lbnQudHJpZ2dlcignaGlkZGVuLndwYmMubW9kYWwnKTtcbiAgICB9KTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUucmVtb3ZlQmFja2Ryb3AgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kYmFja2Ryb3AgJiYgdGhpcy4kYmFja2Ryb3AucmVtb3ZlKCk7XG4gICAgdGhpcy4kYmFja2Ryb3AgPSBudWxsO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5iYWNrZHJvcCA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICB2YXIgYW5pbWF0ZSA9IHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/ICdmYWRlJyA6ICcnO1xuXG4gICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMuYmFja2Ryb3ApIHtcbiAgICAgIHZhciBkb0FuaW1hdGUgPSAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiBhbmltYXRlO1xuICAgICAgdGhpcy4kYmFja2Ryb3AgPSAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKS5hZGRDbGFzcygnbW9kYWwtYmFja2Ryb3AgJyArIGFuaW1hdGUpLmFwcGVuZFRvKHRoaXMuJGJvZHkpO1xuICAgICAgdGhpcy4kZWxlbWVudC5vbignY2xpY2suZGlzbWlzcy53cGJjLm1vZGFsJywgJC5wcm94eShmdW5jdGlvbiAoZSkge1xuICAgICAgICBpZiAodGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrKSB7XG4gICAgICAgICAgdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSBlLmN1cnJlbnRUYXJnZXQpIHJldHVybjtcbiAgICAgICAgdGhpcy5vcHRpb25zLmJhY2tkcm9wID09ICdzdGF0aWMnID8gdGhpcy4kZWxlbWVudFswXS5mb2N1cygpIDogdGhpcy5oaWRlKCk7XG4gICAgICB9LCB0aGlzKSk7XG4gICAgICBpZiAoZG9BbmltYXRlKSB0aGlzLiRiYWNrZHJvcFswXS5vZmZzZXRXaWR0aDsgLy8gZm9yY2UgcmVmbG93XG5cbiAgICAgIHRoaXMuJGJhY2tkcm9wLmFkZENsYXNzKCdpbicpO1xuICAgICAgaWYgKCFjYWxsYmFjaykgcmV0dXJuO1xuICAgICAgZG9BbmltYXRlID8gdGhpcy4kYmFja2Ryb3Aub25lKCdic1RyYW5zaXRpb25FbmQnLCBjYWxsYmFjaykuZW11bGF0ZVRyYW5zaXRpb25FbmQoTW9kYWwuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTikgOiBjYWxsYmFjaygpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93biAmJiB0aGlzLiRiYWNrZHJvcCkge1xuICAgICAgdGhpcy4kYmFja2Ryb3AucmVtb3ZlQ2xhc3MoJ2luJyk7XG5cbiAgICAgIHZhciBjYWxsYmFja1JlbW92ZSA9IGZ1bmN0aW9uIGNhbGxiYWNrUmVtb3ZlKCkge1xuICAgICAgICB0aGF0LnJlbW92ZUJhY2tkcm9wKCk7XG4gICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKCk7XG4gICAgICB9O1xuXG4gICAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdmYWRlJykgPyB0aGlzLiRiYWNrZHJvcC5vbmUoJ2JzVHJhbnNpdGlvbkVuZCcsIGNhbGxiYWNrUmVtb3ZlKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChNb2RhbC5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKSA6IGNhbGxiYWNrUmVtb3ZlKCk7XG4gICAgfSBlbHNlIGlmIChjYWxsYmFjaykge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG4gIH07IC8vIHRoZXNlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIHRvIGhhbmRsZSBvdmVyZmxvd2luZyBtb2RhbHNcblxuXG4gIE1vZGFsLnByb3RvdHlwZS5oYW5kbGVVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5hZGp1c3REaWFsb2coKTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUuYWRqdXN0RGlhbG9nID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciBtb2RhbElzT3ZlcmZsb3dpbmcgPSB0aGlzLiRlbGVtZW50WzBdLnNjcm9sbEhlaWdodCA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgdGhpcy4kZWxlbWVudC5jc3Moe1xuICAgICAgcGFkZGluZ0xlZnQ6ICF0aGlzLmJvZHlJc092ZXJmbG93aW5nICYmIG1vZGFsSXNPdmVyZmxvd2luZyA/IHRoaXMuc2Nyb2xsYmFyV2lkdGggOiAnJyxcbiAgICAgIHBhZGRpbmdSaWdodDogdGhpcy5ib2R5SXNPdmVyZmxvd2luZyAmJiAhbW9kYWxJc092ZXJmbG93aW5nID8gdGhpcy5zY3JvbGxiYXJXaWR0aCA6ICcnXG4gICAgfSk7XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLnJlc2V0QWRqdXN0bWVudHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kZWxlbWVudC5jc3Moe1xuICAgICAgcGFkZGluZ0xlZnQ6ICcnLFxuICAgICAgcGFkZGluZ1JpZ2h0OiAnJ1xuICAgIH0pO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5jaGVja1Njcm9sbGJhciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZnVsbFdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG5cbiAgICBpZiAoIWZ1bGxXaW5kb3dXaWR0aCkge1xuICAgICAgLy8gd29ya2Fyb3VuZCBmb3IgbWlzc2luZyB3aW5kb3cuaW5uZXJXaWR0aCBpbiBJRThcbiAgICAgIHZhciBkb2N1bWVudEVsZW1lbnRSZWN0ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgZnVsbFdpbmRvd1dpZHRoID0gZG9jdW1lbnRFbGVtZW50UmVjdC5yaWdodCAtIE1hdGguYWJzKGRvY3VtZW50RWxlbWVudFJlY3QubGVmdCk7XG4gICAgfVxuXG4gICAgdGhpcy5ib2R5SXNPdmVyZmxvd2luZyA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggPCBmdWxsV2luZG93V2lkdGg7XG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCA9IHRoaXMubWVhc3VyZVNjcm9sbGJhcigpO1xuICB9O1xuXG4gIE1vZGFsLnByb3RvdHlwZS5zZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGJvZHlQYWQgPSBwYXJzZUludCh0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcpIHx8IDAsIDEwKTtcbiAgICB0aGlzLm9yaWdpbmFsQm9keVBhZCA9IGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0IHx8ICcnO1xuICAgIGlmICh0aGlzLmJvZHlJc092ZXJmbG93aW5nKSB0aGlzLiRib2R5LmNzcygncGFkZGluZy1yaWdodCcsIGJvZHlQYWQgKyB0aGlzLnNjcm9sbGJhcldpZHRoKTtcbiAgfTtcblxuICBNb2RhbC5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy4kYm9keS5jc3MoJ3BhZGRpbmctcmlnaHQnLCB0aGlzLm9yaWdpbmFsQm9keVBhZCk7XG4gIH07XG5cbiAgTW9kYWwucHJvdG90eXBlLm1lYXN1cmVTY3JvbGxiYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgLy8gdGh4IHdhbHNoXG4gICAgdmFyIHNjcm9sbERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHNjcm9sbERpdi5jbGFzc05hbWUgPSAnbW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUnO1xuICAgIHRoaXMuJGJvZHkuYXBwZW5kKHNjcm9sbERpdik7XG4gICAgdmFyIHNjcm9sbGJhcldpZHRoID0gc2Nyb2xsRGl2Lm9mZnNldFdpZHRoIC0gc2Nyb2xsRGl2LmNsaWVudFdpZHRoO1xuICAgIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoc2Nyb2xsRGl2KTtcbiAgICByZXR1cm4gc2Nyb2xsYmFyV2lkdGg7XG4gIH07IC8vIE1PREFMIFBMVUdJTiBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uLCBfcmVsYXRlZFRhcmdldCkge1xuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICAgIHZhciBkYXRhID0gJHRoaXMuZGF0YSgnd3BiYy5tb2RhbCcpO1xuICAgICAgdmFyIG9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgTW9kYWwuREVGQVVMVFMsICR0aGlzLmRhdGEoKSwgX3R5cGVvZihvcHRpb24pID09ICdvYmplY3QnICYmIG9wdGlvbik7XG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMubW9kYWwnLCBkYXRhID0gbmV3IE1vZGFsKHRoaXMsIG9wdGlvbnMpKTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0oX3JlbGF0ZWRUYXJnZXQpO2Vsc2UgaWYgKG9wdGlvbnMuc2hvdykgZGF0YS5zaG93KF9yZWxhdGVkVGFyZ2V0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHZhciBvbGQgPSAkLmZuLndwYmNfbXlfbW9kYWw7XG4gICQuZm4ud3BiY19teV9tb2RhbCA9IFBsdWdpbjtcbiAgJC5mbi53cGJjX215X21vZGFsLkNvbnN0cnVjdG9yID0gTW9kYWw7IC8vIE1PREFMIE5PIENPTkZMSUNUXG4gIC8vID09PT09PT09PT09PT09PT09XG5cbiAgJC5mbi53cGJjX215X21vZGFsLm5vQ29uZmxpY3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgJC5mbi53cGJjX215X21vZGFsID0gb2xkO1xuICAgIHJldHVybiB0aGlzO1xuICB9OyAvLyBNT0RBTCBEQVRBLUFQSVxuICAvLyA9PT09PT09PT09PT09PVxuXG5cbiAgJChkb2N1bWVudCkub24oJ2NsaWNrLndwYmMubW9kYWwuZGF0YS1hcGknLCAnW2RhdGEtdG9nZ2xlPVwid3BiY19teV9tb2RhbFwiXScsIGZ1bmN0aW9uIChlKSB7XG4gICAgdmFyICR0aGlzID0gJCh0aGlzKTtcbiAgICB2YXIgaHJlZiA9ICR0aGlzLmF0dHIoJ2hyZWYnKTtcbiAgICB2YXIgJHRhcmdldCA9ICQoJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKSB8fCBocmVmICYmIGhyZWYucmVwbGFjZSgvLiooPz0jW15cXHNdKyQpLywgJycpKTsgLy8gc3RyaXAgZm9yIGllN1xuXG4gICAgdmFyIG9wdGlvbiA9ICR0YXJnZXQuZGF0YSgnd3BiYy5tb2RhbCcpID8gJ3RvZ2dsZScgOiAkLmV4dGVuZCh7XG4gICAgICByZW1vdGU6ICEvIy8udGVzdChocmVmKSAmJiBocmVmXG4gICAgfSwgJHRhcmdldC5kYXRhKCksICR0aGlzLmRhdGEoKSk7XG4gICAgaWYgKCR0aGlzLmlzKCdhJykpIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAkdGFyZ2V0Lm9uZSgnc2hvdy53cGJjLm1vZGFsJywgZnVuY3Rpb24gKHNob3dFdmVudCkge1xuICAgICAgaWYgKHNob3dFdmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuOyAvLyBvbmx5IHJlZ2lzdGVyIGZvY3VzIHJlc3RvcmVyIGlmIG1vZGFsIHdpbGwgYWN0dWFsbHkgZ2V0IHNob3duXG5cbiAgICAgICR0YXJnZXQub25lKCdoaWRkZW4ud3BiYy5tb2RhbCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgJHRoaXMuaXMoJzp2aXNpYmxlJykgJiYgJHRoaXMudHJpZ2dlcignZm9jdXMnKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIFBsdWdpbi5jYWxsKCR0YXJnZXQsIG9wdGlvbiwgdGhpcyk7XG4gIH0pO1xufShqUXVlcnkpO1xuK2Z1bmN0aW9uICgkKSB7XG4gICd1c2Ugc3RyaWN0JzsgLy8gRFJPUERPV04gQ0xBU1MgREVGSU5JVElPTlxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgdmFyIGJhY2tkcm9wID0gJy5kcm9wZG93bi1iYWNrZHJvcCc7XG4gIHZhciB0b2dnbGUgPSAnW2RhdGEtdG9nZ2xlPVwid3BiY19kcm9wZG93blwiXSc7XG5cbiAgdmFyIERyb3Bkb3duID0gZnVuY3Rpb24gRHJvcGRvd24oZWxlbWVudCkge1xuICAgICQoZWxlbWVudCkub24oJ2NsaWNrLndwYmMuZHJvcGRvd24nLCB0aGlzLnRvZ2dsZSk7XG4gIH07XG5cbiAgRHJvcGRvd24uVkVSU0lPTiA9ICczLjMuNSc7XG5cbiAgZnVuY3Rpb24gZ2V0UGFyZW50KCR0aGlzKSB7XG4gICAgdmFyIHNlbGVjdG9yID0gJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKTtcblxuICAgIGlmICghc2VsZWN0b3IpIHtcbiAgICAgIHNlbGVjdG9yID0gJHRoaXMuYXR0cignaHJlZicpO1xuICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciAmJiAvI1tBLVphLXpdLy50ZXN0KHNlbGVjdG9yKSAmJiBzZWxlY3Rvci5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLCAnJyk7IC8vIHN0cmlwIGZvciBpZTdcbiAgICB9XG5cbiAgICB2YXIgJHBhcmVudCA9IHNlbGVjdG9yICYmICQoc2VsZWN0b3IpO1xuICAgIHJldHVybiAkcGFyZW50ICYmICRwYXJlbnQubGVuZ3RoID8gJHBhcmVudCA6ICR0aGlzLnBhcmVudCgpO1xuICB9XG5cbiAgZnVuY3Rpb24gY2xlYXJNZW51cyhlKSB7XG4gICAgaWYgKGUgJiYgZS53aGljaCA9PT0gMykgcmV0dXJuO1xuICAgICQoYmFja2Ryb3ApLnJlbW92ZSgpO1xuICAgICQodG9nZ2xlKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgICB2YXIgJHBhcmVudCA9IGdldFBhcmVudCgkdGhpcyk7XG4gICAgICB2YXIgcmVsYXRlZFRhcmdldCA9IHtcbiAgICAgICAgcmVsYXRlZFRhcmdldDogdGhpc1xuICAgICAgfTtcbiAgICAgIGlmICghJHBhcmVudC5oYXNDbGFzcygnb3BlbicpKSByZXR1cm47XG4gICAgICBpZiAoZSAmJiBlLnR5cGUgPT0gJ2NsaWNrJyAmJiAvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGUudGFyZ2V0LnRhZ05hbWUpICYmICQuY29udGFpbnMoJHBhcmVudFswXSwgZS50YXJnZXQpKSByZXR1cm47XG4gICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ2hpZGUud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKTtcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm47XG4gICAgICAkdGhpcy5hdHRyKCdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gICAgICAkcGFyZW50LnJlbW92ZUNsYXNzKCdvcGVuJykudHJpZ2dlcignaGlkZGVuLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KTtcbiAgICB9KTtcbiAgfVxuXG4gIERyb3Bkb3duLnByb3RvdHlwZS50b2dnbGUgPSBmdW5jdGlvbiAoZSkge1xuICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgaWYgKCR0aGlzLmlzKCcuZGlzYWJsZWQsIDpkaXNhYmxlZCcpKSByZXR1cm47XG4gICAgdmFyICRwYXJlbnQgPSBnZXRQYXJlbnQoJHRoaXMpO1xuICAgIHZhciBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKTtcbiAgICBjbGVhck1lbnVzKCk7XG5cbiAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICBpZiAoJ29udG91Y2hzdGFydCcgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50ICYmICEkcGFyZW50LmNsb3Nlc3QoJy5uYXZiYXItbmF2JykubGVuZ3RoKSB7XG4gICAgICAgIC8vIGlmIG1vYmlsZSB3ZSB1c2UgYSBiYWNrZHJvcCBiZWNhdXNlIGNsaWNrIGV2ZW50cyBkb24ndCBkZWxlZ2F0ZVxuICAgICAgICAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKS5hZGRDbGFzcygnZHJvcGRvd24tYmFja2Ryb3AnKS5pbnNlcnRBZnRlcigkKHRoaXMpKS5vbignY2xpY2snLCBjbGVhck1lbnVzKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJlbGF0ZWRUYXJnZXQgPSB7XG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IHRoaXNcbiAgICAgIH07XG4gICAgICAkcGFyZW50LnRyaWdnZXIoZSA9ICQuRXZlbnQoJ3Nob3cud3BiYy5kcm9wZG93bicsIHJlbGF0ZWRUYXJnZXQpKTtcbiAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm47XG4gICAgICAkdGhpcy50cmlnZ2VyKCdmb2N1cycpLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCAndHJ1ZScpO1xuICAgICAgJHBhcmVudC50b2dnbGVDbGFzcygnb3BlbicpLnRyaWdnZXIoJ3Nob3duLndwYmMuZHJvcGRvd24nLCByZWxhdGVkVGFyZ2V0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24gPSBmdW5jdGlvbiAoZSkge1xuICAgIGlmICghLygzOHw0MHwyN3wzMikvLnRlc3QoZS53aGljaCkgfHwgL2lucHV0fHRleHRhcmVhL2kudGVzdChlLnRhcmdldC50YWdOYW1lKSkgcmV0dXJuO1xuICAgIHZhciAkdGhpcyA9ICQodGhpcyk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCR0aGlzLmlzKCcuZGlzYWJsZWQsIDpkaXNhYmxlZCcpKSByZXR1cm47XG4gICAgdmFyICRwYXJlbnQgPSBnZXRQYXJlbnQoJHRoaXMpO1xuICAgIHZhciBpc0FjdGl2ZSA9ICRwYXJlbnQuaGFzQ2xhc3MoJ29wZW4nKTtcblxuICAgIGlmICghaXNBY3RpdmUgJiYgZS53aGljaCAhPSAyNyB8fCBpc0FjdGl2ZSAmJiBlLndoaWNoID09IDI3KSB7XG4gICAgICBpZiAoZS53aGljaCA9PSAyNykgJHBhcmVudC5maW5kKHRvZ2dsZSkudHJpZ2dlcignZm9jdXMnKTtcbiAgICAgIHJldHVybiAkdGhpcy50cmlnZ2VyKCdjbGljaycpO1xuICAgIH1cblxuICAgIHZhciBkZXNjID0gJyBsaTpub3QoLmRpc2FibGVkKTp2aXNpYmxlIGEnO1xuICAgIHZhciAkaXRlbXMgPSAkcGFyZW50LmZpbmQoJy5kcm9wZG93bi1tZW51JyArIGRlc2MgKyAnLC51aV9kcm9wZG93bl9tZW51JyArIGRlc2MpO1xuICAgIGlmICghJGl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuICAgIHZhciBpbmRleCA9ICRpdGVtcy5pbmRleChlLnRhcmdldCk7XG4gICAgaWYgKGUud2hpY2ggPT0gMzggJiYgaW5kZXggPiAwKSBpbmRleC0tOyAvLyB1cFxuXG4gICAgaWYgKGUud2hpY2ggPT0gNDAgJiYgaW5kZXggPCAkaXRlbXMubGVuZ3RoIC0gMSkgaW5kZXgrKzsgLy8gZG93blxuXG4gICAgaWYgKCF+aW5kZXgpIGluZGV4ID0gMDtcbiAgICAkaXRlbXMuZXEoaW5kZXgpLnRyaWdnZXIoJ2ZvY3VzJyk7XG4gIH07IC8vIERST1BET1dOIFBMVUdJTiBERUZJTklUSU9OXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblxuICBmdW5jdGlvbiBQbHVnaW4ob3B0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgdmFyIGRhdGEgPSAkdGhpcy5kYXRhKCd3cGJjLmRyb3Bkb3duJyk7XG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3dwYmMuZHJvcGRvd24nLCBkYXRhID0gbmV3IERyb3Bkb3duKHRoaXMpKTtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0uY2FsbCgkdGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICB2YXIgb2xkID0gJC5mbi53cGJjX2Ryb3Bkb3duO1xuICAkLmZuLndwYmNfZHJvcGRvd24gPSBQbHVnaW47XG4gICQuZm4ud3BiY19kcm9wZG93bi5Db25zdHJ1Y3RvciA9IERyb3Bkb3duOyAvLyBEUk9QRE9XTiBOTyBDT05GTElDVFxuICAvLyA9PT09PT09PT09PT09PT09PT09PVxuXG4gICQuZm4ud3BiY19kcm9wZG93bi5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKCkge1xuICAgICQuZm4ud3BiY19kcm9wZG93biA9IG9sZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfTsgLy8gQVBQTFkgVE8gU1RBTkRBUkQgRFJPUERPV04gRUxFTUVOVFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuXG4gICQoZG9jdW1lbnQpLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgY2xlYXJNZW51cykub24oJ2NsaWNrLndwYmMuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duIGZvcm0nLCBmdW5jdGlvbiAoZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH0pLm9uKCdjbGljay53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUudG9nZ2xlKS5vbigna2V5ZG93bi53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUua2V5ZG93bikub24oJ2tleWRvd24ud3BiYy5kcm9wZG93bi5kYXRhLWFwaScsICcuZHJvcGRvd24tbWVudScsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKS5vbigna2V5ZG93bi53cGJjLmRyb3Bkb3duLmRhdGEtYXBpJywgJy51aV9kcm9wZG93bl9tZW51JywgRHJvcGRvd24ucHJvdG90eXBlLmtleWRvd24pO1xufShqUXVlcnkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSnpiM1Z5WTJWeklqcGJJbUZ6YzJWMGN5OXNhV0p6TDNWcEwxOXpjbU12WkhKdmNHUnZkMjVmYlc5a1lXd3Vhbk1pWFN3aWJtRnRaWE1pT2xzaWFsRjFaWEo1SWl3aVJYSnliM0lpTENJa0lpd2lkbVZ5YzJsdmJpSXNJbVp1SWl3aWFuRjFaWEo1SWl3aWMzQnNhWFFpTENKTmIyUmhiQ0lzSW1Wc1pXMWxiblFpTENKdmNIUnBiMjV6SWl3aUpHSnZaSGtpTENKa2IyTjFiV1Z1ZENJc0ltSnZaSGtpTENJa1pXeGxiV1Z1ZENJc0lpUmthV0ZzYjJjaUxDSm1hVzVrSWl3aUpHSmhZMnRrY205d0lpd2lhWE5UYUc5M2JpSXNJbTl5YVdkcGJtRnNRbTlrZVZCaFpDSXNJbk5qY205c2JHSmhjbGRwWkhSb0lpd2lhV2R1YjNKbFFtRmphMlJ5YjNCRGJHbGpheUlzSW5KbGJXOTBaU0lzSW14dllXUWlMQ0p3Y205NGVTSXNJblJ5YVdkblpYSWlMQ0pXUlZKVFNVOU9JaXdpVkZKQlRsTkpWRWxQVGw5RVZWSkJWRWxQVGlJc0lrSkJRMHRFVWs5UVgxUlNRVTVUU1ZSSlQwNWZSRlZTUVZSSlQwNGlMQ0pFUlVaQlZVeFVVeUlzSW1KaFkydGtjbTl3SWl3aWEyVjVZbTloY21RaUxDSnphRzkzSWl3aWNISnZkRzkwZVhCbElpd2lkRzluWjJ4bElpd2lYM0psYkdGMFpXUlVZWEpuWlhRaUxDSm9hV1JsSWl3aWRHaGhkQ0lzSW1VaUxDSkZkbVZ1ZENJc0luSmxiR0YwWldSVVlYSm5aWFFpTENKcGMwUmxabUYxYkhSUWNtVjJaVzUwWldRaUxDSmphR1ZqYTFOamNtOXNiR0poY2lJc0luTmxkRk5qY205c2JHSmhjaUlzSW1Ga1pFTnNZWE56SWl3aVpYTmpZWEJsSWl3aWNtVnphWHBsSWl3aWIyNGlMQ0p2Ym1VaUxDSjBZWEpuWlhRaUxDSnBjeUlzSW5SeVlXNXphWFJwYjI0aUxDSnpkWEJ3YjNKMElpd2lhR0Z6UTJ4aGMzTWlMQ0p3WVhKbGJuUWlMQ0pzWlc1bmRHZ2lMQ0poY0hCbGJtUlVieUlzSW5OamNtOXNiRlJ2Y0NJc0ltRmthblZ6ZEVScFlXeHZaeUlzSW05bVpuTmxkRmRwWkhSb0lpd2laVzVtYjNKalpVWnZZM1Z6SWl3aVpXMTFiR0YwWlZSeVlXNXphWFJwYjI1RmJtUWlMQ0p3Y21WMlpXNTBSR1ZtWVhWc2RDSXNJbTltWmlJc0luSmxiVzkyWlVOc1lYTnpJaXdpYUdsa1pVMXZaR0ZzSWl3aWFHRnpJaXdpZDJocFkyZ2lMQ0ozYVc1a2IzY2lMQ0pvWVc1a2JHVlZjR1JoZEdVaUxDSnlaWE5sZEVGa2FuVnpkRzFsYm5Seklpd2ljbVZ6WlhSVFkzSnZiR3hpWVhJaUxDSnlaVzF2ZG1WQ1lXTnJaSEp2Y0NJc0luSmxiVzkyWlNJc0ltTmhiR3hpWVdOcklpd2lZVzVwYldGMFpTSXNJbVJ2UVc1cGJXRjBaU0lzSW1OeVpXRjBaVVZzWlcxbGJuUWlMQ0pqZFhKeVpXNTBWR0Z5WjJWMElpd2labTlqZFhNaUxDSmpZV3hzWW1GamExSmxiVzkyWlNJc0ltMXZaR0ZzU1hOUGRtVnlabXh2ZDJsdVp5SXNJbk5qY205c2JFaGxhV2RvZENJc0ltUnZZM1Z0Wlc1MFJXeGxiV1Z1ZENJc0ltTnNhV1Z1ZEVobGFXZG9kQ0lzSW1OemN5SXNJbkJoWkdScGJtZE1aV1owSWl3aVltOWtlVWx6VDNabGNtWnNiM2RwYm1jaUxDSndZV1JrYVc1blVtbG5hSFFpTENKbWRXeHNWMmx1Wkc5M1YybGtkR2dpTENKcGJtNWxjbGRwWkhSb0lpd2laRzlqZFcxbGJuUkZiR1Z0Wlc1MFVtVmpkQ0lzSW1kbGRFSnZkVzVrYVc1blEyeHBaVzUwVW1WamRDSXNJbkpwWjJoMElpd2lUV0YwYUNJc0ltRmljeUlzSW14bFpuUWlMQ0pqYkdsbGJuUlhhV1IwYUNJc0ltMWxZWE4xY21WVFkzSnZiR3hpWVhJaUxDSmliMlI1VUdGa0lpd2ljR0Z5YzJWSmJuUWlMQ0p6ZEhsc1pTSXNJbk5qY205c2JFUnBkaUlzSW1Oc1lYTnpUbUZ0WlNJc0ltRndjR1Z1WkNJc0luSmxiVzkyWlVOb2FXeGtJaXdpVUd4MVoybHVJaXdpYjNCMGFXOXVJaXdpWldGamFDSXNJaVIwYUdseklpd2laR0YwWVNJc0ltVjRkR1Z1WkNJc0ltOXNaQ0lzSW5kd1ltTmZiWGxmYlc5a1lXd2lMQ0pEYjI1emRISjFZM1J2Y2lJc0ltNXZRMjl1Wm14cFkzUWlMQ0pvY21WbUlpd2lZWFIwY2lJc0lpUjBZWEpuWlhRaUxDSnlaWEJzWVdObElpd2lkR1Z6ZENJc0luTm9iM2RGZG1WdWRDSXNJbU5oYkd3aUxDSkVjbTl3Wkc5M2JpSXNJbWRsZEZCaGNtVnVkQ0lzSW5ObGJHVmpkRzl5SWl3aUpIQmhjbVZ1ZENJc0ltTnNaV0Z5VFdWdWRYTWlMQ0owZVhCbElpd2lkR0ZuVG1GdFpTSXNJbU52Ym5SaGFXNXpJaXdpYVhOQlkzUnBkbVVpTENKamJHOXpaWE4wSWl3aWFXNXpaWEowUVdaMFpYSWlMQ0owYjJkbmJHVkRiR0Z6Y3lJc0ltdGxlV1J2ZDI0aUxDSnpkRzl3VUhKdmNHRm5ZWFJwYjI0aUxDSmtaWE5qSWl3aUpHbDBaVzF6SWl3aWFXNWtaWGdpTENKbGNTSXNJbmR3WW1OZlpISnZjR1J2ZDI0aVhTd2liV0Z3Y0dsdVozTWlPaUk3T3pzN1FVRkJRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTEVsQlFVa3NUMEZCVDBFc1RVRkJVQ3hMUVVGclFpeFhRVUYwUWl4RlFVRnRRenRCUVVOcVF5eFJRVUZOTEVsQlFVbERMRXRCUVVvc1EwRkJWU3g1UTBGQlZpeERRVUZPTzBGQlEwUTdPMEZCUTBRc1EwRkJReXhWUVVGVlF5eERRVUZXTEVWQlFXRTdRVUZEV2pzN1FVRkRRU3hOUVVGSlF5eFBRVUZQTEVkQlFVZEVMRU5CUVVNc1EwRkJRMFVzUlVGQlJpeERRVUZMUXl4TlFVRk1MRU5CUVZsRExFdEJRVm9zUTBGQmEwSXNSMEZCYkVJc1JVRkJkVUlzUTBGQmRrSXNSVUZCTUVKQkxFdEJRVEZDTEVOQlFXZERMRWRCUVdoRExFTkJRV1E3TzBGQlEwRXNUVUZCUzBnc1QwRkJUeXhEUVVGRExFTkJRVVFzUTBGQlVDeEhRVUZoTEVOQlFXSXNTVUZCYTBKQkxFOUJRVThzUTBGQlF5eERRVUZFTEVOQlFWQXNSMEZCWVN4RFFVRm9ReXhKUVVGMVEwRXNUMEZCVHl4RFFVRkRMRU5CUVVRc1EwRkJVQ3hKUVVGakxFTkJRV1FzU1VGQmJVSkJMRTlCUVU4c1EwRkJReXhEUVVGRUxFTkJRVkFzU1VGQll5eERRVUZxUXl4SlFVRnpRMEVzVDBGQlR5eERRVUZETEVOQlFVUXNRMEZCVUN4SFFVRmhMRU5CUVRsR0xFVkJRV3RITzBGQlEyaEhMRlZCUVUwc1NVRkJTVVlzUzBGQlNpeERRVUZWTEdsRlFVRldMRU5CUVU0N1FVRkRSRHRCUVVOR0xFTkJUa0VzUTBGTlEwUXNUVUZPUkN4RFFVRkVPMEZCVVVFN1FVRkRRVHRCUVVOQk8wRkJRMEU3UVVGRFFUdEJRVU5CTzBGQlEwRTdPMEZCUjBFc1EwRkJReXhWUVVGVlJTeERRVUZXTEVWQlFXRTdRVUZEV2l4bFFVUlpMRU5CUjFvN1FVRkRRVHM3UVVGRlFTeE5RVUZKU3l4TFFVRkxMRWRCUVVjc1UwRkJVa0VzUzBGQlVTeERRVUZWUXl4UFFVRldMRVZCUVcxQ1F5eFBRVUZ1UWl4RlFVRTBRanRCUVVOMFF5eFRRVUZMUVN4UFFVRk1MRWRCUVRKQ1FTeFBRVUV6UWp0QlFVTkJMRk5CUVV0RExFdEJRVXdzUjBGQk1rSlNMRU5CUVVNc1EwRkJRMU1zVVVGQlVTeERRVUZEUXl4SlFVRldMRU5CUVRWQ08wRkJRMEVzVTBGQlMwTXNVVUZCVEN4SFFVRXlRbGdzUTBGQlF5eERRVUZEVFN4UFFVRkVMRU5CUVRWQ08wRkJRMEVzVTBGQlMwMHNUMEZCVEN4SFFVRXlRaXhMUVVGTFJDeFJRVUZNTEVOQlFXTkZMRWxCUVdRc1EwRkJiVUlzWlVGQmJrSXNRMEZCTTBJN1FVRkRRU3hUUVVGTFF5eFRRVUZNTEVkQlFUSkNMRWxCUVROQ08wRkJRMEVzVTBGQlMwTXNUMEZCVEN4SFFVRXlRaXhKUVVFelFqdEJRVU5CTEZOQlFVdERMR1ZCUVV3c1IwRkJNa0lzU1VGQk0wSTdRVUZEUVN4VFFVRkxReXhqUVVGTUxFZEJRVEpDTEVOQlFUTkNPMEZCUTBFc1UwRkJTME1zYlVKQlFVd3NSMEZCTWtJc1MwRkJNMEk3TzBGQlJVRXNVVUZCU1N4TFFVRkxXQ3hQUVVGTUxFTkJRV0ZaTEUxQlFXcENMRVZCUVhsQ08wRkJRM1pDTEZkQlFVdFNMRkZCUVV3c1EwRkRSMFVzU1VGRVNDeERRVU5STEdkQ1FVUlNMRVZCUlVkUExFbEJSa2dzUTBGRlVTeExRVUZMWWl4UFFVRk1MRU5CUVdGWkxFMUJSbkpDTEVWQlJUWkNia0lzUTBGQlF5eERRVUZEY1VJc1MwRkJSaXhEUVVGUkxGbEJRVms3UVVGRE4wTXNZVUZCUzFZc1VVRkJUQ3hEUVVGalZ5eFBRVUZrTEVOQlFYTkNMRzFDUVVGMFFqdEJRVU5FTEU5QlJqQkNMRVZCUlhoQ0xFbEJSbmRDTEVOQlJqZENPMEZCUzBRN1FVRkRSaXhIUVd4Q1JEczdRVUZ2UWtGcVFpeEZRVUZCUVN4TFFVRkxMRU5CUVVOclFpeFBRVUZPTEVkQlFXbENMRTlCUVdwQ08wRkJSVUZzUWl4RlFVRkJRU3hMUVVGTExFTkJRVU50UWl4dFFrRkJUaXhIUVVFMFFpeEhRVUUxUWp0QlFVTkJia0lzUlVGQlFVRXNTMEZCU3l4RFFVRkRiMElzTkVKQlFVNHNSMEZCY1VNc1IwRkJja003UVVGRlFYQkNMRVZCUVVGQkxFdEJRVXNzUTBGQlEzRkNMRkZCUVU0c1IwRkJhVUk3UVVGRFprTXNTVUZCUVVFc1VVRkJVU3hGUVVGRkxFbEJSRXM3UVVGRlprTXNTVUZCUVVFc1VVRkJVU3hGUVVGRkxFbEJSa3M3UVVGSFprTXNTVUZCUVVFc1NVRkJTU3hGUVVGRk8wRkJTRk1zUjBGQmFrSTdPMEZCVFVGNFFpeEZRVUZCUVN4TFFVRkxMRU5CUVVONVFpeFRRVUZPTEVOQlFXZENReXhOUVVGb1FpeEhRVUY1UWl4VlFVRlZReXhqUVVGV0xFVkJRVEJDTzBGQlEycEVMRmRCUVU4c1MwRkJTMnBDTEU5QlFVd3NSMEZCWlN4TFFVRkxhMElzU1VGQlRDeEZRVUZtTEVkQlFUWkNMRXRCUVV0S0xFbEJRVXdzUTBGQlZVY3NZMEZCVml4RFFVRndRenRCUVVORUxFZEJSa1E3TzBGQlNVRXpRaXhGUVVGQlFTeExRVUZMTEVOQlFVTjVRaXhUUVVGT0xFTkJRV2RDUkN4SlFVRm9RaXhIUVVGMVFpeFZRVUZWUnl4alFVRldMRVZCUVRCQ08wRkJReTlETEZGQlFVbEZMRWxCUVVrc1IwRkJSeXhKUVVGWU8wRkJRMEVzVVVGQlNVTXNRMEZCUXl4SFFVRk5ia01zUTBGQlF5eERRVUZEYjBNc1MwRkJSaXhEUVVGUkxHbENRVUZTTEVWQlFUSkNPMEZCUVVWRExFMUJRVUZCTEdGQlFXRXNSVUZCUlV3N1FVRkJha0lzUzBGQk0wSXNRMEZCV0R0QlFVVkJMRk5CUVV0eVFpeFJRVUZNTEVOQlFXTlhMRTlCUVdRc1EwRkJjMEpoTEVOQlFYUkNPMEZCUlVFc1VVRkJTU3hMUVVGTGNFSXNUMEZCVEN4SlFVRm5RbTlDTEVOQlFVTXNRMEZCUTBjc2EwSkJRVVlzUlVGQmNFSXNSVUZCTkVNN1FVRkZOVU1zVTBGQlMzWkNMRTlCUVV3c1IwRkJaU3hKUVVGbU8wRkJSVUVzVTBGQlMzZENMR05CUVV3N1FVRkRRU3hUUVVGTFF5eFpRVUZNTzBGQlEwRXNVMEZCUzJoRExFdEJRVXdzUTBGQlYybERMRkZCUVZnc1EwRkJiMElzV1VGQmNFSTdRVUZGUVN4VFFVRkxReXhOUVVGTU8wRkJRMEVzVTBGQlMwTXNUVUZCVER0QlFVVkJMRk5CUVV0b1F5eFJRVUZNTEVOQlFXTnBReXhGUVVGa0xFTkJRV2xDTERCQ1FVRnFRaXhGUVVFMlF5eDNRa0ZCTjBNc1JVRkJkVVUxUXl4RFFVRkRMRU5CUVVOeFFpeExRVUZHTEVOQlFWRXNTMEZCUzFrc1NVRkJZaXhGUVVGdFFpeEpRVUZ1UWl4RFFVRjJSVHRCUVVWQkxGTkJRVXR5UWl4UFFVRk1MRU5CUVdGblF5eEZRVUZpTEVOQlFXZENMRGhDUVVGb1FpeEZRVUZuUkN4WlFVRlpPMEZCUXpGRVZpeE5RVUZCUVN4SlFVRkpMRU5CUVVOMlFpeFJRVUZNTEVOQlFXTnJReXhIUVVGa0xFTkJRV3RDTERSQ1FVRnNRaXhGUVVGblJDeFZRVUZWVml4RFFVRldMRVZCUVdFN1FVRkRNMFFzV1VGQlNXNURMRU5CUVVNc1EwRkJRMjFETEVOQlFVTXNRMEZCUTFjc1RVRkJTQ3hEUVVGRUxFTkJRVmxETEVWQlFWb3NRMEZCWldJc1NVRkJTU3hEUVVGRGRrSXNVVUZCY0VJc1EwRkJTaXhGUVVGdFEzVkNMRWxCUVVrc1EwRkJRMmhDTEcxQ1FVRk1MRWRCUVRKQ0xFbEJRVE5DTzBGQlEzQkRMRTlCUmtRN1FVRkhSQ3hMUVVwRU8wRkJUVUVzVTBGQlMxTXNVVUZCVEN4RFFVRmpMRmxCUVZrN1FVRkRlRUlzVlVGQlNYRkNMRlZCUVZVc1IwRkJSMmhFTEVOQlFVTXNRMEZCUTJsRUxFOUJRVVlzUTBGQlZVUXNWVUZCVml4SlFVRjNRbVFzU1VGQlNTeERRVUZEZGtJc1VVRkJUQ3hEUVVGamRVTXNVVUZCWkN4RFFVRjFRaXhOUVVGMlFpeERRVUY2UXpzN1FVRkZRU3hWUVVGSkxFTkJRVU5vUWl4SlFVRkpMRU5CUVVOMlFpeFJRVUZNTEVOQlFXTjNReXhOUVVGa0xFZEJRWFZDUXl4TlFVRTFRaXhGUVVGdlF6dEJRVU5zUTJ4Q0xGRkJRVUZCTEVsQlFVa3NRMEZCUTNaQ0xGRkJRVXdzUTBGQll6QkRMRkZCUVdRc1EwRkJkVUp1UWl4SlFVRkpMRU5CUVVNeFFpeExRVUUxUWl4RlFVUnJReXhEUVVORE8wRkJRM0JET3p0QlFVVkVNRUlzVFVGQlFVRXNTVUZCU1N4RFFVRkRka0lzVVVGQlRDeERRVU5IYTBJc1NVRkVTQ3hIUVVWSGVVSXNVMEZHU0N4RFFVVmhMRU5CUm1JN1FVRkpRWEJDTEUxQlFVRkJMRWxCUVVrc1EwRkJRM0ZDTEZsQlFVdzdPMEZCUlVFc1ZVRkJTVkFzVlVGQlNpeEZRVUZuUWp0QlFVTmtaQ3hSUVVGQlFTeEpRVUZKTEVOQlFVTjJRaXhSUVVGTUxFTkJRV01zUTBGQlpDeEZRVUZwUWpaRExGZEJRV3BDTEVOQlJHTXNRMEZEWlR0QlFVTTVRanM3UVVGRlJIUkNMRTFCUVVGQkxFbEJRVWtzUTBGQlEzWkNMRkZCUVV3c1EwRkJZemhDTEZGQlFXUXNRMEZCZFVJc1NVRkJka0k3UVVGRlFWQXNUVUZCUVVFc1NVRkJTU3hEUVVGRGRVSXNXVUZCVER0QlFVVkJMRlZCUVVsMFFpeERRVUZETEVkQlFVZHVReXhEUVVGRExFTkJRVU52UXl4TFFVRkdMRU5CUVZFc2EwSkJRVklzUlVGQk5FSTdRVUZCUlVNc1VVRkJRVUVzWVVGQllTeEZRVUZGVER0QlFVRnFRaXhQUVVFMVFpeERRVUZTTzBGQlJVRm5RaXhOUVVGQlFTeFZRVUZWTEVkQlExSmtMRWxCUVVrc1EwRkJRM1JDTEU5QlFVd3NRMEZCWVR0QlFVRmlMRTlCUTBkcFF5eEhRVVJJTEVOQlEwOHNhVUpCUkZBc1JVRkRNRUlzV1VGQldUdEJRVU5zUTFnc1VVRkJRVUVzU1VGQlNTeERRVUZEZGtJc1VVRkJUQ3hEUVVGalZ5eFBRVUZrTEVOQlFYTkNMRTlCUVhSQ0xFVkJRU3RDUVN4UFFVRXZRaXhEUVVGMVEyRXNRMEZCZGtNN1FVRkRSQ3hQUVVoSUxFVkJTVWQxUWl4dlFrRktTQ3hEUVVsM1FuSkVMRXRCUVVzc1EwRkJRMjFDTEcxQ1FVbzVRaXhEUVVSUkxFZEJUVkpWTEVsQlFVa3NRMEZCUTNaQ0xGRkJRVXdzUTBGQlkxY3NUMEZCWkN4RFFVRnpRaXhQUVVGMFFpeEZRVUVyUWtFc1QwRkJMMElzUTBGQmRVTmhMRU5CUVhaRExFTkJUa1k3UVVGUFJDeExRVGxDUkR0QlFTdENSQ3hIUVhoRVJEczdRVUV3UkVFNVFpeEZRVUZCUVN4TFFVRkxMRU5CUVVONVFpeFRRVUZPTEVOQlFXZENSeXhKUVVGb1FpeEhRVUYxUWl4VlFVRlZSU3hEUVVGV0xFVkJRV0U3UVVGRGJFTXNVVUZCU1VFc1EwRkJTaXhGUVVGUFFTeERRVUZETEVOQlFVTjNRaXhqUVVGR08wRkJSVkI0UWl4SlFVRkJRU3hEUVVGRExFZEJRVWR1UXl4RFFVRkRMRU5CUVVOdlF5eExRVUZHTEVOQlFWRXNhVUpCUVZJc1EwRkJTanRCUVVWQkxGTkJRVXQ2UWl4UlFVRk1MRU5CUVdOWExFOUJRV1FzUTBGQmMwSmhMRU5CUVhSQ08wRkJSVUVzVVVGQlNTeERRVUZETEV0QlFVdHdRaXhQUVVGT0xFbEJRV2xDYjBJc1EwRkJReXhEUVVGRFJ5eHJRa0ZCUml4RlFVRnlRaXhGUVVFMlF6dEJRVVUzUXl4VFFVRkxka0lzVDBGQlRDeEhRVUZsTEV0QlFXWTdRVUZGUVN4VFFVRkxNa0lzVFVGQlREdEJRVU5CTEZOQlFVdERMRTFCUVV3N1FVRkZRVE5ETEVsQlFVRkJMRU5CUVVNc1EwRkJRMU1zVVVGQlJDeERRVUZFTEVOQlFWbHRSQ3hIUVVGYUxFTkJRV2RDTEc5Q1FVRm9RanRCUVVWQkxGTkJRVXRxUkN4UlFVRk1MRU5CUTBkclJDeFhRVVJJTEVOQlEyVXNTVUZFWml4RlFVVkhSQ3hIUVVaSUxFTkJSVThzTUVKQlJsQXNSVUZIUjBFc1IwRklTQ3hEUVVkUExEUkNRVWhRTzBGQlMwRXNVMEZCUzJoRUxFOUJRVXdzUTBGQllXZEVMRWRCUVdJc1EwRkJhVUlzT0VKQlFXcENPMEZCUlVFMVJDeEpRVUZCUVN4RFFVRkRMRU5CUVVOcFJDeFBRVUZHTEVOQlFWVkVMRlZCUVZZc1NVRkJkMElzUzBGQlMzSkRMRkZCUVV3c1EwRkJZM1ZETEZGQlFXUXNRMEZCZFVJc1RVRkJka0lzUTBGQmVFSXNSMEZEUlN4TFFVRkxka01zVVVGQlRDeERRVU5IYTBNc1IwRkVTQ3hEUVVOUExHbENRVVJRTEVWQlF6QkNOME1zUTBGQlF5eERRVUZEY1VJc1MwRkJSaXhEUVVGUkxFdEJRVXQ1UXl4VFFVRmlMRVZCUVhkQ0xFbEJRWGhDTEVOQlJERkNMRVZCUlVkS0xHOUNRVVpJTEVOQlJYZENja1FzUzBGQlN5eERRVUZEYlVJc2JVSkJSamxDTEVOQlJFWXNSMEZKUlN4TFFVRkxjME1zVTBGQlRDeEZRVXBHTzBGQlMwUXNSMEUxUWtRN08wRkJPRUpCZWtRc1JVRkJRVUVzUzBGQlN5eERRVUZEZVVJc1UwRkJUaXhEUVVGblFqSkNMRmxCUVdoQ0xFZEJRU3RDTEZsQlFWazdRVUZEZWtONlJDeEpRVUZCUVN4RFFVRkRMRU5CUVVOVExGRkJRVVFzUTBGQlJDeERRVU5IYlVRc1IwRkVTQ3hEUVVOUExHOUNRVVJRTEVWQlF6WkNPMEZCUkRkQ0xFdEJSVWRvUWl4RlFVWklMRU5CUlUwc2IwSkJSazRzUlVGRk5FSTFReXhEUVVGRExFTkJRVU54UWl4TFFVRkdMRU5CUVZFc1ZVRkJWV01zUTBGQlZpeEZRVUZoTzBGQlF6ZERMRlZCUVVrc1MwRkJTM2hDTEZGQlFVd3NRMEZCWXl4RFFVRmtMRTFCUVhGQ2QwSXNRMEZCUXl4RFFVRkRWeXhOUVVGMlFpeEpRVUZwUXl4RFFVRkRMRXRCUVV0dVF5eFJRVUZNTEVOQlFXTnZSQ3hIUVVGa0xFTkJRV3RDTlVJc1EwRkJReXhEUVVGRFZ5eE5RVUZ3UWl4RlFVRTBRazBzVFVGQmJFVXNSVUZCTUVVN1FVRkRlRVVzWVVGQlMzcERMRkZCUVV3c1EwRkJZMWNzVDBGQlpDeERRVUZ6UWl4UFFVRjBRanRCUVVORU8wRkJRMFlzUzBGS2VVSXNSVUZKZGtJc1NVRktkVUlzUTBGR05VSTdRVUZQUkN4SFFWSkVPenRCUVZWQmFrSXNSVUZCUVVFc1MwRkJTeXhEUVVGRGVVSXNVMEZCVGl4RFFVRm5RbGtzVFVGQmFFSXNSMEZCZVVJc1dVRkJXVHRCUVVOdVF5eFJRVUZKTEV0QlFVc3pRaXhQUVVGTUxFbEJRV2RDTEV0QlFVdFNMRTlCUVV3c1EwRkJZWEZDTEZGQlFXcERMRVZCUVRKRE8wRkJRM3BETEZkQlFVdHFRaXhSUVVGTUxFTkJRV05wUXl4RlFVRmtMRU5CUVdsQ0xEUkNRVUZxUWl4RlFVRXJRelZETEVOQlFVTXNRMEZCUTNGQ0xFdEJRVVlzUTBGQlVTeFZRVUZWWXl4RFFVRldMRVZCUVdFN1FVRkRiRVZCTEZGQlFVRkJMRU5CUVVNc1EwRkJRelpDTEV0QlFVWXNTVUZCVnl4RlFVRllMRWxCUVdsQ0xFdEJRVXN2UWl4SlFVRk1MRVZCUVdwQ08wRkJRMFFzVDBGR09FTXNSVUZGTlVNc1NVRkdORU1zUTBGQkwwTTdRVUZIUkN4TFFVcEVMRTFCU1U4c1NVRkJTU3hEUVVGRExFdEJRVXRzUWl4UFFVRldMRVZCUVcxQ08wRkJRM2hDTEZkQlFVdEtMRkZCUVV3c1EwRkJZMmxFTEVkQlFXUXNRMEZCYTBJc05FSkJRV3hDTzBGQlEwUTdRVUZEUml4SFFWSkVPenRCUVZWQmRrUXNSVUZCUVVFc1MwRkJTeXhEUVVGRGVVSXNVMEZCVGl4RFFVRm5RbUVzVFVGQmFFSXNSMEZCZVVJc1dVRkJXVHRCUVVOdVF5eFJRVUZKTEV0QlFVczFRaXhQUVVGVUxFVkJRV3RDTzBGQlEyaENaaXhOUVVGQlFTeERRVUZETEVOQlFVTnBSU3hOUVVGRUxFTkJRVVFzUTBGQlZYSkNMRVZCUVZZc1EwRkJZU3h0UWtGQllpeEZRVUZyUXpWRExFTkJRVU1zUTBGQlEzRkNMRXRCUVVZc1EwRkJVU3hMUVVGTE5rTXNXVUZCWWl4RlFVRXlRaXhKUVVFelFpeERRVUZzUXp0QlFVTkVMRXRCUmtRc1RVRkZUenRCUVVOTWJFVXNUVUZCUVVFc1EwRkJReXhEUVVGRGFVVXNUVUZCUkN4RFFVRkVMRU5CUVZWTUxFZEJRVllzUTBGQll5eHRRa0ZCWkR0QlFVTkVPMEZCUTBZc1IwRk9SRHM3UVVGUlFYWkVMRVZCUVVGQkxFdEJRVXNzUTBGQlEzbENMRk5CUVU0c1EwRkJaMEpuUXl4VFFVRm9RaXhIUVVFMFFpeFpRVUZaTzBGQlEzUkRMRkZCUVVrMVFpeEpRVUZKTEVkQlFVY3NTVUZCV0R0QlFVTkJMRk5CUVV0MlFpeFJRVUZNTEVOQlFXTnpRaXhKUVVGa08wRkJRMEVzVTBGQlMwNHNVVUZCVEN4RFFVRmpMRmxCUVZrN1FVRkRlRUpQTEUxQlFVRkJMRWxCUVVrc1EwRkJRekZDTEV0QlFVd3NRMEZCVjNGRUxGZEJRVmdzUTBGQmRVSXNXVUZCZGtJN1FVRkRRVE5DTEUxQlFVRkJMRWxCUVVrc1EwRkJRMmxETEdkQ1FVRk1PMEZCUTBGcVF5eE5RVUZCUVN4SlFVRkpMRU5CUVVOclF5eGpRVUZNTzBGQlEwRnNReXhOUVVGQlFTeEpRVUZKTEVOQlFVTjJRaXhSUVVGTUxFTkJRV05YTEU5QlFXUXNRMEZCYzBJc2JVSkJRWFJDTzBGQlEwUXNTMEZNUkR0QlFVMUVMRWRCVkVRN08wRkJWMEZxUWl4RlFVRkJRU3hMUVVGTExFTkJRVU41UWl4VFFVRk9MRU5CUVdkQ2RVTXNZMEZCYUVJc1IwRkJhVU1zV1VGQldUdEJRVU16UXl4VFFVRkxka1FzVTBGQlRDeEpRVUZyUWl4TFFVRkxRU3hUUVVGTUxFTkJRV1YzUkN4TlFVRm1MRVZCUVd4Q08wRkJRMEVzVTBGQlMzaEVMRk5CUVV3c1IwRkJhVUlzU1VGQmFrSTdRVUZEUkN4SFFVaEVPenRCUVV0QlZDeEZRVUZCUVN4TFFVRkxMRU5CUVVONVFpeFRRVUZPTEVOQlFXZENTQ3hSUVVGb1FpeEhRVUV5UWl4VlFVRlZORU1zVVVGQlZpeEZRVUZ2UWp0QlFVTTNReXhSUVVGSmNrTXNTVUZCU1N4SFFVRkhMRWxCUVZnN1FVRkRRU3hSUVVGSmMwTXNUMEZCVHl4SFFVRkhMRXRCUVVzM1JDeFJRVUZNTEVOQlFXTjFReXhSUVVGa0xFTkJRWFZDTEUxQlFYWkNMRWxCUVdsRExFMUJRV3BETEVkQlFUQkRMRVZCUVhoRU96dEJRVVZCTEZGQlFVa3NTMEZCUzI1RExFOUJRVXdzU1VGQlowSXNTMEZCUzFJc1QwRkJUQ3hEUVVGaGIwSXNVVUZCYWtNc1JVRkJNa003UVVGRGVrTXNWVUZCU1RoRExGTkJRVk1zUjBGQlIzcEZMRU5CUVVNc1EwRkJRMmxFTEU5QlFVWXNRMEZCVlVRc1ZVRkJWaXhKUVVGM1FuZENMRTlCUVhoRE8wRkJSVUVzVjBGQlN6RkVMRk5CUVV3c1IwRkJhVUprTEVOQlFVTXNRMEZCUTFNc1VVRkJVU3hEUVVGRGFVVXNZVUZCVkN4RFFVRjFRaXhMUVVGMlFpeERRVUZFTEVOQlFVUXNRMEZEWkdwRExGRkJSR01zUTBGRFRDeHZRa0ZCYjBJclFpeFBRVVJtTEVWQlJXUnVRaXhSUVVaakxFTkJSVXdzUzBGQlN6ZERMRXRCUmtFc1EwRkJha0k3UVVGSlFTeFhRVUZMUnl4UlFVRk1MRU5CUVdOcFF5eEZRVUZrTEVOQlFXbENMREJDUVVGcVFpeEZRVUUyUXpWRExFTkJRVU1zUTBGQlEzRkNMRXRCUVVZc1EwRkJVU3hWUVVGVll5eERRVUZXTEVWQlFXRTdRVUZEYUVVc1dVRkJTU3hMUVVGTGFrSXNiVUpCUVZRc1JVRkJPRUk3UVVGRE5VSXNaVUZCUzBFc2JVSkJRVXdzUjBGQk1rSXNTMEZCTTBJN1FVRkRRVHRCUVVORU96dEJRVU5FTEZsQlFVbHBRaXhEUVVGRExFTkJRVU5YTEUxQlFVWXNTMEZCWVZnc1EwRkJReXhEUVVGRGQwTXNZVUZCYmtJc1JVRkJhME03UVVGRGJFTXNZVUZCUzNCRkxFOUJRVXdzUTBGQllXOUNMRkZCUVdJc1NVRkJlVUlzVVVGQmVrSXNSMEZEU1N4TFFVRkxhRUlzVVVGQlRDeERRVUZqTEVOQlFXUXNSVUZCYVVKcFJTeExRVUZxUWl4RlFVUktMRWRCUlVrc1MwRkJTek5ETEVsQlFVd3NSVUZHU2p0QlFVZEVMRTlCVkRSRExFVkJVekZETEVsQlZEQkRMRU5CUVRkRE8wRkJWMEVzVlVGQlNYZERMRk5CUVVvc1JVRkJaU3hMUVVGTE0wUXNVMEZCVEN4RFFVRmxMRU5CUVdZc1JVRkJhMEl3UXl4WFFVRnNRaXhEUVd4Q01FSXNRMEZyUWtrN08wRkJSVGRETEZkQlFVc3hReXhUUVVGTUxFTkJRV1V5UWl4UlFVRm1MRU5CUVhkQ0xFbEJRWGhDTzBGQlJVRXNWVUZCU1N4RFFVRkRPRUlzVVVGQlRDeEZRVUZsTzBGQlJXWkZMRTFCUVVGQkxGTkJRVk1zUjBGRFVDeExRVUZMTTBRc1UwRkJUQ3hEUVVOSEswSXNSMEZFU0N4RFFVTlBMR2xDUVVSUUxFVkJRekJDTUVJc1VVRkVNVUlzUlVGRlIySXNiMEpCUmtnc1EwRkZkMEp5UkN4TFFVRkxMRU5CUVVOdlFpdzBRa0ZHT1VJc1EwRkVUeXhIUVVsUU9FTXNVVUZCVVN4RlFVcFdPMEZCVFVRc1MwRTVRa1FzVFVFNFFrOHNTVUZCU1N4RFFVRkRMRXRCUVV0NFJDeFBRVUZPTEVsQlFXbENMRXRCUVV0RUxGTkJRVEZDTEVWQlFYRkRPMEZCUXpGRExGZEJRVXRCTEZOQlFVd3NRMEZCWlN0RExGZEJRV1lzUTBGQk1rSXNTVUZCTTBJN08wRkJSVUVzVlVGQlNXZENMR05CUVdNc1IwRkJSeXhUUVVGcVFrRXNZMEZCYVVJc1IwRkJXVHRCUVVNdlFqTkRMRkZCUVVGQkxFbEJRVWtzUTBGQlEyMURMR05CUVV3N1FVRkRRVVVzVVVGQlFVRXNVVUZCVVN4SlFVRkpRU3hSUVVGUkxFVkJRWEJDTzBGQlEwUXNUMEZJUkRzN1FVRkpRWFpGTEUxQlFVRkJMRU5CUVVNc1EwRkJRMmxFTEU5QlFVWXNRMEZCVlVRc1ZVRkJWaXhKUVVGM1FpeExRVUZMY2tNc1VVRkJUQ3hEUVVGamRVTXNVVUZCWkN4RFFVRjFRaXhOUVVGMlFpeERRVUY0UWl4SFFVTkZMRXRCUVV0d1F5eFRRVUZNTEVOQlEwY3JRaXhIUVVSSUxFTkJRMDhzYVVKQlJGQXNSVUZETUVKblF5eGpRVVF4UWl4RlFVVkhia0lzYjBKQlJrZ3NRMEZGZDBKeVJDeExRVUZMTEVOQlFVTnZRaXcwUWtGR09VSXNRMEZFUml4SFFVbEZiMFFzWTBGQll5eEZRVXBvUWp0QlFVMUVMRXRCWWswc1RVRmhRU3hKUVVGSlRpeFJRVUZLTEVWQlFXTTdRVUZEYmtKQkxFMUJRVUZCTEZGQlFWRTdRVUZEVkR0QlFVTkdMRWRCYkVSRUxFTkJOMHRaTEVOQmFVOWFPenM3UVVGRlFXeEZMRVZCUVVGQkxFdEJRVXNzUTBGQlEzbENMRk5CUVU0c1EwRkJaMEp2UXl4WlFVRm9RaXhIUVVFclFpeFpRVUZaTzBGQlEzcERMRk5CUVV0WUxGbEJRVXc3UVVGRFJDeEhRVVpFT3p0QlFVbEJiRVFzUlVGQlFVRXNTMEZCU3l4RFFVRkRlVUlzVTBGQlRpeERRVUZuUW5sQ0xGbEJRV2hDTEVkQlFTdENMRmxCUVZrN1FVRkRla01zVVVGQlNYVkNMR3RDUVVGclFpeEhRVUZITEV0QlFVdHVSU3hSUVVGTUxFTkJRV01zUTBGQlpDeEZRVUZwUW05RkxGbEJRV3BDTEVkQlFXZERkRVVzVVVGQlVTeERRVUZEZFVVc1pVRkJWQ3hEUVVGNVFrTXNXVUZCYkVZN1FVRkZRU3hUUVVGTGRFVXNVVUZCVEN4RFFVRmpkVVVzUjBGQlpDeERRVUZyUWp0QlFVTm9Ra01zVFVGQlFVRXNWMEZCVnl4RlFVRkhMRU5CUVVNc1MwRkJTME1zYVVKQlFVNHNTVUZCTWtKT0xHdENRVUV6UWl4SFFVRm5SQ3hMUVVGTE4wUXNZMEZCY2tRc1IwRkJjMFVzUlVGRWNFVTdRVUZGYUVKdlJTeE5RVUZCUVN4WlFVRlpMRVZCUVVVc1MwRkJTMFFzYVVKQlFVd3NTVUZCTUVJc1EwRkJRMDRzYTBKQlFUTkNMRWRCUVdkRUxFdEJRVXMzUkN4alFVRnlSQ3hIUVVGelJUdEJRVVp3UlN4TFFVRnNRanRCUVVsRUxFZEJVRVE3TzBGQlUwRmFMRVZCUVVGQkxFdEJRVXNzUTBGQlEzbENMRk5CUVU0c1EwRkJaMEp4UXl4blFrRkJhRUlzUjBGQmJVTXNXVUZCV1R0QlFVTTNReXhUUVVGTGVFUXNVVUZCVEN4RFFVRmpkVVVzUjBGQlpDeERRVUZyUWp0QlFVTm9Ra01zVFVGQlFVRXNWMEZCVnl4RlFVRkZMRVZCUkVjN1FVRkZhRUpGTEUxQlFVRkJMRmxCUVZrc1JVRkJSVHRCUVVaRkxFdEJRV3hDTzBGQlNVUXNSMEZNUkRzN1FVRlBRV2hHTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKVExHTkJRV2hDTEVkQlFXbERMRmxCUVZrN1FVRkRNME1zVVVGQlNTdERMR1ZCUVdVc1IwRkJSM0pDTEUxQlFVMHNRMEZCUTNOQ0xGVkJRVGRDT3p0QlFVTkJMRkZCUVVrc1EwRkJRMFFzWlVGQlRDeEZRVUZ6UWp0QlFVRkZPMEZCUTNSQ0xGVkJRVWxGTEcxQ1FVRnRRaXhIUVVGSEwwVXNVVUZCVVN4RFFVRkRkVVVzWlVGQlZDeERRVUY1UWxNc2NVSkJRWHBDTEVWQlFURkNPMEZCUTBGSUxFMUJRVUZCTEdWQlFXVXNSMEZCUjBVc2JVSkJRVzFDTEVOQlFVTkZMRXRCUVhCQ0xFZEJRVFJDUXl4SlFVRkpMRU5CUVVORExFZEJRVXdzUTBGQlUwb3NiVUpCUVcxQ0xFTkJRVU5MTEVsQlFUZENMRU5CUVRsRE8wRkJRMFE3TzBGQlEwUXNVMEZCUzFRc2FVSkJRVXdzUjBGQmVVSXpSU3hSUVVGUkxFTkJRVU5ETEVsQlFWUXNRMEZCWTI5R0xGZEJRV1FzUjBGQk5FSlNMR1ZCUVhKRU8wRkJRMEVzVTBGQlMzSkZMR05CUVV3c1IwRkJjMElzUzBGQlN6aEZMR2RDUVVGTUxFVkJRWFJDTzBGQlEwUXNSMEZTUkRzN1FVRlZRVEZHTEVWQlFVRkJMRXRCUVVzc1EwRkJRM2xDTEZOQlFVNHNRMEZCWjBKVkxGbEJRV2hDTEVkQlFTdENMRmxCUVZrN1FVRkRla01zVVVGQlNYZEVMRTlCUVU4c1IwRkJSME1zVVVGQlVTeERRVUZGTEV0QlFVdDZSaXhMUVVGTUxFTkJRVmN3UlN4SFFVRllMRU5CUVdVc1pVRkJaaXhMUVVGdFF5eERRVUZ5UXl4RlFVRjVReXhGUVVGNlF5eERRVUYwUWp0QlFVTkJMRk5CUVV0c1JTeGxRVUZNTEVkQlFYVkNVQ3hSUVVGUkxFTkJRVU5ETEVsQlFWUXNRMEZCWTNkR0xFdEJRV1FzUTBGQmIwSmlMRmxCUVhCQ0xFbEJRVzlETEVWQlFUTkVPMEZCUTBFc1VVRkJTU3hMUVVGTFJDeHBRa0ZCVkN4RlFVRTBRaXhMUVVGTE5VVXNTMEZCVEN4RFFVRlhNRVVzUjBGQldDeERRVUZsTEdWQlFXWXNSVUZCWjBOakxFOUJRVThzUjBGQlJ5eExRVUZMTDBVc1kwRkJMME03UVVGRE4wSXNSMEZLUkRzN1FVRk5RVm9zUlVGQlFVRXNTMEZCU3l4RFFVRkRlVUlzVTBGQlRpeERRVUZuUW5ORExHTkJRV2hDTEVkQlFXbERMRmxCUVZrN1FVRkRNME1zVTBGQlN6VkVMRXRCUVV3c1EwRkJWekJGTEVkQlFWZ3NRMEZCWlN4bFFVRm1MRVZCUVdkRExFdEJRVXRzUlN4bFFVRnlRenRCUVVORUxFZEJSa1E3TzBGQlNVRllMRVZCUVVGQkxFdEJRVXNzUTBGQlEzbENMRk5CUVU0c1EwRkJaMEpwUlN4blFrRkJhRUlzUjBGQmJVTXNXVUZCV1R0QlFVRkZPMEZCUXk5RExGRkJRVWxKTEZOQlFWTXNSMEZCUnpGR0xGRkJRVkVzUTBGQlEybEZMR0ZCUVZRc1EwRkJkVUlzUzBGQmRrSXNRMEZCYUVJN1FVRkRRWGxDTEVsQlFVRkJMRk5CUVZNc1EwRkJRME1zVTBGQlZpeEhRVUZ6UWl4NVFrRkJkRUk3UVVGRFFTeFRRVUZMTlVZc1MwRkJUQ3hEUVVGWE5rWXNUVUZCV0N4RFFVRnJRa1lzVTBGQmJFSTdRVUZEUVN4UlFVRkpiRVlzWTBGQll5eEhRVUZIYTBZc1UwRkJVeXhEUVVGRE0wTXNWMEZCVml4SFFVRjNRakpETEZOQlFWTXNRMEZCUTB3c1YwRkJka1E3UVVGRFFTeFRRVUZMZEVZc1MwRkJUQ3hEUVVGWExFTkJRVmdzUlVGQll6aEdMRmRCUVdRc1EwRkJNRUpJTEZOQlFURkNPMEZCUTBFc1YwRkJUMnhHTEdOQlFWQTdRVUZEUkN4SFFWQkVMRU5CTTFGWkxFTkJjVkphTzBGQlEwRTdPenRCUVVWQkxGZEJRVk56Uml4TlFVRlVMRU5CUVdkQ1F5eE5RVUZvUWl4RlFVRjNRbmhGTEdOQlFYaENMRVZCUVhkRE8wRkJRM1JETEZkQlFVOHNTMEZCUzNsRkxFbEJRVXdzUTBGQlZTeFpRVUZaTzBGQlF6TkNMRlZCUVVsRExFdEJRVXNzUjBGQlN6RkhMRU5CUVVNc1EwRkJReXhKUVVGRUxFTkJRV1k3UVVGRFFTeFZRVUZKTWtjc1NVRkJTU3hIUVVGTlJDeExRVUZMTEVOQlFVTkRMRWxCUVU0c1EwRkJWeXhaUVVGWUxFTkJRV1E3UVVGRFFTeFZRVUZKY0Vjc1QwRkJUeXhIUVVGSFVDeERRVUZETEVOQlFVTTBSeXhOUVVGR0xFTkJRVk1zUlVGQlZDeEZRVUZoZGtjc1MwRkJTeXhEUVVGRGNVSXNVVUZCYmtJc1JVRkJOa0puUml4TFFVRkxMRU5CUVVORExFbEJRVTRzUlVGQk4wSXNSVUZCTWtNc1VVRkJUMGdzVFVGQlVDeExRVUZwUWl4UlFVRnFRaXhKUVVFMlFrRXNUVUZCZUVVc1EwRkJaRHRCUVVWQkxGVkJRVWtzUTBGQlEwY3NTVUZCVEN4RlFVRlhSQ3hMUVVGTExFTkJRVU5ETEVsQlFVNHNRMEZCVnl4WlFVRllMRVZCUVRCQ1FTeEpRVUZKTEVkQlFVY3NTVUZCU1hSSExFdEJRVW9zUTBGQlZTeEpRVUZXTEVWQlFXZENSU3hQUVVGb1FpeERRVUZxUXp0QlFVTllMRlZCUVVrc1QwRkJUMmxITEUxQlFWQXNTVUZCYVVJc1VVRkJja0lzUlVGQkswSkhMRWxCUVVrc1EwRkJRMGdzVFVGQlJDeERRVUZLTEVOQlFXRjRSU3hqUVVGaUxFVkJRUzlDTEV0QlEwc3NTVUZCU1hwQ0xFOUJRVThzUTBGQlEzTkNMRWxCUVZvc1JVRkJhMEk0UlN4SlFVRkpMRU5CUVVNNVJTeEpRVUZNTEVOQlFWVkhMR05CUVZZN1FVRkRlRUlzUzBGU1RTeERRVUZRTzBGQlUwUTdPMEZCUlVRc1RVRkJTVFpGTEVkQlFVY3NSMEZCUnpkSExFTkJRVU1zUTBGQlEwVXNSVUZCUml4RFFVRkxORWNzWVVGQlpqdEJRVVZCT1Vjc1JVRkJRVUVzUTBGQlF5eERRVUZEUlN4RlFVRkdMRU5CUVVzMFJ5eGhRVUZNTEVkQlFXbERVQ3hOUVVGcVF6dEJRVU5CZGtjc1JVRkJRVUVzUTBGQlF5eERRVUZEUlN4RlFVRkdMRU5CUVVzMFJ5eGhRVUZNTEVOQlFXMUNReXhYUVVGdVFpeEhRVUZwUXpGSExFdEJRV3BETEVOQmRsTlpMRU5CTUZOYU8wRkJRMEU3TzBGQlJVRk1MRVZCUVVGQkxFTkJRVU1zUTBGQlEwVXNSVUZCUml4RFFVRkxORWNzWVVGQlRDeERRVUZ0UWtVc1ZVRkJia0lzUjBGQlowTXNXVUZCV1R0QlFVTXhRMmhJTEVsQlFVRkJMRU5CUVVNc1EwRkJRMFVzUlVGQlJpeERRVUZMTkVjc1lVRkJUQ3hIUVVGeFFrUXNSMEZCY2tJN1FVRkRRU3hYUVVGUExFbEJRVkE3UVVGRFJDeEhRVWhFTEVOQk4xTlpMRU5CYlZSYU8wRkJRMEU3T3p0QlFVVkJOMGNzUlVGQlFVRXNRMEZCUXl4RFFVRkRVeXhSUVVGRUxFTkJRVVFzUTBGQldXMURMRVZCUVZvc1EwRkJaU3d5UWtGQlppeEZRVUUwUXl3clFrRkJOVU1zUlVGQk5rVXNWVUZCVlZRc1EwRkJWaXhGUVVGaE8wRkJRM2hHTEZGQlFVbDFSU3hMUVVGTExFZEJRVXN4Unl4RFFVRkRMRU5CUVVNc1NVRkJSQ3hEUVVGbU8wRkJRMEVzVVVGQlNXbElMRWxCUVVrc1IwRkJUVkFzUzBGQlN5eERRVUZEVVN4SlFVRk9MRU5CUVZjc1RVRkJXQ3hEUVVGa08wRkJRMEVzVVVGQlNVTXNUMEZCVHl4SFFVRkhia2dzUTBGQlF5eERRVUZETUVjc1MwRkJTeXhEUVVGRFVTeEpRVUZPTEVOQlFWY3NZVUZCV0N4TFFVRTRRa1FzU1VGQlNTeEpRVUZKUVN4SlFVRkpMRU5CUVVOSExFOUJRVXdzUTBGQllTeG5Ra0ZCWWl4RlFVRXJRaXhGUVVFdlFpeERRVUYyUXl4RFFVRm1MRU5CU0hkR0xFTkJSMGM3TzBGQlF6TkdMRkZCUVVsYUxFMUJRVTBzUjBGQlNWY3NUMEZCVHl4RFFVRkRVaXhKUVVGU0xFTkJRV0VzV1VGQllpeEpRVUUyUWl4UlFVRTNRaXhIUVVGM1F6TkhMRU5CUVVNc1EwRkJRelJITEUxQlFVWXNRMEZCVXp0QlFVRkZla1lzVFVGQlFVRXNUVUZCVFN4RlFVRkZMRU5CUVVNc1NVRkJTV3RITEVsQlFVb3NRMEZCVTBvc1NVRkJWQ3hEUVVGRUxFbEJRVzFDUVR0QlFVRTNRaXhMUVVGVUxFVkJRVGhEUlN4UFFVRlBMRU5CUVVOU0xFbEJRVklzUlVGQk9VTXNSVUZCT0VSRUxFdEJRVXNzUTBGQlEwTXNTVUZCVGl4RlFVRTVSQ3hEUVVGMFJEdEJRVVZCTEZGQlFVbEVMRXRCUVVzc1EwRkJRek5FTEVWQlFVNHNRMEZCVXl4SFFVRlVMRU5CUVVvc1JVRkJiVUphTEVOQlFVTXNRMEZCUTNkQ0xHTkJRVVk3UVVGRmJrSjNSQ3hKUVVGQlFTeFBRVUZQTEVOQlFVTjBSU3hIUVVGU0xFTkJRVmtzYVVKQlFWb3NSVUZCSzBJc1ZVRkJWWGxGTEZOQlFWWXNSVUZCY1VJN1FVRkRiRVFzVlVGQlNVRXNVMEZCVXl4RFFVRkRhRVlzYTBKQlFWWXNSVUZCU2l4RlFVRnZReXhQUVVSakxFTkJRMUE3TzBGQlF6TkROa1VzVFVGQlFVRXNUMEZCVHl4RFFVRkRkRVVzUjBGQlVpeERRVUZaTEcxQ1FVRmFMRVZCUVdsRExGbEJRVms3UVVGRE0wTTJSQ3hSUVVGQlFTeExRVUZMTEVOQlFVTXpSQ3hGUVVGT0xFTkJRVk1zVlVGQlZDeExRVUYzUWpKRUxFdEJRVXNzUTBGQlEzQkdMRTlCUVU0c1EwRkJZeXhQUVVGa0xFTkJRWGhDTzBGQlEwUXNUMEZHUkR0QlFVZEVMRXRCVEVRN1FVRk5RV2xHTEVsQlFVRkJMRTFCUVUwc1EwRkJRMmRDTEVsQlFWQXNRMEZCV1Vvc1QwRkJXaXhGUVVGeFFsZ3NUVUZCY2tJc1JVRkJOa0lzU1VGQk4wSTdRVUZEUkN4SFFXWkVPMEZCYVVKRUxFTkJkbFZCTEVOQmRWVkRNVWNzVFVGMlZVUXNRMEZCUkR0QlFUQlZRU3hEUVVGRExGVkJRVlZGTEVOQlFWWXNSVUZCWVR0QlFVTmFMR1ZCUkZrc1EwRkhXanRCUVVOQk96dEJRVVZCTEUxQlFVa3lRaXhSUVVGUkxFZEJRVWNzYjBKQlFXWTdRVUZEUVN4TlFVRkpTU3hOUVVGTkxFZEJRVXNzSzBKQlFXWTdPMEZCUTBFc1RVRkJTWGxHTEZGQlFWRXNSMEZCUnl4VFFVRllRU3hSUVVGWExFTkJRVlZzU0N4UFFVRldMRVZCUVcxQ08wRkJRMmhEVGl4SlFVRkJRU3hEUVVGRExFTkJRVU5OTEU5QlFVUXNRMEZCUkN4RFFVRlhjME1zUlVGQldDeERRVUZqTEhGQ1FVRmtMRVZCUVhGRExFdEJRVXRpTEUxQlFURkRPMEZCUTBRc1IwRkdSRHM3UVVGSlFYbEdMRVZCUVVGQkxGRkJRVkVzUTBGQlEycEhMRTlCUVZRc1IwRkJiVUlzVDBGQmJrSTdPMEZCUlVFc1YwRkJVMnRITEZOQlFWUXNRMEZCYlVKbUxFdEJRVzVDTEVWQlFUQkNPMEZCUTNoQ0xGRkJRVWxuUWl4UlFVRlJMRWRCUVVkb1FpeExRVUZMTEVOQlFVTlJMRWxCUVU0c1EwRkJWeXhoUVVGWUxFTkJRV1k3TzBGQlJVRXNVVUZCU1N4RFFVRkRVU3hSUVVGTUxFVkJRV1U3UVVGRFlrRXNUVUZCUVVFc1VVRkJVU3hIUVVGSGFFSXNTMEZCU3l4RFFVRkRVU3hKUVVGT0xFTkJRVmNzVFVGQldDeERRVUZZTzBGQlEwRlJMRTFCUVVGQkxGRkJRVkVzUjBGQlIwRXNVVUZCVVN4SlFVRkpMRmxCUVZsTUxFbEJRVm9zUTBGQmFVSkxMRkZCUVdwQ0xFTkJRVm9zU1VGQk1FTkJMRkZCUVZFc1EwRkJRMDRzVDBGQlZDeERRVUZwUWl4blFrRkJha0lzUlVGQmJVTXNSVUZCYmtNc1EwRkJja1FzUTBGR1lTeERRVVVyUlR0QlFVTTNSanM3UVVGRlJDeFJRVUZKVHl4UFFVRlBMRWRCUVVkRUxGRkJRVkVzU1VGQlNURklMRU5CUVVNc1EwRkJRekJJTEZGQlFVUXNRMEZCTTBJN1FVRkZRU3hYUVVGUFF5eFBRVUZQTEVsQlFVbEJMRTlCUVU4c1EwRkJRM1pGTEUxQlFXNUNMRWRCUVRSQ2RVVXNUMEZCTlVJc1IwRkJjME5xUWl4TFFVRkxMRU5CUVVOMlJDeE5RVUZPTEVWQlFUZERPMEZCUTBRN08wRkJSVVFzVjBGQlUzbEZMRlZCUVZRc1EwRkJiMEo2Uml4RFFVRndRaXhGUVVGMVFqdEJRVU55UWl4UlFVRkpRU3hEUVVGRExFbEJRVWxCTEVOQlFVTXNRMEZCUXpaQ0xFdEJRVVlzUzBGQldTeERRVUZ5UWl4RlFVRjNRanRCUVVONFFtaEZMRWxCUVVGQkxFTkJRVU1zUTBGQlF6SkNMRkZCUVVRc1EwRkJSQ3hEUVVGWk1rTXNUVUZCV2p0QlFVTkJkRVVzU1VGQlFVRXNRMEZCUXl4RFFVRkRLMElzVFVGQlJDeERRVUZFTEVOQlFWVXdSU3hKUVVGV0xFTkJRV1VzV1VGQldUdEJRVU42UWl4VlFVRkpReXhMUVVGTExFZEJRVmN4Unl4RFFVRkRMRU5CUVVNc1NVRkJSQ3hEUVVGeVFqdEJRVU5CTEZWQlFVa3lTQ3hQUVVGUExFZEJRVk5HTEZOQlFWTXNRMEZCUTJZc1MwRkJSQ3hEUVVFM1FqdEJRVU5CTEZWQlFVbHlSU3hoUVVGaExFZEJRVWM3UVVGQlJVRXNVVUZCUVVFc1lVRkJZU3hGUVVGRk8wRkJRV3BDTEU5QlFYQkNPMEZCUlVFc1ZVRkJTU3hEUVVGRGMwWXNUMEZCVHl4RFFVRkRla1VzVVVGQlVpeERRVUZwUWl4TlFVRnFRaXhEUVVGTUxFVkJRU3RDTzBGQlJTOUNMRlZCUVVsbUxFTkJRVU1zU1VGQlNVRXNRMEZCUXl4RFFVRkRNRVlzU1VGQlJpeEpRVUZWTEU5QlFXWXNTVUZCTUVJc2EwSkJRV3RDVWl4SlFVRnNRaXhEUVVGMVFteEdMRU5CUVVNc1EwRkJRMWNzVFVGQlJpeERRVUZUWjBZc1QwRkJhRU1zUTBGQk1VSXNTVUZCYzBVNVNDeERRVUZETEVOQlFVTXJTQ3hSUVVGR0xFTkJRVmRLTEU5QlFVOHNRMEZCUXl4RFFVRkVMRU5CUVd4Q0xFVkJRWFZDZUVZc1EwRkJReXhEUVVGRFZ5eE5RVUY2UWl4RFFVRXhSU3hGUVVFMFJ6dEJRVVUxUnpaRkxFMUJRVUZCTEU5QlFVOHNRMEZCUTNKSExFOUJRVklzUTBGQlowSmhMRU5CUVVNc1IwRkJSMjVETEVOQlFVTXNRMEZCUTI5RExFdEJRVVlzUTBGQlVTeHZRa0ZCVWl4RlFVRTRRa01zWVVGQk9VSXNRMEZCY0VJN1FVRkZRU3hWUVVGSlJpeERRVUZETEVOQlFVTkhMR3RDUVVGR0xFVkJRVW9zUlVGQk5FSTdRVUZGTlVKdlJTeE5RVUZCUVN4TFFVRkxMRU5CUVVOUkxFbEJRVTRzUTBGQlZ5eGxRVUZZTEVWQlFUUkNMRTlCUVRWQ08wRkJRMEZUTEUxQlFVRkJMRTlCUVU4c1EwRkJRemxFTEZkQlFWSXNRMEZCYjBJc1RVRkJjRUlzUlVGQk5FSjJReXhQUVVFMVFpeERRVUZ2UXl4elFrRkJjRU1zUlVGQk5FUmxMR0ZCUVRWRU8wRkJRMFFzUzBGbVJEdEJRV2RDUkRzN1FVRkZSRzFHTEVWQlFVRkJMRkZCUVZFc1EwRkJRekZHTEZOQlFWUXNRMEZCYlVKRExFMUJRVzVDTEVkQlFUUkNMRlZCUVZWSkxFTkJRVllzUlVGQllUdEJRVU4yUXl4UlFVRkpkVVVzUzBGQlN5eEhRVUZITVVjc1EwRkJReXhEUVVGRExFbEJRVVFzUTBGQllqdEJRVVZCTEZGQlFVa3dSeXhMUVVGTExFTkJRVU16UkN4RlFVRk9MRU5CUVZNc2MwSkJRVlFzUTBGQlNpeEZRVUZ6UXp0QlFVVjBReXhSUVVGSk5FVXNUMEZCVHl4SFFVRkpSaXhUUVVGVExFTkJRVU5tTEV0QlFVUXNRMEZCZUVJN1FVRkRRU3hSUVVGSmMwSXNVVUZCVVN4SFFVRkhUQ3hQUVVGUExFTkJRVU42UlN4UlFVRlNMRU5CUVdsQ0xFMUJRV3BDTEVOQlFXWTdRVUZGUVRCRkxFbEJRVUZCTEZWQlFWVTdPMEZCUlZZc1VVRkJTU3hEUVVGRFNTeFJRVUZNTEVWQlFXVTdRVUZEWWl4VlFVRkpMR3RDUVVGclFuWklMRkZCUVZFc1EwRkJRM1ZGTEdWQlFUTkNMRWxCUVRoRExFTkJRVU15UXl4UFFVRlBMRU5CUVVOTkxFOUJRVklzUTBGQlowSXNZVUZCYUVJc1JVRkJLMEkzUlN4TlFVRnNSaXhGUVVFd1JqdEJRVU40Ump0QlFVTkJjRVFzVVVGQlFVRXNRMEZCUXl4RFFVRkRVeXhSUVVGUkxFTkJRVU5wUlN4aFFVRlVMRU5CUVhWQ0xFdEJRWFpDTEVOQlFVUXNRMEZCUkN4RFFVTkhha01zVVVGRVNDeERRVU5aTEcxQ1FVUmFMRVZCUlVkNVJpeFhRVVpJTEVOQlJXVnNTU3hEUVVGRExFTkJRVU1zU1VGQlJDeERRVVpvUWl4RlFVZEhORU1zUlVGSVNDeERRVWROTEU5QlNFNHNSVUZIWldkR0xGVkJTR1k3UVVGSlJEczdRVUZGUkN4VlFVRkpka1lzWVVGQllTeEhRVUZITzBGQlFVVkJMRkZCUVVGQkxHRkJRV0VzUlVGQlJUdEJRVUZxUWl4UFFVRndRanRCUVVOQmMwWXNUVUZCUVVFc1QwRkJUeXhEUVVGRGNrY3NUMEZCVWl4RFFVRm5RbUVzUTBGQlF5eEhRVUZIYmtNc1EwRkJReXhEUVVGRGIwTXNTMEZCUml4RFFVRlJMRzlDUVVGU0xFVkJRVGhDUXl4aFFVRTVRaXhEUVVGd1FqdEJRVVZCTEZWQlFVbEdMRU5CUVVNc1EwRkJRMGNzYTBKQlFVWXNSVUZCU2l4RlFVRTBRanRCUVVVMVFtOUZMRTFCUVVGQkxFdEJRVXNzUTBGRFJuQkdMRTlCUkVnc1EwRkRWeXhQUVVSWUxFVkJSVWMwUml4SlFVWklMRU5CUlZFc1pVRkdVaXhGUVVWNVFpeE5RVVo2UWp0QlFVbEJVeXhOUVVGQlFTeFBRVUZQTEVOQlEwcFJMRmRCUkVnc1EwRkRaU3hOUVVSbUxFVkJSVWMzUnl4UFFVWklMRU5CUlZjc2NVSkJSbGdzUlVGRmEwTmxMR0ZCUm14RE8wRkJSMFE3TzBGQlJVUXNWMEZCVHl4TFFVRlFPMEZCUTBRc1IwRnNRMFE3TzBGQmIwTkJiVVlzUlVGQlFVRXNVVUZCVVN4RFFVRkRNVVlzVTBGQlZDeERRVUZ0UW5OSExFOUJRVzVDTEVkQlFUWkNMRlZCUVZWcVJ5eERRVUZXTEVWQlFXRTdRVUZEZUVNc1VVRkJTU3hEUVVGRExHZENRVUZuUW10R0xFbEJRV2hDTEVOQlFYRkNiRVlzUTBGQlF5eERRVUZETmtJc1MwRkJka0lzUTBGQlJDeEpRVUZyUXl4clFrRkJhMEp4UkN4SlFVRnNRaXhEUVVGMVFteEdMRU5CUVVNc1EwRkJRMWNzVFVGQlJpeERRVUZUWjBZc1QwRkJhRU1zUTBGQmRFTXNSVUZCWjBZN1FVRkZhRVlzVVVGQlNYQkNMRXRCUVVzc1IwRkJSekZITEVOQlFVTXNRMEZCUXl4SlFVRkVMRU5CUVdJN1FVRkZRVzFETEVsQlFVRkJMRU5CUVVNc1EwRkJRM2RDTEdOQlFVWTdRVUZEUVhoQ0xFbEJRVUZCTEVOQlFVTXNRMEZCUTJ0SExHVkJRVVk3UVVGRlFTeFJRVUZKTTBJc1MwRkJTeXhEUVVGRE0wUXNSVUZCVGl4RFFVRlRMSE5DUVVGVUxFTkJRVW9zUlVGQmMwTTdRVUZGZEVNc1VVRkJTVFJGTEU5QlFVOHNSMEZCU1VZc1UwRkJVeXhEUVVGRFppeExRVUZFTEVOQlFYaENPMEZCUTBFc1VVRkJTWE5DTEZGQlFWRXNSMEZCUjB3c1QwRkJUeXhEUVVGRGVrVXNVVUZCVWl4RFFVRnBRaXhOUVVGcVFpeERRVUZtT3p0QlFVVkJMRkZCUVVrc1EwRkJRemhGTEZGQlFVUXNTVUZCWVRkR0xFTkJRVU1zUTBGQlF6WkNMRXRCUVVZc1NVRkJWeXhGUVVGNFFpeEpRVUU0UW1kRkxGRkJRVkVzU1VGQlNUZEdMRU5CUVVNc1EwRkJRelpDTEV0QlFVWXNTVUZCVnl4RlFVRjZSQ3hGUVVFMlJEdEJRVU16UkN4VlFVRkpOMElzUTBGQlF5eERRVUZETmtJc1MwRkJSaXhKUVVGWExFVkJRV1lzUlVGQmJVSXlSQ3hQUVVGUExFTkJRVU01Unl4SlFVRlNMRU5CUVdGclFpeE5RVUZpTEVWQlFYRkNWQ3hQUVVGeVFpeERRVUUyUWl4UFFVRTNRanRCUVVOdVFpeGhRVUZQYjBZc1MwRkJTeXhEUVVGRGNFWXNUMEZCVGl4RFFVRmpMRTlCUVdRc1EwRkJVRHRCUVVORU96dEJRVVZFTEZGQlFVbG5TQ3hKUVVGSkxFZEJRVWNzT0VKQlFWZzdRVUZEUVN4UlFVRkpReXhOUVVGTkxFZEJRVWRhTEU5QlFVOHNRMEZCUXpsSExFbEJRVklzUTBGQllTeHRRa0ZCYlVKNVNDeEpRVUZ1UWl4SFFVRXdRaXh2UWtGQk1VSXNSMEZCYVVSQkxFbEJRVGxFTEVOQlFXSTdRVUZGUVN4UlFVRkpMRU5CUVVORExFMUJRVTBzUTBGQlEyNUdMRTFCUVZvc1JVRkJiMEk3UVVGRmNFSXNVVUZCU1c5R0xFdEJRVXNzUjBGQlIwUXNUVUZCVFN4RFFVRkRReXhMUVVGUUxFTkJRV0Z5Unl4RFFVRkRMRU5CUVVOWExFMUJRV1lzUTBGQldqdEJRVVZCTEZGQlFVbFlMRU5CUVVNc1EwRkJRelpDTEV0QlFVWXNTVUZCVnl4RlFVRllMRWxCUVdsQ2QwVXNTMEZCU3l4SFFVRkhMRU5CUVRkQ0xFVkJRV2RFUVN4TFFVRkxMRWRCZWtKaUxFTkJlVUozUWpzN1FVRkRhRVVzVVVGQlNYSkhMRU5CUVVNc1EwRkJRelpDTEV0QlFVWXNTVUZCVnl4RlFVRllMRWxCUVdsQ2QwVXNTMEZCU3l4SFFVRkhSQ3hOUVVGTkxFTkJRVU51Uml4TlFVRlFMRWRCUVdkQ0xFTkJRVGRETEVWQlFXZEViMFlzUzBGQlN5eEhRVEZDWWl4RFFUQkNkMEk3TzBGQlEyaEZMRkZCUVVrc1EwRkJReXhEUVVGRFFTeExRVUZPTEVWQlFXZEVRU3hMUVVGTExFZEJRVWNzUTBGQlVqdEJRVVZvUkVRc1NVRkJRVUVzVFVGQlRTeERRVUZEUlN4RlFVRlFMRU5CUVZWRUxFdEJRVllzUlVGQmFVSnNTQ3hQUVVGcVFpeERRVUY1UWl4UFFVRjZRanRCUVVORUxFZEJPVUpFTEVOQmNFWlpMRU5CY1VoYU8wRkJRMEU3T3p0QlFVVkJMRmRCUVZOcFJpeE5RVUZVTEVOQlFXZENReXhOUVVGb1FpeEZRVUYzUWp0QlFVTjBRaXhYUVVGUExFdEJRVXRETEVsQlFVd3NRMEZCVlN4WlFVRlpPMEZCUXpOQ0xGVkJRVWxETEV0QlFVc3NSMEZCUnpGSExFTkJRVU1zUTBGQlF5eEpRVUZFTEVOQlFXSTdRVUZEUVN4VlFVRkpNa2NzU1VGQlNTeEhRVUZKUkN4TFFVRkxMRU5CUVVORExFbEJRVTRzUTBGQlZ5eGxRVUZZTEVOQlFWbzdRVUZGUVN4VlFVRkpMRU5CUVVOQkxFbEJRVXdzUlVGQlYwUXNTMEZCU3l4RFFVRkRReXhKUVVGT0xFTkJRVmNzWlVGQldDeEZRVUUyUWtFc1NVRkJTU3hIUVVGSExFbEJRVWxoTEZGQlFVb3NRMEZCWVN4SlFVRmlMRU5CUVhCRE8wRkJRMWdzVlVGQlNTeFBRVUZQYUVJc1RVRkJVQ3hKUVVGcFFpeFJRVUZ5UWl4RlFVRXJRa2NzU1VGQlNTeERRVUZEU0N4TlFVRkVMRU5CUVVvc1EwRkJZV1VzU1VGQllpeERRVUZyUW1Jc1MwRkJiRUk3UVVGRGFFTXNTMEZPVFN4RFFVRlFPMEZCVDBRN08wRkJSVVFzVFVGQlNVY3NSMEZCUnl4SFFVRkhOMGNzUTBGQlF5eERRVUZEUlN4RlFVRkdMRU5CUVV0M1NTeGhRVUZtTzBGQlJVRXhTU3hGUVVGQlFTeERRVUZETEVOQlFVTkZMRVZCUVVZc1EwRkJTM2RKTEdGQlFVd3NSMEZCYVVOdVF5eE5RVUZxUXp0QlFVTkJka2NzUlVGQlFVRXNRMEZCUXl4RFFVRkRSU3hGUVVGR0xFTkJRVXQzU1N4aFFVRk1MRU5CUVcxQ00wSXNWMEZCYmtJc1IwRkJhVU5UTEZGQlFXcERMRU5CY2tsWkxFTkJkMGxhTzBGQlEwRTdPMEZCUlVGNFNDeEZRVUZCUVN4RFFVRkRMRU5CUVVORkxFVkJRVVlzUTBGQlMzZEpMR0ZCUVV3c1EwRkJiVUl4UWl4VlFVRnVRaXhIUVVGblF5eFpRVUZaTzBGQlF6RkRhRWdzU1VGQlFVRXNRMEZCUXl4RFFVRkRSU3hGUVVGR0xFTkJRVXQzU1N4aFFVRk1MRWRCUVhGQ04wSXNSMEZCY2tJN1FVRkRRU3hYUVVGUExFbEJRVkE3UVVGRFJDeEhRVWhFTEVOQk0wbFpMRU5CYVVwYU8wRkJRMEU3T3p0QlFVVkJOMGNzUlVGQlFVRXNRMEZCUXl4RFFVRkRVeXhSUVVGRUxFTkJRVVFzUTBGRFIyMURMRVZCUkVnc1EwRkRUU3c0UWtGRVRpeEZRVU56UTJkR0xGVkJSSFJETEVWQlJVZG9SaXhGUVVaSUxFTkJSVTBzT0VKQlJrNHNSVUZGYzBNc1owSkJSblJETEVWQlJYZEVMRlZCUVZWVUxFTkJRVllzUlVGQllUdEJRVUZGUVN4SlFVRkJRU3hEUVVGRExFTkJRVU5yUnl4bFFVRkdPMEZCUVhGQ0xFZEJSalZHTEVWQlIwZDZSaXhGUVVoSUxFTkJSMDBzT0VKQlNFNHNSVUZIYzBOaUxFMUJTSFJETEVWQlJ6aERlVVlzVVVGQlVTeERRVUZETVVZc1UwRkJWQ3hEUVVGdFFrTXNUVUZJYWtVc1JVRkpSMkVzUlVGS1NDeERRVWxOTEdkRFFVcE9MRVZCU1hkRFlpeE5RVXA0UXl4RlFVbG5SSGxHTEZGQlFWRXNRMEZCUXpGR0xGTkJRVlFzUTBGQmJVSnpSeXhQUVVwdVJTeEZRVXRIZUVZc1JVRk1TQ3hEUVV0TkxHZERRVXhPTEVWQlMzZERMR2RDUVV4NFF5eEZRVXN3UkRSRkxGRkJRVkVzUTBGQlF6RkdMRk5CUVZRc1EwRkJiVUp6Unl4UFFVdzNSU3hGUVUxSGVFWXNSVUZPU0N4RFFVMU5MR2REUVU1T0xFVkJUWGRETEcxQ1FVNTRReXhGUVUwMlJEUkZMRkZCUVZFc1EwRkJRekZHTEZOQlFWUXNRMEZCYlVKelJ5eFBRVTVvUmp0QlFWRkVMRU5CTlVwQkxFTkJORXBEZEVrc1RVRTFTa1FzUTBGQlJDSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxSVZ4eVhHNGdLaUJIWlc1bGNtRjBaV1FnZFhOcGJtY2dkR2hsSUVKdmIzUnpkSEpoY0NCRGRYTjBiMjFwZW1WeUlDaG9kSFJ3T2k4dloyVjBZbTl2ZEhOMGNtRndMbU52YlM5amRYTjBiMjFwZW1VdlAybGtQV1kwWWpSak9XTmlPRFZrWmpjMU4yTmhNRGhqS1Z4eVhHNGdLaUJEYjI1bWFXY2djMkYyWldRZ2RHOGdZMjl1Wm1sbkxtcHpiMjRnWVc1a0lHaDBkSEJ6T2k4dloybHpkQzVuYVhSb2RXSXVZMjl0TDJZMFlqUmpPV05pT0RWa1pqYzFOMk5oTURoalhISmNiaUFxTDF4eVhHNXBaaUFvZEhsd1pXOW1JR3BSZFdWeWVTQTlQVDBnSjNWdVpHVm1hVzVsWkNjcElIdGNjbHh1SUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjBKdmIzUnpkSEpoY0Z4Y0ozTWdTbUYyWVZOamNtbHdkQ0J5WlhGMWFYSmxjeUJxVVhWbGNua25LVnh5WEc1OVhISmNiaXRtZFc1amRHbHZiaUFvSkNrZ2UxeHlYRzRnSUNkMWMyVWdjM1J5YVdOMEp6dGNjbHh1SUNCMllYSWdkbVZ5YzJsdmJpQTlJQ1F1Wm00dWFuRjFaWEo1TG5Od2JHbDBLQ2NnSnlsYk1GMHVjM0JzYVhRb0p5NG5LVnh5WEc0Z0lHbG1JQ2dvZG1WeWMybHZibHN3WFNBOElESWdKaVlnZG1WeWMybHZibHN4WFNBOElEa3BJSHg4SUNoMlpYSnphVzl1V3pCZElEMDlJREVnSmlZZ2RtVnljMmx2YmxzeFhTQTlQU0E1SUNZbUlIWmxjbk5wYjI1Yk1sMGdQQ0F4S1NrZ2UxeHlYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkQ2IyOTBjM1J5WVhCY1hDZHpJRXBoZG1GVFkzSnBjSFFnY21WeGRXbHlaWE1nYWxGMVpYSjVJSFpsY25OcGIyNGdNUzQ1TGpFZ2IzSWdhR2xuYUdWeUp5bGNjbHh1SUNCOVhISmNibjBvYWxGMVpYSjVLVHRjY2x4dVhISmNiaThxSUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4eVhHNGdLaUJDYjI5MGMzUnlZWEE2SUcxdlpHRnNMbXB6SUhZekxqTXVOVnh5WEc0Z0tpQm9kSFJ3T2k4dloyVjBZbTl2ZEhOMGNtRndMbU52YlM5cVlYWmhjMk55YVhCMEx5TnRiMlJoYkhOY2NseHVJQ29nUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEhKY2JpQXFJRU52Y0hseWFXZG9kQ0F5TURFeExUSXdNVFVnVkhkcGRIUmxjaXdnU1c1akxseHlYRzRnS2lCTWFXTmxibk5sWkNCMWJtUmxjaUJOU1ZRZ0tHaDBkSEJ6T2k4dloybDBhSFZpTG1OdmJTOTBkMkp6TDJKdmIzUnpkSEpoY0M5aWJHOWlMMjFoYzNSbGNpOU1TVU5GVGxORktWeHlYRzRnS2lBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwZ0tpOWNjbHh1WEhKY2JseHlYRzRyWm5WdVkzUnBiMjRnS0NRcElIdGNjbHh1SUNBbmRYTmxJSE4wY21samRDYzdYSEpjYmx4eVhHNGdJQzh2SUUxUFJFRk1JRU5NUVZOVElFUkZSa2xPU1ZSSlQwNWNjbHh1SUNBdkx5QTlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEhKY2JseHlYRzRnSUhaaGNpQk5iMlJoYkNBOUlHWjFibU4wYVc5dUlDaGxiR1Z0Wlc1MExDQnZjSFJwYjI1ektTQjdYSEpjYmlBZ0lDQjBhR2x6TG05d2RHbHZibk1nSUNBZ0lDQWdJQ0FnSUNBZ1BTQnZjSFJwYjI1elhISmNiaUFnSUNCMGFHbHpMaVJpYjJSNUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnUFNBa0tHUnZZM1Z0Wlc1MExtSnZaSGtwWEhKY2JpQWdJQ0IwYUdsekxpUmxiR1Z0Wlc1MElDQWdJQ0FnSUNBZ0lDQWdQU0FrS0dWc1pXMWxiblFwWEhKY2JpQWdJQ0IwYUdsekxpUmthV0ZzYjJjZ0lDQWdJQ0FnSUNBZ0lDQWdQU0IwYUdsekxpUmxiR1Z0Wlc1MExtWnBibVFvSnk1dGIyUmhiQzFrYVdGc2IyY25LVnh5WEc0Z0lDQWdkR2hwY3k0a1ltRmphMlJ5YjNBZ0lDQWdJQ0FnSUNBZ0lEMGdiblZzYkZ4eVhHNGdJQ0FnZEdocGN5NXBjMU5vYjNkdUlDQWdJQ0FnSUNBZ0lDQWdJRDBnYm5Wc2JGeHlYRzRnSUNBZ2RHaHBjeTV2Y21sbmFXNWhiRUp2WkhsUVlXUWdJQ0FnSUQwZ2JuVnNiRnh5WEc0Z0lDQWdkR2hwY3k1elkzSnZiR3hpWVhKWGFXUjBhQ0FnSUNBZ0lEMGdNRnh5WEc0Z0lDQWdkR2hwY3k1cFoyNXZjbVZDWVdOclpISnZjRU5zYVdOcklEMGdabUZzYzJWY2NseHVYSEpjYmlBZ0lDQnBaaUFvZEdocGN5NXZjSFJwYjI1ekxuSmxiVzkwWlNrZ2UxeHlYRzRnSUNBZ0lDQjBhR2x6TGlSbGJHVnRaVzUwWEhKY2JpQWdJQ0FnSUNBZ0xtWnBibVFvSnk1dGIyUmhiQzFqYjI1MFpXNTBKeWxjY2x4dUlDQWdJQ0FnSUNBdWJHOWhaQ2gwYUdsekxtOXdkR2x2Ym5NdWNtVnRiM1JsTENBa0xuQnliM2g1S0daMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVKR1ZzWlcxbGJuUXVkSEpwWjJkbGNpZ25iRzloWkdWa0xuZHdZbU11Ylc5a1lXd25LVnh5WEc0Z0lDQWdJQ0FnSUgwc0lIUm9hWE1wS1Z4eVhHNGdJQ0FnZlZ4eVhHNGdJSDFjY2x4dVhISmNiaUFnVFc5a1lXd3VWa1ZTVTBsUFRpQWdQU0FuTXk0ekxqVW5YSEpjYmx4eVhHNGdJRTF2WkdGc0xsUlNRVTVUU1ZSSlQwNWZSRlZTUVZSSlQwNGdQU0F6TURCY2NseHVJQ0JOYjJSaGJDNUNRVU5MUkZKUFVGOVVVa0ZPVTBsVVNVOU9YMFJWVWtGVVNVOU9JRDBnTVRVd1hISmNibHh5WEc0Z0lFMXZaR0ZzTGtSRlJrRlZURlJUSUQwZ2UxeHlYRzRnSUNBZ1ltRmphMlJ5YjNBNklIUnlkV1VzWEhKY2JpQWdJQ0JyWlhsaWIyRnlaRG9nZEhKMVpTeGNjbHh1SUNBZ0lITm9iM2M2SUhSeWRXVmNjbHh1SUNCOVhISmNibHh5WEc0Z0lFMXZaR0ZzTG5CeWIzUnZkSGx3WlM1MGIyZG5iR1VnUFNCbWRXNWpkR2x2YmlBb1gzSmxiR0YwWldSVVlYSm5aWFFwSUh0Y2NseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtbHpVMmh2ZDI0Z1B5QjBhR2x6TG1ocFpHVW9LU0E2SUhSb2FYTXVjMmh2ZHloZmNtVnNZWFJsWkZSaGNtZGxkQ2xjY2x4dUlDQjlYSEpjYmx4eVhHNGdJRTF2WkdGc0xuQnliM1J2ZEhsd1pTNXphRzkzSUQwZ1puVnVZM1JwYjI0Z0tGOXlaV3hoZEdWa1ZHRnlaMlYwS1NCN1hISmNiaUFnSUNCMllYSWdkR2hoZENBOUlIUm9hWE5jY2x4dUlDQWdJSFpoY2lCbElDQWdJRDBnSkM1RmRtVnVkQ2duYzJodmR5NTNjR0pqTG0xdlpHRnNKeXdnZXlCeVpXeGhkR1ZrVkdGeVoyVjBPaUJmY21Wc1lYUmxaRlJoY21kbGRDQjlLVnh5WEc1Y2NseHVJQ0FnSUhSb2FYTXVKR1ZzWlcxbGJuUXVkSEpwWjJkbGNpaGxLVnh5WEc1Y2NseHVJQ0FnSUdsbUlDaDBhR2x6TG1selUyaHZkMjRnZkh3Z1pTNXBjMFJsWm1GMWJIUlFjbVYyWlc1MFpXUW9LU2tnY21WMGRYSnVYSEpjYmx4eVhHNGdJQ0FnZEdocGN5NXBjMU5vYjNkdUlEMGdkSEoxWlZ4eVhHNWNjbHh1SUNBZ0lIUm9hWE11WTJobFkydFRZM0p2Ykd4aVlYSW9LVnh5WEc0Z0lDQWdkR2hwY3k1elpYUlRZM0p2Ykd4aVlYSW9LVnh5WEc0Z0lDQWdkR2hwY3k0a1ltOWtlUzVoWkdSRGJHRnpjeWduYlc5a1lXd3RiM0JsYmljcFhISmNibHh5WEc0Z0lDQWdkR2hwY3k1bGMyTmhjR1VvS1Z4eVhHNGdJQ0FnZEdocGN5NXlaWE5wZW1Vb0tWeHlYRzVjY2x4dUlDQWdJSFJvYVhNdUpHVnNaVzFsYm5RdWIyNG9KMk5zYVdOckxtUnBjMjFwYzNNdWQzQmlZeTV0YjJSaGJDY3NJQ2RiWkdGMFlTMWthWE50YVhOelBWd2liVzlrWVd4Y0lsMG5MQ0FrTG5CeWIzaDVLSFJvYVhNdWFHbGtaU3dnZEdocGN5a3BYSEpjYmx4eVhHNGdJQ0FnZEdocGN5NGtaR2xoYkc5bkxtOXVLQ2R0YjNWelpXUnZkMjR1WkdsemJXbHpjeTUzY0dKakxtMXZaR0ZzSnl3Z1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdJQ0IwYUdGMExpUmxiR1Z0Wlc1MExtOXVaU2duYlc5MWMyVjFjQzVrYVhOdGFYTnpMbmR3WW1NdWJXOWtZV3duTENCbWRXNWpkR2x2YmlBb1pTa2dlMXh5WEc0Z0lDQWdJQ0FnSUdsbUlDZ2tLR1V1ZEdGeVoyVjBLUzVwY3loMGFHRjBMaVJsYkdWdFpXNTBLU2tnZEdoaGRDNXBaMjV2Y21WQ1lXTnJaSEp2Y0VOc2FXTnJJRDBnZEhKMVpWeHlYRzRnSUNBZ0lDQjlLVnh5WEc0Z0lDQWdmU2xjY2x4dVhISmNiaUFnSUNCMGFHbHpMbUpoWTJ0a2NtOXdLR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUNBZ2RtRnlJSFJ5WVc1emFYUnBiMjRnUFNBa0xuTjFjSEJ2Y25RdWRISmhibk5wZEdsdmJpQW1KaUIwYUdGMExpUmxiR1Z0Wlc1MExtaGhjME5zWVhOektDZG1ZV1JsSnlsY2NseHVYSEpjYmlBZ0lDQWdJR2xtSUNnaGRHaGhkQzRrWld4bGJXVnVkQzV3WVhKbGJuUW9LUzVzWlc1bmRHZ3BJSHRjY2x4dUlDQWdJQ0FnSUNCMGFHRjBMaVJsYkdWdFpXNTBMbUZ3Y0dWdVpGUnZLSFJvWVhRdUpHSnZaSGtwSUM4dklHUnZiaWQwSUcxdmRtVWdiVzlrWVd4eklHUnZiU0J3YjNOcGRHbHZibHh5WEc0Z0lDQWdJQ0I5WEhKY2JseHlYRzRnSUNBZ0lDQjBhR0YwTGlSbGJHVnRaVzUwWEhKY2JpQWdJQ0FnSUNBZ0xuTm9iM2NvS1Z4eVhHNGdJQ0FnSUNBZ0lDNXpZM0p2Ykd4VWIzQW9NQ2xjY2x4dVhISmNiaUFnSUNBZ0lIUm9ZWFF1WVdScWRYTjBSR2xoYkc5bktDbGNjbHh1WEhKY2JpQWdJQ0FnSUdsbUlDaDBjbUZ1YzJsMGFXOXVLU0I3WEhKY2JpQWdJQ0FnSUNBZ2RHaGhkQzRrWld4bGJXVnVkRnN3WFM1dlptWnpaWFJYYVdSMGFDQXZMeUJtYjNKalpTQnlaV1pzYjNkY2NseHVJQ0FnSUNBZ2ZWeHlYRzVjY2x4dUlDQWdJQ0FnZEdoaGRDNGtaV3hsYldWdWRDNWhaR1JEYkdGemN5Z25hVzRuS1Z4eVhHNWNjbHh1SUNBZ0lDQWdkR2hoZEM1bGJtWnZjbU5sUm05amRYTW9LVnh5WEc1Y2NseHVJQ0FnSUNBZ2RtRnlJR1VnUFNBa0xrVjJaVzUwS0NkemFHOTNiaTUzY0dKakxtMXZaR0ZzSnl3Z2V5QnlaV3hoZEdWa1ZHRnlaMlYwT2lCZmNtVnNZWFJsWkZSaGNtZGxkQ0I5S1Z4eVhHNWNjbHh1SUNBZ0lDQWdkSEpoYm5OcGRHbHZiaUEvWEhKY2JpQWdJQ0FnSUNBZ2RHaGhkQzRrWkdsaGJHOW5JQzh2SUhkaGFYUWdabTl5SUcxdlpHRnNJSFJ2SUhOc2FXUmxJR2x1WEhKY2JpQWdJQ0FnSUNBZ0lDQXViMjVsS0NkaWMxUnlZVzV6YVhScGIyNUZibVFuTENCbWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJQ0FnSUNBZ0lIUm9ZWFF1SkdWc1pXMWxiblF1ZEhKcFoyZGxjaWduWm05amRYTW5LUzUwY21sbloyVnlLR1VwWEhKY2JpQWdJQ0FnSUNBZ0lDQjlLVnh5WEc0Z0lDQWdJQ0FnSUNBZ0xtVnRkV3hoZEdWVWNtRnVjMmwwYVc5dVJXNWtLRTF2WkdGc0xsUlNRVTVUU1ZSSlQwNWZSRlZTUVZSSlQwNHBJRHBjY2x4dUlDQWdJQ0FnSUNCMGFHRjBMaVJsYkdWdFpXNTBMblJ5YVdkblpYSW9KMlp2WTNWekp5a3VkSEpwWjJkbGNpaGxLVnh5WEc0Z0lDQWdmU2xjY2x4dUlDQjlYSEpjYmx4eVhHNGdJRTF2WkdGc0xuQnliM1J2ZEhsd1pTNW9hV1JsSUQwZ1puVnVZM1JwYjI0Z0tHVXBJSHRjY2x4dUlDQWdJR2xtSUNobEtTQmxMbkJ5WlhabGJuUkVaV1poZFd4MEtDbGNjbHh1WEhKY2JpQWdJQ0JsSUQwZ0pDNUZkbVZ1ZENnbmFHbGtaUzUzY0dKakxtMXZaR0ZzSnlsY2NseHVYSEpjYmlBZ0lDQjBhR2x6TGlSbGJHVnRaVzUwTG5SeWFXZG5aWElvWlNsY2NseHVYSEpjYmlBZ0lDQnBaaUFvSVhSb2FYTXVhWE5UYUc5M2JpQjhmQ0JsTG1selJHVm1ZWFZzZEZCeVpYWmxiblJsWkNncEtTQnlaWFIxY201Y2NseHVYSEpjYmlBZ0lDQjBhR2x6TG1selUyaHZkMjRnUFNCbVlXeHpaVnh5WEc1Y2NseHVJQ0FnSUhSb2FYTXVaWE5qWVhCbEtDbGNjbHh1SUNBZ0lIUm9hWE11Y21WemFYcGxLQ2xjY2x4dVhISmNiaUFnSUNBa0tHUnZZM1Z0Wlc1MEtTNXZabVlvSjJadlkzVnphVzR1ZDNCaVl5NXRiMlJoYkNjcFhISmNibHh5WEc0Z0lDQWdkR2hwY3k0a1pXeGxiV1Z1ZEZ4eVhHNGdJQ0FnSUNBdWNtVnRiM1psUTJ4aGMzTW9KMmx1SnlsY2NseHVJQ0FnSUNBZ0xtOW1aaWduWTJ4cFkyc3VaR2x6YldsemN5NTNjR0pqTG0xdlpHRnNKeWxjY2x4dUlDQWdJQ0FnTG05bVppZ25iVzkxYzJWMWNDNWthWE50YVhOekxuZHdZbU11Ylc5a1lXd25LVnh5WEc1Y2NseHVJQ0FnSUhSb2FYTXVKR1JwWVd4dlp5NXZabVlvSjIxdmRYTmxaRzkzYmk1a2FYTnRhWE56TG5kd1ltTXViVzlrWVd3bktWeHlYRzVjY2x4dUlDQWdJQ1F1YzNWd2NHOXlkQzUwY21GdWMybDBhVzl1SUNZbUlIUm9hWE11SkdWc1pXMWxiblF1YUdGelEyeGhjM01vSjJaaFpHVW5LU0EvWEhKY2JpQWdJQ0FnSUhSb2FYTXVKR1ZzWlcxbGJuUmNjbHh1SUNBZ0lDQWdJQ0F1YjI1bEtDZGljMVJ5WVc1emFYUnBiMjVGYm1RbkxDQWtMbkJ5YjNoNUtIUm9hWE11YUdsa1pVMXZaR0ZzTENCMGFHbHpLU2xjY2x4dUlDQWdJQ0FnSUNBdVpXMTFiR0YwWlZSeVlXNXphWFJwYjI1RmJtUW9UVzlrWVd3dVZGSkJUbE5KVkVsUFRsOUVWVkpCVkVsUFRpa2dPbHh5WEc0Z0lDQWdJQ0IwYUdsekxtaHBaR1ZOYjJSaGJDZ3BYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQk5iMlJoYkM1d2NtOTBiM1I1Y0dVdVpXNW1iM0pqWlVadlkzVnpJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0pDaGtiMk4xYldWdWRDbGNjbHh1SUNBZ0lDQWdMbTltWmlnblptOWpkWE5wYmk1M2NHSmpMbTF2WkdGc0p5a2dMeThnWjNWaGNtUWdZV2RoYVc1emRDQnBibVpwYm1sMFpTQm1iMk4xY3lCc2IyOXdYSEpjYmlBZ0lDQWdJQzV2YmlnblptOWpkWE5wYmk1M2NHSmpMbTF2WkdGc0p5d2dKQzV3Y205NGVTaG1kVzVqZEdsdmJpQW9aU2tnZTF4eVhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxpUmxiR1Z0Wlc1MFd6QmRJQ0U5UFNCbExuUmhjbWRsZENBbUppQWhkR2hwY3k0a1pXeGxiV1Z1ZEM1b1lYTW9aUzUwWVhKblpYUXBMbXhsYm1kMGFDa2dlMXh5WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTRrWld4bGJXVnVkQzUwY21sbloyVnlLQ2RtYjJOMWN5Y3BYSEpjYmlBZ0lDQWdJQ0FnZlZ4eVhHNGdJQ0FnSUNCOUxDQjBhR2x6S1NsY2NseHVJQ0I5WEhKY2JseHlYRzRnSUUxdlpHRnNMbkJ5YjNSdmRIbHdaUzVsYzJOaGNHVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNCcFppQW9kR2hwY3k1cGMxTm9iM2R1SUNZbUlIUm9hWE11YjNCMGFXOXVjeTVyWlhsaWIyRnlaQ2tnZTF4eVhHNGdJQ0FnSUNCMGFHbHpMaVJsYkdWdFpXNTBMbTl1S0NkclpYbGtiM2R1TG1ScGMyMXBjM011ZDNCaVl5NXRiMlJoYkNjc0lDUXVjSEp2ZUhrb1puVnVZM1JwYjI0Z0tHVXBJSHRjY2x4dUlDQWdJQ0FnSUNCbExuZG9hV05vSUQwOUlESTNJQ1ltSUhSb2FYTXVhR2xrWlNncFhISmNiaUFnSUNBZ0lIMHNJSFJvYVhNcEtWeHlYRzRnSUNBZ2ZTQmxiSE5sSUdsbUlDZ2hkR2hwY3k1cGMxTm9iM2R1S1NCN1hISmNiaUFnSUNBZ0lIUm9hWE11SkdWc1pXMWxiblF1YjJabUtDZHJaWGxrYjNkdUxtUnBjMjFwYzNNdWQzQmlZeTV0YjJSaGJDY3BYSEpjYmlBZ0lDQjlYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQk5iMlJoYkM1d2NtOTBiM1I1Y0dVdWNtVnphWHBsSUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdhV1lnS0hSb2FYTXVhWE5UYUc5M2Jpa2dlMXh5WEc0Z0lDQWdJQ0FrS0hkcGJtUnZkeWt1YjI0b0ozSmxjMmw2WlM1M2NHSmpMbTF2WkdGc0p5d2dKQzV3Y205NGVTaDBhR2x6TG1oaGJtUnNaVlZ3WkdGMFpTd2dkR2hwY3lrcFhISmNiaUFnSUNCOUlHVnNjMlVnZTF4eVhHNGdJQ0FnSUNBa0tIZHBibVJ2ZHlrdWIyWm1LQ2R5WlhOcGVtVXVkM0JpWXk1dGIyUmhiQ2NwWEhKY2JpQWdJQ0I5WEhKY2JpQWdmVnh5WEc1Y2NseHVJQ0JOYjJSaGJDNXdjbTkwYjNSNWNHVXVhR2xrWlUxdlpHRnNJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ2RtRnlJSFJvWVhRZ1BTQjBhR2x6WEhKY2JpQWdJQ0IwYUdsekxpUmxiR1Z0Wlc1MExtaHBaR1VvS1Z4eVhHNGdJQ0FnZEdocGN5NWlZV05yWkhKdmNDaG1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0FnSUhSb1lYUXVKR0p2WkhrdWNtVnRiM1psUTJ4aGMzTW9KMjF2WkdGc0xXOXdaVzRuS1Z4eVhHNGdJQ0FnSUNCMGFHRjBMbkpsYzJWMFFXUnFkWE4wYldWdWRITW9LVnh5WEc0Z0lDQWdJQ0IwYUdGMExuSmxjMlYwVTJOeWIyeHNZbUZ5S0NsY2NseHVJQ0FnSUNBZ2RHaGhkQzRrWld4bGJXVnVkQzUwY21sbloyVnlLQ2RvYVdSa1pXNHVkM0JpWXk1dGIyUmhiQ2NwWEhKY2JpQWdJQ0I5S1Z4eVhHNGdJSDFjY2x4dVhISmNiaUFnVFc5a1lXd3VjSEp2ZEc5MGVYQmxMbkpsYlc5MlpVSmhZMnRrY205d0lEMGdablZ1WTNScGIyNGdLQ2tnZTF4eVhHNGdJQ0FnZEdocGN5NGtZbUZqYTJSeWIzQWdKaVlnZEdocGN5NGtZbUZqYTJSeWIzQXVjbVZ0YjNabEtDbGNjbHh1SUNBZ0lIUm9hWE11SkdKaFkydGtjbTl3SUQwZ2JuVnNiRnh5WEc0Z0lIMWNjbHh1WEhKY2JpQWdUVzlrWVd3dWNISnZkRzkwZVhCbExtSmhZMnRrY205d0lEMGdablZ1WTNScGIyNGdLR05oYkd4aVlXTnJLU0I3WEhKY2JpQWdJQ0IyWVhJZ2RHaGhkQ0E5SUhSb2FYTmNjbHh1SUNBZ0lIWmhjaUJoYm1sdFlYUmxJRDBnZEdocGN5NGtaV3hsYldWdWRDNW9ZWE5EYkdGemN5Z25abUZrWlNjcElEOGdKMlpoWkdVbklEb2dKeWRjY2x4dVhISmNiaUFnSUNCcFppQW9kR2hwY3k1cGMxTm9iM2R1SUNZbUlIUm9hWE11YjNCMGFXOXVjeTVpWVdOclpISnZjQ2tnZTF4eVhHNGdJQ0FnSUNCMllYSWdaRzlCYm1sdFlYUmxJRDBnSkM1emRYQndiM0owTG5SeVlXNXphWFJwYjI0Z0ppWWdZVzVwYldGMFpWeHlYRzVjY2x4dUlDQWdJQ0FnZEdocGN5NGtZbUZqYTJSeWIzQWdQU0FrS0dSdlkzVnRaVzUwTG1OeVpXRjBaVVZzWlcxbGJuUW9KMlJwZGljcEtWeHlYRzRnSUNBZ0lDQWdJQzVoWkdSRGJHRnpjeWduYlc5a1lXd3RZbUZqYTJSeWIzQWdKeUFySUdGdWFXMWhkR1VwWEhKY2JpQWdJQ0FnSUNBZ0xtRndjR1Z1WkZSdktIUm9hWE11SkdKdlpIa3BYSEpjYmx4eVhHNGdJQ0FnSUNCMGFHbHpMaVJsYkdWdFpXNTBMbTl1S0NkamJHbGpheTVrYVhOdGFYTnpMbmR3WW1NdWJXOWtZV3duTENBa0xuQnliM2g1S0daMWJtTjBhVzl1SUNobEtTQjdYSEpjYmlBZ0lDQWdJQ0FnYVdZZ0tIUm9hWE11YVdkdWIzSmxRbUZqYTJSeWIzQkRiR2xqYXlrZ2UxeHlYRzRnSUNBZ0lDQWdJQ0FnZEdocGN5NXBaMjV2Y21WQ1lXTnJaSEp2Y0VOc2FXTnJJRDBnWm1Gc2MyVmNjbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnlibHh5WEc0Z0lDQWdJQ0FnSUgxY2NseHVJQ0FnSUNBZ0lDQnBaaUFvWlM1MFlYSm5aWFFnSVQwOUlHVXVZM1Z5Y21WdWRGUmhjbWRsZENrZ2NtVjBkWEp1WEhKY2JpQWdJQ0FnSUNBZ2RHaHBjeTV2Y0hScGIyNXpMbUpoWTJ0a2NtOXdJRDA5SUNkemRHRjBhV01uWEhKY2JpQWdJQ0FnSUNBZ0lDQS9JSFJvYVhNdUpHVnNaVzFsYm5SYk1GMHVabTlqZFhNb0tWeHlYRzRnSUNBZ0lDQWdJQ0FnT2lCMGFHbHpMbWhwWkdVb0tWeHlYRzRnSUNBZ0lDQjlMQ0IwYUdsektTbGNjbHh1WEhKY2JpQWdJQ0FnSUdsbUlDaGtiMEZ1YVcxaGRHVXBJSFJvYVhNdUpHSmhZMnRrY205d1d6QmRMbTltWm5ObGRGZHBaSFJvSUM4dklHWnZjbU5sSUhKbFpteHZkMXh5WEc1Y2NseHVJQ0FnSUNBZ2RHaHBjeTRrWW1GamEyUnliM0F1WVdSa1EyeGhjM01vSjJsdUp5bGNjbHh1WEhKY2JpQWdJQ0FnSUdsbUlDZ2hZMkZzYkdKaFkyc3BJSEpsZEhWeWJseHlYRzVjY2x4dUlDQWdJQ0FnWkc5QmJtbHRZWFJsSUQ5Y2NseHVJQ0FnSUNBZ0lDQjBhR2x6TGlSaVlXTnJaSEp2Y0Z4eVhHNGdJQ0FnSUNBZ0lDQWdMbTl1WlNnblluTlVjbUZ1YzJsMGFXOXVSVzVrSnl3Z1kyRnNiR0poWTJzcFhISmNiaUFnSUNBZ0lDQWdJQ0F1WlcxMWJHRjBaVlJ5WVc1emFYUnBiMjVGYm1Rb1RXOWtZV3d1UWtGRFMwUlNUMUJmVkZKQlRsTkpWRWxQVGw5RVZWSkJWRWxQVGlrZ09seHlYRzRnSUNBZ0lDQWdJR05oYkd4aVlXTnJLQ2xjY2x4dVhISmNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tDRjBhR2x6TG1selUyaHZkMjRnSmlZZ2RHaHBjeTRrWW1GamEyUnliM0FwSUh0Y2NseHVJQ0FnSUNBZ2RHaHBjeTRrWW1GamEyUnliM0F1Y21WdGIzWmxRMnhoYzNNb0oybHVKeWxjY2x4dVhISmNiaUFnSUNBZ0lIWmhjaUJqWVd4c1ltRmphMUpsYlc5MlpTQTlJR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUNBZ0lDQjBhR0YwTG5KbGJXOTJaVUpoWTJ0a2NtOXdLQ2xjY2x4dUlDQWdJQ0FnSUNCallXeHNZbUZqYXlBbUppQmpZV3hzWW1GamF5Z3BYSEpjYmlBZ0lDQWdJSDFjY2x4dUlDQWdJQ0FnSkM1emRYQndiM0owTG5SeVlXNXphWFJwYjI0Z0ppWWdkR2hwY3k0a1pXeGxiV1Z1ZEM1b1lYTkRiR0Z6Y3lnblptRmtaU2NwSUQ5Y2NseHVJQ0FnSUNBZ0lDQjBhR2x6TGlSaVlXTnJaSEp2Y0Z4eVhHNGdJQ0FnSUNBZ0lDQWdMbTl1WlNnblluTlVjbUZ1YzJsMGFXOXVSVzVrSnl3Z1kyRnNiR0poWTJ0U1pXMXZkbVVwWEhKY2JpQWdJQ0FnSUNBZ0lDQXVaVzExYkdGMFpWUnlZVzV6YVhScGIyNUZibVFvVFc5a1lXd3VRa0ZEUzBSU1QxQmZWRkpCVGxOSlZFbFBUbDlFVlZKQlZFbFBUaWtnT2x4eVhHNGdJQ0FnSUNBZ0lHTmhiR3hpWVdOclVtVnRiM1psS0NsY2NseHVYSEpjYmlBZ0lDQjlJR1ZzYzJVZ2FXWWdLR05oYkd4aVlXTnJLU0I3WEhKY2JpQWdJQ0FnSUdOaGJHeGlZV05yS0NsY2NseHVJQ0FnSUgxY2NseHVJQ0I5WEhKY2JseHlYRzRnSUM4dklIUm9aWE5sSUdadmJHeHZkMmx1WnlCdFpYUm9iMlJ6SUdGeVpTQjFjMlZrSUhSdklHaGhibVJzWlNCdmRtVnlabXh2ZDJsdVp5QnRiMlJoYkhOY2NseHVYSEpjYmlBZ1RXOWtZV3d1Y0hKdmRHOTBlWEJsTG1oaGJtUnNaVlZ3WkdGMFpTQTlJR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUhSb2FYTXVZV1JxZFhOMFJHbGhiRzluS0NsY2NseHVJQ0I5WEhKY2JseHlYRzRnSUUxdlpHRnNMbkJ5YjNSdmRIbHdaUzVoWkdwMWMzUkVhV0ZzYjJjZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0IyWVhJZ2JXOWtZV3hKYzA5MlpYSm1iRzkzYVc1bklEMGdkR2hwY3k0a1pXeGxiV1Z1ZEZzd1hTNXpZM0p2Ykd4SVpXbG5hSFFnUGlCa2IyTjFiV1Z1ZEM1a2IyTjFiV1Z1ZEVWc1pXMWxiblF1WTJ4cFpXNTBTR1ZwWjJoMFhISmNibHh5WEc0Z0lDQWdkR2hwY3k0a1pXeGxiV1Z1ZEM1amMzTW9lMXh5WEc0Z0lDQWdJQ0J3WVdSa2FXNW5UR1ZtZERvZ0lDRjBhR2x6TG1KdlpIbEpjMDkyWlhKbWJHOTNhVzVuSUNZbUlHMXZaR0ZzU1hOUGRtVnlabXh2ZDJsdVp5QS9JSFJvYVhNdWMyTnliMnhzWW1GeVYybGtkR2dnT2lBbkp5eGNjbHh1SUNBZ0lDQWdjR0ZrWkdsdVoxSnBaMmgwT2lCMGFHbHpMbUp2WkhsSmMwOTJaWEptYkc5M2FXNW5JQ1ltSUNGdGIyUmhiRWx6VDNabGNtWnNiM2RwYm1jZ1B5QjBhR2x6TG5OamNtOXNiR0poY2xkcFpIUm9JRG9nSnlkY2NseHVJQ0FnSUgwcFhISmNiaUFnZlZ4eVhHNWNjbHh1SUNCTmIyUmhiQzV3Y205MGIzUjVjR1V1Y21WelpYUkJaR3AxYzNSdFpXNTBjeUE5SUdaMWJtTjBhVzl1SUNncElIdGNjbHh1SUNBZ0lIUm9hWE11SkdWc1pXMWxiblF1WTNOektIdGNjbHh1SUNBZ0lDQWdjR0ZrWkdsdVoweGxablE2SUNjbkxGeHlYRzRnSUNBZ0lDQndZV1JrYVc1blVtbG5hSFE2SUNjblhISmNiaUFnSUNCOUtWeHlYRzRnSUgxY2NseHVYSEpjYmlBZ1RXOWtZV3d1Y0hKdmRHOTBlWEJsTG1Ob1pXTnJVMk55YjJ4c1ltRnlJRDBnWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ2RtRnlJR1oxYkd4WGFXNWtiM2RYYVdSMGFDQTlJSGRwYm1SdmR5NXBibTVsY2xkcFpIUm9YSEpjYmlBZ0lDQnBaaUFvSVdaMWJHeFhhVzVrYjNkWGFXUjBhQ2tnZXlBdkx5QjNiM0pyWVhKdmRXNWtJR1p2Y2lCdGFYTnphVzVuSUhkcGJtUnZkeTVwYm01bGNsZHBaSFJvSUdsdUlFbEZPRnh5WEc0Z0lDQWdJQ0IyWVhJZ1pHOWpkVzFsYm5SRmJHVnRaVzUwVW1WamRDQTlJR1J2WTNWdFpXNTBMbVJ2WTNWdFpXNTBSV3hsYldWdWRDNW5aWFJDYjNWdVpHbHVaME5zYVdWdWRGSmxZM1FvS1Z4eVhHNGdJQ0FnSUNCbWRXeHNWMmx1Wkc5M1YybGtkR2dnUFNCa2IyTjFiV1Z1ZEVWc1pXMWxiblJTWldOMExuSnBaMmgwSUMwZ1RXRjBhQzVoWW5Nb1pHOWpkVzFsYm5SRmJHVnRaVzUwVW1WamRDNXNaV1owS1Z4eVhHNGdJQ0FnZlZ4eVhHNGdJQ0FnZEdocGN5NWliMlI1U1hOUGRtVnlabXh2ZDJsdVp5QTlJR1J2WTNWdFpXNTBMbUp2WkhrdVkyeHBaVzUwVjJsa2RHZ2dQQ0JtZFd4c1YybHVaRzkzVjJsa2RHaGNjbHh1SUNBZ0lIUm9hWE11YzJOeWIyeHNZbUZ5VjJsa2RHZ2dQU0IwYUdsekxtMWxZWE4xY21WVFkzSnZiR3hpWVhJb0tWeHlYRzRnSUgxY2NseHVYSEpjYmlBZ1RXOWtZV3d1Y0hKdmRHOTBlWEJsTG5ObGRGTmpjbTlzYkdKaGNpQTlJR1oxYm1OMGFXOXVJQ2dwSUh0Y2NseHVJQ0FnSUhaaGNpQmliMlI1VUdGa0lEMGdjR0Z5YzJWSmJuUW9LSFJvYVhNdUpHSnZaSGt1WTNOektDZHdZV1JrYVc1bkxYSnBaMmgwSnlrZ2ZId2dNQ2tzSURFd0tWeHlYRzRnSUNBZ2RHaHBjeTV2Y21sbmFXNWhiRUp2WkhsUVlXUWdQU0JrYjJOMWJXVnVkQzVpYjJSNUxuTjBlV3hsTG5CaFpHUnBibWRTYVdkb2RDQjhmQ0FuSjF4eVhHNGdJQ0FnYVdZZ0tIUm9hWE11WW05a2VVbHpUM1psY21ac2IzZHBibWNwSUhSb2FYTXVKR0p2WkhrdVkzTnpLQ2R3WVdSa2FXNW5MWEpwWjJoMEp5d2dZbTlrZVZCaFpDQXJJSFJvYVhNdWMyTnliMnhzWW1GeVYybGtkR2dwWEhKY2JpQWdmVnh5WEc1Y2NseHVJQ0JOYjJSaGJDNXdjbTkwYjNSNWNHVXVjbVZ6WlhSVFkzSnZiR3hpWVhJZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEhKY2JpQWdJQ0IwYUdsekxpUmliMlI1TG1OemN5Z25jR0ZrWkdsdVp5MXlhV2RvZENjc0lIUm9hWE11YjNKcFoybHVZV3hDYjJSNVVHRmtLVnh5WEc0Z0lIMWNjbHh1WEhKY2JpQWdUVzlrWVd3dWNISnZkRzkwZVhCbExtMWxZWE4xY21WVFkzSnZiR3hpWVhJZ1BTQm1kVzVqZEdsdmJpQW9LU0I3SUM4dklIUm9lQ0IzWVd4emFGeHlYRzRnSUNBZ2RtRnlJSE5qY205c2JFUnBkaUE5SUdSdlkzVnRaVzUwTG1OeVpXRjBaVVZzWlcxbGJuUW9KMlJwZGljcFhISmNiaUFnSUNCelkzSnZiR3hFYVhZdVkyeGhjM05PWVcxbElEMGdKMjF2WkdGc0xYTmpjbTlzYkdKaGNpMXRaV0Z6ZFhKbEoxeHlYRzRnSUNBZ2RHaHBjeTRrWW05a2VTNWhjSEJsYm1Rb2MyTnliMnhzUkdsMktWeHlYRzRnSUNBZ2RtRnlJSE5qY205c2JHSmhjbGRwWkhSb0lEMGdjMk55YjJ4c1JHbDJMbTltWm5ObGRGZHBaSFJvSUMwZ2MyTnliMnhzUkdsMkxtTnNhV1Z1ZEZkcFpIUm9YSEpjYmlBZ0lDQjBhR2x6TGlSaWIyUjVXekJkTG5KbGJXOTJaVU5vYVd4a0tITmpjbTlzYkVScGRpbGNjbHh1SUNBZ0lISmxkSFZ5YmlCelkzSnZiR3hpWVhKWGFXUjBhRnh5WEc0Z0lIMWNjbHh1WEhKY2JseHlYRzRnSUM4dklFMVBSRUZNSUZCTVZVZEpUaUJFUlVaSlRrbFVTVTlPWEhKY2JpQWdMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNjbHh1WEhKY2JpQWdablZ1WTNScGIyNGdVR3gxWjJsdUtHOXdkR2x2Yml3Z1gzSmxiR0YwWldSVVlYSm5aWFFwSUh0Y2NseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtVmhZMmdvWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0lDQjJZWElnSkhSb2FYTWdJQ0E5SUNRb2RHaHBjeWxjY2x4dUlDQWdJQ0FnZG1GeUlHUmhkR0VnSUNBZ1BTQWtkR2hwY3k1a1lYUmhLQ2QzY0dKakxtMXZaR0ZzSnlsY2NseHVJQ0FnSUNBZ2RtRnlJRzl3ZEdsdmJuTWdQU0FrTG1WNGRHVnVaQ2g3ZlN3Z1RXOWtZV3d1UkVWR1FWVk1WRk1zSUNSMGFHbHpMbVJoZEdFb0tTd2dkSGx3Wlc5bUlHOXdkR2x2YmlBOVBTQW5iMkpxWldOMEp5QW1KaUJ2Y0hScGIyNHBYSEpjYmx4eVhHNGdJQ0FnSUNCcFppQW9JV1JoZEdFcElDUjBhR2x6TG1SaGRHRW9KM2R3WW1NdWJXOWtZV3duTENBb1pHRjBZU0E5SUc1bGR5Qk5iMlJoYkNoMGFHbHpMQ0J2Y0hScGIyNXpLU2twWEhKY2JpQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ2IzQjBhVzl1SUQwOUlDZHpkSEpwYm1jbktTQmtZWFJoVzI5d2RHbHZibDBvWDNKbGJHRjBaV1JVWVhKblpYUXBYSEpjYmlBZ0lDQWdJR1ZzYzJVZ2FXWWdLRzl3ZEdsdmJuTXVjMmh2ZHlrZ1pHRjBZUzV6YUc5M0tGOXlaV3hoZEdWa1ZHRnlaMlYwS1Z4eVhHNGdJQ0FnZlNsY2NseHVJQ0I5WEhKY2JseHlYRzRnSUhaaGNpQnZiR1FnUFNBa0xtWnVMbmR3WW1OZmJYbGZiVzlrWVd4Y2NseHVYSEpjYmlBZ0pDNW1iaTUzY0dKalgyMTVYMjF2WkdGc0lDQWdJQ0FnSUNBZ0lDQWdJRDBnVUd4MVoybHVYSEpjYmlBZ0pDNW1iaTUzY0dKalgyMTVYMjF2WkdGc0xrTnZibk4wY25WamRHOXlJRDBnVFc5a1lXeGNjbHh1WEhKY2JseHlYRzRnSUM4dklFMVBSRUZNSUU1UElFTlBUa1pNU1VOVVhISmNiaUFnTHk4Z1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQxY2NseHVYSEpjYmlBZ0pDNW1iaTUzY0dKalgyMTVYMjF2WkdGc0xtNXZRMjl1Wm14cFkzUWdQU0JtZFc1amRHbHZiaUFvS1NCN1hISmNiaUFnSUNBa0xtWnVMbmR3WW1OZmJYbGZiVzlrWVd3Z1BTQnZiR1JjY2x4dUlDQWdJSEpsZEhWeWJpQjBhR2x6WEhKY2JpQWdmVnh5WEc1Y2NseHVYSEpjYmlBZ0x5OGdUVTlFUVV3Z1JFRlVRUzFCVUVsY2NseHVJQ0F2THlBOVBUMDlQVDA5UFQwOVBUMDlQVnh5WEc1Y2NseHVJQ0FrS0dSdlkzVnRaVzUwS1M1dmJpZ25ZMnhwWTJzdWQzQmlZeTV0YjJSaGJDNWtZWFJoTFdGd2FTY3NJQ2RiWkdGMFlTMTBiMmRuYkdVOVhDSjNjR0pqWDIxNVgyMXZaR0ZzWENKZEp5d2dablZ1WTNScGIyNGdLR1VwSUh0Y2NseHVJQ0FnSUhaaGNpQWtkR2hwY3lBZ0lEMGdKQ2gwYUdsektWeHlYRzRnSUNBZ2RtRnlJR2h5WldZZ0lDQWdQU0FrZEdocGN5NWhkSFJ5S0Nkb2NtVm1KeWxjY2x4dUlDQWdJSFpoY2lBa2RHRnlaMlYwSUQwZ0pDZ2tkR2hwY3k1aGRIUnlLQ2RrWVhSaExYUmhjbWRsZENjcElIeDhJQ2hvY21WbUlDWW1JR2h5WldZdWNtVndiR0ZqWlNndkxpb29QejBqVzE1Y1hITmRLeVFwTHl3Z0p5Y3BLU2tnTHk4Z2MzUnlhWEFnWm05eUlHbGxOMXh5WEc0Z0lDQWdkbUZ5SUc5d2RHbHZiaUFnUFNBa2RHRnlaMlYwTG1SaGRHRW9KM2R3WW1NdWJXOWtZV3duS1NBL0lDZDBiMmRuYkdVbklEb2dKQzVsZUhSbGJtUW9leUJ5WlcxdmRHVTZJQ0V2SXk4dWRHVnpkQ2hvY21WbUtTQW1KaUJvY21WbUlIMHNJQ1IwWVhKblpYUXVaR0YwWVNncExDQWtkR2hwY3k1a1lYUmhLQ2twWEhKY2JseHlYRzRnSUNBZ2FXWWdLQ1IwYUdsekxtbHpLQ2RoSnlrcElHVXVjSEpsZG1WdWRFUmxabUYxYkhRb0tWeHlYRzVjY2x4dUlDQWdJQ1IwWVhKblpYUXViMjVsS0NkemFHOTNMbmR3WW1NdWJXOWtZV3duTENCbWRXNWpkR2x2YmlBb2MyaHZkMFYyWlc1MEtTQjdYSEpjYmlBZ0lDQWdJR2xtSUNoemFHOTNSWFpsYm5RdWFYTkVaV1poZFd4MFVISmxkbVZ1ZEdWa0tDa3BJSEpsZEhWeWJpQXZMeUJ2Ym14NUlISmxaMmx6ZEdWeUlHWnZZM1Z6SUhKbGMzUnZjbVZ5SUdsbUlHMXZaR0ZzSUhkcGJHd2dZV04wZFdGc2JIa2daMlYwSUhOb2IzZHVYSEpjYmlBZ0lDQWdJQ1IwWVhKblpYUXViMjVsS0Nkb2FXUmtaVzR1ZDNCaVl5NXRiMlJoYkNjc0lHWjFibU4wYVc5dUlDZ3BJSHRjY2x4dUlDQWdJQ0FnSUNBa2RHaHBjeTVwY3lnbk9uWnBjMmxpYkdVbktTQW1KaUFrZEdocGN5NTBjbWxuWjJWeUtDZG1iMk4xY3ljcFhISmNiaUFnSUNBZ0lIMHBYSEpjYmlBZ0lDQjlLVnh5WEc0Z0lDQWdVR3gxWjJsdUxtTmhiR3dvSkhSaGNtZGxkQ3dnYjNCMGFXOXVMQ0IwYUdsektWeHlYRzRnSUgwcFhISmNibHh5WEc1OUtHcFJkV1Z5ZVNrN1hISmNibHh5WEc1Y2NseHVLMloxYm1OMGFXOXVJQ2drS1NCN1hISmNiaUFnSjNWelpTQnpkSEpwWTNRbk8xeHlYRzVjY2x4dUlDQXZMeUJFVWs5UVJFOVhUaUJEVEVGVFV5QkVSVVpKVGtsVVNVOU9YSEpjYmlBZ0x5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHlYRzVjY2x4dUlDQjJZWElnWW1GamEyUnliM0FnUFNBbkxtUnliM0JrYjNkdUxXSmhZMnRrY205d0oxeHlYRzRnSUhaaGNpQjBiMmRuYkdVZ0lDQTlJQ2RiWkdGMFlTMTBiMmRuYkdVOVhDSjNjR0pqWDJSeWIzQmtiM2R1WENKZEoxeHlYRzRnSUhaaGNpQkVjbTl3Wkc5M2JpQTlJR1oxYm1OMGFXOXVJQ2hsYkdWdFpXNTBLU0I3WEhKY2JpQWdJQ0FrS0dWc1pXMWxiblFwTG05dUtDZGpiR2xqYXk1M2NHSmpMbVJ5YjNCa2IzZHVKeXdnZEdocGN5NTBiMmRuYkdVcFhISmNiaUFnZlZ4eVhHNWNjbHh1SUNCRWNtOXdaRzkzYmk1V1JWSlRTVTlPSUQwZ0p6TXVNeTQxSjF4eVhHNWNjbHh1SUNCbWRXNWpkR2x2YmlCblpYUlFZWEpsYm5Rb0pIUm9hWE1wSUh0Y2NseHVJQ0FnSUhaaGNpQnpaV3hsWTNSdmNpQTlJQ1IwYUdsekxtRjBkSElvSjJSaGRHRXRkR0Z5WjJWMEp5bGNjbHh1WEhKY2JpQWdJQ0JwWmlBb0lYTmxiR1ZqZEc5eUtTQjdYSEpjYmlBZ0lDQWdJSE5sYkdWamRHOXlJRDBnSkhSb2FYTXVZWFIwY2lnbmFISmxaaWNwWEhKY2JpQWdJQ0FnSUhObGJHVmpkRzl5SUQwZ2MyVnNaV04wYjNJZ0ppWWdMeU5iUVMxYVlTMTZYUzh1ZEdWemRDaHpaV3hsWTNSdmNpa2dKaVlnYzJWc1pXTjBiM0l1Y21Wd2JHRmpaU2d2TGlvb1B6MGpXMTVjWEhOZEtpUXBMeXdnSnljcElDOHZJSE4wY21sd0lHWnZjaUJwWlRkY2NseHVJQ0FnSUgxY2NseHVYSEpjYmlBZ0lDQjJZWElnSkhCaGNtVnVkQ0E5SUhObGJHVmpkRzl5SUNZbUlDUW9jMlZzWldOMGIzSXBYSEpjYmx4eVhHNGdJQ0FnY21WMGRYSnVJQ1J3WVhKbGJuUWdKaVlnSkhCaGNtVnVkQzVzWlc1bmRHZ2dQeUFrY0dGeVpXNTBJRG9nSkhSb2FYTXVjR0Z5Wlc1MEtDbGNjbHh1SUNCOVhISmNibHh5WEc0Z0lHWjFibU4wYVc5dUlHTnNaV0Z5VFdWdWRYTW9aU2tnZTF4eVhHNGdJQ0FnYVdZZ0tHVWdKaVlnWlM1M2FHbGphQ0E5UFQwZ015a2djbVYwZFhKdVhISmNiaUFnSUNBa0tHSmhZMnRrY205d0tTNXlaVzF2ZG1Vb0tWeHlYRzRnSUNBZ0pDaDBiMmRuYkdVcExtVmhZMmdvWm5WdVkzUnBiMjRnS0NrZ2UxeHlYRzRnSUNBZ0lDQjJZWElnSkhSb2FYTWdJQ0FnSUNBZ0lDQTlJQ1FvZEdocGN5bGNjbHh1SUNBZ0lDQWdkbUZ5SUNSd1lYSmxiblFnSUNBZ0lDQWdQU0JuWlhSUVlYSmxiblFvSkhSb2FYTXBYSEpjYmlBZ0lDQWdJSFpoY2lCeVpXeGhkR1ZrVkdGeVoyVjBJRDBnZXlCeVpXeGhkR1ZrVkdGeVoyVjBPaUIwYUdseklIMWNjbHh1WEhKY2JpQWdJQ0FnSUdsbUlDZ2hKSEJoY21WdWRDNW9ZWE5EYkdGemN5Z25iM0JsYmljcEtTQnlaWFIxY201Y2NseHVYSEpjYmlBZ0lDQWdJR2xtSUNobElDWW1JR1V1ZEhsd1pTQTlQU0FuWTJ4cFkyc25JQ1ltSUM5cGJuQjFkSHgwWlhoMFlYSmxZUzlwTG5SbGMzUW9aUzUwWVhKblpYUXVkR0ZuVG1GdFpTa2dKaVlnSkM1amIyNTBZV2x1Y3lna2NHRnlaVzUwV3pCZExDQmxMblJoY21kbGRDa3BJSEpsZEhWeWJseHlYRzVjY2x4dUlDQWdJQ0FnSkhCaGNtVnVkQzUwY21sbloyVnlLR1VnUFNBa0xrVjJaVzUwS0Nkb2FXUmxMbmR3WW1NdVpISnZjR1J2ZDI0bkxDQnlaV3hoZEdWa1ZHRnlaMlYwS1NsY2NseHVYSEpjYmlBZ0lDQWdJR2xtSUNobExtbHpSR1ZtWVhWc2RGQnlaWFpsYm5SbFpDZ3BLU0J5WlhSMWNtNWNjbHh1WEhKY2JpQWdJQ0FnSUNSMGFHbHpMbUYwZEhJb0oyRnlhV0V0Wlhod1lXNWtaV1FuTENBblptRnNjMlVuS1Z4eVhHNGdJQ0FnSUNBa2NHRnlaVzUwTG5KbGJXOTJaVU5zWVhOektDZHZjR1Z1SnlrdWRISnBaMmRsY2lnbmFHbGtaR1Z1TG5kd1ltTXVaSEp2Y0dSdmQyNG5MQ0J5Wld4aGRHVmtWR0Z5WjJWMEtWeHlYRzRnSUNBZ2ZTbGNjbHh1SUNCOVhISmNibHh5WEc0Z0lFUnliM0JrYjNkdUxuQnliM1J2ZEhsd1pTNTBiMmRuYkdVZ1BTQm1kVzVqZEdsdmJpQW9aU2tnZTF4eVhHNGdJQ0FnZG1GeUlDUjBhR2x6SUQwZ0pDaDBhR2x6S1Z4eVhHNWNjbHh1SUNBZ0lHbG1JQ2drZEdocGN5NXBjeWduTG1ScGMyRmliR1ZrTENBNlpHbHpZV0pzWldRbktTa2djbVYwZFhKdVhISmNibHh5WEc0Z0lDQWdkbUZ5SUNSd1lYSmxiblFnSUQwZ1oyVjBVR0Z5Wlc1MEtDUjBhR2x6S1Z4eVhHNGdJQ0FnZG1GeUlHbHpRV04wYVhabElEMGdKSEJoY21WdWRDNW9ZWE5EYkdGemN5Z25iM0JsYmljcFhISmNibHh5WEc0Z0lDQWdZMnhsWVhKTlpXNTFjeWdwWEhKY2JseHlYRzRnSUNBZ2FXWWdLQ0ZwYzBGamRHbDJaU2tnZTF4eVhHNGdJQ0FnSUNCcFppQW9KMjl1ZEc5MVkyaHpkR0Z5ZENjZ2FXNGdaRzlqZFcxbGJuUXVaRzlqZFcxbGJuUkZiR1Z0Wlc1MElDWW1JQ0VrY0dGeVpXNTBMbU5zYjNObGMzUW9KeTV1WVhaaVlYSXRibUYySnlrdWJHVnVaM1JvS1NCN1hISmNiaUFnSUNBZ0lDQWdMeThnYVdZZ2JXOWlhV3hsSUhkbElIVnpaU0JoSUdKaFkydGtjbTl3SUdKbFkyRjFjMlVnWTJ4cFkyc2daWFpsYm5SeklHUnZiaWQwSUdSbGJHVm5ZWFJsWEhKY2JpQWdJQ0FnSUNBZ0pDaGtiMk4xYldWdWRDNWpjbVZoZEdWRmJHVnRaVzUwS0Nka2FYWW5LU2xjY2x4dUlDQWdJQ0FnSUNBZ0lDNWhaR1JEYkdGemN5Z25aSEp2Y0dSdmQyNHRZbUZqYTJSeWIzQW5LVnh5WEc0Z0lDQWdJQ0FnSUNBZ0xtbHVjMlZ5ZEVGbWRHVnlLQ1FvZEdocGN5a3BYSEpjYmlBZ0lDQWdJQ0FnSUNBdWIyNG9KMk5zYVdOckp5d2dZMnhsWVhKTlpXNTFjeWxjY2x4dUlDQWdJQ0FnZlZ4eVhHNWNjbHh1SUNBZ0lDQWdkbUZ5SUhKbGJHRjBaV1JVWVhKblpYUWdQU0I3SUhKbGJHRjBaV1JVWVhKblpYUTZJSFJvYVhNZ2ZWeHlYRzRnSUNBZ0lDQWtjR0Z5Wlc1MExuUnlhV2RuWlhJb1pTQTlJQ1F1UlhabGJuUW9KM05vYjNjdWQzQmlZeTVrY205d1pHOTNiaWNzSUhKbGJHRjBaV1JVWVhKblpYUXBLVnh5WEc1Y2NseHVJQ0FnSUNBZ2FXWWdLR1V1YVhORVpXWmhkV3gwVUhKbGRtVnVkR1ZrS0NrcElISmxkSFZ5Ymx4eVhHNWNjbHh1SUNBZ0lDQWdKSFJvYVhOY2NseHVJQ0FnSUNBZ0lDQXVkSEpwWjJkbGNpZ25abTlqZFhNbktWeHlYRzRnSUNBZ0lDQWdJQzVoZEhSeUtDZGhjbWxoTFdWNGNHRnVaR1ZrSnl3Z0ozUnlkV1VuS1Z4eVhHNWNjbHh1SUNBZ0lDQWdKSEJoY21WdWRGeHlYRzRnSUNBZ0lDQWdJQzUwYjJkbmJHVkRiR0Z6Y3lnbmIzQmxiaWNwWEhKY2JpQWdJQ0FnSUNBZ0xuUnlhV2RuWlhJb0ozTm9iM2R1TG5kd1ltTXVaSEp2Y0dSdmQyNG5MQ0J5Wld4aGRHVmtWR0Z5WjJWMEtWeHlYRzRnSUNBZ2ZWeHlYRzVjY2x4dUlDQWdJSEpsZEhWeWJpQm1ZV3h6WlZ4eVhHNGdJSDFjY2x4dVhISmNiaUFnUkhKdmNHUnZkMjR1Y0hKdmRHOTBlWEJsTG10bGVXUnZkMjRnUFNCbWRXNWpkR2x2YmlBb1pTa2dlMXh5WEc0Z0lDQWdhV1lnS0NFdktETTRmRFF3ZkRJM2ZETXlLUzh1ZEdWemRDaGxMbmRvYVdOb0tTQjhmQ0F2YVc1d2RYUjhkR1Y0ZEdGeVpXRXZhUzUwWlhOMEtHVXVkR0Z5WjJWMExuUmhaMDVoYldVcEtTQnlaWFIxY201Y2NseHVYSEpjYmlBZ0lDQjJZWElnSkhSb2FYTWdQU0FrS0hSb2FYTXBYSEpjYmx4eVhHNGdJQ0FnWlM1d2NtVjJaVzUwUkdWbVlYVnNkQ2dwWEhKY2JpQWdJQ0JsTG5OMGIzQlFjbTl3WVdkaGRHbHZiaWdwWEhKY2JseHlYRzRnSUNBZ2FXWWdLQ1IwYUdsekxtbHpLQ2N1WkdsellXSnNaV1FzSURwa2FYTmhZbXhsWkNjcEtTQnlaWFIxY201Y2NseHVYSEpjYmlBZ0lDQjJZWElnSkhCaGNtVnVkQ0FnUFNCblpYUlFZWEpsYm5Rb0pIUm9hWE1wWEhKY2JpQWdJQ0IyWVhJZ2FYTkJZM1JwZG1VZ1BTQWtjR0Z5Wlc1MExtaGhjME5zWVhOektDZHZjR1Z1SnlsY2NseHVYSEpjYmlBZ0lDQnBaaUFvSVdselFXTjBhWFpsSUNZbUlHVXVkMmhwWTJnZ0lUMGdNamNnZkh3Z2FYTkJZM1JwZG1VZ0ppWWdaUzUzYUdsamFDQTlQU0F5TnlrZ2UxeHlYRzRnSUNBZ0lDQnBaaUFvWlM1M2FHbGphQ0E5UFNBeU55a2dKSEJoY21WdWRDNW1hVzVrS0hSdloyZHNaU2t1ZEhKcFoyZGxjaWduWm05amRYTW5LVnh5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdKSFJvYVhNdWRISnBaMmRsY2lnblkyeHBZMnNuS1Z4eVhHNGdJQ0FnZlZ4eVhHNWNjbHh1SUNBZ0lIWmhjaUJrWlhOaklEMGdKeUJzYVRwdWIzUW9MbVJwYzJGaWJHVmtLVHAyYVhOcFlteGxJR0VuWEhKY2JpQWdJQ0IyWVhJZ0pHbDBaVzF6SUQwZ0pIQmhjbVZ1ZEM1bWFXNWtLQ2N1WkhKdmNHUnZkMjR0YldWdWRTY2dLeUJrWlhOaklDc2dKeXd1ZFdsZlpISnZjR1J2ZDI1ZmJXVnVkU2NnS3lCa1pYTmpLVnh5WEc1Y2NseHVJQ0FnSUdsbUlDZ2hKR2wwWlcxekxteGxibWQwYUNrZ2NtVjBkWEp1WEhKY2JseHlYRzRnSUNBZ2RtRnlJR2x1WkdWNElEMGdKR2wwWlcxekxtbHVaR1Y0S0dVdWRHRnlaMlYwS1Z4eVhHNWNjbHh1SUNBZ0lHbG1JQ2hsTG5kb2FXTm9JRDA5SURNNElDWW1JR2x1WkdWNElENGdNQ2tnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2x1WkdWNExTMGdJQ0FnSUNBZ0lDQXZMeUIxY0Z4eVhHNGdJQ0FnYVdZZ0tHVXVkMmhwWTJnZ1BUMGdOREFnSmlZZ2FXNWtaWGdnUENBa2FYUmxiWE11YkdWdVozUm9JQzBnTVNrZ2FXNWtaWGdyS3lBZ0lDQWdJQ0FnSUM4dklHUnZkMjVjY2x4dUlDQWdJR2xtSUNnaGZtbHVaR1Y0S1NBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdsdVpHVjRJRDBnTUZ4eVhHNWNjbHh1SUNBZ0lDUnBkR1Z0Y3k1bGNTaHBibVJsZUNrdWRISnBaMmRsY2lnblptOWpkWE1uS1Z4eVhHNGdJSDFjY2x4dVhISmNibHh5WEc0Z0lDOHZJRVJTVDFCRVQxZE9JRkJNVlVkSlRpQkVSVVpKVGtsVVNVOU9YSEpjYmlBZ0x5OGdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNjbHh1WEhKY2JpQWdablZ1WTNScGIyNGdVR3gxWjJsdUtHOXdkR2x2YmlrZ2UxeHlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaV0ZqYUNobWRXNWpkR2x2YmlBb0tTQjdYSEpjYmlBZ0lDQWdJSFpoY2lBa2RHaHBjeUE5SUNRb2RHaHBjeWxjY2x4dUlDQWdJQ0FnZG1GeUlHUmhkR0VnSUQwZ0pIUm9hWE11WkdGMFlTZ25kM0JpWXk1a2NtOXdaRzkzYmljcFhISmNibHh5WEc0Z0lDQWdJQ0JwWmlBb0lXUmhkR0VwSUNSMGFHbHpMbVJoZEdFb0ozZHdZbU11WkhKdmNHUnZkMjRuTENBb1pHRjBZU0E5SUc1bGR5QkVjbTl3Wkc5M2JpaDBhR2x6S1NrcFhISmNiaUFnSUNBZ0lHbG1JQ2gwZVhCbGIyWWdiM0IwYVc5dUlEMDlJQ2R6ZEhKcGJtY25LU0JrWVhSaFcyOXdkR2x2YmwwdVkyRnNiQ2drZEdocGN5bGNjbHh1SUNBZ0lIMHBYSEpjYmlBZ2ZWeHlYRzVjY2x4dUlDQjJZWElnYjJ4a0lEMGdKQzVtYmk1M2NHSmpYMlJ5YjNCa2IzZHVYSEpjYmx4eVhHNGdJQ1F1Wm00dWQzQmlZMTlrY205d1pHOTNiaUFnSUNBZ0lDQWdJQ0FnSUNBOUlGQnNkV2RwYmx4eVhHNGdJQ1F1Wm00dWQzQmlZMTlrY205d1pHOTNiaTVEYjI1emRISjFZM1J2Y2lBOUlFUnliM0JrYjNkdVhISmNibHh5WEc1Y2NseHVJQ0F2THlCRVVrOVFSRTlYVGlCT1R5QkRUMDVHVEVsRFZGeHlYRzRnSUM4dklEMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlYSEpjYmx4eVhHNGdJQ1F1Wm00dWQzQmlZMTlrY205d1pHOTNiaTV1YjBOdmJtWnNhV04wSUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh5WEc0Z0lDQWdKQzVtYmk1M2NHSmpYMlJ5YjNCa2IzZHVJRDBnYjJ4a1hISmNiaUFnSUNCeVpYUjFjbTRnZEdocGMxeHlYRzRnSUgxY2NseHVYSEpjYmx4eVhHNGdJQzh2SUVGUVVFeFpJRlJQSUZOVVFVNUVRVkpFSUVSU1QxQkVUMWRPSUVWTVJVMUZUbFJUWEhKY2JpQWdMeThnUFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjY2x4dVhISmNiaUFnSkNoa2IyTjFiV1Z1ZENsY2NseHVJQ0FnSUM1dmJpZ25ZMnhwWTJzdWQzQmlZeTVrY205d1pHOTNiaTVrWVhSaExXRndhU2NzSUdOc1pXRnlUV1Z1ZFhNcFhISmNiaUFnSUNBdWIyNG9KMk5zYVdOckxuZHdZbU11WkhKdmNHUnZkMjR1WkdGMFlTMWhjR2tuTENBbkxtUnliM0JrYjNkdUlHWnZjbTBuTENCbWRXNWpkR2x2YmlBb1pTa2dleUJsTG5OMGIzQlFjbTl3WVdkaGRHbHZiaWdwSUgwcFhISmNiaUFnSUNBdWIyNG9KMk5zYVdOckxuZHdZbU11WkhKdmNHUnZkMjR1WkdGMFlTMWhjR2tuTENCMGIyZG5iR1VzSUVSeWIzQmtiM2R1TG5CeWIzUnZkSGx3WlM1MGIyZG5iR1VwWEhKY2JpQWdJQ0F1YjI0b0oydGxlV1J2ZDI0dWQzQmlZeTVrY205d1pHOTNiaTVrWVhSaExXRndhU2NzSUhSdloyZHNaU3dnUkhKdmNHUnZkMjR1Y0hKdmRHOTBlWEJsTG10bGVXUnZkMjRwWEhKY2JpQWdJQ0F1YjI0b0oydGxlV1J2ZDI0dWQzQmlZeTVrY205d1pHOTNiaTVrWVhSaExXRndhU2NzSUNjdVpISnZjR1J2ZDI0dGJXVnVkU2NzSUVSeWIzQmtiM2R1TG5CeWIzUnZkSGx3WlM1clpYbGtiM2R1S1Z4eVhHNGdJQ0FnTG05dUtDZHJaWGxrYjNkdUxuZHdZbU11WkhKdmNHUnZkMjR1WkdGMFlTMWhjR2tuTENBbkxuVnBYMlJ5YjNCa2IzZHVYMjFsYm5VbkxDQkVjbTl3Wkc5M2JpNXdjbTkwYjNSNWNHVXVhMlY1Wkc5M2JpbGNjbHh1WEhKY2JuMG9hbEYxWlhKNUtUdGNjbHh1SWwwc0ltWnBiR1VpT2lKaGMzTmxkSE12YkdsaWN5OTFhUzlmYjNWMEwyUnliM0JrYjNkdVgyMXZaR0ZzTG1wekluMD1cbiJdLCJuYW1lcyI6WyJfdHlwZW9mIiwib2JqIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsImpRdWVyeSIsIkVycm9yIiwidmVyc2lvbiIsImZuIiwianF1ZXJ5Iiwic3BsaXQiLCIkIiwiTW9kYWwiLCJlbGVtZW50Iiwib3B0aW9ucyIsInRoaXMiLCIkYm9keSIsImRvY3VtZW50IiwiYm9keSIsIiRlbGVtZW50IiwiJGRpYWxvZyIsImZpbmQiLCIkYmFja2Ryb3AiLCJpc1Nob3duIiwib3JpZ2luYWxCb2R5UGFkIiwic2Nyb2xsYmFyV2lkdGgiLCJpZ25vcmVCYWNrZHJvcENsaWNrIiwicmVtb3RlIiwibG9hZCIsInByb3h5IiwidHJpZ2dlciIsIlBsdWdpbiIsIm9wdGlvbiIsIl9yZWxhdGVkVGFyZ2V0IiwiZWFjaCIsIiR0aGlzIiwiZGF0YSIsImV4dGVuZCIsIkRFRkFVTFRTIiwic2hvdyIsIlZFUlNJT04iLCJUUkFOU0lUSU9OX0RVUkFUSU9OIiwiQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTiIsImJhY2tkcm9wIiwia2V5Ym9hcmQiLCJ0b2dnbGUiLCJoaWRlIiwidGhhdCIsImUiLCJFdmVudCIsInJlbGF0ZWRUYXJnZXQiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJjaGVja1Njcm9sbGJhciIsInNldFNjcm9sbGJhciIsImFkZENsYXNzIiwiZXNjYXBlIiwicmVzaXplIiwib24iLCJvbmUiLCJ0YXJnZXQiLCJpcyIsInRyYW5zaXRpb24iLCJzdXBwb3J0IiwiaGFzQ2xhc3MiLCJwYXJlbnQiLCJsZW5ndGgiLCJhcHBlbmRUbyIsInNjcm9sbFRvcCIsImFkanVzdERpYWxvZyIsIm9mZnNldFdpZHRoIiwiZW5mb3JjZUZvY3VzIiwiZW11bGF0ZVRyYW5zaXRpb25FbmQiLCJwcmV2ZW50RGVmYXVsdCIsIm9mZiIsInJlbW92ZUNsYXNzIiwiaGlkZU1vZGFsIiwiaGFzIiwid2hpY2giLCJ3aW5kb3ciLCJoYW5kbGVVcGRhdGUiLCJyZXNldEFkanVzdG1lbnRzIiwicmVzZXRTY3JvbGxiYXIiLCJyZW1vdmVCYWNrZHJvcCIsInJlbW92ZSIsImNhbGxiYWNrIiwiY2FsbGJhY2tSZW1vdmUiLCJhbmltYXRlIiwiZG9BbmltYXRlIiwiY3JlYXRlRWxlbWVudCIsImN1cnJlbnRUYXJnZXQiLCJmb2N1cyIsIm1vZGFsSXNPdmVyZmxvd2luZyIsInNjcm9sbEhlaWdodCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudEhlaWdodCIsImNzcyIsInBhZGRpbmdMZWZ0IiwiYm9keUlzT3ZlcmZsb3dpbmciLCJwYWRkaW5nUmlnaHQiLCJkb2N1bWVudEVsZW1lbnRSZWN0IiwiZnVsbFdpbmRvd1dpZHRoIiwiaW5uZXJXaWR0aCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsInJpZ2h0IiwiTWF0aCIsImFicyIsImxlZnQiLCJjbGllbnRXaWR0aCIsIm1lYXN1cmVTY3JvbGxiYXIiLCJib2R5UGFkIiwicGFyc2VJbnQiLCJzdHlsZSIsInNjcm9sbERpdiIsImNsYXNzTmFtZSIsImFwcGVuZCIsInJlbW92ZUNoaWxkIiwib2xkIiwid3BiY19teV9tb2RhbCIsIkNvbnN0cnVjdG9yIiwibm9Db25mbGljdCIsImhyZWYiLCJhdHRyIiwiJHRhcmdldCIsInJlcGxhY2UiLCJ0ZXN0Iiwic2hvd0V2ZW50IiwiY2FsbCIsIkRyb3Bkb3duIiwiZ2V0UGFyZW50Iiwic2VsZWN0b3IiLCIkcGFyZW50IiwiY2xlYXJNZW51cyIsInR5cGUiLCJ0YWdOYW1lIiwiY29udGFpbnMiLCJpc0FjdGl2ZSIsImNsb3Nlc3QiLCJpbnNlcnRBZnRlciIsInRvZ2dsZUNsYXNzIiwia2V5ZG93biIsInN0b3BQcm9wYWdhdGlvbiIsImRlc2MiLCIkaXRlbXMiLCJpbmRleCIsImVxIiwid3BiY19kcm9wZG93biJdLCJtYXBwaW5ncyI6ImFBRUEsU0FBU0EsUUFBUUMsR0FBa0MsT0FBT0QsUUFBVSxtQkFBcUJFLFFBQVUsaUJBQW1CQSxPQUFPQyxTQUFXLFNBQVVGLEdBQU8sY0FBY0EsR0FBUyxTQUFVQSxHQUFPLE9BQU9BLEdBQU8sbUJBQXFCQyxRQUFVRCxFQUFJRyxj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
assets/libs/ui/_src/dropdown_modal.js CHANGED
@@ -455,7 +455,7 @@ if (typeof jQuery === 'undefined') {
455
  }
456
 
457
  var desc = ' li:not(.disabled):visible a'
458
- var $items = $parent.find('.dropdown-menu' + desc)
459
 
460
  if (!$items.length) return
461
 
@@ -506,5 +506,6 @@ if (typeof jQuery === 'undefined') {
506
  .on('click.wpbc.dropdown.data-api', toggle, Dropdown.prototype.toggle)
507
  .on('keydown.wpbc.dropdown.data-api', toggle, Dropdown.prototype.keydown)
508
  .on('keydown.wpbc.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
 
509
 
510
  }(jQuery);
455
  }
456
 
457
  var desc = ' li:not(.disabled):visible a'
458
+ var $items = $parent.find('.dropdown-menu' + desc + ',.ui_dropdown_menu' + desc)
459
 
460
  if (!$items.length) return
461
 
506
  .on('click.wpbc.dropdown.data-api', toggle, Dropdown.prototype.toggle)
507
  .on('keydown.wpbc.dropdown.data-api', toggle, Dropdown.prototype.keydown)
508
  .on('keydown.wpbc.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
509
+ .on('keydown.wpbc.dropdown.data-api', '.ui_dropdown_menu', Dropdown.prototype.keydown)
510
 
511
  }(jQuery);
assets/libs/wpbc_js_print/wpbc_js_print.js CHANGED
@@ -1,7 +1,8 @@
1
  /*
2
- * printThis v1.15.1
3
  * @desc Printing plug-in for jQuery
4
  * @author Jason Day
 
5
  *
6
  * Resources (based on):
7
  * - jPrintArea: http://plugins.jquery.com/project/jPrintArea
@@ -11,28 +12,29 @@
11
  * Licensed under the MIT licence:
12
  * http://www.opensource.org/licenses/mit-license.php
13
  *
14
- * (c) Jason Day 2015-2019
15
  *
16
  * Usage:
17
  *
18
  * $("#mySelector").wpbc_js_print({
19
  * debug: false, // show the iframe for debugging
20
  * importCSS: true, // import parent page css
21
- * importStyle: false, // import style tags
22
  * printContainer: true, // grab outer container as well as the contents of the selector
23
  * loadCSS: "path/to/my.css", // path to additional css file - use an array [] for multiple
24
  * pageTitle: "", // add title to print page
25
  * removeInline: false, // remove all inline styles from print elements
26
  * removeInlineSelector: "body *", // custom selectors to filter inline styles. removeInline must be true
27
- * printDelay: 333, // variable print delay
28
  * header: null, // prefix to html
29
  * footer: null, // postfix to html
30
  * base: false, // preserve the BASE tag, or accept a string for the URL
31
  * formValues: true, // preserve input/form values
32
- * canvas: false, // copy canvas elements
33
  * doctypeString: '...', // enter a different doctype for older markup
34
  * removeScripts: false, // remove script tags from print content
35
- * copyTagClasses: false // copy classes from the html & body tag
 
36
  * beforePrintEvent: null, // callback function for printEvent in iframe
37
  * beforePrint: null, // function called before iframe is filled
38
  * afterPrint: null // function called before iframe is removed
@@ -209,6 +211,18 @@
209
  }
210
  }
211
 
 
 
 
 
 
 
 
 
 
 
 
 
212
  // print header
213
  appendContent($body, opt.header);
214
 
@@ -311,25 +325,26 @@
311
 
312
  // defaults
313
  $.fn.wpbc_js_print.defaults = {
314
- debug: false, // show the iframe for debugging
315
- importCSS: true, // import parent page css
316
- importStyle: false, // import style tags
317
- printContainer: true, // print outer container/$.selector
318
- loadCSS: "", // path to additional css file - use an array [] for multiple
319
- pageTitle: "", // add title to print page
320
- removeInline: false, // remove inline styles from print elements
321
- removeInlineSelector: "*", // custom selectors to filter inline styles. removeInline must be true
322
- printDelay: 333, // variable print delay
323
- header: null, // prefix to html
324
- footer: null, // postfix to html
325
- base: false, // preserve the BASE tag or accept a string for the URL
326
- formValues: true, // preserve input/form values
327
- canvas: false, // copy canvas content
328
- doctypeString: '<!DOCTYPE html>', // enter a different doctype for older markup
329
- removeScripts: false, // remove script tags from print content
330
- copyTagClasses: false, // copy classes from the html & body tag
331
- beforePrintEvent: null, // callback function for printEvent in iframe
332
- beforePrint: null, // function called before iframe is filled
333
- afterPrint: null // function called before iframe is removed
 
334
  };
335
  })(jQuery);
1
  /*
2
+ * wpbc_js_print v2.0.0
3
  * @desc Printing plug-in for jQuery
4
  * @author Jason Day
5
+ * @author Samuel Rouse
6
  *
7
  * Resources (based on):
8
  * - jPrintArea: http://plugins.jquery.com/project/jPrintArea
12
  * Licensed under the MIT licence:
13
  * http://www.opensource.org/licenses/mit-license.php
14
  *
15
+ * (c) Jason Day 2015-2022
16
  *
17
  * Usage:
18
  *
19
  * $("#mySelector").wpbc_js_print({
20
  * debug: false, // show the iframe for debugging
21
  * importCSS: true, // import parent page css
22
+ * importStyle: true, // import style tags
23
  * printContainer: true, // grab outer container as well as the contents of the selector
24
  * loadCSS: "path/to/my.css", // path to additional css file - use an array [] for multiple
25
  * pageTitle: "", // add title to print page
26
  * removeInline: false, // remove all inline styles from print elements
27
  * removeInlineSelector: "body *", // custom selectors to filter inline styles. removeInline must be true
28
+ * printDelay: 1000, // variable print delay
29
  * header: null, // prefix to html
30
  * footer: null, // postfix to html
31
  * base: false, // preserve the BASE tag, or accept a string for the URL
32
  * formValues: true, // preserve input/form values
33
+ * canvas: true, // copy canvas elements
34
  * doctypeString: '...', // enter a different doctype for older markup
35
  * removeScripts: false, // remove script tags from print content
36
+ * copyTagClasses: true // copy classes from the html & body tag
37
+ * copyTagStyles: true, // copy styles from html & body tag (for CSS Variables)
38
  * beforePrintEvent: null, // callback function for printEvent in iframe
39
  * beforePrint: null, // function called before iframe is filled
40
  * afterPrint: null // function called before iframe is removed
211
  }
212
  }
213
 
214
+ // copy ':root' tag classes
215
+ tag = opt.copyTagStyles;
216
+ if (tag) {
217
+ tag = tag === true ? 'bh' : tag;
218
+ if (tag.indexOf('b') !== -1) {
219
+ $body.attr('style', $('body')[0].style.cssText);
220
+ }
221
+ if (tag.indexOf('h') !== -1) {
222
+ $doc.find('html').attr('style', pageHtml.style.cssText);
223
+ }
224
+ }
225
+
226
  // print header
227
  appendContent($body, opt.header);
228
 
325
 
326
  // defaults
327
  $.fn.wpbc_js_print.defaults = {
328
+ debug: false, // show the iframe for debugging
329
+ importCSS: true, // import parent page css
330
+ importStyle: true, // import style tags
331
+ printContainer: true, // print outer container/$.selector
332
+ loadCSS: "", // path to additional css file - use an array [] for multiple
333
+ pageTitle: "", // add title to print page
334
+ removeInline: false, // remove inline styles from print elements
335
+ removeInlineSelector: "*", // custom selectors to filter inline styles. removeInline must be true
336
+ printDelay: 1000, // variable print delay
337
+ header: null, // prefix to html
338
+ footer: null, // postfix to html
339
+ base: false, // preserve the BASE tag or accept a string for the URL
340
+ formValues: true, // preserve input/form values
341
+ canvas: true, // copy canvas content
342
+ doctypeString: '<!DOCTYPE html>', // enter a different doctype for older markup
343
+ removeScripts: false, // remove script tags from print content
344
+ copyTagClasses: true, // copy classes from the html & body tag
345
+ copyTagStyles: true, // copy styles from html & body tag (for CSS Variables)
346
+ beforePrintEvent: null, // callback function for printEvent in iframe
347
+ beforePrint: null, // function called before iframe is filled
348
+ afterPrint: null // function called before iframe is removed
349
  };
350
  })(jQuery);
core/admin/api-settings.php CHANGED
@@ -56,10 +56,10 @@ class WPBC_Settings_API_General extends WPBC_Settings_API {
56
  $upload_dir = wp_upload_dir();
57
  //FixIn: 8.9.4.8
58
  $files_in_folder = wpbc_dir_list( array( WPBC_PLUGIN_DIR . '/css/skins/', $upload_dir['basedir'].'/wpbc_skins/' ) ); // Folders where to look about calendar skins
59
-
60
  foreach ( $files_in_folder as $skin_file ) { // Example: $skin_file['/css/skins/standard.css'] => 'Standard';
61
- //FixIn: 8.9.4.8
62
- $skin_file[1] = str_replace( array( WPBC_PLUGIN_URL, WPBC_PLUGIN_DIR, $upload_dir['basedir'] ), '', $skin_file[1] ); // Get relative path for calendar skin
 
63
  $calendar_skins_options[ $skin_file[1] ] = $skin_file[2];
64
  }
65
 
@@ -183,8 +183,8 @@ class WPBC_Settings_API_General extends WPBC_Settings_API {
183
  $files_in_folder = wpbc_dir_list( array( WPBC_PLUGIN_DIR . '/css/time_picker_skins/', $upload_dir['basedir'].'/wpbc_time_picker_skins/' ) ); // Folders where to look about Time Picker skins
184
 
185
  foreach ( $files_in_folder as $skin_file ) { // Example: $skin_file['/css/skins/standard.css'] => 'Standard';
186
- //FixIn: 8.9.4.8
187
- $skin_file[1] = str_replace( array( WPBC_PLUGIN_URL, WPBC_PLUGIN_DIR, $upload_dir['basedir'] ), '', $skin_file[1] ); // Get relative path for Time Picker skin
188
  $timeslot_picker_skins_options[ $skin_file[1] ] = $skin_file[2];
189
  }
190
 
56
  $upload_dir = wp_upload_dir();
57
  //FixIn: 8.9.4.8
58
  $files_in_folder = wpbc_dir_list( array( WPBC_PLUGIN_DIR . '/css/skins/', $upload_dir['basedir'].'/wpbc_skins/' ) ); // Folders where to look about calendar skins
 
59
  foreach ( $files_in_folder as $skin_file ) { // Example: $skin_file['/css/skins/standard.css'] => 'Standard';
60
+
61
+ //FixIn: 8.9.4.8 //FixIn: 9.1.2.10
62
+ $skin_file[1] = str_replace( array( WPBC_PLUGIN_DIR, WPBC_PLUGIN_URL , $upload_dir['basedir'] ), '', $skin_file[1] ); // Get relative path for calendar skin
63
  $calendar_skins_options[ $skin_file[1] ] = $skin_file[2];
64
  }
65
 
183
  $files_in_folder = wpbc_dir_list( array( WPBC_PLUGIN_DIR . '/css/time_picker_skins/', $upload_dir['basedir'].'/wpbc_time_picker_skins/' ) ); // Folders where to look about Time Picker skins
184
 
185
  foreach ( $files_in_folder as $skin_file ) { // Example: $skin_file['/css/skins/standard.css'] => 'Standard';
186
+ //FixIn: 8.9.4.8 //FixIn: 9.1.2.10
187
+ $skin_file[1] = str_replace( array( WPBC_PLUGIN_DIR, WPBC_PLUGIN_URL, $upload_dir['basedir'] ), '', $skin_file[1] ); // Get relative path for Time Picker skin
188
  $timeslot_picker_skins_options[ $skin_file[1] ] = $skin_file[2];
189
  }
190
 
core/admin/page-bookings.php CHANGED
@@ -145,7 +145,12 @@ function wpbc_define_listing_page_parameters( $page_tag ) {
145
  // Execute it only for Booking Listing & Timeline admin pages.
146
  //if ( ( isset( $_GET[ 'page' ] ) ) && ( $_GET[ 'page' ] == 'wpbc' ) ) {
147
 
148
- if ( wpbc_is_bookings_page() ) { // We are inside of this page. Menu item selected.
 
 
 
 
 
149
  // Get saved filters set, (if its not set in request yet), like "tab" & "view_mode" and overload $_REQUEST
150
  wpbc_set_default_saved_params_to_request_for_booking_listing( 'default' );
151
  }
145
  // Execute it only for Booking Listing & Timeline admin pages.
146
  //if ( ( isset( $_GET[ 'page' ] ) ) && ( $_GET[ 'page' ] == 'wpbc' ) ) {
147
 
148
+ if ( wpbc_is_bookings_page() ) { // We are inside of this page. Menu item selected.
149
+
150
+ if ( ( isset( $_REQUEST['view_mode'] ) ) && ( 'vm_booking_listing' === $_REQUEST['view_mode'] ) ) { //FixIn: 9.2.0
151
+ return;
152
+ }
153
+
154
  // Get saved filters set, (if its not set in request yet), like "tab" & "view_mode" and overload $_REQUEST
155
  wpbc_set_default_saved_params_to_request_for_booking_listing( 'default' );
156
  }
core/admin/page-email-new-visitor.php CHANGED
@@ -704,7 +704,7 @@ class WPBC_Settings_Page_Email_NewVisitor extends WPBC_Page_Structure {
704
  onclick="javascript: jQuery('#form_action').val('test_send'); jQuery('form#<?php echo $submit_form_name_action; ?>').trigger( 'submit' );"
705
  ><?php _e('Send Test Email', 'booking'); ?></a><?php
706
 
707
- ?><input type="submit" value="<?php _e('Save Changes', 'booking'); ?>" class="button button-primary right" style="margin:0 0 5px 5px;" /><?php
708
 
709
  /* ?>
710
  <a class="button button-secondary" href="javascript:void(0)" ><?php _e('Preview Email', 'booking'); ?></a>
@@ -740,7 +740,7 @@ class WPBC_Settings_Page_Email_NewVisitor extends WPBC_Page_Structure {
740
  <div class="clear"></div>
741
  </div>
742
 
743
- <input type="submit" value="<?php _e('Save Changes', 'booking'); ?>" class="button button-primary" />
744
  </form>
745
  </span>
746
  <?php
704
  onclick="javascript: jQuery('#form_action').val('test_send'); jQuery('form#<?php echo $submit_form_name_action; ?>').trigger( 'submit' );"
705
  ><?php _e('Send Test Email', 'booking'); ?></a><?php
706
 
707
+ ?><input type="submit" value="<?php esc_attr_e('Save Changes', 'booking'); ?>" class="button button-primary right" style="margin:0 0 5px 5px;" /><?php
708
 
709
  /* ?>
710
  <a class="button button-secondary" href="javascript:void(0)" ><?php _e('Preview Email', 'booking'); ?></a>
740
  <div class="clear"></div>
741
  </div>
742
 
743
+ <input type="submit" value="<?php esc_attr_e('Save Changes', 'booking'); ?>" class="button button-primary" />
744
  </form>
745
  </span>
746
  <?php
core/admin/page-ics-general.php CHANGED
@@ -220,15 +220,23 @@ class WPBC_API_SettingsGeneralSync extends WPBC_Settings_API {
220
  , 'description' => ''
221
  , 'group' => 'import_advanced'
222
  );
223
- //FixIn: 8.4.7.12
224
  $this->fields['booking_ics_force_trash_before_import'] = array(
225
- 'type' => 'checkbox'
226
- , 'default' => 'Off'
227
- , 'title' => __('Trash all imported bookings before new import', 'booking') //. ' ' . '[Experimental Feature]'
228
- , 'label' => __('Move all previously imported bookings to trash before new import bookings. Its can resolve issue of updating deleted and edited events in external sources. Its work only, if you are using one source (.ics feed) for importing into specific booking resource!' ,'booking')
229
- , 'description' => ''
 
 
 
 
 
 
230
  , 'group' => 'import_advanced'
231
- );
 
 
232
  ////////////////////////////////////////////////////////////////////////
233
 
234
  }
220
  , 'description' => ''
221
  , 'group' => 'import_advanced'
222
  );
223
+ //FixIn: 8.4.7.12 //FixIn: //FixIn: 9.1.2.6
224
  $this->fields['booking_ics_force_trash_before_import'] = array(
225
+ 'type' => 'select'
226
+ , 'default' => 'Off'
227
+ , 'title' => __('Trash / delete all imported bookings before new import', 'booking')
228
+ , 'description' => __('Move all previously imported bookings to trash or permanently delete before new import bookings. Its can resolve issue of updating deleted and edited events in external sources. Its work only, if you are using one source (.ics feed) for importing into specific booking resource!' ,'booking')
229
+ , 'description_tag' => 'p'
230
+ , 'css' => ''
231
+ , 'options' => array (
232
+ 'Off' => __('Do nothing'),
233
+ 'On' => __('Trash imported bookings'),
234
+ 'delete' => __('Permanently delete'),
235
+ )
236
  , 'group' => 'import_advanced'
237
+ );
238
+
239
+
240
  ////////////////////////////////////////////////////////////////////////
241
 
242
  }
core/admin/wpbc-class-listing.php CHANGED
@@ -130,13 +130,13 @@ class WPBC_Booking_Listing_Table {
130
  <div class="wpbc-listing-collumn col-sm-3 hide-sm text-center wpbc_column_5"><?php _e('Booking Dates', 'booking'); ?>&nbsp;&nbsp;&nbsp;
131
  <a id="booking_dates_full"
132
  onclick="javascript:jQuery('#booking_dates_full,.booking_dates_small').hide();jQuery('#booking_dates_small,.booking_dates_full').show();" href="javascript:void(0)"
133
- title="<?php _e('Show ALL dates of booking' ,'booking'); ?>"
134
  style="<?php echo $this->days_column_style['short']; ?>"
135
  class="tooltip_top"
136
  ><i class="wpbc_icn_swap_horiz" style=" margin-top: 2px;"></i></a>
137
  <a id="booking_dates_small"
138
  onclick="javascript:jQuery('#booking_dates_small,.booking_dates_full').hide();jQuery('#booking_dates_full,.booking_dates_small').show();" href="javascript:void(0)"
139
- title="<?php _e('Show only check in/out dates' ,'booking'); ?>"
140
  style="<?php echo $this->days_column_style['wide']; ?>"
141
  class="tooltip_top"
142
  ><i class="wpbc_icn_compare_arrows" style=" margin-top: 2px;"></i></a>
@@ -299,7 +299,7 @@ class WPBC_Booking_Listing_Table {
299
  <a href="javascript:void(0)"
300
  onclick="javascript:mark_read_booking( '<?php echo $row_data[ 'id' ]; ?>', 0, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' );"
301
  class="tooltip_right approve_bk_link"
302
- title="<?php _e('New booking' ,'booking'); ?>"
303
  ><i class="wpbc_icn_visibility"></i></a>
304
  </div><?php
305
 
@@ -395,19 +395,19 @@ class WPBC_Booking_Listing_Table {
395
  ?><a href="javascript:void(0)"
396
  onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to do this ?' ,'booking')); ?>') ) trash__restore_booking( 1, <?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
397
  class="tooltip_top button-secondary button trash_bk_link <?php if ( $row_data['is_trash'] ) echo ' hidden_items '; ?>"
398
- title="<?php _e('Reject - move to trash' ,'booking'); ?>"
399
  ><i class="wpbc_icn_delete_outline"></i></a><?php
400
  // Restore
401
  ?><a href="javascript:void(0)"
402
  onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to do this ?' ,'booking')); ?>') ) trash__restore_booking( 0, <?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
403
  class="tooltip_top button-secondary button restore_bk_link <?php if ( ! $row_data['is_trash'] ) echo ' hidden_items '; ?>"
404
- title="<?php _e('Restore' ,'booking'); ?>"
405
  ><i class="wpbc_icn_rotate_left"></i></a><?php
406
  // Delete
407
  ?><a href="javascript:void(0)"
408
  onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to delete this booking ?' ,'booking')); ?>') ) delete_booking(<?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
409
  class="tooltip_top button-secondary button delete_bk_link <?php if ( ! $row_data['is_trash'] ) echo ' hidden_items '; ?>"
410
- title="<?php _e('Completely Delete' ,'booking'); ?>"
411
  ><i class="wpbc_icn_close"></i></a><?php
412
  //End FixIn: 6.1.1.10
413
 
@@ -416,14 +416,14 @@ class WPBC_Booking_Listing_Table {
416
  ?><a href="javascript:void(0)"
417
  onclick="javascript:approve_unapprove_booking(<?php echo $row_data[ 'id' ]; ?>,1,<?php echo $this->user_id; ?>,'<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>',1);"
418
  class="tooltip_top approve_bk_link button-secondary button <?php if ($row_data['is_approved']) echo ' hidden_items '; ?> "
419
- title="<?php _e('Approve' ,'booking'); ?>"
420
  ><i class="wpbc_icn_check_circle_outline"></i></a><?php
421
 
422
  // Reject
423
  ?><a href="javascript:void(0)"
424
  onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to set booking as pending ?' ,'booking')); ?>') ) approve_unapprove_booking(<?php echo $row_data[ 'id' ]; ?>,0, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
425
  class="tooltip_top pending_bk_link button-secondary button <?php if (! $row_data['is_approved']) echo ' hidden_items '; ?> "
426
- title="<?php _e('Pending' ,'booking'); ?>"
427
  ><i class="wpbc_icn_block"></i></a><?php
428
 
429
  ?></div><?php
130
  <div class="wpbc-listing-collumn col-sm-3 hide-sm text-center wpbc_column_5"><?php _e('Booking Dates', 'booking'); ?>&nbsp;&nbsp;&nbsp;
131
  <a id="booking_dates_full"
132
  onclick="javascript:jQuery('#booking_dates_full,.booking_dates_small').hide();jQuery('#booking_dates_small,.booking_dates_full').show();" href="javascript:void(0)"
133
+ title="<?php esc_attr_e('Show ALL dates of booking' ,'booking'); ?>"
134
  style="<?php echo $this->days_column_style['short']; ?>"
135
  class="tooltip_top"
136
  ><i class="wpbc_icn_swap_horiz" style=" margin-top: 2px;"></i></a>
137
  <a id="booking_dates_small"
138
  onclick="javascript:jQuery('#booking_dates_small,.booking_dates_full').hide();jQuery('#booking_dates_full,.booking_dates_small').show();" href="javascript:void(0)"
139
+ title="<?php esc_attr_e('Show only check in/out dates' ,'booking'); ?>"
140
  style="<?php echo $this->days_column_style['wide']; ?>"
141
  class="tooltip_top"
142
  ><i class="wpbc_icn_compare_arrows" style=" margin-top: 2px;"></i></a>
299
  <a href="javascript:void(0)"
300
  onclick="javascript:mark_read_booking( '<?php echo $row_data[ 'id' ]; ?>', 0, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' );"
301
  class="tooltip_right approve_bk_link"
302
+ title="<?php esc_attr_e('New booking' ,'booking'); ?>"
303
  ><i class="wpbc_icn_visibility"></i></a>
304
  </div><?php
305
 
395
  ?><a href="javascript:void(0)"
396
  onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to do this ?' ,'booking')); ?>') ) trash__restore_booking( 1, <?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
397
  class="tooltip_top button-secondary button trash_bk_link <?php if ( $row_data['is_trash'] ) echo ' hidden_items '; ?>"
398
+ title="<?php esc_attr_e('Reject - move to trash' ,'booking'); ?>"
399
  ><i class="wpbc_icn_delete_outline"></i></a><?php
400
  // Restore
401
  ?><a href="javascript:void(0)"
402
  onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to do this ?' ,'booking')); ?>') ) trash__restore_booking( 0, <?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
403
  class="tooltip_top button-secondary button restore_bk_link <?php if ( ! $row_data['is_trash'] ) echo ' hidden_items '; ?>"
404
+ title="<?php esc_attr_e('Restore' ,'booking'); ?>"
405
  ><i class="wpbc_icn_rotate_left"></i></a><?php
406
  // Delete
407
  ?><a href="javascript:void(0)"
408
  onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to delete this booking ?' ,'booking')); ?>') ) delete_booking(<?php echo $row_data[ 'id' ]; ?>, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
409
  class="tooltip_top button-secondary button delete_bk_link <?php if ( ! $row_data['is_trash'] ) echo ' hidden_items '; ?>"
410
+ title="<?php esc_attr_e('Completely Delete' ,'booking'); ?>"
411
  ><i class="wpbc_icn_close"></i></a><?php
412
  //End FixIn: 6.1.1.10
413
 
416
  ?><a href="javascript:void(0)"
417
  onclick="javascript:approve_unapprove_booking(<?php echo $row_data[ 'id' ]; ?>,1,<?php echo $this->user_id; ?>,'<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>',1);"
418
  class="tooltip_top approve_bk_link button-secondary button <?php if ($row_data['is_approved']) echo ' hidden_items '; ?> "
419
+ title="<?php esc_attr_e('Approve' ,'booking'); ?>"
420
  ><i class="wpbc_icn_check_circle_outline"></i></a><?php
421
 
422
  // Reject
423
  ?><a href="javascript:void(0)"
424
  onclick="javascript:if ( wpbc_are_you_sure('<?php echo esc_js(__('Do you really want to set booking as pending ?' ,'booking')); ?>') ) approve_unapprove_booking(<?php echo $row_data[ 'id' ]; ?>,0, <?php echo $this->user_id; ?>, '<?php echo wpbc_get_maybe_reloaded_booking_locale(); ?>' , 1 );"
425
  class="tooltip_top pending_bk_link button-secondary button <?php if (! $row_data['is_approved']) echo ' hidden_items '; ?> "
426
+ title="<?php esc_attr_e('Pending' ,'booking'); ?>"
427
  ><i class="wpbc_icn_block"></i></a><?php
428
 
429
  ?></div><?php
core/admin/wpbc-toolbars.php CHANGED
@@ -377,7 +377,7 @@ function wpbc_toolbar_is_send_emails_btn() {
377
  <?php } ?>
378
  id="is_send_email_for_pending" name="is_send_email_for_pending" class="tooltip_top"
379
  title="<?php echo esc_js( __( 'Send email notification to customer after approval, cancellation or deletion of bookings', 'booking' ) ); ?>"
380
- /><?php _e( 'Emails sending', 'booking' ) ?>
381
  </label>
382
  </fieldset>
383
  </div>
@@ -462,13 +462,25 @@ function wpbc_toolbar_btn__view_mode() {
462
  $bk_admin_url = wpbc_get_params_in_url( wpbc_get_bookings_url( false ), array('view_mode', 'wh_booking_id', 'page_num' ) );
463
 
464
  $params = array();
 
 
 
 
 
 
 
 
 
 
 
 
465
  $params['btn_vm_listing'] = array(
466
  'title' => ''
467
  , 'hint' => array( 'title' => __('Booking Listing' ,'booking') , 'position' => 'top' )
468
  , 'selected' => ( $selected_view_mode == 'vm_listing' ) ? true : false
469
  , 'link' => $bk_admin_url . '&view_mode=vm_listing'
470
  , 'icon' => ''
471
- , 'font_icon' => 'wpbc-bi-collection'//'glyphicon glyphicon-align-justify'
472
  );
473
 
474
 
@@ -486,7 +498,7 @@ function wpbc_toolbar_btn__view_mode() {
486
  , 'font_icon' => 'wpbc-bi-calendar2-range'// 'glyphicon glyphicon-calendar'
487
  );
488
 
489
- ?><div style="position:absolute;"><?php
490
 
491
  wpbc_bs_vertical_buttons_group( $params );
492
 
@@ -2083,7 +2095,7 @@ sprop:
2083
 
2084
  ?><a href="<?php echo $link_add2gcal; ?>" target="_blank" rel="nofollow"
2085
  class="tooltip_top <?php echo esc_attr( $button_attr['class'] ) ?>"
2086
- title="<?php echo esc_js( $button_attr['hint'] ); ?>"
2087
  ><?php
2088
  if ( $button_attr['is_show_icon'] ) {
2089
  ?><i class="wpbc_icn_event"></i><?php //FixIn: 9.0.1.4 glyphicon icon-1x glyphicon-export
377
  <?php } ?>
378
  id="is_send_email_for_pending" name="is_send_email_for_pending" class="tooltip_top"
379
  title="<?php echo esc_js( __( 'Send email notification to customer after approval, cancellation or deletion of bookings', 'booking' ) ); ?>"
380
+ /><?php _e( 'Emails sending', 'booking' ); ?>
381
  </label>
382
  </fieldset>
383
  </div>
462
  $bk_admin_url = wpbc_get_params_in_url( wpbc_get_bookings_url( false ), array('view_mode', 'wh_booking_id', 'page_num' ) );
463
 
464
  $params = array();
465
+
466
+ if ( function_exists( 'wpbc_ajx_get__request_params__names_default' ) ) {
467
+ $params['btn_vm_listing_new'] = array(
468
+ 'title' => ''
469
+ , 'hint' => array( 'title' => __('Booking Listing' ,'booking') , 'position' => 'top' )
470
+ , 'selected' => ( $selected_view_mode == 'vm_booking_listing' ) ? true : false
471
+ , 'link' => wpbc_get_bookings_url('booking-listing', true ) . '&view_mode=vm_booking_listing'
472
+ , 'icon' => ''
473
+ , 'font_icon' => 'wpbc-bi-collection'//'glyphicon glyphicon-align-justify'
474
+ );
475
+ }
476
+
477
  $params['btn_vm_listing'] = array(
478
  'title' => ''
479
  , 'hint' => array( 'title' => __('Booking Listing' ,'booking') , 'position' => 'top' )
480
  , 'selected' => ( $selected_view_mode == 'vm_listing' ) ? true : false
481
  , 'link' => $bk_admin_url . '&view_mode=vm_listing'
482
  , 'icon' => ''
483
+ , 'font_icon' => ( function_exists( 'wpbc_ajx_get__request_params__names_default' ) ) ? 'wpbc-bi-card-list' : 'wpbc-bi-collection'//'glyphicon glyphicon-align-justify'
484
  );
485
 
486
 
498
  , 'font_icon' => 'wpbc-bi-calendar2-range'// 'glyphicon glyphicon-calendar'
499
  );
500
 
501
+ ?><div style="position:absolute;" class="wpbc_mode_switcher"><?php
502
 
503
  wpbc_bs_vertical_buttons_group( $params );
504
 
2095
 
2096
  ?><a href="<?php echo $link_add2gcal; ?>" target="_blank" rel="nofollow"
2097
  class="tooltip_top <?php echo esc_attr( $button_attr['class'] ) ?>"
2098
+ title="<?php echo esc_attr( $button_attr['hint'] ); ?>"
2099
  ><?php
2100
  if ( $button_attr['is_show_icon'] ) {
2101
  ?><i class="wpbc_icn_event"></i><?php //FixIn: 9.0.1.4 glyphicon icon-1x glyphicon-export
core/any/admin-bs-ui.php CHANGED
@@ -1768,8 +1768,10 @@ function wpbc_bs_display_tab( $args = array() ) {
1768
 
1769
  // Text
1770
 
1771
- ?><span class="<?php echo ( $is_icon_showed ) ? 'nav-tab-text' : ''; ?>" ><?php
1772
- echo ( $is_icon_showed ) ? '&nbsp;&nbsp;' : '';
 
 
1773
  echo $tab['title'];
1774
  ?></span><?php
1775
 
@@ -1852,133 +1854,74 @@ function wpbc_bs_javascript_tooltips() {
1852
  ?><span id="wpbc_tooltips_container"></span><?php
1853
  //FixIn: 7.0.1.10
1854
  ?><script type="text/javascript">
1855
- jQuery(document).ready( function(){
1856
 
1857
- if ( 'function' === typeof( wpbc_tippy ) ) {
1858
-
1859
- //FixIn: 9.0.1.1
1860
- /**
1861
- * Get Title to show in tooltip.
1862
- * By default getting text from 'data-original-title' attribute, if not exist,
1863
- * then checking 'title' attribute and replacing it by 'data-original-title'
1864
- *
1865
- * @param reference - Dom element
1866
- * @returns string
1867
- */
1868
- function wpbc_get_tippy_tooltip_title_text( reference ){
1869
- var text2show = reference.getAttribute( 'data-original-title' );
1870
- if ( null == text2show ){
1871
- text2show = reference.getAttribute( 'title' );
1872
- jQuery( reference ).attr( "data-original-title", jQuery( reference ).attr( "title" ) );
1873
- jQuery( reference ).removeAttr( "title" );
1874
- }
1875
- return text2show;
1876
- }
1877
 
1878
- wpbc_tippy( '.tooltip_top', {
1879
- content( reference ){
1880
- return wpbc_get_tippy_tooltip_title_text( reference );
1881
- },
1882
- placement: 'top-start',
1883
- } );
1884
- wpbc_tippy( '.tooltip_bottom', {
1885
- content( reference ){
1886
- return wpbc_get_tippy_tooltip_title_text( reference );
1887
- },
1888
- placement: 'bottom-start',
1889
- } );
1890
- wpbc_tippy( '.tooltip_bottom', {
1891
- content( reference ){
1892
- return wpbc_get_tippy_tooltip_title_text( reference );
1893
- },
1894
- placement: 'bottom-start',
1895
- } );
1896
- wpbc_tippy( '.tooltip_right', {
1897
- content( reference ){
1898
- return wpbc_get_tippy_tooltip_title_text( reference );
1899
- },
1900
- placement: 'right',
1901
- } );
1902
- wpbc_tippy( '.tooltip_left', {
1903
- content( reference ){
1904
- return wpbc_get_tippy_tooltip_title_text( reference );
1905
- },
1906
- placement: 'left-start',
1907
- } );
1908
-
1909
- } else {
1910
  alert( 'WPBC Error. JavaScript library "wpbc_tippy" was not defined.' );
 
1911
  }
1912
- // No Bootstrap tooltip
1913
- //Deprecated: FixIn: 9.0.1.1.1
1914
- /*
1915
- if ( 0 ) {
1916
- if ( 'function' === typeof( jQuery('.tooltip_right').tooltip ) ) {
1917
- jQuery('.tooltip_right').tooltip( {
1918
- animation: true
1919
- , delay: { show: 500, hide: 100 }
1920
- , selector: false
1921
- , placement: 'right'
1922
- , trigger: 'hover'
1923
- , title: ''
1924
- , template: '<div class="wpdevelop tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
1925
- , container: '#wpbc_tooltips_container'
1926
- , viewport: '#wpbody-content'
1927
- });
1928
- } else {
1929
- console.log('Warning! Booking Calendar. Its seems that you have deactivated loading of Bootstrap JS files at Booking Settings General page in Advanced section.')
1930
  }
1931
- if ( 'function' === typeof( jQuery('.tooltip_left').tooltip ) )
1932
- jQuery('.tooltip_left').tooltip( {
1933
- animation: true
1934
- , delay: { show: 500, hide: 100 }
1935
- , selector: false
1936
- , placement: 'left'
1937
- , trigger: 'hover'
1938
- , title: ''
1939
- , template: '<div class="wpdevelop tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
1940
- , container: '#wpbc_tooltips_container'
1941
- , viewport: '#wpbody-content'
1942
- });
1943
- if ( 'function' === typeof( jQuery('.tooltip_top').tooltip ) )
1944
- jQuery('.tooltip_top').tooltip( {
1945
- animation: true
1946
- , delay: { show: 500, hide: 100 }
1947
- , selector: false
1948
- , placement: 'top'
1949
- , trigger: 'hover'
1950
- , title: ''
1951
- , template: '<div class="wpdevelop tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
1952
- , container: '#wpbc_tooltips_container'
1953
- , viewport: '#wpbody-content'
1954
- });
1955
- if ( 'function' === typeof( jQuery('.tooltip_bottom').tooltip ) )
1956
- jQuery('.tooltip_bottom').tooltip( {
1957
- animation: true
1958
- , delay: { show: 500, hide: 100 }
1959
- , selector: false
1960
- , placement: 'bottom'
1961
- , trigger: 'hover'
1962
- , title: ''
1963
- , template: '<div class="wpdevelop tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
1964
- , container: '#wpbc_tooltips_container'
1965
- , viewport: '#wpbody-content'
1966
- });
1967
- if ( 'function' === typeof( jQuery('.tooltip_top_slow').tooltip ) )
1968
- jQuery('.tooltip_top_slow').tooltip( {
1969
- animation: true
1970
- , delay: { show: 2500, hide: 100 }
1971
- , selector: false
1972
- , placement: 'top'
1973
- , trigger: 'hover'
1974
- , title: ''
1975
- , template: '<div class="wpdevelop tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
1976
- , container: '#wpbc_tooltips_container'
1977
- , viewport: '#wpbody-content'
1978
- });
1979
  }
1980
- */
1981
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1982
  </script><?php
1983
  }
1984
 
@@ -2031,115 +1974,8 @@ function wpbc_bs_javascript_popover() {
2031
  });
2032
  }
2033
 
2034
-
2035
  jQuery(document).ready( function(){
2036
- //FixIn: 9.0.1.1
2037
- wpbc_define_tippy_popover();
2038
- //Deprecated: FixIn: 9.0.1.1.1
2039
- /*
2040
- if ( 'function' === typeof( jQuery(".popover_click.popover_bottom" ).popover ) ) { //FixIn: 7.0.1.2 - 2016-12-10
2041
- jQuery('.popover_click.popover_bottom').popover( {
2042
- placement: 'bottom' //FixIn: 7.0.1.42
2043
- // function (context, source) {
2044
- //
2045
- // var position = jQuery(source).offset();
2046
- // //var elBounding = context.getBoundingClientRect();
2047
- // var content_heigh = jQuery(context).find('.popover-content').clone().appendTo(jQuery( '#wpbc-footer') ).height();
2048
- // jQuery( '#wpbc-footer .popover-content').remove();
2049
- //
2050
- // if ( position.top < content_heigh ){
2051
- // return "top";
2052
- // }
2053
- // return "bottom";
2054
- // }
2055
- , trigger:'manual'
2056
- //, delay: {show: 100, hide: 8}
2057
- , content: ''
2058
- , template: '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-close"><a href="javascript:void(0)" data-dismiss="popover" aria-hidden="true">&times;</a></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
2059
- , container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
2060
- , html: 'true'
2061
- });
2062
- jQuery('.popover_click.popover_top').popover( {
2063
- placement: 'top auto'
2064
- , trigger:'manual'
2065
- //, delay: {show: 100, hide: 8}
2066
- , content: ''
2067
- , template: '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-close"><a href="javascript:void(0)" data-dismiss="popover" aria-hidden="true">&times;</a></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
2068
- , container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
2069
- , html: 'true'
2070
- });
2071
- jQuery('.popover_click.popover_left').popover( {
2072
- placement: 'left auto'
2073
- , trigger:'manual'
2074
- //, delay: {show: 100, hide: 8}
2075
- , content: ''
2076
- , template: '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-close"><a href="javascript:void(0)" data-dismiss="popover" aria-hidden="true">&times;</a></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
2077
- , container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
2078
- , html: 'true'
2079
- });
2080
- jQuery('.popover_click.popover_right').popover( {
2081
- placement: 'right auto'
2082
- , trigger:'manual'
2083
- //, delay: {show: 100, hide: 8}
2084
- , content: ''
2085
- , template: '<div class="popover" role="tooltip"><div class="arrow"></div><div class="popover-close"><a href="javascript:void(0)" data-dismiss="popover" aria-hidden="true">&times;</a></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
2086
- , container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
2087
- , html: 'true'
2088
- });
2089
-
2090
- // Close popover by clicking on X button
2091
- jQuery(document).on("click", ".popover .popover-close a" , function(){
2092
- jQuery(this).parents(".popover").popover('hide');
2093
- });
2094
- // Show or hide popover on click at target element
2095
- jQuery(document).on("click", ".popover_click" , function(){
2096
- jQuery(this).popover('toggle');
2097
-
2098
- //Solving Issue: sometime, when many timelines at the page with long popover, its can overlap exist timelines, and then its does not possible to click on elements.
2099
- jQuery('.wpbc_timeline_ajax_replace .popover.fade.bottom:not(.in)').css('left','-9000px');
2100
-
2101
- });
2102
-
2103
- jQuery('.popover_hover.popover_bottom').popover( {
2104
- placement: 'bottom' //FixIn: 8.4.5.12
2105
- , trigger:'hover'
2106
- , delay: {show: 100, hide: 100}
2107
- , content: ''
2108
- , template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
2109
- , container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
2110
- , html: 'true'
2111
- });
2112
- jQuery('.popover_hover.popover_top').popover( {
2113
- placement: 'top auto'
2114
- , trigger:'hover'
2115
- , delay: {show: 100, hide: 100}
2116
- , content: ''
2117
- , template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
2118
- , container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
2119
- , html: 'true'
2120
- });
2121
- jQuery('.popover_hover.popover_left').popover( {
2122
- placement: 'left auto'
2123
- , trigger:'hover'
2124
- , delay: {show: 100, hide: 100}
2125
- , content: ''
2126
- , template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
2127
- , container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
2128
- , html: 'true'
2129
- });
2130
- jQuery('.popover_hover.popover_right').popover( {
2131
- placement: 'right auto'
2132
- , trigger:'hover'
2133
- , delay: {show: 100, hide: 100}
2134
- , content: ''
2135
- , template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
2136
- , container: '.wpbc_timeline_frame,.flex_timeline_frame' //FixIn: Flex TimeLine 1.0
2137
- , html: 'true'
2138
- });
2139
- //////////////////////////////////////////////////////////////////////
2140
-
2141
- }
2142
- */
2143
  });
2144
  </script><?php
2145
  }
1768
 
1769
  // Text
1770
 
1771
+ ?><span class="<?php echo ( $is_icon_showed ) ? 'nav-tab-text' : ''; ?>" ><?php
1772
+ if ( ! empty( $tab['title'] ) ) {
1773
+ echo ( $is_icon_showed ) ? '&nbsp;&nbsp;' : '';
1774
+ }
1775
  echo $tab['title'];
1776
  ?></span><?php
1777
 
1854
  ?><span id="wpbc_tooltips_container"></span><?php
1855
  //FixIn: 7.0.1.10
1856
  ?><script type="text/javascript">
 
1857
 
1858
+ function wpbc_define_tippy_tooltips( parent_class ){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1859
 
1860
+ if ( 'function' !== typeof( wpbc_tippy ) ){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1861
  alert( 'WPBC Error. JavaScript library "wpbc_tippy" was not defined.' );
1862
+ return false;
1863
  }
1864
+
1865
+ //FixIn: 9.0.1.1
1866
+ /**
1867
+ * Get Title to show in tooltip.
1868
+ * By default getting text from 'data-original-title' attribute, if not exist,
1869
+ * then checking 'title' attribute and replacing it by 'data-original-title'
1870
+ *
1871
+ * @param reference - Dom element
1872
+ * @returns string
1873
+ */
1874
+ function wpbc_get_tippy_tooltip_title_text( reference ){
1875
+ var text2show = reference.getAttribute( 'data-original-title' );
1876
+ if ( null == text2show ){
1877
+ text2show = reference.getAttribute( 'title' );
1878
+ jQuery( reference ).attr( "data-original-title", jQuery( reference ).attr( "title" ) );
1879
+ jQuery( reference ).removeAttr( "title" );
 
 
1880
  }
1881
+ return text2show;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1882
  }
1883
+
1884
+ if ( undefined == parent_class ){
1885
+ parent_class = '';
1886
+ }
1887
+
1888
+ wpbc_tippy( parent_class + '.tooltip_top', {
1889
+ content( reference ){
1890
+ return wpbc_get_tippy_tooltip_title_text( reference );
1891
+ },
1892
+ placement: 'top-start',
1893
+ } );
1894
+ wpbc_tippy( parent_class + '.tooltip_bottom', {
1895
+ content( reference ){
1896
+ return wpbc_get_tippy_tooltip_title_text( reference );
1897
+ },
1898
+ placement: 'bottom-start',
1899
+ } );
1900
+ wpbc_tippy( parent_class + '.tooltip_bottom', {
1901
+ content( reference ){
1902
+ return wpbc_get_tippy_tooltip_title_text( reference );
1903
+ },
1904
+ placement: 'bottom-start',
1905
+ } );
1906
+ wpbc_tippy( parent_class + '.tooltip_right', {
1907
+ content( reference ){
1908
+ return wpbc_get_tippy_tooltip_title_text( reference );
1909
+ },
1910
+ placement: 'right',
1911
+ } );
1912
+ wpbc_tippy( parent_class + '.tooltip_left', {
1913
+ content( reference ){
1914
+ return wpbc_get_tippy_tooltip_title_text( reference );
1915
+ },
1916
+ placement: 'left-start',
1917
+ } );
1918
+
1919
+ return true;
1920
+ }
1921
+
1922
+ jQuery( document ).ready( function (){
1923
+ wpbc_define_tippy_tooltips( '' );
1924
+ } );
1925
  </script><?php
1926
  }
1927
 
1974
  });
1975
  }
1976
 
 
1977
  jQuery(document).ready( function(){
1978
+ wpbc_define_tippy_popover(); //FixIn: 9.0.1.1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1979
  });
1980
  </script><?php
1981
  }
core/any/css/admin-support.css CHANGED
@@ -460,6 +460,9 @@ html[xmlns] .clearfix-height.hidden_items {
460
 
461
 
462
  /* Rotate Icons for Loading ***********************************************/
 
 
 
463
  .wpbc_icn_autorenew::before,
464
  .wpbc_spin {
465
  -webkit-animation: spin 2s infinite linear;
460
 
461
 
462
  /* Rotate Icons for Loading ***********************************************/
463
+ .wpbc_animation_pause {
464
+ animation-play-state: paused !important;
465
+ }
466
  .wpbc_icn_autorenew::before,
467
  .wpbc_spin {
468
  -webkit-animation: spin 2s infinite linear;
core/any/js/admin-support.js CHANGED
@@ -154,71 +154,79 @@ function wpbc_admin_show_message( message, m_type, m_delay, is_append ){
154
  jQuery('#' + unique_div_id ).animate( {opacity: 1}, m_delay ).fadeOut(500);
155
  }
156
 
 
 
157
 
158
- function wpbc_close_dropdown_selectbox( selector_id ) {
159
- jQuery('#' + selector_id + '_container li input[type=checkbox],#' + selector_id + '_container li input[type=radio]').prop('checked', false);
160
- jQuery('#' + selector_id + '_container').hide();
161
- }
162
- // Show Container depend from the selected option in dropdown list
163
- function wpbc_show_selected_in_dropdown( selector_id, title, value ){
164
- jQuery('#' + selector_id + '_selector .wpbc_selected_in_dropdown').html( title );
165
- jQuery('#' + selector_id ).val( value );
166
- }
 
167
 
168
- // Show Container depend from the selected Radio Option and Selectbox value in dropdown list
169
- // Exmaple: wpbc_show_selected_in_dropdown__radio_select_option( 'wh_booking_date', 'wh_booking_date2', 'wh_booking_datedays_interval_Radios' );
170
- function wpbc_show_selected_in_dropdown__radio_select_option( selector_id, selector_id2, radio_name ){
171
-
172
- // Get selected value in radio buttons
173
- var rad_val = jQuery('input:radio[name="' + radio_name + '"]:checked').val();
174
-
175
- if ( rad_val != 'undefined' ) {
176
-
177
- var select_box = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select');
178
- // Selectbox exist
179
- if ( select_box.length > 0 ) {
180
- // Get label near selected radiobutton and selected Tilte in selectbox
181
- var title = jQuery('input:radio[name="' + radio_name + '"]:checked').parent().find('label').html() + ' ' +
182
- jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select option:selected').text();
183
- // Get Value of selected option in selectbox
184
- var value = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select option:selected').val();
185
- // Set Title in dropdown list
186
- jQuery('#' + selector_id + '_selector .wpbc_selected_in_dropdown').html( title );
187
- // Set value of radio button
188
- jQuery('#' + selector_id ).val( rad_val );
189
- // Set value of selectbox
190
- jQuery('#' + selector_id2 ).val( value );
191
- } else {
192
- // 2 Text Fields
193
- var text_box = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('input[type="text"]');
194
- if ( text_box.length > 0 ) {
195
- var text_divs = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('.dropdown-menu-text-element');
196
-
197
- // Check if we have 2 DIV elements with text fields
198
- if ( text_box.length > 0 ) {
199
-
200
- var id_list = [ selector_id, selector_id2 ];
201
- var title = '';
202
- //Loop our text DIV elements
203
- jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('.dropdown-menu-text-element').each(function( i ) {
204
-
205
- if ( title != '' )
206
- title += ' - ';
207
- title += jQuery(this).find('input[type="text"]').val();
208
- jQuery('#' + id_list[ i ] ).val( jQuery(this).find('input[type="text"]').val() );
209
- });
210
- // Set Title in dropdown list
211
- jQuery('#' + selector_id + '_selector .wpbc_selected_in_dropdown').html( title );
212
-
213
- }
 
214
  }
215
  }
 
 
 
 
 
216
  }
217
-
218
- // Hide dropdown list
219
- jQuery('#' + selector_id + '_container').hide();
220
- }
221
-
222
  //Set status of all checkbos in one time
223
  function wpbc_set_checkbox_in_table( el_stutus, el_class ){
224
  jQuery('.'+el_class).attr('checked', el_stutus);
154
  jQuery('#' + unique_div_id ).animate( {opacity: 1}, m_delay ).fadeOut(500);
155
  }
156
 
157
+ /**
158
+ * Start: Dropdown BS List elements -------------------------------------------------------------------------------- */
159
 
160
+ function wpbc_close_dropdown_selectbox( selector_id ) {
161
+ jQuery('#' + selector_id + '_container li input[type=checkbox],#' + selector_id + '_container li input[type=radio]').prop('checked', false);
162
+ jQuery('#' + selector_id + '_container').hide();
163
+ }
164
+ // Show Container depend from the selected option in dropdown list
165
+ function wpbc_show_selected_in_dropdown( selector_id, title, value ){
166
+ jQuery('#' + selector_id + '_selector .wpbc_selected_in_dropdown').html( title );
167
+ jQuery('#' + selector_id ).val( value );
168
+ jQuery('#' + selector_id ).trigger('change');
169
+ }
170
 
171
+ // Show Container depend from the selected Radio Option and Selectbox value in dropdown list
172
+ // Exmaple: wpbc_show_selected_in_dropdown__radio_select_option( 'wh_booking_date', 'wh_booking_date2', 'wh_booking_datedays_interval_Radios' );
173
+ function wpbc_show_selected_in_dropdown__radio_select_option( selector_id, selector_id2, radio_name ){
174
+
175
+ // Get selected value in radio buttons
176
+ var rad_val = jQuery('input:radio[name="' + radio_name + '"]:checked').val();
177
+
178
+ if ( rad_val != 'undefined' ) {
179
+
180
+ var select_box = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select');
181
+ // Selectbox exist
182
+ if ( select_box.length > 0 ) {
183
+ // Get label near selected radiobutton and selected Tilte in selectbox
184
+ var title = jQuery('input:radio[name="' + radio_name + '"]:checked').parent().find('label').html() + ' ' +
185
+ jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select option:selected').text();
186
+ // Get Value of selected option in selectbox
187
+ var value = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.input-group').find('select option:selected').val();
188
+ // Set Title in dropdown list
189
+ jQuery('#' + selector_id + '_selector .wpbc_selected_in_dropdown').html( title );
190
+ // Set value of radio button
191
+ jQuery('#' + selector_id ).val( rad_val );
192
+ // Set value of selectbox
193
+ jQuery('#' + selector_id2 ).val( value );
194
+ } else {
195
+ // 2 Text Fields
196
+ var text_box = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('input[type="text"]');
197
+ if ( text_box.length > 0 ) {
198
+ var text_divs = jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('.dropdown-menu-text-element');
199
+
200
+ // Check if we have 2 DIV elements with text fields
201
+ if ( text_box.length > 0 ) {
202
+
203
+ var id_list = [ selector_id, selector_id2 ];
204
+ var title = '';
205
+ //Loop our text DIV elements
206
+ jQuery('input:radio[name="' + radio_name + '"]:checked').parents('.text-group').find('.dropdown-menu-text-element').each(function( i ) {
207
+
208
+ if ( title != '' )
209
+ title += ' - ';
210
+ title += jQuery(this).find('input[type="text"]').val();
211
+ jQuery('#' + id_list[ i ] ).val( jQuery(this).find('input[type="text"]').val() );
212
+ });
213
+ // Set Title in dropdown list
214
+ jQuery('#' + selector_id + '_selector .wpbc_selected_in_dropdown').html( title );
215
+
216
+ }
217
+ }
218
  }
219
  }
220
+
221
+ jQuery('#' + selector_id ).trigger( 'change' );
222
+
223
+ // Hide dropdown list
224
+ jQuery('#' + selector_id + '_container').hide();
225
  }
226
+
227
+ /**
228
+ * End: Dropdown BS List elements -------------------------------------------------------------------------------- */
229
+
 
230
  //Set status of all checkbos in one time
231
  function wpbc_set_checkbox_in_table( el_stutus, el_class ){
232
  jQuery('.'+el_class).attr('checked', el_stutus);
core/lib/wpbc-ajax.php CHANGED
@@ -174,7 +174,7 @@ function wpbc_ajax_UPDATE_APPROVE() {
174
 
175
  if (! isset($_POST["denyreason"]))
176
  $_POST["denyreason"] = '';
177
- $denyreason = stripslashes( $_POST["denyreason"] ); //FixIn: 7.0.1.46 - trasnalte words like don\'t to don't
178
  $is_send_emeils = $_POST["is_send_emeils"];
179
 
180
 
174
 
175
  if (! isset($_POST["denyreason"]))
176
  $_POST["denyreason"] = '';
177
+ $denyreason = stripslashes( $_POST["denyreason"] ); //FixIn: 7.0.1.46 - translate words like don\'t to don't
178
  $is_send_emeils = $_POST["is_send_emeils"];
179
 
180
 
core/lib/wpdev-booking-class.php CHANGED
@@ -25,7 +25,6 @@ class wpdev_booking {
25
  $this->wpdev_bk_personal = false;
26
  }
27
 
28
-
29
  // User defined - hooks
30
  add_action( 'wpdev_bk_add_calendar', array( &$this, 'add_calendar_action' ), 10, 2 );
31
  add_action( 'wpdev_bk_add_form', array( &$this, 'add_booking_form_action' ), 10, 2 );
@@ -92,39 +91,28 @@ class wpdev_booking {
92
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
93
 
94
  // Get dates
95
- function get_dates ($approved = 'all', $bk_type = 1, $additional_bk_types= array(), $skip_booking_id = '' ) {
96
- /*
97
- $bk_type_1 = explode(',', $bk_type); $bk_type = '';
98
- foreach ($bk_type_1 as $bkt) {
99
- if (!empty($bkt)) { $bk_type .= $bkt . ','; }
100
- }
101
- $bk_type = substr($bk_type, 0, -1);
102
 
103
- $additional_bk_types_1= array();
104
- foreach ($additional_bk_types as $bkt) {
105
- if (!empty($bkt)) { $additional_bk_types_1[] = $bkt; }
106
- }
107
- $additional_bk_types =$additional_bk_types_1;*/
108
- //return array(array(),array());
109
- // if ( ! defined('WP_ADMIN') ) if ($approved == 0) return array(array(),array());
110
- //debuge($bk_type, $additional_bk_types );
111
- make_bk_action('check_pending_not_paid_auto_cancell_bookings', $bk_type );
112
-
113
- if ( count($additional_bk_types)>0 ) $bk_type_additional = $bk_type .',' . implode(',', $additional_bk_types);
114
- else $bk_type_additional = $bk_type;
115
  $bk_type_additional .= ',';
116
 
117
  $bk_type_additional = explode( ',', $bk_type_additional );
118
- $bk_type_additional = array_unique( $bk_type_additional ); // Removes duplicate values from an array
119
- $bk_type_additional = array_filter( $bk_type_additional ); // all entries of array equal to FALSE (0, '', '0' ) will be removed.
120
  $bk_type_additional = implode( ',', $bk_type_additional );
121
 
122
  global $wpdb;
123
  $dates_array = $time_array = array();
124
 
125
- $trash_bookings = ' AND bk.trash != 1 '; //FixIn: 6.1.1.10 - check also below usage of {$trash_bookings}
126
-
127
- if ($approved == 'admin_blank') {
128
 
129
  $sql_req = "SELECT DISTINCT dt.booking_date
130
 
@@ -140,9 +128,9 @@ class wpdev_booking {
140
  $dates_approve = $wpdb->get_results( $sql_req );
141
 
142
  } else {
143
-
144
- if ($approved == 'all')
145
- $sql_req = apply_bk_filter('get_bk_dates_sql', "SELECT DISTINCT dt.booking_date
146
 
147
  FROM {$wpdb->prefix}bookingdates as dt
148
 
@@ -152,12 +140,11 @@ class wpdev_booking {
152
 
153
  WHERE dt.booking_date >= CURDATE() {$trash_bookings} AND bk.booking_type IN ($bk_type_additional)
154
 
155
- ". (($skip_booking_id != '') ? " AND dt.booking_id NOT IN ( ".$skip_booking_id." ) ":"") ."
156
 
157
- ORDER BY dt.booking_date", $bk_type_additional, 'all' , $skip_booking_id);
158
-
159
- else
160
- $sql_req = apply_bk_filter('get_bk_dates_sql', "SELECT DISTINCT dt.booking_date
161
 
162
  FROM {$wpdb->prefix}bookingdates as dt
163
 
@@ -167,73 +154,86 @@ class wpdev_booking {
167
 
168
  WHERE dt.approved = $approved AND dt.booking_date >= CURDATE() {$trash_bookings} AND bk.booking_type IN ($bk_type_additional)
169
 
170
- ". (($skip_booking_id != '') ? " AND dt.booking_id NOT IN ( ".$skip_booking_id." ) ":"") ."
171
 
172
  ORDER BY dt.booking_date", $bk_type_additional, $approved, $skip_booking_id );
173
- //$sql_req = str_replace( 'dt.booking_date >= CURDATE() AND', '' , $sql_req); //Show past bookings, as well
174
- $dates_approve = apply_bk_filter('get_bk_dates', $wpdb->get_results( $sql_req ), $approved, 0,$bk_type );
 
 
 
175
  }
176
 
 
177
  // Make aggregation of the dates for the parent booking resources with specific capacity
178
  if ( 0 ) {
179
  $bk_res_aggregate = implode( ',', array_splice( $additional_bk_types, 1, 1 ) );
180
  $sql_req_aggregate = "SELECT DISTINCT dt.booking_date
181
- FROM {$wpdb->prefix}bookingdates as dt
182
- INNER JOIN {$wpdb->prefix}booking as bk
183
- ON bk.booking_id = dt.booking_id
184
- WHERE dt.booking_date >= CURDATE() {$trash_bookings} AND bk.booking_type IN ({$bk_res_aggregate})
185
- " . ( ( $skip_booking_id != '' ) ? " AND dt.booking_id NOT IN ( " . $skip_booking_id . " ) " : "" ) . "
186
- ORDER BY dt.booking_date";
187
  $dates_aggregate = $wpdb->get_results( $sql_req_aggregate );
188
  $dates_approve = array_merge( $dates_approve, $dates_aggregate );
189
  }
190
 
 
191
  //FixIn: 6.1.1.18
192
  $prior_check_out_date = false;
193
- if ( ! empty( $dates_approve ) )
194
  foreach ($dates_approve as $my_date) {
195
-
196
- $blocked_days_range = array( $my_date->booking_date );
197
- //debuge( 'before', $blocked_days_range, $prior_check_out_date );
198
  //if ( ! in_array( (string) $bk_type, array( '2', '3' ) ) ) // Skip these booking resources '2' and '3' from adding additional unavailable times before after the booking
199
- list( $blocked_days_range, $prior_check_out_date ) = apply_filters( 'wpbc_get_extended_block_dates_filter', array( $blocked_days_range, $prior_check_out_date ) );
200
- //debuge( 'after', $blocked_days_range, $prior_check_out_date );
 
 
 
 
 
201
  // Define booked dates and times
202
  foreach ( $blocked_days_range as $in_date) {
203
-
204
- $my_date = explode(' ', $in_date );
205
 
206
- $my_dt = explode('-',$my_date[0]);
207
- $my_tm = explode(':',$my_date[1]);
 
 
208
 
209
- array_push( $dates_array , $my_dt );
210
- array_push( $time_array , $my_tm );
211
  }
212
  }
213
- //FixIn: 6.1.1.18 End
214
- return array($dates_array,$time_array);
 
215
  }
216
 
217
  // Generate booking CAPTCHA fields for booking form
218
  function createCapthaContent($bk_tp) {
219
 
220
  //FixIn: 8.8.3.5
221
- if ( function_exists('gd_info') ) {
222
- $gd_info = gd_info();
223
- if ( isset( $gd_info['GD Version'] ) )
224
- $gd_info = $gd_info['GD Version'];
225
- else
226
- $gd_info = json_encode( $gd_info );
227
- } else {
228
- return '<strong>Error!</strong> CAPTCHA requires the GD library activated in your PHP configuration. Please check more <a href="https://wpbookingcalendar.com/faq/captcha-showing-problems/">here</a>.';
229
- }
 
230
 
231
 
232
  $admin_uri = ltrim( str_replace( get_site_url( null, '', 'admin' ), '', admin_url('admin.php?') ), '/' ) ;
233
- if ( ( get_bk_option( 'booking_is_use_captcha' ) !== 'On' )
234
- || ( strpos($_SERVER['REQUEST_URI'], $admin_uri ) !== false )
235
- ) return '';
236
- else {
 
237
  // Clean up dead files older than 2 minutes
238
  $this->captcha_instance->cleanup(2); //FixIn: 7.0.1.67
239
  //$this->captcha_instance->img_size = array( 72, 24 );
@@ -268,11 +268,18 @@ class wpdev_booking {
268
 
269
  // Get default Booking resource
270
  function get_default_type() {
271
- if( $this->wpdev_bk_personal !== false ) {
272
- if (( isset( $_GET['booking_type'] ) ) && ($_GET['booking_type'] != '')) $bk_type = $_GET['booking_type'];
273
- else $bk_type = $this->wpdev_bk_personal->get_default_booking_resource_id();
274
- } else $bk_type =1;
275
- return $bk_type;
 
 
 
 
 
 
 
276
  }
277
  // </editor-fold>
278
 
@@ -589,129 +596,6 @@ class wpdev_booking {
589
  $my_form = apply_bk_filter( 'wpbc_get_free_booking_form' , $my_boook_type );
590
 
591
  return $my_form;
592
- /*
593
- $booking_form_field_active1 = get_bk_option( 'booking_form_field_active1');
594
- $booking_form_field_required1 = get_bk_option( 'booking_form_field_required1');
595
- $booking_form_field_label1 = get_bk_option( 'booking_form_field_label1');
596
- $booking_form_field_label1 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label1 );
597
- if (function_exists('icl_translate'))
598
- $booking_form_field_label1 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label1', $booking_form_field_label1);
599
-
600
- $booking_form_field_active2 = get_bk_option( 'booking_form_field_active2');
601
- $booking_form_field_required2 = get_bk_option( 'booking_form_field_required2');
602
- $booking_form_field_label2 = get_bk_option( 'booking_form_field_label2');
603
- $booking_form_field_label2 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label2 );
604
- if (function_exists('icl_translate'))
605
- $booking_form_field_label2 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label2', $booking_form_field_label2);
606
-
607
- $booking_form_field_active3 = get_bk_option( 'booking_form_field_active3');
608
- $booking_form_field_required3 = get_bk_option( 'booking_form_field_required3');
609
- $booking_form_field_label3 = get_bk_option( 'booking_form_field_label3');
610
- $booking_form_field_label3 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label3 );
611
- if (function_exists('icl_translate'))
612
- $booking_form_field_label3 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label3', $booking_form_field_label3);
613
-
614
- $booking_form_field_active4 = get_bk_option( 'booking_form_field_active4');
615
- $booking_form_field_required4 = get_bk_option( 'booking_form_field_required4');
616
- $booking_form_field_label4 = get_bk_option( 'booking_form_field_label4');
617
- $booking_form_field_label4 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label4 );
618
- if (function_exists('icl_translate'))
619
- $booking_form_field_label4 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label4', $booking_form_field_label4);
620
-
621
- $booking_form_field_active5 = get_bk_option( 'booking_form_field_active5');
622
- $booking_form_field_required5 = get_bk_option( 'booking_form_field_required5');
623
- $booking_form_field_label5 = get_bk_option( 'booking_form_field_label5');
624
- $booking_form_field_label5 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label5 );
625
- if (function_exists('icl_translate'))
626
- $booking_form_field_label5 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label5', $booking_form_field_label5);
627
-
628
- $booking_form_field_active6 = get_bk_option( 'booking_form_field_active6');
629
- $booking_form_field_required6 = get_bk_option( 'booking_form_field_required6');
630
- $booking_form_field_label6 = get_bk_option( 'booking_form_field_label6');
631
- $booking_form_field_label6 = apply_bk_filter('wpdev_check_for_active_language', $booking_form_field_label6 );
632
- if (function_exists('icl_translate'))
633
- $booking_form_field_label6 = icl_translate( 'wpml_custom', 'wpbc_custom_form_field_label6', $booking_form_field_label6);
634
- $booking_form_field_values6 = get_bk_option( 'booking_form_field_values6' );
635
-
636
- $my_form = '[calendar]';
637
- //'<div style="text-align:left;">'.
638
- //'<p>'.__('First Name (required)' ,'booking').':<br /> <span class="wpdev-form-control-wrap name'.$my_boook_type.'"><input type="text" name="name'.$my_boook_type.'" value="" class="wpdev-validates-as-required" size="40" /></span> </p>'.
639
-
640
- if ($booking_form_field_active1 != 'Off')
641
- $my_form.=' <div class="form-group">
642
- <label for="name'.$my_boook_type.'" class="control-label">'.$booking_form_field_label1.(($booking_form_field_required1=='On')?'*':'').':</label>
643
- <div class="controls">
644
- <input type="text" name="name'.$my_boook_type.'" id="name'.$my_boook_type.'" class="input-xlarge'.(($booking_form_field_required1=='On')?' wpdev-validates-as-required ':'').'">
645
- </div>
646
- </div>';
647
-
648
- if ($booking_form_field_active2 != 'Off')
649
- $my_form.=' <div class="form-group">
650
- <label for="secondname'.$my_boook_type.'" class="control-label">'.$booking_form_field_label2.(($booking_form_field_required2=='On')?'*':'').':</label>
651
- <div class="controls">
652
- <input type="text" name="secondname'.$my_boook_type.'" id="secondname'.$my_boook_type.'" class="input-xlarge'.(($booking_form_field_required2=='On')?' wpdev-validates-as-required ':'').'">
653
- </div>
654
- </div>';
655
-
656
- if ($booking_form_field_active3 != 'Off')
657
- $my_form.=' <div class="form-group">
658
- <label for="email'.$my_boook_type.'" class="control-label">'.$booking_form_field_label3.(($booking_form_field_required3=='On')?'*':'').':</label>
659
- <div class="controls">
660
- <input type="text" name="email'.$my_boook_type.'" id="email'.$my_boook_type.'" class="input-xlarge wpdev-validates-as-email'.(($booking_form_field_required3=='On')?' wpdev-validates-as-required ':'').'">
661
- </div>
662
- </div>';
663
-
664
- if ($booking_form_field_active6 == 'On') {
665
- $my_form.=' <div class="form-group">
666
- <label for="visitors'.$my_boook_type.'" class="control-label">'.$booking_form_field_label6.(($booking_form_field_required6=='On')?'*':'').':</label>
667
- <div class="controls">
668
- <select name="visitors'.$my_boook_type.'" id="visitors'.$my_boook_type.'" class="input-xlarge'.(($booking_form_field_required6=='On')?' wpdev-validates-as-required ':'').'">';
669
-
670
- //$booking_form_field_values6 = explode("\n",$booking_form_field_values6);
671
- $booking_form_field_values6 = preg_split('/\r\n|\r|\n/', $booking_form_field_values6);
672
- foreach ($booking_form_field_values6 as $select_option) {
673
- $select_option = str_replace(array("'",'"'), '', $select_option);
674
- $my_form.=' <option value="'.$select_option.'">'.$select_option.'</option>';
675
- }
676
-
677
- $my_form.=' </select>
678
- <p class="help-block"></p>
679
- </div>
680
- </div>';
681
- }
682
-
683
- if ($booking_form_field_active4 != 'Off')
684
- $my_form.=' <div class="form-group">
685
- <label for="phone'.$my_boook_type.'" class="control-label">'.$booking_form_field_label4.(($booking_form_field_required4=='On')?'*':'').':</label>
686
- <div class="controls">
687
- <input type="text" name="phone'.$my_boook_type.'" id="phone'.$my_boook_type.'" class="input-xlarge'.(($booking_form_field_required4=='On')?' wpdev-validates-as-required ':'').'">
688
- <p class="help-block"></p>
689
- </div>
690
- </div>';
691
-
692
- if ($booking_form_field_active5 != 'Off')
693
- $my_form.=' <div class="form-group">
694
- <label for="details" class="control-label">'.$booking_form_field_label5.(($booking_form_field_required5=='On')?'*':'').':</label>
695
- <div class="controls">
696
- <textarea rows="3" name="details'.$my_boook_type.'" id="details'.$my_boook_type.'" class="input-xlarge'.(($booking_form_field_required5=='On')?' wpdev-validates-as-required ':'').'"></textarea>
697
- </div>
698
- </div>';
699
-
700
- $my_form.=' <div class="form-group">[captcha]</div>';
701
-
702
- $my_form.=' <button class="btn btn-default" type="button" onclick="mybooking_submit(this.form,'.$my_boook_type.',\''.wpbc_get_maybe_reloaded_booking_locale().'\');" >'.__('Send' ,'booking').'</button> ';
703
-
704
- //.'<p>'.__('Last Name (required)' ,'booking').':<br /> <span class="wpdev-form-control-wrap secondname'.$my_boook_type.'"><input type="text" name="secondname'.$my_boook_type.'" value="" class="wpdev-validates-as-required" size="40" /></span> </p>'.
705
- //'<p>'.__('Email (required)' ,'booking').':<br /> <span class="wpdev-form-control-wrap email'.$my_boook_type.'"><input type="text" name="email'.$my_boook_type.'" value="" class="wpdev-validates-as-email wpdev-validates-as-required" size="40" /></span> </p>'.
706
- //'<p>'.__('Phone' ,'booking').':<br /> <span class="wpdev-form-control-wrap phone'.$my_boook_type.'"><input type="text" name="phone'.$my_boook_type.'" value="" size="40" /></span> </p>'.
707
- //'<p>'.__('Details' ,'booking').':<br /> <span class="wpdev-form-control-wrap details'.$my_boook_type.'"><textarea name="details'.$my_boook_type.'" cols="40" rows="10"></textarea></span> </p>';
708
-
709
- //$my_form .= '<p>[captcha]</p>';
710
- //$my_form .= '<p><input type="button" value="'.__('Send' ,'booking').'" onclick="mybooking_submit(this.form,'.$my_boook_type.',\''.wpbc_get_maybe_reloaded_booking_locale().'\');" /></p>
711
- // </div>';
712
-
713
- return $my_form;
714
- */
715
  }
716
 
717
  // Get booking form
@@ -769,8 +653,7 @@ class wpdev_booking {
769
  $bk_type = $bk_parent_br_id;
770
  }
771
  }
772
- // End: 6.1.1.9
773
- //debuge($bk_type);
774
 
775
  $start_script_code = $this->get_script_for_calendar($bk_type, $additional_bk_types, $my_selected_dates_without_calendar, $cal_count, $start_month_calendar );
776
 
25
  $this->wpdev_bk_personal = false;
26
  }
27
 
 
28
  // User defined - hooks
29
  add_action( 'wpdev_bk_add_calendar', array( &$this, 'add_calendar_action' ), 10, 2 );
30
  add_action( 'wpdev_bk_add_form', array( &$this, 'add_booking_form_action' ), 10, 2 );
91
  //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
92
 
93
  // Get dates
94
+ function get_dates( $approved = 'all', $bk_type = 1, $additional_bk_types = array(), $skip_booking_id = '' ) {
 
 
 
 
 
 
95
 
96
+ make_bk_action( 'check_pending_not_paid_auto_cancell_bookings', $bk_type );
97
+
98
+ if ( count( $additional_bk_types ) > 0 ) {
99
+ $bk_type_additional = $bk_type . ',' . implode( ',', $additional_bk_types );
100
+ } else {
101
+ $bk_type_additional = $bk_type;
102
+ }
 
 
 
 
 
103
  $bk_type_additional .= ',';
104
 
105
  $bk_type_additional = explode( ',', $bk_type_additional );
106
+ $bk_type_additional = array_unique( $bk_type_additional ); // Removes duplicate values from an array
107
+ $bk_type_additional = array_filter( $bk_type_additional ); // All entries of array equal to FALSE (0, '', '0' ) will be removed.
108
  $bk_type_additional = implode( ',', $bk_type_additional );
109
 
110
  global $wpdb;
111
  $dates_array = $time_array = array();
112
 
113
+ $trash_bookings = ' AND bk.trash != 1 '; //FixIn: 6.1.1.10 - check also below usage of {$trash_bookings}
114
+
115
+ if ( $approved == 'admin_blank' ) {
116
 
117
  $sql_req = "SELECT DISTINCT dt.booking_date
118
 
128
  $dates_approve = $wpdb->get_results( $sql_req );
129
 
130
  } else {
131
+
132
+ if ( $approved == 'all' ) {
133
+ $sql_req = apply_bk_filter( 'get_bk_dates_sql', "SELECT DISTINCT dt.booking_date
134
 
135
  FROM {$wpdb->prefix}bookingdates as dt
136
 
140
 
141
  WHERE dt.booking_date >= CURDATE() {$trash_bookings} AND bk.booking_type IN ($bk_type_additional)
142
 
143
+ " . ( ( $skip_booking_id != '' ) ? " AND dt.booking_id NOT IN ( " . $skip_booking_id . " ) " : "" ) . "
144
 
145
+ ORDER BY dt.booking_date", $bk_type_additional, 'all', $skip_booking_id );
146
+ } else {
147
+ $sql_req = apply_bk_filter( 'get_bk_dates_sql', "SELECT DISTINCT dt.booking_date
 
148
 
149
  FROM {$wpdb->prefix}bookingdates as dt
150
 
154
 
155
  WHERE dt.approved = $approved AND dt.booking_date >= CURDATE() {$trash_bookings} AND bk.booking_type IN ($bk_type_additional)
156
 
157
+ " . ( ( $skip_booking_id != '' ) ? " AND dt.booking_id NOT IN ( " . $skip_booking_id . " ) " : "" ) . "
158
 
159
  ORDER BY dt.booking_date", $bk_type_additional, $approved, $skip_booking_id );
160
+ }
161
+
162
+ //$sql_req = str_replace( 'dt.booking_date >= CURDATE() AND', '' , $sql_req); //Show past bookings, as well
163
+
164
+ $dates_approve = apply_bk_filter('get_bk_dates', $wpdb->get_results( $sql_req ), $approved, 0,$bk_type );
165
  }
166
 
167
+
168
  // Make aggregation of the dates for the parent booking resources with specific capacity
169
  if ( 0 ) {
170
  $bk_res_aggregate = implode( ',', array_splice( $additional_bk_types, 1, 1 ) );
171
  $sql_req_aggregate = "SELECT DISTINCT dt.booking_date
172
+ FROM {$wpdb->prefix}bookingdates as dt
173
+ INNER JOIN {$wpdb->prefix}booking as bk
174
+ ON bk.booking_id = dt.booking_id
175
+ WHERE dt.booking_date >= CURDATE() {$trash_bookings} AND bk.booking_type IN ({$bk_res_aggregate})
176
+ " . ( ( $skip_booking_id != '' ) ? " AND dt.booking_id NOT IN ( " . $skip_booking_id . " ) " : "" ) . "
177
+ ORDER BY dt.booking_date";
178
  $dates_aggregate = $wpdb->get_results( $sql_req_aggregate );
179
  $dates_approve = array_merge( $dates_approve, $dates_aggregate );
180
  }
181
 
182
+
183
  //FixIn: 6.1.1.18
184
  $prior_check_out_date = false;
185
+ if ( ! empty( $dates_approve ) ) {
186
  foreach ($dates_approve as $my_date) {
187
+
188
+ $blocked_days_range = array( $my_date->booking_date );
189
+
190
  //if ( ! in_array( (string) $bk_type, array( '2', '3' ) ) ) // Skip these booking resources '2' and '3' from adding additional unavailable times before after the booking
191
+ if (
192
+ ( ! class_exists( 'wpdev_bk_biz_l' ) )
193
+ || ( ( class_exists( 'wpdev_bk_biz_l' ) ) && ( ! wpbc_is_this_parent_resource( $bk_type ) ) )
194
+ ){ //FixIn: 9.1.2.7
195
+ list( $blocked_days_range, $prior_check_out_date ) = apply_filters( 'wpbc_get_extended_block_dates_filter', array( $blocked_days_range, $prior_check_out_date ) );
196
+ }
197
+
198
  // Define booked dates and times
199
  foreach ( $blocked_days_range as $in_date) {
 
 
200
 
201
+ $my_date = explode( ' ', $in_date );
202
+
203
+ $my_dt = explode( '-', $my_date[0] );
204
+ $my_tm = explode( ':', $my_date[1] );
205
 
206
+ array_push( $dates_array, $my_dt );
207
+ array_push( $time_array, $my_tm );
208
  }
209
  }
210
+ }
211
+
212
+ return array( $dates_array, $time_array );
213
  }
214
 
215
  // Generate booking CAPTCHA fields for booking form
216
  function createCapthaContent($bk_tp) {
217
 
218
  //FixIn: 8.8.3.5
219
+ if ( function_exists( 'gd_info' ) ) {
220
+ $gd_info = gd_info();
221
+ if ( isset( $gd_info['GD Version'] ) ) {
222
+ $gd_info = $gd_info['GD Version'];
223
+ } else {
224
+ $gd_info = json_encode( $gd_info );
225
+ }
226
+ } else {
227
+ return '<strong>Error!</strong> CAPTCHA requires the GD library activated in your PHP configuration. Please check more <a href="https://wpbookingcalendar.com/faq/captcha-showing-problems/">here</a>.';
228
+ }
229
 
230
 
231
  $admin_uri = ltrim( str_replace( get_site_url( null, '', 'admin' ), '', admin_url('admin.php?') ), '/' ) ;
232
+ if ( ( get_bk_option( 'booking_is_use_captcha' ) !== 'On' )
233
+ || ( strpos( $_SERVER['REQUEST_URI'], $admin_uri ) !== false )
234
+ ) {
235
+ return '';
236
+ } else {
237
  // Clean up dead files older than 2 minutes
238
  $this->captcha_instance->cleanup(2); //FixIn: 7.0.1.67
239
  //$this->captcha_instance->img_size = array( 72, 24 );
268
 
269
  // Get default Booking resource
270
  function get_default_type() {
271
+
272
+ if ( $this->wpdev_bk_personal !== false ) {
273
+ if ( ( isset( $_GET['booking_type'] ) ) && ( $_GET['booking_type'] != '' ) ) {
274
+ $bk_type = $_GET['booking_type'];
275
+ } else {
276
+ $bk_type = $this->wpdev_bk_personal->get_default_booking_resource_id();
277
+ }
278
+ } else {
279
+ $bk_type = 1;
280
+ }
281
+
282
+ return $bk_type;
283
  }
284
  // </editor-fold>
285
 
596
  $my_form = apply_bk_filter( 'wpbc_get_free_booking_form' , $my_boook_type );
597
 
598
  return $my_form;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
599
  }
600
 
601
  // Get booking form
653
  $bk_type = $bk_parent_br_id;
654
  }
655
  }
656
+ // End: 6.1.1.9
 
657
 
658
  $start_script_code = $this->get_script_for_calendar($bk_type, $additional_bk_types, $my_selected_dates_without_calendar, $cal_count, $start_month_calendar );
659
 
core/timeline/v2/wpbc-class-timeline_v2.php CHANGED
@@ -2609,8 +2609,9 @@ if(1)
2609
 
2610
  $this->wpbc_show_timeline( $this->dates_array, $this->bookings, $this->booking_types, $this->time_array_new );
2611
 
 
2612
  ?><script type="text/javascript">
2613
- jQuery( '.flex_tl_table_loading').hide()
2614
  jQuery( '.flex_tl_table' ).show();
2615
  </script><?php
2616
  }
2609
 
2610
  $this->wpbc_show_timeline( $this->dates_array, $this->bookings, $this->booking_types, $this->time_array_new );
2611
 
2612
+ //FixIn: 9.1.2.4
2613
  ?><script type="text/javascript">
2614
+ jQuery( '.flex_tl_table_loading').hide();
2615
  jQuery( '.flex_tl_table' ).show();
2616
  </script><?php
2617
  }
core/wpbc-activation.php CHANGED
@@ -636,7 +636,7 @@ function wpbc_booking_activate() {
636
  //}
637
 
638
  $wp_queries = array();
639
- if ( ! wpbc_is_table_exists('booking') ) { // Cehck if tables not exist yet
640
 
641
  $simple_sql = "CREATE TABLE {$wpdb->prefix}booking (
642
  booking_id bigint(20) unsigned NOT NULL auto_increment,
@@ -676,6 +676,11 @@ function wpbc_booking_activate() {
676
  }
677
  // End: 6.1.1.10
678
 
 
 
 
 
 
679
  //FixIn: 8.7.9.1
680
  if ( ! wpbc_is_table_exists('bookingdates') ) { // Check if tables not exist yet
681
  $simple_sql = "CREATE TABLE {$wpdb->prefix}bookingdates (
636
  //}
637
 
638
  $wp_queries = array();
639
+ if ( ! wpbc_is_table_exists('booking') ) { // Check if tables not exist yet
640
 
641
  $simple_sql = "CREATE TABLE {$wpdb->prefix}booking (
642
  booking_id bigint(20) unsigned NOT NULL auto_increment,
676
  }
677
  // End: 6.1.1.10
678
 
679
+ //FixIn: 9.1.2.12
680
+ if ( wpbc_is_field_in_table_exists( 'booking', 'booking_options' ) == 0 ) {
681
+ $wp_queries[] = "ALTER TABLE {$wpdb->prefix}booking ADD booking_options TEXT AFTER booking_id";
682
+ }
683
+
684
  //FixIn: 8.7.9.1
685
  if ( ! wpbc_is_table_exists('bookingdates') ) { // Check if tables not exist yet
686
  $simple_sql = "CREATE TABLE {$wpdb->prefix}bookingdates (
core/wpbc-core.php CHANGED
@@ -15,7 +15,7 @@
15
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
16
 
17
  ////////////////////////////////////////////////////////////////////////////////
18
- // Internal plugin action hooks system ///////////////////////////////////
19
  ////////////////////////////////////////////////////////////////////////////////
20
  global $wpdev_bk_action, $wpdev_bk_filter;
21
 
@@ -166,4 +166,99 @@ function add_bk_option( $option, $value = '', $deprecated = '', $autoload = 'yes
166
  if ( $u_value !== 'no-values' ) return $u_value;
167
 
168
  return add_option( $option, $value , $deprecated , $autoload );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  }
15
  if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
16
 
17
  ////////////////////////////////////////////////////////////////////////////////
18
+ // Internal plugin action hooks system
19
  ////////////////////////////////////////////////////////////////////////////////
20
  global $wpdev_bk_action, $wpdev_bk_filter;
21
 
166
  if ( $u_value !== 'no-values' ) return $u_value;
167
 
168
  return add_option( $option, $value , $deprecated , $autoload );
169
+ }
170
+
171
+
172
+ ////////////////////////////////////////////////////////////////////////////////
173
+ // Booking Meta Options - 'booking_options' IN 'wp_booking' TABLE
174
+ ////////////////////////////////////////////////////////////////////////////////
175
+
176
+ /**
177
+ * Update Booking Meta Option
178
+ *
179
+ * @param int $booking_id ID of the booking
180
+ * @param array $option_arr Associative array for saving into booking options
181
+ * Example 1: saving 'locale' => 'de_DE': [ 'locale' => 'de_DE' ],
182
+ * Example 2: [ 'paid' => '100.00', 'balance' => '90.00' ]
183
+ *
184
+ * @return array|object|stdClass[]|null
185
+ */
186
+ function wpbc_save_booking_meta_option( $booking_id, $option_arr ) {
187
+
188
+ global $wpdb;
189
+
190
+ $sql_prepare = $wpdb->prepare( "SELECT booking_options FROM {$wpdb->prefix}booking WHERE booking_id = %d", (int) $booking_id );
191
+ $select_result = $wpdb->get_results( $sql_prepare );
192
+
193
+ if ( ! empty( $select_result ) ) {
194
+
195
+ $select_result = $select_result[0]->booking_options;
196
+
197
+ if ( is_null( $select_result ) ) { // NULL -> option was not defined yet for this booking row.
198
+ $exist_booking_option_arr = array();
199
+ } else {
200
+ $exist_booking_option_arr = maybe_unserialize( $select_result );
201
+ }
202
+
203
+ } else {
204
+ return false; // No booking with such ID
205
+ }
206
+
207
+ // Merge exist booking option array with new data
208
+ $new_booking_option_arr = array_merge(
209
+ $exist_booking_option_arr,
210
+ $option_arr
211
+ );
212
+
213
+ $serialized_booking_option_arr = maybe_serialize( $new_booking_option_arr );
214
+
215
+ $sql_prepare_update = $wpdb->prepare( "UPDATE {$wpdb->prefix}booking SET booking_options = %s WHERE booking_id = %d"
216
+ , $serialized_booking_option_arr
217
+ , (int) $booking_id
218
+ );
219
+
220
+ if ( false === $wpdb->query( $sql_prepare_update ) ) { // Save to DB
221
+ debuge_error( 'Error saving to DB', __FILE__, __LINE__ );
222
+ return false;
223
+ }
224
+
225
+ return true;
226
+ }
227
+
228
+
229
+ /**
230
+ * Get Booking Meta Option
231
+ *
232
+ * @param int $booking_id ID of the booking
233
+ * @param false $option_name name of booking option or false (can be skipped) to return array of options
234
+ *
235
+ * @return array|mixed|string
236
+ */
237
+ function wpbc_get_booking_meta_option( $booking_id, $option_name = false ) {
238
+
239
+ global $wpdb;
240
+
241
+ $sql_prepare = $wpdb->prepare( "SELECT booking_options FROM {$wpdb->prefix}booking WHERE booking_id = %d", (int) $booking_id );
242
+ $select_result = $wpdb->get_results( $sql_prepare );
243
+
244
+ $exist_booking_option_arr = array();
245
+
246
+ if ( ! empty( $select_result ) ) {
247
+
248
+ $select_result = $select_result[0]->booking_options;
249
+
250
+ if ( ! is_null( $select_result ) ) { // NULL -> chekc if option was not defined for this booking row.
251
+
252
+ $exist_booking_option_arr = maybe_unserialize( $select_result );
253
+
254
+ if (
255
+ ( ! empty( $option_name ) )
256
+ && ( ! empty( $exist_booking_option_arr[ $option_name ] ) )
257
+ ) {
258
+ return $exist_booking_option_arr[ $option_name ];
259
+ }
260
+ }
261
+ }
262
+
263
+ return $exist_booking_option_arr;
264
  }
core/wpbc-css.php CHANGED
@@ -185,10 +185,12 @@ function wpbc_get_calendar_skin_url() {
185
  if ( file_exists( $custom_user_skin_folder . str_replace( array( WPBC_PLUGIN_URL , $custom_user_skin_url ), '', get_bk_option( 'booking_skin') ) ) ) {
186
  $calendar_skin_path = $custom_user_skin_url . str_replace( array(WPBC_PLUGIN_URL, $custom_user_skin_url ), '', get_bk_option( 'booking_skin') );
187
  }
 
188
  // debuge(
189
  // get_bk_option( 'booking_skin')
190
- // , WPBC_PLUGIN_URL . str_replace( WPBC_PLUGIN_URL, '', get_bk_option( 'booking_skin') )
191
- // , $custom_user_skin_url . str_replace( array(WPBC_PLUGIN_URL, $custom_user_skin_url ), '', get_bk_option( 'booking_skin') )
 
192
  // );
193
  return $calendar_skin_path;
194
  }
185
  if ( file_exists( $custom_user_skin_folder . str_replace( array( WPBC_PLUGIN_URL , $custom_user_skin_url ), '', get_bk_option( 'booking_skin') ) ) ) {
186
  $calendar_skin_path = $custom_user_skin_url . str_replace( array(WPBC_PLUGIN_URL, $custom_user_skin_url ), '', get_bk_option( 'booking_skin') );
187
  }
188
+ //debuge( wpbc_dir_list( array( WPBC_PLUGIN_DIR . '/css/skins/', $upload_dir['basedir'].'/wpbc_skins/' ) ) );
189
  // debuge(
190
  // get_bk_option( 'booking_skin')
191
+ // , WPBC_PLUGIN_DIR
192
+ // , WPBC_PLUGIN_URL
193
+ // , $upload_dir
194
  // );
195
  return $calendar_skin_path;
196
  }
core/wpbc-emails.php CHANGED
@@ -439,7 +439,9 @@ add_filter( 'wpbc_email_api_is_allow_send', 'wpbc_email_api_is_allow_send', 10,
439
  * @param string $error_description - Description
440
  */
441
  function wpbc_email_sending_error( $wp_error_object, $error_description = '' ) {
442
-
 
 
443
  if ( empty( $error_description ) ) {
444
  // $error_description = __( 'Unknown exception', 'booking' ) . '.'; // Overwrite to show error, if no description ???
445
  }
439
  * @param string $error_description - Description
440
  */
441
  function wpbc_email_sending_error( $wp_error_object, $error_description = '' ) {
442
+
443
+ if ( ( defined( 'WPBC_AJAX_ERROR_CATCH' ) ) && ( WPBC_AJAX_ERROR_CATCH ) ) { return false; } //FixIn: 9.2.1.10
444
+
445
  if ( empty( $error_description ) ) {
446
  // $error_description = __( 'Unknown exception', 'booking' ) . '.'; // Overwrite to show error, if no description ???
447
  }
core/wpbc-functions.php CHANGED
@@ -1798,7 +1798,14 @@ $is_old = false;
1798
 
1799
  }
1800
 
1801
-
 
 
 
 
 
 
 
1802
  function wpbc_update_number_new_bookings( $id_of_new_bookings, $is_new = '0' , $user_id = 1 ){
1803
  global $wpdb;
1804
 
@@ -3246,8 +3253,8 @@ function wpbc_add_log_info( $booking_id_arr, $message ) {
3246
 
3247
  $is_append = true;
3248
  foreach ( $booking_id_arr as $booking_id ) {
3249
- $date_time = date_i18n( ' [Y-m-d H:i]' );
3250
- make_bk_action('wpdev_make_update_of_remark' , $booking_id , $message . $date_time , $is_append );
3251
  }
3252
  }
3253
 
1798
 
1799
  }
1800
 
1801
+ /**
1802
+ * Update 'is_new' status of bookings in Database
1803
+ *
1804
+ * @param $id_of_new_bookings inr or comma seperated ID of bookings. Example: '1' | '3,5,7,9'
1805
+ * @param $is_new '0' | '1'
1806
+ * @param $user_id 'user_id'
1807
+ *
1808
+ */
1809
  function wpbc_update_number_new_bookings( $id_of_new_bookings, $is_new = '0' , $user_id = 1 ){
1810
  global $wpdb;
1811
 
3253
 
3254
  $is_append = true;
3255
  foreach ( $booking_id_arr as $booking_id ) {
3256
+ $date_time = date_i18n( '[Y-m-d H:i] ' );
3257
+ make_bk_action('wpdev_make_update_of_remark' , $booking_id , $date_time . $message , $is_append ); //FixIn: 9.1.2.14
3258
  }
3259
  }
3260
 
core/wpbc-include.php CHANGED
@@ -77,13 +77,15 @@ require_once( WPBC_PLUGIN_DIR . '/core/admin/wpbc-dashboard.php' );
77
 
78
  //FixIn: 9.2.1
79
  if ( 0 ) {
80
- require_once( WPBC_PLUGIN_DIR . '/includes/flex-ui/admin-flex-ui.php' );
81
- require_once( WPBC_PLUGIN_DIR . '/includes/listing_class/listing_class.php' );
82
- require_once( WPBC_PLUGIN_DIR . '/includes/pagination/pagination.php' );
83
-
84
- require_once( WPBC_PLUGIN_DIR . '/includes/page-booking_listing/ajx_bookings__sql.php' );
85
- require_once( WPBC_PLUGIN_DIR . '/includes/page-booking_listing/ajx_bookings__listing.php' );
86
- require_once( WPBC_PLUGIN_DIR . '/includes/page-booking_listing/ajx_bookings__page.php' );
 
 
87
  }
88
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
89
 
77
 
78
  //FixIn: 9.2.1
79
  if ( 0 ) {
80
+ require_once( WPBC_PLUGIN_DIR . '/includes/_toolbar_ui/toolbar_ui.php' );
81
+ require_once( WPBC_PLUGIN_DIR . '/includes/_listing_css_js/listing_ui.php' );
82
+ require_once( WPBC_PLUGIN_DIR . '/includes/_pagination/pagination.php' );
83
+ require_once( WPBC_PLUGIN_DIR . '/includes/print/bookings_print.php' );
84
+
85
+ require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__sql.php' );
86
+ require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__actions.php' );
87
+ require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__listing.php' );
88
+ require_once( WPBC_PLUGIN_DIR . '/includes/page-bookings/bookings__page.php' );
89
  }
90
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
91
 
core/wpbc-js.php CHANGED
@@ -199,7 +199,7 @@ function wpbc_js_load_vars( $where_to_load ) {
199
  , 'message_verif_same_emeil' => esc_js(__('Your emails do not match' ,'booking')) // Email Addresses Do Not Match
200
  , 'message_verif_selectdts' => esc_js(__('Please, select booking date(s) at Calendar.' ,'booking'))
201
  , 'parent_booking_resources' => '[]'
202
- , 'new_booking_title' => esc_js( apply_bk_filter('wpdev_check_for_active_language', get_bk_option( 'booking_title_after_reservation' ) ) )
203
  , 'new_booking_title_time' => get_bk_option('booking_title_after_reservation_time')
204
  , 'type_of_thank_you_message' => esc_js( get_bk_option( 'booking_type_of_thank_you_message' ) )
205
  , 'thank_you_page_URL' => wpbc_make_link_absolute( apply_bk_filter('wpdev_check_for_active_language', get_bk_option( 'booking_thank_you_page_URL' ) ) )
@@ -311,7 +311,7 @@ if ( 0 ) {
311
 
312
  if ( $where_to_load == 'admin' ) {
313
 
314
- wp_enqueue_script( 'wpbc-js-print', wpbc_plugin_url( '/assets/libs/wpbc_js_print/wpbc_js_print.js' ), array( 'jquery' ) , '1.15.1' ); //FixIn: 9.2.1.6
315
  wp_enqueue_script( 'wpbc-admin-main', wpbc_plugin_url( '/js/admin.js'), array( 'wpbc-global-vars' ), WP_BK_VERSION_NUM ); // Admin
316
  wp_enqueue_script( 'wpbc-admin-support', wpbc_plugin_url( '/core/any/js/admin-support.js'), array( 'wpbc-global-vars' ), WP_BK_VERSION_NUM );
317
 
199
  , 'message_verif_same_emeil' => esc_js(__('Your emails do not match' ,'booking')) // Email Addresses Do Not Match
200
  , 'message_verif_selectdts' => esc_js(__('Please, select booking date(s) at Calendar.' ,'booking'))
201
  , 'parent_booking_resources' => '[]'
202
+ , 'new_booking_title' => stripslashes( esc_js( apply_bk_filter('wpdev_check_for_active_language', get_bk_option( 'booking_title_after_reservation' ) ) ) ) //FixIn: 9.1.2.2
203
  , 'new_booking_title_time' => get_bk_option('booking_title_after_reservation_time')
204
  , 'type_of_thank_you_message' => esc_js( get_bk_option( 'booking_type_of_thank_you_message' ) )
205
  , 'thank_you_page_URL' => wpbc_make_link_absolute( apply_bk_filter('wpdev_check_for_active_language', get_bk_option( 'booking_thank_you_page_URL' ) ) )
311
 
312
  if ( $where_to_load == 'admin' ) {
313
 
314
+ wp_enqueue_script( 'wpbc-js-print', wpbc_plugin_url( '/assets/libs/wpbc_js_print/wpbc_js_print.js' ), array( 'jquery' ) , '2.0.0' ); //FixIn: 9.2.1.6 //FixIn: 9.1.2.13
315
  wp_enqueue_script( 'wpbc-admin-main', wpbc_plugin_url( '/js/admin.js'), array( 'wpbc-global-vars' ), WP_BK_VERSION_NUM ); // Admin
316
  wp_enqueue_script( 'wpbc-admin-support', wpbc_plugin_url( '/core/any/js/admin-support.js'), array( 'wpbc-global-vars' ), WP_BK_VERSION_NUM );
317
 
css/client.css CHANGED
@@ -412,6 +412,9 @@ form.booking_form {
412
  font-size:11px !important;
413
  }
414
  /* Rotate Icons for Loading ***********************************************/
 
 
 
415
  .wpbc_icn_autorenew::before,
416
  .wpbc_spin {
417
  -webkit-animation: spin 2s infinite linear;
412
  font-size:11px !important;
413
  }
414
  /* Rotate Icons for Loading ***********************************************/
415
+ .wpbc_animation_pause {
416
+ animation-play-state: paused !important;
417
+ }
418
  .wpbc_icn_autorenew::before,
419
  .wpbc_spin {
420
  -webkit-animation: spin 2s infinite linear;
css/wpbc-gutenberg.css CHANGED
@@ -122,6 +122,7 @@ DIV.wpbc_gb_block_shortcode_preview_wrapper.wpbc_gb_block_preview_bookingtimelin
122
  border-top: none;
123
  font-size: 0.9em;
124
  font-weight: 600;
 
125
  }
126
 
127
 
122
  border-top: none;
123
  font-size: 0.9em;
124
  font-weight: 600;
125
+ box-sizing: border-box;
126
  }
127
 
128
 
js/admin.js CHANGED
@@ -225,15 +225,22 @@ function setCheckBoxInTable(el_stutus, el_class){
225
 
226
 
227
  //FixIn: 5.4.5
228
- function wpbc_get_selected_locale( booking_id, wpdev_active_locale ) {
229
-
 
 
 
 
 
 
 
230
  var id_to_check = "" + booking_id;
231
- if ( id_to_check.indexOf('|') == -1 ) {
232
- var selected_locale = jQuery('#locale_for_booking' + booking_id).val();
233
 
234
- if ( ( selected_locale != '' ) && ( typeof(selected_locale) !== 'undefined' ) ) {
235
  wpdev_active_locale = selected_locale;
236
- }
237
  }
238
  return wpdev_active_locale;
239
  }
225
 
226
 
227
  //FixIn: 5.4.5
228
+ /**
229
+ * Get selected Locale of booking in Booking Listing page.
230
+ *
231
+ * @param booking_id Booking ID 10
232
+ * @param wpdev_active_locale Active Locale in system 'en_US'
233
+ * @returns {string} Locale 'de_DE'
234
+ */
235
+ function wpbc_get_selected_locale( booking_id, wpdev_active_locale ){
236
+
237
  var id_to_check = "" + booking_id;
238
+ if ( -1 == id_to_check.indexOf( '|' ) ){ // Not found |
239
+ var selected_locale = jQuery( '#locale_for_booking' + booking_id ).val();
240
 
241
+ if ( (selected_locale != '') && (typeof (selected_locale) !== 'undefined') ){
242
  wpdev_active_locale = selected_locale;
243
+ }
244
  }
245
  return wpdev_active_locale;
246
  }
js/client.js CHANGED
@@ -85,7 +85,9 @@ function init_datepick_cal(bk_type, date_approved_par, my_num_month, start_day_
85
  }
86
 
87
  function click_on_cal_td(){
88
- if(typeof( selectDayPro ) == 'function') {selectDayPro( bk_type);}
 
 
89
  }
90
 
91
  function selectDay(date) {
@@ -554,7 +556,7 @@ function setReservedSelectedDates( bk_type ){
554
  jQuery( '#hided_booking_form' + bk_type ).prevAll( 'select[name="active_booking_form"]' ).hide(); //FixIn: 7.1.2.13
555
  jQuery( '#hided_booking_form' + bk_type ).prevAll( 'label[for="calendar_type"]' ).hide();
556
 
557
- makeScroll('#ajax_respond_insert' + bk_type);
558
 
559
  if ((document.getElementById('gateway_payment_forms' + bk_type) != null) &&
560
  (document.getElementById('gateway_payment_forms' + bk_type).innerHTML != ''))
85
  }
86
 
87
  function click_on_cal_td(){
88
+ if ( typeof (selectDayPro) == 'function' ){
89
+ selectDayPro( bk_type );
90
+ }
91
  }
92
 
93
  function selectDay(date) {
556
  jQuery( '#hided_booking_form' + bk_type ).prevAll( 'select[name="active_booking_form"]' ).hide(); //FixIn: 7.1.2.13
557
  jQuery( '#hided_booking_form' + bk_type ).prevAll( 'label[for="calendar_type"]' ).hide();
558
 
559
+ //makeScroll('#ajax_respond_insert' + bk_type); //FixIn: 9.1.2.1
560
 
561
  if ((document.getElementById('gateway_payment_forms' + bk_type) != null) &&
562
  (document.getElementById('gateway_payment_forms' + bk_type).innerHTML != ''))
js/datepick/jquery.datepick-ar.js CHANGED
@@ -1,6 +1,7 @@
1
  /* Arabic Translation for jQuery UI date picker plugin. */
2
  /* Khaled Al Horani -- koko.dw@gmail.com */
3
  /* خالد الحوراني -- koko.dw@gmail.com */
 
4
  /* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
5
  (function($) {
6
  $.datepick.regional['ar'] = {
@@ -11,8 +12,8 @@
11
  nextText: 'التالي&#x3e;', nextStatus: 'عرض الشهر القادم',
12
  nextBigText: '&#x3e;&#x3e;', nextBigStatus: '',
13
  currentText: 'اليوم', currentStatus: 'عرض الشهر الحالي',
14
- monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران',
15
- 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
16
  monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
17
  monthStatus: 'عرض شهر آخر', yearStatus: 'عرض سنة آخرى',
18
  weekHeader: 'أسبوع', weekStatus: 'أسبوع السنة',
1
  /* Arabic Translation for jQuery UI date picker plugin. */
2
  /* Khaled Al Horani -- koko.dw@gmail.com */
3
  /* خالد الحوراني -- koko.dw@gmail.com */
4
+ /* edit by Faisal khaled -- f.aldeini@gmail.com */
5
  /* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
6
  (function($) {
7
  $.datepick.regional['ar'] = {
12
  nextText: 'التالي&#x3e;', nextStatus: 'عرض الشهر القادم',
13
  nextBigText: '&#x3e;&#x3e;', nextBigStatus: '',
14
  currentText: 'اليوم', currentStatus: 'عرض الشهر الحالي',
15
+ monthNames: ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',
16
+ 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
17
  monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
18
  monthStatus: 'عرض شهر آخر', yearStatus: 'عرض سنة آخرى',
19
  weekHeader: 'أسبوع', weekStatus: 'أسبوع السنة',
js/wpbc_times.js CHANGED
@@ -1104,8 +1104,12 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
1104
  if ( typeof(wpbc_get_conditional_section_id_for_weekday) == 'function' ){
1105
  var conditional_field_element_id = wpbc_get_conditional_section_id_for_weekday( td_class, bk_type );
1106
  if ( conditional_field_element_id !== false ){
1107
- time_field_to_check[ 0 ] = conditional_field_element_id + ' ' + time_field_to_check[ 0 ];
1108
- time_field_to_check[ 1 ] = conditional_field_element_id + ' ' + time_field_to_check[ 1 ];
 
 
 
 
1109
  }
1110
  }
1111
 
@@ -1234,7 +1238,6 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
1234
  time_slot_field_name2 = conditional_field_element_id + ' ' + 'select[name="rangetime' + bk_type + '[]"]';
1235
  }
1236
  }
1237
-
1238
  // Get rangetime element from possible conditional Seasonal section //FixIn: 8.4.5.3
1239
  if ( typeof(wpbc_get_conditional_section_id_for_seasons) == 'function' ){
1240
  var conditional_field_element_id2 = wpbc_get_conditional_section_id_for_seasons( td_class, bk_type );
@@ -1291,6 +1294,28 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
1291
  //var is_element_exist = jQuery( time_slot_field_name+','+time_slot_field_name2 ).length; //FixIn:6.1.1.6 - Previously was this line
1292
  var start_time_fields = 'select[name="starttime' + bk_type + '"]'; //FixIn:6.1.1.6
1293
  var start_time_fields2 = 'select[name="starttime' + bk_type + '[]"]'; //FixIn:6.1.1.6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1294
  var is_element_exist = jQuery( time_slot_field_name + ',' + time_slot_field_name2 + ',' + start_time_fields + ',' + start_time_fields2 ).length; //FixIn:6.1.1.6
1295
 
1296
  if (is_element_exist) {
@@ -1328,7 +1353,12 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
1328
  var my_start_time_options = jQuery( start_time_fields + ' option,'+start_time_fields2 + ' option');
1329
 
1330
  if ( ( my_start_time_options.length > 0 )
1331
- && ( ( bk_days_selection_mode == 'single' ) /*|| ( bk_days_selection_mode == 'multiple' )*/ ) //FixIn: 8.5.2.4
 
 
 
 
 
1332
  ){ // Only if range selections exist and we are have single days selections
1333
  var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array, td_class, [ start_time_fields, start_time_fields2 ] );
1334
  var some_exist_time_slots = [];
@@ -1347,7 +1377,12 @@ function wpbc_is_time_field_in_booking_form( resource_id, form_elements ){
1347
 
1348
  //Check may be its not possible to select any other time slots from the selectbox, because its already booked, sothen mark this day as booked.
1349
  if ( ( my_timerange_value.length > 0 )
1350
- && ( ( bk_days_selection_mode == 'single' ) || ( bk_days_selection_mode == 'multiple' ) )
 
 
 
 
 
1351
  ){ // Only if range selections exist and we are have single days selections
1352
  var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array, td_class, [ time_slot_field_name, time_slot_field_name2 ] );
1353
  var some_exist_time_slots = [];
1104
  if ( typeof(wpbc_get_conditional_section_id_for_weekday) == 'function' ){
1105
  var conditional_field_element_id = wpbc_get_conditional_section_id_for_weekday( td_class, bk_type );
1106
  if ( conditional_field_element_id !== false ){
1107
+ if ( time_field_to_check[ 0 ].substr( 0, conditional_field_element_id.length ) !== conditional_field_element_id ){ //FixIn: 9.1.2.8
1108
+ time_field_to_check[ 0 ] = conditional_field_element_id + ' ' + time_field_to_check[ 0 ];
1109
+ }
1110
+ if ( time_field_to_check[ 1 ].substr( 0, conditional_field_element_id.length ) !== conditional_field_element_id ){
1111
+ time_field_to_check[ 1 ] = conditional_field_element_id + ' ' + time_field_to_check[ 1 ];
1112
+ }
1113
  }
1114
  }
1115
 
1238
  time_slot_field_name2 = conditional_field_element_id + ' ' + 'select[name="rangetime' + bk_type + '[]"]';
1239
  }
1240
  }
 
1241
  // Get rangetime element from possible conditional Seasonal section //FixIn: 8.4.5.3
1242
  if ( typeof(wpbc_get_conditional_section_id_for_seasons) == 'function' ){
1243
  var conditional_field_element_id2 = wpbc_get_conditional_section_id_for_seasons( td_class, bk_type );
1294
  //var is_element_exist = jQuery( time_slot_field_name+','+time_slot_field_name2 ).length; //FixIn:6.1.1.6 - Previously was this line
1295
  var start_time_fields = 'select[name="starttime' + bk_type + '"]'; //FixIn:6.1.1.6
1296
  var start_time_fields2 = 'select[name="starttime' + bk_type + '[]"]'; //FixIn:6.1.1.6
1297
+
1298
+ // Get starttime element from possible conditional Weekdays section
1299
+ if( typeof( wpbc_get_conditional_section_id_for_weekday ) == 'function' ) { //FixIn: 9.1.2.8
1300
+ var conditional_field_element_id = wpbc_get_conditional_section_id_for_weekday( td_class, bk_type );
1301
+ if ( conditional_field_element_id !== false ) {
1302
+ start_time_fields = conditional_field_element_id + ' ' + 'select[name="starttime' + bk_type + '"]';
1303
+ start_time_fields2 = conditional_field_element_id + ' ' + 'select[name="starttime' + bk_type + '[]"]';
1304
+ }
1305
+ }
1306
+ // Get starttime element from possible conditional Seasonal section
1307
+ if ( typeof(wpbc_get_conditional_section_id_for_seasons) == 'function' ){
1308
+ var conditional_field_element_id2 = wpbc_get_conditional_section_id_for_seasons( td_class, bk_type );
1309
+
1310
+ if ( conditional_field_element_id2 !== false ){
1311
+ start_time_fields = conditional_field_element_id2 + ' ' + 'select[name="starttime' + bk_type + '"]';
1312
+ start_time_fields2 = conditional_field_element_id2 + ' ' + 'select[name="starttime' + bk_type + '[]"]';
1313
+ }
1314
+ }
1315
+
1316
+
1317
+
1318
+
1319
  var is_element_exist = jQuery( time_slot_field_name + ',' + time_slot_field_name2 + ',' + start_time_fields + ',' + start_time_fields2 ).length; //FixIn:6.1.1.6
1320
 
1321
  if (is_element_exist) {
1353
  var my_start_time_options = jQuery( start_time_fields + ' option,'+start_time_fields2 + ' option');
1354
 
1355
  if ( ( my_start_time_options.length > 0 )
1356
+ && (
1357
+ ( (bk_days_selection_mode == 'single') /*&& (wpbcg.time_disable_modes.indexOf( 'single' ) >= 0)*/ ) //FixIn: 9.1.2.9
1358
+ || ( (bk_days_selection_mode == 'multiple') && (wpbcg.time_disable_modes.indexOf( 'multiple' ) >= 0) )
1359
+ || ( (bk_days_selection_mode == 'dynamic') && (wpbcg.time_disable_modes.indexOf( 'dynamic' ) >= 0) )
1360
+ || ( (bk_days_selection_mode == 'fixed') && (wpbcg.time_disable_modes.indexOf( 'fixed' ) >= 0) )
1361
+ )
1362
  ){ // Only if range selections exist and we are have single days selections
1363
  var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array, td_class, [ start_time_fields, start_time_fields2 ] );
1364
  var some_exist_time_slots = [];
1377
 
1378
  //Check may be its not possible to select any other time slots from the selectbox, because its already booked, sothen mark this day as booked.
1379
  if ( ( my_timerange_value.length > 0 )
1380
+ && (
1381
+ ( (bk_days_selection_mode == 'single') /*&& (wpbcg.time_disable_modes.indexOf( 'single' ) >= 0)*/ ) //FixIn: 9.1.2.9
1382
+ || ( (bk_days_selection_mode == 'multiple') && (wpbcg.time_disable_modes.indexOf( 'multiple' ) >= 0) )
1383
+ || ( (bk_days_selection_mode == 'dynamic') && (wpbcg.time_disable_modes.indexOf( 'dynamic' ) >= 0) )
1384
+ || ( (bk_days_selection_mode == 'fixed') && (wpbcg.time_disable_modes.indexOf( 'fixed' ) >= 0) )
1385
+ )
1386
  ){ // Only if range selections exist and we are have single days selections
1387
  var removed_time_slots = is_time_slot_booked_for_this_time_array( bk_type, times_array, td_class, [ time_slot_field_name, time_slot_field_name2 ] );
1388
  var some_exist_time_slots = [];
readme.txt CHANGED
@@ -5,11 +5,11 @@ Tags: booking calendar, booking system, availability calendar, events calendar,
5
  Requires at least: 4.0
6
  Requires PHP: 5.6
7
  Tested up to: 6.0
8
- Stable tag: 9.1.1
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
12
- Booking Calendar - best booking plugin. Easily get full day or time slot bookings and show availability in a clean and powerful booking system.
13
 
14
  == Description ==
15
 
@@ -230,12 +230,32 @@ Please see [Video Guides](https://wpbookingcalendar.com/help/).
230
  13. **Time Slots**. Simple configuration of **time slots** selection in booking form.
231
 
232
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
233
  = 9.1.1 =
234
  - Changes in **all** versions:
235
  * **New**. Ability to show tooltips of booked times at mobile devices. (9.2.1.5)
236
  * **Under Hood** Separate section of code for '#bklnk' in search availability (9.2.1.2)
237
  * **Fix**. Issue of highlighting today date in calendar, after scrolling calendar months (9.2.1.7)
238
  * **Fix**. Vulnerability issue relative Deserialization and PHP object injection. (9.2.1.8)
 
239
  - Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
240
  * **Fix**. Issue of printing in MS Edge. (9.2.1.6)
241
  * **Fix**. Error: "Uncaught ReferenceError: wpbc_timeline_obj is not defined" while using [visitorbookingslisting] shortcode in the emails. (9.2.1.3)
5
  Requires at least: 4.0
6
  Requires PHP: 5.6
7
  Tested up to: 6.0
8
+ Stable tag: 9.1.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
12
+ Booking Calendar - original 1st booking plugin for WordPress. Get full day or time slot bookings & show availability in a easy to use booking system.
13
 
14
  == Description ==
15
 
230
  13. **Time Slots**. Simple configuration of **time slots** selection in booking form.
231
 
232
  == Changelog ==
233
+ = 9.1.2 =
234
+ - Changes in **all** versions:
235
+ * **New**. Ability permanently delete all imported bookings before new import, instead of sending to Trash. Activate this option at the Booking > Settings > Sync > "General" page. (9.1.2.6)
236
+ * **Fix**. Double scrolling issue to "Thank you" message after submitting of the booking. (9.1.2.1)
237
+ * **Fix**. Showing slashes in "Thank you" message, if used quote symbols. (9.1.2.2)
238
+ * **Fix**. Issue of incorrectly defining path for calendar skins at some servers. (9.1.2.10)
239
+ * **Under hood**. New 'booking_options' field in booking table in Database, for saving different bookings meta data, like booking language locale, etc.. (9.1.2.12) *(Business Large, MultiUser)*
240
+ - Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
241
+ * **Improvement**. Disable using "Unavailable time before / after booking" in booking resources with specific capacity. Otherwise it generate availability issue. (9.1.2.7) *(Business Large, MultiUser)*
242
+ * **Improvement**. Ability to disabled fully booked dates in calendar, if in booking form was used "start time" fields in the conditional section. (9.1.2.8) *(Business Medium/Large, MultiUser)*
243
+ * **Improvement**. Block dates in calendar, if all time slots was booked for specific date(s), if activated this option "Disable booked time slots in multiple days selection mode" at the Booking > Settings General page in "Advanced" section. (9.1.2.9) *(Business Small/Medium/Large, MultiUser)*
244
+ * **Improvement**. Making automatic selection of custom search fields in search form after initial search. (9.1.2.11)
245
+ * **Improvement**. Updated print script to version 2.0.0 (9.1.2.13)
246
+ * **Improvement**. Save time of log note at the beginning of message (9.1.2.14)
247
+ * **Fix**. Prevent of showing '1980-01-01' in search results, after initial loading of page (if searching was not made, yet) instead of [search_check_in] and [search_check_out] shortcodes . (9.1.2.11)
248
+ * **Fix**. Showing booking resource labels with very long name, more than 80 characters. Trim such name to 80 symbols and show full booking resource name in a tooltip, when mouse over. (9.1.2.3)
249
+ * **Fix**. Uncaught TypeError: jQuery(...).hide is not a function, during cancellation of the bookings. (9.1.2.4)
250
+ * **Under hood**. Search availability enhance functionality. Ability to use shortcode like this [bookinglooking type=4 nummonths=1] instead of [booking type=4 nummonths=1] in content of the page, for ability to show this page in search availability result. Usually this trick useful, if the Booking Calendar shortcode used in side bar or meta-boxes of as widget, and we can not use it in main page content. Parameters of this [bookinglooking ... ] shortcode have to be the same as in [booking ... ] shortcode. Please check more here https://wpbookingcalendar.com/faq/shortcode-booking-form/ (9.1.2.5) *(Business Large, MultiUser)*
251
+
252
  = 9.1.1 =
253
  - Changes in **all** versions:
254
  * **New**. Ability to show tooltips of booked times at mobile devices. (9.2.1.5)
255
  * **Under Hood** Separate section of code for '#bklnk' in search availability (9.2.1.2)
256
  * **Fix**. Issue of highlighting today date in calendar, after scrolling calendar months (9.2.1.7)
257
  * **Fix**. Vulnerability issue relative Deserialization and PHP object injection. (9.2.1.8)
258
+ * **Under hood**. Skip showing errors of emails sending if such errors recorded for general ajax purpose. (9.2.1.10)
259
  - Changes in **Personal / Business Small / Business Medium / Business Large / MultiUser** versions:
260
  * **Fix**. Issue of printing in MS Edge. (9.2.1.6)
261
  * **Fix**. Error: "Uncaught ReferenceError: wpbc_timeline_obj is not defined" while using [visitorbookingslisting] shortcode in the emails. (9.2.1.3)
wpdev-booking.php CHANGED
@@ -7,7 +7,7 @@ Author: wpdevelop, oplugins
7
  Author URI: https://wpbookingcalendar.com/
8
  Text Domain: booking
9
  Domain Path: /languages/
10
- Version: 9.1.1
11
  */
12
 
13
  /* Copyright 2009 - 2022 www.wpbookingcalendar.com (email: info@wpbookingcalendar.com),
@@ -29,7 +29,7 @@ Version: 9.1.1
29
  if ( ! defined( 'ABSPATH' ) ) die( '<h3>Direct access to this file do not allow!</h3>' ); // Exit if accessed directly
30
 
31
 
32
- if ( ! defined( 'WP_BK_VERSION_NUM' ) ) { define( 'WP_BK_VERSION_NUM', '9.1.1' ); }
33
 
34
  ////////////////////////////////////////////////////////////////////////////////
35
  // PRIMARY URL CONSTANTS
7
  Author URI: https://wpbookingcalendar.com/
8
  Text Domain: booking
9
  Domain Path: /languages/
10
+ Version: 9.1.2
11
  */
12
 
13
  /* Copyright 2009 - 2022 www.wpbookingcalendar.com (email: info@wpbookingcalendar.com),
29
  if ( ! defined( 'ABSPATH' ) ) die( '<h3>Direct access to this file do not allow!</h3>' ); // Exit if accessed directly
30
 
31
 
32
+ if ( ! defined( 'WP_BK_VERSION_NUM' ) ) { define( 'WP_BK_VERSION_NUM', '9.1.2' ); }
33
 
34
  ////////////////////////////////////////////////////////////////////////////////
35
  // PRIMARY URL CONSTANTS