Simple Calendar – Google Calendar Plugin - Version 3.1.0

Version Description

  • May 25, 2016 =

  • Fix: qTips arrow should line up with events more accurately.

  • Fix: Cache interval will now update correctly when saved.

  • Fix: Mobile-view bullet colors now show custom event colors when used with the Google Calendar Pro add-on.

  • Fix: [id] event builder code now just returns the event ID.

  • Feature: Added new template tag [ical-shortcode] to return the iCal ID.

  • Dev: Switched to set version of qTip library instead of latest release for compatibility issues.

  • Dev: Duplicate dropdowns when adding a custom view are now handled properly with JS.

Download this release

Release Info

Developer nickyoung87
Plugin Icon 128x128 Simple Calendar – Google Calendar Plugin
Version 3.1.0
Comparing to
See all releases

Code changes from version 3.0.16 to 3.1.0

Files changed (64) hide show
  1. assets/css/admin-activation.min.css +1 -1
  2. assets/css/admin-add-calendar.min.css +1 -1
  3. assets/css/admin.min.css +1 -1
  4. assets/css/default-calendar-grid.css +0 -32
  5. assets/css/default-calendar-grid.min.css +2 -2
  6. assets/css/default-calendar-list.min.css +1 -1
  7. assets/css/vendor/jquery.qtip.css +4 -465
  8. assets/css/vendor/jquery.qtip.min.css +2 -2
  9. assets/images/welcome/calendar-settings-appearance.png +0 -0
  10. assets/images/welcome/fullcalendar-google-calendar-pro-grid-view.png +0 -0
  11. assets/images/welcome/google-calendar-pro-list-view-annotated.png +0 -0
  12. assets/images/welcome/grid-view-basic.png +0 -0
  13. assets/images/welcome/grid-view-custom-colors.png +0 -0
  14. assets/js/admin-add-calendar.min.js +1 -1
  15. assets/js/admin.js +11 -0
  16. assets/js/admin.min.js +2 -2
  17. assets/js/default-calendar.js +1 -1
  18. assets/js/default-calendar.min.js +2 -2
  19. assets/js/vendor/jquery.qtip.js +4 -724
  20. assets/js/vendor/jquery.qtip.min.js +4 -4
  21. google-calendar-events.php +3 -4
  22. includes/abstracts/field.php +5 -0
  23. includes/admin/ajax.php +17 -12
  24. includes/admin/fields/checkbox.php +1 -1
  25. includes/admin/fields/license.php +8 -8
  26. includes/admin/menus.php +3 -8
  27. includes/admin/meta-boxes.php +1 -1
  28. includes/admin/metaboxes/attach-calendar.php +2 -2
  29. includes/admin/metaboxes/settings.php +14 -12
  30. includes/admin/pages/add-ons.php +1 -1
  31. includes/admin/pages/advanced.php +1 -1
  32. includes/admin/welcome.php +15 -10
  33. includes/assets.php +29 -66
  34. includes/calendars/admin/default-calendar-admin.php +10 -8
  35. includes/calendars/views/default-calendar-grid.php +17 -3
  36. includes/events/event-builder.php +4 -0
  37. includes/events/event.php +10 -0
  38. includes/feeds/admin/google-admin.php +3 -3
  39. includes/feeds/admin/grouped-calendars-admin.php +2 -2
  40. includes/feeds/google.php +2 -1
  41. includes/functions/admin.php +5 -3
  42. includes/main.php +3 -1
  43. readme.txt +40 -19
  44. vendor/composer/LICENSE +1 -1
  45. vendor/composer/autoload_namespaces.php +0 -1
  46. vendor/composer/autoload_psr4.php +1 -0
  47. vendor/composer/installed.json +65 -63
  48. vendor/composer/installers/README.md +21 -4
  49. vendor/composer/installers/composer.json +7 -2
  50. vendor/composer/installers/src/Composer/Installers/BaseInstaller.php +4 -3
  51. vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php +59 -25
  52. vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php +2 -0
  53. vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php +11 -0
  54. vendor/composer/installers/src/Composer/Installers/Installer.php +2 -0
  55. vendor/composer/installers/src/Composer/Installers/KirbyInstaller.php +2 -0
  56. vendor/composer/installers/src/Composer/Installers/MauticInstaller.php +25 -0
  57. vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php +2 -0
  58. vendor/composer/installers/tests/Composer/Installers/Test/InstallerTest.php +27 -0
  59. vendor/symfony/polyfill-mbstring/Mbstring.php +2 -2
  60. vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1101 -0
  61. vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.ser +0 -1
  62. vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1109 -0
  63. vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.ser +0 -1
  64. vendor/symfony/polyfill-mbstring/composer.json +1 -1
assets/css/admin-activation.min.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! Simple Calendar - 3.0.16
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
1
+ /*! Simple Calendar - 3.1.0
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
assets/css/admin-add-calendar.min.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! Simple Calendar - 3.0.16
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
1
+ /*! Simple Calendar - 3.1.0
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
assets/css/admin.min.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! Simple Calendar - 3.0.16
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
1
+ /*! Simple Calendar - 3.1.0
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
assets/css/default-calendar-grid.css CHANGED
@@ -373,38 +373,6 @@
373
  background-color: #fff;
374
  border: 1px solid rgba(0, 0, 0, 0.1);
375
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); }
376
- .simcal-event-bubble:before {
377
- border-bottom: 5px solid #fff;
378
- border-left: 5px solid transparent;
379
- border-right: 5px solid transparent;
380
- content: ' ';
381
- display: block;
382
- font-size: 0;
383
- height: 0;
384
- left: 50%;
385
- line-height: 0;
386
- margin: -5px 0 0 -5px;
387
- position: absolute;
388
- width: 0;
389
- z-index: 16000; }
390
- .simcal-event-bubble:after {
391
- border-bottom: 5px solid rgba(0, 0, 0, 0.18);
392
- border-left: 5px solid transparent;
393
- border-right: 5px solid transparent;
394
- content: ' ';
395
- display: block;
396
- font-size: 0;
397
- height: 0;
398
- left: 50%;
399
- line-height: 0;
400
- margin: -6px 0 0 -5px;
401
- position: absolute;
402
- top: 0;
403
- width: 0;
404
- z-index: 14999; }
405
  .simcal-event-bubble .simcal-event-details p,
406
  .simcal-event-bubble .simcal-event-details .simcal-event-description {
407
  margin: 0 0 1em; }
408
-
409
- .qtip-tip {
410
- display: none !important; }
373
  background-color: #fff;
374
  border: 1px solid rgba(0, 0, 0, 0.1);
375
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
376
  .simcal-event-bubble .simcal-event-details p,
377
  .simcal-event-bubble .simcal-event-details .simcal-event-description {
378
  margin: 0 0 1em; }
 
 
 
assets/css/default-calendar-grid.min.css CHANGED
@@ -1,6 +1,6 @@
1
- /*! Simple Calendar - 3.0.16
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
5
 
6
- .simcal-default-calendar .simcal-nav-button,.simcal-default-calendar .simcal-nav-button:focus,.simcal-default-calendar .simcal-nav-button:hover{background:0 0;border:0;box-shadow:none;outline:0}@font-face{font-family:simple-calendar;src:url(../fonts/simple-calendar.eot?43976014);src:url(../fonts/simple-calendar.eot?43976014#iefix) format("embedded-opentype"),url(../fonts/simple-calendar.woff?43976014) format("woff"),url(../fonts/simple-calendar.ttf?43976014) format("truetype"),url(../fonts/simple-calendar.svg?43976014#simple-calendar) format("svg");font-weight:400;font-style:normal}[class*=" simcal-icon-"]:before,[class^=simcal-icon-]:before{display:inline-block;font-family:simple-calendar;font-style:normal;font-weight:400;margin-right:.2em;speak:none;text-decoration:inherit;text-align:center;width:1em;font-variant:normal;text-transform:none;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.simcal-icon-spin{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.simcal-icon-animate:before{transition:all .2s ease-in-out}.simcal-icon-rotate-180:before{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.simcal-icon-calendar-empty:before{content:'\e800'}.simcal-icon-calendar:before{content:'\e801'}.simcal-icon-calendar-logo:before{content:'\e802'}.simcal-icon-settings:before{content:'\e804'}.simcal-icon-toggles:before{content:'\e805'}.simcal-icon-list:before{content:'\e806'}.simcal-icon-event:before{content:'\e807'}.simcal-icon-help:before{content:'\e808'}.simcal-icon-panel:before{content:'\e80a'}.simcal-icon-grid:before{content:'\e80b'}.simcal-icon-google:before{content:'\e80c'}.simcal-icon-docs:before{content:'\e80f'}.simcal-icon-hourglass:before{content:'\e811'}.simcal-icon-globe:before{content:'\e812'}.simcal-icon-timezones:before{content:'\e813'}.simcal-icon-warning:before{content:'\e815'}.simcal-icon-wordpress:before{content:'\e814'}.simcal-icon-up:before{content:'\e80e'}.simcal-icon-right:before{content:'\e809'}.simcal-icon-down:before{content:'\e80d'}.simcal-icon-left:before{content:'\e803'}.simcal-icon-spinner:before{content:'\e810'}.simcal-calendar{position:relative}.simcal-powered{display:block;margin:-10px 0 20px}.simcal-align-left{text-align:left}.simcal-align-right{text-align:right}.simcal-default-calendar .simcal-current h3{margin:0;padding:0}.simcal-default-calendar .simcal-nav{vertical-align:middle}.simcal-default-calendar .simcal-nav-button{cursor:pointer;margin:0;padding:0;transition:margin .2s ease-out;width:100%}.simcal-default-calendar .simcal-nav-button.simcal-prev:hover{margin-left:-10px}.simcal-default-calendar .simcal-nav-button.simcal-next:hover{margin-right:-10px}.simcal-default-calendar .simcal-nav-button:disabled:hover,.simcal-default-calendar ul.simcal-attachments,.simcal-default-calendar ul.simcal-attendees{margin:0;padding:0}.simcal-default-calendar .simcal-nav-button:disabled{cursor:default}.simcal-default-calendar .simcal-events{list-style:none;margin-left:0}.simcal-default-calendar .simcal-events-toggle{border:0;box-shadow:none;text-align:center;width:100%}.simcal-default-calendar .simcal-events-toggle:active,.simcal-default-calendar .simcal-events-toggle:focus,.simcal-default-calendar .simcal-events-toggle:hover{border:0;box-shadow:none;outline:0}.simcal-default-calendar li.simcal-attachment,.simcal-default-calendar li.simcal-attendee{list-style:none;margin-bottom:4px}.simcal-default-calendar li.simcal-attachment:last-child,.simcal-default-calendar li.simcal-attendee:last-child{margin-bottom:0}.simcal-default-calendar li.simcal-attachment small,.simcal-default-calendar li.simcal-attendee small{opacity:.9;text-transform:lowercase}.simcal-default-calendar .simcal-organizer a,.simcal-default-calendar li.simcal-attachment a,.simcal-default-calendar li.simcal-attendee a{border-bottom:0;text-decoration:none}.simcal-default-calendar .simcal-organizer img,.simcal-default-calendar li.simcal-attachment img,.simcal-default-calendar li.simcal-attendee img{display:inline-block;margin:0 4px;max-height:24px;max-width:24px}.simcal-default-calendar .simcal-tooltip-content{font-size:1.2em;line-height:1.4;padding:5px}.simcal-default-calendar .simcal-ajax-loader{height:100%;left:0;position:absolute;top:0;width:100%}.simcal-default-calendar .simcal-ajax-loader>i{font-size:48px;left:50%;line-height:1;margin:-36px 0 0 -36px;position:absolute;top:50%}.simcal-default-calendar .simcal-ajax-loader.simcal-spinner-top>i{top:20%}.simcal-default-calendar .simcal-ajax-loader.simcal-spinner-bottom>i{bottom:20%;top:auto}.simcal-default-calendar-light .simcal-nav-button{color:rgba(0,0,0,.6)}.simcal-default-calendar-light .simcal-nav-button:disabled,.simcal-default-calendar-light .simcal-nav-button:disabled:hover{color:rgba(255,255,255,.9)!important}.simcal-default-calendar-light .simcal-nav-button:focus,.simcal-default-calendar-light .simcal-nav-button:hover{color:rgba(0,0,0,.9)}.simcal-default-calendar-light .simcal-events-toggle{color:rgba(0,0,0,.6)}.simcal-default-calendar-light .simcal-events-toggle:hover{background-color:rgba(0,0,0,.1);color:#fff}.simcal-default-calendar-light .simcal-ajax-loader{background-color:rgba(0,0,0,.1)}.simcal-default-calendar-light .simcal-ajax-loader>i{color:rgba(0,0,0,.3)}.simcal-default-calendar-dark .simcal-nav-button{color:rgba(255,255,255,.6)}.simcal-default-calendar-dark .simcal-nav-button:disabled,.simcal-default-calendar-dark .simcal-nav-button:disabled:hover{color:rgba(0,0,0,.9)!important}.simcal-default-calendar-dark .simcal-nav-button:focus,.simcal-default-calendar-dark .simcal-nav-button:hover{color:rgba(255,255,255,.9)}.simcal-default-calendar-dark .simcal-events-toggle{color:rgba(255,255,255,.6)}.simcal-default-calendar-dark .simcal-events-toggle:hover{background-color:rgba(255,255,255,.1);color:#000}.simcal-default-calendar-dark .simcal-ajax-loader{background-color:rgba(255,255,255,.1)}.simcal-default-calendar-dark .simcal-ajax-loader>i{color:rgba(255,255,255,.3)}.simcal-default-calendar-grid>table{table-layout:fixed;width:100%}.simcal-default-calendar-grid>table tbody td,.simcal-default-calendar-grid>table thead th{text-align:center;vertical-align:top}.simcal-default-calendar-grid>table tbody td{padding:0!important}.simcal-default-calendar-grid .simcal-calendar-head .simcal-nav{padding:10px 0;vertical-align:middle}.simcal-default-calendar-grid .simcal-calendar-head .simcal-nav.simcal-current,.simcal-default-calendar-grid .simcal-calendar-head .simcal-nav.simcal-prev-wrapper{border-right:0}.simcal-default-calendar-grid .simcal-day>div{box-sizing:content-box;display:block;height:100%}.simcal-default-calendar-grid .simcal-day-void{border-width:0 0 1px;height:100%;min-height:32px}.simcal-default-calendar-grid .simcal-day-void.simcal-day-void-last{border-right-width:1px}.simcal-default-calendar-grid .simcal-day-number{display:block;line-height:1;padding:2px 4px 3px;vertical-align:middle}.simcal-default-calendar-grid .simcal-no-events{display:block;min-height:32px}.simcal-default-calendar-grid.simcal-default-calendar-light .simcal-day:hover{background-color:rgba(0,0,0,.1)}.simcal-default-calendar-grid.simcal-default-calendar-light .simcal-day-void,.simcal-default-calendar-grid.simcal-default-calendar-light .simcal-day-void:hover{background-color:rgba(0,0,0,.04)}.simcal-default-calendar-grid.simcal-default-calendar-light .simcal-day-number{background:rgba(0,0,0,.1)}.simcal-default-calendar-grid.simcal-default-calendar-dark .simcal-day:hover{background-color:rgba(255,255,255,.18)}.simcal-default-calendar-grid.simcal-default-calendar-dark .simcal-day-void,.simcal-default-calendar-grid.simcal-default-calendar-dark .simcal-day-void:hover{background-color:rgba(255,255,255,.05)}.simcal-default-calendar-grid.simcal-default-calendar-dark .simcal-day-number{background:rgba(255,255,255,.1)}.simcal-default-calendar-grid .simcal-events{font-size:.68em;line-height:1.4;list-style:none;margin:0;padding:0;text-align:left}.simcal-default-calendar-grid .simcal-events>.simcal-event{border-bottom-style:solid;border-bottom-width:1px;cursor:pointer;list-style:none;margin:0 0 2px;padding:4px}.simcal-default-calendar-grid .simcal-events>.simcal-event:hover{text-decoration:underline}.simcal-default-calendar-grid .simcal-events>.simcal-event:last-child{border-bottom:0;margin-bottom:0}.simcal-default-calendar-grid.simcal-default-calendar-light .simcal-event{border-bottom-color:rgba(0,0,0,.1)}.simcal-default-calendar-grid.simcal-default-calendar-dark .simcal-event{border-bottom-color:rgba(255,255,255,.1)}.simcal-default-calendar-grid .simcal-events-dots{cursor:pointer;display:block;line-height:.7;margin:3px 0;text-align:center}.simcal-default-calendar-grid .simcal-events-toggle{background:0 0;display:block;font-size:10px;padding:2px 0}.simcal-event-bubble{background-color:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.simcal-event-bubble:after,.simcal-event-bubble:before{border-left:5px solid transparent;border-right:5px solid transparent;content:' ';display:block;font-size:0;height:0;left:50%;line-height:0;position:absolute;width:0}.simcal-event-bubble:before{border-bottom:5px solid #fff;margin:-5px 0 0 -5px;z-index:16000}.simcal-event-bubble:after{border-bottom:5px solid rgba(0,0,0,.18);margin:-6px 0 0 -5px;top:0;z-index:14999}.simcal-event-bubble .simcal-event-details .simcal-event-description,.simcal-event-bubble .simcal-event-details p{margin:0 0 1em}.qtip-tip{display:none!important}
1
+ /*! Simple Calendar - 3.1.0
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
5
 
6
+ .simcal-default-calendar .simcal-nav-button,.simcal-default-calendar .simcal-nav-button:focus,.simcal-default-calendar .simcal-nav-button:hover{background:0 0;border:0;box-shadow:none;outline:0}@font-face{font-family:simple-calendar;src:url(../fonts/simple-calendar.eot?43976014);src:url(../fonts/simple-calendar.eot?43976014#iefix) format("embedded-opentype"),url(../fonts/simple-calendar.woff?43976014) format("woff"),url(../fonts/simple-calendar.ttf?43976014) format("truetype"),url(../fonts/simple-calendar.svg?43976014#simple-calendar) format("svg");font-weight:400;font-style:normal}[class*=" simcal-icon-"]:before,[class^=simcal-icon-]:before{display:inline-block;font-family:simple-calendar;font-style:normal;font-weight:400;margin-right:.2em;speak:none;text-decoration:inherit;text-align:center;width:1em;font-variant:normal;text-transform:none;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.simcal-icon-spin{-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear;display:inline-block}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.simcal-icon-animate:before{transition:all .2s ease-in-out}.simcal-icon-rotate-180:before{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.simcal-icon-calendar-empty:before{content:'\e800'}.simcal-icon-calendar:before{content:'\e801'}.simcal-icon-calendar-logo:before{content:'\e802'}.simcal-icon-settings:before{content:'\e804'}.simcal-icon-toggles:before{content:'\e805'}.simcal-icon-list:before{content:'\e806'}.simcal-icon-event:before{content:'\e807'}.simcal-icon-help:before{content:'\e808'}.simcal-icon-panel:before{content:'\e80a'}.simcal-icon-grid:before{content:'\e80b'}.simcal-icon-google:before{content:'\e80c'}.simcal-icon-docs:before{content:'\e80f'}.simcal-icon-hourglass:before{content:'\e811'}.simcal-icon-globe:before{content:'\e812'}.simcal-icon-timezones:before{content:'\e813'}.simcal-icon-warning:before{content:'\e815'}.simcal-icon-wordpress:before{content:'\e814'}.simcal-icon-up:before{content:'\e80e'}.simcal-icon-right:before{content:'\e809'}.simcal-icon-down:before{content:'\e80d'}.simcal-icon-left:before{content:'\e803'}.simcal-icon-spinner:before{content:'\e810'}.simcal-calendar{position:relative}.simcal-powered{display:block;margin:-10px 0 20px}.simcal-align-left{text-align:left}.simcal-align-right{text-align:right}.simcal-default-calendar .simcal-current h3{margin:0;padding:0}.simcal-default-calendar .simcal-nav{vertical-align:middle}.simcal-default-calendar .simcal-nav-button{cursor:pointer;margin:0;padding:0;transition:margin .2s ease-out;width:100%}.simcal-default-calendar .simcal-nav-button.simcal-prev:hover{margin-left:-10px}.simcal-default-calendar .simcal-nav-button.simcal-next:hover{margin-right:-10px}.simcal-default-calendar .simcal-nav-button:disabled:hover,.simcal-default-calendar ul.simcal-attachments,.simcal-default-calendar ul.simcal-attendees{margin:0;padding:0}.simcal-default-calendar .simcal-nav-button:disabled{cursor:default}.simcal-default-calendar .simcal-events{list-style:none;margin-left:0}.simcal-default-calendar .simcal-events-toggle{border:0;box-shadow:none;text-align:center;width:100%}.simcal-default-calendar .simcal-events-toggle:active,.simcal-default-calendar .simcal-events-toggle:focus,.simcal-default-calendar .simcal-events-toggle:hover{border:0;box-shadow:none;outline:0}.simcal-default-calendar li.simcal-attachment,.simcal-default-calendar li.simcal-attendee{list-style:none;margin-bottom:4px}.simcal-default-calendar li.simcal-attachment:last-child,.simcal-default-calendar li.simcal-attendee:last-child{margin-bottom:0}.simcal-default-calendar li.simcal-attachment small,.simcal-default-calendar li.simcal-attendee small{opacity:.9;text-transform:lowercase}.simcal-default-calendar .simcal-organizer a,.simcal-default-calendar li.simcal-attachment a,.simcal-default-calendar li.simcal-attendee a{border-bottom:0;text-decoration:none}.simcal-default-calendar .simcal-organizer img,.simcal-default-calendar li.simcal-attachment img,.simcal-default-calendar li.simcal-attendee img{display:inline-block;margin:0 4px;max-height:24px;max-width:24px}.simcal-default-calendar .simcal-tooltip-content{font-size:1.2em;line-height:1.4;padding:5px}.simcal-default-calendar .simcal-ajax-loader{height:100%;left:0;position:absolute;top:0;width:100%}.simcal-default-calendar .simcal-ajax-loader>i{font-size:48px;left:50%;line-height:1;margin:-36px 0 0 -36px;position:absolute;top:50%}.simcal-default-calendar .simcal-ajax-loader.simcal-spinner-top>i{top:20%}.simcal-default-calendar .simcal-ajax-loader.simcal-spinner-bottom>i{bottom:20%;top:auto}.simcal-default-calendar-light .simcal-nav-button{color:rgba(0,0,0,.6)}.simcal-default-calendar-light .simcal-nav-button:disabled,.simcal-default-calendar-light .simcal-nav-button:disabled:hover{color:rgba(255,255,255,.9)!important}.simcal-default-calendar-light .simcal-nav-button:focus,.simcal-default-calendar-light .simcal-nav-button:hover{color:rgba(0,0,0,.9)}.simcal-default-calendar-light .simcal-events-toggle{color:rgba(0,0,0,.6)}.simcal-default-calendar-light .simcal-events-toggle:hover{background-color:rgba(0,0,0,.1);color:#fff}.simcal-default-calendar-light .simcal-ajax-loader{background-color:rgba(0,0,0,.1)}.simcal-default-calendar-light .simcal-ajax-loader>i{color:rgba(0,0,0,.3)}.simcal-default-calendar-dark .simcal-nav-button{color:rgba(255,255,255,.6)}.simcal-default-calendar-dark .simcal-nav-button:disabled,.simcal-default-calendar-dark .simcal-nav-button:disabled:hover{color:rgba(0,0,0,.9)!important}.simcal-default-calendar-dark .simcal-nav-button:focus,.simcal-default-calendar-dark .simcal-nav-button:hover{color:rgba(255,255,255,.9)}.simcal-default-calendar-dark .simcal-events-toggle{color:rgba(255,255,255,.6)}.simcal-default-calendar-dark .simcal-events-toggle:hover{background-color:rgba(255,255,255,.1);color:#000}.simcal-default-calendar-dark .simcal-ajax-loader{background-color:rgba(255,255,255,.1)}.simcal-default-calendar-dark .simcal-ajax-loader>i{color:rgba(255,255,255,.3)}.simcal-default-calendar-grid>table{table-layout:fixed;width:100%}.simcal-default-calendar-grid>table tbody td,.simcal-default-calendar-grid>table thead th{text-align:center;vertical-align:top}.simcal-default-calendar-grid>table tbody td{padding:0!important}.simcal-default-calendar-grid .simcal-calendar-head .simcal-nav{padding:10px 0;vertical-align:middle}.simcal-default-calendar-grid .simcal-calendar-head .simcal-nav.simcal-current,.simcal-default-calendar-grid .simcal-calendar-head .simcal-nav.simcal-prev-wrapper{border-right:0}.simcal-default-calendar-grid .simcal-day>div{box-sizing:content-box;display:block;height:100%}.simcal-default-calendar-grid .simcal-day-void{border-width:0 0 1px;height:100%;min-height:32px}.simcal-default-calendar-grid .simcal-day-void.simcal-day-void-last{border-right-width:1px}.simcal-default-calendar-grid .simcal-day-number{display:block;line-height:1;padding:2px 4px 3px;vertical-align:middle}.simcal-default-calendar-grid .simcal-no-events{display:block;min-height:32px}.simcal-default-calendar-grid.simcal-default-calendar-light .simcal-day:hover{background-color:rgba(0,0,0,.1)}.simcal-default-calendar-grid.simcal-default-calendar-light .simcal-day-void,.simcal-default-calendar-grid.simcal-default-calendar-light .simcal-day-void:hover{background-color:rgba(0,0,0,.04)}.simcal-default-calendar-grid.simcal-default-calendar-light .simcal-day-number{background:rgba(0,0,0,.1)}.simcal-default-calendar-grid.simcal-default-calendar-dark .simcal-day:hover{background-color:rgba(255,255,255,.18)}.simcal-default-calendar-grid.simcal-default-calendar-dark .simcal-day-void,.simcal-default-calendar-grid.simcal-default-calendar-dark .simcal-day-void:hover{background-color:rgba(255,255,255,.05)}.simcal-default-calendar-grid.simcal-default-calendar-dark .simcal-day-number{background:rgba(255,255,255,.1)}.simcal-default-calendar-grid .simcal-events{font-size:.68em;line-height:1.4;list-style:none;margin:0;padding:0;text-align:left}.simcal-default-calendar-grid .simcal-events>.simcal-event{border-bottom-style:solid;border-bottom-width:1px;cursor:pointer;list-style:none;margin:0 0 2px;padding:4px}.simcal-default-calendar-grid .simcal-events>.simcal-event:hover{text-decoration:underline}.simcal-default-calendar-grid .simcal-events>.simcal-event:last-child{border-bottom:0;margin-bottom:0}.simcal-default-calendar-grid.simcal-default-calendar-light .simcal-event{border-bottom-color:rgba(0,0,0,.1)}.simcal-default-calendar-grid.simcal-default-calendar-dark .simcal-event{border-bottom-color:rgba(255,255,255,.1)}.simcal-default-calendar-grid .simcal-events-dots{cursor:pointer;display:block;line-height:.7;margin:3px 0;text-align:center}.simcal-default-calendar-grid .simcal-events-toggle{background:0 0;display:block;font-size:10px;padding:2px 0}.simcal-event-bubble{background-color:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.simcal-event-bubble .simcal-event-details .simcal-event-description,.simcal-event-bubble .simcal-event-details p{margin:0 0 1em}
assets/css/default-calendar-list.min.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! Simple Calendar - 3.0.16
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
1
+ /*! Simple Calendar - 3.1.0
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
assets/css/vendor/jquery.qtip.css CHANGED
@@ -2,13 +2,13 @@
2
  * qTip2 - Pretty powerful tooltips - v2.2.1
3
  * http://qtip2.com
4
  *
5
- * Copyright (c) 2014
6
  * Released under the MIT licenses
7
  * http://jquery.org/license
8
  *
9
- * Date: Sun Sep 7 2014 12:09 GMT+0100+0100
10
- * Plugins: tips modal viewport svg imagemap ie6
11
- * Styles: core basic css3
12
  */
13
  .qtip{
14
  position: absolute;
@@ -124,439 +124,6 @@
124
  }
125
 
126
 
127
- /*! Light tooltip style */
128
- .qtip-light{
129
- background-color: white;
130
- border-color: #E2E2E2;
131
- color: #454545;
132
- }
133
-
134
- .qtip-light .qtip-titlebar{
135
- background-color: #f1f1f1;
136
- }
137
-
138
-
139
- /*! Dark tooltip style */
140
- .qtip-dark{
141
- background-color: #505050;
142
- border-color: #303030;
143
- color: #f3f3f3;
144
- }
145
-
146
- .qtip-dark .qtip-titlebar{
147
- background-color: #404040;
148
- }
149
-
150
- .qtip-dark .qtip-icon{
151
- border-color: #444;
152
- }
153
-
154
- .qtip-dark .qtip-titlebar .ui-state-hover{
155
- border-color: #303030;
156
- }
157
-
158
-
159
- /*! Cream tooltip style */
160
- .qtip-cream{
161
- background-color: #FBF7AA;
162
- border-color: #F9E98E;
163
- color: #A27D35;
164
- }
165
-
166
- .qtip-cream .qtip-titlebar{
167
- background-color: #F0DE7D;
168
- }
169
-
170
- .qtip-cream .qtip-close .qtip-icon{
171
- background-position: -82px 0;
172
- }
173
-
174
-
175
- /*! Red tooltip style */
176
- .qtip-red{
177
- background-color: #F78B83;
178
- border-color: #D95252;
179
- color: #912323;
180
- }
181
-
182
- .qtip-red .qtip-titlebar{
183
- background-color: #F06D65;
184
- }
185
-
186
- .qtip-red .qtip-close .qtip-icon{
187
- background-position: -102px 0;
188
- }
189
-
190
- .qtip-red .qtip-icon{
191
- border-color: #D95252;
192
- }
193
-
194
- .qtip-red .qtip-titlebar .ui-state-hover{
195
- border-color: #D95252;
196
- }
197
-
198
-
199
- /*! Green tooltip style */
200
- .qtip-green{
201
- background-color: #CAED9E;
202
- border-color: #90D93F;
203
- color: #3F6219;
204
- }
205
-
206
- .qtip-green .qtip-titlebar{
207
- background-color: #B0DE78;
208
- }
209
-
210
- .qtip-green .qtip-close .qtip-icon{
211
- background-position: -42px 0;
212
- }
213
-
214
-
215
- /*! Blue tooltip style */
216
- .qtip-blue{
217
- background-color: #E5F6FE;
218
- border-color: #ADD9ED;
219
- color: #5E99BD;
220
- }
221
-
222
- .qtip-blue .qtip-titlebar{
223
- background-color: #D0E9F5;
224
- }
225
-
226
- .qtip-blue .qtip-close .qtip-icon{
227
- background-position: -2px 0;
228
- }
229
-
230
-
231
- .qtip-shadow{
232
- -webkit-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
233
- -moz-box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
234
- box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.15);
235
- }
236
-
237
- /* Add rounded corners to your tooltips in: FF3+, Chrome 2+, Opera 10.6+, IE9+, Safari 2+ */
238
- .qtip-rounded,
239
- .qtip-tipsy,
240
- .qtip-bootstrap{
241
- -moz-border-radius: 5px;
242
- -webkit-border-radius: 5px;
243
- border-radius: 5px;
244
- }
245
-
246
- .qtip-rounded .qtip-titlebar{
247
- -moz-border-radius: 4px 4px 0 0;
248
- -webkit-border-radius: 4px 4px 0 0;
249
- border-radius: 4px 4px 0 0;
250
- }
251
-
252
- /* Youtube tooltip style */
253
- .qtip-youtube{
254
- -moz-border-radius: 2px;
255
- -webkit-border-radius: 2px;
256
- border-radius: 2px;
257
-
258
- -webkit-box-shadow: 0 0 3px #333;
259
- -moz-box-shadow: 0 0 3px #333;
260
- box-shadow: 0 0 3px #333;
261
-
262
- color: white;
263
- border: 0 solid transparent;
264
-
265
- background: #4A4A4A;
266
- background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,black));
267
- background-image: -webkit-linear-gradient(top,#4A4A4A 0,black 100%);
268
- background-image: -moz-linear-gradient(top,#4A4A4A 0,black 100%);
269
- background-image: -ms-linear-gradient(top,#4A4A4A 0,black 100%);
270
- background-image: -o-linear-gradient(top,#4A4A4A 0,black 100%);
271
- }
272
-
273
- .qtip-youtube .qtip-titlebar{
274
- background-color: #4A4A4A;
275
- background-color: rgba(0,0,0,0);
276
- }
277
-
278
- .qtip-youtube .qtip-content{
279
- padding: .75em;
280
- font: 12px arial,sans-serif;
281
-
282
- filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);
283
- -ms-filter: "progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);";
284
- }
285
-
286
- .qtip-youtube .qtip-icon{
287
- border-color: #222;
288
- }
289
-
290
- .qtip-youtube .qtip-titlebar .ui-state-hover{
291
- border-color: #303030;
292
- }
293
-
294
-
295
- /* jQuery TOOLS Tooltip style */
296
- .qtip-jtools{
297
- background: #232323;
298
- background: rgba(0, 0, 0, 0.7);
299
- background-image: -webkit-gradient(linear, left top, left bottom, from(#717171), to(#232323));
300
- background-image: -moz-linear-gradient(top, #717171, #232323);
301
- background-image: -webkit-linear-gradient(top, #717171, #232323);
302
- background-image: -ms-linear-gradient(top, #717171, #232323);
303
- background-image: -o-linear-gradient(top, #717171, #232323);
304
-
305
- border: 2px solid #ddd;
306
- border: 2px solid rgba(241,241,241,1);
307
-
308
- -moz-border-radius: 2px;
309
- -webkit-border-radius: 2px;
310
- border-radius: 2px;
311
-
312
- -webkit-box-shadow: 0 0 12px #333;
313
- -moz-box-shadow: 0 0 12px #333;
314
- box-shadow: 0 0 12px #333;
315
- }
316
-
317
- /* IE Specific */
318
- .qtip-jtools .qtip-titlebar{
319
- background-color: transparent;
320
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A);
321
- -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)";
322
- }
323
- .qtip-jtools .qtip-content{
324
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323);
325
- -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)";
326
- }
327
-
328
- .qtip-jtools .qtip-titlebar,
329
- .qtip-jtools .qtip-content{
330
- background: transparent;
331
- color: white;
332
- border: 0 dashed transparent;
333
- }
334
-
335
- .qtip-jtools .qtip-icon{
336
- border-color: #555;
337
- }
338
-
339
- .qtip-jtools .qtip-titlebar .ui-state-hover{
340
- border-color: #333;
341
- }
342
-
343
-
344
- /* Cluetip style */
345
- .qtip-cluetip{
346
- -webkit-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
347
- -moz-box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
348
- box-shadow: 4px 4px 5px rgba(0, 0, 0, 0.4);
349
-
350
- background-color: #D9D9C2;
351
- color: #111;
352
- border: 0 dashed transparent;
353
- }
354
-
355
- .qtip-cluetip .qtip-titlebar{
356
- background-color: #87876A;
357
- color: white;
358
- border: 0 dashed transparent;
359
- }
360
-
361
- .qtip-cluetip .qtip-icon{
362
- border-color: #808064;
363
- }
364
-
365
- .qtip-cluetip .qtip-titlebar .ui-state-hover{
366
- border-color: #696952;
367
- color: #696952;
368
- }
369
-
370
-
371
- /* Tipsy style */
372
- .qtip-tipsy{
373
- background: black;
374
- background: rgba(0, 0, 0, .87);
375
-
376
- color: white;
377
- border: 0 solid transparent;
378
-
379
- font-size: 11px;
380
- font-family: 'Lucida Grande', sans-serif;
381
- font-weight: bold;
382
- line-height: 16px;
383
- text-shadow: 0 1px black;
384
- }
385
-
386
- .qtip-tipsy .qtip-titlebar{
387
- padding: 6px 35px 0 10px;
388
- background-color: transparent;
389
- }
390
-
391
- .qtip-tipsy .qtip-content{
392
- padding: 6px 10px;
393
- }
394
-
395
- .qtip-tipsy .qtip-icon{
396
- border-color: #222;
397
- text-shadow: none;
398
- }
399
-
400
- .qtip-tipsy .qtip-titlebar .ui-state-hover{
401
- border-color: #303030;
402
- }
403
-
404
-
405
- /* Tipped style */
406
- .qtip-tipped{
407
- border: 3px solid #959FA9;
408
-
409
- -moz-border-radius: 3px;
410
- -webkit-border-radius: 3px;
411
- border-radius: 3px;
412
-
413
- background-color: #F9F9F9;
414
- color: #454545;
415
-
416
- font-weight: normal;
417
- font-family: serif;
418
- }
419
-
420
- .qtip-tipped .qtip-titlebar{
421
- border-bottom-width: 0;
422
-
423
- color: white;
424
- background: #3A79B8;
425
- background-image: -webkit-gradient(linear, left top, left bottom, from(#3A79B8), to(#2E629D));
426
- background-image: -webkit-linear-gradient(top, #3A79B8, #2E629D);
427
- background-image: -moz-linear-gradient(top, #3A79B8, #2E629D);
428
- background-image: -ms-linear-gradient(top, #3A79B8, #2E629D);
429
- background-image: -o-linear-gradient(top, #3A79B8, #2E629D);
430
- filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D);
431
- -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)";
432
- }
433
-
434
- .qtip-tipped .qtip-icon{
435
- border: 2px solid #285589;
436
- background: #285589;
437
- }
438
-
439
- .qtip-tipped .qtip-icon .ui-icon{
440
- background-color: #FBFBFB;
441
- color: #555;
442
- }
443
-
444
-
445
- /**
446
- * Twitter Bootstrap style.
447
- *
448
- * Tested with IE 8, IE 9, Chrome 18, Firefox 9, Opera 11.
449
- * Does not work with IE 7.
450
- */
451
- .qtip-bootstrap{
452
- /** Taken from Bootstrap body */
453
- font-size: 14px;
454
- line-height: 20px;
455
- color: #333333;
456
-
457
- /** Taken from Bootstrap .popover */
458
- padding: 1px;
459
- background-color: #ffffff;
460
- border: 1px solid #ccc;
461
- border: 1px solid rgba(0, 0, 0, 0.2);
462
- -webkit-border-radius: 6px;
463
- -moz-border-radius: 6px;
464
- border-radius: 6px;
465
- -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
466
- -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
467
- box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
468
- -webkit-background-clip: padding-box;
469
- -moz-background-clip: padding;
470
- background-clip: padding-box;
471
- }
472
-
473
- .qtip-bootstrap .qtip-titlebar{
474
- /** Taken from Bootstrap .popover-title */
475
- padding: 8px 14px;
476
- margin: 0;
477
- font-size: 14px;
478
- font-weight: normal;
479
- line-height: 18px;
480
- background-color: #f7f7f7;
481
- border-bottom: 1px solid #ebebeb;
482
- -webkit-border-radius: 5px 5px 0 0;
483
- -moz-border-radius: 5px 5px 0 0;
484
- border-radius: 5px 5px 0 0;
485
- }
486
-
487
- .qtip-bootstrap .qtip-titlebar .qtip-close{
488
- /**
489
- * Overrides qTip2:
490
- * .qtip-titlebar .qtip-close{
491
- * [...]
492
- * right: 4px;
493
- * top: 50%;
494
- * [...]
495
- * border-style: solid;
496
- * }
497
- */
498
- right: 11px;
499
- top: 45%;
500
- border-style: none;
501
- }
502
-
503
- .qtip-bootstrap .qtip-content{
504
- /** Taken from Bootstrap .popover-content */
505
- padding: 9px 14px;
506
- }
507
-
508
- .qtip-bootstrap .qtip-icon{
509
- /**
510
- * Overrides qTip2:
511
- * .qtip-default .qtip-icon {
512
- * border-color: #CCC;
513
- * background: #F1F1F1;
514
- * color: #777;
515
- * }
516
- */
517
- background: transparent;
518
- }
519
-
520
- .qtip-bootstrap .qtip-icon .ui-icon{
521
- /**
522
- * Overrides qTip2:
523
- * .qtip-icon .ui-icon{
524
- * width: 18px;
525
- * height: 14px;
526
- * }
527
- */
528
- width: auto;
529
- height: auto;
530
-
531
- /* Taken from Bootstrap .close */
532
- float: right;
533
- font-size: 20px;
534
- font-weight: bold;
535
- line-height: 18px;
536
- color: #000000;
537
- text-shadow: 0 1px 0 #ffffff;
538
- opacity: 0.2;
539
- filter: alpha(opacity=20);
540
- }
541
-
542
- .qtip-bootstrap .qtip-icon .ui-icon:hover{
543
- /* Taken from Bootstrap .close:hover */
544
- color: #000000;
545
- text-decoration: none;
546
- cursor: pointer;
547
- opacity: 0.4;
548
- filter: alpha(opacity=40);
549
- }
550
-
551
-
552
- /* IE9 fix - removes all filters */
553
- .qtip:not(.ie9haxors) div.qtip-content,
554
- .qtip:not(.ie9haxors) div.qtip-titlebar{
555
- filter: none;
556
- -ms-filter: none;
557
- }
558
-
559
-
560
  .qtip .qtip-tip{
561
  margin: 0 auto;
562
  overflow: hidden;
@@ -587,31 +154,3 @@
587
  display: inline-block;
588
  visibility: visible;
589
  }
590
-
591
-
592
- #qtip-overlay{
593
- position: fixed;
594
- left: 0; top: 0;
595
- width: 100%; height: 100%;
596
- }
597
-
598
- /* Applied to modals with show.modal.blur set to true */
599
- #qtip-overlay.blurs{ cursor: pointer; }
600
-
601
- /* Change opacity of overlay here */
602
- #qtip-overlay div{
603
- position: absolute;
604
- left: 0; top: 0;
605
- width: 100%; height: 100%;
606
-
607
- background-color: black;
608
-
609
- opacity: 0.7;
610
- filter:alpha(opacity=70);
611
- -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
612
- }
613
-
614
-
615
- .qtipmodal-ie6fix{
616
- position: absolute !important;
617
- }
2
  * qTip2 - Pretty powerful tooltips - v2.2.1
3
  * http://qtip2.com
4
  *
5
+ * Copyright (c) 2015
6
  * Released under the MIT licenses
7
  * http://jquery.org/license
8
  *
9
+ * Date: Wed Aug 12 2015 04:16 EDT-0400
10
+ * Plugins: tips viewport
11
+ * Styles: core
12
  */
13
  .qtip{
14
  position: absolute;
124
  }
125
 
126
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  .qtip .qtip-tip{
128
  margin: 0 auto;
129
  overflow: hidden;
154
  display: inline-block;
155
  visibility: visible;
156
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/css/vendor/jquery.qtip.min.css CHANGED
@@ -1,3 +1,3 @@
1
- /* qTip2 v2.2.1 | Plugins: tips modal viewport svg imagemap ie6 | Styles: core basic css3 | qtip2.com | Licensed MIT | Sun Sep 07 2014 00:09:28 */
2
 
3
- .qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0}.qtip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:left;word-wrap:break-word}.qtip-titlebar{position:relative;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:700}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;z-index:11;cursor:pointer;outline:0;border:1px solid transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-icon .ui-icon,.qtip-titlebar .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:400 bold 10px/13px Tahoma,sans-serif;color:inherit;background:-100em -100em no-repeat}.qtip-default{border:1px solid #F1D031;background-color:#FFFFA3;color:#555}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}.qtip-light{background-color:#fff;border-color:#E2E2E2;color:#454545}.qtip-light .qtip-titlebar{background-color:#f1f1f1}.qtip-dark{background-color:#505050;border-color:#303030;color:#f3f3f3}.qtip-dark .qtip-titlebar{background-color:#404040}.qtip-dark .qtip-icon{border-color:#444}.qtip-dark .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-cream{background-color:#FBF7AA;border-color:#F9E98E;color:#A27D35}.qtip-cream .qtip-titlebar{background-color:#F0DE7D}.qtip-cream .qtip-close .qtip-icon{background-position:-82px 0}.qtip-red{background-color:#F78B83;border-color:#D95252;color:#912323}.qtip-red .qtip-titlebar{background-color:#F06D65}.qtip-red .qtip-close .qtip-icon{background-position:-102px 0}.qtip-red .qtip-icon,.qtip-red .qtip-titlebar .ui-state-hover{border-color:#D95252}.qtip-green{background-color:#CAED9E;border-color:#90D93F;color:#3F6219}.qtip-green .qtip-titlebar{background-color:#B0DE78}.qtip-green .qtip-close .qtip-icon{background-position:-42px 0}.qtip-blue{background-color:#E5F6FE;border-color:#ADD9ED;color:#5E99BD}.qtip-blue .qtip-titlebar{background-color:#D0E9F5}.qtip-blue .qtip-close .qtip-icon{background-position:-2px 0}.qtip-shadow{-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,.15)}.qtip-bootstrap,.qtip-rounded,.qtip-tipsy{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.qtip-rounded .qtip-titlebar{-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.qtip-youtube{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 3px #333;-moz-box-shadow:0 0 3px #333;box-shadow:0 0 3px #333;color:#fff;border:0 solid transparent;background:#4A4A4A;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,#000));background-image:-webkit-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-moz-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-ms-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-o-linear-gradient(top,#4A4A4A 0,#000 100%)}.qtip-youtube .qtip-titlebar{background-color:transparent}.qtip-youtube .qtip-content{padding:.75em;font:12px arial,sans-serif;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#4a4a4a, EndColorStr=#000000);-ms-filter:"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"}.qtip-youtube .qtip-icon{border-color:#222}.qtip-youtube .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-jtools{background:#232323;background:rgba(0,0,0,.7);background-image:-webkit-gradient(linear,left top,left bottom,from(#717171),to(#232323));background-image:-moz-linear-gradient(top,#717171,#232323);background-image:-webkit-linear-gradient(top,#717171,#232323);background-image:-ms-linear-gradient(top,#717171,#232323);background-image:-o-linear-gradient(top,#717171,#232323);border:2px solid #ddd;border:2px solid rgba(241,241,241,1);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 12px #333;-moz-box-shadow:0 0 12px #333;box-shadow:0 0 12px #333}.qtip-jtools .qtip-titlebar{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171, endColorstr=#4A4A4A);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"}.qtip-jtools .qtip-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A, endColorstr=#232323);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"}.qtip-jtools .qtip-content,.qtip-jtools .qtip-titlebar{background:0 0;color:#fff;border:0 dashed transparent}.qtip-jtools .qtip-icon{border-color:#555}.qtip-jtools .qtip-titlebar .ui-state-hover{border-color:#333}.qtip-cluetip{-webkit-box-shadow:4px 4px 5px rgba(0,0,0,.4);-moz-box-shadow:4px 4px 5px rgba(0,0,0,.4);box-shadow:4px 4px 5px rgba(0,0,0,.4);background-color:#D9D9C2;color:#111;border:0 dashed transparent}.qtip-cluetip .qtip-titlebar{background-color:#87876A;color:#fff;border:0 dashed transparent}.qtip-cluetip .qtip-icon{border-color:#808064}.qtip-cluetip .qtip-titlebar .ui-state-hover{border-color:#696952;color:#696952}.qtip-tipsy{background:#000;background:rgba(0,0,0,.87);color:#fff;border:0 solid transparent;font-size:11px;font-family:'Lucida Grande',sans-serif;font-weight:700;line-height:16px;text-shadow:0 1px #000}.qtip-tipsy .qtip-titlebar{padding:6px 35px 0 10px;background-color:transparent}.qtip-tipsy .qtip-content{padding:6px 10px}.qtip-tipsy .qtip-icon{border-color:#222;text-shadow:none}.qtip-tipsy .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-tipped{border:3px solid #959FA9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#F9F9F9;color:#454545;font-weight:400;font-family:serif}.qtip-tipped .qtip-titlebar{border-bottom-width:0;color:#fff;background:#3A79B8;background-image:-webkit-gradient(linear,left top,left bottom,from(#3A79B8),to(#2E629D));background-image:-webkit-linear-gradient(top,#3A79B8,#2E629D);background-image:-moz-linear-gradient(top,#3A79B8,#2E629D);background-image:-ms-linear-gradient(top,#3A79B8,#2E629D);background-image:-o-linear-gradient(top,#3A79B8,#2E629D);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8, endColorstr=#2E629D);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"}.qtip-tipped .qtip-icon{border:2px solid #285589;background:#285589}.qtip-tipped .qtip-icon .ui-icon{background-color:#FBFBFB;color:#555}.qtip-bootstrap{font-size:14px;line-height:20px;color:#333;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.qtip-bootstrap .qtip-titlebar{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.qtip-bootstrap .qtip-titlebar .qtip-close{right:11px;top:45%;border-style:none}.qtip-bootstrap .qtip-content{padding:9px 14px}.qtip-bootstrap .qtip-icon{background:0 0}.qtip-bootstrap .qtip-icon .ui-icon{width:auto;height:auto;float:right;font-size:20px;font-weight:700;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.qtip-bootstrap .qtip-icon .ui-icon:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}.qtip:not(.ie9haxors) div.qtip-content,.qtip:not(.ie9haxors) div.qtip-titlebar{filter:none;-ms-filter:none}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}.qtip .qtip-tip,x:-o-prefocus{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:0 0;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}#qtip-overlay{position:fixed;left:0;top:0;width:100%;height:100%}#qtip-overlay.blurs{cursor:pointer}#qtip-overlay div{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#000;opacity:.7;filter:alpha(opacity=70);-ms-filter:"alpha(Opacity=70)"}.qtipmodal-ie6fix{position:absolute!important}
1
+ /* qTip2 v2.2.1 | Plugins: tips viewport | Styles: core | qtip2.com | Licensed MIT | Wed Aug 12 2015 16:16:42 */
2
 
3
+ .qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0}.qtip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:left;word-wrap:break-word}.qtip-titlebar{position:relative;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:700}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;z-index:11;cursor:pointer;outline:0;border:1px solid transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-icon .ui-icon,.qtip-titlebar .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:400 bold 10px/13px Tahoma,sans-serif;color:inherit;background:-100em -100em no-repeat}.qtip-default{border:1px solid #F1D031;background-color:#FFFFA3;color:#555}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}.qtip .qtip-tip,x:-o-prefocus{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:0 0;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}
assets/images/welcome/calendar-settings-appearance.png DELETED
Binary file
assets/images/welcome/fullcalendar-google-calendar-pro-grid-view.png ADDED
Binary file
assets/images/welcome/google-calendar-pro-list-view-annotated.png DELETED
Binary file
assets/images/welcome/grid-view-basic.png ADDED
Binary file
assets/images/welcome/grid-view-custom-colors.png DELETED
Binary file
assets/js/admin-add-calendar.min.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Simple Calendar - 3.0.16
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
1
+ /*! Simple Calendar - 3.1.0
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
assets/js/admin.js CHANGED
@@ -112,6 +112,17 @@
112
 
113
  } ).trigger( 'change' );
114
 
 
 
 
 
 
 
 
 
 
 
 
115
  /* ============ *
116
  * Input Fields *
117
  * ============ */
112
 
113
  } ).trigger( 'change' );
114
 
115
+ var calendar_type = $( '#_calendar_type' );
116
+
117
+ calendar_type.on( 'change', function() {
118
+
119
+ $( 'label[for*="_calendar_view_"]').hide();
120
+ $( '#calendar-settings-panel table[id*="-settings"]').hide();
121
+
122
+ $('label[for="_calendar_view_' + $(this).val() + '"]').show();
123
+ $( '#calendar-settings-panel table[id="' + $(this).val() + '-settings"]').show();
124
+ }).trigger( 'change' );
125
+
126
  /* ============ *
127
  * Input Fields *
128
  * ============ */
assets/js/admin.min.js CHANGED
@@ -1,6 +1,6 @@
1
- /*! Simple Calendar - 3.0.16
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
5
 
6
- !function(a,b){"use strict";jQuery(function(a){function b(b){var c=a(b).find("input"),d=a(b).find("> div select"),e=a(b).find("code"),f="",g="";d.each(function(b,c){var d=a(c).val(),e=a(c).find("> option:selected");d.length&&(e.data("trim")?(f=f.trim()+a(c).val(),g=g.trim()+e.data("preview")):(f+=a(c).val()+" ",g+=e.data("preview")+" "))}),c.val(f),e.text(g)}a(".simcal-help-tip").tipTip({attribute:"data-tip",delay:200,fadeIn:50,fadeOut:50}),a(".simcal-shortcode-tip").tipTip({activation:"click",defaultPosition:"top",delay:200,fadeIn:50,fadeOut:50});var c=a("#simcal-calendar-settings"),d=c.find(".simcal-box-handle"),e=c.find(".hndle");a(d).appendTo(e),a(function(){a(e).unbind("click.postboxes"),c.on("click","h3.hndle",function(b){a(b.target).filter("input, option, label, select").length||c.toggleClass("closed")})}),a(document.body).on("simcal-init-tabbed-panels",function(){a(".simcal-tabs").show(),a(".simcal-tabs a").click(function(){var b=a(this).closest("div.simcal-panels-wrap");return a("ul.simcal-tabs li",b).removeClass("active"),a(this).parent().addClass("active"),a("div.simcal-panel",b).hide(),a(a(this).attr("href")).show(),!1}),a("div.simcal-panels-wrap").each(function(){a(this).find("ul.simcal-tabs > li").eq(0).find("a").click()})}).trigger("simcal-init-tabbed-panels"),a("#_feed_type").on("change",function(){var b=a(this).find("option:selected"),c=b.val(),d=a(".simcal-tabs"),e=d.find("> .simcal-feed-type"),f=d.find("> .simcal-feed-type-"+c),g=d.find("> li:first-child > a");e.each(function(){a(this).hide()}),f.show(),g.trigger("click")}).trigger("change"),c.show();var f=a("#_calendar_view_default-calendar"),g=a("#default-calendar-settings"),h=g.find(".simcal-default-calendar-grid"),i=g.find(".simcal-default-calendar-list"),j=g.find(".simcal-default-calendar-list-grouped");f.on("change",function(){var b=a(this).val();"grid"==b?(i.hide(),j.hide(),h.show()):"list"==b?(h.hide(),j.hide(),i.show()):"list-grouped"==b&&(h.hide(),i.hide(),j.show())}).trigger("change"),a(".simcal-field-color-picker").wpColorPicker(),a(".simcal-field-select-enhanced").each(function(b,c){var d=a(c),e=d.data("noresults"),f=d.data("allowclear");d.select2({allowClear:"undefined"!=f?f:!1,placeholder:{id:"",placeholder:""},dir:"undefined"!=simcal_admin.text_dir?simcal_admin.text_dir:"ltr",tokenSeparators:[","],width:"100%",language:{noResults:function(){return"undefined"!=e?e:""}}})});var k=a(".simcal-field-date-picker");k.each(function(b,c){var d=a(c).find("input"),e={autoSize:!0,changeMonth:!0,changeYear:!0,dateFormat:"yy-mm-dd",firstDay:1,prevText:'<i class="simcal-icon-left"></i>',nextText:'<i class="simcal-icon-right"></i>',yearRange:"1900:2050",beforeShow:function(b,c){a("#ui-datepicker-div").addClass("simcal-date-picker")}};a(d).datepicker(e),a(d).datepicker("option",a.datepicker.regional[simcal_admin.locale])});var l=a(".simcal-field-datetime-format");l.sortable({items:"> div",stop:function(){b(a(this))}}),l.each(function(c,d){var e=a(d).find("> div select");e.each(function(c,d){a(d).on("change",function(){b(a(this).closest("div.simcal-field-datetime-format"))})}),b(d)}),a(".simcal-field-datetime-format-php").each(function(b,c){var d=a(c).find("input"),e=a(c).find("code");a(d).on("keyup",function(){var b={action:"simcal_date_i18n_input_preview",value:d.val()};a.post(simcal_admin.ajax_url,b,function(b){a(e).text(b.data)})})}),a('input[type="number"].simcal-field').each(function(b,c){var d=a(c),e=d.attr("min"),f=d.attr("max");d.on("change",function(){var b=parseInt(a(this).val());e&&e>b&&a(this).val(e),f&&b>f&&a(this).val(f)})}),a(".simcal-field-switch-other").on("change",function(){var b=a(this).find("option");b.each(function(b,c){var d=a(c).data("show-field"),e=a(c).data("show-fields"),f=a(c).data("hide-field"),g=a(c).data("hide-fields"),h=d?a("#"+d):"",i=f?a("#"+f):"";if(a(c).is(":selected")){if(h&&h.show(),i&&i.hide(),e){var j=g.split(",");a(j).each(function(b,c){a("#"+c).hide()})}if(g){var k=g.split(",");a(k).each(function(b,c){a("#"+c).hide()})}}})}).trigger("change"),a(".simcal-field-show-other").on("change",function(){var b=a(this).find("option");b.each(function(b,c){var d=a(c).data("show-field"),e="undefined"!=typeof d&&d.length?a("#"+d):"",f="undefined"!=typeof d&&d.length?e.next():"";e.length&&(a(c).is(":selected")?(e.show(),f.hasClass("select2")&&f.show()):(e.hide(),f.hasClass("select2")&&f.hide()))})}).trigger("change"),a(".simcal-field-show-next").on("change",function(){var b,c,d,e;a(this).is(":checkbox")?(d=a(this).parent().next(),a(this).is(":checked")?d.show():d.hide()):(b=a(this).val(),c=a(this).data("show-next-if-value"),d=a(this).nextUntil().not("i"),e=d.length?d.next():"",b==c?(d.show(),e.hasClass("select2")&&e.show()):(d.hide(),e.hasClass("select2")&&e.hide()))}).trigger("change"),a("#simcal-clear-cache").on("click",function(b){b.preventDefault();var c=a(this).find("i");a.ajax({url:simcal_admin.ajax_url,method:"POST",data:{action:"simcal_clear_cache",id:a(this).data("id")},beforeSend:function(){c.fadeToggle()},success:function(){c.fadeToggle()},error:function(a){console.log(a)}})}),a("#simcal-drip-signup").on("click",function(b){b.preventDefault();var c=a("#simcal-drip"),d=c.find(".signup"),e=c.find(".thank-you"),f=a("#simcal-drip-form"),g=c.find("#simcal-drip-field-first_name"),h=f.find("#simcal-drip-real-field-first_name"),i=c.find("#simcal-drip-field-email"),j=f.find("#simcal-drip-real-field-email");h.val(g.val()),j.val(i.val()),d.hide(),e.show(),f.submit()}),a("#_feed_type").on("change",function(b){if("grouped-calendars"===a(this).val())a("#use_calendar").remove();else{var c='<option id="use_calendar" value="use_calendar" data-show-field="_use_calendar_warning">Event source default</option>';a("#_feed_timezone_setting").append(c)}}),a(".simcal-addon-manage-license").on("click",function(b){b.preventDefault();var c="",d=a(this),e=d.closest(".simcal-addon-manage-license-buttons"),f=d.closest(".simcal-addon-manage-license-field").find("> input"),g=e.find(".error"),h=d.find("i");if(a(this).hasClass("activate"))c="activate_license";else{if(!a(this).hasClass("deactivate"))return;c="deactivate_license"}a.ajax({url:simcal_admin.ajax_url,method:"POST",data:{action:"simcal_manage_add_on_license",add_on:a(this).data("add-on"),license_key:f.val(),license_action:c,nonce:a("#simcal_license_manager").val()},beforeSend:function(){h.fadeToggle()},success:function(b){h.fadeToggle(),"activate_license"==c?"valid"==b.data?(d.hide(),f.attr("disabled","disabled"),a(e).find(".label").show(),a(e).find(".deactivate").show(),g.hide()):g.show().text(b.data):"deactivated"==b.data?(d.hide(),f.removeAttr("disabled"),a(e).find(".label").hide(),a(e).find(".activate").show(),g.hide()):g.show().text(b.data)},error:function(a){console.log(a),h.fadeToggle()}})}),a("#simcal-reset-licenses").on("click",function(b){b.preventDefault();var c=a(this).find("i"),d=a(this).data("dialog"),e=confirm(d);!0===e&&a.ajax({url:simcal_admin.ajax_url,method:"POST",data:{action:"simcal_reset_add_ons_licenses",nonce:a("#simcal_license_manager").val()},beforeSend:function(){c.toggle()},success:function(a){"success"==a.data?location.reload():console.log(a)},error:function(a){console.log(a)}})})})}(this);
1
+ /*! Simple Calendar - 3.1.0
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
5
 
6
+ !function(a,b){"use strict";jQuery(function(a){function b(b){var c=a(b).find("input"),d=a(b).find("> div select"),e=a(b).find("code"),f="",g="";d.each(function(b,c){var d=a(c).val(),e=a(c).find("> option:selected");d.length&&(e.data("trim")?(f=f.trim()+a(c).val(),g=g.trim()+e.data("preview")):(f+=a(c).val()+" ",g+=e.data("preview")+" "))}),c.val(f),e.text(g)}a(".simcal-help-tip").tipTip({attribute:"data-tip",delay:200,fadeIn:50,fadeOut:50}),a(".simcal-shortcode-tip").tipTip({activation:"click",defaultPosition:"top",delay:200,fadeIn:50,fadeOut:50});var c=a("#simcal-calendar-settings"),d=c.find(".simcal-box-handle"),e=c.find(".hndle");a(d).appendTo(e),a(function(){a(e).unbind("click.postboxes"),c.on("click","h3.hndle",function(b){a(b.target).filter("input, option, label, select").length||c.toggleClass("closed")})}),a(document.body).on("simcal-init-tabbed-panels",function(){a(".simcal-tabs").show(),a(".simcal-tabs a").click(function(){var b=a(this).closest("div.simcal-panels-wrap");return a("ul.simcal-tabs li",b).removeClass("active"),a(this).parent().addClass("active"),a("div.simcal-panel",b).hide(),a(a(this).attr("href")).show(),!1}),a("div.simcal-panels-wrap").each(function(){a(this).find("ul.simcal-tabs > li").eq(0).find("a").click()})}).trigger("simcal-init-tabbed-panels"),a("#_feed_type").on("change",function(){var b=a(this).find("option:selected"),c=b.val(),d=a(".simcal-tabs"),e=d.find("> .simcal-feed-type"),f=d.find("> .simcal-feed-type-"+c),g=d.find("> li:first-child > a");e.each(function(){a(this).hide()}),f.show(),g.trigger("click")}).trigger("change"),c.show();var f=a("#_calendar_view_default-calendar"),g=a("#default-calendar-settings"),h=g.find(".simcal-default-calendar-grid"),i=g.find(".simcal-default-calendar-list"),j=g.find(".simcal-default-calendar-list-grouped");f.on("change",function(){var b=a(this).val();"grid"==b?(i.hide(),j.hide(),h.show()):"list"==b?(h.hide(),j.hide(),i.show()):"list-grouped"==b&&(h.hide(),i.hide(),j.show())}).trigger("change");var k=a("#_calendar_type");k.on("change",function(){a('label[for*="_calendar_view_"]').hide(),a('#calendar-settings-panel table[id*="-settings"]').hide(),a('label[for="_calendar_view_'+a(this).val()+'"]').show(),a('#calendar-settings-panel table[id="'+a(this).val()+'-settings"]').show()}).trigger("change"),a(".simcal-field-color-picker").wpColorPicker(),a(".simcal-field-select-enhanced").each(function(b,c){var d=a(c),e=d.data("noresults"),f=d.data("allowclear");d.select2({allowClear:"undefined"!=f?f:!1,placeholder:{id:"",placeholder:""},dir:"undefined"!=simcal_admin.text_dir?simcal_admin.text_dir:"ltr",tokenSeparators:[","],width:"100%",language:{noResults:function(){return"undefined"!=e?e:""}}})});var l=a(".simcal-field-date-picker");l.each(function(b,c){var d=a(c).find("input"),e={autoSize:!0,changeMonth:!0,changeYear:!0,dateFormat:"yy-mm-dd",firstDay:1,prevText:'<i class="simcal-icon-left"></i>',nextText:'<i class="simcal-icon-right"></i>',yearRange:"1900:2050",beforeShow:function(b,c){a("#ui-datepicker-div").addClass("simcal-date-picker")}};a(d).datepicker(e),a(d).datepicker("option",a.datepicker.regional[simcal_admin.locale])});var m=a(".simcal-field-datetime-format");m.sortable({items:"> div",stop:function(){b(a(this))}}),m.each(function(c,d){var e=a(d).find("> div select");e.each(function(c,d){a(d).on("change",function(){b(a(this).closest("div.simcal-field-datetime-format"))})}),b(d)}),a(".simcal-field-datetime-format-php").each(function(b,c){var d=a(c).find("input"),e=a(c).find("code");a(d).on("keyup",function(){var b={action:"simcal_date_i18n_input_preview",value:d.val()};a.post(simcal_admin.ajax_url,b,function(b){a(e).text(b.data)})})}),a('input[type="number"].simcal-field').each(function(b,c){var d=a(c),e=d.attr("min"),f=d.attr("max");d.on("change",function(){var b=parseInt(a(this).val());e&&e>b&&a(this).val(e),f&&b>f&&a(this).val(f)})}),a(".simcal-field-switch-other").on("change",function(){var b=a(this).find("option");b.each(function(b,c){var d=a(c).data("show-field"),e=a(c).data("show-fields"),f=a(c).data("hide-field"),g=a(c).data("hide-fields"),h=d?a("#"+d):"",i=f?a("#"+f):"";if(a(c).is(":selected")){if(h&&h.show(),i&&i.hide(),e){var j=g.split(",");a(j).each(function(b,c){a("#"+c).hide()})}if(g){var k=g.split(",");a(k).each(function(b,c){a("#"+c).hide()})}}})}).trigger("change"),a(".simcal-field-show-other").on("change",function(){var b=a(this).find("option");b.each(function(b,c){var d=a(c).data("show-field"),e="undefined"!=typeof d&&d.length?a("#"+d):"",f="undefined"!=typeof d&&d.length?e.next():"";e.length&&(a(c).is(":selected")?(e.show(),f.hasClass("select2")&&f.show()):(e.hide(),f.hasClass("select2")&&f.hide()))})}).trigger("change"),a(".simcal-field-show-next").on("change",function(){var b,c,d,e;a(this).is(":checkbox")?(d=a(this).parent().next(),a(this).is(":checked")?d.show():d.hide()):(b=a(this).val(),c=a(this).data("show-next-if-value"),d=a(this).nextUntil().not("i"),e=d.length?d.next():"",b==c?(d.show(),e.hasClass("select2")&&e.show()):(d.hide(),e.hasClass("select2")&&e.hide()))}).trigger("change"),a("#simcal-clear-cache").on("click",function(b){b.preventDefault();var c=a(this).find("i");a.ajax({url:simcal_admin.ajax_url,method:"POST",data:{action:"simcal_clear_cache",id:a(this).data("id")},beforeSend:function(){c.fadeToggle()},success:function(){c.fadeToggle()},error:function(a){console.log(a)}})}),a("#simcal-drip-signup").on("click",function(b){b.preventDefault();var c=a("#simcal-drip"),d=c.find(".signup"),e=c.find(".thank-you"),f=a("#simcal-drip-form"),g=c.find("#simcal-drip-field-first_name"),h=f.find("#simcal-drip-real-field-first_name"),i=c.find("#simcal-drip-field-email"),j=f.find("#simcal-drip-real-field-email");h.val(g.val()),j.val(i.val()),d.hide(),e.show(),f.submit()}),a("#_feed_type").on("change",function(b){if("grouped-calendars"===a(this).val())a("#use_calendar").remove();else{var c='<option id="use_calendar" value="use_calendar" data-show-field="_use_calendar_warning">Event source default</option>';a("#_feed_timezone_setting").append(c)}}),a(".simcal-addon-manage-license").on("click",function(b){b.preventDefault();var c="",d=a(this),e=d.closest(".simcal-addon-manage-license-buttons"),f=d.closest(".simcal-addon-manage-license-field").find("> input"),g=e.find(".error"),h=d.find("i");if(a(this).hasClass("activate"))c="activate_license";else{if(!a(this).hasClass("deactivate"))return;c="deactivate_license"}a.ajax({url:simcal_admin.ajax_url,method:"POST",data:{action:"simcal_manage_add_on_license",add_on:a(this).data("add-on"),license_key:f.val(),license_action:c,nonce:a("#simcal_license_manager").val()},beforeSend:function(){h.fadeToggle()},success:function(b){h.fadeToggle(),"activate_license"==c?"valid"==b.data?(d.hide(),f.attr("disabled","disabled"),a(e).find(".label").show(),a(e).find(".deactivate").show(),g.hide()):g.show().text(b.data):"deactivated"==b.data?(d.hide(),f.removeAttr("disabled"),a(e).find(".label").hide(),a(e).find(".activate").show(),g.hide()):g.show().text(b.data)},error:function(a){console.log(a),h.fadeToggle()}})}),a("#simcal-reset-licenses").on("click",function(b){b.preventDefault();var c=a(this).find("i"),d=a(this).data("dialog"),e=confirm(d);!0===e&&a.ajax({url:simcal_admin.ajax_url,method:"POST",data:{action:"simcal_reset_add_ons_licenses",nonce:a("#simcal_license_manager").val()},beforeSend:function(){c.toggle()},success:function(a){"success"==a.data?location.reload():console.log(a)},error:function(a){console.log(a)}})})})}(this);
assets/js/default-calendar.js CHANGED
@@ -86,7 +86,7 @@
86
 
87
  body.replaceWith( response.data );
88
 
89
- calendarBubbles( calendar, list );
90
  expandEventsToggle();
91
  },
92
  error : function( response ) {
86
 
87
  body.replaceWith( response.data );
88
 
89
+ calendarBubbles( calendar );
90
  expandEventsToggle();
91
  },
92
  error : function( response ) {
assets/js/default-calendar.min.js CHANGED
@@ -1,6 +1,6 @@
1
- /*! Simple Calendar - 3.0.16
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
5
 
6
- !function(a,b){"use strict";jQuery(function(b){function c(a){var c=b(a).find(".simcal-current"),d=b(a).find(".simcal-events-list-container"),e=d.data("heading-small"),f=d.data("heading-large");a.width()<400?c.html("<h3>"+e+"</h3>"):c.html("<h3>"+f+"</h3>")}function d(c){var d=b(c).find("> table"),e=d.find("thead"),f=e.find("th.simcal-week-day"),g=d.find("td.simcal-day > div"),h=d.find("ul.simcal-events"),i=h.find("> li > .simcal-event-title"),j=d.find(".simcal-events-toggle"),k=d.find("span.simcal-events-dots"),l=d.find(".simcal-tooltip-content"),m=d.find(".simcal-event-toggled"),n=d.data("event-bubble-trigger"),o=g.first().width();if(60>o){f.each(function(a,c){b(c).text(b(c).data("screen-small"))}),h.hide(),i.hide(),"undefined"!=j&&(j.hide(),"undefined"!=m&&m.show()),k.show();var p=o-10+"px";g.css("min-height",p),d.find("span.simcal-events-dots:not(:empty)").css("min-height",p)}else 240>=o?f.each(function(a,c){b(c).text(b(c).data("screen-medium"))}):f.each(function(a,c){b(c).text(b(c).data("screen-large"))}),h.show(),i.show(),"undefined"!=j&&(j.show(),"undefined"!=m&&m.hide()),k.hide(),g.css("min-height",o+"px");g.each(function(c,d){var e,f,g,h,i=b(d).find("span.simcal-events-dots"),j=b(d).find(".simcal-tooltip");60>o?(l.show(),e=i):(l.hide(),e=j),e.each(function(c,e){g='<ul class="simcal-events">'+b(d).find("ul.simcal-events").html()+"</ul></div>",h='<div class="simcal-event-details simcal-tooltip-content">'+b(e).find("> .simcal-tooltip-content").html()+"</div>",b(e).qtip({content:60>o?g:h,position:{my:"top center",at:"bottom center",target:b(e),viewport:60>o?b(a):!0,adjust:{method:"shift",scroll:!1}},style:{def:!1,classes:"simcal-default-calendar simcal-event-bubble"},show:{solo:!0,effect:!1,event:"hover"==n?"mouseenter":"click"},hide:{fixed:!0,effect:!1,event:"click"==n?"unfocus":"mouseleave",delay:100},events:{show:function(a,b){f&&f.id&&f.id!=b.id&&f.hide(),f=b}}})})})}function e(){b(".simcal-events-toggle").each(function(a,c){var d=b(c).prev(".simcal-events"),e=d.find(".simcal-event-toggled"),f=b(c).find("i");b(c).on("click",function(){f.toggleClass("simcal-icon-rotate-180"),e.slideToggle()})})}b(".simcal-default-calendar").each(function(a,f){var g,h,i=b(f),j=i.data("calendar-id"),k=i.data("offset"),l=(i.data("events-first"),i.data("calendar-end"),i.find(".simcal-calendar-head")),m=l.find(".simcal-nav-button"),n=i.find(".simcal-ajax-loader"),o=l.find(".simcal-current"),p=o.data("calendar-current"),q=o.find("span.simcal-current-month"),r=o.find("span.simcal-current-year"),s=new Date(1e3*(p+86400));i.hasClass("simcal-default-calendar-grid")?(h="simcal_default_calendar_draw_grid",g=new Date(s.getFullYear(),s.getMonth(),1)):(h="simcal_default_calendar_draw_list",c(i)),m.on("click",function(){var a=b(this).hasClass("simcal-next")?"next":"prev";if("simcal_default_calendar_draw_grid"==h){var f,l,m,p=i.find(".simcal-month");"prev"==a?f=new Date(g.setMonth(g.getMonth()-1,1)):(f=new Date(g.setMonth(g.getMonth()+2,1)),f.setDate(0),f.setHours(23),f.setMinutes(59),f.setSeconds(59)),l=f.getMonth(),m=f.getFullYear(),b.ajax({url:simcal_default_calendar.ajax_url,method:"POST",dataType:"json",cache:!1,data:{action:h,month:l+1,year:m,id:j},beforeSend:function(){n.fadeToggle()},success:function(a){q.text(simcal_default_calendar.months.full[l]),r.text(m),o.attr("data-calendar-current",f.getTime()/1e3+k+1),n.fadeToggle(),g=f,p.replaceWith(a.data),d(i,s),e()},error:function(a){console.log(a)}})}else{var s=i.find(".simcal-events-list-container"),t=s.data("prev"),u=s.data("next"),v="prev"==a?t:u;b.ajax({url:simcal_default_calendar.ajax_url,method:"POST",dataType:"json",cache:!1,data:{action:h,ts:v,id:j},beforeSend:function(){n.fadeToggle()},success:function(a){s.replaceWith(a.data),o.attr("data-calendar-current",v),c(i),n.fadeToggle(),e()},error:function(a){console.log(a)}})}})});var f=b(".simcal-default-calendar-grid");f.each(function(a,c){d(c),b(c).on("change",function(){d(this)})}),a.onresize=function(){f.each(function(a,b){d(b)})},e()})}(this);
1
+ /*! Simple Calendar - 3.1.0
2
  * https://simplecalendar.io
3
  * Copyright (c) Moonstone Media 2016
4
  * Licensed GPLv2+ */
5
 
6
+ !function(a,b){"use strict";jQuery(function(b){function c(a){var c=b(a).find(".simcal-current"),d=b(a).find(".simcal-events-list-container"),e=d.data("heading-small"),f=d.data("heading-large");a.width()<400?c.html("<h3>"+e+"</h3>"):c.html("<h3>"+f+"</h3>")}function d(c){var d=b(c).find("> table"),e=d.find("thead"),f=e.find("th.simcal-week-day"),g=d.find("td.simcal-day > div"),h=d.find("ul.simcal-events"),i=h.find("> li > .simcal-event-title"),j=d.find(".simcal-events-toggle"),k=d.find("span.simcal-events-dots"),l=d.find(".simcal-tooltip-content"),m=d.find(".simcal-event-toggled"),n=d.data("event-bubble-trigger"),o=g.first().width();if(60>o){f.each(function(a,c){b(c).text(b(c).data("screen-small"))}),h.hide(),i.hide(),"undefined"!=j&&(j.hide(),"undefined"!=m&&m.show()),k.show();var p=o-10+"px";g.css("min-height",p),d.find("span.simcal-events-dots:not(:empty)").css("min-height",p)}else 240>=o?f.each(function(a,c){b(c).text(b(c).data("screen-medium"))}):f.each(function(a,c){b(c).text(b(c).data("screen-large"))}),h.show(),i.show(),"undefined"!=j&&(j.show(),"undefined"!=m&&m.hide()),k.hide(),g.css("min-height",o+"px");g.each(function(c,d){var e,f,g,h,i=b(d).find("span.simcal-events-dots"),j=b(d).find(".simcal-tooltip");60>o?(l.show(),e=i):(l.hide(),e=j),e.each(function(c,e){g='<ul class="simcal-events">'+b(d).find("ul.simcal-events").html()+"</ul></div>",h='<div class="simcal-event-details simcal-tooltip-content">'+b(e).find("> .simcal-tooltip-content").html()+"</div>",b(e).qtip({content:60>o?g:h,position:{my:"top center",at:"bottom center",target:b(e),viewport:60>o?b(a):!0,adjust:{method:"shift",scroll:!1}},style:{def:!1,classes:"simcal-default-calendar simcal-event-bubble"},show:{solo:!0,effect:!1,event:"hover"==n?"mouseenter":"click"},hide:{fixed:!0,effect:!1,event:"click"==n?"unfocus":"mouseleave",delay:100},events:{show:function(a,b){f&&f.id&&f.id!=b.id&&f.hide(),f=b}}})})})}function e(){b(".simcal-events-toggle").each(function(a,c){var d=b(c).prev(".simcal-events"),e=d.find(".simcal-event-toggled"),f=b(c).find("i");b(c).on("click",function(){f.toggleClass("simcal-icon-rotate-180"),e.slideToggle()})})}b(".simcal-default-calendar").each(function(a,f){var g,h,i=b(f),j=i.data("calendar-id"),k=i.data("offset"),l=(i.data("events-first"),i.data("calendar-end"),i.find(".simcal-calendar-head")),m=l.find(".simcal-nav-button"),n=i.find(".simcal-ajax-loader"),o=l.find(".simcal-current"),p=o.data("calendar-current"),q=o.find("span.simcal-current-month"),r=o.find("span.simcal-current-year"),s=new Date(1e3*(p+86400));i.hasClass("simcal-default-calendar-grid")?(h="simcal_default_calendar_draw_grid",g=new Date(s.getFullYear(),s.getMonth(),1)):(h="simcal_default_calendar_draw_list",c(i)),m.on("click",function(){var a=b(this).hasClass("simcal-next")?"next":"prev";if("simcal_default_calendar_draw_grid"==h){var f,l,m,p=i.find(".simcal-month");"prev"==a?f=new Date(g.setMonth(g.getMonth()-1,1)):(f=new Date(g.setMonth(g.getMonth()+2,1)),f.setDate(0),f.setHours(23),f.setMinutes(59),f.setSeconds(59)),l=f.getMonth(),m=f.getFullYear(),b.ajax({url:simcal_default_calendar.ajax_url,method:"POST",dataType:"json",cache:!1,data:{action:h,month:l+1,year:m,id:j},beforeSend:function(){n.fadeToggle()},success:function(a){q.text(simcal_default_calendar.months.full[l]),r.text(m),o.attr("data-calendar-current",f.getTime()/1e3+k+1),n.fadeToggle(),g=f,p.replaceWith(a.data),d(i),e()},error:function(a){console.log(a)}})}else{var s=i.find(".simcal-events-list-container"),t=s.data("prev"),u=s.data("next"),v="prev"==a?t:u;b.ajax({url:simcal_default_calendar.ajax_url,method:"POST",dataType:"json",cache:!1,data:{action:h,ts:v,id:j},beforeSend:function(){n.fadeToggle()},success:function(a){s.replaceWith(a.data),o.attr("data-calendar-current",v),c(i),n.fadeToggle(),e()},error:function(a){console.log(a)}})}})});var f=b(".simcal-default-calendar-grid");f.each(function(a,c){d(c),b(c).on("change",function(){d(this)})}),a.onresize=function(){f.each(function(a,b){d(b)})},e()})}(this);
assets/js/vendor/jquery.qtip.js CHANGED
@@ -2,13 +2,13 @@
2
  * qTip2 - Pretty powerful tooltips - v2.2.1
3
  * http://qtip2.com
4
  *
5
- * Copyright (c) 2014
6
  * Released under the MIT licenses
7
  * http://jquery.org/license
8
  *
9
- * Date: Sun Sep 7 2014 12:09 GMT+0100+0100
10
- * Plugins: tips modal viewport svg imagemap ie6
11
- * Styles: core basic css3
12
  */
13
  /*global window: false, jQuery: false, console: false, define: false */
14
 
@@ -2620,338 +2620,6 @@ $.extend(TRUE, QTIP.defaults, {
2620
  }
2621
  }
2622
  });
2623
- ;var MODAL, OVERLAY,
2624
- MODALCLASS = 'qtip-modal',
2625
- MODALSELECTOR = '.'+MODALCLASS;
2626
-
2627
- OVERLAY = function()
2628
- {
2629
- var self = this,
2630
- focusableElems = {},
2631
- current, onLast,
2632
- prevState, elem;
2633
-
2634
- // Modified code from jQuery UI 1.10.0 source
2635
- // http://code.jquery.com/ui/1.10.0/jquery-ui.js
2636
- function focusable(element) {
2637
- // Use the defined focusable checker when possible
2638
- if($.expr[':'].focusable) { return $.expr[':'].focusable; }
2639
-
2640
- var isTabIndexNotNaN = !isNaN($.attr(element, 'tabindex')),
2641
- nodeName = element.nodeName && element.nodeName.toLowerCase(),
2642
- map, mapName, img;
2643
-
2644
- if('area' === nodeName) {
2645
- map = element.parentNode;
2646
- mapName = map.name;
2647
- if(!element.href || !mapName || map.nodeName.toLowerCase() !== 'map') {
2648
- return false;
2649
- }
2650
- img = $('img[usemap=#' + mapName + ']')[0];
2651
- return !!img && img.is(':visible');
2652
- }
2653
- return (/input|select|textarea|button|object/.test( nodeName ) ?
2654
- !element.disabled :
2655
- 'a' === nodeName ?
2656
- element.href || isTabIndexNotNaN :
2657
- isTabIndexNotNaN
2658
- );
2659
- }
2660
-
2661
- // Focus inputs using cached focusable elements (see update())
2662
- function focusInputs(blurElems) {
2663
- // Blurring body element in IE causes window.open windows to unfocus!
2664
- if(focusableElems.length < 1 && blurElems.length) { blurElems.not('body').blur(); }
2665
-
2666
- // Focus the inputs
2667
- else { focusableElems.first().focus(); }
2668
- }
2669
-
2670
- // Steal focus from elements outside tooltip
2671
- function stealFocus(event) {
2672
- if(!elem.is(':visible')) { return; }
2673
-
2674
- var target = $(event.target),
2675
- tooltip = current.tooltip,
2676
- container = target.closest(SELECTOR),
2677
- targetOnTop;
2678
-
2679
- // Determine if input container target is above this
2680
- targetOnTop = container.length < 1 ? FALSE :
2681
- (parseInt(container[0].style.zIndex, 10) > parseInt(tooltip[0].style.zIndex, 10));
2682
-
2683
- // If we're showing a modal, but focus has landed on an input below
2684
- // this modal, divert focus to the first visible input in this modal
2685
- // or if we can't find one... the tooltip itself
2686
- if(!targetOnTop && target.closest(SELECTOR)[0] !== tooltip[0]) {
2687
- focusInputs(target);
2688
- }
2689
-
2690
- // Detect when we leave the last focusable element...
2691
- onLast = event.target === focusableElems[focusableElems.length - 1];
2692
- }
2693
-
2694
- $.extend(self, {
2695
- init: function() {
2696
- // Create document overlay
2697
- elem = self.elem = $('<div />', {
2698
- id: 'qtip-overlay',
2699
- html: '<div></div>',
2700
- mousedown: function() { return FALSE; }
2701
- })
2702
- .hide();
2703
-
2704
- // Make sure we can't focus anything outside the tooltip
2705
- $(document.body).bind('focusin'+MODALSELECTOR, stealFocus);
2706
-
2707
- // Apply keyboard "Escape key" close handler
2708
- $(document).bind('keydown'+MODALSELECTOR, function(event) {
2709
- if(current && current.options.show.modal.escape && event.keyCode === 27) {
2710
- current.hide(event);
2711
- }
2712
- });
2713
-
2714
- // Apply click handler for blur option
2715
- elem.bind('click'+MODALSELECTOR, function(event) {
2716
- if(current && current.options.show.modal.blur) {
2717
- current.hide(event);
2718
- }
2719
- });
2720
-
2721
- return self;
2722
- },
2723
-
2724
- update: function(api) {
2725
- // Update current API reference
2726
- current = api;
2727
-
2728
- // Update focusable elements if enabled
2729
- if(api.options.show.modal.stealfocus !== FALSE) {
2730
- focusableElems = api.tooltip.find('*').filter(function() {
2731
- return focusable(this);
2732
- });
2733
- }
2734
- else { focusableElems = []; }
2735
- },
2736
-
2737
- toggle: function(api, state, duration) {
2738
- var docBody = $(document.body),
2739
- tooltip = api.tooltip,
2740
- options = api.options.show.modal,
2741
- effect = options.effect,
2742
- type = state ? 'show': 'hide',
2743
- visible = elem.is(':visible'),
2744
- visibleModals = $(MODALSELECTOR).filter(':visible:not(:animated)').not(tooltip),
2745
- zindex;
2746
-
2747
- // Set active tooltip API reference
2748
- self.update(api);
2749
-
2750
- // If the modal can steal the focus...
2751
- // Blur the current item and focus anything in the modal we an
2752
- if(state && options.stealfocus !== FALSE) {
2753
- focusInputs( $(':focus') );
2754
- }
2755
-
2756
- // Toggle backdrop cursor style on show
2757
- elem.toggleClass('blurs', options.blur);
2758
-
2759
- // Append to body on show
2760
- if(state) {
2761
- elem.appendTo(document.body);
2762
- }
2763
-
2764
- // Prevent modal from conflicting with show.solo, and don't hide backdrop is other modals are visible
2765
- if((elem.is(':animated') && visible === state && prevState !== FALSE) || (!state && visibleModals.length)) {
2766
- return self;
2767
- }
2768
-
2769
- // Stop all animations
2770
- elem.stop(TRUE, FALSE);
2771
-
2772
- // Use custom function if provided
2773
- if($.isFunction(effect)) {
2774
- effect.call(elem, state);
2775
- }
2776
-
2777
- // If no effect type is supplied, use a simple toggle
2778
- else if(effect === FALSE) {
2779
- elem[ type ]();
2780
- }
2781
-
2782
- // Use basic fade function
2783
- else {
2784
- elem.fadeTo( parseInt(duration, 10) || 90, state ? 1 : 0, function() {
2785
- if(!state) { elem.hide(); }
2786
- });
2787
- }
2788
-
2789
- // Reset position and detach from body on hide
2790
- if(!state) {
2791
- elem.queue(function(next) {
2792
- elem.css({ left: '', top: '' });
2793
- if(!$(MODALSELECTOR).length) { elem.detach(); }
2794
- next();
2795
- });
2796
- }
2797
-
2798
- // Cache the state
2799
- prevState = state;
2800
-
2801
- // If the tooltip is destroyed, set reference to null
2802
- if(current.destroyed) { current = NULL; }
2803
-
2804
- return self;
2805
- }
2806
- });
2807
-
2808
- self.init();
2809
- };
2810
- OVERLAY = new OVERLAY();
2811
-
2812
- function Modal(api, options) {
2813
- this.options = options;
2814
- this._ns = '-modal';
2815
-
2816
- this.init( (this.qtip = api) );
2817
- }
2818
-
2819
- $.extend(Modal.prototype, {
2820
- init: function(qtip) {
2821
- var tooltip = qtip.tooltip;
2822
-
2823
- // If modal is disabled... return
2824
- if(!this.options.on) { return this; }
2825
-
2826
- // Set overlay reference
2827
- qtip.elements.overlay = OVERLAY.elem;
2828
-
2829
- // Add unique attribute so we can grab modal tooltips easily via a SELECTOR, and set z-index
2830
- tooltip.addClass(MODALCLASS).css('z-index', QTIP.modal_zindex + $(MODALSELECTOR).length);
2831
-
2832
- // Apply our show/hide/focus modal events
2833
- qtip._bind(tooltip, ['tooltipshow', 'tooltiphide'], function(event, api, duration) {
2834
- var oEvent = event.originalEvent;
2835
-
2836
- // Make sure mouseout doesn't trigger a hide when showing the modal and mousing onto backdrop
2837
- if(event.target === tooltip[0]) {
2838
- if(oEvent && event.type === 'tooltiphide' && /mouse(leave|enter)/.test(oEvent.type) && $(oEvent.relatedTarget).closest(OVERLAY.elem[0]).length) {
2839
- try { event.preventDefault(); } catch(e) {}
2840
- }
2841
- else if(!oEvent || (oEvent && oEvent.type !== 'tooltipsolo')) {
2842
- this.toggle(event, event.type === 'tooltipshow', duration);
2843
- }
2844
- }
2845
- }, this._ns, this);
2846
-
2847
- // Adjust modal z-index on tooltip focus
2848
- qtip._bind(tooltip, 'tooltipfocus', function(event, api) {
2849
- // If focus was cancelled before it reached us, don't do anything
2850
- if(event.isDefaultPrevented() || event.target !== tooltip[0]) { return; }
2851
-
2852
- var qtips = $(MODALSELECTOR),
2853
-
2854
- // Keep the modal's lower than other, regular qtips
2855
- newIndex = QTIP.modal_zindex + qtips.length,
2856
- curIndex = parseInt(tooltip[0].style.zIndex, 10);
2857
-
2858
- // Set overlay z-index
2859
- OVERLAY.elem[0].style.zIndex = newIndex - 1;
2860
-
2861
- // Reduce modal z-index's and keep them properly ordered
2862
- qtips.each(function() {
2863
- if(this.style.zIndex > curIndex) {
2864
- this.style.zIndex -= 1;
2865
- }
2866
- });
2867
-
2868
- // Fire blur event for focused tooltip
2869
- qtips.filter('.' + CLASS_FOCUS).qtip('blur', event.originalEvent);
2870
-
2871
- // Set the new z-index
2872
- tooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex;
2873
-
2874
- // Set current
2875
- OVERLAY.update(api);
2876
-
2877
- // Prevent default handling
2878
- try { event.preventDefault(); } catch(e) {}
2879
- }, this._ns, this);
2880
-
2881
- // Focus any other visible modals when this one hides
2882
- qtip._bind(tooltip, 'tooltiphide', function(event) {
2883
- if(event.target === tooltip[0]) {
2884
- $(MODALSELECTOR).filter(':visible').not(tooltip).last().qtip('focus', event);
2885
- }
2886
- }, this._ns, this);
2887
- },
2888
-
2889
- toggle: function(event, state, duration) {
2890
- // Make sure default event hasn't been prevented
2891
- if(event && event.isDefaultPrevented()) { return this; }
2892
-
2893
- // Toggle it
2894
- OVERLAY.toggle(this.qtip, !!state, duration);
2895
- },
2896
-
2897
- destroy: function() {
2898
- // Remove modal class
2899
- this.qtip.tooltip.removeClass(MODALCLASS);
2900
-
2901
- // Remove bound events
2902
- this.qtip._unbind(this.qtip.tooltip, this._ns);
2903
-
2904
- // Delete element reference
2905
- OVERLAY.toggle(this.qtip, FALSE);
2906
- delete this.qtip.elements.overlay;
2907
- }
2908
- });
2909
-
2910
-
2911
- MODAL = PLUGINS.modal = function(api) {
2912
- return new Modal(api, api.options.show.modal);
2913
- };
2914
-
2915
- // Setup sanitiztion rules
2916
- MODAL.sanitize = function(opts) {
2917
- if(opts.show) {
2918
- if(typeof opts.show.modal !== 'object') { opts.show.modal = { on: !!opts.show.modal }; }
2919
- else if(typeof opts.show.modal.on === 'undefined') { opts.show.modal.on = TRUE; }
2920
- }
2921
- };
2922
-
2923
- // Base z-index for all modal tooltips (use qTip core z-index as a base)
2924
- QTIP.modal_zindex = QTIP.zindex - 200;
2925
-
2926
- // Plugin needs to be initialized on render
2927
- MODAL.initialize = 'render';
2928
-
2929
- // Setup option set checks
2930
- CHECKS.modal = {
2931
- '^show.modal.(on|blur)$': function() {
2932
- // Initialise
2933
- this.destroy();
2934
- this.init();
2935
-
2936
- // Show the modal if not visible already and tooltip is visible
2937
- this.qtip.elems.overlay.toggle(
2938
- this.qtip.tooltip[0].offsetWidth > 0
2939
- );
2940
- }
2941
- };
2942
-
2943
- // Extend original api defaults
2944
- $.extend(TRUE, QTIP.defaults, {
2945
- show: {
2946
- modal: {
2947
- on: FALSE,
2948
- effect: TRUE,
2949
- blur: TRUE,
2950
- stealfocus: TRUE,
2951
- escape: TRUE
2952
- }
2953
- }
2954
- });
2955
  ;PLUGINS.viewport = function(api, position, posOptions, targetWidth, targetHeight, elemWidth, elemHeight)
2956
  {
2957
  var target = posOptions.target,
@@ -3059,393 +2727,5 @@ $.extend(TRUE, QTIP.defaults, {
3059
 
3060
  return adjusted;
3061
  };
3062
- ;PLUGINS.polys = {
3063
- // POLY area coordinate calculator
3064
- // Special thanks to Ed Cradock for helping out with this.
3065
- // Uses a binary search algorithm to find suitable coordinates.
3066
- polygon: function(baseCoords, corner) {
3067
- var result = {
3068
- width: 0, height: 0,
3069
- position: {
3070
- top: 1e10, right: 0,
3071
- bottom: 0, left: 1e10
3072
- },
3073
- adjustable: FALSE
3074
- },
3075
- i = 0, next,
3076
- coords = [],
3077
- compareX = 1, compareY = 1,
3078
- realX = 0, realY = 0,
3079
- newWidth, newHeight;
3080
-
3081
- // First pass, sanitize coords and determine outer edges
3082
- i = baseCoords.length; while(i--) {
3083
- next = [ parseInt(baseCoords[--i], 10), parseInt(baseCoords[i+1], 10) ];
3084
-
3085
- if(next[0] > result.position.right){ result.position.right = next[0]; }
3086
- if(next[0] < result.position.left){ result.position.left = next[0]; }
3087
- if(next[1] > result.position.bottom){ result.position.bottom = next[1]; }
3088
- if(next[1] < result.position.top){ result.position.top = next[1]; }
3089
-
3090
- coords.push(next);
3091
- }
3092
-
3093
- // Calculate height and width from outer edges
3094
- newWidth = result.width = Math.abs(result.position.right - result.position.left);
3095
- newHeight = result.height = Math.abs(result.position.bottom - result.position.top);
3096
-
3097
- // If it's the center corner...
3098
- if(corner.abbrev() === 'c') {
3099
- result.position = {
3100
- left: result.position.left + (result.width / 2),
3101
- top: result.position.top + (result.height / 2)
3102
- };
3103
- }
3104
- else {
3105
- // Second pass, use a binary search algorithm to locate most suitable coordinate
3106
- while(newWidth > 0 && newHeight > 0 && compareX > 0 && compareY > 0)
3107
- {
3108
- newWidth = Math.floor(newWidth / 2);
3109
- newHeight = Math.floor(newHeight / 2);
3110
-
3111
- if(corner.x === LEFT){ compareX = newWidth; }
3112
- else if(corner.x === RIGHT){ compareX = result.width - newWidth; }
3113
- else{ compareX += Math.floor(newWidth / 2); }
3114
-
3115
- if(corner.y === TOP){ compareY = newHeight; }
3116
- else if(corner.y === BOTTOM){ compareY = result.height - newHeight; }
3117
- else{ compareY += Math.floor(newHeight / 2); }
3118
-
3119
- i = coords.length; while(i--)
3120
- {
3121
- if(coords.length < 2){ break; }
3122
-
3123
- realX = coords[i][0] - result.position.left;
3124
- realY = coords[i][1] - result.position.top;
3125
-
3126
- if((corner.x === LEFT && realX >= compareX) ||
3127
- (corner.x === RIGHT && realX <= compareX) ||
3128
- (corner.x === CENTER && (realX < compareX || realX > (result.width - compareX))) ||
3129
- (corner.y === TOP && realY >= compareY) ||
3130
- (corner.y === BOTTOM && realY <= compareY) ||
3131
- (corner.y === CENTER && (realY < compareY || realY > (result.height - compareY)))) {
3132
- coords.splice(i, 1);
3133
- }
3134
- }
3135
- }
3136
- result.position = { left: coords[0][0], top: coords[0][1] };
3137
- }
3138
-
3139
- return result;
3140
- },
3141
-
3142
- rect: function(ax, ay, bx, by) {
3143
- return {
3144
- width: Math.abs(bx - ax),
3145
- height: Math.abs(by - ay),
3146
- position: {
3147
- left: Math.min(ax, bx),
3148
- top: Math.min(ay, by)
3149
- }
3150
- };
3151
- },
3152
-
3153
- _angles: {
3154
- tc: 3 / 2, tr: 7 / 4, tl: 5 / 4,
3155
- bc: 1 / 2, br: 1 / 4, bl: 3 / 4,
3156
- rc: 2, lc: 1, c: 0
3157
- },
3158
- ellipse: function(cx, cy, rx, ry, corner) {
3159
- var c = PLUGINS.polys._angles[ corner.abbrev() ],
3160
- rxc = c === 0 ? 0 : rx * Math.cos( c * Math.PI ),
3161
- rys = ry * Math.sin( c * Math.PI );
3162
-
3163
- return {
3164
- width: (rx * 2) - Math.abs(rxc),
3165
- height: (ry * 2) - Math.abs(rys),
3166
- position: {
3167
- left: cx + rxc,
3168
- top: cy + rys
3169
- },
3170
- adjustable: FALSE
3171
- };
3172
- },
3173
- circle: function(cx, cy, r, corner) {
3174
- return PLUGINS.polys.ellipse(cx, cy, r, r, corner);
3175
- }
3176
- };
3177
- ;PLUGINS.svg = function(api, svg, corner)
3178
- {
3179
- var doc = $(document),
3180
- elem = svg[0],
3181
- root = $(elem.ownerSVGElement),
3182
- ownerDocument = elem.ownerDocument,
3183
- strokeWidth2 = (parseInt(svg.css('stroke-width'), 10) || 0) / 2,
3184
- frameOffset, mtx, transformed, viewBox,
3185
- len, next, i, points,
3186
- result, position, dimensions;
3187
-
3188
- // Ascend the parentNode chain until we find an element with getBBox()
3189
- while(!elem.getBBox) { elem = elem.parentNode; }
3190
- if(!elem.getBBox || !elem.parentNode) { return FALSE; }
3191
-
3192
- // Determine which shape calculation to use
3193
- switch(elem.nodeName) {
3194
- case 'ellipse':
3195
- case 'circle':
3196
- result = PLUGINS.polys.ellipse(
3197
- elem.cx.baseVal.value,
3198
- elem.cy.baseVal.value,
3199
- (elem.rx || elem.r).baseVal.value + strokeWidth2,
3200
- (elem.ry || elem.r).baseVal.value + strokeWidth2,
3201
- corner
3202
- );
3203
- break;
3204
-
3205
- case 'line':
3206
- case 'polygon':
3207
- case 'polyline':
3208
- // Determine points object (line has none, so mimic using array)
3209
- points = elem.points || [
3210
- { x: elem.x1.baseVal.value, y: elem.y1.baseVal.value },
3211
- { x: elem.x2.baseVal.value, y: elem.y2.baseVal.value }
3212
- ];
3213
-
3214
- for(result = [], i = -1, len = points.numberOfItems || points.length; ++i < len;) {
3215
- next = points.getItem ? points.getItem(i) : points[i];
3216
- result.push.apply(result, [next.x, next.y]);
3217
- }
3218
-
3219
- result = PLUGINS.polys.polygon(result, corner);
3220
- break;
3221
-
3222
- // Unknown shape or rectangle? Use bounding box
3223
- default:
3224
- result = elem.getBBox();
3225
- result = {
3226
- width: result.width,
3227
- height: result.height,
3228
- position: {
3229
- left: result.x,
3230
- top: result.y
3231
- }
3232
- };
3233
- break;
3234
- }
3235
-
3236
- // Shortcut assignments
3237
- position = result.position;
3238
- root = root[0];
3239
-
3240
- // Convert position into a pixel value
3241
- if(root.createSVGPoint) {
3242
- mtx = elem.getScreenCTM();
3243
- points = root.createSVGPoint();
3244
-
3245
- points.x = position.left;
3246
- points.y = position.top;
3247
- transformed = points.matrixTransform( mtx );
3248
- position.left = transformed.x;
3249
- position.top = transformed.y;
3250
- }
3251
-
3252
- // Check the element is not in a child document, and if so, adjust for frame elements offset
3253
- if(ownerDocument !== document && api.position.target !== 'mouse') {
3254
- frameOffset = $((ownerDocument.defaultView || ownerDocument.parentWindow).frameElement).offset();
3255
- if(frameOffset) {
3256
- position.left += frameOffset.left;
3257
- position.top += frameOffset.top;
3258
- }
3259
- }
3260
-
3261
- // Adjust by scroll offset of owner document
3262
- ownerDocument = $(ownerDocument);
3263
- position.left += ownerDocument.scrollLeft();
3264
- position.top += ownerDocument.scrollTop();
3265
-
3266
- return result;
3267
- };
3268
- ;PLUGINS.imagemap = function(api, area, corner, adjustMethod)
3269
- {
3270
- if(!area.jquery) { area = $(area); }
3271
-
3272
- var shape = (area.attr('shape') || 'rect').toLowerCase().replace('poly', 'polygon'),
3273
- image = $('img[usemap="#'+area.parent('map').attr('name')+'"]'),
3274
- coordsString = $.trim(area.attr('coords')),
3275
- coordsArray = coordsString.replace(/,$/, '').split(','),
3276
- imageOffset, coords, i, next, result, len;
3277
-
3278
- // If we can't find the image using the map...
3279
- if(!image.length) { return FALSE; }
3280
-
3281
- // Pass coordinates string if polygon
3282
- if(shape === 'polygon') {
3283
- result = PLUGINS.polys.polygon(coordsArray, corner);
3284
- }
3285
-
3286
- // Otherwise parse the coordinates and pass them as arguments
3287
- else if(PLUGINS.polys[shape]) {
3288
- for(i = -1, len = coordsArray.length, coords = []; ++i < len;) {
3289
- coords.push( parseInt(coordsArray[i], 10) );
3290
- }
3291
-
3292
- result = PLUGINS.polys[shape].apply(
3293
- this, coords.concat(corner)
3294
- );
3295
- }
3296
-
3297
- // If no shapre calculation method was found, return false
3298
- else { return FALSE; }
3299
-
3300
- // Make sure we account for padding and borders on the image
3301
- imageOffset = image.offset();
3302
- imageOffset.left += Math.ceil((image.outerWidth(FALSE) - image.width()) / 2);
3303
- imageOffset.top += Math.ceil((image.outerHeight(FALSE) - image.height()) / 2);
3304
-
3305
- // Add image position to offset coordinates
3306
- result.position.left += imageOffset.left;
3307
- result.position.top += imageOffset.top;
3308
-
3309
- return result;
3310
- };
3311
- ;var IE6,
3312
-
3313
- /*
3314
- * BGIFrame adaption (http://plugins.jquery.com/project/bgiframe)
3315
- * Special thanks to Brandon Aaron
3316
- */
3317
- BGIFRAME = '<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:\'\';" ' +
3318
- ' style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=0); ' +
3319
- '-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";"></iframe>';
3320
-
3321
- function Ie6(api, qtip) {
3322
- this._ns = 'ie6';
3323
- this.init( (this.qtip = api) );
3324
- }
3325
-
3326
- $.extend(Ie6.prototype, {
3327
- _scroll : function() {
3328
- var overlay = this.qtip.elements.overlay;
3329
- overlay && (overlay[0].style.top = $(window).scrollTop() + 'px');
3330
- },
3331
-
3332
- init: function(qtip) {
3333
- var tooltip = qtip.tooltip,
3334
- scroll;
3335
-
3336
- // Create the BGIFrame element if needed
3337
- if($('select, object').length < 1) {
3338
- this.bgiframe = qtip.elements.bgiframe = $(BGIFRAME).appendTo(tooltip);
3339
-
3340
- // Update BGIFrame on tooltip move
3341
- qtip._bind(tooltip, 'tooltipmove', this.adjustBGIFrame, this._ns, this);
3342
- }
3343
-
3344
- // redraw() container for width/height calculations
3345
- this.redrawContainer = $('<div/>', { id: NAMESPACE+'-rcontainer' })
3346
- .appendTo(document.body);
3347
-
3348
- // Fixup modal plugin if present too
3349
- if( qtip.elements.overlay && qtip.elements.overlay.addClass('qtipmodal-ie6fix') ) {
3350
- qtip._bind(window, ['scroll', 'resize'], this._scroll, this._ns, this);
3351
- qtip._bind(tooltip, ['tooltipshow'], this._scroll, this._ns, this);
3352
- }
3353
-
3354
- // Set dimensions
3355
- this.redraw();
3356
- },
3357
-
3358
- adjustBGIFrame: function() {
3359
- var tooltip = this.qtip.tooltip,
3360
- dimensions = {
3361
- height: tooltip.outerHeight(FALSE),
3362
- width: tooltip.outerWidth(FALSE)
3363
- },
3364
- plugin = this.qtip.plugins.tip,
3365
- tip = this.qtip.elements.tip,
3366
- tipAdjust, offset;
3367
-
3368
- // Adjust border offset
3369
- offset = parseInt(tooltip.css('borderLeftWidth'), 10) || 0;
3370
- offset = { left: -offset, top: -offset };
3371
-
3372
- // Adjust for tips plugin
3373
- if(plugin && tip) {
3374
- tipAdjust = (plugin.corner.precedance === 'x') ? [WIDTH, LEFT] : [HEIGHT, TOP];
3375
- offset[ tipAdjust[1] ] -= tip[ tipAdjust[0] ]();
3376
- }
3377
-
3378
- // Update bgiframe
3379
- this.bgiframe.css(offset).css(dimensions);
3380
- },
3381
-
3382
- // Max/min width simulator function
3383
- redraw: function() {
3384
- if(this.qtip.rendered < 1 || this.drawing) { return this; }
3385
-
3386
- var tooltip = this.qtip.tooltip,
3387
- style = this.qtip.options.style,
3388
- container = this.qtip.options.position.container,
3389
- perc, width, max, min;
3390
-
3391
- // Set drawing flag
3392
- this.qtip.drawing = 1;
3393
-
3394
- // If tooltip has a set height/width, just set it... like a boss!
3395
- if(style.height) { tooltip.css(HEIGHT, style.height); }
3396
- if(style.width) { tooltip.css(WIDTH, style.width); }
3397
-
3398
- // Simulate max/min width if not set width present...
3399
- else {
3400
- // Reset width and add fluid class
3401
- tooltip.css(WIDTH, '').appendTo(this.redrawContainer);
3402
-
3403
- // Grab our tooltip width (add 1 if odd so we don't get wrapping problems.. huzzah!)
3404
- width = tooltip.width();
3405
- if(width % 2 < 1) { width += 1; }
3406
-
3407
- // Grab our max/min properties
3408
- max = tooltip.css('maxWidth') || '';
3409
- min = tooltip.css('minWidth') || '';
3410
-
3411
- // Parse into proper pixel values
3412
- perc = (max + min).indexOf('%') > -1 ? container.width() / 100 : 0;
3413
- max = ((max.indexOf('%') > -1 ? perc : 1) * parseInt(max, 10)) || width;
3414
- min = ((min.indexOf('%') > -1 ? perc : 1) * parseInt(min, 10)) || 0;
3415
-
3416
- // Determine new dimension size based on max/min/current values
3417
- width = max + min ? Math.min(Math.max(width, min), max) : width;
3418
-
3419
- // Set the newly calculated width and remvoe fluid class
3420
- tooltip.css(WIDTH, Math.round(width)).appendTo(container);
3421
- }
3422
-
3423
- // Set drawing flag
3424
- this.drawing = 0;
3425
-
3426
- return this;
3427
- },
3428
-
3429
- destroy: function() {
3430
- // Remove iframe
3431
- this.bgiframe && this.bgiframe.remove();
3432
-
3433
- // Remove bound events
3434
- this.qtip._unbind([window, this.qtip.tooltip], this._ns);
3435
- }
3436
- });
3437
-
3438
- IE6 = PLUGINS.ie6 = function(api) {
3439
- // Proceed only if the browser is IE6
3440
- return BROWSER.ie === 6 ? new Ie6(api) : FALSE;
3441
- };
3442
-
3443
- IE6.initialize = 'render';
3444
-
3445
- CHECKS.ie6 = {
3446
- '^content|style$': function() {
3447
- this.redraw();
3448
- }
3449
- };
3450
  ;}));
3451
  }( window, document ));
2
  * qTip2 - Pretty powerful tooltips - v2.2.1
3
  * http://qtip2.com
4
  *
5
+ * Copyright (c) 2015
6
  * Released under the MIT licenses
7
  * http://jquery.org/license
8
  *
9
+ * Date: Wed Aug 12 2015 04:16 EDT-0400
10
+ * Plugins: tips viewport
11
+ * Styles: core
12
  */
13
  /*global window: false, jQuery: false, console: false, define: false */
14
 
2620
  }
2621
  }
2622
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2623
  ;PLUGINS.viewport = function(api, position, posOptions, targetWidth, targetHeight, elemWidth, elemHeight)
2624
  {
2625
  var target = posOptions.target,
2727
 
2728
  return adjusted;
2729
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2730
  ;}));
2731
  }( window, document ));
assets/js/vendor/jquery.qtip.min.js CHANGED
@@ -1,5 +1,5 @@
1
- /* qTip2 v2.2.1 | Plugins: tips modal viewport svg imagemap ie6 | Styles: core basic css3 | qtip2.com | Licensed MIT | Sun Sep 07 2014 00:09:27 */
2
 
3
- !function(a,b,c){!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.qtip&&a(jQuery)}(function(d){"use strict";function e(a,b,c,e){this.id=c,this.target=a,this.tooltip=F,this.elements={target:a},this._id=S+"-"+c,this.timers={img:{}},this.options=b,this.plugins={},this.cache={event:{},target:d(),disabled:E,attr:e,onTooltip:E,lastClass:""},this.rendered=this.destroyed=this.disabled=this.waiting=this.hiddenDuringWait=this.positioning=this.triggering=E}function f(a){return a===F||"object"!==d.type(a)}function g(a){return!(d.isFunction(a)||a&&a.attr||a.length||"object"===d.type(a)&&(a.jquery||a.then))}function h(a){var b,c,e,h;return f(a)?E:(f(a.metadata)&&(a.metadata={type:a.metadata}),"content"in a&&(b=a.content,f(b)||b.jquery||b.done?b=a.content={text:c=g(b)?E:b}:c=b.text,"ajax"in b&&(e=b.ajax,h=e&&e.once!==E,delete b.ajax,b.text=function(a,b){var f=c||d(this).attr(b.options.content.attr)||"Loading...",g=d.ajax(d.extend({},e,{context:b})).then(e.success,F,e.error).then(function(a){return a&&h&&b.set("content.text",a),a},function(a,c,d){b.destroyed||0===a.status||b.set("content.text",c+": "+d)});return h?f:(b.set("content.text",f),g)}),"title"in b&&(d.isPlainObject(b.title)&&(b.button=b.title.button,b.title=b.title.text),g(b.title||E)&&(b.title=E))),"position"in a&&f(a.position)&&(a.position={my:a.position,at:a.position}),"show"in a&&f(a.show)&&(a.show=a.show.jquery?{target:a.show}:a.show===D?{ready:D}:{event:a.show}),"hide"in a&&f(a.hide)&&(a.hide=a.hide.jquery?{target:a.hide}:{event:a.hide}),"style"in a&&f(a.style)&&(a.style={classes:a.style}),d.each(R,function(){this.sanitize&&this.sanitize(a)}),a)}function i(a,b){for(var c,d=0,e=a,f=b.split(".");e=e[f[d++]];)d<f.length&&(c=e);return[c||a,f.pop()]}function j(a,b){var c,d,e;for(c in this.checks)for(d in this.checks[c])(e=new RegExp(d,"i").exec(a))&&(b.push(e),("builtin"===c||this.plugins[c])&&this.checks[c][d].apply(this.plugins[c]||this,b))}function k(a){return V.concat("").join(a?"-"+a+" ":" ")}function l(a,b){return b>0?setTimeout(d.proxy(a,this),b):void a.call(this)}function m(a){this.tooltip.hasClass(ab)||(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this.timers.show=l.call(this,function(){this.toggle(D,a)},this.options.show.delay))}function n(a){if(!this.tooltip.hasClass(ab)&&!this.destroyed){var b=d(a.relatedTarget),c=b.closest(W)[0]===this.tooltip[0],e=b[0]===this.options.show.target[0];if(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this!==b[0]&&"mouse"===this.options.position.target&&c||this.options.hide.fixed&&/mouse(out|leave|move)/.test(a.type)&&(c||e))try{a.preventDefault(),a.stopImmediatePropagation()}catch(f){}else this.timers.hide=l.call(this,function(){this.toggle(E,a)},this.options.hide.delay,this)}}function o(a){!this.tooltip.hasClass(ab)&&this.options.hide.inactive&&(clearTimeout(this.timers.inactive),this.timers.inactive=l.call(this,function(){this.hide(a)},this.options.hide.inactive))}function p(a){this.rendered&&this.tooltip[0].offsetWidth>0&&this.reposition(a)}function q(a,c,e){d(b.body).delegate(a,(c.split?c:c.join("."+S+" "))+"."+S,function(){var a=y.api[d.attr(this,U)];a&&!a.disabled&&e.apply(a,arguments)})}function r(a,c,f){var g,i,j,k,l,m=d(b.body),n=a[0]===b?m:a,o=a.metadata?a.metadata(f.metadata):F,p="html5"===f.metadata.type&&o?o[f.metadata.name]:F,q=a.data(f.metadata.name||"qtipopts");try{q="string"==typeof q?d.parseJSON(q):q}catch(r){}if(k=d.extend(D,{},y.defaults,f,"object"==typeof q?h(q):F,h(p||o)),i=k.position,k.id=c,"boolean"==typeof k.content.text){if(j=a.attr(k.content.attr),k.content.attr===E||!j)return E;k.content.text=j}if(i.container.length||(i.container=m),i.target===E&&(i.target=n),k.show.target===E&&(k.show.target=n),k.show.solo===D&&(k.show.solo=i.container.closest("body")),k.hide.target===E&&(k.hide.target=n),k.position.viewport===D&&(k.position.viewport=i.container),i.container=i.container.eq(0),i.at=new A(i.at,D),i.my=new A(i.my),a.data(S))if(k.overwrite)a.qtip("destroy",!0);else if(k.overwrite===E)return E;return a.attr(T,c),k.suppress&&(l=a.attr("title"))&&a.removeAttr("title").attr(cb,l).attr("title",""),g=new e(a,k,c,!!j),a.data(S,g),g}function s(a){return a.charAt(0).toUpperCase()+a.slice(1)}function t(a,b){var d,e,f=b.charAt(0).toUpperCase()+b.slice(1),g=(b+" "+rb.join(f+" ")+f).split(" "),h=0;if(qb[b])return a.css(qb[b]);for(;d=g[h++];)if((e=a.css(d))!==c)return qb[b]=d,e}function u(a,b){return Math.ceil(parseFloat(t(a,b)))}function v(a,b){this._ns="tip",this.options=b,this.offset=b.offset,this.size=[b.width,b.height],this.init(this.qtip=a)}function w(a,b){this.options=b,this._ns="-modal",this.init(this.qtip=a)}function x(a){this._ns="ie6",this.init(this.qtip=a)}var y,z,A,B,C,D=!0,E=!1,F=null,G="x",H="y",I="width",J="height",K="top",L="left",M="bottom",N="right",O="center",P="flipinvert",Q="shift",R={},S="qtip",T="data-hasqtip",U="data-qtip-id",V=["ui-widget","ui-tooltip"],W="."+S,X="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),Y=S+"-fixed",Z=S+"-default",$=S+"-focus",_=S+"-hover",ab=S+"-disabled",bb="_replacedByqTip",cb="oldtitle",db={ie:function(){for(var a=4,c=b.createElement("div");(c.innerHTML="<!--[if gt IE "+a+"]><i></i><![endif]-->")&&c.getElementsByTagName("i")[0];a+=1);return a>4?a:0/0}(),iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||E};z=e.prototype,z._when=function(a){return d.when.apply(d,a)},z.render=function(a){if(this.rendered||this.destroyed)return this;var b,c=this,e=this.options,f=this.cache,g=this.elements,h=e.content.text,i=e.content.title,j=e.content.button,k=e.position,l=("."+this._id+" ",[]);return d.attr(this.target[0],"aria-describedby",this._id),f.posClass=this._createPosClass((this.position={my:k.my,at:k.at}).my),this.tooltip=g.tooltip=b=d("<div/>",{id:this._id,"class":[S,Z,e.style.classes,f.posClass].join(" "),width:e.style.width||"",height:e.style.height||"",tracking:"mouse"===k.target&&k.adjust.mouse,role:"alert","aria-live":"polite","aria-atomic":E,"aria-describedby":this._id+"-content","aria-hidden":D}).toggleClass(ab,this.disabled).attr(U,this.id).data(S,this).appendTo(k.container).append(g.content=d("<div />",{"class":S+"-content",id:this._id+"-content","aria-atomic":D})),this.rendered=-1,this.positioning=D,i&&(this._createTitle(),d.isFunction(i)||l.push(this._updateTitle(i,E))),j&&this._createButton(),d.isFunction(h)||l.push(this._updateContent(h,E)),this.rendered=D,this._setWidget(),d.each(R,function(a){var b;"render"===this.initialize&&(b=this(c))&&(c.plugins[a]=b)}),this._unassignEvents(),this._assignEvents(),this._when(l).then(function(){c._trigger("render"),c.positioning=E,c.hiddenDuringWait||!e.show.ready&&!a||c.toggle(D,f.event,E),c.hiddenDuringWait=E}),y.api[this.id]=this,this},z.destroy=function(a){function b(){if(!this.destroyed){this.destroyed=D;var a,b=this.target,c=b.attr(cb);this.rendered&&this.tooltip.stop(1,0).find("*").remove().end().remove(),d.each(this.plugins,function(){this.destroy&&this.destroy()});for(a in this.timers)clearTimeout(this.timers[a]);b.removeData(S).removeAttr(U).removeAttr(T).removeAttr("aria-describedby"),this.options.suppress&&c&&b.attr("title",c).removeAttr(cb),this._unassignEvents(),this.options=this.elements=this.cache=this.timers=this.plugins=this.mouse=F,delete y.api[this.id]}}return this.destroyed?this.target:(a===D&&"hide"!==this.triggering||!this.rendered?b.call(this):(this.tooltip.one("tooltiphidden",d.proxy(b,this)),!this.triggering&&this.hide()),this.target)},B=z.checks={builtin:{"^id$":function(a,b,c,e){var f=c===D?y.nextid:c,g=S+"-"+f;f!==E&&f.length>0&&!d("#"+g).length?(this._id=g,this.rendered&&(this.tooltip[0].id=this._id,this.elements.content[0].id=this._id+"-content",this.elements.title[0].id=this._id+"-title")):a[b]=e},"^prerender":function(a,b,c){c&&!this.rendered&&this.render(this.options.show.ready)},"^content.text$":function(a,b,c){this._updateContent(c)},"^content.attr$":function(a,b,c,d){this.options.content.text===this.target.attr(d)&&this._updateContent(this.target.attr(c))},"^content.title$":function(a,b,c){return c?(c&&!this.elements.title&&this._createTitle(),void this._updateTitle(c)):this._removeTitle()},"^content.button$":function(a,b,c){this._updateButton(c)},"^content.title.(text|button)$":function(a,b,c){this.set("content."+b,c)},"^position.(my|at)$":function(a,b,c){"string"==typeof c&&(this.position[b]=a[b]=new A(c,"at"===b))},"^position.container$":function(a,b,c){this.rendered&&this.tooltip.appendTo(c)},"^show.ready$":function(a,b,c){c&&(!this.rendered&&this.render(D)||this.toggle(D))},"^style.classes$":function(a,b,c,d){this.rendered&&this.tooltip.removeClass(d).addClass(c)},"^style.(width|height)":function(a,b,c){this.rendered&&this.tooltip.css(b,c)},"^style.widget|content.title":function(){this.rendered&&this._setWidget()},"^style.def":function(a,b,c){this.rendered&&this.tooltip.toggleClass(Z,!!c)},"^events.(render|show|move|hide|focus|blur)$":function(a,b,c){this.rendered&&this.tooltip[(d.isFunction(c)?"":"un")+"bind"]("tooltip"+b,c)},"^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)":function(){if(this.rendered){var a=this.options.position;this.tooltip.attr("tracking","mouse"===a.target&&a.adjust.mouse),this._unassignEvents(),this._assignEvents()}}}},z.get=function(a){if(this.destroyed)return this;var b=i(this.options,a.toLowerCase()),c=b[0][b[1]];return c.precedance?c.string():c};var eb=/^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i,fb=/^prerender|show\.ready/i;z.set=function(a,b){if(this.destroyed)return this;{var c,e=this.rendered,f=E,g=this.options;this.checks}return"string"==typeof a?(c=a,a={},a[c]=b):a=d.extend({},a),d.each(a,function(b,c){if(e&&fb.test(b))return void delete a[b];var h,j=i(g,b.toLowerCase());h=j[0][j[1]],j[0][j[1]]=c&&c.nodeType?d(c):c,f=eb.test(b)||f,a[b]=[j[0],j[1],c,h]}),h(g),this.positioning=D,d.each(a,d.proxy(j,this)),this.positioning=E,this.rendered&&this.tooltip[0].offsetWidth>0&&f&&this.reposition("mouse"===g.position.target?F:this.cache.event),this},z._update=function(a,b){var c=this,e=this.cache;return this.rendered&&a?(d.isFunction(a)&&(a=a.call(this.elements.target,e.event,this)||""),d.isFunction(a.then)?(e.waiting=D,a.then(function(a){return e.waiting=E,c._update(a,b)},F,function(a){return c._update(a,b)})):a===E||!a&&""!==a?E:(a.jquery&&a.length>0?b.empty().append(a.css({display:"block",visibility:"visible"})):b.html(a),this._waitForContent(b).then(function(a){c.rendered&&c.tooltip[0].offsetWidth>0&&c.reposition(e.event,!a.length)}))):E},z._waitForContent=function(a){var b=this.cache;return b.waiting=D,(d.fn.imagesLoaded?a.imagesLoaded():d.Deferred().resolve([])).done(function(){b.waiting=E}).promise()},z._updateContent=function(a,b){this._update(a,this.elements.content,b)},z._updateTitle=function(a,b){this._update(a,this.elements.title,b)===E&&this._removeTitle(E)},z._createTitle=function(){var a=this.elements,b=this._id+"-title";a.titlebar&&this._removeTitle(),a.titlebar=d("<div />",{"class":S+"-titlebar "+(this.options.style.widget?k("header"):"")}).append(a.title=d("<div />",{id:b,"class":S+"-title","aria-atomic":D})).insertBefore(a.content).delegate(".qtip-close","mousedown keydown mouseup keyup mouseout",function(a){d(this).toggleClass("ui-state-active ui-state-focus","down"===a.type.substr(-4))}).delegate(".qtip-close","mouseover mouseout",function(a){d(this).toggleClass("ui-state-hover","mouseover"===a.type)}),this.options.content.button&&this._createButton()},z._removeTitle=function(a){var b=this.elements;b.title&&(b.titlebar.remove(),b.titlebar=b.title=b.button=F,a!==E&&this.reposition())},z._createPosClass=function(a){return S+"-pos-"+(a||this.options.position.my).abbrev()},z.reposition=function(c,e){if(!this.rendered||this.positioning||this.destroyed)return this;this.positioning=D;var f,g,h,i,j=this.cache,k=this.tooltip,l=this.options.position,m=l.target,n=l.my,o=l.at,p=l.viewport,q=l.container,r=l.adjust,s=r.method.split(" "),t=k.outerWidth(E),u=k.outerHeight(E),v=0,w=0,x=k.css("position"),y={left:0,top:0},z=k[0].offsetWidth>0,A=c&&"scroll"===c.type,B=d(a),C=q[0].ownerDocument,F=this.mouse;if(d.isArray(m)&&2===m.length)o={x:L,y:K},y={left:m[0],top:m[1]};else if("mouse"===m)o={x:L,y:K},(!r.mouse||this.options.hide.distance)&&j.origin&&j.origin.pageX?c=j.origin:!c||c&&("resize"===c.type||"scroll"===c.type)?c=j.event:F&&F.pageX&&(c=F),"static"!==x&&(y=q.offset()),C.body.offsetWidth!==(a.innerWidth||C.documentElement.clientWidth)&&(g=d(b.body).offset()),y={left:c.pageX-y.left+(g&&g.left||0),top:c.pageY-y.top+(g&&g.top||0)},r.mouse&&A&&F&&(y.left-=(F.scrollX||0)-B.scrollLeft(),y.top-=(F.scrollY||0)-B.scrollTop());else{if("event"===m?c&&c.target&&"scroll"!==c.type&&"resize"!==c.type?j.target=d(c.target):c.target||(j.target=this.elements.target):"event"!==m&&(j.target=d(m.jquery?m:this.elements.target)),m=j.target,m=d(m).eq(0),0===m.length)return this;m[0]===b||m[0]===a?(v=db.iOS?a.innerWidth:m.width(),w=db.iOS?a.innerHeight:m.height(),m[0]===a&&(y={top:(p||m).scrollTop(),left:(p||m).scrollLeft()})):R.imagemap&&m.is("area")?f=R.imagemap(this,m,o,R.viewport?s:E):R.svg&&m&&m[0].ownerSVGElement?f=R.svg(this,m,o,R.viewport?s:E):(v=m.outerWidth(E),w=m.outerHeight(E),y=m.offset()),f&&(v=f.width,w=f.height,g=f.offset,y=f.position),y=this.reposition.offset(m,y,q),(db.iOS>3.1&&db.iOS<4.1||db.iOS>=4.3&&db.iOS<4.33||!db.iOS&&"fixed"===x)&&(y.left-=B.scrollLeft(),y.top-=B.scrollTop()),(!f||f&&f.adjustable!==E)&&(y.left+=o.x===N?v:o.x===O?v/2:0,y.top+=o.y===M?w:o.y===O?w/2:0)}return y.left+=r.x+(n.x===N?-t:n.x===O?-t/2:0),y.top+=r.y+(n.y===M?-u:n.y===O?-u/2:0),R.viewport?(h=y.adjusted=R.viewport(this,y,l,v,w,t,u),g&&h.left&&(y.left+=g.left),g&&h.top&&(y.top+=g.top),h.my&&(this.position.my=h.my)):y.adjusted={left:0,top:0},j.posClass!==(i=this._createPosClass(this.position.my))&&k.removeClass(j.posClass).addClass(j.posClass=i),this._trigger("move",[y,p.elem||p],c)?(delete y.adjusted,e===E||!z||isNaN(y.left)||isNaN(y.top)||"mouse"===m||!d.isFunction(l.effect)?k.css(y):d.isFunction(l.effect)&&(l.effect.call(k,this,d.extend({},y)),k.queue(function(a){d(this).css({opacity:"",height:""}),db.ie&&this.style.removeAttribute("filter"),a()})),this.positioning=E,this):this},z.reposition.offset=function(a,c,e){function f(a,b){c.left+=b*a.scrollLeft(),c.top+=b*a.scrollTop()}if(!e[0])return c;var g,h,i,j,k=d(a[0].ownerDocument),l=!!db.ie&&"CSS1Compat"!==b.compatMode,m=e[0];do"static"!==(h=d.css(m,"position"))&&("fixed"===h?(i=m.getBoundingClientRect(),f(k,-1)):(i=d(m).position(),i.left+=parseFloat(d.css(m,"borderLeftWidth"))||0,i.top+=parseFloat(d.css(m,"borderTopWidth"))||0),c.left-=i.left+(parseFloat(d.css(m,"marginLeft"))||0),c.top-=i.top+(parseFloat(d.css(m,"marginTop"))||0),g||"hidden"===(j=d.css(m,"overflow"))||"visible"===j||(g=d(m)));while(m=m.offsetParent);return g&&(g[0]!==k[0]||l)&&f(g,1),c};var gb=(A=z.reposition.Corner=function(a,b){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,O).toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase(),this.forceY=!!b;var c=a.charAt(0);this.precedance="t"===c||"b"===c?H:G}).prototype;gb.invert=function(a,b){this[a]=this[a]===L?N:this[a]===N?L:b||this[a]},gb.string=function(a){var b=this.x,c=this.y,d=b!==c?"center"===b||"center"!==c&&(this.precedance===H||this.forceY)?[c,b]:[b,c]:[b];return a!==!1?d.join(" "):d},gb.abbrev=function(){var a=this.string(!1);return a[0].charAt(0)+(a[1]&&a[1].charAt(0)||"")},gb.clone=function(){return new A(this.string(),this.forceY)},z.toggle=function(a,c){var e=this.cache,f=this.options,g=this.tooltip;if(c){if(/over|enter/.test(c.type)&&e.event&&/out|leave/.test(e.event.type)&&f.show.target.add(c.target).length===f.show.target.length&&g.has(c.relatedTarget).length)return this;e.event=d.event.fix(c)}if(this.waiting&&!a&&(this.hiddenDuringWait=D),!this.rendered)return a?this.render(1):this;if(this.destroyed||this.disabled)return this;var h,i,j,k=a?"show":"hide",l=this.options[k],m=(this.options[a?"hide":"show"],this.options.position),n=this.options.content,o=this.tooltip.css("width"),p=this.tooltip.is(":visible"),q=a||1===l.target.length,r=!c||l.target.length<2||e.target[0]===c.target;return(typeof a).search("boolean|number")&&(a=!p),h=!g.is(":animated")&&p===a&&r,i=h?F:!!this._trigger(k,[90]),this.destroyed?this:(i!==E&&a&&this.focus(c),!i||h?this:(d.attr(g[0],"aria-hidden",!a),a?(this.mouse&&(e.origin=d.event.fix(this.mouse)),d.isFunction(n.text)&&this._updateContent(n.text,E),d.isFunction(n.title)&&this._updateTitle(n.title,E),!C&&"mouse"===m.target&&m.adjust.mouse&&(d(b).bind("mousemove."+S,this._storeMouse),C=D),o||g.css("width",g.outerWidth(E)),this.reposition(c,arguments[2]),o||g.css("width",""),l.solo&&("string"==typeof l.solo?d(l.solo):d(W,l.solo)).not(g).not(l.target).qtip("hide",d.Event("tooltipsolo"))):(clearTimeout(this.timers.show),delete e.origin,C&&!d(W+'[tracking="true"]:visible',l.solo).not(g).length&&(d(b).unbind("mousemove."+S),C=E),this.blur(c)),j=d.proxy(function(){a?(db.ie&&g[0].style.removeAttribute("filter"),g.css("overflow",""),"string"==typeof l.autofocus&&d(this.options.show.autofocus,g).focus(),this.options.show.target.trigger("qtip-"+this.id+"-inactive")):g.css({display:"",visibility:"",opacity:"",left:"",top:""}),this._trigger(a?"visible":"hidden")},this),l.effect===E||q===E?(g[k](),j()):d.isFunction(l.effect)?(g.stop(1,1),l.effect.call(g,this),g.queue("fx",function(a){j(),a()})):g.fadeTo(90,a?1:0,j),a&&l.target.trigger("qtip-"+this.id+"-inactive"),this))},z.show=function(a){return this.toggle(D,a)},z.hide=function(a){return this.toggle(E,a)},z.focus=function(a){if(!this.rendered||this.destroyed)return this;var b=d(W),c=this.tooltip,e=parseInt(c[0].style.zIndex,10),f=y.zindex+b.length;return c.hasClass($)||this._trigger("focus",[f],a)&&(e!==f&&(b.each(function(){this.style.zIndex>e&&(this.style.zIndex=this.style.zIndex-1)}),b.filter("."+$).qtip("blur",a)),c.addClass($)[0].style.zIndex=f),this},z.blur=function(a){return!this.rendered||this.destroyed?this:(this.tooltip.removeClass($),this._trigger("blur",[this.tooltip.css("zIndex")],a),this)},z.disable=function(a){return this.destroyed?this:("toggle"===a?a=!(this.rendered?this.tooltip.hasClass(ab):this.disabled):"boolean"!=typeof a&&(a=D),this.rendered&&this.tooltip.toggleClass(ab,a).attr("aria-disabled",a),this.disabled=!!a,this)},z.enable=function(){return this.disable(E)},z._createButton=function(){var a=this,b=this.elements,c=b.tooltip,e=this.options.content.button,f="string"==typeof e,g=f?e:"Close tooltip";b.button&&b.button.remove(),b.button=e.jquery?e:d("<a />",{"class":"qtip-close "+(this.options.style.widget?"":S+"-icon"),title:g,"aria-label":g}).prepend(d("<span />",{"class":"ui-icon ui-icon-close",html:"&times;"})),b.button.appendTo(b.titlebar||c).attr("role","button").click(function(b){return c.hasClass(ab)||a.hide(b),E})},z._updateButton=function(a){if(!this.rendered)return E;var b=this.elements.button;a?this._createButton():b.remove()},z._setWidget=function(){var a=this.options.style.widget,b=this.elements,c=b.tooltip,d=c.hasClass(ab);c.removeClass(ab),ab=a?"ui-state-disabled":"qtip-disabled",c.toggleClass(ab,d),c.toggleClass("ui-helper-reset "+k(),a).toggleClass(Z,this.options.style.def&&!a),b.content&&b.content.toggleClass(k("content"),a),b.titlebar&&b.titlebar.toggleClass(k("header"),a),b.button&&b.button.toggleClass(S+"-icon",!a)},z._storeMouse=function(a){return(this.mouse=d.event.fix(a)).type="mousemove",this},z._bind=function(a,b,c,e,f){if(a&&c&&b.length){var g="."+this._id+(e?"-"+e:"");return d(a).bind((b.split?b:b.join(g+" "))+g,d.proxy(c,f||this)),this}},z._unbind=function(a,b){return a&&d(a).unbind("."+this._id+(b?"-"+b:"")),this},z._trigger=function(a,b,c){var e=d.Event("tooltip"+a);return e.originalEvent=c&&d.extend({},c)||this.cache.event||F,this.triggering=a,this.tooltip.trigger(e,[this].concat(b||[])),this.triggering=E,!e.isDefaultPrevented()},z._bindEvents=function(a,b,c,e,f,g){var h=c.filter(e).add(e.filter(c)),i=[];h.length&&(d.each(b,function(b,c){var e=d.inArray(c,a);e>-1&&i.push(a.splice(e,1)[0])}),i.length&&(this._bind(h,i,function(a){var b=this.rendered?this.tooltip[0].offsetWidth>0:!1;(b?g:f).call(this,a)}),c=c.not(h),e=e.not(h))),this._bind(c,a,f),this._bind(e,b,g)},z._assignInitialEvents=function(a){function b(a){return this.disabled||this.destroyed?E:(this.cache.event=a&&d.event.fix(a),this.cache.target=a&&d(a.target),clearTimeout(this.timers.show),void(this.timers.show=l.call(this,function(){this.render("object"==typeof a||c.show.ready)},c.prerender?0:c.show.delay)))}var c=this.options,e=c.show.target,f=c.hide.target,g=c.show.event?d.trim(""+c.show.event).split(" "):[],h=c.hide.event?d.trim(""+c.hide.event).split(" "):[];this._bind(this.elements.target,["remove","removeqtip"],function(){this.destroy(!0)},"destroy"),/mouse(over|enter)/i.test(c.show.event)&&!/mouse(out|leave)/i.test(c.hide.event)&&h.push("mouseleave"),this._bind(e,"mousemove",function(a){this._storeMouse(a),this.cache.onTarget=D}),this._bindEvents(g,h,e,f,b,function(){return this.timers?void clearTimeout(this.timers.show):E}),(c.show.ready||c.prerender)&&b.call(this,a)},z._assignEvents=function(){var c=this,e=this.options,f=e.position,g=this.tooltip,h=e.show.target,i=e.hide.target,j=f.container,k=f.viewport,l=d(b),q=(d(b.body),d(a)),r=e.show.event?d.trim(""+e.show.event).split(" "):[],s=e.hide.event?d.trim(""+e.hide.event).split(" "):[];d.each(e.events,function(a,b){c._bind(g,"toggle"===a?["tooltipshow","tooltiphide"]:["tooltip"+a],b,null,g)}),/mouse(out|leave)/i.test(e.hide.event)&&"window"===e.hide.leave&&this._bind(l,["mouseout","blur"],function(a){/select|option/.test(a.target.nodeName)||a.relatedTarget||this.hide(a)}),e.hide.fixed?i=i.add(g.addClass(Y)):/mouse(over|enter)/i.test(e.show.event)&&this._bind(i,"mouseleave",function(){clearTimeout(this.timers.show)}),(""+e.hide.event).indexOf("unfocus")>-1&&this._bind(j.closest("html"),["mousedown","touchstart"],function(a){var b=d(a.target),c=this.rendered&&!this.tooltip.hasClass(ab)&&this.tooltip[0].offsetWidth>0,e=b.parents(W).filter(this.tooltip[0]).length>0;b[0]===this.target[0]||b[0]===this.tooltip[0]||e||this.target.has(b[0]).length||!c||this.hide(a)}),"number"==typeof e.hide.inactive&&(this._bind(h,"qtip-"+this.id+"-inactive",o,"inactive"),this._bind(i.add(g),y.inactiveEvents,o)),this._bindEvents(r,s,h,i,m,n),this._bind(h.add(g),"mousemove",function(a){if("number"==typeof e.hide.distance){var b=this.cache.origin||{},c=this.options.hide.distance,d=Math.abs;(d(a.pageX-b.pageX)>=c||d(a.pageY-b.pageY)>=c)&&this.hide(a)}this._storeMouse(a)}),"mouse"===f.target&&f.adjust.mouse&&(e.hide.event&&this._bind(h,["mouseenter","mouseleave"],function(a){return this.cache?void(this.cache.onTarget="mouseenter"===a.type):E}),this._bind(l,"mousemove",function(a){this.rendered&&this.cache.onTarget&&!this.tooltip.hasClass(ab)&&this.tooltip[0].offsetWidth>0&&this.reposition(a)})),(f.adjust.resize||k.length)&&this._bind(d.event.special.resize?k:q,"resize",p),f.adjust.scroll&&this._bind(q.add(f.container),"scroll",p)},z._unassignEvents=function(){var c=this.options,e=c.show.target,f=c.hide.target,g=d.grep([this.elements.target[0],this.rendered&&this.tooltip[0],c.position.container[0],c.position.viewport[0],c.position.container.closest("html")[0],a,b],function(a){return"object"==typeof a});e&&e.toArray&&(g=g.concat(e.toArray())),f&&f.toArray&&(g=g.concat(f.toArray())),this._unbind(g)._unbind(g,"destroy")._unbind(g,"inactive")},d(function(){q(W,["mouseenter","mouseleave"],function(a){var b="mouseenter"===a.type,c=d(a.currentTarget),e=d(a.relatedTarget||a.target),f=this.options;b?(this.focus(a),c.hasClass(Y)&&!c.hasClass(ab)&&clearTimeout(this.timers.hide)):"mouse"===f.position.target&&f.position.adjust.mouse&&f.hide.event&&f.show.target&&!e.closest(f.show.target[0]).length&&this.hide(a),c.toggleClass(_,b)}),q("["+U+"]",X,o)}),y=d.fn.qtip=function(a,b,e){var f=(""+a).toLowerCase(),g=F,i=d.makeArray(arguments).slice(1),j=i[i.length-1],k=this[0]?d.data(this[0],S):F;return!arguments.length&&k||"api"===f?k:"string"==typeof a?(this.each(function(){var a=d.data(this,S);if(!a)return D;if(j&&j.timeStamp&&(a.cache.event=j),!b||"option"!==f&&"options"!==f)a[f]&&a[f].apply(a,i);else{if(e===c&&!d.isPlainObject(b))return g=a.get(b),E;a.set(b,e)}}),g!==F?g:this):"object"!=typeof a&&arguments.length?void 0:(k=h(d.extend(D,{},a)),this.each(function(a){var b,c;return c=d.isArray(k.id)?k.id[a]:k.id,c=!c||c===E||c.length<1||y.api[c]?y.nextid++:c,b=r(d(this),c,k),b===E?D:(y.api[c]=b,d.each(R,function(){"initialize"===this.initialize&&this(b)}),void b._assignInitialEvents(j))}))},d.qtip=e,y.api={},d.each({attr:function(a,b){if(this.length){var c=this[0],e="title",f=d.data(c,"qtip");if(a===e&&f&&"object"==typeof f&&f.options.suppress)return arguments.length<2?d.attr(c,cb):(f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",b),this.attr(cb,b))}return d.fn["attr"+bb].apply(this,arguments)},clone:function(a){var b=(d([]),d.fn["clone"+bb].apply(this,arguments));return a||b.filter("["+cb+"]").attr("title",function(){return d.attr(this,cb)}).removeAttr(cb),b}},function(a,b){if(!b||d.fn[a+bb])return D;var c=d.fn[a+bb]=d.fn[a];d.fn[a]=function(){return b.apply(this,arguments)||c.apply(this,arguments)}}),d.ui||(d["cleanData"+bb]=d.cleanData,d.cleanData=function(a){for(var b,c=0;(b=d(a[c])).length;c++)if(b.attr(T))try{b.triggerHandler("removeqtip")}catch(e){}d["cleanData"+bb].apply(this,arguments)}),y.version="2.2.1",y.nextid=0,y.inactiveEvents=X,y.zindex=15e3,y.defaults={prerender:E,id:E,overwrite:D,suppress:D,content:{text:D,attr:"title",title:E,button:E},position:{my:"top left",at:"bottom right",target:E,container:E,viewport:E,adjust:{x:0,y:0,mouse:D,scroll:D,resize:D,method:"flipinvert flipinvert"},effect:function(a,b){d(this).animate(b,{duration:200,queue:E})}},show:{target:E,event:"mouseenter",effect:D,delay:90,solo:E,ready:E,autofocus:E},hide:{target:E,event:"mouseleave",effect:D,delay:0,fixed:E,inactive:E,leave:"window",distance:E},style:{classes:"",widget:E,width:E,height:E,def:D},events:{render:F,move:F,show:F,hide:F,toggle:F,visible:F,hidden:F,focus:F,blur:F}};var hb,ib="margin",jb="border",kb="color",lb="background-color",mb="transparent",nb=" !important",ob=!!b.createElement("canvas").getContext,pb=/rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i,qb={},rb=["Webkit","O","Moz","ms"];if(ob)var sb=a.devicePixelRatio||1,tb=function(){var a=b.createElement("canvas").getContext("2d");return a.backingStorePixelRatio||a.webkitBackingStorePixelRatio||a.mozBackingStorePixelRatio||a.msBackingStorePixelRatio||a.oBackingStorePixelRatio||1}(),ub=sb/tb;else var vb=function(a,b,c){return"<qtipvml:"+a+' xmlns="urn:schemas-microsoft.com:vml" class="qtip-vml" '+(b||"")+' style="behavior: url(#default#VML); '+(c||"")+'" />'};d.extend(v.prototype,{init:function(a){var b,c;c=this.element=a.elements.tip=d("<div />",{"class":S+"-tip"}).prependTo(a.tooltip),ob?(b=d("<canvas />").appendTo(this.element)[0].getContext("2d"),b.lineJoin="miter",b.miterLimit=1e5,b.save()):(b=vb("shape",'coordorigin="0,0"',"position:absolute;"),this.element.html(b+b),a._bind(d("*",c).add(c),["click","mousedown"],function(a){a.stopPropagation()},this._ns)),a._bind(a.tooltip,"tooltipmove",this.reposition,this._ns,this),this.create()},_swapDimensions:function(){this.size[0]=this.options.height,this.size[1]=this.options.width},_resetDimensions:function(){this.size[0]=this.options.width,this.size[1]=this.options.height},_useTitle:function(a){var b=this.qtip.elements.titlebar;return b&&(a.y===K||a.y===O&&this.element.position().top+this.size[1]/2+this.options.offset<b.outerHeight(D))},_parseCorner:function(a){var b=this.qtip.options.position.my;return a===E||b===E?a=E:a===D?a=new A(b.string()):a.string||(a=new A(a),a.fixed=D),a},_parseWidth:function(a,b,c){var d=this.qtip.elements,e=jb+s(b)+"Width";return(c?u(c,e):u(d.content,e)||u(this._useTitle(a)&&d.titlebar||d.content,e)||u(d.tooltip,e))||0},_parseRadius:function(a){var b=this.qtip.elements,c=jb+s(a.y)+s(a.x)+"Radius";return db.ie<9?0:u(this._useTitle(a)&&b.titlebar||b.content,c)||u(b.tooltip,c)||0},_invalidColour:function(a,b,c){var d=a.css(b);return!d||c&&d===a.css(c)||pb.test(d)?E:d},_parseColours:function(a){var b=this.qtip.elements,c=this.element.css("cssText",""),e=jb+s(a[a.precedance])+s(kb),f=this._useTitle(a)&&b.titlebar||b.content,g=this._invalidColour,h=[];return h[0]=g(c,lb)||g(f,lb)||g(b.content,lb)||g(b.tooltip,lb)||c.css(lb),h[1]=g(c,e,kb)||g(f,e,kb)||g(b.content,e,kb)||g(b.tooltip,e,kb)||b.tooltip.css(e),d("*",c).add(c).css("cssText",lb+":"+mb+nb+";"+jb+":0"+nb+";"),h},_calculateSize:function(a){var b,c,d,e=a.precedance===H,f=this.options.width,g=this.options.height,h="c"===a.abbrev(),i=(e?f:g)*(h?.5:1),j=Math.pow,k=Math.round,l=Math.sqrt(j(i,2)+j(g,2)),m=[this.border/i*l,this.border/g*l];return m[2]=Math.sqrt(j(m[0],2)-j(this.border,2)),m[3]=Math.sqrt(j(m[1],2)-j(this.border,2)),b=l+m[2]+m[3]+(h?0:m[0]),c=b/l,d=[k(c*f),k(c*g)],e?d:d.reverse()},_calculateTip:function(a,b,c){c=c||1,b=b||this.size;var d=b[0]*c,e=b[1]*c,f=Math.ceil(d/2),g=Math.ceil(e/2),h={br:[0,0,d,e,d,0],bl:[0,0,d,0,0,e],tr:[0,e,d,0,d,e],tl:[0,0,0,e,d,e],tc:[0,e,f,0,d,e],bc:[0,0,d,0,f,e],rc:[0,0,d,g,0,e],lc:[d,0,d,e,0,g]};return h.lt=h.br,h.rt=h.bl,h.lb=h.tr,h.rb=h.tl,h[a.abbrev()]},_drawCoords:function(a,b){a.beginPath(),a.moveTo(b[0],b[1]),a.lineTo(b[2],b[3]),a.lineTo(b[4],b[5]),a.closePath()},create:function(){var a=this.corner=(ob||db.ie)&&this._parseCorner(this.options.corner);return(this.enabled=!!this.corner&&"c"!==this.corner.abbrev())&&(this.qtip.cache.corner=a.clone(),this.update()),this.element.toggle(this.enabled),this.corner},update:function(b,c){if(!this.enabled)return this;var e,f,g,h,i,j,k,l,m=this.qtip.elements,n=this.element,o=n.children(),p=this.options,q=this.size,r=p.mimic,s=Math.round;b||(b=this.qtip.cache.corner||this.corner),r===E?r=b:(r=new A(r),r.precedance=b.precedance,"inherit"===r.x?r.x=b.x:"inherit"===r.y?r.y=b.y:r.x===r.y&&(r[b.precedance]=b[b.precedance])),f=r.precedance,b.precedance===G?this._swapDimensions():this._resetDimensions(),e=this.color=this._parseColours(b),e[1]!==mb?(l=this.border=this._parseWidth(b,b[b.precedance]),p.border&&1>l&&!pb.test(e[1])&&(e[0]=e[1]),this.border=l=p.border!==D?p.border:l):this.border=l=0,k=this.size=this._calculateSize(b),n.css({width:k[0],height:k[1],lineHeight:k[1]+"px"}),j=b.precedance===H?[s(r.x===L?l:r.x===N?k[0]-q[0]-l:(k[0]-q[0])/2),s(r.y===K?k[1]-q[1]:0)]:[s(r.x===L?k[0]-q[0]:0),s(r.y===K?l:r.y===M?k[1]-q[1]-l:(k[1]-q[1])/2)],ob?(g=o[0].getContext("2d"),g.restore(),g.save(),g.clearRect(0,0,6e3,6e3),h=this._calculateTip(r,q,ub),i=this._calculateTip(r,this.size,ub),o.attr(I,k[0]*ub).attr(J,k[1]*ub),o.css(I,k[0]).css(J,k[1]),this._drawCoords(g,i),g.fillStyle=e[1],g.fill(),g.translate(j[0]*ub,j[1]*ub),this._drawCoords(g,h),g.fillStyle=e[0],g.fill()):(h=this._calculateTip(r),h="m"+h[0]+","+h[1]+" l"+h[2]+","+h[3]+" "+h[4]+","+h[5]+" xe",j[2]=l&&/^(r|b)/i.test(b.string())?8===db.ie?2:1:0,o.css({coordsize:k[0]+l+" "+(k[1]+l),antialias:""+(r.string().indexOf(O)>-1),left:j[0]-j[2]*Number(f===G),top:j[1]-j[2]*Number(f===H),width:k[0]+l,height:k[1]+l}).each(function(a){var b=d(this);b[b.prop?"prop":"attr"]({coordsize:k[0]+l+" "+(k[1]+l),path:h,fillcolor:e[0],filled:!!a,stroked:!a}).toggle(!(!l&&!a)),!a&&b.html(vb("stroke",'weight="'+2*l+'px" color="'+e[1]+'" miterlimit="1000" joinstyle="miter"'))})),a.opera&&setTimeout(function(){m.tip.css({display:"inline-block",visibility:"visible"})},1),c!==E&&this.calculate(b,k)},calculate:function(a,b){if(!this.enabled)return E;var c,e,f=this,g=this.qtip.elements,h=this.element,i=this.options.offset,j=(g.tooltip.hasClass("ui-widget"),{});return a=a||this.corner,c=a.precedance,b=b||this._calculateSize(a),e=[a.x,a.y],c===G&&e.reverse(),d.each(e,function(d,e){var h,k,l;
4
- e===O?(h=c===H?L:K,j[h]="50%",j[ib+"-"+h]=-Math.round(b[c===H?0:1]/2)+i):(h=f._parseWidth(a,e,g.tooltip),k=f._parseWidth(a,e,g.content),l=f._parseRadius(a),j[e]=Math.max(-f.border,d?k:i+(l>h?l:-h)))}),j[a[c]]-=b[c===G?0:1],h.css({margin:"",top:"",bottom:"",left:"",right:""}).css(j),j},reposition:function(a,b,d){function e(a,b,c,d,e){a===Q&&j.precedance===b&&k[d]&&j[c]!==O?j.precedance=j.precedance===G?H:G:a!==Q&&k[d]&&(j[b]=j[b]===O?k[d]>0?d:e:j[b]===d?e:d)}function f(a,b,e){j[a]===O?p[ib+"-"+b]=o[a]=g[ib+"-"+b]-k[b]:(h=g[e]!==c?[k[b],-g[b]]:[-k[b],g[b]],(o[a]=Math.max(h[0],h[1]))>h[0]&&(d[b]-=k[b],o[b]=E),p[g[e]!==c?e:b]=o[a])}if(this.enabled){var g,h,i=b.cache,j=this.corner.clone(),k=d.adjusted,l=b.options.position.adjust.method.split(" "),m=l[0],n=l[1]||l[0],o={left:E,top:E,x:0,y:0},p={};this.corner.fixed!==D&&(e(m,G,H,L,N),e(n,H,G,K,M),(j.string()!==i.corner.string()||i.cornerTop!==k.top||i.cornerLeft!==k.left)&&this.update(j,E)),g=this.calculate(j),g.right!==c&&(g.left=-g.right),g.bottom!==c&&(g.top=-g.bottom),g.user=this.offset,(o.left=m===Q&&!!k.left)&&f(G,L,N),(o.top=n===Q&&!!k.top)&&f(H,K,M),this.element.css(p).toggle(!(o.x&&o.y||j.x===O&&o.y||j.y===O&&o.x)),d.left-=g.left.charAt?g.user:m!==Q||o.top||!o.left&&!o.top?g.left+this.border:0,d.top-=g.top.charAt?g.user:n!==Q||o.left||!o.left&&!o.top?g.top+this.border:0,i.cornerLeft=k.left,i.cornerTop=k.top,i.corner=j.clone()}},destroy:function(){this.qtip._unbind(this.qtip.tooltip,this._ns),this.qtip.elements.tip&&this.qtip.elements.tip.find("*").remove().end().remove()}}),hb=R.tip=function(a){return new v(a,a.options.style.tip)},hb.initialize="render",hb.sanitize=function(a){if(a.style&&"tip"in a.style){var b=a.style.tip;"object"!=typeof b&&(b=a.style.tip={corner:b}),/string|boolean/i.test(typeof b.corner)||(b.corner=D)}},B.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){this.create(),this.qtip.reposition()},"^style.tip.(height|width)$":function(a){this.size=[a.width,a.height],this.update(),this.qtip.reposition()},"^content.title|style.(classes|widget)$":function(){this.update()}},d.extend(D,y.defaults,{style:{tip:{corner:D,mimic:E,width:6,height:6,border:D,offset:0}}});var wb,xb,yb="qtip-modal",zb="."+yb;xb=function(){function a(a){if(d.expr[":"].focusable)return d.expr[":"].focusable;var b,c,e,f=!isNaN(d.attr(a,"tabindex")),g=a.nodeName&&a.nodeName.toLowerCase();return"area"===g?(b=a.parentNode,c=b.name,a.href&&c&&"map"===b.nodeName.toLowerCase()?(e=d("img[usemap=#"+c+"]")[0],!!e&&e.is(":visible")):!1):/input|select|textarea|button|object/.test(g)?!a.disabled:"a"===g?a.href||f:f}function c(a){k.length<1&&a.length?a.not("body").blur():k.first().focus()}function e(a){if(i.is(":visible")){var b,e=d(a.target),h=f.tooltip,j=e.closest(W);b=j.length<1?E:parseInt(j[0].style.zIndex,10)>parseInt(h[0].style.zIndex,10),b||e.closest(W)[0]===h[0]||c(e),g=a.target===k[k.length-1]}}var f,g,h,i,j=this,k={};d.extend(j,{init:function(){return i=j.elem=d("<div />",{id:"qtip-overlay",html:"<div></div>",mousedown:function(){return E}}).hide(),d(b.body).bind("focusin"+zb,e),d(b).bind("keydown"+zb,function(a){f&&f.options.show.modal.escape&&27===a.keyCode&&f.hide(a)}),i.bind("click"+zb,function(a){f&&f.options.show.modal.blur&&f.hide(a)}),j},update:function(b){f=b,k=b.options.show.modal.stealfocus!==E?b.tooltip.find("*").filter(function(){return a(this)}):[]},toggle:function(a,e,g){var k=(d(b.body),a.tooltip),l=a.options.show.modal,m=l.effect,n=e?"show":"hide",o=i.is(":visible"),p=d(zb).filter(":visible:not(:animated)").not(k);return j.update(a),e&&l.stealfocus!==E&&c(d(":focus")),i.toggleClass("blurs",l.blur),e&&i.appendTo(b.body),i.is(":animated")&&o===e&&h!==E||!e&&p.length?j:(i.stop(D,E),d.isFunction(m)?m.call(i,e):m===E?i[n]():i.fadeTo(parseInt(g,10)||90,e?1:0,function(){e||i.hide()}),e||i.queue(function(a){i.css({left:"",top:""}),d(zb).length||i.detach(),a()}),h=e,f.destroyed&&(f=F),j)}}),j.init()},xb=new xb,d.extend(w.prototype,{init:function(a){var b=a.tooltip;return this.options.on?(a.elements.overlay=xb.elem,b.addClass(yb).css("z-index",y.modal_zindex+d(zb).length),a._bind(b,["tooltipshow","tooltiphide"],function(a,c,e){var f=a.originalEvent;if(a.target===b[0])if(f&&"tooltiphide"===a.type&&/mouse(leave|enter)/.test(f.type)&&d(f.relatedTarget).closest(xb.elem[0]).length)try{a.preventDefault()}catch(g){}else(!f||f&&"tooltipsolo"!==f.type)&&this.toggle(a,"tooltipshow"===a.type,e)},this._ns,this),a._bind(b,"tooltipfocus",function(a,c){if(!a.isDefaultPrevented()&&a.target===b[0]){var e=d(zb),f=y.modal_zindex+e.length,g=parseInt(b[0].style.zIndex,10);xb.elem[0].style.zIndex=f-1,e.each(function(){this.style.zIndex>g&&(this.style.zIndex-=1)}),e.filter("."+$).qtip("blur",a.originalEvent),b.addClass($)[0].style.zIndex=f,xb.update(c);try{a.preventDefault()}catch(h){}}},this._ns,this),void a._bind(b,"tooltiphide",function(a){a.target===b[0]&&d(zb).filter(":visible").not(b).last().qtip("focus",a)},this._ns,this)):this},toggle:function(a,b,c){return a&&a.isDefaultPrevented()?this:void xb.toggle(this.qtip,!!b,c)},destroy:function(){this.qtip.tooltip.removeClass(yb),this.qtip._unbind(this.qtip.tooltip,this._ns),xb.toggle(this.qtip,E),delete this.qtip.elements.overlay}}),wb=R.modal=function(a){return new w(a,a.options.show.modal)},wb.sanitize=function(a){a.show&&("object"!=typeof a.show.modal?a.show.modal={on:!!a.show.modal}:"undefined"==typeof a.show.modal.on&&(a.show.modal.on=D))},y.modal_zindex=y.zindex-200,wb.initialize="render",B.modal={"^show.modal.(on|blur)$":function(){this.destroy(),this.init(),this.qtip.elems.overlay.toggle(this.qtip.tooltip[0].offsetWidth>0)}},d.extend(D,y.defaults,{show:{modal:{on:E,effect:D,blur:D,stealfocus:D,escape:D}}}),R.viewport=function(c,d,e,f,g,h,i){function j(a,b,c,e,f,g,h,i,j){var k=d[f],s=u[a],t=v[a],w=c===Q,x=s===f?j:s===g?-j:-j/2,y=t===f?i:t===g?-i:-i/2,z=q[f]+r[f]-(n?0:m[f]),A=z-k,B=k+j-(h===I?o:p)-z,C=x-(u.precedance===a||s===u[b]?y:0)-(t===O?i/2:0);return w?(C=(s===f?1:-1)*x,d[f]+=A>0?A:B>0?-B:0,d[f]=Math.max(-m[f]+r[f],k-C,Math.min(Math.max(-m[f]+r[f]+(h===I?o:p),k+C),d[f],"center"===s?k-x:1e9))):(e*=c===P?2:0,A>0&&(s!==f||B>0)?(d[f]-=C+e,l.invert(a,f)):B>0&&(s!==g||A>0)&&(d[f]-=(s===O?-C:C)+e,l.invert(a,g)),d[f]<q&&-d[f]>B&&(d[f]=k,l=u.clone())),d[f]-k}var k,l,m,n,o,p,q,r,s=e.target,t=c.elements.tooltip,u=e.my,v=e.at,w=e.adjust,x=w.method.split(" "),y=x[0],z=x[1]||x[0],A=e.viewport,B=e.container,C=(c.cache,{left:0,top:0});return A.jquery&&s[0]!==a&&s[0]!==b.body&&"none"!==w.method?(m=B.offset()||C,n="static"===B.css("position"),k="fixed"===t.css("position"),o=A[0]===a?A.width():A.outerWidth(E),p=A[0]===a?A.height():A.outerHeight(E),q={left:k?0:A.scrollLeft(),top:k?0:A.scrollTop()},r=A.offset()||C,("shift"!==y||"shift"!==z)&&(l=u.clone()),C={left:"none"!==y?j(G,H,y,w.x,L,N,I,f,h):0,top:"none"!==z?j(H,G,z,w.y,K,M,J,g,i):0,my:l}):C},R.polys={polygon:function(a,b){var c,d,e,f={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10},adjustable:E},g=0,h=[],i=1,j=1,k=0,l=0;for(g=a.length;g--;)c=[parseInt(a[--g],10),parseInt(a[g+1],10)],c[0]>f.position.right&&(f.position.right=c[0]),c[0]<f.position.left&&(f.position.left=c[0]),c[1]>f.position.bottom&&(f.position.bottom=c[1]),c[1]<f.position.top&&(f.position.top=c[1]),h.push(c);if(d=f.width=Math.abs(f.position.right-f.position.left),e=f.height=Math.abs(f.position.bottom-f.position.top),"c"===b.abbrev())f.position={left:f.position.left+f.width/2,top:f.position.top+f.height/2};else{for(;d>0&&e>0&&i>0&&j>0;)for(d=Math.floor(d/2),e=Math.floor(e/2),b.x===L?i=d:b.x===N?i=f.width-d:i+=Math.floor(d/2),b.y===K?j=e:b.y===M?j=f.height-e:j+=Math.floor(e/2),g=h.length;g--&&!(h.length<2);)k=h[g][0]-f.position.left,l=h[g][1]-f.position.top,(b.x===L&&k>=i||b.x===N&&i>=k||b.x===O&&(i>k||k>f.width-i)||b.y===K&&l>=j||b.y===M&&j>=l||b.y===O&&(j>l||l>f.height-j))&&h.splice(g,1);f.position={left:h[0][0],top:h[0][1]}}return f},rect:function(a,b,c,d){return{width:Math.abs(c-a),height:Math.abs(d-b),position:{left:Math.min(a,c),top:Math.min(b,d)}}},_angles:{tc:1.5,tr:7/4,tl:5/4,bc:.5,br:.25,bl:.75,rc:2,lc:1,c:0},ellipse:function(a,b,c,d,e){var f=R.polys._angles[e.abbrev()],g=0===f?0:c*Math.cos(f*Math.PI),h=d*Math.sin(f*Math.PI);return{width:2*c-Math.abs(g),height:2*d-Math.abs(h),position:{left:a+g,top:b+h},adjustable:E}},circle:function(a,b,c,d){return R.polys.ellipse(a,b,c,c,d)}},R.svg=function(a,c,e){for(var f,g,h,i,j,k,l,m,n,o=(d(b),c[0]),p=d(o.ownerSVGElement),q=o.ownerDocument,r=(parseInt(c.css("stroke-width"),10)||0)/2;!o.getBBox;)o=o.parentNode;if(!o.getBBox||!o.parentNode)return E;switch(o.nodeName){case"ellipse":case"circle":m=R.polys.ellipse(o.cx.baseVal.value,o.cy.baseVal.value,(o.rx||o.r).baseVal.value+r,(o.ry||o.r).baseVal.value+r,e);break;case"line":case"polygon":case"polyline":for(l=o.points||[{x:o.x1.baseVal.value,y:o.y1.baseVal.value},{x:o.x2.baseVal.value,y:o.y2.baseVal.value}],m=[],k=-1,i=l.numberOfItems||l.length;++k<i;)j=l.getItem?l.getItem(k):l[k],m.push.apply(m,[j.x,j.y]);m=R.polys.polygon(m,e);break;default:m=o.getBBox(),m={width:m.width,height:m.height,position:{left:m.x,top:m.y}}}return n=m.position,p=p[0],p.createSVGPoint&&(g=o.getScreenCTM(),l=p.createSVGPoint(),l.x=n.left,l.y=n.top,h=l.matrixTransform(g),n.left=h.x,n.top=h.y),q!==b&&"mouse"!==a.position.target&&(f=d((q.defaultView||q.parentWindow).frameElement).offset(),f&&(n.left+=f.left,n.top+=f.top)),q=d(q),n.left+=q.scrollLeft(),n.top+=q.scrollTop(),m},R.imagemap=function(a,b,c){b.jquery||(b=d(b));var e,f,g,h,i,j=(b.attr("shape")||"rect").toLowerCase().replace("poly","polygon"),k=d('img[usemap="#'+b.parent("map").attr("name")+'"]'),l=d.trim(b.attr("coords")),m=l.replace(/,$/,"").split(",");if(!k.length)return E;if("polygon"===j)h=R.polys.polygon(m,c);else{if(!R.polys[j])return E;for(g=-1,i=m.length,f=[];++g<i;)f.push(parseInt(m[g],10));h=R.polys[j].apply(this,f.concat(c))}return e=k.offset(),e.left+=Math.ceil((k.outerWidth(E)-k.width())/2),e.top+=Math.ceil((k.outerHeight(E)-k.height())/2),h.position.left+=e.left,h.position.top+=e.top,h};var Ab,Bb='<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:\'\';" style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=0); -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";"></iframe>';d.extend(x.prototype,{_scroll:function(){var b=this.qtip.elements.overlay;b&&(b[0].style.top=d(a).scrollTop()+"px")},init:function(c){var e=c.tooltip;d("select, object").length<1&&(this.bgiframe=c.elements.bgiframe=d(Bb).appendTo(e),c._bind(e,"tooltipmove",this.adjustBGIFrame,this._ns,this)),this.redrawContainer=d("<div/>",{id:S+"-rcontainer"}).appendTo(b.body),c.elements.overlay&&c.elements.overlay.addClass("qtipmodal-ie6fix")&&(c._bind(a,["scroll","resize"],this._scroll,this._ns,this),c._bind(e,["tooltipshow"],this._scroll,this._ns,this)),this.redraw()},adjustBGIFrame:function(){var a,b,c=this.qtip.tooltip,d={height:c.outerHeight(E),width:c.outerWidth(E)},e=this.qtip.plugins.tip,f=this.qtip.elements.tip;b=parseInt(c.css("borderLeftWidth"),10)||0,b={left:-b,top:-b},e&&f&&(a="x"===e.corner.precedance?[I,L]:[J,K],b[a[1]]-=f[a[0]]()),this.bgiframe.css(b).css(d)},redraw:function(){if(this.qtip.rendered<1||this.drawing)return this;var a,b,c,d,e=this.qtip.tooltip,f=this.qtip.options.style,g=this.qtip.options.position.container;return this.qtip.drawing=1,f.height&&e.css(J,f.height),f.width?e.css(I,f.width):(e.css(I,"").appendTo(this.redrawContainer),b=e.width(),1>b%2&&(b+=1),c=e.css("maxWidth")||"",d=e.css("minWidth")||"",a=(c+d).indexOf("%")>-1?g.width()/100:0,c=(c.indexOf("%")>-1?a:1)*parseInt(c,10)||b,d=(d.indexOf("%")>-1?a:1)*parseInt(d,10)||0,b=c+d?Math.min(Math.max(b,d),c):b,e.css(I,Math.round(b)).appendTo(g)),this.drawing=0,this},destroy:function(){this.bgiframe&&this.bgiframe.remove(),this.qtip._unbind([a,this.qtip.tooltip],this._ns)}}),Ab=R.ie6=function(a){return 6===db.ie?new x(a):E},Ab.initialize="render",B.ie6={"^content|style$":function(){this.redraw()}}})}(window,document);
5
- //# sourceMappingURL=jquery.qtip.min.map
1
+ /* qTip2 v2.2.1 | Plugins: tips viewport | Styles: core | qtip2.com | Licensed MIT | Wed Aug 12 2015 16:16:41 */
2
 
3
+ !function(a,b,c){!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.qtip&&a(jQuery)}(function(d){"use strict";function e(a,b,c,e){this.id=c,this.target=a,this.tooltip=D,this.elements={target:a},this._id=Q+"-"+c,this.timers={img:{}},this.options=b,this.plugins={},this.cache={event:{},target:d(),disabled:C,attr:e,onTooltip:C,lastClass:""},this.rendered=this.destroyed=this.disabled=this.waiting=this.hiddenDuringWait=this.positioning=this.triggering=C}function f(a){return a===D||"object"!==d.type(a)}function g(a){return!(d.isFunction(a)||a&&a.attr||a.length||"object"===d.type(a)&&(a.jquery||a.then))}function h(a){var b,c,e,h;return f(a)?C:(f(a.metadata)&&(a.metadata={type:a.metadata}),"content"in a&&(b=a.content,f(b)||b.jquery||b.done?b=a.content={text:c=g(b)?C:b}:c=b.text,"ajax"in b&&(e=b.ajax,h=e&&e.once!==C,delete b.ajax,b.text=function(a,b){var f=c||d(this).attr(b.options.content.attr)||"Loading...",g=d.ajax(d.extend({},e,{context:b})).then(e.success,D,e.error).then(function(a){return a&&h&&b.set("content.text",a),a},function(a,c,d){b.destroyed||0===a.status||b.set("content.text",c+": "+d)});return h?f:(b.set("content.text",f),g)}),"title"in b&&(d.isPlainObject(b.title)&&(b.button=b.title.button,b.title=b.title.text),g(b.title||C)&&(b.title=C))),"position"in a&&f(a.position)&&(a.position={my:a.position,at:a.position}),"show"in a&&f(a.show)&&(a.show=a.show.jquery?{target:a.show}:a.show===B?{ready:B}:{event:a.show}),"hide"in a&&f(a.hide)&&(a.hide=a.hide.jquery?{target:a.hide}:{event:a.hide}),"style"in a&&f(a.style)&&(a.style={classes:a.style}),d.each(P,function(){this.sanitize&&this.sanitize(a)}),a)}function i(a,b){for(var c,d=0,e=a,f=b.split(".");e=e[f[d++]];)d<f.length&&(c=e);return[c||a,f.pop()]}function j(a,b){var c,d,e;for(c in this.checks)for(d in this.checks[c])(e=new RegExp(d,"i").exec(a))&&(b.push(e),("builtin"===c||this.plugins[c])&&this.checks[c][d].apply(this.plugins[c]||this,b))}function k(a){return T.concat("").join(a?"-"+a+" ":" ")}function l(a,b){return b>0?setTimeout(d.proxy(a,this),b):void a.call(this)}function m(a){this.tooltip.hasClass($)||(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this.timers.show=l.call(this,function(){this.toggle(B,a)},this.options.show.delay))}function n(a){if(!this.tooltip.hasClass($)&&!this.destroyed){var b=d(a.relatedTarget),c=b.closest(U)[0]===this.tooltip[0],e=b[0]===this.options.show.target[0];if(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this!==b[0]&&"mouse"===this.options.position.target&&c||this.options.hide.fixed&&/mouse(out|leave|move)/.test(a.type)&&(c||e))try{a.preventDefault(),a.stopImmediatePropagation()}catch(f){}else this.timers.hide=l.call(this,function(){this.toggle(C,a)},this.options.hide.delay,this)}}function o(a){!this.tooltip.hasClass($)&&this.options.hide.inactive&&(clearTimeout(this.timers.inactive),this.timers.inactive=l.call(this,function(){this.hide(a)},this.options.hide.inactive))}function p(a){this.rendered&&this.tooltip[0].offsetWidth>0&&this.reposition(a)}function q(a,c,e){d(b.body).delegate(a,(c.split?c:c.join("."+Q+" "))+"."+Q,function(){var a=w.api[d.attr(this,S)];a&&!a.disabled&&e.apply(a,arguments)})}function r(a,c,f){var g,i,j,k,l,m=d(b.body),n=a[0]===b?m:a,o=a.metadata?a.metadata(f.metadata):D,p="html5"===f.metadata.type&&o?o[f.metadata.name]:D,q=a.data(f.metadata.name||"qtipopts");try{q="string"==typeof q?d.parseJSON(q):q}catch(r){}if(k=d.extend(B,{},w.defaults,f,"object"==typeof q?h(q):D,h(p||o)),i=k.position,k.id=c,"boolean"==typeof k.content.text){if(j=a.attr(k.content.attr),k.content.attr===C||!j)return C;k.content.text=j}if(i.container.length||(i.container=m),i.target===C&&(i.target=n),k.show.target===C&&(k.show.target=n),k.show.solo===B&&(k.show.solo=i.container.closest("body")),k.hide.target===C&&(k.hide.target=n),k.position.viewport===B&&(k.position.viewport=i.container),i.container=i.container.eq(0),i.at=new y(i.at,B),i.my=new y(i.my),a.data(Q))if(k.overwrite)a.qtip("destroy",!0);else if(k.overwrite===C)return C;return a.attr(R,c),k.suppress&&(l=a.attr("title"))&&a.removeAttr("title").attr(ab,l).attr("title",""),g=new e(a,k,c,!!j),a.data(Q,g),g}function s(a){return a.charAt(0).toUpperCase()+a.slice(1)}function t(a,b){var d,e,f=b.charAt(0).toUpperCase()+b.slice(1),g=(b+" "+pb.join(f+" ")+f).split(" "),h=0;if(ob[b])return a.css(ob[b]);for(;d=g[h++];)if((e=a.css(d))!==c)return ob[b]=d,e}function u(a,b){return Math.ceil(parseFloat(t(a,b)))}function v(a,b){this._ns="tip",this.options=b,this.offset=b.offset,this.size=[b.width,b.height],this.init(this.qtip=a)}var w,x,y,z,A,B=!0,C=!1,D=null,E="x",F="y",G="width",H="height",I="top",J="left",K="bottom",L="right",M="center",N="flipinvert",O="shift",P={},Q="qtip",R="data-hasqtip",S="data-qtip-id",T=["ui-widget","ui-tooltip"],U="."+Q,V="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),W=Q+"-fixed",X=Q+"-default",Y=Q+"-focus",Z=Q+"-hover",$=Q+"-disabled",_="_replacedByqTip",ab="oldtitle",bb={ie:function(){for(var a=4,c=b.createElement("div");(c.innerHTML="<!--[if gt IE "+a+"]><i></i><![endif]-->")&&c.getElementsByTagName("i")[0];a+=1);return a>4?a:0/0}(),iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||C};x=e.prototype,x._when=function(a){return d.when.apply(d,a)},x.render=function(a){if(this.rendered||this.destroyed)return this;var b,c=this,e=this.options,f=this.cache,g=this.elements,h=e.content.text,i=e.content.title,j=e.content.button,k=e.position,l=("."+this._id+" ",[]);return d.attr(this.target[0],"aria-describedby",this._id),f.posClass=this._createPosClass((this.position={my:k.my,at:k.at}).my),this.tooltip=g.tooltip=b=d("<div/>",{id:this._id,"class":[Q,X,e.style.classes,f.posClass].join(" "),width:e.style.width||"",height:e.style.height||"",tracking:"mouse"===k.target&&k.adjust.mouse,role:"alert","aria-live":"polite","aria-atomic":C,"aria-describedby":this._id+"-content","aria-hidden":B}).toggleClass($,this.disabled).attr(S,this.id).data(Q,this).appendTo(k.container).append(g.content=d("<div />",{"class":Q+"-content",id:this._id+"-content","aria-atomic":B})),this.rendered=-1,this.positioning=B,i&&(this._createTitle(),d.isFunction(i)||l.push(this._updateTitle(i,C))),j&&this._createButton(),d.isFunction(h)||l.push(this._updateContent(h,C)),this.rendered=B,this._setWidget(),d.each(P,function(a){var b;"render"===this.initialize&&(b=this(c))&&(c.plugins[a]=b)}),this._unassignEvents(),this._assignEvents(),this._when(l).then(function(){c._trigger("render"),c.positioning=C,c.hiddenDuringWait||!e.show.ready&&!a||c.toggle(B,f.event,C),c.hiddenDuringWait=C}),w.api[this.id]=this,this},x.destroy=function(a){function b(){if(!this.destroyed){this.destroyed=B;var a,b=this.target,c=b.attr(ab);this.rendered&&this.tooltip.stop(1,0).find("*").remove().end().remove(),d.each(this.plugins,function(){this.destroy&&this.destroy()});for(a in this.timers)clearTimeout(this.timers[a]);b.removeData(Q).removeAttr(S).removeAttr(R).removeAttr("aria-describedby"),this.options.suppress&&c&&b.attr("title",c).removeAttr(ab),this._unassignEvents(),this.options=this.elements=this.cache=this.timers=this.plugins=this.mouse=D,delete w.api[this.id]}}return this.destroyed?this.target:(a===B&&"hide"!==this.triggering||!this.rendered?b.call(this):(this.tooltip.one("tooltiphidden",d.proxy(b,this)),!this.triggering&&this.hide()),this.target)},z=x.checks={builtin:{"^id$":function(a,b,c,e){var f=c===B?w.nextid:c,g=Q+"-"+f;f!==C&&f.length>0&&!d("#"+g).length?(this._id=g,this.rendered&&(this.tooltip[0].id=this._id,this.elements.content[0].id=this._id+"-content",this.elements.title[0].id=this._id+"-title")):a[b]=e},"^prerender":function(a,b,c){c&&!this.rendered&&this.render(this.options.show.ready)},"^content.text$":function(a,b,c){this._updateContent(c)},"^content.attr$":function(a,b,c,d){this.options.content.text===this.target.attr(d)&&this._updateContent(this.target.attr(c))},"^content.title$":function(a,b,c){return c?(c&&!this.elements.title&&this._createTitle(),void this._updateTitle(c)):this._removeTitle()},"^content.button$":function(a,b,c){this._updateButton(c)},"^content.title.(text|button)$":function(a,b,c){this.set("content."+b,c)},"^position.(my|at)$":function(a,b,c){"string"==typeof c&&(this.position[b]=a[b]=new y(c,"at"===b))},"^position.container$":function(a,b,c){this.rendered&&this.tooltip.appendTo(c)},"^show.ready$":function(a,b,c){c&&(!this.rendered&&this.render(B)||this.toggle(B))},"^style.classes$":function(a,b,c,d){this.rendered&&this.tooltip.removeClass(d).addClass(c)},"^style.(width|height)":function(a,b,c){this.rendered&&this.tooltip.css(b,c)},"^style.widget|content.title":function(){this.rendered&&this._setWidget()},"^style.def":function(a,b,c){this.rendered&&this.tooltip.toggleClass(X,!!c)},"^events.(render|show|move|hide|focus|blur)$":function(a,b,c){this.rendered&&this.tooltip[(d.isFunction(c)?"":"un")+"bind"]("tooltip"+b,c)},"^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)":function(){if(this.rendered){var a=this.options.position;this.tooltip.attr("tracking","mouse"===a.target&&a.adjust.mouse),this._unassignEvents(),this._assignEvents()}}}},x.get=function(a){if(this.destroyed)return this;var b=i(this.options,a.toLowerCase()),c=b[0][b[1]];return c.precedance?c.string():c};var cb=/^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i,db=/^prerender|show\.ready/i;x.set=function(a,b){if(this.destroyed)return this;{var c,e=this.rendered,f=C,g=this.options;this.checks}return"string"==typeof a?(c=a,a={},a[c]=b):a=d.extend({},a),d.each(a,function(b,c){if(e&&db.test(b))return void delete a[b];var h,j=i(g,b.toLowerCase());h=j[0][j[1]],j[0][j[1]]=c&&c.nodeType?d(c):c,f=cb.test(b)||f,a[b]=[j[0],j[1],c,h]}),h(g),this.positioning=B,d.each(a,d.proxy(j,this)),this.positioning=C,this.rendered&&this.tooltip[0].offsetWidth>0&&f&&this.reposition("mouse"===g.position.target?D:this.cache.event),this},x._update=function(a,b){var c=this,e=this.cache;return this.rendered&&a?(d.isFunction(a)&&(a=a.call(this.elements.target,e.event,this)||""),d.isFunction(a.then)?(e.waiting=B,a.then(function(a){return e.waiting=C,c._update(a,b)},D,function(a){return c._update(a,b)})):a===C||!a&&""!==a?C:(a.jquery&&a.length>0?b.empty().append(a.css({display:"block",visibility:"visible"})):b.html(a),this._waitForContent(b).then(function(a){c.rendered&&c.tooltip[0].offsetWidth>0&&c.reposition(e.event,!a.length)}))):C},x._waitForContent=function(a){var b=this.cache;return b.waiting=B,(d.fn.imagesLoaded?a.imagesLoaded():d.Deferred().resolve([])).done(function(){b.waiting=C}).promise()},x._updateContent=function(a,b){this._update(a,this.elements.content,b)},x._updateTitle=function(a,b){this._update(a,this.elements.title,b)===C&&this._removeTitle(C)},x._createTitle=function(){var a=this.elements,b=this._id+"-title";a.titlebar&&this._removeTitle(),a.titlebar=d("<div />",{"class":Q+"-titlebar "+(this.options.style.widget?k("header"):"")}).append(a.title=d("<div />",{id:b,"class":Q+"-title","aria-atomic":B})).insertBefore(a.content).delegate(".qtip-close","mousedown keydown mouseup keyup mouseout",function(a){d(this).toggleClass("ui-state-active ui-state-focus","down"===a.type.substr(-4))}).delegate(".qtip-close","mouseover mouseout",function(a){d(this).toggleClass("ui-state-hover","mouseover"===a.type)}),this.options.content.button&&this._createButton()},x._removeTitle=function(a){var b=this.elements;b.title&&(b.titlebar.remove(),b.titlebar=b.title=b.button=D,a!==C&&this.reposition())},x._createPosClass=function(a){return Q+"-pos-"+(a||this.options.position.my).abbrev()},x.reposition=function(c,e){if(!this.rendered||this.positioning||this.destroyed)return this;this.positioning=B;var f,g,h,i,j=this.cache,k=this.tooltip,l=this.options.position,m=l.target,n=l.my,o=l.at,p=l.viewport,q=l.container,r=l.adjust,s=r.method.split(" "),t=k.outerWidth(C),u=k.outerHeight(C),v=0,w=0,x=k.css("position"),y={left:0,top:0},z=k[0].offsetWidth>0,A=c&&"scroll"===c.type,D=d(a),E=q[0].ownerDocument,F=this.mouse;if(d.isArray(m)&&2===m.length)o={x:J,y:I},y={left:m[0],top:m[1]};else if("mouse"===m)o={x:J,y:I},(!r.mouse||this.options.hide.distance)&&j.origin&&j.origin.pageX?c=j.origin:!c||c&&("resize"===c.type||"scroll"===c.type)?c=j.event:F&&F.pageX&&(c=F),"static"!==x&&(y=q.offset()),E.body.offsetWidth!==(a.innerWidth||E.documentElement.clientWidth)&&(g=d(b.body).offset()),y={left:c.pageX-y.left+(g&&g.left||0),top:c.pageY-y.top+(g&&g.top||0)},r.mouse&&A&&F&&(y.left-=(F.scrollX||0)-D.scrollLeft(),y.top-=(F.scrollY||0)-D.scrollTop());else{if("event"===m?c&&c.target&&"scroll"!==c.type&&"resize"!==c.type?j.target=d(c.target):c.target||(j.target=this.elements.target):"event"!==m&&(j.target=d(m.jquery?m:this.elements.target)),m=j.target,m=d(m).eq(0),0===m.length)return this;m[0]===b||m[0]===a?(v=bb.iOS?a.innerWidth:m.width(),w=bb.iOS?a.innerHeight:m.height(),m[0]===a&&(y={top:(p||m).scrollTop(),left:(p||m).scrollLeft()})):P.imagemap&&m.is("area")?f=P.imagemap(this,m,o,P.viewport?s:C):P.svg&&m&&m[0].ownerSVGElement?f=P.svg(this,m,o,P.viewport?s:C):(v=m.outerWidth(C),w=m.outerHeight(C),y=m.offset()),f&&(v=f.width,w=f.height,g=f.offset,y=f.position),y=this.reposition.offset(m,y,q),(bb.iOS>3.1&&bb.iOS<4.1||bb.iOS>=4.3&&bb.iOS<4.33||!bb.iOS&&"fixed"===x)&&(y.left-=D.scrollLeft(),y.top-=D.scrollTop()),(!f||f&&f.adjustable!==C)&&(y.left+=o.x===L?v:o.x===M?v/2:0,y.top+=o.y===K?w:o.y===M?w/2:0)}return y.left+=r.x+(n.x===L?-t:n.x===M?-t/2:0),y.top+=r.y+(n.y===K?-u:n.y===M?-u/2:0),P.viewport?(h=y.adjusted=P.viewport(this,y,l,v,w,t,u),g&&h.left&&(y.left+=g.left),g&&h.top&&(y.top+=g.top),h.my&&(this.position.my=h.my)):y.adjusted={left:0,top:0},j.posClass!==(i=this._createPosClass(this.position.my))&&k.removeClass(j.posClass).addClass(j.posClass=i),this._trigger("move",[y,p.elem||p],c)?(delete y.adjusted,e===C||!z||isNaN(y.left)||isNaN(y.top)||"mouse"===m||!d.isFunction(l.effect)?k.css(y):d.isFunction(l.effect)&&(l.effect.call(k,this,d.extend({},y)),k.queue(function(a){d(this).css({opacity:"",height:""}),bb.ie&&this.style.removeAttribute("filter"),a()})),this.positioning=C,this):this},x.reposition.offset=function(a,c,e){function f(a,b){c.left+=b*a.scrollLeft(),c.top+=b*a.scrollTop()}if(!e[0])return c;var g,h,i,j,k=d(a[0].ownerDocument),l=!!bb.ie&&"CSS1Compat"!==b.compatMode,m=e[0];do"static"!==(h=d.css(m,"position"))&&("fixed"===h?(i=m.getBoundingClientRect(),f(k,-1)):(i=d(m).position(),i.left+=parseFloat(d.css(m,"borderLeftWidth"))||0,i.top+=parseFloat(d.css(m,"borderTopWidth"))||0),c.left-=i.left+(parseFloat(d.css(m,"marginLeft"))||0),c.top-=i.top+(parseFloat(d.css(m,"marginTop"))||0),g||"hidden"===(j=d.css(m,"overflow"))||"visible"===j||(g=d(m)));while(m=m.offsetParent);return g&&(g[0]!==k[0]||l)&&f(g,1),c};var eb=(y=x.reposition.Corner=function(a,b){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,M).toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase(),this.forceY=!!b;var c=a.charAt(0);this.precedance="t"===c||"b"===c?F:E}).prototype;eb.invert=function(a,b){this[a]=this[a]===J?L:this[a]===L?J:b||this[a]},eb.string=function(a){var b=this.x,c=this.y,d=b!==c?"center"===b||"center"!==c&&(this.precedance===F||this.forceY)?[c,b]:[b,c]:[b];return a!==!1?d.join(" "):d},eb.abbrev=function(){var a=this.string(!1);return a[0].charAt(0)+(a[1]&&a[1].charAt(0)||"")},eb.clone=function(){return new y(this.string(),this.forceY)},x.toggle=function(a,c){var e=this.cache,f=this.options,g=this.tooltip;if(c){if(/over|enter/.test(c.type)&&e.event&&/out|leave/.test(e.event.type)&&f.show.target.add(c.target).length===f.show.target.length&&g.has(c.relatedTarget).length)return this;e.event=d.event.fix(c)}if(this.waiting&&!a&&(this.hiddenDuringWait=B),!this.rendered)return a?this.render(1):this;if(this.destroyed||this.disabled)return this;var h,i,j,k=a?"show":"hide",l=this.options[k],m=(this.options[a?"hide":"show"],this.options.position),n=this.options.content,o=this.tooltip.css("width"),p=this.tooltip.is(":visible"),q=a||1===l.target.length,r=!c||l.target.length<2||e.target[0]===c.target;return(typeof a).search("boolean|number")&&(a=!p),h=!g.is(":animated")&&p===a&&r,i=h?D:!!this._trigger(k,[90]),this.destroyed?this:(i!==C&&a&&this.focus(c),!i||h?this:(d.attr(g[0],"aria-hidden",!a),a?(this.mouse&&(e.origin=d.event.fix(this.mouse)),d.isFunction(n.text)&&this._updateContent(n.text,C),d.isFunction(n.title)&&this._updateTitle(n.title,C),!A&&"mouse"===m.target&&m.adjust.mouse&&(d(b).bind("mousemove."+Q,this._storeMouse),A=B),o||g.css("width",g.outerWidth(C)),this.reposition(c,arguments[2]),o||g.css("width",""),l.solo&&("string"==typeof l.solo?d(l.solo):d(U,l.solo)).not(g).not(l.target).qtip("hide",d.Event("tooltipsolo"))):(clearTimeout(this.timers.show),delete e.origin,A&&!d(U+'[tracking="true"]:visible',l.solo).not(g).length&&(d(b).unbind("mousemove."+Q),A=C),this.blur(c)),j=d.proxy(function(){a?(bb.ie&&g[0].style.removeAttribute("filter"),g.css("overflow",""),"string"==typeof l.autofocus&&d(this.options.show.autofocus,g).focus(),this.options.show.target.trigger("qtip-"+this.id+"-inactive")):g.css({display:"",visibility:"",opacity:"",left:"",top:""}),this._trigger(a?"visible":"hidden")},this),l.effect===C||q===C?(g[k](),j()):d.isFunction(l.effect)?(g.stop(1,1),l.effect.call(g,this),g.queue("fx",function(a){j(),a()})):g.fadeTo(90,a?1:0,j),a&&l.target.trigger("qtip-"+this.id+"-inactive"),this))},x.show=function(a){return this.toggle(B,a)},x.hide=function(a){return this.toggle(C,a)},x.focus=function(a){if(!this.rendered||this.destroyed)return this;var b=d(U),c=this.tooltip,e=parseInt(c[0].style.zIndex,10),f=w.zindex+b.length;return c.hasClass(Y)||this._trigger("focus",[f],a)&&(e!==f&&(b.each(function(){this.style.zIndex>e&&(this.style.zIndex=this.style.zIndex-1)}),b.filter("."+Y).qtip("blur",a)),c.addClass(Y)[0].style.zIndex=f),this},x.blur=function(a){return!this.rendered||this.destroyed?this:(this.tooltip.removeClass(Y),this._trigger("blur",[this.tooltip.css("zIndex")],a),this)},x.disable=function(a){return this.destroyed?this:("toggle"===a?a=!(this.rendered?this.tooltip.hasClass($):this.disabled):"boolean"!=typeof a&&(a=B),this.rendered&&this.tooltip.toggleClass($,a).attr("aria-disabled",a),this.disabled=!!a,this)},x.enable=function(){return this.disable(C)},x._createButton=function(){var a=this,b=this.elements,c=b.tooltip,e=this.options.content.button,f="string"==typeof e,g=f?e:"Close tooltip";b.button&&b.button.remove(),b.button=e.jquery?e:d("<a />",{"class":"qtip-close "+(this.options.style.widget?"":Q+"-icon"),title:g,"aria-label":g}).prepend(d("<span />",{"class":"ui-icon ui-icon-close",html:"&times;"})),b.button.appendTo(b.titlebar||c).attr("role","button").click(function(b){return c.hasClass($)||a.hide(b),C})},x._updateButton=function(a){if(!this.rendered)return C;var b=this.elements.button;a?this._createButton():b.remove()},x._setWidget=function(){var a=this.options.style.widget,b=this.elements,c=b.tooltip,d=c.hasClass($);c.removeClass($),$=a?"ui-state-disabled":"qtip-disabled",c.toggleClass($,d),c.toggleClass("ui-helper-reset "+k(),a).toggleClass(X,this.options.style.def&&!a),b.content&&b.content.toggleClass(k("content"),a),b.titlebar&&b.titlebar.toggleClass(k("header"),a),b.button&&b.button.toggleClass(Q+"-icon",!a)},x._storeMouse=function(a){return(this.mouse=d.event.fix(a)).type="mousemove",this},x._bind=function(a,b,c,e,f){if(a&&c&&b.length){var g="."+this._id+(e?"-"+e:"");return d(a).bind((b.split?b:b.join(g+" "))+g,d.proxy(c,f||this)),this}},x._unbind=function(a,b){return a&&d(a).unbind("."+this._id+(b?"-"+b:"")),this},x._trigger=function(a,b,c){var e=d.Event("tooltip"+a);return e.originalEvent=c&&d.extend({},c)||this.cache.event||D,this.triggering=a,this.tooltip.trigger(e,[this].concat(b||[])),this.triggering=C,!e.isDefaultPrevented()},x._bindEvents=function(a,b,c,e,f,g){var h=c.filter(e).add(e.filter(c)),i=[];h.length&&(d.each(b,function(b,c){var e=d.inArray(c,a);e>-1&&i.push(a.splice(e,1)[0])}),i.length&&(this._bind(h,i,function(a){var b=this.rendered?this.tooltip[0].offsetWidth>0:!1;(b?g:f).call(this,a)}),c=c.not(h),e=e.not(h))),this._bind(c,a,f),this._bind(e,b,g)},x._assignInitialEvents=function(a){function b(a){return this.disabled||this.destroyed?C:(this.cache.event=a&&d.event.fix(a),this.cache.target=a&&d(a.target),clearTimeout(this.timers.show),void(this.timers.show=l.call(this,function(){this.render("object"==typeof a||c.show.ready)},c.prerender?0:c.show.delay)))}var c=this.options,e=c.show.target,f=c.hide.target,g=c.show.event?d.trim(""+c.show.event).split(" "):[],h=c.hide.event?d.trim(""+c.hide.event).split(" "):[];this._bind(this.elements.target,["remove","removeqtip"],function(){this.destroy(!0)},"destroy"),/mouse(over|enter)/i.test(c.show.event)&&!/mouse(out|leave)/i.test(c.hide.event)&&h.push("mouseleave"),this._bind(e,"mousemove",function(a){this._storeMouse(a),this.cache.onTarget=B}),this._bindEvents(g,h,e,f,b,function(){return this.timers?void clearTimeout(this.timers.show):C}),(c.show.ready||c.prerender)&&b.call(this,a)},x._assignEvents=function(){var c=this,e=this.options,f=e.position,g=this.tooltip,h=e.show.target,i=e.hide.target,j=f.container,k=f.viewport,l=d(b),q=(d(b.body),d(a)),r=e.show.event?d.trim(""+e.show.event).split(" "):[],s=e.hide.event?d.trim(""+e.hide.event).split(" "):[];d.each(e.events,function(a,b){c._bind(g,"toggle"===a?["tooltipshow","tooltiphide"]:["tooltip"+a],b,null,g)}),/mouse(out|leave)/i.test(e.hide.event)&&"window"===e.hide.leave&&this._bind(l,["mouseout","blur"],function(a){/select|option/.test(a.target.nodeName)||a.relatedTarget||this.hide(a)}),e.hide.fixed?i=i.add(g.addClass(W)):/mouse(over|enter)/i.test(e.show.event)&&this._bind(i,"mouseleave",function(){clearTimeout(this.timers.show)}),(""+e.hide.event).indexOf("unfocus")>-1&&this._bind(j.closest("html"),["mousedown","touchstart"],function(a){var b=d(a.target),c=this.rendered&&!this.tooltip.hasClass($)&&this.tooltip[0].offsetWidth>0,e=b.parents(U).filter(this.tooltip[0]).length>0;b[0]===this.target[0]||b[0]===this.tooltip[0]||e||this.target.has(b[0]).length||!c||this.hide(a)}),"number"==typeof e.hide.inactive&&(this._bind(h,"qtip-"+this.id+"-inactive",o,"inactive"),this._bind(i.add(g),w.inactiveEvents,o)),this._bindEvents(r,s,h,i,m,n),this._bind(h.add(g),"mousemove",function(a){if("number"==typeof e.hide.distance){var b=this.cache.origin||{},c=this.options.hide.distance,d=Math.abs;(d(a.pageX-b.pageX)>=c||d(a.pageY-b.pageY)>=c)&&this.hide(a)}this._storeMouse(a)}),"mouse"===f.target&&f.adjust.mouse&&(e.hide.event&&this._bind(h,["mouseenter","mouseleave"],function(a){return this.cache?void(this.cache.onTarget="mouseenter"===a.type):C}),this._bind(l,"mousemove",function(a){this.rendered&&this.cache.onTarget&&!this.tooltip.hasClass($)&&this.tooltip[0].offsetWidth>0&&this.reposition(a)})),(f.adjust.resize||k.length)&&this._bind(d.event.special.resize?k:q,"resize",p),f.adjust.scroll&&this._bind(q.add(f.container),"scroll",p)},x._unassignEvents=function(){var c=this.options,e=c.show.target,f=c.hide.target,g=d.grep([this.elements.target[0],this.rendered&&this.tooltip[0],c.position.container[0],c.position.viewport[0],c.position.container.closest("html")[0],a,b],function(a){return"object"==typeof a});e&&e.toArray&&(g=g.concat(e.toArray())),f&&f.toArray&&(g=g.concat(f.toArray())),this._unbind(g)._unbind(g,"destroy")._unbind(g,"inactive")},d(function(){q(U,["mouseenter","mouseleave"],function(a){var b="mouseenter"===a.type,c=d(a.currentTarget),e=d(a.relatedTarget||a.target),f=this.options;b?(this.focus(a),c.hasClass(W)&&!c.hasClass($)&&clearTimeout(this.timers.hide)):"mouse"===f.position.target&&f.position.adjust.mouse&&f.hide.event&&f.show.target&&!e.closest(f.show.target[0]).length&&this.hide(a),c.toggleClass(Z,b)}),q("["+S+"]",V,o)}),w=d.fn.qtip=function(a,b,e){var f=(""+a).toLowerCase(),g=D,i=d.makeArray(arguments).slice(1),j=i[i.length-1],k=this[0]?d.data(this[0],Q):D;return!arguments.length&&k||"api"===f?k:"string"==typeof a?(this.each(function(){var a=d.data(this,Q);if(!a)return B;if(j&&j.timeStamp&&(a.cache.event=j),!b||"option"!==f&&"options"!==f)a[f]&&a[f].apply(a,i);else{if(e===c&&!d.isPlainObject(b))return g=a.get(b),C;a.set(b,e)}}),g!==D?g:this):"object"!=typeof a&&arguments.length?void 0:(k=h(d.extend(B,{},a)),this.each(function(a){var b,c;return c=d.isArray(k.id)?k.id[a]:k.id,c=!c||c===C||c.length<1||w.api[c]?w.nextid++:c,b=r(d(this),c,k),b===C?B:(w.api[c]=b,d.each(P,function(){"initialize"===this.initialize&&this(b)}),void b._assignInitialEvents(j))}))},d.qtip=e,w.api={},d.each({attr:function(a,b){if(this.length){var c=this[0],e="title",f=d.data(c,"qtip");if(a===e&&f&&"object"==typeof f&&f.options.suppress)return arguments.length<2?d.attr(c,ab):(f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",b),this.attr(ab,b))}return d.fn["attr"+_].apply(this,arguments)},clone:function(a){var b=(d([]),d.fn["clone"+_].apply(this,arguments));return a||b.filter("["+ab+"]").attr("title",function(){return d.attr(this,ab)}).removeAttr(ab),b}},function(a,b){if(!b||d.fn[a+_])return B;var c=d.fn[a+_]=d.fn[a];d.fn[a]=function(){return b.apply(this,arguments)||c.apply(this,arguments)}}),d.ui||(d["cleanData"+_]=d.cleanData,d.cleanData=function(a){for(var b,c=0;(b=d(a[c])).length;c++)if(b.attr(R))try{b.triggerHandler("removeqtip")}catch(e){}d["cleanData"+_].apply(this,arguments)}),w.version="2.2.1",w.nextid=0,w.inactiveEvents=V,w.zindex=15e3,w.defaults={prerender:C,id:C,overwrite:B,suppress:B,content:{text:B,attr:"title",title:C,button:C},position:{my:"top left",at:"bottom right",target:C,container:C,viewport:C,adjust:{x:0,y:0,mouse:B,scroll:B,resize:B,method:"flipinvert flipinvert"},effect:function(a,b){d(this).animate(b,{duration:200,queue:C})}},show:{target:C,event:"mouseenter",effect:B,delay:90,solo:C,ready:C,autofocus:C},hide:{target:C,event:"mouseleave",effect:B,delay:0,fixed:C,inactive:C,leave:"window",distance:C},style:{classes:"",widget:C,width:C,height:C,def:B},events:{render:D,move:D,show:D,hide:D,toggle:D,visible:D,hidden:D,focus:D,blur:D}};var fb,gb="margin",hb="border",ib="color",jb="background-color",kb="transparent",lb=" !important",mb=!!b.createElement("canvas").getContext,nb=/rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i,ob={},pb=["Webkit","O","Moz","ms"];if(mb)var qb=a.devicePixelRatio||1,rb=function(){var a=b.createElement("canvas").getContext("2d");return a.backingStorePixelRatio||a.webkitBackingStorePixelRatio||a.mozBackingStorePixelRatio||a.msBackingStorePixelRatio||a.oBackingStorePixelRatio||1}(),sb=qb/rb;else var tb=function(a,b,c){return"<qtipvml:"+a+' xmlns="urn:schemas-microsoft.com:vml" class="qtip-vml" '+(b||"")+' style="behavior: url(#default#VML); '+(c||"")+'" />'};d.extend(v.prototype,{init:function(a){var b,c;c=this.element=a.elements.tip=d("<div />",{"class":Q+"-tip"}).prependTo(a.tooltip),mb?(b=d("<canvas />").appendTo(this.element)[0].getContext("2d"),b.lineJoin="miter",b.miterLimit=1e5,b.save()):(b=tb("shape",'coordorigin="0,0"',"position:absolute;"),this.element.html(b+b),a._bind(d("*",c).add(c),["click","mousedown"],function(a){a.stopPropagation()},this._ns)),a._bind(a.tooltip,"tooltipmove",this.reposition,this._ns,this),this.create()},_swapDimensions:function(){this.size[0]=this.options.height,this.size[1]=this.options.width},_resetDimensions:function(){this.size[0]=this.options.width,this.size[1]=this.options.height},_useTitle:function(a){var b=this.qtip.elements.titlebar;return b&&(a.y===I||a.y===M&&this.element.position().top+this.size[1]/2+this.options.offset<b.outerHeight(B))},_parseCorner:function(a){var b=this.qtip.options.position.my;return a===C||b===C?a=C:a===B?a=new y(b.string()):a.string||(a=new y(a),a.fixed=B),a},_parseWidth:function(a,b,c){var d=this.qtip.elements,e=hb+s(b)+"Width";return(c?u(c,e):u(d.content,e)||u(this._useTitle(a)&&d.titlebar||d.content,e)||u(d.tooltip,e))||0},_parseRadius:function(a){var b=this.qtip.elements,c=hb+s(a.y)+s(a.x)+"Radius";return bb.ie<9?0:u(this._useTitle(a)&&b.titlebar||b.content,c)||u(b.tooltip,c)||0},_invalidColour:function(a,b,c){var d=a.css(b);return!d||c&&d===a.css(c)||nb.test(d)?C:d},_parseColours:function(a){var b=this.qtip.elements,c=this.element.css("cssText",""),e=hb+s(a[a.precedance])+s(ib),f=this._useTitle(a)&&b.titlebar||b.content,g=this._invalidColour,h=[];return h[0]=g(c,jb)||g(f,jb)||g(b.content,jb)||g(b.tooltip,jb)||c.css(jb),h[1]=g(c,e,ib)||g(f,e,ib)||g(b.content,e,ib)||g(b.tooltip,e,ib)||b.tooltip.css(e),d("*",c).add(c).css("cssText",jb+":"+kb+lb+";"+hb+":0"+lb+";"),h},_calculateSize:function(a){var b,c,d,e=a.precedance===F,f=this.options.width,g=this.options.height,h="c"===a.abbrev(),i=(e?f:g)*(h?.5:1),j=Math.pow,k=Math.round,l=Math.sqrt(j(i,2)+j(g,2)),m=[this.border/i*l,this.border/g*l];return m[2]=Math.sqrt(j(m[0],2)-j(this.border,2)),m[3]=Math.sqrt(j(m[1],2)-j(this.border,2)),b=l+m[2]+m[3]+(h?0:m[0]),c=b/l,d=[k(c*f),k(c*g)],e?d:d.reverse()},_calculateTip:function(a,b,c){c=c||1,b=b||this.size;var d=b[0]*c,e=b[1]*c,f=Math.ceil(d/2),g=Math.ceil(e/2),h={br:[0,0,d,e,d,0],bl:[0,0,d,0,0,e],tr:[0,e,d,0,d,e],tl:[0,0,0,e,d,e],tc:[0,e,f,0,d,e],bc:[0,0,d,0,f,e],rc:[0,0,d,g,0,e],lc:[d,0,d,e,0,g]};return h.lt=h.br,h.rt=h.bl,h.lb=h.tr,h.rb=h.tl,h[a.abbrev()]},_drawCoords:function(a,b){a.beginPath(),a.moveTo(b[0],b[1]),a.lineTo(b[2],b[3]),a.lineTo(b[4],b[5]),a.closePath()},create:function(){var a=this.corner=(mb||bb.ie)&&this._parseCorner(this.options.corner);return(this.enabled=!!this.corner&&"c"!==this.corner.abbrev())&&(this.qtip.cache.corner=a.clone(),this.update()),this.element.toggle(this.enabled),this.corner},update:function(b,c){if(!this.enabled)return this;var e,f,g,h,i,j,k,l,m=this.qtip.elements,n=this.element,o=n.children(),p=this.options,q=this.size,r=p.mimic,s=Math.round;b||(b=this.qtip.cache.corner||this.corner),r===C?r=b:(r=new y(r),r.precedance=b.precedance,"inherit"===r.x?r.x=b.x:"inherit"===r.y?r.y=b.y:r.x===r.y&&(r[b.precedance]=b[b.precedance])),f=r.precedance,b.precedance===E?this._swapDimensions():this._resetDimensions(),e=this.color=this._parseColours(b),e[1]!==kb?(l=this.border=this._parseWidth(b,b[b.precedance]),p.border&&1>l&&!nb.test(e[1])&&(e[0]=e[1]),this.border=l=p.border!==B?p.border:l):this.border=l=0,k=this.size=this._calculateSize(b),n.css({width:k[0],height:k[1],lineHeight:k[1]+"px"}),j=b.precedance===F?[s(r.x===J?l:r.x===L?k[0]-q[0]-l:(k[0]-q[0])/2),s(r.y===I?k[1]-q[1]:0)]:[s(r.x===J?k[0]-q[0]:0),s(r.y===I?l:r.y===K?k[1]-q[1]-l:(k[1]-q[1])/2)],mb?(g=o[0].getContext("2d"),g.restore(),g.save(),g.clearRect(0,0,6e3,6e3),h=this._calculateTip(r,q,sb),i=this._calculateTip(r,this.size,sb),o.attr(G,k[0]*sb).attr(H,k[1]*sb),o.css(G,k[0]).css(H,k[1]),this._drawCoords(g,i),g.fillStyle=e[1],g.fill(),g.translate(j[0]*sb,j[1]*sb),this._drawCoords(g,h),g.fillStyle=e[0],g.fill()):(h=this._calculateTip(r),h="m"+h[0]+","+h[1]+" l"+h[2]+","+h[3]+" "+h[4]+","+h[5]+" xe",j[2]=l&&/^(r|b)/i.test(b.string())?8===bb.ie?2:1:0,o.css({coordsize:k[0]+l+" "+(k[1]+l),antialias:""+(r.string().indexOf(M)>-1),left:j[0]-j[2]*Number(f===E),top:j[1]-j[2]*Number(f===F),width:k[0]+l,height:k[1]+l}).each(function(a){var b=d(this);b[b.prop?"prop":"attr"]({coordsize:k[0]+l+" "+(k[1]+l),path:h,fillcolor:e[0],filled:!!a,stroked:!a}).toggle(!(!l&&!a)),!a&&b.html(tb("stroke",'weight="'+2*l+'px" color="'+e[1]+'" miterlimit="1000" joinstyle="miter"'))})),a.opera&&setTimeout(function(){m.tip.css({display:"inline-block",visibility:"visible"})},1),c!==C&&this.calculate(b,k)},calculate:function(a,b){if(!this.enabled)return C;var c,e,f=this,g=this.qtip.elements,h=this.element,i=this.options.offset,j=(g.tooltip.hasClass("ui-widget"),{});return a=a||this.corner,c=a.precedance,b=b||this._calculateSize(a),e=[a.x,a.y],c===E&&e.reverse(),d.each(e,function(d,e){var h,k,l;e===M?(h=c===F?J:I,j[h]="50%",j[gb+"-"+h]=-Math.round(b[c===F?0:1]/2)+i):(h=f._parseWidth(a,e,g.tooltip),k=f._parseWidth(a,e,g.content),l=f._parseRadius(a),j[e]=Math.max(-f.border,d?k:i+(l>h?l:-h)))
4
+ }),j[a[c]]-=b[c===E?0:1],h.css({margin:"",top:"",bottom:"",left:"",right:""}).css(j),j},reposition:function(a,b,d){function e(a,b,c,d,e){a===O&&j.precedance===b&&k[d]&&j[c]!==M?j.precedance=j.precedance===E?F:E:a!==O&&k[d]&&(j[b]=j[b]===M?k[d]>0?d:e:j[b]===d?e:d)}function f(a,b,e){j[a]===M?p[gb+"-"+b]=o[a]=g[gb+"-"+b]-k[b]:(h=g[e]!==c?[k[b],-g[b]]:[-k[b],g[b]],(o[a]=Math.max(h[0],h[1]))>h[0]&&(d[b]-=k[b],o[b]=C),p[g[e]!==c?e:b]=o[a])}if(this.enabled){var g,h,i=b.cache,j=this.corner.clone(),k=d.adjusted,l=b.options.position.adjust.method.split(" "),m=l[0],n=l[1]||l[0],o={left:C,top:C,x:0,y:0},p={};this.corner.fixed!==B&&(e(m,E,F,J,L),e(n,F,E,I,K),(j.string()!==i.corner.string()||i.cornerTop!==k.top||i.cornerLeft!==k.left)&&this.update(j,C)),g=this.calculate(j),g.right!==c&&(g.left=-g.right),g.bottom!==c&&(g.top=-g.bottom),g.user=this.offset,(o.left=m===O&&!!k.left)&&f(E,J,L),(o.top=n===O&&!!k.top)&&f(F,I,K),this.element.css(p).toggle(!(o.x&&o.y||j.x===M&&o.y||j.y===M&&o.x)),d.left-=g.left.charAt?g.user:m!==O||o.top||!o.left&&!o.top?g.left+this.border:0,d.top-=g.top.charAt?g.user:n!==O||o.left||!o.left&&!o.top?g.top+this.border:0,i.cornerLeft=k.left,i.cornerTop=k.top,i.corner=j.clone()}},destroy:function(){this.qtip._unbind(this.qtip.tooltip,this._ns),this.qtip.elements.tip&&this.qtip.elements.tip.find("*").remove().end().remove()}}),fb=P.tip=function(a){return new v(a,a.options.style.tip)},fb.initialize="render",fb.sanitize=function(a){if(a.style&&"tip"in a.style){var b=a.style.tip;"object"!=typeof b&&(b=a.style.tip={corner:b}),/string|boolean/i.test(typeof b.corner)||(b.corner=B)}},z.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){this.create(),this.qtip.reposition()},"^style.tip.(height|width)$":function(a){this.size=[a.width,a.height],this.update(),this.qtip.reposition()},"^content.title|style.(classes|widget)$":function(){this.update()}},d.extend(B,w.defaults,{style:{tip:{corner:B,mimic:C,width:6,height:6,border:B,offset:0}}}),P.viewport=function(c,d,e,f,g,h,i){function j(a,b,c,e,f,g,h,i,j){var k=d[f],s=u[a],t=v[a],w=c===O,x=s===f?j:s===g?-j:-j/2,y=t===f?i:t===g?-i:-i/2,z=q[f]+r[f]-(n?0:m[f]),A=z-k,B=k+j-(h===G?o:p)-z,C=x-(u.precedance===a||s===u[b]?y:0)-(t===M?i/2:0);return w?(C=(s===f?1:-1)*x,d[f]+=A>0?A:B>0?-B:0,d[f]=Math.max(-m[f]+r[f],k-C,Math.min(Math.max(-m[f]+r[f]+(h===G?o:p),k+C),d[f],"center"===s?k-x:1e9))):(e*=c===N?2:0,A>0&&(s!==f||B>0)?(d[f]-=C+e,l.invert(a,f)):B>0&&(s!==g||A>0)&&(d[f]-=(s===M?-C:C)+e,l.invert(a,g)),d[f]<q&&-d[f]>B&&(d[f]=k,l=u.clone())),d[f]-k}var k,l,m,n,o,p,q,r,s=e.target,t=c.elements.tooltip,u=e.my,v=e.at,w=e.adjust,x=w.method.split(" "),y=x[0],z=x[1]||x[0],A=e.viewport,B=e.container,D=(c.cache,{left:0,top:0});return A.jquery&&s[0]!==a&&s[0]!==b.body&&"none"!==w.method?(m=B.offset()||D,n="static"===B.css("position"),k="fixed"===t.css("position"),o=A[0]===a?A.width():A.outerWidth(C),p=A[0]===a?A.height():A.outerHeight(C),q={left:k?0:A.scrollLeft(),top:k?0:A.scrollTop()},r=A.offset()||D,("shift"!==y||"shift"!==z)&&(l=u.clone()),D={left:"none"!==y?j(E,F,y,w.x,J,L,G,f,h):0,top:"none"!==z?j(F,E,z,w.y,I,K,H,g,i):0,my:l}):D}})}(window,document);
5
+ //# sourceMappingURL=jquery.qtip.min.js.map
google-calendar-events.php CHANGED
@@ -3,14 +3,13 @@
3
  * Plugin Name: Simple Calendar
4
  * Plugin URI: https://simplecalendar.io
5
  * Description: Add Google Calendar events to your WordPress site in minutes. Beautiful calendar displays. Fully responsive.
6
- * Version: 3.0.16
7
  * Author: Moonstone Media
8
  * Author URI: https://simplecalendar.io
 
9
  * Text Domain: google-calendar-events
10
  * Domain Path: /i18n
11
  *
12
- * @package SimpleCalendar
13
- * @copyright 2016 Moonstone Media/Phil Derksen. All rights reserved.
14
  */
15
 
16
  // Exit if accessed directly.
@@ -22,7 +21,7 @@ if ( ! defined( 'ABSPATH' ) ) {
22
  $this_plugin_path = trailingslashit( dirname( __FILE__ ) );
23
  $this_plugin_dir = plugin_dir_url( __FILE__ );
24
  $this_plugin_constants = array(
25
- 'SIMPLE_CALENDAR_VERSION' => '3.0.16',
26
  'SIMPLE_CALENDAR_MAIN_FILE' => __FILE__,
27
  'SIMPLE_CALENDAR_URL' => $this_plugin_dir,
28
  'SIMPLE_CALENDAR_ASSETS' => $this_plugin_dir . 'assets/',
3
  * Plugin Name: Simple Calendar
4
  * Plugin URI: https://simplecalendar.io
5
  * Description: Add Google Calendar events to your WordPress site in minutes. Beautiful calendar displays. Fully responsive.
 
6
  * Author: Moonstone Media
7
  * Author URI: https://simplecalendar.io
8
+ * Version: 3.1.0
9
  * Text Domain: google-calendar-events
10
  * Domain Path: /i18n
11
  *
12
+ * @copyright 2015-2016 Moonstone Media/Phil Derksen. All rights reserved.
 
13
  */
14
 
15
  // Exit if accessed directly.
21
  $this_plugin_path = trailingslashit( dirname( __FILE__ ) );
22
  $this_plugin_dir = plugin_dir_url( __FILE__ );
23
  $this_plugin_constants = array(
24
+ 'SIMPLE_CALENDAR_VERSION' => '3.1.0',
25
  'SIMPLE_CALENDAR_MAIN_FILE' => __FILE__,
26
  'SIMPLE_CALENDAR_URL' => $this_plugin_dir,
27
  'SIMPLE_CALENDAR_ASSETS' => $this_plugin_dir . 'assets/',
includes/abstracts/field.php CHANGED
@@ -131,6 +131,8 @@ abstract class Field {
131
  */
132
  public $default = '';
133
 
 
 
134
  /**
135
  * Validation result.
136
  *
@@ -172,6 +174,9 @@ abstract class Field {
172
  if ( isset( $field['options'] ) && is_array( $field['options'] ) ) {
173
  $this->options = array_map( 'esc_attr', $field['options'] );
174
  }
 
 
 
175
 
176
  // Escaping.
177
  if ( ! empty( $field['escaping'] ) && ( is_string( $field['escaping'] ) || is_array( $field['escaping'] ) ) ) {
131
  */
132
  public $default = '';
133
 
134
+ public $text = '';
135
+
136
  /**
137
  * Validation result.
138
  *
174
  if ( isset( $field['options'] ) && is_array( $field['options'] ) ) {
175
  $this->options = array_map( 'esc_attr', $field['options'] );
176
  }
177
+ if ( isset( $field['text'] ) ) {
178
+ $this->text = $field['text'];
179
+ }
180
 
181
  // Escaping.
182
  if ( ! empty( $field['escaping'] ) && ( is_string( $field['escaping'] ) || is_array( $field['escaping'] ) ) ) {
includes/admin/ajax.php CHANGED
@@ -124,8 +124,8 @@ class Ajax {
124
 
125
  // Update license in db.
126
  $keys = get_option( 'simple-calendar_settings_licenses', array() );
127
- $new_keys = array_merge( (array) $keys, array( 'keys' => array( $addon => $key ) ) );
128
- update_option( 'simple-calendar_settings_licenses', $new_keys );
129
 
130
  // Make sure there is a response.
131
  if ( is_wp_error( $response ) ) {
@@ -135,17 +135,22 @@ class Ajax {
135
  // Decode the license data and save.
136
  $license_data = json_decode( wp_remote_retrieve_body( $response ) );
137
  $status = simcal_get_license_status();
138
- if ( 'deactivated' == $license_data->license ) {
139
- unset( $status[ $addon ] );
140
- update_option( 'simple-calendar_licenses_status', $status );
141
- wp_send_json_success( $license_data->license );
142
- } elseif ( in_array( $license_data->license, array( 'valid', 'invalid' ) ) ) {
143
- $status[ $addon ] = $license_data->license;
144
- update_option( 'simple-calendar_licenses_status', $status );
145
- $message = 'valid' == $license_data->license ? 'valid' : __( 'License key is invalid.', 'google-calendar-events' );
146
- wp_send_json_success( $message );
 
 
 
 
 
147
  } else {
148
- wp_send_json_error( '' );
149
  }
150
  }
151
 
124
 
125
  // Update license in db.
126
  $keys = get_option( 'simple-calendar_settings_licenses', array() );
127
+ $keys['keys'][ $addon ] = $key;
128
+ update_option( 'simple-calendar_settings_licenses', $keys );
129
 
130
  // Make sure there is a response.
131
  if ( is_wp_error( $response ) ) {
135
  // Decode the license data and save.
136
  $license_data = json_decode( wp_remote_retrieve_body( $response ) );
137
  $status = simcal_get_license_status();
138
+
139
+ if ( ! empty( $license_data ) ) {
140
+ if ('deactivated' == $license_data->license) {
141
+ unset($status[$addon]);
142
+ update_option('simple-calendar_licenses_status', $status);
143
+ wp_send_json_success($license_data->license);
144
+ } elseif (in_array($license_data->license, array('valid', 'invalid'))) {
145
+ $status[$addon] = $license_data->license;
146
+ update_option('simple-calendar_licenses_status', $status);
147
+ $message = 'valid' == $license_data->license ? 'valid' : __('License key is invalid.', 'google-calendar-events');
148
+ wp_send_json_success($message);
149
+ } else {
150
+ wp_send_json_error( '' );
151
+ }
152
  } else {
153
+ wp_send_json_error( __( 'An error has occurred, please try again.', 'google-calendar-events' ) );
154
  }
155
  }
156
 
includes/admin/fields/checkbox.php CHANGED
@@ -87,7 +87,7 @@ class Checkbox extends Field {
87
  class="simcal-field simcal-field-checkbox <?php echo $this->class; ?>"
88
  value="yes"
89
  <?php checked( $this->value, 'yes', true ); ?>
90
- <?php echo $this->attributes; ?>/><?php _e( 'Yes', 'google-calendar-events' ); ?>
91
  </span>
92
  <?php
93
 
87
  class="simcal-field simcal-field-checkbox <?php echo $this->class; ?>"
88
  value="yes"
89
  <?php checked( $this->value, 'yes', true ); ?>
90
+ <?php echo $this->attributes; ?>/><?php echo ( ! empty( $this->text ) ? $this->text : __( 'Yes', 'google-calendar-events' ) ); ?>
91
  </span>
92
  <?php
93
 
includes/admin/fields/license.php CHANGED
@@ -35,7 +35,7 @@ class License extends Field {
35
  * @param array $field
36
  */
37
  public function __construct( $field ) {
38
- $this->addon = isset( $field['addon'] ) ? esc_attr( $field['addon'] ) : '';
39
  $this->type_class = 'simcal-field-license';
40
  parent::__construct( $field );
41
  }
@@ -49,17 +49,17 @@ class License extends Field {
49
 
50
  if ( ! empty( $this->addon ) ) {
51
 
52
- $status = simcal_get_license_status( $this->addon );
53
 
54
- if ( empty( $status ) || in_array( $status, array( 'valid', 'invalid', 'deactivated' ) ) ) {
55
- $display_activate = 'display: inline-block';
56
  $display_deactivate = 'display: none';
57
- $active = 'valid' == $status ? 'display: block' : 'display: none';
58
- $disabled = '';
59
  } else {
60
- $display_activate = $active = 'display: none';
61
  $display_deactivate = 'display: inline-block';
62
- $disabled = empty( $this->value ) ? '' : 'disabled="disabled"';
63
  }
64
 
65
  ?>
35
  * @param array $field
36
  */
37
  public function __construct( $field ) {
38
+ $this->addon = isset( $field['addon'] ) ? esc_attr( $field['addon'] ) : '';
39
  $this->type_class = 'simcal-field-license';
40
  parent::__construct( $field );
41
  }
49
 
50
  if ( ! empty( $this->addon ) ) {
51
 
52
+ $status = apply_filters( 'simcal_addon_status_' . $this->addon, simcal_get_license_status( $this->addon ) );
53
 
54
+ if ( $status !== 'valid' ) {
55
+ $display_activate = 'display: inline-block';
56
  $display_deactivate = 'display: none';
57
+ $active = 'valid' == $status ? 'display: block' : 'display: none';
58
+ $disabled = '';
59
  } else {
60
+ $display_activate = $active = 'display: none';
61
  $display_deactivate = 'display: inline-block';
62
+ $disabled = empty( $this->value ) ? '' : 'disabled="disabled"';
63
  }
64
 
65
  ?>
includes/admin/menus.php CHANGED
@@ -142,12 +142,7 @@ class Menus {
142
  if ( self::$plugin == $file ) {
143
 
144
  $links = array();
145
- $links['github'] = '<a href="' . simcal_get_url( 'github' ) . '" target="_blank" >GitHub</a>';
146
- $links['documentation'] = '<a href="' . simcal_ga_campaign_url( simcal_get_url( 'docs' ), 'core-plugin', 'plugin-listing' ) . '" target="_blank" >' .
147
- __( 'Documentation', 'google-calendar-events' ) . '</a>';
148
- $links['support'] = '<a href="' . simcal_get_url( 'support' ) . '" target="_blank" >' .
149
- __( 'Support', 'google-calendar-events' ) . '</a>';
150
- $links['add-ons'] = '<a href="' . simcal_ga_campaign_url( simcal_get_url( 'add-ons' ), 'core-plugin', 'plugin-listing' ) . '" target="_blank" >' .
151
  __( 'Add-ons', 'google-calendar-events' ) . '</a>';
152
 
153
  return apply_filters( 'simcal_plugin_action_links', array_merge( $meta_links, $links ) );
@@ -177,7 +172,7 @@ class Menus {
177
 
178
  // Add Drip promo signup form (@see Newsletter meta box).
179
 
180
- $drip_form_id = '9817628';
181
 
182
  ?>
183
  <form id="simcal-drip-form"
@@ -217,7 +212,7 @@ class Menus {
217
 
218
  } else {
219
 
220
- $footer_text = __( 'Thank you for using Simple Calendar!', 'google-calendar-events' );
221
 
222
  }
223
 
142
  if ( self::$plugin == $file ) {
143
 
144
  $links = array();
145
+ $links['add-ons'] = '<a href="' . simcal_ga_campaign_url( simcal_get_url( 'addons' ), 'core-plugin', 'plugin-listing' ) . '" target="_blank" >' .
 
 
 
 
 
146
  __( 'Add-ons', 'google-calendar-events' ) . '</a>';
147
 
148
  return apply_filters( 'simcal_plugin_action_links', array_merge( $meta_links, $links ) );
172
 
173
  // Add Drip promo signup form (@see Newsletter meta box).
174
 
175
+ $drip_form_id = '5368192';
176
 
177
  ?>
178
  <form id="simcal-drip-form"
212
 
213
  } else {
214
 
215
+ $footer_text = __( 'Thanks for using Simple Calendar!', 'google-calendar-events' );
216
 
217
  }
218
 
includes/admin/meta-boxes.php CHANGED
@@ -90,7 +90,7 @@ class Meta_Boxes {
90
 
91
  add_meta_box(
92
  'simcal-newsletter',
93
- __( 'Get 20% off Google Calendar Pro!', 'google-calendar-events' ),
94
  '\SimpleCalendar\Admin\Metaboxes\Newsletter::html',
95
  'calendar',
96
  'side',
90
 
91
  add_meta_box(
92
  'simcal-newsletter',
93
+ __( 'Get 20% off all Pro Add-ons', 'google-calendar-events' ),
94
  '\SimpleCalendar\Admin\Metaboxes\Newsletter::html',
95
  'calendar',
96
  'side',
includes/admin/metaboxes/attach-calendar.php CHANGED
@@ -56,8 +56,8 @@ class Attach_Calendar implements Meta_Box {
56
  'name' => '_simcal_attach_calendar_position',
57
  'value' => $position ? $position : 'after',
58
  'options' => array(
59
- 'after' => __( 'After content', 'google-calendar-events' ),
60
- 'before' => __( 'Before content', 'google-calendar-events' ),
61
  ),
62
  ) );
63
 
56
  'name' => '_simcal_attach_calendar_position',
57
  'value' => $position ? $position : 'after',
58
  'options' => array(
59
+ 'after' => __( 'After Content', 'google-calendar-events' ),
60
+ 'before' => __( 'Before Content', 'google-calendar-events' ),
61
  ),
62
  ) );
63
 
includes/admin/metaboxes/settings.php CHANGED
@@ -140,7 +140,7 @@ class Settings implements Meta_Box {
140
  }
141
 
142
  ?>
143
- <label for="_calendar_type"><span><?php _e( 'Calendar', 'google-calendar-events' ); ?></span>
144
  <select name="_calendar_type" id="_calendar_type">
145
  <optgroup label="<?php _e( 'Calendar to use', 'google-calendar-events' ); ?>">
146
  <?php foreach ( $calendar_options as $calendar => $name ) { ?>
@@ -238,11 +238,11 @@ class Settings implements Meta_Box {
238
  ?>
239
  <table>
240
  <thead>
241
- <tr><th colspan="2"><?php _e( 'Events setting', 'google-calendar-events' ); ?></th></tr>
242
  </thead>
243
  <tbody class="simcal-panel-section simcal-panel-section-events-range">
244
  <tr class="simcal-panel-field">
245
- <th><label for="_calendar_begins"><?php _e( 'Calendar start', 'google-calendar-events' ); ?></label></th>
246
  <td>
247
  <?php
248
 
@@ -350,7 +350,7 @@ class Settings implements Meta_Box {
350
  </td>
351
  </tr>
352
  <tr class="simcal-panel-field">
353
- <th><label for="_feed_earliest_event_date"><?php _e( 'Earliest event', 'google-calendar-events' ); ?></label></th>
354
  <td>
355
  <?php
356
 
@@ -388,7 +388,7 @@ class Settings implements Meta_Box {
388
  </td>
389
  </tr>
390
  <tr class="simcal-panel-field">
391
- <th><label for="_feed_latest_event_date"><?php _e( 'Latest event', 'google-calendar-events' ); ?></label></th>
392
  <td>
393
  <?php
394
 
@@ -448,7 +448,7 @@ class Settings implements Meta_Box {
448
  </thead>
449
  <tbody class="simcal-panel-section">
450
  <tr class="simcal-panel-field">
451
- <th><label for="_calendar_is_static"><?php _e( 'Static calendar', 'google-calendar-events' ); ?></label></th>
452
  <td>
453
  <?php
454
 
@@ -460,13 +460,14 @@ class Settings implements Meta_Box {
460
  'id' => '_calendar_is_static',
461
  'tooltip' => __( 'Remove the navigation arrows and fix the calendar view to its initial state.', 'google-calendar-events' ),
462
  'value' => 'yes' == $fixed ? 'yes' : 'no',
 
463
  ) );
464
 
465
  ?>
466
  </td>
467
  </tr>
468
  <tr class="simcal-panel-field">
469
- <th><label for="_no_events_message"><?php _e( 'No events message', 'google-calendar-events' ); ?></label></th>
470
  <td>
471
  <?php
472
 
@@ -569,7 +570,7 @@ class Settings implements Meta_Box {
569
  </td>
570
  </tr>
571
  <tr class="simcal-panel-field">
572
- <th><label for="_calendar_date_format_setting"><?php _e( 'Date format', 'google-calendar-events' ); ?></label></th>
573
  <td>
574
  <?php
575
 
@@ -641,7 +642,7 @@ class Settings implements Meta_Box {
641
  </td>
642
  </tr>
643
  <tr class="simcal-panel-field">
644
- <th><label for="_calendar_time_format_setting"><?php _e( 'Time format', 'google-calendar-events' ); ?></label></th>
645
  <td>
646
  <?php
647
 
@@ -690,7 +691,7 @@ class Settings implements Meta_Box {
690
  </td>
691
  </tr>
692
  <tr class="simcal-panel-field">
693
- <th><label for="_calendar_week_starts_on_setting"><?php _e( 'Week starts on', 'google-calendar-events' ); ?></label></th>
694
  <td>
695
  <?php
696
 
@@ -732,12 +733,13 @@ class Settings implements Meta_Box {
732
 
733
  $cache_freq = esc_attr( get_post_meta( $post->ID, '_feed_cache_user_amount', true ) );
734
  $cache_unit = esc_attr( get_post_meta( $post->ID, '_feed_cache_user_unit', true ) );
735
- $cache_freq = is_int( $cache_freq ) && $cache_freq >= 0 ? $cache_freq : '2';
 
736
  $cache_unit = $cache_unit ? $cache_unit : '3600';
737
 
738
  ?>
739
  <tr class="simcal-panel-field">
740
- <th><label for="_feed_cache_user_amount"><?php _ex( 'Refresh interval', 'Cache maximum interval', 'google-calendar-events' ); ?></label></th>
741
  <td>
742
  <input type="number"
743
  name="_feed_cache_user_amount"
140
  }
141
 
142
  ?>
143
+ <label for="_calendar_type"><span><?php _e( 'Calendar Type', 'google-calendar-events' ); ?></span>
144
  <select name="_calendar_type" id="_calendar_type">
145
  <optgroup label="<?php _e( 'Calendar to use', 'google-calendar-events' ); ?>">
146
  <?php foreach ( $calendar_options as $calendar => $name ) { ?>
238
  ?>
239
  <table>
240
  <thead>
241
+ <tr><th colspan="2"><?php _e( 'Event Settings', 'google-calendar-events' ); ?></th></tr>
242
  </thead>
243
  <tbody class="simcal-panel-section simcal-panel-section-events-range">
244
  <tr class="simcal-panel-field">
245
+ <th><label for="_calendar_begins"><?php _e( 'Calendar Start', 'google-calendar-events' ); ?></label></th>
246
  <td>
247
  <?php
248
 
350
  </td>
351
  </tr>
352
  <tr class="simcal-panel-field">
353
+ <th><label for="_feed_earliest_event_date"><?php _e( 'Earliest Event', 'google-calendar-events' ); ?></label></th>
354
  <td>
355
  <?php
356
 
388
  </td>
389
  </tr>
390
  <tr class="simcal-panel-field">
391
+ <th><label for="_feed_latest_event_date"><?php _e( 'Latest Event', 'google-calendar-events' ); ?></label></th>
392
  <td>
393
  <?php
394
 
448
  </thead>
449
  <tbody class="simcal-panel-section">
450
  <tr class="simcal-panel-field">
451
+ <th><label for="_calendar_is_static"><?php _e( 'Static Calendar', 'google-calendar-events' ); ?></label></th>
452
  <td>
453
  <?php
454
 
460
  'id' => '_calendar_is_static',
461
  'tooltip' => __( 'Remove the navigation arrows and fix the calendar view to its initial state.', 'google-calendar-events' ),
462
  'value' => 'yes' == $fixed ? 'yes' : 'no',
463
+ 'text' => __( 'Yes (hide navigation arrows)', 'google-calendar-events' ),
464
  ) );
465
 
466
  ?>
467
  </td>
468
  </tr>
469
  <tr class="simcal-panel-field">
470
+ <th><label for="_no_events_message"><?php _e( 'No Events Message', 'google-calendar-events' ); ?></label></th>
471
  <td>
472
  <?php
473
 
570
  </td>
571
  </tr>
572
  <tr class="simcal-panel-field">
573
+ <th><label for="_calendar_date_format_setting"><?php _e( 'Date Format', 'google-calendar-events' ); ?></label></th>
574
  <td>
575
  <?php
576
 
642
  </td>
643
  </tr>
644
  <tr class="simcal-panel-field">
645
+ <th><label for="_calendar_time_format_setting"><?php _e( 'Time Format', 'google-calendar-events' ); ?></label></th>
646
  <td>
647
  <?php
648
 
691
  </td>
692
  </tr>
693
  <tr class="simcal-panel-field">
694
+ <th><label for="_calendar_week_starts_on_setting"><?php _e( 'Week Starts On', 'google-calendar-events' ); ?></label></th>
695
  <td>
696
  <?php
697
 
733
 
734
  $cache_freq = esc_attr( get_post_meta( $post->ID, '_feed_cache_user_amount', true ) );
735
  $cache_unit = esc_attr( get_post_meta( $post->ID, '_feed_cache_user_unit', true ) );
736
+
737
+ $cache_freq = intval( $cache_freq ) && $cache_freq >= 0 ? $cache_freq : 2;
738
  $cache_unit = $cache_unit ? $cache_unit : '3600';
739
 
740
  ?>
741
  <tr class="simcal-panel-field">
742
+ <th><label for="_feed_cache_user_amount"><?php _ex( 'Refresh Interval', 'Cache maximum interval', 'google-calendar-events' ); ?></label></th>
743
  <td>
744
  <input type="number"
745
  name="_feed_cache_user_amount"
includes/admin/pages/add-ons.php CHANGED
@@ -50,7 +50,7 @@ class Add_Ons extends Admin_Page {
50
 
51
  // @todo pull data from simplecalendar.io to showcase add-ons
52
  $js_redirect = '<script type="text/javascript">';
53
- $js_redirect .= 'window.location = "' . simcal_ga_campaign_url( simcal_get_url( 'add-ons' ), 'core-plugin', 'plugin-submenu-link', true ) . '"';
54
  $js_redirect .= '</script>';
55
 
56
  echo $js_redirect;
50
 
51
  // @todo pull data from simplecalendar.io to showcase add-ons
52
  $js_redirect = '<script type="text/javascript">';
53
+ $js_redirect .= 'window.location = "' . simcal_ga_campaign_url( simcal_get_url( 'addons' ), 'core-plugin', 'plugin-submenu-link', true ) . '"';
54
  $js_redirect .= '</script>';
55
 
56
  echo $js_redirect;
includes/admin/pages/advanced.php CHANGED
@@ -74,7 +74,7 @@ class Advanced extends Admin_Page {
74
  $fields[ $section ] = array(
75
  'disable_css' => array(
76
  'title' => __( 'Disable CSS', 'google-calendar-events' ),
77
- 'tooltip' => __( 'If ticked, this option will prevent front end stylesheet to load.', 'google-calendar-events' ),
78
  'type' => 'checkbox',
79
  'name' => 'simple-calendar_' . $this->option_group . '_' . $this->id . '[' . $section . '][disable_css]',
80
  'id' => 'simple-calendar-' . $this->option_group . '-' . $this->id . '-' . $section . '-disable-css',
74
  $fields[ $section ] = array(
75
  'disable_css' => array(
76
  'title' => __( 'Disable CSS', 'google-calendar-events' ),
77
+ 'tooltip' => __( 'If ticked, this option will prevent all front end stylesheets to load. This also includes all add-on stylesheets.', 'google-calendar-events' ),
78
  'type' => 'checkbox',
79
  'name' => 'simple-calendar_' . $this->option_group . '_' . $this->id . '[' . $section . '][disable_css]',
80
  'id' => 'simple-calendar-' . $this->option_group . '-' . $this->id . '-' . $section . '-disable-css',
includes/admin/welcome.php CHANGED
@@ -135,7 +135,7 @@ class Welcome {
135
  <a href="<?php echo esc_url( add_query_arg( 'page', 'simple-calendar_settings', admin_url( 'admin.php' ) ) ); ?>"
136
  class="button button-primary"
137
  ><?php _e( 'Settings', 'google-calendar-events' ); ?></a>
138
- <a href="<?php echo simcal_ga_campaign_url( simcal_get_url( 'add-ons' ), 'core-plugin', 'welcome-page' ); ?>"
139
  class="docs button button-primary" target="_blank"
140
  ><?php _e( 'Add-ons', 'google-calendar-events' ); ?></a>
141
  <a href="<?php echo simcal_ga_campaign_url( simcal_get_url( 'docs' ), 'core-plugin', 'welcome-page' ); ?>"
@@ -174,9 +174,12 @@ class Welcome {
174
  echo $message;
175
 
176
  /* translators: %s prints the current version of the plugin. */
177
- printf( ' ' . __( "Simple Calendar %s has many new display options and is much easier to configure. We think you'll really enjoy using it.", 'google-calendar-events' ), SIMPLE_CALENDAR_VERSION );
178
-
179
  ?>
 
 
 
 
180
  </div>
181
 
182
  <div class="simcal-badge">&nbsp;</div>
@@ -211,7 +214,7 @@ class Welcome {
211
  */
212
  public function about_screen() {
213
  $welcome_image_about_path = SIMPLE_CALENDAR_ASSETS . '/images/welcome';
214
- $welcome_gcal_pro_link = simcal_ga_campaign_url( simcal_get_url( 'gcal-pro' ), 'core-plugin', 'welcome-page' );
215
 
216
  ?>
217
  <div id="simcal-welcome">
@@ -219,18 +222,20 @@ class Welcome {
219
 
220
  <?php $this->intro(); ?>
221
 
222
- <h3><?php _e( 'Modern calendar displays with easily updateable event text and color options.', 'google-calendar-events' ); ?></h3>
223
- <img src="<?php echo $welcome_image_about_path . '/grid-view-custom-colors.png'; ?>" />
224
 
225
  <h3><?php _e( 'Mobile responsive and widget ready.', 'google-calendar-events' ); ?></h3>
226
  <img src="<?php echo $welcome_image_about_path . '/list-view-widget.png'; ?>" />
227
  <img src="<?php echo $welcome_image_about_path . '/grid-view-widget-dark-theme.png'; ?>" />
228
 
229
- <h3><?php _e( 'Simpler, more intuitive calendar settings.', 'google-calendar-events' ); ?></h3>
230
- <img src="<?php echo $welcome_image_about_path . '/calendar-settings-appearance.png'; ?>" />
 
 
 
231
 
232
- <h3><?php echo sprintf( __( 'Extendible with add-ons like <a href="%s" target="_blank">Google Calendar Pro</a>.', 'google-calendar-events' ), $welcome_gcal_pro_link ); ?></h3>
233
- <a href="<?php echo $welcome_gcal_pro_link; ?>" target="_blank"><img src="<?php echo $welcome_image_about_path . '/google-calendar-pro-list-view-annotated.png'; ?>" /></a>
234
 
235
  <hr/>
236
 
135
  <a href="<?php echo esc_url( add_query_arg( 'page', 'simple-calendar_settings', admin_url( 'admin.php' ) ) ); ?>"
136
  class="button button-primary"
137
  ><?php _e( 'Settings', 'google-calendar-events' ); ?></a>
138
+ <a href="<?php echo simcal_ga_campaign_url( simcal_get_url( 'addons' ), 'core-plugin', 'welcome-page' ); ?>"
139
  class="docs button button-primary" target="_blank"
140
  ><?php _e( 'Add-ons', 'google-calendar-events' ); ?></a>
141
  <a href="<?php echo simcal_ga_campaign_url( simcal_get_url( 'docs' ), 'core-plugin', 'welcome-page' ); ?>"
174
  echo $message;
175
 
176
  /* translators: %s prints the current version of the plugin. */
177
+ printf( ' ' . __( "Simple Calendar %s has a few display options to configure. ", 'google-calendar-events' ), SIMPLE_CALENDAR_VERSION );
 
178
  ?>
179
+ <a href="<?php echo simcal_ga_campaign_url( simcal_get_url( 'docs' ), 'core-plugin', 'welcome-page' ); ?>"
180
+ target="_blank"
181
+ ><?php _e( 'Check out our documentation', 'google-calendar-events' ); ?></a>
182
+ <?php _e( 'to get started now.', 'google-calendar-events' ); ?>
183
  </div>
184
 
185
  <div class="simcal-badge">&nbsp;</div>
214
  */
215
  public function about_screen() {
216
  $welcome_image_about_path = SIMPLE_CALENDAR_ASSETS . '/images/welcome';
217
+ $welcome_addons_link = simcal_ga_campaign_url( simcal_get_url( 'addons' ), 'core-plugin', 'welcome-page' );
218
 
219
  ?>
220
  <div id="simcal-welcome">
222
 
223
  <?php $this->intro(); ?>
224
 
225
+ <h3><?php _e( 'Configure event colors, number of events to display, grid or list style and more.', 'google-calendar-events' ); ?></h3>
226
+ <img src="<?php echo $welcome_image_about_path . '/grid-view-basic.png'; ?>" />
227
 
228
  <h3><?php _e( 'Mobile responsive and widget ready.', 'google-calendar-events' ); ?></h3>
229
  <img src="<?php echo $welcome_image_about_path . '/list-view-widget.png'; ?>" />
230
  <img src="<?php echo $welcome_image_about_path . '/grid-view-widget-dark-theme.png'; ?>" />
231
 
232
+ <h3>
233
+ <?php _e( 'Add even more display options with add-ons like', 'google-calendar-events' ); ?>
234
+ <a href="<?php echo $welcome_addons_link; ?>" target="_blank"><?php _e( 'FullCalendar and Google Calendar Pro', 'google-calendar-events' ); ?></a>.
235
+ </h3>
236
+ <a href="<?php echo $welcome_addons_link; ?>" target="_blank"><img src="<?php echo $welcome_image_about_path . '/fullcalendar-google-calendar-pro-grid-view.png'; ?>" /></a>
237
 
238
+ <h3><a href="<?php echo $welcome_addons_link; ?>" target="_blank"><?php _e( 'View pricing and try demos for all Simple Calendar Pro add-ons.', 'google-calendar-events' ); ?></a></h3>
 
239
 
240
  <hr/>
241
 
includes/assets.php CHANGED
@@ -116,14 +116,37 @@ class Assets {
116
  */
117
  public function load() {
118
 
119
- $scripts = $this->get_default_scripts();
120
- $styles = $this->get_default_styles();
121
 
122
- $this->scripts = apply_filters( 'simcal_front_end_scripts', $scripts, $this->min );
123
- $this->styles = apply_filters( 'simcal_front_end_styles', $styles, $this->min );
 
 
 
 
 
 
 
124
 
125
- $this->load_scripts( $this->scripts );
126
- $this->load_styles( $this->styles );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  }
128
 
129
  /**
@@ -232,64 +255,4 @@ class Assets {
232
 
233
  }
234
  }
235
-
236
- /**
237
- * Return the default scripts that are loaded. Used mainly for the always enqueue scripts option.
238
- *
239
- * This can be improved.
240
- */
241
- public function get_default_scripts() {
242
- return array(
243
- 'simcal-qtip' => array(
244
- 'src' => SIMPLE_CALENDAR_ASSETS . 'js/vendor/jquery.qtip' . $this->min . '.js',
245
- 'deps' => array( 'jquery' ),
246
- 'ver' => '2.2.1',
247
- 'in_footer' => true,
248
- ),
249
- 'simcal-default-calendar' => array(
250
- 'src' => SIMPLE_CALENDAR_ASSETS . 'js/default-calendar' . $this->min . '.js',
251
- 'deps' => array(
252
- 'jquery',
253
- 'simcal-qtip',
254
- ),
255
- 'var' => SIMPLE_CALENDAR_VERSION,
256
- 'in_footer' => true,
257
- 'localize' => array(
258
- 'simcal_default_calendar' => simcal_common_scripts_variables(),
259
- ),
260
- ),
261
- );
262
- }
263
-
264
- /**
265
- * Return the default styles that are loaded. Used mainly for the always enqueue scripts option.
266
- *
267
- * This can be improved.
268
- */
269
- public function get_default_styles() {
270
- return array(
271
- 'simcal-qtip' => array(
272
- 'src' => SIMPLE_CALENDAR_ASSETS . 'css/vendor/jquery.qtip' . $this->min . '.css',
273
- 'ver' => '2.2.1',
274
- 'media' => 'all',
275
- ),
276
- 'simcal-default-calendar-grid' => array(
277
- 'src' => SIMPLE_CALENDAR_ASSETS . 'css/default-calendar-grid' . $this->min . '.css',
278
- 'deps' => array(
279
- 'simcal-qtip',
280
- ),
281
- 'ver' => SIMPLE_CALENDAR_VERSION,
282
- 'media' => 'all',
283
- ),
284
- 'simcal-default-calendar-list' => array(
285
- 'src' => SIMPLE_CALENDAR_ASSETS . 'css/default-calendar-list' . $this->min . '.css',
286
- 'deps' => array(
287
- 'simcal-qtip',
288
- ),
289
- 'ver' => SIMPLE_CALENDAR_VERSION,
290
- 'media' => 'all',
291
- ),
292
- );
293
- }
294
-
295
  }
116
  */
117
  public function load() {
118
 
119
+ $types = simcal_get_calendar_types();
 
120
 
121
+ foreach ( $types as $calendar => $views ) {
122
+ foreach( $views as $key => $view ) {
123
+
124
+ $view = simcal_get_calendar_view( 0, $calendar . '-' . $view );
125
+
126
+ $scripts[] = $view->scripts( $this->min );
127
+ $styles[] = $view->styles( $this->min );
128
+ }
129
+ }
130
 
131
+ $this->get_widgets_assets();
132
+ $this->scripts = apply_filters( 'simcal_front_end_scripts', $scripts, $this->min );
133
+ // First check if there is a multi-dimensional array of scripts
134
+ if ( isset( $this->scripts[0] ) ) {
135
+ foreach ( $this->scripts as $script ) {
136
+ $this->load_scripts ( $script );
137
+ }
138
+ } else {
139
+ $this->load_scripts( $this->scripts );
140
+ }
141
+ $this->styles = apply_filters( 'simcal_front_end_styles', $styles, $this->min );
142
+ // First check if there is a multi-dimensional array of styles
143
+ if ( isset( $this->styles[0] ) ) {
144
+ foreach( $this->styles as $style ) {
145
+ $this->load_styles( $style );
146
+ }
147
+ } else {
148
+ $this->load_styles( $this->styles );
149
+ }
150
  }
151
 
152
  /**
255
 
256
  }
257
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
258
  }
includes/calendars/admin/default-calendar-admin.php CHANGED
@@ -81,12 +81,12 @@ class Default_Calendar_Admin {
81
  ?>
82
  <table id="default-calendar-settings">
83
  <thead>
84
- <tr><th colspan="2"><?php _e( 'Default calendar', 'google-calendar-events' ); ?></th></tr>
85
  </thead>
86
  <tbody class="simcal-panel-section">
87
 
88
  <tr class="simcal-panel-field simcal-default-calendar-grid" style="display: none;">
89
- <th><label for="_default_calendar_event_bubbles_action"><?php _e( 'Event bubbles', 'google-calendar-events' ); ?></label></th>
90
  <td>
91
  <?php
92
 
@@ -110,7 +110,7 @@ class Default_Calendar_Admin {
110
  </td>
111
  </tr>
112
  <tr class="simcal-panel-field simcal-default-calendar-grid" style="display: none;">
113
- <th><label for="_default_calendar_trim_titles"><?php _e( 'Trim event titles', 'google-calendar-events' ); ?></label></th>
114
  <td>
115
  <?php
116
 
@@ -192,7 +192,7 @@ class Default_Calendar_Admin {
192
  </td>
193
  </tr>
194
  <tr class="simcal-panel-field simcal-default-calendar-list" style="display: none;">
195
- <th><label for="_default_calendar_list_header"><?php _e( 'Hide header', 'google-calendar-events' ); ?></label></th>
196
  <td>
197
  <?php
198
 
@@ -210,7 +210,7 @@ class Default_Calendar_Admin {
210
  </td>
211
  </tr>
212
  <tr class="simcal-panel-field simcal-default-calendar-list" style="display: none;">
213
- <th><label for="_default_calendar_compact_list"><?php _e( 'Compact list', 'google-calendar-events' ); ?></label></th>
214
  <td>
215
  <?php
216
 
@@ -228,7 +228,7 @@ class Default_Calendar_Admin {
228
  </td>
229
  </tr>
230
  <tr class="simcal-panel-field simcal-default-calendar-grid simcal-default-calendar-list" style="display: none;">
231
- <th><label for="_default_calendar_limit_visible_events"><?php _e( 'Limit visible events', 'google-calendar-events' ); ?></label></th>
232
  <td>
233
  <?php
234
 
@@ -269,7 +269,7 @@ class Default_Calendar_Admin {
269
  </td>
270
  </tr>
271
  <tr class="simcal-panel-field simcal-default-calendar-grid simcal-default-calendar-list" style="display: none;">
272
- <th><label for="_default_calendar_event_bubbles_action"><?php _e( 'Expand multi-day events', 'google-calendar-events' ); ?></label></th>
273
  <td>
274
  <?php
275
 
@@ -347,13 +347,14 @@ class Default_Calendar_Admin {
347
  'name' => '_default_calendar_style_today',
348
  'id' => '_default_calendar_style_today',
349
  'value' => $value,
 
350
  ) );
351
 
352
  ?>
353
  </td>
354
  </tr>
355
  <tr class="simcal-panel-field simcal-default-calendar-grid simcal-default-calendar-list" style="display: none;">
356
- <th><label for="_default_calendar_style_days_events"><?php _e( 'Days with events', 'google-calendar-events' ); ?></label></th>
357
  <td>
358
  <?php
359
 
@@ -366,6 +367,7 @@ class Default_Calendar_Admin {
366
  'name' => '_default_calendar_style_days_events',
367
  'id' => '_default_calendar_style_days_events',
368
  'value' => $value,
 
369
  ) );
370
 
371
  ?>
81
  ?>
82
  <table id="default-calendar-settings">
83
  <thead>
84
+ <tr><th colspan="2"><?php _e( 'Default Calendar', 'google-calendar-events' ); ?></th></tr>
85
  </thead>
86
  <tbody class="simcal-panel-section">
87
 
88
  <tr class="simcal-panel-field simcal-default-calendar-grid" style="display: none;">
89
+ <th><label for="_default_calendar_event_bubbles_action"><?php _e( 'Event Bubbles', 'google-calendar-events' ); ?></label></th>
90
  <td>
91
  <?php
92
 
110
  </td>
111
  </tr>
112
  <tr class="simcal-panel-field simcal-default-calendar-grid" style="display: none;">
113
+ <th><label for="_default_calendar_trim_titles"><?php _e( 'Trim Event Titles', 'google-calendar-events' ); ?></label></th>
114
  <td>
115
  <?php
116
 
192
  </td>
193
  </tr>
194
  <tr class="simcal-panel-field simcal-default-calendar-list" style="display: none;">
195
+ <th><label for="_default_calendar_list_header"><?php _e( 'Hide Header', 'google-calendar-events' ); ?></label></th>
196
  <td>
197
  <?php
198
 
210
  </td>
211
  </tr>
212
  <tr class="simcal-panel-field simcal-default-calendar-list" style="display: none;">
213
+ <th><label for="_default_calendar_compact_list"><?php _e( 'Compact List', 'google-calendar-events' ); ?></label></th>
214
  <td>
215
  <?php
216
 
228
  </td>
229
  </tr>
230
  <tr class="simcal-panel-field simcal-default-calendar-grid simcal-default-calendar-list" style="display: none;">
231
+ <th><label for="_default_calendar_limit_visible_events"><?php _e( 'Limit Visible Events', 'google-calendar-events' ); ?></label></th>
232
  <td>
233
  <?php
234
 
269
  </td>
270
  </tr>
271
  <tr class="simcal-panel-field simcal-default-calendar-grid simcal-default-calendar-list" style="display: none;">
272
+ <th><label for="_default_calendar_event_bubbles_action"><?php _e( 'Expand Multi-day Events', 'google-calendar-events' ); ?></label></th>
273
  <td>
274
  <?php
275
 
347
  'name' => '_default_calendar_style_today',
348
  'id' => '_default_calendar_style_today',
349
  'value' => $value,
350
+ 'tooltip' => __( "This option will set the background color for today's date. It will change the day number background and the border around the current day.", 'google-calendar-events' ),
351
  ) );
352
 
353
  ?>
354
  </td>
355
  </tr>
356
  <tr class="simcal-panel-field simcal-default-calendar-grid simcal-default-calendar-list" style="display: none;">
357
+ <th><label for="_default_calendar_style_days_events"><?php _e( 'Days with Events', 'google-calendar-events' ); ?></label></th>
358
  <td>
359
  <?php
360
 
367
  'name' => '_default_calendar_style_days_events',
368
  'id' => '_default_calendar_style_days_events',
369
  'value' => $value,
370
+ 'tooltip' => __( 'This setting will modify the day number background for any days that have events on them.', 'google-calendar-events' ),
371
  ) );
372
 
373
  ?>
includes/calendars/views/default-calendar-grid.php CHANGED
@@ -116,7 +116,7 @@ class Default_Calendar_Grid implements Calendar_View {
116
  public function scripts( $min = '' ) {
117
  return array(
118
  'simcal-qtip' => array(
119
- 'src' => SIMPLE_CALENDAR_ASSETS . 'js/vendor/qtip' . $min . '.js',
120
  'deps' => array( 'jquery' ),
121
  'ver' => '2.2.1',
122
  'in_footer' => true,
@@ -150,7 +150,7 @@ class Default_Calendar_Grid implements Calendar_View {
150
  public function styles( $min = '' ) {
151
  return array(
152
  'simcal-qtip' => array(
153
- 'src' => SIMPLE_CALENDAR_ASSETS . 'css/vendor/qtip' . $min . '.css',
154
  'ver' => '2.2.1',
155
  'media' => 'all',
156
  ),
@@ -162,6 +162,14 @@ class Default_Calendar_Grid implements Calendar_View {
162
  'ver' => SIMPLE_CALENDAR_VERSION,
163
  'media' => 'all',
164
  ),
 
 
 
 
 
 
 
 
165
  );
166
  }
167
 
@@ -396,6 +404,8 @@ class Default_Calendar_Grid implements Calendar_View {
396
  // Print events for the current day in loop, if found any.
397
  if ( isset( $day_events[ $day ] ) ) :
398
 
 
 
399
  $list_events = '<ul class="simcal-events">';
400
 
401
  foreach ( $day_events[ $day ] as $event ) :
@@ -433,9 +443,13 @@ class Default_Calendar_Grid implements Calendar_View {
433
 
434
  // Event color.
435
  $bullet = '';
 
436
  $event_color = $event->get_color();
437
  if ( ! empty( $event_color ) ) {
438
  $bullet = '<span style="color: ' . $event_color . ';">&#9632;</span> ';
 
 
 
439
  }
440
 
441
  // Event contents.
@@ -495,7 +509,7 @@ class Default_Calendar_Grid implements Calendar_View {
495
 
496
  // Event bullets for calendar mobile mode.
497
  for( $i = 0; $i < $count; $i++ ) {
498
- echo '<b> &bull; </b>';
499
  }
500
 
501
  echo '</span>' . "\n";
116
  public function scripts( $min = '' ) {
117
  return array(
118
  'simcal-qtip' => array(
119
+ 'src' => SIMPLE_CALENDAR_ASSETS . 'js/vendor/jquery.qtip' . $min . '.js',
120
  'deps' => array( 'jquery' ),
121
  'ver' => '2.2.1',
122
  'in_footer' => true,
150
  public function styles( $min = '' ) {
151
  return array(
152
  'simcal-qtip' => array(
153
+ 'src' => SIMPLE_CALENDAR_ASSETS . 'css/vendor/jquery.qtip' . $min . '.css',
154
  'ver' => '2.2.1',
155
  'media' => 'all',
156
  ),
162
  'ver' => SIMPLE_CALENDAR_VERSION,
163
  'media' => 'all',
164
  ),
165
+ 'simcal-default-calendar-list' => array(
166
+ 'src' => SIMPLE_CALENDAR_ASSETS . 'css/default-calendar-list' . $min . '.css',
167
+ 'deps' => array(
168
+ 'simcal-qtip',
169
+ ),
170
+ 'ver' => SIMPLE_CALENDAR_VERSION,
171
+ 'media' => 'all',
172
+ ),
173
  );
174
  }
175
 
404
  // Print events for the current day in loop, if found any.
405
  if ( isset( $day_events[ $day ] ) ) :
406
 
407
+ $bullet_colors = array();
408
+
409
  $list_events = '<ul class="simcal-events">';
410
 
411
  foreach ( $day_events[ $day ] as $event ) :
443
 
444
  // Event color.
445
  $bullet = '';
446
+ //$bullet_color = '#000';
447
  $event_color = $event->get_color();
448
  if ( ! empty( $event_color ) ) {
449
  $bullet = '<span style="color: ' . $event_color . ';">&#9632;</span> ';
450
+ $bullet_colors[] = $event_color;
451
+ } else {
452
+ $bullet_colors[] = '#000';
453
  }
454
 
455
  // Event contents.
509
 
510
  // Event bullets for calendar mobile mode.
511
  for( $i = 0; $i < $count; $i++ ) {
512
+ echo '<b style="color: ' . $bullet_colors[ $i ] . ';"> &bull; </b>';
513
  }
514
 
515
  echo '</span>' . "\n";
includes/events/event-builder.php CHANGED
@@ -106,6 +106,7 @@ class Event_Builder {
106
 
107
  'id', // The event unique ID.
108
  'uid', // An alias of ID.
 
109
  'event-id', // @deprecated An alias for 'id' tag.
110
  'calendar-id', // The calendar ID.
111
  'feed-id', // @deprecated An alias for 'calendar-id' tag.
@@ -274,6 +275,9 @@ class Event_Builder {
274
  case 'event-id' :
275
  return $event->uid;
276
 
 
 
 
277
  case 'calendar-id' :
278
  case 'cal-id' :
279
  case 'feed-id' :
106
 
107
  'id', // The event unique ID.
108
  'uid', // An alias of ID.
109
+ 'ical-id', // iCal ID.
110
  'event-id', // @deprecated An alias for 'id' tag.
111
  'calendar-id', // The calendar ID.
112
  'feed-id', // @deprecated An alias for 'calendar-id' tag.
275
  case 'event-id' :
276
  return $event->uid;
277
 
278
+ case 'ical-id' :
279
+ return $event->ical_id;
280
+
281
  case 'calendar-id' :
282
  case 'cal-id' :
283
  case 'feed-id' :
includes/events/event.php CHANGED
@@ -83,6 +83,11 @@ class Event {
83
  */
84
  public $uid = '';
85
 
 
 
 
 
 
86
  /**
87
  * Event parent calendar id.
88
  *
@@ -245,6 +250,11 @@ class Event {
245
  $this->uid = esc_attr( $event['uid'] );
246
  }
247
 
 
 
 
 
 
248
  // Event source.
249
  if ( ! empty( $event['source'] ) ) {
250
  $this->source = esc_attr( $event['source'] );
83
  */
84
  public $uid = '';
85
 
86
+ /**
87
+ * Event iCal ID
88
+ */
89
+ public $ical_id = '';
90
+
91
  /**
92
  * Event parent calendar id.
93
  *
250
  $this->uid = esc_attr( $event['uid'] );
251
  }
252
 
253
+ // iCal ID
254
+ if ( ! empty( $event['ical_id'] ) ) {
255
+ $this->ical_id = esc_attr( $event['ical_id'] );
256
+ }
257
+
258
  // Event source.
259
  if ( ! empty( $event['source'] ) ) {
260
  $this->source = esc_attr( $event['source'] );
includes/feeds/admin/google-admin.php CHANGED
@@ -186,7 +186,7 @@ class Google_Admin {
186
  'subtype' => 'text',
187
  'name' => '_google_events_search_query',
188
  'id' => '_google_events_search_query',
189
- 'title' => __( 'Search query', 'google-calendar-events' ),
190
  'tooltip' => __( 'Type in keywords if you only want display events that match these terms. You can use basic boolean search operators too.', 'google-calendar-events' ),
191
  'placeholder' => __( 'Filter events to display by search terms...', 'google-calendar-events' ),
192
  ),
@@ -194,7 +194,7 @@ class Google_Admin {
194
  'type' => 'select',
195
  'name' => '_google_events_recurring',
196
  'id' => '_google_events_recurring',
197
- 'title' => __( 'Recurring events', 'google-calendar-events' ),
198
  'tooltip' => __( 'Events that are programmed to repeat themselves periodically.', 'google-calendar-events' ),
199
  'options' => array(
200
  'show' => __( 'Show all', 'google-calendar-events' ),
@@ -224,7 +224,7 @@ class Google_Admin {
224
  <div id="google-settings-panel" class="simcal-panel">
225
  <table>
226
  <thead>
227
- <tr><th colspan="2"><?php _e( 'Google Calendar settings', 'google-calendar-events' ); ?></th></tr>
228
  </thead>
229
  <?php Settings::print_panel_fields( $inputs, $post_id ); ?>
230
  </table>
186
  'subtype' => 'text',
187
  'name' => '_google_events_search_query',
188
  'id' => '_google_events_search_query',
189
+ 'title' => __( 'Search Query', 'google-calendar-events' ),
190
  'tooltip' => __( 'Type in keywords if you only want display events that match these terms. You can use basic boolean search operators too.', 'google-calendar-events' ),
191
  'placeholder' => __( 'Filter events to display by search terms...', 'google-calendar-events' ),
192
  ),
194
  'type' => 'select',
195
  'name' => '_google_events_recurring',
196
  'id' => '_google_events_recurring',
197
+ 'title' => __( 'Recurring Events', 'google-calendar-events' ),
198
  'tooltip' => __( 'Events that are programmed to repeat themselves periodically.', 'google-calendar-events' ),
199
  'options' => array(
200
  'show' => __( 'Show all', 'google-calendar-events' ),
224
  <div id="google-settings-panel" class="simcal-panel">
225
  <table>
226
  <thead>
227
+ <tr><th colspan="2"><?php _e( 'Google Calendar Settings', 'google-calendar-events' ); ?></th></tr>
228
  </thead>
229
  <?php Settings::print_panel_fields( $inputs, $post_id ); ?>
230
  </table>
includes/feeds/admin/grouped-calendars-admin.php CHANGED
@@ -81,11 +81,11 @@ class Grouped_Calendars_Admin {
81
  <div id="grouped-calendars-settings-panel" class="simcal-panel">
82
  <table>
83
  <thead>
84
- <tr><th colspan="2"><?php _e( 'Grouped Calendar settings', 'google-calendar-events' ); ?></th></tr>
85
  </thead>
86
  <tbody class="simcal-panel-section">
87
  <tr class="simcal-panel-field">
88
- <th><label for="_grouped_calendars_source"><?php _e( 'Get calendars from', 'google-calendar-events' ); ?></label></th>
89
  <td>
90
  <?php
91
 
81
  <div id="grouped-calendars-settings-panel" class="simcal-panel">
82
  <table>
83
  <thead>
84
+ <tr><th colspan="2"><?php _e( 'Grouped Calendar Settings', 'google-calendar-events' ); ?></th></tr>
85
  </thead>
86
  <tbody class="simcal-panel-section">
87
  <tr class="simcal-panel-field">
88
+ <th><label for="_grouped_calendars_source"><?php _e( 'Get Calendars From', 'google-calendar-events' ); ?></label></th>
89
  <td>
90
  <?php
91
 
includes/feeds/google.php CHANGED
@@ -317,7 +317,8 @@ class Google extends Feed {
317
  'description' => $description,
318
  'link' => $link,
319
  'visibility' => $visibility,
320
- 'uid' => $event->getICalUID(),
 
321
  'calendar' => $this->post_id,
322
  'timezone' => $this->timezone,
323
  'start' => $start,
317
  'description' => $description,
318
  'link' => $link,
319
  'visibility' => $visibility,
320
+ 'uid' => $event->id,
321
+ 'ical_id' => $event->getICalUID(),
322
  'calendar' => $this->post_id,
323
  'timezone' => $this->timezone,
324
  'start' => $start,
includes/functions/admin.php CHANGED
@@ -297,7 +297,7 @@ function simcal_newsletter_signup() {
297
  <div id="simcal-drip" class="<?php echo $screen; ?>">
298
  <div class="signup">
299
  <p>
300
- <?php _e( "Enter your name and email and we'll send you a coupon code for 20% off our Google Calendar Pro add-on.", 'google-calendar-events' ); ?>
301
  </p>
302
 
303
  <p>
@@ -321,8 +321,10 @@ function simcal_newsletter_signup() {
321
  class="button button-primary"><?php _e( 'Send me the coupon', 'google-calendar-events' ); ?></a>
322
  </p>
323
  <div class="textright">
324
- <a href="<?php echo simcal_ga_campaign_url( simcal_get_url( 'gcal-pro' ), 'core-plugin', 'sidebar-link' ); ?>"
325
- target="_blank"><?php _e( 'Just take me to GCal Pro', 'google-calendar-events' ); ?></a>
 
 
326
  </div>
327
  </div>
328
  <div class="thank-you" style="display: none;">
297
  <div id="simcal-drip" class="<?php echo $screen; ?>">
298
  <div class="signup">
299
  <p>
300
+ <?php _e( "Enter your name and email and we'll send you a coupon code for <strong>20% off</strong> all Pro Add-on purchases.", 'google-calendar-events' ); ?>
301
  </p>
302
 
303
  <p>
321
  class="button button-primary"><?php _e( 'Send me the coupon', 'google-calendar-events' ); ?></a>
322
  </p>
323
  <div class="textright">
324
+ <em><?php _e( 'No spam. Unsubscribe anytime.', 'google-calendar-events' ); ?></em>
325
+ <br/>
326
+ <a href="<?php echo simcal_ga_campaign_url( simcal_get_url( 'addons' ), 'core-plugin', 'sidebar-link' ); ?>"
327
+ target="_blank"><?php _e( 'Just take me the add-ons', 'google-calendar-events' ); ?></a>
328
  </div>
329
  </div>
330
  <div class="thank-you" style="display: none;">
includes/main.php CHANGED
@@ -237,10 +237,12 @@ final class Plugin {
237
  case 'codex' :
238
  case 'apidocs' :
239
  return 'http://codex.simplecalendar.io';
240
- case 'add-ons' :
241
  return self::$homepage . '/addons/';
242
  case 'gcal-pro' :
243
  return self::$homepage . '/addons/google-calendar-pro/';
 
 
244
  case 'docs' :
245
  return 'http://docs.simplecalendar.io';
246
  case 'github' :
237
  case 'codex' :
238
  case 'apidocs' :
239
  return 'http://codex.simplecalendar.io';
240
+ case 'addons' :
241
  return self::$homepage . '/addons/';
242
  case 'gcal-pro' :
243
  return self::$homepage . '/addons/google-calendar-pro/';
244
+ case 'fullcal' :
245
+ return self::$homepage . '/addons/full-calendar/';
246
  case 'docs' :
247
  return 'http://docs.simplecalendar.io';
248
  case 'github' :
readme.txt CHANGED
@@ -1,19 +1,19 @@
1
  === Simple Calendar - Google Calendar Plugin ===
2
  Contributors: moonstonemedia, pderksen, nickyoung87, nekojira, rosshanney
3
- Tags: calendar, calendars, calendar manager, custom calendar, custom calendars, event, events, events feed, google calendar, google
4
  Requires at least: 4.1
5
  Tested up to: 4.5
6
- Stable tag: 3.0.16
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
- Add Google Calendar events to your WordPress site in minutes. Beautiful calendar displays. Fully responsive.
11
 
12
  == Description ==
13
 
14
- [Simple Calendar](https://simplecalendar.io/?utm_source=wordpress.org&utm_medium=link&utm_campaign=simple-cal-readme&utm_content=description) is the easiest way to add Google Calendar events to your WordPress site. Keep managing everything in Google Calendar. Fine tune the display of your calendars to your liking. Add advanced features with add-ons.
15
 
16
- = SIMPLE CALENDAR FEATURES =
17
 
18
  * Display events from any public Google Calendar.
19
  * Keep managing events in Google Calendar. No need to create events in WordPress.
@@ -21,34 +21,44 @@ Add Google Calendar events to your WordPress site in minutes. Beautiful calendar
21
  * Fully responsive and mobile-friendly monthly grid and list views.
22
  * Customize event content display using simple tags. No coding required.
23
  * Combine multiple calendars into single displays explicitly or using categories.
24
- * Intuitive admin settings for simple configuration changes.
25
  * Advanced settings to adjust time zones, date/time formats and start of the week.
26
- * Many translations available with more being added on a regular basis. [Translations welcome!](https://translate.wordpress.org/projects/wp-plugins/google-calendar-events)
27
- * Fully extensible to support add-ons with advanced features for more specific needs.
28
  * Open source with code hosted on GitHub. [Contributions welcome!](https://github.com/moonstonemedia/Simple-Calendar)
29
 
30
- **[Try out a Live Demo](http://demo.simplecalendar.io/?utm_source=wordpress.org&utm_medium=link&utm_campaign=simple-cal-readme&utm_content=description)**
31
 
32
- >**[Love the plugin? Please consider purchasing our Google Calendar Pro add-on](https://simplecalendar.io/addons/google-calendar-pro/?utm_source=wordpress.org&utm_medium=link&utm_campaign=simple-cal-readme&utm_content=description)**
33
 
34
- = GOOGLE CALENDAR PRO ADD-ON FEATURES =
 
 
 
 
 
 
35
 
36
- * Display events from **Private** Google Calendars.
37
- * Secure connection established between your site and Google using the OAuth standard.
38
- * Highlight events with colors that match those selected within each Google Calendar event.
39
- * Display event guest information for any private or public event such as their avatar and if they’re attending.
 
40
  * Display event organizer information.
41
  * Display a list of attachments with links to their original source.
42
- * Automatic easy updates.
43
- * Priority email support with a 24-hour response time during weekdays backed by a top-notch team.
 
44
 
45
- >**[Get these additional features with Google Calendar Pro](https://simplecalendar.io/addons/google-calendar-pro/?utm_source=wordpress.org&utm_medium=link&utm_campaign=simple-cal-readme&utm_content=description)**
 
 
46
 
47
  == Installation ==
48
 
49
  [Plugin installation instructions](http://docs.simplecalendar.io/simple-calendar-installation/?utm_source=wordpress.org&utm_medium=link&utm_campaign=simple-cal-readme&utm_content=installation)
50
 
51
- [Setup guide from WP Beginner](http://www.wpbeginner.com/plugins/how-to-add-google-calendar-in-wordpress/) (updated 2/1/2016)
52
 
53
  == Frequently Asked Questions ==
54
 
@@ -82,11 +92,22 @@ We'd love your help! Here's a few things you can do:
82
 
83
  == Changelog ==
84
 
 
 
 
 
 
 
 
 
 
 
85
  = 3.0.16 - March 30, 2016 =
86
 
87
  * Fix: Multiple events at the same time on a grouped calendar should now show correctly.
88
  * Fix: PHP notice when adding a new calendar should no longer appear.
89
  * Fix: Issues with Carbon fatal error should not happen.
 
90
 
91
  = 3.0.15 - March 19, 2016 =
92
 
1
  === Simple Calendar - Google Calendar Plugin ===
2
  Contributors: moonstonemedia, pderksen, nickyoung87, nekojira, rosshanney
3
+ Tags: google calendar, calendar, calendars, google, event calendar, custom calendar, custom calendars, event, events
4
  Requires at least: 4.1
5
  Tested up to: 4.5
6
+ Stable tag: 3.1.0
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
+ Add Google Calendar events to your WordPress site in minutes. Beautiful calendar displays. Mobile responsive.
11
 
12
  == Description ==
13
 
14
+ [Simple Calendar](https://simplecalendar.io/?utm_source=wordpress.org&utm_medium=link&utm_campaign=simple-cal-readme&utm_content=description) is the easiest way to add Google Calendar events to your WordPress site. Quick to setup. Fine tune to your needs. Mobile responsive. Beautifully designed.
15
 
16
+ = Simple Calendar Features =
17
 
18
  * Display events from any public Google Calendar.
19
  * Keep managing events in Google Calendar. No need to create events in WordPress.
21
  * Fully responsive and mobile-friendly monthly grid and list views.
22
  * Customize event content display using simple tags. No coding required.
23
  * Combine multiple calendars into single displays explicitly or using categories.
24
+ * Intuitive, simple display configuration changes for fine tuning.
25
  * Advanced settings to adjust time zones, date/time formats and start of the week.
26
+ * Additional functionality offered with [add-ons](https://simplecalendar.io/addons/?utm_source=wordpress.org&utm_medium=link&utm_campaign=simple-cal-readme&utm_content=description).
27
+ * Translations available with more being added on a regular basis. [Translations welcome!](https://translate.wordpress.org/projects/wp-plugins/google-calendar-events)
28
  * Open source with code hosted on GitHub. [Contributions welcome!](https://github.com/moonstonemedia/Simple-Calendar)
29
 
30
+ >**[Love using Simple Calendar? Consider purchasing a Pro add-on](https://simplecalendar.io/addons/?utm_source=wordpress.org&utm_medium=link&utm_campaign=simple-cal-readme&utm_content=description)**
31
 
32
+ = FullCalendar Add-on Features =
33
 
34
+ * Introducing **month, week, and day views**.
35
+ * Faster load times when navigating through months, weeks and days.
36
+ * Configure header navigation buttons to allow site visitors to easily switch between views.
37
+ * Intuitive design for multi-day events.
38
+ * Customizable calendar heights with optional scroll bars.
39
+ * Works with our Google Calendar Pro add-on to display **color-coded events** within each view.
40
+ * Priority email support and product updates for one year backed by a top-notch team.
41
 
42
+ = Google Calendar Pro Add-on Features =
43
+
44
+ * Display events from both **private and public** Google Calendars.
45
+ * **Highlight events with colors** that match assigned Google Calendar event colors.
46
+ * Display attendee names, avatars and RSVP status for any private or public event.
47
  * Display event organizer information.
48
  * Display a list of attachments with links to their original source.
49
+ * Secure connection established between your site and Google using the OAuth standard.
50
+ * Works with our FullCalendar add-on to display beautiful month, week and day views with color-coded events.
51
+ * Priority email support and product updates for one year backed by a top-notch team.
52
 
53
+ >**[Get ALL these features with our Pro add-ons](https://simplecalendar.io/addons/?utm_source=wordpress.org&utm_medium=link&utm_campaign=simple-cal-readme&utm_content=description)**
54
+
55
+ Want to take Simple Calendar for a spin first? **[Try out a Live Demo](http://demo.simplecalendar.io/?utm_source=wordpress.org&utm_medium=link&utm_campaign=simple-cal-readme&utm_content=description)**
56
 
57
  == Installation ==
58
 
59
  [Plugin installation instructions](http://docs.simplecalendar.io/simple-calendar-installation/?utm_source=wordpress.org&utm_medium=link&utm_campaign=simple-cal-readme&utm_content=installation)
60
 
61
+ [Setup guide and video at WP Beginner](http://www.wpbeginner.com/plugins/how-to-add-google-calendar-in-wordpress/) (updated March 14, 2016)
62
 
63
  == Frequently Asked Questions ==
64
 
92
 
93
  == Changelog ==
94
 
95
+ = 3.1.0 - May 25, 2016 =
96
+
97
+ * Fix: qTips arrow should line up with events more accurately.
98
+ * Fix: Cache interval will now update correctly when saved.
99
+ * Fix: Mobile-view bullet colors now show custom event colors when used with the Google Calendar Pro add-on.
100
+ * Fix: [id] event builder code now just returns the event ID.
101
+ * Feature: Added new template tag [ical-shortcode] to return the iCal ID.
102
+ * Dev: Switched to set version of qTip library instead of latest release for compatibility issues.
103
+ * Dev: Duplicate dropdowns when adding a custom view are now handled properly with JS.
104
+
105
  = 3.0.16 - March 30, 2016 =
106
 
107
  * Fix: Multiple events at the same time on a grouped calendar should now show correctly.
108
  * Fix: PHP notice when adding a new calendar should no longer appear.
109
  * Fix: Issues with Carbon fatal error should not happen.
110
+ * Dev: Tested up to WordPress 4.5.
111
 
112
  = 3.0.15 - March 19, 2016 =
113
 
vendor/composer/LICENSE CHANGED
@@ -1,5 +1,5 @@
1
 
2
- Copyright (c) 2015 Nils Adermann, Jordi Boggiano
3
 
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
  of this software and associated documentation files (the "Software"), to deal
1
 
2
+ Copyright (c) 2016 Nils Adermann, Jordi Boggiano
3
 
4
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
  of this software and associated documentation files (the "Software"), to deal
vendor/composer/autoload_namespaces.php CHANGED
@@ -7,5 +7,4 @@ $baseDir = dirname($vendorDir);
7
 
8
  return array(
9
  'Parsedown' => array($vendorDir . '/erusev/parsedown'),
10
- 'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src'),
11
  );
7
 
8
  return array(
9
  'Parsedown' => array($vendorDir . '/erusev/parsedown'),
 
10
  );
vendor/composer/autoload_psr4.php CHANGED
@@ -8,5 +8,6 @@ $baseDir = dirname($vendorDir);
8
  return array(
9
  'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
10
  'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
 
11
  'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),
12
  );
8
  return array(
9
  'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
10
  'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
11
+ 'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'),
12
  'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),
13
  );
vendor/composer/installed.json CHANGED
@@ -139,19 +139,64 @@
139
  "ui"
140
  ]
141
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  {
143
  "name": "composer/installers",
144
- "version": "v1.0.23",
145
- "version_normalized": "1.0.23.0",
146
  "source": {
147
  "type": "git",
148
  "url": "https://github.com/composer/installers.git",
149
- "reference": "6213d900e92647831f7a406d5c530ea1f3d4360e"
150
  },
151
  "dist": {
152
  "type": "zip",
153
- "url": "https://api.github.com/repos/composer/installers/zipball/6213d900e92647831f7a406d5c530ea1f3d4360e",
154
- "reference": "6213d900e92647831f7a406d5c530ea1f3d4360e",
155
  "shasum": ""
156
  },
157
  "require": {
@@ -165,7 +210,7 @@
165
  "composer/composer": "1.0.*@dev",
166
  "phpunit/phpunit": "4.1.*"
167
  },
168
- "time": "2016-01-27 12:54:22",
169
  "type": "composer-plugin",
170
  "extra": {
171
  "class": "Composer\\Installers\\Plugin",
@@ -175,8 +220,8 @@
175
  },
176
  "installation-source": "dist",
177
  "autoload": {
178
- "psr-0": {
179
- "Composer\\Installers\\": "src/"
180
  }
181
  },
182
  "notification-url": "https://packagist.org/downloads/",
@@ -191,12 +236,14 @@
191
  }
192
  ],
193
  "description": "A multi-framework Composer library installer",
194
- "homepage": "http://composer.github.com/installers/",
195
  "keywords": [
196
  "Craft",
197
  "Dolibarr",
198
  "Hurad",
 
199
  "MODX Evo",
 
200
  "OXID",
201
  "SMF",
202
  "Thelia",
@@ -239,64 +286,19 @@
239
  "zikula"
240
  ]
241
  },
242
- {
243
- "name": "google/apiclient",
244
- "version": "1.1.7",
245
- "version_normalized": "1.1.7.0",
246
- "source": {
247
- "type": "git",
248
- "url": "https://github.com/google/google-api-php-client.git",
249
- "reference": "400f250a30ae1dd4c4a0a4f750fe973fc70e6311"
250
- },
251
- "dist": {
252
- "type": "zip",
253
- "url": "https://api.github.com/repos/google/google-api-php-client/zipball/400f250a30ae1dd4c4a0a4f750fe973fc70e6311",
254
- "reference": "400f250a30ae1dd4c4a0a4f750fe973fc70e6311",
255
- "shasum": ""
256
- },
257
- "require": {
258
- "php": ">=5.2.1"
259
- },
260
- "require-dev": {
261
- "phpunit/phpunit": "3.7.*",
262
- "squizlabs/php_codesniffer": "~2.3"
263
- },
264
- "time": "2016-02-02 18:50:42",
265
- "type": "library",
266
- "extra": {
267
- "branch-alias": {
268
- "dev-master": "1.1.x-dev"
269
- }
270
- },
271
- "installation-source": "dist",
272
- "autoload": {
273
- "classmap": [
274
- "src/"
275
- ]
276
- },
277
- "notification-url": "https://packagist.org/downloads/",
278
- "license": [
279
- "Apache-2.0"
280
- ],
281
- "description": "Client library for Google APIs",
282
- "homepage": "http://developers.google.com/api-client-library/php",
283
- "keywords": [
284
- "google"
285
- ]
286
- },
287
  {
288
  "name": "symfony/polyfill-mbstring",
289
- "version": "v1.1.1",
290
- "version_normalized": "1.1.1.0",
291
  "source": {
292
  "type": "git",
293
  "url": "https://github.com/symfony/polyfill-mbstring.git",
294
- "reference": "1289d16209491b584839022f29257ad859b8532d"
295
  },
296
  "dist": {
297
  "type": "zip",
298
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/1289d16209491b584839022f29257ad859b8532d",
299
- "reference": "1289d16209491b584839022f29257ad859b8532d",
300
  "shasum": ""
301
  },
302
  "require": {
@@ -305,11 +307,11 @@
305
  "suggest": {
306
  "ext-mbstring": "For best performance"
307
  },
308
- "time": "2016-01-20 09:13:37",
309
  "type": "library",
310
  "extra": {
311
  "branch-alias": {
312
- "dev-master": "1.1-dev"
313
  }
314
  },
315
  "installation-source": "dist",
@@ -347,8 +349,8 @@
347
  },
348
  {
349
  "name": "symfony/translation",
350
- "version": "v3.0.4",
351
- "version_normalized": "3.0.4.0",
352
  "source": {
353
  "type": "git",
354
  "url": "https://github.com/symfony/translation.git",
139
  "ui"
140
  ]
141
  },
142
+ {
143
+ "name": "google/apiclient",
144
+ "version": "1.1.7",
145
+ "version_normalized": "1.1.7.0",
146
+ "source": {
147
+ "type": "git",
148
+ "url": "https://github.com/google/google-api-php-client.git",
149
+ "reference": "400f250a30ae1dd4c4a0a4f750fe973fc70e6311"
150
+ },
151
+ "dist": {
152
+ "type": "zip",
153
+ "url": "https://api.github.com/repos/google/google-api-php-client/zipball/400f250a30ae1dd4c4a0a4f750fe973fc70e6311",
154
+ "reference": "400f250a30ae1dd4c4a0a4f750fe973fc70e6311",
155
+ "shasum": ""
156
+ },
157
+ "require": {
158
+ "php": ">=5.2.1"
159
+ },
160
+ "require-dev": {
161
+ "phpunit/phpunit": "3.7.*",
162
+ "squizlabs/php_codesniffer": "~2.3"
163
+ },
164
+ "time": "2016-02-02 18:50:42",
165
+ "type": "library",
166
+ "extra": {
167
+ "branch-alias": {
168
+ "dev-master": "1.1.x-dev"
169
+ }
170
+ },
171
+ "installation-source": "dist",
172
+ "autoload": {
173
+ "classmap": [
174
+ "src/"
175
+ ]
176
+ },
177
+ "notification-url": "https://packagist.org/downloads/",
178
+ "license": [
179
+ "Apache-2.0"
180
+ ],
181
+ "description": "Client library for Google APIs",
182
+ "homepage": "http://developers.google.com/api-client-library/php",
183
+ "keywords": [
184
+ "google"
185
+ ]
186
+ },
187
  {
188
  "name": "composer/installers",
189
+ "version": "v1.0.25",
190
+ "version_normalized": "1.0.25.0",
191
  "source": {
192
  "type": "git",
193
  "url": "https://github.com/composer/installers.git",
194
+ "reference": "36e5b5843203d7f1cf6ffb0305a97e014387bd8e"
195
  },
196
  "dist": {
197
  "type": "zip",
198
+ "url": "https://api.github.com/repos/composer/installers/zipball/36e5b5843203d7f1cf6ffb0305a97e014387bd8e",
199
+ "reference": "36e5b5843203d7f1cf6ffb0305a97e014387bd8e",
200
  "shasum": ""
201
  },
202
  "require": {
210
  "composer/composer": "1.0.*@dev",
211
  "phpunit/phpunit": "4.1.*"
212
  },
213
+ "time": "2016-04-13 19:46:30",
214
  "type": "composer-plugin",
215
  "extra": {
216
  "class": "Composer\\Installers\\Plugin",
220
  },
221
  "installation-source": "dist",
222
  "autoload": {
223
+ "psr-4": {
224
+ "Composer\\Installers\\": "src/Composer/Installers"
225
  }
226
  },
227
  "notification-url": "https://packagist.org/downloads/",
236
  }
237
  ],
238
  "description": "A multi-framework Composer library installer",
239
+ "homepage": "https://composer.github.io/installers/",
240
  "keywords": [
241
  "Craft",
242
  "Dolibarr",
243
  "Hurad",
244
+ "ImageCMS",
245
  "MODX Evo",
246
+ "Mautic",
247
  "OXID",
248
  "SMF",
249
  "Thelia",
286
  "zikula"
287
  ]
288
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
289
  {
290
  "name": "symfony/polyfill-mbstring",
291
+ "version": "v1.2.0",
292
+ "version_normalized": "1.2.0.0",
293
  "source": {
294
  "type": "git",
295
  "url": "https://github.com/symfony/polyfill-mbstring.git",
296
+ "reference": "dff51f72b0706335131b00a7f49606168c582594"
297
  },
298
  "dist": {
299
  "type": "zip",
300
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594",
301
+ "reference": "dff51f72b0706335131b00a7f49606168c582594",
302
  "shasum": ""
303
  },
304
  "require": {
307
  "suggest": {
308
  "ext-mbstring": "For best performance"
309
  },
310
+ "time": "2016-05-18 14:26:46",
311
  "type": "library",
312
  "extra": {
313
  "branch-alias": {
314
+ "dev-master": "1.2-dev"
315
  }
316
  },
317
  "installation-source": "dist",
349
  },
350
  {
351
  "name": "symfony/translation",
352
+ "version": "v3.0.6",
353
+ "version_normalized": "3.0.6.0",
354
  "source": {
355
  "type": "git",
356
  "url": "https://github.com/symfony/translation.git",
vendor/composer/installers/README.md CHANGED
@@ -48,20 +48,22 @@ is not needed to install packages with these frameworks:
48
  | Croogo | `croogo-plugin`<br>`croogo-theme`
49
  | DokuWiki | `dokuwiki-plugin`<br>`dokuwiki-template`
50
  | Dolibarr | `dolibarr-module`
51
- | Drupal | <b>`drupal-module`<br>`drupal-theme`</b><br>`drupal-library`<br>`drupal-profile`<br>`drupal-drush`
52
  | Elgg | `elgg-plugin`
53
  | FuelPHP v1.x | `fuel-module`<br>`fuel-package`<br/>`fuel-theme`
54
  | FuelPHP v2.x | `fuelphp-component`
55
  | Grav | `grav-plugin`<br>`grav-theme`
56
  | Hurad | `hurad-plugin`<br>`hurad-theme`
 
57
  | Joomla | `joomla-component`<br>`joomla-module`<br>`joomla-template`<br>`joomla-plugin`<br>`joomla-library`
58
- | Kirby | **`kirby-plugin`**
59
  | KodiCMS | `kodicms-plugin`<br>`kodicms-media`
60
  | Kohana | **`kohana-module`**
61
  | Laravel | `laravel-library`
62
  | Lithium | **`lithium-library`<br>`lithium-source`**
63
  | Magento | `magento-library`<br>`magento-skin`<br>`magento-theme`
64
  | Mako | `mako-package`
 
65
  | MODX Evo | `modxevo-snippet`<br>`modxevo-plugin`<br>`modxevo-module`<br>`modxevo-template`<br>`modxevo-lib`
66
  | MediaWiki | `mediawiki-extension`
67
  | October | **`october-module`<br>`october-plugin`<br>`october-theme`**
@@ -81,7 +83,7 @@ is not needed to install packages with these frameworks:
81
  | symfony1 | **`symfony1-plugin`**
82
  | Tusk | `tusk-task`<br>`tusk-command`<br>`tusk-asset`
83
  | TYPO3 Flow | `typo3-flow-package`<br>`typo3-flow-framework`<br>`typo3-flow-plugin`<br>`typo3-flow-site`<br>`typo3-flow-boilerplate`<br>`typo3-flow-build`
84
- | TYPO3 CMS | `typo3-cms-extension`
85
  | Wolf CMS | `wolfcms-plugin`
86
  | WordPress | <b>`wordpress-plugin`<br>`wordpress-theme`</b><br>`wordpress-muplugin`
87
  | Zend | `zend-library`<br>`zend-extra`<br>`zend-module`
@@ -137,7 +139,20 @@ A package type can have a custom installation path with a `type:` prefix.
137
  }
138
  ```
139
 
140
- This would use your custom path for each of the listed packages. The available
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  variables to use in your paths are: `{$name}`, `{$vendor}`, `{$type}`.
142
 
143
  ## Custom Install Names
@@ -191,3 +206,5 @@ It has been proposed many times. Even implemented once early on and then
191
  removed. `installers` won't do this because it would allow a single package
192
  author to wipe out entire folders without the user's consent. That user would
193
  then come here to yell at us.
 
 
48
  | Croogo | `croogo-plugin`<br>`croogo-theme`
49
  | DokuWiki | `dokuwiki-plugin`<br>`dokuwiki-template`
50
  | Dolibarr | `dolibarr-module`
51
+ | Drupal | <b>`drupal-core`<br>`drupal-module`<br>`drupal-theme`</b><br>`drupal-library`<br>`drupal-profile`<br>`drupal-drush`
52
  | Elgg | `elgg-plugin`
53
  | FuelPHP v1.x | `fuel-module`<br>`fuel-package`<br/>`fuel-theme`
54
  | FuelPHP v2.x | `fuelphp-component`
55
  | Grav | `grav-plugin`<br>`grav-theme`
56
  | Hurad | `hurad-plugin`<br>`hurad-theme`
57
+ | ImageCMS | `imagecms-template`<br>`imagecms-module`<br>`imagecms-library`
58
  | Joomla | `joomla-component`<br>`joomla-module`<br>`joomla-template`<br>`joomla-plugin`<br>`joomla-library`
59
+ | Kirby | **`kirby-plugin`**<br>`kirby-field`<br>`kirby-tag`
60
  | KodiCMS | `kodicms-plugin`<br>`kodicms-media`
61
  | Kohana | **`kohana-module`**
62
  | Laravel | `laravel-library`
63
  | Lithium | **`lithium-library`<br>`lithium-source`**
64
  | Magento | `magento-library`<br>`magento-skin`<br>`magento-theme`
65
  | Mako | `mako-package`
66
+ | Mautic | `mautic-plugin`<br>`mautic-theme`
67
  | MODX Evo | `modxevo-snippet`<br>`modxevo-plugin`<br>`modxevo-module`<br>`modxevo-template`<br>`modxevo-lib`
68
  | MediaWiki | `mediawiki-extension`
69
  | October | **`october-module`<br>`october-plugin`<br>`october-theme`**
83
  | symfony1 | **`symfony1-plugin`**
84
  | Tusk | `tusk-task`<br>`tusk-command`<br>`tusk-asset`
85
  | TYPO3 Flow | `typo3-flow-package`<br>`typo3-flow-framework`<br>`typo3-flow-plugin`<br>`typo3-flow-site`<br>`typo3-flow-boilerplate`<br>`typo3-flow-build`
86
+ | TYPO3 CMS | `typo3-cms-extension` (Deprecated in this package, use the [TYPO3 CMS Installers](https://packagist.org/packages/typo3/cms-composer-installers) instead)
87
  | Wolf CMS | `wolfcms-plugin`
88
  | WordPress | <b>`wordpress-plugin`<br>`wordpress-theme`</b><br>`wordpress-muplugin`
89
  | Zend | `zend-library`<br>`zend-extra`<br>`zend-module`
139
  }
140
  ```
141
 
142
+ You can also have the same vendor packages with a custom installation path by
143
+ using the `vendor:` prefix.
144
+
145
+ ``` json
146
+ {
147
+ "extra": {
148
+ "installer-paths": {
149
+ "your/custom/path/{$name}/": ["vendor:my_organization"]
150
+ }
151
+ }
152
+ }
153
+ ```
154
+
155
+ These would use your custom path for each of the listed packages. The available
156
  variables to use in your paths are: `{$name}`, `{$vendor}`, `{$type}`.
157
 
158
  ## Custom Install Names
206
  removed. `installers` won't do this because it would allow a single package
207
  author to wipe out entire folders without the user's consent. That user would
208
  then come here to yell at us.
209
+
210
+ Anyone still wanting this capability should consider requiring https://github.com/oomphinc/composer-installers-extender.
vendor/composer/installers/composer.json CHANGED
@@ -22,12 +22,14 @@
22
  "FuelPHP",
23
  "Grav",
24
  "Hurad",
 
25
  "Joomla",
26
  "Kohana",
27
  "Laravel",
28
  "Lithium",
29
  "Magento",
30
  "Mako",
 
31
  "MODX Evo",
32
  "MediaWiki",
33
  "OXID",
@@ -49,7 +51,7 @@
49
  "Zend",
50
  "Zikula"
51
  ],
52
- "homepage": "http://composer.github.com/installers/",
53
  "authors": [
54
  {
55
  "name": "Kyle Robinson Young",
@@ -58,7 +60,7 @@
58
  }
59
  ],
60
  "autoload": {
61
- "psr-0": { "Composer\\Installers\\": "src/" }
62
  },
63
  "extra": {
64
  "class": "Composer\\Installers\\Plugin",
@@ -76,5 +78,8 @@
76
  "require-dev": {
77
  "composer/composer": "1.0.*@dev",
78
  "phpunit/phpunit": "4.1.*"
 
 
 
79
  }
80
  }
22
  "FuelPHP",
23
  "Grav",
24
  "Hurad",
25
+ "ImageCMS",
26
  "Joomla",
27
  "Kohana",
28
  "Laravel",
29
  "Lithium",
30
  "Magento",
31
  "Mako",
32
+ "Mautic",
33
  "MODX Evo",
34
  "MediaWiki",
35
  "OXID",
51
  "Zend",
52
  "Zikula"
53
  ],
54
+ "homepage": "https://composer.github.io/installers/",
55
  "authors": [
56
  {
57
  "name": "Kyle Robinson Young",
60
  }
61
  ],
62
  "autoload": {
63
+ "psr-4": { "Composer\\Installers\\": "src/Composer/Installers" }
64
  },
65
  "extra": {
66
  "class": "Composer\\Installers\\Plugin",
78
  "require-dev": {
79
  "composer/composer": "1.0.*@dev",
80
  "phpunit/phpunit": "4.1.*"
81
+ },
82
+ "scripts": {
83
+ "test": "phpunit"
84
  }
85
  }
vendor/composer/installers/src/Composer/Installers/BaseInstaller.php CHANGED
@@ -55,7 +55,7 @@ abstract class BaseInstaller
55
  if ($this->composer->getPackage()) {
56
  $extra = $this->composer->getPackage()->getExtra();
57
  if (!empty($extra['installer-paths'])) {
58
- $customPath = $this->mapCustomInstallPaths($extra['installer-paths'], $prettyName, $type);
59
  if ($customPath !== false) {
60
  return $this->templatePath($customPath, $availableVars);
61
  }
@@ -120,12 +120,13 @@ abstract class BaseInstaller
120
  * @param array $paths
121
  * @param string $name
122
  * @param string $type
 
123
  * @return string
124
  */
125
- protected function mapCustomInstallPaths(array $paths, $name, $type)
126
  {
127
  foreach ($paths as $path => $names) {
128
- if (in_array($name, $names) || in_array('type:' . $type, $names)) {
129
  return $path;
130
  }
131
  }
55
  if ($this->composer->getPackage()) {
56
  $extra = $this->composer->getPackage()->getExtra();
57
  if (!empty($extra['installer-paths'])) {
58
+ $customPath = $this->mapCustomInstallPaths($extra['installer-paths'], $prettyName, $type, $vendor);
59
  if ($customPath !== false) {
60
  return $this->templatePath($customPath, $availableVars);
61
  }
120
  * @param array $paths
121
  * @param string $name
122
  * @param string $type
123
+ * @param string $vendor = NULL
124
  * @return string
125
  */
126
+ protected function mapCustomInstallPaths(array $paths, $name, $type, $vendor = NULL)
127
  {
128
  foreach ($paths as $path => $names) {
129
+ if (in_array($name, $names) || in_array('type:' . $type, $names) || in_array('vendor:' . $vendor, $names)) {
130
  return $path;
131
  }
132
  }
vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php CHANGED
@@ -1,10 +1,24 @@
1
  <?php
 
2
  namespace Composer\Installers;
3
 
4
  use Composer\Util\Filesystem;
5
 
6
  /**
7
- * Installer for Bitrix Framework
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  *
9
  * @author Nik Samokhvalov <nik@samokhvalov.info>
10
  * @author Denis Kulichkin <onexhovia@gmail.com>
@@ -12,16 +26,36 @@ use Composer\Util\Filesystem;
12
  class BitrixInstaller extends BaseInstaller
13
  {
14
  protected $locations = array(
15
- 'module' => 'bitrix/modules/{$name}/',
16
- 'component' => 'bitrix/components/{$name}/',
17
- 'theme' => 'bitrix/templates/{$name}/',
18
  );
19
 
20
  /**
21
- * @var array Storage for informations about duplicates at all the time of installation packages
22
  */
23
  private static $checkedDuplicates = array();
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  /**
26
  * {@inheritdoc}
27
  */
@@ -34,39 +68,39 @@ class BitrixInstaller extends BaseInstaller
34
  }
35
 
36
  /**
37
- * Duplicates search packages
38
  *
39
- * @param string $templatePath
40
  * @param array $vars
41
  */
42
- protected function checkDuplicates($templatePath, array $vars = array())
43
  {
44
- /**
45
- * Incorrect paths for backward compatibility
46
- */
47
- $oldLocations = array(
48
- 'module' => 'local/modules/{$name}/',
49
- 'component' => 'local/components/{$name}/',
50
- 'theme' => 'local/templates/{$name}/'
51
- );
52
-
53
  $packageType = substr($vars['type'], strlen('bitrix') + 1);
54
- $oldLocation = str_replace('{$name}', $vars['name'], $oldLocations[$packageType]);
 
 
 
 
 
 
 
 
 
55
 
56
- if (in_array($oldLocation, static::$checkedDuplicates)) {
57
  return;
58
  }
59
 
60
- if ($oldLocation !== $templatePath && file_exists($oldLocation) && $this->io && $this->io->isInteractive()) {
61
 
62
  $this->io->writeError(' <error>Duplication of packages:</error>');
63
- $this->io->writeError(' <info>Package ' . $oldLocation . ' will be called instead package ' . $templatePath . '</info>');
64
 
65
  while (true) {
66
- switch ($this->io->ask(' <info>Delete ' . $oldLocation . ' [y,n,?]?</info> ', '?')) {
67
  case 'y':
68
  $fs = new Filesystem();
69
- $fs->removeDirectory($oldLocation);
70
  break 2;
71
 
72
  case 'n':
@@ -75,7 +109,7 @@ class BitrixInstaller extends BaseInstaller
75
  case '?':
76
  default:
77
  $this->io->writeError(array(
78
- ' y - delete package ' . $oldLocation . ' and to continue with the installation',
79
  ' n - don\'t delete and to continue with the installation',
80
  ));
81
  $this->io->writeError(' ? - print help');
@@ -84,6 +118,6 @@ class BitrixInstaller extends BaseInstaller
84
  }
85
  }
86
 
87
- static::$checkedDuplicates[] = $oldLocation;
88
  }
89
  }
1
  <?php
2
+
3
  namespace Composer\Installers;
4
 
5
  use Composer\Util\Filesystem;
6
 
7
  /**
8
+ * Installer for Bitrix Framework. Supported types of extensions:
9
+ * - `bitrix-module` — copy the module to directory `bitrix/modules/` directory.
10
+ * - `bitrix-component` — copy the component to directory `bitrix/components/`.
11
+ * - `bitrix-template` — copy the template to directory `bitrix/templates/`.
12
+ *
13
+ * You can set custom path to directory with Bitrix kernel in `composer.json`:
14
+ *
15
+ * ```json
16
+ * {
17
+ * "extra": {
18
+ * "bitrix-dir": "s1/bitrix"
19
+ * }
20
+ * }
21
+ * ```
22
  *
23
  * @author Nik Samokhvalov <nik@samokhvalov.info>
24
  * @author Denis Kulichkin <onexhovia@gmail.com>
26
  class BitrixInstaller extends BaseInstaller
27
  {
28
  protected $locations = array(
29
+ 'module' => '{$bitrix_dir}/modules/{$name}/',
30
+ 'component' => '{$bitrix_dir}/components/{$name}/',
31
+ 'theme' => '{$bitrix_dir}/templates/{$name}/',
32
  );
33
 
34
  /**
35
+ * @var array Storage for informations about duplicates at all the time of installation packages.
36
  */
37
  private static $checkedDuplicates = array();
38
 
39
+ /**
40
+ * {@inheritdoc}
41
+ */
42
+ public function inflectPackageVars($vars)
43
+ {
44
+ if ($this->composer->getPackage()) {
45
+ $extra = $this->composer->getPackage()->getExtra();
46
+
47
+ if (isset($extra['bitrix-dir'])) {
48
+ $vars['bitrix_dir'] = $extra['bitrix-dir'];
49
+ }
50
+ }
51
+
52
+ if (!isset($vars['bitrix_dir'])) {
53
+ $vars['bitrix_dir'] = 'bitrix';
54
+ }
55
+
56
+ return parent::inflectPackageVars($vars);
57
+ }
58
+
59
  /**
60
  * {@inheritdoc}
61
  */
68
  }
69
 
70
  /**
71
+ * Duplicates search packages.
72
  *
73
+ * @param string $path
74
  * @param array $vars
75
  */
76
+ protected function checkDuplicates($path, array $vars = array())
77
  {
 
 
 
 
 
 
 
 
 
78
  $packageType = substr($vars['type'], strlen('bitrix') + 1);
79
+ $localDir = explode('/', $vars['bitrix_dir']);
80
+ array_pop($localDir);
81
+ $localDir[] = 'local';
82
+ $localDir = implode('/', $localDir);
83
+
84
+ $oldPath = str_replace(
85
+ array('{$bitrix_dir}', '{$name}'),
86
+ array($localDir, $vars['name']),
87
+ $this->locations[$packageType]
88
+ );
89
 
90
+ if (in_array($oldPath, static::$checkedDuplicates)) {
91
  return;
92
  }
93
 
94
+ if ($oldPath !== $path && file_exists($oldPath) && $this->io && $this->io->isInteractive()) {
95
 
96
  $this->io->writeError(' <error>Duplication of packages:</error>');
97
+ $this->io->writeError(' <info>Package ' . $oldPath . ' will be called instead package ' . $path . '</info>');
98
 
99
  while (true) {
100
+ switch ($this->io->ask(' <info>Delete ' . $oldPath . ' [y,n,?]?</info> ', '?')) {
101
  case 'y':
102
  $fs = new Filesystem();
103
+ $fs->removeDirectory($oldPath);
104
  break 2;
105
 
106
  case 'n':
109
  case '?':
110
  default:
111
  $this->io->writeError(array(
112
+ ' y - delete package ' . $oldPath . ' and to continue with the installation',
113
  ' n - don\'t delete and to continue with the installation',
114
  ));
115
  $this->io->writeError(' ? - print help');
118
  }
119
  }
120
 
121
+ static::$checkedDuplicates[] = $oldPath;
122
  }
123
  }
vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php CHANGED
@@ -10,5 +10,7 @@ class DrupalInstaller extends BaseInstaller
10
  'library' => 'libraries/{$name}/',
11
  'profile' => 'profiles/{$name}/',
12
  'drush' => 'drush/{$name}/',
 
 
13
  );
14
  }
10
  'library' => 'libraries/{$name}/',
11
  'profile' => 'profiles/{$name}/',
12
  'drush' => 'drush/{$name}/',
13
+ 'custom-theme' => 'themes/custom/{$name}/',
14
+ 'custom-module' => 'modules/custom/{$name}',
15
  );
16
  }
vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Composer\Installers;
3
+
4
+ class ImageCMSInstaller extends BaseInstaller
5
+ {
6
+ protected $locations = array(
7
+ 'template' => 'templates/{$name}/',
8
+ 'module' => 'application/modules/{$name}/',
9
+ 'library' => 'application/libraries/{$name}/',
10
+ );
11
+ }
vendor/composer/installers/src/Composer/Installers/Installer.php CHANGED
@@ -35,6 +35,7 @@ class Installer extends LibraryInstaller
35
  'fuelphp' => 'FuelphpInstaller',
36
  'grav' => 'GravInstaller',
37
  'hurad' => 'HuradInstaller',
 
38
  'joomla' => 'JoomlaInstaller',
39
  'kirby' => 'KirbyInstaller',
40
  'kodicms' => 'KodiCMSInstaller',
@@ -43,6 +44,7 @@ class Installer extends LibraryInstaller
43
  'lithium' => 'LithiumInstaller',
44
  'magento' => 'MagentoInstaller',
45
  'mako' => 'MakoInstaller',
 
46
  'mediawiki' => 'MediaWikiInstaller',
47
  'microweber' => 'MicroweberInstaller',
48
  'modulework' => 'MODULEWorkInstaller',
35
  'fuelphp' => 'FuelphpInstaller',
36
  'grav' => 'GravInstaller',
37
  'hurad' => 'HuradInstaller',
38
+ 'imagecms' => 'ImageCMSInstaller',
39
  'joomla' => 'JoomlaInstaller',
40
  'kirby' => 'KirbyInstaller',
41
  'kodicms' => 'KodiCMSInstaller',
44
  'lithium' => 'LithiumInstaller',
45
  'magento' => 'MagentoInstaller',
46
  'mako' => 'MakoInstaller',
47
+ 'mautic' => 'MauticInstaller',
48
  'mediawiki' => 'MediaWikiInstaller',
49
  'microweber' => 'MicroweberInstaller',
50
  'modulework' => 'MODULEWorkInstaller',
vendor/composer/installers/src/Composer/Installers/KirbyInstaller.php CHANGED
@@ -5,5 +5,7 @@ class KirbyInstaller extends BaseInstaller
5
  {
6
  protected $locations = array(
7
  'plugin' => 'site/plugins/{$name}/',
 
 
8
  );
9
  }
5
  {
6
  protected $locations = array(
7
  'plugin' => 'site/plugins/{$name}/',
8
+ 'field' => 'site/fields/{$name}/',
9
+ 'tag' => 'site/tags/{$name}/'
10
  );
11
  }
vendor/composer/installers/src/Composer/Installers/MauticInstaller.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Composer\Installers;
3
+
4
+ class MauticInstaller extends BaseInstaller
5
+ {
6
+ protected $locations = array(
7
+ 'plugin' => 'plugins/{$name}/',
8
+ 'theme' => 'themes/{$name}/',
9
+ );
10
+
11
+ /**
12
+ * Format package name of mautic-plugins to CamelCase
13
+ */
14
+ public function inflectPackageVars($vars)
15
+ {
16
+ if ($vars['type'] == 'mautic-plugin') {
17
+ $vars['name'] = preg_replace_callback('/(-[a-z])/', function ($matches) {
18
+ return strtoupper($matches[0][1]);
19
+ }, ucfirst($vars['name']));
20
+ }
21
+
22
+ return $vars;
23
+ }
24
+
25
+ }
vendor/composer/installers/src/Composer/Installers/TYPO3CmsInstaller.php CHANGED
@@ -4,6 +4,8 @@ namespace Composer\Installers;
4
  /**
5
  * Extension installer for TYPO3 CMS
6
  *
 
 
7
  * @author Sascha Egerer <sascha.egerer@dkd.de>
8
  */
9
  class TYPO3CmsInstaller extends BaseInstaller
4
  /**
5
  * Extension installer for TYPO3 CMS
6
  *
7
+ * @deprecated since 1.0.25, use https://packagist.org/packages/typo3/cms-composer-installers instead
8
+ *
9
  * @author Sascha Egerer <sascha.egerer@dkd.de>
10
  */
11
  class TYPO3CmsInstaller extends BaseInstaller
vendor/composer/installers/tests/Composer/Installers/Test/InstallerTest.php CHANGED
@@ -121,6 +121,9 @@ class InstallerTest extends TestCase
121
  array('fuelphp-component', true),
122
  array('hurad-plugin', true),
123
  array('hurad-theme', true),
 
 
 
124
  array('joomla-library', true),
125
  array('kirby-plugin', true),
126
  array('kohana-module', true),
@@ -235,6 +238,9 @@ class InstallerTest extends TestCase
235
  array('fuelphp-component', 'components/demo/', 'fuelphp/demo'),
236
  array('hurad-plugin', 'plugins/Akismet/', 'atkrad/akismet'),
237
  array('hurad-theme', 'plugins/Hurad2013/', 'atkrad/Hurad2013'),
 
 
 
238
  array('joomla-plugin', 'plugins/my_plugin/', 'shama/my_plugin'),
239
  array('kirby-plugin', 'site/plugins/my_plugin/', 'shama/my_plugin'),
240
  array('kohana-module', 'modules/my_package/', 'shama/my_package'),
@@ -380,6 +386,27 @@ class InstallerTest extends TestCase
380
  $this->assertEquals('my/custom/path/my_plugin/', $result);
381
  }
382
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
383
  /**
384
  * testNoVendorName
385
  */
121
  array('fuelphp-component', true),
122
  array('hurad-plugin', true),
123
  array('hurad-theme', true),
124
+ array('imagecms-template', true),
125
+ array('imagecms-module', true),
126
+ array('imagecms-library', true),
127
  array('joomla-library', true),
128
  array('kirby-plugin', true),
129
  array('kohana-module', true),
238
  array('fuelphp-component', 'components/demo/', 'fuelphp/demo'),
239
  array('hurad-plugin', 'plugins/Akismet/', 'atkrad/akismet'),
240
  array('hurad-theme', 'plugins/Hurad2013/', 'atkrad/Hurad2013'),
241
+ array('imagecms-template', 'templates/my_template/', 'shama/my_template'),
242
+ array('imagecms-module', 'application/modules/my_module/', 'shama/my_module'),
243
+ array('imagecms-library', 'application/libraries/my_library/', 'shama/my_library'),
244
  array('joomla-plugin', 'plugins/my_plugin/', 'shama/my_plugin'),
245
  array('kirby-plugin', 'site/plugins/my_plugin/', 'shama/my_plugin'),
246
  array('kohana-module', 'modules/my_package/', 'shama/my_package'),
386
  $this->assertEquals('my/custom/path/my_plugin/', $result);
387
  }
388
 
389
+ /**
390
+ * testVendorPath
391
+ */
392
+ public function testVendorPath()
393
+ {
394
+ $installer = new Installer($this->io, $this->composer);
395
+ $package = new Package('penyaskito/my_module', '1.0.0', '1.0.0');
396
+ $package->setType('drupal-module');
397
+ $consumerPackage = new RootPackage('drupal/drupal', '1.0.0', '1.0.0');
398
+ $this->composer->setPackage($consumerPackage);
399
+ $consumerPackage->setExtra(array(
400
+ 'installer-paths' => array(
401
+ 'modules/custom/{$name}/' => array(
402
+ 'vendor:penyaskito'
403
+ ),
404
+ ),
405
+ ));
406
+ $result = $installer->getInstallPath($package);
407
+ $this->assertEquals('modules/custom/my_module/', $result);
408
+ }
409
+
410
  /**
411
  * testNoVendorName
412
  */
vendor/symfony/polyfill-mbstring/Mbstring.php CHANGED
@@ -577,8 +577,8 @@ final class Mbstring
577
 
578
  private static function getData($file)
579
  {
580
- if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.ser')) {
581
- return unserialize(file_get_contents($file));
582
  }
583
 
584
  return false;
577
 
578
  private static function getData($file)
579
  {
580
+ if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.php')) {
581
+ return require $file;
582
  }
583
 
584
  return false;
vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php ADDED
@@ -0,0 +1,1101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ static $data = array (
4
+ 'A' => 'a',
5
+ 'B' => 'b',
6
+ 'C' => 'c',
7
+ 'D' => 'd',
8
+ 'E' => 'e',
9
+ 'F' => 'f',
10
+ 'G' => 'g',
11
+ 'H' => 'h',
12
+ 'I' => 'i',
13
+ 'J' => 'j',
14
+ 'K' => 'k',
15
+ 'L' => 'l',
16
+ 'M' => 'm',
17
+ 'N' => 'n',
18
+ 'O' => 'o',
19
+ 'P' => 'p',
20
+ 'Q' => 'q',
21
+ 'R' => 'r',
22
+ 'S' => 's',
23
+ 'T' => 't',
24
+ 'U' => 'u',
25
+ 'V' => 'v',
26
+ 'W' => 'w',
27
+ 'X' => 'x',
28
+ 'Y' => 'y',
29
+ 'Z' => 'z',
30
+ 'À' => 'à',
31
+ 'Á' => 'á',
32
+ 'Â' => 'â',
33
+ 'Ã' => 'ã',
34
+ 'Ä' => 'ä',
35
+ 'Å' => 'å',
36
+ 'Æ' => 'æ',
37
+ 'Ç' => 'ç',
38
+ 'È' => 'è',
39
+ 'É' => 'é',
40
+ 'Ê' => 'ê',
41
+ 'Ë' => 'ë',
42
+ 'Ì' => 'ì',
43
+ 'Í' => 'í',
44
+ 'Î' => 'î',
45
+ 'Ï' => 'ï',
46
+ 'Ð' => 'ð',
47
+ 'Ñ' => 'ñ',
48
+ 'Ò' => 'ò',
49
+ 'Ó' => 'ó',
50
+ 'Ô' => 'ô',
51
+ 'Õ' => 'õ',
52
+ 'Ö' => 'ö',
53
+ 'Ø' => 'ø',
54
+ 'Ù' => 'ù',
55
+ 'Ú' => 'ú',
56
+ 'Û' => 'û',
57
+ 'Ü' => 'ü',
58
+ 'Ý' => 'ý',
59
+ 'Þ' => 'þ',
60
+ 'Ā' => 'ā',
61
+ 'Ă' => 'ă',
62
+ 'Ą' => 'ą',
63
+ 'Ć' => 'ć',
64
+ 'Ĉ' => 'ĉ',
65
+ 'Ċ' => 'ċ',
66
+ 'Č' => 'č',
67
+ 'Ď' => 'ď',
68
+ 'Đ' => 'đ',
69
+ 'Ē' => 'ē',
70
+ 'Ĕ' => 'ĕ',
71
+ 'Ė' => 'ė',
72
+ 'Ę' => 'ę',
73
+ 'Ě' => 'ě',
74
+ 'Ĝ' => 'ĝ',
75
+ 'Ğ' => 'ğ',
76
+ 'Ġ' => 'ġ',
77
+ 'Ģ' => 'ģ',
78
+ 'Ĥ' => 'ĥ',
79
+ 'Ħ' => 'ħ',
80
+ 'Ĩ' => 'ĩ',
81
+ 'Ī' => 'ī',
82
+ 'Ĭ' => 'ĭ',
83
+ 'Į' => 'į',
84
+ 'İ' => 'i',
85
+ 'IJ' => 'ij',
86
+ 'Ĵ' => 'ĵ',
87
+ 'Ķ' => 'ķ',
88
+ 'Ĺ' => 'ĺ',
89
+ 'Ļ' => 'ļ',
90
+ 'Ľ' => 'ľ',
91
+ 'Ŀ' => 'ŀ',
92
+ 'Ł' => 'ł',
93
+ 'Ń' => 'ń',
94
+ 'Ņ' => 'ņ',
95
+ 'Ň' => 'ň',
96
+ 'Ŋ' => 'ŋ',
97
+ 'Ō' => 'ō',
98
+ 'Ŏ' => 'ŏ',
99
+ 'Ő' => 'ő',
100
+ 'Œ' => 'œ',
101
+ 'Ŕ' => 'ŕ',
102
+ 'Ŗ' => 'ŗ',
103
+ 'Ř' => 'ř',
104
+ 'Ś' => 'ś',
105
+ 'Ŝ' => 'ŝ',
106
+ 'Ş' => 'ş',
107
+ 'Š' => 'š',
108
+ 'Ţ' => 'ţ',
109
+ 'Ť' => 'ť',
110
+ 'Ŧ' => 'ŧ',
111
+ 'Ũ' => 'ũ',
112
+ 'Ū' => 'ū',
113
+ 'Ŭ' => 'ŭ',
114
+ 'Ů' => 'ů',
115
+ 'Ű' => 'ű',
116
+ 'Ų' => 'ų',
117
+ 'Ŵ' => 'ŵ',
118
+ 'Ŷ' => 'ŷ',
119
+ 'Ÿ' => 'ÿ',
120
+ 'Ź' => 'ź',
121
+ 'Ż' => 'ż',
122
+ 'Ž' => 'ž',
123
+ 'Ɓ' => 'ɓ',
124
+ 'Ƃ' => 'ƃ',
125
+ 'Ƅ' => 'ƅ',
126
+ 'Ɔ' => 'ɔ',
127
+ 'Ƈ' => 'ƈ',
128
+ 'Ɖ' => 'ɖ',
129
+ 'Ɗ' => 'ɗ',
130
+ 'Ƌ' => 'ƌ',
131
+ 'Ǝ' => 'ǝ',
132
+ 'Ə' => 'ə',
133
+ 'Ɛ' => 'ɛ',
134
+ 'Ƒ' => 'ƒ',
135
+ 'Ɠ' => 'ɠ',
136
+ 'Ɣ' => 'ɣ',
137
+ 'Ɩ' => 'ɩ',
138
+ 'Ɨ' => 'ɨ',
139
+ 'Ƙ' => 'ƙ',
140
+ 'Ɯ' => 'ɯ',
141
+ 'Ɲ' => 'ɲ',
142
+ 'Ɵ' => 'ɵ',
143
+ 'Ơ' => 'ơ',
144
+ 'Ƣ' => 'ƣ',
145
+ 'Ƥ' => 'ƥ',
146
+ 'Ʀ' => 'ʀ',
147
+ 'Ƨ' => 'ƨ',
148
+ 'Ʃ' => 'ʃ',
149
+ 'Ƭ' => 'ƭ',
150
+ 'Ʈ' => 'ʈ',
151
+ 'Ư' => 'ư',
152
+ 'Ʊ' => 'ʊ',
153
+ 'Ʋ' => 'ʋ',
154
+ 'Ƴ' => 'ƴ',
155
+ 'Ƶ' => 'ƶ',
156
+ 'Ʒ' => 'ʒ',
157
+ 'Ƹ' => 'ƹ',
158
+ 'Ƽ' => 'ƽ',
159
+ 'DŽ' => 'dž',
160
+ 'Dž' => 'dž',
161
+ 'LJ' => 'lj',
162
+ 'Lj' => 'lj',
163
+ 'NJ' => 'nj',
164
+ 'Nj' => 'nj',
165
+ 'Ǎ' => 'ǎ',
166
+ 'Ǐ' => 'ǐ',
167
+ 'Ǒ' => 'ǒ',
168
+ 'Ǔ' => 'ǔ',
169
+ 'Ǖ' => 'ǖ',
170
+ 'Ǘ' => 'ǘ',
171
+ 'Ǚ' => 'ǚ',
172
+ 'Ǜ' => 'ǜ',
173
+ 'Ǟ' => 'ǟ',
174
+ 'Ǡ' => 'ǡ',
175
+ 'Ǣ' => 'ǣ',
176
+ 'Ǥ' => 'ǥ',
177
+ 'Ǧ' => 'ǧ',
178
+ 'Ǩ' => 'ǩ',
179
+ 'Ǫ' => 'ǫ',
180
+ 'Ǭ' => 'ǭ',
181
+ 'Ǯ' => 'ǯ',
182
+ 'DZ' => 'dz',
183
+ 'Dz' => 'dz',
184
+ 'Ǵ' => 'ǵ',
185
+ 'Ƕ' => 'ƕ',
186
+ 'Ƿ' => 'ƿ',
187
+ 'Ǹ' => 'ǹ',
188
+ 'Ǻ' => 'ǻ',
189
+ 'Ǽ' => 'ǽ',
190
+ 'Ǿ' => 'ǿ',
191
+ 'Ȁ' => 'ȁ',
192
+ 'Ȃ' => 'ȃ',
193
+ 'Ȅ' => 'ȅ',
194
+ 'Ȇ' => 'ȇ',
195
+ 'Ȉ' => 'ȉ',
196
+ 'Ȋ' => 'ȋ',
197
+ 'Ȍ' => 'ȍ',
198
+ 'Ȏ' => 'ȏ',
199
+ 'Ȑ' => 'ȑ',
200
+ 'Ȓ' => 'ȓ',
201
+ 'Ȕ' => 'ȕ',
202
+ 'Ȗ' => 'ȗ',
203
+ 'Ș' => 'ș',
204
+ 'Ț' => 'ț',
205
+ 'Ȝ' => 'ȝ',
206
+ 'Ȟ' => 'ȟ',
207
+ 'Ƞ' => 'ƞ',
208
+ 'Ȣ' => 'ȣ',
209
+ 'Ȥ' => 'ȥ',
210
+ 'Ȧ' => 'ȧ',
211
+ 'Ȩ' => 'ȩ',
212
+ 'Ȫ' => 'ȫ',
213
+ 'Ȭ' => 'ȭ',
214
+ 'Ȯ' => 'ȯ',
215
+ 'Ȱ' => 'ȱ',
216
+ 'Ȳ' => 'ȳ',
217
+ 'Ⱥ' => 'ⱥ',
218
+ 'Ȼ' => 'ȼ',
219
+ 'Ƚ' => 'ƚ',
220
+ 'Ⱦ' => 'ⱦ',
221
+ 'Ɂ' => 'ɂ',
222
+ 'Ƀ' => 'ƀ',
223
+ 'Ʉ' => 'ʉ',
224
+ 'Ʌ' => 'ʌ',
225
+ 'Ɇ' => 'ɇ',
226
+ 'Ɉ' => 'ɉ',
227
+ 'Ɋ' => 'ɋ',
228
+ 'Ɍ' => 'ɍ',
229
+ 'Ɏ' => 'ɏ',
230
+ 'Ͱ' => 'ͱ',
231
+ 'Ͳ' => 'ͳ',
232
+ 'Ͷ' => 'ͷ',
233
+ 'Ϳ' => 'ϳ',
234
+ 'Ά' => 'ά',
235
+ 'Έ' => 'έ',
236
+ 'Ή' => 'ή',
237
+ 'Ί' => 'ί',
238
+ 'Ό' => 'ό',
239
+ 'Ύ' => 'ύ',
240
+ 'Ώ' => 'ώ',
241
+ 'Α' => 'α',
242
+ 'Β' => 'β',
243
+ 'Γ' => 'γ',
244
+ 'Δ' => 'δ',
245
+ 'Ε' => 'ε',
246
+ 'Ζ' => 'ζ',
247
+ 'Η' => 'η',
248
+ 'Θ' => 'θ',
249
+ 'Ι' => 'ι',
250
+ 'Κ' => 'κ',
251
+ 'Λ' => 'λ',
252
+ 'Μ' => 'μ',
253
+ 'Ν' => 'ν',
254
+ 'Ξ' => 'ξ',
255
+ 'Ο' => 'ο',
256
+ 'Π' => 'π',
257
+ 'Ρ' => 'ρ',
258
+ 'Σ' => 'σ',
259
+ 'Τ' => 'τ',
260
+ 'Υ' => 'υ',
261
+ 'Φ' => 'φ',
262
+ 'Χ' => 'χ',
263
+ 'Ψ' => 'ψ',
264
+ 'Ω' => 'ω',
265
+ 'Ϊ' => 'ϊ',
266
+ 'Ϋ' => 'ϋ',
267
+ 'Ϗ' => 'ϗ',
268
+ 'Ϙ' => 'ϙ',
269
+ 'Ϛ' => 'ϛ',
270
+ 'Ϝ' => 'ϝ',
271
+ 'Ϟ' => 'ϟ',
272
+ 'Ϡ' => 'ϡ',
273
+ 'Ϣ' => 'ϣ',
274
+ 'Ϥ' => 'ϥ',
275
+ 'Ϧ' => 'ϧ',
276
+ 'Ϩ' => 'ϩ',
277
+ 'Ϫ' => 'ϫ',
278
+ 'Ϭ' => 'ϭ',
279
+ 'Ϯ' => 'ϯ',
280
+ 'ϴ' => 'θ',
281
+ 'Ϸ' => 'ϸ',
282
+ 'Ϲ' => 'ϲ',
283
+ 'Ϻ' => 'ϻ',
284
+ 'Ͻ' => 'ͻ',
285
+ 'Ͼ' => 'ͼ',
286
+ 'Ͽ' => 'ͽ',
287
+ 'Ѐ' => 'ѐ',
288
+ 'Ё' => 'ё',
289
+ 'Ђ' => 'ђ',
290
+ 'Ѓ' => 'ѓ',
291
+ 'Є' => 'є',
292
+ 'Ѕ' => 'ѕ',
293
+ 'І' => 'і',
294
+ 'Ї' => 'ї',
295
+ 'Ј' => 'ј',
296
+ 'Љ' => 'љ',
297
+ 'Њ' => 'њ',
298
+ 'Ћ' => 'ћ',
299
+ 'Ќ' => 'ќ',
300
+ 'Ѝ' => 'ѝ',
301
+ 'Ў' => 'ў',
302
+ 'Џ' => 'џ',
303
+ 'А' => 'а',
304
+ 'Б' => 'б',
305
+ 'В' => 'в',
306
+ 'Г' => 'г',
307
+ 'Д' => 'д',
308
+ 'Е' => 'е',
309
+ 'Ж' => 'ж',
310
+ 'З' => 'з',
311
+ 'И' => 'и',
312
+ 'Й' => 'й',
313
+ 'К' => 'к',
314
+ 'Л' => 'л',
315
+ 'М' => 'м',
316
+ 'Н' => 'н',
317
+ 'О' => 'о',
318
+ 'П' => 'п',
319
+ 'Р' => 'р',
320
+ 'С' => 'с',
321
+ 'Т' => 'т',
322
+ 'У' => 'у',
323
+ 'Ф' => 'ф',
324
+ 'Х' => 'х',
325
+ 'Ц' => 'ц',
326
+ 'Ч' => 'ч',
327
+ 'Ш' => 'ш',
328
+ 'Щ' => 'щ',
329
+ 'Ъ' => 'ъ',
330
+ 'Ы' => 'ы',
331
+ 'Ь' => 'ь',
332
+ 'Э' => 'э',
333
+ 'Ю' => 'ю',
334
+ 'Я' => 'я',
335
+ 'Ѡ' => 'ѡ',
336
+ 'Ѣ' => 'ѣ',
337
+ 'Ѥ' => 'ѥ',
338
+ 'Ѧ' => 'ѧ',
339
+ 'Ѩ' => 'ѩ',
340
+ 'Ѫ' => 'ѫ',
341
+ 'Ѭ' => 'ѭ',
342
+ 'Ѯ' => 'ѯ',
343
+ 'Ѱ' => 'ѱ',
344
+ 'Ѳ' => 'ѳ',
345
+ 'Ѵ' => 'ѵ',
346
+ 'Ѷ' => 'ѷ',
347
+ 'Ѹ' => 'ѹ',
348
+ 'Ѻ' => 'ѻ',
349
+ 'Ѽ' => 'ѽ',
350
+ 'Ѿ' => 'ѿ',
351
+ 'Ҁ' => 'ҁ',
352
+ 'Ҋ' => 'ҋ',
353
+ 'Ҍ' => 'ҍ',
354
+ 'Ҏ' => 'ҏ',
355
+ 'Ґ' => 'ґ',
356
+ 'Ғ' => 'ғ',
357
+ 'Ҕ' => 'ҕ',
358
+ 'Җ' => 'җ',
359
+ 'Ҙ' => 'ҙ',
360
+ 'Қ' => 'қ',
361
+ 'Ҝ' => 'ҝ',
362
+ 'Ҟ' => 'ҟ',
363
+ 'Ҡ' => 'ҡ',
364
+ 'Ң' => 'ң',
365
+ 'Ҥ' => 'ҥ',
366
+ 'Ҧ' => 'ҧ',
367
+ 'Ҩ' => 'ҩ',
368
+ 'Ҫ' => 'ҫ',
369
+ 'Ҭ' => 'ҭ',
370
+ 'Ү' => 'ү',
371
+ 'Ұ' => 'ұ',
372
+ 'Ҳ' => 'ҳ',
373
+ 'Ҵ' => 'ҵ',
374
+ 'Ҷ' => 'ҷ',
375
+ 'Ҹ' => 'ҹ',
376
+ 'Һ' => 'һ',
377
+ 'Ҽ' => 'ҽ',
378
+ 'Ҿ' => 'ҿ',
379
+ 'Ӏ' => 'ӏ',
380
+ 'Ӂ' => 'ӂ',
381
+ 'Ӄ' => 'ӄ',
382
+ 'Ӆ' => 'ӆ',
383
+ 'Ӈ' => 'ӈ',
384
+ 'Ӊ' => 'ӊ',
385
+ 'Ӌ' => 'ӌ',
386
+ 'Ӎ' => 'ӎ',
387
+ 'Ӑ' => 'ӑ',
388
+ 'Ӓ' => 'ӓ',
389
+ 'Ӕ' => 'ӕ',
390
+ 'Ӗ' => 'ӗ',
391
+ 'Ә' => 'ә',
392
+ 'Ӛ' => 'ӛ',
393
+ 'Ӝ' => 'ӝ',
394
+ 'Ӟ' => 'ӟ',
395
+ 'Ӡ' => 'ӡ',
396
+ 'Ӣ' => 'ӣ',
397
+ 'Ӥ' => 'ӥ',
398
+ 'Ӧ' => 'ӧ',
399
+ 'Ө' => 'ө',
400
+ 'Ӫ' => 'ӫ',
401
+ 'Ӭ' => 'ӭ',
402
+ 'Ӯ' => 'ӯ',
403
+ 'Ӱ' => 'ӱ',
404
+ 'Ӳ' => 'ӳ',
405
+ 'Ӵ' => 'ӵ',
406
+ 'Ӷ' => 'ӷ',
407
+ 'Ӹ' => 'ӹ',
408
+ 'Ӻ' => 'ӻ',
409
+ 'Ӽ' => 'ӽ',
410
+ 'Ӿ' => 'ӿ',
411
+ 'Ԁ' => 'ԁ',
412
+ 'Ԃ' => 'ԃ',
413
+ 'Ԅ' => 'ԅ',
414
+ 'Ԇ' => 'ԇ',
415
+ 'Ԉ' => 'ԉ',
416
+ 'Ԋ' => 'ԋ',
417
+ 'Ԍ' => 'ԍ',
418
+ 'Ԏ' => 'ԏ',
419
+ 'Ԑ' => 'ԑ',
420
+ 'Ԓ' => 'ԓ',
421
+ 'Ԕ' => 'ԕ',
422
+ 'Ԗ' => 'ԗ',
423
+ 'Ԙ' => 'ԙ',
424
+ 'Ԛ' => 'ԛ',
425
+ 'Ԝ' => 'ԝ',
426
+ 'Ԟ' => 'ԟ',
427
+ 'Ԡ' => 'ԡ',
428
+ 'Ԣ' => 'ԣ',
429
+ 'Ԥ' => 'ԥ',
430
+ 'Ԧ' => 'ԧ',
431
+ 'Ԩ' => 'ԩ',
432
+ 'Ԫ' => 'ԫ',
433
+ 'Ԭ' => 'ԭ',
434
+ 'Ԯ' => 'ԯ',
435
+ 'Ա' => 'ա',
436
+ 'Բ' => 'բ',
437
+ 'Գ' => 'գ',
438
+ 'Դ' => 'դ',
439
+ 'Ե' => 'ե',
440
+ 'Զ' => 'զ',
441
+ 'Է' => 'է',
442
+ 'Ը' => 'ը',
443
+ 'Թ' => 'թ',
444
+ 'Ժ' => 'ժ',
445
+ 'Ի' => 'ի',
446
+ 'Լ' => 'լ',
447
+ 'Խ' => 'խ',
448
+ 'Ծ' => 'ծ',
449
+ 'Կ' => 'կ',
450
+ 'Հ' => 'հ',
451
+ 'Ձ' => 'ձ',
452
+ 'Ղ' => 'ղ',
453
+ 'Ճ' => 'ճ',
454
+ 'Մ' => 'մ',
455
+ 'Յ' => 'յ',
456
+ 'Ն' => 'ն',
457
+ 'Շ' => 'շ',
458
+ 'Ո' => 'ո',
459
+ 'Չ' => 'չ',
460
+ 'Պ' => 'պ',
461
+ 'Ջ' => 'ջ',
462
+ 'Ռ' => 'ռ',
463
+ 'Ս' => 'ս',
464
+ 'Վ' => 'վ',
465
+ 'Տ' => 'տ',
466
+ 'Ր' => 'ր',
467
+ 'Ց' => 'ց',
468
+ 'Ւ' => 'ւ',
469
+ 'Փ' => 'փ',
470
+ 'Ք' => 'ք',
471
+ 'Օ' => 'օ',
472
+ 'Ֆ' => 'ֆ',
473
+ 'Ⴀ' => 'ⴀ',
474
+ 'Ⴁ' => 'ⴁ',
475
+ 'Ⴂ' => 'ⴂ',
476
+ 'Ⴃ' => 'ⴃ',
477
+ 'Ⴄ' => 'ⴄ',
478
+ 'Ⴅ' => 'ⴅ',
479
+ 'Ⴆ' => 'ⴆ',
480
+ 'Ⴇ' => 'ⴇ',
481
+ 'Ⴈ' => 'ⴈ',
482
+ 'Ⴉ' => 'ⴉ',
483
+ 'Ⴊ' => 'ⴊ',
484
+ 'Ⴋ' => 'ⴋ',
485
+ 'Ⴌ' => 'ⴌ',
486
+ 'Ⴍ' => 'ⴍ',
487
+ 'Ⴎ' => 'ⴎ',
488
+ 'Ⴏ' => 'ⴏ',
489
+ 'Ⴐ' => 'ⴐ',
490
+ 'Ⴑ' => 'ⴑ',
491
+ 'Ⴒ' => 'ⴒ',
492
+ 'Ⴓ' => 'ⴓ',
493
+ 'Ⴔ' => 'ⴔ',
494
+ 'Ⴕ' => 'ⴕ',
495
+ 'Ⴖ' => 'ⴖ',
496
+ 'Ⴗ' => 'ⴗ',
497
+ 'Ⴘ' => 'ⴘ',
498
+ 'Ⴙ' => 'ⴙ',
499
+ 'Ⴚ' => 'ⴚ',
500
+ 'Ⴛ' => 'ⴛ',
501
+ 'Ⴜ' => 'ⴜ',
502
+ 'Ⴝ' => 'ⴝ',
503
+ 'Ⴞ' => 'ⴞ',
504
+ 'Ⴟ' => 'ⴟ',
505
+ 'Ⴠ' => 'ⴠ',
506
+ 'Ⴡ' => 'ⴡ',
507
+ 'Ⴢ' => 'ⴢ',
508
+ 'Ⴣ' => 'ⴣ',
509
+ 'Ⴤ' => 'ⴤ',
510
+ 'Ⴥ' => 'ⴥ',
511
+ 'Ⴧ' => 'ⴧ',
512
+ 'Ⴭ' => 'ⴭ',
513
+ 'Ḁ' => 'ḁ',
514
+ 'Ḃ' => 'ḃ',
515
+ 'Ḅ' => 'ḅ',
516
+ 'Ḇ' => 'ḇ',
517
+ 'Ḉ' => 'ḉ',
518
+ 'Ḋ' => 'ḋ',
519
+ 'Ḍ' => 'ḍ',
520
+ 'Ḏ' => 'ḏ',
521
+ 'Ḑ' => 'ḑ',
522
+ 'Ḓ' => 'ḓ',
523
+ 'Ḕ' => 'ḕ',
524
+ 'Ḗ' => 'ḗ',
525
+ 'Ḙ' => 'ḙ',
526
+ 'Ḛ' => 'ḛ',
527
+ 'Ḝ' => 'ḝ',
528
+ 'Ḟ' => 'ḟ',
529
+ 'Ḡ' => 'ḡ',
530
+ 'Ḣ' => 'ḣ',
531
+ 'Ḥ' => 'ḥ',
532
+ 'Ḧ' => 'ḧ',
533
+ 'Ḩ' => 'ḩ',
534
+ 'Ḫ' => 'ḫ',
535
+ 'Ḭ' => 'ḭ',
536
+ 'Ḯ' => 'ḯ',
537
+ 'Ḱ' => 'ḱ',
538
+ 'Ḳ' => 'ḳ',
539
+ 'Ḵ' => 'ḵ',
540
+ 'Ḷ' => 'ḷ',
541
+ 'Ḹ' => 'ḹ',
542
+ 'Ḻ' => 'ḻ',
543
+ 'Ḽ' => 'ḽ',
544
+ 'Ḿ' => 'ḿ',
545
+ 'Ṁ' => 'ṁ',
546
+ 'Ṃ' => 'ṃ',
547
+ 'Ṅ' => 'ṅ',
548
+ 'Ṇ' => 'ṇ',
549
+ 'Ṉ' => 'ṉ',
550
+ 'Ṋ' => 'ṋ',
551
+ 'Ṍ' => 'ṍ',
552
+ 'Ṏ' => 'ṏ',
553
+ 'Ṑ' => 'ṑ',
554
+ 'Ṓ' => 'ṓ',
555
+ 'Ṕ' => 'ṕ',
556
+ 'Ṗ' => 'ṗ',
557
+ 'Ṙ' => 'ṙ',
558
+ 'Ṛ' => 'ṛ',
559
+ 'Ṝ' => 'ṝ',
560
+ 'Ṟ' => 'ṟ',
561
+ 'Ṡ' => 'ṡ',
562
+ 'Ṣ' => 'ṣ',
563
+ 'Ṥ' => 'ṥ',
564
+ 'Ṧ' => 'ṧ',
565
+ 'Ṩ' => 'ṩ',
566
+ 'Ṫ' => 'ṫ',
567
+ 'Ṭ' => 'ṭ',
568
+ 'Ṯ' => 'ṯ',
569
+ 'Ṱ' => 'ṱ',
570
+ 'Ṳ' => 'ṳ',
571
+ 'Ṵ' => 'ṵ',
572
+ 'Ṷ' => 'ṷ',
573
+ 'Ṹ' => 'ṹ',
574
+ 'Ṻ' => 'ṻ',
575
+ 'Ṽ' => 'ṽ',
576
+ 'Ṿ' => 'ṿ',
577
+ 'Ẁ' => 'ẁ',
578
+ 'Ẃ' => 'ẃ',
579
+ 'Ẅ' => 'ẅ',
580
+ 'Ẇ' => 'ẇ',
581
+ 'Ẉ' => 'ẉ',
582
+ 'Ẋ' => 'ẋ',
583
+ 'Ẍ' => 'ẍ',
584
+ 'Ẏ' => 'ẏ',
585
+ 'Ẑ' => 'ẑ',
586
+ 'Ẓ' => 'ẓ',
587
+ 'Ẕ' => 'ẕ',
588
+ 'ẞ' => 'ß',
589
+ 'Ạ' => 'ạ',
590
+ 'Ả' => 'ả',
591
+ 'Ấ' => 'ấ',
592
+ 'Ầ' => 'ầ',
593
+ 'Ẩ' => 'ẩ',
594
+ 'Ẫ' => 'ẫ',
595
+ 'Ậ' => 'ậ',
596
+ 'Ắ' => 'ắ',
597
+ 'Ằ' => 'ằ',
598
+ 'Ẳ' => 'ẳ',
599
+ 'Ẵ' => 'ẵ',
600
+ 'Ặ' => 'ặ',
601
+ 'Ẹ' => 'ẹ',
602
+ 'Ẻ' => 'ẻ',
603
+ 'Ẽ' => 'ẽ',
604
+ 'Ế' => 'ế',
605
+ 'Ề' => 'ề',
606
+ 'Ể' => 'ể',
607
+ 'Ễ' => 'ễ',
608
+ 'Ệ' => 'ệ',
609
+ 'Ỉ' => 'ỉ',
610
+ 'Ị' => 'ị',
611
+ 'Ọ' => 'ọ',
612
+ 'Ỏ' => 'ỏ',
613
+ 'Ố' => 'ố',
614
+ 'Ồ' => 'ồ',
615
+ 'Ổ' => 'ổ',
616
+ 'Ỗ' => 'ỗ',
617
+ 'Ộ' => 'ộ',
618
+ 'Ớ' => 'ớ',
619
+ 'Ờ' => 'ờ',
620
+ 'Ở' => 'ở',
621
+ 'Ỡ' => 'ỡ',
622
+ 'Ợ' => 'ợ',
623
+ 'Ụ' => 'ụ',
624
+ 'Ủ' => 'ủ',
625
+ 'Ứ' => 'ứ',
626
+ 'Ừ' => 'ừ',
627
+ 'Ử' => 'ử',
628
+ 'Ữ' => 'ữ',
629
+ 'Ự' => 'ự',
630
+ 'Ỳ' => 'ỳ',
631
+ 'Ỵ' => 'ỵ',
632
+ 'Ỷ' => 'ỷ',
633
+ 'Ỹ' => 'ỹ',
634
+ 'Ỻ' => 'ỻ',
635
+ 'Ỽ' => 'ỽ',
636
+ 'Ỿ' => 'ỿ',
637
+ 'Ἀ' => 'ἀ',
638
+ 'Ἁ' => 'ἁ',
639
+ 'Ἂ' => 'ἂ',
640
+ 'Ἃ' => 'ἃ',
641
+ 'Ἄ' => 'ἄ',
642
+ 'Ἅ' => 'ἅ',
643
+ 'Ἆ' => 'ἆ',
644
+ 'Ἇ' => 'ἇ',
645
+ 'Ἐ' => 'ἐ',
646
+ 'Ἑ' => 'ἑ',
647
+ 'Ἒ' => 'ἒ',
648
+ 'Ἓ' => 'ἓ',
649
+ 'Ἔ' => 'ἔ',
650
+ 'Ἕ' => 'ἕ',
651
+ 'Ἠ' => 'ἠ',
652
+ 'Ἡ' => 'ἡ',
653
+ 'Ἢ' => 'ἢ',
654
+ 'Ἣ' => 'ἣ',
655
+ 'Ἤ' => 'ἤ',
656
+ 'Ἥ' => 'ἥ',
657
+ 'Ἦ' => 'ἦ',
658
+ 'Ἧ' => 'ἧ',
659
+ 'Ἰ' => 'ἰ',
660
+ 'Ἱ' => 'ἱ',
661
+ 'Ἲ' => 'ἲ',
662
+ 'Ἳ' => 'ἳ',
663
+ 'Ἴ' => 'ἴ',
664
+ 'Ἵ' => 'ἵ',
665
+ 'Ἶ' => 'ἶ',
666
+ 'Ἷ' => 'ἷ',
667
+ 'Ὀ' => 'ὀ',
668
+ 'Ὁ' => 'ὁ',
669
+ 'Ὂ' => 'ὂ',
670
+ 'Ὃ' => 'ὃ',
671
+ 'Ὄ' => 'ὄ',
672
+ 'Ὅ' => 'ὅ',
673
+ 'Ὑ' => 'ὑ',
674
+ 'Ὓ' => 'ὓ',
675
+ 'Ὕ' => 'ὕ',
676
+ 'Ὗ' => 'ὗ',
677
+ 'Ὠ' => 'ὠ',
678
+ 'Ὡ' => 'ὡ',
679
+ 'Ὢ' => 'ὢ',
680
+ 'Ὣ' => 'ὣ',
681
+ 'Ὤ' => 'ὤ',
682
+ 'Ὥ' => 'ὥ',
683
+ 'Ὦ' => 'ὦ',
684
+ 'Ὧ' => 'ὧ',
685
+ 'ᾈ' => 'ᾀ',
686
+ 'ᾉ' => 'ᾁ',
687
+ 'ᾊ' => 'ᾂ',
688
+ 'ᾋ' => 'ᾃ',
689
+ 'ᾌ' => 'ᾄ',
690
+ 'ᾍ' => 'ᾅ',
691
+ 'ᾎ' => 'ᾆ',
692
+ 'ᾏ' => 'ᾇ',
693
+ 'ᾘ' => 'ᾐ',
694
+ 'ᾙ' => 'ᾑ',
695
+ 'ᾚ' => 'ᾒ',
696
+ 'ᾛ' => 'ᾓ',
697
+ 'ᾜ' => 'ᾔ',
698
+ 'ᾝ' => 'ᾕ',
699
+ 'ᾞ' => 'ᾖ',
700
+ 'ᾟ' => 'ᾗ',
701
+ 'ᾨ' => 'ᾠ',
702
+ 'ᾩ' => 'ᾡ',
703
+ 'ᾪ' => 'ᾢ',
704
+ 'ᾫ' => 'ᾣ',
705
+ 'ᾬ' => 'ᾤ',
706
+ 'ᾭ' => 'ᾥ',
707
+ 'ᾮ' => 'ᾦ',
708
+ 'ᾯ' => 'ᾧ',
709
+ 'Ᾰ' => 'ᾰ',
710
+ 'Ᾱ' => 'ᾱ',
711
+ 'Ὰ' => 'ὰ',
712
+ 'Ά' => 'ά',
713
+ 'ᾼ' => 'ᾳ',
714
+ 'Ὲ' => 'ὲ',
715
+ 'Έ' => 'έ',
716
+ 'Ὴ' => 'ὴ',
717
+ 'Ή' => 'ή',
718
+ 'ῌ' => 'ῃ',
719
+ 'Ῐ' => 'ῐ',
720
+ 'Ῑ' => 'ῑ',
721
+ 'Ὶ' => 'ὶ',
722
+ 'Ί' => 'ί',
723
+ 'Ῠ' => 'ῠ',
724
+ 'Ῡ' => 'ῡ',
725
+ 'Ὺ' => 'ὺ',
726
+ 'Ύ' => 'ύ',
727
+ 'Ῥ' => 'ῥ',
728
+ 'Ὸ' => 'ὸ',
729
+ 'Ό' => 'ό',
730
+ 'Ὼ' => 'ὼ',
731
+ 'Ώ' => 'ώ',
732
+ 'ῼ' => 'ῳ',
733
+ 'Ω' => 'ω',
734
+ 'K' => 'k',
735
+ 'Å' => 'å',
736
+ 'Ⅎ' => 'ⅎ',
737
+ 'Ⅰ' => 'ⅰ',
738
+ 'Ⅱ' => 'ⅱ',
739
+ 'Ⅲ' => 'ⅲ',
740
+ 'Ⅳ' => 'ⅳ',
741
+ 'Ⅴ' => 'ⅴ',
742
+ 'Ⅵ' => 'ⅵ',
743
+ 'Ⅶ' => 'ⅶ',
744
+ 'Ⅷ' => 'ⅷ',
745
+ 'Ⅸ' => 'ⅸ',
746
+ 'Ⅹ' => 'ⅹ',
747
+ 'Ⅺ' => 'ⅺ',
748
+ 'Ⅻ' => 'ⅻ',
749
+ 'Ⅼ' => 'ⅼ',
750
+ 'Ⅽ' => 'ⅽ',
751
+ 'Ⅾ' => 'ⅾ',
752
+ 'Ⅿ' => 'ⅿ',
753
+ 'Ↄ' => 'ↄ',
754
+ 'Ⓐ' => 'ⓐ',
755
+ 'Ⓑ' => 'ⓑ',
756
+ 'Ⓒ' => 'ⓒ',
757
+ 'Ⓓ' => 'ⓓ',
758
+ 'Ⓔ' => 'ⓔ',
759
+ 'Ⓕ' => 'ⓕ',
760
+ 'Ⓖ' => 'ⓖ',
761
+ 'Ⓗ' => 'ⓗ',
762
+ 'Ⓘ' => 'ⓘ',
763
+ 'Ⓙ' => 'ⓙ',
764
+ 'Ⓚ' => 'ⓚ',
765
+ 'Ⓛ' => 'ⓛ',
766
+ 'Ⓜ' => 'ⓜ',
767
+ 'Ⓝ' => 'ⓝ',
768
+ 'Ⓞ' => 'ⓞ',
769
+ 'Ⓟ' => 'ⓟ',
770
+ 'Ⓠ' => 'ⓠ',
771
+ 'Ⓡ' => 'ⓡ',
772
+ 'Ⓢ' => 'ⓢ',
773
+ 'Ⓣ' => 'ⓣ',
774
+ 'Ⓤ' => 'ⓤ',
775
+ 'Ⓥ' => 'ⓥ',
776
+ 'Ⓦ' => 'ⓦ',
777
+ 'Ⓧ' => 'ⓧ',
778
+ 'Ⓨ' => 'ⓨ',
779
+ 'Ⓩ' => 'ⓩ',
780
+ 'Ⰰ' => 'ⰰ',
781
+ 'Ⰱ' => 'ⰱ',
782
+ 'Ⰲ' => 'ⰲ',
783
+ 'Ⰳ' => 'ⰳ',
784
+ 'Ⰴ' => 'ⰴ',
785
+ 'Ⰵ' => 'ⰵ',
786
+ 'Ⰶ' => 'ⰶ',
787
+ 'Ⰷ' => 'ⰷ',
788
+ 'Ⰸ' => 'ⰸ',
789
+ 'Ⰹ' => 'ⰹ',
790
+ 'Ⰺ' => 'ⰺ',
791
+ 'Ⰻ' => 'ⰻ',
792
+ 'Ⰼ' => 'ⰼ',
793
+ 'Ⰽ' => 'ⰽ',
794
+ 'Ⰾ' => 'ⰾ',
795
+ 'Ⰿ' => 'ⰿ',
796
+ 'Ⱀ' => 'ⱀ',
797
+ 'Ⱁ' => 'ⱁ',
798
+ 'Ⱂ' => 'ⱂ',
799
+ 'Ⱃ' => 'ⱃ',
800
+ 'Ⱄ' => 'ⱄ',
801
+ 'Ⱅ' => 'ⱅ',
802
+ 'Ⱆ' => 'ⱆ',
803
+ 'Ⱇ' => 'ⱇ',
804
+ 'Ⱈ' => 'ⱈ',
805
+ 'Ⱉ' => 'ⱉ',
806
+ 'Ⱊ' => 'ⱊ',
807
+ 'Ⱋ' => 'ⱋ',
808
+ 'Ⱌ' => 'ⱌ',
809
+ 'Ⱍ' => 'ⱍ',
810
+ 'Ⱎ' => 'ⱎ',
811
+ 'Ⱏ' => 'ⱏ',
812
+ 'Ⱐ' => 'ⱐ',
813
+ 'Ⱑ' => 'ⱑ',
814
+ 'Ⱒ' => 'ⱒ',
815
+ 'Ⱓ' => 'ⱓ',
816
+ 'Ⱔ' => 'ⱔ',
817
+ 'Ⱕ' => 'ⱕ',
818
+ 'Ⱖ' => 'ⱖ',
819
+ 'Ⱗ' => 'ⱗ',
820
+ 'Ⱘ' => 'ⱘ',
821
+ 'Ⱙ' => 'ⱙ',
822
+ 'Ⱚ' => 'ⱚ',
823
+ 'Ⱛ' => 'ⱛ',
824
+ 'Ⱜ' => 'ⱜ',
825
+ 'Ⱝ' => 'ⱝ',
826
+ 'Ⱞ' => 'ⱞ',
827
+ 'Ⱡ' => 'ⱡ',
828
+ 'Ɫ' => 'ɫ',
829
+ 'Ᵽ' => 'ᵽ',
830
+ 'Ɽ' => 'ɽ',
831
+ 'Ⱨ' => 'ⱨ',
832
+ 'Ⱪ' => 'ⱪ',
833
+ 'Ⱬ' => 'ⱬ',
834
+ 'Ɑ' => 'ɑ',
835
+ 'Ɱ' => 'ɱ',
836
+ 'Ɐ' => 'ɐ',
837
+ 'Ɒ' => 'ɒ',
838
+ 'Ⱳ' => 'ⱳ',
839
+ 'Ⱶ' => 'ⱶ',
840
+ 'Ȿ' => 'ȿ',
841
+ 'Ɀ' => 'ɀ',
842
+ 'Ⲁ' => 'ⲁ',
843
+ 'Ⲃ' => 'ⲃ',
844
+ 'Ⲅ' => 'ⲅ',
845
+ 'Ⲇ' => 'ⲇ',
846
+ 'Ⲉ' => 'ⲉ',
847
+ 'Ⲋ' => 'ⲋ',
848
+ 'Ⲍ' => 'ⲍ',
849
+ 'Ⲏ' => 'ⲏ',
850
+ 'Ⲑ' => 'ⲑ',
851
+ 'Ⲓ' => 'ⲓ',
852
+ 'Ⲕ' => 'ⲕ',
853
+ 'Ⲗ' => 'ⲗ',
854
+ 'Ⲙ' => 'ⲙ',
855
+ 'Ⲛ' => 'ⲛ',
856
+ 'Ⲝ' => 'ⲝ',
857
+ 'Ⲟ' => 'ⲟ',
858
+ 'Ⲡ' => 'ⲡ',
859
+ 'Ⲣ' => 'ⲣ',
860
+ 'Ⲥ' => 'ⲥ',
861
+ 'Ⲧ' => 'ⲧ',
862
+ 'Ⲩ' => 'ⲩ',
863
+ 'Ⲫ' => 'ⲫ',
864
+ 'Ⲭ' => 'ⲭ',
865
+ 'Ⲯ' => 'ⲯ',
866
+ 'Ⲱ' => 'ⲱ',
867
+ 'Ⲳ' => 'ⲳ',
868
+ 'Ⲵ' => 'ⲵ',
869
+ 'Ⲷ' => 'ⲷ',
870
+ 'Ⲹ' => 'ⲹ',
871
+ 'Ⲻ' => 'ⲻ',
872
+ 'Ⲽ' => 'ⲽ',
873
+ 'Ⲿ' => 'ⲿ',
874
+ 'Ⳁ' => 'ⳁ',
875
+ 'Ⳃ' => 'ⳃ',
876
+ 'Ⳅ' => 'ⳅ',
877
+ 'Ⳇ' => 'ⳇ',
878
+ 'Ⳉ' => 'ⳉ',
879
+ 'Ⳋ' => 'ⳋ',
880
+ 'Ⳍ' => 'ⳍ',
881
+ 'Ⳏ' => 'ⳏ',
882
+ 'Ⳑ' => 'ⳑ',
883
+ 'Ⳓ' => 'ⳓ',
884
+ 'Ⳕ' => 'ⳕ',
885
+ 'Ⳗ' => 'ⳗ',
886
+ 'Ⳙ' => 'ⳙ',
887
+ 'Ⳛ' => 'ⳛ',
888
+ 'Ⳝ' => 'ⳝ',
889
+ 'Ⳟ' => 'ⳟ',
890
+ 'Ⳡ' => 'ⳡ',
891
+ 'Ⳣ' => 'ⳣ',
892
+ 'Ⳬ' => 'ⳬ',
893
+ 'Ⳮ' => 'ⳮ',
894
+ 'Ⳳ' => 'ⳳ',
895
+ 'Ꙁ' => 'ꙁ',
896
+ 'Ꙃ' => 'ꙃ',
897
+ 'Ꙅ' => 'ꙅ',
898
+ 'Ꙇ' => 'ꙇ',
899
+ 'Ꙉ' => 'ꙉ',
900
+ 'Ꙋ' => 'ꙋ',
901
+ 'Ꙍ' => 'ꙍ',
902
+ 'Ꙏ' => 'ꙏ',
903
+ 'Ꙑ' => 'ꙑ',
904
+ 'Ꙓ' => 'ꙓ',
905
+ 'Ꙕ' => 'ꙕ',
906
+ 'Ꙗ' => 'ꙗ',
907
+ 'Ꙙ' => 'ꙙ',
908
+ 'Ꙛ' => 'ꙛ',
909
+ 'Ꙝ' => 'ꙝ',
910
+ 'Ꙟ' => 'ꙟ',
911
+ 'Ꙡ' => 'ꙡ',
912
+ 'Ꙣ' => 'ꙣ',
913
+ 'Ꙥ' => 'ꙥ',
914
+ 'Ꙧ' => 'ꙧ',
915
+ 'Ꙩ' => 'ꙩ',
916
+ 'Ꙫ' => 'ꙫ',
917
+ 'Ꙭ' => 'ꙭ',
918
+ 'Ꚁ' => 'ꚁ',
919
+ 'Ꚃ' => 'ꚃ',
920
+ 'Ꚅ' => 'ꚅ',
921
+ 'Ꚇ' => 'ꚇ',
922
+ 'Ꚉ' => 'ꚉ',
923
+ 'Ꚋ' => 'ꚋ',
924
+ 'Ꚍ' => 'ꚍ',
925
+ 'Ꚏ' => 'ꚏ',
926
+ 'Ꚑ' => 'ꚑ',
927
+ 'Ꚓ' => 'ꚓ',
928
+ 'Ꚕ' => 'ꚕ',
929
+ 'Ꚗ' => 'ꚗ',
930
+ 'Ꚙ' => 'ꚙ',
931
+ 'Ꚛ' => 'ꚛ',
932
+ 'Ꜣ' => 'ꜣ',
933
+ 'Ꜥ' => 'ꜥ',
934
+ 'Ꜧ' => 'ꜧ',
935
+ 'Ꜩ' => 'ꜩ',
936
+ 'Ꜫ' => 'ꜫ',
937
+ 'Ꜭ' => 'ꜭ',
938
+ 'Ꜯ' => 'ꜯ',
939
+ 'Ꜳ' => 'ꜳ',
940
+ 'Ꜵ' => 'ꜵ',
941
+ 'Ꜷ' => 'ꜷ',
942
+ 'Ꜹ' => 'ꜹ',
943
+ 'Ꜻ' => 'ꜻ',
944
+ 'Ꜽ' => 'ꜽ',
945
+ 'Ꜿ' => 'ꜿ',
946
+ 'Ꝁ' => 'ꝁ',
947
+ 'Ꝃ' => 'ꝃ',
948
+ 'Ꝅ' => 'ꝅ',
949
+ 'Ꝇ' => 'ꝇ',
950
+ 'Ꝉ' => 'ꝉ',
951
+ 'Ꝋ' => 'ꝋ',
952
+ 'Ꝍ' => 'ꝍ',
953
+ 'Ꝏ' => 'ꝏ',
954
+ 'Ꝑ' => 'ꝑ',
955
+ 'Ꝓ' => 'ꝓ',
956
+ 'Ꝕ' => 'ꝕ',
957
+ 'Ꝗ' => 'ꝗ',
958
+ 'Ꝙ' => 'ꝙ',
959
+ 'Ꝛ' => 'ꝛ',
960
+ 'Ꝝ' => 'ꝝ',
961
+ 'Ꝟ' => 'ꝟ',
962
+ 'Ꝡ' => 'ꝡ',
963
+ 'Ꝣ' => 'ꝣ',
964
+ 'Ꝥ' => 'ꝥ',
965
+ 'Ꝧ' => 'ꝧ',
966
+ 'Ꝩ' => 'ꝩ',
967
+ 'Ꝫ' => 'ꝫ',
968
+ 'Ꝭ' => 'ꝭ',
969
+ 'Ꝯ' => 'ꝯ',
970
+ 'Ꝺ' => 'ꝺ',
971
+ 'Ꝼ' => 'ꝼ',
972
+ 'Ᵹ' => 'ᵹ',
973
+ 'Ꝿ' => 'ꝿ',
974
+ 'Ꞁ' => 'ꞁ',
975
+ 'Ꞃ' => 'ꞃ',
976
+ 'Ꞅ' => 'ꞅ',
977
+ 'Ꞇ' => 'ꞇ',
978
+ 'Ꞌ' => 'ꞌ',
979
+ 'Ɥ' => 'ɥ',
980
+ 'Ꞑ' => 'ꞑ',
981
+ 'Ꞓ' => 'ꞓ',
982
+ 'Ꞗ' => 'ꞗ',
983
+ 'Ꞙ' => 'ꞙ',
984
+ 'Ꞛ' => 'ꞛ',
985
+ 'Ꞝ' => 'ꞝ',
986
+ 'Ꞟ' => 'ꞟ',
987
+ 'Ꞡ' => 'ꞡ',
988
+ 'Ꞣ' => 'ꞣ',
989
+ 'Ꞥ' => 'ꞥ',
990
+ 'Ꞧ' => 'ꞧ',
991
+ 'Ꞩ' => 'ꞩ',
992
+ 'Ɦ' => 'ɦ',
993
+ 'Ɜ' => 'ɜ',
994
+ 'Ɡ' => 'ɡ',
995
+ 'Ɬ' => 'ɬ',
996
+ 'Ʞ' => 'ʞ',
997
+ 'Ʇ' => 'ʇ',
998
+ 'A' => 'a',
999
+ 'B' => 'b',
1000
+ 'C' => 'c',
1001
+ 'D' => 'd',
1002
+ 'E' => 'e',
1003
+ 'F' => 'f',
1004
+ 'G' => 'g',
1005
+ 'H' => 'h',
1006
+ 'I' => 'i',
1007
+ 'J' => 'j',
1008
+ 'K' => 'k',
1009
+ 'L' => 'l',
1010
+ 'M' => 'm',
1011
+ 'N' => 'n',
1012
+ 'O' => 'o',
1013
+ 'P' => 'p',
1014
+ 'Q' => 'q',
1015
+ 'R' => 'r',
1016
+ 'S' => 's',
1017
+ 'T' => 't',
1018
+ 'U' => 'u',
1019
+ 'V' => 'v',
1020
+ 'W' => 'w',
1021
+ 'X' => 'x',
1022
+ 'Y' => 'y',
1023
+ 'Z' => 'z',
1024
+ '𐐀' => '𐐨',
1025
+ '𐐁' => '𐐩',
1026
+ '𐐂' => '𐐪',
1027
+ '𐐃' => '𐐫',
1028
+ '𐐄' => '𐐬',
1029
+ '𐐅' => '𐐭',
1030
+ '𐐆' => '𐐮',
1031
+ '𐐇' => '𐐯',
1032
+ '𐐈' => '𐐰',
1033
+ '𐐉' => '𐐱',
1034
+ '𐐊' => '𐐲',
1035
+ '𐐋' => '𐐳',
1036
+ '𐐌' => '𐐴',
1037
+ '𐐍' => '𐐵',
1038
+ '𐐎' => '𐐶',
1039
+ '𐐏' => '𐐷',
1040
+ '𐐐' => '𐐸',
1041
+ '𐐑' => '𐐹',
1042
+ '𐐒' => '𐐺',
1043
+ '𐐓' => '𐐻',
1044
+ '𐐔' => '𐐼',
1045
+ '𐐕' => '𐐽',
1046
+ '𐐖' => '𐐾',
1047
+ '𐐗' => '𐐿',
1048
+ '𐐘' => '𐑀',
1049
+ '𐐙' => '𐑁',
1050
+ '𐐚' => '𐑂',
1051
+ '𐐛' => '𐑃',
1052
+ '𐐜' => '𐑄',
1053
+ '𐐝' => '𐑅',
1054
+ '𐐞' => '𐑆',
1055
+ '𐐟' => '𐑇',
1056
+ '𐐠' => '𐑈',
1057
+ '𐐡' => '𐑉',
1058
+ '𐐢' => '𐑊',
1059
+ '𐐣' => '𐑋',
1060
+ '𐐤' => '𐑌',
1061
+ '𐐥' => '𐑍',
1062
+ '𐐦' => '𐑎',
1063
+ '𐐧' => '𐑏',
1064
+ '𑢠' => '𑣀',
1065
+ '𑢡' => '𑣁',
1066
+ '𑢢' => '𑣂',
1067
+ '𑢣' => '𑣃',
1068
+ '𑢤' => '𑣄',
1069
+ '𑢥' => '𑣅',
1070
+ '𑢦' => '𑣆',
1071
+ '𑢧' => '𑣇',
1072
+ '𑢨' => '𑣈',
1073
+ '𑢩' => '𑣉',
1074
+ '𑢪' => '𑣊',
1075
+ '𑢫' => '𑣋',
1076
+ '𑢬' => '𑣌',
1077
+ '𑢭' => '𑣍',
1078
+ '𑢮' => '𑣎',
1079
+ '𑢯' => '𑣏',
1080
+ '𑢰' => '𑣐',
1081
+ '𑢱' => '𑣑',
1082
+ '𑢲' => '𑣒',
1083
+ '𑢳' => '𑣓',
1084
+ '𑢴' => '𑣔',
1085
+ '𑢵' => '𑣕',
1086
+ '𑢶' => '𑣖',
1087
+ '𑢷' => '𑣗',
1088
+ '𑢸' => '𑣘',
1089
+ '𑢹' => '𑣙',
1090
+ '𑢺' => '𑣚',
1091
+ '𑢻' => '𑣛',
1092
+ '𑢼' => '𑣜',
1093
+ '𑢽' => '𑣝',
1094
+ '𑢾' => '𑣞',
1095
+ '𑢿' => '𑣟',
1096
+ );
1097
+
1098
+ $result =& $data;
1099
+ unset($data);
1100
+
1101
+ return $result;
vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.ser DELETED
@@ -1 +0,0 @@
1
- a:1092:{s:1:"A";s:1:"a";s:1:"B";s:1:"b";s:1:"C";s:1:"c";s:1:"D";s:1:"d";s:1:"E";s:1:"e";s:1:"F";s:1:"f";s:1:"G";s:1:"g";s:1:"H";s:1:"h";s:1:"I";s:1:"i";s:1:"J";s:1:"j";s:1:"K";s:1:"k";s:1:"L";s:1:"l";s:1:"M";s:1:"m";s:1:"N";s:1:"n";s:1:"O";s:1:"o";s:1:"P";s:1:"p";s:1:"Q";s:1:"q";s:1:"R";s:1:"r";s:1:"S";s:1:"s";s:1:"T";s:1:"t";s:1:"U";s:1:"u";s:1:"V";s:1:"v";s:1:"W";s:1:"w";s:1:"X";s:1:"x";s:1:"Y";s:1:"y";s:1:"Z";s:1:"z";s:2:"À";s:2:"à";s:2:"Á";s:2:"á";s:2:"Â";s:2:"â";s:2:"Ã";s:2:"ã";s:2:"Ä";s:2:"ä";s:2:"Å";s:2:"å";s:2:"Æ";s:2:"æ";s:2:"Ç";s:2:"ç";s:2:"È";s:2:"è";s:2:"É";s:2:"é";s:2:"Ê";s:2:"ê";s:2:"Ë";s:2:"ë";s:2:"Ì";s:2:"ì";s:2:"Í";s:2:"í";s:2:"Î";s:2:"î";s:2:"Ï";s:2:"ï";s:2:"Ð";s:2:"ð";s:2:"Ñ";s:2:"ñ";s:2:"Ò";s:2:"ò";s:2:"Ó";s:2:"ó";s:2:"Ô";s:2:"ô";s:2:"Õ";s:2:"õ";s:2:"Ö";s:2:"ö";s:2:"Ø";s:2:"ø";s:2:"Ù";s:2:"ù";s:2:"Ú";s:2:"ú";s:2:"Û";s:2:"û";s:2:"Ü";s:2:"ü";s:2:"Ý";s:2:"ý";s:2:"Þ";s:2:"þ";s:2:"Ā";s:2:"ā";s:2:"Ă";s:2:"ă";s:2:"Ą";s:2:"ą";s:2:"Ć";s:2:"ć";s:2:"Ĉ";s:2:"ĉ";s:2:"Ċ";s:2:"ċ";s:2:"Č";s:2:"č";s:2:"Ď";s:2:"ď";s:2:"Đ";s:2:"đ";s:2:"Ē";s:2:"ē";s:2:"Ĕ";s:2:"ĕ";s:2:"Ė";s:2:"ė";s:2:"Ę";s:2:"ę";s:2:"Ě";s:2:"ě";s:2:"Ĝ";s:2:"ĝ";s:2:"Ğ";s:2:"ğ";s:2:"Ġ";s:2:"ġ";s:2:"Ģ";s:2:"ģ";s:2:"Ĥ";s:2:"ĥ";s:2:"Ħ";s:2:"ħ";s:2:"Ĩ";s:2:"ĩ";s:2:"Ī";s:2:"ī";s:2:"Ĭ";s:2:"ĭ";s:2:"Į";s:2:"į";s:2:"İ";s:1:"i";s:2:"IJ";s:2:"ij";s:2:"Ĵ";s:2:"ĵ";s:2:"Ķ";s:2:"ķ";s:2:"Ĺ";s:2:"ĺ";s:2:"Ļ";s:2:"ļ";s:2:"Ľ";s:2:"ľ";s:2:"Ŀ";s:2:"ŀ";s:2:"Ł";s:2:"ł";s:2:"Ń";s:2:"ń";s:2:"Ņ";s:2:"ņ";s:2:"Ň";s:2:"ň";s:2:"Ŋ";s:2:"ŋ";s:2:"Ō";s:2:"ō";s:2:"Ŏ";s:2:"ŏ";s:2:"Ő";s:2:"ő";s:2:"Œ";s:2:"œ";s:2:"Ŕ";s:2:"ŕ";s:2:"Ŗ";s:2:"ŗ";s:2:"Ř";s:2:"ř";s:2:"Ś";s:2:"ś";s:2:"Ŝ";s:2:"ŝ";s:2:"Ş";s:2:"ş";s:2:"Š";s:2:"š";s:2:"Ţ";s:2:"ţ";s:2:"Ť";s:2:"ť";s:2:"Ŧ";s:2:"ŧ";s:2:"Ũ";s:2:"ũ";s:2:"Ū";s:2:"ū";s:2:"Ŭ";s:2:"ŭ";s:2:"Ů";s:2:"ů";s:2:"Ű";s:2:"ű";s:2:"Ų";s:2:"ų";s:2:"Ŵ";s:2:"ŵ";s:2:"Ŷ";s:2:"ŷ";s:2:"Ÿ";s:2:"ÿ";s:2:"Ź";s:2:"ź";s:2:"Ż";s:2:"ż";s:2:"Ž";s:2:"ž";s:2:"Ɓ";s:2:"ɓ";s:2:"Ƃ";s:2:"ƃ";s:2:"Ƅ";s:2:"ƅ";s:2:"Ɔ";s:2:"ɔ";s:2:"Ƈ";s:2:"ƈ";s:2:"Ɖ";s:2:"ɖ";s:2:"Ɗ";s:2:"ɗ";s:2:"Ƌ";s:2:"ƌ";s:2:"Ǝ";s:2:"ǝ";s:2:"Ə";s:2:"ə";s:2:"Ɛ";s:2:"ɛ";s:2:"Ƒ";s:2:"ƒ";s:2:"Ɠ";s:2:"ɠ";s:2:"Ɣ";s:2:"ɣ";s:2:"Ɩ";s:2:"ɩ";s:2:"Ɨ";s:2:"ɨ";s:2:"Ƙ";s:2:"ƙ";s:2:"Ɯ";s:2:"ɯ";s:2:"Ɲ";s:2:"ɲ";s:2:"Ɵ";s:2:"ɵ";s:2:"Ơ";s:2:"ơ";s:2:"Ƣ";s:2:"ƣ";s:2:"Ƥ";s:2:"ƥ";s:2:"Ʀ";s:2:"ʀ";s:2:"Ƨ";s:2:"ƨ";s:2:"Ʃ";s:2:"ʃ";s:2:"Ƭ";s:2:"ƭ";s:2:"Ʈ";s:2:"ʈ";s:2:"Ư";s:2:"ư";s:2:"Ʊ";s:2:"ʊ";s:2:"Ʋ";s:2:"ʋ";s:2:"Ƴ";s:2:"ƴ";s:2:"Ƶ";s:2:"ƶ";s:2:"Ʒ";s:2:"ʒ";s:2:"Ƹ";s:2:"ƹ";s:2:"Ƽ";s:2:"ƽ";s:2:"DŽ";s:2:"dž";s:2:"Dž";s:2:"dž";s:2:"LJ";s:2:"lj";s:2:"Lj";s:2:"lj";s:2:"NJ";s:2:"nj";s:2:"Nj";s:2:"nj";s:2:"Ǎ";s:2:"ǎ";s:2:"Ǐ";s:2:"ǐ";s:2:"Ǒ";s:2:"ǒ";s:2:"Ǔ";s:2:"ǔ";s:2:"Ǖ";s:2:"ǖ";s:2:"Ǘ";s:2:"ǘ";s:2:"Ǚ";s:2:"ǚ";s:2:"Ǜ";s:2:"ǜ";s:2:"Ǟ";s:2:"ǟ";s:2:"Ǡ";s:2:"ǡ";s:2:"Ǣ";s:2:"ǣ";s:2:"Ǥ";s:2:"ǥ";s:2:"Ǧ";s:2:"ǧ";s:2:"Ǩ";s:2:"ǩ";s:2:"Ǫ";s:2:"ǫ";s:2:"Ǭ";s:2:"ǭ";s:2:"Ǯ";s:2:"ǯ";s:2:"DZ";s:2:"dz";s:2:"Dz";s:2:"dz";s:2:"Ǵ";s:2:"ǵ";s:2:"Ƕ";s:2:"ƕ";s:2:"Ƿ";s:2:"ƿ";s:2:"Ǹ";s:2:"ǹ";s:2:"Ǻ";s:2:"ǻ";s:2:"Ǽ";s:2:"ǽ";s:2:"Ǿ";s:2:"ǿ";s:2:"Ȁ";s:2:"ȁ";s:2:"Ȃ";s:2:"ȃ";s:2:"Ȅ";s:2:"ȅ";s:2:"Ȇ";s:2:"ȇ";s:2:"Ȉ";s:2:"ȉ";s:2:"Ȋ";s:2:"ȋ";s:2:"Ȍ";s:2:"ȍ";s:2:"Ȏ";s:2:"ȏ";s:2:"Ȑ";s:2:"ȑ";s:2:"Ȓ";s:2:"ȓ";s:2:"Ȕ";s:2:"ȕ";s:2:"Ȗ";s:2:"ȗ";s:2:"Ș";s:2:"ș";s:2:"Ț";s:2:"ț";s:2:"Ȝ";s:2:"ȝ";s:2:"Ȟ";s:2:"ȟ";s:2:"Ƞ";s:2:"ƞ";s:2:"Ȣ";s:2:"ȣ";s:2:"Ȥ";s:2:"ȥ";s:2:"Ȧ";s:2:"ȧ";s:2:"Ȩ";s:2:"ȩ";s:2:"Ȫ";s:2:"ȫ";s:2:"Ȭ";s:2:"ȭ";s:2:"Ȯ";s:2:"ȯ";s:2:"Ȱ";s:2:"ȱ";s:2:"Ȳ";s:2:"ȳ";s:2:"Ⱥ";s:3:"ⱥ";s:2:"Ȼ";s:2:"ȼ";s:2:"Ƚ";s:2:"ƚ";s:2:"Ⱦ";s:3:"ⱦ";s:2:"Ɂ";s:2:"ɂ";s:2:"Ƀ";s:2:"ƀ";s:2:"Ʉ";s:2:"ʉ";s:2:"Ʌ";s:2:"ʌ";s:2:"Ɇ";s:2:"ɇ";s:2:"Ɉ";s:2:"ɉ";s:2:"Ɋ";s:2:"ɋ";s:2:"Ɍ";s:2:"ɍ";s:2:"Ɏ";s:2:"ɏ";s:2:"Ͱ";s:2:"ͱ";s:2:"Ͳ";s:2:"ͳ";s:2:"Ͷ";s:2:"ͷ";s:2:"Ϳ";s:2:"ϳ";s:2:"Ά";s:2:"ά";s:2:"Έ";s:2:"έ";s:2:"Ή";s:2:"ή";s:2:"Ί";s:2:"ί";s:2:"Ό";s:2:"ό";s:2:"Ύ";s:2:"ύ";s:2:"Ώ";s:2:"ώ";s:2:"Α";s:2:"α";s:2:"Β";s:2:"β";s:2:"Γ";s:2:"γ";s:2:"Δ";s:2:"δ";s:2:"Ε";s:2:"ε";s:2:"Ζ";s:2:"ζ";s:2:"Η";s:2:"η";s:2:"Θ";s:2:"θ";s:2:"Ι";s:2:"ι";s:2:"Κ";s:2:"κ";s:2:"Λ";s:2:"λ";s:2:"Μ";s:2:"μ";s:2:"Ν";s:2:"ν";s:2:"Ξ";s:2:"ξ";s:2:"Ο";s:2:"ο";s:2:"Π";s:2:"π";s:2:"Ρ";s:2:"ρ";s:2:"Σ";s:2:"σ";s:2:"Τ";s:2:"τ";s:2:"Υ";s:2:"υ";s:2:"Φ";s:2:"φ";s:2:"Χ";s:2:"χ";s:2:"Ψ";s:2:"ψ";s:2:"Ω";s:2:"ω";s:2:"Ϊ";s:2:"ϊ";s:2:"Ϋ";s:2:"ϋ";s:2:"Ϗ";s:2:"ϗ";s:2:"Ϙ";s:2:"ϙ";s:2:"Ϛ";s:2:"ϛ";s:2:"Ϝ";s:2:"ϝ";s:2:"Ϟ";s:2:"ϟ";s:2:"Ϡ";s:2:"ϡ";s:2:"Ϣ";s:2:"ϣ";s:2:"Ϥ";s:2:"ϥ";s:2:"Ϧ";s:2:"ϧ";s:2:"Ϩ";s:2:"ϩ";s:2:"Ϫ";s:2:"ϫ";s:2:"Ϭ";s:2:"ϭ";s:2:"Ϯ";s:2:"ϯ";s:2:"ϴ";s:2:"θ";s:2:"Ϸ";s:2:"ϸ";s:2:"Ϲ";s:2:"ϲ";s:2:"Ϻ";s:2:"ϻ";s:2:"Ͻ";s:2:"ͻ";s:2:"Ͼ";s:2:"ͼ";s:2:"Ͽ";s:2:"ͽ";s:2:"Ѐ";s:2:"ѐ";s:2:"Ё";s:2:"ё";s:2:"Ђ";s:2:"ђ";s:2:"Ѓ";s:2:"ѓ";s:2:"Є";s:2:"є";s:2:"Ѕ";s:2:"ѕ";s:2:"І";s:2:"і";s:2:"Ї";s:2:"ї";s:2:"Ј";s:2:"ј";s:2:"Љ";s:2:"љ";s:2:"Њ";s:2:"њ";s:2:"Ћ";s:2:"ћ";s:2:"Ќ";s:2:"ќ";s:2:"Ѝ";s:2:"ѝ";s:2:"Ў";s:2:"ў";s:2:"Џ";s:2:"џ";s:2:"А";s:2:"а";s:2:"Б";s:2:"б";s:2:"В";s:2:"в";s:2:"Г";s:2:"г";s:2:"Д";s:2:"д";s:2:"Е";s:2:"е";s:2:"Ж";s:2:"ж";s:2:"З";s:2:"з";s:2:"И";s:2:"и";s:2:"Й";s:2:"й";s:2:"К";s:2:"к";s:2:"Л";s:2:"л";s:2:"М";s:2:"м";s:2:"Н";s:2:"н";s:2:"О";s:2:"о";s:2:"П";s:2:"п";s:2:"Р";s:2:"р";s:2:"С";s:2:"с";s:2:"Т";s:2:"т";s:2:"У";s:2:"у";s:2:"Ф";s:2:"ф";s:2:"Х";s:2:"х";s:2:"Ц";s:2:"ц";s:2:"Ч";s:2:"ч";s:2:"Ш";s:2:"ш";s:2:"Щ";s:2:"щ";s:2:"Ъ";s:2:"ъ";s:2:"Ы";s:2:"ы";s:2:"Ь";s:2:"ь";s:2:"Э";s:2:"э";s:2:"Ю";s:2:"ю";s:2:"Я";s:2:"я";s:2:"Ѡ";s:2:"ѡ";s:2:"Ѣ";s:2:"ѣ";s:2:"Ѥ";s:2:"ѥ";s:2:"Ѧ";s:2:"ѧ";s:2:"Ѩ";s:2:"ѩ";s:2:"Ѫ";s:2:"ѫ";s:2:"Ѭ";s:2:"ѭ";s:2:"Ѯ";s:2:"ѯ";s:2:"Ѱ";s:2:"ѱ";s:2:"Ѳ";s:2:"ѳ";s:2:"Ѵ";s:2:"ѵ";s:2:"Ѷ";s:2:"ѷ";s:2:"Ѹ";s:2:"ѹ";s:2:"Ѻ";s:2:"ѻ";s:2:"Ѽ";s:2:"ѽ";s:2:"Ѿ";s:2:"ѿ";s:2:"Ҁ";s:2:"ҁ";s:2:"Ҋ";s:2:"ҋ";s:2:"Ҍ";s:2:"ҍ";s:2:"Ҏ";s:2:"ҏ";s:2:"Ґ";s:2:"ґ";s:2:"Ғ";s:2:"ғ";s:2:"Ҕ";s:2:"ҕ";s:2:"Җ";s:2:"җ";s:2:"Ҙ";s:2:"ҙ";s:2:"Қ";s:2:"қ";s:2:"Ҝ";s:2:"ҝ";s:2:"Ҟ";s:2:"ҟ";s:2:"Ҡ";s:2:"ҡ";s:2:"Ң";s:2:"ң";s:2:"Ҥ";s:2:"ҥ";s:2:"Ҧ";s:2:"ҧ";s:2:"Ҩ";s:2:"ҩ";s:2:"Ҫ";s:2:"ҫ";s:2:"Ҭ";s:2:"ҭ";s:2:"Ү";s:2:"ү";s:2:"Ұ";s:2:"ұ";s:2:"Ҳ";s:2:"ҳ";s:2:"Ҵ";s:2:"ҵ";s:2:"Ҷ";s:2:"ҷ";s:2:"Ҹ";s:2:"ҹ";s:2:"Һ";s:2:"һ";s:2:"Ҽ";s:2:"ҽ";s:2:"Ҿ";s:2:"ҿ";s:2:"Ӏ";s:2:"ӏ";s:2:"Ӂ";s:2:"ӂ";s:2:"Ӄ";s:2:"ӄ";s:2:"Ӆ";s:2:"ӆ";s:2:"Ӈ";s:2:"ӈ";s:2:"Ӊ";s:2:"ӊ";s:2:"Ӌ";s:2:"ӌ";s:2:"Ӎ";s:2:"ӎ";s:2:"Ӑ";s:2:"ӑ";s:2:"Ӓ";s:2:"ӓ";s:2:"Ӕ";s:2:"ӕ";s:2:"Ӗ";s:2:"ӗ";s:2:"Ә";s:2:"ә";s:2:"Ӛ";s:2:"ӛ";s:2:"Ӝ";s:2:"ӝ";s:2:"Ӟ";s:2:"ӟ";s:2:"Ӡ";s:2:"ӡ";s:2:"Ӣ";s:2:"ӣ";s:2:"Ӥ";s:2:"ӥ";s:2:"Ӧ";s:2:"ӧ";s:2:"Ө";s:2:"ө";s:2:"Ӫ";s:2:"ӫ";s:2:"Ӭ";s:2:"ӭ";s:2:"Ӯ";s:2:"ӯ";s:2:"Ӱ";s:2:"ӱ";s:2:"Ӳ";s:2:"ӳ";s:2:"Ӵ";s:2:"ӵ";s:2:"Ӷ";s:2:"ӷ";s:2:"Ӹ";s:2:"ӹ";s:2:"Ӻ";s:2:"ӻ";s:2:"Ӽ";s:2:"ӽ";s:2:"Ӿ";s:2:"ӿ";s:2:"Ԁ";s:2:"ԁ";s:2:"Ԃ";s:2:"ԃ";s:2:"Ԅ";s:2:"ԅ";s:2:"Ԇ";s:2:"ԇ";s:2:"Ԉ";s:2:"ԉ";s:2:"Ԋ";s:2:"ԋ";s:2:"Ԍ";s:2:"ԍ";s:2:"Ԏ";s:2:"ԏ";s:2:"Ԑ";s:2:"ԑ";s:2:"Ԓ";s:2:"ԓ";s:2:"Ԕ";s:2:"ԕ";s:2:"Ԗ";s:2:"ԗ";s:2:"Ԙ";s:2:"ԙ";s:2:"Ԛ";s:2:"ԛ";s:2:"Ԝ";s:2:"ԝ";s:2:"Ԟ";s:2:"ԟ";s:2:"Ԡ";s:2:"ԡ";s:2:"Ԣ";s:2:"ԣ";s:2:"Ԥ";s:2:"ԥ";s:2:"Ԧ";s:2:"ԧ";s:2:"Ԩ";s:2:"ԩ";s:2:"Ԫ";s:2:"ԫ";s:2:"Ԭ";s:2:"ԭ";s:2:"Ԯ";s:2:"ԯ";s:2:"Ա";s:2:"ա";s:2:"Բ";s:2:"բ";s:2:"Գ";s:2:"գ";s:2:"Դ";s:2:"դ";s:2:"Ե";s:2:"ե";s:2:"Զ";s:2:"զ";s:2:"Է";s:2:"է";s:2:"Ը";s:2:"ը";s:2:"Թ";s:2:"թ";s:2:"Ժ";s:2:"ժ";s:2:"Ի";s:2:"ի";s:2:"Լ";s:2:"լ";s:2:"Խ";s:2:"խ";s:2:"Ծ";s:2:"ծ";s:2:"Կ";s:2:"կ";s:2:"Հ";s:2:"հ";s:2:"Ձ";s:2:"ձ";s:2:"Ղ";s:2:"ղ";s:2:"Ճ";s:2:"ճ";s:2:"Մ";s:2:"մ";s:2:"Յ";s:2:"յ";s:2:"Ն";s:2:"ն";s:2:"Շ";s:2:"շ";s:2:"Ո";s:2:"ո";s:2:"Չ";s:2:"չ";s:2:"Պ";s:2:"պ";s:2:"Ջ";s:2:"ջ";s:2:"Ռ";s:2:"ռ";s:2:"Ս";s:2:"ս";s:2:"Վ";s:2:"վ";s:2:"Տ";s:2:"տ";s:2:"Ր";s:2:"ր";s:2:"Ց";s:2:"ց";s:2:"Ւ";s:2:"ւ";s:2:"Փ";s:2:"փ";s:2:"Ք";s:2:"ք";s:2:"Օ";s:2:"օ";s:2:"Ֆ";s:2:"ֆ";s:3:"Ⴀ";s:3:"ⴀ";s:3:"Ⴁ";s:3:"ⴁ";s:3:"Ⴂ";s:3:"ⴂ";s:3:"Ⴃ";s:3:"ⴃ";s:3:"Ⴄ";s:3:"ⴄ";s:3:"Ⴅ";s:3:"ⴅ";s:3:"Ⴆ";s:3:"ⴆ";s:3:"Ⴇ";s:3:"ⴇ";s:3:"Ⴈ";s:3:"ⴈ";s:3:"Ⴉ";s:3:"ⴉ";s:3:"Ⴊ";s:3:"ⴊ";s:3:"Ⴋ";s:3:"ⴋ";s:3:"Ⴌ";s:3:"ⴌ";s:3:"Ⴍ";s:3:"ⴍ";s:3:"Ⴎ";s:3:"ⴎ";s:3:"Ⴏ";s:3:"ⴏ";s:3:"Ⴐ";s:3:"ⴐ";s:3:"Ⴑ";s:3:"ⴑ";s:3:"Ⴒ";s:3:"ⴒ";s:3:"Ⴓ";s:3:"ⴓ";s:3:"Ⴔ";s:3:"ⴔ";s:3:"Ⴕ";s:3:"ⴕ";s:3:"Ⴖ";s:3:"ⴖ";s:3:"Ⴗ";s:3:"ⴗ";s:3:"Ⴘ";s:3:"ⴘ";s:3:"Ⴙ";s:3:"ⴙ";s:3:"Ⴚ";s:3:"ⴚ";s:3:"Ⴛ";s:3:"ⴛ";s:3:"Ⴜ";s:3:"ⴜ";s:3:"Ⴝ";s:3:"ⴝ";s:3:"Ⴞ";s:3:"ⴞ";s:3:"Ⴟ";s:3:"ⴟ";s:3:"Ⴠ";s:3:"ⴠ";s:3:"Ⴡ";s:3:"ⴡ";s:3:"Ⴢ";s:3:"ⴢ";s:3:"Ⴣ";s:3:"ⴣ";s:3:"Ⴤ";s:3:"ⴤ";s:3:"Ⴥ";s:3:"ⴥ";s:3:"Ⴧ";s:3:"ⴧ";s:3:"Ⴭ";s:3:"ⴭ";s:3:"Ḁ";s:3:"ḁ";s:3:"Ḃ";s:3:"ḃ";s:3:"Ḅ";s:3:"ḅ";s:3:"Ḇ";s:3:"ḇ";s:3:"Ḉ";s:3:"ḉ";s:3:"Ḋ";s:3:"ḋ";s:3:"Ḍ";s:3:"ḍ";s:3:"Ḏ";s:3:"ḏ";s:3:"Ḑ";s:3:"ḑ";s:3:"Ḓ";s:3:"ḓ";s:3:"Ḕ";s:3:"ḕ";s:3:"Ḗ";s:3:"ḗ";s:3:"Ḙ";s:3:"ḙ";s:3:"Ḛ";s:3:"ḛ";s:3:"Ḝ";s:3:"ḝ";s:3:"Ḟ";s:3:"ḟ";s:3:"Ḡ";s:3:"ḡ";s:3:"Ḣ";s:3:"ḣ";s:3:"Ḥ";s:3:"ḥ";s:3:"Ḧ";s:3:"ḧ";s:3:"Ḩ";s:3:"ḩ";s:3:"Ḫ";s:3:"ḫ";s:3:"Ḭ";s:3:"ḭ";s:3:"Ḯ";s:3:"ḯ";s:3:"Ḱ";s:3:"ḱ";s:3:"Ḳ";s:3:"ḳ";s:3:"Ḵ";s:3:"ḵ";s:3:"Ḷ";s:3:"ḷ";s:3:"Ḹ";s:3:"ḹ";s:3:"Ḻ";s:3:"ḻ";s:3:"Ḽ";s:3:"ḽ";s:3:"Ḿ";s:3:"ḿ";s:3:"Ṁ";s:3:"ṁ";s:3:"Ṃ";s:3:"ṃ";s:3:"Ṅ";s:3:"ṅ";s:3:"Ṇ";s:3:"ṇ";s:3:"Ṉ";s:3:"ṉ";s:3:"Ṋ";s:3:"ṋ";s:3:"Ṍ";s:3:"ṍ";s:3:"Ṏ";s:3:"ṏ";s:3:"Ṑ";s:3:"ṑ";s:3:"Ṓ";s:3:"ṓ";s:3:"Ṕ";s:3:"ṕ";s:3:"Ṗ";s:3:"ṗ";s:3:"Ṙ";s:3:"ṙ";s:3:"Ṛ";s:3:"ṛ";s:3:"Ṝ";s:3:"ṝ";s:3:"Ṟ";s:3:"ṟ";s:3:"Ṡ";s:3:"ṡ";s:3:"Ṣ";s:3:"ṣ";s:3:"Ṥ";s:3:"ṥ";s:3:"Ṧ";s:3:"ṧ";s:3:"Ṩ";s:3:"ṩ";s:3:"Ṫ";s:3:"ṫ";s:3:"Ṭ";s:3:"ṭ";s:3:"Ṯ";s:3:"ṯ";s:3:"Ṱ";s:3:"ṱ";s:3:"Ṳ";s:3:"ṳ";s:3:"Ṵ";s:3:"ṵ";s:3:"Ṷ";s:3:"ṷ";s:3:"Ṹ";s:3:"ṹ";s:3:"Ṻ";s:3:"ṻ";s:3:"Ṽ";s:3:"ṽ";s:3:"Ṿ";s:3:"ṿ";s:3:"Ẁ";s:3:"ẁ";s:3:"Ẃ";s:3:"ẃ";s:3:"Ẅ";s:3:"ẅ";s:3:"Ẇ";s:3:"ẇ";s:3:"Ẉ";s:3:"ẉ";s:3:"Ẋ";s:3:"ẋ";s:3:"Ẍ";s:3:"ẍ";s:3:"Ẏ";s:3:"ẏ";s:3:"Ẑ";s:3:"ẑ";s:3:"Ẓ";s:3:"ẓ";s:3:"Ẕ";s:3:"ẕ";s:3:"ẞ";s:2:"ß";s:3:"Ạ";s:3:"ạ";s:3:"Ả";s:3:"ả";s:3:"Ấ";s:3:"ấ";s:3:"Ầ";s:3:"ầ";s:3:"Ẩ";s:3:"ẩ";s:3:"Ẫ";s:3:"ẫ";s:3:"Ậ";s:3:"ậ";s:3:"Ắ";s:3:"ắ";s:3:"Ằ";s:3:"ằ";s:3:"Ẳ";s:3:"ẳ";s:3:"Ẵ";s:3:"ẵ";s:3:"Ặ";s:3:"ặ";s:3:"Ẹ";s:3:"ẹ";s:3:"Ẻ";s:3:"ẻ";s:3:"Ẽ";s:3:"ẽ";s:3:"Ế";s:3:"ế";s:3:"Ề";s:3:"ề";s:3:"Ể";s:3:"ể";s:3:"Ễ";s:3:"ễ";s:3:"Ệ";s:3:"ệ";s:3:"Ỉ";s:3:"ỉ";s:3:"Ị";s:3:"ị";s:3:"Ọ";s:3:"ọ";s:3:"Ỏ";s:3:"ỏ";s:3:"Ố";s:3:"ố";s:3:"Ồ";s:3:"ồ";s:3:"Ổ";s:3:"ổ";s:3:"Ỗ";s:3:"ỗ";s:3:"Ộ";s:3:"ộ";s:3:"Ớ";s:3:"ớ";s:3:"Ờ";s:3:"ờ";s:3:"Ở";s:3:"ở";s:3:"Ỡ";s:3:"ỡ";s:3:"Ợ";s:3:"ợ";s:3:"Ụ";s:3:"ụ";s:3:"Ủ";s:3:"ủ";s:3:"Ứ";s:3:"ứ";s:3:"Ừ";s:3:"ừ";s:3:"Ử";s:3:"ử";s:3:"Ữ";s:3:"ữ";s:3:"Ự";s:3:"ự";s:3:"Ỳ";s:3:"ỳ";s:3:"Ỵ";s:3:"ỵ";s:3:"Ỷ";s:3:"ỷ";s:3:"Ỹ";s:3:"ỹ";s:3:"Ỻ";s:3:"ỻ";s:3:"Ỽ";s:3:"ỽ";s:3:"Ỿ";s:3:"ỿ";s:3:"Ἀ";s:3:"ἀ";s:3:"Ἁ";s:3:"ἁ";s:3:"Ἂ";s:3:"ἂ";s:3:"Ἃ";s:3:"ἃ";s:3:"Ἄ";s:3:"ἄ";s:3:"Ἅ";s:3:"ἅ";s:3:"Ἆ";s:3:"ἆ";s:3:"Ἇ";s:3:"ἇ";s:3:"Ἐ";s:3:"ἐ";s:3:"Ἑ";s:3:"ἑ";s:3:"Ἒ";s:3:"ἒ";s:3:"Ἓ";s:3:"ἓ";s:3:"Ἔ";s:3:"ἔ";s:3:"Ἕ";s:3:"ἕ";s:3:"Ἠ";s:3:"ἠ";s:3:"Ἡ";s:3:"ἡ";s:3:"Ἢ";s:3:"ἢ";s:3:"Ἣ";s:3:"ἣ";s:3:"Ἤ";s:3:"ἤ";s:3:"Ἥ";s:3:"ἥ";s:3:"Ἦ";s:3:"ἦ";s:3:"Ἧ";s:3:"ἧ";s:3:"Ἰ";s:3:"ἰ";s:3:"Ἱ";s:3:"ἱ";s:3:"Ἲ";s:3:"ἲ";s:3:"Ἳ";s:3:"ἳ";s:3:"Ἴ";s:3:"ἴ";s:3:"Ἵ";s:3:"ἵ";s:3:"Ἶ";s:3:"ἶ";s:3:"Ἷ";s:3:"ἷ";s:3:"Ὀ";s:3:"ὀ";s:3:"Ὁ";s:3:"ὁ";s:3:"Ὂ";s:3:"ὂ";s:3:"Ὃ";s:3:"ὃ";s:3:"Ὄ";s:3:"ὄ";s:3:"Ὅ";s:3:"ὅ";s:3:"Ὑ";s:3:"ὑ";s:3:"Ὓ";s:3:"ὓ";s:3:"Ὕ";s:3:"ὕ";s:3:"Ὗ";s:3:"ὗ";s:3:"Ὠ";s:3:"ὠ";s:3:"Ὡ";s:3:"ὡ";s:3:"Ὢ";s:3:"ὢ";s:3:"Ὣ";s:3:"ὣ";s:3:"Ὤ";s:3:"ὤ";s:3:"Ὥ";s:3:"ὥ";s:3:"Ὦ";s:3:"ὦ";s:3:"Ὧ";s:3:"ὧ";s:3:"ᾈ";s:3:"ᾀ";s:3:"ᾉ";s:3:"ᾁ";s:3:"ᾊ";s:3:"ᾂ";s:3:"ᾋ";s:3:"ᾃ";s:3:"ᾌ";s:3:"ᾄ";s:3:"ᾍ";s:3:"ᾅ";s:3:"ᾎ";s:3:"ᾆ";s:3:"ᾏ";s:3:"ᾇ";s:3:"ᾘ";s:3:"ᾐ";s:3:"ᾙ";s:3:"ᾑ";s:3:"ᾚ";s:3:"ᾒ";s:3:"ᾛ";s:3:"ᾓ";s:3:"ᾜ";s:3:"ᾔ";s:3:"ᾝ";s:3:"ᾕ";s:3:"ᾞ";s:3:"ᾖ";s:3:"ᾟ";s:3:"ᾗ";s:3:"ᾨ";s:3:"ᾠ";s:3:"ᾩ";s:3:"ᾡ";s:3:"ᾪ";s:3:"ᾢ";s:3:"ᾫ";s:3:"ᾣ";s:3:"ᾬ";s:3:"ᾤ";s:3:"ᾭ";s:3:"ᾥ";s:3:"ᾮ";s:3:"ᾦ";s:3:"ᾯ";s:3:"ᾧ";s:3:"Ᾰ";s:3:"ᾰ";s:3:"Ᾱ";s:3:"ᾱ";s:3:"Ὰ";s:3:"ὰ";s:3:"Ά";s:3:"ά";s:3:"ᾼ";s:3:"ᾳ";s:3:"Ὲ";s:3:"ὲ";s:3:"Έ";s:3:"έ";s:3:"Ὴ";s:3:"ὴ";s:3:"Ή";s:3:"ή";s:3:"ῌ";s:3:"ῃ";s:3:"Ῐ";s:3:"ῐ";s:3:"Ῑ";s:3:"ῑ";s:3:"Ὶ";s:3:"ὶ";s:3:"Ί";s:3:"ί";s:3:"Ῠ";s:3:"ῠ";s:3:"Ῡ";s:3:"ῡ";s:3:"Ὺ";s:3:"ὺ";s:3:"Ύ";s:3:"ύ";s:3:"Ῥ";s:3:"ῥ";s:3:"Ὸ";s:3:"ὸ";s:3:"Ό";s:3:"ό";s:3:"Ὼ";s:3:"ὼ";s:3:"Ώ";s:3:"ώ";s:3:"ῼ";s:3:"ῳ";s:3:"Ω";s:2:"ω";s:3:"K";s:1:"k";s:3:"Å";s:2:"å";s:3:"Ⅎ";s:3:"ⅎ";s:3:"Ⅰ";s:3:"ⅰ";s:3:"Ⅱ";s:3:"ⅱ";s:3:"Ⅲ";s:3:"ⅲ";s:3:"Ⅳ";s:3:"ⅳ";s:3:"Ⅴ";s:3:"ⅴ";s:3:"Ⅵ";s:3:"ⅵ";s:3:"Ⅶ";s:3:"ⅶ";s:3:"Ⅷ";s:3:"ⅷ";s:3:"Ⅸ";s:3:"ⅸ";s:3:"Ⅹ";s:3:"ⅹ";s:3:"Ⅺ";s:3:"ⅺ";s:3:"Ⅻ";s:3:"ⅻ";s:3:"Ⅼ";s:3:"ⅼ";s:3:"Ⅽ";s:3:"ⅽ";s:3:"Ⅾ";s:3:"ⅾ";s:3:"Ⅿ";s:3:"ⅿ";s:3:"Ↄ";s:3:"ↄ";s:3:"Ⓐ";s:3:"ⓐ";s:3:"Ⓑ";s:3:"ⓑ";s:3:"Ⓒ";s:3:"ⓒ";s:3:"Ⓓ";s:3:"ⓓ";s:3:"Ⓔ";s:3:"ⓔ";s:3:"Ⓕ";s:3:"ⓕ";s:3:"Ⓖ";s:3:"ⓖ";s:3:"Ⓗ";s:3:"ⓗ";s:3:"Ⓘ";s:3:"ⓘ";s:3:"Ⓙ";s:3:"ⓙ";s:3:"Ⓚ";s:3:"ⓚ";s:3:"Ⓛ";s:3:"ⓛ";s:3:"Ⓜ";s:3:"ⓜ";s:3:"Ⓝ";s:3:"ⓝ";s:3:"Ⓞ";s:3:"ⓞ";s:3:"Ⓟ";s:3:"ⓟ";s:3:"Ⓠ";s:3:"ⓠ";s:3:"Ⓡ";s:3:"ⓡ";s:3:"Ⓢ";s:3:"ⓢ";s:3:"Ⓣ";s:3:"ⓣ";s:3:"Ⓤ";s:3:"ⓤ";s:3:"Ⓥ";s:3:"ⓥ";s:3:"Ⓦ";s:3:"ⓦ";s:3:"Ⓧ";s:3:"ⓧ";s:3:"Ⓨ";s:3:"ⓨ";s:3:"Ⓩ";s:3:"ⓩ";s:3:"Ⰰ";s:3:"ⰰ";s:3:"Ⰱ";s:3:"ⰱ";s:3:"Ⰲ";s:3:"ⰲ";s:3:"Ⰳ";s:3:"ⰳ";s:3:"Ⰴ";s:3:"ⰴ";s:3:"Ⰵ";s:3:"ⰵ";s:3:"Ⰶ";s:3:"ⰶ";s:3:"Ⰷ";s:3:"ⰷ";s:3:"Ⰸ";s:3:"ⰸ";s:3:"Ⰹ";s:3:"ⰹ";s:3:"Ⰺ";s:3:"ⰺ";s:3:"Ⰻ";s:3:"ⰻ";s:3:"Ⰼ";s:3:"ⰼ";s:3:"Ⰽ";s:3:"ⰽ";s:3:"Ⰾ";s:3:"ⰾ";s:3:"Ⰿ";s:3:"ⰿ";s:3:"Ⱀ";s:3:"ⱀ";s:3:"Ⱁ";s:3:"ⱁ";s:3:"Ⱂ";s:3:"ⱂ";s:3:"Ⱃ";s:3:"ⱃ";s:3:"Ⱄ";s:3:"ⱄ";s:3:"Ⱅ";s:3:"ⱅ";s:3:"Ⱆ";s:3:"ⱆ";s:3:"Ⱇ";s:3:"ⱇ";s:3:"Ⱈ";s:3:"ⱈ";s:3:"Ⱉ";s:3:"ⱉ";s:3:"Ⱊ";s:3:"ⱊ";s:3:"Ⱋ";s:3:"ⱋ";s:3:"Ⱌ";s:3:"ⱌ";s:3:"Ⱍ";s:3:"ⱍ";s:3:"Ⱎ";s:3:"ⱎ";s:3:"Ⱏ";s:3:"ⱏ";s:3:"Ⱐ";s:3:"ⱐ";s:3:"Ⱑ";s:3:"ⱑ";s:3:"Ⱒ";s:3:"ⱒ";s:3:"Ⱓ";s:3:"ⱓ";s:3:"Ⱔ";s:3:"ⱔ";s:3:"Ⱕ";s:3:"ⱕ";s:3:"Ⱖ";s:3:"ⱖ";s:3:"Ⱗ";s:3:"ⱗ";s:3:"Ⱘ";s:3:"ⱘ";s:3:"Ⱙ";s:3:"ⱙ";s:3:"Ⱚ";s:3:"ⱚ";s:3:"Ⱛ";s:3:"ⱛ";s:3:"Ⱜ";s:3:"ⱜ";s:3:"Ⱝ";s:3:"ⱝ";s:3:"Ⱞ";s:3:"ⱞ";s:3:"Ⱡ";s:3:"ⱡ";s:3:"Ɫ";s:2:"ɫ";s:3:"Ᵽ";s:3:"ᵽ";s:3:"Ɽ";s:2:"ɽ";s:3:"Ⱨ";s:3:"ⱨ";s:3:"Ⱪ";s:3:"ⱪ";s:3:"Ⱬ";s:3:"ⱬ";s:3:"Ɑ";s:2:"ɑ";s:3:"Ɱ";s:2:"ɱ";s:3:"Ɐ";s:2:"ɐ";s:3:"Ɒ";s:2:"ɒ";s:3:"Ⱳ";s:3:"ⱳ";s:3:"Ⱶ";s:3:"ⱶ";s:3:"Ȿ";s:2:"ȿ";s:3:"Ɀ";s:2:"ɀ";s:3:"Ⲁ";s:3:"ⲁ";s:3:"Ⲃ";s:3:"ⲃ";s:3:"Ⲅ";s:3:"ⲅ";s:3:"Ⲇ";s:3:"ⲇ";s:3:"Ⲉ";s:3:"ⲉ";s:3:"Ⲋ";s:3:"ⲋ";s:3:"Ⲍ";s:3:"ⲍ";s:3:"Ⲏ";s:3:"ⲏ";s:3:"Ⲑ";s:3:"ⲑ";s:3:"Ⲓ";s:3:"ⲓ";s:3:"Ⲕ";s:3:"ⲕ";s:3:"Ⲗ";s:3:"ⲗ";s:3:"Ⲙ";s:3:"ⲙ";s:3:"Ⲛ";s:3:"ⲛ";s:3:"Ⲝ";s:3:"ⲝ";s:3:"Ⲟ";s:3:"ⲟ";s:3:"Ⲡ";s:3:"ⲡ";s:3:"Ⲣ";s:3:"ⲣ";s:3:"Ⲥ";s:3:"ⲥ";s:3:"Ⲧ";s:3:"ⲧ";s:3:"Ⲩ";s:3:"ⲩ";s:3:"Ⲫ";s:3:"ⲫ";s:3:"Ⲭ";s:3:"ⲭ";s:3:"Ⲯ";s:3:"ⲯ";s:3:"Ⲱ";s:3:"ⲱ";s:3:"Ⲳ";s:3:"ⲳ";s:3:"Ⲵ";s:3:"ⲵ";s:3:"Ⲷ";s:3:"ⲷ";s:3:"Ⲹ";s:3:"ⲹ";s:3:"Ⲻ";s:3:"ⲻ";s:3:"Ⲽ";s:3:"ⲽ";s:3:"Ⲿ";s:3:"ⲿ";s:3:"Ⳁ";s:3:"ⳁ";s:3:"Ⳃ";s:3:"ⳃ";s:3:"Ⳅ";s:3:"ⳅ";s:3:"Ⳇ";s:3:"ⳇ";s:3:"Ⳉ";s:3:"ⳉ";s:3:"Ⳋ";s:3:"ⳋ";s:3:"Ⳍ";s:3:"ⳍ";s:3:"Ⳏ";s:3:"ⳏ";s:3:"Ⳑ";s:3:"ⳑ";s:3:"Ⳓ";s:3:"ⳓ";s:3:"Ⳕ";s:3:"ⳕ";s:3:"Ⳗ";s:3:"ⳗ";s:3:"Ⳙ";s:3:"ⳙ";s:3:"Ⳛ";s:3:"ⳛ";s:3:"Ⳝ";s:3:"ⳝ";s:3:"Ⳟ";s:3:"ⳟ";s:3:"Ⳡ";s:3:"ⳡ";s:3:"Ⳣ";s:3:"ⳣ";s:3:"Ⳬ";s:3:"ⳬ";s:3:"Ⳮ";s:3:"ⳮ";s:3:"Ⳳ";s:3:"ⳳ";s:3:"Ꙁ";s:3:"ꙁ";s:3:"Ꙃ";s:3:"ꙃ";s:3:"Ꙅ";s:3:"ꙅ";s:3:"Ꙇ";s:3:"ꙇ";s:3:"Ꙉ";s:3:"ꙉ";s:3:"Ꙋ";s:3:"ꙋ";s:3:"Ꙍ";s:3:"ꙍ";s:3:"Ꙏ";s:3:"ꙏ";s:3:"Ꙑ";s:3:"ꙑ";s:3:"Ꙓ";s:3:"ꙓ";s:3:"Ꙕ";s:3:"ꙕ";s:3:"Ꙗ";s:3:"ꙗ";s:3:"Ꙙ";s:3:"ꙙ";s:3:"Ꙛ";s:3:"ꙛ";s:3:"Ꙝ";s:3:"ꙝ";s:3:"Ꙟ";s:3:"ꙟ";s:3:"Ꙡ";s:3:"ꙡ";s:3:"Ꙣ";s:3:"ꙣ";s:3:"Ꙥ";s:3:"ꙥ";s:3:"Ꙧ";s:3:"ꙧ";s:3:"Ꙩ";s:3:"ꙩ";s:3:"Ꙫ";s:3:"ꙫ";s:3:"Ꙭ";s:3:"ꙭ";s:3:"Ꚁ";s:3:"ꚁ";s:3:"Ꚃ";s:3:"ꚃ";s:3:"Ꚅ";s:3:"ꚅ";s:3:"Ꚇ";s:3:"ꚇ";s:3:"Ꚉ";s:3:"ꚉ";s:3:"Ꚋ";s:3:"ꚋ";s:3:"Ꚍ";s:3:"ꚍ";s:3:"Ꚏ";s:3:"ꚏ";s:3:"Ꚑ";s:3:"ꚑ";s:3:"Ꚓ";s:3:"ꚓ";s:3:"Ꚕ";s:3:"ꚕ";s:3:"Ꚗ";s:3:"ꚗ";s:3:"Ꚙ";s:3:"ꚙ";s:3:"Ꚛ";s:3:"ꚛ";s:3:"Ꜣ";s:3:"ꜣ";s:3:"Ꜥ";s:3:"ꜥ";s:3:"Ꜧ";s:3:"ꜧ";s:3:"Ꜩ";s:3:"ꜩ";s:3:"Ꜫ";s:3:"ꜫ";s:3:"Ꜭ";s:3:"ꜭ";s:3:"Ꜯ";s:3:"ꜯ";s:3:"Ꜳ";s:3:"ꜳ";s:3:"Ꜵ";s:3:"ꜵ";s:3:"Ꜷ";s:3:"ꜷ";s:3:"Ꜹ";s:3:"ꜹ";s:3:"Ꜻ";s:3:"ꜻ";s:3:"Ꜽ";s:3:"ꜽ";s:3:"Ꜿ";s:3:"ꜿ";s:3:"Ꝁ";s:3:"ꝁ";s:3:"Ꝃ";s:3:"ꝃ";s:3:"Ꝅ";s:3:"ꝅ";s:3:"Ꝇ";s:3:"ꝇ";s:3:"Ꝉ";s:3:"ꝉ";s:3:"Ꝋ";s:3:"ꝋ";s:3:"Ꝍ";s:3:"ꝍ";s:3:"Ꝏ";s:3:"ꝏ";s:3:"Ꝑ";s:3:"ꝑ";s:3:"Ꝓ";s:3:"ꝓ";s:3:"Ꝕ";s:3:"ꝕ";s:3:"Ꝗ";s:3:"ꝗ";s:3:"Ꝙ";s:3:"ꝙ";s:3:"Ꝛ";s:3:"ꝛ";s:3:"Ꝝ";s:3:"ꝝ";s:3:"Ꝟ";s:3:"ꝟ";s:3:"Ꝡ";s:3:"ꝡ";s:3:"Ꝣ";s:3:"ꝣ";s:3:"Ꝥ";s:3:"ꝥ";s:3:"Ꝧ";s:3:"ꝧ";s:3:"Ꝩ";s:3:"ꝩ";s:3:"Ꝫ";s:3:"ꝫ";s:3:"Ꝭ";s:3:"ꝭ";s:3:"Ꝯ";s:3:"ꝯ";s:3:"Ꝺ";s:3:"ꝺ";s:3:"Ꝼ";s:3:"ꝼ";s:3:"Ᵹ";s:3:"ᵹ";s:3:"Ꝿ";s:3:"ꝿ";s:3:"Ꞁ";s:3:"ꞁ";s:3:"Ꞃ";s:3:"ꞃ";s:3:"Ꞅ";s:3:"ꞅ";s:3:"Ꞇ";s:3:"ꞇ";s:3:"Ꞌ";s:3:"ꞌ";s:3:"Ɥ";s:2:"ɥ";s:3:"Ꞑ";s:3:"ꞑ";s:3:"Ꞓ";s:3:"ꞓ";s:3:"Ꞗ";s:3:"ꞗ";s:3:"Ꞙ";s:3:"ꞙ";s:3:"Ꞛ";s:3:"ꞛ";s:3:"Ꞝ";s:3:"ꞝ";s:3:"Ꞟ";s:3:"ꞟ";s:3:"Ꞡ";s:3:"ꞡ";s:3:"Ꞣ";s:3:"ꞣ";s:3:"Ꞥ";s:3:"ꞥ";s:3:"Ꞧ";s:3:"ꞧ";s:3:"Ꞩ";s:3:"ꞩ";s:3:"Ɦ";s:2:"ɦ";s:3:"Ɜ";s:2:"ɜ";s:3:"Ɡ";s:2:"ɡ";s:3:"Ɬ";s:2:"ɬ";s:3:"Ʞ";s:2:"ʞ";s:3:"Ʇ";s:2:"ʇ";s:3:"A";s:3:"a";s:3:"B";s:3:"b";s:3:"C";s:3:"c";s:3:"D";s:3:"d";s:3:"E";s:3:"e";s:3:"F";s:3:"f";s:3:"G";s:3:"g";s:3:"H";s:3:"h";s:3:"I";s:3:"i";s:3:"J";s:3:"j";s:3:"K";s:3:"k";s:3:"L";s:3:"l";s:3:"M";s:3:"m";s:3:"N";s:3:"n";s:3:"O";s:3:"o";s:3:"P";s:3:"p";s:3:"Q";s:3:"q";s:3:"R";s:3:"r";s:3:"S";s:3:"s";s:3:"T";s:3:"t";s:3:"U";s:3:"u";s:3:"V";s:3:"v";s:3:"W";s:3:"w";s:3:"X";s:3:"x";s:3:"Y";s:3:"y";s:3:"Z";s:3:"z";s:4:"𐐀";s:4:"𐐨";s:4:"𐐁";s:4:"𐐩";s:4:"𐐂";s:4:"𐐪";s:4:"𐐃";s:4:"𐐫";s:4:"𐐄";s:4:"𐐬";s:4:"𐐅";s:4:"𐐭";s:4:"𐐆";s:4:"𐐮";s:4:"𐐇";s:4:"𐐯";s:4:"𐐈";s:4:"𐐰";s:4:"𐐉";s:4:"𐐱";s:4:"𐐊";s:4:"𐐲";s:4:"𐐋";s:4:"𐐳";s:4:"𐐌";s:4:"𐐴";s:4:"𐐍";s:4:"𐐵";s:4:"𐐎";s:4:"𐐶";s:4:"𐐏";s:4:"𐐷";s:4:"𐐐";s:4:"𐐸";s:4:"𐐑";s:4:"𐐹";s:4:"𐐒";s:4:"𐐺";s:4:"𐐓";s:4:"𐐻";s:4:"𐐔";s:4:"𐐼";s:4:"𐐕";s:4:"𐐽";s:4:"𐐖";s:4:"𐐾";s:4:"𐐗";s:4:"𐐿";s:4:"𐐘";s:4:"𐑀";s:4:"𐐙";s:4:"𐑁";s:4:"𐐚";s:4:"𐑂";s:4:"𐐛";s:4:"𐑃";s:4:"𐐜";s:4:"𐑄";s:4:"𐐝";s:4:"𐑅";s:4:"𐐞";s:4:"𐑆";s:4:"𐐟";s:4:"𐑇";s:4:"𐐠";s:4:"𐑈";s:4:"𐐡";s:4:"𐑉";s:4:"𐐢";s:4:"𐑊";s:4:"𐐣";s:4:"𐑋";s:4:"𐐤";s:4:"𐑌";s:4:"𐐥";s:4:"𐑍";s:4:"𐐦";s:4:"𐑎";s:4:"𐐧";s:4:"𐑏";s:4:"𑢠";s:4:"𑣀";s:4:"𑢡";s:4:"𑣁";s:4:"𑢢";s:4:"𑣂";s:4:"𑢣";s:4:"𑣃";s:4:"𑢤";s:4:"𑣄";s:4:"𑢥";s:4:"𑣅";s:4:"𑢦";s:4:"𑣆";s:4:"𑢧";s:4:"𑣇";s:4:"𑢨";s:4:"𑣈";s:4:"𑢩";s:4:"𑣉";s:4:"𑢪";s:4:"𑣊";s:4:"𑢫";s:4:"𑣋";s:4:"𑢬";s:4:"𑣌";s:4:"𑢭";s:4:"𑣍";s:4:"𑢮";s:4:"𑣎";s:4:"𑢯";s:4:"𑣏";s:4:"𑢰";s:4:"𑣐";s:4:"𑢱";s:4:"𑣑";s:4:"𑢲";s:4:"𑣒";s:4:"𑢳";s:4:"𑣓";s:4:"𑢴";s:4:"𑣔";s:4:"𑢵";s:4:"𑣕";s:4:"𑢶";s:4:"𑣖";s:4:"𑢷";s:4:"𑣗";s:4:"𑢸";s:4:"𑣘";s:4:"𑢹";s:4:"𑣙";s:4:"𑢺";s:4:"𑣚";s:4:"𑢻";s:4:"𑣛";s:4:"𑢼";s:4:"𑣜";s:4:"𑢽";s:4:"𑣝";s:4:"𑢾";s:4:"𑣞";s:4:"𑢿";s:4:"𑣟";}
 
vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php ADDED
@@ -0,0 +1,1109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ static $data = array (
4
+ 'a' => 'A',
5
+ 'b' => 'B',
6
+ 'c' => 'C',
7
+ 'd' => 'D',
8
+ 'e' => 'E',
9
+ 'f' => 'F',
10
+ 'g' => 'G',
11
+ 'h' => 'H',
12
+ 'i' => 'I',
13
+ 'j' => 'J',
14
+ 'k' => 'K',
15
+ 'l' => 'L',
16
+ 'm' => 'M',
17
+ 'n' => 'N',
18
+ 'o' => 'O',
19
+ 'p' => 'P',
20
+ 'q' => 'Q',
21
+ 'r' => 'R',
22
+ 's' => 'S',
23
+ 't' => 'T',
24
+ 'u' => 'U',
25
+ 'v' => 'V',
26
+ 'w' => 'W',
27
+ 'x' => 'X',
28
+ 'y' => 'Y',
29
+ 'z' => 'Z',
30
+ 'µ' => 'Μ',
31
+ 'à' => 'À',
32
+ 'á' => 'Á',
33
+ 'â' => 'Â',
34
+ 'ã' => 'Ã',
35
+ 'ä' => 'Ä',
36
+ 'å' => 'Å',
37
+ 'æ' => 'Æ',
38
+ 'ç' => 'Ç',
39
+ 'è' => 'È',
40
+ 'é' => 'É',
41
+ 'ê' => 'Ê',
42
+ 'ë' => 'Ë',
43
+ 'ì' => 'Ì',
44
+ 'í' => 'Í',
45
+ 'î' => 'Î',
46
+ 'ï' => 'Ï',
47
+ 'ð' => 'Ð',
48
+ 'ñ' => 'Ñ',
49
+ 'ò' => 'Ò',
50
+ 'ó' => 'Ó',
51
+ 'ô' => 'Ô',
52
+ 'õ' => 'Õ',
53
+ 'ö' => 'Ö',
54
+ 'ø' => 'Ø',
55
+ 'ù' => 'Ù',
56
+ 'ú' => 'Ú',
57
+ 'û' => 'Û',
58
+ 'ü' => 'Ü',
59
+ 'ý' => 'Ý',
60
+ 'þ' => 'Þ',
61
+ 'ÿ' => 'Ÿ',
62
+ 'ā' => 'Ā',
63
+ 'ă' => 'Ă',
64
+ 'ą' => 'Ą',
65
+ 'ć' => 'Ć',
66
+ 'ĉ' => 'Ĉ',
67
+ 'ċ' => 'Ċ',
68
+ 'č' => 'Č',
69
+ 'ď' => 'Ď',
70
+ 'đ' => 'Đ',
71
+ 'ē' => 'Ē',
72
+ 'ĕ' => 'Ĕ',
73
+ 'ė' => 'Ė',
74
+ 'ę' => 'Ę',
75
+ 'ě' => 'Ě',
76
+ 'ĝ' => 'Ĝ',
77
+ 'ğ' => 'Ğ',
78
+ 'ġ' => 'Ġ',
79
+ 'ģ' => 'Ģ',
80
+ 'ĥ' => 'Ĥ',
81
+ 'ħ' => 'Ħ',
82
+ 'ĩ' => 'Ĩ',
83
+ 'ī' => 'Ī',
84
+ 'ĭ' => 'Ĭ',
85
+ 'į' => 'Į',
86
+ 'ı' => 'I',
87
+ 'ij' => 'IJ',
88
+ 'ĵ' => 'Ĵ',
89
+ 'ķ' => 'Ķ',
90
+ 'ĺ' => 'Ĺ',
91
+ 'ļ' => 'Ļ',
92
+ 'ľ' => 'Ľ',
93
+ 'ŀ' => 'Ŀ',
94
+ 'ł' => 'Ł',
95
+ 'ń' => 'Ń',
96
+ 'ņ' => 'Ņ',
97
+ 'ň' => 'Ň',
98
+ 'ŋ' => 'Ŋ',
99
+ 'ō' => 'Ō',
100
+ 'ŏ' => 'Ŏ',
101
+ 'ő' => 'Ő',
102
+ 'œ' => 'Œ',
103
+ 'ŕ' => 'Ŕ',
104
+ 'ŗ' => 'Ŗ',
105
+ 'ř' => 'Ř',
106
+ 'ś' => 'Ś',
107
+ 'ŝ' => 'Ŝ',
108
+ 'ş' => 'Ş',
109
+ 'š' => 'Š',
110
+ 'ţ' => 'Ţ',
111
+ 'ť' => 'Ť',
112
+ 'ŧ' => 'Ŧ',
113
+ 'ũ' => 'Ũ',
114
+ 'ū' => 'Ū',
115
+ 'ŭ' => 'Ŭ',
116
+ 'ů' => 'Ů',
117
+ 'ű' => 'Ű',
118
+ 'ų' => 'Ų',
119
+ 'ŵ' => 'Ŵ',
120
+ 'ŷ' => 'Ŷ',
121
+ 'ź' => 'Ź',
122
+ 'ż' => 'Ż',
123
+ 'ž' => 'Ž',
124
+ 'ſ' => 'S',
125
+ 'ƀ' => 'Ƀ',
126
+ 'ƃ' => 'Ƃ',
127
+ 'ƅ' => 'Ƅ',
128
+ 'ƈ' => 'Ƈ',
129
+ 'ƌ' => 'Ƌ',
130
+ 'ƒ' => 'Ƒ',
131
+ 'ƕ' => 'Ƕ',
132
+ 'ƙ' => 'Ƙ',
133
+ 'ƚ' => 'Ƚ',
134
+ 'ƞ' => 'Ƞ',
135
+ 'ơ' => 'Ơ',
136
+ 'ƣ' => 'Ƣ',
137
+ 'ƥ' => 'Ƥ',
138
+ 'ƨ' => 'Ƨ',
139
+ 'ƭ' => 'Ƭ',
140
+ 'ư' => 'Ư',
141
+ 'ƴ' => 'Ƴ',
142
+ 'ƶ' => 'Ƶ',
143
+ 'ƹ' => 'Ƹ',
144
+ 'ƽ' => 'Ƽ',
145
+ 'ƿ' => 'Ƿ',
146
+ 'Dž' => 'DŽ',
147
+ 'dž' => 'DŽ',
148
+ 'Lj' => 'LJ',
149
+ 'lj' => 'LJ',
150
+ 'Nj' => 'NJ',
151
+ 'nj' => 'NJ',
152
+ 'ǎ' => 'Ǎ',
153
+ 'ǐ' => 'Ǐ',
154
+ 'ǒ' => 'Ǒ',
155
+ 'ǔ' => 'Ǔ',
156
+ 'ǖ' => 'Ǖ',
157
+ 'ǘ' => 'Ǘ',
158
+ 'ǚ' => 'Ǚ',
159
+ 'ǜ' => 'Ǜ',
160
+ 'ǝ' => 'Ǝ',
161
+ 'ǟ' => 'Ǟ',
162
+ 'ǡ' => 'Ǡ',
163
+ 'ǣ' => 'Ǣ',
164
+ 'ǥ' => 'Ǥ',
165
+ 'ǧ' => 'Ǧ',
166
+ 'ǩ' => 'Ǩ',
167
+ 'ǫ' => 'Ǫ',
168
+ 'ǭ' => 'Ǭ',
169
+ 'ǯ' => 'Ǯ',
170
+ 'Dz' => 'DZ',
171
+ 'dz' => 'DZ',
172
+ 'ǵ' => 'Ǵ',
173
+ 'ǹ' => 'Ǹ',
174
+ 'ǻ' => 'Ǻ',
175
+ 'ǽ' => 'Ǽ',
176
+ 'ǿ' => 'Ǿ',
177
+ 'ȁ' => 'Ȁ',
178
+ 'ȃ' => 'Ȃ',
179
+ 'ȅ' => 'Ȅ',
180
+ 'ȇ' => 'Ȇ',
181
+ 'ȉ' => 'Ȉ',
182
+ 'ȋ' => 'Ȋ',
183
+ 'ȍ' => 'Ȍ',
184
+ 'ȏ' => 'Ȏ',
185
+ 'ȑ' => 'Ȑ',
186
+ 'ȓ' => 'Ȓ',
187
+ 'ȕ' => 'Ȕ',
188
+ 'ȗ' => 'Ȗ',
189
+ 'ș' => 'Ș',
190
+ 'ț' => 'Ț',
191
+ 'ȝ' => 'Ȝ',
192
+ 'ȟ' => 'Ȟ',
193
+ 'ȣ' => 'Ȣ',
194
+ 'ȥ' => 'Ȥ',
195
+ 'ȧ' => 'Ȧ',
196
+ 'ȩ' => 'Ȩ',
197
+ 'ȫ' => 'Ȫ',
198
+ 'ȭ' => 'Ȭ',
199
+ 'ȯ' => 'Ȯ',
200
+ 'ȱ' => 'Ȱ',
201
+ 'ȳ' => 'Ȳ',
202
+ 'ȼ' => 'Ȼ',
203
+ 'ȿ' => 'Ȿ',
204
+ 'ɀ' => 'Ɀ',
205
+ 'ɂ' => 'Ɂ',
206
+ 'ɇ' => 'Ɇ',
207
+ 'ɉ' => 'Ɉ',
208
+ 'ɋ' => 'Ɋ',
209
+ 'ɍ' => 'Ɍ',
210
+ 'ɏ' => 'Ɏ',
211
+ 'ɐ' => 'Ɐ',
212
+ 'ɑ' => 'Ɑ',
213
+ 'ɒ' => 'Ɒ',
214
+ 'ɓ' => 'Ɓ',
215
+ 'ɔ' => 'Ɔ',
216
+ 'ɖ' => 'Ɖ',
217
+ 'ɗ' => 'Ɗ',
218
+ 'ə' => 'Ə',
219
+ 'ɛ' => 'Ɛ',
220
+ 'ɜ' => 'Ɜ',
221
+ 'ɠ' => 'Ɠ',
222
+ 'ɡ' => 'Ɡ',
223
+ 'ɣ' => 'Ɣ',
224
+ 'ɥ' => 'Ɥ',
225
+ 'ɦ' => 'Ɦ',
226
+ 'ɨ' => 'Ɨ',
227
+ 'ɩ' => 'Ɩ',
228
+ 'ɫ' => 'Ɫ',
229
+ 'ɬ' => 'Ɬ',
230
+ 'ɯ' => 'Ɯ',
231
+ 'ɱ' => 'Ɱ',
232
+ 'ɲ' => 'Ɲ',
233
+ 'ɵ' => 'Ɵ',
234
+ 'ɽ' => 'Ɽ',
235
+ 'ʀ' => 'Ʀ',
236
+ 'ʃ' => 'Ʃ',
237
+ 'ʇ' => 'Ʇ',
238
+ 'ʈ' => 'Ʈ',
239
+ 'ʉ' => 'Ʉ',
240
+ 'ʊ' => 'Ʊ',
241
+ 'ʋ' => 'Ʋ',
242
+ 'ʌ' => 'Ʌ',
243
+ 'ʒ' => 'Ʒ',
244
+ 'ʞ' => 'Ʞ',
245
+ 'ͅ' => 'Ι',
246
+ 'ͱ' => 'Ͱ',
247
+ 'ͳ' => 'Ͳ',
248
+ 'ͷ' => 'Ͷ',
249
+ 'ͻ' => 'Ͻ',
250
+ 'ͼ' => 'Ͼ',
251
+ 'ͽ' => 'Ͽ',
252
+ 'ά' => 'Ά',
253
+ 'έ' => 'Έ',
254
+ 'ή' => 'Ή',
255
+ 'ί' => 'Ί',
256
+ 'α' => 'Α',
257
+ 'β' => 'Β',
258
+ 'γ' => 'Γ',
259
+ 'δ' => 'Δ',
260
+ 'ε' => 'Ε',
261
+ 'ζ' => 'Ζ',
262
+ 'η' => 'Η',
263
+ 'θ' => 'Θ',
264
+ 'ι' => 'Ι',
265
+ 'κ' => 'Κ',
266
+ 'λ' => 'Λ',
267
+ 'μ' => 'Μ',
268
+ 'ν' => 'Ν',
269
+ 'ξ' => 'Ξ',
270
+ 'ο' => 'Ο',
271
+ 'π' => 'Π',
272
+ 'ρ' => 'Ρ',
273
+ 'ς' => 'Σ',
274
+ 'σ' => 'Σ',
275
+ 'τ' => 'Τ',
276
+ 'υ' => 'Υ',
277
+ 'φ' => 'Φ',
278
+ 'χ' => 'Χ',
279
+ 'ψ' => 'Ψ',
280
+ 'ω' => 'Ω',
281
+ 'ϊ' => 'Ϊ',
282
+ 'ϋ' => 'Ϋ',
283
+ 'ό' => 'Ό',
284
+ 'ύ' => 'Ύ',
285
+ 'ώ' => 'Ώ',
286
+ 'ϐ' => 'Β',
287
+ 'ϑ' => 'Θ',
288
+ 'ϕ' => 'Φ',
289
+ 'ϖ' => 'Π',
290
+ 'ϗ' => 'Ϗ',
291
+ 'ϙ' => 'Ϙ',
292
+ 'ϛ' => 'Ϛ',
293
+ 'ϝ' => 'Ϝ',
294
+ 'ϟ' => 'Ϟ',
295
+ 'ϡ' => 'Ϡ',
296
+ 'ϣ' => 'Ϣ',
297
+ 'ϥ' => 'Ϥ',
298
+ 'ϧ' => 'Ϧ',
299
+ 'ϩ' => 'Ϩ',
300
+ 'ϫ' => 'Ϫ',
301
+ 'ϭ' => 'Ϭ',
302
+ 'ϯ' => 'Ϯ',
303
+ 'ϰ' => 'Κ',
304
+ 'ϱ' => 'Ρ',
305
+ 'ϲ' => 'Ϲ',
306
+ 'ϳ' => 'Ϳ',
307
+ 'ϵ' => 'Ε',
308
+ 'ϸ' => 'Ϸ',
309
+ 'ϻ' => 'Ϻ',
310
+ 'а' => 'А',
311
+ 'б' => 'Б',
312
+ 'в' => 'В',
313
+ 'г' => 'Г',
314
+ 'д' => 'Д',
315
+ 'е' => 'Е',
316
+ 'ж' => 'Ж',
317
+ 'з' => 'З',
318
+ 'и' => 'И',
319
+ 'й' => 'Й',
320
+ 'к' => 'К',
321
+ 'л' => 'Л',
322
+ 'м' => 'М',
323
+ 'н' => 'Н',
324
+ 'о' => 'О',
325
+ 'п' => 'П',
326
+ 'р' => 'Р',
327
+ 'с' => 'С',
328
+ 'т' => 'Т',
329
+ 'у' => 'У',
330
+ 'ф' => 'Ф',
331
+ 'х' => 'Х',
332
+ 'ц' => 'Ц',
333
+ 'ч' => 'Ч',
334
+ 'ш' => 'Ш',
335
+ 'щ' => 'Щ',
336
+ 'ъ' => 'Ъ',
337
+ 'ы' => 'Ы',
338
+ 'ь' => 'Ь',
339
+ 'э' => 'Э',
340
+ 'ю' => 'Ю',
341
+ 'я' => 'Я',
342
+ 'ѐ' => 'Ѐ',
343
+ 'ё' => 'Ё',
344
+ 'ђ' => 'Ђ',
345
+ 'ѓ' => 'Ѓ',
346
+ 'є' => 'Є',
347
+ 'ѕ' => 'Ѕ',
348
+ 'і' => 'І',
349
+ 'ї' => 'Ї',
350
+ 'ј' => 'Ј',
351
+ 'љ' => 'Љ',
352
+ 'њ' => 'Њ',
353
+ 'ћ' => 'Ћ',
354
+ 'ќ' => 'Ќ',
355
+ 'ѝ' => 'Ѝ',
356
+ 'ў' => 'Ў',
357
+ 'џ' => 'Џ',
358
+ 'ѡ' => 'Ѡ',
359
+ 'ѣ' => 'Ѣ',
360
+ 'ѥ' => 'Ѥ',
361
+ 'ѧ' => 'Ѧ',
362
+ 'ѩ' => 'Ѩ',
363
+ 'ѫ' => 'Ѫ',
364
+ 'ѭ' => 'Ѭ',
365
+ 'ѯ' => 'Ѯ',
366
+ 'ѱ' => 'Ѱ',
367
+ 'ѳ' => 'Ѳ',
368
+ 'ѵ' => 'Ѵ',
369
+ 'ѷ' => 'Ѷ',
370
+ 'ѹ' => 'Ѹ',
371
+ 'ѻ' => 'Ѻ',
372
+ 'ѽ' => 'Ѽ',
373
+ 'ѿ' => 'Ѿ',
374
+ 'ҁ' => 'Ҁ',
375
+ 'ҋ' => 'Ҋ',
376
+ 'ҍ' => 'Ҍ',
377
+ 'ҏ' => 'Ҏ',
378
+ 'ґ' => 'Ґ',
379
+ 'ғ' => 'Ғ',
380
+ 'ҕ' => 'Ҕ',
381
+ 'җ' => 'Җ',
382
+ 'ҙ' => 'Ҙ',
383
+ 'қ' => 'Қ',
384
+ 'ҝ' => 'Ҝ',
385
+ 'ҟ' => 'Ҟ',
386
+ 'ҡ' => 'Ҡ',
387
+ 'ң' => 'Ң',
388
+ 'ҥ' => 'Ҥ',
389
+ 'ҧ' => 'Ҧ',
390
+ 'ҩ' => 'Ҩ',
391
+ 'ҫ' => 'Ҫ',
392
+ 'ҭ' => 'Ҭ',
393
+ 'ү' => 'Ү',
394
+ 'ұ' => 'Ұ',
395
+ 'ҳ' => 'Ҳ',
396
+ 'ҵ' => 'Ҵ',
397
+ 'ҷ' => 'Ҷ',
398
+ 'ҹ' => 'Ҹ',
399
+ 'һ' => 'Һ',
400
+ 'ҽ' => 'Ҽ',
401
+ 'ҿ' => 'Ҿ',
402
+ 'ӂ' => 'Ӂ',
403
+ 'ӄ' => 'Ӄ',
404
+ 'ӆ' => 'Ӆ',
405
+ 'ӈ' => 'Ӈ',
406
+ 'ӊ' => 'Ӊ',
407
+ 'ӌ' => 'Ӌ',
408
+ 'ӎ' => 'Ӎ',
409
+ 'ӏ' => 'Ӏ',
410
+ 'ӑ' => 'Ӑ',
411
+ 'ӓ' => 'Ӓ',
412
+ 'ӕ' => 'Ӕ',
413
+ 'ӗ' => 'Ӗ',
414
+ 'ә' => 'Ә',
415
+ 'ӛ' => 'Ӛ',
416
+ 'ӝ' => 'Ӝ',
417
+ 'ӟ' => 'Ӟ',
418
+ 'ӡ' => 'Ӡ',
419
+ 'ӣ' => 'Ӣ',
420
+ 'ӥ' => 'Ӥ',
421
+ 'ӧ' => 'Ӧ',
422
+ 'ө' => 'Ө',
423
+ 'ӫ' => 'Ӫ',
424
+ 'ӭ' => 'Ӭ',
425
+ 'ӯ' => 'Ӯ',
426
+ 'ӱ' => 'Ӱ',
427
+ 'ӳ' => 'Ӳ',
428
+ 'ӵ' => 'Ӵ',
429
+ 'ӷ' => 'Ӷ',
430
+ 'ӹ' => 'Ӹ',
431
+ 'ӻ' => 'Ӻ',
432
+ 'ӽ' => 'Ӽ',
433
+ 'ӿ' => 'Ӿ',
434
+ 'ԁ' => 'Ԁ',
435
+ 'ԃ' => 'Ԃ',
436
+ 'ԅ' => 'Ԅ',
437
+ 'ԇ' => 'Ԇ',
438
+ 'ԉ' => 'Ԉ',
439
+ 'ԋ' => 'Ԋ',
440
+ 'ԍ' => 'Ԍ',
441
+ 'ԏ' => 'Ԏ',
442
+ 'ԑ' => 'Ԑ',
443
+ 'ԓ' => 'Ԓ',
444
+ 'ԕ' => 'Ԕ',
445
+ 'ԗ' => 'Ԗ',
446
+ 'ԙ' => 'Ԙ',
447
+ 'ԛ' => 'Ԛ',
448
+ 'ԝ' => 'Ԝ',
449
+ 'ԟ' => 'Ԟ',
450
+ 'ԡ' => 'Ԡ',
451
+ 'ԣ' => 'Ԣ',
452
+ 'ԥ' => 'Ԥ',
453
+ 'ԧ' => 'Ԧ',
454
+ 'ԩ' => 'Ԩ',
455
+ 'ԫ' => 'Ԫ',
456
+ 'ԭ' => 'Ԭ',
457
+ 'ԯ' => 'Ԯ',
458
+ 'ա' => 'Ա',
459
+ 'բ' => 'Բ',
460
+ 'գ' => 'Գ',
461
+ 'դ' => 'Դ',
462
+ 'ե' => 'Ե',
463
+ 'զ' => 'Զ',
464
+ 'է' => 'Է',
465
+ 'ը' => 'Ը',
466
+ 'թ' => 'Թ',
467
+ 'ժ' => 'Ժ',
468
+ 'ի' => 'Ի',
469
+ 'լ' => 'Լ',
470
+ 'խ' => 'Խ',
471
+ 'ծ' => 'Ծ',
472
+ 'կ' => 'Կ',
473
+ 'հ' => 'Հ',
474
+ 'ձ' => 'Ձ',
475
+ 'ղ' => 'Ղ',
476
+ 'ճ' => 'Ճ',
477
+ 'մ' => 'Մ',
478
+ 'յ' => 'Յ',
479
+ 'ն' => 'Ն',
480
+ 'շ' => 'Շ',
481
+ 'ո' => 'Ո',
482
+ 'չ' => 'Չ',
483
+ 'պ' => 'Պ',
484
+ 'ջ' => 'Ջ',
485
+ 'ռ' => 'Ռ',
486
+ 'ս' => 'Ս',
487
+ 'վ' => 'Վ',
488
+ 'տ' => 'Տ',
489
+ 'ր' => 'Ր',
490
+ 'ց' => 'Ց',
491
+ 'ւ' => 'Ւ',
492
+ 'փ' => 'Փ',
493
+ 'ք' => 'Ք',
494
+ 'օ' => 'Օ',
495
+ 'ֆ' => 'Ֆ',
496
+ 'ᵹ' => 'Ᵹ',
497
+ 'ᵽ' => 'Ᵽ',
498
+ 'ḁ' => 'Ḁ',
499
+ 'ḃ' => 'Ḃ',
500
+ 'ḅ' => 'Ḅ',
501
+ 'ḇ' => 'Ḇ',
502
+ 'ḉ' => 'Ḉ',
503
+ 'ḋ' => 'Ḋ',
504
+ 'ḍ' => 'Ḍ',
505
+ 'ḏ' => 'Ḏ',
506
+ 'ḑ' => 'Ḑ',
507
+ 'ḓ' => 'Ḓ',
508
+ 'ḕ' => 'Ḕ',
509
+ 'ḗ' => 'Ḗ',
510
+ 'ḙ' => 'Ḙ',
511
+ 'ḛ' => 'Ḛ',
512
+ 'ḝ' => 'Ḝ',
513
+ 'ḟ' => 'Ḟ',
514
+ 'ḡ' => 'Ḡ',
515
+ 'ḣ' => 'Ḣ',
516
+ 'ḥ' => 'Ḥ',
517
+ 'ḧ' => 'Ḧ',
518
+ 'ḩ' => 'Ḩ',
519
+ 'ḫ' => 'Ḫ',
520
+ 'ḭ' => 'Ḭ',
521
+ 'ḯ' => 'Ḯ',
522
+ 'ḱ' => 'Ḱ',
523
+ 'ḳ' => 'Ḳ',
524
+ 'ḵ' => 'Ḵ',
525
+ 'ḷ' => 'Ḷ',
526
+ 'ḹ' => 'Ḹ',
527
+ 'ḻ' => 'Ḻ',
528
+ 'ḽ' => 'Ḽ',
529
+ 'ḿ' => 'Ḿ',
530
+ 'ṁ' => 'Ṁ',
531
+ 'ṃ' => 'Ṃ',
532
+ 'ṅ' => 'Ṅ',
533
+ 'ṇ' => 'Ṇ',
534
+ 'ṉ' => 'Ṉ',
535
+ 'ṋ' => 'Ṋ',
536
+ 'ṍ' => 'Ṍ',
537
+ 'ṏ' => 'Ṏ',
538
+ 'ṑ' => 'Ṑ',
539
+ 'ṓ' => 'Ṓ',
540
+ 'ṕ' => 'Ṕ',
541
+ 'ṗ' => 'Ṗ',
542
+ 'ṙ' => 'Ṙ',
543
+ 'ṛ' => 'Ṛ',
544
+ 'ṝ' => 'Ṝ',
545
+ 'ṟ' => 'Ṟ',
546
+ 'ṡ' => 'Ṡ',
547
+ 'ṣ' => 'Ṣ',
548
+ 'ṥ' => 'Ṥ',
549
+ 'ṧ' => 'Ṧ',
550
+ 'ṩ' => 'Ṩ',
551
+ 'ṫ' => 'Ṫ',
552
+ 'ṭ' => 'Ṭ',
553
+ 'ṯ' => 'Ṯ',
554
+ 'ṱ' => 'Ṱ',
555
+ 'ṳ' => 'Ṳ',
556
+ 'ṵ' => 'Ṵ',
557
+ 'ṷ' => 'Ṷ',
558
+ 'ṹ' => 'Ṹ',
559
+ 'ṻ' => 'Ṻ',
560
+ 'ṽ' => 'Ṽ',
561
+ 'ṿ' => 'Ṿ',
562
+ 'ẁ' => 'Ẁ',
563
+ 'ẃ' => 'Ẃ',
564
+ 'ẅ' => 'Ẅ',
565
+ 'ẇ' => 'Ẇ',
566
+ 'ẉ' => 'Ẉ',
567
+ 'ẋ' => 'Ẋ',
568
+ 'ẍ' => 'Ẍ',
569
+ 'ẏ' => 'Ẏ',
570
+ 'ẑ' => 'Ẑ',
571
+ 'ẓ' => 'Ẓ',
572
+ 'ẕ' => 'Ẕ',
573
+ 'ẛ' => 'Ṡ',
574
+ 'ạ' => 'Ạ',
575
+ 'ả' => 'Ả',
576
+ 'ấ' => 'Ấ',
577
+ 'ầ' => 'Ầ',
578
+ 'ẩ' => 'Ẩ',
579
+ 'ẫ' => 'Ẫ',
580
+ 'ậ' => 'Ậ',
581
+ 'ắ' => 'Ắ',
582
+ 'ằ' => 'Ằ',
583
+ 'ẳ' => 'Ẳ',
584
+ 'ẵ' => 'Ẵ',
585
+ 'ặ' => 'Ặ',
586
+ 'ẹ' => 'Ẹ',
587
+ 'ẻ' => 'Ẻ',
588
+ 'ẽ' => 'Ẽ',
589
+ 'ế' => 'Ế',
590
+ 'ề' => 'Ề',
591
+ 'ể' => 'Ể',
592
+ 'ễ' => 'Ễ',
593
+ 'ệ' => 'Ệ',
594
+ 'ỉ' => 'Ỉ',
595
+ 'ị' => 'Ị',
596
+ 'ọ' => 'Ọ',
597
+ 'ỏ' => 'Ỏ',
598
+ 'ố' => 'Ố',
599
+ 'ồ' => 'Ồ',
600
+ 'ổ' => 'Ổ',
601
+ 'ỗ' => 'Ỗ',
602
+ 'ộ' => 'Ộ',
603
+ 'ớ' => 'Ớ',
604
+ 'ờ' => 'Ờ',
605
+ 'ở' => 'Ở',
606
+ 'ỡ' => 'Ỡ',
607
+ 'ợ' => 'Ợ',
608
+ 'ụ' => 'Ụ',
609
+ 'ủ' => 'Ủ',
610
+ 'ứ' => 'Ứ',
611
+ 'ừ' => 'Ừ',
612
+ 'ử' => 'Ử',
613
+ 'ữ' => 'Ữ',
614
+ 'ự' => 'Ự',
615
+ 'ỳ' => 'Ỳ',
616
+ 'ỵ' => 'Ỵ',
617
+ 'ỷ' => 'Ỷ',
618
+ 'ỹ' => 'Ỹ',
619
+ 'ỻ' => 'Ỻ',
620
+ 'ỽ' => 'Ỽ',
621
+ 'ỿ' => 'Ỿ',
622
+ 'ἀ' => 'Ἀ',
623
+ 'ἁ' => 'Ἁ',
624
+ 'ἂ' => 'Ἂ',
625
+ 'ἃ' => 'Ἃ',
626
+ 'ἄ' => 'Ἄ',
627
+ 'ἅ' => 'Ἅ',
628
+ 'ἆ' => 'Ἆ',
629
+ 'ἇ' => 'Ἇ',
630
+ 'ἐ' => 'Ἐ',
631
+ 'ἑ' => 'Ἑ',
632
+ 'ἒ' => 'Ἒ',
633
+ 'ἓ' => 'Ἓ',
634
+ 'ἔ' => 'Ἔ',
635
+ 'ἕ' => 'Ἕ',
636
+ 'ἠ' => 'Ἠ',
637
+ 'ἡ' => 'Ἡ',
638
+ 'ἢ' => 'Ἢ',
639
+ 'ἣ' => 'Ἣ',
640
+ 'ἤ' => 'Ἤ',
641
+ 'ἥ' => 'Ἥ',
642
+ 'ἦ' => 'Ἦ',
643
+ 'ἧ' => 'Ἧ',
644
+ 'ἰ' => 'Ἰ',
645
+ 'ἱ' => 'Ἱ',
646
+ 'ἲ' => 'Ἲ',
647
+ 'ἳ' => 'Ἳ',
648
+ 'ἴ' => 'Ἴ',
649
+ 'ἵ' => 'Ἵ',
650
+ 'ἶ' => 'Ἶ',
651
+ 'ἷ' => 'Ἷ',
652
+ 'ὀ' => 'Ὀ',
653
+ 'ὁ' => 'Ὁ',
654
+ 'ὂ' => 'Ὂ',
655
+ 'ὃ' => 'Ὃ',
656
+ 'ὄ' => 'Ὄ',
657
+ 'ὅ' => 'Ὅ',
658
+ 'ὑ' => 'Ὑ',
659
+ 'ὓ' => 'Ὓ',
660
+ 'ὕ' => 'Ὕ',
661
+ 'ὗ' => 'Ὗ',
662
+ 'ὠ' => 'Ὠ',
663
+ 'ὡ' => 'Ὡ',
664
+ 'ὢ' => 'Ὢ',
665
+ 'ὣ' => 'Ὣ',
666
+ 'ὤ' => 'Ὤ',
667
+ 'ὥ' => 'Ὥ',
668
+ 'ὦ' => 'Ὦ',
669
+ 'ὧ' => 'Ὧ',
670
+ 'ὰ' => 'Ὰ',
671
+ 'ά' => 'Ά',
672
+ 'ὲ' => 'Ὲ',
673
+ 'έ' => 'Έ',
674
+ 'ὴ' => 'Ὴ',
675
+ 'ή' => 'Ή',
676
+ 'ὶ' => 'Ὶ',
677
+ 'ί' => 'Ί',
678
+ 'ὸ' => 'Ὸ',
679
+ 'ό' => 'Ό',
680
+ 'ὺ' => 'Ὺ',
681
+ 'ύ' => 'Ύ',
682
+ 'ὼ' => 'Ὼ',
683
+ 'ώ' => 'Ώ',
684
+ 'ᾀ' => 'ᾈ',
685
+ 'ᾁ' => 'ᾉ',
686
+ 'ᾂ' => 'ᾊ',
687
+ 'ᾃ' => 'ᾋ',
688
+ 'ᾄ' => 'ᾌ',
689
+ 'ᾅ' => 'ᾍ',
690
+ 'ᾆ' => 'ᾎ',
691
+ 'ᾇ' => 'ᾏ',
692
+ 'ᾐ' => 'ᾘ',
693
+ 'ᾑ' => 'ᾙ',
694
+ 'ᾒ' => 'ᾚ',
695
+ 'ᾓ' => 'ᾛ',
696
+ 'ᾔ' => 'ᾜ',
697
+ 'ᾕ' => 'ᾝ',
698
+ 'ᾖ' => 'ᾞ',
699
+ 'ᾗ' => 'ᾟ',
700
+ 'ᾠ' => 'ᾨ',
701
+ 'ᾡ' => 'ᾩ',
702
+ 'ᾢ' => 'ᾪ',
703
+ 'ᾣ' => 'ᾫ',
704
+ 'ᾤ' => 'ᾬ',
705
+ 'ᾥ' => 'ᾭ',
706
+ 'ᾦ' => 'ᾮ',
707
+ 'ᾧ' => 'ᾯ',
708
+ 'ᾰ' => 'Ᾰ',
709
+ 'ᾱ' => 'Ᾱ',
710
+ 'ᾳ' => 'ᾼ',
711
+ 'ι' => 'Ι',
712
+ 'ῃ' => 'ῌ',
713
+ 'ῐ' => 'Ῐ',
714
+ 'ῑ' => 'Ῑ',
715
+ 'ῠ' => 'Ῠ',
716
+ 'ῡ' => 'Ῡ',
717
+ 'ῥ' => 'Ῥ',
718
+ 'ῳ' => 'ῼ',
719
+ 'ⅎ' => 'Ⅎ',
720
+ 'ⅰ' => 'Ⅰ',
721
+ 'ⅱ' => 'Ⅱ',
722
+ 'ⅲ' => 'Ⅲ',
723
+ 'ⅳ' => 'Ⅳ',
724
+ 'ⅴ' => 'Ⅴ',
725
+ 'ⅵ' => 'Ⅵ',
726
+ 'ⅶ' => 'Ⅶ',
727
+ 'ⅷ' => 'Ⅷ',
728
+ 'ⅸ' => 'Ⅸ',
729
+ 'ⅹ' => 'Ⅹ',
730
+ 'ⅺ' => 'Ⅺ',
731
+ 'ⅻ' => 'Ⅻ',
732
+ 'ⅼ' => 'Ⅼ',
733
+ 'ⅽ' => 'Ⅽ',
734
+ 'ⅾ' => 'Ⅾ',
735
+ 'ⅿ' => 'Ⅿ',
736
+ 'ↄ' => 'Ↄ',
737
+ 'ⓐ' => 'Ⓐ',
738
+ 'ⓑ' => 'Ⓑ',
739
+ 'ⓒ' => 'Ⓒ',
740
+ 'ⓓ' => 'Ⓓ',
741
+ 'ⓔ' => 'Ⓔ',
742
+ 'ⓕ' => 'Ⓕ',
743
+ 'ⓖ' => 'Ⓖ',
744
+ 'ⓗ' => 'Ⓗ',
745
+ 'ⓘ' => 'Ⓘ',
746
+ 'ⓙ' => 'Ⓙ',
747
+ 'ⓚ' => 'Ⓚ',
748
+ 'ⓛ' => 'Ⓛ',
749
+ 'ⓜ' => 'Ⓜ',
750
+ 'ⓝ' => 'Ⓝ',
751
+ 'ⓞ' => 'Ⓞ',
752
+ 'ⓟ' => 'Ⓟ',
753
+ 'ⓠ' => 'Ⓠ',
754
+ 'ⓡ' => 'Ⓡ',
755
+ 'ⓢ' => 'Ⓢ',
756
+ 'ⓣ' => 'Ⓣ',
757
+ 'ⓤ' => 'Ⓤ',
758
+ 'ⓥ' => 'Ⓥ',
759
+ 'ⓦ' => 'Ⓦ',
760
+ 'ⓧ' => 'Ⓧ',
761
+ 'ⓨ' => 'Ⓨ',
762
+ 'ⓩ' => 'Ⓩ',
763
+ 'ⰰ' => 'Ⰰ',
764
+ 'ⰱ' => 'Ⰱ',
765
+ 'ⰲ' => 'Ⰲ',
766
+ 'ⰳ' => 'Ⰳ',
767
+ 'ⰴ' => 'Ⰴ',
768
+ 'ⰵ' => 'Ⰵ',
769
+ 'ⰶ' => 'Ⰶ',
770
+ 'ⰷ' => 'Ⰷ',
771
+ 'ⰸ' => 'Ⰸ',
772
+ 'ⰹ' => 'Ⰹ',
773
+ 'ⰺ' => 'Ⰺ',
774
+ 'ⰻ' => 'Ⰻ',
775
+ 'ⰼ' => 'Ⰼ',
776
+ 'ⰽ' => 'Ⰽ',
777
+ 'ⰾ' => 'Ⰾ',
778
+ 'ⰿ' => 'Ⰿ',
779
+ 'ⱀ' => 'Ⱀ',
780
+ 'ⱁ' => 'Ⱁ',
781
+ 'ⱂ' => 'Ⱂ',
782
+ 'ⱃ' => 'Ⱃ',
783
+ 'ⱄ' => 'Ⱄ',
784
+ 'ⱅ' => 'Ⱅ',
785
+ 'ⱆ' => 'Ⱆ',
786
+ 'ⱇ' => 'Ⱇ',
787
+ 'ⱈ' => 'Ⱈ',
788
+ 'ⱉ' => 'Ⱉ',
789
+ 'ⱊ' => 'Ⱊ',
790
+ 'ⱋ' => 'Ⱋ',
791
+ 'ⱌ' => 'Ⱌ',
792
+ 'ⱍ' => 'Ⱍ',
793
+ 'ⱎ' => 'Ⱎ',
794
+ 'ⱏ' => 'Ⱏ',
795
+ 'ⱐ' => 'Ⱐ',
796
+ 'ⱑ' => 'Ⱑ',
797
+ 'ⱒ' => 'Ⱒ',
798
+ 'ⱓ' => 'Ⱓ',
799
+ 'ⱔ' => 'Ⱔ',
800
+ 'ⱕ' => 'Ⱕ',
801
+ 'ⱖ' => 'Ⱖ',
802
+ 'ⱗ' => 'Ⱗ',
803
+ 'ⱘ' => 'Ⱘ',
804
+ 'ⱙ' => 'Ⱙ',
805
+ 'ⱚ' => 'Ⱚ',
806
+ 'ⱛ' => 'Ⱛ',
807
+ 'ⱜ' => 'Ⱜ',
808
+ 'ⱝ' => 'Ⱝ',
809
+ 'ⱞ' => 'Ⱞ',
810
+ 'ⱡ' => 'Ⱡ',
811
+ 'ⱥ' => 'Ⱥ',
812
+ 'ⱦ' => 'Ⱦ',
813
+ 'ⱨ' => 'Ⱨ',
814
+ 'ⱪ' => 'Ⱪ',
815
+ 'ⱬ' => 'Ⱬ',
816
+ 'ⱳ' => 'Ⱳ',
817
+ 'ⱶ' => 'Ⱶ',
818
+ 'ⲁ' => 'Ⲁ',
819
+ 'ⲃ' => 'Ⲃ',
820
+ 'ⲅ' => 'Ⲅ',
821
+ 'ⲇ' => 'Ⲇ',
822
+ 'ⲉ' => 'Ⲉ',
823
+ 'ⲋ' => 'Ⲋ',
824
+ 'ⲍ' => 'Ⲍ',
825
+ 'ⲏ' => 'Ⲏ',
826
+ 'ⲑ' => 'Ⲑ',
827
+ 'ⲓ' => 'Ⲓ',
828
+ 'ⲕ' => 'Ⲕ',
829
+ 'ⲗ' => 'Ⲗ',
830
+ 'ⲙ' => 'Ⲙ',
831
+ 'ⲛ' => 'Ⲛ',
832
+ 'ⲝ' => 'Ⲝ',
833
+ 'ⲟ' => 'Ⲟ',
834
+ 'ⲡ' => 'Ⲡ',
835
+ 'ⲣ' => 'Ⲣ',
836
+ 'ⲥ' => 'Ⲥ',
837
+ 'ⲧ' => 'Ⲧ',
838
+ 'ⲩ' => 'Ⲩ',
839
+ 'ⲫ' => 'Ⲫ',
840
+ 'ⲭ' => 'Ⲭ',
841
+ 'ⲯ' => 'Ⲯ',
842
+ 'ⲱ' => 'Ⲱ',
843
+ 'ⲳ' => 'Ⲳ',
844
+ 'ⲵ' => 'Ⲵ',
845
+ 'ⲷ' => 'Ⲷ',
846
+ 'ⲹ' => 'Ⲹ',
847
+ 'ⲻ' => 'Ⲻ',
848
+ 'ⲽ' => 'Ⲽ',
849
+ 'ⲿ' => 'Ⲿ',
850
+ 'ⳁ' => 'Ⳁ',
851
+ 'ⳃ' => 'Ⳃ',
852
+ 'ⳅ' => 'Ⳅ',
853
+ 'ⳇ' => 'Ⳇ',
854
+ 'ⳉ' => 'Ⳉ',
855
+ 'ⳋ' => 'Ⳋ',
856
+ 'ⳍ' => 'Ⳍ',
857
+ 'ⳏ' => 'Ⳏ',
858
+ 'ⳑ' => 'Ⳑ',
859
+ 'ⳓ' => 'Ⳓ',
860
+ 'ⳕ' => 'Ⳕ',
861
+ 'ⳗ' => 'Ⳗ',
862
+ 'ⳙ' => 'Ⳙ',
863
+ 'ⳛ' => 'Ⳛ',
864
+ 'ⳝ' => 'Ⳝ',
865
+ 'ⳟ' => 'Ⳟ',
866
+ 'ⳡ' => 'Ⳡ',
867
+ 'ⳣ' => 'Ⳣ',
868
+ 'ⳬ' => 'Ⳬ',
869
+ 'ⳮ' => 'Ⳮ',
870
+ 'ⳳ' => 'Ⳳ',
871
+ 'ⴀ' => 'Ⴀ',
872
+ 'ⴁ' => 'Ⴁ',
873
+ 'ⴂ' => 'Ⴂ',
874
+ 'ⴃ' => 'Ⴃ',
875
+ 'ⴄ' => 'Ⴄ',
876
+ 'ⴅ' => 'Ⴅ',
877
+ 'ⴆ' => 'Ⴆ',
878
+ 'ⴇ' => 'Ⴇ',
879
+ 'ⴈ' => 'Ⴈ',
880
+ 'ⴉ' => 'Ⴉ',
881
+ 'ⴊ' => 'Ⴊ',
882
+ 'ⴋ' => 'Ⴋ',
883
+ 'ⴌ' => 'Ⴌ',
884
+ 'ⴍ' => 'Ⴍ',
885
+ 'ⴎ' => 'Ⴎ',
886
+ 'ⴏ' => 'Ⴏ',
887
+ 'ⴐ' => 'Ⴐ',
888
+ 'ⴑ' => 'Ⴑ',
889
+ 'ⴒ' => 'Ⴒ',
890
+ 'ⴓ' => 'Ⴓ',
891
+ 'ⴔ' => 'Ⴔ',
892
+ 'ⴕ' => 'Ⴕ',
893
+ 'ⴖ' => 'Ⴖ',
894
+ 'ⴗ' => 'Ⴗ',
895
+ 'ⴘ' => 'Ⴘ',
896
+ 'ⴙ' => 'Ⴙ',
897
+ 'ⴚ' => 'Ⴚ',
898
+ 'ⴛ' => 'Ⴛ',
899
+ 'ⴜ' => 'Ⴜ',
900
+ 'ⴝ' => 'Ⴝ',
901
+ 'ⴞ' => 'Ⴞ',
902
+ 'ⴟ' => 'Ⴟ',
903
+ 'ⴠ' => 'Ⴠ',
904
+ 'ⴡ' => 'Ⴡ',
905
+ 'ⴢ' => 'Ⴢ',
906
+ 'ⴣ' => 'Ⴣ',
907
+ 'ⴤ' => 'Ⴤ',
908
+ 'ⴥ' => 'Ⴥ',
909
+ 'ⴧ' => 'Ⴧ',
910
+ 'ⴭ' => 'Ⴭ',
911
+ 'ꙁ' => 'Ꙁ',
912
+ 'ꙃ' => 'Ꙃ',
913
+ 'ꙅ' => 'Ꙅ',
914
+ 'ꙇ' => 'Ꙇ',
915
+ 'ꙉ' => 'Ꙉ',
916
+ 'ꙋ' => 'Ꙋ',
917
+ 'ꙍ' => 'Ꙍ',
918
+ 'ꙏ' => 'Ꙏ',
919
+ 'ꙑ' => 'Ꙑ',
920
+ 'ꙓ' => 'Ꙓ',
921
+ 'ꙕ' => 'Ꙕ',
922
+ 'ꙗ' => 'Ꙗ',
923
+ 'ꙙ' => 'Ꙙ',
924
+ 'ꙛ' => 'Ꙛ',
925
+ 'ꙝ' => 'Ꙝ',
926
+ 'ꙟ' => 'Ꙟ',
927
+ 'ꙡ' => 'Ꙡ',
928
+ 'ꙣ' => 'Ꙣ',
929
+ 'ꙥ' => 'Ꙥ',
930
+ 'ꙧ' => 'Ꙧ',
931
+ 'ꙩ' => 'Ꙩ',
932
+ 'ꙫ' => 'Ꙫ',
933
+ 'ꙭ' => 'Ꙭ',
934
+ 'ꚁ' => 'Ꚁ',
935
+ 'ꚃ' => 'Ꚃ',
936
+ 'ꚅ' => 'Ꚅ',
937
+ 'ꚇ' => 'Ꚇ',
938
+ 'ꚉ' => 'Ꚉ',
939
+ 'ꚋ' => 'Ꚋ',
940
+ 'ꚍ' => 'Ꚍ',
941
+ 'ꚏ' => 'Ꚏ',
942
+ 'ꚑ' => 'Ꚑ',
943
+ 'ꚓ' => 'Ꚓ',
944
+ 'ꚕ' => 'Ꚕ',
945
+ 'ꚗ' => 'Ꚗ',
946
+ 'ꚙ' => 'Ꚙ',
947
+ 'ꚛ' => 'Ꚛ',
948
+ 'ꜣ' => 'Ꜣ',
949
+ 'ꜥ' => 'Ꜥ',
950
+ 'ꜧ' => 'Ꜧ',
951
+ 'ꜩ' => 'Ꜩ',
952
+ 'ꜫ' => 'Ꜫ',
953
+ 'ꜭ' => 'Ꜭ',
954
+ 'ꜯ' => 'Ꜯ',
955
+ 'ꜳ' => 'Ꜳ',
956
+ 'ꜵ' => 'Ꜵ',
957
+ 'ꜷ' => 'Ꜷ',
958
+ 'ꜹ' => 'Ꜹ',
959
+ 'ꜻ' => 'Ꜻ',
960
+ 'ꜽ' => 'Ꜽ',
961
+ 'ꜿ' => 'Ꜿ',
962
+ 'ꝁ' => 'Ꝁ',
963
+ 'ꝃ' => 'Ꝃ',
964
+ 'ꝅ' => 'Ꝅ',
965
+ 'ꝇ' => 'Ꝇ',
966
+ 'ꝉ' => 'Ꝉ',
967
+ 'ꝋ' => 'Ꝋ',
968
+ 'ꝍ' => 'Ꝍ',
969
+ 'ꝏ' => 'Ꝏ',
970
+ 'ꝑ' => 'Ꝑ',
971
+ 'ꝓ' => 'Ꝓ',
972
+ 'ꝕ' => 'Ꝕ',
973
+ 'ꝗ' => 'Ꝗ',
974
+ 'ꝙ' => 'Ꝙ',
975
+ 'ꝛ' => 'Ꝛ',
976
+ 'ꝝ' => 'Ꝝ',
977
+ 'ꝟ' => 'Ꝟ',
978
+ 'ꝡ' => 'Ꝡ',
979
+ 'ꝣ' => 'Ꝣ',
980
+ 'ꝥ' => 'Ꝥ',
981
+ 'ꝧ' => 'Ꝧ',
982
+ 'ꝩ' => 'Ꝩ',
983
+ 'ꝫ' => 'Ꝫ',
984
+ 'ꝭ' => 'Ꝭ',
985
+ 'ꝯ' => 'Ꝯ',
986
+ 'ꝺ' => 'Ꝺ',
987
+ 'ꝼ' => 'Ꝼ',
988
+ 'ꝿ' => 'Ꝿ',
989
+ 'ꞁ' => 'Ꞁ',
990
+ 'ꞃ' => 'Ꞃ',
991
+ 'ꞅ' => 'Ꞅ',
992
+ 'ꞇ' => 'Ꞇ',
993
+ 'ꞌ' => 'Ꞌ',
994
+ 'ꞑ' => 'Ꞑ',
995
+ 'ꞓ' => 'Ꞓ',
996
+ 'ꞗ' => 'Ꞗ',
997
+ 'ꞙ' => 'Ꞙ',
998
+ 'ꞛ' => 'Ꞛ',
999
+ 'ꞝ' => 'Ꞝ',
1000
+ 'ꞟ' => 'Ꞟ',
1001
+ 'ꞡ' => 'Ꞡ',
1002
+ 'ꞣ' => 'Ꞣ',
1003
+ 'ꞥ' => 'Ꞥ',
1004
+ 'ꞧ' => 'Ꞧ',
1005
+ 'ꞩ' => 'Ꞩ',
1006
+ 'a' => 'A',
1007
+ 'b' => 'B',
1008
+ 'c' => 'C',
1009
+ 'd' => 'D',
1010
+ 'e' => 'E',
1011
+ 'f' => 'F',
1012
+ 'g' => 'G',
1013
+ 'h' => 'H',
1014
+ 'i' => 'I',
1015
+ 'j' => 'J',
1016
+ 'k' => 'K',
1017
+ 'l' => 'L',
1018
+ 'm' => 'M',
1019
+ 'n' => 'N',
1020
+ 'o' => 'O',
1021
+ 'p' => 'P',
1022
+ 'q' => 'Q',
1023
+ 'r' => 'R',
1024
+ 's' => 'S',
1025
+ 't' => 'T',
1026
+ 'u' => 'U',
1027
+ 'v' => 'V',
1028
+ 'w' => 'W',
1029
+ 'x' => 'X',
1030
+ 'y' => 'Y',
1031
+ 'z' => 'Z',
1032
+ '𐐨' => '𐐀',
1033
+ '𐐩' => '𐐁',
1034
+ '𐐪' => '𐐂',
1035
+ '𐐫' => '𐐃',
1036
+ '𐐬' => '𐐄',
1037
+ '𐐭' => '𐐅',
1038
+ '𐐮' => '𐐆',
1039
+ '𐐯' => '𐐇',
1040
+ '𐐰' => '𐐈',
1041
+ '𐐱' => '𐐉',
1042
+ '𐐲' => '𐐊',
1043
+ '𐐳' => '𐐋',
1044
+ '𐐴' => '𐐌',
1045
+ '𐐵' => '𐐍',
1046
+ '𐐶' => '𐐎',
1047
+ '𐐷' => '𐐏',
1048
+ '𐐸' => '𐐐',
1049
+ '𐐹' => '𐐑',
1050
+ '𐐺' => '𐐒',
1051
+ '𐐻' => '𐐓',
1052
+ '𐐼' => '𐐔',
1053
+ '𐐽' => '𐐕',
1054
+ '𐐾' => '𐐖',
1055
+ '𐐿' => '𐐗',
1056
+ '𐑀' => '𐐘',
1057
+ '𐑁' => '𐐙',
1058
+ '𐑂' => '𐐚',
1059
+ '𐑃' => '𐐛',
1060
+ '𐑄' => '𐐜',
1061
+ '𐑅' => '𐐝',
1062
+ '𐑆' => '𐐞',
1063
+ '𐑇' => '𐐟',
1064
+ '𐑈' => '𐐠',
1065
+ '𐑉' => '𐐡',
1066
+ '𐑊' => '𐐢',
1067
+ '𐑋' => '𐐣',
1068
+ '𐑌' => '𐐤',
1069
+ '𐑍' => '𐐥',
1070
+ '𐑎' => '𐐦',
1071
+ '𐑏' => '𐐧',
1072
+ '𑣀' => '𑢠',
1073
+ '𑣁' => '𑢡',
1074
+ '𑣂' => '𑢢',
1075
+ '𑣃' => '𑢣',
1076
+ '𑣄' => '𑢤',
1077
+ '𑣅' => '𑢥',
1078
+ '𑣆' => '𑢦',
1079
+ '𑣇' => '𑢧',
1080
+ '𑣈' => '𑢨',
1081
+ '𑣉' => '𑢩',
1082
+ '𑣊' => '𑢪',
1083
+ '𑣋' => '𑢫',
1084
+ '𑣌' => '𑢬',
1085
+ '𑣍' => '𑢭',
1086
+ '𑣎' => '𑢮',
1087
+ '𑣏' => '𑢯',
1088
+ '𑣐' => '𑢰',
1089
+ '𑣑' => '𑢱',
1090
+ '𑣒' => '𑢲',
1091
+ '𑣓' => '𑢳',
1092
+ '𑣔' => '𑢴',
1093
+ '𑣕' => '𑢵',
1094
+ '𑣖' => '𑢶',
1095
+ '𑣗' => '𑢷',
1096
+ '𑣘' => '𑢸',
1097
+ '𑣙' => '𑢹',
1098
+ '𑣚' => '𑢺',
1099
+ '𑣛' => '𑢻',
1100
+ '𑣜' => '𑢼',
1101
+ '𑣝' => '𑢽',
1102
+ '𑣞' => '𑢾',
1103
+ '𑣟' => '𑢿',
1104
+ );
1105
+
1106
+ $result =& $data;
1107
+ unset($data);
1108
+
1109
+ return $result;
vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.ser DELETED
@@ -1 +0,0 @@
1
- a:1100:{s:1:"a";s:1:"A";s:1:"b";s:1:"B";s:1:"c";s:1:"C";s:1:"d";s:1:"D";s:1:"e";s:1:"E";s:1:"f";s:1:"F";s:1:"g";s:1:"G";s:1:"h";s:1:"H";s:1:"i";s:1:"I";s:1:"j";s:1:"J";s:1:"k";s:1:"K";s:1:"l";s:1:"L";s:1:"m";s:1:"M";s:1:"n";s:1:"N";s:1:"o";s:1:"O";s:1:"p";s:1:"P";s:1:"q";s:1:"Q";s:1:"r";s:1:"R";s:1:"s";s:1:"S";s:1:"t";s:1:"T";s:1:"u";s:1:"U";s:1:"v";s:1:"V";s:1:"w";s:1:"W";s:1:"x";s:1:"X";s:1:"y";s:1:"Y";s:1:"z";s:1:"Z";s:2:"µ";s:2:"Μ";s:2:"à";s:2:"À";s:2:"á";s:2:"Á";s:2:"â";s:2:"Â";s:2:"ã";s:2:"Ã";s:2:"ä";s:2:"Ä";s:2:"å";s:2:"Å";s:2:"æ";s:2:"Æ";s:2:"ç";s:2:"Ç";s:2:"è";s:2:"È";s:2:"é";s:2:"É";s:2:"ê";s:2:"Ê";s:2:"ë";s:2:"Ë";s:2:"ì";s:2:"Ì";s:2:"í";s:2:"Í";s:2:"î";s:2:"Î";s:2:"ï";s:2:"Ï";s:2:"ð";s:2:"Ð";s:2:"ñ";s:2:"Ñ";s:2:"ò";s:2:"Ò";s:2:"ó";s:2:"Ó";s:2:"ô";s:2:"Ô";s:2:"õ";s:2:"Õ";s:2:"ö";s:2:"Ö";s:2:"ø";s:2:"Ø";s:2:"ù";s:2:"Ù";s:2:"ú";s:2:"Ú";s:2:"û";s:2:"Û";s:2:"ü";s:2:"Ü";s:2:"ý";s:2:"Ý";s:2:"þ";s:2:"Þ";s:2:"ÿ";s:2:"Ÿ";s:2:"ā";s:2:"Ā";s:2:"ă";s:2:"Ă";s:2:"ą";s:2:"Ą";s:2:"ć";s:2:"Ć";s:2:"ĉ";s:2:"Ĉ";s:2:"ċ";s:2:"Ċ";s:2:"č";s:2:"Č";s:2:"ď";s:2:"Ď";s:2:"đ";s:2:"Đ";s:2:"ē";s:2:"Ē";s:2:"ĕ";s:2:"Ĕ";s:2:"ė";s:2:"Ė";s:2:"ę";s:2:"Ę";s:2:"ě";s:2:"Ě";s:2:"ĝ";s:2:"Ĝ";s:2:"ğ";s:2:"Ğ";s:2:"ġ";s:2:"Ġ";s:2:"ģ";s:2:"Ģ";s:2:"ĥ";s:2:"Ĥ";s:2:"ħ";s:2:"Ħ";s:2:"ĩ";s:2:"Ĩ";s:2:"ī";s:2:"Ī";s:2:"ĭ";s:2:"Ĭ";s:2:"į";s:2:"Į";s:2:"ı";s:1:"I";s:2:"ij";s:2:"IJ";s:2:"ĵ";s:2:"Ĵ";s:2:"ķ";s:2:"Ķ";s:2:"ĺ";s:2:"Ĺ";s:2:"ļ";s:2:"Ļ";s:2:"ľ";s:2:"Ľ";s:2:"ŀ";s:2:"Ŀ";s:2:"ł";s:2:"Ł";s:2:"ń";s:2:"Ń";s:2:"ņ";s:2:"Ņ";s:2:"ň";s:2:"Ň";s:2:"ŋ";s:2:"Ŋ";s:2:"ō";s:2:"Ō";s:2:"ŏ";s:2:"Ŏ";s:2:"ő";s:2:"Ő";s:2:"œ";s:2:"Œ";s:2:"ŕ";s:2:"Ŕ";s:2:"ŗ";s:2:"Ŗ";s:2:"ř";s:2:"Ř";s:2:"ś";s:2:"Ś";s:2:"ŝ";s:2:"Ŝ";s:2:"ş";s:2:"Ş";s:2:"š";s:2:"Š";s:2:"ţ";s:2:"Ţ";s:2:"ť";s:2:"Ť";s:2:"ŧ";s:2:"Ŧ";s:2:"ũ";s:2:"Ũ";s:2:"ū";s:2:"Ū";s:2:"ŭ";s:2:"Ŭ";s:2:"ů";s:2:"Ů";s:2:"ű";s:2:"Ű";s:2:"ų";s:2:"Ų";s:2:"ŵ";s:2:"Ŵ";s:2:"ŷ";s:2:"Ŷ";s:2:"ź";s:2:"Ź";s:2:"ż";s:2:"Ż";s:2:"ž";s:2:"Ž";s:2:"ſ";s:1:"S";s:2:"ƀ";s:2:"Ƀ";s:2:"ƃ";s:2:"Ƃ";s:2:"ƅ";s:2:"Ƅ";s:2:"ƈ";s:2:"Ƈ";s:2:"ƌ";s:2:"Ƌ";s:2:"ƒ";s:2:"Ƒ";s:2:"ƕ";s:2:"Ƕ";s:2:"ƙ";s:2:"Ƙ";s:2:"ƚ";s:2:"Ƚ";s:2:"ƞ";s:2:"Ƞ";s:2:"ơ";s:2:"Ơ";s:2:"ƣ";s:2:"Ƣ";s:2:"ƥ";s:2:"Ƥ";s:2:"ƨ";s:2:"Ƨ";s:2:"ƭ";s:2:"Ƭ";s:2:"ư";s:2:"Ư";s:2:"ƴ";s:2:"Ƴ";s:2:"ƶ";s:2:"Ƶ";s:2:"ƹ";s:2:"Ƹ";s:2:"ƽ";s:2:"Ƽ";s:2:"ƿ";s:2:"Ƿ";s:2:"Dž";s:2:"DŽ";s:2:"dž";s:2:"DŽ";s:2:"Lj";s:2:"LJ";s:2:"lj";s:2:"LJ";s:2:"Nj";s:2:"NJ";s:2:"nj";s:2:"NJ";s:2:"ǎ";s:2:"Ǎ";s:2:"ǐ";s:2:"Ǐ";s:2:"ǒ";s:2:"Ǒ";s:2:"ǔ";s:2:"Ǔ";s:2:"ǖ";s:2:"Ǖ";s:2:"ǘ";s:2:"Ǘ";s:2:"ǚ";s:2:"Ǚ";s:2:"ǜ";s:2:"Ǜ";s:2:"ǝ";s:2:"Ǝ";s:2:"ǟ";s:2:"Ǟ";s:2:"ǡ";s:2:"Ǡ";s:2:"ǣ";s:2:"Ǣ";s:2:"ǥ";s:2:"Ǥ";s:2:"ǧ";s:2:"Ǧ";s:2:"ǩ";s:2:"Ǩ";s:2:"ǫ";s:2:"Ǫ";s:2:"ǭ";s:2:"Ǭ";s:2:"ǯ";s:2:"Ǯ";s:2:"Dz";s:2:"DZ";s:2:"dz";s:2:"DZ";s:2:"ǵ";s:2:"Ǵ";s:2:"ǹ";s:2:"Ǹ";s:2:"ǻ";s:2:"Ǻ";s:2:"ǽ";s:2:"Ǽ";s:2:"ǿ";s:2:"Ǿ";s:2:"ȁ";s:2:"Ȁ";s:2:"ȃ";s:2:"Ȃ";s:2:"ȅ";s:2:"Ȅ";s:2:"ȇ";s:2:"Ȇ";s:2:"ȉ";s:2:"Ȉ";s:2:"ȋ";s:2:"Ȋ";s:2:"ȍ";s:2:"Ȍ";s:2:"ȏ";s:2:"Ȏ";s:2:"ȑ";s:2:"Ȑ";s:2:"ȓ";s:2:"Ȓ";s:2:"ȕ";s:2:"Ȕ";s:2:"ȗ";s:2:"Ȗ";s:2:"ș";s:2:"Ș";s:2:"ț";s:2:"Ț";s:2:"ȝ";s:2:"Ȝ";s:2:"ȟ";s:2:"Ȟ";s:2:"ȣ";s:2:"Ȣ";s:2:"ȥ";s:2:"Ȥ";s:2:"ȧ";s:2:"Ȧ";s:2:"ȩ";s:2:"Ȩ";s:2:"ȫ";s:2:"Ȫ";s:2:"ȭ";s:2:"Ȭ";s:2:"ȯ";s:2:"Ȯ";s:2:"ȱ";s:2:"Ȱ";s:2:"ȳ";s:2:"Ȳ";s:2:"ȼ";s:2:"Ȼ";s:2:"ȿ";s:3:"Ȿ";s:2:"ɀ";s:3:"Ɀ";s:2:"ɂ";s:2:"Ɂ";s:2:"ɇ";s:2:"Ɇ";s:2:"ɉ";s:2:"Ɉ";s:2:"ɋ";s:2:"Ɋ";s:2:"ɍ";s:2:"Ɍ";s:2:"ɏ";s:2:"Ɏ";s:2:"ɐ";s:3:"Ɐ";s:2:"ɑ";s:3:"Ɑ";s:2:"ɒ";s:3:"Ɒ";s:2:"ɓ";s:2:"Ɓ";s:2:"ɔ";s:2:"Ɔ";s:2:"ɖ";s:2:"Ɖ";s:2:"ɗ";s:2:"Ɗ";s:2:"ə";s:2:"Ə";s:2:"ɛ";s:2:"Ɛ";s:2:"ɜ";s:3:"Ɜ";s:2:"ɠ";s:2:"Ɠ";s:2:"ɡ";s:3:"Ɡ";s:2:"ɣ";s:2:"Ɣ";s:2:"ɥ";s:3:"Ɥ";s:2:"ɦ";s:3:"Ɦ";s:2:"ɨ";s:2:"Ɨ";s:2:"ɩ";s:2:"Ɩ";s:2:"ɫ";s:3:"Ɫ";s:2:"ɬ";s:3:"Ɬ";s:2:"ɯ";s:2:"Ɯ";s:2:"ɱ";s:3:"Ɱ";s:2:"ɲ";s:2:"Ɲ";s:2:"ɵ";s:2:"Ɵ";s:2:"ɽ";s:3:"Ɽ";s:2:"ʀ";s:2:"Ʀ";s:2:"ʃ";s:2:"Ʃ";s:2:"ʇ";s:3:"Ʇ";s:2:"ʈ";s:2:"Ʈ";s:2:"ʉ";s:2:"Ʉ";s:2:"ʊ";s:2:"Ʊ";s:2:"ʋ";s:2:"Ʋ";s:2:"ʌ";s:2:"Ʌ";s:2:"ʒ";s:2:"Ʒ";s:2:"ʞ";s:3:"Ʞ";s:2:"ͅ";s:2:"Ι";s:2:"ͱ";s:2:"Ͱ";s:2:"ͳ";s:2:"Ͳ";s:2:"ͷ";s:2:"Ͷ";s:2:"ͻ";s:2:"Ͻ";s:2:"ͼ";s:2:"Ͼ";s:2:"ͽ";s:2:"Ͽ";s:2:"ά";s:2:"Ά";s:2:"έ";s:2:"Έ";s:2:"ή";s:2:"Ή";s:2:"ί";s:2:"Ί";s:2:"α";s:2:"Α";s:2:"β";s:2:"Β";s:2:"γ";s:2:"Γ";s:2:"δ";s:2:"Δ";s:2:"ε";s:2:"Ε";s:2:"ζ";s:2:"Ζ";s:2:"η";s:2:"Η";s:2:"θ";s:2:"Θ";s:2:"ι";s:2:"Ι";s:2:"κ";s:2:"Κ";s:2:"λ";s:2:"Λ";s:2:"μ";s:2:"Μ";s:2:"ν";s:2:"Ν";s:2:"ξ";s:2:"Ξ";s:2:"ο";s:2:"Ο";s:2:"π";s:2:"Π";s:2:"ρ";s:2:"Ρ";s:2:"ς";s:2:"Σ";s:2:"σ";s:2:"Σ";s:2:"τ";s:2:"Τ";s:2:"υ";s:2:"Υ";s:2:"φ";s:2:"Φ";s:2:"χ";s:2:"Χ";s:2:"ψ";s:2:"Ψ";s:2:"ω";s:2:"Ω";s:2:"ϊ";s:2:"Ϊ";s:2:"ϋ";s:2:"Ϋ";s:2:"ό";s:2:"Ό";s:2:"ύ";s:2:"Ύ";s:2:"ώ";s:2:"Ώ";s:2:"ϐ";s:2:"Β";s:2:"ϑ";s:2:"Θ";s:2:"ϕ";s:2:"Φ";s:2:"ϖ";s:2:"Π";s:2:"ϗ";s:2:"Ϗ";s:2:"ϙ";s:2:"Ϙ";s:2:"ϛ";s:2:"Ϛ";s:2:"ϝ";s:2:"Ϝ";s:2:"ϟ";s:2:"Ϟ";s:2:"ϡ";s:2:"Ϡ";s:2:"ϣ";s:2:"Ϣ";s:2:"ϥ";s:2:"Ϥ";s:2:"ϧ";s:2:"Ϧ";s:2:"ϩ";s:2:"Ϩ";s:2:"ϫ";s:2:"Ϫ";s:2:"ϭ";s:2:"Ϭ";s:2:"ϯ";s:2:"Ϯ";s:2:"ϰ";s:2:"Κ";s:2:"ϱ";s:2:"Ρ";s:2:"ϲ";s:2:"Ϲ";s:2:"ϳ";s:2:"Ϳ";s:2:"ϵ";s:2:"Ε";s:2:"ϸ";s:2:"Ϸ";s:2:"ϻ";s:2:"Ϻ";s:2:"а";s:2:"А";s:2:"б";s:2:"Б";s:2:"в";s:2:"В";s:2:"г";s:2:"Г";s:2:"д";s:2:"Д";s:2:"е";s:2:"Е";s:2:"ж";s:2:"Ж";s:2:"з";s:2:"З";s:2:"и";s:2:"И";s:2:"й";s:2:"Й";s:2:"к";s:2:"К";s:2:"л";s:2:"Л";s:2:"м";s:2:"М";s:2:"н";s:2:"Н";s:2:"о";s:2:"О";s:2:"п";s:2:"П";s:2:"р";s:2:"Р";s:2:"с";s:2:"С";s:2:"т";s:2:"Т";s:2:"у";s:2:"У";s:2:"ф";s:2:"Ф";s:2:"х";s:2:"Х";s:2:"ц";s:2:"Ц";s:2:"ч";s:2:"Ч";s:2:"ш";s:2:"Ш";s:2:"щ";s:2:"Щ";s:2:"ъ";s:2:"Ъ";s:2:"ы";s:2:"Ы";s:2:"ь";s:2:"Ь";s:2:"э";s:2:"Э";s:2:"ю";s:2:"Ю";s:2:"я";s:2:"Я";s:2:"ѐ";s:2:"Ѐ";s:2:"ё";s:2:"Ё";s:2:"ђ";s:2:"Ђ";s:2:"ѓ";s:2:"Ѓ";s:2:"є";s:2:"Є";s:2:"ѕ";s:2:"Ѕ";s:2:"і";s:2:"І";s:2:"ї";s:2:"Ї";s:2:"ј";s:2:"Ј";s:2:"љ";s:2:"Љ";s:2:"њ";s:2:"Њ";s:2:"ћ";s:2:"Ћ";s:2:"ќ";s:2:"Ќ";s:2:"ѝ";s:2:"Ѝ";s:2:"ў";s:2:"Ў";s:2:"џ";s:2:"Џ";s:2:"ѡ";s:2:"Ѡ";s:2:"ѣ";s:2:"Ѣ";s:2:"ѥ";s:2:"Ѥ";s:2:"ѧ";s:2:"Ѧ";s:2:"ѩ";s:2:"Ѩ";s:2:"ѫ";s:2:"Ѫ";s:2:"ѭ";s:2:"Ѭ";s:2:"ѯ";s:2:"Ѯ";s:2:"ѱ";s:2:"Ѱ";s:2:"ѳ";s:2:"Ѳ";s:2:"ѵ";s:2:"Ѵ";s:2:"ѷ";s:2:"Ѷ";s:2:"ѹ";s:2:"Ѹ";s:2:"ѻ";s:2:"Ѻ";s:2:"ѽ";s:2:"Ѽ";s:2:"ѿ";s:2:"Ѿ";s:2:"ҁ";s:2:"Ҁ";s:2:"ҋ";s:2:"Ҋ";s:2:"ҍ";s:2:"Ҍ";s:2:"ҏ";s:2:"Ҏ";s:2:"ґ";s:2:"Ґ";s:2:"ғ";s:2:"Ғ";s:2:"ҕ";s:2:"Ҕ";s:2:"җ";s:2:"Җ";s:2:"ҙ";s:2:"Ҙ";s:2:"қ";s:2:"Қ";s:2:"ҝ";s:2:"Ҝ";s:2:"ҟ";s:2:"Ҟ";s:2:"ҡ";s:2:"Ҡ";s:2:"ң";s:2:"Ң";s:2:"ҥ";s:2:"Ҥ";s:2:"ҧ";s:2:"Ҧ";s:2:"ҩ";s:2:"Ҩ";s:2:"ҫ";s:2:"Ҫ";s:2:"ҭ";s:2:"Ҭ";s:2:"ү";s:2:"Ү";s:2:"ұ";s:2:"Ұ";s:2:"ҳ";s:2:"Ҳ";s:2:"ҵ";s:2:"Ҵ";s:2:"ҷ";s:2:"Ҷ";s:2:"ҹ";s:2:"Ҹ";s:2:"һ";s:2:"Һ";s:2:"ҽ";s:2:"Ҽ";s:2:"ҿ";s:2:"Ҿ";s:2:"ӂ";s:2:"Ӂ";s:2:"ӄ";s:2:"Ӄ";s:2:"ӆ";s:2:"Ӆ";s:2:"ӈ";s:2:"Ӈ";s:2:"ӊ";s:2:"Ӊ";s:2:"ӌ";s:2:"Ӌ";s:2:"ӎ";s:2:"Ӎ";s:2:"ӏ";s:2:"Ӏ";s:2:"ӑ";s:2:"Ӑ";s:2:"ӓ";s:2:"Ӓ";s:2:"ӕ";s:2:"Ӕ";s:2:"ӗ";s:2:"Ӗ";s:2:"ә";s:2:"Ә";s:2:"ӛ";s:2:"Ӛ";s:2:"ӝ";s:2:"Ӝ";s:2:"ӟ";s:2:"Ӟ";s:2:"ӡ";s:2:"Ӡ";s:2:"ӣ";s:2:"Ӣ";s:2:"ӥ";s:2:"Ӥ";s:2:"ӧ";s:2:"Ӧ";s:2:"ө";s:2:"Ө";s:2:"ӫ";s:2:"Ӫ";s:2:"ӭ";s:2:"Ӭ";s:2:"ӯ";s:2:"Ӯ";s:2:"ӱ";s:2:"Ӱ";s:2:"ӳ";s:2:"Ӳ";s:2:"ӵ";s:2:"Ӵ";s:2:"ӷ";s:2:"Ӷ";s:2:"ӹ";s:2:"Ӹ";s:2:"ӻ";s:2:"Ӻ";s:2:"ӽ";s:2:"Ӽ";s:2:"ӿ";s:2:"Ӿ";s:2:"ԁ";s:2:"Ԁ";s:2:"ԃ";s:2:"Ԃ";s:2:"ԅ";s:2:"Ԅ";s:2:"ԇ";s:2:"Ԇ";s:2:"ԉ";s:2:"Ԉ";s:2:"ԋ";s:2:"Ԋ";s:2:"ԍ";s:2:"Ԍ";s:2:"ԏ";s:2:"Ԏ";s:2:"ԑ";s:2:"Ԑ";s:2:"ԓ";s:2:"Ԓ";s:2:"ԕ";s:2:"Ԕ";s:2:"ԗ";s:2:"Ԗ";s:2:"ԙ";s:2:"Ԙ";s:2:"ԛ";s:2:"Ԛ";s:2:"ԝ";s:2:"Ԝ";s:2:"ԟ";s:2:"Ԟ";s:2:"ԡ";s:2:"Ԡ";s:2:"ԣ";s:2:"Ԣ";s:2:"ԥ";s:2:"Ԥ";s:2:"ԧ";s:2:"Ԧ";s:2:"ԩ";s:2:"Ԩ";s:2:"ԫ";s:2:"Ԫ";s:2:"ԭ";s:2:"Ԭ";s:2:"ԯ";s:2:"Ԯ";s:2:"ա";s:2:"Ա";s:2:"բ";s:2:"Բ";s:2:"գ";s:2:"Գ";s:2:"դ";s:2:"Դ";s:2:"ե";s:2:"Ե";s:2:"զ";s:2:"Զ";s:2:"է";s:2:"Է";s:2:"ը";s:2:"Ը";s:2:"թ";s:2:"Թ";s:2:"ժ";s:2:"Ժ";s:2:"ի";s:2:"Ի";s:2:"լ";s:2:"Լ";s:2:"խ";s:2:"Խ";s:2:"ծ";s:2:"Ծ";s:2:"կ";s:2:"Կ";s:2:"հ";s:2:"Հ";s:2:"ձ";s:2:"Ձ";s:2:"ղ";s:2:"Ղ";s:2:"ճ";s:2:"Ճ";s:2:"մ";s:2:"Մ";s:2:"յ";s:2:"Յ";s:2:"ն";s:2:"Ն";s:2:"շ";s:2:"Շ";s:2:"ո";s:2:"Ո";s:2:"չ";s:2:"Չ";s:2:"պ";s:2:"Պ";s:2:"ջ";s:2:"Ջ";s:2:"ռ";s:2:"Ռ";s:2:"ս";s:2:"Ս";s:2:"վ";s:2:"Վ";s:2:"տ";s:2:"Տ";s:2:"ր";s:2:"Ր";s:2:"ց";s:2:"Ց";s:2:"ւ";s:2:"Ւ";s:2:"փ";s:2:"Փ";s:2:"ք";s:2:"Ք";s:2:"օ";s:2:"Օ";s:2:"ֆ";s:2:"Ֆ";s:3:"ᵹ";s:3:"Ᵹ";s:3:"ᵽ";s:3:"Ᵽ";s:3:"ḁ";s:3:"Ḁ";s:3:"ḃ";s:3:"Ḃ";s:3:"ḅ";s:3:"Ḅ";s:3:"ḇ";s:3:"Ḇ";s:3:"ḉ";s:3:"Ḉ";s:3:"ḋ";s:3:"Ḋ";s:3:"ḍ";s:3:"Ḍ";s:3:"ḏ";s:3:"Ḏ";s:3:"ḑ";s:3:"Ḑ";s:3:"ḓ";s:3:"Ḓ";s:3:"ḕ";s:3:"Ḕ";s:3:"ḗ";s:3:"Ḗ";s:3:"ḙ";s:3:"Ḙ";s:3:"ḛ";s:3:"Ḛ";s:3:"ḝ";s:3:"Ḝ";s:3:"ḟ";s:3:"Ḟ";s:3:"ḡ";s:3:"Ḡ";s:3:"ḣ";s:3:"Ḣ";s:3:"ḥ";s:3:"Ḥ";s:3:"ḧ";s:3:"Ḧ";s:3:"ḩ";s:3:"Ḩ";s:3:"ḫ";s:3:"Ḫ";s:3:"ḭ";s:3:"Ḭ";s:3:"ḯ";s:3:"Ḯ";s:3:"ḱ";s:3:"Ḱ";s:3:"ḳ";s:3:"Ḳ";s:3:"ḵ";s:3:"Ḵ";s:3:"ḷ";s:3:"Ḷ";s:3:"ḹ";s:3:"Ḹ";s:3:"ḻ";s:3:"Ḻ";s:3:"ḽ";s:3:"Ḽ";s:3:"ḿ";s:3:"Ḿ";s:3:"ṁ";s:3:"Ṁ";s:3:"ṃ";s:3:"Ṃ";s:3:"ṅ";s:3:"Ṅ";s:3:"ṇ";s:3:"Ṇ";s:3:"ṉ";s:3:"Ṉ";s:3:"ṋ";s:3:"Ṋ";s:3:"ṍ";s:3:"Ṍ";s:3:"ṏ";s:3:"Ṏ";s:3:"ṑ";s:3:"Ṑ";s:3:"ṓ";s:3:"Ṓ";s:3:"ṕ";s:3:"Ṕ";s:3:"ṗ";s:3:"Ṗ";s:3:"ṙ";s:3:"Ṙ";s:3:"ṛ";s:3:"Ṛ";s:3:"ṝ";s:3:"Ṝ";s:3:"ṟ";s:3:"Ṟ";s:3:"ṡ";s:3:"Ṡ";s:3:"ṣ";s:3:"Ṣ";s:3:"ṥ";s:3:"Ṥ";s:3:"ṧ";s:3:"Ṧ";s:3:"ṩ";s:3:"Ṩ";s:3:"ṫ";s:3:"Ṫ";s:3:"ṭ";s:3:"Ṭ";s:3:"ṯ";s:3:"Ṯ";s:3:"ṱ";s:3:"Ṱ";s:3:"ṳ";s:3:"Ṳ";s:3:"ṵ";s:3:"Ṵ";s:3:"ṷ";s:3:"Ṷ";s:3:"ṹ";s:3:"Ṹ";s:3:"ṻ";s:3:"Ṻ";s:3:"ṽ";s:3:"Ṽ";s:3:"ṿ";s:3:"Ṿ";s:3:"ẁ";s:3:"Ẁ";s:3:"ẃ";s:3:"Ẃ";s:3:"ẅ";s:3:"Ẅ";s:3:"ẇ";s:3:"Ẇ";s:3:"ẉ";s:3:"Ẉ";s:3:"ẋ";s:3:"Ẋ";s:3:"ẍ";s:3:"Ẍ";s:3:"ẏ";s:3:"Ẏ";s:3:"ẑ";s:3:"Ẑ";s:3:"ẓ";s:3:"Ẓ";s:3:"ẕ";s:3:"Ẕ";s:3:"ẛ";s:3:"Ṡ";s:3:"ạ";s:3:"Ạ";s:3:"ả";s:3:"Ả";s:3:"ấ";s:3:"Ấ";s:3:"ầ";s:3:"Ầ";s:3:"ẩ";s:3:"Ẩ";s:3:"ẫ";s:3:"Ẫ";s:3:"ậ";s:3:"Ậ";s:3:"ắ";s:3:"Ắ";s:3:"ằ";s:3:"Ằ";s:3:"ẳ";s:3:"Ẳ";s:3:"ẵ";s:3:"Ẵ";s:3:"ặ";s:3:"Ặ";s:3:"ẹ";s:3:"Ẹ";s:3:"ẻ";s:3:"Ẻ";s:3:"ẽ";s:3:"Ẽ";s:3:"ế";s:3:"Ế";s:3:"ề";s:3:"Ề";s:3:"ể";s:3:"Ể";s:3:"ễ";s:3:"Ễ";s:3:"ệ";s:3:"Ệ";s:3:"ỉ";s:3:"Ỉ";s:3:"ị";s:3:"Ị";s:3:"ọ";s:3:"Ọ";s:3:"ỏ";s:3:"Ỏ";s:3:"ố";s:3:"Ố";s:3:"ồ";s:3:"Ồ";s:3:"ổ";s:3:"Ổ";s:3:"ỗ";s:3:"Ỗ";s:3:"ộ";s:3:"Ộ";s:3:"ớ";s:3:"Ớ";s:3:"ờ";s:3:"Ờ";s:3:"ở";s:3:"Ở";s:3:"ỡ";s:3:"Ỡ";s:3:"ợ";s:3:"Ợ";s:3:"ụ";s:3:"Ụ";s:3:"ủ";s:3:"Ủ";s:3:"ứ";s:3:"Ứ";s:3:"ừ";s:3:"Ừ";s:3:"ử";s:3:"Ử";s:3:"ữ";s:3:"Ữ";s:3:"ự";s:3:"Ự";s:3:"ỳ";s:3:"Ỳ";s:3:"ỵ";s:3:"Ỵ";s:3:"ỷ";s:3:"Ỷ";s:3:"ỹ";s:3:"Ỹ";s:3:"ỻ";s:3:"Ỻ";s:3:"ỽ";s:3:"Ỽ";s:3:"ỿ";s:3:"Ỿ";s:3:"ἀ";s:3:"Ἀ";s:3:"ἁ";s:3:"Ἁ";s:3:"ἂ";s:3:"Ἂ";s:3:"ἃ";s:3:"Ἃ";s:3:"ἄ";s:3:"Ἄ";s:3:"ἅ";s:3:"Ἅ";s:3:"ἆ";s:3:"Ἆ";s:3:"ἇ";s:3:"Ἇ";s:3:"ἐ";s:3:"Ἐ";s:3:"ἑ";s:3:"Ἑ";s:3:"ἒ";s:3:"Ἒ";s:3:"ἓ";s:3:"Ἓ";s:3:"ἔ";s:3:"Ἔ";s:3:"ἕ";s:3:"Ἕ";s:3:"ἠ";s:3:"Ἠ";s:3:"ἡ";s:3:"Ἡ";s:3:"ἢ";s:3:"Ἢ";s:3:"ἣ";s:3:"Ἣ";s:3:"ἤ";s:3:"Ἤ";s:3:"ἥ";s:3:"Ἥ";s:3:"ἦ";s:3:"Ἦ";s:3:"ἧ";s:3:"Ἧ";s:3:"ἰ";s:3:"Ἰ";s:3:"ἱ";s:3:"Ἱ";s:3:"ἲ";s:3:"Ἲ";s:3:"ἳ";s:3:"Ἳ";s:3:"ἴ";s:3:"Ἴ";s:3:"ἵ";s:3:"Ἵ";s:3:"ἶ";s:3:"Ἶ";s:3:"ἷ";s:3:"Ἷ";s:3:"ὀ";s:3:"Ὀ";s:3:"ὁ";s:3:"Ὁ";s:3:"ὂ";s:3:"Ὂ";s:3:"ὃ";s:3:"Ὃ";s:3:"ὄ";s:3:"Ὄ";s:3:"ὅ";s:3:"Ὅ";s:3:"ὑ";s:3:"Ὑ";s:3:"ὓ";s:3:"Ὓ";s:3:"ὕ";s:3:"Ὕ";s:3:"ὗ";s:3:"Ὗ";s:3:"ὠ";s:3:"Ὠ";s:3:"ὡ";s:3:"Ὡ";s:3:"ὢ";s:3:"Ὢ";s:3:"ὣ";s:3:"Ὣ";s:3:"ὤ";s:3:"Ὤ";s:3:"ὥ";s:3:"Ὥ";s:3:"ὦ";s:3:"Ὦ";s:3:"ὧ";s:3:"Ὧ";s:3:"ὰ";s:3:"Ὰ";s:3:"ά";s:3:"Ά";s:3:"ὲ";s:3:"Ὲ";s:3:"έ";s:3:"Έ";s:3:"ὴ";s:3:"Ὴ";s:3:"ή";s:3:"Ή";s:3:"ὶ";s:3:"Ὶ";s:3:"ί";s:3:"Ί";s:3:"ὸ";s:3:"Ὸ";s:3:"ό";s:3:"Ό";s:3:"ὺ";s:3:"Ὺ";s:3:"ύ";s:3:"Ύ";s:3:"ὼ";s:3:"Ὼ";s:3:"ώ";s:3:"Ώ";s:3:"ᾀ";s:3:"ᾈ";s:3:"ᾁ";s:3:"ᾉ";s:3:"ᾂ";s:3:"ᾊ";s:3:"ᾃ";s:3:"ᾋ";s:3:"ᾄ";s:3:"ᾌ";s:3:"ᾅ";s:3:"ᾍ";s:3:"ᾆ";s:3:"ᾎ";s:3:"ᾇ";s:3:"ᾏ";s:3:"ᾐ";s:3:"ᾘ";s:3:"ᾑ";s:3:"ᾙ";s:3:"ᾒ";s:3:"ᾚ";s:3:"ᾓ";s:3:"ᾛ";s:3:"ᾔ";s:3:"ᾜ";s:3:"ᾕ";s:3:"ᾝ";s:3:"ᾖ";s:3:"ᾞ";s:3:"ᾗ";s:3:"ᾟ";s:3:"ᾠ";s:3:"ᾨ";s:3:"ᾡ";s:3:"ᾩ";s:3:"ᾢ";s:3:"ᾪ";s:3:"ᾣ";s:3:"ᾫ";s:3:"ᾤ";s:3:"ᾬ";s:3:"ᾥ";s:3:"ᾭ";s:3:"ᾦ";s:3:"ᾮ";s:3:"ᾧ";s:3:"ᾯ";s:3:"ᾰ";s:3:"Ᾰ";s:3:"ᾱ";s:3:"Ᾱ";s:3:"ᾳ";s:3:"ᾼ";s:3:"ι";s:2:"Ι";s:3:"ῃ";s:3:"ῌ";s:3:"ῐ";s:3:"Ῐ";s:3:"ῑ";s:3:"Ῑ";s:3:"ῠ";s:3:"Ῠ";s:3:"ῡ";s:3:"Ῡ";s:3:"ῥ";s:3:"Ῥ";s:3:"ῳ";s:3:"ῼ";s:3:"ⅎ";s:3:"Ⅎ";s:3:"ⅰ";s:3:"Ⅰ";s:3:"ⅱ";s:3:"Ⅱ";s:3:"ⅲ";s:3:"Ⅲ";s:3:"ⅳ";s:3:"Ⅳ";s:3:"ⅴ";s:3:"Ⅴ";s:3:"ⅵ";s:3:"Ⅵ";s:3:"ⅶ";s:3:"Ⅶ";s:3:"ⅷ";s:3:"Ⅷ";s:3:"ⅸ";s:3:"Ⅸ";s:3:"ⅹ";s:3:"Ⅹ";s:3:"ⅺ";s:3:"Ⅺ";s:3:"ⅻ";s:3:"Ⅻ";s:3:"ⅼ";s:3:"Ⅼ";s:3:"ⅽ";s:3:"Ⅽ";s:3:"ⅾ";s:3:"Ⅾ";s:3:"ⅿ";s:3:"Ⅿ";s:3:"ↄ";s:3:"Ↄ";s:3:"ⓐ";s:3:"Ⓐ";s:3:"ⓑ";s:3:"Ⓑ";s:3:"ⓒ";s:3:"Ⓒ";s:3:"ⓓ";s:3:"Ⓓ";s:3:"ⓔ";s:3:"Ⓔ";s:3:"ⓕ";s:3:"Ⓕ";s:3:"ⓖ";s:3:"Ⓖ";s:3:"ⓗ";s:3:"Ⓗ";s:3:"ⓘ";s:3:"Ⓘ";s:3:"ⓙ";s:3:"Ⓙ";s:3:"ⓚ";s:3:"Ⓚ";s:3:"ⓛ";s:3:"Ⓛ";s:3:"ⓜ";s:3:"Ⓜ";s:3:"ⓝ";s:3:"Ⓝ";s:3:"ⓞ";s:3:"Ⓞ";s:3:"ⓟ";s:3:"Ⓟ";s:3:"ⓠ";s:3:"Ⓠ";s:3:"ⓡ";s:3:"Ⓡ";s:3:"ⓢ";s:3:"Ⓢ";s:3:"ⓣ";s:3:"Ⓣ";s:3:"ⓤ";s:3:"Ⓤ";s:3:"ⓥ";s:3:"Ⓥ";s:3:"ⓦ";s:3:"Ⓦ";s:3:"ⓧ";s:3:"Ⓧ";s:3:"ⓨ";s:3:"Ⓨ";s:3:"ⓩ";s:3:"Ⓩ";s:3:"ⰰ";s:3:"Ⰰ";s:3:"ⰱ";s:3:"Ⰱ";s:3:"ⰲ";s:3:"Ⰲ";s:3:"ⰳ";s:3:"Ⰳ";s:3:"ⰴ";s:3:"Ⰴ";s:3:"ⰵ";s:3:"Ⰵ";s:3:"ⰶ";s:3:"Ⰶ";s:3:"ⰷ";s:3:"Ⰷ";s:3:"ⰸ";s:3:"Ⰸ";s:3:"ⰹ";s:3:"Ⰹ";s:3:"ⰺ";s:3:"Ⰺ";s:3:"ⰻ";s:3:"Ⰻ";s:3:"ⰼ";s:3:"Ⰼ";s:3:"ⰽ";s:3:"Ⰽ";s:3:"ⰾ";s:3:"Ⰾ";s:3:"ⰿ";s:3:"Ⰿ";s:3:"ⱀ";s:3:"Ⱀ";s:3:"ⱁ";s:3:"Ⱁ";s:3:"ⱂ";s:3:"Ⱂ";s:3:"ⱃ";s:3:"Ⱃ";s:3:"ⱄ";s:3:"Ⱄ";s:3:"ⱅ";s:3:"Ⱅ";s:3:"ⱆ";s:3:"Ⱆ";s:3:"ⱇ";s:3:"Ⱇ";s:3:"ⱈ";s:3:"Ⱈ";s:3:"ⱉ";s:3:"Ⱉ";s:3:"ⱊ";s:3:"Ⱊ";s:3:"ⱋ";s:3:"Ⱋ";s:3:"ⱌ";s:3:"Ⱌ";s:3:"ⱍ";s:3:"Ⱍ";s:3:"ⱎ";s:3:"Ⱎ";s:3:"ⱏ";s:3:"Ⱏ";s:3:"ⱐ";s:3:"Ⱐ";s:3:"ⱑ";s:3:"Ⱑ";s:3:"ⱒ";s:3:"Ⱒ";s:3:"ⱓ";s:3:"Ⱓ";s:3:"ⱔ";s:3:"Ⱔ";s:3:"ⱕ";s:3:"Ⱕ";s:3:"ⱖ";s:3:"Ⱖ";s:3:"ⱗ";s:3:"Ⱗ";s:3:"ⱘ";s:3:"Ⱘ";s:3:"ⱙ";s:3:"Ⱙ";s:3:"ⱚ";s:3:"Ⱚ";s:3:"ⱛ";s:3:"Ⱛ";s:3:"ⱜ";s:3:"Ⱜ";s:3:"ⱝ";s:3:"Ⱝ";s:3:"ⱞ";s:3:"Ⱞ";s:3:"ⱡ";s:3:"Ⱡ";s:3:"ⱥ";s:2:"Ⱥ";s:3:"ⱦ";s:2:"Ⱦ";s:3:"ⱨ";s:3:"Ⱨ";s:3:"ⱪ";s:3:"Ⱪ";s:3:"ⱬ";s:3:"Ⱬ";s:3:"ⱳ";s:3:"Ⱳ";s:3:"ⱶ";s:3:"Ⱶ";s:3:"ⲁ";s:3:"Ⲁ";s:3:"ⲃ";s:3:"Ⲃ";s:3:"ⲅ";s:3:"Ⲅ";s:3:"ⲇ";s:3:"Ⲇ";s:3:"ⲉ";s:3:"Ⲉ";s:3:"ⲋ";s:3:"Ⲋ";s:3:"ⲍ";s:3:"Ⲍ";s:3:"ⲏ";s:3:"Ⲏ";s:3:"ⲑ";s:3:"Ⲑ";s:3:"ⲓ";s:3:"Ⲓ";s:3:"ⲕ";s:3:"Ⲕ";s:3:"ⲗ";s:3:"Ⲗ";s:3:"ⲙ";s:3:"Ⲙ";s:3:"ⲛ";s:3:"Ⲛ";s:3:"ⲝ";s:3:"Ⲝ";s:3:"ⲟ";s:3:"Ⲟ";s:3:"ⲡ";s:3:"Ⲡ";s:3:"ⲣ";s:3:"Ⲣ";s:3:"ⲥ";s:3:"Ⲥ";s:3:"ⲧ";s:3:"Ⲧ";s:3:"ⲩ";s:3:"Ⲩ";s:3:"ⲫ";s:3:"Ⲫ";s:3:"ⲭ";s:3:"Ⲭ";s:3:"ⲯ";s:3:"Ⲯ";s:3:"ⲱ";s:3:"Ⲱ";s:3:"ⲳ";s:3:"Ⲳ";s:3:"ⲵ";s:3:"Ⲵ";s:3:"ⲷ";s:3:"Ⲷ";s:3:"ⲹ";s:3:"Ⲹ";s:3:"ⲻ";s:3:"Ⲻ";s:3:"ⲽ";s:3:"Ⲽ";s:3:"ⲿ";s:3:"Ⲿ";s:3:"ⳁ";s:3:"Ⳁ";s:3:"ⳃ";s:3:"Ⳃ";s:3:"ⳅ";s:3:"Ⳅ";s:3:"ⳇ";s:3:"Ⳇ";s:3:"ⳉ";s:3:"Ⳉ";s:3:"ⳋ";s:3:"Ⳋ";s:3:"ⳍ";s:3:"Ⳍ";s:3:"ⳏ";s:3:"Ⳏ";s:3:"ⳑ";s:3:"Ⳑ";s:3:"ⳓ";s:3:"Ⳓ";s:3:"ⳕ";s:3:"Ⳕ";s:3:"ⳗ";s:3:"Ⳗ";s:3:"ⳙ";s:3:"Ⳙ";s:3:"ⳛ";s:3:"Ⳛ";s:3:"ⳝ";s:3:"Ⳝ";s:3:"ⳟ";s:3:"Ⳟ";s:3:"ⳡ";s:3:"Ⳡ";s:3:"ⳣ";s:3:"Ⳣ";s:3:"ⳬ";s:3:"Ⳬ";s:3:"ⳮ";s:3:"Ⳮ";s:3:"ⳳ";s:3:"Ⳳ";s:3:"ⴀ";s:3:"Ⴀ";s:3:"ⴁ";s:3:"Ⴁ";s:3:"ⴂ";s:3:"Ⴂ";s:3:"ⴃ";s:3:"Ⴃ";s:3:"ⴄ";s:3:"Ⴄ";s:3:"ⴅ";s:3:"Ⴅ";s:3:"ⴆ";s:3:"Ⴆ";s:3:"ⴇ";s:3:"Ⴇ";s:3:"ⴈ";s:3:"Ⴈ";s:3:"ⴉ";s:3:"Ⴉ";s:3:"ⴊ";s:3:"Ⴊ";s:3:"ⴋ";s:3:"Ⴋ";s:3:"ⴌ";s:3:"Ⴌ";s:3:"ⴍ";s:3:"Ⴍ";s:3:"ⴎ";s:3:"Ⴎ";s:3:"ⴏ";s:3:"Ⴏ";s:3:"ⴐ";s:3:"Ⴐ";s:3:"ⴑ";s:3:"Ⴑ";s:3:"ⴒ";s:3:"Ⴒ";s:3:"ⴓ";s:3:"Ⴓ";s:3:"ⴔ";s:3:"Ⴔ";s:3:"ⴕ";s:3:"Ⴕ";s:3:"ⴖ";s:3:"Ⴖ";s:3:"ⴗ";s:3:"Ⴗ";s:3:"ⴘ";s:3:"Ⴘ";s:3:"ⴙ";s:3:"Ⴙ";s:3:"ⴚ";s:3:"Ⴚ";s:3:"ⴛ";s:3:"Ⴛ";s:3:"ⴜ";s:3:"Ⴜ";s:3:"ⴝ";s:3:"Ⴝ";s:3:"ⴞ";s:3:"Ⴞ";s:3:"ⴟ";s:3:"Ⴟ";s:3:"ⴠ";s:3:"Ⴠ";s:3:"ⴡ";s:3:"Ⴡ";s:3:"ⴢ";s:3:"Ⴢ";s:3:"ⴣ";s:3:"Ⴣ";s:3:"ⴤ";s:3:"Ⴤ";s:3:"ⴥ";s:3:"Ⴥ";s:3:"ⴧ";s:3:"Ⴧ";s:3:"ⴭ";s:3:"Ⴭ";s:3:"ꙁ";s:3:"Ꙁ";s:3:"ꙃ";s:3:"Ꙃ";s:3:"ꙅ";s:3:"Ꙅ";s:3:"ꙇ";s:3:"Ꙇ";s:3:"ꙉ";s:3:"Ꙉ";s:3:"ꙋ";s:3:"Ꙋ";s:3:"ꙍ";s:3:"Ꙍ";s:3:"ꙏ";s:3:"Ꙏ";s:3:"ꙑ";s:3:"Ꙑ";s:3:"ꙓ";s:3:"Ꙓ";s:3:"ꙕ";s:3:"Ꙕ";s:3:"ꙗ";s:3:"Ꙗ";s:3:"ꙙ";s:3:"Ꙙ";s:3:"ꙛ";s:3:"Ꙛ";s:3:"ꙝ";s:3:"Ꙝ";s:3:"ꙟ";s:3:"Ꙟ";s:3:"ꙡ";s:3:"Ꙡ";s:3:"ꙣ";s:3:"Ꙣ";s:3:"ꙥ";s:3:"Ꙥ";s:3:"ꙧ";s:3:"Ꙧ";s:3:"ꙩ";s:3:"Ꙩ";s:3:"ꙫ";s:3:"Ꙫ";s:3:"ꙭ";s:3:"Ꙭ";s:3:"ꚁ";s:3:"Ꚁ";s:3:"ꚃ";s:3:"Ꚃ";s:3:"ꚅ";s:3:"Ꚅ";s:3:"ꚇ";s:3:"Ꚇ";s:3:"ꚉ";s:3:"Ꚉ";s:3:"ꚋ";s:3:"Ꚋ";s:3:"ꚍ";s:3:"Ꚍ";s:3:"ꚏ";s:3:"Ꚏ";s:3:"ꚑ";s:3:"Ꚑ";s:3:"ꚓ";s:3:"Ꚓ";s:3:"ꚕ";s:3:"Ꚕ";s:3:"ꚗ";s:3:"Ꚗ";s:3:"ꚙ";s:3:"Ꚙ";s:3:"ꚛ";s:3:"Ꚛ";s:3:"ꜣ";s:3:"Ꜣ";s:3:"ꜥ";s:3:"Ꜥ";s:3:"ꜧ";s:3:"Ꜧ";s:3:"ꜩ";s:3:"Ꜩ";s:3:"ꜫ";s:3:"Ꜫ";s:3:"ꜭ";s:3:"Ꜭ";s:3:"ꜯ";s:3:"Ꜯ";s:3:"ꜳ";s:3:"Ꜳ";s:3:"ꜵ";s:3:"Ꜵ";s:3:"ꜷ";s:3:"Ꜷ";s:3:"ꜹ";s:3:"Ꜹ";s:3:"ꜻ";s:3:"Ꜻ";s:3:"ꜽ";s:3:"Ꜽ";s:3:"ꜿ";s:3:"Ꜿ";s:3:"ꝁ";s:3:"Ꝁ";s:3:"ꝃ";s:3:"Ꝃ";s:3:"ꝅ";s:3:"Ꝅ";s:3:"ꝇ";s:3:"Ꝇ";s:3:"ꝉ";s:3:"Ꝉ";s:3:"ꝋ";s:3:"Ꝋ";s:3:"ꝍ";s:3:"Ꝍ";s:3:"ꝏ";s:3:"Ꝏ";s:3:"ꝑ";s:3:"Ꝑ";s:3:"ꝓ";s:3:"Ꝓ";s:3:"ꝕ";s:3:"Ꝕ";s:3:"ꝗ";s:3:"Ꝗ";s:3:"ꝙ";s:3:"Ꝙ";s:3:"ꝛ";s:3:"Ꝛ";s:3:"ꝝ";s:3:"Ꝝ";s:3:"ꝟ";s:3:"Ꝟ";s:3:"ꝡ";s:3:"Ꝡ";s:3:"ꝣ";s:3:"Ꝣ";s:3:"ꝥ";s:3:"Ꝥ";s:3:"ꝧ";s:3:"Ꝧ";s:3:"ꝩ";s:3:"Ꝩ";s:3:"ꝫ";s:3:"Ꝫ";s:3:"ꝭ";s:3:"Ꝭ";s:3:"ꝯ";s:3:"Ꝯ";s:3:"ꝺ";s:3:"Ꝺ";s:3:"ꝼ";s:3:"Ꝼ";s:3:"ꝿ";s:3:"Ꝿ";s:3:"ꞁ";s:3:"Ꞁ";s:3:"ꞃ";s:3:"Ꞃ";s:3:"ꞅ";s:3:"Ꞅ";s:3:"ꞇ";s:3:"Ꞇ";s:3:"ꞌ";s:3:"Ꞌ";s:3:"ꞑ";s:3:"Ꞑ";s:3:"ꞓ";s:3:"Ꞓ";s:3:"ꞗ";s:3:"Ꞗ";s:3:"ꞙ";s:3:"Ꞙ";s:3:"ꞛ";s:3:"Ꞛ";s:3:"ꞝ";s:3:"Ꞝ";s:3:"ꞟ";s:3:"Ꞟ";s:3:"ꞡ";s:3:"Ꞡ";s:3:"ꞣ";s:3:"Ꞣ";s:3:"ꞥ";s:3:"Ꞥ";s:3:"ꞧ";s:3:"Ꞧ";s:3:"ꞩ";s:3:"Ꞩ";s:3:"a";s:3:"A";s:3:"b";s:3:"B";s:3:"c";s:3:"C";s:3:"d";s:3:"D";s:3:"e";s:3:"E";s:3:"f";s:3:"F";s:3:"g";s:3:"G";s:3:"h";s:3:"H";s:3:"i";s:3:"I";s:3:"j";s:3:"J";s:3:"k";s:3:"K";s:3:"l";s:3:"L";s:3:"m";s:3:"M";s:3:"n";s:3:"N";s:3:"o";s:3:"O";s:3:"p";s:3:"P";s:3:"q";s:3:"Q";s:3:"r";s:3:"R";s:3:"s";s:3:"S";s:3:"t";s:3:"T";s:3:"u";s:3:"U";s:3:"v";s:3:"V";s:3:"w";s:3:"W";s:3:"x";s:3:"X";s:3:"y";s:3:"Y";s:3:"z";s:3:"Z";s:4:"𐐨";s:4:"𐐀";s:4:"𐐩";s:4:"𐐁";s:4:"𐐪";s:4:"𐐂";s:4:"𐐫";s:4:"𐐃";s:4:"𐐬";s:4:"𐐄";s:4:"𐐭";s:4:"𐐅";s:4:"𐐮";s:4:"𐐆";s:4:"𐐯";s:4:"𐐇";s:4:"𐐰";s:4:"𐐈";s:4:"𐐱";s:4:"𐐉";s:4:"𐐲";s:4:"𐐊";s:4:"𐐳";s:4:"𐐋";s:4:"𐐴";s:4:"𐐌";s:4:"𐐵";s:4:"𐐍";s:4:"𐐶";s:4:"𐐎";s:4:"𐐷";s:4:"𐐏";s:4:"𐐸";s:4:"𐐐";s:4:"𐐹";s:4:"𐐑";s:4:"𐐺";s:4:"𐐒";s:4:"𐐻";s:4:"𐐓";s:4:"𐐼";s:4:"𐐔";s:4:"𐐽";s:4:"𐐕";s:4:"𐐾";s:4:"𐐖";s:4:"𐐿";s:4:"𐐗";s:4:"𐑀";s:4:"𐐘";s:4:"𐑁";s:4:"𐐙";s:4:"𐑂";s:4:"𐐚";s:4:"𐑃";s:4:"𐐛";s:4:"𐑄";s:4:"𐐜";s:4:"𐑅";s:4:"𐐝";s:4:"𐑆";s:4:"𐐞";s:4:"𐑇";s:4:"𐐟";s:4:"𐑈";s:4:"𐐠";s:4:"𐑉";s:4:"𐐡";s:4:"𐑊";s:4:"𐐢";s:4:"𐑋";s:4:"𐐣";s:4:"𐑌";s:4:"𐐤";s:4:"𐑍";s:4:"𐐥";s:4:"𐑎";s:4:"𐐦";s:4:"𐑏";s:4:"𐐧";s:4:"𑣀";s:4:"𑢠";s:4:"𑣁";s:4:"𑢡";s:4:"𑣂";s:4:"𑢢";s:4:"𑣃";s:4:"𑢣";s:4:"𑣄";s:4:"𑢤";s:4:"𑣅";s:4:"𑢥";s:4:"𑣆";s:4:"𑢦";s:4:"𑣇";s:4:"𑢧";s:4:"𑣈";s:4:"𑢨";s:4:"𑣉";s:4:"𑢩";s:4:"𑣊";s:4:"𑢪";s:4:"𑣋";s:4:"𑢫";s:4:"𑣌";s:4:"𑢬";s:4:"𑣍";s:4:"𑢭";s:4:"𑣎";s:4:"𑢮";s:4:"𑣏";s:4:"𑢯";s:4:"𑣐";s:4:"𑢰";s:4:"𑣑";s:4:"𑢱";s:4:"𑣒";s:4:"𑢲";s:4:"𑣓";s:4:"𑢳";s:4:"𑣔";s:4:"𑢴";s:4:"𑣕";s:4:"𑢵";s:4:"𑣖";s:4:"𑢶";s:4:"𑣗";s:4:"𑢷";s:4:"𑣘";s:4:"𑢸";s:4:"𑣙";s:4:"𑢹";s:4:"𑣚";s:4:"𑢺";s:4:"𑣛";s:4:"𑢻";s:4:"𑣜";s:4:"𑢼";s:4:"𑣝";s:4:"𑢽";s:4:"𑣞";s:4:"𑢾";s:4:"𑣟";s:4:"𑢿";}
 
vendor/symfony/polyfill-mbstring/composer.json CHANGED
@@ -28,7 +28,7 @@
28
  "minimum-stability": "dev",
29
  "extra": {
30
  "branch-alias": {
31
- "dev-master": "1.1-dev"
32
  }
33
  }
34
  }
28
  "minimum-stability": "dev",
29
  "extra": {
30
  "branch-alias": {
31
+ "dev-master": "1.2-dev"
32
  }
33
  }
34
  }